<?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>19793</bug_id>
          
          <creation_ts>2008-06-27 11:29:33 -0700</creation_ts>
          <short_desc>Web Inspector should show compressed size for network resources</short_desc>
          <delta_ts>2012-03-17 09:02:50 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.prowolfe.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56691</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Haris Pobric">hpobric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>praseodym</cc>
    
    <cc>rik</cc>
    
    <cc>stefan.rusterholz</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84596</commentid>
    <comment_count>0</comment_count>
    <who name="Haris Pobric">hpobric</who>
    <bug_when>2008-06-27 11:29:33 -0700</bug_when>
    <thetext>One thing I noticed is that the Web Inspector gives different results for the same page when used on Tiger and Leopard. Specifically, when analyzing resources, Web Inspector indicates the size of Prototype.js as ~31 KB when used on Tiger but ~123 KB when the same page is analyzed on a Leopard machine. The script is served via Google Ajax API. The behavior is persistent across different machines and web sites and servers.

I have noticed this behavior with the nightly builds for the past couple of weeks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84600</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-06-27 12:35:51 -0700</bug_when>
    <thetext>I suspect that CFNetwork on Tiger is giving us the compressed size (eg, size over the wire) while Leopard is giving us the uncompressed size (after any gzip compression has been reversed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84625</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-06-27 21:38:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/6041709&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84641</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-06-28 01:37:31 -0700</bug_when>
    <thetext>I&apos;m pretty sure we have a duplicate in Bugzilla, but I cannot find it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103360</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Janssen">praseodym</who>
    <bug_when>2008-12-24 06:46:58 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I suspect that CFNetwork on Tiger is giving us the compressed size (eg, size
&gt; over the wire) while Leopard is giving us the uncompressed size (after any gzip
&gt; compression has been reversed).

I came across this bug when enabling gzip on a web server didn&apos;t make any difference to the size shown in the Web Inspector on the latest Nightly on Leopard. I haven&apos;t got a copy of Tiger so I can&apos;t confirm the original bug report.

Maybe the best thing to do is to take the &apos;Content-Length&apos; header and base reports on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103695</commentid>
    <comment_count>5</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-12-29 04:01:08 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;m pretty sure we have a duplicate in Bugzilla, but I cannot find it now.
&gt; 

Is it a bug 14279?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103702</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-29 04:21:41 -0800</bug_when>
    <thetext>That&apos;s probably not what I was thinking of, but it is certainly related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158459</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-27 20:09:05 -0700</bug_when>
    <thetext>*** Bug 30795 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217895</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-27 13:39:18 -0700</bug_when>
    <thetext>*** Bug 38181 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368544</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-16 14:27:18 -0700</bug_when>
    <thetext>See also: bug 31019.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369039</commentid>
    <comment_count>10</comment_count>
      <attachid>86054</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-17 07:39:46 -0700</bug_when>
    <thetext>Created attachment 86054
Patch enabling inspector support for showing transfer size without Content-Length headers.

This patch enables inspector support for showing transfer size without Content-Length headers.
It is still responsibility of each port to provide valid transfer size data to ResourceLoader/ResourceHandleClient.

This bug should probably be renamed (if possible) to something more general, like &quot;Web Inspector does not always show correct transfer size (for compressed/chunked data)&quot;, and then separate bugs could be created for each port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369168</commentid>
    <comment_count>11</comment_count>
      <attachid>86073</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-17 11:10:35 -0700</bug_when>
    <thetext>Created attachment 86073
Patch follow-up

Some fixes added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369211</commentid>
    <comment_count>12</comment_count>
      <attachid>86073</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-17 12:19:11 -0700</bug_when>
    <thetext>Comment on attachment 86073
Patch follow-up

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

&gt; LayoutTests/http/tests/inspector/network/network-size-chunked.html:16
&gt; +    if (++loadedResourceCount === 1) {

I don&apos;t think you need a counter here.

&gt; LayoutTests/http/tests/inspector/network/network-size-chunked.html:25
&gt; +    InspectorTest.evaluateInPage(&quot;loadPages()&quot;);

Where is loadPages?

&gt; LayoutTests/platform/chromium/test_expectations.txt:3190
&gt; +BUG_VSEVIK SKIP : http/tests/inspector/network/network-size-chunked.html = FAIL

Could you please file a bug for all of these?

&gt; Source/WebCore/inspector/front-end/Resource.js:244
&gt; +        if (this._transferSize)

What about 0?

&gt; Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:561
&gt; +    InspectorInstrumentation::didReceiveContentLength(m_frame, m_currentResourceIdentifier, length, -1);

No traffic here.

&gt; Source/WebCore/platform/network/mac/ResourceHandleMac.mm:926
&gt; +    m_handle-&gt;client()-&gt;didReceiveData(m_handle, (const char*)[data bytes], [data length], -1);

Put a FIXME and a bug reference here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369391</commentid>
    <comment_count>13</comment_count>
      <attachid>86109</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-17 16:27:32 -0700</bug_when>
    <thetext>Created attachment 86109
Patch with fixes

All done.

Added fixes for QT, GTK, Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369394</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-17 16:35:36 -0700</bug_when>
    <thetext>Could you please write down what is being fixed in this patch? Will it fully work in Safari on Leopard and later?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369401</commentid>
    <comment_count>15</comment_count>
      <attachid>86113</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-17 16:46:53 -0700</bug_when>
    <thetext>Created attachment 86113
Patch with fixes2

I have uploaded my path again to resolve merge conflicts.

No, it will not make it fully work in any port.

This particular patch just makes it possible to pass actual transfer size to inspector.
Each port should be changed accordingly to pass this value in ResourceHandleClient. 
I am not sure but it could probably require some changes outside of WebKit.

I created separate bug for chromium port which I am currently working on: https://bugs.webkit.org/show_bug.cgi?id=56602
I suggest we create separate bugs for other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369593</commentid>
    <comment_count>16</comment_count>
      <attachid>86155</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-18 04:21:36 -0700</bug_when>
    <thetext>Created attachment 86155
Patch + changelogs update forgotten earlier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369594</commentid>
    <comment_count>17</comment_count>
      <attachid>86155</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-18 04:25:16 -0700</bug_when>
    <thetext>Comment on attachment 86155
Patch + changelogs update forgotten earlier

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

Please send complete patch.

&gt; LayoutTests/ChangeLog:5
&gt; +        Added transfer size support in inspector for compressed data

Needs &quot;Web Inspector:&quot; prefix and the bug href.

&gt; LayoutTests/ChangeLog:7
&gt; +        Need a short description and bug URL (OOPS!)

OOPS breaks presubmit checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369597</commentid>
    <comment_count>18</comment_count>
      <attachid>86157</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-18 05:49:42 -0700</bug_when>
    <thetext>Created attachment 86157
Patch with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369629</commentid>
    <comment_count>19</comment_count>
      <attachid>86165</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-03-18 08:08:42 -0700</bug_when>
    <thetext>Created attachment 86165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369641</commentid>
    <comment_count>20</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-18 08:32:57 -0700</bug_when>
    <thetext>Attachment 86165 did not build on win:
Build output: http://queues.webkit.org/results/8199301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369659</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-18 09:06:08 -0700</bug_when>
    <thetext>&gt; No, it will not make it fully work in any port.

Note that this bug is asking to make it work in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369662</commentid>
    <comment_count>22</comment_count>
      <attachid>86165</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-18 09:15:36 -0700</bug_when>
    <thetext>Comment on attachment 86165
Patch

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

&gt; LayoutTests/ChangeLog:7
&gt; +        Web Inspector: Web Inspector Gives Different Results on Tiger and Leopard (should show compressed size)

ChangeLog structure:

Reviewed By

Title
href

Description

* files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369665</commentid>
    <comment_count>23</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-18 09:23:54 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; No, it will not make it fully work in any port.
&gt; 
&gt; Note that this bug is asking to make it work in Safari.

Yeah, we should move this patch to a different bug and make this one depend on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423062</commentid>
    <comment_count>24</comment_count>
      <attachid>86165</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-06-18 00:21:18 -0700</bug_when>
    <thetext>Comment on attachment 86165
Patch

was landed as r81580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423120</commentid>
    <comment_count>25</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-18 09:28:42 -0700</bug_when>
    <thetext>Ilya, why did you close this bug? Are you saying that Web Inspector now displays a correct size in Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423122</commentid>
    <comment_count>26</comment_count>
      <attachid>86165</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-18 09:47:17 -0700</bug_when>
    <thetext>Comment on attachment 86165
Patch

I think this is an oversight. As I mentioned in the comment #23, we should have moved the last patch to a new bug and fixed it there. In fact, I think that is what has happened. It is just that the reviewed patch here added confusion. Let me obsolete it and reopen the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423123</commentid>
    <comment_count>27</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-18 09:48:00 -0700</bug_when>
    <thetext>Reopening the original issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581333</commentid>
    <comment_count>28</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-03-17 09:02:50 -0700</bug_when>
    <thetext>We show both sizes in the Network panel if you have large rows enabled.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86054</attachid>
            <date>2011-03-17 07:39:46 -0700</date>
            <delta_ts>2011-03-17 11:10:35 -0700</delta_ts>
            <desc>Patch enabling inspector support for showing transfer size without Content-Length headers.</desc>
            <filename>nw</filename>
            <type>text/plain</type>
            <size>28695</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMjEwNDA5Li41MzBiZGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMt
MTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIElu
c3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hv
dWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xNiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNraXAgdGVzdCBmYXN0L2Zvcm1zL2lucHV0LWF1
dG9maWxsZWQuaHRtbCBpbiBtYWMtd2syIHNpbmNlIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1
bmtlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliZWFmN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gbG9hZEltYWdlcygpCit7CisgICAgdmFyIGltYWdlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIik7CisgICAgaW1hZ2Uub25sb2FkID0gcmVzb3VyY2VMb2FkZWQ7Cisg
ICAgaW1hZ2Uuc2V0QXR0cmlidXRlKCJzcmMiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBl
PWltYWdlJnNpemU9NTAwJmd6aXA9dHJ1ZSZjaHVua2VkPXRydWUiKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlKTsKK30KKwordmFyIGxvYWRlZFJlc291cmNlQ291bnQgPSAw
OworZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQoreworICAgIGlmICgrK2xvYWRlZFJlc291cmNl
Q291bnQgPT09IDEpIHsKKyAgICAgICAgY29uc29sZS5sb2coIkRvbmUuIik7CisgICAgfQorfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CisgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdlcygpIik7CisgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZFBhZ2VzKCkiKTsKKworICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZTEgPSBXZWJJbnNwZWN0b3IucGFuZWxz
Lm5ldHdvcmsucmVzb3VyY2VzWzBdOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChy
ZXNvdXJjZTEudXJsKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNl
U2l6ZTogIiArIHJlc291cmNlMS5yZXNvdXJjZVNpemUpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgidHJhbnNmZXJTaXplOiAiICsgKHJlc291cmNlMS50cmFuc2ZlclNpemUgLSBy
ZXNvdXJjZTEuX3Jlc3BvbnNlSGVhZGVyc1NpemUpKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgbmV0d29yayByZXNvdXJjZSBzaXplIHJlcG9ydGlu
ZyBmb3IgY2h1bmtlZCB0cmFuc2ZlciBlbmNvZGluZy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstc2l6ZS1leHBlY3RlZC1jaHVua2VkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVjdGVkLWNodW5rZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYjliMDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1leHBl
Y3RlZC1jaHVua2VkLnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
MjogRG9uZS4KK1Rlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBvcnRpbmcuCisKKworaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5w
aHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUlY2h1bmtlZD10cnVlCityZXNvdXJjZVNp
emU6IDUwMAordHJhbnNmZXJTaXplOiAyMDgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhw
CmluZGV4IGI4MmFiNWIuLjQxNTRjOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHAK
QEAgLTYsNiArNiw3IEBACiAgICAgJGd6aXAgPSAkX0dFVFsiZ3ppcCJdOwogICAgICRqc2RlbGF5
ID0gJF9HRVRbImpzZGVsYXkiXTsKICAgICAkanNjb250ZW50ID0gJF9HRVRbImpzY29udGVudCJd
OworICAgICRjaHVua2VkID0gJF9HRVRbImNodW5rZWQiXTsKIAogICAgICMgRW5hYmxlIGd6aXAg
Y29tcHJlc3Npb24gaWYgbmVlZGVkCiAgICAgaWYgKCRnemlwKQpAQCAtNjcsMTYgKzY4LDMwIEBA
IF9fZm9vKDw/cGhwIGVjaG8oJGpzZGVsYXkpPz4pOwogICAgICAgICAkZGF0YV9sZW4gPSBzdHJs
ZW4oJGRhdGEpOwogICAgICAgICBwcmludCgkZGF0YSk7CiAgICAgICAgIGlmICgkc2l6ZSkgewor
ICAgICAgICAgICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsK
KyAgICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9y
ICgkaSA9IDA7ICRzaXplICYmICRpIDwgJHNpemUgLSAkZGF0YV9sZW47ICsrJGkpCiAgICAgICAg
ICAgICAgICAgZWNobygiPSIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBH
ZW5lcmF0ZSBkdW1teSB0ZXh0L2h0bWwuCiAgICAgICAgIGlmICgkc2l6ZSkgewotICAgICAgICAg
ICAgZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICsrJGkpCisgICAgICAgICAgICBmb3IgKCRpID0g
MDsgJGkgPCAkc2l6ZTsgKyskaSkgeworICAgICAgICAgICAgICAgIGlmICgkY2h1bmtlZCAmJiAo
MSA9PSAkaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWNo
bygiKiIpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZWNo
bygiSGVsbG8gd29ybGQiKTsKKyAgICAgICAgICAgIGVjaG8oIkhlbGxvICIpOworICAgICAgICAg
ICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsKKyAgICAgICAg
ICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWNobygid29ybGQi
KTsKICAgICAgICAgfQogICAgIH0KID8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYjEwNGI4NS4uNmIwNGE0NyAxMDA3
NTUKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dApAQCAtMzIyNSw2ICszMjI1LDcgQEAgQlVHX0FOVE9OTSA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGlnaHRTb3VyY2UKIAogQlVH
X1BGRUxETUFOIFNLSVAgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGlt
aW5nLmh0bWwgPSBGQUlMCiBCVUdfUEZFTERNQU4gU0tJUCA6IGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLmh0bWwgPSBGQUlMCitCVUdfVlNFVklLIFNLSVAgOiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwgPSBGQUlM
CiAKIEJVR0pBTUVTUiA6IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWRpc2FibGUtdGhlbi1kZWxl
dGUuaHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHQ1I3NDQ5NyA6IHBsYXRmb3JtL3dpbi9wbHVnaW5z
L3dpbmRvd2xlc3MtcGFpbnQtcmVjdC1jb29yZGluYXRlcy5odG1sID0gQ1JBU0gKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKaW5kZXggNmE5YmI4Ni4uNjU2YTU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKQEAgLTEzMzQsMyArMTMzNCw2IEBAIHN2Zy9XM0MtSTE4Ti90ZXh0LWRpckxUUi11
Yk92ZXJyaWRlLnN2Zwogc3ZnL1czQy1JMThOL3RzcGFuLWRpckxUUi11YkVtYmVkLWluLXJ0bC1j
b250ZXh0LnN2Zwogc3ZnL1czQy1JMThOL3RzcGFuLWRpckxUUi11Yk5vbmUtaW4tcnRsLWNvbnRl
eHQuc3ZnCiBzdmcvVzNDLUkxOE4vdHNwYW4tZGlyTFRSLXViT3ZlcnJpZGUtaW4tcnRsLWNvbnRl
eHQuc3ZnCisKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzkz
CitodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggOWViYjAxOC4uZjMxZTFkOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKQEAgLTMxNywzICszMTcsNyBAQCBmYXN0L2RvbS9HZW9sb2NhdGlv
bi9wYWdlLXJlbG9hZC1jYW5jZWwtcGVybWlzc2lvbi1yZXF1ZXN0cy5odG1sCiAjIFRyYW5zaXRp
b24gdGVzdHMgYXJlIGZsYWtleSBzaW5jZSByNzk5ODUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2MjQyCiB0cmFuc2l0aW9ucy9pbnRlcnJ1cHRlZC1hY2NlbGVy
YXRlZC10cmFuc2l0aW9uLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXpl
LWNodW5rZWQuaHRtbAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAxZWE2MmQ2Li4xOGEz
ZmQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMyNDMsMyArMzI0Myw2IEBAIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCiAjIFtRdF1XZWIgSW5zcGVjdG9y
OiBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5odG1sIGZhaWxzCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQ1NwogaW5zcGVjdG9yL2Vs
ZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUuaHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDY5
NjRiNmEuLmNmNDExYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC00OCw2ICs0OCw5
IEBAIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwKIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLmh0bWwKIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10aW1pbmcuaHRtbAogCisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCisKICMgRmFpbHMgPHJkYXI6Ly9wcm9ibGVt
LzU2NzQyODk+CiBtZWRpYS92aWRlby1zZWVrLXBhc3QtZW5kLXBhdXNlZC5odG1sCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkOWE1OTY4Li43ZGEzMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTEtMDMtMTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIg
c2l6ZSBzdXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAg
V2ViIEluc3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFy
ZCAoc2hvdWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKKworICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5kaWRSZWNlaXZlQ29udGVudExlbmd0aCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuZ2V0IHRyYW5zZmVyU2l6ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLmluY3JlYXNlVHJhbnNmZXJTaXplKToK
KyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpzZW5kUmVtYWlu
aW5nRGVsZWdhdGVNZXNzYWdlcyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlm
aWVyLmg6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVE
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9u
OmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorCiAyMDExLTAzLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggOTE5ZmE3Yi4uOWJlMWNl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTkzLDcgKzkzLDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbZXZlbnRdIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KG91
dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXF1ZXN0LCBv
dXQgT2JqZWN0IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICBbZXZlbnRdIHZvaWQgbWFya1Jl
c291cmNlQXNDYWNoZWQob3V0IGxvbmcgaWRlbnRpZmllcik7CiAgICAgICAgIFtldmVudF0gdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2Uob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1l
LCBvdXQgU3RyaW5nIHJlc291cmNlVHlwZSwgb3V0IE9iamVjdCByZXNwb25zZSk7Ci0gICAgICAg
IFtldmVudF0gdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBpZGVudGlmaWVy
LCBvdXQgZG91YmxlIHRpbWUsIG91dCBsb25nIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgW2V2
ZW50XSB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG91dCBsb25nIGlkZW50aWZpZXIsIG91
dCBkb3VibGUgdGltZSwgb3V0IGxvbmcgZGF0YUxlbmd0aCwgb3V0IGxvbmcgbGVuZ3RoUmVjZWl2
ZWQpOwogICAgICAgICBbZXZlbnRdIHZvaWQgZGlkRmluaXNoTG9hZGluZyhvdXQgbG9uZyBpZGVu
dGlmaWVyLCBvdXQgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgICAgICBbZXZlbnRdIHZvaWQgZGlk
RmFpbExvYWRpbmcob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3Ry
aW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpZExvYWRS
ZXNvdXJjZUZyb21NZW1vcnlDYWNoZShvdXQgZG91YmxlIHRpbWUsIG91dCBPYmplY3QgcmVzb3Vy
Y2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAppbmRleCBhN2FmMmU5Li5lZTVhZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNDU5
LDEwICs0NTksMTAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlSW1wbChjb25zdCBJbnNwZWN0b3JJbnMKICAgICB9CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGlu
dCBsZW5ndGhSZWNlaXZlZCkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aEltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
CiB7CiAgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSByZXRy
aWV2ZVJlc291cmNlQWdlbnQoaW5zcGVjdG9yQWdlbnQpKQotICAgICAgICByZXNvdXJjZUFnZW50
LT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlmaWVyLCBsZW5ndGhSZWNlaXZlZCk7Cisg
ICAgICAgIHJlc291cmNlQWdlbnQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIs
IGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmdJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApp
bmRleCAyNzU5YzEyLi5mYzU2ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGEoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2
ZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVk
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKEZyYW1lKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFp
bExvYWRpbmcoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKICAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKQEAgLTIzNSw3ICsyMzUsNyBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKGNvbnN0
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChJbnNw
ZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChj
b25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmdJbXBsKEluc3BlY3RvckFnZW50KiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgc3RhdGljIHZv
aWQgZGlkRmFpbExvYWRpbmdJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgc3RhdGljIHZvaWQgcmVzb3VyY2VS
ZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJbnNwZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKQEAg
LTY3NiwxMSArNjc2LDExIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29uc3QgSW5zcGVjdG9yCiAjZW5kaWYKIH0KIAot
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExl
bmd0aChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJl
Y2VpdmVkKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
Q29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50
IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGhJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBsZW5ndGhSZWNlaXZlZCk7Cisg
ICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRp
ZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCBkYjQxNjQwLi43ZjU1M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC0zNzYsMTIgKzM3NiwxMiBAQCB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZQogICAgIC8vIElmIHdlIHJldmFsaWRhdGVkIHRoZSByZXNvdXJjZSBh
bmQgZ290IE5vdCBtb2RpZmllZCwgc2VuZCBjb250ZW50IGxlbmd0aCBmb2xsb3dpbmcgZGlkUmVj
ZWl2ZVJlc3BvbnNlCiAgICAgLy8gYXMgdGhlcmUgd2lsbCBiZSBubyBjYWxscyB0byBkaWRSZWNl
aXZlQ29udGVudExlbmd0aCBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgogICAgIGlmIChjYWNoZWRS
ZXNvdXJjZVNpemUgJiYgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpCi0gICAgICAg
IGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGNhY2hlZFJlc291cmNlU2l6ZSk7
CisgICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGNhY2hlZFJlc291
cmNlU2l6ZSwgMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2
ZWQpCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNl
aXZlZCkKIHsKLSAgICBtX2Zyb250ZW5kLT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlm
aWVyLCBjdXJyZW50VGltZSgpLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgbV9mcm9udGVuZC0+ZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgY3VycmVudFRpbWUoKSwgZGF0YUxlbmd0
aCwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRp
ZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGlt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5oCmluZGV4IGYxYjNkNDYuLjI4MTIxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsK
ICAgICB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciogbGFvZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBs
ZW5ndGhSZWNlaXZlZCk7CisgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwog
ICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJs
ZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkTG9hZFJlc291cmNl
RnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgQ2FjaGVkUmVzb3VyY2UqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01h
bmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzCmluZGV4IDg0OTJiOWUuLjVmYzg1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtMTg2LDEzICsxODYs
MTUgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwuYWRkUmVzb3VyY2VUb0ZyYW1lKHJlc291cmNlLmxv
YWRlci5mcmFtZUlkLCByZXNvdXJjZSk7CiAgICAgfSwKIAotICAgIGRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBsZW5ndGhSZWNlaXZlZCkKKyAgICBk
aWRSZWNlaXZlQ29udGVudExlbmd0aDogZnVuY3Rpb24oaWRlbnRpZmllciwgdGltZSwgZGF0YUxl
bmd0aCwgbGVuZ3RoUmVjZWl2ZWQpCiAgICAgewogICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlz
Ll9pbmZsaWdodFJlc291cmNlc0J5SWRbaWRlbnRpZmllcl07CiAgICAgICAgIGlmICghcmVzb3Vy
Y2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcmVzb3VyY2UucmVzb3VyY2VTaXpl
ICs9IGxlbmd0aFJlY2VpdmVkOworICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVNpemUgKz0gZGF0
YUxlbmd0aDsKKyAgICAgICAgaWYgKGxlbmd0aFJlY2VpdmVkICE9IC0xKQorICAgICAgICAgICAg
cmVzb3VyY2UuaW5jcmVhc2VUcmFuc2ZlclNpemUobGVuZ3RoUmVjZWl2ZWQpOwogICAgICAgICBy
ZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKIAogICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZShy
ZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qcwppbmRleCA2Y2Y1YjljLi5kYzhiM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTI0MSw3ICsyNDEsOCBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IGlmICh0aGlzLnN0YXR1c0NvZGUgPT09IDMwNCkgLy8gTm90IG1vZGlmaWVkCiAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcmVzcG9uc2VIZWFkZXJzU2l6ZTsKLSAgICAgICAgLy8gRklYTUU6IFdl
IHByZWZlciB1c2luZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291cmNlU2l6ZSBhcworICAgICAg
ICAvLyBGSVhNRTogSWYgd2UgZGlkIG5vdCByZWNlaXZlIGFjdHVhbCB0cmFuc2ZlciBzaXplIGZy
b20gbmV0d29yayAKKyAgICAgICAgLy8gc3RhY2ssIHdlIHByZWZlciB1c2luZyBDb250ZW50LUxl
bmd0aCBvdmVyIHJlc291cmNlU2l6ZSBhcwogICAgICAgICAvLyByZXNvdXJjZVNpemUgbWF5IGRp
ZmZlciBmcm9tIGFjdHVhbCB0cmFuc2ZlciBzaXplIGlmIHBsYXRmb3JtJ3MKICAgICAgICAgLy8g
bmV0d29yayBzdGFjayBwZXJmb3JtZWQgZGVjb2RpbmcgKGUuZy4gZ3ppcCBkZWNvbXByZXNzaW9u
KS4KICAgICAgICAgLy8gVGhlIENvbnRlbnQtTGVuZ3RoLCB0aG91Z2gsIGlzIGV4cGVjdGVkIHRv
IGNvbWUgZnJvbSByYXcKQEAgLTI0OSwxMSArMjUwLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFRoaXMgd29uJ3Qgd29yayBmb3IgY2h1bmtlZCBj
b250ZW50IGVuY29kaW5nLCBzbyBmYWxsIGJhY2sgdG8KICAgICAgICAgLy8gcmVzb3VyY2VTaXpl
IHdoZW4gd2UgZG9uJ3QgaGF2ZSBDb250ZW50LUxlbmd0aC4gVGhpcyBzdGlsbCB3b24ndAogICAg
ICAgICAvLyB3b3JrIGZvciBjaHVua3Mgd2l0aCBub24tdHJpdmlhbCBlbmNvZGluZ3MuIFdlIG5l
ZWQgYSB3YXkgdG8KLSAgICAgICAgLy8gZ2V0IGFjdGF1bCB0cmFuc2ZlciBzaXplIGZyb20gdGhl
IG5ldHdvcmsgc3RhY2suCi0gICAgICAgIHZhciBib2R5U2l6ZSA9IE51bWJlcih0aGlzLnJlc3Bv
bnNlSGVhZGVyc1siQ29udGVudC1MZW5ndGgiXSB8fCB0aGlzLnJlc291cmNlU2l6ZSk7CisgICAg
ICAgIC8vIGdldCBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgor
ICAgICAgICB2YXIgYm9keVNpemUgPSBOdW1iZXIodGhpcy5fdHJhbnNmZXJTaXplIHx8IHRoaXMu
cmVzcG9uc2VIZWFkZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMucmVzb3VyY2VTaXplKTsK
ICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlSGVhZGVyc1NpemUgKyBib2R5U2l6ZTsKICAg
ICB9LAogCisgICAgaW5jcmVhc2VUcmFuc2ZlclNpemU6IGZ1bmN0aW9uKHgpCisgICAgeworICAg
ICAgICB0aGlzLl90cmFuc2ZlclNpemUgPSAodGhpcy5fdHJhbnNmZXJTaXplIHx8IDApICsgeDsK
KyAgICB9LAorCiAgICAgZ2V0IGV4cGVjdGVkQ29udGVudExlbmd0aCgpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5fZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHx8IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAppbmRleCBjOTI4NTU3Li40ZDZj
ZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5j
cHAKQEAgLTc0LDEyICs3NCwxMiBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzbwogICAgIGRpc3Bh
dGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5p
ZGVudGlmaWVyKCksIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCit2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQg
ZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogICAgIGlmIChQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5pbmNyZW1lbnRQcm9n
cmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgcGFnZS0+
cHJvZ3Jlc3MoKS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlmaWVyKCksIGRhdGEs
IGRhdGFMZW5ndGgpOwogCi0gICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBsZW5ndGhSZWNlaXZl
ZCk7CisgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXItPmRvY3VtZW50
TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZl
ZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZEZpbmlzaExvYWQoUmVzb3Vy
Y2VMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0xMzIsMTEgKzEzMiwxMSBA
QCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bgogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVudGlmaWVyLCBsb2FkZXIsIHIp
OwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgaW50IGxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIG1f
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0
aChsb2FkZXIsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmll
ciwgZGF0YUxlbmd0aCk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtX2ZyYW1lLCBpZGVu
dGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9h
ZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpAQCAtMTYw
LDcgKzE2MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxl
Z2F0ZU1lc3NhZ2VzKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgIGRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogCiAgICAgaWYg
KGxlbmd0aCA+IDApCi0gICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9h
ZGVyLCBpZGVudGlmaWVyLCBsZW5ndGgpOworICAgICAgICBkaXNwYXRjaERpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVuZ3RoLCAwKTsKIAogICAgIGlmIChlcnJv
ci5pc051bGwoKSkKICAgICAgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRl
bnRpZmllciwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmll
ci5oCmluZGV4IGE2ZDkyZmIuLmYwM2VmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWROb3RpZmllci5oCkBAIC01MywxNCArNTMsMTQgQEAgcHVibGljOgogCiAgICAg
dm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGlu
dCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
TG9hZGVyKiwgY29uc3QgY2hhciosIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
OwogICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciosIGRvdWJsZSBmaW5pc2hU
aW1lKTsKICAgICB2b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVD
b250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBp
bnQgbGVuZ3RoKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBp
bnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAgICAgdm9pZCBkaXNwYXRjaFRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5z
aWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdl
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggYjMzMTQyNS4uMzU1NzlmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5jcHAKQEAgLTU1NSw4ICs1NTUsMTAgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKIAogdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkK
IHsKKyAgICBVTlVTRURfUEFSQU0obGVuZ3RoUmVjZWl2ZWQpOworCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKG1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbGVuZ3RoUmVjZWl2ZWQp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgo
bV9mcmFtZSwgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBsZW5ndGgsIC0xKTsKICNlbmRp
ZgogCiAgICAgaWYgKGhhbmRsZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CmluZGV4IDc4OTI2MTkuLmVlZjBiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC05MTMsNiArOTEz
LDcgQEAgU3RyaW5nIFJlc291cmNlSGFuZGxlOjpwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lv
bklkZW50aWZpZXJEZWZhdWx0QmFzZSgpCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEgbGVuZ3RoUmVj
ZWl2ZWQ6KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAogewogICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0obGVuZ3RoUmVjZWl2ZWQpOwogCiAgICAgTE9HKE5l
dHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlvbjolcCBkaWRSZWNlaXZlRGF0YTol
cCBsZW5ndGhSZWNlaXZlZDolbGxkIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIGRhdGEsIGxlbmd0
aFJlY2VpdmVkKTsKIApAQCAtOTIyLDcgKzkyMyw3IEBAIFN0cmluZyBSZXNvdXJjZUhhbmRsZTo6
cHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyRGVmYXVsdEJhc2UoKQogICAg
IC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRz
LCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1
ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KICAgICBDYWxsYmFja0d1YXJkIGd1YXJkOwotICAg
IG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBjaGFy
KilbZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIHN0YXRpY19jYXN0PGludD4obGVuZ3RoUmVj
ZWl2ZWQpKTsKKyAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKG1faGFuZGxl
LCAoY29uc3QgY2hhciopW2RhdGEgYnl0ZXNdLCBbZGF0YSBsZW5ndGhdLCAtMSk7CiB9CiAKIC0g
KHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU3RvcEJ1
ZmZlcmluZ0RhdGE6KE5TRGF0YSAqKWRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZWFjYWEyMS4uYTQ4MzI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMS0wMy0xNyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0
cmFuc2ZlciBzaXplIHN1cHBvcnQgaW4gaW5zcGVjdG9yIGZvciBjb21wcmVzc2VkIGRhdGEKKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yIEdpdmVzIERpZmZlcmVudCBSZXN1bHRzIG9uIFRpZ2VyIGFu
ZCBMZW9wYXJkIChzaG91bGQgc2hvdyBjb21wcmVzc2VkIHNpemUpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworCisgICAgICAgICogc3JjL1Jl
c291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURh
dGEpOgorCiAyMDExLTAzLTE1ICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDcyZjYwYmIuLmVmZWZhYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1
OSwxOCArMTU5LDE3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3BvCiAgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShtX293bmVyLCByZXNwb25zZS50b1Jlc291cmNlUmVzcG9uc2UoKSk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEoCi0gICAg
V2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpCit2b2lkIFJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7CiAg
ICAgaWYgKG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVjZWl2ZWRSZXNwb25zZSAmJiBtX3N0
YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGEpCiAgICAgICAgIENSQVNIKCk7CiAg
ICAgbV9zdGF0ZSA9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGE7CiAKLSAgICAvLyBGSVhN
RSh5dXJ5cyk6IGl0IGxvb2tzIGxpa2UgbGVuZ3RoUmVjZWl2ZWQgaXMgYWx3YXlzIHRoZSBzYW1l
IGFzCi0gICAgLy8gZGF0YUxlbmd0aCBhbmQgdGhhdCB0aGUgbGF0dGVyIHBhcmFtZXRlciBjYW4g
YmUgZWxpbWluYXRlZC4KLSAgICAvLyBTZWUgV2ViS2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDE5Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRh
KG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOworICAgIC8vIEZJWE1FKHZz
ZXZpayk6IEFkZCB0cmFuc2ZlciBzaXplIHN1cHBvcnQgdG8gY2hyb21pdW0gcG9ydAorICAgIC8v
IFNlZSBXZWJLaXQgYnVnczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxMDE5CisgICAgLy8gICAgICAgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEobV9vd25l
ciwgZGF0YSwgZGF0YUxlbmd0aCwgLTEpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgZGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA2MmE5ZDk1Li5jMzZhNjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3Bw
CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRS
ZXF1ZXN0KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWUKIAogdm9pZCBXZWJE
ZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyByZXNvdXJjZUlk
LCBpbnQgbGVuZ3RoKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgobWFpbkZyYW1lKCksIHJlc291cmNlSWQsIGxlbmd0aCk7CisgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtYWluRnJhbWUo
KSwgcmVzb3VyY2VJZCwgbGVuZ3RoLCAtMSk7CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudElt
cGw6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNvbnN0IFdl
YlVSTFJlc3BvbnNlJiByZXNwb25zZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86073</attachid>
            <date>2011-03-17 11:10:35 -0700</date>
            <delta_ts>2011-03-17 16:27:32 -0700</delta_ts>
            <desc>Patch follow-up</desc>
            <filename>nw</filename>
            <type>text/plain</type>
            <size>28665</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNGFmODc5Li5lNGYyNTI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMt
MTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIElu
c3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hv
dWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xNyAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmVhZjdjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXNpemUtY2h1bmtlZC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvYWRJbWFnZXMoKQoreworICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOworICAgIGltYWdlLm9ubG9hZCA9IHJlc291cmNlTG9hZGVkOworICAgIGlt
YWdlLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10cnVlIik7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZSk7Cit9CisKK3ZhciBsb2FkZWRSZXNvdXJjZUNvdW50ID0gMDsKK2Z1
bmN0aW9uIHJlc291cmNlTG9hZGVkKCkKK3sKKyAgICBpZiAoKytsb2FkZWRSZXNvdXJjZUNvdW50
ID09PSAxKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJEb25lLiIpOworICAgIH0KK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvYWRJbWFnZXMoKSIpOworICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImxvYWRQYWdlcygpIik7CisKKyAgICBmdW5jdGlvbiBzdGVwMigp
CisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UxID0gV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3
b3JrLnJlc291cmNlc1swXTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzb3Vy
Y2UxLnVybCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZVNpemU6
ICIgKyByZXNvdXJjZTEucmVzb3VyY2VTaXplKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInRyYW5zZmVyU2l6ZTogIiArIChyZXNvdXJjZTEudHJhbnNmZXJTaXplIC0gcmVzb3Vy
Y2UxLl9yZXNwb25zZUhlYWRlcnNTaXplKSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPlRlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBvcnRpbmcgZm9y
IGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNp
emUtZXhwZWN0ZWQtY2h1bmtlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstc2l6ZS1leHBlY3RlZC1jaHVua2VkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGI5YjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQt
Y2h1bmtlZC50eHQKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IERv
bmUuCitUZXN0cyBuZXR3b3JrIHJlc291cmNlIHNpemUgcmVwb3J0aW5nLgorCisKK2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5
cGU9aW1hZ2Umc2l6ZT01MDAmZ3ppcD10cnVlJWNodW5rZWQ9dHJ1ZQorcmVzb3VyY2VTaXplOiA1
MDAKK3RyYW5zZmVyU2l6ZTogMjA4CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocAppbmRl
eCBiODJhYjViLi40MTU0YzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHAKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwCkBAIC02
LDYgKzYsNyBAQAogICAgICRnemlwID0gJF9HRVRbImd6aXAiXTsKICAgICAkanNkZWxheSA9ICRf
R0VUWyJqc2RlbGF5Il07CiAgICAgJGpzY29udGVudCA9ICRfR0VUWyJqc2NvbnRlbnQiXTsKKyAg
ICAkY2h1bmtlZCA9ICRfR0VUWyJjaHVua2VkIl07CiAKICAgICAjIEVuYWJsZSBnemlwIGNvbXBy
ZXNzaW9uIGlmIG5lZWRlZAogICAgIGlmICgkZ3ppcCkKQEAgLTY3LDE2ICs2OCwzMCBAQCBfX2Zv
byg8P3BocCBlY2hvKCRqc2RlbGF5KT8+KTsKICAgICAgICAgJGRhdGFfbGVuID0gc3RybGVuKCRk
YXRhKTsKICAgICAgICAgcHJpbnQoJGRhdGEpOwogICAgICAgICBpZiAoJHNpemUpIHsKKyAgICAg
ICAgICAgIGlmICgkY2h1bmtlZCkgeworICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7CisgICAg
ICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoJGkg
PSAwOyAkc2l6ZSAmJiAkaSA8ICRzaXplIC0gJGRhdGFfbGVuOyArKyRpKQogICAgICAgICAgICAg
ICAgIGVjaG8oIj0iKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgICMgR2VuZXJh
dGUgZHVtbXkgdGV4dC9odG1sLgogICAgICAgICBpZiAoJHNpemUpIHsKLSAgICAgICAgICAgIGZv
ciAoJGkgPSAwOyAkaSA8ICRzaXplOyArKyRpKQorICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRp
IDwgJHNpemU7ICsrJGkpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGNodW5rZWQgJiYgKDEgPT0g
JGkpKSB7CisgICAgICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7CisgICAgICAgICAgICAgICAg
ICAgIGZsdXNoKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVjaG8oIioi
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVjaG8oIkhl
bGxvIHdvcmxkIik7CisgICAgICAgICAgICBlY2hvKCJIZWxsbyAiKTsKKyAgICAgICAgICAgIGlm
ICgkY2h1bmtlZCkgeworICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7CisgICAgICAgICAgICAg
ICAgZmx1c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVjaG8oIndvcmxkIik7CiAg
ICAgICAgIH0KICAgICB9CiA/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDQ3YTkzODQuLmI4ZWFlNzcgMTAwNzU1Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
QEAgLTMxODcsNiArMzE4Nyw3IEBAIEJVR19BTlRPTk0gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQtcmVtb3ZlLWxpZ2h0U291cmNlCiAKIEJVR19QRkVM
RE1BTiBTS0lQIDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5o
dG1sID0gRkFJTAogQlVHX1BGRUxETUFOIFNLSVAgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstc2l6ZS5odG1sID0gRkFJTAorQlVHX1ZTRVZJSyBTS0lQIDogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sID0gRkFJTAogCiBC
VUdKQU1FU1IgOiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRoZW4tZGVsZXRlLmh0
bWwgPSBUSU1FT1VUIFBBU1MKIEJVR0NSNzQ0OTcgOiBwbGF0Zm9ybS93aW4vcGx1Z2lucy93aW5k
b3dsZXNzLXBhaW50LXJlY3QtY29vcmRpbmF0ZXMuaHRtbCA9IENSQVNICmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IGY4YmMzNzYuLjExYjJmNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC0xMzM4LDMgKzEzMzgsNiBAQCBzdmcvVzNDLUkxOE4vdGV4dC1kaXJMVFItdWJPdmVy
cmlkZS5zdmcKIHN2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJFbWJlZC1pbi1ydGwtY29udGV4
dC5zdmcKIHN2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJOb25lLWluLXJ0bC1jb250ZXh0LnN2
Zwogc3ZnL1czQy1JMThOL3RzcGFuLWRpckxUUi11Yk92ZXJyaWRlLWluLXJ0bC1jb250ZXh0LnN2
ZworCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDAwMDRhYWMuLmU2M2UyNDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCkBAIC0zMjIsMyArMzIyLDYgQEAgdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQt
YWNjZWxlcmF0ZWQtdHJhbnNpdGlvbi5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjQ4OAogY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvc2NhbGUtdHJhbnNp
dGlvbi1uby1zdGFydC5odG1sCiBjb21wb3NpdGluZy90cmFuc2l0aW9ucy9zaW5ndWxhci1zY2Fs
ZS10cmFuc2l0aW9uLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNo
dW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggODljNzk5NC4uMmFlNmU5OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0zMjM3LDMgKzMyMzcsNiBAQCBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGguaHRtbAogIyBbUXRdV2ViIEluc3BlY3RvcjogaW5z
cGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUuaHRtbCBmYWlscwogIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0NTcKIGluc3BlY3Rvci9lbGVtZW50
cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1zaXplLWNodW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA1NzZjNjY0
Li5iYTc1OTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtNDgsNiArNDgsOSBAQCBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sCiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sCiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwKIAorIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1zaXplLWNodW5rZWQuaHRtbAorCiAjIEZhaWxzIDxyZGFyOi8vcHJvYmxlbS81Njc0
Mjg5PgogbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wYXVzZWQuaHRtbAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYWJjOTU1Yy4uZGQzNmQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTAz
LTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRyYW5zZmVyIHNpemUg
c3VwcG9ydCBpbiBpbnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3IgR2l2ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIgYW5kIExlb3BhcmQgKHNo
b3VsZCBzaG93IGNvbXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
ZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLmdldCB0cmFuc2ZlclNpemUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5pbmNyZWFzZVRyYW5zZmVyU2l6ZSk6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0Rl
bGVnYXRlTWVzc2FnZXMpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5o
OgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRS
ZWNlaXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKwogMjAxMS0wMy0xNyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjgxMzUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRl
eCA5MTlmYTdiLi45YmUxY2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlk
bApAQCAtOTMsNyArOTMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtldmVudF0gdm9pZCB3
aWxsU2VuZFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQg
T2JqZWN0IHJlcXVlc3QsIG91dCBPYmplY3QgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgICAgIFtl
dmVudF0gdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZChvdXQgbG9uZyBpZGVudGlmaWVyKTsKICAg
ICAgICAgW2V2ZW50XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9uZyBpZGVudGlmaWVy
LCBvdXQgZG91YmxlIHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBvdXQgT2JqZWN0IHJl
c3BvbnNlKTsKLSAgICAgICAgW2V2ZW50XSB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG91
dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IGxvbmcgbGVuZ3RoUmVjZWl2
ZWQpOworICAgICAgICBbZXZlbnRdIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgob3V0IGxv
bmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBkYXRhTGVuZ3RoLCBvdXQg
bG9uZyBsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAg
IFtldmVudF0gdm9pZCBkaWRGYWlsTG9hZGluZyhvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91
YmxlIHRpbWUsIG91dCBTdHJpbmcgbG9jYWxpemVkRGVzY3JpcHRpb24pOwogICAgICAgICBbZXZl
bnRdIHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKG91dCBkb3VibGUgdGltZSwg
b3V0IE9iamVjdCByZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGE3YWYyZTkuLmVlNWFmNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC00NTksMTAgKzQ1OSwxMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3BlY3Rvcklucwog
ICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGlu
dCBsZW5ndGhSZWNlaXZlZCkKIHsKICAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVz
b3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3VyY2VBZ2VudChpbnNwZWN0b3JBZ2VudCkpCi0gICAg
ICAgIHJlc291cmNlQWdlbnQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGxl
bmd0aFJlY2VpdmVkKTsKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgoaWRlbnRpZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBm
aW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCmluZGV4IDI3NTljMTIuLmZjNTZlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTExOCw3
ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0
YShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShG
cmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGludCBsZW5ndGhSZWNlaXZlZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBp
bnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJh
bWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBz
dGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZyhGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHN0YXRpYyB2b2lkIHJlc291cmNlUmV0cmll
dmVkQnlYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwpAQCAt
MjM1LDcgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291
cmNlRGF0YUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAg
c3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNl
UmVzcG9uc2VJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291
cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKElu
c3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2
ZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0
b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBs
ZW5ndGhSZWNlaXZlZCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5z
cGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1l
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICBzdGF0
aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKEluc3BlY3RvckFn
ZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2Vu
ZExpbmVOdW1iZXIpOwpAQCAtNjc2LDExICs2NzYsMTEgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0
b3IKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2Vu
dCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBk
aWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGxl
bmd0aFJlY2VpdmVkKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKGluc3Bl
Y3RvckFnZW50LCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCmluZGV4IGRiNDE2NDAuLjdmNTUzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTM3NiwxMiAr
Mzc2LDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgLy8gSWYgd2UgcmV2YWxpZGF0
ZWQgdGhlIHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNvbnRlbnQgbGVuZ3Ro
IGZvbGxvd2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVyZSB3aWxsIGJlIG5v
IGNhbGxzIHRvIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoIGZyb20gdGhlIG5ldHdvcmsgc3RhY2su
CiAgICAgaWYgKGNhY2hlZFJlc291cmNlU2l6ZSAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
ID09IDMwNCkKLSAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgY2Fj
aGVkUmVzb3VyY2VTaXplKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRp
ZmllciwgY2FjaGVkUmVzb3VyY2VTaXplLCAwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGludCBsZW5ndGhSZWNlaXZlZCkKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0
aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIG1fZnJvbnRlbmQtPmRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGN1cnJlbnRUaW1lKCksIGxlbmd0aFJlY2VpdmVkKTsKKyAg
ICBtX2Zyb250ZW5kLT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlmaWVyLCBjdXJyZW50
VGltZSgpLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggZjFiM2Q0Ni4uMjgxMjEwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC05Miw3
ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBs
ZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmco
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9p
ZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBD
YWNoZWRSZXNvdXJjZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggODQ5MmI5ZS4uNWZjODVjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpz
CkBAIC0xODYsMTMgKzE4NiwxNSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5hZGRSZXNvdXJjZVRv
RnJhbWUocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlKTsKICAgICB9LAogCi0gICAg
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGxlbmd0
aFJlY2VpdmVkKQorICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoOiBmdW5jdGlvbihpZGVudGlm
aWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZh
ciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAg
ICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICByZXNv
dXJjZS5yZXNvdXJjZVNpemUgKz0gbGVuZ3RoUmVjZWl2ZWQ7CisgICAgICAgIHJlc291cmNlLnJl
c291cmNlU2l6ZSArPSBkYXRhTGVuZ3RoOworICAgICAgICBpZiAobGVuZ3RoUmVjZWl2ZWQgIT0g
LTEpCisgICAgICAgICAgICByZXNvdXJjZS5pbmNyZWFzZVRyYW5zZmVyU2l6ZShsZW5ndGhSZWNl
aXZlZCk7CiAgICAgICAgIHJlc291cmNlLmVuZFRpbWUgPSB0aW1lOwogCiAgICAgICAgIHRoaXMu
X3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDZjZjViOWMuLmNiNGFlNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtMjQxLDcgKzI0
MSwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIGlmICh0aGlzLnN0YXR1c0NvZGUgPT09IDMwNCkgLy8gTm90IG1v
ZGlmaWVkCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VIZWFkZXJzU2l6ZTsKLSAg
ICAgICAgLy8gRklYTUU6IFdlIHByZWZlciB1c2luZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291
cmNlU2l6ZSBhcworICAgICAgICBpZiAodGhpcy5fdHJhbnNmZXJTaXplKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX3RyYW5zZmVyU2l6ZTsKKyAgICAgICAgLy8gRklYTUU6IElmIHdlIGRpZCBu
b3QgcmVjZWl2ZSBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBmcm9tIG5ldHdvcmsKKyAgICAgICAgLy8g
c3RhY2ssIHdlIHByZWZlciB1c2luZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291cmNlU2l6ZSBh
cwogICAgICAgICAvLyByZXNvdXJjZVNpemUgbWF5IGRpZmZlciBmcm9tIGFjdHVhbCB0cmFuc2Zl
ciBzaXplIGlmIHBsYXRmb3JtJ3MKICAgICAgICAgLy8gbmV0d29yayBzdGFjayBwZXJmb3JtZWQg
ZGVjb2RpbmcgKGUuZy4gZ3ppcCBkZWNvbXByZXNzaW9uKS4KICAgICAgICAgLy8gVGhlIENvbnRl
bnQtTGVuZ3RoLCB0aG91Z2gsIGlzIGV4cGVjdGVkIHRvIGNvbWUgZnJvbSByYXcKQEAgLTI0OSwx
MSArMjUyLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAg
IC8vIFRoaXMgd29uJ3Qgd29yayBmb3IgY2h1bmtlZCBjb250ZW50IGVuY29kaW5nLCBzbyBmYWxs
IGJhY2sgdG8KICAgICAgICAgLy8gcmVzb3VyY2VTaXplIHdoZW4gd2UgZG9uJ3QgaGF2ZSBDb250
ZW50LUxlbmd0aC4gVGhpcyBzdGlsbCB3b24ndAogICAgICAgICAvLyB3b3JrIGZvciBjaHVua3Mg
d2l0aCBub24tdHJpdmlhbCBlbmNvZGluZ3MuIFdlIG5lZWQgYSB3YXkgdG8KLSAgICAgICAgLy8g
Z2V0IGFjdGF1bCB0cmFuc2ZlciBzaXplIGZyb20gdGhlIG5ldHdvcmsgc3RhY2suCisgICAgICAg
IC8vIGdldCBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgogICAg
ICAgICB2YXIgYm9keVNpemUgPSBOdW1iZXIodGhpcy5yZXNwb25zZUhlYWRlcnNbIkNvbnRlbnQt
TGVuZ3RoIl0gfHwgdGhpcy5yZXNvdXJjZVNpemUpOwogICAgICAgICByZXR1cm4gdGhpcy5fcmVz
cG9uc2VIZWFkZXJzU2l6ZSArIGJvZHlTaXplOwogICAgIH0sCiAKKyAgICBpbmNyZWFzZVRyYW5z
ZmVyU2l6ZTogZnVuY3Rpb24oeCkKKyAgICB7CisgICAgICAgIHRoaXMuX3RyYW5zZmVyU2l6ZSA9
ICh0aGlzLl90cmFuc2ZlclNpemUgfHwgMCkgKyB4OworICAgIH0sCisKICAgICBnZXQgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9leHBlY3RlZENv
bnRlbnRMZW5ndGggfHwgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuY3BwCmluZGV4IGM5Mjg1NTcuLjRkNmNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtNzQsMTIgKzc0LDEyIEBAIHZv
aWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBjb25zdCBSZXNvCiAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UobG9h
ZGVyLT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSwgcik7CiB9CiAKLXZv
aWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiBs
b2FkZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkK
K3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAg
IHBhZ2UtPnByb2dyZXNzKCktPmluY3JlbWVudFByb2dyZXNzKGxvYWRlci0+aWRlbnRpZmllcigp
LCBkYXRhLCBsZW5ndGgpOworICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5pbmNyZW1lbnRQcm9n
cmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgZGF0YUxlbmd0aCk7CiAKLSAgICBkaXNw
YXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9h
ZGVyLT5pZGVudGlmaWVyKCksIGxlbmd0aFJlY2VpdmVkKTsKKyAgICBkaXNwYXRjaERpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlm
aWVyKCksIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxv
YWROb3RpZmllcjo6ZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBkb3VibGUg
ZmluaXNoVGltZSkKQEAgLTEzMiwxMSArMTMyLDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVu
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25z
ZShjb29raWUsIGlkZW50aWZpZXIsIGxvYWRlciwgcik7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
Tm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoKQordm9pZCBSZXNv
dXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVu
dExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3Ro
LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVu
Z3RoKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoKTsKIAotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9mcmFtZSwg
aWRlbnRpZmllciwgbGVuZ3RoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0
aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwKICAgICAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UobG9hZGVyLCBp
ZGVudGlmaWVyLCByZXNwb25zZSk7CiAKICAgICBpZiAobGVuZ3RoID4gMCkKLSAgICAgICAgZGlz
cGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXIsIGlkZW50aWZpZXIsIGxlbmd0aCk7
CisgICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBpZGVudGlm
aWVyLCBsZW5ndGgsIDApOwogCiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQogICAgICAgICBkaXNw
YXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLCBpZGVudGlmaWVyLCAwKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKaW5kZXggYTZkOTJmYi4uZjAzZWZh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKQEAg
LTUzLDE0ICs1MywxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9h
ZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50
IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
KFJlc291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbFRv
TG9hZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogICAgIHZvaWQg
YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKLSAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGgpOworICAgIHZvaWQgZGlz
cGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAg
dm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpc3BhdGNoVHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRl
ciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRl
eCBiMzMxNDI1Li4zNTU3OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNTU1LDggKzU1NSwxMCBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlcwogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogeworICAgIFVOVVNFRF9QQVJBTShsZW5n
dGhSZWNlaXZlZCk7CisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9mcmFtZSwgbV9jdXJyZW50UmVz
b3VyY2VJZGVudGlmaWVyLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtX2ZyYW1lLCBtX2N1cnJlbnRSZXNvdXJj
ZUlkZW50aWZpZXIsIGxlbmd0aCwgLTEpOwogI2VuZGlmCiAKICAgICBpZiAoaGFuZGxlID09IG1f
bWFuaWZlc3RIYW5kbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggNzg5MjYxOS4uZWVmMGI5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW0KQEAgLTkxMyw2ICs5MTMsNyBAQCBTdHJpbmcgUmVzb3VyY2VIYW5k
bGU6OnByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckRlZmF1bHRCYXNlKCkK
IC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNl
aXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJl
Y2VpdmVkCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJB
TShsZW5ndGhSZWNlaXZlZCk7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0
ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVEYXRhOiVwIGxlbmd0aFJlY2VpdmVkOiVsbGQiLCBt
X2hhbmRsZSwgY29ubmVjdGlvbiwgZGF0YSwgbGVuZ3RoUmVjZWl2ZWQpOwogCkBAIC05MjIsNyAr
OTIzLDcgQEAgU3RyaW5nIFJlc291cmNlSGFuZGxlOjpwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vz
c2lvbklkZW50aWZpZXJEZWZhdWx0QmFzZSgpCiAgICAgLy8gSG93ZXZlciwgd2l0aCB0b2RheSdz
IGNvbXB1dGVycyBhbmQgbmV0d29ya2luZyBzcGVlZHMsIHRoaXMgd29uJ3QgaGFwcGVuIGluIHBy
YWN0aWNlLgogICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBnaWFudCBsb2NhbCBmaWxl
LgogICAgIENhbGxiYWNrR3VhcmQgZ3VhcmQ7Ci0gICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRS
ZWNlaXZlRGF0YShtX2hhbmRsZSwgKGNvbnN0IGNoYXIqKVtkYXRhIGJ5dGVzXSwgW2RhdGEgbGVu
Z3RoXSwgc3RhdGljX2Nhc3Q8aW50PihsZW5ndGhSZWNlaXZlZCkpOworICAgIG1faGFuZGxlLT5j
bGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0YSBieXRl
c10sIFtkYXRhIGxlbmd0aF0sIC0xKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTdG9wQnVmZmVyaW5nRGF0YTooTlNEYXRhICopZGF0
YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5NWQ0OTA0Li44Yjc3NjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE3ICBWc2V2b2xv
ZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRyYW5zZmVyIHNpemUgc3VwcG9ydCBpbiBp
bnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQorCisgICAgICAgIFdlYiBJbnNwZWN0b3IgR2l2
ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIgYW5kIExlb3BhcmQgKHNob3VsZCBzaG93IGNv
bXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NzkzCisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTEtMDMtMTcgIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VI
YW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3Bw
CmluZGV4IDcyZjYwYmIuLmVmZWZhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1OSwxOCArMTU5LDE3IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYlVSTExvYWRlciosIGNvbnN0IFdl
YlVSTFJlc3BvCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShtX293bmVyLCByZXNw
b25zZS50b1Jlc291cmNlUmVzcG9uc2UoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6ZGlkUmVjZWl2ZURhdGEoCi0gICAgV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0
YSwgaW50IGRhdGFMZW5ndGgpCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2Vp
dmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQog
ewogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgaWYgKG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0
YXRlUmVjZWl2ZWRSZXNwb25zZSAmJiBtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2Vpdmlu
Z0RhdGEpCiAgICAgICAgIENSQVNIKCk7CiAgICAgbV9zdGF0ZSA9IENvbm5lY3Rpb25TdGF0ZVJl
Y2VpdmluZ0RhdGE7CiAKLSAgICAvLyBGSVhNRSh5dXJ5cyk6IGl0IGxvb2tzIGxpa2UgbGVuZ3Ro
UmVjZWl2ZWQgaXMgYWx3YXlzIHRoZSBzYW1lIGFzCi0gICAgLy8gZGF0YUxlbmd0aCBhbmQgdGhh
dCB0aGUgbGF0dGVyIHBhcmFtZXRlciBjYW4gYmUgZWxpbWluYXRlZC4KLSAgICAvLyBTZWUgV2Vi
S2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDE5Ci0g
ICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRh
dGFMZW5ndGgpOworICAgIC8vIEZJWE1FKHZzZXZpayk6IEFkZCB0cmFuc2ZlciBzaXplIHN1cHBv
cnQgdG8gY2hyb21pdW0gcG9ydAorICAgIC8vIFNlZSBXZWJLaXQgYnVnczogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDE5CisgICAgLy8gICAgICAgICAgICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZURhdGEobV9vd25lciwgZGF0YSwgZGF0YUxlbmd0aCwgLTEpOwogfQog
CiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShX
ZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRl
eCA2MmE5ZDk1Li5jMzZhNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBXZWJE
ZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJ
ZCwgV2ViVVJMUmVxdWUKIAogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURh
dGEodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkLCBpbnQgbGVuZ3RoKQogewotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobWFpbkZyYW1lKCksIHJl
c291cmNlSWQsIGxlbmd0aCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aChtYWluRnJhbWUoKSwgcmVzb3VyY2VJZCwgbGVuZ3RoLCAtMSk7CiB9
CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIHJlc291cmNlSWQsIGNvbnN0IFdlYlVSTFJlc3BvbnNlJiByZXNwb25zZSkK
</data>
<flag name="review"
          id="78296"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86109</attachid>
            <date>2011-03-17 16:27:32 -0700</date>
            <delta_ts>2011-03-17 16:46:53 -0700</delta_ts>
            <desc>Patch with fixes</desc>
            <filename>nw</filename>
            <type>text/plain</type>
            <size>32340</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNGFmODc5Li5lNGYyNTI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMt
MTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIElu
c3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hv
dWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xNyAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40Yjk0YjQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLXNpemUtY2h1bmtlZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGxvYWRJbWFnZXMoKQoreworICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOworICAgIGltYWdlLm9ubG9hZCA9IHJlc291cmNlTG9hZGVkOworICAgIGlt
YWdlLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFn
ZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10cnVlIik7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZSk7Cit9CisKK2Z1bmN0aW9uIHJlc291cmNlTG9hZGVkKCkKK3sKKyAg
ICBjb25zb2xlLmxvZygiRG9uZS4iKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvYWRJbWFnZXMoKSIpOworCisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAg
dmFyIHJlc291cmNlMSA9IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZXNvdXJjZXNbMF07
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc291cmNlMS51cmwpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2VTaXplOiAiICsgcmVzb3VyY2UxLnJl
c291cmNlU2l6ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJ0cmFuc2ZlclNp
emU6ICIgKyByZXNvdXJjZTEudHJhbnNmZXJTaXplKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgbmV0d29yayByZXNvdXJjZSBzaXplIHJlcG9ydGlu
ZyBmb3IgY2h1bmtlZCB0cmFuc2ZlciBlbmNvZGluZy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstc2l6ZS1leHBlY3RlZC1jaHVua2VkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVjdGVkLWNodW5rZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYjliMDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1leHBl
Y3RlZC1jaHVua2VkLnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
MjogRG9uZS4KK1Rlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBvcnRpbmcuCisKKworaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5w
aHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUlY2h1bmtlZD10cnVlCityZXNvdXJjZVNp
emU6IDUwMAordHJhbnNmZXJTaXplOiAyMDgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhw
CmluZGV4IGI4MmFiNWIuLjQxNTRjOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHAK
QEAgLTYsNiArNiw3IEBACiAgICAgJGd6aXAgPSAkX0dFVFsiZ3ppcCJdOwogICAgICRqc2RlbGF5
ID0gJF9HRVRbImpzZGVsYXkiXTsKICAgICAkanNjb250ZW50ID0gJF9HRVRbImpzY29udGVudCJd
OworICAgICRjaHVua2VkID0gJF9HRVRbImNodW5rZWQiXTsKIAogICAgICMgRW5hYmxlIGd6aXAg
Y29tcHJlc3Npb24gaWYgbmVlZGVkCiAgICAgaWYgKCRnemlwKQpAQCAtNjcsMTYgKzY4LDMwIEBA
IF9fZm9vKDw/cGhwIGVjaG8oJGpzZGVsYXkpPz4pOwogICAgICAgICAkZGF0YV9sZW4gPSBzdHJs
ZW4oJGRhdGEpOwogICAgICAgICBwcmludCgkZGF0YSk7CiAgICAgICAgIGlmICgkc2l6ZSkgewor
ICAgICAgICAgICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsK
KyAgICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9y
ICgkaSA9IDA7ICRzaXplICYmICRpIDwgJHNpemUgLSAkZGF0YV9sZW47ICsrJGkpCiAgICAgICAg
ICAgICAgICAgZWNobygiPSIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBH
ZW5lcmF0ZSBkdW1teSB0ZXh0L2h0bWwuCiAgICAgICAgIGlmICgkc2l6ZSkgewotICAgICAgICAg
ICAgZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICsrJGkpCisgICAgICAgICAgICBmb3IgKCRpID0g
MDsgJGkgPCAkc2l6ZTsgKyskaSkgeworICAgICAgICAgICAgICAgIGlmICgkY2h1bmtlZCAmJiAo
MSA9PSAkaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWNo
bygiKiIpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZWNo
bygiSGVsbG8gd29ybGQiKTsKKyAgICAgICAgICAgIGVjaG8oIkhlbGxvICIpOworICAgICAgICAg
ICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAgICAgb2JfZmx1c2goKTsKKyAgICAgICAg
ICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWNobygid29ybGQi
KTsKICAgICAgICAgfQogICAgIH0KID8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNDdhOTM4NC4uZDc2ZWE4ZSAxMDA3
NTUKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dApAQCAtMzE4Niw3ICszMTg2LDEwIEBAIEJVR0pBTUVTUiBERUJVRyA6IGh0bWw1bGliL3J1
bm5lci5odG1sID0gUEFTUyBUSU1FT1VUCiBCVUdfQU5UT05NIDogc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdodFNvdXJjZS5odG1sID0g
SU1BR0UKIAogQlVHX1BGRUxETUFOIFNLSVAgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L25ldHdvcmstdGltaW5nLmh0bWwgPSBGQUlMCisKKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NjYwMgogQlVHX1BGRUxETUFOIFNLSVAgOiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sID0gRkFJTAorQlVHX1ZTRVZJSyBTS0lQ
IDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1s
ID0gRkFJTAogCiBCVUdKQU1FU1IgOiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1kaXNhYmxlLXRo
ZW4tZGVsZXRlLmh0bWwgPSBUSU1FT1VUIFBBU1MKIEJVR0NSNzQ0OTcgOiBwbGF0Zm9ybS93aW4v
cGx1Z2lucy93aW5kb3dsZXNzLXBhaW50LXJlY3QtY29vcmRpbmF0ZXMuaHRtbCA9IENSQVNICmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGY4YmMzNzYuLjExYjJmNTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzM4LDMgKzEzMzgsNiBAQCBzdmcvVzNDLUkxOE4vdGV4dC1k
aXJMVFItdWJPdmVycmlkZS5zdmcKIHN2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJFbWJlZC1p
bi1ydGwtY29udGV4dC5zdmcKIHN2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJOb25lLWluLXJ0
bC1jb250ZXh0LnN2Zwogc3ZnL1czQy1JMThOL3RzcGFuLWRpckxUUi11Yk92ZXJyaWRlLWluLXJ0
bC1jb250ZXh0LnN2ZworCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtl
ZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDAwMDRhYWMuLmU2M2UyNDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zMjIsMyArMzIyLDYgQEAgdHJhbnNpdGlvbnMv
aW50ZXJydXB0ZWQtYWNjZWxlcmF0ZWQtdHJhbnNpdGlvbi5odG1sCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQ4OAogY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMv
c2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC5odG1sCiBjb21wb3NpdGluZy90cmFuc2l0aW9ucy9z
aW5ndWxhci1zY2FsZS10cmFuc2l0aW9uLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaXplLWNodW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggODljNzk5
NC4uMmFlNmU5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0zMjM3LDMgKzMyMzcsNiBA
QCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGguaHRtbAogIyBbUXRdV2ViIElu
c3BlY3RvcjogaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUuaHRtbCBmYWls
cwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0NTcKIGluc3Bl
Y3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0bWwKKworIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApp
bmRleCA1NzZjNjY0Li5iYTc1OTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtNDgs
NiArNDgsOSBAQCBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci5o
dG1sCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sCiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstdGltaW5nLmh0bWwKIAorIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbAorCiAjIEZhaWxzIDxyZGFyOi8v
cHJvYmxlbS81Njc0Mjg5PgogbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wYXVzZWQuaHRtbAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYWJjOTU1Yy4uZGQzNmQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
IEBACisyMDExLTAzLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRy
YW5zZmVyIHNpemUgc3VwcG9ydCBpbiBpbnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3IgR2l2ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIgYW5k
IExlb3BhcmQgKHNob3VsZCBzaG93IGNvbXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisKKyAgICAgICAgVGVzdDogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGgpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLmdldCB0cmFuc2ZlclNpemUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5pbmNyZWFzZVRyYW5zZmVy
U2l6ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6c2Vu
ZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWROb3RpZmllci5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29u
bmVjdGlvbjpkaWRSZWNlaXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKwogMjAxMS0wMy0xNyAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjgxMzUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmlkbAppbmRleCA5MTlmYTdiLi45YmUxY2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbApAQCAtOTMsNyArOTMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtl
dmVudF0gdm9pZCB3aWxsU2VuZFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJs
ZSB0aW1lLCBvdXQgT2JqZWN0IHJlcXVlc3QsIG91dCBPYmplY3QgcmVkaXJlY3RSZXNwb25zZSk7
CiAgICAgICAgIFtldmVudF0gdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZChvdXQgbG9uZyBpZGVu
dGlmaWVyKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9u
ZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBv
dXQgT2JqZWN0IHJlc3BvbnNlKTsKLSAgICAgICAgW2V2ZW50XSB2b2lkIGRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IGxvbmcg
bGVuZ3RoUmVjZWl2ZWQpOworICAgICAgICBbZXZlbnRdIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBkYXRh
TGVuZ3RoLCBvdXQgbG9uZyBsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAgICAgICAgIFtldmVudF0gdm9pZCBkaWRGYWlsTG9hZGluZyhvdXQgbG9uZyBpZGVudGlm
aWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBTdHJpbmcgbG9jYWxpemVkRGVzY3JpcHRpb24pOwog
ICAgICAgICBbZXZlbnRdIHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKG91dCBk
b3VibGUgdGltZSwgb3V0IE9iamVjdCByZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGE3YWYyZTku
LmVlNWFmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00NTksMTAgKzQ1OSwxMCBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IElu
c3BlY3RvcklucwogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQordm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRh
dGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKICAgICBpZiAoSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3VyY2VBZ2VudChpbnNwZWN0b3JB
Z2VudCkpCi0gICAgICAgIHJlc291cmNlQWdlbnQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlk
ZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQp
OwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0lt
cGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI3NTljMTIuLmZjNTZlZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVJlc291cmNlRGF0YShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3Vy
Y2VSZXNwb25zZShGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNl
KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAg
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBk
YXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlz
aExvYWRpbmcoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hU
aW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZyhGcmFtZSosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHN0YXRpYyB2b2lkIHJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVO
dW1iZXIpOwpAQCAtMjM1LDcgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVJlc291cmNlRGF0YUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGhJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQg
bGVuZ3RoUmVjZWl2ZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
SW1wbChJbnNwZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFM
ZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9h
ZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJs
ZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zcGVj
dG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKICAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBs
KEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwg
dW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwpAQCAtNjc2LDExICs2NzYsMTEgQEAgaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShj
b25zdCBJbnNwZWN0b3IKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2Vp
dmVkKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUp
KQotICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVjdG9yQWdlbnQsIGlk
ZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGhJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNl
aXZlZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IGRiNDE2NDAuLjdmNTUzZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
QEAgLTM3NiwxMiArMzc2LDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgLy8gSWYg
d2UgcmV2YWxpZGF0ZWQgdGhlIHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNv
bnRlbnQgbGVuZ3RoIGZvbGxvd2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVy
ZSB3aWxsIGJlIG5vIGNhbGxzIHRvIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoIGZyb20gdGhlIG5l
dHdvcmsgc3RhY2suCiAgICAgaWYgKGNhY2hlZFJlc291cmNlU2l6ZSAmJiByZXNwb25zZS5odHRw
U3RhdHVzQ29kZSgpID09IDMwNCkKLSAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRl
bnRpZmllciwgY2FjaGVkUmVzb3VyY2VTaXplKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgoaWRlbnRpZmllciwgY2FjaGVkUmVzb3VyY2VTaXplLCAwKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCkKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBp
bnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIG1fZnJvbnRlbmQtPmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGN1cnJlbnRUaW1lKCksIGxlbmd0aFJl
Y2VpdmVkKTsKKyAgICBtX2Zyb250ZW5kLT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlm
aWVyLCBjdXJyZW50VGltZSgpLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggZjFiM2Q0Ni4uMjgxMjEwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNo
ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFM
ZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlk
RmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9y
Jik7CiAgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBDYWNoZWRSZXNvdXJjZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggODQ5MmI5ZS4uNWZjODVj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtNYW5hZ2VyLmpzCkBAIC0xODYsMTMgKzE4NiwxNSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rp
c3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRSZXNvdXJjZVRvRnJhbWUocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlKTsKICAg
ICB9LAogCi0gICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1bmN0aW9uKGlkZW50aWZpZXIs
IHRpbWUsIGxlbmd0aFJlY2VpdmVkKQorICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoOiBmdW5j
dGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7
CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVzb3VyY2VzQnlJZFtpZGVu
dGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVNpemUgKz0gbGVuZ3RoUmVjZWl2ZWQ7CisgICAgICAg
IHJlc291cmNlLnJlc291cmNlU2l6ZSArPSBkYXRhTGVuZ3RoOworICAgICAgICBpZiAobGVuZ3Ro
UmVjZWl2ZWQgIT0gLTEpCisgICAgICAgICAgICByZXNvdXJjZS5pbmNyZWFzZVRyYW5zZmVyU2l6
ZShsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIHJlc291cmNlLmVuZFRpbWUgPSB0aW1lOwogCiAg
ICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDZjZjViOWMuLjJiZjVkOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Uu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpA
QCAtMjQxLDcgKzI0MSwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGlmICh0aGlzLnN0YXR1c0NvZGUgPT09IDMw
NCkgLy8gTm90IG1vZGlmaWVkCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VIZWFk
ZXJzU2l6ZTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHByZWZlciB1c2luZyBDb250ZW50LUxlbmd0
aCBvdmVyIHJlc291cmNlU2l6ZSBhcworICAgICAgICBpZiAodGhpcy5fdHJhbnNmZXJTaXplICE9
PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXJTaXplOworICAg
ICAgICAvLyBJZiB3ZSBkaWQgbm90IHJlY2VpdmUgYWN0dWFsIHRyYW5zZmVyIHNpemUgZnJvbSBu
ZXR3b3JrCisgICAgICAgIC8vIHN0YWNrLCB3ZSBwcmVmZXIgdXNpbmcgQ29udGVudC1MZW5ndGgg
b3ZlciByZXNvdXJjZVNpemUgYXMKICAgICAgICAgLy8gcmVzb3VyY2VTaXplIG1heSBkaWZmZXIg
ZnJvbSBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBpZiBwbGF0Zm9ybSdzCiAgICAgICAgIC8vIG5ldHdv
cmsgc3RhY2sgcGVyZm9ybWVkIGRlY29kaW5nIChlLmcuIGd6aXAgZGVjb21wcmVzc2lvbikuCiAg
ICAgICAgIC8vIFRoZSBDb250ZW50LUxlbmd0aCwgdGhvdWdoLCBpcyBleHBlY3RlZCB0byBjb21l
IGZyb20gcmF3CkBAIC0yNDksMTEgKzI1MiwxNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJv
dG90eXBlID0gewogICAgICAgICAvLyBUaGlzIHdvbid0IHdvcmsgZm9yIGNodW5rZWQgY29udGVu
dCBlbmNvZGluZywgc28gZmFsbCBiYWNrIHRvCiAgICAgICAgIC8vIHJlc291cmNlU2l6ZSB3aGVu
IHdlIGRvbid0IGhhdmUgQ29udGVudC1MZW5ndGguIFRoaXMgc3RpbGwgd29uJ3QKICAgICAgICAg
Ly8gd29yayBmb3IgY2h1bmtzIHdpdGggbm9uLXRyaXZpYWwgZW5jb2RpbmdzLiBXZSBuZWVkIGEg
d2F5IHRvCi0gICAgICAgIC8vIGdldCBhY3RhdWwgdHJhbnNmZXIgc2l6ZSBmcm9tIHRoZSBuZXR3
b3JrIHN0YWNrLgorICAgICAgICAvLyBnZXQgYWN0dWFsIHRyYW5zZmVyIHNpemUgZnJvbSB0aGUg
bmV0d29yayBzdGFjay4KICAgICAgICAgdmFyIGJvZHlTaXplID0gTnVtYmVyKHRoaXMucmVzcG9u
c2VIZWFkZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMucmVzb3VyY2VTaXplKTsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlSGVhZGVyc1NpemUgKyBib2R5U2l6ZTsKICAgICB9LAog
CisgICAgaW5jcmVhc2VUcmFuc2ZlclNpemU6IGZ1bmN0aW9uKHgpCisgICAgeworICAgICAgICB0
aGlzLl90cmFuc2ZlclNpemUgPSAodGhpcy5fdHJhbnNmZXJTaXplIHx8IDApICsgeDsKKyAgICB9
LAorCiAgICAgZ2V0IGV4cGVjdGVkQ29udGVudExlbmd0aCgpCiAgICAgewogICAgICAgICByZXR1
cm4gdGhpcy5fZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHx8IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAppbmRleCBjOTI4NTU3Li40ZDZjZTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKQEAg
LTc0LDEyICs3NCwxMiBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzbwogICAgIGRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlm
aWVyKCksIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBp
bnQgbGVuZ3RoUmVjZWl2ZWQpCit2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxl
bmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5pbmNyZW1lbnRQcm9ncmVzcyhs
b2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgcGFnZS0+cHJvZ3Jl
c3MoKS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlmaWVyKCksIGRhdGEsIGRhdGFM
ZW5ndGgpOwogCi0gICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBsZW5ndGhSZWNlaXZlZCk7Cisg
ICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXItPmRvY3VtZW50TG9hZGVy
KCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZEZpbmlzaExvYWQoUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0xMzIsMTEgKzEzMiwxMSBAQCB2b2lk
IFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShEb2N1bWVu
dExvYWRlciogbG9hZGVyLCB1bgogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVudGlmaWVyLCBsb2FkZXIsIHIpOwogfQog
Ci12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50
IGxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIG1fZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2Fk
ZXIsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgZGF0
YUxlbmd0aCk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtX2ZyYW1lLCBpZGVudGlmaWVy
LCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90
aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9hZGVyLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpAQCAtMTYwLDcgKzE2
MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1l
c3NhZ2VzKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2
ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogCiAgICAgaWYgKGxlbmd0
aCA+IDApCi0gICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBp
ZGVudGlmaWVyLCBsZW5ndGgpOworICAgICAgICBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVuZ3RoLCAwKTsKIAogICAgIGlmIChlcnJvci5pc051
bGwoKSkKICAgICAgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmll
ciwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90
aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCmlu
ZGV4IGE2ZDkyZmIuLmYwM2VmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5oCkBAIC01MywxNCArNTMsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCB3
aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGludCwgaW50
IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVy
KiwgY29uc3QgY2hhciosIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAg
IHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsK
ICAgICB2b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2
ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVu
Z3RoKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVu
Z3RoUmVjZWl2ZWQpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAg
ICAgdm9pZCBkaXNwYXRjaFRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQg
bG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggYjMzMTQyNS4uZDMwNzVlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAK
QEAgLTU1NSw4ICs1NTUsMTAgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKIAogdm9pZCBBcHBs
aWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUs
IGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKKyAg
ICBVTlVTRURfUEFSQU0obGVuZ3RoUmVjZWl2ZWQpOworCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1f
ZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbGVuZ3RoUmVjZWl2ZWQpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9mcmFt
ZSwgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBsZW5ndGgsIDApOwogI2VuZGlmCiAKICAg
ICBpZiAoaGFuZGxlID09IG1fbWFuaWZlc3RIYW5kbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXgg
Nzg5MjYxOS4uM2JhYjdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTkxMyw2ICs5MTMsNyBAQCBT
dHJpbmcgUmVzb3VyY2VIYW5kbGU6OnByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRp
ZmllckRlZmF1bHRCYXNlKCkKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICop
Y29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhSZWNlaXZlZDoo
bG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OworICAgIFVOVVNFRF9QQVJBTShsZW5ndGhSZWNlaXZlZCk7CiAKICAgICBMT0coTmV0d29yaywg
IkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVEYXRhOiVwIGxlbmd0
aFJlY2VpdmVkOiVsbGQiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgZGF0YSwgbGVuZ3RoUmVjZWl2
ZWQpOwogCkBAIC05MjIsNyArOTIzLDEwIEBAIFN0cmluZyBSZXNvdXJjZUhhbmRsZTo6cHJpdmF0
ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyRGVmYXVsdEJhc2UoKQogICAgIC8vIEhv
d2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlz
IHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRo
IGEgZ2lhbnQgbG9jYWwgZmlsZS4KICAgICBDYWxsYmFja0d1YXJkIGd1YXJkOwotICAgIG1faGFu
ZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0
YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIHN0YXRpY19jYXN0PGludD4obGVuZ3RoUmVjZWl2ZWQp
KTsKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NzkzCisgICAgLy8gLTEgbWVhbnMgd2UgZG8gbm90IHByb3ZpZGUgYW55IGRhdGEgYWJvdXQg
dHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Igc28gaXQgd291bGQgdXNlCisgICAgLy8gQ29udGVu
dC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXplLgor
ICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBj
aGFyKilbZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIC0xKTsKIH0KIAogLSAodm9pZCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTdG9wQnVmZmVyaW5nRGF0
YTooTlNEYXRhICopZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCA2MWZlOTZjLi44ZTA2
NjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3
b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtNDcxLDggKzQ3MSwxMSBAQCB2b2lkIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSgpCiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkg
ZGF0YSBhYm91dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAg
ICAvLyBDb250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5z
ZmVyIHNpemUuCiAgICAgaWYgKCFkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgY2xpZW50LT5kaWRS
ZWNlaXZlRGF0YShtX3Jlc291cmNlSGFuZGxlLCBkYXRhLmNvbnN0RGF0YSgpLCBkYXRhLmxlbmd0
aCgpLCBkYXRhLmxlbmd0aCgpIC8qRml4TWUqLyk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2
ZURhdGEobV9yZXNvdXJjZUhhbmRsZSwgZGF0YS5jb25zdERhdGEoKSwgZGF0YS5sZW5ndGgoKSwg
LTEpOwogfQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjp1cGxvYWRQcm9ncmVzcyhxaW50
NjQgYnl0ZXNTZW50LCBxaW50NjQgYnl0ZXNUb3RhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5k
ZXggZDQxMGZhMy4uZTVkYTBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTM2NCw3ICsz
NjQsMTAgQEAgc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBT
b3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKIAogICAgIEFTU0VSVCghZC0+bV9yZXNw
b25zZS5pc051bGwoKSk7CiAKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQo
KSwgY2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIGNodW5rLT5sZW5ndGgpOworICAgIC8vIEZJ
WE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAv
LyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXpl
IHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFk
ZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCisgICAgY2xpZW50LT5k
aWRSZWNlaXZlRGF0YShoYW5kbGUuZ2V0KCksIGNodW5rLT5kYXRhLCBjaHVuay0+bGVuZ3RoLCAt
MSk7CiB9CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291cFNlc3Npb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCmluZGV4IGY1MDU0MGMuLmRjNWFkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAg
LTI0Miw4ICsyNDIsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUo
KQogICAgICAgICAgICAgICAgIHJlc291cmNlSGFuZGxlQ2xpZW50LT5kaWRSZWNlaXZlUmVzcG9u
c2UodGhpcywgcmVzcG9uc2UpOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gRklYTUU6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworICAgICAgICAvLyAtMSBt
ZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXplIHRvIGlu
c3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAgICAgLy8gQ29udGVudC1MZW5ndGggaGVhZGVy
cyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXplLgogICAgICAgICBpZiAoUmVz
b3VyY2VIYW5kbGVDbGllbnQqIHJlc291cmNlSGFuZGxlQ2xpZW50ID0gY2xpZW50KCkpCi0gICAg
ICAgICAgICByZXNvdXJjZUhhbmRsZUNsaWVudC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVy
LCBidWZmZXJzLmR3QnVmZmVyTGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIHJlc291cmNlSGFuZGxl
Q2xpZW50LT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIsIGJ1ZmZlcnMuZHdCdWZmZXJMZW5n
dGgsIC0xKTsKICAgICAgICAgYnVmZmVycy5kd0J1ZmZlckxlbmd0aCA9IGJ1ZmZlclNpemU7CiAg
ICAgfQogCkBAIC0zODUsOCArMzg4LDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmZpbGVMb2Fk
VGltZXIoVGltZXI8UmVzb3VyY2VIYW5kbGU+KikKICAgICAgICAgY29uc3QgaW50IGJ1ZmZlclNp
emUgPSA4MTkyOwogICAgICAgICBjaGFyIGJ1ZmZlcltidWZmZXJTaXplXTsKICAgICAgICAgcmVz
dWx0ID0gUmVhZEZpbGUoZmlsZUhhbmRsZSwgJmJ1ZmZlciwgYnVmZmVyU2l6ZSwgJmJ5dGVzUmVh
ZCwgMCk7CisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk3OTMKKyAgICAgICAgLy8gLTEgbWVhbnMgd2UgZG8gbm90IHByb3ZpZGUgYW55
IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Igc28gaXQgd291bGQgdXNlCisg
ICAgICAgIC8vIENvbnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3IgY29udGVudCBzaXplIHRvIHNob3cg
dHJhbnNmZXIgc2l6ZS4KICAgICAgICAgaWYgKHJlc3VsdCAmJiBieXRlc1JlYWQpCi0gICAgICAg
ICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVyLCBieXRlc1JlYWQsIDAp
OworICAgICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciwgYnl0
ZXNSZWFkLCAtMSk7CiAgICAgICAgIC8vIENoZWNrIGZvciBlbmQgb2YgZmlsZS4KICAgICB9IHdo
aWxlIChyZXN1bHQgJiYgYnl0ZXNSZWFkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA5NWQ0OTA0Li44Yjc3NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDExLTAzLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IHRyYW5zZmVyIHNpemUgc3VwcG9ydCBpbiBpbnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgR2l2ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIg
YW5kIExlb3BhcmQgKHNob3VsZCBzaG93IGNvbXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisKKyAgICAgICAgKiBzcmMv
UmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZl
RGF0YSk6CisKIDIwMTEtMDMtMTcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDcyZjYwYmIuLmVmZWZhYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1OSwx
OCArMTU5LDE3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3BvCiAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVSZXNwb25zZShtX293bmVyLCByZXNwb25zZS50b1Jlc291cmNlUmVzcG9uc2UoKSk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEoCi0gICAgV2Vi
VVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpCit2b2lkIFJlc291
cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAg
aWYgKG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVjZWl2ZWRSZXNwb25zZSAmJiBtX3N0YXRl
ICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGEpCiAgICAgICAgIENSQVNIKCk7CiAgICAg
bV9zdGF0ZSA9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGE7CiAKLSAgICAvLyBGSVhNRSh5
dXJ5cyk6IGl0IGxvb2tzIGxpa2UgbGVuZ3RoUmVjZWl2ZWQgaXMgYWx3YXlzIHRoZSBzYW1lIGFz
Ci0gICAgLy8gZGF0YUxlbmd0aCBhbmQgdGhhdCB0aGUgbGF0dGVyIHBhcmFtZXRlciBjYW4gYmUg
ZWxpbWluYXRlZC4KLSAgICAvLyBTZWUgV2ViS2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMDE5Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKG1f
b3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOworICAgIC8vIEZJWE1FKHZzZXZp
ayk6IEFkZCB0cmFuc2ZlciBzaXplIHN1cHBvcnQgdG8gY2hyb21pdW0gcG9ydAorICAgIC8vIFNl
ZSBXZWJLaXQgYnVnczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
MDE5CisgICAgLy8gICAgICAgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEobV9vd25lciwg
ZGF0YSwgZGF0YUxlbmd0aCwgLTEpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6
OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgZGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA2MmE5ZDk1Li5jMzZhNjJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBA
IC0yODQsNyArMjg0LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWUKIAogdm9pZCBXZWJEZXZU
b29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkLCBp
bnQgbGVuZ3RoKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGgobWFpbkZyYW1lKCksIHJlc291cmNlSWQsIGxlbmd0aCk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtYWluRnJhbWUoKSwg
cmVzb3VyY2VJZCwgbGVuZ3RoLCAtMSk7CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6
OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNvbnN0IFdlYlVS
TFJlc3BvbnNlJiByZXNwb25zZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86113</attachid>
            <date>2011-03-17 16:46:53 -0700</date>
            <delta_ts>2011-03-18 04:21:36 -0700</delta_ts>
            <desc>Patch with fixes2</desc>
            <filename>nw</filename>
            <type>text/plain</type>
            <size>32362</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZThlMmI3Li41MDk1YWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMt
MTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIElu
c3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hv
dWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xNyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstc2l6ZS1jaHVua2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k
ZXggMDAwMDAwMC4uNGI5NGI0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkSW1hZ2VzKCkKK3sKKyAgICB2
YXIgaW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICBpbWFnZS5vbmxv
YWQgPSByZXNvdXJjZUxvYWRlZDsKKyAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNv
dXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2Umc2l6ZT01MDAmZ3ppcD10cnVlJmNodW5rZWQ9
dHJ1ZSIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOworfQorCitmdW5j
dGlvbiByZXNvdXJjZUxvYWRlZCgpCit7CisgICAgY29uc29sZS5sb2coIkRvbmUuIik7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkSW1hZ2VzKCkiKTsKKworICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZTEgPSBXZWJJbnNwZWN0b3Iu
cGFuZWxzLm5ldHdvcmsucmVzb3VyY2VzWzBdOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChyZXNvdXJjZTEudXJsKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJl
c291cmNlU2l6ZTogIiArIHJlc291cmNlMS5yZXNvdXJjZVNpemUpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgidHJhbnNmZXJTaXplOiAiICsgcmVzb3VyY2UxLnRyYW5zZmVyU2l6
ZSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIG5l
dHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBvcnRpbmcgZm9yIGNodW5rZWQgdHJhbnNmZXIgZW5jb2Rp
bmcuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1l
eHBlY3RlZC1jaHVua2VkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZGI5YjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50eHQKQEAgLTAsMCArMSw4
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IERvbmUuCitUZXN0cyBuZXR3b3JrIHJlc291
cmNlIHNpemUgcmVwb3J0aW5nLgorCisKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwP3R5cGU9aW1hZ2Umc2l6ZT01MDAmZ3ppcD10
cnVlJWNodW5rZWQ9dHJ1ZQorcmVzb3VyY2VTaXplOiA1MDAKK3RyYW5zZmVyU2l6ZTogMjA4CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2VzL3Jlc291cmNlLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocAppbmRleCBiODJhYjViLi40MTU0YzhlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9yZXNvdXJjZS5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwCkBAIC02LDYgKzYsNyBAQAogICAgICRnemlwID0g
JF9HRVRbImd6aXAiXTsKICAgICAkanNkZWxheSA9ICRfR0VUWyJqc2RlbGF5Il07CiAgICAgJGpz
Y29udGVudCA9ICRfR0VUWyJqc2NvbnRlbnQiXTsKKyAgICAkY2h1bmtlZCA9ICRfR0VUWyJjaHVu
a2VkIl07CiAKICAgICAjIEVuYWJsZSBnemlwIGNvbXByZXNzaW9uIGlmIG5lZWRlZAogICAgIGlm
ICgkZ3ppcCkKQEAgLTY3LDE2ICs2OCwzMCBAQCBfX2Zvbyg8P3BocCBlY2hvKCRqc2RlbGF5KT8+
KTsKICAgICAgICAgJGRhdGFfbGVuID0gc3RybGVuKCRkYXRhKTsKICAgICAgICAgcHJpbnQoJGRh
dGEpOwogICAgICAgICBpZiAoJHNpemUpIHsKKyAgICAgICAgICAgIGlmICgkY2h1bmtlZCkgewor
ICAgICAgICAgICAgICAgIG9iX2ZsdXNoKCk7CisgICAgICAgICAgICAgICAgZmx1c2goKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkc2l6ZSAmJiAkaSA8ICRzaXpl
IC0gJGRhdGFfbGVuOyArKyRpKQogICAgICAgICAgICAgICAgIGVjaG8oIj0iKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7CiAgICAgICAgICMgR2VuZXJhdGUgZHVtbXkgdGV4dC9odG1sLgogICAg
ICAgICBpZiAoJHNpemUpIHsKLSAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRzaXplOyAr
KyRpKQorICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICsrJGkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoJGNodW5rZWQgJiYgKDEgPT0gJGkpKSB7CisgICAgICAgICAgICAgICAg
ICAgIG9iX2ZsdXNoKCk7CisgICAgICAgICAgICAgICAgICAgIGZsdXNoKCk7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGVjaG8oIioiKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVjaG8oIkhlbGxvIHdvcmxkIik7CisgICAgICAgICAg
ICBlY2hvKCJIZWxsbyAiKTsKKyAgICAgICAgICAgIGlmICgkY2h1bmtlZCkgeworICAgICAgICAg
ICAgICAgIG9iX2ZsdXNoKCk7CisgICAgICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGVjaG8oIndvcmxkIik7CiAgICAgICAgIH0KICAgICB9CiA/PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CmluZGV4IDViYWMwODQuLmRhY2ZhY2MgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTMxOTUsNyArMzE5NSwxMCBAQCBC
VUdKQU1FU1IgREVCVUcgOiBodG1sNWxpYi9ydW5uZXIuaHRtbCA9IFBBU1MgVElNRU9VVAogQlVH
X0FOVE9OTSA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC1yZW1vdmUtbGlnaHRTb3VyY2UuaHRtbCA9IElNQUdFCiAKIEJVR19QRkVMRE1BTiBTS0lQIDog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sID0gRkFJTAor
CisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY2MDIKIEJVR19Q
RkVMRE1BTiBTS0lQIDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUu
aHRtbCA9IEZBSUwKK0JVR19WU0VWSUsgU0tJUCA6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbCA9IEZBSUwKIAogQlVHSkFNRVNSIDogaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWRlbGV0ZS5odG1sID0gVElNRU9VVCBQQVNT
CiBCVUdDUjc0NDk3IDogcGxhdGZvcm0vd2luL3BsdWdpbnMvd2luZG93bGVzcy1wYWludC1yZWN0
LWNvb3JkaW5hdGVzLmh0bWwgPSBDUkFTSApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBl
ZmQwYTdhLi4zZjIxZWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTM0MSwzICsx
MzQxLDYgQEAgc3ZnL1czQy1JMThOL3RzcGFuLWRpckxUUi11Yk92ZXJyaWRlLWluLXJ0bC1jb250
ZXh0LnN2ZwogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjU5
OQogZWRpdGluZy9kZWxldGluZy81MjA2MzExLTEuaHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4
IDAwMDRhYWMuLmU2M2UyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zMjIsMyAr
MzIyLDYgQEAgdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQtYWNjZWxlcmF0ZWQtdHJhbnNpdGlvbi5o
dG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQ4OAogY29t
cG9zaXRpbmcvdHJhbnNpdGlvbnMvc2NhbGUtdHJhbnNpdGlvbi1uby1zdGFydC5odG1sCiBjb21w
b3NpdGluZy90cmFuc2l0aW9ucy9zaW5ndWxhci1zY2FsZS10cmFuc2l0aW9uLmh0bWwKKworIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKaW5kZXggMGY3ZmEzYS4uMTE4NDM4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CkBAIC0zMjQyLDMgKzMyNDIsNiBAQCBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24t
bm9kZS5odG1sCiAjIFJFR1JFU1NJT04oODEzNzQsIDgxMzg0KTogZWRpdGluZy9kZWxldGluZy81
MjA2MzExLTEuaHRtbCBoaXRzIGFzc2VydGlvbiBvbiBub24tTWFjIHBsYXRmb3JtcwogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY1OTkKIGVkaXRpbmcvZGVsZXRp
bmcvNTIwNjMxMS0xLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNo
dW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5M2Y3OTNhLi45YTQ3YjE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtNDgsNiArNDgsOSBAQCBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXdlYnNvY2tldC1lcnJvci5odG1sCiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS5odG1sCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL25ldHdvcmstdGltaW5nLmh0bWwKIAorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1z
aXplLWNodW5rZWQuaHRtbAorCiAjIEZhaWxzIDxyZGFyOi8vcHJvYmxlbS81Njc0Mjg5PgogbWVk
aWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wYXVzZWQuaHRtbAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczYTEx
Ni4uNDc4NTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTAzLTE3ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRyYW5zZmVyIHNpemUgc3VwcG9ydCBp
biBpbnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQorCisgICAgICAgIFdlYiBJbnNwZWN0b3Ig
R2l2ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIgYW5kIExlb3BhcmQgKHNob3VsZCBzaG93
IGNvbXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NzkzCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlz
cGF0Y2hlci5wcm90b3R5cGUuZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2UucHJvdG90eXBlLmdldCB0cmFuc2ZlclNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlLnByb3RvdHlwZS5pbmNyZWFzZVRyYW5zZmVyU2l6ZSk6CisgICAgICAgICogbG9h
ZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVz
c2FnZXMpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oOgorICAgICAg
ICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlRGF0
YTpsZW5ndGhSZWNlaXZlZDpdKToKKwogMjAxMS0wMy0xNyAgWmhlbnlhbyBNbyAgPHptb0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IDdjYTEyNTYuLjk5ZjQ1ODdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtOTMsNyArOTMsNyBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIFtldmVudF0gdm9pZCB3aWxsU2VuZFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRp
Zmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgW3R5cGVSZWY9bmV0d29yazo6UmVxdWVzdF0gT2Jq
ZWN0IHJlcXVlc3QsIG91dCBbdHlwZVJlZj1uZXR3b3JrOjpSZXNwb25zZV0gT2JqZWN0IHJlZGly
ZWN0UmVzcG9uc2UpOwogICAgICAgICBbZXZlbnRdIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQo
b3V0IGxvbmcgaWRlbnRpZmllcik7CiAgICAgICAgIFtldmVudF0gdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2Uob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIHJl
c291cmNlVHlwZSwgb3V0IFt0eXBlUmVmPW5ldHdvcms6OlJlc3BvbnNlXSBPYmplY3QgcmVzcG9u
c2UpOwotICAgICAgICBbZXZlbnRdIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgob3V0IGxv
bmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBsZW5ndGhSZWNlaXZlZCk7
CisgICAgICAgIFtldmVudF0gdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBsb25nIGRhdGFMZW5ndGgsIG91dCBsb25n
IGxlbmd0aFJlY2VpdmVkKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpZEZpbmlzaExvYWRpbmco
b3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgW2V2
ZW50XSB2b2lkIGRpZEZhaWxMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUg
dGltZSwgb3V0IFN0cmluZyBsb2NhbGl6ZWREZXNjcmlwdGlvbik7CiAgICAgICAgIFtldmVudF0g
dm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUob3V0IGRvdWJsZSB0aW1lLCBvdXQg
W3R5cGVSZWY9bmV0d29yazo6Q2FjaGVkUmVzb3VyY2VdIE9iamVjdCByZXNvdXJjZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IGE3YWYyZTkuLmVlNWFmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00NTksMTAgKzQ1OSwx
MCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVz
cG9uc2VJbXBsKGNvbnN0IEluc3BlY3RvcklucwogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJl
Y2VpdmVkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKICAgICBp
ZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3Vy
Y2VBZ2VudChpbnNwZWN0b3JBZ2VudCkpCi0gICAgICAgIHJlc291cmNlQWdlbnQtPmRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgcmVz
b3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgZGF0YUxlbmd0
aCwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDI3NTlj
MTIuLmZjNTZlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJh
bWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7CisgICAg
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHN0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZyhG
cmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwog
ICAgIHN0YXRpYyB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwg
dW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwpAQCAtMjM1LDcgKzIzNSw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKEluc3BlY3RvckFnZW50
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgc3RhdGlj
IHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWls
TG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKICAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5
WE1MSHR0cFJlcXVlc3RJbXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwpAQCAtNjc2LDExICs2
NzYsMTEgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
UmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKICNlbmRpZgogfQogCi1pbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCitp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0
aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250
ZW5kRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwo
aW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBkYXRh
TGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDZhMTVmMjAu
LmY2YmQ2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKQEAgLTM3NiwxMiArMzc2LDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
RG9jdW1lCiAgICAgLy8gSWYgd2UgcmV2YWxpZGF0ZWQgdGhlIHJlc291cmNlIGFuZCBnb3QgTm90
IG1vZGlmaWVkLCBzZW5kIGNvbnRlbnQgbGVuZ3RoIGZvbGxvd2luZyBkaWRSZWNlaXZlUmVzcG9u
c2UKICAgICAvLyBhcyB0aGVyZSB3aWxsIGJlIG5vIGNhbGxzIHRvIGRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoIGZyb20gdGhlIG5ldHdvcmsgc3RhY2suCiAgICAgaWYgKGNhY2hlZFJlc291cmNlU2l6
ZSAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCkKLSAgICAgICAgZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgY2FjaGVkUmVzb3VyY2VTaXplKTsKKyAgICAgICAg
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgY2FjaGVkUmVzb3VyY2VTaXplLCAw
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlQ29udGVudExl
bmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCkKK3ZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewot
ICAgIG1fZnJvbnRlbmQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGN1cnJl
bnRUaW1lKCksIGxlbmd0aFJlY2VpdmVkKTsKKyAgICBtX2Zyb250ZW5kLT5kaWRSZWNlaXZlQ29u
dGVudExlbmd0aChpZGVudGlmaWVyLCBjdXJyZW50VGltZSgpLCBkYXRhTGVuZ3RoLCBsZW5ndGhS
ZWNlaXZlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9h
ZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXgg
ZjFiM2Q0Ni4uMjgxMjEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQg
bWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9h
ZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2Vp
dmVkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRp
bWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBDYWNoZWRSZXNvdXJjZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5k
ZXggODQ5MmI5ZS4uNWZjODVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xODYsMTMgKzE4NiwxNSBAQCBXZWJJ
bnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9y
ZXNvdXJjZVRyZWVNb2RlbC5hZGRSZXNvdXJjZVRvRnJhbWUocmVzb3VyY2UubG9hZGVyLmZyYW1l
SWQsIHJlc291cmNlKTsKICAgICB9LAogCi0gICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1
bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGxlbmd0aFJlY2VpdmVkKQorICAgIGRpZFJlY2VpdmVD
b250ZW50TGVuZ3RoOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5n
dGhSZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0
UmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVNpemUgKz0gbGVuZ3Ro
UmVjZWl2ZWQ7CisgICAgICAgIHJlc291cmNlLnJlc291cmNlU2l6ZSArPSBkYXRhTGVuZ3RoOwor
ICAgICAgICBpZiAobGVuZ3RoUmVjZWl2ZWQgIT0gLTEpCisgICAgICAgICAgICByZXNvdXJjZS5p
bmNyZWFzZVRyYW5zZmVyU2l6ZShsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIHJlc291cmNlLmVu
ZFRpbWUgPSB0aW1lOwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Uu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4
IDZjZjViOWMuLjJiZjVkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZS5qcwpAQCAtMjQxLDcgKzI0MSwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGlmICh0aGlz
LnN0YXR1c0NvZGUgPT09IDMwNCkgLy8gTm90IG1vZGlmaWVkCiAgICAgICAgICAgICByZXR1cm4g
dGhpcy5fcmVzcG9uc2VIZWFkZXJzU2l6ZTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHByZWZlciB1
c2luZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291cmNlU2l6ZSBhcworICAgICAgICBpZiAodGhp
cy5fdHJhbnNmZXJTaXplICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5f
dHJhbnNmZXJTaXplOworICAgICAgICAvLyBJZiB3ZSBkaWQgbm90IHJlY2VpdmUgYWN0dWFsIHRy
YW5zZmVyIHNpemUgZnJvbSBuZXR3b3JrCisgICAgICAgIC8vIHN0YWNrLCB3ZSBwcmVmZXIgdXNp
bmcgQ29udGVudC1MZW5ndGggb3ZlciByZXNvdXJjZVNpemUgYXMKICAgICAgICAgLy8gcmVzb3Vy
Y2VTaXplIG1heSBkaWZmZXIgZnJvbSBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBpZiBwbGF0Zm9ybSdz
CiAgICAgICAgIC8vIG5ldHdvcmsgc3RhY2sgcGVyZm9ybWVkIGRlY29kaW5nIChlLmcuIGd6aXAg
ZGVjb21wcmVzc2lvbikuCiAgICAgICAgIC8vIFRoZSBDb250ZW50LUxlbmd0aCwgdGhvdWdoLCBp
cyBleHBlY3RlZCB0byBjb21lIGZyb20gcmF3CkBAIC0yNDksMTEgKzI1MiwxNiBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAvLyBUaGlzIHdvbid0IHdvcmsg
Zm9yIGNodW5rZWQgY29udGVudCBlbmNvZGluZywgc28gZmFsbCBiYWNrIHRvCiAgICAgICAgIC8v
IHJlc291cmNlU2l6ZSB3aGVuIHdlIGRvbid0IGhhdmUgQ29udGVudC1MZW5ndGguIFRoaXMgc3Rp
bGwgd29uJ3QKICAgICAgICAgLy8gd29yayBmb3IgY2h1bmtzIHdpdGggbm9uLXRyaXZpYWwgZW5j
b2RpbmdzLiBXZSBuZWVkIGEgd2F5IHRvCi0gICAgICAgIC8vIGdldCBhY3RhdWwgdHJhbnNmZXIg
c2l6ZSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgorICAgICAgICAvLyBnZXQgYWN0dWFsIHRyYW5z
ZmVyIHNpemUgZnJvbSB0aGUgbmV0d29yayBzdGFjay4KICAgICAgICAgdmFyIGJvZHlTaXplID0g
TnVtYmVyKHRoaXMucmVzcG9uc2VIZWFkZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMucmVz
b3VyY2VTaXplKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlSGVhZGVyc1NpemUgKyBi
b2R5U2l6ZTsKICAgICB9LAogCisgICAgaW5jcmVhc2VUcmFuc2ZlclNpemU6IGZ1bmN0aW9uKHgp
CisgICAgeworICAgICAgICB0aGlzLl90cmFuc2ZlclNpemUgPSAodGhpcy5fdHJhbnNmZXJTaXpl
IHx8IDApICsgeDsKKyAgICB9LAorCiAgICAgZ2V0IGV4cGVjdGVkQ29udGVudExlbmd0aCgpCiAg
ICAgewogICAgICAgICByZXR1cm4gdGhpcy5fZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHx8IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAppbmRleCBj
OTI4NTU3Li40ZDZjZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWROb3RpZmllci5jcHAKQEAgLTc0LDEyICs3NCwxMiBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlm
aWVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVz
bwogICAgIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIo
KSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlm
aWVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCit2b2lkIFJlc291cmNlTG9hZE5v
dGlmaWVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5p
bmNyZW1lbnRQcm9ncmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgbGVuZ3RoKTsKKyAg
ICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlm
aWVyKCksIGRhdGEsIGRhdGFMZW5ndGgpOwogCi0gICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVu
dExlbmd0aChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBs
ZW5ndGhSZWNlaXZlZCk7CisgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBkYXRhTGVuZ3RoLCBs
ZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZEZpbmlz
aExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0xMzIs
MTEgKzEzMiwxMSBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZFJlY2Vp
dmVSZXNwb25zZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bgogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVudGlmaWVy
LCBsb2FkZXIsIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgaW50IGxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRp
c3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVk
KQogewotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZl
Q29udGVudExlbmd0aChsb2FkZXIsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgbV9mcmFtZS0+
bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRl
ciwgaWRlbnRpZmllciwgZGF0YUxlbmd0aCk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGxlbmd0aCk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCht
X2ZyYW1lLCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZv
aWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVu
dExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hU
aW1lKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRS
ZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgICAg
IGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmllciwgcmVzcG9uc2Up
OwogCiAgICAgaWYgKGxlbmd0aCA+IDApCi0gICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgobG9hZGVyLCBpZGVudGlmaWVyLCBsZW5ndGgpOworICAgICAgICBkaXNwYXRjaERp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVuZ3RoLCAwKTsKIAog
ICAgIGlmIChlcnJvci5pc051bGwoKSkKICAgICAgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5n
KGxvYWRlciwgaWRlbnRpZmllciwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5oCmluZGV4IGE2ZDkyZmIuLmYwM2VmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCkBAIC01MywxNCArNTMsMTQgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VMb2FkZXIqLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29u
c3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVu
Z3RoUmVjZWl2ZWQpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciosIGRv
dWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0lu
aXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0
KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lk
IGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaXNwYXRj
aERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBpbnQgbGVuZ3RoKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBk
YXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3Vi
bGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaXNwYXRjaFRyYW5zZmVyTG9hZGluZ1Jlc291cmNl
RnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBQYWdlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggYjMzMTQyNS4uZDMwNzVlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTU1NSw4ICs1NTUsMTAgQEAgdm9pZCBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25z
dCBSZXMKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBsZW5n
dGhSZWNlaXZlZCkKIHsKKyAgICBVTlVTRURfUEFSQU0obGVuZ3RoUmVjZWl2ZWQpOworCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbGVu
Z3RoUmVjZWl2ZWQpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGgobV9mcmFtZSwgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBsZW5ndGgs
IDApOwogI2VuZGlmCiAKICAgICBpZiAoaGFuZGxlID09IG1fbWFuaWZlc3RIYW5kbGUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KaW5kZXggNzg5MjYxOS4uM2JhYjdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAg
LTkxMyw2ICs5MTMsNyBAQCBTdHJpbmcgUmVzb3VyY2VIYW5kbGU6OnByaXZhdGVCcm93c2luZ1N0
b3JhZ2VTZXNzaW9uSWRlbnRpZmllckRlZmF1bHRCYXNlKCkKIC0gKHZvaWQpY29ubmVjdGlvbjoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0
YSBsZW5ndGhSZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShsZW5ndGhSZWNlaXZlZCk7CiAK
ICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJl
Y2VpdmVEYXRhOiVwIGxlbmd0aFJlY2VpdmVkOiVsbGQiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwg
ZGF0YSwgbGVuZ3RoUmVjZWl2ZWQpOwogCkBAIC05MjIsNyArOTIzLDEwIEBAIFN0cmluZyBSZXNv
dXJjZUhhbmRsZTo6cHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyRGVmYXVs
dEJhc2UoKQogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdv
cmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3Vs
ZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lhbnQgbG9jYWwgZmlsZS4KICAgICBDYWxsYmFja0d1YXJk
IGd1YXJkOwotICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUs
IChjb25zdCBjaGFyKilbZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIHN0YXRpY19jYXN0PGlu
dD4obGVuZ3RoUmVjZWl2ZWQpKTsKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisgICAgLy8gLTEgbWVhbnMgd2UgZG8gbm90IHByb3Zp
ZGUgYW55IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Igc28gaXQgd291bGQg
dXNlCisgICAgLy8gQ29udGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hv
dyB0cmFuc2ZlciBzaXplLgorICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEo
bV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIC0xKTsK
IH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdp
bGxTdG9wQnVmZmVyaW5nRGF0YTooTlNEYXRhICopZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApp
bmRleCA2MWZlOTZjLi44ZTA2NjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtNDcxLDgg
KzQ3MSwxMSBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSgpCiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAvLyAtMSBtZWFucyB3ZSBk
byBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBz
byBpdCB3b3VsZCB1c2UKKyAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQg
c2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCiAgICAgaWYgKCFkYXRhLmlzRW1wdHkoKSkKLSAg
ICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShtX3Jlc291cmNlSGFuZGxlLCBkYXRhLmNvbnN0
RGF0YSgpLCBkYXRhLmxlbmd0aCgpLCBkYXRhLmxlbmd0aCgpIC8qRml4TWUqLyk7CisgICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEobV9yZXNvdXJjZUhhbmRsZSwgZGF0YS5jb25zdERhdGEo
KSwgZGF0YS5sZW5ndGgoKSwgLTEpOwogfQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjp1
cGxvYWRQcm9ncmVzcyhxaW50NjQgYnl0ZXNTZW50LCBxaW50NjQgYnl0ZXNUb3RhbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKaW5kZXggZDQxMGZhMy4uZTVkYTBlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAKQEAgLTM2NCw3ICszNjQsMTAgQEAgc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhT
b3VwTWVzc2FnZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKIAogICAg
IEFTU0VSVCghZC0+bV9yZXNwb25zZS5pc051bGwoKSk7CiAKLSAgICBjbGllbnQtPmRpZFJlY2Vp
dmVEYXRhKGhhbmRsZS5nZXQoKSwgY2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIGNodW5rLT5s
ZW5ndGgpOworICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3OTMKKyAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBh
Ym91dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAvLyBD
b250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5zZmVyIHNp
emUuCisgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUuZ2V0KCksIGNodW5rLT5kYXRh
LCBjaHVuay0+bGVuZ3RoLCAtMSk7CiB9CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291
cFNlc3Npb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IGY1MDU0MGMuLmRjNWFkYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHAKQEAgLTI0Miw4ICsyNDIsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6
b25SZXF1ZXN0Q29tcGxldGUoKQogICAgICAgICAgICAgICAgIHJlc291cmNlSGFuZGxlQ2xpZW50
LT5kaWRSZWNlaXZlUmVzcG9uc2UodGhpcywgcmVzcG9uc2UpOwogICAgICAgICB9CiAKKyAgICAg
ICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5
MworICAgICAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0
cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAgICAgLy8gQ29u
dGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXpl
LgogICAgICAgICBpZiAoUmVzb3VyY2VIYW5kbGVDbGllbnQqIHJlc291cmNlSGFuZGxlQ2xpZW50
ID0gY2xpZW50KCkpCi0gICAgICAgICAgICByZXNvdXJjZUhhbmRsZUNsaWVudC0+ZGlkUmVjZWl2
ZURhdGEodGhpcywgYnVmZmVyLCBidWZmZXJzLmR3QnVmZmVyTGVuZ3RoLCAwKTsKKyAgICAgICAg
ICAgIHJlc291cmNlSGFuZGxlQ2xpZW50LT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIsIGJ1
ZmZlcnMuZHdCdWZmZXJMZW5ndGgsIC0xKTsKICAgICAgICAgYnVmZmVycy5kd0J1ZmZlckxlbmd0
aCA9IGJ1ZmZlclNpemU7CiAgICAgfQogCkBAIC0zODUsOCArMzg4LDExIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmZpbGVMb2FkVGltZXIoVGltZXI8UmVzb3VyY2VIYW5kbGU+KikKICAgICAgICAg
Y29uc3QgaW50IGJ1ZmZlclNpemUgPSA4MTkyOwogICAgICAgICBjaGFyIGJ1ZmZlcltidWZmZXJT
aXplXTsKICAgICAgICAgcmVzdWx0ID0gUmVhZEZpbGUoZmlsZUhhbmRsZSwgJmJ1ZmZlciwgYnVm
ZmVyU2l6ZSwgJmJ5dGVzUmVhZCwgMCk7CisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAgICAgLy8gLTEgbWVhbnMgd2Ug
ZG8gbm90IHByb3ZpZGUgYW55IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Ig
c28gaXQgd291bGQgdXNlCisgICAgICAgIC8vIENvbnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3IgY29u
dGVudCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6ZS4KICAgICAgICAgaWYgKHJlc3VsdCAmJiBi
eXRlc1JlYWQpCi0gICAgICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVm
ZmVyLCBieXRlc1JlYWQsIDApOworICAgICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRh
KHRoaXMsIGJ1ZmZlciwgYnl0ZXNSZWFkLCAtMSk7CiAgICAgICAgIC8vIENoZWNrIGZvciBlbmQg
b2YgZmlsZS4KICAgICB9IHdoaWxlIChyZXN1bHQgJiYgYnl0ZXNSZWFkKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBlMTQzMmYxLi4yYjQ2ZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2
c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIHRyYW5zZmVyIHNpemUgc3VwcG9ydCBpbiBpbnNwZWN0b3IgZm9y
IGNvbXByZXNzZWQgZGF0YQorCisgICAgICAgIFdlYiBJbnNwZWN0b3IgR2l2ZXMgRGlmZmVyZW50
IFJlc3VsdHMgb24gVGlnZXIgYW5kIExlb3BhcmQgKHNob3VsZCBzaG93IGNvbXByZXNzZWQgc2l6
ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzkz
CisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHNyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdl
bnRJbXBsOjpkaWRSZWNlaXZlRGF0YSk6CisKIDIwMTEtMDMtMTcgIEFkcmllbm5lIFdhbGtlciAg
PGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA3
MmY2MGJiLi5lZmVmYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9S
ZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC0xNTksMTggKzE1OSwxNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxSZXNw
bwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9vd25lciwgcmVzcG9uc2UudG9S
ZXNvdXJjZVJlc3BvbnNlKCkpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRp
ZFJlY2VpdmVEYXRhKAotICAgIFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKQordm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRSZWNlaXZlRGF0YShX
ZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKIHsKICAgICBB
U1NFUlQobV9jbGllbnQpOwogICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2Vp
dmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhKQog
ICAgICAgICBDUkFTSCgpOwogICAgIG1fc3RhdGUgPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdE
YXRhOwogCi0gICAgLy8gRklYTUUoeXVyeXMpOiBpdCBsb29rcyBsaWtlIGxlbmd0aFJlY2VpdmVk
IGlzIGFsd2F5cyB0aGUgc2FtZSBhcwotICAgIC8vIGRhdGFMZW5ndGggYW5kIHRoYXQgdGhlIGxh
dHRlciBwYXJhbWV0ZXIgY2FuIGJlIGVsaW1pbmF0ZWQuCi0gICAgLy8gU2VlIFdlYktpdCBidWc6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAxOQotICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlRGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoLCBkYXRhTGVuZ3Ro
KTsKKyAgICAvLyBGSVhNRSh2c2V2aWspOiBBZGQgdHJhbnNmZXIgc2l6ZSBzdXBwb3J0IHRvIGNo
cm9taXVtIHBvcnQKKyAgICAvLyBTZWUgV2ViS2l0IGJ1Z3M6IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAxOQorICAgIC8vICAgICAgICAgICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIC0xKTsKIH0KIAogdm9pZCBS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9h
ZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNjJhOWQ5
NS4uYzM2YTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgV2ViRGV2VG9vbHNB
Z2VudEltcGw6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIFdlYlVS
TFJlcXVlCiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVEYXRhKHVuc2ln
bmVkIGxvbmcgcmVzb3VyY2VJZCwgaW50IGxlbmd0aCkKIHsKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1haW5GcmFtZSgpLCByZXNvdXJjZUlk
LCBsZW5ndGgpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgobWFpbkZyYW1lKCksIHJlc291cmNlSWQsIGxlbmd0aCwgLTEpOwogfQogCiB2b2lk
IFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBy
ZXNvdXJjZUlkLCBjb25zdCBXZWJVUkxSZXNwb25zZSYgcmVzcG9uc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86155</attachid>
            <date>2011-03-18 04:21:36 -0700</date>
            <delta_ts>2011-03-18 05:49:42 -0700</delta_ts>
            <desc>Patch + changelogs update forgotten earlier</desc>
            <filename>nw</filename>
            <type>text/plain</type>
            <size>1832</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MDk1YWExLi45ZWI1OGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMt
MTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgTmVlZCBh
IHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhw
ZWN0ZWQtY2h1bmtlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
cXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0x
NyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0Nzg1OTQ3Li5mMzA1NzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDQgKzEsNCBAQAotMjAxMS0wMy0xNyAgVnNldm9sb2QgVmxhc292ICA8
dnNldmlrQGNocm9taXVtLm9yZz4KKzIwMTEtMDMtMTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZp
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
QEAgLTMyLDYgKzMyLDEzIEBACiAgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmRpZFJlY2VpdmVEYXRhKToKICAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbToKICAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxl
Z2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdvdENodW5rQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpvblJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZmlsZUxvYWRUaW1lcik6CiAKIDIwMTEtMDMtMTcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xl
LmNvbT4KIAo=
</data>
<flag name="review"
          id="78390"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86157</attachid>
            <date>2011-03-18 05:49:42 -0700</date>
            <delta_ts>2011-03-18 08:08:35 -0700</delta_ts>
            <desc>Patch with fixes</desc>
            <filename>nw2</filename>
            <type>text/plain</type>
            <size>32499</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTZhNzAwLi4wMTE2ODEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMt
MTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBz
dXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIElu
c3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hv
dWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2VzL3Jlc291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xOCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZp
ZXdlZCwgZml4IGN1c3RvbSBleHBlY3RhdGlvbiBhZnRlciByODE0MzgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWNodW5r
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1zaXplLWNodW5rZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40
Yjk0YjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWRJbWFnZXMoKQoreworICAgIHZhciBpbWFnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgIGltYWdlLm9ubG9hZCA9IHJlc291cmNl
TG9hZGVkOworICAgIGltYWdlLnNldEF0dHJpYnV0ZSgic3JjIiwgInJlc291cmNlcy9yZXNvdXJj
ZS5waHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUmY2h1bmtlZD10cnVlIik7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZSk7Cit9CisKK2Z1bmN0aW9uIHJlc291cmNl
TG9hZGVkKCkKK3sKKyAgICBjb25zb2xlLmxvZygiRG9uZS4iKTsKK30KKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImxvYWRJbWFnZXMoKSIpOworCisgICAgZnVuY3Rpb24gc3RlcDIoKQor
ICAgIHsKKyAgICAgICAgdmFyIHJlc291cmNlMSA9IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
ay5yZXNvdXJjZXNbMF07CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc291cmNl
MS51cmwpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2VTaXplOiAi
ICsgcmVzb3VyY2UxLnJlc291cmNlU2l6ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJ0cmFuc2ZlclNpemU6ICIgKyByZXNvdXJjZTEudHJhbnNmZXJTaXplKTsKKworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgbmV0d29yayByZXNvdXJj
ZSBzaXplIHJlcG9ydGluZyBmb3IgY2h1bmtlZCB0cmFuc2ZlciBlbmNvZGluZy48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstc2l6ZS1leHBlY3RlZC1jaHVua2VkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVjdGVkLWNodW5r
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYjliMDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstc2l6ZS1leHBlY3RlZC1jaHVua2VkLnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAyMjogRG9uZS4KK1Rlc3RzIG5ldHdvcmsgcmVzb3VyY2Ugc2l6ZSByZXBv
cnRpbmcuCisKKworaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlcy9yZXNvdXJjZS5waHA/dHlwZT1pbWFnZSZzaXplPTUwMCZnemlwPXRydWUlY2h1bmtlZD10
cnVlCityZXNvdXJjZVNpemU6IDUwMAordHJhbnNmZXJTaXplOiAyMDgKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3Vy
Y2UucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZXMvcmVzb3VyY2UucGhwCmluZGV4IGI4MmFiNWIuLjQxNTRjOGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBo
cAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9yZXNvdXJjZS5waHAKQEAgLTYsNiArNiw3IEBACiAgICAgJGd6aXAgPSAkX0dFVFsiZ3ppcCJd
OwogICAgICRqc2RlbGF5ID0gJF9HRVRbImpzZGVsYXkiXTsKICAgICAkanNjb250ZW50ID0gJF9H
RVRbImpzY29udGVudCJdOworICAgICRjaHVua2VkID0gJF9HRVRbImNodW5rZWQiXTsKIAogICAg
ICMgRW5hYmxlIGd6aXAgY29tcHJlc3Npb24gaWYgbmVlZGVkCiAgICAgaWYgKCRnemlwKQpAQCAt
NjcsMTYgKzY4LDMwIEBAIF9fZm9vKDw/cGhwIGVjaG8oJGpzZGVsYXkpPz4pOwogICAgICAgICAk
ZGF0YV9sZW4gPSBzdHJsZW4oJGRhdGEpOwogICAgICAgICBwcmludCgkZGF0YSk7CiAgICAgICAg
IGlmICgkc2l6ZSkgeworICAgICAgICAgICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAg
ICAgb2JfZmx1c2goKTsKKyAgICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRzaXplICYmICRpIDwgJHNpemUgLSAkZGF0YV9sZW47
ICsrJGkpCiAgICAgICAgICAgICAgICAgZWNobygiPSIpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKICAgICAgICAgIyBHZW5lcmF0ZSBkdW1teSB0ZXh0L2h0bWwuCiAgICAgICAgIGlmICgkc2l6
ZSkgewotICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICsrJGkpCisgICAgICAg
ICAgICBmb3IgKCRpID0gMDsgJGkgPCAkc2l6ZTsgKyskaSkgeworICAgICAgICAgICAgICAgIGlm
ICgkY2h1bmtlZCAmJiAoMSA9PSAkaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JfZmx1c2go
KTsKKyAgICAgICAgICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgZWNobygiKiIpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZWNobygiSGVsbG8gd29ybGQiKTsKKyAgICAgICAgICAgIGVjaG8oIkhlbGxv
ICIpOworICAgICAgICAgICAgaWYgKCRjaHVua2VkKSB7CisgICAgICAgICAgICAgICAgb2JfZmx1
c2goKTsKKyAgICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgZWNobygid29ybGQiKTsKICAgICAgICAgfQogICAgIH0KID8+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggZDIyYjll
Zi4uYzViMWViOCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzE3OSw2ICszMTc5LDggQEAgQlVHSkFNRVNSIERFQlVH
IDogaHRtbDVsaWIvcnVubmVyLmh0bWwgPSBQQVNTIFRJTUVPVVQKIAogQlVHX0FOVE9OTSA6IHN2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC1yZW1vdmUtbGln
aHRTb3VyY2UuaHRtbCA9IElNQUdFCiAKKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NjYwMgorQlVHX1ZTRVZJSyBTS0lQIDogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sID0gRkFJTAogCiBCVUdDUjc0NDk3IDog
cGxhdGZvcm0vd2luL3BsdWdpbnMvd2luZG93bGVzcy1wYWludC1yZWN0LWNvb3JkaW5hdGVzLmh0
bWwgPSBDUkFTSAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGVmZDBhN2EuLjNmMjFl
ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzQxLDMgKzEzNDEsNiBAQCBzdmcv
VzNDLUkxOE4vdHNwYW4tZGlyTFRSLXViT3ZlcnJpZGUtaW4tcnRsLWNvbnRleHQuc3ZnCiAKICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTk5CiBlZGl0aW5nL2Rl
bGV0aW5nLzUyMDYzMTEtMS5odG1sCisKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NzkzCitodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6
ZS1jaHVua2VkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggMDAwNGFhYy4uZTYz
ZTI0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMyMiwzICszMjIsNiBAQCB0cmFu
c2l0aW9ucy9pbnRlcnJ1cHRlZC1hY2NlbGVyYXRlZC10cmFuc2l0aW9uLmh0bWwKICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDg4CiBjb21wb3NpdGluZy90cmFu
c2l0aW9ucy9zY2FsZS10cmFuc2l0aW9uLW5vLXN0YXJ0Lmh0bWwKIGNvbXBvc2l0aW5nL3RyYW5z
aXRpb25zL3Npbmd1bGFyLXNjYWxlLXRyYW5zaXRpb24uaHRtbAorCisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRl
eCAwZjdmYTNhLi4xMTg0Mzg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMyNDIsMyAr
MzI0Miw2IEBAIGluc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUtdW5rbm93bi1ub2RlLmh0bWwKICMg
UkVHUkVTU0lPTig4MTM3NCwgODEzODQpOiBlZGl0aW5nL2RlbGV0aW5nLzUyMDYzMTEtMS5odG1s
IGhpdHMgYXNzZXJ0aW9uIG9uIG5vbi1NYWMgcGxhdGZvcm1zCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjU5OQogZWRpdGluZy9kZWxldGluZy81MjA2MzExLTEu
aHRtbAorCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5Mwor
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDZhYmY0ODcuLjhiZTU0MzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkCkBAIC00OCw2ICs0OCw5IEBAIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtd2Vic29ja2V0LWVycm9yLmh0bWwKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
bmV0d29yay1zaXplLmh0bWwKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay10
aW1pbmcuaHRtbAogCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc5MworaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5o
dG1sCisKICMgRmFpbHMgPHJkYXI6Ly9wcm9ibGVtLzU2NzQyODk+CiBtZWRpYS92aWRlby1zZWVr
LXBhc3QtZW5kLXBhdXNlZC5odG1sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYmEyYmYyLi42MGMzMGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDMtMTggIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBzdXBwb3J0IGluIGluc3BlY3RvciBm
b3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIEluc3BlY3RvciBHaXZlcyBEaWZmZXJl
bnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hvdWxkIHNob3cgY29tcHJlc3NlZCBz
aXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
OTMKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
c2l6ZS1jaHVua2VkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExl
bmd0aEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtN
YW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3Rv
dHlwZS5kaWRSZWNlaXZlQ29udGVudExlbmd0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuZ2V0IHRyYW5zZmVyU2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJv
dG90eXBlLmluY3JlYXNlVHJhbnNmZXJTaXplKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VM
b2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZpZXI6
OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVy
OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZE5vdGlmaWVyOjpzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyk6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmg6CisgICAgICAgICogbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
aWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2Vp
dmVkOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmRE
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdvdENodW5rQ2FsbGJhY2spOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcik6CisKIDIwMTEtMDMtMTggIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2
ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggN2Nh
MTI1Ni4uOTlmNDU4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBA
IC05Myw3ICs5Myw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW2V2ZW50XSB2b2lkIHdpbGxT
ZW5kUmVxdWVzdChvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBbdHlw
ZVJlZj1uZXR3b3JrOjpSZXF1ZXN0XSBPYmplY3QgcmVxdWVzdCwgb3V0IFt0eXBlUmVmPW5ldHdv
cms6OlJlc3BvbnNlXSBPYmplY3QgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgICAgIFtldmVudF0g
dm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZChvdXQgbG9uZyBpZGVudGlmaWVyKTsKICAgICAgICAg
W2V2ZW50XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQg
ZG91YmxlIHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBvdXQgW3R5cGVSZWY9bmV0d29y
azo6UmVzcG9uc2VdIE9iamVjdCByZXNwb25zZSk7Ci0gICAgICAgIFtldmVudF0gdm9pZCBkaWRS
ZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUs
IG91dCBsb25nIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgW2V2ZW50XSB2b2lkIGRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0
IGxvbmcgZGF0YUxlbmd0aCwgb3V0IGxvbmcgbGVuZ3RoUmVjZWl2ZWQpOwogICAgICAgICBbZXZl
bnRdIHZvaWQgZGlkRmluaXNoTG9hZGluZyhvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91Ymxl
IGZpbmlzaFRpbWUpOwogICAgICAgICBbZXZlbnRdIHZvaWQgZGlkRmFpbExvYWRpbmcob3V0IGxv
bmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIGxvY2FsaXplZERlc2Ny
aXB0aW9uKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlD
YWNoZShvdXQgZG91YmxlIHRpbWUsIG91dCBbdHlwZVJlZj1uZXR3b3JrOjpDYWNoZWRSZXNvdXJj
ZV0gT2JqZWN0IHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggYTdhZjJlOS4uZWU1YWY1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKQEAgLTQ1OSwxMCArNDU5LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zCiAg
ICAgfQogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGhJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50
IGxlbmd0aFJlY2VpdmVkKQogewogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNv
dXJjZUFnZW50ID0gcmV0cmlldmVSZXNvdXJjZUFnZW50KGluc3BlY3RvckFnZW50KSkKLSAgICAg
ICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgbGVu
Z3RoUmVjZWl2ZWQpOworICAgICAgICByZXNvdXJjZUFnZW50LT5kaWRSZWNlaXZlQ29udGVudExl
bmd0aChpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnNwZWN0b3JB
Z2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZp
bmlzaFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggMjc1OWMxMi4uZmM1NmVlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTE4LDcg
KzExOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRh
KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKEZy
YW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICBzdGF0aWMgdm9pZCBk
aWRSZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
aW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQ29udGVudExl
bmd0aChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGlu
dCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZyhGcmFt
ZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHN0
YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgc3RhdGljIHZvaWQgcmVzb3VyY2VSZXRyaWV2
ZWRCeVhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcik7CkBAIC0y
MzUsNyArMjM1LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3Vy
Y2VEYXRhSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZUltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3Vy
Y2VSZXNwb25zZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoSW5z
cGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZl
ZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKEluc3BlY3Rv
ckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxl
bmd0aFJlY2VpdmVkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnNw
ZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUp
OwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nSW1wbChJbnNwZWN0b3JBZ2VudCosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHN0YXRp
YyB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwoSW5zcGVjdG9yQWdl
bnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5k
TGluZU51bWJlcik7CkBAIC02NzYsMTEgKzY3NiwxMSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3BlY3Rv
cgogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGludCBsZW5ndGhSZWNlaXZlZCkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCi0gICAgICAgIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgbGVu
Z3RoUmVjZWl2ZWQpOworICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVj
dG9yQWdlbnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAKaW5kZXggNmExNWYyMC4uZjZiZDY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMzc2LDEyICsz
NzYsMTIgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2Uo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWUKICAgICAvLyBJZiB3ZSByZXZhbGlkYXRl
ZCB0aGUgcmVzb3VyY2UgYW5kIGdvdCBOb3QgbW9kaWZpZWQsIHNlbmQgY29udGVudCBsZW5ndGgg
Zm9sbG93aW5nIGRpZFJlY2VpdmVSZXNwb25zZQogICAgIC8vIGFzIHRoZXJlIHdpbGwgYmUgbm8g
Y2FsbHMgdG8gZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGggZnJvbSB0aGUgbmV0d29yayBzdGFjay4K
ICAgICBpZiAoY2FjaGVkUmVzb3VyY2VTaXplICYmIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkg
PT0gMzA0KQotICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlmaWVyLCBjYWNo
ZWRSZXNvdXJjZVNpemUpOworICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlm
aWVyLCBjYWNoZWRSZXNvdXJjZVNpemUsIDApOwogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
aW50IGxlbmd0aFJlY2VpdmVkKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3Ro
LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7Ci0gICAgbV9mcm9udGVuZC0+ZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgoaWRlbnRpZmllciwgY3VycmVudFRpbWUoKSwgbGVuZ3RoUmVjZWl2ZWQpOworICAg
IG1fZnJvbnRlbmQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGN1cnJlbnRU
aW1lKCksIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
ZG91YmxlIGZpbmlzaFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaAppbmRleCBmMWIzZDQ2Li4yODEyMTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTkyLDcg
KzkyLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVk
aXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxhb2RlciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxl
bmd0aFJlY2VpdmVkKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICB2b2lk
IGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IENh
Y2hlZFJlc291cmNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA4NDkyYjllLi41ZmM4NWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMK
QEAgLTE4NiwxMyArMTg2LDE1IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLmFkZFJlc291cmNlVG9G
cmFtZShyZXNvdXJjZS5sb2FkZXIuZnJhbWVJZCwgcmVzb3VyY2UpOwogICAgIH0sCiAKLSAgICBk
aWRSZWNlaXZlQ29udGVudExlbmd0aDogZnVuY3Rpb24oaWRlbnRpZmllciwgdGltZSwgbGVuZ3Ro
UmVjZWl2ZWQpCisgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1bmN0aW9uKGlkZW50aWZp
ZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQogICAgIHsKICAgICAgICAgdmFy
IHJlc291cmNlID0gdGhpcy5faW5mbGlnaHRSZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwogICAg
ICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlc291
cmNlLnJlc291cmNlU2l6ZSArPSBsZW5ndGhSZWNlaXZlZDsKKyAgICAgICAgcmVzb3VyY2UucmVz
b3VyY2VTaXplICs9IGRhdGFMZW5ndGg7CisgICAgICAgIGlmIChsZW5ndGhSZWNlaXZlZCAhPSAt
MSkKKyAgICAgICAgICAgIHJlc291cmNlLmluY3JlYXNlVHJhbnNmZXJTaXplKGxlbmd0aFJlY2Vp
dmVkKTsKICAgICAgICAgcmVzb3VyY2UuZW5kVGltZSA9IHRpbWU7CiAKICAgICAgICAgdGhpcy5f
dXBkYXRlUmVzb3VyY2UocmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2UuanMKaW5kZXggNmNmNWI5Yy4uMmJmNWQ5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCkBAIC0yNDEsNyArMjQx
LDEwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgaWYgKHRoaXMuc3RhdHVzQ29kZSA9PT0gMzA0KSAvLyBOb3QgbW9k
aWZpZWQKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZXNwb25zZUhlYWRlcnNTaXplOwotICAg
ICAgICAvLyBGSVhNRTogV2UgcHJlZmVyIHVzaW5nIENvbnRlbnQtTGVuZ3RoIG92ZXIgcmVzb3Vy
Y2VTaXplIGFzCisgICAgICAgIGlmICh0aGlzLl90cmFuc2ZlclNpemUgIT09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2ZlclNpemU7CisgICAgICAgIC8vIElmIHdl
IGRpZCBub3QgcmVjZWl2ZSBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBmcm9tIG5ldHdvcmsKKyAgICAg
ICAgLy8gc3RhY2ssIHdlIHByZWZlciB1c2luZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291cmNl
U2l6ZSBhcwogICAgICAgICAvLyByZXNvdXJjZVNpemUgbWF5IGRpZmZlciBmcm9tIGFjdHVhbCB0
cmFuc2ZlciBzaXplIGlmIHBsYXRmb3JtJ3MKICAgICAgICAgLy8gbmV0d29yayBzdGFjayBwZXJm
b3JtZWQgZGVjb2RpbmcgKGUuZy4gZ3ppcCBkZWNvbXByZXNzaW9uKS4KICAgICAgICAgLy8gVGhl
IENvbnRlbnQtTGVuZ3RoLCB0aG91Z2gsIGlzIGV4cGVjdGVkIHRvIGNvbWUgZnJvbSByYXcKQEAg
LTI0OSwxMSArMjUyLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIC8vIFRoaXMgd29uJ3Qgd29yayBmb3IgY2h1bmtlZCBjb250ZW50IGVuY29kaW5nLCBz
byBmYWxsIGJhY2sgdG8KICAgICAgICAgLy8gcmVzb3VyY2VTaXplIHdoZW4gd2UgZG9uJ3QgaGF2
ZSBDb250ZW50LUxlbmd0aC4gVGhpcyBzdGlsbCB3b24ndAogICAgICAgICAvLyB3b3JrIGZvciBj
aHVua3Mgd2l0aCBub24tdHJpdmlhbCBlbmNvZGluZ3MuIFdlIG5lZWQgYSB3YXkgdG8KLSAgICAg
ICAgLy8gZ2V0IGFjdGF1bCB0cmFuc2ZlciBzaXplIGZyb20gdGhlIG5ldHdvcmsgc3RhY2suCisg
ICAgICAgIC8vIGdldCBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNr
LgogICAgICAgICB2YXIgYm9keVNpemUgPSBOdW1iZXIodGhpcy5yZXNwb25zZUhlYWRlcnNbIkNv
bnRlbnQtTGVuZ3RoIl0gfHwgdGhpcy5yZXNvdXJjZVNpemUpOwogICAgICAgICByZXR1cm4gdGhp
cy5fcmVzcG9uc2VIZWFkZXJzU2l6ZSArIGJvZHlTaXplOwogICAgIH0sCiAKKyAgICBpbmNyZWFz
ZVRyYW5zZmVyU2l6ZTogZnVuY3Rpb24oeCkKKyAgICB7CisgICAgICAgIHRoaXMuX3RyYW5zZmVy
U2l6ZSA9ICh0aGlzLl90cmFuc2ZlclNpemUgfHwgMCkgKyB4OworICAgIH0sCisKICAgICBnZXQg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9leHBl
Y3RlZENvbnRlbnRMZW5ndGggfHwgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwCmluZGV4IGM5Mjg1NTcuLjRkNmNlNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtNzQsMTIgKzc0LDEy
IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUxvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvCiAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UobG9hZGVyLT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSwgcik7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9h
ZGVyKiBsb2FkZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNl
aXZlZCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVu
Z3RoUmVjZWl2ZWQpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0g
ICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPmluY3JlbWVudFByb2dyZXNzKGxvYWRlci0+aWRlbnRp
ZmllcigpLCBkYXRhLCBsZW5ndGgpOworICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5pbmNyZW1l
bnRQcm9ncmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgZGF0YUxlbmd0aCk7CiAKLSAg
ICBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIo
KSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGxlbmd0aFJlY2VpdmVkKTsKKyAgICBkaXNwYXRjaERp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5p
ZGVudGlmaWVyKCksIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWROb3RpZmllcjo6ZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBk
b3VibGUgZmluaXNoVGltZSkKQEAgLTEzMiwxMSArMTMyLDExIEBAIHZvaWQgUmVzb3VyY2VMb2Fk
Tm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIHVuCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZShjb29raWUsIGlkZW50aWZpZXIsIGxvYWRlciwgcik7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoKQordm9p
ZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRh
TGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmll
ciwgbGVuZ3RoKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoKTsKIAot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9m
cmFtZSwgaWRlbnRpZmllciwgbGVuZ3RoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgs
IGxlbmd0aFJlY2VpdmVkKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0
Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwKICAgICAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UobG9h
ZGVyLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAKICAgICBpZiAobGVuZ3RoID4gMCkKLSAgICAg
ICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXIsIGlkZW50aWZpZXIsIGxl
bmd0aCk7CisgICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBp
ZGVudGlmaWVyLCBsZW5ndGgsIDApOwogCiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQogICAgICAg
ICBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLCBpZGVudGlmaWVyLCAwKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKaW5kZXggYTZkOTJmYi4u
ZjAzZWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5v
dGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVy
LmgKQEAgLTUzLDE0ICs1MywxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVz
dChSZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2
ZWQpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFy
KiwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkKFJlc291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlk
RmFpbFRvTG9hZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogICAg
IHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZv
aWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGgpOworICAgIHZv
aWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7
CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpc3Bh
dGNoVHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVu
dExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cAppbmRleCBiMzMxNDI1Li5kMzA3NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNTU1LDggKzU1
NSwxMCBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlcwogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogeworICAgIFVOVVNFRF9QQVJB
TShsZW5ndGhSZWNlaXZlZCk7CisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9mcmFtZSwgbV9jdXJy
ZW50UmVzb3VyY2VJZGVudGlmaWVyLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtX2ZyYW1lLCBtX2N1cnJlbnRS
ZXNvdXJjZUlkZW50aWZpZXIsIGxlbmd0aCwgMCk7CiAjZW5kaWYKIAogICAgIGlmIChoYW5kbGUg
PT0gbV9tYW5pZmVzdEhhbmRsZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA3ODkyNjE5Li4zYmFi
N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtOTEzLDYgKzkxMyw3IEBAIFN0cmluZyBSZXNvdXJj
ZUhhbmRsZTo6cHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyRGVmYXVsdEJh
c2UoKQogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRp
ZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhIGxlbmd0aFJlY2VpdmVkOihsb25nIGxvbmcpbGVu
Z3RoUmVjZWl2ZWQKIHsKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgVU5VU0VE
X1BBUkFNKGxlbmd0aFJlY2VpdmVkKTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRl
bGVnYXRlIGNvbm5lY3Rpb246JXAgZGlkUmVjZWl2ZURhdGE6JXAgbGVuZ3RoUmVjZWl2ZWQ6JWxs
ZCIsIG1faGFuZGxlLCBjb25uZWN0aW9uLCBkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CiAKQEAgLTky
Miw3ICs5MjMsMTAgQEAgU3RyaW5nIFJlc291cmNlSGFuZGxlOjpwcml2YXRlQnJvd3NpbmdTdG9y
YWdlU2Vzc2lvbklkZW50aWZpZXJEZWZhdWx0QmFzZSgpCiAgICAgLy8gSG93ZXZlciwgd2l0aCB0
b2RheSdzIGNvbXB1dGVycyBhbmQgbmV0d29ya2luZyBzcGVlZHMsIHRoaXMgd29uJ3QgaGFwcGVu
IGluIHByYWN0aWNlLgogICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBnaWFudCBsb2Nh
bCBmaWxlLgogICAgIENhbGxiYWNrR3VhcmQgZ3VhcmQ7Ci0gICAgbV9oYW5kbGUtPmNsaWVudCgp
LT5kaWRSZWNlaXZlRGF0YShtX2hhbmRsZSwgKGNvbnN0IGNoYXIqKVtkYXRhIGJ5dGVzXSwgW2Rh
dGEgbGVuZ3RoXSwgc3RhdGljX2Nhc3Q8aW50PihsZW5ndGhSZWNlaXZlZCkpOworICAgIC8vIEZJ
WE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAv
LyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXpl
IHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFk
ZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCisgICAgbV9oYW5kbGUt
PmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShtX2hhbmRsZSwgKGNvbnN0IGNoYXIqKVtkYXRhIGJ5
dGVzXSwgW2RhdGEgbGVuZ3RoXSwgLTEpOwogfQogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJM
Q29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2lsbFN0b3BCdWZmZXJpbmdEYXRhOihOU0RhdGEgKilk
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3
b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDYxZmU5NmMuLjhlMDY2NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwCkBAIC00NzEsOCArNDcxLDExIEBAIHZvaWQgUU5ldHdvcmtSZXBseUhh
bmRsZXI6OmZvcndhcmREYXRhKCkKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwog
CisgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc5MworICAgIC8vIC0xIG1lYW5zIHdlIGRvIG5vdCBwcm92aWRlIGFueSBkYXRhIGFib3V0IHRy
YW5zZmVyIHNpemUgdG8gaW5zcGVjdG9yIHNvIGl0IHdvdWxkIHVzZQorICAgIC8vIENvbnRlbnQt
TGVuZ3RoIGhlYWRlcnMgb3IgY29udGVudCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6ZS4KICAg
ICBpZiAoIWRhdGEuaXNFbXB0eSgpKQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKG1f
cmVzb3VyY2VIYW5kbGUsIGRhdGEuY29uc3REYXRhKCksIGRhdGEubGVuZ3RoKCksIGRhdGEubGVu
Z3RoKCkgLypGaXhNZSovKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShtX3Jlc291
cmNlSGFuZGxlLCBkYXRhLmNvbnN0RGF0YSgpLCBkYXRhLmxlbmd0aCgpLCAtMSk7CiB9CiAKIHZv
aWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnVwbG9hZFByb2dyZXNzKHFpbnQ2NCBieXRlc1NlbnQs
IHFpbnQ2NCBieXRlc1RvdGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBkNDEwZmEzLi5l
NWRhMGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMzY0LDcgKzM2NCwxMCBAQCBzdGF0
aWMgdm9pZCBnb3RDaHVua0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIFNvdXBCdWZmZXIqIGNo
dW5rLCBncG9pbnRlciBkYXRhKQogCiAgICAgQVNTRVJUKCFkLT5tX3Jlc3BvbnNlLmlzTnVsbCgp
KTsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLmdldCgpLCBjaHVuay0+ZGF0
YSwgY2h1bmstPmxlbmd0aCwgY2h1bmstPmxlbmd0aCk7CisgICAgLy8gRklYTUU6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MworICAgIC8vIC0xIG1lYW5zIHdl
IGRvIG5vdCBwcm92aWRlIGFueSBkYXRhIGFib3V0IHRyYW5zZmVyIHNpemUgdG8gaW5zcGVjdG9y
IHNvIGl0IHdvdWxkIHVzZQorICAgIC8vIENvbnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3IgY29udGVu
dCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6ZS4KKyAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGhhbmRsZS5nZXQoKSwgY2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIC0xKTsKIH0KIAogc3Rh
dGljIFNvdXBTZXNzaW9uKiBjcmVhdGVTb3VwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5k
ZXggZjUwNTQwYy4uZGM1YWRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMjQyLDggKzI0Miwx
MSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSgpCiAgICAgICAgICAg
ICAgICAgcmVzb3VyY2VIYW5kbGVDbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCByZXNw
b25zZSk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisgICAgICAgIC8vIC0xIG1lYW5zIHdlIGRvIG5v
dCBwcm92aWRlIGFueSBkYXRhIGFib3V0IHRyYW5zZmVyIHNpemUgdG8gaW5zcGVjdG9yIHNvIGl0
IHdvdWxkIHVzZQorICAgICAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQg
c2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCiAgICAgICAgIGlmIChSZXNvdXJjZUhhbmRsZUNs
aWVudCogcmVzb3VyY2VIYW5kbGVDbGllbnQgPSBjbGllbnQoKSkKLSAgICAgICAgICAgIHJlc291
cmNlSGFuZGxlQ2xpZW50LT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIsIGJ1ZmZlcnMuZHdC
dWZmZXJMZW5ndGgsIDApOworICAgICAgICAgICAgcmVzb3VyY2VIYW5kbGVDbGllbnQtPmRpZFJl
Y2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciwgYnVmZmVycy5kd0J1ZmZlckxlbmd0aCwgLTEpOwogICAg
ICAgICBidWZmZXJzLmR3QnVmZmVyTGVuZ3RoID0gYnVmZmVyU2l6ZTsKICAgICB9CiAKQEAgLTM4
NSw4ICszODgsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1lcjxS
ZXNvdXJjZUhhbmRsZT4qKQogICAgICAgICBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9IDgxOTI7CiAg
ICAgICAgIGNoYXIgYnVmZmVyW2J1ZmZlclNpemVdOwogICAgICAgICByZXN1bHQgPSBSZWFkRmls
ZShmaWxlSGFuZGxlLCAmYnVmZmVyLCBidWZmZXJTaXplLCAmYnl0ZXNSZWFkLCAwKTsKKyAgICAg
ICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5
MworICAgICAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0
cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAgICAgLy8gQ29u
dGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXpl
LgogICAgICAgICBpZiAocmVzdWx0ICYmIGJ5dGVzUmVhZCkKLSAgICAgICAgICAgIGNsaWVudCgp
LT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIsIGJ5dGVzUmVhZCwgMCk7CisgICAgICAgICAg
ICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVyLCBieXRlc1JlYWQsIC0xKTsK
ICAgICAgICAgLy8gQ2hlY2sgZm9yIGVuZCBvZiBmaWxlLgogICAgIH0gd2hpbGUgKHJlc3VsdCAm
JiBieXRlc1JlYWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDU4M2VjY2UuLjk5
NzJlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEt
MDMtMTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6
ZSBzdXBwb3J0IGluIGluc3BlY3RvciBmb3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAo
c2hvdWxkIHNob3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIHNyYy9SZXNvdXJjZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRSZWNl
aXZlRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVEYXRhKToKKwogMjAx
MS0wMy0xNyAgQWxleGV5IE1hcmluaWNoZXYgIDxhbWFyaW5pY2hldkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDcyZjYwYmIuLjg5MGJjZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1
OSwxOCArMTU5LDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3BvCiAgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShtX293bmVyLCByZXNwb25zZS50b1Jlc291cmNlUmVzcG9uc2UoKSk7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEoCi0gICAg
V2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpCit2b2lkIFJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7CiAg
ICAgaWYgKG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVjZWl2ZWRSZXNwb25zZSAmJiBtX3N0
YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGEpCiAgICAgICAgIENSQVNIKCk7CiAg
ICAgbV9zdGF0ZSA9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGE7CiAKLSAgICAvLyBGSVhN
RSh5dXJ5cyk6IGl0IGxvb2tzIGxpa2UgbGVuZ3RoUmVjZWl2ZWQgaXMgYWx3YXlzIHRoZSBzYW1l
IGFzCi0gICAgLy8gZGF0YUxlbmd0aCBhbmQgdGhhdCB0aGUgbGF0dGVyIHBhcmFtZXRlciBjYW4g
YmUgZWxpbWluYXRlZC4KLSAgICAvLyBTZWUgV2ViS2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDE5Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRh
KG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOworICAgIC8vIEZJWE1FKHZz
ZXZpayk6IEFkZCB0cmFuc2ZlciBzaXplIHN1cHBvcnQgdG8gY2hyb21pdW0gcG9ydAorICAgIC8v
IFNlZSBXZWJLaXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTY2MDIKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEobV9vd25lciwgZGF0YSwgZGF0YUxl
bmd0aCwgLTEpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVD
YWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxl
bmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdl
bnRJbXBsLmNwcAppbmRleCA2MmE5ZDk1Li5jMzZhNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0yODQsNyArMjg0
LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWUKIAogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1w
bDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkLCBpbnQgbGVuZ3RoKQog
ewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgo
bWFpbkZyYW1lKCksIHJlc291cmNlSWQsIGxlbmd0aCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChtYWluRnJhbWUoKSwgcmVzb3VyY2VJZCwg
bGVuZ3RoLCAtMSk7CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNvbnN0IFdlYlVSTFJlc3BvbnNlJiBy
ZXNwb25zZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86165</attachid>
            <date>2011-03-18 08:08:42 -0700</date>
            <delta_ts>2011-06-18 09:47:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-19793-20110318180839.patch</filename>
            <type>text/plain</type>
            <size>34399</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE0NjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZjg5YzFkNTJkMjNmMTBkZjIxYWEz
ZTdiNTc2YmNlNWE4ZTIwZDlkLi44OWE2MDY4MTZmMjUxN2IwZWQ0M2Q2OGI5MzE4MmQ2ZTEzYjkz
MzFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTggIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdHJhbnNmZXIgc2l6ZSBzdXBwb3J0IGluIGluc3BlY3RvciBm
b3IgY29tcHJlc3NlZCBkYXRhCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2ViIEluc3BlY3Rv
ciBHaXZlcyBEaWZmZXJlbnQgUmVzdWx0cyBvbiBUaWdlciBhbmQgTGVvcGFyZCAoc2hvdWxkIHNo
b3cgY29tcHJlc3NlZCBzaXplKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk3OTMKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvbmV0d29yay1zaXplLWNodW5rZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jl
c291cmNlLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0xOCAgQWxleGFuZGVyIFBhdmxvdiAg
PGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCwg
c3VwcHJlc3MgZWRpdGluZy9kZWxldGluZy81MjA2MzExLTEuaHRtbCBjcmFzaGVzIG9uIE1hYyBE
ZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUtY2h1bmtlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOTRi
NDc3ZTIyZGNmZTZlNjkzMzI5N2VlZmVlMmM3NWI2NDJmODcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVu
a2VkLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZElt
YWdlcygpCit7CisgICAgdmFyIGltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7
CisgICAgaW1hZ2Uub25sb2FkID0gcmVzb3VyY2VMb2FkZWQ7CisgICAgaW1hZ2Uuc2V0QXR0cmli
dXRlKCJzcmMiLCAicmVzb3VyY2VzL3Jlc291cmNlLnBocD90eXBlPWltYWdlJnNpemU9NTAwJmd6
aXA9dHJ1ZSZjaHVua2VkPXRydWUiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlt
YWdlKTsKK30KKworZnVuY3Rpb24gcmVzb3VyY2VMb2FkZWQoKQoreworICAgIGNvbnNvbGUubG9n
KCJEb25lLiIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2Ui
LCBzdGVwMik7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZEltYWdlcygp
Iik7CisKKyAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2Ux
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlc291cmNlc1swXTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzb3VyY2UxLnVybCk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJyZXNvdXJjZVNpemU6ICIgKyByZXNvdXJjZTEucmVzb3VyY2VTaXplKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInRyYW5zZmVyU2l6ZTogIiArIHJlc291
cmNlMS50cmFuc2ZlclNpemUpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8cD5UZXN0cyBuZXR3b3JrIHJlc291cmNlIHNpemUgcmVwb3J0aW5nIGZvciBjaHVua2Vk
IHRyYW5zZmVyIGVuY29kaW5nLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVj
dGVkLWNodW5rZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXNpemUtZXhwZWN0ZWQtY2h1bmtlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRiOWIwM2My
MTk5YWRiNDllNTA5NzJlZjU2ZDMwMDMyNTE4YjUyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1zaXplLWV4cGVjdGVk
LWNodW5rZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBE
b25lLgorVGVzdHMgbmV0d29yayByZXNvdXJjZSBzaXplIHJlcG9ydGluZy4KKworCitodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNlLnBocD90
eXBlPWltYWdlJnNpemU9NTAwJmd6aXA9dHJ1ZSVjaHVua2VkPXRydWUKK3Jlc291cmNlU2l6ZTog
NTAwCit0cmFuc2ZlclNpemU6IDIwOAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHAgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9yZXNvdXJjZS5waHAKaW5k
ZXggYjgyYWI1YjVjYzdkNzYyZDk1OTA1ZjZmMDkyOTdiMjFhN2U2MDk4YS4uNDE1NGM4ZTA1ZjZh
N2Q1MjcyNTZhZTM4Y2EzYzQxZGVkMzJlYTRkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvcmVzb3VyY2UucGhwCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2VzL3Jlc291cmNl
LnBocApAQCAtNiw2ICs2LDcgQEAKICAgICAkZ3ppcCA9ICRfR0VUWyJnemlwIl07CiAgICAgJGpz
ZGVsYXkgPSAkX0dFVFsianNkZWxheSJdOwogICAgICRqc2NvbnRlbnQgPSAkX0dFVFsianNjb250
ZW50Il07CisgICAgJGNodW5rZWQgPSAkX0dFVFsiY2h1bmtlZCJdOwogCiAgICAgIyBFbmFibGUg
Z3ppcCBjb21wcmVzc2lvbiBpZiBuZWVkZWQKICAgICBpZiAoJGd6aXApCkBAIC02NywxNiArNjgs
MzAgQEAgX19mb28oPD9waHAgZWNobygkanNkZWxheSk/Pik7CiAgICAgICAgICRkYXRhX2xlbiA9
IHN0cmxlbigkZGF0YSk7CiAgICAgICAgIHByaW50KCRkYXRhKTsKICAgICAgICAgaWYgKCRzaXpl
KSB7CisgICAgICAgICAgICBpZiAoJGNodW5rZWQpIHsKKyAgICAgICAgICAgICAgICBvYl9mbHVz
aCgpOworICAgICAgICAgICAgICAgIGZsdXNoKCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBmb3IgKCRpID0gMDsgJHNpemUgJiYgJGkgPCAkc2l6ZSAtICRkYXRhX2xlbjsgKyskaSkKICAg
ICAgICAgICAgICAgICBlY2hvKCI9Iik7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAg
ICAjIEdlbmVyYXRlIGR1bW15IHRleHQvaHRtbC4KICAgICAgICAgaWYgKCRzaXplKSB7Ci0gICAg
ICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkc2l6ZTsgKyskaSkKKyAgICAgICAgICAgIGZvciAo
JGkgPSAwOyAkaSA8ICRzaXplOyArKyRpKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjaHVua2Vk
ICYmICgxID09ICRpKSkgeworICAgICAgICAgICAgICAgICAgICBvYl9mbHVzaCgpOworICAgICAg
ICAgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBlY2hvKCIqIik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBlY2hvKCJIZWxsbyB3b3JsZCIpOworICAgICAgICAgICAgZWNobygiSGVsbG8gIik7CisgICAg
ICAgICAgICBpZiAoJGNodW5rZWQpIHsKKyAgICAgICAgICAgICAgICBvYl9mbHVzaCgpOworICAg
ICAgICAgICAgICAgIGZsdXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlY2hvKCJ3
b3JsZCIpOwogICAgICAgICB9CiAgICAgfQogPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBhYWNjZDdiZWU5YmJkNmI2
NjdjMDZlMjVhYzJmNmM3ZDA1OGUzMmUxLi41OTNkZTQxMGM3NDJiNGY2ZGRkZWIyZTA2NDlmMGQz
OGIwZTQ3NTNmIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC0zMTc5LDYgKzMxNzksOCBAQCBCVUdKQU1FU1IgREVCVUcg
OiBodG1sNWxpYi9ydW5uZXIuaHRtbCA9IFBBU1MgVElNRU9VVAogCiBCVUdfQU5UT05NIDogc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LXJlbW92ZS1saWdo
dFNvdXJjZS5odG1sID0gSU1BR0UKIAorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2NjAyCitCVUdfVlNFVklLIFNLSVAgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwgPSBGQUlMCiAKIEJVR0NSNzQ0OTcgOiBw
bGF0Zm9ybS93aW4vcGx1Z2lucy93aW5kb3dsZXNzLXBhaW50LXJlY3QtY29vcmRpbmF0ZXMuaHRt
bCA9IENSQVNICiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZWZkMGE3YWM1Zjg0MDFj
M2E5ZDliZGJkNTU3NWU4N2MyMDExMzkyNi4uM2YyMWVmNjhhMmE3Y2ViMjBiOWVjYjY2Y2FhMjk4
YzFlMzdhZGY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEzNDEsMyArMTM0MSw2
IEBAIHN2Zy9XM0MtSTE4Ti90c3Bhbi1kaXJMVFItdWJPdmVycmlkZS1pbi1ydGwtY29udGV4dC5z
dmcKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY1OTkKIGVk
aXRpbmcvZGVsZXRpbmcvNTIwNjMxMS0xLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKK2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1zaXplLWNodW5rZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCAwMDA0
YWFjYmE0YjRmNmVlNDE5YTc0MmQ1MTJlZmJkYjM0ODk5YzY4Li5lNjNlMjQwNzVmMDc0MzhkMmU0
ZWE5N2IxMjg1OWJiNThiOTE4MmMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzIy
LDMgKzMyMiw2IEBAIHRyYW5zaXRpb25zL2ludGVycnVwdGVkLWFjY2VsZXJhdGVkLXRyYW5zaXRp
b24uaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0ODgK
IGNvbXBvc2l0aW5nL3RyYW5zaXRpb25zL3NjYWxlLXRyYW5zaXRpb24tbm8tc3RhcnQuaHRtbAog
Y29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvc2luZ3VsYXItc2NhbGUtdHJhbnNpdGlvbi5odG1sCisK
KyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCitodHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCmluZGV4IDBmN2ZhM2E4MjE3ODE1NjM4YWE5ZWU1ZWI5MDJlNzcxN2FjZjhi
MDMuLjExODQzODU0MTI5OTMwMGNmMWU2ZjY4OGIxY2I4NmQ0MDBjYzIwOTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZApAQCAtMzI0MiwzICszMjQyLDYgQEAgaW5zcGVjdG9yL2VsZW1lbnRzL211
dGF0ZS11bmtub3duLW5vZGUuaHRtbAogIyBSRUdSRVNTSU9OKDgxMzc0LCA4MTM4NCk6IGVkaXRp
bmcvZGVsZXRpbmcvNTIwNjMxMS0xLmh0bWwgaGl0cyBhc3NlcnRpb24gb24gbm9uLU1hYyBwbGF0
Zm9ybXMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTk5CiBl
ZGl0aW5nL2RlbGV0aW5nLzUyMDYzMTEtMS5odG1sCisKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCitodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25l
dHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNmFi
ZjQ4N2Y1ZDk0NjY5OTk2YTY2NDU4MzFiYmUwYTc4YmZlMDhkMy4uOGJlNTQzMzRiZWNmODAzMmYz
OTNmNTE0MDQ3NDVjMjU1MDFkNWY2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTQ4
LDYgKzQ4LDkgQEAgaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS13ZWJzb2NrZXQtZXJyb3Iu
aHRtbAogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXNpemUuaHRtbAogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLXRpbWluZy5odG1sCiAKKyMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCitodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1jaHVua2VkLmh0bWwKKwogIyBGYWlscyA8cmRhcjov
L3Byb2JsZW0vNTY3NDI4OT4KIG1lZGlhL3ZpZGVvLXNlZWstcGFzdC1lbmQtcGF1c2VkLmh0bWwK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDBkYzk4ZjU1MzE5NzJkYmE0ZmJlYmRiZDM1MzdhOTM3MWM4NGExODcu
Ljg3MWE5NmEyYzFkMWQxMDA2OTVhZjFmZTM1YzM5NDZmY2VmNTRkY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NSBAQAorMjAxMS0wMy0xOCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCB0cmFuc2ZlciBzaXplIHN1cHBvcnQgaW4gaW5zcGVjdG9yIGZvciBjb21wcmVzc2Vk
IGRhdGEKKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWIgSW5zcGVjdG9yIEdpdmVzIERpZmZl
cmVudCBSZXN1bHRzIG9uIFRpZ2VyIGFuZCBMZW9wYXJkIChzaG91bGQgc2hvdyBjb21wcmVzc2Vk
IHNpemUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc5MworCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29y
ay1zaXplLWNodW5rZWQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a01hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJv
dG90eXBlLmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3Rv
dHlwZS5nZXQgdHJhbnNmZXJTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5w
cm90b3R5cGUuaW5jcmVhc2VUcmFuc2ZlclNpemUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmll
cjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKToKKyAg
ICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZURhdGE6bGVuZ3RoUmVj
ZWl2ZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6Zm9yd2Fy
ZERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z290Q2h1bmtDYWxsYmFjayk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKwogMjAxMS0wMy0xOCAgSmFya2tv
IFNha2tpbmVuICA8amFya2tvLmouc2Fra2luZW5AZ21haWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbAppbmRleCA3Y2ExMjU2ZDMyODY1NmU3YWI1NTBhODViNWI2ZTcyZDZjMzY3
NDVjLi45OWY0NTg3ZmM4ODUwMWRhNzg1NjAxMTE2MzQxZWIxZDViZDk4NGViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtOTMsNyArOTMsNyBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIFtldmVudF0gdm9pZCB3aWxsU2VuZFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRp
Zmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgW3R5cGVSZWY9bmV0d29yazo6UmVxdWVzdF0gT2Jq
ZWN0IHJlcXVlc3QsIG91dCBbdHlwZVJlZj1uZXR3b3JrOjpSZXNwb25zZV0gT2JqZWN0IHJlZGly
ZWN0UmVzcG9uc2UpOwogICAgICAgICBbZXZlbnRdIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQo
b3V0IGxvbmcgaWRlbnRpZmllcik7CiAgICAgICAgIFtldmVudF0gdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2Uob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIHJl
c291cmNlVHlwZSwgb3V0IFt0eXBlUmVmPW5ldHdvcms6OlJlc3BvbnNlXSBPYmplY3QgcmVzcG9u
c2UpOwotICAgICAgICBbZXZlbnRdIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgob3V0IGxv
bmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBsZW5ndGhSZWNlaXZlZCk7
CisgICAgICAgIFtldmVudF0gdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBsb25nIGRhdGFMZW5ndGgsIG91dCBsb25n
IGxlbmd0aFJlY2VpdmVkKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpZEZpbmlzaExvYWRpbmco
b3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgW2V2
ZW50XSB2b2lkIGRpZEZhaWxMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUg
dGltZSwgb3V0IFN0cmluZyBsb2NhbGl6ZWREZXNjcmlwdGlvbik7CiAgICAgICAgIFtldmVudF0g
dm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUob3V0IGRvdWJsZSB0aW1lLCBvdXQg
W3R5cGVSZWY9bmV0d29yazo6Q2FjaGVkUmVzb3VyY2VdIE9iamVjdCByZXNvdXJjZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IGE3YWYyZTkwMzQ2ZmM0NDNlMDM3N2VmMDcyY2FlNDQzOGU3YzUzYjguLmVlNWFm
NWZmMjY1Y2Q4NjBkMGRhN2I3YzE5ODVjNDVhMDE3YzZkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00NTks
MTAgKzQ1OSwxMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJl
c291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3BlY3RvcklucwogICAgIH0KIH0KIAotdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50
IGxlbmd0aFJlY2VpdmVkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkK
IHsKICAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJp
ZXZlUmVzb3VyY2VBZ2VudChpbnNwZWN0b3JBZ2VudCkpCi0gICAgICAgIHJlc291cmNlQWdlbnQt
PmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKKyAg
ICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwg
ZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmlu
ZGV4IDI3NTljMTIwMGJkNWY4M2QwMTc2ZjMyOGNhMmM3NTAyZTFlZDBmMjcuLmZjNTZlZWJlMTcz
MzRiZGM2M2U1NWUwMGRlNmIzM2I0ODZkZGZlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTExOCw3ICsxMTgsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5n
dGhSZWNlaXZlZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJh
bWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJhbWUqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRGYWlsTG9hZGluZyhGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpOwogICAgIHN0YXRpYyB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxI
dHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwpAQCAtMjM1LDcgKzIz
NSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YUlt
cGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJ
bXBsKEluc3BlY3RvckFnZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2VJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKEluc3BlY3RvckFn
ZW50KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOworICAg
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCos
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNl
aXZlZCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdl
bnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBz
dGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICBzdGF0aWMgdm9pZCBy
ZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKEluc3BlY3RvckFnZW50KiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1i
ZXIpOwpAQCAtNjc2LDExICs2NzYsMTEgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKICNlbmRp
ZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVD
b250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQg
bGVuZ3RoUmVjZWl2ZWQpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBkaWRSZWNlaXZl
Q29udGVudExlbmd0aEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGxlbmd0aFJlY2Vp
dmVkKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKGluc3BlY3RvckFnZW50
LCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCmluZGV4IDZhMTVmMjA5NjNiZjUzNzhlNWVkMmMwOGMyOGUyOGNkY2FjODgzMDYuLmY2YmQ2
NzhhYWQ0MDJmNzQ1ZDMxNmMwZTAwZDg2NTAyNGNlYTJkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTM3NiwxMiAr
Mzc2LDEyIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgLy8gSWYgd2UgcmV2YWxpZGF0
ZWQgdGhlIHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNvbnRlbnQgbGVuZ3Ro
IGZvbGxvd2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVyZSB3aWxsIGJlIG5v
IGNhbGxzIHRvIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoIGZyb20gdGhlIG5ldHdvcmsgc3RhY2su
CiAgICAgaWYgKGNhY2hlZFJlc291cmNlU2l6ZSAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
ID09IDMwNCkKLSAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRpZmllciwgY2Fj
aGVkUmVzb3VyY2VTaXplKTsKKyAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoaWRlbnRp
ZmllciwgY2FjaGVkUmVzb3VyY2VTaXplLCAwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGludCBsZW5ndGhSZWNlaXZlZCkKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0
aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIG1fZnJvbnRlbmQtPmRpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGN1cnJlbnRUaW1lKCksIGxlbmd0aFJlY2VpdmVkKTsKKyAg
ICBtX2Zyb250ZW5kLT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlmaWVyLCBjdXJyZW50
VGltZSgpLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGRvdWJsZSBmaW5pc2hUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggZjFiM2Q0NjljOGJhODU4MmY1MjFjOWNjZGIzODg0
NGM0ZjkzMzliMi4uMjgxMjEwNDlkZDVjZWY5ZDM3Mjc3NmM1NDMyZTQwYjc2OWUwZWFhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5n
dGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFp
bExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CiAgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBDYWNoZWRSZXNvdXJjZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggODQ5MmI5ZTM3YmFjNWQ4ODA5
OTViY2RlZDEwZTAwYmIxYTc0NWZlMi4uNWZjODVjYTYyNGZkYTExZjVjZTI1ZGJiZmEyNTk5NWFl
M2EwZDc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xODYsMTMgKzE4NiwxNSBAQCBXZWJJbnNwZWN0b3IuTmV0
d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVN
b2RlbC5hZGRSZXNvdXJjZVRvRnJhbWUocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNl
KTsKICAgICB9LAogCi0gICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1bmN0aW9uKGlkZW50
aWZpZXIsIHRpbWUsIGxlbmd0aFJlY2VpdmVkKQorICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
OiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkK
ICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVzb3VyY2VzQnlJ
ZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVNpemUgKz0gbGVuZ3RoUmVjZWl2ZWQ7Cisg
ICAgICAgIHJlc291cmNlLnJlc291cmNlU2l6ZSArPSBkYXRhTGVuZ3RoOworICAgICAgICBpZiAo
bGVuZ3RoUmVjZWl2ZWQgIT0gLTEpCisgICAgICAgICAgICByZXNvdXJjZS5pbmNyZWFzZVRyYW5z
ZmVyU2l6ZShsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIHJlc291cmNlLmVuZFRpbWUgPSB0aW1l
OwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDZjZjViOWNjNmI2
N2VlZjVkZGYyMWQ2NWY0ZDAzNGJhYTBjMDJiZWMuLjJiZjVkOWZkYzg1ZjY2YzAzOTU2YjQ1MjJl
M2QzZDM2YTRjMDFiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZS5qcwpAQCAtMjQxLDcgKzI0MSwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGlmICh0aGlzLnN0
YXR1c0NvZGUgPT09IDMwNCkgLy8gTm90IG1vZGlmaWVkCiAgICAgICAgICAgICByZXR1cm4gdGhp
cy5fcmVzcG9uc2VIZWFkZXJzU2l6ZTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHByZWZlciB1c2lu
ZyBDb250ZW50LUxlbmd0aCBvdmVyIHJlc291cmNlU2l6ZSBhcworICAgICAgICBpZiAodGhpcy5f
dHJhbnNmZXJTaXplICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJh
bnNmZXJTaXplOworICAgICAgICAvLyBJZiB3ZSBkaWQgbm90IHJlY2VpdmUgYWN0dWFsIHRyYW5z
ZmVyIHNpemUgZnJvbSBuZXR3b3JrCisgICAgICAgIC8vIHN0YWNrLCB3ZSBwcmVmZXIgdXNpbmcg
Q29udGVudC1MZW5ndGggb3ZlciByZXNvdXJjZVNpemUgYXMKICAgICAgICAgLy8gcmVzb3VyY2VT
aXplIG1heSBkaWZmZXIgZnJvbSBhY3R1YWwgdHJhbnNmZXIgc2l6ZSBpZiBwbGF0Zm9ybSdzCiAg
ICAgICAgIC8vIG5ldHdvcmsgc3RhY2sgcGVyZm9ybWVkIGRlY29kaW5nIChlLmcuIGd6aXAgZGVj
b21wcmVzc2lvbikuCiAgICAgICAgIC8vIFRoZSBDb250ZW50LUxlbmd0aCwgdGhvdWdoLCBpcyBl
eHBlY3RlZCB0byBjb21lIGZyb20gcmF3CkBAIC0yNDksMTEgKzI1MiwxNiBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAvLyBUaGlzIHdvbid0IHdvcmsgZm9y
IGNodW5rZWQgY29udGVudCBlbmNvZGluZywgc28gZmFsbCBiYWNrIHRvCiAgICAgICAgIC8vIHJl
c291cmNlU2l6ZSB3aGVuIHdlIGRvbid0IGhhdmUgQ29udGVudC1MZW5ndGguIFRoaXMgc3RpbGwg
d29uJ3QKICAgICAgICAgLy8gd29yayBmb3IgY2h1bmtzIHdpdGggbm9uLXRyaXZpYWwgZW5jb2Rp
bmdzLiBXZSBuZWVkIGEgd2F5IHRvCi0gICAgICAgIC8vIGdldCBhY3RhdWwgdHJhbnNmZXIgc2l6
ZSBmcm9tIHRoZSBuZXR3b3JrIHN0YWNrLgorICAgICAgICAvLyBnZXQgYWN0dWFsIHRyYW5zZmVy
IHNpemUgZnJvbSB0aGUgbmV0d29yayBzdGFjay4KICAgICAgICAgdmFyIGJvZHlTaXplID0gTnVt
YmVyKHRoaXMucmVzcG9uc2VIZWFkZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMucmVzb3Vy
Y2VTaXplKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlSGVhZGVyc1NpemUgKyBib2R5
U2l6ZTsKICAgICB9LAogCisgICAgaW5jcmVhc2VUcmFuc2ZlclNpemU6IGZ1bmN0aW9uKHgpCisg
ICAgeworICAgICAgICB0aGlzLl90cmFuc2ZlclNpemUgPSAodGhpcy5fdHJhbnNmZXJTaXplIHx8
IDApICsgeDsKKyAgICB9LAorCiAgICAgZ2V0IGV4cGVjdGVkQ29udGVudExlbmd0aCgpCiAgICAg
ewogICAgICAgICByZXR1cm4gdGhpcy5fZXhwZWN0ZWRDb250ZW50TGVuZ3RoIHx8IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcAppbmRleCBjOTI4
NTU3MTJkYmEwNjdhZjA5MjE5MmY2NDdmY2YyZDc4ZWZmNWQwLi40ZDZjZTRhZmUyOWI0YWFhYmU4
MzhkMmRjYjk2MzE3ZjBmYjVjNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWROb3RpZmllci5jcHAKQEAgLTc0LDEyICs3NCwxMiBAQCB2b2lkIFJlc291cmNlTG9h
ZE5vdGlmaWVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29u
c3QgUmVzbwogICAgIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlci0+ZG9jdW1lbnRM
b2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9h
ZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCit2b2lkIFJlc291cmNl
TG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25z
dCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5wcm9ncmVz
cygpLT5pbmNyZW1lbnRQcm9ncmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YSwgbGVuZ3Ro
KTsKKyAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5p
ZGVudGlmaWVyKCksIGRhdGEsIGRhdGFMZW5ndGgpOwogCi0gICAgZGlzcGF0Y2hEaWRSZWNlaXZl
Q29udGVudExlbmd0aChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmll
cigpLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0
aChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBkYXRhTGVu
Z3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRp
ZEZpbmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRpbWUpCkBA
IC0xMzIsMTEgKzEzMiwxMSBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERp
ZFJlY2VpdmVSZXNwb25zZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bgogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVu
dGlmaWVyLCBsb2FkZXIsIHIpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNw
YXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJl
Y2VpdmVkKQogewotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRS
ZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXIsIGlkZW50aWZpZXIsIGxlbmd0aCk7CisgICAgbV9m
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
KGxvYWRlciwgaWRlbnRpZmllciwgZGF0YUxlbmd0aCk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIGlkZW50aWZpZXIsIGxl
bmd0aCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExl
bmd0aChtX2ZyYW1lLCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBm
aW5pc2hUaW1lKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6
OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAg
ICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmllciwgcmVz
cG9uc2UpOwogCiAgICAgaWYgKGxlbmd0aCA+IDApCi0gICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBpZGVudGlmaWVyLCBsZW5ndGgpOworICAgICAgICBkaXNw
YXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwgbGVuZ3RoLCAw
KTsKIAogICAgIGlmIChlcnJvci5pc051bGwoKSkKICAgICAgICAgZGlzcGF0Y2hEaWRGaW5pc2hM
b2FkaW5nKGxvYWRlciwgaWRlbnRpZmllciwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWROb3RpZmllci5oCmluZGV4IGE2ZDkyZmI3ZGQ0YzJlODU1MjQ3NTI1YzM4NzU1
YmFjMDEwZTMxOTQuLmYwM2VmYTM1M2FjY2JhZDFlNGVmNjVkZjAxYTcyZmM5YjI2MTU3OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCkBAIC01Mywx
NCArNTMsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VM
b2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRlcios
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGludCBkYXRh
TGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNv
dXJjZUxvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxUb0xvYWQo
UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIGFzc2ln
bklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0g
ICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoKTsKKyAgICB2b2lkIGRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaXNwYXRjaFRyYW5zZmVy
TG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggYjMz
MTQyNTI3OTQzMTg5MWU0OWE4ODE5NTk2MWJhM2NmYTA2M2U4ZC4uZDMwNzVlNGMwOWIzZjIxNmJj
Njg3MTBiZDY5NjM0OWE1M2MwNmI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTU1NSw4ICs1NTUs
MTAgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKKyAgICBVTlVTRURfUEFSQU0o
bGVuZ3RoUmVjZWl2ZWQpOworCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1fZnJhbWUsIG1fY3VycmVu
dFJlc291cmNlSWRlbnRpZmllciwgbGVuZ3RoUmVjZWl2ZWQpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9mcmFtZSwgbV9jdXJyZW50UmVz
b3VyY2VJZGVudGlmaWVyLCBsZW5ndGgsIDApOwogI2VuZGlmCiAKICAgICBpZiAoaGFuZGxlID09
IG1fbWFuaWZlc3RIYW5kbGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggNzg5MjYxOThlODNjZTAy
OTYwODYyODBkMGY2ODVlNzFmNTMyMDViYi4uM2JhYjdiNjEyMmNlYWVjNzk2YTA1ZmEwNjJmYzYw
ZTQ3NjlmNDNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTkxMyw2ICs5MTMsNyBAQCBTdHJpbmcg
UmVzb3VyY2VIYW5kbGU6OnByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckRl
ZmF1bHRCYXNlKCkKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVj
dGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhSZWNlaXZlZDoobG9uZyBs
b25nKWxlbmd0aFJlY2VpdmVkCiB7CiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAg
IFVOVVNFRF9QQVJBTShsZW5ndGhSZWNlaXZlZCk7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRs
ZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVEYXRhOiVwIGxlbmd0aFJlY2Vp
dmVkOiVsbGQiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgZGF0YSwgbGVuZ3RoUmVjZWl2ZWQpOwog
CkBAIC05MjIsNyArOTIzLDEwIEBAIFN0cmluZyBSZXNvdXJjZUhhbmRsZTo6cHJpdmF0ZUJyb3dz
aW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyRGVmYXVsdEJhc2UoKQogICAgIC8vIEhvd2V2ZXIs
IHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0
IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRoIGEgZ2lh
bnQgbG9jYWwgZmlsZS4KICAgICBDYWxsYmFja0d1YXJkIGd1YXJkOwotICAgIG1faGFuZGxlLT5j
bGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilbZGF0YSBieXRl
c10sIFtkYXRhIGxlbmd0aF0sIHN0YXRpY19jYXN0PGludD4obGVuZ3RoUmVjZWl2ZWQpKTsKKyAg
ICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzkz
CisgICAgLy8gLTEgbWVhbnMgd2UgZG8gbm90IHByb3ZpZGUgYW55IGRhdGEgYWJvdXQgdHJhbnNm
ZXIgc2l6ZSB0byBpbnNwZWN0b3Igc28gaXQgd291bGQgdXNlCisgICAgLy8gQ29udGVudC1MZW5n
dGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXplLgorICAgIG1f
aGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEobV9oYW5kbGUsIChjb25zdCBjaGFyKilb
ZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIC0xKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTdG9wQnVmZmVyaW5nRGF0YTooTlNE
YXRhICopZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCA2MWZlOTZjZDhhYWVkODQ3ZWVl
NzlmNWQ0ZDdiY2JiMTljYTcwNjIzLi44ZTA2NjZlODgxZWZmZjE5OTM2M2VmOTljOTVkMDJjNTJl
MWQ1YWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtNDcxLDggKzQ3MSwxMSBAQCB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSgpCiAgICAgaWYgKCFjbGllbnQpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBh
bnkgZGF0YSBhYm91dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UK
KyAgICAvLyBDb250ZW50LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRy
YW5zZmVyIHNpemUuCiAgICAgaWYgKCFkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgY2xpZW50LT5k
aWRSZWNlaXZlRGF0YShtX3Jlc291cmNlSGFuZGxlLCBkYXRhLmNvbnN0RGF0YSgpLCBkYXRhLmxl
bmd0aCgpLCBkYXRhLmxlbmd0aCgpIC8qRml4TWUqLyk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEobV9yZXNvdXJjZUhhbmRsZSwgZGF0YS5jb25zdERhdGEoKSwgZGF0YS5sZW5ndGgo
KSwgLTEpOwogfQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjp1cGxvYWRQcm9ncmVzcyhx
aW50NjQgYnl0ZXNTZW50LCBxaW50NjQgYnl0ZXNUb3RhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAK
aW5kZXggZDQxMGZhMzhkZmZmZDIzNzQ2ZDE2ZDAyN2M2NTI0MDNmMDkyYTA4ZS4uZTVkYTBlMzY1
NmM5OTdmMmJiMmJmNjZhODJhN2EzYjU3Y2I4MmIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAK
QEAgLTM2NCw3ICszNjQsMTAgQEAgc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVz
c2FnZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKIAogICAgIEFTU0VS
VCghZC0+bV9yZXNwb25zZS5pc051bGwoKSk7CiAKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGhhbmRsZS5nZXQoKSwgY2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIGNodW5rLT5sZW5ndGgp
OworICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk3OTMKKyAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91dCB0
cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAvLyBDb250ZW50
LUxlbmd0aCBoZWFkZXJzIG9yIGNvbnRlbnQgc2l6ZSB0byBzaG93IHRyYW5zZmVyIHNpemUuCisg
ICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUuZ2V0KCksIGNodW5rLT5kYXRhLCBjaHVu
ay0+bGVuZ3RoLCAtMSk7CiB9CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogY3JlYXRlU291cFNlc3Np
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVz
b3VyY2VIYW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4v
UmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IGY1MDU0MGMxY2RiNDVjNDM4MTZlYjJhNjM1NDU4
MjBiNjgyZTY2MGIuLmRjNWFkYzhjMjNhZmNkMzI2OWIzOWZmYjM5OGU5ZjA0NTQxOWZkYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFu
ZGxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAKQEAgLTI0Miw4ICsyNDIsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6b25SZXF1ZXN0Q29tcGxldGUoKQogICAgICAgICAgICAgICAgIHJlc291cmNlSGFuZGxlQ2xp
ZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UodGhpcywgcmVzcG9uc2UpOwogICAgICAgICB9CiAKKyAg
ICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc5MworICAgICAgICAvLyAtMSBtZWFucyB3ZSBkbyBub3QgcHJvdmlkZSBhbnkgZGF0YSBhYm91
dCB0cmFuc2ZlciBzaXplIHRvIGluc3BlY3RvciBzbyBpdCB3b3VsZCB1c2UKKyAgICAgICAgLy8g
Q29udGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBz
aXplLgogICAgICAgICBpZiAoUmVzb3VyY2VIYW5kbGVDbGllbnQqIHJlc291cmNlSGFuZGxlQ2xp
ZW50ID0gY2xpZW50KCkpCi0gICAgICAgICAgICByZXNvdXJjZUhhbmRsZUNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEodGhpcywgYnVmZmVyLCBidWZmZXJzLmR3QnVmZmVyTGVuZ3RoLCAwKTsKKyAgICAg
ICAgICAgIHJlc291cmNlSGFuZGxlQ2xpZW50LT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIs
IGJ1ZmZlcnMuZHdCdWZmZXJMZW5ndGgsIC0xKTsKICAgICAgICAgYnVmZmVycy5kd0J1ZmZlckxl
bmd0aCA9IGJ1ZmZlclNpemU7CiAgICAgfQogCkBAIC0zODUsOCArMzg4LDExIEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmZpbGVMb2FkVGltZXIoVGltZXI8UmVzb3VyY2VIYW5kbGU+KikKICAgICAg
ICAgY29uc3QgaW50IGJ1ZmZlclNpemUgPSA4MTkyOwogICAgICAgICBjaGFyIGJ1ZmZlcltidWZm
ZXJTaXplXTsKICAgICAgICAgcmVzdWx0ID0gUmVhZEZpbGUoZmlsZUhhbmRsZSwgJmJ1ZmZlciwg
YnVmZmVyU2l6ZSwgJmJ5dGVzUmVhZCwgMCk7CisgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTMKKyAgICAgICAgLy8gLTEgbWVhbnMg
d2UgZG8gbm90IHByb3ZpZGUgYW55IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0
b3Igc28gaXQgd291bGQgdXNlCisgICAgICAgIC8vIENvbnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3Ig
Y29udGVudCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6ZS4KICAgICAgICAgaWYgKHJlc3VsdCAm
JiBieXRlc1JlYWQpCi0gICAgICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywg
YnVmZmVyLCBieXRlc1JlYWQsIDApOworICAgICAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVE
YXRhKHRoaXMsIGJ1ZmZlciwgYnl0ZXNSZWFkLCAtMSk7CiAgICAgICAgIC8vIENoZWNrIGZvciBl
bmQgb2YgZmlsZS4KICAgICB9IHdoaWxlIChyZXN1bHQgJiYgYnl0ZXNSZWFkKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA1ODNlY2NlYjI0YmU5YjA4YmMwZDQ2ZTFkMjBhMjdlM2Yw
NjA4ZGVjLi5mZWUyZjA4YTAxY2M0MTc2OTc4MTMzNzZkODMyZWE4NWRkMGYxOTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTE4ICBWc2V2b2xv
ZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRyYW5zZmVyIHNpemUgc3VwcG9ydCBpbiBp
bnNwZWN0b3IgZm9yIGNvbXByZXNzZWQgZGF0YQorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdl
YiBJbnNwZWN0b3IgR2l2ZXMgRGlmZmVyZW50IFJlc3VsdHMgb24gVGlnZXIgYW5kIExlb3BhcmQg
KHNob3VsZCBzaG93IGNvbXByZXNzZWQgc2l6ZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCisKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVj
ZWl2ZURhdGEpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlRGF0YSk6CisKIDIw
MTEtMDMtMTcgIEFsZXhleSBNYXJpbmljaGV2ICA8YW1hcmluaWNoZXZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCA3MmY2MGJiMzdmMGVkM2Y5OWU3
MTllYmFhNmZjMWUwOTgzMzhjZDk1Li44OTBiY2VlMjE5OTkxODU5MDk1ZGMwNGUzMzYzMjZmODk0
ZjM5OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUu
Y3BwCkBAIC0xNTksMTggKzE1OSwxNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRp
ZFJlY2VpdmVSZXNwb25zZShXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxSZXNwbwogICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9vd25lciwgcmVzcG9uc2UudG9SZXNvdXJjZVJl
c3BvbnNlKCkpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVE
YXRhKAotICAgIFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3Ro
KQordm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRSZWNlaXZlRGF0YShXZWJVUkxMb2Fk
ZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKIHsKICAgICBBU1NFUlQobV9j
bGllbnQpOwogICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmVkUmVzcG9u
c2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhKQogICAgICAgICBD
UkFTSCgpOwogICAgIG1fc3RhdGUgPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhOwogCi0g
ICAgLy8gRklYTUUoeXVyeXMpOiBpdCBsb29rcyBsaWtlIGxlbmd0aFJlY2VpdmVkIGlzIGFsd2F5
cyB0aGUgc2FtZSBhcwotICAgIC8vIGRhdGFMZW5ndGggYW5kIHRoYXQgdGhlIGxhdHRlciBwYXJh
bWV0ZXIgY2FuIGJlIGVsaW1pbmF0ZWQuCi0gICAgLy8gU2VlIFdlYktpdCBidWc6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAxOQotICAgIG1fY2xpZW50LT5kaWRS
ZWNlaXZlRGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoLCBkYXRhTGVuZ3RoKTsKKyAgICAv
LyBGSVhNRSh2c2V2aWspOiBBZGQgdHJhbnNmZXIgc2l6ZSBzdXBwb3J0IHRvIGNocm9taXVtIHBv
cnQKKyAgICAvLyBTZWUgV2ViS2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2NjAyCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRh
dGEsIGRhdGFMZW5ndGgsIC0xKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpk
aWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNjJhOWQ5NTNlYmZiZjRiY2RlZWU4YmJlN2EzNzBi
ZmViYWRlYWI4Mi4uYzM2YTYyYjZmN2EyODlkODI3ZWVhODIwYjhmOTA0NTA5MWMyNmVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OndpbGxT
ZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIFdlYlVSTFJlcXVlCiAKIHZvaWQg
V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgcmVzb3Vy
Y2VJZCwgaW50IGxlbmd0aCkKIHsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoKG1haW5GcmFtZSgpLCByZXNvdXJjZUlkLCBsZW5ndGgpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobWFpbkZy
YW1lKCksIHJlc291cmNlSWQsIGxlbmd0aCwgLTEpOwogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdl
bnRJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkLCBjb25z
dCBXZWJVUkxSZXNwb25zZSYgcmVzcG9uc2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>