<?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>40645</bug_id>
          
          <creation_ts>2010-06-15 16:49:05 -0700</creation_ts>
          <short_desc>Fragment parsing needs to go through the HTML5 Parser code path</short_desc>
          <delta_ts>2011-01-19 19:07:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40657</dependson>
          <blocked>46692</blocked>
    
    <blocked>39259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>ossy</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238613</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 16:49:05 -0700</bug_when>
    <thetext>Fragment parsing needs to go through the HTML5 Parser code path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238616</commentid>
    <comment_count>1</comment_count>
      <attachid>58837</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 16:52:55 -0700</bug_when>
    <thetext>Created attachment 58837
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238617</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 16:58:10 -0700</bug_when>
    <thetext>The current patch crashes in a few tests at:
bool peek(SegmentedString&amp; source, int&amp; lineNumber)
{
    m_nextInputCharacter = *source;

under the fragment parsing path.  I do not yet know why.

This change could probably be simplified some.  The fragment parsing path is a mess anyway.  Not really sure how to clean it up.  Part of me feels like these parse*DocumentFragment methods belong in their own header or on DocumentFragment iself, not sure.  For the HTML5 codepath I put the call on HTML5DocumentParser so I could make the DocumentFragment* version of the constructor private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238618</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 16:59:08 -0700</bug_when>
    <thetext>editing/pasteboard/copy-crash.html	stderr
fast/forms/textarea-textlength.html	stderr
platform/mac/fast/text/ligature-subdivision.html	expected	actual	diff	pretty diff	stderr

Are the tests which crash.

I suspect we might end up calling end() on the DocumentParser, and thus trying to delete a stack pointer.  Although I would expect the delete to fail, not random later crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238622</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-15 17:06:46 -0700</bug_when>
    <thetext>My end() theory is bogus.  The Document doesn&apos;t own this DocumentParser, so it never deletes it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238704</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-16 00:33:38 -0700</bug_when>
    <thetext>The crash is caused by bug 40657.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239136</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-16 16:07:06 -0700</bug_when>
    <thetext>I&apos;ve documented the failures here:
https://spreadsheets.google.com/ccc?key=0AppchfQ5mBrEdDFJUW5DOGNsdmtvZkN0ZmIzMjdaT0E&amp;hl=en#gid=6

I may find a way to land this code &quot;off&quot; so that we can attack those failures in a distributed fashion like we did for the main parser conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240979</commentid>
    <comment_count>7</comment_count>
      <attachid>59314</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 17:00:57 -0700</bug_when>
    <thetext>Created attachment 59314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240982</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-21 17:02:53 -0700</bug_when>
    <thetext>Attachment 59314 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/dom/Element.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/html/HTML5TreeBuilder.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/xml/XSLTProcessor.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/html/HTMLElement.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240999</commentid>
    <comment_count>9</comment_count>
      <attachid>59317</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 17:20:30 -0700</bug_when>
    <thetext>Created attachment 59317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241003</commentid>
    <comment_count>10</comment_count>
      <attachid>59314</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 17:25:28 -0700</bug_when>
    <thetext>Comment on attachment 59314
Patch

WebCore/html/HTML5DocumentParser.cpp:372
 +  // This call is virtual.
call -&gt; function

WebCore/html/HTML5DocumentParser.cpp:378
 +  // This call is used throughout the implementation.
call -&gt; function

WebCore/html/HTML5DocumentParser.cpp:494
 +          &amp;&amp; document-&gt;page()-&gt;settings()-&gt;html5ParserEnabled();
We should reverse the default when we can&apos;t find the Settings object at some point.  This occurs during boot.

WebCore/html/HTML5DocumentParser.cpp:503
 +      parser.write(source, false);
false here because we&apos;re not from the network.  I guess that interacts properly with the preload scanner.

WebCore/html/HTML5DocumentParser.h:56
 +      static void parseHTMLDocumentFragment(const String&amp;, DocumentFragment*, FragmentScriptingPermission = FragmentScriptingAllowed);
I feel like this should be a method of the DocumentFragment object.  (Followup patch?)

WebCore/html/HTML5TreeBuilder.cpp:207
 +                      m_lastScriptElement-&gt;removeChildren();
Crazy

WebCore/html/HTML5TreeBuilder.h:30
 +  #include &quot;MappedAttributeEntry.h&quot; // For FragmentScriptingPermission!?
We should move FragmentScriptingPermission</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241005</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 17:26:44 -0700</bug_when>
    <thetext>Btw, the horrible FragmentScriptingPermission hack exists just for:
http://trac.webkit.org/browser/trunk/LayoutTests/editing/pasteboard/paste-visible-script.html
Which came from:
http://trac.webkit.org/changeset/53659
https://bugs.webkit.org/show_bug.cgi?id=33970</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241011</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 17:31:21 -0700</bug_when>
    <thetext>That patch makes zero sense.  It doesn&apos;t seem to block &lt;img src=&quot;about:blank&quot; onerror=&quot;alert(1)&quot;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241015</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 17:33:14 -0700</bug_when>
    <thetext>It also randomly nukes &lt;dog happyhref=&quot;javascript:potato&quot;&gt;&lt;/dog&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241020</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 17:35:28 -0700</bug_when>
    <thetext>In any case, that doesn&apos;t block us here, but we should either make that check bulletproof or get rid of it entirely.  A half-working hack helps no one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241086</commentid>
    <comment_count>15</comment_count>
      <attachid>59333</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 21:30:07 -0700</bug_when>
    <thetext>Created attachment 59333
Updated per Adam&apos;s review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241088</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 21:32:28 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; That patch makes zero sense.  It doesn&apos;t seem to block &lt;img src=&quot;about:blank&quot; onerror=&quot;alert(1)&quot;&gt;.

I could be wrong about this one.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241091</commentid>
    <comment_count>17</comment_count>
      <attachid>59333</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 21:38:50 -0700</bug_when>
    <thetext>Comment on attachment 59333
Updated per Adam&apos;s review comments

Politics aside, this is a good patch.  Thanks.  :)

LayoutTests/fast/tokenizer/lessthan-terminates-tags-and-attrs-expected.txt:5
 +  FAIL: &lt;foo&lt;bar&gt; parsed as &lt;foo&lt;bar&gt;&lt;/foo&lt;bar&gt; instead of &lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;&lt;/foo&gt;
Can you double-check this in minefield?

WebCore/html/HTML5TreeBuilder.h:113
 +      // FIXME: FragmentScriptingPermission is a HACK for platform/Pasteboard.
This seems a bit over the top, but ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241092</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 21:39:37 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; LayoutTests/fast/tokenizer/lessthan-terminates-tags-and-attrs-expected.txt:5
&gt;  +  FAIL: &lt;foo&lt;bar&gt; parsed as &lt;foo&lt;bar&gt;&lt;/foo&lt;bar&gt; instead of &lt;foo&gt;&lt;bar&gt;&lt;/bar&gt;&lt;/foo&gt;
&gt; Can you double-check this in minefield?

Yup.  Minefield agrees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241094</commentid>
    <comment_count>19</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-21 21:44:11 -0700</bug_when>
    <thetext>Attachment 59333 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3306541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241095</commentid>
    <comment_count>20</comment_count>
      <attachid>59334</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 21:51:13 -0700</bug_when>
    <thetext>Created attachment 59334
Hopefully fix the EWS bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241098</commentid>
    <comment_count>21</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-21 22:04:20 -0700</bug_when>
    <thetext>Attachment 59334 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3286565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241100</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 22:08:03 -0700</bug_when>
    <thetext>OK, so what am I missing?  I edited the .pro file to include the header...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241101</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-21 22:08:55 -0700</bug_when>
    <thetext>Attachment 59333 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3330559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241102</commentid>
    <comment_count>24</comment_count>
      <attachid>59337</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-21 22:12:32 -0700</bug_when>
    <thetext>Created attachment 59337
helps if you git add the new file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241109</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-21 22:25:23 -0700</bug_when>
    <thetext>Attachment 59333 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3287557</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241111</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-21 22:35:11 -0700</bug_when>
    <thetext>Attachment 59334 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3338594</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241124</commentid>
    <comment_count>27</comment_count>
      <attachid>59337</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 22:53:38 -0700</bug_when>
    <thetext>Comment on attachment 59337
helps if you git add the new file

I trust you got all the compile demons out of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241536</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-22 16:44:17 -0700</bug_when>
    <thetext>Committed r61637: &lt;http://trac.webkit.org/changeset/61637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241551</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-22 17:11:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61637 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/61636
http://trac.webkit.org/changeset/61637</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241558</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 17:20:09 -0700</bug_when>
    <thetext>This checkin exposed a bug in the Qt clipboard code:
https://bugs.webkit.org/show_bug.cgi?id=41025</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58837</attachid>
            <date>2010-06-15 16:52:55 -0700</date>
            <delta_ts>2010-06-21 17:00:54 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-40645-20100615165241.patch</filename>
            <type>text/plain</type>
            <size>18679</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWFmNTFkMTQ2MDBlZDJlMTMzM2UzYmFhYzQ3MTZjYTFhNDkxNzg0ZC4uZGFiNzU1MDRhNzU0ZGMx
M2I5ZWZmN2Y2OTBjMDIxYzRhODcwNWFiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNi0xNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRnJhZ21lbnQgcGFyc2luZyBuZWVkcyB0byBnbyB0aHJvdWdo
IHRoZSBIVE1MNSBQYXJzZXIgY29kZSBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDY0NQorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KToKKyAg
ICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNl
cjo6SFRNTDVEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50
UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNo
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlw
dHNXYWl0aW5nRm9yU3R5bGVzaGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVXNlSFRN
TDVQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cGFyc2VI
VE1MRG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2Vy
Lmg6CisgICAgICAgICogaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1VHJlZUJ1aWxkZXI6OkhUTUw1VHJlZUJ1aWxkZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTDVUcmVlQnVpbGRlci5oOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJhZ21lbnQpOgor
ICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNl
bnRIVE1MKToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UpOgorCiAyMDEwLTA2LTE1ICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggYzFjNzk4YmU5Y2E5YTJhMjhkMzQ2YmNiODYwY2QwODE5NDliYjA2ZC4uOWM5NzMw
NzNjOTJjMjBkMTc5YjAxODRkNTgzODEyYTgzODU3NTU1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyLDcgKzQy
LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgor
I2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5
bGUuaCIKQEAgLTkzLDEwICs5MywxMCBAQCBOb2RlUmFyZURhdGEqIEVsZW1lbnQ6OmNyZWF0ZVJh
cmVEYXRhKCkKIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFbGVtZW50OjpjcmVhdGVD
b250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewotICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
LSAgICAKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudCgp
LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisKICAgICBpZiAoZG9jdW1lbnQoKS0+aXNIVE1M
RG9jdW1lbnQoKSkKLSAgICAgICAgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChtYXJrdXAsIGZy
YWdtZW50LmdldCgpLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICAgICAgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChtYXJrdXAsIGZyYWdtZW50LmdldCgp
LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFwYXJzZVhN
TERvY3VtZW50RnJhZ21lbnQobWFya3VwLCBmcmFnbWVudC5nZXQoKSwgdGhpcywgc2NyaXB0aW5n
UGVybWlzc2lvbikpCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBh
IHN5bnRheCBlcnJvciBleGNlcHRpb24gb3V0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIGIvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRlRW50
cnkuaAppbmRleCBjZTI0NjRlNzkzYjJmZDY4ZDMxODlmODY2Yjk2MDVlM2RlOWVjYzBmLi5jYTBi
YzEyYzQ0Mjc0N2M5OWQ2NTU0ZjQ1OTZlOTY1ODU0OTFiMzEzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oCisrKyBiL1dlYkNvcmUvZG9tL01hcHBlZEF0dHJp
YnV0ZUVudHJ5LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgZW51bSBNYXBwZWRBdHRyaWJ1dGVFbnRyeSB7
CiAgICAgLCBlTGFzdEVudHJ5CiB9OwogCisvLyBGSVhNRTogRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uIGRvZXMgbm90IGJlbG9uZyBpbiB0aGlzIGhlYWRlciEKIGVudW0gRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uIHsgRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkLCBGcmFnbWVudFNjcmlw
dGluZ05vdEFsbG93ZWQgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9j
dW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCmlu
ZGV4IDI5OWMzZDkyNzBhNDgyYWRiMDI1NGY3ZTkwZTg0NmZiZjdiMmYzODcuLjg0NTc3MDM3ODE2
MzNkYzcwYTE5MWMzNTExY2QxMDFlZWY3NTczNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MNURvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBh
cnNlci5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSFRNTDVEb2N1bWVudFBhcnNlci5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIiAvLyBPbmx5IGZvciBpc0xheW91dFRpbWVyQWN0aXZlCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhU
TUw1UHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lci5oIgpAQCAt
MzYsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJY
U1NBdWRpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAgLTk1LDggKzk4
LDcgQEAgc3RhdGljIGludCBwYXJzZXJDaHVua1NpemUoUGFnZSogcGFnZSkKIH0KIAogSFRNTDVE
b2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3VtZW50
LCBib29sIHJlcG9ydEVycm9ycykKLSAgICA6IERvY3VtZW50UGFyc2VyKCkKLSAgICAsIG1fZG9j
dW1lbnQoZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sZXhl
cihuZXcgSFRNTDVMZXhlcikKICAgICAsIG1fc2NyaXB0UnVubmVyKG5ldyBIVE1MNVNjcmlwdFJ1
bm5lcihkb2N1bWVudCwgdGhpcykpCiAgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRNTDVU
cmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKQEAgLTEw
OSw2ICsxMTEsMjIgQEAgSFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihI
VE1MRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm8KICAgICBiZWdpbigpOwogfQog
CisvLyBGSVhNRTogTWVtYmVyIHZhcmlhYmxlcyBzaG91bGQgYmUgZ3JvdXBlZCBpbnRvIHNlbGYt
aW5pdGlhbGl6aW5nIHN0cnVjdHMgdG8KKy8vIG1pbmltaXplIGNvZGUgZHVwbGljYXRpb24gYmV0
d2VlbiB0aGVzZSBjb25zdHJ1Y3RvcnMuCitIVE1MNURvY3VtZW50UGFyc2VyOjpIVE1MNURvY3Vt
ZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICA6IG1fZG9jdW1lbnQoZnJhZ21lbnQt
PmRvY3VtZW50KCkpCisgICAgLCBtX2xleGVyKG5ldyBIVE1MNUxleGVyKQorICAgICwgbV90cmVl
Q29uc3RydWN0b3IobmV3IEhUTUw1VHJlZUJ1aWxkZXIobV9sZXhlci5nZXQoKSwgZnJhZ21lbnQs
IHNjcmlwdGluZ1Blcm1pc3Npb24pKQorICAgICwgbV9lbmRXYXNEZWxheWVkKGZhbHNlKQorICAg
ICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQorICAgIC8vIEZJWE1FOiBQYXJzZXIgeWllbGRpbmcg
c2hvdWxkIGJlIGEgc2VwYXJhdGUgY2xhc3MuCisgICAgLCBtX3BhcnNlclRpbWVMaW1pdCgwKQor
ICAgICwgbV9wYXJzZXJDaHVua1NpemUoMCkKKyAgICAsIG1fY29udGludWVOZXh0Q2h1bmtUaW1l
cih0aGlzLCAmSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVk
KQoreworICAgIGJlZ2luKCk7Cit9CisKIEhUTUw1RG9jdW1lbnRQYXJzZXI6On5IVE1MNURvY3Vt
ZW50UGFyc2VyKCkKIHsKICAgICAvLyBGSVhNRTogV2UnZCBsaWtlIHRvIEFTU0VSVCB0aGF0IG5v
cm1hbCBvcGVyYXRpb24gb2YgdGhpcyBjbGFzcyBjbGVhcnMKQEAgLTE3Nyw2ICsxOTUsMTggQEAg
aW5saW5lIGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6c2hvdWxkQ29udGludWVQYXJzaW5nKFB1
bXBTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEhUTUw1RG9j
dW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQ29uc3RydWN0b3IoKQoreworICAg
IEFTU0VSVChtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7CisKKyAgICBpbnQgc2NyaXB0
U3RhcnRMaW5lID0gMDsKKyAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCA9IG1fdHJl
ZUNvbnN0cnVjdG9yLT50YWtlU2NyaXB0VG9Qcm9jZXNzKHNjcmlwdFN0YXJ0TGluZSk7CisgICAg
Ly8gV2Ugd2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1bWVu
dEZyYWdtZW50LgorICAgIGlmICghbV9zY3JpcHRSdW5uZXIpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVh
c2UoKSwgc2NyaXB0U3RhcnRMaW5lKTsKK30KKwogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpw
dW1wTGV4ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNlclN0
b3BwZWQpOwpAQCAtMjAzLDE0ICsyMzMsMTIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpw
dW1wTGV4ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAgICAgICAgIGlmIChTY3JpcHRDb250cm9s
bGVyKiBzY3JpcHRDb250cm9sbGVyID0gc2NyaXB0KCkpCiAgICAgICAgICAgICBzY3JpcHRDb250
cm9sbGVyLT5zZXRFdmVudEhhbmRsZXJMaW5lTnVtYmVyKDApOwogCisgICAgICAgIC8vIFRoZSBw
YXJzZXIgd2lsbCBwYXVzZSBpdHNlbGYgd2hlbiB3YWl0aW5nIG9uIGEgc2NyaXB0IHRvIGxvYWQg
b3IgcnVuLgogICAgICAgICBpZiAoIW1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgLy8gVGhlIHBhcnNlciB3aWxsIHBhdXNlIGl0
c2VsZiB3aGVuIHdhaXRpbmcgb24gYSBzY3JpcHQgdG8gbG9hZCBvciBydW4uCi0gICAgICAgIC8v
IFNjcmlwdFJ1bm5lciBleGVjdXRlcyBzY3JpcHRzIGF0IHRoZSByaWdodCB0aW1lcyBhbmQgaGFu
ZGxlcyByZWVudHJhbmN5LgotICAgICAgICBpbnQgc2NyaXB0U3RhcnRMaW5lID0gMDsKLSAgICAg
ICAgUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBtX3RyZWVDb25zdHJ1Y3Rvci0+dGFr
ZVNjcmlwdFRvUHJvY2VzcyhzY3JpcHRTdGFydExpbmUpOwotICAgICAgICBib29sIHNob3VsZENv
bnRpbnVlUGFyc2luZyA9IG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQucmVs
ZWFzZSgpLCBzY3JpcHRTdGFydExpbmUpOworICAgICAgICAvLyBJZiB3ZSdyZSBwYXVzZWQgd2Fp
dGluZyBmb3IgYSBzY3JpcHQsIHdlIHRyeSB0byBleGVjdXRlIHNjcmlwdHMgYmVmb3JlIGNvbnRp
bnVpbmcuCisgICAgICAgIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nID0gcnVuU2NyaXB0c0Zv
clBhdXNlZFRyZWVDb25zdHJ1Y3RvcigpOwogICAgICAgICBtX3RyZWVDb25zdHJ1Y3Rvci0+c2V0
UGF1c2VkKCFzaG91bGRDb250aW51ZVBhcnNpbmcpOwogICAgICAgICBpZiAoIXNob3VsZENvbnRp
bnVlUGFyc2luZykKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzM2LDggKzM2NCwxNyBAQCB2b2lk
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgYXR0ZW1wdFRvRW5kKCk7CiB9CiAK
Ky8vIFRoaXMgY2FsbCBpcyB2aXJ0dWFsLgogaW50IEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1
dGluZ1NjcmlwdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIGluU2NyaXB0RXhlY3V0aW9uKCk7Cit9
CisKKy8vIFRoaXMgY2FsbCBpcyB1c2VkIHRocm91Z2hvdXQgdGhlIGltcGxlbWVudGF0aW9uLgor
Ym9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjppblNjcmlwdEV4ZWN1dGlvbigpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3NjcmlwdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVy
biBtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKTsKIH0KIApAQCAtMzYzLDcgKzQw
MCw3IEBAIGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNv
bnN0CiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0
RXhlY3V0aW9uKCkKIHsKLSAgICBBU1NFUlQoIW1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1
dGlvbigpKTsKKyAgICBBU1NFUlQoIWluU2NyaXB0RXhlY3V0aW9uKCkpOwogICAgIEFTU0VSVCgh
bV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpOwogCiAgICAgcHVtcExleGVySWZQb3NzaWJs
ZShBbGxvd1lpZWxkKTsKQEAgLTM5NSw3ICs0MzIsNyBAQCBib29sIEhUTUw1RG9jdW1lbnRQYXJz
ZXI6OnNob3VsZExvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMoY29uc3QgQXRvbWljU3RyaW5nJiBz
cgogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKLSAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXItPmlu
U2NyaXB0RXhlY3V0aW9uKCkpOworICAgIEFTU0VSVChpblNjcmlwdEV4ZWN1dGlvbigpKTsKICAg
ICBpZiAoIW1fZG9jdW1lbnQtPmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKICAgICBJbnNlcnRp
b25Qb2ludFJlY29yZCBzYXZlZEluc2VydGlvblBvaW50KG1faW5wdXQpOwpAQCAtNDA0LDcgKzQ0
MSw4IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKLSAgICBBU1NF
UlQoIW1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQobV9z
Y3JpcHRSdW5uZXIpOworICAgIEFTU0VSVCghaW5TY3JpcHRFeGVjdXRpb24oKSk7CiAgICAgQVNT
RVJUKG1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKICAgICAvLyBOb3RlOiBXZSBvbmx5
IGV2ZXIgd2FpdCBvbiBvbmUgc2NyaXB0IGF0IGEgdGltZSwgc28gd2UgYWx3YXlzIGtub3cgdGhp
cwogICAgIC8vIGlzIHRoZSBvbmUgd2Ugd2VyZSB3YWl0aW5nIG9uIGFuZCBjYW4gdW4tcGF1c2Ug
dGhlIHRyZWUgYnVpbGRlci4KQEAgLTQxNyw2ICs0NTUsOSBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIAog
dm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNo
ZWV0cygpCiB7CisgICAgLy8gSWdub3JlIGNhbGxzIHdoZW4gdGhlcmUgaXMgbm8gc2NyaXB0IHJ1
bm5lciAoZS5nLiBmb3IgRG9jdW1lbnRGcmFnbWVudHMpLgorICAgIGlmICghbV9zY3JpcHRSdW5u
ZXIpCisgICAgICAgIHJldHVybjsKICAgICAvLyBJZ25vcmUgY2FsbHMgdW5sZXNzIHdlIGhhdmUg
YSBzY3JpcHQgYmxvY2tpbmcgdGhlIHBhcnNlciB3YWl0aW5nIG9uIGEKICAgICAvLyBzdHlsZXNo
ZWV0IGxvYWQuICBPdGhlcndpc2Ugd2UgYXJlIGN1cnJlbnRseSBwYXJzaW5nIGFuZCB0aGlzCiAg
ICAgLy8gaXMgYSByZS1lbnRyYW50IGNhbGwgZnJvbSBlbmNvdW50ZXJpbmcgYSA8LyBzdHlsZT4g
dGFnLgpAQCAtNDM4LDQgKzQ3OSwyMSBAQCBTY3JpcHRDb250cm9sbGVyKiBIVE1MNURvY3VtZW50
UGFyc2VyOjpzY3JpcHQoKSBjb25zdAogICAgIHJldHVybiBtX2RvY3VtZW50LT5mcmFtZSgpID8g
bV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCkgOiAwOwogfQogCitzdGF0aWMgYm9vbCBzaG91
bGRVc2VIVE1MNVBhcnNlcihEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGRvY3Vt
ZW50ICYmIGRvY3VtZW50LT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0dGluZ3MoKQor
ICAgICAgICAmJiBkb2N1bWVudC0+cGFnZSgpLT5zZXR0aW5ncygpLT5odG1sNVBhcnNlckVuYWJs
ZWQoKTsKK30KKwordm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJzZUhUTUxEb2N1bWVudEZy
YWdtZW50KGNvbnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCit7CisgICAg
aWYgKCFzaG91bGRVc2VIVE1MNVBhcnNlcihmcmFnbWVudC0+ZG9jdW1lbnQoKSkpCisgICAgICAg
IHJldHVybiBwYXJzZUxlZ2FjeUhUTUxEb2N1bWVudEZyYWdtZW50KHNvdXJjZSwgZnJhZ21lbnQs
IHNjcmlwdGluZ1Blcm1pc3Npb24pOworCisgICAgSFRNTDVEb2N1bWVudFBhcnNlciBwYXJzZXIo
ZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgIHBhcnNlci53cml0ZShzb3VyY2Us
IGZhbHNlKTsKKyAgICBwYXJzZXIuZmluaXNoKCk7CisgICAgQVNTRVJUKCFwYXJzZXIucHJvY2Vz
c2luZ0RhdGEoKSk7ICAgICAgLy8gbWFrZSBzdXJlIHdlJ3JlIGRvbmUgKHNlZSAzOTYzMTUxKQor
fQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oIGIv
V2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaAppbmRleCA0MWFlYmNiOTI4MjBiNzFl
NDIyYjFkMmIwYzMxZGQ4MTVhYTIzZTI4Li5lYTg3MTNhYzlkNDVmMDAyODI5M2FhOTA4MjJhODlm
Y2RiYTdmZGE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKQEAgLTM2LDIwICszNiwy
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRG9j
dW1lbnRGcmFnbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKLWNsYXNzIExlZ2FjeUhUTUxUcmVl
Q29uc3RydWN0b3I7CiBjbGFzcyBIVE1MNUxleGVyOwogY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXI7
CiBjbGFzcyBIVE1MNVRyZWVCdWlsZGVyOwogY2xhc3MgSFRNTDVQcmVsb2FkU2Nhbm5lcjsKK2Ns
YXNzIExlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3I7CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwog
Y2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRNTDVEb2N1bWVudFBhcnNlciA6ICBw
dWJsaWMgRG9jdW1lbnRQYXJzZXIsIEhUTUw1U2NyaXB0UnVubmVySG9zdCwgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgewogcHVibGljOgorICAgIC8vIEZJWE1FOiBUaGlzIGNvbnN0cnVjdG9yIHNob3Vs
ZCBiZSBtYWRlIHByaXZhdGUgYW5kIHJlcGxhY2VkIGJ5IGEgY3JlYXRlKCkgbWV0aG9kLgogICAg
IEhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJvcnMpOwog
ICAgIHZpcnR1YWwgfkhUTUw1RG9jdW1lbnRQYXJzZXIoKTsKIAorICAgIHN0YXRpYyB2b2lkIHBh
cnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCos
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7
CisKICAgICAvLyBEb2N1bWVudFBhcnNlcgogICAgIHZpcnR1YWwgdm9pZCBiZWdpbigpOwogICAg
IHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGlzRnJvbU5l
dHdvcmspOwpAQCAtNzYsNiArODEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKIHByaXZhdGU6CisgICAgSFRNTDVEb2N1bWVu
dFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsK
KwogICAgIC8vIFRoZSBJbnB1dFN0cmVhbSBpcyBtYWRlIHVwIG9mIGEgc2VxdWVuY2Ugb2YgU2Vn
bWVudGVkU3RyaW5nczoKICAgICAvLwogICAgIC8vIFstLWN1cnJlbnQtLV1bLS1uZXh0LS1dWy0t
bmV4dC0tXSAuLi4gWy0tbmV4dC0tXQpAQCAtMTcwLDYgKzE3Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdHJ1Y3QgUHVtcFNlc3Npb247CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJz
aW5nKFB1bXBTZXNzaW9uJik7CisgICAgYm9vbCBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0
cnVjdG9yKCk7CiAKICAgICBlbnVtIFN5bmNocm9ub3VzTW9kZSB7CiAgICAgICAgIEFsbG93WWll
bGQsCkBAIC0xODIsNiArMTkwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYXR0ZW1wdFRvRW5k
KCk7CiAgICAgdm9pZCBlbmRJZkRlbGF5ZWQoKTsKKworICAgIGJvb2wgaW5TY3JpcHRFeGVjdXRp
b24oKSBjb25zdDsKICAgICBib29sIGluV3JpdGUoKSBjb25zdCB7IHJldHVybiBtX3dyaXRlTmVz
dGluZ0xldmVsID4gMDsgfQogCiAgICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KCkgY29uc3Q7
CkBAIC0xOTEsNyArMjAxLDkgQEAgcHJpdmF0ZToKICAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVy
ZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxseSBjb21wbGV0ZS4KICAgICBIVE1MNVRva2Vu
IG1fdG9rZW47CiAKLSAgICBIVE1MRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgLy8gV2UgbXVz
dCBzdXBwb3J0IHBhcnNpbmcgaW50byBhIERvY3VtZW50KiBhbmQgbm90IGp1c3QgSFRNTERvY3Vt
ZW50KgorICAgIC8vIHRvIHN1cHBvcnQgRG9jdW1lbnRGcmFnbWVudCAod2hpY2ggaGFzIGEgRG9j
dW1lbnQqKS4KKyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKICAgICBPd25QdHI8SFRNTDVMZXhl
cj4gbV9sZXhlcjsKICAgICBPd25QdHI8SFRNTDVTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVy
OwogICAgIE93blB0cjxIVE1MNVRyZWVCdWlsZGVyPiBtX3RyZWVDb25zdHJ1Y3RvcjsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MNVRyZWVCdWlsZGVyLmNwcAppbmRleCAyZDNhZmIyMjM2YjNhM2MwOTQ1OWM5NDU0YWM0MDgw
MDk1NGUwZTY0Li5mNmNhZjhjOWVkNmIxN2Q2NTE1MTg0OGU3ZjBmNzViMjU1M2U3YjVhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSFRN
TDVMZXhlci5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKICNpbmNsdWRlICJIVE1MRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkhU
TUxEb2N1bWVudFBhcnNlci5oIgpAQCAtNTQsNiArNTUsMjEgQEAgSFRNTDVUcmVlQnVpbGRlcjo6
SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgSFRNTERvY3VtZW50KiBkb2N1bWVu
dCwgYm8KIHsKIH0KIAorLy8gRklYTUU6IE1lbWJlciB2YXJpYWJsZXMgc2hvdWxkIGJlIGdyb3Vw
ZWQgaW50byBzZWxmLWluaXRpYWxpemluZyBzdHJ1Y3RzIHRvCisvLyBtaW5pbWl6ZSBjb2RlIGR1
cGxpY2F0aW9uIGJldHdlZW4gdGhlc2UgY29uc3RydWN0b3JzLgorSFRNTDVUcmVlQnVpbGRlcjo6
SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgRG9jdW1lbnRGcmFnbWVudCogZnJh
Z21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJzbWlzc2lvbikK
KyAgICA6IG1fZG9jdW1lbnQoZnJhZ21lbnQtPmRvY3VtZW50KCkpCisgICAgLCBtX3JlcG9ydEVy
cm9ycyhmYWxzZSkgLy8gRklYTUU6IFdoeSBub3QgcmVwb3J0IGVycm9ycyBpbiBmcmFnbWVudHM/
CisgICAgLCBtX2lzUGF1c2VkKGZhbHNlKQorICAgICwgbV9pbnNlcnRpb25Nb2RlKEluaXRpYWwp
CisgICAgLCBtX2xleGVyKGxleGVyKQorICAgICwgbV9sZWdhY3lUcmVlQ29uc3RydWN0b3IobmV3
IExlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IoZnJhZ21lbnQsIHNjcmlwdGluZ1BlcnNtaXNzaW9u
KSkKKyAgICAsIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVO
dW1iZXJWYWx1ZSkKKyAgICAsIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5lKHVuaW5pdGlhbGl6
ZWRMaW5lTnVtYmVyVmFsdWUpCit7Cit9CisKKwogSFRNTDVUcmVlQnVpbGRlcjo6fkhUTUw1VHJl
ZUJ1aWxkZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxk
ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKaW5kZXggYmIyMjMyMzQyNjg2
MGMzNDFmYTVlYTVhYjNlYThhZDBhMjcxNDUzMS4uYjY2NmZhZWE3ZTc4NDc0N2IwMzZlZWIwNjY5
NDNiODhjNTE4Y2M5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAjZGVmaW5lIEhUTUw1VHJlZUJ1aWxkZXJfaAogCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgor
I2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiIC8vIEZvciBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24hPwogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzYsNiArMzcsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIERvY3VtZW50
RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MNVRva2Vu
OwpAQCAtNDUsNyArNDcsOSBAQCBjbGFzcyBOb2RlOwogCiBjbGFzcyBIVE1MNVRyZWVCdWlsZGVy
IDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKKyAgICAvLyBGSVhNRTogUmVwbGFjZSBj
b25zdHJ1Y3RvcnMgd2l0aCBjcmVhdGUoKSBmdW5jdGlvbnMgcmV0dXJuaW5nIFBhc3NPd25QdHJz
CiAgICAgSFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiwgSFRNTERvY3VtZW50KiwgYm9vbCBy
ZXBvcnRFcnJvcnMpOworICAgIEhUTUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciosIERvY3VtZW50
RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIH5IVE1MNVRyZWVC
dWlsZGVyKCk7CiAKICAgICB2b2lkIHNldFBhdXNlZChib29sIHBhdXNlZCkgeyBtX2lzUGF1c2Vk
ID0gcGF1c2VkOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGM1ZTYyYjY3
MDgwMWJjNDEyYjU1MGU3MjRkMmY3ZGUyZGQxZjA0MDEuLjNkZjEzNDkyZGIxMmY4ODAyZGJlN2Jj
MTRmODI1ZDZhMWQ2NTg3NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0y
MDk0LDcgKzIwOTQsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c2V0U3JjKGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYgc291cmNlKQogICAgIG1fc3JjID0gc291cmNlOwogfQogCi12b2lkIHBh
cnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJh
Z21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVy
bWlzc2lvbikKK3ZvaWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJp
bmcmIHNvdXJjZSwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogICAgIEhUTUxEb2N1bWVudFBhcnNl
ciBwYXJzZXIoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIHBhcnNlci5zZXRG
b3JjZVN5bmNocm9ub3VzKHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDYw
NzJhN2U5MGU4N2M4OTRiNGU0MjdlNmU2MWQzZjExNDdiMTAzOWEuLmZmOGE1ZWFkNTk1YmE5ZjVm
OTMwNGQzMzA0ZTMyMWVkOTVlNGFlNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAg
LTQzOSw3ICs0MzksNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxQcmVsb2FkU2Nhbm5lcj4gbV9w
cmVsb2FkU2Nhbm5lcjsKIH07CiAKLXZvaWQgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChjb25z
dCBTdHJpbmcmLCBEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
ID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKK3ZvaWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1l
bnRGcmFnbWVudChjb25zdCBTdHJpbmcmLCBEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKIAogVUNoYXIgZGVj
b2RlTmFtZWRFbnRpdHkoY29uc3QgY2hhciopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA4ZjJi
ZWFkN2EyZjc1ZjExYTQzNDQwMTFiNWY3MTFlNDYyNzQ5NzdhLi40NDRlYjhiMDEwNDFiZDdkZWM5
OGY2NmU2MWM4NTY2Y2U4MzNiZDU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQ
YXJzZXIuaCIKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5z
ZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwg
RXgKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudCgp
LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgaWYgKGRvY3VtZW50KCktPmlzSFRNTERv
Y3VtZW50KCkpCi0gICAgICAgICBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdt
ZW50LmdldCgpKTsKKyAgICAgICAgIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3Vt
ZW50RnJhZ21lbnQoaHRtbCwgZnJhZ21lbnQuZ2V0KCkpOwogICAgIGVsc2UgewogICAgICAgICBp
ZiAoIXBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBmcmFnbWVudC5nZXQoKSwgdGhpcykp
CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBhIHN5bnRheCBlcnJv
ciBleGNlcHRpb24gb3V0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yLmNwcCBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDk3YjU0NjY3OThm
MTFiNmI3ZGJhMmZlMzFhMjg2YWQ5ZWMzZTgzNzAuLjk1N2MxMTFiZGQyMzUwMzQ5MjlmYzI2YzU1
MGJlYjJiOGRjMWZkNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3Bw
CisrKyBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIgLy8gZm9y
IHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2Vy
LmgiIC8vIGZvciBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50CiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC0x
MDAsMTAgKzEwMCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVh
dGVEb2N1bWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyYwogCiBzdGF0aWMgaW5saW5l
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29uc3Qg
U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERvY3Vt
ZW50KiBvdXRwdXREb2MpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG91dHB1dERvYyk7CisgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gb3V0cHV0RG9jLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7CiAKICAgICBpZiAoc291cmNlTUlNRVR5cGUgPT0gInRleHQvaHRtbCIpCi0gICAgICAgIHBh
cnNlSFRNTERvY3VtZW50RnJhZ21lbnQoc291cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSk7Cisg
ICAgICAgIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoc291
cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSk7CiAgICAgZWxzZSBpZiAoc291cmNlTUlNRVR5cGUg
PT0gInRleHQvcGxhaW4iKQogICAgICAgICBmcmFnbWVudC0+YWRkQ2hpbGQoVGV4dDo6Y3JlYXRl
KG91dHB1dERvYywgc291cmNlU3RyaW5nKSk7CiAgICAgZWxzZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59314</attachid>
            <date>2010-06-21 17:00:57 -0700</date>
            <delta_ts>2010-06-21 17:25:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40645-20100621170056.patch</filename>
            <type>text/plain</type>
            <size>38233</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4OWExZDU3OWYwYWIwNzJlNmI1MmFjNGQwMGQxZmU1NDBmMGIxMzZjLi5mMTRkMTRm
NzExOGY2ZjIxZWMxZjhhY2M0NGEzNWNjMmE5NDMxNDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGcmFnbWVu
dCBwYXJzaW5nIG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIEhUTUw1IFBhcnNlciBjb2RlIHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjQ1CisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgIC0gXDAgaXMgbm93IGNvbnZlcnRlZCB0byBcdUZGRkQgcGVyIEhUTUw1
LgorICAgICAgICAqIGZhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgLSA8dGV4dGFyZWE+IGlzIHBhcnNlZCBpbiB0aGUgUkNEQVRBIHN0YXRl
LCB3aGljaCBtZWFucworICAgICAgICAgICB0aGF0IGNvbW1lbnRzIGFyZSBpZ25vcmVkLCB0aHVz
IHRoZSA8L3RleHRhcmVhPiBpbiB0aGUKKyAgICAgICAgICAgY29tbWVudCBjb3JyZWN0bHkgY2xv
c2VzIHRoZSA8dGV4dGFyZWE+LiAgVGhpcyB0ZXN0IGlzIGludmFsaWQuCisgICAgICAgICAgIE91
ciBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBtaW5lZmllbGQuCisgICAgICAgICogZmFzdC90b2tlbml6
ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAtIFRoaXMgdGVzdCBpcyBpbnZhbGlkIGFuZCBwcm9iYWJseSBzaG91bGQganVzdCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICBUaGlzIHNhbWUgYmVoYXZpb3IgaXMgdGVzdGVkIGJ5IGZhc3Qv
aW52YWxpZC8wMTYuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFRoZSAiZXh0cmEiIFBhcnNlSFRNTCBpcyBleHBl
Y3RlZC4gIFRoZSBIVE1MNSBQYXJzZXIgdGVsbHMgdGhlCisgICAgICAgICAgIGluc3BlY3RvciBh
Ym91dCBldmVyeSBwYXJzZXIgcHVtcCwgZXZlbiBvbmVzIHdoaWNoIHB1bXAgbm8gZGF0YS4KKyAg
ICAgICAgICAgVGhlIEhUTUw1IHBhcnNlciBwdW1wcyBvbmUgbGFzdCB0aW1lIGluIGZpbmlzaCgp
IHRvIGZsdXNoIGFueQorICAgICAgICAgICBidWZmZXJlZCBjaGFyYWN0ZXJzLiAgRXZlbnR1YWxs
eSB3ZSdsbCB0ZWFjaCB0aGUgaW5zcGVjdG9yIHRvCisgICAgICAgICAgIGZpbHRlciBvdXQgKG5v
dCBkaXNwbGF5KSAwLXNpemVkIHB1bXBzLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFwwIGlzIG5vdyBjb252ZXJ0
ZWQgdG8gXHVGRkZEIHBlciBIVE1MNQorICAgICAgICAqIHN2Zy9kb20vZnV6ei1wYXRoLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWIt
cHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6IGRpdHRvLgorCisyMDEwLTA2LTIx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBUd28gZmFzdC9keW5hbWljIHRlc3RzIG5lZWRsZXNz
bHkgZGVwZW5kIG9uIGxlZ2FjeSA8dGFnPHRhZz4gcGFyc2luZyBiZWhhdmlvcgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NDYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWdldENvbnRleHQtaW52YWxpZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZh
bGlkLWV4cGVjdGVkLnR4dAppbmRleCAyZjI0ZThlZDA0ZGJmYWIzZjIwMDk5YmY2ZTcyNWNjZjIz
YmQ1YWJiLi4zNGIxNDlkYjc4YzE3ZmZiOWJhZGU3ZDJiODA4YzEzYjA1NTczODc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4
dC1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdl
dENvbnRleHQoJzJkIycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJ1RoaXMgaXMg
Y2xlYXJseSBub3QgYSB2YWxpZCBjb250ZXh0IG5hbWUuJykgaXMgbnVsbAotUEFTUyBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKSBpcyBudWxsCitQQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/vScp
IGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJzLvvYQnKSBpcyBudWxsCiBQQVNTIGNh
bnZhcy5nZXRDb250ZXh0KCcyRCcpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NDM3NTczYjU0NDZkZmNjZGI3NzQxNzkzZDZjY2MwYjE3ZGM0
NjcuLjZkMjhlNjRiODJiODNhNjc4NTEyZDAzNjk4MWIzOWFmOGRiZWIwMmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG51bGwgY2hhcmFjdGVycyBhcmUg
YWxsb3dlZCBpbiBKYXZhU2NyaXB0IHN0cmluZ3MsIHJhdGhlcgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgU3RyaW5nKCIiKS5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcoIu+/
vSIpLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0CmluZGV4IGYwMmYwOTEzN2UxODE0MjhjZjMzYjk4YzMyNjUxNTYzNDU2Mzg0ZTku
LjRmZWRiMTlkNzcyNjg5NmE4MzExZWFkMjNkMDBmZGIyYTlmMjg3YmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgY29ycmVjdG5lc3MgYW5kIGJlaGF2aW91ciBvZiBz
d2l0Y2ggc3RhdGVtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNo
YXJhY3RlclN3aXRjaCgnJykgaXMgIiIKK1BBU1MgY2hhcmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi
77+9IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKCdhJykgaXMgImEiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnMScpIGlzICIxIgpAQCAtMTks
NyArMTksNyBAQCBQQVNTIGNoYXJhY3RlclN3aXRjaCgtMSkgaXMgImRlZmF1bHQiCiBQQVNTIGNo
YXJhY3RlclN3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIGNoYXJhY3RlclN3
aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKHt9KSBp
cyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcnKSBpcyAiIgorUEFTUyBz
cGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCiBQQVNTIHNwYXJzZUNoYXJhY3Rl
clN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ2EnKSBpcyAi
YSIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0zNSw3ICszNSw3
IEBAIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3Bh
cnNlQ2hhcmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNl
Q2hhcmFjdGVyU3dpdGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VDaGFy
YWN0ZXJTd2l0Y2goe30pIGlzICJkZWZhdWx0IgotUEFTUyBzdHJpbmdTd2l0Y2goJycpIGlzICIi
CitQQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMgIu+/vSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdB
JykgaXMgIkEiCiBQQVNTIHN0cmluZ1N3aXRjaCgnYScpIGlzICJhIgogUEFTUyBzdHJpbmdTd2l0
Y2goJzEnKSBpcyAiMSIKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBzdHJpbmdTd2l0Y2goLTEpIGlz
ICJkZWZhdWx0IgogUEFTUyBzdHJpbmdTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0Igog
UEFTUyBzdHJpbmdTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3
aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIG51bWJlclN3aXRjaCgnJykgaXMgImRlZmF1bHQi
CitQQVNTIG51bWJlclN3aXRjaCgn77+9JykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRj
aCgnQScpIGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC03MSw3ICs3MSw3IEBAIFBB
U1MgbnVtYmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBudW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQi
CiBQQVNTIG51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHNwYXJzZU51bWJlclN3
aXRjaCgnJykgaXMgImRlZmF1bHQiCitQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgn77+9JykgaXMg
ImRlZmF1bHQiCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgnQScpIGlzICJkZWZhdWx0IgogUEFT
UyBzcGFyc2VOdW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVy
U3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC04OSw3ICs4OSw3IEBAIFBBU1Mgc3BhcnNlTnVt
YmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBzcGFyc2VOdW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzIC0xMDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAx
MDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNT
IGdlbmVyYWxTd2l0Y2goJycpIGlzICIiCitQQVNTIGdlbmVyYWxTd2l0Y2goJ++/vScpIGlzICLv
v70iCiBQQVNTIGdlbmVyYWxTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgn
YScpIGlzICJhIgogUEFTUyBnZW5lcmFsU3dpdGNoKCcxJykgaXMgIjEiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9jb21tZW50LWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0
CmluZGV4IGIyYTBkZmM3ZGZiZTc0OTQ2NjQ2ZTY1YzVjNWM5Y2I3MTA0ZDY2YzIuLmFlZGMxN2Nl
OTQwY2EzODMxNTRiNDRiMDAzNDUxZDM0ODEzYjNhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGV4dEFyZWFzLmxl
bmd0aCBpcyAxCi1QQVNTIHRleHRBcmVhc1swXS5pbm5lckhUTUwgaXMgIiZsdDshLS0gJmx0Oy90
ZXh0YXJlYSZndDsgLS0mZ3Q7IFRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHRleHRhcmVhIgor
RkFJTCB0ZXh0QXJlYXNbMF0uaW5uZXJIVE1MIHNob3VsZCBiZSAmbHQ7IS0tICZsdDsvdGV4dGFy
ZWEmZ3Q7IC0tJmd0OyBUaGlzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSB0ZXh0YXJlYS4gV2FzICZs
dDshLS0gLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci0KKyAtLT4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgdGV4dGFyZWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2xlc3N0aGFuLXRlcm1pbmF0ZXMtdGFncy1hbmQt
YXR0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4t
dGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKaW5kZXggNjNkODVmZDg0ZmFm
NzNkYTg2YzJkMWIyOTg5ZWI2NzQ1N2Y1YjY4Yy4uZDA2ZTUwODkyOTJiM2E5OGVlMTFmMjY0Zjdk
MzdlMTA4YjE4MmJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVz
c3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1l
eHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTYgUkVQUk86IFNhZmFyaSBoYW5ncyBsb2FkaW5nCiAKIFRl
c3RzIHRoYXQgdGhlIOKAnDzigJ0gY2hhcmFjdGVyIHRlcm1pbmF0ZXMgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMuCiAKLVBBU1M6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbz48YmFyPjwvYmFyPjwv
Zm9vPgotUEFTUzogPGZvbyBiYXI8YmF6PiBwYXJzZWQgYXMgPGZvbyBiYXI9IiI+PGJhej48L2Jh
ej48L2Zvbz4KK0ZBSUw6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbzxiYXI+PC9mb288YmFyPiBp
bnN0ZWFkIG9mIDxmb28+PGJhcj48L2Jhcj48L2Zvbz4KK0ZBSUw6IDxmb28gYmFyPGJhej4gcGFy
c2VkIGFzIDxmb28gYmFyPGJhej0iIj48L2Zvbz4gaW5zdGVhZCBvZiA8Zm9vIGJhcj0iIj48YmF6
PjwvYmF6PjwvZm9vPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNDcxOGFkYWEzNTU1OTA3ZmU5YmRiMTNk
MjkyMDMxM2I0N2ZmMmVjMi4uZTZmNDU0MTI4ODBkMmE0NjMxMjEyZmFkN2VkNDZiMDFhZjIxZTEw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMTQsNCArMTQsMTggQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KIH0KK1BhcnNlSFRNTCBQcm9wZXJ0aWVzOgoreworICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+
CisgICAgZGF0YSA6IHsKKyAgICAgICAgbGVuZ3RoIDogMAorICAgICAgICBzdGFydExpbmUgOiAw
CisgICAgICAgIGVuZExpbmUgOiAwCisgICAgfQorICAgIGNoaWxkcmVuIDogPG9iamVjdD4KKyAg
ICBlbmRUaW1lIDogPG51bWJlcj4KKyAgICB0eXBlIDogNAorICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CisgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+Cit9CiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2ZjE5ZjRiYzE0
YzYuLjlhNzVlNDJlM2ZhNjQ4MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4
cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285
JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawog
UEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydm
b28xMSddIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFT
UyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlz
ICLul4HDv+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFo
ZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxv
Igogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiAKIAogVGVzdGluZyBsb2NhbFN0b3Jh
Z2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMg
IjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0
eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSdd
IGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/
vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9y
YWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJz
dHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFoZWxsbyIK
K1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxvIgogc3Rv
cmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0
aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDNlODFkZjBiYjIyODZiNzIxZDFjNDE3OWQyMzQ3
ZjVmOTc2ZDU5NDcuLmQ5MjVkZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4
dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0IGNvbW1hbmQocykgW01DQ0NdOiBNMSwx
UTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIsMSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMg
MSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIgMiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4
LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxsMyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2
LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENvdWxkIG5vdCBwYXJzZTogTQotQ291bGQg
bm90IHBhcnNlOiBNCitDb3VsZCBub3QgcGFyc2U6IE3vv70KIFBhcnNlZCBhcyAyIGNvbW1hbmQo
cykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4
IDQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUuLjJmNTc3ZWMxOTgxZTg3
OWI3NGM1ZmQ1ZGU4YTE3Y2E5ZmNlNDUwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9k
b20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMjU0LDggKzI1NCw4IEBAIFRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKC4yNysKIFRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBU
aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNl
cHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjog
RE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKK1RocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiDvv70KK1Ro
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAxOiByZ2Io77+9KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMuLjI4MzlhODY2MzJi
MmNmODZlMzdhZTg3YmEwMDZiZjk0YzI1NTk0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBUZXN0IFdlYlNvY2tldCBiYWQg
c3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hhcmFjdGVycy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
c2ltcGxlIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUi
LCAi77+9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIJ
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIKICIpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjZWM0OWI4ZDI0YzI1NzQz
MTA3OTY5OTJmZTBkOGNmMDliZGYzNzAuLmRlMDFmODM2ZGUzNDZkNTE4NDQwZDU5ZDMzMWM1NTdl
YzIwOTFiNzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMDYtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyYWdtZW50IHBhcnNpbmcgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgSFRNTDUgUGFyc2Vy
IGNvZGUgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA2NDUKKworICAgICAgICBBZGRlZCBhIG5ldyBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJz
ZUhUTUxEb2N1bWVudEZyYWdtZW50CisgICAgICAgIGNvZGVwYXRoIHdoaWNoIG9wdGlvbmFsbHkg
Y2FsbHMgdGhyb3VnaCB0byB0aGUgb2xkIGZyYWdtZW50CisgICAgICAgIHBhcnNpbmcgcGF0aCwg
bm93IHJlbmFtZWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudC4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCk6CisgICAgICAgICAtIFVzZSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgaW5zdGVhZAorICAgICAgICAgICBvZiBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKSB0byBtYXRjaCBvdGhlciBjYWxsZXJzCisgICAgICAgICAgIChhbmQgbm90IGRlcGVuZCBv
biBEb2N1bWVudEZyYWdtZW50LmgpLgorICAgICAgICAgLSBVcGRhdGUgY2FsbCB0byBwYXJzZUhU
TUxEb2N1bWVudEZyYWdtZW50IHRvIHVzZSB0aGUgbmV3CisgICAgICAgICAgIEhUTUw1IHBhcnNl
ciBjb2RlcGF0aC4KKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAg
ICAgIC0gQWRkIGEgRklYTUUgYWJvdXQgdGhpcyBob3JyaWJsZSBlbnVtIHBsYWNlbWVudC4KKyAg
ICAgICAgICAgU2FkbHkgdGhpcyB3aWxsIGNhdXNlIGEgd29ybGQtcmVidWlsZCBmb3IgZXZlcnlv
bmUuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVD
b25zdHJ1Y3Rvcik6CisgICAgICAgICAtIFRoZSBtYWluIHB1bXBMZXhlciBmdW5jdGlvbiBoYXMg
Z290dGVuIHRvIGxhcmdlLiAgTW92ZSB0aGUgc2NyaXB0CisgICAgICAgICAgIHJ1bm5pbmcgbG9n
aWMgaW50byB0aGlzIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgIC0gSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgbm8gbV9zY3JpcHRSdW5uZXIgKGZyYWdtZW50IGNhc2UpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0gVXNl
IG5ldyBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAg
LSBOZXcgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG1fc2NyaXB0UnVubmVyIGlz
IG51bGwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJz
aW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAgLSBVc2UgaW5TY3JpcHRFeGVjdXRp
b24oKSBpbnN0ZWFkIG9mIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRVc2VIVE1MNVBhcnNlcik6CisgICAgICAgICAtIEhlbHBlciBmdW5jdGlvbiB0byBjaGVj
ayB0aGUgaHRtbDVQYXJzZXJFbmFibGVkKCkgc2V0dGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAg
LSBSdW4gSFRNTDVEb2N1bWVudFBhcnNlciBpbiBmcmFnbWVudCBtb2RlLCBvciBvcHRpb25hbGx5
IHJ1bgorICAgICAgICAgICB0aGUgbGVnYWN5IHBhcnNlciBpZiAhaHRtbDVQYXJzZXJFbmFibGVk
KCkuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRt
bC9IVE1MNVRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VHJlZUJ1aWxk
ZXI6OkhUTUw1VHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVlQnVpbGRl
cjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIpOgorICAgICAgICAgLSBJbXBsZW1lbnQgdGhlIEZy
YWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBoYWNrIGZvciBwbGF0Zm9ybS9QYXN0ZWJvYXJkLgor
ICAgICAgICAqIGh0bWwvSFRNTDVUcmVlQnVpbGRlci5oOgorICAgICAgICAqIGh0bWwvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTGVnYWN5SFRNTERvY3Vt
ZW50RnJhZ21lbnQpOgorICAgICAgICAgLSBSZW5hbWVkIGZyb20gcGFyc2VIVE1MRG9jdW1lbnRG
cmFnbWVudAorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aW5z
ZXJ0QWRqYWNlbnRIVE1MKToKKyAgICAgICAgIC0gQ2FsbCBIVE1MNURvY3VtZW50UGFyc2VyOjpw
YXJzZUhUTUxEb2N1bWVudEZyYWdtZW50LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVu
dCk6IGRpdHRvLgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZSk6IGRpdHRvLgorCiAyMDEwLTA2LTIxICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNsYW5n
KysgYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDU5ODdhYzc3NTFmZDZiNzE2YmFhYmQwZGM4YmQ0MTQzOGY5
YjcxZDUuLmViYzNhNjE5ODU5NGZmZjcyNTY2OWQ1NWZhZjFkZDJmMmYzMDg1NDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1l
bnRQYXJzZXIuaCIKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
Tm9kZVJlbmRlclN0eWxlLmgiCkBAIC05MywxMCArOTMsMTAgQEAgTm9kZVJhcmVEYXRhKiBFbGVt
ZW50OjpjcmVhdGVSYXJlRGF0YSgpCiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWxl
bWVudDo6Y3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKLSAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7Ci0gICAgCisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworCiAgICAgaWYgKGRvY3Vt
ZW50KCktPmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIHBhcnNlSFRNTERvY3VtZW50RnJhZ21l
bnQobWFya3VwLCBmcmFnbWVudC5nZXQoKSwgc2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgICAg
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQobWFya3VwLCBm
cmFnbWVudC5nZXQoKSwgc2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgZWxzZSB7CiAgICAgICAg
IGlmICghcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KG1hcmt1cCwgZnJhZ21lbnQuZ2V0KCksIHRo
aXMsIHNjcmlwdGluZ1Blcm1pc3Npb24pKQogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBwcm9wYWdhdGUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uIG91dCBoZXJlLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaCBiL1dlYkNvcmUvZG9tL01hcHBl
ZEF0dHJpYnV0ZUVudHJ5LmgKaW5kZXggY2UyNDY0ZTc5M2IyZmQ2OGQzMTg5Zjg2NmI5NjA1ZTNk
ZTllY2MwZi4uY2EwYmMxMmM0NDI3NDdjOTlkNjU1NGY0NTk2ZTk2NTg1NDkxYjMxMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaAorKysgYi9XZWJDb3JlL2Rv
bS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oCkBAIC00OCw2ICs0OCw3IEBAIGVudW0gTWFwcGVkQXR0
cmlidXRlRW50cnkgewogICAgICwgZUxhc3RFbnRyeQogfTsKIAorLy8gRklYTUU6IEZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbiBkb2VzIG5vdCBiZWxvbmcgaW4gdGhpcyBoZWFkZXIhCiBlbnVt
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiB7IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCwg
RnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmNwcAppbmRleCA4OWNjZjU3OTA5M2MxMDk5OWMwOTU5MjU5ODI0OTRhOWE3ZGJiYTc1
Li44MDQ0ZThhYzM5MTY1M2FjZWVhZWQyZjkxYjlmZTM4MTdiNmJmYTJkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUw1RG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIgLy8gT25seSBmb3IgaXNMYXlvdXRUaW1lckFjdGl2ZQor
I2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIK
ICNpbmNsdWRlICJIVE1MNVByZWxvYWRTY2FubmVyLmgiCiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRS
dW5uZXIuaCIKQEAgLTM2LDYgKzM4LDcgQEAKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiWFNTQXVkaXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CkBAIC05NSw4ICs5OCw3IEBAIHN0YXRpYyBpbnQgcGFyc2VyQ2h1bmtTaXplKFBhZ2UqIHBhZ2Up
CiB9CiAKIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCi0gICAgOiBEb2N1bWVudFBhcnNlcigp
Ci0gICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
ICAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCiAgICAgLCBtX3NjcmlwdFJ1bm5lcihuZXcg
SFRNTDVTY3JpcHRSdW5uZXIoZG9jdW1lbnQsIHRoaXMpKQogICAgICwgbV90cmVlQ29uc3RydWN0
b3IobmV3IEhUTUw1VHJlZUJ1aWxkZXIobV9sZXhlci5nZXQoKSwgZG9jdW1lbnQsIHJlcG9ydEVy
cm9ycykpCkBAIC0xMDksNiArMTExLDIyIEBAIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9j
dW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvCiAgICAg
YmVnaW4oKTsKIH0KIAorLy8gRklYTUU6IE1lbWJlciB2YXJpYWJsZXMgc2hvdWxkIGJlIGdyb3Vw
ZWQgaW50byBzZWxmLWluaXRpYWxpemluZyBzdHJ1Y3RzIHRvCisvLyBtaW5pbWl6ZSBjb2RlIGR1
cGxpY2F0aW9uIGJldHdlZW4gdGhlc2UgY29uc3RydWN0b3JzLgorSFRNTDVEb2N1bWVudFBhcnNl
cjo6SFRNTDVEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgOiBtX2RvY3Vt
ZW50KGZyYWdtZW50LT5kb2N1bWVudCgpKQorICAgICwgbV9sZXhlcihuZXcgSFRNTDVMZXhlcikK
KyAgICAsIG1fdHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1MNVRyZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0
KCksIGZyYWdtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKSkKKyAgICAsIG1fZW5kV2FzRGVsYXll
ZChmYWxzZSkKKyAgICAsIG1fd3JpdGVOZXN0aW5nTGV2ZWwoMCkKKyAgICAvLyBGSVhNRTogUGFy
c2VyIHlpZWxkaW5nIHNob3VsZCBiZSBhIHNlcGFyYXRlIGNsYXNzLgorICAgICwgbV9wYXJzZXJU
aW1lTGltaXQoMCkKKyAgICAsIG1fcGFyc2VyQ2h1bmtTaXplKDApCisgICAgLCBtX2NvbnRpbnVl
TmV4dENodW5rVGltZXIodGhpcywgJkhUTUw1RG9jdW1lbnRQYXJzZXI6OmNvbnRpbnVlTmV4dENo
dW5rVGltZXJGaXJlZCkKK3sKKyAgICBiZWdpbigpOworfQorCiBIVE1MNURvY3VtZW50UGFyc2Vy
Ojp+SFRNTDVEb2N1bWVudFBhcnNlcigpCiB7CiAgICAgLy8gRklYTUU6IFdlJ2QgbGlrZSB0byBB
U1NFUlQgdGhhdCBub3JtYWwgb3BlcmF0aW9uIG9mIHRoaXMgY2xhc3MgY2xlYXJzCkBAIC0xNzcs
NiArMTk1LDE4IEBAIGlubGluZSBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnNob3VsZENvbnRp
bnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
Ym9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVj
dG9yKCkKK3sKKyAgICBBU1NFUlQobV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpOworCisg
ICAgaW50IHNjcmlwdFN0YXJ0TGluZSA9IDA7CisgICAgUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVs
ZW1lbnQgPSBtX3RyZWVDb25zdHJ1Y3Rvci0+dGFrZVNjcmlwdFRvUHJvY2VzcyhzY3JpcHRTdGFy
dExpbmUpOworICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBzY3JpcHRSdW5uZXIgd2hlbiBwYXJz
aW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KKyAgICBpZiAoIW1fc2NyaXB0UnVubmVyKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoc2NyaXB0
RWxlbWVudC5yZWxlYXNlKCksIHNjcmlwdFN0YXJ0TGluZSk7Cit9CisKIHZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVyKFN5bmNocm9ub3VzTW9kZSBtb2RlKQogewogICAgIEFTU0VS
VCghbV9wYXJzZXJTdG9wcGVkKTsKQEAgLTIwMywxNCArMjMzLDEyIEBAIHZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cHVtcExleGVyKFN5bmNocm9ub3VzTW9kZSBtb2RlKQogICAgICAgICBpZiAo
U2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHNjcmlwdCgpKQogICAgICAgICAg
ICAgc2NyaXB0Q29udHJvbGxlci0+c2V0RXZlbnRIYW5kbGVyTGluZU51bWJlcigwKTsKIAorICAg
ICAgICAvLyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRzZWxmIHdoZW4gd2FpdGluZyBvbiBhIHNj
cmlwdCB0byBsb2FkIG9yIHJ1bi4KICAgICAgICAgaWYgKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQ
YXVzZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIC8vIFRoZSBwYXJzZXIg
d2lsbCBwYXVzZSBpdHNlbGYgd2hlbiB3YWl0aW5nIG9uIGEgc2NyaXB0IHRvIGxvYWQgb3IgcnVu
LgotICAgICAgICAvLyBTY3JpcHRSdW5uZXIgZXhlY3V0ZXMgc2NyaXB0cyBhdCB0aGUgcmlnaHQg
dGltZXMgYW5kIGhhbmRsZXMgcmVlbnRyYW5jeS4KLSAgICAgICAgaW50IHNjcmlwdFN0YXJ0TGlu
ZSA9IDA7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gbV90cmVlQ29u
c3RydWN0b3ItPnRha2VTY3JpcHRUb1Byb2Nlc3Moc2NyaXB0U3RhcnRMaW5lKTsKLSAgICAgICAg
Ym9vbCBzaG91bGRDb250aW51ZVBhcnNpbmcgPSBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3Jp
cHRFbGVtZW50LnJlbGVhc2UoKSwgc2NyaXB0U3RhcnRMaW5lKTsKKyAgICAgICAgLy8gSWYgd2Un
cmUgcGF1c2VkIHdhaXRpbmcgZm9yIGEgc2NyaXB0LCB3ZSB0cnkgdG8gZXhlY3V0ZSBzY3JpcHRz
IGJlZm9yZSBjb250aW51aW5nLgorICAgICAgICBib29sIHNob3VsZENvbnRpbnVlUGFyc2luZyA9
IHJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQ29uc3RydWN0b3IoKTsKICAgICAgICAgbV90cmVlQ29u
c3RydWN0b3ItPnNldFBhdXNlZCghc2hvdWxkQ29udGludWVQYXJzaW5nKTsKICAgICAgICAgaWYg
KCFzaG91bGRDb250aW51ZVBhcnNpbmcpCiAgICAgICAgICAgICBicmVhazsKQEAgLTM0MSw4ICsz
NjksMTcgQEAgYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpmaW5pc2hXYXNDYWxsZWQoKQogICAg
IHJldHVybiBtX2lucHV0LmlzQ2xvc2VkKCk7CiB9CiAKKy8vIFRoaXMgY2FsbCBpcyB2aXJ0dWFs
LgogaW50IEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0CiB7Cisg
ICAgcmV0dXJuIGluU2NyaXB0RXhlY3V0aW9uKCk7Cit9CisKKy8vIFRoaXMgY2FsbCBpcyB1c2Vk
IHRocm91Z2hvdXQgdGhlIGltcGxlbWVudGF0aW9uLgorYm9vbCBIVE1MNURvY3VtZW50UGFyc2Vy
OjppblNjcmlwdEV4ZWN1dGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX3NjcmlwdFJ1bm5lcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+aW5TY3Jp
cHRFeGVjdXRpb24oKTsKIH0KIApAQCAtMzY4LDcgKzQwNSw3IEBAIGJvb2wgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0CiAKIHZvaWQgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCkKIHsKLSAgICBBU1NF
UlQoIW1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQoIWlu
U2NyaXB0RXhlY3V0aW9uKCkpOwogICAgIEFTU0VSVCghbV90cmVlQ29uc3RydWN0b3ItPmlzUGF1
c2VkKCkpOwogCiAgICAgcHVtcExleGVySWZQb3NzaWJsZShBbGxvd1lpZWxkKTsKQEAgLTM5Niw3
ICs0MzMsNyBAQCBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnNob3VsZExvYWRFeHRlcm5hbFNj
cmlwdEZyb21TcmMoY29uc3QgQXRvbWljU3RyaW5nJiBzcgogCiB2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkK
IHsKLSAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCkpOworICAg
IEFTU0VSVChpblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBpZiAoIW1fZG9jdW1lbnQtPmZyYW1l
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBzYXZlZEluc2Vy
dGlvblBvaW50KG1faW5wdXQpOwpAQCAtNDA1LDYgKzQ0Miw3IEBAIHZvaWQgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
KQogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKKyAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXIpOwogICAg
IC8vIElnbm9yZSBjYWxscyB1bmxlc3Mgd2UgaGF2ZSBhIHNjcmlwdCBibG9ja2luZyB0aGUgcGFy
c2VyIHdhaXRpbmcKICAgICAvLyBmb3IgaXRzIG93biBsb2FkLiAgT3RoZXJ3aXNlIHRoaXMgbWF5
IGJlIGEgbG9hZCBjYWxsYmFjayBmcm9tCiAgICAgLy8gQ2FjaGVkUmVzb3VyY2U6OmFkZENsaWVu
dCBiZWNhdXNlIHRoZSBzY3JpcHQgd2FzIGFscmVhZHkgaW4gdGhlIGNhY2hlLgpAQCAtNDEzLDcg
KzQ1MSw3IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogICAgICAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXIt
PmluU2NyaXB0RXhlY3V0aW9uKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VS
VCghbV9zY3JpcHRSdW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCkpOworICAgIEFTU0VSVCghaW5T
Y3JpcHRFeGVjdXRpb24oKSk7CiAgICAgQVNTRVJUKG1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNl
ZCgpKTsKICAgICAvLyBOb3RlOiBXZSBvbmx5IGV2ZXIgd2FpdCBvbiBvbmUgc2NyaXB0IGF0IGEg
dGltZSwgc28gd2UgYWx3YXlzIGtub3cgdGhpcwogICAgIC8vIGlzIHRoZSBvbmUgd2Ugd2VyZSB3
YWl0aW5nIG9uIGFuZCBjYW4gdW4tcGF1c2UgdGhlIHRyZWUgYnVpbGRlci4KQEAgLTQyNiw2ICs0
NjQsOSBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpleGVj
dXRlU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpCiB7CisgICAgLy8gRG9jdW1lbnQgb25s
eSBjYWxscyB0aGlzIHdoZW4gdGhlIERvY3VtZW50IG93bnMgdGhlIERvY3VtZW50UGFyc2VyCisg
ICAgLy8gc28gdGhpcyB3aWxsIG5vdCBiZSBjYWxsZWQgaW4gdGhlIERvY3VtZW50RnJhZ21lbnQg
Y2FzZS4KKyAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXIpOwogICAgIC8vIElnbm9yZSBjYWxscyB1
bmxlc3Mgd2UgaGF2ZSBhIHNjcmlwdCBibG9ja2luZyB0aGUgcGFyc2VyIHdhaXRpbmcgb24gYQog
ICAgIC8vIHN0eWxlc2hlZXQgbG9hZC4gIE90aGVyd2lzZSB3ZSBhcmUgY3VycmVudGx5IHBhcnNp
bmcgYW5kIHRoaXMKICAgICAvLyBpcyBhIHJlLWVudHJhbnQgY2FsbCBmcm9tIGVuY291bnRlcmlu
ZyBhIDwvIHN0eWxlPiB0YWcuCkBAIC00NDcsNCArNDg4LDIxIEBAIFNjcmlwdENvbnRyb2xsZXIq
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OnNjcmlwdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1l
bnQtPmZyYW1lKCkgPyBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKSA6IDA7CiB9CiAKK3N0
YXRpYyBib29sIHNob3VsZFVzZUhUTUw1UGFyc2VyKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZSgp
LT5zZXR0aW5ncygpCisgICAgICAgICYmIGRvY3VtZW50LT5wYWdlKCktPnNldHRpbmdzKCktPmh0
bWw1UGFyc2VyRW5hYmxlZCgpOworfQorCit2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNl
SFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlz
c2lvbikKK3sKKyAgICBpZiAoIXNob3VsZFVzZUhUTUw1UGFyc2VyKGZyYWdtZW50LT5kb2N1bWVu
dCgpKSkKKyAgICAgICAgcmV0dXJuIHBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJhZ21lbnQoc291
cmNlLCBmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CisKKyAgICBIVE1MNURvY3VtZW50
UGFyc2VyIHBhcnNlcihmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgcGFyc2Vy
LndyaXRlKHNvdXJjZSwgZmFsc2UpOworICAgIHBhcnNlci5maW5pc2goKTsKKyAgICBBU1NFUlQo
IXBhcnNlci5wcm9jZXNzaW5nRGF0YSgpKTsgLy8gTWFrZSBzdXJlIHdlJ3JlIGRvbmUuIDxyZGFy
Oi8vcHJvYmxlbS8zOTYzMTUxPgorfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TDVEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaApp
bmRleCA1ODJlNGQ5NjEzNzIwN2RlODU2MWNiNTc2MmI5ZjlhNTczM2FiMjc3Li44ZmZkYmYzZjgz
NDA4NmVkOGE3YjNjMGFlMTc4NjgyZTMzZDQ2MjAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTDVEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFy
c2VyLmgKQEAgLTM2LDIwICszNiwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsK
LWNsYXNzIExlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3I7CiBjbGFzcyBIVE1MNUxleGVyOwogY2xh
c3MgSFRNTDVTY3JpcHRSdW5uZXI7CiBjbGFzcyBIVE1MNVRyZWVCdWlsZGVyOwogY2xhc3MgSFRN
TDVQcmVsb2FkU2Nhbm5lcjsKK2NsYXNzIExlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3I7CiBjbGFz
cyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRN
TDVEb2N1bWVudFBhcnNlciA6ICBwdWJsaWMgRG9jdW1lbnRQYXJzZXIsIEhUTUw1U2NyaXB0UnVu
bmVySG9zdCwgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgorICAgIC8vIEZJWE1FOiBU
aGlzIGNvbnN0cnVjdG9yIHNob3VsZCBiZSBtYWRlIHByaXZhdGUgYW5kIHJlcGxhY2VkIGJ5IGEg
Y3JlYXRlKCkgbWV0aG9kLgogICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50Kiwg
Ym9vbCByZXBvcnRFcnJvcnMpOwogICAgIHZpcnR1YWwgfkhUTUw1RG9jdW1lbnRQYXJzZXIoKTsK
IAorICAgIHN0YXRpYyB2b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5n
JiwgRG9jdW1lbnRGcmFnbWVudCosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdt
ZW50U2NyaXB0aW5nQWxsb3dlZCk7CisKICAgICAvLyBEb2N1bWVudFBhcnNlcgogICAgIHZpcnR1
YWwgdm9pZCBiZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRT
dHJpbmcmLCBib29sIGlzRnJvbU5ldHdvcmspOwpAQCAtNzcsNiArODIsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKIHByaXZh
dGU6CisgICAgSFRNTDVEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uKTsKKwogICAgIC8vIFRoZSBJbnB1dFN0cmVhbSBpcyBtYWRlIHVw
IG9mIGEgc2VxdWVuY2Ugb2YgU2VnbWVudGVkU3RyaW5nczoKICAgICAvLwogICAgIC8vIFstLWN1
cnJlbnQtLV1bLS1uZXh0LS1dWy0tbmV4dC0tXSAuLi4gWy0tbmV4dC0tXQpAQCAtMTcyLDYgKzE3
OSw3IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgUHVtcFNlc3Npb247CiAgICAgaW5saW5lIGJv
b2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7CisgICAgYm9vbCBydW5TY3Jp
cHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCk7CiAKICAgICBlbnVtIFN5bmNocm9ub3VzTW9k
ZSB7CiAgICAgICAgIEFsbG93WWllbGQsCkBAIC0xODQsNiArMTkyLDggQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgYXR0ZW1wdFRvRW5kKCk7CiAgICAgdm9pZCBlbmRJZkRlbGF5ZWQoKTsKKworICAg
IGJvb2wgaW5TY3JpcHRFeGVjdXRpb24oKSBjb25zdDsKICAgICBib29sIGluV3JpdGUoKSBjb25z
dCB7IHJldHVybiBtX3dyaXRlTmVzdGluZ0xldmVsID4gMDsgfQogCiAgICAgU2NyaXB0Q29udHJv
bGxlciogc2NyaXB0KCkgY29uc3Q7CkBAIC0xOTMsNyArMjAzLDkgQEAgcHJpdmF0ZToKICAgICAv
LyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxseSBjb21w
bGV0ZS4KICAgICBIVE1MNVRva2VuIG1fdG9rZW47CiAKLSAgICBIVE1MRG9jdW1lbnQqIG1fZG9j
dW1lbnQ7CisgICAgLy8gV2UgbXVzdCBzdXBwb3J0IHBhcnNpbmcgaW50byBhIERvY3VtZW50KiBh
bmQgbm90IGp1c3QgSFRNTERvY3VtZW50KgorICAgIC8vIHRvIHN1cHBvcnQgRG9jdW1lbnRGcmFn
bWVudCAod2hpY2ggaGFzIGEgRG9jdW1lbnQqKS4KKyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsK
ICAgICBPd25QdHI8SFRNTDVMZXhlcj4gbV9sZXhlcjsKICAgICBPd25QdHI8SFRNTDVTY3JpcHRS
dW5uZXI+IG1fc2NyaXB0UnVubmVyOwogICAgIE93blB0cjxIVE1MNVRyZWVCdWlsZGVyPiBtX3Ry
ZWVDb25zdHJ1Y3RvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVy
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcAppbmRleCAzMzIwMzkzNGMx
NjBmY2M2YmRhY2QwODhmMDU4ODJhNGMwYzYzNmFkLi4wZmM4YjI3M2Y2ZDg2Yjk0ZTcxMjhlNzdi
MTY4YzIyMDRlYWYwYzZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRl
ci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIK
ICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1
Y3Rvci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgpAQCAtNTMsNiArNTQsMjIg
QEAgSFRNTDVUcmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwg
SFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm8KICAgICAsIG1fbGVnYWN5VHJlZUNvbnN0cnVjdG9y
KG5ldyBMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yKGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQog
ICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJl
clZhbHVlKQogICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXplZExp
bmVOdW1iZXJWYWx1ZSkKKyAgICAsIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKEZyYWdt
ZW50U2NyaXB0aW5nQWxsb3dlZCkKK3sKK30KKworLy8gRklYTUU6IE1lbWJlciB2YXJpYWJsZXMg
c2hvdWxkIGJlIGdyb3VwZWQgaW50byBzZWxmLWluaXRpYWxpemluZyBzdHJ1Y3RzIHRvCisvLyBt
aW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uIGJldHdlZW4gdGhlc2UgY29uc3RydWN0b3JzLgorSFRN
TDVUcmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgRG9jdW1l
bnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRp
bmdQZXJtaXNzaW9uKQorICAgIDogbV9kb2N1bWVudChmcmFnbWVudC0+ZG9jdW1lbnQoKSkKKyAg
ICAsIG1fcmVwb3J0RXJyb3JzKGZhbHNlKSAvLyBGSVhNRTogV2h5IG5vdCByZXBvcnQgZXJyb3Jz
IGluIGZyYWdtZW50cz8KKyAgICAsIG1faXNQYXVzZWQoZmFsc2UpCisgICAgLCBtX2luc2VydGlv
bk1vZGUoSW5pdGlhbCkKKyAgICAsIG1fbGV4ZXIobGV4ZXIpCisgICAgLCBtX2xlZ2FjeVRyZWVD
b25zdHJ1Y3RvcihuZXcgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3RvcihmcmFnbWVudCwgc2NyaXB0
aW5nUGVybWlzc2lvbikpCisgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKHVuaW5p
dGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCisgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGlu
ZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwgbV9mcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24oc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKIH0KIApAQCAtMTc5LDEwICsxOTYs
MTcgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MNVRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2Fj
eVBhcnNlcihIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9s
ZXhlci0+c2V0U3RhdGUoYWRqdXN0ZWRMZXhlclN0YXRlKG1fbGV4ZXItPnN0YXRlKCksIG9sZFN0
eWxlVG9rZW4udGFnTmFtZSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkpOwogICAgIH0gZWxzZSBpZiAo
dG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46OkVuZFRhZykgewotICAgICAgICBpZiAob2xkU3R5
bGVUb2tlbi50YWdOYW1lID09IHNjcmlwdFRhZyAmJiBpbnNlcnRpb25Nb2RlKCkgIT0gQWZ0ZXJG
cmFtZXNldCkgeworICAgICAgICBpZiAob2xkU3R5bGVUb2tlbi50YWdOYW1lID09IHNjcmlwdFRh
ZykgewogICAgICAgICAgICAgaWYgKG1fbGFzdFNjcmlwdEVsZW1lbnQpIHsKICAgICAgICAgICAg
ICAgICBBU1NFUlQobV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSAhPSB1bmluaXRpYWxpemVk
TGluZU51bWJlclZhbHVlKTsKLSAgICAgICAgICAgICAgICBoYW5kbGVTY3JpcHRFbmRUYWcobV9s
YXN0U2NyaXB0RWxlbWVudC5nZXQoKSwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSk7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID09IEZyYWdt
ZW50U2NyaXB0aW5nTm90QWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyBpcyBhIGhvcnJpYmxlIGhhY2sgZm9yIHBsYXRmb3JtL1Bhc3RlYm9hcmQuCisgICAgICAg
ICAgICAgICAgICAgIC8vIENsZWFyIHRoZSA8c2NyaXB0PiB0YWcgd2hlbiB1c2luZyB0aGUgUGFy
c2VyIHRvIGNyZWF0ZQorICAgICAgICAgICAgICAgICAgICAvLyBhIERvY3VtZW50RnJhZ21lbnQg
Zm9yIHBhc3Rpbmcgc28gdGhhdCBqYXZhc2NyaXB0IGNvbnRlbnQKKyAgICAgICAgICAgICAgICAg
ICAgLy8gZG9lcyBub3Qgc2hvdyB1cCBpbiBwYXN0ZWQgSFRNTC4KKyAgICAgICAgICAgICAgICAg
ICAgbV9sYXN0U2NyaXB0RWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGluc2VydGlvbk1vZGUoKSAhPSBBZnRlckZyYW1lc2V0KQorICAgICAgICAg
ICAgICAgICAgICBoYW5kbGVTY3JpcHRFbmRUYWcobV9sYXN0U2NyaXB0RWxlbWVudC5nZXQoKSwg
bV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSk7CiAgICAgICAgICAgICAgICAgbV9sYXN0U2Ny
aXB0RWxlbWVudCA9IDA7CiAgICAgICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0
TGluZSA9IHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWU7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL0hU
TUw1VHJlZUJ1aWxkZXIuaAppbmRleCA2Zjk0Zjg4MjAzMWQ1NTZkY2NiN2FlYmYzZmRhNThiY2Y3
M2MwNTI2Li42NDc3OTIxZDc2ZTRiYTBkYTg2ODg5YzY3YTQ2MDdlNDQ2ZjM4NGQwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MNVRyZWVCdWlsZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSFRNTDVUcmVlQnVp
bGRlcl9oCiAKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmli
dXRlRW50cnkuaCIgLy8gRm9yIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiE/CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zNiw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUw1VG9rZW47CkBAIC00NSw3ICs0Nyw5IEBAIGNs
YXNzIE5vZGU7CiAKIGNsYXNzIEhUTUw1VHJlZUJ1aWxkZXIgOiBwdWJsaWMgTm9uY29weWFibGUg
ewogcHVibGljOgorICAgIC8vIEZJWE1FOiBSZXBsYWNlIGNvbnN0cnVjdG9ycyB3aXRoIGNyZWF0
ZSgpIGZ1bmN0aW9ucyByZXR1cm5pbmcgUGFzc093blB0cnMKICAgICBIVE1MNVRyZWVCdWlsZGVy
KEhUTUw1TGV4ZXIqLCBIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7CisgICAgSFRN
TDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiwgRG9jdW1lbnRGcmFnbWVudCosIEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbik7CiAgICAgfkhUTUw1VHJlZUJ1aWxkZXIoKTsKIAogICAgIHZvaWQg
c2V0UGF1c2VkKGJvb2wgcGF1c2VkKSB7IG1faXNQYXVzZWQgPSBwYXVzZWQ7IH0KQEAgLTEwNSw2
ICsxMDksMTEgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtX3NjcmlwdFRvUHJv
Y2VzczsgLy8gPHNjcmlwdD4gdGFnIHdoaWNoIG5lZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3Vt
aW5nIHRoZSBwYXJzZXIuCiAgICAgaW50IG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5lOyAvLyBT
dGFydGluZyBsaW5lIG51bWJlciBvZiB0aGUgc2NyaXB0IHRhZyBuZWVkaW5nIHByb2Nlc3Npbmcu
CisKKyAgICAvLyBGSVhNRTogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIGlzIGEgR0lHQU5U
SUMgSEFDSyBmb3IgcGxhdGZvcm0vUGFzdGVib2FyZC4KKyAgICAvLyBGcmFnbWVudFNjcmlwdGlu
Z05vdEFsbG93ZWQgY2F1c2VzIHRoZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVuCisgICAgLy8g
ZnJvbSA8c2NyaXB0PiB0YWdzIChzbyBqYXZhc2NyaXB0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBwYXN0
ZXMpLgorICAgIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBtX2ZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXgg
MjdmMDE2MzRmZDI5MDAzNjYwOTBhNzI5Y2UwOTgxMzAyYWRhMDg3Zi4uNGJjNDY3YWRjZTdkOGU2
NDgzOTc0ZTZiNTA0OTcxMTU1ZTM3MTNiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5j
cHAKQEAgLTIwOTksNyArMjA5OSw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzZXRTcmMo
Y29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgbV9zcmMgPSBzb3VyY2U7CiB9CiAK
LXZvaWQgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9j
dW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3Jp
cHRpbmdQZXJtaXNzaW9uKQordm9pZCBwYXJzZUxlZ2FjeUhUTUxEb2N1bWVudEZyYWdtZW50KGNv
bnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgSFRNTERvY3Vt
ZW50UGFyc2VyIHBhcnNlcihmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgcGFy
c2VyLnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgK
aW5kZXggYjZkZWRmMjg0NTI4NWE0MzA5MGI4OTBmZmYzODE3OGI1YjQyYzU3NS4uNTQ3MThhMmE1
OTc0MDc2Nzk0MjBmNmVmYjhlOGJjYzFkOTU0Mjk3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJz
ZXIuaApAQCAtNDQwLDcgKzQ0MCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFByZWxvYWRTY2Fu
bmVyPiBtX3ByZWxvYWRTY2FubmVyOwogfTsKIAotdm9pZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdt
ZW50KGNvbnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwordm9pZCBwYXJzZUxlZ2FjeUhU
TUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogCiBV
Q2hhciBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDA1OWYwYTFmODllZWIyYjc1ZmM2MzdjYjgzNzczNDI0OTI1NWViNzQuLjVkYTg5YWVlNjZh
MTllYjZkNjQ2MGIzYzYwZDZkMzczODc3ZmM2MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzks
NyArMzksNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUgIkhU
TUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxE
b2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lkIEhUTUxFbGVt
ZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5n
JiBodG1sLCBFeAogewogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICBpZiAoZG9jdW1lbnQoKS0+
aXNIVE1MRG9jdW1lbnQoKSkKLSAgICAgICAgIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoaHRt
bCwgZnJhZ21lbnQuZ2V0KCkpOworICAgICAgICAgSFRNTDVEb2N1bWVudFBhcnNlcjo6cGFyc2VI
VE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBmcmFnbWVudC5nZXQoKSk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIGlmICghcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50LmdldCgp
LCB0aGlzKSkKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvcGFnYXRlIGEgc3lu
dGF4IGVycm9yIGV4Y2VwdGlvbiBvdXQgaGVyZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJk
TWFjLm1tCmluZGV4IDAzZWRlMDM0N2I2MjhmZmU0NjcxYTFmZDlmZDc2MDAyNTgyMzE0OTAuLmMw
NDlmMmEyODZmZjc4OTQ0NTQ4Mjc1YmNhYmU1NTU4MmI3NzZhZjcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtMzc4LDYgKzM3OCwxMCBAQCBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQ
YXNzUmVmUAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChbSFRNTFN0cmlu
ZyBsZW5ndGhdICE9IDApIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBGcmFnbWVudFNjcmlwdGlu
Z05vdEFsbG93ZWQgaXMgYSBHSUdBTlRJQyBIQUNLIGFuZCBzaG91bGQKKyAgICAgICAgICAgIC8v
IGJlIHJlbW92ZWQgb3IgcmVwbGFjZWQgd2l0aCBhbiBlbnVtIHdpdGggYSBiZXR0ZXIgbmFtZS4K
KyAgICAgICAgICAgIC8vIEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBjYXVzZXMgdGhlIFBh
cnNlciB0byByZW1vdmUgY2hpbGRyZW4KKyAgICAgICAgICAgIC8vIG9mIDxzY3JpcHQ+IHRhZ3Mg
KHNvIGphdmFzY3JpcHQgZG9lc24ndCBzaG93IHVwIGluIHBhc3RlcykuCiAgICAgICAgICAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJr
dXAoZnJhbWUtPmRvY3VtZW50KCksIEhUTUxTdHJpbmcsICIiLCBGcmFnbWVudFNjcmlwdGluZ05v
dEFsbG93ZWQpOwogICAgICAgICAgICAgaWYgKGZyYWdtZW50KQogICAgICAgICAgICAgICAgIHJl
dHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YU0xUUHJv
Y2Vzc29yLmNwcCBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDk3YjU0NjY3
OThmMTFiNmI3ZGJhMmZlMzFhMjg2YWQ5ZWMzZTgzNzAuLjk1N2MxMTFiZGQyMzUwMzQ5MjlmYzI2
YzU1MGJlYjJiOGRjMWZkNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3Iu
Y3BwCisrKyBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIgLy8g
Zm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFy
c2VyLmgiIC8vIGZvciBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50CiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBA
IC0xMDAsMTAgKzEwMCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpj
cmVhdGVEb2N1bWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyYwogCiBzdGF0aWMgaW5s
aW5lIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29u
c3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERv
Y3VtZW50KiBvdXRwdXREb2MpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG91dHB1dERvYyk7CisgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gb3V0cHV0RG9jLT5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CiAKICAgICBpZiAoc291cmNlTUlNRVR5cGUgPT0gInRleHQvaHRtbCIpCi0gICAgICAg
IHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoc291cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSk7
CisgICAgICAgIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQo
c291cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSk7CiAgICAgZWxzZSBpZiAoc291cmNlTUlNRVR5
cGUgPT0gInRleHQvcGxhaW4iKQogICAgICAgICBmcmFnbWVudC0+YWRkQ2hpbGQoVGV4dDo6Y3Jl
YXRlKG91dHB1dERvYywgc291cmNlU3RyaW5nKSk7CiAgICAgZWxzZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59317</attachid>
            <date>2010-06-21 17:20:30 -0700</date>
            <delta_ts>2010-06-21 21:30:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40645-20100621172028.patch</filename>
            <type>text/plain</type>
            <size>39042</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4OWExZDU3OWYwYWIwNzJlNmI1MmFjNGQwMGQxZmU1NDBmMGIxMzZjLi5mMTRkMTRm
NzExOGY2ZjIxZWMxZjhhY2M0NGEzNWNjMmE5NDMxNDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGcmFnbWVu
dCBwYXJzaW5nIG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIEhUTUw1IFBhcnNlciBjb2RlIHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjQ1CisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgIC0gXDAgaXMgbm93IGNvbnZlcnRlZCB0byBcdUZGRkQgcGVyIEhUTUw1
LgorICAgICAgICAqIGZhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgLSA8dGV4dGFyZWE+IGlzIHBhcnNlZCBpbiB0aGUgUkNEQVRBIHN0YXRl
LCB3aGljaCBtZWFucworICAgICAgICAgICB0aGF0IGNvbW1lbnRzIGFyZSBpZ25vcmVkLCB0aHVz
IHRoZSA8L3RleHRhcmVhPiBpbiB0aGUKKyAgICAgICAgICAgY29tbWVudCBjb3JyZWN0bHkgY2xv
c2VzIHRoZSA8dGV4dGFyZWE+LiAgVGhpcyB0ZXN0IGlzIGludmFsaWQuCisgICAgICAgICAgIE91
ciBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBtaW5lZmllbGQuCisgICAgICAgICogZmFzdC90b2tlbml6
ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAtIFRoaXMgdGVzdCBpcyBpbnZhbGlkIGFuZCBwcm9iYWJseSBzaG91bGQganVzdCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICBUaGlzIHNhbWUgYmVoYXZpb3IgaXMgdGVzdGVkIGJ5IGZhc3Qv
aW52YWxpZC8wMTYuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFRoZSAiZXh0cmEiIFBhcnNlSFRNTCBpcyBleHBl
Y3RlZC4gIFRoZSBIVE1MNSBQYXJzZXIgdGVsbHMgdGhlCisgICAgICAgICAgIGluc3BlY3RvciBh
Ym91dCBldmVyeSBwYXJzZXIgcHVtcCwgZXZlbiBvbmVzIHdoaWNoIHB1bXAgbm8gZGF0YS4KKyAg
ICAgICAgICAgVGhlIEhUTUw1IHBhcnNlciBwdW1wcyBvbmUgbGFzdCB0aW1lIGluIGZpbmlzaCgp
IHRvIGZsdXNoIGFueQorICAgICAgICAgICBidWZmZXJlZCBjaGFyYWN0ZXJzLiAgRXZlbnR1YWxs
eSB3ZSdsbCB0ZWFjaCB0aGUgaW5zcGVjdG9yIHRvCisgICAgICAgICAgIGZpbHRlciBvdXQgKG5v
dCBkaXNwbGF5KSAwLXNpemVkIHB1bXBzLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFwwIGlzIG5vdyBjb252ZXJ0
ZWQgdG8gXHVGRkZEIHBlciBIVE1MNQorICAgICAgICAqIHN2Zy9kb20vZnV6ei1wYXRoLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWIt
cHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6IGRpdHRvLgorCisyMDEwLTA2LTIx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBUd28gZmFzdC9keW5hbWljIHRlc3RzIG5lZWRsZXNz
bHkgZGVwZW5kIG9uIGxlZ2FjeSA8dGFnPHRhZz4gcGFyc2luZyBiZWhhdmlvcgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NDYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWdldENvbnRleHQtaW52YWxpZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZh
bGlkLWV4cGVjdGVkLnR4dAppbmRleCAyZjI0ZThlZDA0ZGJmYWIzZjIwMDk5YmY2ZTcyNWNjZjIz
YmQ1YWJiLi4zNGIxNDlkYjc4YzE3ZmZiOWJhZGU3ZDJiODA4YzEzYjA1NTczODc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4
dC1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdl
dENvbnRleHQoJzJkIycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJ1RoaXMgaXMg
Y2xlYXJseSBub3QgYSB2YWxpZCBjb250ZXh0IG5hbWUuJykgaXMgbnVsbAotUEFTUyBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKSBpcyBudWxsCitQQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/vScp
IGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJzLvvYQnKSBpcyBudWxsCiBQQVNTIGNh
bnZhcy5nZXRDb250ZXh0KCcyRCcpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NDM3NTczYjU0NDZkZmNjZGI3NzQxNzkzZDZjY2MwYjE3ZGM0
NjcuLjZkMjhlNjRiODJiODNhNjc4NTEyZDAzNjk4MWIzOWFmOGRiZWIwMmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG51bGwgY2hhcmFjdGVycyBhcmUg
YWxsb3dlZCBpbiBKYXZhU2NyaXB0IHN0cmluZ3MsIHJhdGhlcgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgU3RyaW5nKCIiKS5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcoIu+/
vSIpLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0CmluZGV4IGYwMmYwOTEzN2UxODE0MjhjZjMzYjk4YzMyNjUxNTYzNDU2Mzg0ZTku
LjRmZWRiMTlkNzcyNjg5NmE4MzExZWFkMjNkMDBmZGIyYTlmMjg3YmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgY29ycmVjdG5lc3MgYW5kIGJlaGF2aW91ciBvZiBz
d2l0Y2ggc3RhdGVtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNo
YXJhY3RlclN3aXRjaCgnJykgaXMgIiIKK1BBU1MgY2hhcmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi
77+9IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKCdhJykgaXMgImEiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnMScpIGlzICIxIgpAQCAtMTks
NyArMTksNyBAQCBQQVNTIGNoYXJhY3RlclN3aXRjaCgtMSkgaXMgImRlZmF1bHQiCiBQQVNTIGNo
YXJhY3RlclN3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIGNoYXJhY3RlclN3
aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKHt9KSBp
cyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcnKSBpcyAiIgorUEFTUyBz
cGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCiBQQVNTIHNwYXJzZUNoYXJhY3Rl
clN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ2EnKSBpcyAi
YSIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0zNSw3ICszNSw3
IEBAIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3Bh
cnNlQ2hhcmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNl
Q2hhcmFjdGVyU3dpdGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VDaGFy
YWN0ZXJTd2l0Y2goe30pIGlzICJkZWZhdWx0IgotUEFTUyBzdHJpbmdTd2l0Y2goJycpIGlzICIi
CitQQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMgIu+/vSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdB
JykgaXMgIkEiCiBQQVNTIHN0cmluZ1N3aXRjaCgnYScpIGlzICJhIgogUEFTUyBzdHJpbmdTd2l0
Y2goJzEnKSBpcyAiMSIKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBzdHJpbmdTd2l0Y2goLTEpIGlz
ICJkZWZhdWx0IgogUEFTUyBzdHJpbmdTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0Igog
UEFTUyBzdHJpbmdTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3
aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIG51bWJlclN3aXRjaCgnJykgaXMgImRlZmF1bHQi
CitQQVNTIG51bWJlclN3aXRjaCgn77+9JykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRj
aCgnQScpIGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC03MSw3ICs3MSw3IEBAIFBB
U1MgbnVtYmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBudW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQi
CiBQQVNTIG51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHNwYXJzZU51bWJlclN3
aXRjaCgnJykgaXMgImRlZmF1bHQiCitQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgn77+9JykgaXMg
ImRlZmF1bHQiCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgnQScpIGlzICJkZWZhdWx0IgogUEFT
UyBzcGFyc2VOdW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVy
U3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC04OSw3ICs4OSw3IEBAIFBBU1Mgc3BhcnNlTnVt
YmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBzcGFyc2VOdW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzIC0xMDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAx
MDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNT
IGdlbmVyYWxTd2l0Y2goJycpIGlzICIiCitQQVNTIGdlbmVyYWxTd2l0Y2goJ++/vScpIGlzICLv
v70iCiBQQVNTIGdlbmVyYWxTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgn
YScpIGlzICJhIgogUEFTUyBnZW5lcmFsU3dpdGNoKCcxJykgaXMgIjEiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9jb21tZW50LWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0
CmluZGV4IGIyYTBkZmM3ZGZiZTc0OTQ2NjQ2ZTY1YzVjNWM5Y2I3MTA0ZDY2YzIuLmFlZGMxN2Nl
OTQwY2EzODMxNTRiNDRiMDAzNDUxZDM0ODEzYjNhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGV4dEFyZWFzLmxl
bmd0aCBpcyAxCi1QQVNTIHRleHRBcmVhc1swXS5pbm5lckhUTUwgaXMgIiZsdDshLS0gJmx0Oy90
ZXh0YXJlYSZndDsgLS0mZ3Q7IFRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHRleHRhcmVhIgor
RkFJTCB0ZXh0QXJlYXNbMF0uaW5uZXJIVE1MIHNob3VsZCBiZSAmbHQ7IS0tICZsdDsvdGV4dGFy
ZWEmZ3Q7IC0tJmd0OyBUaGlzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSB0ZXh0YXJlYS4gV2FzICZs
dDshLS0gLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci0KKyAtLT4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgdGV4dGFyZWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2xlc3N0aGFuLXRlcm1pbmF0ZXMtdGFncy1hbmQt
YXR0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4t
dGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKaW5kZXggNjNkODVmZDg0ZmFm
NzNkYTg2YzJkMWIyOTg5ZWI2NzQ1N2Y1YjY4Yy4uZDA2ZTUwODkyOTJiM2E5OGVlMTFmMjY0Zjdk
MzdlMTA4YjE4MmJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVz
c3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1l
eHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTYgUkVQUk86IFNhZmFyaSBoYW5ncyBsb2FkaW5nCiAKIFRl
c3RzIHRoYXQgdGhlIOKAnDzigJ0gY2hhcmFjdGVyIHRlcm1pbmF0ZXMgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMuCiAKLVBBU1M6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbz48YmFyPjwvYmFyPjwv
Zm9vPgotUEFTUzogPGZvbyBiYXI8YmF6PiBwYXJzZWQgYXMgPGZvbyBiYXI9IiI+PGJhej48L2Jh
ej48L2Zvbz4KK0ZBSUw6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbzxiYXI+PC9mb288YmFyPiBp
bnN0ZWFkIG9mIDxmb28+PGJhcj48L2Jhcj48L2Zvbz4KK0ZBSUw6IDxmb28gYmFyPGJhej4gcGFy
c2VkIGFzIDxmb28gYmFyPGJhej0iIj48L2Zvbz4gaW5zdGVhZCBvZiA8Zm9vIGJhcj0iIj48YmF6
PjwvYmF6PjwvZm9vPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNDcxOGFkYWEzNTU1OTA3ZmU5YmRiMTNk
MjkyMDMxM2I0N2ZmMmVjMi4uZTZmNDU0MTI4ODBkMmE0NjMxMjEyZmFkN2VkNDZiMDFhZjIxZTEw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMTQsNCArMTQsMTggQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KIH0KK1BhcnNlSFRNTCBQcm9wZXJ0aWVzOgoreworICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+
CisgICAgZGF0YSA6IHsKKyAgICAgICAgbGVuZ3RoIDogMAorICAgICAgICBzdGFydExpbmUgOiAw
CisgICAgICAgIGVuZExpbmUgOiAwCisgICAgfQorICAgIGNoaWxkcmVuIDogPG9iamVjdD4KKyAg
ICBlbmRUaW1lIDogPG51bWJlcj4KKyAgICB0eXBlIDogNAorICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CisgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+Cit9CiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2ZjE5ZjRiYzE0
YzYuLjlhNzVlNDJlM2ZhNjQ4MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4
cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285
JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawog
UEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydm
b28xMSddIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFT
UyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlz
ICLul4HDv+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFo
ZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxv
Igogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiAKIAogVGVzdGluZyBsb2NhbFN0b3Jh
Z2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMg
IjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0
eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSdd
IGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/
vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9y
YWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJz
dHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFoZWxsbyIK
K1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxvIgogc3Rv
cmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0
aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDNlODFkZjBiYjIyODZiNzIxZDFjNDE3OWQyMzQ3
ZjVmOTc2ZDU5NDcuLmQ5MjVkZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4
dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0IGNvbW1hbmQocykgW01DQ0NdOiBNMSwx
UTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIsMSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMg
MSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIgMiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4
LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxsMyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2
LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENvdWxkIG5vdCBwYXJzZTogTQotQ291bGQg
bm90IHBhcnNlOiBNCitDb3VsZCBub3QgcGFyc2U6IE3vv70KIFBhcnNlZCBhcyAyIGNvbW1hbmQo
cykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4
IDQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUuLjJmNTc3ZWMxOTgxZTg3
OWI3NGM1ZmQ1ZGU4YTE3Y2E5ZmNlNDUwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9k
b20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMjU0LDggKzI1NCw4IEBAIFRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKC4yNysKIFRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBU
aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNl
cHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjog
RE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKK1RocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiDvv70KK1Ro
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAxOiByZ2Io77+9KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMuLjI4MzlhODY2MzJi
MmNmODZlMzdhZTg3YmEwMDZiZjk0YzI1NTk0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBUZXN0IFdlYlNvY2tldCBiYWQg
c3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hhcmFjdGVycy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
c2ltcGxlIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUi
LCAi77+9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIJ
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIKICIpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjZWM0OWI4ZDI0YzI1NzQz
MTA3OTY5OTJmZTBkOGNmMDliZGYzNzAuLmRlMDFmODM2ZGUzNDZkNTE4NDQwZDU5ZDMzMWM1NTdl
YzIwOTFiNzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMDYtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyYWdtZW50IHBhcnNpbmcgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgSFRNTDUgUGFyc2Vy
IGNvZGUgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA2NDUKKworICAgICAgICBBZGRlZCBhIG5ldyBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJz
ZUhUTUxEb2N1bWVudEZyYWdtZW50CisgICAgICAgIGNvZGVwYXRoIHdoaWNoIG9wdGlvbmFsbHkg
Y2FsbHMgdGhyb3VnaCB0byB0aGUgb2xkIGZyYWdtZW50CisgICAgICAgIHBhcnNpbmcgcGF0aCwg
bm93IHJlbmFtZWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudC4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCk6CisgICAgICAgICAtIFVzZSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgaW5zdGVhZAorICAgICAgICAgICBvZiBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKSB0byBtYXRjaCBvdGhlciBjYWxsZXJzCisgICAgICAgICAgIChhbmQgbm90IGRlcGVuZCBv
biBEb2N1bWVudEZyYWdtZW50LmgpLgorICAgICAgICAgLSBVcGRhdGUgY2FsbCB0byBwYXJzZUhU
TUxEb2N1bWVudEZyYWdtZW50IHRvIHVzZSB0aGUgbmV3CisgICAgICAgICAgIEhUTUw1IHBhcnNl
ciBjb2RlcGF0aC4KKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAg
ICAgIC0gQWRkIGEgRklYTUUgYWJvdXQgdGhpcyBob3JyaWJsZSBlbnVtIHBsYWNlbWVudC4KKyAg
ICAgICAgICAgU2FkbHkgdGhpcyB3aWxsIGNhdXNlIGEgd29ybGQtcmVidWlsZCBmb3IgZXZlcnlv
bmUuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVD
b25zdHJ1Y3Rvcik6CisgICAgICAgICAtIFRoZSBtYWluIHB1bXBMZXhlciBmdW5jdGlvbiBoYXMg
Z290dGVuIHRvIGxhcmdlLiAgTW92ZSB0aGUgc2NyaXB0CisgICAgICAgICAgIHJ1bm5pbmcgbG9n
aWMgaW50byB0aGlzIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgIC0gSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgbm8gbV9zY3JpcHRSdW5uZXIgKGZyYWdtZW50IGNhc2UpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0gVXNl
IG5ldyBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAg
LSBOZXcgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG1fc2NyaXB0UnVubmVyIGlz
IG51bGwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJz
aW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAgLSBVc2UgaW5TY3JpcHRFeGVjdXRp
b24oKSBpbnN0ZWFkIG9mIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRVc2VIVE1MNVBhcnNlcik6CisgICAgICAgICAtIEhlbHBlciBmdW5jdGlvbiB0byBjaGVj
ayB0aGUgaHRtbDVQYXJzZXJFbmFibGVkKCkgc2V0dGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAg
LSBSdW4gSFRNTDVEb2N1bWVudFBhcnNlciBpbiBmcmFnbWVudCBtb2RlLCBvciBvcHRpb25hbGx5
IHJ1bgorICAgICAgICAgICB0aGUgbGVnYWN5IHBhcnNlciBpZiAhaHRtbDVQYXJzZXJFbmFibGVk
KCkuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRt
bC9IVE1MNVRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VHJlZUJ1aWxk
ZXI6OkhUTUw1VHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUcmVlQnVpbGRl
cjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIpOgorICAgICAgICAgLSBJbXBsZW1lbnQgdGhlIEZy
YWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBoYWNrIGZvciBwbGF0Zm9ybS9QYXN0ZWJvYXJkLgor
ICAgICAgICAqIGh0bWwvSFRNTDVUcmVlQnVpbGRlci5oOgorICAgICAgICAqIGh0bWwvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTGVnYWN5SFRNTERvY3Vt
ZW50RnJhZ21lbnQpOgorICAgICAgICAgLSBSZW5hbWVkIGZyb20gcGFyc2VIVE1MRG9jdW1lbnRG
cmFnbWVudAorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aW5z
ZXJ0QWRqYWNlbnRIVE1MKToKKyAgICAgICAgIC0gQ2FsbCBIVE1MNURvY3VtZW50UGFyc2VyOjpw
YXJzZUhUTUxEb2N1bWVudEZyYWdtZW50LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVu
dCk6IGRpdHRvLgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZSk6IGRpdHRvLgorCiAyMDEwLTA2LTIxICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNsYW5n
KysgYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDU5ODdhYzc3NTFmZDZiNzE2YmFhYmQwZGM4YmQ0MTQzOGY5
YjcxZDUuLmY4MGNjZmZjMzAwNjU1NDBkMmJmZWI1MGI2ZGE2YjNkODczNzVkZGYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC00MCw5ICs0MCw5IEBACiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MNURvY3Vt
ZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVu
ZGVyU3R5bGUuaCIKQEAgLTUxLDggKzUxLDggQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCi0jaW5j
bHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgorI2luY2x1
ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5B
QkxFKFNWRykKQEAgLTkzLDEwICs5MywxMCBAQCBOb2RlUmFyZURhdGEqIEVsZW1lbnQ6OmNyZWF0
ZVJhcmVEYXRhKCkKIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFbGVtZW50OjpjcmVh
dGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewotICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKLSAgICAKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisKICAgICBpZiAoZG9jdW1lbnQoKS0+aXNI
VE1MRG9jdW1lbnQoKSkKLSAgICAgICAgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChtYXJrdXAs
IGZyYWdtZW50LmdldCgpLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICAgICAgSFRNTDVEb2N1
bWVudFBhcnNlcjo6cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChtYXJrdXAsIGZyYWdtZW50Lmdl
dCgpLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFwYXJz
ZVhNTERvY3VtZW50RnJhZ21lbnQobWFya3VwLCBmcmFnbWVudC5nZXQoKSwgdGhpcywgc2NyaXB0
aW5nUGVybWlzc2lvbikpCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0
ZSBhIHN5bnRheCBlcnJvciBleGNlcHRpb24gb3V0IGhlcmUuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIGIvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRl
RW50cnkuaAppbmRleCBjZTI0NjRlNzkzYjJmZDY4ZDMxODlmODY2Yjk2MDVlM2RlOWVjYzBmLi5j
YTBiYzEyYzQ0Mjc0N2M5OWQ2NTU0ZjQ1OTZlOTY1ODU0OTFiMzEzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oCisrKyBiL1dlYkNvcmUvZG9tL01hcHBlZEF0
dHJpYnV0ZUVudHJ5LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgZW51bSBNYXBwZWRBdHRyaWJ1dGVFbnRy
eSB7CiAgICAgLCBlTGFzdEVudHJ5CiB9OwogCisvLyBGSVhNRTogRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uIGRvZXMgbm90IGJlbG9uZyBpbiB0aGlzIGhlYWRlciEKIGVudW0gRnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uIHsgRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkLCBGcmFnbWVudFNj
cmlwdGluZ05vdEFsbG93ZWQgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3Bw
CmluZGV4IDg5Y2NmNTc5MDkzYzEwOTk5YzA5NTkyNTk4MjQ5NGE5YTdkYmJhNzUuLjgwNDRlOGFj
MzkxNjUzYWNlZWFlZDJmOTFiOWZlMzgxN2I2YmZhMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVu
dFBhcnNlci5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSFRNTDVEb2N1bWVudFBhcnNlci5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIiAvLyBPbmx5IGZvciBpc0xheW91dFRpbWVyQWN0aXZlCisjaW5jbHVkZSAi
SFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUg
IkhUTUw1UHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lci5oIgpA
QCAtMzYsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5v
ZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJYU1NBdWRpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAgLTk1LDgg
Kzk4LDcgQEAgc3RhdGljIGludCBwYXJzZXJDaHVua1NpemUoUGFnZSogcGFnZSkKIH0KIAogSFRN
TDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIHJlcG9ydEVycm9ycykKLSAgICA6IERvY3VtZW50UGFyc2VyKCkKLSAgICAsIG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9s
ZXhlcihuZXcgSFRNTDVMZXhlcikKICAgICAsIG1fc2NyaXB0UnVubmVyKG5ldyBIVE1MNVNjcmlw
dFJ1bm5lcihkb2N1bWVudCwgdGhpcykpCiAgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRN
TDVUcmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKQEAg
LTEwOSw2ICsxMTEsMjIgQEAgSFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNl
cihIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm8KICAgICBiZWdpbigpOwog
fQogCisvLyBGSVhNRTogTWVtYmVyIHZhcmlhYmxlcyBzaG91bGQgYmUgZ3JvdXBlZCBpbnRvIHNl
bGYtaW5pdGlhbGl6aW5nIHN0cnVjdHMgdG8KKy8vIG1pbmltaXplIGNvZGUgZHVwbGljYXRpb24g
YmV0d2VlbiB0aGVzZSBjb25zdHJ1Y3RvcnMuCitIVE1MNURvY3VtZW50UGFyc2VyOjpIVE1MNURv
Y3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICA6IG1fZG9jdW1lbnQoZnJhZ21l
bnQtPmRvY3VtZW50KCkpCisgICAgLCBtX2xleGVyKG5ldyBIVE1MNUxleGVyKQorICAgICwgbV90
cmVlQ29uc3RydWN0b3IobmV3IEhUTUw1VHJlZUJ1aWxkZXIobV9sZXhlci5nZXQoKSwgZnJhZ21l
bnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pKQorICAgICwgbV9lbmRXYXNEZWxheWVkKGZhbHNlKQor
ICAgICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQorICAgIC8vIEZJWE1FOiBQYXJzZXIgeWllbGRp
bmcgc2hvdWxkIGJlIGEgc2VwYXJhdGUgY2xhc3MuCisgICAgLCBtX3BhcnNlclRpbWVMaW1pdCgw
KQorICAgICwgbV9wYXJzZXJDaHVua1NpemUoMCkKKyAgICAsIG1fY29udGludWVOZXh0Q2h1bmtU
aW1lcih0aGlzLCAmSFRNTDVEb2N1bWVudFBhcnNlcjo6Y29udGludWVOZXh0Q2h1bmtUaW1lckZp
cmVkKQoreworICAgIGJlZ2luKCk7Cit9CisKIEhUTUw1RG9jdW1lbnRQYXJzZXI6On5IVE1MNURv
Y3VtZW50UGFyc2VyKCkKIHsKICAgICAvLyBGSVhNRTogV2UnZCBsaWtlIHRvIEFTU0VSVCB0aGF0
IG5vcm1hbCBvcGVyYXRpb24gb2YgdGhpcyBjbGFzcyBjbGVhcnMKQEAgLTE3Nyw2ICsxOTUsMTgg
QEAgaW5saW5lIGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6c2hvdWxkQ29udGludWVQYXJzaW5n
KFB1bXBTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQ29uc3RydWN0b3IoKQorewor
ICAgIEFTU0VSVChtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7CisKKyAgICBpbnQgc2Ny
aXB0U3RhcnRMaW5lID0gMDsKKyAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCA9IG1f
dHJlZUNvbnN0cnVjdG9yLT50YWtlU2NyaXB0VG9Qcm9jZXNzKHNjcmlwdFN0YXJ0TGluZSk7Cisg
ICAgLy8gV2Ugd2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1
bWVudEZyYWdtZW50LgorICAgIGlmICghbV9zY3JpcHRSdW5uZXIpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJl
bGVhc2UoKSwgc2NyaXB0U3RhcnRMaW5lKTsKK30KKwogdm9pZCBIVE1MNURvY3VtZW50UGFyc2Vy
OjpwdW1wTGV4ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNl
clN0b3BwZWQpOwpAQCAtMjAzLDE0ICsyMzMsMTIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2Vy
OjpwdW1wTGV4ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAgICAgICAgIGlmIChTY3JpcHRDb250
cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gc2NyaXB0KCkpCiAgICAgICAgICAgICBzY3JpcHRD
b250cm9sbGVyLT5zZXRFdmVudEhhbmRsZXJMaW5lTnVtYmVyKDApOwogCisgICAgICAgIC8vIFRo
ZSBwYXJzZXIgd2lsbCBwYXVzZSBpdHNlbGYgd2hlbiB3YWl0aW5nIG9uIGEgc2NyaXB0IHRvIGxv
YWQgb3IgcnVuLgogICAgICAgICBpZiAoIW1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgLy8gVGhlIHBhcnNlciB3aWxsIHBhdXNl
IGl0c2VsZiB3aGVuIHdhaXRpbmcgb24gYSBzY3JpcHQgdG8gbG9hZCBvciBydW4uCi0gICAgICAg
IC8vIFNjcmlwdFJ1bm5lciBleGVjdXRlcyBzY3JpcHRzIGF0IHRoZSByaWdodCB0aW1lcyBhbmQg
aGFuZGxlcyByZWVudHJhbmN5LgotICAgICAgICBpbnQgc2NyaXB0U3RhcnRMaW5lID0gMDsKLSAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBtX3RyZWVDb25zdHJ1Y3Rvci0+
dGFrZVNjcmlwdFRvUHJvY2VzcyhzY3JpcHRTdGFydExpbmUpOwotICAgICAgICBib29sIHNob3Vs
ZENvbnRpbnVlUGFyc2luZyA9IG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQu
cmVsZWFzZSgpLCBzY3JpcHRTdGFydExpbmUpOworICAgICAgICAvLyBJZiB3ZSdyZSBwYXVzZWQg
d2FpdGluZyBmb3IgYSBzY3JpcHQsIHdlIHRyeSB0byBleGVjdXRlIHNjcmlwdHMgYmVmb3JlIGNv
bnRpbnVpbmcuCisgICAgICAgIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nID0gcnVuU2NyaXB0
c0ZvclBhdXNlZFRyZWVDb25zdHJ1Y3RvcigpOwogICAgICAgICBtX3RyZWVDb25zdHJ1Y3Rvci0+
c2V0UGF1c2VkKCFzaG91bGRDb250aW51ZVBhcnNpbmcpOwogICAgICAgICBpZiAoIXNob3VsZENv
bnRpbnVlUGFyc2luZykKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQxLDggKzM2OSwxNyBAQCBi
b29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmZpbmlzaFdhc0NhbGxlZCgpCiAgICAgcmV0dXJuIG1f
aW5wdXQuaXNDbG9zZWQoKTsKIH0KIAorLy8gVGhpcyBjYWxsIGlzIHZpcnR1YWwuCiBpbnQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0aW5nU2NyaXB0KCkgY29uc3QKIHsKKyAgICByZXR1cm4g
aW5TY3JpcHRFeGVjdXRpb24oKTsKK30KKworLy8gVGhpcyBjYWxsIGlzIHVzZWQgdGhyb3VnaG91
dCB0aGUgaW1wbGVtZW50YXRpb24uCitib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmluU2NyaXB0
RXhlY3V0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0UnVubmVyKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlv
bigpOwogfQogCkBAIC0zNjgsNyArNDA1LDcgQEAgYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpp
c1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpy
ZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKQogewotICAgIEFTU0VSVCghbV9zY3Jp
cHRSdW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCkpOworICAgIEFTU0VSVCghaW5TY3JpcHRFeGVj
dXRpb24oKSk7CiAgICAgQVNTRVJUKCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7CiAK
ICAgICBwdW1wTGV4ZXJJZlBvc3NpYmxlKEFsbG93WWllbGQpOwpAQCAtMzk2LDcgKzQzMyw3IEBA
IGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6c2hvdWxkTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNy
Yyhjb25zdCBBdG9taWNTdHJpbmcmIHNyCiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhl
Y3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogewotICAgIEFT
U0VSVChtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CisgICAgQVNTRVJUKGlu
U2NyaXB0RXhlY3V0aW9uKCkpOwogICAgIGlmICghbV9kb2N1bWVudC0+ZnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIEluc2VydGlvblBvaW50UmVjb3JkIHNhdmVkSW5zZXJ0aW9uUG9pbnQo
bV9pbnB1dCk7CkBAIC00MDUsNiArNDQyLDcgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpl
eGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAKIHZvaWQg
SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hl
ZFJlc291cmNlKQogeworICAgIEFTU0VSVChtX3NjcmlwdFJ1bm5lcik7CiAgICAgLy8gSWdub3Jl
IGNhbGxzIHVubGVzcyB3ZSBoYXZlIGEgc2NyaXB0IGJsb2NraW5nIHRoZSBwYXJzZXIgd2FpdGlu
ZwogICAgIC8vIGZvciBpdHMgb3duIGxvYWQuICBPdGhlcndpc2UgdGhpcyBtYXkgYmUgYSBsb2Fk
IGNhbGxiYWNrIGZyb20KICAgICAvLyBDYWNoZWRSZXNvdXJjZTo6YWRkQ2xpZW50IGJlY2F1c2Ug
dGhlIHNjcmlwdCB3YXMgYWxyZWFkeSBpbiB0aGUgY2FjaGUuCkBAIC00MTMsNyArNDUxLDcgQEAg
dm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSog
Y2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIEFTU0VSVChtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRF
eGVjdXRpb24oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgQVNTRVJUKCFtX3Njcmlw
dFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CisgICAgQVNTRVJUKCFpblNjcmlwdEV4ZWN1
dGlvbigpKTsKICAgICBBU1NFUlQobV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpOwogICAg
IC8vIE5vdGU6IFdlIG9ubHkgZXZlciB3YWl0IG9uIG9uZSBzY3JpcHQgYXQgYSB0aW1lLCBzbyB3
ZSBhbHdheXMga25vdyB0aGlzCiAgICAgLy8gaXMgdGhlIG9uZSB3ZSB3ZXJlIHdhaXRpbmcgb24g
YW5kIGNhbiB1bi1wYXVzZSB0aGUgdHJlZSBidWlsZGVyLgpAQCAtNDI2LDYgKzQ2NCw5IEBAIHZv
aWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlKQogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3JpcHRz
V2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkKIHsKKyAgICAvLyBEb2N1bWVudCBvbmx5IGNhbGxzIHRo
aXMgd2hlbiB0aGUgRG9jdW1lbnQgb3ducyB0aGUgRG9jdW1lbnRQYXJzZXIKKyAgICAvLyBzbyB0
aGlzIHdpbGwgbm90IGJlIGNhbGxlZCBpbiB0aGUgRG9jdW1lbnRGcmFnbWVudCBjYXNlLgorICAg
IEFTU0VSVChtX3NjcmlwdFJ1bm5lcik7CiAgICAgLy8gSWdub3JlIGNhbGxzIHVubGVzcyB3ZSBo
YXZlIGEgc2NyaXB0IGJsb2NraW5nIHRoZSBwYXJzZXIgd2FpdGluZyBvbiBhCiAgICAgLy8gc3R5
bGVzaGVldCBsb2FkLiAgT3RoZXJ3aXNlIHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZyBhbmQgdGhp
cwogICAgIC8vIGlzIGEgcmUtZW50cmFudCBjYWxsIGZyb20gZW5jb3VudGVyaW5nIGEgPC8gc3R5
bGU+IHRhZy4KQEAgLTQ0Nyw0ICs0ODgsMjEgQEAgU2NyaXB0Q29udHJvbGxlciogSFRNTDVEb2N1
bWVudFBhcnNlcjo6c2NyaXB0KCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudC0+ZnJhbWUo
KSA/IG1fZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpIDogMDsKIH0KIAorc3RhdGljIGJvb2wg
c2hvdWxkVXNlSFRNTDVQYXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBk
b2N1bWVudCAmJiBkb2N1bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlKCktPnNldHRpbmdz
KCkKKyAgICAgICAgJiYgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+aHRtbDVQYXJzZXJF
bmFibGVkKCk7Cit9CisKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cGFyc2VIVE1MRG9jdW1l
bnRGcmFnbWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21l
bnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorewor
ICAgIGlmICghc2hvdWxkVXNlSFRNTDVQYXJzZXIoZnJhZ21lbnQtPmRvY3VtZW50KCkpKQorICAg
ICAgICByZXR1cm4gcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudChzb3VyY2UsIGZyYWdt
ZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKworICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIgcGFy
c2VyKGZyYWdtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICBwYXJzZXIud3JpdGUoc291
cmNlLCBmYWxzZSk7CisgICAgcGFyc2VyLmZpbmlzaCgpOworICAgIEFTU0VSVCghcGFyc2VyLnBy
b2Nlc3NpbmdEYXRhKCkpOyAvLyBNYWtlIHN1cmUgd2UncmUgZG9uZS4gPHJkYXI6Ly9wcm9ibGVt
LzM5NjMxNTE+Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50
UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oCmluZGV4IDU4MmU0
ZDk2MTM3MjA3ZGU4NTYxY2I1NzYyYjlmOWE1NzMzYWIyNzcuLjhmZmRiZjNmODM0MDg2ZWQ4YTdi
M2MwYWUxNzg2ODJlMzNkNDYyMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3Vt
ZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaApAQCAt
MzYsMjAgKzM2LDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTERvY3VtZW50OwotY2xhc3MgTGVn
YWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFzcyBIVE1MNVNj
cmlwdFJ1bm5lcjsKIGNsYXNzIEhUTUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1MNVByZWxvYWRT
Y2FubmVyOworY2xhc3MgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIFNjcmlwdENv
bnRyb2xsZXI7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFzcyBIVE1MNURvY3VtZW50
UGFyc2VyIDogIHB1YmxpYyBEb2N1bWVudFBhcnNlciwgSFRNTDVTY3JpcHRSdW5uZXJIb3N0LCBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFRoaXMgY29uc3Ry
dWN0b3Igc2hvdWxkIGJlIG1hZGUgcHJpdmF0ZSBhbmQgcmVwbGFjZWQgYnkgYSBjcmVhdGUoKSBt
ZXRob2QuCiAgICAgSFRNTDVEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9y
dEVycm9ycyk7CiAgICAgdmlydHVhbCB+SFRNTDVEb2N1bWVudFBhcnNlcigpOwogCisgICAgc3Rh
dGljIHZvaWQgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmLCBEb2N1bWVu
dEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRp
bmdBbGxvd2VkKTsKKwogICAgIC8vIERvY3VtZW50UGFyc2VyCiAgICAgdmlydHVhbCB2b2lkIGJl
Z2luKCk7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJv
b2wgaXNGcm9tTmV0d29yayk7CkBAIC03Nyw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIAogcHJpdmF0ZToKKyAgICBI
VE1MNURvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24pOworCiAgICAgLy8gVGhlIElucHV0U3RyZWFtIGlzIG1hZGUgdXAgb2YgYSBzZXF1
ZW5jZSBvZiBTZWdtZW50ZWRTdHJpbmdzOgogICAgIC8vCiAgICAgLy8gWy0tY3VycmVudC0tXVst
LW5leHQtLV1bLS1uZXh0LS1dIC4uLiBbLS1uZXh0LS1dCkBAIC0xNzIsNiArMTc5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHN0cnVjdCBQdW1wU2Vzc2lvbjsKICAgICBpbmxpbmUgYm9vbCBzaG91bGRD
b250aW51ZVBhcnNpbmcoUHVtcFNlc3Npb24mKTsKKyAgICBib29sIHJ1blNjcmlwdHNGb3JQYXVz
ZWRUcmVlQ29uc3RydWN0b3IoKTsKIAogICAgIGVudW0gU3luY2hyb25vdXNNb2RlIHsKICAgICAg
ICAgQWxsb3dZaWVsZCwKQEAgLTE4NCw2ICsxOTIsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBh
dHRlbXB0VG9FbmQoKTsKICAgICB2b2lkIGVuZElmRGVsYXllZCgpOworCisgICAgYm9vbCBpblNj
cmlwdEV4ZWN1dGlvbigpIGNvbnN0OwogICAgIGJvb2wgaW5Xcml0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAwOyB9CiAKICAgICBTY3JpcHRDb250cm9sbGVyKiBzY3Jp
cHQoKSBjb25zdDsKQEAgLTE5Myw3ICsyMDMsOSBAQCBwcml2YXRlOgogICAgIC8vIFdlIGhvbGQg
bV90b2tlbiBoZXJlIGJlY2F1c2UgaXQgbWlnaHQgYmUgcGFydGlhbGx5IGNvbXBsZXRlLgogICAg
IEhUTUw1VG9rZW4gbV90b2tlbjsKIAotICAgIEhUTUxEb2N1bWVudCogbV9kb2N1bWVudDsKKyAg
ICAvLyBXZSBtdXN0IHN1cHBvcnQgcGFyc2luZyBpbnRvIGEgRG9jdW1lbnQqIGFuZCBub3QganVz
dCBIVE1MRG9jdW1lbnQqCisgICAgLy8gdG8gc3VwcG9ydCBEb2N1bWVudEZyYWdtZW50ICh3aGlj
aCBoYXMgYSBEb2N1bWVudCopLgorICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIE93blB0
cjxIVE1MNUxleGVyPiBtX2xleGVyOwogICAgIE93blB0cjxIVE1MNVNjcmlwdFJ1bm5lcj4gbV9z
Y3JpcHRSdW5uZXI7CiAgICAgT3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUNvbnN0cnVj
dG9yOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCmluZGV4IDMzMjAzOTM0YzE2MGZjYzZiZGFj
ZDA4OGYwNTg4MmE0YzBjNjM2YWQuLjM2NGVlZTEwYWE2MTJlMmVhZGNjNmFkNDdjODI4ZWY2MDhj
YjcyMjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKQEAgLTI2LDE0ICsyNiwxNSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKIAorI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVUb2tl
bi5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBh
cnNlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkxlZ2FjeUhUTUxUcmVl
Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KQEAgLTUzLDYgKzU0LDIyIEBAIEhUTUw1VHJlZUJ1aWxk
ZXI6OkhUTUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciogbGV4ZXIsIEhUTUxEb2N1bWVudCogZG9j
dW1lbnQsIGJvCiAgICAgLCBtX2xlZ2FjeVRyZWVDb25zdHJ1Y3RvcihuZXcgTGVnYWN5SFRNTFRy
ZWVDb25zdHJ1Y3Rvcihkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKICAgICAsIG1fbGFzdFNjcmlw
dEVsZW1lbnRTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKICAgICAsIG1f
c2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCisg
ICAgLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbihGcmFnbWVudFNjcmlwdGluZ0FsbG93
ZWQpCit7Cit9CisKKy8vIEZJWE1FOiBNZW1iZXIgdmFyaWFibGVzIHNob3VsZCBiZSBncm91cGVk
IGludG8gc2VsZi1pbml0aWFsaXppbmcgc3RydWN0cyB0bworLy8gbWluaW1pemUgY29kZSBkdXBs
aWNhdGlvbiBiZXR3ZWVuIHRoZXNlIGNvbnN0cnVjdG9ycy4KK0hUTUw1VHJlZUJ1aWxkZXI6OkhU
TUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciogbGV4ZXIsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdt
ZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKKyAg
ICA6IG1fZG9jdW1lbnQoZnJhZ21lbnQtPmRvY3VtZW50KCkpCisgICAgLCBtX3JlcG9ydEVycm9y
cyhmYWxzZSkgLy8gRklYTUU6IFdoeSBub3QgcmVwb3J0IGVycm9ycyBpbiBmcmFnbWVudHM/Cisg
ICAgLCBtX2lzUGF1c2VkKGZhbHNlKQorICAgICwgbV9pbnNlcnRpb25Nb2RlKEluaXRpYWwpCisg
ICAgLCBtX2xleGVyKGxleGVyKQorICAgICwgbV9sZWdhY3lUcmVlQ29uc3RydWN0b3IobmV3IExl
Z2FjeUhUTUxUcmVlQ29uc3RydWN0b3IoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pKQor
ICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJl
clZhbHVlKQorICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXplZExp
bmVOdW1iZXJWYWx1ZSkKKyAgICAsIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKHNjcmlw
dGluZ1Blcm1pc3Npb24pCiB7CiB9CiAKQEAgLTE3OSwxMCArMTk2LDE3IEBAIFBhc3NSZWZQdHI8
Tm9kZT4gSFRNTDVUcmVlQnVpbGRlcjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIoSFRNTDVUb2tl
biYgdG9rZW4pCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fbGV4ZXItPnNldFN0YXRlKGFk
anVzdGVkTGV4ZXJTdGF0ZShtX2xleGVyLT5zdGF0ZSgpLCBvbGRTdHlsZVRva2VuLnRhZ05hbWUs
IG1fZG9jdW1lbnQtPmZyYW1lKCkpKTsKICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBI
VE1MNVRva2VuOjpFbmRUYWcpIHsKLSAgICAgICAgaWYgKG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9
PSBzY3JpcHRUYWcgJiYgaW5zZXJ0aW9uTW9kZSgpICE9IEFmdGVyRnJhbWVzZXQpIHsKKyAgICAg
ICAgaWYgKG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9PSBzY3JpcHRUYWcpIHsKICAgICAgICAgICAg
IGlmIChtX2xhc3RTY3JpcHRFbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG1fbGFz
dFNjcmlwdEVsZW1lbnRTdGFydExpbmUgIT0gdW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSk7
Ci0gICAgICAgICAgICAgICAgaGFuZGxlU2NyaXB0RW5kVGFnKG1fbGFzdFNjcmlwdEVsZW1lbnQu
Z2V0KCksIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUpOworICAgICAgICAgICAgICAgIGlm
IChtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9PSBGcmFnbWVudFNjcmlwdGluZ05vdEFs
bG93ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBob3JyaWJs
ZSBoYWNrIGZvciBwbGF0Zm9ybS9QYXN0ZWJvYXJkLgorICAgICAgICAgICAgICAgICAgICAvLyBD
bGVhciB0aGUgPHNjcmlwdD4gdGFnIHdoZW4gdXNpbmcgdGhlIFBhcnNlciB0byBjcmVhdGUKKyAg
ICAgICAgICAgICAgICAgICAgLy8gYSBEb2N1bWVudEZyYWdtZW50IGZvciBwYXN0aW5nIHNvIHRo
YXQgamF2YXNjcmlwdCBjb250ZW50CisgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgbm90IHNo
b3cgdXAgaW4gcGFzdGVkIEhUTUwuCisgICAgICAgICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVs
ZW1lbnQtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnNl
cnRpb25Nb2RlKCkgIT0gQWZ0ZXJGcmFtZXNldCkKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxl
U2NyaXB0RW5kVGFnKG1fbGFzdFNjcmlwdEVsZW1lbnQuZ2V0KCksIG1fbGFzdFNjcmlwdEVsZW1l
bnRTdGFydExpbmUpOwogICAgICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnQgPSAwOwog
ICAgICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUgPSB1bmluaXRpYWxp
emVkTGluZU51bWJlclZhbHVlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUw1VHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgK
aW5kZXggNmY5NGY4ODIwMzFkNTU2ZGNjYjdhZWJmM2ZkYTU4YmNmNzNjMDUyNi4uNjQ3NzkyMWQ3
NmU0YmEwZGE4Njg4OWM2N2E0NjA3ZTQ0NmYzODRkMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUw1VHJlZUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEhUTUw1VHJlZUJ1aWxkZXJfaAogCiAjaW5jbHVk
ZSAiSFRNTDVMZXhlci5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiIC8vIEZv
ciBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24hPwogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgpAQCAtMzYsNiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVu
dDsKK2NsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7
CiBjbGFzcyBIVE1MNVRva2VuOwpAQCAtNDUsNyArNDcsOSBAQCBjbGFzcyBOb2RlOwogCiBjbGFz
cyBIVE1MNVRyZWVCdWlsZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKKyAgICAv
LyBGSVhNRTogUmVwbGFjZSBjb25zdHJ1Y3RvcnMgd2l0aCBjcmVhdGUoKSBmdW5jdGlvbnMgcmV0
dXJuaW5nIFBhc3NPd25QdHJzCiAgICAgSFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiwgSFRN
TERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJvcnMpOworICAgIEhUTUw1VHJlZUJ1aWxkZXIoSFRN
TDVMZXhlciosIERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24p
OwogICAgIH5IVE1MNVRyZWVCdWlsZGVyKCk7CiAKICAgICB2b2lkIHNldFBhdXNlZChib29sIHBh
dXNlZCkgeyBtX2lzUGF1c2VkID0gcGF1c2VkOyB9CkBAIC0xMDUsNiArMTA5LDExIEBAIHByaXZh
dGU6CiAKICAgICBSZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+
IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgog
ICAgIGludCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZTsgLy8gU3RhcnRpbmcgbGluZSBudW1i
ZXIgb2YgdGhlIHNjcmlwdCB0YWcgbmVlZGluZyBwcm9jZXNzaW5nLgorCisgICAgLy8gRklYTUU6
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBpcyBhIEdJR0FOVElDIEhBQ0sgZm9yIHBsYXRm
b3JtL1Bhc3RlYm9hcmQuCisgICAgLy8gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGNhdXNl
cyB0aGUgUGFyc2VyIHRvIHJlbW92ZSBjaGlsZHJlbgorICAgIC8vIGZyb20gPHNjcmlwdD4gdGFn
cyAoc28gamF2YXNjcmlwdCBkb2Vzbid0IHNob3cgdXAgaW4gcGFzdGVzKS4KKyAgICBGcmFnbWVu
dFNjcmlwdGluZ1Blcm1pc3Npb24gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb247CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI3ZjAxNjM0ZmQyOTAwMzY2
MDkwYTcyOWNlMDk4MTMwMmFkYTA4N2YuLjRiYzQ2N2FkY2U3ZDhlNjQ4Mzk3NGU2YjUwNDk3MTE1
NWUzNzEzYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yMDk5LDcgKzIw
OTksNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c2V0U3JjKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYgc291cmNlKQogICAgIG1fc3JjID0gc291cmNlOwogfQogCi12b2lkIHBhcnNlSFRNTERv
Y3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21lbnQqIGZy
YWdtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikK
K3ZvaWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
biBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogICAgIEhUTUxEb2N1bWVudFBhcnNlciBwYXJzZXIo
ZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIHBhcnNlci5zZXRGb3JjZVN5bmNo
cm9ub3VzKHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNl
ci5oIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGI2ZGVkZjI4NDUy
ODVhNDMwOTBiODkwZmZmMzgxNzhiNWI0MmM1NzUuLjU0NzE4YTJhNTk3NDA3Njc5NDIwZjZlZmI4
ZThiY2MxZDk1NDI5NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJz
ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTQ0MCw3ICs0
NDAsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxQcmVsb2FkU2Nhbm5lcj4gbV9wcmVsb2FkU2Nh
bm5lcjsKIH07CiAKLXZvaWQgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcm
LCBEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21l
bnRTY3JpcHRpbmdBbGxvd2VkKTsKK3ZvaWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVu
dChjb25zdCBTdHJpbmcmLCBEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKIAogVUNoYXIgZGVjb2RlTmFtZWRF
bnRpdHkoY29uc3QgY2hhciopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAwNTlmMGExZjg5ZWVi
MmI3NWZjNjM3Y2I4Mzc3MzQyNDkyNTVlYjc0Li43MDFkYzk5NWIxYmVlNGMxMDZlN2M0MTdlYzFh
NWU5MDk4ZTNkNjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTMzLDEzICszMywxMyBAQAogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
SFRNTEJSRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAi
SFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyV29yZEJyZWFrLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01
NTMsNyArNTUzLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0
IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgRXgKIHsKICAgICBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CiAgICAgaWYgKGRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgICBw
YXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50LmdldCgpKTsKKyAgICAgICAg
IEhUTUw1RG9jdW1lbnRQYXJzZXI6OnBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoaHRtbCwgZnJh
Z21lbnQuZ2V0KCkpOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIXBhcnNlWE1MRG9jdW1lbnRG
cmFnbWVudChodG1sLCBmcmFnbWVudC5nZXQoKSwgdGhpcykpCiAgICAgICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBhIHN5bnRheCBlcnJvciBleGNlcHRpb24gb3V0IGhlcmUu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAwM2VkZTAzNDdiNjI4ZmZl
NDY3MWExZmQ5ZmQ3NjAwMjU4MjMxNDkwLi5jMDQ5ZjJhMjg2ZmY3ODk0NDU0ODI3NWJjYWJlNTU1
ODJiNzc2YWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTM3OCw2
ICszNzgsMTAgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1
bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlAKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBpZiAoW0hUTUxTdHJpbmcgbGVuZ3RoXSAhPSAwKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGlzIGEgR0lHQU5USUMgSEFD
SyBhbmQgc2hvdWxkCisgICAgICAgICAgICAvLyBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIHdpdGgg
YW4gZW51bSB3aXRoIGEgYmV0dGVyIG5hbWUuCisgICAgICAgICAgICAvLyBGcmFnbWVudFNjcmlw
dGluZ05vdEFsbG93ZWQgY2F1c2VzIHRoZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVuCisgICAg
ICAgICAgICAvLyBvZiA8c2NyaXB0PiB0YWdzIChzbyBqYXZhc2NyaXB0IGRvZXNuJ3Qgc2hvdyB1
cCBpbiBwYXN0ZXMpLgogICAgICAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGZyYW1lLT5kb2N1bWVudCgpLCBIVE1MU3Ry
aW5nLCAiIiwgRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkKTsKICAgICAgICAgICAgIGlmIChm
cmFnbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAgYi9XZWJDb3JlL3htbC9YU0xU
UHJvY2Vzc29yLmNwcAppbmRleCA5N2I1NDY2Nzk4ZjExYjZiN2RiYTJmZTMxYTI4NmFkOWVjM2U4
MzcwLi4wMGI4N2VmODY1ODU5NzI1ZmU4MThlNTU3OTc4NmJhN2U0ZWYxNmMyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9XZWJDb3JlL3htbC9YU0xUUHJv
Y2Vzc29yLmNwcApAQCAtMzIsMTQgKzMyLDE1IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhU
TUw1RG9jdW1lbnRQYXJzZXIuaCIgLy8gZm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKICNp
bmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIg
Ly8gZm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRl
ICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUgIm1h
cmt1cC5oIgorCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTEwMCwxMCArMTAxLDEwIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IFhTTFRQ
cm9jZXNzb3I6OmNyZWF0ZURvY3VtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjCiAK
IHN0YXRpYyBpbmxpbmUgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VN
SU1FVHlwZSwgRG9jdW1lbnQqIG91dHB1dERvYykKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUob3V0cHV0RG9jKTsKKyAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBvdXRwdXREb2MtPmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKIAogICAgIGlmIChzb3VyY2VNSU1FVHlwZSA9PSAidGV4dC9odG1s
IikKLSAgICAgICAgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChzb3VyY2VTdHJpbmcsIGZyYWdt
ZW50LmdldCgpKTsKKyAgICAgICAgSFRNTDVEb2N1bWVudFBhcnNlcjo6cGFyc2VIVE1MRG9jdW1l
bnRGcmFnbWVudChzb3VyY2VTdHJpbmcsIGZyYWdtZW50LmdldCgpKTsKICAgICBlbHNlIGlmIChz
b3VyY2VNSU1FVHlwZSA9PSAidGV4dC9wbGFpbiIpCiAgICAgICAgIGZyYWdtZW50LT5hZGRDaGls
ZChUZXh0OjpjcmVhdGUob3V0cHV0RG9jLCBzb3VyY2VTdHJpbmcpKTsKICAgICBlbHNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59333</attachid>
            <date>2010-06-21 21:30:07 -0700</date>
            <delta_ts>2010-06-21 21:51:09 -0700</delta_ts>
            <desc>Updated per Adam&apos;s review comments</desc>
            <filename>bug-40645-20100621213005.patch</filename>
            <type>text/plain</type>
            <size>47115</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4OWExZDU3OWYwYWIwNzJlNmI1MmFjNGQwMGQxZmU1NDBmMGIxMzZjLi5mMTRkMTRm
NzExOGY2ZjIxZWMxZjhhY2M0NGEzNWNjMmE5NDMxNDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGcmFnbWVu
dCBwYXJzaW5nIG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIEhUTUw1IFBhcnNlciBjb2RlIHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjQ1CisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgIC0gXDAgaXMgbm93IGNvbnZlcnRlZCB0byBcdUZGRkQgcGVyIEhUTUw1
LgorICAgICAgICAqIGZhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgLSA8dGV4dGFyZWE+IGlzIHBhcnNlZCBpbiB0aGUgUkNEQVRBIHN0YXRl
LCB3aGljaCBtZWFucworICAgICAgICAgICB0aGF0IGNvbW1lbnRzIGFyZSBpZ25vcmVkLCB0aHVz
IHRoZSA8L3RleHRhcmVhPiBpbiB0aGUKKyAgICAgICAgICAgY29tbWVudCBjb3JyZWN0bHkgY2xv
c2VzIHRoZSA8dGV4dGFyZWE+LiAgVGhpcyB0ZXN0IGlzIGludmFsaWQuCisgICAgICAgICAgIE91
ciBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBtaW5lZmllbGQuCisgICAgICAgICogZmFzdC90b2tlbml6
ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAtIFRoaXMgdGVzdCBpcyBpbnZhbGlkIGFuZCBwcm9iYWJseSBzaG91bGQganVzdCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICBUaGlzIHNhbWUgYmVoYXZpb3IgaXMgdGVzdGVkIGJ5IGZhc3Qv
aW52YWxpZC8wMTYuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFRoZSAiZXh0cmEiIFBhcnNlSFRNTCBpcyBleHBl
Y3RlZC4gIFRoZSBIVE1MNSBQYXJzZXIgdGVsbHMgdGhlCisgICAgICAgICAgIGluc3BlY3RvciBh
Ym91dCBldmVyeSBwYXJzZXIgcHVtcCwgZXZlbiBvbmVzIHdoaWNoIHB1bXAgbm8gZGF0YS4KKyAg
ICAgICAgICAgVGhlIEhUTUw1IHBhcnNlciBwdW1wcyBvbmUgbGFzdCB0aW1lIGluIGZpbmlzaCgp
IHRvIGZsdXNoIGFueQorICAgICAgICAgICBidWZmZXJlZCBjaGFyYWN0ZXJzLiAgRXZlbnR1YWxs
eSB3ZSdsbCB0ZWFjaCB0aGUgaW5zcGVjdG9yIHRvCisgICAgICAgICAgIGZpbHRlciBvdXQgKG5v
dCBkaXNwbGF5KSAwLXNpemVkIHB1bXBzLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFwwIGlzIG5vdyBjb252ZXJ0
ZWQgdG8gXHVGRkZEIHBlciBIVE1MNQorICAgICAgICAqIHN2Zy9kb20vZnV6ei1wYXRoLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWIt
cHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6IGRpdHRvLgorCisyMDEwLTA2LTIx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBUd28gZmFzdC9keW5hbWljIHRlc3RzIG5lZWRsZXNz
bHkgZGVwZW5kIG9uIGxlZ2FjeSA8dGFnPHRhZz4gcGFyc2luZyBiZWhhdmlvcgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NDYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWdldENvbnRleHQtaW52YWxpZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZh
bGlkLWV4cGVjdGVkLnR4dAppbmRleCAyZjI0ZThlZDA0ZGJmYWIzZjIwMDk5YmY2ZTcyNWNjZjIz
YmQ1YWJiLi4zNGIxNDlkYjc4YzE3ZmZiOWJhZGU3ZDJiODA4YzEzYjA1NTczODc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4
dC1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdl
dENvbnRleHQoJzJkIycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJ1RoaXMgaXMg
Y2xlYXJseSBub3QgYSB2YWxpZCBjb250ZXh0IG5hbWUuJykgaXMgbnVsbAotUEFTUyBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKSBpcyBudWxsCitQQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/vScp
IGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJzLvvYQnKSBpcyBudWxsCiBQQVNTIGNh
bnZhcy5nZXRDb250ZXh0KCcyRCcpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NDM3NTczYjU0NDZkZmNjZGI3NzQxNzkzZDZjY2MwYjE3ZGM0
NjcuLjZkMjhlNjRiODJiODNhNjc4NTEyZDAzNjk4MWIzOWFmOGRiZWIwMmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG51bGwgY2hhcmFjdGVycyBhcmUg
YWxsb3dlZCBpbiBKYXZhU2NyaXB0IHN0cmluZ3MsIHJhdGhlcgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgU3RyaW5nKCIiKS5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcoIu+/
vSIpLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0CmluZGV4IGYwMmYwOTEzN2UxODE0MjhjZjMzYjk4YzMyNjUxNTYzNDU2Mzg0ZTku
LjRmZWRiMTlkNzcyNjg5NmE4MzExZWFkMjNkMDBmZGIyYTlmMjg3YmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgY29ycmVjdG5lc3MgYW5kIGJlaGF2aW91ciBvZiBz
d2l0Y2ggc3RhdGVtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNo
YXJhY3RlclN3aXRjaCgnJykgaXMgIiIKK1BBU1MgY2hhcmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi
77+9IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKCdhJykgaXMgImEiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnMScpIGlzICIxIgpAQCAtMTks
NyArMTksNyBAQCBQQVNTIGNoYXJhY3RlclN3aXRjaCgtMSkgaXMgImRlZmF1bHQiCiBQQVNTIGNo
YXJhY3RlclN3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIGNoYXJhY3RlclN3
aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKHt9KSBp
cyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcnKSBpcyAiIgorUEFTUyBz
cGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCiBQQVNTIHNwYXJzZUNoYXJhY3Rl
clN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ2EnKSBpcyAi
YSIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0zNSw3ICszNSw3
IEBAIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3Bh
cnNlQ2hhcmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNl
Q2hhcmFjdGVyU3dpdGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VDaGFy
YWN0ZXJTd2l0Y2goe30pIGlzICJkZWZhdWx0IgotUEFTUyBzdHJpbmdTd2l0Y2goJycpIGlzICIi
CitQQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMgIu+/vSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdB
JykgaXMgIkEiCiBQQVNTIHN0cmluZ1N3aXRjaCgnYScpIGlzICJhIgogUEFTUyBzdHJpbmdTd2l0
Y2goJzEnKSBpcyAiMSIKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBzdHJpbmdTd2l0Y2goLTEpIGlz
ICJkZWZhdWx0IgogUEFTUyBzdHJpbmdTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0Igog
UEFTUyBzdHJpbmdTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3
aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIG51bWJlclN3aXRjaCgnJykgaXMgImRlZmF1bHQi
CitQQVNTIG51bWJlclN3aXRjaCgn77+9JykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRj
aCgnQScpIGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC03MSw3ICs3MSw3IEBAIFBB
U1MgbnVtYmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBudW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQi
CiBQQVNTIG51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHNwYXJzZU51bWJlclN3
aXRjaCgnJykgaXMgImRlZmF1bHQiCitQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgn77+9JykgaXMg
ImRlZmF1bHQiCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgnQScpIGlzICJkZWZhdWx0IgogUEFT
UyBzcGFyc2VOdW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVy
U3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC04OSw3ICs4OSw3IEBAIFBBU1Mgc3BhcnNlTnVt
YmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBzcGFyc2VOdW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzIC0xMDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAx
MDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNT
IGdlbmVyYWxTd2l0Y2goJycpIGlzICIiCitQQVNTIGdlbmVyYWxTd2l0Y2goJ++/vScpIGlzICLv
v70iCiBQQVNTIGdlbmVyYWxTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgn
YScpIGlzICJhIgogUEFTUyBnZW5lcmFsU3dpdGNoKCcxJykgaXMgIjEiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9jb21tZW50LWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0
CmluZGV4IGIyYTBkZmM3ZGZiZTc0OTQ2NjQ2ZTY1YzVjNWM5Y2I3MTA0ZDY2YzIuLmFlZGMxN2Nl
OTQwY2EzODMxNTRiNDRiMDAzNDUxZDM0ODEzYjNhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGV4dEFyZWFzLmxl
bmd0aCBpcyAxCi1QQVNTIHRleHRBcmVhc1swXS5pbm5lckhUTUwgaXMgIiZsdDshLS0gJmx0Oy90
ZXh0YXJlYSZndDsgLS0mZ3Q7IFRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHRleHRhcmVhIgor
RkFJTCB0ZXh0QXJlYXNbMF0uaW5uZXJIVE1MIHNob3VsZCBiZSAmbHQ7IS0tICZsdDsvdGV4dGFy
ZWEmZ3Q7IC0tJmd0OyBUaGlzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSB0ZXh0YXJlYS4gV2FzICZs
dDshLS0gLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci0KKyAtLT4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgdGV4dGFyZWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2xlc3N0aGFuLXRlcm1pbmF0ZXMtdGFncy1hbmQt
YXR0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4t
dGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKaW5kZXggNjNkODVmZDg0ZmFm
NzNkYTg2YzJkMWIyOTg5ZWI2NzQ1N2Y1YjY4Yy4uZDA2ZTUwODkyOTJiM2E5OGVlMTFmMjY0Zjdk
MzdlMTA4YjE4MmJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVz
c3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1l
eHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTYgUkVQUk86IFNhZmFyaSBoYW5ncyBsb2FkaW5nCiAKIFRl
c3RzIHRoYXQgdGhlIOKAnDzigJ0gY2hhcmFjdGVyIHRlcm1pbmF0ZXMgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMuCiAKLVBBU1M6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbz48YmFyPjwvYmFyPjwv
Zm9vPgotUEFTUzogPGZvbyBiYXI8YmF6PiBwYXJzZWQgYXMgPGZvbyBiYXI9IiI+PGJhej48L2Jh
ej48L2Zvbz4KK0ZBSUw6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbzxiYXI+PC9mb288YmFyPiBp
bnN0ZWFkIG9mIDxmb28+PGJhcj48L2Jhcj48L2Zvbz4KK0ZBSUw6IDxmb28gYmFyPGJhej4gcGFy
c2VkIGFzIDxmb28gYmFyPGJhej0iIj48L2Zvbz4gaW5zdGVhZCBvZiA8Zm9vIGJhcj0iIj48YmF6
PjwvYmF6PjwvZm9vPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNDcxOGFkYWEzNTU1OTA3ZmU5YmRiMTNk
MjkyMDMxM2I0N2ZmMmVjMi4uZTZmNDU0MTI4ODBkMmE0NjMxMjEyZmFkN2VkNDZiMDFhZjIxZTEw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMTQsNCArMTQsMTggQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KIH0KK1BhcnNlSFRNTCBQcm9wZXJ0aWVzOgoreworICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+
CisgICAgZGF0YSA6IHsKKyAgICAgICAgbGVuZ3RoIDogMAorICAgICAgICBzdGFydExpbmUgOiAw
CisgICAgICAgIGVuZExpbmUgOiAwCisgICAgfQorICAgIGNoaWxkcmVuIDogPG9iamVjdD4KKyAg
ICBlbmRUaW1lIDogPG51bWJlcj4KKyAgICB0eXBlIDogNAorICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CisgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+Cit9CiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2ZjE5ZjRiYzE0
YzYuLjlhNzVlNDJlM2ZhNjQ4MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4
cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285
JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawog
UEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydm
b28xMSddIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFT
UyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlz
ICLul4HDv+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFo
ZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxv
Igogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiAKIAogVGVzdGluZyBsb2NhbFN0b3Jh
Z2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMg
IjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0
eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSdd
IGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/
vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9y
YWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJz
dHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFoZWxsbyIK
K1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxvIgogc3Rv
cmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0
aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDNlODFkZjBiYjIyODZiNzIxZDFjNDE3OWQyMzQ3
ZjVmOTc2ZDU5NDcuLmQ5MjVkZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4
dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0IGNvbW1hbmQocykgW01DQ0NdOiBNMSwx
UTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIsMSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMg
MSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIgMiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4
LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxsMyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2
LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENvdWxkIG5vdCBwYXJzZTogTQotQ291bGQg
bm90IHBhcnNlOiBNCitDb3VsZCBub3QgcGFyc2U6IE3vv70KIFBhcnNlZCBhcyAyIGNvbW1hbmQo
cykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4
IDQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUuLjJmNTc3ZWMxOTgxZTg3
OWI3NGM1ZmQ1ZGU4YTE3Y2E5ZmNlNDUwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9k
b20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMjU0LDggKzI1NCw4IEBAIFRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKC4yNysKIFRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBU
aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNl
cHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjog
RE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKK1RocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiDvv70KK1Ro
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAxOiByZ2Io77+9KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMuLjI4MzlhODY2MzJi
MmNmODZlMzdhZTg3YmEwMDZiZjk0YzI1NTk0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBUZXN0IFdlYlNvY2tldCBiYWQg
c3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hhcmFjdGVycy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
c2ltcGxlIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUi
LCAi77+9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIJ
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIKICIpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjZWM0OWI4ZDI0YzI1NzQz
MTA3OTY5OTJmZTBkOGNmMDliZGYzNzAuLjdkYjFlNDc3ODZiYzVkY2NmNWI1OGJjMWRiODM0M2Zk
ZjdlYTY3ZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMDYtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyYWdtZW50IHBhcnNpbmcgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgSFRNTDUgUGFyc2Vy
IGNvZGUgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA2NDUKKworICAgICAgICBBZGRlZCBhIG5ldyBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJz
ZUhUTUxEb2N1bWVudEZyYWdtZW50CisgICAgICAgIGNvZGVwYXRoIHdoaWNoIG9wdGlvbmFsbHkg
Y2FsbHMgdGhyb3VnaCB0byB0aGUgb2xkIGZyYWdtZW50CisgICAgICAgIHBhcnNpbmcgcGF0aCwg
bm93IHJlbmFtZWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudC4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCk6CisgICAgICAgICAtIFVzZSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgaW5zdGVhZAorICAgICAgICAgICBvZiBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKSB0byBtYXRjaCBvdGhlciBjYWxsZXJzCisgICAgICAgICAgIChhbmQgbm90IGRlcGVuZCBv
biBEb2N1bWVudEZyYWdtZW50LmgpLgorICAgICAgICAgLSBVcGRhdGUgY2FsbCB0byBwYXJzZUhU
TUxEb2N1bWVudEZyYWdtZW50IHRvIHVzZSB0aGUgbmV3CisgICAgICAgICAgIEhUTUw1IHBhcnNl
ciBjb2RlcGF0aC4KKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAg
ICAgIC0gQWRkIGEgRklYTUUgYWJvdXQgdGhpcyBob3JyaWJsZSBlbnVtIHBsYWNlbWVudC4KKyAg
ICAgICAgICAgU2FkbHkgdGhpcyB3aWxsIGNhdXNlIGEgd29ybGQtcmVidWlsZCBmb3IgZXZlcnlv
bmUuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVD
b25zdHJ1Y3Rvcik6CisgICAgICAgICAtIFRoZSBtYWluIHB1bXBMZXhlciBmdW5jdGlvbiBoYXMg
Z290dGVuIHRvIGxhcmdlLiAgTW92ZSB0aGUgc2NyaXB0CisgICAgICAgICAgIHJ1bm5pbmcgbG9n
aWMgaW50byB0aGlzIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgIC0gSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgbm8gbV9zY3JpcHRSdW5uZXIgKGZyYWdtZW50IGNhc2UpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0gVXNl
IG5ldyBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAg
LSBOZXcgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG1fc2NyaXB0UnVubmVyIGlz
IG51bGwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJz
aW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAgLSBVc2UgaW5TY3JpcHRFeGVjdXRp
b24oKSBpbnN0ZWFkIG9mIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRVc2VMZWdhY3lQYXJzZXIpOgorICAgICAgICAgLSBIZWxwZXIgZnVuY3Rpb24gdG8gY2hl
Y2sgdGhlIGh0bWw1UGFyc2VyRW5hYmxlZCgpIHNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MNURvY3VtZW50UGFyc2VyOjpwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAg
IC0gUnVuIEhUTUw1RG9jdW1lbnRQYXJzZXIgaW4gZnJhZ21lbnQgbW9kZSwgb3Igb3B0aW9uYWxs
eSBydW4KKyAgICAgICAgICAgdGhlIGxlZ2FjeSBwYXJzZXIgaWYgIWh0bWw1UGFyc2VyRW5hYmxl
ZCgpLgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGh0
bWwvSFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRyZWVCdWls
ZGVyOjpIVE1MNVRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VHJlZUJ1aWxk
ZXI6OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgIC0gSW1wbGVtZW50IHRoZSBG
cmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgaGFjayBmb3IgcGxhdGZvcm0vUGFzdGVib2FyZC4K
KyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxlZ2FjeUhUTUxEb2N1
bWVudEZyYWdtZW50KToKKyAgICAgICAgIC0gUmVuYW1lZCBmcm9tIHBhcnNlSFRNTERvY3VtZW50
RnJhZ21lbnQKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICAtIENhbGwgSFRNTDVEb2N1bWVudFBhcnNlcjo6
cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQpOiBkaXR0by4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UpOiBkaXR0by4KKwogMjAxMC0wNi0yMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBjbGFu
ZysrIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyYzBkZTZmYWM5MDc2NmI2Y2Q5MmJmMzY5NzU2YjVjZDE3MjEwNTRmLi5hM2JhYjdkMjUwMzYx
OGNiN2Q5NjcyNDg0MzdkYzczNTQ3YjkxMTgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjk2NCw2ICsyOTY0LDcgQEAKIAkJQTg0RUJENzgwQ0I4Qzg5
MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0RUJENzcwQ0I4Qzg5MjAwMDc5NjA5IC8q
IEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwICovOyB9OwogCQlBODRFQkQ4MzBDQjhDOTc3MDAw
Nzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg0RUJEODEwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVl
dExpc3QuaCAqLzsgfTsKIAkJQTg0RUJEODQwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVl
dExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg0RUJEODIwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3QuY3BwICovOyB9Owor
CQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTg2NjI5Q0YwOURB
MkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5QzkwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5o
ICovOyB9OwogCQlBODY2MjlEMDA5REEyQjQ4MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNBMDlEQTJC
NDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwICovOyB9OwogCQlBODY2MjlEMTA5REEyQjQ4MDA5
NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODY2MjlDQjA5REEyQjQ3MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50Lmgg
Ki87IH07CkBAIC04NDMwLDYgKzg0MzEsNyBAQAogCQlBODRFQkQ3NzBDQjhDODkyMDAwNzk2MDkg
LyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTg0RUJEODEwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHlsZVNoZWV0TGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyog
SlNTdHlsZVNoZWV0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1N0eWxlU2hlZXRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg1
MzEyM0MxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg1RDdBMkYwODc5RUJBOTAwNkE5
MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBRdWFydHpDb3Jl
LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUu
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlBODY2MjlDOTA5REEy
QjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1VJRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg2NjI5Q0Ew
OURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNVSUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2ODMxLDYgKzE2ODMzLDcgQEAKIAkJCQk1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyog
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCAqLywKIAkJCQk1RDE1RTNBOTBGOUU2QUMxMDA5
RTBFM0YgLyogWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAgKi8sCiAJCQkJNUQxNUUzQUEwRjlF
NkFDMTAwOUUwRTNGIC8qIFhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCAqLywKKwkJCQlBODUzMTIz
QzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGRvbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTQ4
MSw2ICsxOTQ4NCw3IEBACiAJCQkJMUFBODc5OTAxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0
cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTZFQkE4NTExQzlGRjgxMDBCMDQ0NzcgLyog
U1FMRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTI1QTk2NTExQ0EyMzQwMDAzQTIz
QTggLyogSlNTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUE4NTMxMjNEMTFEMDQ3
MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBmN2RmOGY2ZmQ5OTcyZjM4YWYzZmRmNjI5
YTY4NWJmZmNlNWJiNGM1Li4wZDc3ZTRlNGNjODRkNjlhMzE2MDA5NzgxMWNkZmI1ZmZkNWRhM2Fi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMjQsMTIgKzI0LDE4IEBACiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgRG9jdW1l
bnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBD
b250YWluZXJOb2RlKGRvY3VtZW50KQogeworICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKIFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKQEAgLTcwLDQgKzc2LDI2IEBAIFBhc3NSZWZQdHI8Tm9kZT4gRG9jdW1l
bnRGcmFnbWVudDo6Y2xvbmVOb2RlKGJvb2wgZGVlcCkKICAgICByZXR1cm4gY2xvbmUucmVsZWFz
ZSgpOwogfQogCitib29sIERvY3VtZW50RnJhZ21lbnQ6OnNob3VsZFVzZUxlZ2FjeUhUTUxQYXJz
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLT5wYWdlKCkgJiYgZG9jdW1lbnQo
KS0+cGFnZSgpLT5zZXR0aW5ncygpCisgICAgICAgICYmICFkb2N1bWVudCgpLT5wYWdlKCktPnNl
dHRpbmdzKCktPmh0bWw1UGFyc2VyRW5hYmxlZCgpOworfQorCit2b2lkIERvY3VtZW50RnJhZ21l
bnQ6OnBhcnNlSFRNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCit7CisgICAgaWYgKHNob3VsZFVzZUxlZ2FjeUhU
TUxQYXJzZXIoKSkKKyAgICAgICAgcmV0dXJuIHBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJhZ21l
bnQoc291cmNlLCB0aGlzLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKworICAgIEhUTUw1RG9jdW1l
bnRQYXJzZXIgcGFyc2VyKHRoaXMsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgIHBhcnNlci53
cml0ZShzb3VyY2UsIGZhbHNlKTsKKyAgICBwYXJzZXIuZmluaXNoKCk7CisgICAgQVNTRVJUKCFw
YXJzZXIucHJvY2Vzc2luZ0RhdGEoKSk7IC8vIE1ha2Ugc3VyZSB3ZSdyZSBkb25lLiA8cmRhcjov
L3Byb2JsZW0vMzk2MzE1MT4KK30KKworYm9vbCBEb2N1bWVudEZyYWdtZW50OjpwYXJzZVhNTChj
b25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogcGFyZW50LCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK3sKKyAgICByZXR1cm4gcGFyc2VYTUxEb2N1
bWVudEZyYWdtZW50KHNvdXJjZSwgdGhpcywgcGFyZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGU2MjRlZTRjY2VlYmEwODAxNjdiYmUx
NGJkOTFmMjI1MjNhOTNlYzAuLjVlZmYxN2ZjYWMwN2U3NmQ2MjczYzdiM2MzNDdiZGYzYWNjMzg3
Y2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKQEAgLTI1LDYgKzI1LDcgQEAKICNkZWZpbmUgRG9j
dW1lbnRGcmFnbWVudF9oCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAi
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzIsOSArMzMsMTQgQEAgY2xhc3MgRG9jdW1lbnRGcmFnbWVudCA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAorICAgIHZvaWQgcGFyc2VIVE1MKGNvbnN0IFN0cmluZyYs
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7
CisgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBwYXJlbnQsIEZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CisKIHBy
aXZhdGU6CiAgICAgRG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCopOwogCisgICAgYm9vbCBzaG91
bGRVc2VMZWdhY3lIVE1MUGFyc2VyKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIFN0cmluZyBub2Rl
TmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDU5ODdhYzc3NTFmZDZiNzE2YmFhYmQwZGM4YmQ0MTQzOGY5YjcxZDUuLjMzMTFiYjA4YjRl
ZTY2ZDlmM2E5NDRiZDdhY2Y5NGQ1MmJmY2NiZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC00Miw3ICs0Miw2IEBA
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKQEAgLTUyLDcgKzUxLDYgQEAKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJYTUxOYW1l
cy5oIgotI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTkzLDEyICs5MSwxMiBAQCBOb2RlUmFy
ZURhdGEqIEVsZW1lbnQ6OmNyZWF0ZVJhcmVEYXRhKCkKIAogUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBFbGVtZW50OjpjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBt
YXJrdXAsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQog
ewotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICAKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisKICAg
ICBpZiAoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKLSAgICAgICAgcGFyc2VIVE1MRG9j
dW1lbnRGcmFnbWVudChtYXJrdXAsIGZyYWdtZW50LmdldCgpLCBzY3JpcHRpbmdQZXJtaXNzaW9u
KTsKKyAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRNTChtYXJrdXAsIHNjcmlwdGluZ1Blcm1pc3Np
b24pOwogICAgIGVsc2UgewotICAgICAgICBpZiAoIXBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudCht
YXJrdXAsIGZyYWdtZW50LmdldCgpLCB0aGlzLCBzY3JpcHRpbmdQZXJtaXNzaW9uKSkKKyAgICAg
ICAgaWYgKCFmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCB0aGlzLCBzY3JpcHRpbmdQZXJtaXNz
aW9uKSkKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvcGFnYXRlIGEgc3ludGF4
IGVycm9yIGV4Y2VwdGlvbiBvdXQgaGVyZS4KICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCBmYzcyOThhNzMwZGM4ZTY4MTc1MzAwYjhiNWY4ZmZiNGQxNjg4N2JiLi45YTg2MzQ3
ZDVhM2VlYWQ3NTM3NjI4NDZkODdlZjA5ZDdiNjE1MmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNiw3ICsyNiw3IEBA
CiAjZGVmaW5lIEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJN
YXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgorI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmggYi9X
ZWJDb3JlL2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oCmluZGV4IGNlMjQ2NGU3OTNiMmZkNjhk
MzE4OWY4NjZiOTYwNWUzZGU5ZWNjMGYuLmYyOGYxODI4MWQ0NDJjMjVhYTE1MzcyZDI4ZDcyNDMx
MTMyNDg4ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmgK
KysrIGIvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaApAQCAtNDgsOCArNDgsNiBA
QCBlbnVtIE1hcHBlZEF0dHJpYnV0ZUVudHJ5IHsKICAgICAsIGVMYXN0RW50cnkKIH07CiAKLWVu
dW0gRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHsgRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2Vk
LCBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgfTsKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlci5oCmluZGV4IGNiOWU2MzI2NGVkNGQ3YjBmNTUyNjcwYTQwZjBiMTYwZDZlYjEy
MDIuLmJiN2QyNGIwYzEzOTdkOWRmMGYyZTM1NDUwM2Q0ZWEzZjYxNzIzNTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVk
ZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKKyNp
bmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMmExYmFjNjA5M2Q3ZWRhYzk4ZDFlZWIzMWU4ZWVmNzY4
OGY3NWZiNC4uZWExN2JmYWIxYTMxNjM3NWVkMWVlNmMzNmYyYmNmMWQwMTk1YjliMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xMzgzLDYgKzEzODMsOCBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5nKCkKICAgICAgICAgZW5kKCk7
CiB9CiAKKy8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgcG9zc2libGUgdG8gaW1wbGVt
ZW50IHVzaW5nIHRoZSBEb2N1bWVudFBhcnNlcgorLy8gQVBJLCBpbnN0ZWFkIG9mIG5lZWRpbmcg
dG8gZ3JhYiBhdCBsaWJ4bWwyIHN0YXRlIGRpcmVjdGx5LgogYm9vbCBwYXJzZVhNTERvY3VtZW50
RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBjaHVuaywgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQs
IEVsZW1lbnQqIHBhcmVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Bl
cm1pc3Npb24pCiB7CiAgICAgaWYgKCFjaHVuay5sZW5ndGgoKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuaCBiL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAppbmRleCBmNjRm
YjYxZWMyZjMyMTg3NDM1NzQzZDg1MGI5YzQ2NDY3OGNjZjg3Li41NDI4MDk3NmM0NzkzMjkzMmQ1
ODdlOGIzMjkyMjI1ZTUwNWY1NDQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCkBAIC0yNiw4ICsyNiw4IEBACiAjaWZu
ZGVmIG1hcmt1cF9oCiAjZGVmaW5lIG1hcmt1cF9oCiAKKyNpbmNsdWRlICJGcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJIVE1MSW50ZXJjaGFuZ2UuaCIKLSNpbmNsdWRl
ICJNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1
bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKaW5k
ZXggODljY2Y1NzkwOTNjMTA5OTljMDk1OTI1OTgyNDk0YTlhN2RiYmE3NS4uN2UzZDhmMTI4MzQx
NmVkZjUyYTI3MDM4OGNjZTBiMzFiNzc4NmU3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUw1RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFy
c2VyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIgLy8gT25seSBmb3IgaXNMYXlvdXRUaW1lckFjdGl2ZQpAQCAtMzQsNyArMzUsNiBA
QAogI2luY2x1ZGUgIkhUTUw1U2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVp
bGRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIk5vZGUuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRvci5oIgogI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgpAQCAtOTUsOCArOTUsNyBAQCBzdGF0aWMgaW50IHBhcnNlckNodW5rU2l6
ZShQYWdlKiBwYWdlKQogfQogCiBIVE1MNURvY3VtZW50UGFyc2VyOjpIVE1MNURvY3VtZW50UGFy
c2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQotICAgIDogRG9j
dW1lbnRQYXJzZXIoKQotICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCiAgICAgLCBtX2xleGVyKG5ldyBIVE1MNUxleGVyKQogICAgICwgbV9zY3Jp
cHRSdW5uZXIobmV3IEhUTUw1U2NyaXB0UnVubmVyKGRvY3VtZW50LCB0aGlzKSkKICAgICAsIG1f
dHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1MNVRyZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3Vt
ZW50LCByZXBvcnRFcnJvcnMpKQpAQCAtMTA5LDYgKzEwOCwyMiBAQCBIVE1MNURvY3VtZW50UGFy
c2VyOjpIVE1MNURvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVw
b3J0RXJybwogICAgIGJlZ2luKCk7CiB9CiAKKy8vIEZJWE1FOiBNZW1iZXIgdmFyaWFibGVzIHNo
b3VsZCBiZSBncm91cGVkIGludG8gc2VsZi1pbml0aWFsaXppbmcgc3RydWN0cyB0bworLy8gbWlu
aW1pemUgY29kZSBkdXBsaWNhdGlvbiBiZXR3ZWVuIHRoZXNlIGNvbnN0cnVjdG9ycy4KK0hUTUw1
RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJh
Z21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQor
ICAgIDogbV9kb2N1bWVudChmcmFnbWVudC0+ZG9jdW1lbnQoKSkKKyAgICAsIG1fbGV4ZXIobmV3
IEhUTUw1TGV4ZXIpCisgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRNTDVUcmVlQnVpbGRl
cihtX2xleGVyLmdldCgpLCBmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbikpCisgICAgLCBt
X2VuZFdhc0RlbGF5ZWQoZmFsc2UpCisgICAgLCBtX3dyaXRlTmVzdGluZ0xldmVsKDApCisgICAg
Ly8gRklYTUU6IFBhcnNlciB5aWVsZGluZyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBjbGFzcy4KKyAg
ICAsIG1fcGFyc2VyVGltZUxpbWl0KDApCisgICAgLCBtX3BhcnNlckNodW5rU2l6ZSgwKQorICAg
ICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1MNURvY3VtZW50UGFyc2VyOjpj
b250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCit7CisgICAgYmVnaW4oKTsKK30KKwogSFRNTDVE
b2N1bWVudFBhcnNlcjo6fkhUTUw1RG9jdW1lbnRQYXJzZXIoKQogewogICAgIC8vIEZJWE1FOiBX
ZSdkIGxpa2UgdG8gQVNTRVJUIHRoYXQgbm9ybWFsIG9wZXJhdGlvbiBvZiB0aGlzIGNsYXNzIGNs
ZWFycwpAQCAtMTc3LDYgKzE5MiwxOCBAQCBpbmxpbmUgYm9vbCBIVE1MNURvY3VtZW50UGFyc2Vy
OjpzaG91bGRDb250aW51ZVBhcnNpbmcoUHVtcFNlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNl
ZFRyZWVDb25zdHJ1Y3RvcigpCit7CisgICAgQVNTRVJUKG1fdHJlZUNvbnN0cnVjdG9yLT5pc1Bh
dXNlZCgpKTsKKworICAgIGludCBzY3JpcHRTdGFydExpbmUgPSAwOworICAgIFJlZlB0cjxFbGVt
ZW50PiBzY3JpcHRFbGVtZW50ID0gbV90cmVlQ29uc3RydWN0b3ItPnRha2VTY3JpcHRUb1Byb2Nl
c3Moc2NyaXB0U3RhcnRMaW5lKTsKKyAgICAvLyBXZSB3aWxsIG5vdCBoYXZlIGEgc2NyaXB0UnVu
bmVyIHdoZW4gcGFyc2luZyBhIERvY3VtZW50RnJhZ21lbnQuCisgICAgaWYgKCFtX3NjcmlwdFJ1
bm5lcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fc2NyaXB0UnVubmVyLT5l
eGVjdXRlKHNjcmlwdEVsZW1lbnQucmVsZWFzZSgpLCBzY3JpcHRTdGFydExpbmUpOworfQorCiB2
b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkK
IHsKICAgICBBU1NFUlQoIW1fcGFyc2VyU3RvcHBlZCk7CkBAIC0yMDMsMTQgKzIzMCwxMiBAQCB2
b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkK
ICAgICAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBzY3JpcHQo
KSkKICAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPnNldEV2ZW50SGFuZGxlckxpbmVOdW1i
ZXIoMCk7CiAKKyAgICAgICAgLy8gVGhlIHBhcnNlciB3aWxsIHBhdXNlIGl0c2VsZiB3aGVuIHdh
aXRpbmcgb24gYSBzY3JpcHQgdG8gbG9hZCBvciBydW4uCiAgICAgICAgIGlmICghbV90cmVlQ29u
c3RydWN0b3ItPmlzUGF1c2VkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAv
LyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRzZWxmIHdoZW4gd2FpdGluZyBvbiBhIHNjcmlwdCB0
byBsb2FkIG9yIHJ1bi4KLSAgICAgICAgLy8gU2NyaXB0UnVubmVyIGV4ZWN1dGVzIHNjcmlwdHMg
YXQgdGhlIHJpZ2h0IHRpbWVzIGFuZCBoYW5kbGVzIHJlZW50cmFuY3kuCi0gICAgICAgIGludCBz
Y3JpcHRTdGFydExpbmUgPSAwOwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVu
dCA9IG1fdHJlZUNvbnN0cnVjdG9yLT50YWtlU2NyaXB0VG9Qcm9jZXNzKHNjcmlwdFN0YXJ0TGlu
ZSk7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nID0gbV9zY3JpcHRSdW5uZXIt
PmV4ZWN1dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNlKCksIHNjcmlwdFN0YXJ0TGluZSk7CisgICAg
ICAgIC8vIElmIHdlJ3JlIHBhdXNlZCB3YWl0aW5nIGZvciBhIHNjcmlwdCwgd2UgdHJ5IHRvIGV4
ZWN1dGUgc2NyaXB0cyBiZWZvcmUgY29udGludWluZy4KKyAgICAgICAgYm9vbCBzaG91bGRDb250
aW51ZVBhcnNpbmcgPSBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCk7CiAgICAg
ICAgIG1fdHJlZUNvbnN0cnVjdG9yLT5zZXRQYXVzZWQoIXNob3VsZENvbnRpbnVlUGFyc2luZyk7
CiAgICAgICAgIGlmICghc2hvdWxkQ29udGludWVQYXJzaW5nKQogICAgICAgICAgICAgYnJlYWs7
CkBAIC0zNDEsOCArMzY2LDE3IEBAIGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZmluaXNoV2Fz
Q2FsbGVkKCkKICAgICByZXR1cm4gbV9pbnB1dC5pc0Nsb3NlZCgpOwogfQogCisvLyBUaGlzIGZ1
bmN0aW9uIGlzIHZpcnR1YWwgYW5kIGp1c3QgZm9yIHRoZSBEb2N1bWVudFBhcnNlciBpbnRlcmZh
Y2UuCiBpbnQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0aW5nU2NyaXB0KCkgY29uc3QKIHsK
KyAgICByZXR1cm4gaW5TY3JpcHRFeGVjdXRpb24oKTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBp
cyBub24tdmlydHVhbCBhbmQgdXNlZCB0aHJvdWdob3V0IHRoZSBpbXBsZW1lbnRhdGlvbi4KK2Jv
b2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24oKSBjb25zdAoreworICAg
IGlmICghbV9zY3JpcHRSdW5uZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bV9zY3JpcHRSdW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCk7CiB9CiAKQEAgLTM2OCw3ICs0MDIs
NyBAQCBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25z
dAogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4
ZWN1dGlvbigpCiB7Ci0gICAgQVNTRVJUKCFtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRp
b24oKSk7CisgICAgQVNTRVJUKCFpblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICBBU1NFUlQoIW1f
dHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKIAogICAgIHB1bXBMZXhlcklmUG9zc2libGUo
QWxsb3dZaWVsZCk7CkBAIC0zOTYsNyArNDMwLDcgQEAgYm9vbCBIVE1MNURvY3VtZW50UGFyc2Vy
OjpzaG91bGRMb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjKGNvbnN0IEF0b21pY1N0cmluZyYgc3IK
IAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7Ci0gICAgQVNTRVJUKG1fc2NyaXB0UnVubmVyLT5pblNj
cmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQoaW5TY3JpcHRFeGVjdXRpb24oKSk7CiAgICAg
aWYgKCFtX2RvY3VtZW50LT5mcmFtZSgpKQogICAgICAgICByZXR1cm47CiAgICAgSW5zZXJ0aW9u
UG9pbnRSZWNvcmQgc2F2ZWRJbnNlcnRpb25Qb2ludChtX2lucHV0KTsKQEAgLTQwNSw2ICs0Mzks
NyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkKIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CisgICAgQVNTRVJU
KG1fc2NyaXB0UnVubmVyKTsKICAgICAvLyBJZ25vcmUgY2FsbHMgdW5sZXNzIHdlIGhhdmUgYSBz
Y3JpcHQgYmxvY2tpbmcgdGhlIHBhcnNlciB3YWl0aW5nCiAgICAgLy8gZm9yIGl0cyBvd24gbG9h
ZC4gIE90aGVyd2lzZSB0aGlzIG1heSBiZSBhIGxvYWQgY2FsbGJhY2sgZnJvbQogICAgIC8vIENh
Y2hlZFJlc291cmNlOjphZGRDbGllbnQgYmVjYXVzZSB0aGUgc2NyaXB0IHdhcyBhbHJlYWR5IGlu
IHRoZSBjYWNoZS4KQEAgLTQxMyw3ICs0NDgsNyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKICAgICAgICAg
QVNTRVJUKG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBBU1NFUlQoIW1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlv
bigpKTsKKyAgICBBU1NFUlQoIWluU2NyaXB0RXhlY3V0aW9uKCkpOwogICAgIEFTU0VSVChtX3Ry
ZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7CiAgICAgLy8gTm90ZTogV2Ugb25seSBldmVyIHdh
aXQgb24gb25lIHNjcmlwdCBhdCBhIHRpbWUsIHNvIHdlIGFsd2F5cyBrbm93IHRoaXMKICAgICAv
LyBpcyB0aGUgb25lIHdlIHdlcmUgd2FpdGluZyBvbiBhbmQgY2FuIHVuLXBhdXNlIHRoZSB0cmVl
IGJ1aWxkZXIuCkBAIC00MjYsNiArNDYxLDkgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiAKIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKQog
eworICAgIC8vIERvY3VtZW50IG9ubHkgY2FsbHMgdGhpcyB3aGVuIHRoZSBEb2N1bWVudCBvd25z
IHRoZSBEb2N1bWVudFBhcnNlcgorICAgIC8vIHNvIHRoaXMgd2lsbCBub3QgYmUgY2FsbGVkIGlu
IHRoZSBEb2N1bWVudEZyYWdtZW50IGNhc2UuCisgICAgQVNTRVJUKG1fc2NyaXB0UnVubmVyKTsK
ICAgICAvLyBJZ25vcmUgY2FsbHMgdW5sZXNzIHdlIGhhdmUgYSBzY3JpcHQgYmxvY2tpbmcgdGhl
IHBhcnNlciB3YWl0aW5nIG9uIGEKICAgICAvLyBzdHlsZXNoZWV0IGxvYWQuICBPdGhlcndpc2Ug
d2UgYXJlIGN1cnJlbnRseSBwYXJzaW5nIGFuZCB0aGlzCiAgICAgLy8gaXMgYSByZS1lbnRyYW50
IGNhbGwgZnJvbSBlbmNvdW50ZXJpbmcgYSA8LyBzdHlsZT4gdGFnLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3Vt
ZW50UGFyc2VyLmgKaW5kZXggNTgyZTRkOTYxMzcyMDdkZTg1NjFjYjU3NjJiOWY5YTU3MzNhYjI3
Ny4uYWJjMWFhOTljYzk5YmU4ZDIyYTNlZDFlNGM0MmM4NjhjYmVlY2Y4ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TDVEb2N1bWVudFBhcnNlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEhUTUw1VG9rZW5p
emVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXJI
b3N0LmgiCiAjaW5jbHVkZSAiSFRNTDVUb2tlbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgpAQCAtMzYsMTggKzM3LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRNTERvY3VtZW50Owot
Y2xhc3MgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFz
cyBIVE1MNVNjcmlwdFJ1bm5lcjsKIGNsYXNzIEhUTUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1M
NVByZWxvYWRTY2FubmVyOworY2xhc3MgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNz
IFNjcmlwdENvbnRyb2xsZXI7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFzcyBIVE1M
NURvY3VtZW50UGFyc2VyIDogIHB1YmxpYyBEb2N1bWVudFBhcnNlciwgSFRNTDVTY3JpcHRSdW5u
ZXJIb3N0LCBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFRo
ZXNlIGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFkZSBwcml2YXRlIGFuZCByZXBsYWNlZCBieSBj
cmVhdGUoKSBtZXRob2RzLgogICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50Kiwg
Ym9vbCByZXBvcnRFcnJvcnMpOworICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFn
bWVudCosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgdmlydHVhbCB+SFRNTDVE
b2N1bWVudFBhcnNlcigpOwogCiAgICAgLy8gRG9jdW1lbnRQYXJzZXIKQEAgLTE3Miw2ICsxNzcs
NyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFB1bXBTZXNzaW9uOwogICAgIGlubGluZSBib29s
IHNob3VsZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYpOworICAgIGJvb2wgcnVuU2NyaXB0
c0ZvclBhdXNlZFRyZWVDb25zdHJ1Y3RvcigpOwogCiAgICAgZW51bSBTeW5jaHJvbm91c01vZGUg
ewogICAgICAgICBBbGxvd1lpZWxkLApAQCAtMTg0LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIGF0dGVtcHRUb0VuZCgpOwogICAgIHZvaWQgZW5kSWZEZWxheWVkKCk7CisKKyAgICBi
b29sIGluU2NyaXB0RXhlY3V0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCBpbldyaXRlKCkgY29uc3Qg
eyByZXR1cm4gbV93cml0ZU5lc3RpbmdMZXZlbCA+IDA7IH0KIAogICAgIFNjcmlwdENvbnRyb2xs
ZXIqIHNjcmlwdCgpIGNvbnN0OwpAQCAtMTkzLDcgKzIwMSw5IEBAIHByaXZhdGU6CiAgICAgLy8g
V2UgaG9sZCBtX3Rva2VuIGhlcmUgYmVjYXVzZSBpdCBtaWdodCBiZSBwYXJ0aWFsbHkgY29tcGxl
dGUuCiAgICAgSFRNTDVUb2tlbiBtX3Rva2VuOwogCi0gICAgSFRNTERvY3VtZW50KiBtX2RvY3Vt
ZW50OworICAgIC8vIFdlIG11c3Qgc3VwcG9ydCBwYXJzaW5nIGludG8gYSBEb2N1bWVudCogYW5k
IG5vdCBqdXN0IEhUTUxEb2N1bWVudCoKKyAgICAvLyB0byBzdXBwb3J0IERvY3VtZW50RnJhZ21l
bnQgKHdoaWNoIGhhcyBhIERvY3VtZW50KikuCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAg
ICAgT3duUHRyPEhUTUw1TGV4ZXI+IG1fbGV4ZXI7CiAgICAgT3duUHRyPEhUTUw1U2NyaXB0UnVu
bmVyPiBtX3NjcmlwdFJ1bm5lcjsKICAgICBPd25QdHI8SFRNTDVUcmVlQnVpbGRlcj4gbV90cmVl
Q29uc3RydWN0b3I7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5j
cHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAKaW5kZXggMzMyMDM5MzRjMTYw
ZmNjNmJkYWNkMDg4ZjA1ODgyYTRjMGM2MzZhZC4uMzY0ZWVlMTBhYTYxMmUyZWFkY2M2YWQ0N2M4
MjhlZjYwOGNiNzIyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcApAQCAtMjYsMTQgKzI2
LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5o
IgogCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUw1TGV4ZXIuaCIKICNpbmNsdWRlICJI
VE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTERv
Y3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVnYWN5
SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgpAQCAtNTMsNiArNTQsMjIgQEAgSFRNTDVU
cmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgSFRNTERvY3Vt
ZW50KiBkb2N1bWVudCwgYm8KICAgICAsIG1fbGVnYWN5VHJlZUNvbnN0cnVjdG9yKG5ldyBMZWdh
Y3lIVE1MVHJlZUNvbnN0cnVjdG9yKGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQogICAgICwgbV9s
YXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQog
ICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJW
YWx1ZSkKKyAgICAsIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKEZyYWdtZW50U2NyaXB0
aW5nQWxsb3dlZCkKK3sKK30KKworLy8gRklYTUU6IE1lbWJlciB2YXJpYWJsZXMgc2hvdWxkIGJl
IGdyb3VwZWQgaW50byBzZWxmLWluaXRpYWxpemluZyBzdHJ1Y3RzIHRvCisvLyBtaW5pbWl6ZSBj
b2RlIGR1cGxpY2F0aW9uIGJldHdlZW4gdGhlc2UgY29uc3RydWN0b3JzLgorSFRNTDVUcmVlQnVp
bGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiBsZXhlciwgRG9jdW1lbnRGcmFnbWVu
dCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNz
aW9uKQorICAgIDogbV9kb2N1bWVudChmcmFnbWVudC0+ZG9jdW1lbnQoKSkKKyAgICAsIG1fcmVw
b3J0RXJyb3JzKGZhbHNlKSAvLyBGSVhNRTogV2h5IG5vdCByZXBvcnQgZXJyb3JzIGluIGZyYWdt
ZW50cz8KKyAgICAsIG1faXNQYXVzZWQoZmFsc2UpCisgICAgLCBtX2luc2VydGlvbk1vZGUoSW5p
dGlhbCkKKyAgICAsIG1fbGV4ZXIobGV4ZXIpCisgICAgLCBtX2xlZ2FjeVRyZWVDb25zdHJ1Y3Rv
cihuZXcgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3RvcihmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlz
c2lvbikpCisgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRM
aW5lTnVtYmVyVmFsdWUpCisgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRp
YWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24oc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKIH0KIApAQCAtMTc5LDEwICsxOTYsMTcgQEAgUGFz
c1JlZlB0cjxOb2RlPiBIVE1MNVRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2FjeVBhcnNlcihI
VE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9sZXhlci0+c2V0
U3RhdGUoYWRqdXN0ZWRMZXhlclN0YXRlKG1fbGV4ZXItPnN0YXRlKCksIG9sZFN0eWxlVG9rZW4u
dGFnTmFtZSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkpOwogICAgIH0gZWxzZSBpZiAodG9rZW4udHlw
ZSgpID09IEhUTUw1VG9rZW46OkVuZFRhZykgewotICAgICAgICBpZiAob2xkU3R5bGVUb2tlbi50
YWdOYW1lID09IHNjcmlwdFRhZyAmJiBpbnNlcnRpb25Nb2RlKCkgIT0gQWZ0ZXJGcmFtZXNldCkg
eworICAgICAgICBpZiAob2xkU3R5bGVUb2tlbi50YWdOYW1lID09IHNjcmlwdFRhZykgewogICAg
ICAgICAgICAgaWYgKG1fbGFzdFNjcmlwdEVsZW1lbnQpIHsKICAgICAgICAgICAgICAgICBBU1NF
UlQobV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSAhPSB1bmluaXRpYWxpemVkTGluZU51bWJl
clZhbHVlKTsKLSAgICAgICAgICAgICAgICBoYW5kbGVTY3JpcHRFbmRUYWcobV9sYXN0U2NyaXB0
RWxlbWVudC5nZXQoKSwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSk7CisgICAgICAgICAg
ICAgICAgaWYgKG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID09IEZyYWdtZW50U2NyaXB0
aW5nTm90QWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBh
IGhvcnJpYmxlIGhhY2sgZm9yIHBsYXRmb3JtL1Bhc3RlYm9hcmQuCisgICAgICAgICAgICAgICAg
ICAgIC8vIENsZWFyIHRoZSA8c2NyaXB0PiB0YWcgd2hlbiB1c2luZyB0aGUgUGFyc2VyIHRvIGNy
ZWF0ZQorICAgICAgICAgICAgICAgICAgICAvLyBhIERvY3VtZW50RnJhZ21lbnQgZm9yIHBhc3Rp
bmcgc28gdGhhdCBqYXZhc2NyaXB0IGNvbnRlbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gZG9l
cyBub3Qgc2hvdyB1cCBpbiBwYXN0ZWQgSFRNTC4KKyAgICAgICAgICAgICAgICAgICAgbV9sYXN0
U2NyaXB0RWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGluc2VydGlvbk1vZGUoKSAhPSBBZnRlckZyYW1lc2V0KQorICAgICAgICAgICAgICAgICAg
ICBoYW5kbGVTY3JpcHRFbmRUYWcobV9sYXN0U2NyaXB0RWxlbWVudC5nZXQoKSwgbV9sYXN0U2Ny
aXB0RWxlbWVudFN0YXJ0TGluZSk7CiAgICAgICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVu
dCA9IDA7CiAgICAgICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSA9IHVu
aW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1
aWxkZXIuaAppbmRleCA2Zjk0Zjg4MjAzMWQ1NTZkY2NiN2FlYmYzZmRhNThiY2Y3M2MwNTI2Li5k
MWZmOTYwYWU3Y2MyMzZhODg0OTM2MzIyNzAzYTg3MDZmYmRjZGM2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVC
dWlsZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSFRNTDVUcmVlQnVpbGRlcl9oCiAj
ZGVmaW5lIEhUTUw1VHJlZUJ1aWxkZXJfaAogCisjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTM2LDYgKzM3LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBEb2N1bWVudEZyYWdt
ZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTDVUb2tlbjsKQEAg
LTQ1LDcgKzQ3LDkgQEAgY2xhc3MgTm9kZTsKIAogY2xhc3MgSFRNTDVUcmVlQnVpbGRlciA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFJlcGxhY2UgY29uc3Ry
dWN0b3JzIHdpdGggY3JlYXRlKCkgZnVuY3Rpb25zIHJldHVybmluZyBQYXNzT3duUHRycwogICAg
IEhUTUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciosIEhUTUxEb2N1bWVudCosIGJvb2wgcmVwb3J0
RXJyb3JzKTsKKyAgICBIVE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqLCBEb2N1bWVudEZyYWdt
ZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICB+SFRNTDVUcmVlQnVpbGRl
cigpOwogCiAgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCBwYXVzZWQpIHsgbV9pc1BhdXNlZCA9IHBh
dXNlZDsgfQpAQCAtMTA1LDYgKzEwOSwxMSBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEVsZW1l
bnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vz
c2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNlci4KICAgICBpbnQgbV9zY3JpcHRUb1Byb2Nl
c3NTdGFydExpbmU7IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVyIG9mIHRoZSBzY3JpcHQgdGFnIG5l
ZWRpbmcgcHJvY2Vzc2luZy4KKworICAgIC8vIEZJWE1FOiBGcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24gaXMgYSBIQUNLIGZvciBwbGF0Zm9ybS9QYXN0ZWJvYXJkLgorICAgIC8vIEZyYWdtZW50
U2NyaXB0aW5nTm90QWxsb3dlZCBjYXVzZXMgdGhlIFBhcnNlciB0byByZW1vdmUgY2hpbGRyZW4K
KyAgICAvLyBmcm9tIDxzY3JpcHQ+IHRhZ3MgKHNvIGphdmFzY3JpcHQgZG9lc24ndCBzaG93IHVw
IGluIHBhc3RlcykuCisgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fZnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNw
cAppbmRleCAyN2YwMTYzNGZkMjkwMDM2NjA5MGE3MjljZTA5ODEzMDJhZGEwODdmLi40YmM0Njdh
ZGNlN2Q4ZTY0ODM5NzRlNmI1MDQ5NzExNTVlMzcxM2I0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
UGFyc2VyLmNwcApAQCAtMjA5OSw3ICsyMDk5LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6
OnNldFNyYyhjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICBtX3NyYyA9IHNvdXJj
ZTsKIH0KIAotdm9pZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgc291
cmNlLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCit2b2lkIHBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJh
Z21lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKICAgICBI
VE1MRG9jdW1lbnRQYXJzZXIgcGFyc2VyKGZyYWdtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsK
ICAgICBwYXJzZXIuc2V0Rm9yY2VTeW5jaHJvbm91cyh0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuaAppbmRleCBiNmRlZGYyODQ1Mjg1YTQzMDkwYjg5MGZmZjM4MTc4YjViNDJjNTc1Li4z
NzFhMDdmOGVkZTg3NDVhN2Y5OGJiODFiNzJjNmViOWU1YWRmOTM3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudFBhcnNlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAi
TWFwcGVkQXR0cmlidXRlRW50cnkuaCIKKyNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24uaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRT
dHJpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNDQwLDcgKzQ0MCw3IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPFByZWxvYWRTY2FubmVyPiBtX3ByZWxvYWRTY2FubmVyOwogfTsKIAotdm9p
ZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21l
bnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93
ZWQpOwordm9pZCBwYXJzZUxlZ2FjeUhUTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYs
IERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVu
dFNjcmlwdGluZ0FsbG93ZWQpOwogCiBVQ2hhciBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFy
Kik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDA1OWYwYTFmODllZWIyYjc1ZmM2MzdjYjgzNzcz
NDI0OTI1NWViNzQuLjA3MjY5Nzc3NzQxZGU1MGI5YmMyYmJiZGU0ODg1ODQ4NjhiNTEyN2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcApAQCAtMzksMTMgKzM5LDExIEBACiAjaW5jbHVkZSAiSFRNTEVsZW1l
bnRGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgotI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC01NDksMTMgKzU0NywxMyBAQCBF
bGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYg
d2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
cmV0dXJuVmFsdWUpOyAKIH0KIAotdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1M
KGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3
aGVyZSwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKICAgICBpZiAoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKLSAg
ICAgICAgIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoaHRtbCwgZnJhZ21lbnQuZ2V0KCkpOwor
ICAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRNTChtYXJrdXApOwogICAgIGVsc2UgewotICAgICAg
ICBpZiAoIXBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBmcmFnbWVudC5nZXQoKSwgdGhp
cykpCisgICAgICAgIGlmICghZnJhZ21lbnQtPnBhcnNlWE1MKG1hcmt1cCwgdGhpcykpCiAgICAg
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBhIHN5bnRheCBlcnJvciBleGNl
cHRpb24gb3V0IGhlcmUuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaCBiL1dlYkNvcmUvaHRtbC9M
ZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yLmgKaW5kZXggYWIxZjVhYWZkZGYwNGY5YTMyMDYyN2Ni
ZjNlY2NlMzRlMTJlNjE1Zi4uYzE1NjA2YjQ0YTFjMGRjM2ZkMTRmNzQ5NmUzZmZmNzI3ZmM5MDNk
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaAor
KysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oCkBAIC0yNCw4ICsy
NCw4IEBACiAjaWZuZGVmIEhUTUxQYXJzZXJfaAogI2RlZmluZSBIVE1MUGFyc2VyX2gKIAorI2lu
Y2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJFcnJvckNvZGVzLmgiCi0jaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKICNpbmNs
dWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAw
M2VkZTAzNDdiNjI4ZmZlNDY3MWExZmQ5ZmQ3NjAwMjU4MjMxNDkwLi5iYmE3Y2FjNTI0ZGZmZjQ5
MDc0N2JjZTEyY2NiNGZjYjg3OWRiMzkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW0KQEAgLTM3OCw2ICszNzgsMTAgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQ
YXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlAKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoW0hUTUxTdHJpbmcgbGVuZ3RoXSAhPSAw
KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGlz
IGEgSEFDSyBhbmQgc2hvdWxkCisgICAgICAgICAgICAvLyBiZSByZW1vdmVkIG9yIHJlcGxhY2Vk
IHdpdGggYW4gZW51bSB3aXRoIGEgYmV0dGVyIG5hbWUuCisgICAgICAgICAgICAvLyBGcmFnbWVu
dFNjcmlwdGluZ05vdEFsbG93ZWQgY2F1c2VzIHRoZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVu
CisgICAgICAgICAgICAvLyBvZiA8c2NyaXB0PiB0YWdzIChzbyBqYXZhc2NyaXB0IGRvZXNuJ3Qg
c2hvdyB1cCBpbiBwYXN0ZXMpLgogICAgICAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGZyYW1lLT5kb2N1bWVudCgpLCBI
VE1MU3RyaW5nLCAiIiwgRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkKTsKICAgICAgICAgICAg
IGlmIChmcmFnbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAgYi9XZWJDb3JlL3ht
bC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCA5N2I1NDY2Nzk4ZjExYjZiN2RiYTJmZTMxYTI4NmFk
OWVjM2U4MzcwLi5jOTVhNDgzOGE1NDUxYjVmZGYwYmU5NWQwMmNmNzUwMzQxOTNlYjViIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmNwcApAQCAtMzMsMTMgKzMzLDEyIEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIgLy8gZm9yIHBhcnNlSFRNTERvY3VtZW50
RnJhZ21lbnQKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlRleHRSZXNvdXJjZURlY29kZXIuaCIKLSNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgorCiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTEwMCwxNCArOTks
MTQgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG9jdW1lbnRG
cm9tU291cmNlKGNvbnN0IFN0cmluZyYgc291cmMKIAogc3RhdGljIGlubGluZSBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgc291
cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHNvdXJjZU1JTUVUeXBlLCBEb2N1bWVudCogb3V0cHV0
RG9jKQogewotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50
RnJhZ21lbnQ6OmNyZWF0ZShvdXRwdXREb2MpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IG91dHB1dERvYy0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogCiAgICAg
aWYgKHNvdXJjZU1JTUVUeXBlID09ICJ0ZXh0L2h0bWwiKQotICAgICAgICBwYXJzZUhUTUxEb2N1
bWVudEZyYWdtZW50KHNvdXJjZVN0cmluZywgZnJhZ21lbnQuZ2V0KCkpOworICAgICAgICBmcmFn
bWVudC0+cGFyc2VIVE1MKHNvdXJjZVN0cmluZyk7CiAgICAgZWxzZSBpZiAoc291cmNlTUlNRVR5
cGUgPT0gInRleHQvcGxhaW4iKQogICAgICAgICBmcmFnbWVudC0+YWRkQ2hpbGQoVGV4dDo6Y3Jl
YXRlKG91dHB1dERvYywgc291cmNlU3RyaW5nKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGJvb2wg
c3VjY2Vzc2Z1bFBhcnNlID0gcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KHNvdXJjZVN0cmluZywg
ZnJhZ21lbnQuZ2V0KCksIG91dHB1dERvYy0+ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICBi
b29sIHN1Y2Nlc3NmdWxQYXJzZSA9IGZyYWdtZW50LT5wYXJzZVhNTChzb3VyY2VTdHJpbmcsIG91
dHB1dERvYy0+ZG9jdW1lbnRFbGVtZW50KCkpOwogICAgICAgICBpZiAoIXN1Y2Nlc3NmdWxQYXJz
ZSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59334</attachid>
            <date>2010-06-21 21:51:13 -0700</date>
            <delta_ts>2010-06-21 22:12:28 -0700</delta_ts>
            <desc>Hopefully fix the EWS bots</desc>
            <filename>bug-40645-20100621215112.patch</filename>
            <type>text/plain</type>
            <size>48551</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4OWExZDU3OWYwYWIwNzJlNmI1MmFjNGQwMGQxZmU1NDBmMGIxMzZjLi5mMTRkMTRm
NzExOGY2ZjIxZWMxZjhhY2M0NGEzNWNjMmE5NDMxNDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGcmFnbWVu
dCBwYXJzaW5nIG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIEhUTUw1IFBhcnNlciBjb2RlIHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjQ1CisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgIC0gXDAgaXMgbm93IGNvbnZlcnRlZCB0byBcdUZGRkQgcGVyIEhUTUw1
LgorICAgICAgICAqIGZhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgLSA8dGV4dGFyZWE+IGlzIHBhcnNlZCBpbiB0aGUgUkNEQVRBIHN0YXRl
LCB3aGljaCBtZWFucworICAgICAgICAgICB0aGF0IGNvbW1lbnRzIGFyZSBpZ25vcmVkLCB0aHVz
IHRoZSA8L3RleHRhcmVhPiBpbiB0aGUKKyAgICAgICAgICAgY29tbWVudCBjb3JyZWN0bHkgY2xv
c2VzIHRoZSA8dGV4dGFyZWE+LiAgVGhpcyB0ZXN0IGlzIGludmFsaWQuCisgICAgICAgICAgIE91
ciBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBtaW5lZmllbGQuCisgICAgICAgICogZmFzdC90b2tlbml6
ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAtIFRoaXMgdGVzdCBpcyBpbnZhbGlkIGFuZCBwcm9iYWJseSBzaG91bGQganVzdCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICBUaGlzIHNhbWUgYmVoYXZpb3IgaXMgdGVzdGVkIGJ5IGZhc3Qv
aW52YWxpZC8wMTYuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFRoZSAiZXh0cmEiIFBhcnNlSFRNTCBpcyBleHBl
Y3RlZC4gIFRoZSBIVE1MNSBQYXJzZXIgdGVsbHMgdGhlCisgICAgICAgICAgIGluc3BlY3RvciBh
Ym91dCBldmVyeSBwYXJzZXIgcHVtcCwgZXZlbiBvbmVzIHdoaWNoIHB1bXAgbm8gZGF0YS4KKyAg
ICAgICAgICAgVGhlIEhUTUw1IHBhcnNlciBwdW1wcyBvbmUgbGFzdCB0aW1lIGluIGZpbmlzaCgp
IHRvIGZsdXNoIGFueQorICAgICAgICAgICBidWZmZXJlZCBjaGFyYWN0ZXJzLiAgRXZlbnR1YWxs
eSB3ZSdsbCB0ZWFjaCB0aGUgaW5zcGVjdG9yIHRvCisgICAgICAgICAgIGZpbHRlciBvdXQgKG5v
dCBkaXNwbGF5KSAwLXNpemVkIHB1bXBzLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFwwIGlzIG5vdyBjb252ZXJ0
ZWQgdG8gXHVGRkZEIHBlciBIVE1MNQorICAgICAgICAqIHN2Zy9kb20vZnV6ei1wYXRoLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWIt
cHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6IGRpdHRvLgorCisyMDEwLTA2LTIx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBUd28gZmFzdC9keW5hbWljIHRlc3RzIG5lZWRsZXNz
bHkgZGVwZW5kIG9uIGxlZ2FjeSA8dGFnPHRhZz4gcGFyc2luZyBiZWhhdmlvcgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NDYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWdldENvbnRleHQtaW52YWxpZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZh
bGlkLWV4cGVjdGVkLnR4dAppbmRleCAyZjI0ZThlZDA0ZGJmYWIzZjIwMDk5YmY2ZTcyNWNjZjIz
YmQ1YWJiLi4zNGIxNDlkYjc4YzE3ZmZiOWJhZGU3ZDJiODA4YzEzYjA1NTczODc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4
dC1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdl
dENvbnRleHQoJzJkIycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJ1RoaXMgaXMg
Y2xlYXJseSBub3QgYSB2YWxpZCBjb250ZXh0IG5hbWUuJykgaXMgbnVsbAotUEFTUyBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKSBpcyBudWxsCitQQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/vScp
IGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJzLvvYQnKSBpcyBudWxsCiBQQVNTIGNh
bnZhcy5nZXRDb250ZXh0KCcyRCcpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NDM3NTczYjU0NDZkZmNjZGI3NzQxNzkzZDZjY2MwYjE3ZGM0
NjcuLjZkMjhlNjRiODJiODNhNjc4NTEyZDAzNjk4MWIzOWFmOGRiZWIwMmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG51bGwgY2hhcmFjdGVycyBhcmUg
YWxsb3dlZCBpbiBKYXZhU2NyaXB0IHN0cmluZ3MsIHJhdGhlcgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgU3RyaW5nKCIiKS5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcoIu+/
vSIpLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0CmluZGV4IGYwMmYwOTEzN2UxODE0MjhjZjMzYjk4YzMyNjUxNTYzNDU2Mzg0ZTku
LjRmZWRiMTlkNzcyNjg5NmE4MzExZWFkMjNkMDBmZGIyYTlmMjg3YmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgY29ycmVjdG5lc3MgYW5kIGJlaGF2aW91ciBvZiBz
d2l0Y2ggc3RhdGVtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNo
YXJhY3RlclN3aXRjaCgnJykgaXMgIiIKK1BBU1MgY2hhcmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi
77+9IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKCdhJykgaXMgImEiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnMScpIGlzICIxIgpAQCAtMTks
NyArMTksNyBAQCBQQVNTIGNoYXJhY3RlclN3aXRjaCgtMSkgaXMgImRlZmF1bHQiCiBQQVNTIGNo
YXJhY3RlclN3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIGNoYXJhY3RlclN3
aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKHt9KSBp
cyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcnKSBpcyAiIgorUEFTUyBz
cGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCiBQQVNTIHNwYXJzZUNoYXJhY3Rl
clN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ2EnKSBpcyAi
YSIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0zNSw3ICszNSw3
IEBAIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3Bh
cnNlQ2hhcmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNl
Q2hhcmFjdGVyU3dpdGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VDaGFy
YWN0ZXJTd2l0Y2goe30pIGlzICJkZWZhdWx0IgotUEFTUyBzdHJpbmdTd2l0Y2goJycpIGlzICIi
CitQQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMgIu+/vSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdB
JykgaXMgIkEiCiBQQVNTIHN0cmluZ1N3aXRjaCgnYScpIGlzICJhIgogUEFTUyBzdHJpbmdTd2l0
Y2goJzEnKSBpcyAiMSIKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBzdHJpbmdTd2l0Y2goLTEpIGlz
ICJkZWZhdWx0IgogUEFTUyBzdHJpbmdTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0Igog
UEFTUyBzdHJpbmdTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3
aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIG51bWJlclN3aXRjaCgnJykgaXMgImRlZmF1bHQi
CitQQVNTIG51bWJlclN3aXRjaCgn77+9JykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRj
aCgnQScpIGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC03MSw3ICs3MSw3IEBAIFBB
U1MgbnVtYmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBudW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQi
CiBQQVNTIG51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHNwYXJzZU51bWJlclN3
aXRjaCgnJykgaXMgImRlZmF1bHQiCitQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgn77+9JykgaXMg
ImRlZmF1bHQiCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgnQScpIGlzICJkZWZhdWx0IgogUEFT
UyBzcGFyc2VOdW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVy
U3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC04OSw3ICs4OSw3IEBAIFBBU1Mgc3BhcnNlTnVt
YmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBzcGFyc2VOdW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzIC0xMDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAx
MDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNT
IGdlbmVyYWxTd2l0Y2goJycpIGlzICIiCitQQVNTIGdlbmVyYWxTd2l0Y2goJ++/vScpIGlzICLv
v70iCiBQQVNTIGdlbmVyYWxTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgn
YScpIGlzICJhIgogUEFTUyBnZW5lcmFsU3dpdGNoKCcxJykgaXMgIjEiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9jb21tZW50LWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0
CmluZGV4IGIyYTBkZmM3ZGZiZTc0OTQ2NjQ2ZTY1YzVjNWM5Y2I3MTA0ZDY2YzIuLmFlZGMxN2Nl
OTQwY2EzODMxNTRiNDRiMDAzNDUxZDM0ODEzYjNhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGV4dEFyZWFzLmxl
bmd0aCBpcyAxCi1QQVNTIHRleHRBcmVhc1swXS5pbm5lckhUTUwgaXMgIiZsdDshLS0gJmx0Oy90
ZXh0YXJlYSZndDsgLS0mZ3Q7IFRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHRleHRhcmVhIgor
RkFJTCB0ZXh0QXJlYXNbMF0uaW5uZXJIVE1MIHNob3VsZCBiZSAmbHQ7IS0tICZsdDsvdGV4dGFy
ZWEmZ3Q7IC0tJmd0OyBUaGlzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSB0ZXh0YXJlYS4gV2FzICZs
dDshLS0gLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci0KKyAtLT4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgdGV4dGFyZWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2xlc3N0aGFuLXRlcm1pbmF0ZXMtdGFncy1hbmQt
YXR0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4t
dGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKaW5kZXggNjNkODVmZDg0ZmFm
NzNkYTg2YzJkMWIyOTg5ZWI2NzQ1N2Y1YjY4Yy4uZDA2ZTUwODkyOTJiM2E5OGVlMTFmMjY0Zjdk
MzdlMTA4YjE4MmJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVz
c3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1l
eHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTYgUkVQUk86IFNhZmFyaSBoYW5ncyBsb2FkaW5nCiAKIFRl
c3RzIHRoYXQgdGhlIOKAnDzigJ0gY2hhcmFjdGVyIHRlcm1pbmF0ZXMgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMuCiAKLVBBU1M6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbz48YmFyPjwvYmFyPjwv
Zm9vPgotUEFTUzogPGZvbyBiYXI8YmF6PiBwYXJzZWQgYXMgPGZvbyBiYXI9IiI+PGJhej48L2Jh
ej48L2Zvbz4KK0ZBSUw6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbzxiYXI+PC9mb288YmFyPiBp
bnN0ZWFkIG9mIDxmb28+PGJhcj48L2Jhcj48L2Zvbz4KK0ZBSUw6IDxmb28gYmFyPGJhej4gcGFy
c2VkIGFzIDxmb28gYmFyPGJhej0iIj48L2Zvbz4gaW5zdGVhZCBvZiA8Zm9vIGJhcj0iIj48YmF6
PjwvYmF6PjwvZm9vPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNDcxOGFkYWEzNTU1OTA3ZmU5YmRiMTNk
MjkyMDMxM2I0N2ZmMmVjMi4uZTZmNDU0MTI4ODBkMmE0NjMxMjEyZmFkN2VkNDZiMDFhZjIxZTEw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMTQsNCArMTQsMTggQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KIH0KK1BhcnNlSFRNTCBQcm9wZXJ0aWVzOgoreworICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+
CisgICAgZGF0YSA6IHsKKyAgICAgICAgbGVuZ3RoIDogMAorICAgICAgICBzdGFydExpbmUgOiAw
CisgICAgICAgIGVuZExpbmUgOiAwCisgICAgfQorICAgIGNoaWxkcmVuIDogPG9iamVjdD4KKyAg
ICBlbmRUaW1lIDogPG51bWJlcj4KKyAgICB0eXBlIDogNAorICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CisgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+Cit9CiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2ZjE5ZjRiYzE0
YzYuLjlhNzVlNDJlM2ZhNjQ4MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4
cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285
JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawog
UEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydm
b28xMSddIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFT
UyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlz
ICLul4HDv+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFo
ZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxv
Igogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiAKIAogVGVzdGluZyBsb2NhbFN0b3Jh
Z2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMg
IjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0
eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSdd
IGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/
vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9y
YWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJz
dHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFoZWxsbyIK
K1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxvIgogc3Rv
cmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0
aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDNlODFkZjBiYjIyODZiNzIxZDFjNDE3OWQyMzQ3
ZjVmOTc2ZDU5NDcuLmQ5MjVkZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4
dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0IGNvbW1hbmQocykgW01DQ0NdOiBNMSwx
UTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIsMSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMg
MSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIgMiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4
LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxsMyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2
LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENvdWxkIG5vdCBwYXJzZTogTQotQ291bGQg
bm90IHBhcnNlOiBNCitDb3VsZCBub3QgcGFyc2U6IE3vv70KIFBhcnNlZCBhcyAyIGNvbW1hbmQo
cykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4
IDQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUuLjJmNTc3ZWMxOTgxZTg3
OWI3NGM1ZmQ1ZGU4YTE3Y2E5ZmNlNDUwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9k
b20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMjU0LDggKzI1NCw4IEBAIFRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKC4yNysKIFRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBU
aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNl
cHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjog
RE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKK1RocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiDvv70KK1Ro
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAxOiByZ2Io77+9KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMuLjI4MzlhODY2MzJi
MmNmODZlMzdhZTg3YmEwMDZiZjk0YzI1NTk0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBUZXN0IFdlYlNvY2tldCBiYWQg
c3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hhcmFjdGVycy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
c2ltcGxlIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUi
LCAi77+9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIJ
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIKICIpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjZWM0OWI4ZDI0YzI1NzQz
MTA3OTY5OTJmZTBkOGNmMDliZGYzNzAuLjdkYjFlNDc3ODZiYzVkY2NmNWI1OGJjMWRiODM0M2Zk
ZjdlYTY3ZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMDYtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyYWdtZW50IHBhcnNpbmcgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgSFRNTDUgUGFyc2Vy
IGNvZGUgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA2NDUKKworICAgICAgICBBZGRlZCBhIG5ldyBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJz
ZUhUTUxEb2N1bWVudEZyYWdtZW50CisgICAgICAgIGNvZGVwYXRoIHdoaWNoIG9wdGlvbmFsbHkg
Y2FsbHMgdGhyb3VnaCB0byB0aGUgb2xkIGZyYWdtZW50CisgICAgICAgIHBhcnNpbmcgcGF0aCwg
bm93IHJlbmFtZWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudC4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCk6CisgICAgICAgICAtIFVzZSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgaW5zdGVhZAorICAgICAgICAgICBvZiBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKSB0byBtYXRjaCBvdGhlciBjYWxsZXJzCisgICAgICAgICAgIChhbmQgbm90IGRlcGVuZCBv
biBEb2N1bWVudEZyYWdtZW50LmgpLgorICAgICAgICAgLSBVcGRhdGUgY2FsbCB0byBwYXJzZUhU
TUxEb2N1bWVudEZyYWdtZW50IHRvIHVzZSB0aGUgbmV3CisgICAgICAgICAgIEhUTUw1IHBhcnNl
ciBjb2RlcGF0aC4KKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAg
ICAgIC0gQWRkIGEgRklYTUUgYWJvdXQgdGhpcyBob3JyaWJsZSBlbnVtIHBsYWNlbWVudC4KKyAg
ICAgICAgICAgU2FkbHkgdGhpcyB3aWxsIGNhdXNlIGEgd29ybGQtcmVidWlsZCBmb3IgZXZlcnlv
bmUuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVD
b25zdHJ1Y3Rvcik6CisgICAgICAgICAtIFRoZSBtYWluIHB1bXBMZXhlciBmdW5jdGlvbiBoYXMg
Z290dGVuIHRvIGxhcmdlLiAgTW92ZSB0aGUgc2NyaXB0CisgICAgICAgICAgIHJ1bm5pbmcgbG9n
aWMgaW50byB0aGlzIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgIC0gSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgbm8gbV9zY3JpcHRSdW5uZXIgKGZyYWdtZW50IGNhc2UpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0gVXNl
IG5ldyBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAg
LSBOZXcgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG1fc2NyaXB0UnVubmVyIGlz
IG51bGwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJz
aW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAgLSBVc2UgaW5TY3JpcHRFeGVjdXRp
b24oKSBpbnN0ZWFkIG9mIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRVc2VMZWdhY3lQYXJzZXIpOgorICAgICAgICAgLSBIZWxwZXIgZnVuY3Rpb24gdG8gY2hl
Y2sgdGhlIGh0bWw1UGFyc2VyRW5hYmxlZCgpIHNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MNURvY3VtZW50UGFyc2VyOjpwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAg
IC0gUnVuIEhUTUw1RG9jdW1lbnRQYXJzZXIgaW4gZnJhZ21lbnQgbW9kZSwgb3Igb3B0aW9uYWxs
eSBydW4KKyAgICAgICAgICAgdGhlIGxlZ2FjeSBwYXJzZXIgaWYgIWh0bWw1UGFyc2VyRW5hYmxl
ZCgpLgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGh0
bWwvSFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRyZWVCdWls
ZGVyOjpIVE1MNVRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VHJlZUJ1aWxk
ZXI6OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgIC0gSW1wbGVtZW50IHRoZSBG
cmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgaGFjayBmb3IgcGxhdGZvcm0vUGFzdGVib2FyZC4K
KyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxlZ2FjeUhUTUxEb2N1
bWVudEZyYWdtZW50KToKKyAgICAgICAgIC0gUmVuYW1lZCBmcm9tIHBhcnNlSFRNTERvY3VtZW50
RnJhZ21lbnQKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICAtIENhbGwgSFRNTDVEb2N1bWVudFBhcnNlcjo6
cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQpOiBkaXR0by4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UpOiBkaXR0by4KKwogMjAxMC0wNi0yMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBjbGFu
ZysrIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KaW5kZXggMWNmNmE4NDgyYjk1Y2JiOWVlMjBkM2E3MmQwNzg2N2Q0YTYy
MjRkNi4uN2Q0NzQ5ODc0NTY4NjM3YWI3YmJiMzQ0MTA0NjY4Y2UyOGFkMDIyNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC04MDksNiArODA5LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9FeGNl
cHRpb25CYXNlLmggXAogCVdlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKIAlXZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlLmggXAorCVdlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIFwKIAlXZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2Rv
bS9JbnB1dEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAzYTJjMTYzOGI5MjFlMzk4ZmIzY2E5ZTA3ODhlNWFkODEzZjFiYTM2Li4zNGY4YmEzNGJjZGQ5
YjRhZmJkMzYwNmI1Zjg5OTBiMGZjZmY3NDJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEzNiw2ICsxMTM2LDcgQEAKICAg
ICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFzZS5oJywKICAgICAgICAgICAgICdkb20vRXhjZXB0
aW9uQ29kZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25Db2RlLmgnLAorICAgICAg
ICAgICAgJ2RvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCcsCiAgICAgICAgICAgICAn
ZG9tL0lucHV0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9JbnB1dEVsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL0tleWJvYXJkRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQ4MzkyZTFiMDJhNzQw
YTQ3NjBkNzZmN2MxMDM2MjE3Y2NkODc0ZTUuLmYyYjYyZWVkMmY4YmQ5NDU5ZTljNDRlNDM2Nzc1
NmRiZjk1MzJmYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtMTIyMSw2ICsxMjIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9t
L0V2ZW50VGFyZ2V0LmggXAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmggXAogICAgIGRvbS9FeGNl
cHRpb25Db2RlLmggXAorICAgIGRvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBcCiAg
ICAgZG9tL0lucHV0RWxlbWVudC5oIFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5oIFwKICAgICBk
b20vTWVzc2FnZUNoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDJjMGRlNmZhYzkwNzY2YjZjZDkyYmYzNjk3NTZiNWNkMTcyMTA1NGYuLmEz
YmFiN2QyNTAzNjE4Y2I3ZDk2NzI0ODQzN2RjNzM1NDdiOTExODAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTY0LDYgKzI5NjQsNyBAQAogCQlBODRF
QkQ3ODBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ3NzBDQjhDODky
MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCUE4NEVCRDgz
MENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ4MTBDQjhDOTc3MDAwNzk2MDkgLyog
SlNTdHlsZVNoZWV0TGlzdC5oICovOyB9OwogCQlBODRFQkQ4NDBDQjhDOTc3MDAwNzk2MDkgLyog
SlNTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5j
cHAgKi87IH07CisJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NTMxMjNDMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
ODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDOTA5REEyQjQ3MDA5NjMzQTUgLyog
SlNVSUV2ZW50LmggKi87IH07CiAJCUE4NjYyOUQwMDlEQTJCNDgwMDk2MzNBNSAvKiBKU1VJRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2
NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgKi87IH07CiAJCUE4NjYyOUQx
MDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNCMDlEQTJCNDcwMDk2MzNBNSAvKiBKU01v
dXNlRXZlbnQuaCAqLzsgfTsKQEAgLTg0MzAsNiArODQzMSw3IEBACiAJCUE4NEVCRDc3MENCOEM4
OTIwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODRFQkQ4MTBDQjhDOTc3MDAwNzk2MDkgLyogSlNTdHls
ZVNoZWV0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0eWxlU2hl
ZXRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NEVCRDgyMENCOEM5Nzcw
MDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODUzMTIzQzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODVEN0EyRjA4
NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IFF1YXJ0ekNvcmUuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
UXVhcnR6Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUE4
NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVUlFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODY2MjlDQTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1VJRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTY4MzEsNiArMTY4MzMsNyBAQAogCQkJCTU0QzUwRjdBMEU4MDFERjMw
MDk4MzJBMCAvKiBYTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwICovLAogCQkJCTVEMTVFM0E5
MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcCAqLywKIAkJCQk1
RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5oICovLAor
CQkJCUE4NTMxMjNDMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZG9tOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTE5NDgxLDYgKzE5NDg0LDcgQEAKIAkJCQkxQUE4Nzk5MDExQ0JFODQ2MDAzQzY2NEYg
LyogUGx1Z2luU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1NkVCQTg1MTFDOUZGODEw
MEIwNDQ3NyAvKiBTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjVBOTY1MTFD
QTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTg1
MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNw
cCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGY3ZGY4ZjZmZDk5NzJm
MzhhZjNmZGY2MjlhNjg1YmZmY2U1YmI0YzUuLjBkNzdlNGU0Y2M4NGQ2OWEzMTYwMDk3ODExY2Rm
YjVmZmQ1ZGEzYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNCwxMiArMjQsMTgg
QEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1l
bnRQYXJzZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlu
bGluZSBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCiB7CisgICAgQVNTRVJUKGRvY3VtZW50
KTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNzAsNCArNzYsMjYgQEAgUGFzc1JlZlB0cjxO
b2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGUoYm9vbCBkZWVwKQogICAgIHJldHVybiBj
bG9uZS5yZWxlYXNlKCk7CiB9CiAKK2Jvb2wgRG9jdW1lbnRGcmFnbWVudDo6c2hvdWxkVXNlTGVn
YWN5SFRNTFBhcnNlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPnBhZ2UoKSAm
JiBkb2N1bWVudCgpLT5wYWdlKCktPnNldHRpbmdzKCkKKyAgICAgICAgJiYgIWRvY3VtZW50KCkt
PnBhZ2UoKS0+c2V0dGluZ3MoKS0+aHRtbDVQYXJzZXJFbmFibGVkKCk7Cit9CisKK3ZvaWQgRG9j
dW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK3sKKyAgICBpZiAoc2hvdWxk
VXNlTGVnYWN5SFRNTFBhcnNlcigpKQorICAgICAgICByZXR1cm4gcGFyc2VMZWdhY3lIVE1MRG9j
dW1lbnRGcmFnbWVudChzb3VyY2UsIHRoaXMsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworCisgICAg
SFRNTDVEb2N1bWVudFBhcnNlciBwYXJzZXIodGhpcywgc2NyaXB0aW5nUGVybWlzc2lvbik7Cisg
ICAgcGFyc2VyLndyaXRlKHNvdXJjZSwgZmFsc2UpOworICAgIHBhcnNlci5maW5pc2goKTsKKyAg
ICBBU1NFUlQoIXBhcnNlci5wcm9jZXNzaW5nRGF0YSgpKTsgLy8gTWFrZSBzdXJlIHdlJ3JlIGRv
bmUuIDxyZGFyOi8vcHJvYmxlbS8zOTYzMTUxPgorfQorCitib29sIERvY3VtZW50RnJhZ21lbnQ6
OnBhcnNlWE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBFbGVtZW50KiBwYXJlbnQsIEZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQoreworICAgIHJldHVybiBw
YXJzZVhNTERvY3VtZW50RnJhZ21lbnQoc291cmNlLCB0aGlzLCBwYXJlbnQsIHNjcmlwdGluZ1Bl
cm1pc3Npb24pOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZTYyNGVlNGNjZWVi
YTA4MDE2N2JiZTE0YmQ5MWYyMjUyM2E5M2VjMC4uNWVmZjE3ZmNhYzA3ZTc2ZDYyNzNjN2IzYzM0
N2JkZjNhY2MzODdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5o
CisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMjUsNiArMjUsNyBAQAog
I2RlZmluZSBEb2N1bWVudEZyYWdtZW50X2gKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIK
KyNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zMiw5ICszMywxNCBAQCBjbGFzcyBEb2N1bWVudEZyYWdtZW50IDogcHVi
bGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCisgICAgdm9pZCBwYXJzZUhUTUwoY29u
c3QgU3RyaW5nJiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRp
bmdBbGxvd2VkKTsKKyAgICBib29sIHBhcnNlWE1MKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqIHBh
cmVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxv
d2VkKTsKKwogcHJpdmF0ZToKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50Kik7CiAKKyAg
ICBib29sIHNob3VsZFVzZUxlZ2FjeUhUTUxQYXJzZXIoKSBjb25zdDsKKwogICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVw
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggNTk4N2FjNzc1MWZkNmI3MTZiYWFiZDBkYzhiZDQxNDM4ZjliNzFkNS4u
MzMxMWJiMDhiNGVlNjZkOWYzYTk0NGJkN2FjZjk0ZDUyYmZjY2JlNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQy
LDcgKzQyLDYgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb2RlTGlz
dC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgpAQCAtNTIsNyArNTEsNiBAQAogI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIlhNTE5hbWVzLmgiCi0jaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtOTMsMTIgKzkxLDEy
IEBAIE5vZGVSYXJlRGF0YSogRWxlbWVudDo6Y3JlYXRlUmFyZURhdGEoKQogCiBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjb25z
dCBTdHJpbmcmIG1hcmt1cCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Bl
cm1pc3Npb24pCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9j
dW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIAorICAgIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKKwogICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKQotICAgICAgICBw
YXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KG1hcmt1cCwgZnJhZ21lbnQuZ2V0KCksIHNjcmlwdGlu
Z1Blcm1pc3Npb24pOworICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgc2NyaXB0
aW5nUGVybWlzc2lvbik7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICghcGFyc2VYTUxEb2N1bWVu
dEZyYWdtZW50KG1hcmt1cCwgZnJhZ21lbnQuZ2V0KCksIHRoaXMsIHNjcmlwdGluZ1Blcm1pc3Np
b24pKQorICAgICAgICBpZiAoIWZyYWdtZW50LT5wYXJzZVhNTChtYXJrdXAsIHRoaXMsIHNjcmlw
dGluZ1Blcm1pc3Npb24pKQogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9wYWdh
dGUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uIG91dCBoZXJlLgogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IGZjNzI5OGE3MzBkYzhlNjgxNzUzMDBiOGI1ZjhmZmI0ZDE2ODg3
YmIuLjlhODYzNDdkNWEzZWVhZDc1Mzc2Mjg0NmQ4N2VmMDlkN2I2MTUyYmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNkZWZpbmUgRWxlbWVudF9oCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgot
I2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCisjaW5jbHVkZSAiRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsVHlwZXMuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmlidXRl
RW50cnkuaCBiL1dlYkNvcmUvZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmgKaW5kZXggY2UyNDY0
ZTc5M2IyZmQ2OGQzMTg5Zjg2NmI5NjA1ZTNkZTllY2MwZi4uZjI4ZjE4MjgxZDQ0MmMyNWFhMTUz
NzJkMjhkNzI0MzExMzI0ODhmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmli
dXRlRW50cnkuaAorKysgYi9XZWJDb3JlL2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oCkBAIC00
OCw4ICs0OCw2IEBAIGVudW0gTWFwcGVkQXR0cmlidXRlRW50cnkgewogICAgICwgZUxhc3RFbnRy
eQogfTsKIAotZW51bSBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24geyBGcmFnbWVudFNjcmlw
dGluZ0FsbG93ZWQsIEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCB9OwotCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggY2I5ZTYzMjY0ZWQ0ZDdiMGY1NTI2NzBhNDBm
MGIxNjBkNmViMTIwMi4uYmI3ZDI0YjBjMTM5N2Q5ZGYwZjJlMzU0NTAzZDRlYTNmNjE3MjM1OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
aCIKLSNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgogI2luY2x1ZGUgIlNlZ21lbnRl
ZFN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKICNpbmNsdWRlICJEb2N1bWVudFBh
cnNlci5oIgorI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAyYTFiYWM2MDkzZDdlZGFjOThkMWVl
YjMxZThlZWY3Njg4Zjc1ZmI0Li5lYTE3YmZhYjFhMzE2Mzc1ZWQxZWU2YzM2ZjJiY2YxZDAxOTVi
OWIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTEzODMs
NiArMTM4Myw4IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmcoKQogICAg
ICAgICBlbmQoKTsKIH0KIAorLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBwb3NzaWJs
ZSB0byBpbXBsZW1lbnQgdXNpbmcgdGhlIERvY3VtZW50UGFyc2VyCisvLyBBUEksIGluc3RlYWQg
b2YgbmVlZGluZyB0byBncmFiIGF0IGxpYnhtbDIgc3RhdGUgZGlyZWN0bHkuCiBib29sIHBhcnNl
WE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIGNodW5rLCBEb2N1bWVudEZyYWdtZW50
KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24g
c2NyaXB0aW5nUGVybWlzc2lvbikKIHsKICAgICBpZiAoIWNodW5rLmxlbmd0aCgpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5o
CmluZGV4IGY2NGZiNjFlYzJmMzIxODc0MzU3NDNkODUwYjljNDY0Njc4Y2NmODcuLjU0MjgwOTc2
YzQ3OTMyOTMyZDU4N2U4YjMyOTIyMjVlNTA1ZjU0NDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKQEAgLTI2LDggKzI2
LDggQEAKICNpZm5kZWYgbWFya3VwX2gKICNkZWZpbmUgbWFya3VwX2gKIAorI2luY2x1ZGUgIkZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5o
IgotI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFy
c2VyLmNwcAppbmRleCA4OWNjZjU3OTA5M2MxMDk5OWMwOTU5MjU5ODI0OTRhOWE3ZGJiYTc1Li43
ZTNkOGYxMjgzNDE2ZWRmNTJhMjcwMzg4Y2NlMGIzMWI3Nzg2ZTdjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1
RG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSFRNTDVEb2N1bWVudFBhcnNlci5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIiAvLyBPbmx5IGZvciBpc0xheW91dFRpbWVyQWN0aXZlCkBAIC0z
NCw3ICszNSw2IEBACiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJI
VE1MNVRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCi0jaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJYU1NBdWRpdG9yLmgiCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC05NSw4ICs5NSw3IEBAIHN0YXRpYyBpbnQgcGFy
c2VyQ2h1bmtTaXplKFBhZ2UqIHBhZ2UpCiB9CiAKIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1
RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMp
Ci0gICAgOiBEb2N1bWVudFBhcnNlcigpCi0gICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCiAg
ICAgLCBtX3NjcmlwdFJ1bm5lcihuZXcgSFRNTDVTY3JpcHRSdW5uZXIoZG9jdW1lbnQsIHRoaXMp
KQogICAgICwgbV90cmVlQ29uc3RydWN0b3IobmV3IEhUTUw1VHJlZUJ1aWxkZXIobV9sZXhlci5n
ZXQoKSwgZG9jdW1lbnQsIHJlcG9ydEVycm9ycykpCkBAIC0xMDksNiArMTA4LDIyIEBAIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCByZXBvcnRFcnJvCiAgICAgYmVnaW4oKTsKIH0KIAorLy8gRklYTUU6IE1lbWJlciB2
YXJpYWJsZXMgc2hvdWxkIGJlIGdyb3VwZWQgaW50byBzZWxmLWluaXRpYWxpemluZyBzdHJ1Y3Rz
IHRvCisvLyBtaW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uIGJldHdlZW4gdGhlc2UgY29uc3RydWN0
b3JzLgorSFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNlcihEb2N1bWVudEZy
YWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Bl
cm1pc3Npb24pCisgICAgOiBtX2RvY3VtZW50KGZyYWdtZW50LT5kb2N1bWVudCgpKQorICAgICwg
bV9sZXhlcihuZXcgSFRNTDVMZXhlcikKKyAgICAsIG1fdHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1M
NVRyZWVCdWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGZyYWdtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9u
KSkKKyAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKKyAgICAsIG1fd3JpdGVOZXN0aW5nTGV2
ZWwoMCkKKyAgICAvLyBGSVhNRTogUGFyc2VyIHlpZWxkaW5nIHNob3VsZCBiZSBhIHNlcGFyYXRl
IGNsYXNzLgorICAgICwgbV9wYXJzZXJUaW1lTGltaXQoMCkKKyAgICAsIG1fcGFyc2VyQ2h1bmtT
aXplKDApCisgICAgLCBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIodGhpcywgJkhUTUw1RG9jdW1l
bnRQYXJzZXI6OmNvbnRpbnVlTmV4dENodW5rVGltZXJGaXJlZCkKK3sKKyAgICBiZWdpbigpOwor
fQorCiBIVE1MNURvY3VtZW50UGFyc2VyOjp+SFRNTDVEb2N1bWVudFBhcnNlcigpCiB7CiAgICAg
Ly8gRklYTUU6IFdlJ2QgbGlrZSB0byBBU1NFUlQgdGhhdCBub3JtYWwgb3BlcmF0aW9uIG9mIHRo
aXMgY2xhc3MgY2xlYXJzCkBAIC0xNzcsNiArMTkyLDE4IEBAIGlubGluZSBib29sIEhUTUw1RG9j
dW1lbnRQYXJzZXI6OnNob3VsZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpydW5TY3Jp
cHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkKK3sKKyAgICBBU1NFUlQobV90cmVlQ29uc3Ry
dWN0b3ItPmlzUGF1c2VkKCkpOworCisgICAgaW50IHNjcmlwdFN0YXJ0TGluZSA9IDA7CisgICAg
UmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBtX3RyZWVDb25zdHJ1Y3Rvci0+dGFrZVNj
cmlwdFRvUHJvY2VzcyhzY3JpcHRTdGFydExpbmUpOworICAgIC8vIFdlIHdpbGwgbm90IGhhdmUg
YSBzY3JpcHRSdW5uZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KKyAgICBpZiAo
IW1fc2NyaXB0UnVubmVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9zY3Jp
cHRSdW5uZXItPmV4ZWN1dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNlKCksIHNjcmlwdFN0YXJ0TGlu
ZSk7Cit9CisKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKFN5bmNocm9ub3Vz
TW9kZSBtb2RlKQogewogICAgIEFTU0VSVCghbV9wYXJzZXJTdG9wcGVkKTsKQEAgLTIwMywxNCAr
MjMwLDEyIEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKFN5bmNocm9ub3Vz
TW9kZSBtb2RlKQogICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxl
ciA9IHNjcmlwdCgpKQogICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+c2V0RXZlbnRIYW5k
bGVyTGluZU51bWJlcigwKTsKIAorICAgICAgICAvLyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRz
ZWxmIHdoZW4gd2FpdGluZyBvbiBhIHNjcmlwdCB0byBsb2FkIG9yIHJ1bi4KICAgICAgICAgaWYg
KCFtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIC8vIFRoZSBwYXJzZXIgd2lsbCBwYXVzZSBpdHNlbGYgd2hlbiB3YWl0aW5nIG9u
IGEgc2NyaXB0IHRvIGxvYWQgb3IgcnVuLgotICAgICAgICAvLyBTY3JpcHRSdW5uZXIgZXhlY3V0
ZXMgc2NyaXB0cyBhdCB0aGUgcmlnaHQgdGltZXMgYW5kIGhhbmRsZXMgcmVlbnRyYW5jeS4KLSAg
ICAgICAgaW50IHNjcmlwdFN0YXJ0TGluZSA9IDA7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBz
Y3JpcHRFbGVtZW50ID0gbV90cmVlQ29uc3RydWN0b3ItPnRha2VTY3JpcHRUb1Byb2Nlc3Moc2Ny
aXB0U3RhcnRMaW5lKTsKLSAgICAgICAgYm9vbCBzaG91bGRDb250aW51ZVBhcnNpbmcgPSBtX3Nj
cmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2UoKSwgc2NyaXB0U3RhcnRM
aW5lKTsKKyAgICAgICAgLy8gSWYgd2UncmUgcGF1c2VkIHdhaXRpbmcgZm9yIGEgc2NyaXB0LCB3
ZSB0cnkgdG8gZXhlY3V0ZSBzY3JpcHRzIGJlZm9yZSBjb250aW51aW5nLgorICAgICAgICBib29s
IHNob3VsZENvbnRpbnVlUGFyc2luZyA9IHJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQ29uc3RydWN0
b3IoKTsKICAgICAgICAgbV90cmVlQ29uc3RydWN0b3ItPnNldFBhdXNlZCghc2hvdWxkQ29udGlu
dWVQYXJzaW5nKTsKICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZVBhcnNpbmcpCiAgICAgICAg
ICAgICBicmVhazsKQEAgLTM0MSw4ICszNjYsMTcgQEAgYm9vbCBIVE1MNURvY3VtZW50UGFyc2Vy
OjpmaW5pc2hXYXNDYWxsZWQoKQogICAgIHJldHVybiBtX2lucHV0LmlzQ2xvc2VkKCk7CiB9CiAK
Ky8vIFRoaXMgZnVuY3Rpb24gaXMgdmlydHVhbCBhbmQganVzdCBmb3IgdGhlIERvY3VtZW50UGFy
c2VyIGludGVyZmFjZS4KIGludCBIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQo
KSBjb25zdAogeworICAgIHJldHVybiBpblNjcmlwdEV4ZWN1dGlvbigpOworfQorCisvLyBUaGlz
IGZ1bmN0aW9uIGlzIG5vbi12aXJ0dWFsIGFuZCB1c2VkIHRocm91Z2hvdXQgdGhlIGltcGxlbWVu
dGF0aW9uLgorYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjppblNjcmlwdEV4ZWN1dGlvbigpIGNv
bnN0Cit7CisgICAgaWYgKCFtX3NjcmlwdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKTsKIH0KIApAQCAt
MzY4LDcgKzQwMiw3IEBAIGJvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6aXNXYWl0aW5nRm9yU2Ny
aXB0cygpIGNvbnN0CiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0Fm
dGVyU2NyaXB0RXhlY3V0aW9uKCkKIHsKLSAgICBBU1NFUlQoIW1fc2NyaXB0UnVubmVyLT5pblNj
cmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQoIWluU2NyaXB0RXhlY3V0aW9uKCkpOwogICAg
IEFTU0VSVCghbV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpOwogCiAgICAgcHVtcExleGVy
SWZQb3NzaWJsZShBbGxvd1lpZWxkKTsKQEAgLTM5Niw3ICs0MzAsNyBAQCBib29sIEhUTUw1RG9j
dW1lbnRQYXJzZXI6OnNob3VsZExvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMoY29uc3QgQXRvbWlj
U3RyaW5nJiBzcgogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVTY3JpcHQoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKLSAgICBBU1NFUlQobV9zY3JpcHRS
dW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCkpOworICAgIEFTU0VSVChpblNjcmlwdEV4ZWN1dGlv
bigpKTsKICAgICBpZiAoIW1fZG9jdW1lbnQtPmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBJbnNlcnRpb25Qb2ludFJlY29yZCBzYXZlZEluc2VydGlvblBvaW50KG1faW5wdXQpOwpAQCAt
NDA1LDYgKzQzOSw3IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdChj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogCiB2b2lkIEhUTUw1RG9jdW1lbnRQ
YXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsK
KyAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXIpOwogICAgIC8vIElnbm9yZSBjYWxscyB1bmxlc3Mg
d2UgaGF2ZSBhIHNjcmlwdCBibG9ja2luZyB0aGUgcGFyc2VyIHdhaXRpbmcKICAgICAvLyBmb3Ig
aXRzIG93biBsb2FkLiAgT3RoZXJ3aXNlIHRoaXMgbWF5IGJlIGEgbG9hZCBjYWxsYmFjayBmcm9t
CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2U6OmFkZENsaWVudCBiZWNhdXNlIHRoZSBzY3JpcHQgd2Fz
IGFscmVhZHkgaW4gdGhlIGNhY2hlLgpAQCAtNDEzLDcgKzQ0OCw3IEBAIHZvaWQgSFRNTDVEb2N1
bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
KQogICAgICAgICBBU1NFUlQobV9zY3JpcHRSdW5uZXItPmluU2NyaXB0RXhlY3V0aW9uKCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVCghbV9zY3JpcHRSdW5uZXItPmluU2Ny
aXB0RXhlY3V0aW9uKCkpOworICAgIEFTU0VSVCghaW5TY3JpcHRFeGVjdXRpb24oKSk7CiAgICAg
QVNTRVJUKG1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKICAgICAvLyBOb3RlOiBXZSBv
bmx5IGV2ZXIgd2FpdCBvbiBvbmUgc2NyaXB0IGF0IGEgdGltZSwgc28gd2UgYWx3YXlzIGtub3cg
dGhpcwogICAgIC8vIGlzIHRoZSBvbmUgd2Ugd2VyZSB3YWl0aW5nIG9uIGFuZCBjYW4gdW4tcGF1
c2UgdGhlIHRyZWUgYnVpbGRlci4KQEAgLTQyNiw2ICs0NjEsOSBAQCB2b2lkIEhUTUw1RG9jdW1l
bnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkK
IAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHls
ZXNoZWV0cygpCiB7CisgICAgLy8gRG9jdW1lbnQgb25seSBjYWxscyB0aGlzIHdoZW4gdGhlIERv
Y3VtZW50IG93bnMgdGhlIERvY3VtZW50UGFyc2VyCisgICAgLy8gc28gdGhpcyB3aWxsIG5vdCBi
ZSBjYWxsZWQgaW4gdGhlIERvY3VtZW50RnJhZ21lbnQgY2FzZS4KKyAgICBBU1NFUlQobV9zY3Jp
cHRSdW5uZXIpOwogICAgIC8vIElnbm9yZSBjYWxscyB1bmxlc3Mgd2UgaGF2ZSBhIHNjcmlwdCBi
bG9ja2luZyB0aGUgcGFyc2VyIHdhaXRpbmcgb24gYQogICAgIC8vIHN0eWxlc2hlZXQgbG9hZC4g
IE90aGVyd2lzZSB3ZSBhcmUgY3VycmVudGx5IHBhcnNpbmcgYW5kIHRoaXMKICAgICAvLyBpcyBh
IHJlLWVudHJhbnQgY2FsbCBmcm9tIGVuY291bnRlcmluZyBhIDwvIHN0eWxlPiB0YWcuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1s
L0hUTUw1RG9jdW1lbnRQYXJzZXIuaAppbmRleCA1ODJlNGQ5NjEzNzIwN2RlODU2MWNiNTc2MmI5
ZjlhNTczM2FiMjc3Li5hYmMxYWE5OWNjOTliZThkMjJhM2VkMWU0YzQyYzg2OGNiZWVjZjhmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
SFRNTDVUb2tlbml6ZXJfaAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNp
bmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJIVE1MNVNj
cmlwdFJ1bm5lckhvc3QuaCIKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiU2Vn
bWVudGVkU3RyaW5nLmgiCkBAIC0zNiwxOCArMzcsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBIVE1M
RG9jdW1lbnQ7Ci1jbGFzcyBMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yOwogY2xhc3MgSFRNTDVM
ZXhlcjsKIGNsYXNzIEhUTUw1U2NyaXB0UnVubmVyOwogY2xhc3MgSFRNTDVUcmVlQnVpbGRlcjsK
IGNsYXNzIEhUTUw1UHJlbG9hZFNjYW5uZXI7CitjbGFzcyBMZWdhY3lIVE1MVHJlZUNvbnN0cnVj
dG9yOwogY2xhc3MgU2NyaXB0Q29udHJvbGxlcjsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAK
IGNsYXNzIEhUTUw1RG9jdW1lbnRQYXJzZXIgOiAgcHVibGljIERvY3VtZW50UGFyc2VyLCBIVE1M
NVNjcmlwdFJ1bm5lckhvc3QsIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKKyAgICAv
LyBGSVhNRTogVGhlc2UgY29uc3RydWN0b3JzIHNob3VsZCBiZSBtYWRlIHByaXZhdGUgYW5kIHJl
cGxhY2VkIGJ5IGNyZWF0ZSgpIG1ldGhvZHMuCiAgICAgSFRNTDVEb2N1bWVudFBhcnNlcihIVE1M
RG9jdW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7CisgICAgSFRNTDVEb2N1bWVudFBhcnNlcihE
b2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICB2aXJ0
dWFsIH5IVE1MNURvY3VtZW50UGFyc2VyKCk7CiAKICAgICAvLyBEb2N1bWVudFBhcnNlcgpAQCAt
MTcyLDYgKzE3Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgUHVtcFNlc3Npb247CiAgICAg
aW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7CisgICAgYm9v
bCBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCk7CiAKICAgICBlbnVtIFN5bmNo
cm9ub3VzTW9kZSB7CiAgICAgICAgIEFsbG93WWllbGQsCkBAIC0xODQsNiArMTkwLDggQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgYXR0ZW1wdFRvRW5kKCk7CiAgICAgdm9pZCBlbmRJZkRlbGF5ZWQo
KTsKKworICAgIGJvb2wgaW5TY3JpcHRFeGVjdXRpb24oKSBjb25zdDsKICAgICBib29sIGluV3Jp
dGUoKSBjb25zdCB7IHJldHVybiBtX3dyaXRlTmVzdGluZ0xldmVsID4gMDsgfQogCiAgICAgU2Ny
aXB0Q29udHJvbGxlciogc2NyaXB0KCkgY29uc3Q7CkBAIC0xOTMsNyArMjAxLDkgQEAgcHJpdmF0
ZToKICAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRp
YWxseSBjb21wbGV0ZS4KICAgICBIVE1MNVRva2VuIG1fdG9rZW47CiAKLSAgICBIVE1MRG9jdW1l
bnQqIG1fZG9jdW1lbnQ7CisgICAgLy8gV2UgbXVzdCBzdXBwb3J0IHBhcnNpbmcgaW50byBhIERv
Y3VtZW50KiBhbmQgbm90IGp1c3QgSFRNTERvY3VtZW50KgorICAgIC8vIHRvIHN1cHBvcnQgRG9j
dW1lbnRGcmFnbWVudCAod2hpY2ggaGFzIGEgRG9jdW1lbnQqKS4KKyAgICBEb2N1bWVudCogbV9k
b2N1bWVudDsKICAgICBPd25QdHI8SFRNTDVMZXhlcj4gbV9sZXhlcjsKICAgICBPd25QdHI8SFRN
TDVTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogICAgIE93blB0cjxIVE1MNVRyZWVCdWls
ZGVyPiBtX3RyZWVDb25zdHJ1Y3RvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmNwcAppbmRleCAz
MzIwMzkzNGMxNjBmY2M2YmRhY2QwODhmMDU4ODJhNGMwYzYzNmFkLi4zNjRlZWUxMGFhNjEyZTJl
YWRjYzZhZDQ3YzgyOGVmNjA4Y2I3MjI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVU
cmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCkBA
IC0yNiwxNCArMjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MNVRy
ZWVCdWlsZGVyLmgiCiAKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgog
I2luY2x1ZGUgIkhUTUw1VG9rZW4uaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSFRNTERvY3VtZW50
UGFyc2VyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CkBAIC01Myw2ICs1NCwy
MiBAQCBIVE1MNVRyZWVCdWlsZGVyOjpIVE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqIGxleGVy
LCBIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBibwogICAgICwgbV9sZWdhY3lUcmVlQ29uc3RydWN0
b3IobmV3IExlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IoZG9jdW1lbnQsIHJlcG9ydEVycm9ycykp
CiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVt
YmVyVmFsdWUpCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVk
TGluZU51bWJlclZhbHVlKQorICAgICwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24oRnJh
Z21lbnRTY3JpcHRpbmdBbGxvd2VkKQoreworfQorCisvLyBGSVhNRTogTWVtYmVyIHZhcmlhYmxl
cyBzaG91bGQgYmUgZ3JvdXBlZCBpbnRvIHNlbGYtaW5pdGlhbGl6aW5nIHN0cnVjdHMgdG8KKy8v
IG1pbmltaXplIGNvZGUgZHVwbGljYXRpb24gYmV0d2VlbiB0aGVzZSBjb25zdHJ1Y3RvcnMuCitI
VE1MNVRyZWVCdWlsZGVyOjpIVE1MNVRyZWVCdWlsZGVyKEhUTUw1TGV4ZXIqIGxleGVyLCBEb2N1
bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlw
dGluZ1Blcm1pc3Npb24pCisgICAgOiBtX2RvY3VtZW50KGZyYWdtZW50LT5kb2N1bWVudCgpKQor
ICAgICwgbV9yZXBvcnRFcnJvcnMoZmFsc2UpIC8vIEZJWE1FOiBXaHkgbm90IHJlcG9ydCBlcnJv
cnMgaW4gZnJhZ21lbnRzPworICAgICwgbV9pc1BhdXNlZChmYWxzZSkKKyAgICAsIG1faW5zZXJ0
aW9uTW9kZShJbml0aWFsKQorICAgICwgbV9sZXhlcihsZXhlcikKKyAgICAsIG1fbGVnYWN5VHJl
ZUNvbnN0cnVjdG9yKG5ldyBMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yKGZyYWdtZW50LCBzY3Jp
cHRpbmdQZXJtaXNzaW9uKSkKKyAgICAsIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUodW5p
bml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKKyAgICAsIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRM
aW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCisgICAgLCBtX2ZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbihzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogfQogCkBAIC0xNzksMTAgKzE5
NiwxNyBAQCBQYXNzUmVmUHRyPE5vZGU+IEhUTUw1VHJlZUJ1aWxkZXI6OnBhc3NUb2tlblRvTGVn
YWN5UGFyc2VyKEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBt
X2xleGVyLT5zZXRTdGF0ZShhZGp1c3RlZExleGVyU3RhdGUobV9sZXhlci0+c3RhdGUoKSwgb2xk
U3R5bGVUb2tlbi50YWdOYW1lLCBtX2RvY3VtZW50LT5mcmFtZSgpKSk7CiAgICAgfSBlbHNlIGlm
ICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6RW5kVGFnKSB7Ci0gICAgICAgIGlmIChvbGRT
dHlsZVRva2VuLnRhZ05hbWUgPT0gc2NyaXB0VGFnICYmIGluc2VydGlvbk1vZGUoKSAhPSBBZnRl
ckZyYW1lc2V0KSB7CisgICAgICAgIGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gc2NyaXB0
VGFnKSB7CiAgICAgICAgICAgICBpZiAobV9sYXN0U2NyaXB0RWxlbWVudCkgewogICAgICAgICAg
ICAgICAgIEFTU0VSVChtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lICE9IHVuaW5pdGlhbGl6
ZWRMaW5lTnVtYmVyVmFsdWUpOwotICAgICAgICAgICAgICAgIGhhbmRsZVNjcmlwdEVuZFRhZyht
X2xhc3RTY3JpcHRFbGVtZW50LmdldCgpLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKTsK
KyAgICAgICAgICAgICAgICBpZiAobV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPT0gRnJh
Z21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGEgaG9ycmlibGUgaGFjayBmb3IgcGxhdGZvcm0vUGFzdGVib2FyZC4KKyAgICAg
ICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIDxzY3JpcHQ+IHRhZyB3aGVuIHVzaW5nIHRoZSBQ
YXJzZXIgdG8gY3JlYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIGEgRG9jdW1lbnRGcmFnbWVu
dCBmb3IgcGFzdGluZyBzbyB0aGF0IGphdmFzY3JpcHQgY29udGVudAorICAgICAgICAgICAgICAg
ICAgICAvLyBkb2VzIG5vdCBzaG93IHVwIGluIHBhc3RlZCBIVE1MLgorICAgICAgICAgICAgICAg
ICAgICBtX2xhc3RTY3JpcHRFbGVtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoaW5zZXJ0aW9uTW9kZSgpICE9IEFmdGVyRnJhbWVzZXQpCisgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZVNjcmlwdEVuZFRhZyhtX2xhc3RTY3JpcHRFbGVtZW50LmdldCgp
LCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lKTsKICAgICAgICAgICAgICAgICBtX2xhc3RT
Y3JpcHRFbGVtZW50ID0gMDsKICAgICAgICAgICAgICAgICBtX2xhc3RTY3JpcHRFbGVtZW50U3Rh
cnRMaW5lID0gdW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZTsKICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmggYi9XZWJDb3JlL2h0bWwv
SFRNTDVUcmVlQnVpbGRlci5oCmluZGV4IDZmOTRmODgyMDMxZDU1NmRjY2I3YWViZjNmZGE1OGJj
ZjczYzA1MjYuLmQxZmY5NjBhZTdjYzIzNmE4ODQ5MzYzMjI3MDNhODcwNmZiZGNkYzYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUw1VHJlZUJ1aWxkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBIVE1MNVRyZWVC
dWlsZGVyX2gKICNkZWZpbmUgSFRNTDVUcmVlQnVpbGRlcl9oCiAKKyNpbmNsdWRlICJGcmFnbWVu
dFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzYsNiAr
MzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIERv
Y3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1M
NVRva2VuOwpAQCAtNDUsNyArNDcsOSBAQCBjbGFzcyBOb2RlOwogCiBjbGFzcyBIVE1MNVRyZWVC
dWlsZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKKyAgICAvLyBGSVhNRTogUmVw
bGFjZSBjb25zdHJ1Y3RvcnMgd2l0aCBjcmVhdGUoKSBmdW5jdGlvbnMgcmV0dXJuaW5nIFBhc3NP
d25QdHJzCiAgICAgSFRNTDVUcmVlQnVpbGRlcihIVE1MNUxleGVyKiwgSFRNTERvY3VtZW50Kiwg
Ym9vbCByZXBvcnRFcnJvcnMpOworICAgIEhUTUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlciosIERv
Y3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIH5IVE1M
NVRyZWVCdWlsZGVyKCk7CiAKICAgICB2b2lkIHNldFBhdXNlZChib29sIHBhdXNlZCkgeyBtX2lz
UGF1c2VkID0gcGF1c2VkOyB9CkBAIC0xMDUsNiArMTA5LDExIEBAIHByaXZhdGU6CiAKICAgICBS
ZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBu
ZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgogICAgIGludCBtX3Nj
cmlwdFRvUHJvY2Vzc1N0YXJ0TGluZTsgLy8gU3RhcnRpbmcgbGluZSBudW1iZXIgb2YgdGhlIHNj
cmlwdCB0YWcgbmVlZGluZyBwcm9jZXNzaW5nLgorCisgICAgLy8gRklYTUU6IEZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbiBpcyBhIEhBQ0sgZm9yIHBsYXRmb3JtL1Bhc3RlYm9hcmQuCisgICAg
Ly8gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGNhdXNlcyB0aGUgUGFyc2VyIHRvIHJlbW92
ZSBjaGlsZHJlbgorICAgIC8vIGZyb20gPHNjcmlwdD4gdGFncyAoc28gamF2YXNjcmlwdCBkb2Vz
bid0IHNob3cgdXAgaW4gcGFzdGVzKS4KKyAgICBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24g
bV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IDI3ZjAxNjM0ZmQyOTAwMzY2MDkwYTcyOWNlMDk4MTMwMmFkYTA4
N2YuLjRiYzQ2N2FkY2U3ZDhlNjQ4Mzk3NGU2YjUwNDk3MTE1NWUzNzEzYjQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yMDk5LDcgKzIwOTksNyBAQCB2b2lkIEhUTUxEb2N1
bWVudFBhcnNlcjo6c2V0U3JjKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQogICAgIG1f
c3JjID0gc291cmNlOwogfQogCi12b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK3ZvaWQgcGFyc2VMZWdhY3lIVE1M
RG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9jdW1lbnRGcmFnbWVudCog
ZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9u
KQogewogICAgIEhUTUxEb2N1bWVudFBhcnNlciBwYXJzZXIoZnJhZ21lbnQsIHNjcmlwdGluZ1Bl
cm1pc3Npb24pOwogICAgIHBhcnNlci5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGI2ZGVkZjI4NDUyODVhNDMwOTBiODkwZmZmMzgxNzhi
NWI0MmM1NzUuLjM3MWEwN2Y4ZWRlODc0NWE3Zjk4YmI4MWI3MmM2ZWI5ZTVhZGY5MzcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIK
LSNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgorI2luY2x1ZGUgIkZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUg
IlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC00NDAsNyArNDQwLDcg
QEAgcHJpdmF0ZToKICAgICBPd25QdHI8UHJlbG9hZFNjYW5uZXI+IG1fcHJlbG9hZFNjYW5uZXI7
CiB9OwogCi12b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9j
dW1lbnRGcmFnbWVudCosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2Ny
aXB0aW5nQWxsb3dlZCk7Cit2b2lkIHBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJhZ21lbnQoY29u
c3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
biA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAKIFVDaGFyIGRlY29kZU5hbWVkRW50aXR5
KGNvbnN0IGNoYXIqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggMDU5ZjBhMWY4OWVlYjJiNzVm
YzYzN2NiODM3NzM0MjQ5MjU1ZWI3NC4uMDcyNjk3Nzc3NDFkZTUwYjliYzJiYmJkZTQ4ODU4NDg2
OGI1MTI3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0zOSwxMyArMzksMTEgQEAKICNpbmNsdWRl
ICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJXb3JkQnJlYWsuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
ICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTU0OSwxMyAr
NTQ3LDEzIEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudEVsZW1lbnQoY29u
c3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCogbmV3Q2hpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEVsZW1lbnQqPihyZXR1cm5WYWx1ZSk7IAogfQogCi12b2lkIEhUTUxFbGVtZW50OjppbnNlcnRB
ZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBodG1sLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25z
dCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxEb2N1
bWVudCgpKQotICAgICAgICAgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBmcmFnbWVu
dC5nZXQoKSk7CisgICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCk7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGlmICghcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50
LmdldCgpLCB0aGlzKSkKKyAgICAgICAgaWYgKCFmcmFnbWVudC0+cGFyc2VYTUwobWFya3VwLCB0
aGlzKSkKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvcGFnYXRlIGEgc3ludGF4
IGVycm9yIGV4Y2VwdGlvbiBvdXQgaGVyZS4KICAgICAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIGIvV2Vi
Q29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaAppbmRleCBhYjFmNWFhZmRkZjA0
ZjlhMzIwNjI3Y2JmM2VjY2UzNGUxMmU2MTVmLi5jMTU2MDZiNDRhMWMwZGMzZmQxNGY3NDk2ZTNm
ZmY3MjdmYzkwM2Q2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTFRyZWVDb25z
dHJ1Y3Rvci5oCisrKyBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yLmgK
QEAgLTI0LDggKzI0LDggQEAKICNpZm5kZWYgSFRNTFBhcnNlcl9oCiAjZGVmaW5lIEhUTUxQYXJz
ZXJfaAogCisjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlckVycm9yQ29kZXMuaCIKLSNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVFbnRy
eS5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCmluZGV4IDAzZWRlMDM0N2I2MjhmZmU0NjcxYTFmZDlmZDc2MDAyNTgyMzE0OTAuLmJiYTdj
YWM1MjRkZmZmNDkwNzQ3YmNlMTJjY2I0ZmNiODc5ZGIzOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbQpAQCAtMzc4LDYgKzM3OCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNz
UmVmUAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChbSFRNTFN0cmluZyBs
ZW5ndGhdICE9IDApIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBGcmFnbWVudFNjcmlwdGluZ05v
dEFsbG93ZWQgaXMgYSBIQUNLIGFuZCBzaG91bGQKKyAgICAgICAgICAgIC8vIGJlIHJlbW92ZWQg
b3IgcmVwbGFjZWQgd2l0aCBhbiBlbnVtIHdpdGggYSBiZXR0ZXIgbmFtZS4KKyAgICAgICAgICAg
IC8vIEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBjYXVzZXMgdGhlIFBhcnNlciB0byByZW1v
dmUgY2hpbGRyZW4KKyAgICAgICAgICAgIC8vIG9mIDxzY3JpcHQ+IHRhZ3MgKHNvIGphdmFzY3Jp
cHQgZG9lc24ndCBzaG93IHVwIGluIHBhc3RlcykuCiAgICAgICAgICAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoZnJhbWUtPmRv
Y3VtZW50KCksIEhUTUxTdHJpbmcsICIiLCBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQpOwog
ICAgICAgICAgICAgaWYgKGZyYWdtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVu
dC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcCBi
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDk3YjU0NjY3OThmMTFiNmI3ZGJh
MmZlMzFhMjg2YWQ5ZWMzZTgzNzAuLmM5NWE0ODM4YTU0NTFiNWZkZjBiZTk1ZDAyY2Y3NTAzNDE5
M2ViNWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCisrKyBiL1dl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0zMywxMyArMzMsMTIgQEAKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgotI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIiAvLyBmb3IgcGFyc2VI
VE1MRG9jdW1lbnRGcmFnbWVudAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgotI2luY2x1ZGUgIlhNTERvY3VtZW50
UGFyc2VyLmgiCiAjaW5jbHVkZSAibG9hZGVyLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAt
MTAwLDE0ICs5OSwxNCBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBYU0xUUHJvY2Vzc29yOjpjcmVh
dGVEb2N1bWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyYwogCiBzdGF0aWMgaW5saW5l
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29uc3Qg
U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERvY3Vt
ZW50KiBvdXRwdXREb2MpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG91dHB1dERvYyk7CisgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gb3V0cHV0RG9jLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7CiAKICAgICBpZiAoc291cmNlTUlNRVR5cGUgPT0gInRleHQvaHRtbCIpCi0gICAgICAgIHBh
cnNlSFRNTERvY3VtZW50RnJhZ21lbnQoc291cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSk7Cisg
ICAgICAgIGZyYWdtZW50LT5wYXJzZUhUTUwoc291cmNlU3RyaW5nKTsKICAgICBlbHNlIGlmIChz
b3VyY2VNSU1FVHlwZSA9PSAidGV4dC9wbGFpbiIpCiAgICAgICAgIGZyYWdtZW50LT5hZGRDaGls
ZChUZXh0OjpjcmVhdGUob3V0cHV0RG9jLCBzb3VyY2VTdHJpbmcpKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgYm9vbCBzdWNjZXNzZnVsUGFyc2UgPSBwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoc291
cmNlU3RyaW5nLCBmcmFnbWVudC5nZXQoKSwgb3V0cHV0RG9jLT5kb2N1bWVudEVsZW1lbnQoKSk7
CisgICAgICAgIGJvb2wgc3VjY2Vzc2Z1bFBhcnNlID0gZnJhZ21lbnQtPnBhcnNlWE1MKHNvdXJj
ZVN0cmluZywgb3V0cHV0RG9jLT5kb2N1bWVudEVsZW1lbnQoKSk7CiAgICAgICAgIGlmICghc3Vj
Y2Vzc2Z1bFBhcnNlKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59337</attachid>
            <date>2010-06-21 22:12:32 -0700</date>
            <delta_ts>2010-06-21 22:53:38 -0700</delta_ts>
            <desc>helps if you git add the new file</desc>
            <filename>bug-40645-20100621221231.patch</filename>
            <type>text/plain</type>
            <size>50619</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDcxODZkOWQzMmE0Y2E2OGExYWJkOGFiNjdiZGZkMzNkYjU3NmQ2Li45ODkwMGJk
YTBmMGJmOTUzZWIwZTMxNjg4YmE0MzY1MDYwYWQ5ZjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGcmFnbWVu
dCBwYXJzaW5nIG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIEhUTUw1IFBhcnNlciBjb2RlIHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjQ1CisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgIC0gXDAgaXMgbm93IGNvbnZlcnRlZCB0byBcdUZGRkQgcGVyIEhUTUw1
LgorICAgICAgICAqIGZhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAgLSA8dGV4dGFyZWE+IGlzIHBhcnNlZCBpbiB0aGUgUkNEQVRBIHN0YXRl
LCB3aGljaCBtZWFucworICAgICAgICAgICB0aGF0IGNvbW1lbnRzIGFyZSBpZ25vcmVkLCB0aHVz
IHRoZSA8L3RleHRhcmVhPiBpbiB0aGUKKyAgICAgICAgICAgY29tbWVudCBjb3JyZWN0bHkgY2xv
c2VzIHRoZSA8dGV4dGFyZWE+LiAgVGhpcyB0ZXN0IGlzIGludmFsaWQuCisgICAgICAgICAgIE91
ciBuZXcgYmVoYXZpb3IgbWF0Y2hlcyBtaW5lZmllbGQuCisgICAgICAgICogZmFzdC90b2tlbml6
ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAtIFRoaXMgdGVzdCBpcyBpbnZhbGlkIGFuZCBwcm9iYWJseSBzaG91bGQganVzdCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICBUaGlzIHNhbWUgYmVoYXZpb3IgaXMgdGVzdGVkIGJ5IGZhc3Qv
aW52YWxpZC8wMTYuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFRoZSAiZXh0cmEiIFBhcnNlSFRNTCBpcyBleHBl
Y3RlZC4gIFRoZSBIVE1MNSBQYXJzZXIgdGVsbHMgdGhlCisgICAgICAgICAgIGluc3BlY3RvciBh
Ym91dCBldmVyeSBwYXJzZXIgcHVtcCwgZXZlbiBvbmVzIHdoaWNoIHB1bXAgbm8gZGF0YS4KKyAg
ICAgICAgICAgVGhlIEhUTUw1IHBhcnNlciBwdW1wcyBvbmUgbGFzdCB0aW1lIGluIGZpbmlzaCgp
IHRvIGZsdXNoIGFueQorICAgICAgICAgICBidWZmZXJlZCBjaGFyYWN0ZXJzLiAgRXZlbnR1YWxs
eSB3ZSdsbCB0ZWFjaCB0aGUgaW5zcGVjdG9yIHRvCisgICAgICAgICAgIGZpbHRlciBvdXQgKG5v
dCBkaXNwbGF5KSAwLXNpemVkIHB1bXBzLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIFwwIGlzIG5vdyBjb252ZXJ0
ZWQgdG8gXHVGRkZEIHBlciBIVE1MNQorICAgICAgICAqIHN2Zy9kb20vZnV6ei1wYXRoLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvLgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNl
ci1leHBlY3RlZC50eHQ6IGRpdHRvCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWIt
cHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6IGRpdHRvLgorCisyMDEwLTA2LTIx
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBUd28gZmFzdC9keW5hbWljIHRlc3RzIG5lZWRsZXNz
bHkgZGVwZW5kIG9uIGxlZ2FjeSA8dGFnPHRhZz4gcGFyc2luZyBiZWhhdmlvcgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5NDYKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWdldENvbnRleHQtaW52YWxpZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZh
bGlkLWV4cGVjdGVkLnR4dAppbmRleCAyZjI0ZThlZDA0ZGJmYWIzZjIwMDk5YmY2ZTcyNWNjZjIz
YmQ1YWJiLi4zNGIxNDlkYjc4YzE3ZmZiOWJhZGU3ZDJiODA4YzEzYjA1NTczODc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4
dC1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdl
dENvbnRleHQoJzJkIycpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJ1RoaXMgaXMg
Y2xlYXJseSBub3QgYSB2YWxpZCBjb250ZXh0IG5hbWUuJykgaXMgbnVsbAotUEFTUyBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKSBpcyBudWxsCitQQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/vScp
IGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQoJzLvvYQnKSBpcyBudWxsCiBQQVNTIGNh
bnZhcy5nZXRDb250ZXh0KCcyRCcpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NDM3NTczYjU0NDZkZmNjZGI3NzQxNzkzZDZjY2MwYjE3ZGM0
NjcuLjZkMjhlNjRiODJiODNhNjc4NTEyZDAzNjk4MWIzOWFmOGRiZWIwMmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG51bGwgY2hhcmFjdGVycyBhcmUg
YWxsb3dlZCBpbiBKYXZhU2NyaXB0IHN0cmluZ3MsIHJhdGhlcgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgU3RyaW5nKCIiKS5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcoIu+/
vSIpLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0CmluZGV4IGYwMmYwOTEzN2UxODE0MjhjZjMzYjk4YzMyNjUxNTYzNDU2Mzg0ZTku
LjRmZWRiMTlkNzcyNjg5NmE4MzExZWFkMjNkMDBmZGIyYTlmMjg3YmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgY29ycmVjdG5lc3MgYW5kIGJlaGF2aW91ciBvZiBz
d2l0Y2ggc3RhdGVtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNo
YXJhY3RlclN3aXRjaCgnJykgaXMgIiIKK1BBU1MgY2hhcmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi
77+9IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKCdhJykgaXMgImEiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnMScpIGlzICIxIgpAQCAtMTks
NyArMTksNyBAQCBQQVNTIGNoYXJhY3RlclN3aXRjaCgtMSkgaXMgImRlZmF1bHQiCiBQQVNTIGNo
YXJhY3RlclN3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIGNoYXJhY3RlclN3
aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKHt9KSBp
cyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcnKSBpcyAiIgorUEFTUyBz
cGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCiBQQVNTIHNwYXJzZUNoYXJhY3Rl
clN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ2EnKSBpcyAi
YSIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0zNSw3ICszNSw3
IEBAIFBBU1Mgc3BhcnNlQ2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3Bh
cnNlQ2hhcmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNl
Q2hhcmFjdGVyU3dpdGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VDaGFy
YWN0ZXJTd2l0Y2goe30pIGlzICJkZWZhdWx0IgotUEFTUyBzdHJpbmdTd2l0Y2goJycpIGlzICIi
CitQQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMgIu+/vSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdB
JykgaXMgIkEiCiBQQVNTIHN0cmluZ1N3aXRjaCgnYScpIGlzICJhIgogUEFTUyBzdHJpbmdTd2l0
Y2goJzEnKSBpcyAiMSIKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBzdHJpbmdTd2l0Y2goLTEpIGlz
ICJkZWZhdWx0IgogUEFTUyBzdHJpbmdTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0Igog
UEFTUyBzdHJpbmdTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3
aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIG51bWJlclN3aXRjaCgnJykgaXMgImRlZmF1bHQi
CitQQVNTIG51bWJlclN3aXRjaCgn77+9JykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRj
aCgnQScpIGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC03MSw3ICs3MSw3IEBAIFBB
U1MgbnVtYmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBudW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzICJkZWZhdWx0IgogUEFTUyBudW1iZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQi
CiBQQVNTIG51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHNwYXJzZU51bWJlclN3
aXRjaCgnJykgaXMgImRlZmF1bHQiCitQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgn77+9JykgaXMg
ImRlZmF1bHQiCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgnQScpIGlzICJkZWZhdWx0IgogUEFT
UyBzcGFyc2VOdW1iZXJTd2l0Y2goJ2EnKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVy
U3dpdGNoKCcxJykgaXMgImRlZmF1bHQiCkBAIC04OSw3ICs4OSw3IEBAIFBBU1Mgc3BhcnNlTnVt
YmVyU3dpdGNoKC0xKSBpcyAtMQogUEFTUyBzcGFyc2VOdW1iZXJTd2l0Y2goLTEwMDAwMDAwMDAp
IGlzIC0xMDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAx
MDAwMDAwMDAwCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNT
IGdlbmVyYWxTd2l0Y2goJycpIGlzICIiCitQQVNTIGdlbmVyYWxTd2l0Y2goJ++/vScpIGlzICLv
v70iCiBQQVNTIGdlbmVyYWxTd2l0Y2goJ0EnKSBpcyAiQSIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgn
YScpIGlzICJhIgogUEFTUyBnZW5lcmFsU3dpdGNoKCcxJykgaXMgIjEiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3BhcnNlci9jb21tZW50LWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0
CmluZGV4IGIyYTBkZmM3ZGZiZTc0OTQ2NjQ2ZTY1YzVjNWM5Y2I3MTA0ZDY2YzIuLmFlZGMxN2Nl
OTQwY2EzODMxNTRiNDRiMDAzNDUxZDM0ODEzYjNhMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2NvbW1lbnQtaW4tdGV4dGFyZWEtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGV4dEFyZWFzLmxl
bmd0aCBpcyAxCi1QQVNTIHRleHRBcmVhc1swXS5pbm5lckhUTUwgaXMgIiZsdDshLS0gJmx0Oy90
ZXh0YXJlYSZndDsgLS0mZ3Q7IFRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHRleHRhcmVhIgor
RkFJTCB0ZXh0QXJlYXNbMF0uaW5uZXJIVE1MIHNob3VsZCBiZSAmbHQ7IS0tICZsdDsvdGV4dGFy
ZWEmZ3Q7IC0tJmd0OyBUaGlzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSB0ZXh0YXJlYS4gV2FzICZs
dDshLS0gLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Ci0KKyAtLT4gVGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgdGV4dGFyZWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2xlc3N0aGFuLXRlcm1pbmF0ZXMtdGFncy1hbmQt
YXR0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4t
dGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKaW5kZXggNjNkODVmZDg0ZmFm
NzNkYTg2YzJkMWIyOTg5ZWI2NzQ1N2Y1YjY4Yy4uZDA2ZTUwODkyOTJiM2E5OGVlMTFmMjY0Zjdk
MzdlMTA4YjE4MmJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVz
c3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90b2tlbml6ZXIvbGVzc3RoYW4tdGVybWluYXRlcy10YWdzLWFuZC1hdHRycy1l
eHBlY3RlZC50eHQKQEAgLTIsNiArMiw2IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTYgUkVQUk86IFNhZmFyaSBoYW5ncyBsb2FkaW5nCiAKIFRl
c3RzIHRoYXQgdGhlIOKAnDzigJ0gY2hhcmFjdGVyIHRlcm1pbmF0ZXMgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMuCiAKLVBBU1M6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbz48YmFyPjwvYmFyPjwv
Zm9vPgotUEFTUzogPGZvbyBiYXI8YmF6PiBwYXJzZWQgYXMgPGZvbyBiYXI9IiI+PGJhej48L2Jh
ej48L2Zvbz4KK0ZBSUw6IDxmb288YmFyPiBwYXJzZWQgYXMgPGZvbzxiYXI+PC9mb288YmFyPiBp
bnN0ZWFkIG9mIDxmb28+PGJhcj48L2Jhcj48L2Zvbz4KK0ZBSUw6IDxmb28gYmFyPGJhej4gcGFy
c2VkIGFzIDxmb28gYmFyPGJhej0iIj48L2Zvbz4gaW5zdGVhZCBvZiA8Zm9vIGJhcj0iIj48YmF6
PjwvYmF6PjwvZm9vPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggNDcxOGFkYWEzNTU1OTA3ZmU5YmRiMTNk
MjkyMDMxM2I0N2ZmMmVjMi4uZTZmNDU0MTI4ODBkMmE0NjMxMjEyZmFkN2VkNDZiMDFhZjIxZTEw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1o
dG1sLWV4cGVjdGVkLnR4dApAQCAtMTQsNCArMTQsMTggQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KIH0KK1BhcnNlSFRNTCBQcm9wZXJ0aWVzOgoreworICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+
CisgICAgZGF0YSA6IHsKKyAgICAgICAgbGVuZ3RoIDogMAorICAgICAgICBzdGFydExpbmUgOiAw
CisgICAgICAgIGVuZExpbmUgOiAwCisgICAgfQorICAgIGNoaWxkcmVuIDogPG9iamVjdD4KKyAg
ICBlbmRUaW1lIDogPG51bWJlcj4KKyAgICB0eXBlIDogNAorICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CisgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+Cit9CiBUZXN0IGRhdGEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvY29tcGxleC12YWx1ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2ZjE5ZjRiYzE0
YzYuLjlhNzVlNDJlM2ZhNjQ4MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4
cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285
JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawog
UEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydm
b28xMSddIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFT
UyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlz
ICLul4HDv+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFo
ZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxv
Igogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28x
MiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8i
CitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/
7LChaGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNT
IHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0
ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiAKIAogVGVzdGluZyBsb2NhbFN0b3Jh
Z2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMg
IjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMCcpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEwJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0
eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSdd
IGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/
vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9y
YWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HD
v+ywoe+/vWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJz
dHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9vMTEnKSBpcyAi7peBw7/ssKFoZWxsbyIK
K1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICLul4HDv+ywoe+/vWhlbGxvIgogc3Rv
cmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlz
ICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LChaGVsbG8iCitQQVNT
IHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9y
YWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LChaGVs
bG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHR5cGVv
ZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJ
dGVtKCdmb28xMicpIGlzICLul4HDv+ywoWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2Zv
bzEyJykgaXMgIu6XgcO/7LCh77+9aGVsbG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0
aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDNlODFkZjBiYjIyODZiNzIxZDFjNDE3OWQyMzQ3
ZjVmOTc2ZDU5NDcuLmQ5MjVkZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4
dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0IGNvbW1hbmQocykgW01DQ0NdOiBNMSwx
UTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIsMSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMg
MSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIgMiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4
LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxsMyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2
LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENvdWxkIG5vdCBwYXJzZTogTQotQ291bGQg
bm90IHBhcnNlOiBNCitDb3VsZCBub3QgcGFyc2U6IE3vv70KIFBhcnNlZCBhcyAyIGNvbW1hbmQo
cykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4
IDQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUuLjJmNTc3ZWMxOTgxZTg3
OWI3NGM1ZmQ1ZGU4YTE3Y2E5ZmNlNDUwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9k
b20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMjU0LDggKzI1NCw4IEBAIFRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKC4yNysKIFRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBU
aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNl
cHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjog
RE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKK1RocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiDvv70KK1Ro
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAxOiByZ2Io77+9KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1
Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMuLjI4MzlhODY2MzJi
MmNmODZlMzdhZTg3YmEwMDZiZjk0YzI1NTk0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBUZXN0IFdlYlNvY2tldCBiYWQg
c3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hhcmFjdGVycy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAv
c2ltcGxlIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUi
LCAi77+9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIJ
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIKICIpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZjZWM0YzJiMjg5MWIyNjQ5
YWI2ZThhZDRiY2FkN2UwZTMxNWNkYjUuLmJkNmI2YTIyNDc1MmM0MWVlMzNjZTU3NDMyMzMwMjM4
NTMxZmIxYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTAtMDYtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyYWdtZW50IHBhcnNpbmcgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgSFRNTDUgUGFyc2Vy
IGNvZGUgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDA2NDUKKworICAgICAgICBBZGRlZCBhIG5ldyBIVE1MNURvY3VtZW50UGFyc2VyOjpwYXJz
ZUhUTUxEb2N1bWVudEZyYWdtZW50CisgICAgICAgIGNvZGVwYXRoIHdoaWNoIG9wdGlvbmFsbHkg
Y2FsbHMgdGhyb3VnaCB0byB0aGUgb2xkIGZyYWdtZW50CisgICAgICAgIHBhcnNpbmcgcGF0aCwg
bm93IHJlbmFtZWQgcGFyc2VMZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudC4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUNvbnRl
eHR1YWxGcmFnbWVudCk6CisgICAgICAgICAtIFVzZSBkb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgaW5zdGVhZAorICAgICAgICAgICBvZiBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKSB0byBtYXRjaCBvdGhlciBjYWxsZXJzCisgICAgICAgICAgIChhbmQgbm90IGRlcGVuZCBv
biBEb2N1bWVudEZyYWdtZW50LmgpLgorICAgICAgICAgLSBVcGRhdGUgY2FsbCB0byBwYXJzZUhU
TUxEb2N1bWVudEZyYWdtZW50IHRvIHVzZSB0aGUgbmV3CisgICAgICAgICAgIEhUTUw1IHBhcnNl
ciBjb2RlcGF0aC4KKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAg
ICAgIC0gQWRkIGEgRklYTUUgYWJvdXQgdGhpcyBob3JyaWJsZSBlbnVtIHBsYWNlbWVudC4KKyAg
ICAgICAgICAgU2FkbHkgdGhpcyB3aWxsIGNhdXNlIGEgd29ybGQtcmVidWlsZCBmb3IgZXZlcnlv
bmUuCisgICAgICAgICogaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVD
b25zdHJ1Y3Rvcik6CisgICAgICAgICAtIFRoZSBtYWluIHB1bXBMZXhlciBmdW5jdGlvbiBoYXMg
Z290dGVuIHRvIGxhcmdlLiAgTW92ZSB0aGUgc2NyaXB0CisgICAgICAgICAgIHJ1bm5pbmcgbG9n
aWMgaW50byB0aGlzIG5ldyBmdW5jdGlvbi4KKyAgICAgICAgIC0gSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgbm8gbV9zY3JpcHRSdW5uZXIgKGZyYWdtZW50IGNhc2UpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0gVXNl
IG5ldyBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUNvbnN0cnVjdG9yKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpleGVjdXRpbmdTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAg
LSBOZXcgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG1fc2NyaXB0UnVubmVyIGlz
IG51bGwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJz
aW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAgLSBVc2UgaW5TY3JpcHRFeGVjdXRp
b24oKSBpbnN0ZWFkIG9mIG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlwdCk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6bm90aWZ5RmluaXNoZWQp
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRVc2VMZWdhY3lQYXJzZXIpOgorICAgICAgICAgLSBIZWxwZXIgZnVuY3Rpb24gdG8gY2hl
Y2sgdGhlIGh0bWw1UGFyc2VyRW5hYmxlZCgpIHNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MNURvY3VtZW50UGFyc2VyOjpwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAg
IC0gUnVuIEhUTUw1RG9jdW1lbnRQYXJzZXIgaW4gZnJhZ21lbnQgbW9kZSwgb3Igb3B0aW9uYWxs
eSBydW4KKyAgICAgICAgICAgdGhlIGxlZ2FjeSBwYXJzZXIgaWYgIWh0bWw1UGFyc2VyRW5hYmxl
ZCgpLgorICAgICAgICAqIGh0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGh0
bWwvSFRNTDVUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRyZWVCdWls
ZGVyOjpIVE1MNVRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VHJlZUJ1aWxk
ZXI6OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgIC0gSW1wbGVtZW50IHRoZSBG
cmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgaGFjayBmb3IgcGxhdGZvcm0vUGFzdGVib2FyZC4K
KyAgICAgICAgKiBodG1sL0hUTUw1VHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxlZ2FjeUhUTUxEb2N1
bWVudEZyYWdtZW50KToKKyAgICAgICAgIC0gUmVuYW1lZCBmcm9tIHBhcnNlSFRNTERvY3VtZW50
RnJhZ21lbnQKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTCk6CisgICAgICAgICAtIENhbGwgSFRNTDVEb2N1bWVudFBhcnNlcjo6
cGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQpOiBkaXR0by4KKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UpOiBkaXR0by4KKwogMjAxMC0wNi0yMSAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIE5vIHJldmll
dy4gUVQgYnVpbGQgZml4IGFnYWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZGQzMjM2MmE4ODk1ZTQ2OTkwNTRiZDc0
NjZmMDEwMWI3MjlkN2NkZS4uMGExYjhiNGY4YWJkYjE4NzdhNDgwYTI5MTliMzU4YzQ2YTIzMzBl
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC04MDksNiArODA5LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL2RvbS9FeGNlcHRpb25CYXNlLmggXAogCVdlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3Bw
IFwKIAlXZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmggXAorCVdlYkNvcmUvZG9tL0ZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbi5oIFwKIAlXZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwIFwK
IAlXZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVu
dC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAyOTM3N2Q1ZDJiYmViNGYxYjgyODBmMzNkMjU1M2JhMmEwNTc5MzRjLi5m
MDEyMmRhNmM1Mjk5MDhmYzZlY2Y2MDRiNTA0Y2Q1ODJlM2ZiYTFiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTEzNiw2ICsx
MTM2LDcgQEAKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFzZS5oJywKICAgICAgICAgICAg
ICdkb20vRXhjZXB0aW9uQ29kZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25Db2Rl
LmgnLAorICAgICAgICAgICAgJ2RvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCcsCiAg
ICAgICAgICAgICAnZG9tL0lucHV0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9JbnB1
dEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0tleWJvYXJkRXZlbnQuY3BwJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGEz
MjNhMDc5NGM5NzQzOWI0NTAxOWZkN2QyZDc2NWNiYzFjNTM3NDYuLjUwOTFjMmJkNDMzNzMzNmQz
YWU0MWEyMzVjNDQ0OGJhZjJhMzkyYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTIyMyw2ICsxMjIzLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgZG9tL0V2ZW50VGFyZ2V0LmggXAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmggXAog
ICAgIGRvbS9FeGNlcHRpb25Db2RlLmggXAorICAgIGRvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24uaCBcCiAgICAgZG9tL0lucHV0RWxlbWVudC5oIFwKICAgICBkb20vS2V5Ym9hcmRFdmVu
dC5oIFwKICAgICBkb20vTWVzc2FnZUNoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhNzM5MzMzZDc3YTQ3ZmJkMDdhNWQ1ODJjNTFkNWE1
ZWY2MzY2YWYuLjczZjdiYzFmMjlhMDAwNDVhNTc0NTA3NTYzOGZlODM3NGE3MjA0MTkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTY0LDYgKzI5NjQs
NyBAQAogCQlBODRFQkQ3ODBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRF
QkQ3NzBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgKi87IH07
CiAJCUE4NEVCRDgzMENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ4MTBDQjhDOTc3
MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oICovOyB9OwogCQlBODRFQkQ4NDBDQjhDOTc3
MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRFQkQ4MjBDQjhDOTc3MDAwNzk2MDkgLyogSlNTdHls
ZVNoZWV0TGlzdC5jcHAgKi87IH07CisJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4NTMxMjNDMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDOTA5REEyQjQ3
MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggKi87IH07CiAJCUE4NjYyOUQwMDlEQTJCNDgwMDk2MzNB
NSAvKiBKU1VJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTg2NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgKi87IH07
CiAJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNCMDlEQTJCNDcwMDk2
MzNBNSAvKiBKU01vdXNlRXZlbnQuaCAqLzsgfTsKQEAgLTg0MzQsNiArODQzNSw3IEBACiAJCUE4
NEVCRDc3MENCOEM4OTIwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldExpc3RDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODRFQkQ4MTBDQjhDOTc3MDAwNzk2
MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1N0eWxlU2hlZXRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NEVC
RDgyMENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldExpc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODUzMTIzQzExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IFF1YXJ0ekNvcmUuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CiAJCUE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVUlFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODY2MjlDQTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1VJRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY4NDMsNiArMTY4NDUsNyBAQAogCQkJCTU0QzUw
RjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwICovLAog
CQkJCTVEMTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNw
cCAqLywKIAkJCQk1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MRG9jdW1lbnRQYXJzZXJT
Y29wZS5oICovLAorCQkJCUE4NTMxMjNDMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZG9tOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE5NDk1LDYgKzE5NDk4LDcgQEAKIAkJCQkxQUE4Nzk5MDExQ0JF
ODQ2MDAzQzY2NEYgLyogUGx1Z2luU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1NkVC
QTg1MTFDOUZGODEwMEIwNDQ3NyAvKiBTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGY3
ZGY4ZjZmZDk5NzJmMzhhZjNmZGY2MjlhNjg1YmZmY2U1YmI0YzUuLjBkNzdlNGU0Y2M4NGQ2OWEz
MTYwMDk3ODExY2RmYjVmZmQ1ZGEzYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0y
NCwxMiArMjQsMTggQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRl
ICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKKyNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGlubGluZSBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCiB7CisgICAgQVNT
RVJUKGRvY3VtZW50KTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNzAsNCArNzYsMjYgQEAg
UGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGUoYm9vbCBkZWVwKQog
ICAgIHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CiB9CiAKK2Jvb2wgRG9jdW1lbnRGcmFnbWVudDo6
c2hvdWxkVXNlTGVnYWN5SFRNTFBhcnNlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50
KCktPnBhZ2UoKSAmJiBkb2N1bWVudCgpLT5wYWdlKCktPnNldHRpbmdzKCkKKyAgICAgICAgJiYg
IWRvY3VtZW50KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+aHRtbDVQYXJzZXJFbmFibGVkKCk7Cit9
CisKK3ZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmluZyYgc291cmNl
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK3sKKyAg
ICBpZiAoc2hvdWxkVXNlTGVnYWN5SFRNTFBhcnNlcigpKQorICAgICAgICByZXR1cm4gcGFyc2VM
ZWdhY3lIVE1MRG9jdW1lbnRGcmFnbWVudChzb3VyY2UsIHRoaXMsIHNjcmlwdGluZ1Blcm1pc3Np
b24pOworCisgICAgSFRNTDVEb2N1bWVudFBhcnNlciBwYXJzZXIodGhpcywgc2NyaXB0aW5nUGVy
bWlzc2lvbik7CisgICAgcGFyc2VyLndyaXRlKHNvdXJjZSwgZmFsc2UpOworICAgIHBhcnNlci5m
aW5pc2goKTsKKyAgICBBU1NFUlQoIXBhcnNlci5wcm9jZXNzaW5nRGF0YSgpKTsgLy8gTWFrZSBz
dXJlIHdlJ3JlIGRvbmUuIDxyZGFyOi8vcHJvYmxlbS8zOTYzMTUxPgorfQorCitib29sIERvY3Vt
ZW50RnJhZ21lbnQ6OnBhcnNlWE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBFbGVtZW50KiBwYXJl
bnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorewor
ICAgIHJldHVybiBwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoc291cmNlLCB0aGlzLCBwYXJlbnQs
IHNjcmlwdGluZ1Blcm1pc3Npb24pOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXgg
ZTYyNGVlNGNjZWViYTA4MDE2N2JiZTE0YmQ5MWYyMjUyM2E5M2VjMC4uNWVmZjE3ZmNhYzA3ZTc2
ZDYyNzNjN2IzYzM0N2JkZjNhY2MzODdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMjUs
NiArMjUsNyBAQAogI2RlZmluZSBEb2N1bWVudEZyYWdtZW50X2gKIAogI2luY2x1ZGUgIkNvbnRh
aW5lck5vZGUuaCIKKyNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw5ICszMywxNCBAQCBjbGFzcyBEb2N1bWVudEZy
YWdtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCisgICAgdm9pZCBw
YXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJh
Z21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKKyAgICBib29sIHBhcnNlWE1MKGNvbnN0IFN0cmluZyYs
IEVsZW1lbnQqIHBhcmVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRT
Y3JpcHRpbmdBbGxvd2VkKTsKKwogcHJpdmF0ZToKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3Vt
ZW50Kik7CiAKKyAgICBib29sIHNob3VsZFVzZUxlZ2FjeUhUTUxQYXJzZXIoKSBjb25zdDsKKwog
ICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOb2RlVHlw
ZSBub2RlVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5v
ZGUoYm9vbCBkZWVwKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTU5MTU4YTI5Y2Q1MzA2N2I4NTA5N2NjMDA5NWY2
YzJkMzgwYmFlYi4uMGE4MzgzMjJmZmUxMWUyZDNiMGEzMDYwZTNlZTBjNTFlZjcyMDgzOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxE
b2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgpAQCAtNTIsNyAr
NTEsNiBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCi0jaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAt
OTMsMTIgKzkxLDEyIEBAIE5vZGVSYXJlRGF0YSogRWxlbWVudDo6Y3JlYXRlUmFyZURhdGEoKQog
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUNvbnRleHR1YWxG
cmFnbWVudChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
IHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIAorICAg
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKKwogICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgp
KQotICAgICAgICBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KG1hcmt1cCwgZnJhZ21lbnQuZ2V0
KCksIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKG1h
cmt1cCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICghcGFy
c2VYTUxEb2N1bWVudEZyYWdtZW50KG1hcmt1cCwgZnJhZ21lbnQuZ2V0KCksIHRoaXMsIHNjcmlw
dGluZ1Blcm1pc3Npb24pKQorICAgICAgICBpZiAoIWZyYWdtZW50LT5wYXJzZVhNTChtYXJrdXAs
IHRoaXMsIHNjcmlwdGluZ1Blcm1pc3Npb24pKQogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBwcm9wYWdhdGUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uIG91dCBoZXJlLgogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGZjNzI5OGE3MzBkYzhlNjgxNzUzMDBiOGI1
ZjhmZmI0ZDE2ODg3YmIuLjlhODYzNDdkNWEzZWVhZDc1Mzc2Mjg0NmQ4N2VmMDlkN2I2MTUyYmMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNkZWZpbmUgRWxlbWVudF9oCiAKICNpbmNsdWRlICJE
b2N1bWVudC5oIgotI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCisjaW5jbHVkZSAi
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggYi9XZWJDb3JlL2RvbS9GcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzcxMDExZmU5ZmQxNjc1MGUwNzAyM2EwZjYxODQ3
N2E2OWFhYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b25faAorI2RlZmluZSBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb25faAorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIEZJWE1FOiBUaGlzIGVudW0gaXMgcG9vcmx5IG5hbWVkLiAgSXQgaXMg
dXNlZCB0byByZW1vdmUgc2NyaXB0IGNvbnRlbnRzIHdoZW4KKy8vIGdlbmVyYXRpbmcgRG9jdW1l
bnRGcmFnbWVudHMgZm9yIHBhc3RlIGluIHBsYXRmb3JtLyovUGFzdGVib2FyZC4qLgorZW51bSBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24geworICAgIEZyYWdtZW50U2NyaXB0aW5nQWxsb3dl
ZCwKKyAgICBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQsCit9OworCit9OworCisjZW5kaWYg
Ly8gRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L01hcHBlZEF0dHJpYnV0ZUVudHJ5LmggYi9XZWJDb3JlL2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRy
eS5oCmluZGV4IGNlMjQ2NGU3OTNiMmZkNjhkMzE4OWY4NjZiOTYwNWUzZGU5ZWNjMGYuLmYyOGYx
ODI4MWQ0NDJjMjVhYTE1MzcyZDI4ZDcyNDMxMTMyNDg4ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmgKKysrIGIvV2ViQ29yZS9kb20vTWFwcGVkQXR0cmli
dXRlRW50cnkuaApAQCAtNDgsOCArNDgsNiBAQCBlbnVtIE1hcHBlZEF0dHJpYnV0ZUVudHJ5IHsK
ICAgICAsIGVMYXN0RW50cnkKIH07CiAKLWVudW0gRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
IHsgRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkLCBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQg
fTsKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGNiOWU2MzI2NGVk
NGQ3YjBmNTUyNjcwYTQwZjBiMTYwZDZlYjEyMDIuLmJiN2QyNGIwYzEzOTdkOWRmMGYyZTM1NDUw
M2Q0ZWEzZjYxNzIzNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
LmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMjcsMTAgKzI3LDEw
IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKICNp
bmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMmExYmFj
NjA5M2Q3ZWRhYzk4ZDFlZWIzMWU4ZWVmNzY4OGY3NWZiNC4uZWExN2JmYWIxYTMxNjM3NWVkMWVl
NmMzNmYyYmNmMWQwMTk1YjliMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwCkBAIC0xMzgzLDYgKzEzODMsOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpyZXN1
bWVQYXJzaW5nKCkKICAgICAgICAgZW5kKCk7CiB9CiAKKy8vIEZJWE1FOiBUaGlzIG1ldGhvZCBz
aG91bGQgYmUgcG9zc2libGUgdG8gaW1wbGVtZW50IHVzaW5nIHRoZSBEb2N1bWVudFBhcnNlcgor
Ly8gQVBJLCBpbnN0ZWFkIG9mIG5lZWRpbmcgdG8gZ3JhYiBhdCBsaWJ4bWwyIHN0YXRlIGRpcmVj
dGx5LgogYm9vbCBwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBjaHVuaywg
RG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudCwgRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgaWYgKCFjaHVuay5s
ZW5ndGgoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuaAppbmRleCBmNjRmYjYxZWMyZjMyMTg3NDM1NzQzZDg1MGI5YzQ2NDY3
OGNjZjg3Li41NDI4MDk3NmM0NzkzMjkzMmQ1ODdlOGIzMjkyMjI1ZTUwNWY1NDQzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oCkBAIC0yNiw4ICsyNiw4IEBACiAjaWZuZGVmIG1hcmt1cF9oCiAjZGVmaW5lIG1hcmt1cF9o
CiAKKyNpbmNsdWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJI
VE1MSW50ZXJjaGFuZ2UuaCIKLSNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTDVEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggODljY2Y1NzkwOTNjMTA5OTljMDk1OTI1OTgy
NDk0YTlhN2RiYmE3NS4uN2UzZDhmMTI4MzQxNmVkZjUyYTI3MDM4OGNjZTBiMzFiNzc4NmU3YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUw1RG9jdW1lbnRQYXJzZXIuaCIKIAorI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIgLy8gT25seSBmb3IgaXNMYXlvdXRU
aW1lckFjdGl2ZQpAQCAtMzQsNyArMzUsNiBAQAogI2luY2x1ZGUgIkhUTUw1U2NyaXB0UnVubmVy
LmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiWFNT
QXVkaXRvci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtOTUsOCArOTUsNyBA
QCBzdGF0aWMgaW50IHBhcnNlckNodW5rU2l6ZShQYWdlKiBwYWdlKQogfQogCiBIVE1MNURvY3Vt
ZW50UGFyc2VyOjpIVE1MNURvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJv
b2wgcmVwb3J0RXJyb3JzKQotICAgIDogRG9jdW1lbnRQYXJzZXIoKQotICAgICwgbV9kb2N1bWVu
dChkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2xleGVyKG5l
dyBIVE1MNUxleGVyKQogICAgICwgbV9zY3JpcHRSdW5uZXIobmV3IEhUTUw1U2NyaXB0UnVubmVy
KGRvY3VtZW50LCB0aGlzKSkKICAgICAsIG1fdHJlZUNvbnN0cnVjdG9yKG5ldyBIVE1MNVRyZWVC
dWlsZGVyKG1fbGV4ZXIuZ2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQpAQCAtMTA5LDYg
KzEwOCwyMiBAQCBIVE1MNURvY3VtZW50UGFyc2VyOjpIVE1MNURvY3VtZW50UGFyc2VyKEhUTUxE
b2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJybwogICAgIGJlZ2luKCk7CiB9CiAKKy8v
IEZJWE1FOiBNZW1iZXIgdmFyaWFibGVzIHNob3VsZCBiZSBncm91cGVkIGludG8gc2VsZi1pbml0
aWFsaXppbmcgc3RydWN0cyB0bworLy8gbWluaW1pemUgY29kZSBkdXBsaWNhdGlvbiBiZXR3ZWVu
IHRoZXNlIGNvbnN0cnVjdG9ycy4KK0hUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQ
YXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIDogbV9kb2N1bWVudChmcmFnbWVudC0+ZG9j
dW1lbnQoKSkKKyAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCisgICAgLCBtX3RyZWVDb25z
dHJ1Y3RvcihuZXcgSFRNTDVUcmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBmcmFnbWVudCwgc2Ny
aXB0aW5nUGVybWlzc2lvbikpCisgICAgLCBtX2VuZFdhc0RlbGF5ZWQoZmFsc2UpCisgICAgLCBt
X3dyaXRlTmVzdGluZ0xldmVsKDApCisgICAgLy8gRklYTUU6IFBhcnNlciB5aWVsZGluZyBzaG91
bGQgYmUgYSBzZXBhcmF0ZSBjbGFzcy4KKyAgICAsIG1fcGFyc2VyVGltZUxpbWl0KDApCisgICAg
LCBtX3BhcnNlckNodW5rU2l6ZSgwKQorICAgICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRo
aXMsICZIVE1MNURvY3VtZW50UGFyc2VyOjpjb250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCit7
CisgICAgYmVnaW4oKTsKK30KKwogSFRNTDVEb2N1bWVudFBhcnNlcjo6fkhUTUw1RG9jdW1lbnRQ
YXJzZXIoKQogewogICAgIC8vIEZJWE1FOiBXZSdkIGxpa2UgdG8gQVNTRVJUIHRoYXQgbm9ybWFs
IG9wZXJhdGlvbiBvZiB0aGlzIGNsYXNzIGNsZWFycwpAQCAtMTc3LDYgKzE5MiwxOCBAQCBpbmxp
bmUgYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpzaG91bGRDb250aW51ZVBhcnNpbmcoUHVtcFNl
c3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVDb25zdHJ1Y3RvcigpCit7CisgICAgQVNT
RVJUKG1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsKKworICAgIGludCBzY3JpcHRTdGFy
dExpbmUgPSAwOworICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gbV90cmVlQ29u
c3RydWN0b3ItPnRha2VTY3JpcHRUb1Byb2Nlc3Moc2NyaXB0U3RhcnRMaW5lKTsKKyAgICAvLyBX
ZSB3aWxsIG5vdCBoYXZlIGEgc2NyaXB0UnVubmVyIHdoZW4gcGFyc2luZyBhIERvY3VtZW50RnJh
Z21lbnQuCisgICAgaWYgKCFtX3NjcmlwdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQucmVsZWFzZSgp
LCBzY3JpcHRTdGFydExpbmUpOworfQorCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBM
ZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIW1fcGFyc2VyU3RvcHBl
ZCk7CkBAIC0yMDMsMTQgKzIzMCwxMiBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBM
ZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKICAgICAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXIq
IHNjcmlwdENvbnRyb2xsZXIgPSBzY3JpcHQoKSkKICAgICAgICAgICAgIHNjcmlwdENvbnRyb2xs
ZXItPnNldEV2ZW50SGFuZGxlckxpbmVOdW1iZXIoMCk7CiAKKyAgICAgICAgLy8gVGhlIHBhcnNl
ciB3aWxsIHBhdXNlIGl0c2VsZiB3aGVuIHdhaXRpbmcgb24gYSBzY3JpcHQgdG8gbG9hZCBvciBy
dW4uCiAgICAgICAgIGlmICghbV90cmVlQ29uc3RydWN0b3ItPmlzUGF1c2VkKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAvLyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRzZWxm
IHdoZW4gd2FpdGluZyBvbiBhIHNjcmlwdCB0byBsb2FkIG9yIHJ1bi4KLSAgICAgICAgLy8gU2Ny
aXB0UnVubmVyIGV4ZWN1dGVzIHNjcmlwdHMgYXQgdGhlIHJpZ2h0IHRpbWVzIGFuZCBoYW5kbGVz
IHJlZW50cmFuY3kuCi0gICAgICAgIGludCBzY3JpcHRTdGFydExpbmUgPSAwOwotICAgICAgICBS
ZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCA9IG1fdHJlZUNvbnN0cnVjdG9yLT50YWtlU2Ny
aXB0VG9Qcm9jZXNzKHNjcmlwdFN0YXJ0TGluZSk7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGlu
dWVQYXJzaW5nID0gbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNl
KCksIHNjcmlwdFN0YXJ0TGluZSk7CisgICAgICAgIC8vIElmIHdlJ3JlIHBhdXNlZCB3YWl0aW5n
IGZvciBhIHNjcmlwdCwgd2UgdHJ5IHRvIGV4ZWN1dGUgc2NyaXB0cyBiZWZvcmUgY29udGludWlu
Zy4KKyAgICAgICAgYm9vbCBzaG91bGRDb250aW51ZVBhcnNpbmcgPSBydW5TY3JpcHRzRm9yUGF1
c2VkVHJlZUNvbnN0cnVjdG9yKCk7CiAgICAgICAgIG1fdHJlZUNvbnN0cnVjdG9yLT5zZXRQYXVz
ZWQoIXNob3VsZENvbnRpbnVlUGFyc2luZyk7CiAgICAgICAgIGlmICghc2hvdWxkQ29udGludWVQ
YXJzaW5nKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNDEsOCArMzY2LDE3IEBAIGJvb2wgSFRN
TDVEb2N1bWVudFBhcnNlcjo6ZmluaXNoV2FzQ2FsbGVkKCkKICAgICByZXR1cm4gbV9pbnB1dC5p
c0Nsb3NlZCgpOwogfQogCisvLyBUaGlzIGZ1bmN0aW9uIGlzIHZpcnR1YWwgYW5kIGp1c3QgZm9y
IHRoZSBEb2N1bWVudFBhcnNlciBpbnRlcmZhY2UuCiBpbnQgSFRNTDVEb2N1bWVudFBhcnNlcjo6
ZXhlY3V0aW5nU2NyaXB0KCkgY29uc3QKIHsKKyAgICByZXR1cm4gaW5TY3JpcHRFeGVjdXRpb24o
KTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBpcyBub24tdmlydHVhbCBhbmQgdXNlZCB0aHJvdWdo
b3V0IHRoZSBpbXBsZW1lbnRhdGlvbi4KK2Jvb2wgSFRNTDVEb2N1bWVudFBhcnNlcjo6aW5TY3Jp
cHRFeGVjdXRpb24oKSBjb25zdAoreworICAgIGlmICghbV9zY3JpcHRSdW5uZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gbV9zY3JpcHRSdW5uZXItPmluU2NyaXB0RXhlY3V0
aW9uKCk7CiB9CiAKQEAgLTM2OCw3ICs0MDIsNyBAQCBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OmlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdAogCiB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OnJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpCiB7Ci0gICAgQVNTRVJUKCFtX3Nj
cmlwdFJ1bm5lci0+aW5TY3JpcHRFeGVjdXRpb24oKSk7CisgICAgQVNTRVJUKCFpblNjcmlwdEV4
ZWN1dGlvbigpKTsKICAgICBBU1NFUlQoIW1fdHJlZUNvbnN0cnVjdG9yLT5pc1BhdXNlZCgpKTsK
IAogICAgIHB1bXBMZXhlcklmUG9zc2libGUoQWxsb3dZaWVsZCk7CkBAIC0zOTYsNyArNDMwLDcg
QEAgYm9vbCBIVE1MNURvY3VtZW50UGFyc2VyOjpzaG91bGRMb2FkRXh0ZXJuYWxTY3JpcHRGcm9t
U3JjKGNvbnN0IEF0b21pY1N0cmluZyYgc3IKIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpl
eGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7Ci0gICAg
QVNTRVJUKG1fc2NyaXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQo
aW5TY3JpcHRFeGVjdXRpb24oKSk7CiAgICAgaWYgKCFtX2RvY3VtZW50LT5mcmFtZSgpKQogICAg
ICAgICByZXR1cm47CiAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgc2F2ZWRJbnNlcnRpb25Qb2lu
dChtX2lucHV0KTsKQEAgLTQwNSw2ICs0MzksNyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKIAogdm9p
ZCBIVE1MNURvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UpCiB7CisgICAgQVNTRVJUKG1fc2NyaXB0UnVubmVyKTsKICAgICAvLyBJZ25v
cmUgY2FsbHMgdW5sZXNzIHdlIGhhdmUgYSBzY3JpcHQgYmxvY2tpbmcgdGhlIHBhcnNlciB3YWl0
aW5nCiAgICAgLy8gZm9yIGl0cyBvd24gbG9hZC4gIE90aGVyd2lzZSB0aGlzIG1heSBiZSBhIGxv
YWQgY2FsbGJhY2sgZnJvbQogICAgIC8vIENhY2hlZFJlc291cmNlOjphZGRDbGllbnQgYmVjYXVz
ZSB0aGUgc2NyaXB0IHdhcyBhbHJlYWR5IGluIHRoZSBjYWNoZS4KQEAgLTQxMyw3ICs0NDgsNyBA
QCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
KiBjYWNoZWRSZXNvdXJjZSkKICAgICAgICAgQVNTRVJUKG1fc2NyaXB0UnVubmVyLT5pblNjcmlw
dEV4ZWN1dGlvbigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBBU1NFUlQoIW1fc2Ny
aXB0UnVubmVyLT5pblNjcmlwdEV4ZWN1dGlvbigpKTsKKyAgICBBU1NFUlQoIWluU2NyaXB0RXhl
Y3V0aW9uKCkpOwogICAgIEFTU0VSVChtX3RyZWVDb25zdHJ1Y3Rvci0+aXNQYXVzZWQoKSk7CiAg
ICAgLy8gTm90ZTogV2Ugb25seSBldmVyIHdhaXQgb24gb25lIHNjcmlwdCBhdCBhIHRpbWUsIHNv
IHdlIGFsd2F5cyBrbm93IHRoaXMKICAgICAvLyBpcyB0aGUgb25lIHdlIHdlcmUgd2FpdGluZyBv
biBhbmQgY2FuIHVuLXBhdXNlIHRoZSB0cmVlIGJ1aWxkZXIuCkBAIC00MjYsNiArNDYxLDkgQEAg
dm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSog
Y2FjaGVkUmVzb3VyY2UpCiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZXhlY3V0ZVNjcmlw
dHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKQogeworICAgIC8vIERvY3VtZW50IG9ubHkgY2FsbHMg
dGhpcyB3aGVuIHRoZSBEb2N1bWVudCBvd25zIHRoZSBEb2N1bWVudFBhcnNlcgorICAgIC8vIHNv
IHRoaXMgd2lsbCBub3QgYmUgY2FsbGVkIGluIHRoZSBEb2N1bWVudEZyYWdtZW50IGNhc2UuCisg
ICAgQVNTRVJUKG1fc2NyaXB0UnVubmVyKTsKICAgICAvLyBJZ25vcmUgY2FsbHMgdW5sZXNzIHdl
IGhhdmUgYSBzY3JpcHQgYmxvY2tpbmcgdGhlIHBhcnNlciB3YWl0aW5nIG9uIGEKICAgICAvLyBz
dHlsZXNoZWV0IGxvYWQuICBPdGhlcndpc2Ugd2UgYXJlIGN1cnJlbnRseSBwYXJzaW5nIGFuZCB0
aGlzCiAgICAgLy8gaXMgYSByZS1lbnRyYW50IGNhbGwgZnJvbSBlbmNvdW50ZXJpbmcgYSA8LyBz
dHlsZT4gdGFnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKaW5kZXggNTgyZTRkOTYxMzcy
MDdkZTg1NjFjYjU3NjJiOWY5YTU3MzNhYjI3Ny4uYWJjMWFhOTljYzk5YmU4ZDIyYTNlZDFlNGM0
MmM4NjhjYmVlY2Y4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJz
ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIEhUTUw1VG9rZW5pemVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAj
aW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgiCiAjaW5jbHVkZSAiSFRNTDVUb2tlbi5o
IgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpAQCAtMzYsMTggKzM3LDIyIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBEb2N1bWVudEZyYWdt
ZW50OwogY2xhc3MgSFRNTERvY3VtZW50OwotY2xhc3MgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rv
cjsKIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFzcyBIVE1MNVNjcmlwdFJ1bm5lcjsKIGNsYXNzIEhU
TUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1MNVByZWxvYWRTY2FubmVyOworY2xhc3MgTGVnYWN5
SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiBjbGFzcyBTY3Jp
cHRTb3VyY2VDb2RlOwogCiBjbGFzcyBIVE1MNURvY3VtZW50UGFyc2VyIDogIHB1YmxpYyBEb2N1
bWVudFBhcnNlciwgSFRNTDVTY3JpcHRSdW5uZXJIb3N0LCBDYWNoZWRSZXNvdXJjZUNsaWVudCB7
CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFRoZXNlIGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFk
ZSBwcml2YXRlIGFuZCByZXBsYWNlZCBieSBjcmVhdGUoKSBtZXRob2RzLgogICAgIEhUTUw1RG9j
dW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiwgYm9vbCByZXBvcnRFcnJvcnMpOworICAgIEhUTUw1
RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbik7CiAgICAgdmlydHVhbCB+SFRNTDVEb2N1bWVudFBhcnNlcigpOwogCiAgICAgLy8gRG9j
dW1lbnRQYXJzZXIKQEAgLTE3Miw2ICsxNzcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFB1
bXBTZXNzaW9uOwogICAgIGlubGluZSBib29sIHNob3VsZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vz
c2lvbiYpOworICAgIGJvb2wgcnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVDb25zdHJ1Y3RvcigpOwog
CiAgICAgZW51bSBTeW5jaHJvbm91c01vZGUgewogICAgICAgICBBbGxvd1lpZWxkLApAQCAtMTg0
LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGF0dGVtcHRUb0VuZCgpOwogICAgIHZv
aWQgZW5kSWZEZWxheWVkKCk7CisKKyAgICBib29sIGluU2NyaXB0RXhlY3V0aW9uKCkgY29uc3Q7
CiAgICAgYm9vbCBpbldyaXRlKCkgY29uc3QgeyByZXR1cm4gbV93cml0ZU5lc3RpbmdMZXZlbCA+
IDA7IH0KIAogICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIGNvbnN0OwpAQCAtMTkzLDcg
KzIwMSw5IEBAIHByaXZhdGU6CiAgICAgLy8gV2UgaG9sZCBtX3Rva2VuIGhlcmUgYmVjYXVzZSBp
dCBtaWdodCBiZSBwYXJ0aWFsbHkgY29tcGxldGUuCiAgICAgSFRNTDVUb2tlbiBtX3Rva2VuOwog
Ci0gICAgSFRNTERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIC8vIFdlIG11c3Qgc3VwcG9ydCBw
YXJzaW5nIGludG8gYSBEb2N1bWVudCogYW5kIG5vdCBqdXN0IEhUTUxEb2N1bWVudCoKKyAgICAv
LyB0byBzdXBwb3J0IERvY3VtZW50RnJhZ21lbnQgKHdoaWNoIGhhcyBhIERvY3VtZW50KikuCisg
ICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAgICAgT3duUHRyPEhUTUw1TGV4ZXI+IG1fbGV4ZXI7
CiAgICAgT3duUHRyPEhUTUw1U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKICAgICBPd25Q
dHI8SFRNTDVUcmVlQnVpbGRlcj4gbV90cmVlQ29uc3RydWN0b3I7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVp
bGRlci5jcHAKaW5kZXggMzMyMDM5MzRjMTYwZmNjNmJkYWNkMDg4ZjA1ODgyYTRjMGM2MzZhZC4u
MzY0ZWVlMTBhYTYxMmUyZWFkY2M2YWQ0N2M4MjhlZjYwOGNiNzIyNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRy
ZWVCdWlsZGVyLmNwcApAQCAtMjYsMTQgKzI2LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUw1TGV4ZXIuaCIKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTERv
Y3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgotI2luY2x1
ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgpAQCAtNTMsNiArNTQsMjIgQEAgSFRNTDVUcmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihI
VE1MNUxleGVyKiBsZXhlciwgSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm8KICAgICAsIG1fbGVn
YWN5VHJlZUNvbnN0cnVjdG9yKG5ldyBMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yKGRvY3VtZW50
LCByZXBvcnRFcnJvcnMpKQogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmlu
aXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExp
bmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSkKKyAgICAsIG1fZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCkKK3sKK30KKworLy8gRklYTUU6
IE1lbWJlciB2YXJpYWJsZXMgc2hvdWxkIGJlIGdyb3VwZWQgaW50byBzZWxmLWluaXRpYWxpemlu
ZyBzdHJ1Y3RzIHRvCisvLyBtaW5pbWl6ZSBjb2RlIGR1cGxpY2F0aW9uIGJldHdlZW4gdGhlc2Ug
Y29uc3RydWN0b3JzLgorSFRNTDVUcmVlQnVpbGRlcjo6SFRNTDVUcmVlQnVpbGRlcihIVE1MNUxl
eGVyKiBsZXhlciwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIDogbV9kb2N1bWVudChmcmFnbWVu
dC0+ZG9jdW1lbnQoKSkKKyAgICAsIG1fcmVwb3J0RXJyb3JzKGZhbHNlKSAvLyBGSVhNRTogV2h5
IG5vdCByZXBvcnQgZXJyb3JzIGluIGZyYWdtZW50cz8KKyAgICAsIG1faXNQYXVzZWQoZmFsc2Up
CisgICAgLCBtX2luc2VydGlvbk1vZGUoSW5pdGlhbCkKKyAgICAsIG1fbGV4ZXIobGV4ZXIpCisg
ICAgLCBtX2xlZ2FjeVRyZWVDb25zdHJ1Y3RvcihuZXcgTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rv
cihmcmFnbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbikpCisgICAgLCBtX2xhc3RTY3JpcHRFbGVt
ZW50U3RhcnRMaW5lKHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWUpCisgICAgLCBtX3Njcmlw
dFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwg
bV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24oc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKIH0K
IApAQCAtMTc5LDEwICsxOTYsMTcgQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MNVRyZWVCdWlsZGVy
OjpwYXNzVG9rZW5Ub0xlZ2FjeVBhcnNlcihIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbV9sZXhlci0+c2V0U3RhdGUoYWRqdXN0ZWRMZXhlclN0YXRlKG1fbGV4
ZXItPnN0YXRlKCksIG9sZFN0eWxlVG9rZW4udGFnTmFtZSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkp
OwogICAgIH0gZWxzZSBpZiAodG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46OkVuZFRhZykgewot
ICAgICAgICBpZiAob2xkU3R5bGVUb2tlbi50YWdOYW1lID09IHNjcmlwdFRhZyAmJiBpbnNlcnRp
b25Nb2RlKCkgIT0gQWZ0ZXJGcmFtZXNldCkgeworICAgICAgICBpZiAob2xkU3R5bGVUb2tlbi50
YWdOYW1lID09IHNjcmlwdFRhZykgewogICAgICAgICAgICAgaWYgKG1fbGFzdFNjcmlwdEVsZW1l
bnQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGlu
ZSAhPSB1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKTsKLSAgICAgICAgICAgICAgICBoYW5k
bGVTY3JpcHRFbmRUYWcobV9sYXN0U2NyaXB0RWxlbWVudC5nZXQoKSwgbV9sYXN0U2NyaXB0RWxl
bWVudFN0YXJ0TGluZSk7CisgICAgICAgICAgICAgICAgaWYgKG1fZnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uID09IEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCkgeworICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhvcnJpYmxlIGhhY2sgZm9yIHBsYXRmb3JtL1Bh
c3RlYm9hcmQuCisgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHRoZSA8c2NyaXB0PiB0YWcg
d2hlbiB1c2luZyB0aGUgUGFyc2VyIHRvIGNyZWF0ZQorICAgICAgICAgICAgICAgICAgICAvLyBh
IERvY3VtZW50RnJhZ21lbnQgZm9yIHBhc3Rpbmcgc28gdGhhdCBqYXZhc2NyaXB0IGNvbnRlbnQK
KyAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3Qgc2hvdyB1cCBpbiBwYXN0ZWQgSFRNTC4K
KyAgICAgICAgICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudC0+cmVtb3ZlQ2hpbGRyZW4o
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluc2VydGlvbk1vZGUoKSAhPSBBZnRlckZy
YW1lc2V0KQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVTY3JpcHRFbmRUYWcobV9sYXN0U2Ny
aXB0RWxlbWVudC5nZXQoKSwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSk7CiAgICAgICAg
ICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudCA9IDA7CiAgICAgICAgICAgICAgICAgbV9sYXN0
U2NyaXB0RWxlbWVudFN0YXJ0TGluZSA9IHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWU7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5o
IGIvV2ViQ29yZS9odG1sL0hUTUw1VHJlZUJ1aWxkZXIuaAppbmRleCA2Zjk0Zjg4MjAzMWQ1NTZk
Y2NiN2FlYmYzZmRhNThiY2Y3M2MwNTI2Li5kMWZmOTYwYWU3Y2MyMzZhODg0OTM2MzIyNzAzYTg3
MDZmYmRjZGM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUcmVlQnVpbGRlci5oCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRyZWVCdWlsZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgSFRNTDVUcmVlQnVpbGRlcl9oCiAjZGVmaW5lIEhUTUw1VHJlZUJ1aWxkZXJfaAogCisj
aW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiSFRNTDVM
ZXhlci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KQEAgLTM2LDYgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9j
dW1lbnQ7CitjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgSFRNTDVUb2tlbjsKQEAgLTQ1LDcgKzQ3LDkgQEAgY2xhc3MgTm9kZTsKIAog
Y2xhc3MgSFRNTDVUcmVlQnVpbGRlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Cisg
ICAgLy8gRklYTUU6IFJlcGxhY2UgY29uc3RydWN0b3JzIHdpdGggY3JlYXRlKCkgZnVuY3Rpb25z
IHJldHVybmluZyBQYXNzT3duUHRycwogICAgIEhUTUw1VHJlZUJ1aWxkZXIoSFRNTDVMZXhlcios
IEhUTUxEb2N1bWVudCosIGJvb2wgcmVwb3J0RXJyb3JzKTsKKyAgICBIVE1MNVRyZWVCdWlsZGVy
KEhUTUw1TGV4ZXIqLCBEb2N1bWVudEZyYWdtZW50KiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uKTsKICAgICB+SFRNTDVUcmVlQnVpbGRlcigpOwogCiAgICAgdm9pZCBzZXRQYXVzZWQoYm9v
bCBwYXVzZWQpIHsgbV9pc1BhdXNlZCA9IHBhdXNlZDsgfQpAQCAtMTA1LDYgKzEwOSwxMSBAQCBw
cml2YXRlOgogCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2Ny
aXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNl
ci4KICAgICBpbnQgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmU7IC8vIFN0YXJ0aW5nIGxpbmUg
bnVtYmVyIG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KKworICAgIC8vIEZJ
WE1FOiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gaXMgYSBIQUNLIGZvciBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkLgorICAgIC8vIEZyYWdtZW50U2NyaXB0aW5nTm90QWxsb3dlZCBjYXVzZXMgdGhl
IFBhcnNlciB0byByZW1vdmUgY2hpbGRyZW4KKyAgICAvLyBmcm9tIDxzY3JpcHQ+IHRhZ3MgKHNv
IGphdmFzY3JpcHQgZG9lc24ndCBzaG93IHVwIGluIHBhc3RlcykuCisgICAgRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAyN2YwMTYzNGZkMjkwMDM2NjA5MGE3
MjljZTA5ODEzMDJhZGEwODdmLi40YmM0NjdhZGNlN2Q4ZTY0ODM5NzRlNmI1MDQ5NzExNTVlMzcx
M2I0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjA5OSw3ICsyMDk5LDcg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnNldFNyYyhjb25zdCBTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSkKICAgICBtX3NyYyA9IHNvdXJjZTsKIH0KIAotdm9pZCBwYXJzZUhUTUxEb2N1bWVu
dEZyYWdtZW50KGNvbnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVu
dCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCit2b2lk
IHBhcnNlTGVnYWN5SFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERv
Y3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2Ny
aXB0aW5nUGVybWlzc2lvbikKIHsKICAgICBIVE1MRG9jdW1lbnRQYXJzZXIgcGFyc2VyKGZyYWdt
ZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBwYXJzZXIuc2V0Rm9yY2VTeW5jaHJvbm91
cyh0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBiNmRlZGYyODQ1Mjg1YTQz
MDkwYjg5MGZmZjM4MTc4YjViNDJjNTc1Li4zNzFhMDdmOGVkZTg3NDVhN2Y5OGJiODFiNzJjNmVi
OWU1YWRmOTM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0yNiw3ICsyNiw3IEBA
CiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKKyNpbmNs
dWRlICJGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCIKICNpbmNsdWRlICJOYW1lZE5vZGVN
YXAuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgpA
QCAtNDQwLDcgKzQ0MCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFByZWxvYWRTY2FubmVyPiBt
X3ByZWxvYWRTY2FubmVyOwogfTsKIAotdm9pZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGNv
bnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Np
b24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwordm9pZCBwYXJzZUxlZ2FjeUhUTUxEb2N1
bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogCiBVQ2hhciBk
ZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDA1
OWYwYTFmODllZWIyYjc1ZmM2MzdjYjgzNzczNDI0OTI1NWViNzQuLjA3MjY5Nzc3NzQxZGU1MGI5
YmMyYmJiZGU0ODg1ODQ4NjhiNTEyN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzksMTMgKzM5
LDExIEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTERvY3Vt
ZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgotI2luY2x1ZGUgIlhNTERvY3VtZW50UGFy
c2VyLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogCkBAIC01NDksMTMgKzU0NywxMyBAQCBFbGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRq
YWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmV0dXJuVmFsdWUpOyAKIH0KIAotdm9pZCBIVE1M
RWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0
cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRB
ZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICBpZiAoZG9jdW1l
bnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKLSAgICAgICAgIHBhcnNlSFRNTERvY3VtZW50RnJhZ21l
bnQoaHRtbCwgZnJhZ21lbnQuZ2V0KCkpOworICAgICAgICAgZnJhZ21lbnQtPnBhcnNlSFRNTCht
YXJrdXApOwogICAgIGVsc2UgewotICAgICAgICBpZiAoIXBhcnNlWE1MRG9jdW1lbnRGcmFnbWVu
dChodG1sLCBmcmFnbWVudC5nZXQoKSwgdGhpcykpCisgICAgICAgIGlmICghZnJhZ21lbnQtPnBh
cnNlWE1MKG1hcmt1cCwgdGhpcykpCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBy
b3BhZ2F0ZSBhIHN5bnRheCBlcnJvciBleGNlcHRpb24gb3V0IGhlcmUuCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxUcmVlQ29u
c3RydWN0b3IuaCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yLmgKaW5k
ZXggYWIxZjVhYWZkZGYwNGY5YTMyMDYyN2NiZjNlY2NlMzRlMTJlNjE1Zi4uYzE1NjA2YjQ0YTFj
MGRjM2ZkMTRmNzQ5NmUzZmZmNzI3ZmM5MDNkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0xl
Z2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTFRy
ZWVDb25zdHJ1Y3Rvci5oCkBAIC0yNCw4ICsyNCw4IEBACiAjaWZuZGVmIEhUTUxQYXJzZXJfaAog
I2RlZmluZSBIVE1MUGFyc2VyX2gKIAorI2luY2x1ZGUgIkZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJFcnJvckNvZGVzLmgiCi0jaW5jbHVkZSAiTWFw
cGVkQXR0cmlidXRlRW50cnkuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCAwM2VkZTAzNDdiNjI4ZmZlNDY3MWExZmQ5ZmQ3NjAw
MjU4MjMxNDkwLi5iYmE3Y2FjNTI0ZGZmZjQ5MDc0N2JjZTEyY2NiNGZjYjg3OWRiMzkwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTM3OCw2ICszNzgsMTAgQEAgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBp
ZiAoW0hUTUxTdHJpbmcgbGVuZ3RoXSAhPSAwKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRnJh
Z21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkIGlzIGEgSEFDSyBhbmQgc2hvdWxkCisgICAgICAgICAg
ICAvLyBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIHdpdGggYW4gZW51bSB3aXRoIGEgYmV0dGVyIG5h
bWUuCisgICAgICAgICAgICAvLyBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgY2F1c2VzIHRo
ZSBQYXJzZXIgdG8gcmVtb3ZlIGNoaWxkcmVuCisgICAgICAgICAgICAvLyBvZiA8c2NyaXB0PiB0
YWdzIChzbyBqYXZhc2NyaXB0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBwYXN0ZXMpLgogICAgICAgICAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9t
TWFya3VwKGZyYW1lLT5kb2N1bWVudCgpLCBIVE1MU3RyaW5nLCAiIiwgRnJhZ21lbnRTY3JpcHRp
bmdOb3RBbGxvd2VkKTsKICAgICAgICAgICAgIGlmIChmcmFnbWVudCkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3Nvci5jcHAgYi9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCA5N2I1
NDY2Nzk4ZjExYjZiN2RiYTJmZTMxYTI4NmFkOWVjM2U4MzcwLi5jOTVhNDgzOGE1NDUxYjVmZGYw
YmU5NWQwMmNmNzUwMzQxOTNlYjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yLmNwcAorKysgYi9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApAQCAtMzMsMTMgKzMz
LDEyIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIu
aCIgLy8gZm9yIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKLSNpbmNs
dWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgImxvYWRlci5oIgogI2luY2x1ZGUg
Im1hcmt1cC5oIgorCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTEwMCwxNCArOTksMTQgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gWFNM
VFByb2Nlc3Nvcjo6Y3JlYXRlRG9jdW1lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgc291cmMK
IAogc3RhdGljIGlubGluZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRG
cm9tU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZU1JTUVUeXBlLCBEb2N1bWVudCogb3V0cHV0RG9jKQogewotICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvdXRwdXREb2MpOwor
ICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IG91dHB1dERvYy0+Y3JlYXRl
RG9jdW1lbnRGcmFnbWVudCgpOwogCiAgICAgaWYgKHNvdXJjZU1JTUVUeXBlID09ICJ0ZXh0L2h0
bWwiKQotICAgICAgICBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KHNvdXJjZVN0cmluZywgZnJh
Z21lbnQuZ2V0KCkpOworICAgICAgICBmcmFnbWVudC0+cGFyc2VIVE1MKHNvdXJjZVN0cmluZyk7
CiAgICAgZWxzZSBpZiAoc291cmNlTUlNRVR5cGUgPT0gInRleHQvcGxhaW4iKQogICAgICAgICBm
cmFnbWVudC0+YWRkQ2hpbGQoVGV4dDo6Y3JlYXRlKG91dHB1dERvYywgc291cmNlU3RyaW5nKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGJvb2wgc3VjY2Vzc2Z1bFBhcnNlID0gcGFyc2VYTUxEb2N1
bWVudEZyYWdtZW50KHNvdXJjZVN0cmluZywgZnJhZ21lbnQuZ2V0KCksIG91dHB1dERvYy0+ZG9j
dW1lbnRFbGVtZW50KCkpOworICAgICAgICBib29sIHN1Y2Nlc3NmdWxQYXJzZSA9IGZyYWdtZW50
LT5wYXJzZVhNTChzb3VyY2VTdHJpbmcsIG91dHB1dERvYy0+ZG9jdW1lbnRFbGVtZW50KCkpOwog
ICAgICAgICBpZiAoIXN1Y2Nlc3NmdWxQYXJzZSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
IH0K
</data>
<flag name="review"
          id="46137"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="46138"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>