<?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>112605</bug_id>
          
          <creation_ts>2013-03-18 11:52:32 -0700</creation_ts>
          <short_desc>[Chromium] Code cleanup: removing support for non-deferred 2d canvas rendering</short_desc>
          <delta_ts>2013-03-20 09:01:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Novosad">junov</reporter>
          <assigned_to name="Justin Novosad">junov</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>mifenton</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>857378</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 11:52:32 -0700</bug_when>
    <thetext>[Chromium] Code cleanup: removing support for non-deferred 2d canvas rendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857382</commentid>
    <comment_count>1</comment_count>
      <attachid>193622</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 11:57:55 -0700</bug_when>
    <thetext>Created attachment 193622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857396</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-18 12:08:09 -0700</bug_when>
    <thetext>Patch doesn&apos;t seem to apply, could you rebase?

Will this flip behavior for layout tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857405</commentid>
    <comment_count>3</comment_count>
      <attachid>193626</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 12:17:00 -0700</bug_when>
    <thetext>Created attachment 193626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857407</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 12:18:26 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857413</commentid>
    <comment_count>5</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 12:23:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Patch doesn&apos;t seem to apply, could you rebase?
&gt; 
&gt; Will this flip behavior for layout tests?

The GPU bots are currently running with deferred 2d canvas rendering enabled, so they will not be affected by this change.  The non-GPU layout tests are not affected because deferred rendering is only implemented for GPU-accelerated canvases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857414</commentid>
    <comment_count>6</comment_count>
      <attachid>193626</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-18 12:23:47 -0700</bug_when>
    <thetext>Comment on attachment 193626
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp:48
&gt; +    : m_backBufferTexture(textureId)

Nit:  We should keep an eye on the name of this member var, and make sure it makes sense (it doesn&apos;t really make sense right now, since we only have a single buffer, but Justin tells me more will be reimplemented soon.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857427</commentid>
    <comment_count>7</comment_count>
      <attachid>193629</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 12:38:54 -0700</bug_when>
    <thetext>Created attachment 193629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857440</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 12:46:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=193629) [details]
&gt; Patch

New Patch adds NULL ptr checks on m_canvas in Canvas2DLayerBridge.cpp to fix crashing unit tests.

FWIW: This patch is just clearing the path for a deeper re-arch of Canvas2DLayerBridge to support the Mailboxes for communicating with the ubercompositor.  Support for legacy non-deferred 2d canvas rendering was adding a lot of complexity that does not need to be a part of the upcoming re-design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857456</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-18 13:10:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #2)
&gt; &gt; Patch doesn&apos;t seem to apply, could you rebase?
&gt; &gt; 
&gt; &gt; Will this flip behavior for layout tests?
&gt; 
&gt; The GPU bots are currently running with deferred 2d canvas rendering enabled, so they will not be affected by this change.  The non-GPU layout tests are not affected because deferred rendering is only implemented for GPU-accelerated canvases.

All of the layout test bots run the platform/chromium/virtual/gpu/(fast/canvas|canvas/philip) tests through the GPU path (backed by osmesa).  Will they change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857462</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 13:16:26 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Patch doesn&apos;t seem to apply, could you rebase?
&gt; &gt; &gt; 
&gt; &gt; &gt; Will this flip behavior for layout tests?
&gt; &gt; 
&gt; &gt; The GPU bots are currently running with deferred 2d canvas rendering enabled, so they will not be affected by this change.  The non-GPU layout tests are not affected because deferred rendering is only implemented for GPU-accelerated canvases.
&gt; 
&gt; All of the layout test bots run the platform/chromium/virtual/gpu/(fast/canvas|canvas/philip) tests through the GPU path (backed by osmesa).  Will they change?


I did not think they would change, but apparently this patch changes them because the chromium ews bots are detecting regression with this patch that went undetected until now. Not sure how come we are in this state. Investigating...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857466</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-18 13:25:18 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; Patch doesn&apos;t seem to apply, could you rebase?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Will this flip behavior for layout tests?
&gt; &gt; &gt; 
&gt; &gt; &gt; The GPU bots are currently running with deferred 2d canvas rendering enabled, so they will not be affected by this change.  The non-GPU layout tests are not affected because deferred rendering is only implemented for GPU-accelerated canvases.
&gt; &gt; 
&gt; &gt; All of the layout test bots run the platform/chromium/virtual/gpu/(fast/canvas|canvas/philip) tests through the GPU path (backed by osmesa).  Will they change?
&gt; 
&gt; 
&gt; I did not think they would change, but apparently this patch changes them because the chromium ews bots are detecting regression with this patch that went undetected until now. Not sure how come we are in this state. Investigating...

It sounds from what you&apos;re saying that they previous ran without deferred canvas but now are running with it.  I think running with the deferred mode enabled is better, since that&apos;s what we are shipping, but it&apos;s a difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857480</commentid>
    <comment_count>12</comment_count>
      <attachid>193629</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 13:29:57 -0700</bug_when>
    <thetext>Comment on attachment 193629
Patch

Attachment 193629 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17160577

New failing tests:
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.cone.beside.html
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.cone.shape1.html
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.cone.behind.html
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.cone.shape2.html
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.touch3.html
platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.touch1.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857523</commentid>
    <comment_count>13</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-18 14:07:46 -0700</bug_when>
    <thetext>(In reply to comment #11)

&gt; 
&gt; It sounds from what you&apos;re saying that they previous ran without deferred canvas but now are running with it.  I think running with the deferred mode enabled is better, since that&apos;s what we are shipping, but it&apos;s a difference.

Exactly.  After taking a look at content/shell/webkit_test_controller.cc (in chromium), it appears that we were only enabling deferred mode for tests in the &quot;compositing/&quot; directory.  And this has only been the case since 2 months ago: http://src.chromium.org/viewvc/chrome?view=rev&amp;revision=177509

I had a patch to enable it by default in DRT. I thought I submitted it, but it looks like it fell through the cracks: https://bugs.webkit.org/show_bug.cgi?id=92525

The failing LayoutTests are not failing in the browser. Only in DRT.  Not sure what is happening. Perhaps skia is generating shader code that is not compatible with mesa for the radial gradient effect?

I suggest submitting this CL with the new failures flagged in TestExpectations, and I&apos;ll file a separate bug for the newly detected failures.  Does that sound right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857560</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-18 14:29:01 -0700</bug_when>
    <thetext>I think it&apos;d be useful to repro the failures and figure out where they are coming from.  What&apos;s the diff?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858638</commentid>
    <comment_count>15</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-19 12:49:44 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I think it&apos;d be useful to repro the failures and figure out where they are coming from.  What&apos;s the diff?

Bug isolated. Looks like the regression came from skia in the 5594-5633 range

Filed a bug: https://code.google.com/p/chromium/issues/detail?id=222140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858652</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-19 13:02:35 -0700</bug_when>
    <thetext>OK - I&apos;m find with marking them as failing in TestExpectations with a link to that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858853</commentid>
    <comment_count>17</comment_count>
      <attachid>193629</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-19 16:18:12 -0700</bug_when>
    <thetext>Comment on attachment 193629
Patch

R=me, but be sure to update TestExpectations before landing.  You may want to ask Stephen to take a look as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859360</commentid>
    <comment_count>18</comment_count>
      <attachid>194044</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 06:58:49 -0700</bug_when>
    <thetext>Created attachment 194044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859364</commentid>
    <comment_count>19</comment_count>
      <attachid>194046</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 07:00:03 -0700</bug_when>
    <thetext>Created attachment 194046
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859367</commentid>
    <comment_count>20</comment_count>
      <attachid>194046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 07:03:34 -0700</bug_when>
    <thetext>Comment on attachment 194046
Patch for landing

Rejecting attachment 194046 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 194046, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
nderTree/chromium/TestShell.cpp.rej
patching file Tools/DumpRenderTree/chromium/TestShell.h
Hunk #1 FAILED at 121.
Hunk #2 FAILED at 218.
2 out of 2 hunks FAILED -- saving rejects to file Tools/DumpRenderTree/chromium/TestShell.h.rej
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/platform/chromium/TestExpectations

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17223377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859391</commentid>
    <comment_count>21</comment_count>
      <attachid>194051</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 07:36:06 -0700</bug_when>
    <thetext>Created attachment 194051
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859394</commentid>
    <comment_count>22</comment_count>
      <attachid>194051</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 07:40:16 -0700</bug_when>
    <thetext>Comment on attachment 194051
Patch for landing

Rejecting attachment 194051 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 194051, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-commit-queue.appspot.com/results/17122785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859403</commentid>
    <comment_count>23</comment_count>
      <attachid>194055</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 07:49:18 -0700</bug_when>
    <thetext>Created attachment 194055
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859407</commentid>
    <comment_count>24</comment_count>
      <attachid>194057</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 07:51:24 -0700</bug_when>
    <thetext>Created attachment 194057
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859409</commentid>
    <comment_count>25</comment_count>
      <attachid>194057</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 07:54:03 -0700</bug_when>
    <thetext>Comment on attachment 194057
Patch for landing

Rejecting attachment 194057 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 194057, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

jamesr@chromium.org found in /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-commit-queue.appspot.com/results/17286012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859430</commentid>
    <comment_count>26</comment_count>
      <attachid>194062</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 08:11:48 -0700</bug_when>
    <thetext>Created attachment 194062
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859440</commentid>
    <comment_count>27</comment_count>
      <attachid>194062</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 08:20:45 -0700</bug_when>
    <thetext>Comment on attachment 194062
Patch for landing

Rejecting attachment 194062 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 194062, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

jamesr@chromium.org found in /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-commit-queue.appspot.com/results/17200467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859444</commentid>
    <comment_count>28</comment_count>
      <attachid>194066</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2013-03-20 08:25:21 -0700</bug_when>
    <thetext>Created attachment 194066
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859465</commentid>
    <comment_count>29</comment_count>
      <attachid>194066</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 09:01:32 -0700</bug_when>
    <thetext>Comment on attachment 194066
Patch for landing

Clearing flags on attachment: 194066

Committed r146351: &lt;http://trac.webkit.org/changeset/146351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859466</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 09:01:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193622</attachid>
            <date>2013-03-18 11:57:55 -0700</date>
            <delta_ts>2013-03-18 12:16:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112605-20130318145346.patch</filename>
            <type>text/plain</type>
            <size>38988</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEzZGE0NmY5YjAyOTVl
OTZhMWRiZDgyYjc0MTkyNmQ2ZGZmNGQ1NC4uYzAyZmE2NDg0NWFhNTQwZjBmY2ExMmI5NWU1M2Ix
ODVhM2UwYWMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0xNSAgS29ucmFkIFBpYXNjaWsgIDxrcGlhc2Npa0BibGFja2JlcnJ5LmNv
bT4KIAogICAgICAgICBHZXQgcmlkIG9mIHVzZWxlc3MgZm9yd2FyZCBkZWNsYXJhdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTZkMDBhNGE5ZDE5ZjhmY2FiZTFlYTU5NjJlMzYw
MDdhZjJhNjI3Yy4uN2FkYjYyNTNlNDBiMWE3ODY3YzA2NTQ4Y2M0ZmUxMWY1OTQ3MDFkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMy0xOCAgSnVz
dGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29k
ZSBjbGVhbnVwOiByZW1vdmluZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJl
bmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyNjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGVsZXRpbmcgYWxsIHRoZSBjb2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBz
dXBwb3J0aW5nCisgICAgICAgIHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVm
ZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5n
cy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RGVmZXJyZWQyZENhbnZhc0Vu
YWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKToKKyAgICAg
ICAgKiB0ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMy
RExheWVyQnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorICAgICAgICAqIHRlc3RzL0Nh
bnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHA6CisgICAgICAgIChGYWtlQ2FudmFzMkRMYXllckJy
aWRnZTo6RmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UpOgorCiAyMDEzLTAzLTE1ICBNYXJqYSBIw7Zs
dHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFN0b3JlIG1haW4gd29y
bGQgYW5kIG5vbi1tYWluIHdvcmxkIHRlbXBsYXRlcyBzZXBhcmF0ZWx5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAzY2MyYzkzMGEyY2U1OGM5MWVlMDg5
ZDBiZGJiZWFhMTI2ZGY3YTdlLi5hM2MwNDYzMzE5YjM1NTY3NDNmZjMwNGFlOGRkNDIzZmU0ZDgz
ZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNTIw
LDIyICs1MjAsNiBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGRBY2NlbGVyYXRlKGNv
bnN0IEludFNpemUmIHNpemUpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6c2hvdWxkRGVmZXIoKSBjb25zdAotewotI2lmIFVTRShTS0lBKQotICAgIGlmIChtX2Nv
bnRleHQgJiYgIW1fY29udGV4dC0+aXMyZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwotICAgIGlmICgh
c2V0dGluZ3MgfHwgIXNldHRpbmdzLT5kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZh
bHNlOwotI2VuZGlmCi19Ci0KIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVm
ZmVyKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIW1faW1hZ2VCdWZmZXIpOwpAQCAtNTY1LDggKzU0
OSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QK
ICNlbHNlCiAgICAgICAgIFVuYWNjZWxlcmF0ZWQ7CiAjZW5kaWYKLSAgICBEZWZlcnJhbE1vZGUg
ZGVmZXJyYWxNb2RlID0gc2hvdWxkRGVmZXIoKSA/IERlZmVycmVkIDogTm9uRGVmZXJyZWQ7Ci0g
ICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNj
YWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlLCBkZWZlcnJhbE1v
ZGUpOworICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9k
ZXZpY2VTY2FsZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSk7CiAg
ICAgaWYgKCFtX2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgbV9pbWFnZUJ1ZmZl
ci0+Y29udGV4dCgpLT5zZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyh0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBjZDk4MjFjNWMzNzdiNjcxM2NhYTc4
YmY5ZDU2Y2FkMGZhYjQ1MDRhLi5iZjcxM2QzMTFkN2RhZjQ4MWRhYjk2OTk5ZDA0OWMwM2U0ZDBh
NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xNjAsOCAr
MTYwLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0U3VyZmFjZVNpemUoY29uc3QgSW50U2l6
ZSYpOwogCi0gICAgYm9vbCBzaG91bGREZWZlcigpIGNvbnN0OwotCiAgICAgYm9vbCBwYWludHNJ
bnRvQ2FudmFzQnVmZmVyKCkgY29uc3Q7CiAKICAgICBIYXNoU2V0PENhbnZhc09ic2VydmVyKj4g
bV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCAzOTcxYmJhNTFiYWNhODM3
MTUyNWZjZDdjNDYwYjNhNmU1NTM1OWEzLi4yODAyMzAwMDA4OTQ4YjAxMjMxNTA1OWNmMDBjZjc4
NzI3NjA3NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTExMyw3ICsxMTMsNiBAQCB3
ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQgaW5pdGlhbD10cnVlCiBvcGVuR0xNdWx0aXNhbXBs
aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVk
IGluaXRpYWw9ZmFsc2UKIGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkIGluaXRpYWw9ZmFsc2UK
LWRlZmVycmVkMmRDYW52YXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKIGFudGlhbGlhc2VkMmRDYW52
YXNFbmFibGVkIGluaXRpYWw9dHJ1ZQogbG9hZERlZmVycmluZ0VuYWJsZWQgaW5pdGlhbD10cnVl
CiB3ZWJBdWRpb0VuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggOWM1ZTYzYTk1OTVlOWE2MDk5YTUyNzU1
ZDQ3OTYzM2UyMWM4OWRhNy4uMWU0ZTVkNGQ0MzMxYzkyYjFhZWFjODI1MzE0M2E2NDM4NWQwMzQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CkBAIC03MCwxMSArNzAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERvbnRDb3B5
QmFja2luZ1N0b3JlIC8vIFN1YnNlcXVlbnQgZHJhd3MgbWF5IGFmZmVjdCB0aGUgY29weS4KICAg
ICB9OwogCi0gICAgZW51bSBEZWZlcnJhbE1vZGUgewotICAgICAgICBOb25EZWZlcnJlZCwKLSAg
ICAgICAgRGVmZXJyZWQKLSAgICB9OwotCiAgICAgZW51bSBTY2FsZUJlaGF2aW9yIHsKICAgICAg
ICAgU2NhbGVkLAogICAgICAgICBVbnNjYWxlZApAQCAtODQsMTAgKzc5LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXIpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIC8vIFdpbGwgcmV0
dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KLSAgICAgICAgc3RhdGlj
IFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNl
RGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkLCBE
ZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlID0gTm9uRGVmZXJyZWQpCisgICAgICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURl
dmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZCkKICAg
ICAgICAgewogICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICBP
d25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSwg
c3VjY2VzcykpOworICAgICAgICAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0
cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW5k
ZXJpbmdNb2RlLCBzdWNjZXNzKSk7CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gYnVmLnJlbGVhc2Uo
KTsKQEAgLTE2MCw3ICsxNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8g
VGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91
dC12YXJpYWJsZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hv
dWxkIHJldHVybiBmYWlsdXJlLgotICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJh
bE1vZGUsIGJvb2wmIHN1Y2Nlc3MpOworICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXpl
JiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29s
JiBzdWNjZXNzKTsKICNpZiBVU0UoU0tJQSkKICAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50
U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3ND
b250ZXh0KiwgYm9vbCBoYXNBbHBoYSwgYm9vbCYgc3VjY2Vzcyk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZm
ZXJCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAppbmRleCA1ZDhhMjQ1Mjc2ZWQzNzkyZDMx
Yjk2YjMzYjA3OTI2NGIwNDA5YWFiLi5mZTcyNTkwODcwOGMyYzZjMGM2ZWNiMWRmM2ZkMDkxOGY5
MjNmMGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCkBAIC0x
NTMsNyArMTUzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlckRhdGE6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiB0aGlzQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0KiBvdGhlckMKICAgICB9CiB9CiAKLUltYWdl
QnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBIb3N0V2luZG93KiB3aW5kb3csIGJvb2wmIHN1
Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSwgSG9zdFdpbmRvdyogd2luZG93LCBib29sJiBzdWNjZXNzKQogICAgIDog
bV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCiAgICAgLCBtX3Jlc29sdXRp
b25TY2FsZSgxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCA2OTUzOTMyN2YxMzA0MjZlNmE5
NGYwNGQ4ODAzYTQ0Nzg2OWYzM2Y0Li45ZWJlZDlkNzAzMjYyNmM5NzE3OTBiNmM0MjFjN2ExMGRj
MzJmNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtNTQsNyArNTQsNyBAQCBJbWFnZUJ1
ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJikKIHsKIH0KIAotSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRp
b25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29s
JiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUs
IGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwg
Ym9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAg
ICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDdlMDQzNGMzNmFjMzhlZDM5
NmVlMzY5NTA5ZTA0ODNlMjQyZDlhYjEuLmU1NzM3MzIzMTZkZmMwZmUzOWJlNjRkYWE0MTdkODA1
Y2FjMDdkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIHZvaWQgcmVs
ZWFzZUltYWdlRGF0YSh2b2lkKiwgY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90KQogICAgIGZhc3RG
cmVlKGNvbnN0X2Nhc3Q8dm9pZCo+KGRhdGEpKTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBpbWFnZUNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxN
b2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBpbWFnZUNvbG9yU3Bh
Y2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1f
ZGF0YShzaXplKSAvLyBOT1RFOiBUaGUgaW5wdXQgaGVyZSBpc24ndCBpbXBvcnRhbnQgYXMgSW1h
Z2VCdWZmZXJEYXRhQ0cncyBjb25zdHJ1Y3RvciBqdXN0IGlnbm9yZXMgaXQuCiAgICAgLCBtX2xv
Z2ljYWxTaXplKHNpemUpCiAgICAgLCBtX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXMyRExheWVyQnJpZGdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwCmluZGV4IDY2MjcyZmRiMzgyOTgxN2Ux
MjA1MTMzOGMwOGJlNjc5YzQ0NWJiNjkuLjdjNTAxZTllNWIwYzQ2NDBmYjkyNzBlMzdmZGE1ZTJk
NzczOWM2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2hyb21pdW0uaCIK
KyNpbmNsdWRlICJTa0RldmljZS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRl
IDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBv
cnQuaD4KQEAgLTQzLDEwICs0NCw4IEBAIHVzaW5nIFdlYktpdDo6V2ViVGV4dHVyZVVwZGF0ZXI7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRM
YXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJ
bnRTaXplJiBzaXplLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBUaHJlYWRNb2RlIHRocmVh
ZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCkKLSAgICA6IG1fZGVmZXJyYWxNb2RlKGRlZmVycmFs
TW9kZSkKLSAgICAsIG1fZnJvbnRCdWZmZXJUZXh0dXJlKDApCi0gICAgLCBtX2JhY2tCdWZmZXJU
ZXh0dXJlKHRleHR1cmVJZCkKK0NhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlk
Z2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYg
c2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCisgICAgOiBt
X2JhY2tCdWZmZXJUZXh0dXJlKHRleHR1cmVJZCkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwg
bV9jYW52YXMoMCkKICAgICAsIG1fY29udGV4dChjb250ZXh0KQpAQCAtNTksMzAgKzU4LDkgQEAg
Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjb250ZXh0LAogICAgIC8vIFVzZWQgYnkgYnJvd3NlciB0ZXN0cyB0byBk
ZXRlY3QgdGhlIHVzZSBvZiBhIENhbnZhczJETGF5ZXJCcmlkZ2UuCiAgICAgVFJBQ0VfRVZFTlRf
SU5TVEFOVDAoInRlc3RfZ3B1IiwgIkNhbnZhczJETGF5ZXJCcmlkZ2VDcmVhdGlvbiIpOwogCi0g
ICAgLy8gRklYTUU6IFdlIGN1cnJlbnRseSB0dXJuIG9mZiBkb3VibGUgYnVmZmVyaW5nIHdoZW4g
Y2FudmFzIHJlbmRlcmluZyBpcwotICAgIC8vIGRlZmVycmVkLiBXaGF0IHdlIHNob3VsZCBiZSBk
b2luZyBpcyB0byB1c2UgYSBzbWFydGVyIGhldXJpc3RpYyBiYXNlZAotICAgIC8vIG9uIEdQVSBy
ZXNvdXJjZSBtb25pdG9yaW5nIGFuZCBvdGhlciBmYWN0b3JzIHRvIGNob3NlIGJldHdlZW4gc2lu
Z2xlCi0gICAgLy8gYW5kIGRvdWJsZSBidWZmZXJpbmcuCi0gICAgbV91c2VEb3VibGVCdWZmZXJp
bmcgPSB0aHJlYWRNb2RlID09IFRocmVhZGVkICYmIGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJl
ZDsKLQotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykgewotICAgICAgICBtX2NvbnRleHQt
Pm1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAgICBtX2Zyb250QnVmZmVyVGV4dHVyZSA9IG1f
Y29udGV4dC0+Y3JlYXRlVGV4dHVyZSgpOwotICAgICAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX2Zyb250QnVmZmVyVGV4dHVyZSk7Ci0g
ICAgICAgIC8vIERvIGJhc2ljIGxpbmVhciBmaWx0ZXJpbmcgb24gcmVzaXplLgotICAgICAgICBt
X2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpM
SU5FQVIpOwotICAgICAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsIEdy
YXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwotICAgICAgICAvLyBOUE9UIHRleHR1cmVzIGluIEdM
IEVTIG9ubHkgd29yayB3aGVuIHRoZSB3cmFwIG1vZGUgaXMgc2V0IHRvIEdyYXBoaWNzQ29udGV4
dDNEOjpDTEFNUF9UT19FREdFLgotICAgICAgICBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgICAgICBtX2NvbnRl
eHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VE
R0UpOwotICAgICAgICBtX2NvbnRleHQtPnRleEltYWdlMkRSZXNvdXJjZVNhZmUoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBzaXplLndp
ZHRoKCksIHNpemUuaGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGlj
c0NvbnRleHQzRDo6VU5TSUdORURfQllURSk7Ci0gICAgICAgIGlmIChHckNvbnRleHQqIGdyQ29u
dGV4dCA9IG1fY29udGV4dC0+Z3JDb250ZXh0KCkpCi0gICAgICAgICAgICBnckNvbnRleHQtPnJl
c2V0Q29udGV4dCgpOwotICAgIH0KLQogICAgIG1fbGF5ZXIgPSBhZG9wdFB0cihXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZUV4dGVybmFsVGV4
dHVyZUxheWVyKHRoaXMpKTsKICAgICBtX2xheWVyLT5zZXRUZXh0dXJlSWQodGV4dHVyZUlkKTsK
LSAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KHRocmVhZE1vZGUgPT0gU2luZ2xlVGhy
ZWFkIHx8IG1fdXNlRG91YmxlQnVmZmVyaW5nKTsKKyAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRD
b250ZXh0KHRocmVhZE1vZGUgPT0gU2luZ2xlVGhyZWFkKTsKICAgICBHcmFwaGljc0xheWVyQ2hy
b21pdW06OnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xheWVyLT5sYXllcigpKTsKIH0KIApAQCAt
OTAsMjEgKzY4LDggQEAgQ2FudmFzMkRMYXllckJyaWRnZTo6fkNhbnZhczJETGF5ZXJCcmlkZ2Uo
KQogewogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIo
bV9sYXllci0+bGF5ZXIoKSk7CiAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxheWVy
VG9CZURlc3Ryb3llZCh0aGlzKTsKLSAgICBpZiAoU2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWQg
PSBkZWZlcnJlZENhbnZhcygpKQotICAgICAgICBkZWZlcnJlZC0+c2V0Tm90aWZpY2F0aW9uQ2xp
ZW50KDApOworICAgIG1fY2FudmFzLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7CiAgICAgbV9s
YXllci0+c2V0VGV4dHVyZUlkKDApOwotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykgewot
ICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAgICBtX2NvbnRl
eHQtPmRlbGV0ZVRleHR1cmUobV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAgICBtX2NvbnRl
eHQtPmZsdXNoKCk7Ci0gICAgfQotfQotCi1Ta0RlZmVycmVkQ2FudmFzKiBDYW52YXMyRExheWVy
QnJpZGdlOjpkZWZlcnJlZENhbnZhcygpCi17Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IERl
ZmVycmVkKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2tEZWZlcnJlZENhbnZhcyo+KG1f
Y2FudmFzKTsKLSAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjps
aW1pdFBlbmRpbmdGcmFtZXMoKQpAQCAtMTE5LDE1ICs4NCwxMiBAQCB2b2lkIENhbnZhczJETGF5
ZXJCcmlkZ2U6OmxpbWl0UGVuZGluZ0ZyYW1lcygpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRn
ZTo6cHJlcGFyZUZvckRyYXcoKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZhcygpKTsKLSAg
ICBpZiAoIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5
VGV4dHVyZSgpOworICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7CiAgICAgbV9jb250
ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAogdm9pZCBDYW52YXMyRExheWVyQnJpZGdl
OjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0ZXNBbGxvY2F0
ZWQpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKTsKICAgICBpbnRw
dHJfdCBkZWx0YSA9IChpbnRwdHJfdClieXRlc0FsbG9jYXRlZCAtIChpbnRwdHJfdCltX2J5dGVz
QWxsb2NhdGVkOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0FsbG9jYXRlZDsKICAgICBD
YW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdlQ2hhbmdlZCh0
aGlzLCBkZWx0YSk7CkBAIC0xMzUsNyArOTcsNyBAQCB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKHNpemVfdCBieXRlc0FsbG9jYQog
CiBzaXplX3QgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGlu
ZygpCiB7Ci0gICAgcmV0dXJuIGRlZmVycmVkQ2FudmFzKCktPnN0b3JhZ2VBbGxvY2F0ZWRGb3JS
ZWNvcmRpbmcoKTsKKyAgICByZXR1cm4gbV9jYW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNv
cmRpbmcoKTsKIH0KIAogdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaGVkRHJhd0NvbW1h
bmRzKCkKQEAgLTE1MSw4ICsxMTMsNyBAQCB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnNraXBw
ZWRQZW5kaW5nRHJhd0NvbW1hbmRzKCkKIAogc2l6ZV90IENhbnZhczJETGF5ZXJCcmlkZ2U6OmZy
ZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1RvRnJlZSkKIHsKLSAgICBBU1NFUlQoZGVm
ZXJyZWRDYW52YXMoKSk7Ci0gICAgc2l6ZV90IGJ5dGVzRnJlZWQgPSBkZWZlcnJlZENhbnZhcygp
LT5mcmVlTWVtb3J5SWZQb3NzaWJsZShieXRlc1RvRnJlZSk7CisgICAgc2l6ZV90IGJ5dGVzRnJl
ZWQgPSBtX2NhbnZhcy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpOwogICAgIGlm
IChieXRlc0ZyZWVkKQogICAgICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJB
bGxvY2F0ZWRTdG9yYWdlQ2hhbmdlZCh0aGlzLCAtKChpbnRwdHJfdClieXRlc0ZyZWVkKSk7CiAg
ICAgbV9ieXRlc0FsbG9jYXRlZCAtPSBieXRlc0ZyZWVkOwpAQCAtMTYxLDIxICsxMjIsMTUgQEAg
c2l6ZV90IENhbnZhczJETGF5ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBi
eXRlc1RvRnJlZSkKIAogdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCgpCiB7Ci0gICAg
QVNTRVJUKGRlZmVycmVkQ2FudmFzKCkpOwotICAgIGlmIChkZWZlcnJlZENhbnZhcygpLT5oYXNQ
ZW5kaW5nQ29tbWFuZHMoKSkKKyAgICBpZiAobV9jYW52YXMtPmhhc1BlbmRpbmdDb21tYW5kcygp
KQogICAgICAgICBtX2NhbnZhcy0+Zmx1c2goKTsKIH0KIAogU2tDYW52YXMqIENhbnZhczJETGF5
ZXJCcmlkZ2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZpY2UpCiB7CiAgICAgQVNTRVJUKCFtX2Nh
bnZhcyk7Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIFNr
RGVmZXJyZWRDYW52YXMqIGRlZmVycmVkID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNlKTsK
LSAgICAgICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKLSAgICAgICAg
bV9jYW52YXMgPSBkZWZlcnJlZDsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9jYW52YXMgPSBuZXcg
U2tDYW52YXMoZGV2aWNlKTsKLQorICAgIG1fY2FudmFzID0gbmV3IFNrRGVmZXJyZWRDYW52YXMo
ZGV2aWNlKTsKKyAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpOwogICAg
IHJldHVybiBtX2NhbnZhczsKIH0KIApAQCAtMTkxLDExICsxNDYsNiBAQCB1bnNpZ25lZCBDYW52
YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZShXZWJUZXh0dXJlVXBkYXRlciYgdXBkYXRl
cikKIAogICAgIG1fY29udGV4dC0+Zmx1c2goKTsKIAotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZl
cmluZykgewotICAgICAgICB1cGRhdGVyLmFwcGVuZENvcHkobV9iYWNrQnVmZmVyVGV4dHVyZSwg
bV9mcm9udEJ1ZmZlclRleHR1cmUsIG1fc2l6ZSk7Ci0gICAgICAgIHJldHVybiBtX2Zyb250QnVm
ZmVyVGV4dHVyZTsKLSAgICB9Ci0KICAgICBpZiAobV9jYW52YXMpIHsKICAgICAgICAgLy8gTm90
aWZ5IHNraWEgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIGJhY2tpbmcgc3RvcmUgdGV4dHVyZSBvYmpl
Y3Qgd2lsbCBiZSB0b3VjaGVkIGJ5IHRoZSBjb21wb3NpdG9yCiAgICAgICAgIEdyUmVuZGVyVGFy
Z2V0KiByZW5kZXJUYXJnZXQgPSByZWludGVycHJldF9jYXN0PEdyUmVuZGVyVGFyZ2V0Kj4obV9j
YW52YXMtPmdldERldmljZSgpLT5hY2Nlc3NSZW5kZXJUYXJnZXQoKSk7CkBAIC0yMTcsMTIgKzE2
Nyw4IEBAIFdlYktpdDo6V2ViTGF5ZXIqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKCkKIAog
dm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQoKQogewotICAgIGlmICht
X2RlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCAmJiAhbV91c2VEb3VibGVCdWZmZXJpbmcpCi0g
ICAgICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7Ci0gICAgZWxzZSBpZiAobV9kZWZl
cnJhbE1vZGUgPT0gRGVmZXJyZWQpIHsKLSAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6Omdl
dCgpLmxheWVyRGlkRHJhdyh0aGlzKTsKLSAgICAgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9
IHRydWU7Ci0gICAgfQorICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERy
YXcodGhpcyk7CisgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7CiB9CiAKIHVuc2ln
bmVkIENhbnZhczJETGF5ZXJCcmlkZ2U6OmJhY2tCdWZmZXJUZXh0dXJlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJC
cmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJCcmlkZ2UuaAppbmRleCA4ZTQ0MmZkOTE3N2FhODI4M2QyYjA2ODdhNDA1ODM5Y2Vi
NjUwMzJkLi5iMzg2MzA0YzMzN2YzMDNhNjc0NWU2YTkxZDk0YzZlOTVjZTUyMWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENhbnZh
czJETGF5ZXJCcmlkZ2VfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIiAvLyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgIlNrRGVmZXJyZWRDYW52YXMuaCIKICNpbmNsdWRlIDxwdWJs
aWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KQEAgLTUwLDkgKzQ5LDkgQEAgcHVibGljOgog
ICAgICAgICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxDYW52YXMy
RExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFk
TW9kZSB0aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxDYW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRpbmcsIHVu
c2lnbmVkIHRleHR1cmVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2Fu
dmFzMkRMYXllckJyaWRnZShjb250ZXh0LCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZGluZywg
dGV4dHVyZUlkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRMYXllckJy
aWRnZShjb250ZXh0LCBzaXplLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAgLTgxLDE1ICs4MCwxMSBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgYmFja0J1ZmZlclRleHR1cmUoKTsKIAogcHJvdGVjdGVkOgotICAg
IENhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0
IEludFNpemUmLCBEZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7
Ci0gICAgU2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWRDYW52YXMoKTsKKyAgICBDYW52YXMyRExh
eWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwg
VGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKTsKIAotICAgIERlZmVycmFsTW9kZSBtX2Rl
ZmVycmFsTW9kZTsKLSAgICBib29sIG1fdXNlRG91YmxlQnVmZmVyaW5nOwotICAgIHVuc2lnbmVk
IG1fZnJvbnRCdWZmZXJUZXh0dXJlOwogICAgIHVuc2lnbmVkIG1fYmFja0J1ZmZlclRleHR1cmU7
CiAgICAgSW50U2l6ZSBtX3NpemU7Ci0gICAgU2tDYW52YXMqIG1fY2FudmFzOworICAgIFNrRGVm
ZXJyZWRDYW52YXMqIG1fY2FudmFzOwogICAgIE93blB0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4
dHVyZUxheWVyPiBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250
ZXh0OwogICAgIHNpemVfdCBtX2J5dGVzQWxsb2NhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCA0Mzg1OWNh
ZDFjNzQ4MzU0M2MwN2RmMThhZDYzZTk1N2E3Mjg1OGQ0Li4xYmNkZWU5NDVkNTE0ZDQzM2NlOGM5
M2VkYjdjZjUxYmM3Yzc4NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2Ug
SW1hZ2VCdWZmZXJEYXRhOjp0b1FJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQog
Ci1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyog
cmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1v
ZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJp
bmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUo
c2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA3
NDJiMDExYjgwMmVlMDExYTY0ZGJhNzM1NGFjMWNkM2U3ZTgwNDY1Li42MTMwOWZhZDQ3YzVlZWJm
YjhlNGVhNDBmNGVlOTQ5YWI3MDA5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC03Miw3ICs3
Miw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNp
emUpCiB7CiB9CiAKLXN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhLCBEZWZlcnJhbE1vZGUgZGVm
ZXJyYWxNb2RlKQorc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25z
dCBJbnRTaXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGRhdGEpCiB7CiAgICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjb250ZXh0M0QgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0
KCk7CiAgICAgaWYgKCFjb250ZXh0M0QpCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBTa0NhbnZh
cyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZm
ZXJEYXRhKiBkCiAgICAgU2tBdXRvVFVucmVmPFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2
aWNlKGdyLCB0ZXh0dXJlLmdldCgpKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktp
dDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aXNUaHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8g
Q2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5n
bGVUaHJlYWQ7Ci0gICAgZGF0YS0+bV9sYXllckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6
OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1v
ZGUsIHRleHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5kbGUoKSk7CisgICAgZGF0YS0+bV9sYXll
ckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgp
LCBzaXplLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwog
ICAgIGNhbnZhcyA9IGRhdGEtPm1fbGF5ZXJCcmlkZ2UtPnNrQ2FudmFzKGRldmljZS5nZXQoKSk7
CiAjZWxzZQogICAgIGNhbnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwpAQCAtMTUx
LDcgKzE1MSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgc3VjY2VzcyA9IHRydWU7
CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykK
ICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxT
aXplKHNpemUpCkBAIC0xNjAsNyArMTYwLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAg
ICBPd25QdHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IEFj
Y2VsZXJhdGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENh
bnZhcyhzaXplLCAmbV9kYXRhLCBkZWZlcnJhbE1vZGUpKTsKKyAgICAgICAgY2FudmFzID0gYWRv
cHRQdHIoY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSkpOwogICAgIGVsc2Ug
aWYgKHJlbmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyKQogICAg
ICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZhcyhzaXplKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdl
QnVmZmVyV2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
SW1hZ2VCdWZmZXJXaW5DRS5jcHAKaW5kZXggYzNjNDExOWYzYzRkYTBkNDVkNmYyN2Y2ZWQ1NzI4
ZGFmMjk4NDhkNi4uZmQ0MWUxMjRiZWI3MzFjZDdiMTJiMDdiNzcyOTVjMmM3NzE2ZTFmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZm
ZXJXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
SW1hZ2VCdWZmZXJXaW5DRS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJ
bWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1hcC0+c2V0SGFz
QWxwaGEodHJ1ZSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXpl
JiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVu
ZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDog
bV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VC
dWZmZXJXeC5jcHAKaW5kZXggNGY0MWVkMTAzY2Y3YzE5ZTNiMzRlNTk1YzAyYzlmN2JhZTJhOWI4
NC4uOWYwMWVhMjMwMDIwOGJmNmYxNjBhNTBkMmFlZDhmN2UyMGQ1OGQ4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAK
QEAgLTk0LDcgKzk0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKCkKICAg
ICBkZWxldGUgbV9tZW1EQzsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAg
ICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6
ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5k
ZXggMTI0NmM0Yzk0ODMxMmQ0NTQ5MGQzNDkwMWE4YjIyNWU1YjZjZjE2MS4uYWM4NDQzMzQzZGYx
ZGRmNDcwNjg2MjhiOTdiMzY5MmVhMGQxNGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdEZvbnRTaXplKGludCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldERlZmF1bHRUaWxlU2l6ZShXZWJTaXplKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2b2lkIHNldERl
ZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpIHsgfSAvLyB0ZW1wb3Jhcnkgc3R1YgogICAgIHZp
cnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggNjZlZjUxYTMz
NjEzZTlmYzE5NDk5NTFkZTNmYjU3MWRiNDU0ZjFlOS4uMWQ5MDdhOTczNTYwYWUxMGRmYTcxNjEw
ZTkzYmI0ZjE3NDJjNzBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwCkBAIC01MzMsNyArNTMzLDYgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6
OnNldEFudGlhbGlhc2VkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAogdm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsK
LSAgICBtX3NldHRpbmdzLT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChlbmFibGVkKTsKIH0K
IAogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
YW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCBjNDRmMzMwYjQ3MTZmMDM0MTBlODJk
MmY4NTMxNjZkNTIzMzYyNTc3Li42ZjI2MWJhM2M5Zjk1MTA4NTZjYzY5MzUzM2EzM2VhMzRkNDU3
MzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZh
czJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKIGNsYXNz
IENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0IDogcHVibGljIFRlc3QgewogcHJvdGVjdGVkOgotICAg
IHZvaWQgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0
aHJlYWRNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlKQorICAgIHZvaWQgZnVsbExpZmVj
eWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRNb2RlKQogICAg
IHsKICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtYWluQ29udGV4dCA9IEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQo
YWRvcHRQdHIobmV3IE1vY2tDYW52YXNDb250ZXh0KSk7CiAKQEAgLTc2LDUyICs3NiwyOSBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAgICAgICAgIFdl
YkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwogCi0gICAgICAgIC8vIFRocmVhZGVkIGFuZCBub24g
ZGVmZXJyZWQgY2FudmFzZXMgYXJlIGRvdWJsZSBidWZmZXJlZC4KLSAgICAgICAgaWYgKHRocmVh
ZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09
IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBmcm9udFRleHR1cmVJZCA9IDI7Ci0gICAgICAg
ICAgICAvLyBDcmVhdGUgdGV4dHVyZSAob24gdGhlIG1haW4gdGhyZWFkKSBhbmQgZG8gdGhlIGNv
cHkgKG9uIHRoZSBpbXBsIHRocmVhZCkuCi0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9j
aywgY3JlYXRlVGV4dHVyZSgpKS5XaWxsT25jZShSZXR1cm4oZnJvbnRUZXh0dXJlSWQpKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBD
YW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIGRlZmVy
cmFsTW9kZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CisgICAgICAgIE93blB0cjxDYW52
YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFp
bkNvbnRleHQuZ2V0KCksIHNpemUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQpOwogCiAgICAg
ICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2Nr
KTsKIAogICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7Ci0gICAgICAgIGlm
ICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYmIGRlZmVycmFs
TW9kZSA9PSBOb25EZWZlcnJlZCkKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVwZGF0ZXIsIGFw
cGVuZENvcHkoYmFja1RleHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUoMzAwLCAxNTAp
KSk7CiAgICAgICAgIEVYUEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5wcmVwYXJlVGV4
dHVyZSh1cGRhdGVyKSk7CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJF
eHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlB
bmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKLSAgICAgICAgaWYgKHRocmVhZE1vZGUg
PT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRl
ZmVycmVkKSB7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVsZXRlVGV4dHVy
ZShmcm9udFRleHR1cmVJZCkpOwotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1vY2ssIGZs
dXNoKCkpOwotICAgICAgICB9CiAgICAgICAgIGJyaWRnZS5jbGVhcigpOwogICAgIH0KIH07CiAK
IG5hbWVzcGFjZSB7CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxM
aWZlY3ljbGVTaW5nbGVUaHJlYWRlZERlZmVycmVkKQotewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0
KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZCwgTm9uRGVmZXJyZWQpOwotfQotCi1U
RVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhy
ZWFkZWROb25EZWZlcnJlZCkKLXsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVy
QnJpZGdlOjpTaW5nbGVUaHJlYWQsIERlZmVycmVkKTsKLX0KLQotVEVTVF9GKENhbnZhczJETGF5
ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkTm9uRGVmZXJyZWQpCitURVNU
X0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhyZWFk
ZWQpCiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFk
ZWQsIE5vbkRlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJp
ZGdlOjpTaW5nbGVUaHJlYWQpOwogfQogCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3Qs
IHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWREZWZlcnJlZCkKK1RFU1RfRihDYW52YXMyRExheWVy
QnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRlZCkKIHsKLSAgICBmdWxsTGlmZWN5
Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgRGVmZXJyZWQpOworICAgIGZ1
bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2Fu
dmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcAppbmRleCBmZWIzMWIyODRmZTM0YjQxMTdkNTgw
MGI4YTViZDk3M2E0YTVlYzE4Li4yOTc3M2FlY2IyMDk2OTcyYTM1YWNkZjdiYmRjODUzYWRhOTRj
NmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJNYW5hZ2VyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52
YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5nIHRlc3Rpbmc6
OlRlc3Q7CiBjbGFzcyBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBDYW52YXMyRExh
eWVyQnJpZGdlIHsKIHB1YmxpYzoKICAgICBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSgpIAotICAg
ICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVh
dGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2ViS2l0OjpGYWtl
V2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgRGVmZXJyZWQsIFNpbmdsZVRo
cmVhZCwgMCkKKyAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3
IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSksIFNpbmds
ZVRocmVhZCwgMCkKICAgICAgICAgLCBtX2ZyZWVhYmxlQnl0ZXMoMCkKICAgICAgICAgLCBtX2Zy
ZWVNZW1vcnlJZlBvc3NpYmxlQ291bnQoMCkKICAgICAgICAgLCBtX2ZsdXNoQ291bnQoMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjEyYjQ5
N2NlYjY2ZTdlODExYWM2YzVjNzk4MmY1ZmRlYjI1NWU4Li5mZTAwYmMyZmIxMmQ0M2ZiMzlmNzY4
MzMzYTMwNGU5OWM2OWRiNjhlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMTggIEp1c3RpbiBOb3Zvc2Fk
ICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvZGUgY2xlYW51cDog
cmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjYwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGV0aW5nIGFs
bCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBhbmQgc3VwcG9ydGluZwor
ICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5nIGRlZmVycmVkIDJkIGNh
bnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVs
bDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6Cisg
ICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6CisKIDIwMTMtMDMt
MTUgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBSZW1v
dmUgc2ltcGxlIGdldHRlcnMgYW5kIHNldHRlcnMgZnJvbSBUZXN0UnVubmVyUXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAwNGFi
YjBmMTZhOGU3NDZjYTIzOGQxNzBhYjkyMjhlOWIwYWFmMzkwLi4zMTRhMzgzZTAxYWI5ZTI3MTUy
YTJhZGNlMjkzZDcyNWNiZmYxZjk2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBjb25zdCBj
aGFyIG9wdGlvbkVuYWJsZVNvZnR3YXJlQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS1zb2Z0d2Fy
ZS1jb21wb3NpCiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVUaHJlYWRlZENvbXBvc2l0
aW5nW10gPSAiLS1lbmFibGUtdGhyZWFkZWQtY29tcG9zaXRpbmciOwogc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBvc2l0aW5nLW1v
ZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhc1td
ID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBv
cHRpb25FbmFibGVEZWZlcnJlZDJEQ2FudmFzW10gPSAiLS1lbmFibGUtZGVmZXJyZWQtMmQtY2Fu
dmFzIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkUGFpbnRpbmdb
XSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBv
cHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1h
Y2NlbGVyYXRlZC12aWRlbyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVy
YXRlZEZpeGVkUG9zaXRpb25bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlv
biI7CkBAIC0xNDAsNyArMTM5LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCB0aHJlYWRl
ZEhUTUxQYXJzZXIgPSB0cnVlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQg
PSBmYWxzZTsKLSAgICBib29sIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAg
Ym9vbCBhY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgcGVyVGls
ZVBhaW50aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgZGVmZXJyZWRJbWFnZURlY29kaW5n
RW5hYmxlZCA9IGZhbHNlOwpAQCAtMTg3LDggKzE4NSw2IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAg
ICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZh
cykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAg
ICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBp
ZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRQYWludGluZykKICAgICAgICAg
ICAgIGFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAo
IWFyZ3VtZW50LmZpbmQob3B0aW9uVXNlR3JhcGhpY3NDb250ZXh0M0RJbXBsZW1lbnRhdGlvbikp
IHsKQEAgLTI0Miw3ICsyMzgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgICAgICBzaGVsbC5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9k
ZSk7CiAgICAgICAgIHNoZWxsLnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJz
ZXIpOwogICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVy
YXRlZDJEQ2FudmFzRW5hYmxlZCk7Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNF
bmFibGVkKGRlZmVycmVkMkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0QWNjZWxl
cmF0ZWRQYWludGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwogICAgICAg
ICBzaGVsbC5zZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYWNjZWxlcmF0ZWRBbmltYXRp
b25FbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJU
aWxlUGFpbnRpbmdFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4
IGNhZjI2NGZmODU2YTRjYzVjMDgwNTYyZjBiZTY0MjE2YzkyZDc5NzEuLjU0ZjNiZTE0ZmY1YWQ3
ZmQ3YTQwODhjNGUwZjgwZmFlZTI1M2ExNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5j
ZXMuaApAQCAtOTQsNyArOTQsNiBAQCBzdHJ1Y3QgV0VCVEVTVFJVTk5FUl9FWFBPUlQgV2ViUHJl
ZmVyZW5jZXMgewogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCB0aHJl
YWRlZEhUTUxQYXJzZXI7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKLSAg
ICBib29sIGRlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRQYWlu
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBwZXJUaWxlUGFpbnRpbmdFbmFibGVkOwogICAgIGJvb2wg
YWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IDMxMTRmYmRhOTdlOTNlODE5MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYuLjEyZDE4MmE1
M2YwMWM4OWYxZjg2YTc3OTU2OTU3YTdhY2NjZTRmMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJl
bmNlcy5jcHAKQEAgLTExOSw3ICsxMTksNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgp
CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGZh
bHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBkZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkID0gZmFsc2U7CiAg
ICAgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsKICAgICB0aHJlYWRlZEhUTUxQYXJzZXIg
PSB0cnVlOwpAQCAtMTkyLDcgKzE5MSw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8o
V2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
Zm9yY2VDb21wb3NpdGluZ01vZGUpOwogICAgIHNldHRpbmdzLT5zZXRUaHJlYWRlZEhUTUxQYXJz
ZXIodGhyZWFkZWRIVE1MUGFyc2VyKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQoYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQpOwotICAgIHNldHRpbmdzLT5z
ZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCk7CiAgICAg
c2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkKGFjY2VsZXJhdGVkUGFpbnRp
bmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJU
aWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRBbmltYXRp
b25FbmFibGVkKGFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCA0ZTIxMDMxNzE0ZTM5MDhiM2JlM2E2
MjY4YTIzZmE2Zjc4NjZiZTA1Li5mYzRmNTcxYWQxNzNkZDFlMGRkM2M0MGM5OGI1ZGVhOTFjM2E4
Y2M3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAg
LTExNSw3ICsxMTUsNiBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiAgICAgLCBtX2ZvcmNlQ29t
cG9zaXRpbmdNb2RlKGZhbHNlKQogICAgICwgbV90aHJlYWRlZEhUTUxQYXJzZXIodHJ1ZSkKICAg
ICAsIG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2RlZmVycmVk
MmRDYW52YXNFbmFibGVkKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxl
ZChmYWxzZSkKICAgICAsIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
YWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKGZhbHNlKQpAQCAtMjE3LDcgKzIxNiw2IEBAIHZv
aWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdlYlZpZXcpCiAgICAgbV9w
cmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkID0gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOwogICAgIG1fcHJl
ZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIG1f
cHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBtX2FjY2VsZXJhdGVkMmRDYW52YXNF
bmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSBtX2RlZmVycmVk
MmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQg
PSBtX2FjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkOwogICAgIG1fcHJlZnMucGVyVGlsZVBhaW50
aW5nRW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmFjY2Vs
ZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkOwpA
QCAtMjQwLDcgKzIzOCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpydW5GaWxlVGVzdChjb25zdCBUZXN0
UGFyYW1zJiBwYXJhbXMsIGJvb2wgc2hvdWxkRHVtcFBpeGVscykKICAgICAgICAgaWYgKCFtX3Nv
ZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKQogICAgICAgICAgICAgbV9wcmVmcy5hY2NlbGVyYXRl
ZDJkQ2FudmFzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IHRydWU7Ci0gICAgICAgIG1fcHJlZnMuZGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLm1vY2tTY3JvbGxiYXJzRW5h
YmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMuYXBwbHlUbyhtX3dlYlZpZXcpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggMDJkYTFmYzJl
OTVlYTY4NjUxOTU1MmVmNzA4ZGNjOTUzMTg0MmY0OC4uNjBlMDlhYjIxZmQ5NTM5N2ZjZDIyNzU3
ZGUwMjAxY2QxODNiYjUyNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmgKQEAgLTEyMSw3ICsxMjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZShib29sIGVuYWJsZWQpIHsgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGVuYWJs
ZWQ7IH0KICAgICB2b2lkIHNldFRocmVhZGVkSFRNTFBhcnNlcihib29sIGVuYWJsZWQpIHsgbV90
aHJlYWRlZEhUTUxQYXJzZXIgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZDJk
Q2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxl
cmF0ZWRQYWludGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BlclRpbGVQYWludGluZ0VuYWJsZWQgPSBl
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBl
bmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQpAQCAt
MjE4LDcgKzIxNyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZvcmNlQ29tcG9zaXRpbmdNb2Rl
OwogICAgIGJvb2wgbV90aHJlYWRlZEhUTUxQYXJzZXI7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVk
MmRDYW52YXNFbmFibGVkOwotICAgIGJvb2wgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZDsKICAg
ICBib29sIG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX3BlclRpbGVQ
YWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193626</attachid>
            <date>2013-03-18 12:17:00 -0700</date>
            <delta_ts>2013-03-18 12:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112605-20130318151251.patch</filename>
            <type>text/plain</type>
            <size>38997</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkOTQzODM2ZmYyMmI4
ZGIzMzI5MGI0MTFkM2QwZTViMGYyZTU2YS4uMDI2ZWE2M2JmZGExMjUzNmM2NDhjYmJjMjA2ODZj
NGQ0ZjRmZjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0xOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBGaXggU3R5bGVHcmlkRGF0YTo6b3BlcmF0
b3I9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNjhmZTE2MGEwZWNmZGQ0NTQ1MWQx
YmI0MTk1YTY1MDY2ZTNlZjJhLi5jMTEzMDdhZDIzMDA3NTJlYTM2YmMxMmZhOThlMzVkN2U1OGM2
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRp
bmcgYW5kIHN1cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2Fi
bGluZyBkZWZlcnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgICogcHVibGljL1dl
YlNldHRpbmdzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzOjpzZXREZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0OjpmdWxsTGlmZWN5Y2xlVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcDoKKyAgICAgICAgKEZha2VDYW52YXMy
RExheWVyQnJpZGdlOjpGYWtlQ2FudmFzMkRMYXllckJyaWRnZSk6CisKIDIwMTMtMDMtMTggIEpv
aG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBDb21wb3NpdG9yIGlzIGFwcGx5aW5nIHNjcm9sbCBvZmZzZXQgdXNpbmcgJ3Byb2dyYW1t
YXRpYycgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJkYmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1
Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIgKzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgog
fQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYg
VVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkt
PnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRD
YW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFn
ZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vsc2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNl
bmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVm
ZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJl
bmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4
IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlkNTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFm
NDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRT
dXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29u
c3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhh
c2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CmluZGV4IDM5NzFiYmE1MWJhY2E4MzcxNTI1ZmNkN2M0NjBiM2E2ZTU1MzU5YTMuLjI4MDIzMDAw
MDg5NDhiMDEyMzE1MDU5Y2YwMGNmNzg3Mjc2MDc1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFs
PXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJy
aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5
YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJi
MWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBt
YXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0g
ICAgICAgIE5vbkRlZmVycmVkLAotICAgICAgICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVt
IFNjYWxlQmVoYXZpb3IgewogICAgICAgICBTY2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04
NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBm
YWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZl
cnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAgICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3Mg
PSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIo
bmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVy
aW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpAQCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1
Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZhcmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3Jl
YXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIElt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAg
ICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNj
ZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmlu
ZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZiMzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4
YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2YwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0
YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRoaXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90
aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RX
aW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3cs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUo
c2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmlu
ZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMy
NjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBA
IC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IElu
dFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUp
CiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
aW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUzNjk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMx
NmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQog
Ci1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBi
b29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJl
IGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3Qg
aWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlv
blNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAK
aW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUxMzM4YzA4YmU2NzljNDQ1YmI2OS4uN2M1MDFlOWU1
YjBjNDY0MGZiOTI3MGUzN2ZkYTVlMmQ3NzM5YzYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2Vi
S2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMy
RExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJh
bE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDog
bV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2RlKQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUo
MCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2ln
bmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNl
ZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVjdCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJy
aWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXll
ckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2Zm
IGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJy
ZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5nIGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGlj
IGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3Rv
cnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUKLSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4K
LSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVm
ZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwotCi0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5n
KSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmlu
ZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFy
YW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAg
IC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMgb25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBp
cyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2Uy
RFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAg
ICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRDb250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXll
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNl
dFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQo
dGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQp
OwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5
ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwyMSArNjgsOCBAQCBDYW52YXMyRExheWVyQnJpZGdl
Ojp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xheWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExh
eWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0JlRGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0Rl
ZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRlZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVy
cmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7CisgICAgbV9jYW52YXMtPnNldE5vdGlmaWNh
dGlvbkNsaWVudCgwKTsKICAgICBtX2xheWVyLT5zZXRUZXh0dXJlSWQoMCk7Ci0gICAgaWYgKG1f
dXNlRG91YmxlQnVmZmVyaW5nKSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCk7Ci0gICAgICAgIG1fY29udGV4dC0+ZGVsZXRlVGV4dHVyZShtX2Zyb250QnVmZmVyVGV4
dHVyZSk7Ci0gICAgICAgIG1fY29udGV4dC0+Zmx1c2goKTsKLSAgICB9Ci19Ci0KLVNrRGVmZXJy
ZWRDYW52YXMqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmRlZmVycmVkQ2FudmFzKCkKLXsKLSAgICBp
ZiAobV9kZWZlcnJhbE1vZGUgPT0gRGVmZXJyZWQpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxTa0RlZmVycmVkQ2FudmFzKj4obV9jYW52YXMpOwotICAgIHJldHVybiAwOwogfQogCiB2b2lk
IENhbnZhczJETGF5ZXJCcmlkZ2U6OmxpbWl0UGVuZGluZ0ZyYW1lcygpCkBAIC0xMTksMTUgKzg0
LDEyIEBAIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5nRnJhbWVzKCkKIAog
dm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlRm9yRHJhdygpCiB7Ci0gICAgQVNTRVJU
KGRlZmVycmVkQ2FudmFzKCkpOwotICAgIGlmICghbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAg
ICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7CisgICAgbV9sYXllci0+d2lsbE1vZGlm
eVRleHR1cmUoKTsKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCiB2
b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFu
Z2VkKHNpemVfdCBieXRlc0FsbG9jYXRlZCkKIHsKLSAgICBBU1NFUlQobV9kZWZlcnJhbE1vZGUg
PT0gRGVmZXJyZWQpOwogICAgIGludHB0cl90IGRlbHRhID0gKGludHB0cl90KWJ5dGVzQWxsb2Nh
dGVkIC0gKGludHB0cl90KW1fYnl0ZXNBbGxvY2F0ZWQ7CiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9
IGJ5dGVzQWxsb2NhdGVkOwogICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckFs
bG9jYXRlZFN0b3JhZ2VDaGFuZ2VkKHRoaXMsIGRlbHRhKTsKQEAgLTEzNSw3ICs5Nyw3IEBAIHZv
aWQgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZ0NoYW5n
ZWQoc2l6ZV90IGJ5dGVzQWxsb2NhCiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpzdG9y
YWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCkKIHsKLSAgICByZXR1cm4gZGVmZXJyZWRDYW52YXMo
KS0+c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZygpOworICAgIHJldHVybiBtX2NhbnZhcy0+
c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZygpOwogfQogCiB2b2lkIENhbnZhczJETGF5ZXJC
cmlkZ2U6OmZsdXNoZWREcmF3Q29tbWFuZHMoKQpAQCAtMTUxLDggKzExMyw3IEBAIHZvaWQgQ2Fu
dmFzMkRMYXllckJyaWRnZTo6c2tpcHBlZFBlbmRpbmdEcmF3Q29tbWFuZHMoKQogCiBzaXplX3Qg
Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUoc2l6ZV90IGJ5dGVzVG9G
cmVlKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZhcygpKTsKLSAgICBzaXplX3QgYnl0ZXNG
cmVlZCA9IGRlZmVycmVkQ2FudmFzKCktPmZyZWVNZW1vcnlJZlBvc3NpYmxlKGJ5dGVzVG9GcmVl
KTsKKyAgICBzaXplX3QgYnl0ZXNGcmVlZCA9IG1fY2FudmFzLT5mcmVlTWVtb3J5SWZQb3NzaWJs
ZShieXRlc1RvRnJlZSk7CiAgICAgaWYgKGJ5dGVzRnJlZWQpCiAgICAgICAgIENhbnZhczJETGF5
ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckFsbG9jYXRlZFN0b3JhZ2VDaGFuZ2VkKHRoaXMsIC0oKGlu
dHB0cl90KWJ5dGVzRnJlZWQpKTsKICAgICBtX2J5dGVzQWxsb2NhdGVkIC09IGJ5dGVzRnJlZWQ7
CkBAIC0xNjEsMjEgKzEyMiwxNSBAQCBzaXplX3QgQ2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1l
bW9yeUlmUG9zc2libGUoc2l6ZV90IGJ5dGVzVG9GcmVlKQogCiB2b2lkIENhbnZhczJETGF5ZXJC
cmlkZ2U6OmZsdXNoKCkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYg
KGRlZmVycmVkQ2FudmFzKCktPmhhc1BlbmRpbmdDb21tYW5kcygpKQorICAgIGlmIChtX2NhbnZh
cy0+aGFzUGVuZGluZ0NvbW1hbmRzKCkpCiAgICAgICAgIG1fY2FudmFzLT5mbHVzaCgpOwogfQog
CiBTa0NhbnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMoU2tEZXZpY2UqIGRldmlj
ZSkKIHsKICAgICBBU1NFUlQoIW1fY2FudmFzKTsKLSAgICBpZiAobV9kZWZlcnJhbE1vZGUgPT0g
RGVmZXJyZWQpIHsKLSAgICAgICAgU2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWQgPSBuZXcgU2tE
ZWZlcnJlZENhbnZhcyhkZXZpY2UpOwotICAgICAgICBkZWZlcnJlZC0+c2V0Tm90aWZpY2F0aW9u
Q2xpZW50KHRoaXMpOwotICAgICAgICBtX2NhbnZhcyA9IGRlZmVycmVkOwotICAgIH0gZWxzZQot
ICAgICAgICBtX2NhbnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UpOwotCisgICAgbV9jYW52YXMg
PSBuZXcgU2tEZWZlcnJlZENhbnZhcyhkZXZpY2UpOworICAgIG1fY2FudmFzLT5zZXROb3RpZmlj
YXRpb25DbGllbnQodGhpcyk7CiAgICAgcmV0dXJuIG1fY2FudmFzOwogfQogCkBAIC0xOTEsMTEg
KzE0Niw2IEBAIHVuc2lnbmVkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVUZXh0dXJlKFdl
YlRleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQogCiAgICAgbV9jb250ZXh0LT5mbHVzaCgpOwogCi0g
ICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5nKSB7Ci0gICAgICAgIHVwZGF0ZXIuYXBwZW5kQ29w
eShtX2JhY2tCdWZmZXJUZXh0dXJlLCBtX2Zyb250QnVmZmVyVGV4dHVyZSwgbV9zaXplKTsKLSAg
ICAgICAgcmV0dXJuIG1fZnJvbnRCdWZmZXJUZXh0dXJlOwotICAgIH0KLQogICAgIGlmIChtX2Nh
bnZhcykgewogICAgICAgICAvLyBOb3RpZnkgc2tpYSB0aGF0IHRoZSBzdGF0ZSBvZiB0aGUgYmFj
a2luZyBzdG9yZSB0ZXh0dXJlIG9iamVjdCB3aWxsIGJlIHRvdWNoZWQgYnkgdGhlIGNvbXBvc2l0
b3IKICAgICAgICAgR3JSZW5kZXJUYXJnZXQqIHJlbmRlclRhcmdldCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3JSZW5kZXJUYXJnZXQqPihtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vzc1JlbmRlclRh
cmdldCgpKTsKQEAgLTIxNywxMiArMTY3LDggQEAgV2ViS2l0OjpXZWJMYXllciogQ2FudmFzMkRM
YXllckJyaWRnZTo6bGF5ZXIoKQogCiB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OmNvbnRleHRB
Y3F1aXJlZCgpCiB7Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkICYmICFt
X3VzZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgbV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUo
KTsKLSAgICBlbHNlIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBD
YW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJEaWREcmF3KHRoaXMpOwotICAgICAgICBt
X2RpZFJlY29yZERyYXdDb21tYW5kID0gdHJ1ZTsKLSAgICB9CisgICAgQ2FudmFzMkRMYXllck1h
bmFnZXI6OmdldCgpLmxheWVyRGlkRHJhdyh0aGlzKTsKKyAgICBtX2RpZFJlY29yZERyYXdDb21t
YW5kID0gdHJ1ZTsKIH0KIAogdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6YmFja0J1ZmZl
clRleHR1cmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCmluZGV4IDhlNDQyZmQ5MTc3
YWE4MjgzZDJiMDY4N2E0MDU4MzljZWI2NTAzMmQuLmIzODYzMDRjMzM3ZjMwM2E2NzQ1ZTZhOTFk
OTRjNmU5NWNlNTIxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKQEAgLTI3LDcg
KzI3LDYgQEAKICNkZWZpbmUgQ2FudmFzMkRMYXllckJyaWRnZV9oCiAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiIC8vIEZvciBEZWZlcnJh
bE1vZGUgZW51bS4KICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiU2tEZWZlcnJlZENh
bnZhcy5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oPgpAQCAt
NTAsOSArNDksOSBAQCBwdWJsaWM6CiAgICAgICAgIFRocmVhZGVkCiAgICAgfTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBEZWZlcnJhbE1v
ZGUgZGVmZXJyYWxNb2RlLCBUaHJlYWRNb2RlIHRocmVhZGluZywgdW5zaWduZWQgdGV4dHVyZUlk
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGNyZWF0ZShQYXNz
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBU
aHJlYWRNb2RlIHRocmVhZGluZywgdW5zaWduZWQgdGV4dHVyZUlkKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52YXMyRExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIGRl
ZmVycmFsTW9kZSwgdGhyZWFkaW5nLCB0ZXh0dXJlSWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBDYW52YXMyRExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIHRocmVhZGluZywgdGV4
dHVyZUlkKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+Q2FudmFzMkRMYXllckJyaWRnZSgpOwpA
QCAtODEsMTUgKzgwLDExIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBiYWNrQnVmZmVyVGV4dHVy
ZSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYsIERlZmVycmFsTW9kZSwgVGhyZWFkTW9k
ZSwgdW5zaWduZWQgdGV4dHVyZUlkKTsKLSAgICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZENh
bnZhcygpOworICAgIENhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4sIGNvbnN0IEludFNpemUmLCBUaHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpOwog
Ci0gICAgRGVmZXJyYWxNb2RlIG1fZGVmZXJyYWxNb2RlOwotICAgIGJvb2wgbV91c2VEb3VibGVC
dWZmZXJpbmc7Ci0gICAgdW5zaWduZWQgbV9mcm9udEJ1ZmZlclRleHR1cmU7CiAgICAgdW5zaWdu
ZWQgbV9iYWNrQnVmZmVyVGV4dHVyZTsKICAgICBJbnRTaXplIG1fc2l6ZTsKLSAgICBTa0NhbnZh
cyogbV9jYW52YXM7CisgICAgU2tEZWZlcnJlZENhbnZhcyogbV9jYW52YXM7CiAgICAgT3duUHRy
PFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI+IG1fbGF5ZXI7CiAgICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgc2l6ZV90IG1fYnl0ZXNBbGxvY2F0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1
ZmZlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVm
ZmVyUXQuY3BwCmluZGV4IDQzODU5Y2FkMWM3NDgzNTQzYzA3ZGYxOGFkNjNlOTU3YTcyODU4ZDQu
LjFiY2RlZTk0NWQ1MTRkNDMzY2U4YzkzZWRiN2NmNTFiYzdjNzg0OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCkBA
IC05NCw3ICs5NCw3IEBAIFFJbWFnZSBJbWFnZUJ1ZmZlckRhdGE6OnRvUUltYWdlKCkgY29uc3QK
ICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJl
bmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJ
bWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUg
Ki8sIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2Rh
dGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFn
ZUJ1ZmZlclNraWEuY3BwCmluZGV4IDc0MmIwMTFiODAyZWUwMTFhNjRkYmE3MzU0YWMxY2QzZTdl
ODA0NjUuLjYxMzA5ZmFkNDdjNWVlYmZiOGU0ZWE0MGY0ZWU5NDlhYjcwMDlmNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVm
ZmVyU2tpYS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1ZmZl
ckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKIH0KIAotc3RhdGljIFNrQ2FudmFzKiBjcmVh
dGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRTaXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEq
IGRhdGEsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUpCitzdGF0aWMgU2tDYW52YXMqIGNyZWF0
ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSog
ZGF0YSkKIHsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzRCA9IFNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjpnZXQoKTsKICAgICBpZiAoIWNvbnRleHQzRCkKQEAgLTk0LDcg
Kzk0LDcgQEAgc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJ
bnRTaXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGQKICAgICBTa0F1dG9UVW5yZWY8U2tEZXZp
Y2U+IGRldmljZShuZXcgU2tHcHVEZXZpY2UoZ3IsIHRleHR1cmUuZ2V0KCkpKTsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFk
TW9kZSB0aHJlYWRNb2RlID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5pc1RocmVhZGVk
Q29tcG9zaXRpbmdFbmFibGVkKCkgPyBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCA6IENh
bnZhczJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZDsKLSAgICBkYXRhLT5tX2xheWVyQnJpZGdl
ID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRlKGNvbnRleHQzRC5yZWxlYXNlKCksIHNpemUs
IGRlZmVycmFsTW9kZSwgdGhyZWFkTW9kZSwgdGV4dHVyZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRs
ZSgpKTsKKyAgICBkYXRhLT5tX2xheWVyQnJpZGdlID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3Jl
YXRlKGNvbnRleHQzRC5yZWxlYXNlKCksIHNpemUsIHRocmVhZE1vZGUsIHRleHR1cmUuZ2V0KCkt
PmdldFRleHR1cmVIYW5kbGUoKSk7CiAgICAgY2FudmFzID0gZGF0YS0+bV9sYXllckJyaWRnZS0+
c2tDYW52YXMoZGV2aWNlLmdldCgpKTsKICNlbHNlCiAgICAgY2FudmFzID0gbmV3IFNrQ2FudmFz
KGRldmljZS5nZXQoKSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwKICAgICBzdWNjZXNzID0gdHJ1ZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBib29s
JiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUo
c2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLAogICAgIE93blB0cjxTa0NhbnZhcz4gY2FudmFzOwogCiAgICAg
aWYgKHJlbmRlcmluZ01vZGUgPT0gQWNjZWxlcmF0ZWQpCi0gICAgICAgIGNhbnZhcyA9IGFkb3B0
UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEsIGRlZmVycmFsTW9kZSkp
OworICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhzaXpl
LCAmbV9kYXRhKSk7CiAgICAgZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PSBVbmFjY2VsZXJhdGVk
Tm9uUGxhdGZvcm1CdWZmZXIpCiAgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZU5vblBs
YXRmb3JtQ2FudmFzKHNpemUpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRleCBjM2M0MTE5
ZjNjNGRhMGQ0NWQ2ZjI3ZjZlZDU3MjhkYWYyOTg0OGQ2Li5mZDQxZTEyNGJlYjczMWNkN2IxMmIw
N2I3NzI5NWMyYzc3MTZlMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAtNzEsNyArNzEs
NyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXpl
KQogICAgIG1fYml0bWFwLT5zZXRIYXNBbHBoYSh0cnVlKTsKIH0KIAotSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1
Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQog
ICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcAppbmRleCA0ZjQxZWQxMDNjZjdjMTll
M2IzNGU1OTVjMDJjOWY3YmFlMmE5Yjg0Li45ZjAxZWEyMzAwMjA4YmY2ZjE2MGE1MGQyYWVkOGY3
ZTIwZDU4ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
eC9JbWFnZUJ1ZmZlcld4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9JbWFnZUJ1ZmZlcld4LmNwcApAQCAtOTQsNyArOTQsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6
On5JbWFnZUJ1ZmZlckRhdGEoKQogICAgIGRlbGV0ZSBtX21lbURDOwogfQogCi1JbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9v
bCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNp
emUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzZTViZjExNjEyMTRjNTAzZmU1MDEyZGRjYzQ5Njlm
MjVmYzc1Y2Y1Li42YWRkNTFhNzU2ODE4NDhkOTAwMjhiZTU5ZWY2MWFjZDliMDcxMmI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTkwLDcgKzkw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUaWxl
U2l6ZShXZWJTaXplKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRWaWRlb1Bvc3Rl
clVSTChjb25zdCBXZWJTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldERlZmVycmVk
MmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2b2lkIHNldERlZmVycmVkMmRDYW52YXNF
bmFibGVkKGJvb2wpIHsgfSAvLyB0ZW1wb3Jhcnkgc3R1YgogICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggNjEwNjY3MWRhOTdkYTUzYTJlYTdlNzFm
MWEwODNjMWZiNTk1ZDU1OS4uMGVkZWY1YTA2Mjc4OWRiMmI2Yzk3Y2FhMmVkZDE1Yjc5ZGZiMjhh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CkBAIC01MzgsNyArNTM4LDYgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFudGlhbGlhc2Vk
MmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNl
dERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBtX3NldHRpbmdz
LT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChlbmFibGVkKTsKIH0KIAogdm9pZCBXZWJTZXR0
aW5nc0ltcGw6OnNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJp
ZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJC
cmlkZ2VUZXN0LmNwcAppbmRleCBjNDRmMzMwYjQ3MTZmMDM0MTBlODJkMmY4NTMxNjZkNTIzMzYy
NTc3Li42ZjI2MWJhM2M5Zjk1MTA4NTZjYzY5MzUzM2EzM2VhMzRkNDU3MzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0LmNwcApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIENhbnZhczJETGF5ZXJC
cmlkZ2VUZXN0IDogcHVibGljIFRlc3QgewogcHJvdGVjdGVkOgotICAgIHZvaWQgZnVsbExpZmVj
eWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRNb2RlLCBEZWZl
cnJhbE1vZGUgZGVmZXJyYWxNb2RlKQorICAgIHZvaWQgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFz
MkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRNb2RlKQogICAgIHsKICAgICAgICAgUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtYWluQ29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IE1v
Y2tDYW52YXNDb250ZXh0KSk7CiAKQEAgLTc2LDUyICs3NiwyOSBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAgICAgICAgIFdlYkdMSWQgZnJvbnRUZXh0
dXJlSWQgPSAxOwogCi0gICAgICAgIC8vIFRocmVhZGVkIGFuZCBub24gZGVmZXJyZWQgY2FudmFz
ZXMgYXJlIGRvdWJsZSBidWZmZXJlZC4KLSAgICAgICAgaWYgKHRocmVhZE1vZGUgPT0gQ2FudmFz
MkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkKSB7
Ci0gICAgICAgICAgICBmcm9udFRleHR1cmVJZCA9IDI7Ci0gICAgICAgICAgICAvLyBDcmVhdGUg
dGV4dHVyZSAob24gdGhlIG1haW4gdGhyZWFkKSBhbmQgZG8gdGhlIGNvcHkgKG9uIHRoZSBpbXBs
IHRocmVhZCkuCi0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgY3JlYXRlVGV4dHVy
ZSgpKS5XaWxsT25jZShSZXR1cm4oZnJvbnRUZXh0dXJlSWQpKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIGRlZmVycmFsTW9kZSwgdGhyZWFk
TW9kZSwgYmFja1RleHR1cmVJZCk7CisgICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdl
PiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCks
IHNpemUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQpOwogCiAgICAgICAgIDo6dGVzdGluZzo6
TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKIAogICAgICAgICBF
WFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7Ci0gICAgICAgIGlmICh0aHJlYWRNb2RlID09
IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYmIGRlZmVycmFsTW9kZSA9PSBOb25EZWZl
cnJlZCkKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVwZGF0ZXIsIGFwcGVuZENvcHkoYmFja1Rl
eHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUoMzAwLCAxNTApKSk7CiAgICAgICAgIEVY
UEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5wcmVwYXJlVGV4dHVyZSh1cGRhdGVyKSk7
CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1h
aW5Nb2NrKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0
aW9ucygmdXBkYXRlcik7CiAKLSAgICAgICAgaWYgKHRocmVhZE1vZGUgPT0gQ2FudmFzMkRMYXll
ckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkKSB7Ci0gICAg
ICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVsZXRlVGV4dHVyZShmcm9udFRleHR1cmVJ
ZCkpOwotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1vY2ssIGZsdXNoKCkpOwotICAgICAg
ICB9CiAgICAgICAgIGJyaWRnZS5jbGVhcigpOwogICAgIH0KIH07CiAKIG5hbWVzcGFjZSB7CiAK
LVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVU
aHJlYWRlZERlZmVycmVkKQotewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJC
cmlkZ2U6OlNpbmdsZVRocmVhZCwgTm9uRGVmZXJyZWQpOwotfQotCi1URVNUX0YoQ2FudmFzMkRM
YXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhyZWFkZWROb25EZWZlcnJl
ZCkKLXsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVU
aHJlYWQsIERlZmVycmVkKTsKLX0KLQotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0
ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkTm9uRGVmZXJyZWQpCitURVNUX0YoQ2FudmFzMkRMYXll
ckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhyZWFkZWQpCiB7Ci0gICAgZnVs
bExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQsIE5vbkRlZmVycmVk
KTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJl
YWQpOwogfQogCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5
Y2xlVGhyZWFkZWREZWZlcnJlZCkKK1RFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVz
dEZ1bGxMaWZlY3ljbGVUaHJlYWRlZCkKIHsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMy
RExheWVyQnJpZGdlOjpUaHJlYWRlZCwgRGVmZXJyZWQpOworICAgIGZ1bGxMaWZlY3ljbGVUZXN0
KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFn
ZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1h
bmFnZXJUZXN0LmNwcAppbmRleCBmZWIzMWIyODRmZTM0YjQxMTdkNTgwMGI4YTViZDk3M2E0YTVl
YzE4Li4yOTc3M2FlY2IyMDk2OTcyYTM1YWNkZjdiYmRjODUzYWRhOTRjNmJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyTWFuYWdl
clRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5nIHRlc3Rpbmc6OlRlc3Q7CiBjbGFzcyBG
YWtlQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBDYW52YXMyRExheWVyQnJpZGdlIHsKIHB1
YmxpYzoKICAgICBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSgpIAotICAgICAgICA6IENhbnZhczJE
TGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRl
eHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250
ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgRGVmZXJyZWQsIFNpbmdsZVRocmVhZCwgMCkKKyAgICAg
ICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRl
R3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IFdlYktpdDo6RmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSksIFNpbmdsZVRocmVhZCwgMCkKICAg
ICAgICAgLCBtX2ZyZWVhYmxlQnl0ZXMoMCkKICAgICAgICAgLCBtX2ZyZWVNZW1vcnlJZlBvc3Np
YmxlQ291bnQoMCkKICAgICAgICAgLCBtX2ZsdXNoQ291bnQoMCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMzAyYjg0YjY4YTNhNzBjYThjZDE5
MDA0ZDAyM2IzMmNiOTRhNDM2Li40YWYyMjM0MTRlYjFkMTAwNWM5MjIyODA2NjcyNzJmYzU2MGEw
YjZlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMTggIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xl
LmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9y
dCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjYwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0
IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBhbmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hy
b21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5nIGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToK
KyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgIChUZXN0U2hl
bGw6OnJ1bkZpbGVUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6CisKIDIwMTMtMDMtMTggIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgZGVsZXRlLXN0YWxlLWJ1aWxkLWZpbGVz
IGlzIHRvbyBhZ2dyZXNzaXZlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
dW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggYzRiZmZjMzQwNmYzMTI5OTIyYWVkYjI0ZmY1MWMyNzZi
MDM1MTI0OS4uMDdmNzJjZmYwNjhlN2Y2ZGZjMjMyMzI2ZmE2MTg5ZTc1MDg1NTBkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAt
NTksNyArNTksNiBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBv
c2l0aW5nW10gPSAiLS1lbmFibGUtc29mdHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIg
b3B0aW9uRW5hYmxlVGhyZWFkZWRDb21wb3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNv
bXBvc2l0aW5nIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2Rl
W10gPSAiLS1mb3JjZS1jb21wb3NpdGluZy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1j
YW52YXMiOwotc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1td
ID0gIi0tZW5hYmxlLWRlZmVycmVkLTJkLWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRp
b25FbmFibGVBY2NlbGVyYXRlZFBhaW50aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtcGFp
bnRpbmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclZpZGVvW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtdmlkZW8iOwogc3RhdGljIGNv
bnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRGaXhlZFBvc2l0aW9uW10gPSAiLS1lbmFi
bGUtYWNjZWxlcmF0ZWQtZml4ZWQtcG9zaXRpb24iOwpAQCAtMTM5LDcgKzEzOCw2IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9k
ZSA9IGZhbHNlOwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsKICAgICBib29s
IGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7Ci0gICAgYm9vbCBkZWZlcnJlZDJE
Q2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKICAg
ICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxzZTsKQEAgLTE4Niw4ICsx
ODQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICAgICAgdGhy
ZWFkZWRIVE1MUGFyc2VyID0gZmFsc2U7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9w
dGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52YXMpCiAgICAgICAgICAgICBhY2NlbGVyYXRlZDJE
Q2FudmFzRW5hYmxlZCA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlv
bkVuYWJsZURlZmVycmVkMkRDYW52YXMpCi0gICAgICAgICAgICBkZWZlcnJlZDJEQ2FudmFzRW5h
YmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJsZUFj
Y2VsZXJhdGVkUGFpbnRpbmcpCiAgICAgICAgICAgICBhY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxl
ZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJsZVBlclRp
bGVQYWludGluZykKQEAgLTIzMyw3ICsyMjksNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogICAgICAgICBzaGVsbC5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBv
c2l0aW5nTW9kZSk7CiAgICAgICAgIHNoZWxsLnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRl
ZEhUTUxQYXJzZXIpOwogICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCk7Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVk
MmRDYW52YXNFbmFibGVkKGRlZmVycmVkMkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwu
c2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQp
OwogICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYWNjZWxlcmF0
ZWRBbmltYXRpb25FbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50aW5nRW5h
YmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNl
cy5oCmluZGV4IGNhZjI2NGZmODU2YTRjYzVjMDgwNTYyZjBiZTY0MjE2YzkyZDc5NzEuLjU0ZjNi
ZTE0ZmY1YWQ3ZmQ3YTQwODhjNGUwZjgwZmFlZTI1M2ExNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2Vi
UHJlZmVyZW5jZXMuaApAQCAtOTQsNyArOTQsNiBAQCBzdHJ1Y3QgV0VCVEVTVFJVTk5FUl9FWFBP
UlQgV2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGU7CiAgICAg
Ym9vbCB0aHJlYWRlZEhUTUxQYXJzZXI7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5h
YmxlZDsKLSAgICBib29sIGRlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIGJvb2wgYWNjZWxl
cmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBwZXJUaWxlUGFpbnRpbmdFbmFibGVkOwog
ICAgIGJvb2wgYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IDMxMTRmYmRhOTdlOTNlODE5MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYu
LjEyZDE4MmE1M2YwMWM4OWYxZjg2YTc3OTU2OTU3YTdhY2NjZTRmMzAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2Vz
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTksNiBAQCB2b2lkIFdlYlByZWZlcmVuY2Vz
OjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFsc2U7
CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBkZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkID0g
ZmFsc2U7CiAgICAgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsKICAgICB0aHJlYWRlZEhU
TUxQYXJzZXIgPSB0cnVlOwpAQCAtMTkyLDcgKzE5MSw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6
OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoZm9yY2VDb21wb3NpdGluZ01vZGUpOwogICAgIHNldHRpbmdzLT5zZXRUaHJlYWRl
ZEhUTUxQYXJzZXIodGhyZWFkZWRIVE1MUGFyc2VyKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxl
cmF0ZWQyZENhbnZhc0VuYWJsZWQoYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQpOwotICAgIHNl
dHRpbmdzLT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChkZWZlcnJlZDJkQ2FudmFzRW5hYmxl
ZCk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkKGFjY2VsZXJh
dGVkUGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5nRW5h
YmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0
ZWRBbmltYXRpb25FbmFibGVkKGFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCA0ZTIxMDMxNzE0ZTM5
MDhiM2JlM2E2MjY4YTIzZmE2Zjc4NjZiZTA1Li5mYzRmNTcxYWQxNzNkZDFlMGRkM2M0MGM5OGI1
ZGVhOTFjM2E4Y2M3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5jcHAKQEAgLTExNSw3ICsxMTUsNiBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiAgICAgLCBt
X2ZvcmNlQ29tcG9zaXRpbmdNb2RlKGZhbHNlKQogICAgICwgbV90aHJlYWRlZEhUTUxQYXJzZXIo
dHJ1ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCi0gICAgLCBt
X2RlZmVycmVkMmRDYW52YXNFbmFibGVkKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZFBhaW50
aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKGZhbHNlKQpAQCAtMjE3LDcgKzIx
Niw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdlYlZpZXcp
CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFi
bGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOwog
ICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdNb2Rl
OwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBtX2FjY2VsZXJhdGVk
MmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSBt
X2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRQYWludGlu
Z0VuYWJsZWQgPSBtX2FjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkOwogICAgIG1fcHJlZnMucGVy
VGlsZVBhaW50aW5nRW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBtX3By
ZWZzLmFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25F
bmFibGVkOwpAQCAtMjQwLDcgKzIzOCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpydW5GaWxlVGVzdChj
b25zdCBUZXN0UGFyYW1zJiBwYXJhbXMsIGJvb2wgc2hvdWxkRHVtcFBpeGVscykKICAgICAgICAg
aWYgKCFtX3NvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKQogICAgICAgICAgICAgbV9wcmVmcy5h
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMuYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IHRydWU7Ci0gICAgICAgIG1fcHJlZnMu
ZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLm1vY2tTY3Jv
bGxiYXJzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMuYXBwbHlUbyhtX3dlYlZpZXcp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXgg
MDJkYTFmYzJlOTVlYTY4NjUxOTU1MmVmNzA4ZGNjOTUzMTg0MmY0OC4uNjBlMDlhYjIxZmQ5NTM5
N2ZjZDIyNzU3ZGUwMjAxY2QxODNiYjUyNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmgKQEAgLTEyMSw3ICsxMjEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQpIHsgbV9mb3JjZUNvbXBvc2l0aW5nTW9k
ZSA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldFRocmVhZGVkSFRNTFBhcnNlcihib29sIGVuYWJs
ZWQpIHsgbV90aHJlYWRlZEhUTUxQYXJzZXIgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2Nl
bGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFi
bGVkKGJvb2wgZW5hYmxlZCkgeyBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsg
fQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRQ
ZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BlclRpbGVQYWludGluZ0Vu
YWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJs
ZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gZW5hYmxl
ZDsgfQpAQCAtMjE4LDcgKzIxNyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlOwogICAgIGJvb2wgbV90aHJlYWRlZEhUTUxQYXJzZXI7CiAgICAgYm9vbCBtX2Fj
Y2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOwotICAgIGJvb2wgbV9kZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZDsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBt
X3BlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQW5pbWF0aW9u
RW5hYmxlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193629</attachid>
            <date>2013-03-18 12:38:54 -0700</date>
            <delta_ts>2013-03-20 06:58:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112605-20130318153446.patch</filename>
            <type>text/plain</type>
            <size>39062</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkOTQzODM2ZmYyMmI4
ZGIzMzI5MGI0MTFkM2QwZTViMGYyZTU2YS4uMDI2ZWE2M2JmZGExMjUzNmM2NDhjYmJjMjA2ODZj
NGQ0ZjRmZjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0xOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBGaXggU3R5bGVHcmlkRGF0YTo6b3BlcmF0
b3I9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNjhmZTE2MGEwZWNmZGQ0NTQ1MWQx
YmI0MTk1YTY1MDY2ZTNlZjJhLi5jMTEzMDdhZDIzMDA3NTJlYTM2YmMxMmZhOThlMzVkN2U1OGM2
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRp
bmcgYW5kIHN1cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2Fi
bGluZyBkZWZlcnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgICogcHVibGljL1dl
YlNldHRpbmdzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzOjpzZXREZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0OjpmdWxsTGlmZWN5Y2xlVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcDoKKyAgICAgICAgKEZha2VDYW52YXMy
RExheWVyQnJpZGdlOjpGYWtlQ2FudmFzMkRMYXllckJyaWRnZSk6CisKIDIwMTMtMDMtMTggIEpv
aG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBDb21wb3NpdG9yIGlzIGFwcGx5aW5nIHNjcm9sbCBvZmZzZXQgdXNpbmcgJ3Byb2dyYW1t
YXRpYycgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJkYmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1
Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIgKzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgog
fQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYg
VVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkt
PnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRD
YW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFn
ZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vsc2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNl
bmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVm
ZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJl
bmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4
IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlkNTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFm
NDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRT
dXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29u
c3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhh
c2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CmluZGV4IDM5NzFiYmE1MWJhY2E4MzcxNTI1ZmNkN2M0NjBiM2E2ZTU1MzU5YTMuLjI4MDIzMDAw
MDg5NDhiMDEyMzE1MDU5Y2YwMGNmNzg3Mjc2MDc1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFs
PXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJy
aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5
YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJi
MWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBt
YXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0g
ICAgICAgIE5vbkRlZmVycmVkLAotICAgICAgICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVt
IFNjYWxlQmVoYXZpb3IgewogICAgICAgICBTY2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04
NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBm
YWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZl
cnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAgICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3Mg
PSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIo
bmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVy
aW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpAQCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1
Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZhcmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3Jl
YXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIElt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAg
ICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNj
ZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmlu
ZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZiMzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4
YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2YwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0
YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRoaXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90
aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RX
aW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3cs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUo
c2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmlu
ZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMy
NjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBA
IC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IElu
dFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUp
CiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
aW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUzNjk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMx
NmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQog
Ci1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBi
b29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJl
IGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3Qg
aWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlv
blNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAK
aW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUxMzM4YzA4YmU2NzljNDQ1YmI2OS4uZTQwNmMzMGJi
OTllZjMyOWE3ZWU0NDc3NzI0YTQxYWVjMmYyNTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2Vi
S2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMy
RExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJh
bE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDog
bV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2RlKQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUo
MCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2ln
bmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNl
ZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVjdCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJy
aWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXll
ckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2Zm
IGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJy
ZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5nIGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGlj
IGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3Rv
cnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUKLSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4K
LSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVm
ZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwotCi0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5n
KSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmlu
ZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFy
YW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAg
IC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMgb25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBp
cyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2Uy
RFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAg
ICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRDb250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXll
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNl
dFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQo
dGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQp
OwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5
ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwyMSArNjgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdl
Ojp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xheWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExh
eWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0JlRGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0Rl
ZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRlZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVy
cmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7CisgICAgaWYgKG1fY2FudmFzKQorICAgICAg
ICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KDApOwogICAgIG1fbGF5ZXItPnNldFRl
eHR1cmVJZCgwKTsKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICAgICAgbV9jb250ZXh0LT5kZWxldGVU
ZXh0dXJlKG1fZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgbV9jb250ZXh0LT5mbHVzaCgp
OwotICAgIH0KLX0KLQotU2tEZWZlcnJlZENhbnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6ZGVm
ZXJyZWRDYW52YXMoKQotewotICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNrRGVmZXJyZWRDYW52YXMqPihtX2NhbnZhcyk7Ci0g
ICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5n
RnJhbWVzKCkKQEAgLTExOSwxNSArODUsMTIgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjps
aW1pdFBlbmRpbmdGcmFtZXMoKQogCiB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVG
b3JEcmF3KCkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYgKCFtX3Vz
ZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgbV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUoKTsK
KyAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOwogICAgIG1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCk7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFs
bG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQoc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKQogewotICAg
IEFTU0VSVChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCk7CiAgICAgaW50cHRyX3QgZGVsdGEg
PSAoaW50cHRyX3QpYnl0ZXNBbGxvY2F0ZWQgLSAoaW50cHRyX3QpbV9ieXRlc0FsbG9jYXRlZDsK
ICAgICBtX2J5dGVzQWxsb2NhdGVkID0gYnl0ZXNBbGxvY2F0ZWQ7CiAgICAgQ2FudmFzMkRMYXll
ck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgZGVsdGEp
OwpAQCAtMTM1LDcgKzk4LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpzdG9yYWdlQWxs
b2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0ZXNBbGxvY2EKIAogc2l6ZV90IENh
bnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcoKQogewotICAg
IHJldHVybiBkZWZlcnJlZENhbnZhcygpLT5zdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCk7
CisgICAgcmV0dXJuIG1fY2FudmFzID8gbV9jYW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNv
cmRpbmcoKSA6IDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2hlZERyYXdD
b21tYW5kcygpCkBAIC0xNTEsOCArMTE0LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpz
a2lwcGVkUGVuZGluZ0RyYXdDb21tYW5kcygpCiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdl
OjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiB7Ci0gICAgQVNTRVJU
KGRlZmVycmVkQ2FudmFzKCkpOwotICAgIHNpemVfdCBieXRlc0ZyZWVkID0gZGVmZXJyZWRDYW52
YXMoKS0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpOworICAgIHNpemVfdCBieXRl
c0ZyZWVkID0gbV9jYW52YXMgPyBtX2NhbnZhcy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNU
b0ZyZWUpIDogMDsKICAgICBpZiAoYnl0ZXNGcmVlZCkKICAgICAgICAgQ2FudmFzMkRMYXllck1h
bmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgLSgoaW50cHRy
X3QpYnl0ZXNGcmVlZCkpOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgLT0gYnl0ZXNGcmVlZDsKQEAg
LTE2MSwyMSArMTIzLDE1IEBAIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5
SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRn
ZTo6Zmx1c2goKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZhcygpKTsKLSAgICBpZiAoZGVm
ZXJyZWRDYW52YXMoKS0+aGFzUGVuZGluZ0NvbW1hbmRzKCkpCisgICAgaWYgKG1fY2FudmFzICYm
IG1fY2FudmFzLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkKICAgICAgICAgbV9jYW52YXMtPmZsdXNo
KCk7CiB9CiAKIFNrQ2FudmFzKiBDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0Rldmlj
ZSogZGV2aWNlKQogewogICAgIEFTU0VSVCghbV9jYW52YXMpOwotICAgIGlmIChtX2RlZmVycmFs
TW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9
IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7Ci0gICAgICAgIGRlZmVycmVkLT5zZXROb3Rp
ZmljYXRpb25DbGllbnQodGhpcyk7Ci0gICAgICAgIG1fY2FudmFzID0gZGVmZXJyZWQ7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1fY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZSk7Ci0KKyAgICBt
X2NhbnZhcyA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7CisgICAgbV9jYW52YXMtPnNl
dE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKICAgICByZXR1cm4gbV9jYW52YXM7CiB9CiAKQEAg
LTE5MSwxMSArMTQ3LDYgQEAgdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRl
eHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiAKICAgICBtX2NvbnRleHQtPmZsdXNo
KCk7CiAKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgdXBkYXRlci5h
cHBlbmRDb3B5KG1fYmFja0J1ZmZlclRleHR1cmUsIG1fZnJvbnRCdWZmZXJUZXh0dXJlLCBtX3Np
emUpOwotICAgICAgICByZXR1cm4gbV9mcm9udEJ1ZmZlclRleHR1cmU7Ci0gICAgfQotCiAgICAg
aWYgKG1fY2FudmFzKSB7CiAgICAgICAgIC8vIE5vdGlmeSBza2lhIHRoYXQgdGhlIHN0YXRlIG9m
IHRoZSBiYWNraW5nIHN0b3JlIHRleHR1cmUgb2JqZWN0IHdpbGwgYmUgdG91Y2hlZCBieSB0aGUg
Y29tcG9zaXRvcgogICAgICAgICBHclJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0ID0gcmVpbnRl
cnByZXRfY2FzdDxHclJlbmRlclRhcmdldCo+KG1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNz
UmVuZGVyVGFyZ2V0KCkpOwpAQCAtMjE3LDEyICsxNjgsOCBAQCBXZWJLaXQ6OldlYkxheWVyKiBD
YW52YXMyRExheWVyQnJpZGdlOjpsYXllcigpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6
Y29udGV4dEFjcXVpcmVkKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJy
ZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5
VGV4dHVyZSgpOwotICAgIGVsc2UgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0g
ICAgICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhpcyk7Ci0g
ICAgICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1hbmQgPSB0cnVlOwotICAgIH0KKyAgICBDYW52YXMy
RExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJEaWREcmF3KHRoaXMpOworICAgIG1fZGlkUmVjb3Jk
RHJhd0NvbW1hbmQgPSB0cnVlOwogfQogCiB1bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpi
YWNrQnVmZmVyVGV4dHVyZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKaW5kZXggOGU0
NDJmZDkxNzdhYTgyODNkMmIwNjg3YTQwNTgzOWNlYjY1MDMyZC4uYjM4NjMwNGMzMzdmMzAzYTY3
NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaApA
QCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDYW52YXMyRExheWVyQnJpZGdlX2gKIAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIgLy8gRm9y
IERlZmVycmFsTW9kZSBlbnVtLgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJTa0Rl
ZmVycmVkQ2FudmFzLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
Lmg+CkBAIC01MCw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9Owog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0
ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUm
IHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwg
c2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhyZWFk
aW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DYW52YXMyRExheWVyQnJp
ZGdlKCk7CkBAIC04MSwxNSArODAsMTEgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZm
ZXJUZXh0dXJlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgRGVmZXJyYWxNb2RlLCBU
aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpOwotICAgIFNrRGVmZXJyZWRDYW52YXMqIGRl
ZmVycmVkQ2FudmFzKCk7CisgICAgQ2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCk7CiAKLSAgICBEZWZlcnJhbE1vZGUgbV9kZWZlcnJhbE1vZGU7Ci0gICAgYm9vbCBtX3Vz
ZURvdWJsZUJ1ZmZlcmluZzsKLSAgICB1bnNpZ25lZCBtX2Zyb250QnVmZmVyVGV4dHVyZTsKICAg
ICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNpemUgbV9zaXplOwotICAg
IFNrQ2FudmFzKiBtX2NhbnZhczsKKyAgICBTa0RlZmVycmVkQ2FudmFzKiBtX2NhbnZhczsKICAg
ICBPd25QdHI8V2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcj4gbV9sYXllcjsKICAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBzaXplX3QgbV9ieXRlc0Fs
bG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4NTljYWQxYzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdh
NzI4NThkNC4uMWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJR
dC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUltYWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2Uo
KSBjb25zdAogICAgIHJldHVybiBpbWFnZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRp
b25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAg
ICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXpl
KHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5kZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRh
YzFjZDNlN2U4MDQ2NS4uNjEzMDlmYWQ0N2M1ZWViZmI4ZTRlYTQwZjRlZTk0OWFiNzAwOWY2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
SW1hZ2VCdWZmZXJTa2lhLmNwcApAQCAtNzIsNyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6Oklt
YWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52
YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVm
ZmVyRGF0YSogZGF0YSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZh
cyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZm
ZXJEYXRhKiBkYXRhKQogewogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNE
ID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpA
QCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJl
ZjxTa0RldmljZT4gZGV2aWNlKG5ldyBTa0dwdURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdl
OjpUaHJlYWRNb2RlIHRocmVhZE1vZGUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlz
VGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQoKSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVh
ZGVkIDogQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5
ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2Uo
KSwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0
dXJlSGFuZGxlKCkpOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4dHVy
ZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgpKTsKICAgICBjYW52YXMgPSBkYXRhLT5tX2xheWVy
QnJpZGdlLT5za0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwogI2Vsc2UKICAgICBjYW52YXMgPSBuZXcg
U2tDYW52YXMoZGV2aWNlLmdldCgpKTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlLAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1v
ZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpAQCAtMTYwLDcgKzE2MCw3
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgT3duUHRyPFNrQ2FudmFzPiBjYW52YXM7
CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRlZCkKLSAgICAgICAgY2FudmFz
ID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJy
YWxNb2RlKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2Fu
dmFzKHNpemUsICZtX2RhdGEpKTsKICAgICBlbHNlIGlmIChyZW5kZXJpbmdNb2RlID09IFVuYWNj
ZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcikKICAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3Jl
YXRlTm9uUGxhdGZvcm1DYW52YXMoc2l6ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4
IGMzYzQxMTlmM2M0ZGEwZDQ1ZDZmMjdmNmVkNTcyOGRhZjI5ODQ4ZDYuLmZkNDFlMTI0YmViNzMx
Y2Q3YjEyYjA3Yjc3Mjk1YzJjNzcxNmUxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgbV9iaXRtYXAtPnNldEhhc0FscGhhKHRydWUpOwogfQogCi1JbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwg
Ym9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDRmNDFlZDEw
M2NmN2MxOWUzYjM0ZTU5NWMwMmM5ZjdiYWUyYTliODQuLjlmMDFlYTIzMDAyMDhiZjZmMTYwYTUw
ZDJhZWQ4ZjdlMjBkNThkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxN
b2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBS
ZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBt
X3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDNlNWJmMTE2MTIxNGM1MDNmZTUwMTJk
ZGNjNDk2OWYyNWZjNzVjZjUuLjZhZGQ1MWE3NTY4MTg0OGQ5MDAyOGJlNTllZjYxYWNkOWIwNzEy
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAt
OTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRpbGVTaXplKFdlYlNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFZp
ZGVvUG9zdGVyVVJMKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZvaWQgc2V0RGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQoYm9vbCkgeyB9IC8vIHRlbXBvcmFyeSBzdHViCiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCA2MTA2NjcxZGE5N2RhNTNh
MmVhN2U3MWYxYTA4M2MxZmI1OTVkNTU5Li4wZWRlZjVhMDYyNzg5ZGIyYjZjOTdjYWEyZWRkMTVi
NzlkZmIyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKQEAgLTUzOCw3ICs1MzgsNiBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QW50
aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIG1f
c2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGVuYWJsZWQpOwogfQogCiB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IGM0NGYzMzBiNDcxNmYwMzQxMGU4MmQyZjg1MzE2
NmQ1MjMzNjI1NzcuLjZmMjYxYmEzYzlmOTUxMDg1NmNjNjkzNTMzYTMzZWEzNGQ0NTczNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXll
ckJyaWRnZVRlc3QuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1v
ZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUpCisgICAgdm9pZCBmdWxsTGlmZWN5Y2xlVGVz
dChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUpCiAgICAgewogICAg
ICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1haW5Db250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0
cihuZXcgTW9ja0NhbnZhc0NvbnRleHQpKTsKIApAQCAtNzYsNTIgKzc2LDI5IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgV2ViR0xJZCBiYWNrVGV4dHVyZUlkID0gMTsKICAgICAgICAgV2ViR0xJZCBm
cm9udFRleHR1cmVJZCA9IDE7CiAKLSAgICAgICAgLy8gVGhyZWFkZWQgYW5kIG5vbiBkZWZlcnJl
ZCBjYW52YXNlcyBhcmUgZG91YmxlIGJ1ZmZlcmVkLgotICAgICAgICBpZiAodGhyZWFkTW9kZSA9
PSBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVm
ZXJyZWQpIHsKLSAgICAgICAgICAgIGZyb250VGV4dHVyZUlkID0gMjsKLSAgICAgICAgICAgIC8v
IENyZWF0ZSB0ZXh0dXJlIChvbiB0aGUgbWFpbiB0aHJlYWQpIGFuZCBkbyB0aGUgY29weSAob24g
dGhlIGltcGwgdGhyZWFkKS4KLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBjcmVh
dGVUZXh0dXJlKCkpLldpbGxPbmNlKFJldHVybihmcm9udFRleHR1cmVJZCkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJE
TGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgc2l6ZSwgZGVmZXJyYWxNb2Rl
LCB0aHJlYWRNb2RlLCBiYWNrVGV4dHVyZUlkKTsKKyAgICAgICAgT3duUHRyPENhbnZhczJETGF5
ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4
dC5nZXQoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CiAKICAgICAgICAgOjp0
ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmbWFpbk1vY2spOwogCiAg
ICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKLSAgICAgICAgaWYgKHRocmVh
ZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09
IE5vbkRlZmVycmVkKQotICAgICAgICAgICAgRVhQRUNUX0NBTEwodXBkYXRlciwgYXBwZW5kQ29w
eShiYWNrVGV4dHVyZUlkLCBmcm9udFRleHR1cmVJZCwgV2ViU2l6ZSgzMDAsIDE1MCkpKTsKICAg
ICAgICAgRVhQRUNUX0VRKGZyb250VGV4dHVyZUlkLCBicmlkZ2UtPnByZXBhcmVUZXh0dXJlKHVw
ZGF0ZXIpKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0
aW9ucygmbWFpbk1vY2spOwogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFy
RXhwZWN0YXRpb25zKCZ1cGRhdGVyKTsKIAotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBDYW52
YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQp
IHsKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBkZWxldGVUZXh0dXJlKGZyb250
VGV4dHVyZUlkKSk7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7
Ci0gICAgICAgIH0KICAgICAgICAgYnJpZGdlLmNsZWFyKCk7CiAgICAgfQogfTsKIAogbmFtZXNw
YWNlIHsKIAotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNs
ZVNpbmdsZVRocmVhZGVkRGVmZXJyZWQpCi17Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFz
MkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkLCBOb25EZWZlcnJlZCk7Ci19Ci0KLVRFU1RfRihD
YW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZE5v
bkRlZmVycmVkKQotewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6
OlNpbmdsZVRocmVhZCwgRGVmZXJyZWQpOwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWROb25EZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZCkKIHsK
LSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgTm9u
RGVmZXJyZWQpOworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNp
bmdsZVRocmVhZCk7CiB9CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1
bGxMaWZlY3ljbGVUaHJlYWRlZERlZmVycmVkKQorVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkKQogewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0
KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkLCBEZWZlcnJlZCk7CisgICAgZnVsbExpZmVj
eWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQpOwogfQogCiB9IC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExh
eWVyTWFuYWdlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMy
RExheWVyTWFuYWdlclRlc3QuY3BwCmluZGV4IGZlYjMxYjI4NGZlMzRiNDExN2Q1ODAwYjhhNWJk
OTczYTRhNWVjMTguLjI5NzczYWVjYjIwOTY5NzJhMzVhY2RmN2JiZGM4NTNhZGE5NGM2YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFn
ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJNYW5hZ2VyVGVzdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdXNpbmcgdGVzdGluZzo6VGVzdDsK
IGNsYXNzIEZha2VDYW52YXMyRExheWVyQnJpZGdlIDogcHVibGljIENhbnZhczJETGF5ZXJCcmlk
Z2UgewogcHVibGljOgogICAgIEZha2VDYW52YXMyRExheWVyQnJpZGdlKCkgCi0gICAgICAgIDog
Q2FudmFzMkRMYXllckJyaWRnZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBXZWJLaXQ6OkZha2VXZWJHcmFw
aGljc0NvbnRleHQzRCkpLCBJbnRTaXplKDEsIDEpLCBEZWZlcnJlZCwgU2luZ2xlVGhyZWFkLCAw
KQorICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2ViS2l0
OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgU2luZ2xlVGhyZWFk
LCAwKQogICAgICAgICAsIG1fZnJlZWFibGVCeXRlcygwKQogICAgICAgICAsIG1fZnJlZU1lbW9y
eUlmUG9zc2libGVDb3VudCgwKQogICAgICAgICAsIG1fZmx1c2hDb3VudCgwKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIzMDJiODRiNjhhM2E3
MGNhOGNkMTkwMDRkMDIzYjMyY2I5NGE0MzYuLjRhZjIyMzQxNGViMWQxMDA1YzkyMjI4MDY2NzI3
MmZjNTYwYTBiNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5v
dkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVhbnVwOiByZW1vdmlu
ZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsZXRpbmcgYWxsIHRoZSBj
b2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0aW5nCisgICAgICAg
IHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQgMmQgY2FudmFzIHJl
bmRlcmluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OnJlc2V0KToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0
U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMy0xOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBkZWxldGUtc3RhbGUtYnVp
bGQtZmlsZXMgaXMgdG9vIGFnZ3Jlc3NpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBjNGJmZmMzNDA2ZjMxMjk5MjJhZWRiMjRm
ZjUxYzI3NmIwMzUxMjQ5Li4wN2Y3MmNmZjA2OGU3ZjZkZmMyMzIzMjZmYTYxODllNzUwODU1MGRm
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUu
Y3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZVNvZnR3
YXJlQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS1zb2Z0d2FyZS1jb21wb3NpCiBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVUaHJlYWRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtdGhy
ZWFkZWQtY29tcG9zaXRpbmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3Np
dGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJh
dGVkLTJkLWNhbnZhcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVEZWZlcnJlZDJE
Q2FudmFzW10gPSAiLS1lbmFibGUtZGVmZXJyZWQtMmQtY2FudmFzIjsKIHN0YXRpYyBjb25zdCBj
aGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkUGFpbnRpbmdbXSA9ICItLWVuYWJsZS1hY2NlbGVy
YXRlZC1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBz
dGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9
ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CkBAIC0xMzksNyArMTM4LDYg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBib29sIGZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCB0aHJlYWRlZEhUTUxQYXJzZXIgPSB0cnVlOwog
ICAgIGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBib29sIGRl
ZmVycmVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVyYXRlZFBhaW50
aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IGZh
bHNlOwogICAgIGJvb2wgZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9IGZhbHNlOwpAQCAt
MTg2LDggKzE4NCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAg
ICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1l
bnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2Vs
ZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQg
PT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAgICAgICAgICAgIGRlZmVycmVkMkRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9u
RW5hYmxlQWNjZWxlcmF0ZWRQYWludGluZykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkUGFpbnRp
bmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5h
YmxlUGVyVGlsZVBhaW50aW5nKQpAQCAtMjMzLDcgKzIyOSw2IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgICAgIHNoZWxsLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZv
cmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0VGhyZWFkZWRIVE1MUGFyc2Vy
KHRocmVhZGVkSFRNTFBhcnNlcik7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkKGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkKTsKLSAgICAgICAgc2hlbGwuc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZGVmZXJyZWQyRENhbnZhc0VuYWJsZWQpOwogICAgICAg
ICBzaGVsbC5zZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChhY2NlbGVyYXRlZFBhaW50aW5n
RW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZChh
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlBy
ZWZlcmVuY2VzLmgKaW5kZXggY2FmMjY0ZmY4NTZhNGNjNWMwODA1NjJmMGJlNjQyMTZjOTJkNzk3
MS4uNTRmM2JlMTRmZjVhZDdmZDdhNDA4OGM0ZTBmODBmYWVlMjUzYTE0YyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVy
ZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJQcmVmZXJlbmNlcy5oCkBAIC05NCw3ICs5NCw2IEBAIHN0cnVjdCBXRUJURVNUUlVO
TkVSX0VYUE9SVCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9k
ZTsKICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlcjsKICAgICBib29sIGFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOwotICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9v
bCBhY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIHBlclRpbGVQYWludGluZ0Vu
YWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJl
bmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMzExNGZiZGE5N2U5M2U4MTkxNWVlNjYzNWY4ZDllYjhj
MDg3ZTU4Zi4uMTJkMTgyYTUzZjAxYzg5ZjFmODZhNzc5NTY5NTdhN2FjY2NlNGYzMCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTE5LDcgKzExOSw2IEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnJlc2V0KCkKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
PSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGRl
ZmVycmVkMmRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRQYWludGluZ0Vu
YWJsZWQgPSBmYWxzZTsKICAgICBmb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogICAgIHRo
cmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CkBAIC0xOTIsNyArMTkxLDYgQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7
Ci0gICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52
YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQo
YWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRlMjEw
MzE3MTRlMzkwOGIzYmUzYTYyNjhhMjNmYTZmNzg2NmJlMDUuLmZjNGY1NzFhZDE3M2RkMWUwZGQz
YzQwYzk4YjVkZWE5MWMzYThjYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmNwcApAQCAtMTE1LDcgKzExNSw2IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxsKCkK
ICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCiAgICAgLCBtX3RocmVhZGVkSFRN
TFBhcnNlcih0cnVlKQogICAgICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJh
dGVkUGFpbnRpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCkBAIC0y
MTcsNyArMjE2LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3MoV2ViVmlldyYg
d2ViVmlldykKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQgPSBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQ7CiAgICAgbV9wcmVmcy5mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IG1fZm9yY2VDb21wb3Np
dGluZ01vZGU7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IG1fYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgbV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZCA9IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRl
ZFBhaW50aW5nRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgbV9w
cmVmcy5wZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOwog
ICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gbV9hY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQ7CkBAIC0yNDAsNyArMjM4LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJ1bkZp
bGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywgYm9vbCBzaG91bGREdW1wUGl4ZWxzKQog
ICAgICAgICBpZiAoIW1fc29mdHdhcmVDb21wb3NpdGluZ0VuYWJsZWQpCiAgICAgICAgICAgICBt
X3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVm
cy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gdHJ1ZTsKLSAgICAgICAg
bV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMu
bW9ja1Njcm9sbGJhcnNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5hcHBseVRvKG1f
d2ViVmlldyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCAwMmRhMWZjMmU5NWVhNjg2NTE5NTUyZWY3MDhkY2M5NTMxODQyZjQ4Li42MGUwOWFi
MjFmZDk1Mzk3ZmNkMjI3NTdkZTAyMDFjZDE4M2JiNTI2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTIxLDcgKzEyMSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VGhyZWFkZWRIVE1MUGFyc2VyKGJv
b2wgZW5hYmxlZCkgeyBtX3RocmVhZGVkSFRNTFBhcnNlciA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgIHZvaWQgc2V0RGVmZXJyZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSBl
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2
b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBh
aW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQW5pbWF0
aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQg
PSBlbmFibGVkOyB9CkBAIC0yMTgsNyArMjE3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9y
Y2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX3RocmVhZGVkSFRNTFBhcnNlcjsKICAgICBi
b29sIG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBtX2RlZmVycmVkMmRD
YW52YXNFbmFibGVkOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAg
ICBib29sIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRB
bmltYXRpb25FbmFibGVkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194044</attachid>
            <date>2013-03-20 06:58:49 -0700</date>
            <delta_ts>2013-03-20 06:59:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112605-20130320095439.patch</filename>
            <type>text/plain</type>
            <size>41383</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkOTQzODM2ZmYyMmI4
ZGIzMzI5MGI0MTFkM2QwZTViMGYyZTU2YS4uMDI2ZWE2M2JmZGExMjUzNmM2NDhjYmJjMjA2ODZj
NGQ0ZjRmZjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0xOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBGaXggU3R5bGVHcmlkRGF0YTo6b3BlcmF0
b3I9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNjhmZTE2MGEwZWNmZGQ0NTQ1MWQx
YmI0MTk1YTY1MDY2ZTNlZjJhLi5jMTEzMDdhZDIzMDA3NTJlYTM2YmMxMmZhOThlMzVkN2U1OGM2
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRp
bmcgYW5kIHN1cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2Fi
bGluZyBkZWZlcnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgICogcHVibGljL1dl
YlNldHRpbmdzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzOjpzZXREZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0OjpmdWxsTGlmZWN5Y2xlVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcDoKKyAgICAgICAgKEZha2VDYW52YXMy
RExheWVyQnJpZGdlOjpGYWtlQ2FudmFzMkRMYXllckJyaWRnZSk6CisKIDIwMTMtMDMtMTggIEpv
aG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBDb21wb3NpdG9yIGlzIGFwcGx5aW5nIHNjcm9sbCBvZmZzZXQgdXNpbmcgJ3Byb2dyYW1t
YXRpYycgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJkYmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1
Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIgKzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgog
fQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYg
VVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkt
PnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRD
YW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFn
ZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vsc2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNl
bmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVm
ZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJl
bmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4
IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlkNTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFm
NDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRT
dXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29u
c3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhh
c2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CmluZGV4IDM5NzFiYmE1MWJhY2E4MzcxNTI1ZmNkN2M0NjBiM2E2ZTU1MzU5YTMuLjI4MDIzMDAw
MDg5NDhiMDEyMzE1MDU5Y2YwMGNmNzg3Mjc2MDc1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFs
PXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJy
aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5
YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJi
MWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBt
YXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0g
ICAgICAgIE5vbkRlZmVycmVkLAotICAgICAgICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVt
IFNjYWxlQmVoYXZpb3IgewogICAgICAgICBTY2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04
NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBm
YWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZl
cnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAgICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3Mg
PSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIo
bmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVy
aW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpAQCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1
Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZhcmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3Jl
YXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIElt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAg
ICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNj
ZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmlu
ZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZiMzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4
YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2YwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0
YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRoaXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90
aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RX
aW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3cs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUo
c2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmlu
ZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMy
NjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBA
IC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IElu
dFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUp
CiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
aW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUzNjk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMx
NmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQog
Ci1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBi
b29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJl
IGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3Qg
aWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlv
blNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAK
aW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUxMzM4YzA4YmU2NzljNDQ1YmI2OS4uZTQwNmMzMGJi
OTllZjMyOWE3ZWU0NDc3NzI0YTQxYWVjMmYyNTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2Vi
S2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMy
RExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJh
bE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDog
bV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2RlKQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUo
MCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2ln
bmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNl
ZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVjdCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJy
aWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXll
ckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2Zm
IGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJy
ZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5nIGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGlj
IGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3Rv
cnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUKLSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4K
LSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVm
ZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwotCi0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5n
KSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmlu
ZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFy
YW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAg
IC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMgb25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBp
cyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2Uy
RFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAg
ICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRDb250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXll
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNl
dFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQo
dGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQp
OwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5
ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwyMSArNjgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdl
Ojp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xheWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExh
eWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0JlRGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0Rl
ZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRlZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVy
cmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7CisgICAgaWYgKG1fY2FudmFzKQorICAgICAg
ICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KDApOwogICAgIG1fbGF5ZXItPnNldFRl
eHR1cmVJZCgwKTsKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICAgICAgbV9jb250ZXh0LT5kZWxldGVU
ZXh0dXJlKG1fZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgbV9jb250ZXh0LT5mbHVzaCgp
OwotICAgIH0KLX0KLQotU2tEZWZlcnJlZENhbnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6ZGVm
ZXJyZWRDYW52YXMoKQotewotICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNrRGVmZXJyZWRDYW52YXMqPihtX2NhbnZhcyk7Ci0g
ICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5n
RnJhbWVzKCkKQEAgLTExOSwxNSArODUsMTIgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjps
aW1pdFBlbmRpbmdGcmFtZXMoKQogCiB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVG
b3JEcmF3KCkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYgKCFtX3Vz
ZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgbV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUoKTsK
KyAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOwogICAgIG1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCk7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFs
bG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQoc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKQogewotICAg
IEFTU0VSVChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCk7CiAgICAgaW50cHRyX3QgZGVsdGEg
PSAoaW50cHRyX3QpYnl0ZXNBbGxvY2F0ZWQgLSAoaW50cHRyX3QpbV9ieXRlc0FsbG9jYXRlZDsK
ICAgICBtX2J5dGVzQWxsb2NhdGVkID0gYnl0ZXNBbGxvY2F0ZWQ7CiAgICAgQ2FudmFzMkRMYXll
ck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgZGVsdGEp
OwpAQCAtMTM1LDcgKzk4LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpzdG9yYWdlQWxs
b2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0ZXNBbGxvY2EKIAogc2l6ZV90IENh
bnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcoKQogewotICAg
IHJldHVybiBkZWZlcnJlZENhbnZhcygpLT5zdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCk7
CisgICAgcmV0dXJuIG1fY2FudmFzID8gbV9jYW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNv
cmRpbmcoKSA6IDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2hlZERyYXdD
b21tYW5kcygpCkBAIC0xNTEsOCArMTE0LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpz
a2lwcGVkUGVuZGluZ0RyYXdDb21tYW5kcygpCiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdl
OjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiB7Ci0gICAgQVNTRVJU
KGRlZmVycmVkQ2FudmFzKCkpOwotICAgIHNpemVfdCBieXRlc0ZyZWVkID0gZGVmZXJyZWRDYW52
YXMoKS0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpOworICAgIHNpemVfdCBieXRl
c0ZyZWVkID0gbV9jYW52YXMgPyBtX2NhbnZhcy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNU
b0ZyZWUpIDogMDsKICAgICBpZiAoYnl0ZXNGcmVlZCkKICAgICAgICAgQ2FudmFzMkRMYXllck1h
bmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgLSgoaW50cHRy
X3QpYnl0ZXNGcmVlZCkpOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgLT0gYnl0ZXNGcmVlZDsKQEAg
LTE2MSwyMSArMTIzLDE1IEBAIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5
SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRn
ZTo6Zmx1c2goKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZhcygpKTsKLSAgICBpZiAoZGVm
ZXJyZWRDYW52YXMoKS0+aGFzUGVuZGluZ0NvbW1hbmRzKCkpCisgICAgaWYgKG1fY2FudmFzICYm
IG1fY2FudmFzLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkKICAgICAgICAgbV9jYW52YXMtPmZsdXNo
KCk7CiB9CiAKIFNrQ2FudmFzKiBDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0Rldmlj
ZSogZGV2aWNlKQogewogICAgIEFTU0VSVCghbV9jYW52YXMpOwotICAgIGlmIChtX2RlZmVycmFs
TW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9
IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7Ci0gICAgICAgIGRlZmVycmVkLT5zZXROb3Rp
ZmljYXRpb25DbGllbnQodGhpcyk7Ci0gICAgICAgIG1fY2FudmFzID0gZGVmZXJyZWQ7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1fY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZSk7Ci0KKyAgICBt
X2NhbnZhcyA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7CisgICAgbV9jYW52YXMtPnNl
dE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKICAgICByZXR1cm4gbV9jYW52YXM7CiB9CiAKQEAg
LTE5MSwxMSArMTQ3LDYgQEAgdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRl
eHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiAKICAgICBtX2NvbnRleHQtPmZsdXNo
KCk7CiAKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgdXBkYXRlci5h
cHBlbmRDb3B5KG1fYmFja0J1ZmZlclRleHR1cmUsIG1fZnJvbnRCdWZmZXJUZXh0dXJlLCBtX3Np
emUpOwotICAgICAgICByZXR1cm4gbV9mcm9udEJ1ZmZlclRleHR1cmU7Ci0gICAgfQotCiAgICAg
aWYgKG1fY2FudmFzKSB7CiAgICAgICAgIC8vIE5vdGlmeSBza2lhIHRoYXQgdGhlIHN0YXRlIG9m
IHRoZSBiYWNraW5nIHN0b3JlIHRleHR1cmUgb2JqZWN0IHdpbGwgYmUgdG91Y2hlZCBieSB0aGUg
Y29tcG9zaXRvcgogICAgICAgICBHclJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0ID0gcmVpbnRl
cnByZXRfY2FzdDxHclJlbmRlclRhcmdldCo+KG1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNz
UmVuZGVyVGFyZ2V0KCkpOwpAQCAtMjE3LDEyICsxNjgsOCBAQCBXZWJLaXQ6OldlYkxheWVyKiBD
YW52YXMyRExheWVyQnJpZGdlOjpsYXllcigpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6
Y29udGV4dEFjcXVpcmVkKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJy
ZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5
VGV4dHVyZSgpOwotICAgIGVsc2UgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0g
ICAgICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhpcyk7Ci0g
ICAgICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1hbmQgPSB0cnVlOwotICAgIH0KKyAgICBDYW52YXMy
RExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJEaWREcmF3KHRoaXMpOworICAgIG1fZGlkUmVjb3Jk
RHJhd0NvbW1hbmQgPSB0cnVlOwogfQogCiB1bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpi
YWNrQnVmZmVyVGV4dHVyZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKaW5kZXggOGU0
NDJmZDkxNzdhYTgyODNkMmIwNjg3YTQwNTgzOWNlYjY1MDMyZC4uYjM4NjMwNGMzMzdmMzAzYTY3
NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaApA
QCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDYW52YXMyRExheWVyQnJpZGdlX2gKIAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIgLy8gRm9y
IERlZmVycmFsTW9kZSBlbnVtLgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJTa0Rl
ZmVycmVkQ2FudmFzLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
Lmg+CkBAIC01MCw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9Owog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0
ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUm
IHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwg
c2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhyZWFk
aW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DYW52YXMyRExheWVyQnJp
ZGdlKCk7CkBAIC04MSwxNSArODAsMTEgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZm
ZXJUZXh0dXJlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgRGVmZXJyYWxNb2RlLCBU
aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpOwotICAgIFNrRGVmZXJyZWRDYW52YXMqIGRl
ZmVycmVkQ2FudmFzKCk7CisgICAgQ2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCk7CiAKLSAgICBEZWZlcnJhbE1vZGUgbV9kZWZlcnJhbE1vZGU7Ci0gICAgYm9vbCBtX3Vz
ZURvdWJsZUJ1ZmZlcmluZzsKLSAgICB1bnNpZ25lZCBtX2Zyb250QnVmZmVyVGV4dHVyZTsKICAg
ICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNpemUgbV9zaXplOwotICAg
IFNrQ2FudmFzKiBtX2NhbnZhczsKKyAgICBTa0RlZmVycmVkQ2FudmFzKiBtX2NhbnZhczsKICAg
ICBPd25QdHI8V2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcj4gbV9sYXllcjsKICAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBzaXplX3QgbV9ieXRlc0Fs
bG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4NTljYWQxYzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdh
NzI4NThkNC4uMWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJR
dC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUltYWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2Uo
KSBjb25zdAogICAgIHJldHVybiBpbWFnZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRp
b25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAg
ICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXpl
KHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5kZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRh
YzFjZDNlN2U4MDQ2NS4uNjEzMDlmYWQ0N2M1ZWViZmI4ZTRlYTQwZjRlZTk0OWFiNzAwOWY2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
SW1hZ2VCdWZmZXJTa2lhLmNwcApAQCAtNzIsNyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6Oklt
YWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52
YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVm
ZmVyRGF0YSogZGF0YSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZh
cyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZm
ZXJEYXRhKiBkYXRhKQogewogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNE
ID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpA
QCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJl
ZjxTa0RldmljZT4gZGV2aWNlKG5ldyBTa0dwdURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdl
OjpUaHJlYWRNb2RlIHRocmVhZE1vZGUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlz
VGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQoKSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVh
ZGVkIDogQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5
ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2Uo
KSwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0
dXJlSGFuZGxlKCkpOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4dHVy
ZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgpKTsKICAgICBjYW52YXMgPSBkYXRhLT5tX2xheWVy
QnJpZGdlLT5za0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwogI2Vsc2UKICAgICBjYW52YXMgPSBuZXcg
U2tDYW52YXMoZGV2aWNlLmdldCgpKTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlLAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1v
ZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpAQCAtMTYwLDcgKzE2MCw3
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgT3duUHRyPFNrQ2FudmFzPiBjYW52YXM7
CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRlZCkKLSAgICAgICAgY2FudmFz
ID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJy
YWxNb2RlKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2Fu
dmFzKHNpemUsICZtX2RhdGEpKTsKICAgICBlbHNlIGlmIChyZW5kZXJpbmdNb2RlID09IFVuYWNj
ZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcikKICAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3Jl
YXRlTm9uUGxhdGZvcm1DYW52YXMoc2l6ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4
IGMzYzQxMTlmM2M0ZGEwZDQ1ZDZmMjdmNmVkNTcyOGRhZjI5ODQ4ZDYuLmZkNDFlMTI0YmViNzMx
Y2Q3YjEyYjA3Yjc3Mjk1YzJjNzcxNmUxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgbV9iaXRtYXAtPnNldEhhc0FscGhhKHRydWUpOwogfQogCi1JbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwg
Ym9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDRmNDFlZDEw
M2NmN2MxOWUzYjM0ZTU5NWMwMmM5ZjdiYWUyYTliODQuLjlmMDFlYTIzMDAyMDhiZjZmMTYwYTUw
ZDJhZWQ4ZjdlMjBkNThkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxN
b2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBS
ZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBt
X3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDNlNWJmMTE2MTIxNGM1MDNmZTUwMTJk
ZGNjNDk2OWYyNWZjNzVjZjUuLjZhZGQ1MWE3NTY4MTg0OGQ5MDAyOGJlNTllZjYxYWNkOWIwNzEy
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAt
OTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRpbGVTaXplKFdlYlNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFZp
ZGVvUG9zdGVyVVJMKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZvaWQgc2V0RGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQoYm9vbCkgeyB9IC8vIHRlbXBvcmFyeSBzdHViCiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCA2MTA2NjcxZGE5N2RhNTNh
MmVhN2U3MWYxYTA4M2MxZmI1OTVkNTU5Li4wZWRlZjVhMDYyNzg5ZGIyYjZjOTdjYWEyZWRkMTVi
NzlkZmIyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKQEAgLTUzOCw3ICs1MzgsNiBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QW50
aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIG1f
c2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGVuYWJsZWQpOwogfQogCiB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IGM0NGYzMzBiNDcxNmYwMzQxMGU4MmQyZjg1MzE2
NmQ1MjMzNjI1NzcuLjZmMjYxYmEzYzlmOTUxMDg1NmNjNjkzNTMzYTMzZWEzNGQ0NTczNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXll
ckJyaWRnZVRlc3QuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1v
ZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUpCisgICAgdm9pZCBmdWxsTGlmZWN5Y2xlVGVz
dChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUpCiAgICAgewogICAg
ICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1haW5Db250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0
cihuZXcgTW9ja0NhbnZhc0NvbnRleHQpKTsKIApAQCAtNzYsNTIgKzc2LDI5IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgV2ViR0xJZCBiYWNrVGV4dHVyZUlkID0gMTsKICAgICAgICAgV2ViR0xJZCBm
cm9udFRleHR1cmVJZCA9IDE7CiAKLSAgICAgICAgLy8gVGhyZWFkZWQgYW5kIG5vbiBkZWZlcnJl
ZCBjYW52YXNlcyBhcmUgZG91YmxlIGJ1ZmZlcmVkLgotICAgICAgICBpZiAodGhyZWFkTW9kZSA9
PSBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVm
ZXJyZWQpIHsKLSAgICAgICAgICAgIGZyb250VGV4dHVyZUlkID0gMjsKLSAgICAgICAgICAgIC8v
IENyZWF0ZSB0ZXh0dXJlIChvbiB0aGUgbWFpbiB0aHJlYWQpIGFuZCBkbyB0aGUgY29weSAob24g
dGhlIGltcGwgdGhyZWFkKS4KLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBjcmVh
dGVUZXh0dXJlKCkpLldpbGxPbmNlKFJldHVybihmcm9udFRleHR1cmVJZCkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJE
TGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgc2l6ZSwgZGVmZXJyYWxNb2Rl
LCB0aHJlYWRNb2RlLCBiYWNrVGV4dHVyZUlkKTsKKyAgICAgICAgT3duUHRyPENhbnZhczJETGF5
ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4
dC5nZXQoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CiAKICAgICAgICAgOjp0
ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmbWFpbk1vY2spOwogCiAg
ICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKLSAgICAgICAgaWYgKHRocmVh
ZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09
IE5vbkRlZmVycmVkKQotICAgICAgICAgICAgRVhQRUNUX0NBTEwodXBkYXRlciwgYXBwZW5kQ29w
eShiYWNrVGV4dHVyZUlkLCBmcm9udFRleHR1cmVJZCwgV2ViU2l6ZSgzMDAsIDE1MCkpKTsKICAg
ICAgICAgRVhQRUNUX0VRKGZyb250VGV4dHVyZUlkLCBicmlkZ2UtPnByZXBhcmVUZXh0dXJlKHVw
ZGF0ZXIpKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0
aW9ucygmbWFpbk1vY2spOwogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFy
RXhwZWN0YXRpb25zKCZ1cGRhdGVyKTsKIAotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBDYW52
YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQp
IHsKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBkZWxldGVUZXh0dXJlKGZyb250
VGV4dHVyZUlkKSk7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7
Ci0gICAgICAgIH0KICAgICAgICAgYnJpZGdlLmNsZWFyKCk7CiAgICAgfQogfTsKIAogbmFtZXNw
YWNlIHsKIAotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNs
ZVNpbmdsZVRocmVhZGVkRGVmZXJyZWQpCi17Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFz
MkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkLCBOb25EZWZlcnJlZCk7Ci19Ci0KLVRFU1RfRihD
YW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZE5v
bkRlZmVycmVkKQotewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6
OlNpbmdsZVRocmVhZCwgRGVmZXJyZWQpOwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWROb25EZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZCkKIHsK
LSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgTm9u
RGVmZXJyZWQpOworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNp
bmdsZVRocmVhZCk7CiB9CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1
bGxMaWZlY3ljbGVUaHJlYWRlZERlZmVycmVkKQorVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkKQogewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0
KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkLCBEZWZlcnJlZCk7CisgICAgZnVsbExpZmVj
eWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQpOwogfQogCiB9IC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExh
eWVyTWFuYWdlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMy
RExheWVyTWFuYWdlclRlc3QuY3BwCmluZGV4IGZlYjMxYjI4NGZlMzRiNDExN2Q1ODAwYjhhNWJk
OTczYTRhNWVjMTguLjI5NzczYWVjYjIwOTY5NzJhMzVhY2RmN2JiZGM4NTNhZGE5NGM2YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFn
ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJNYW5hZ2VyVGVzdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdXNpbmcgdGVzdGluZzo6VGVzdDsK
IGNsYXNzIEZha2VDYW52YXMyRExheWVyQnJpZGdlIDogcHVibGljIENhbnZhczJETGF5ZXJCcmlk
Z2UgewogcHVibGljOgogICAgIEZha2VDYW52YXMyRExheWVyQnJpZGdlKCkgCi0gICAgICAgIDog
Q2FudmFzMkRMYXllckJyaWRnZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBXZWJLaXQ6OkZha2VXZWJHcmFw
aGljc0NvbnRleHQzRCkpLCBJbnRTaXplKDEsIDEpLCBEZWZlcnJlZCwgU2luZ2xlVGhyZWFkLCAw
KQorICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2ViS2l0
OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgU2luZ2xlVGhyZWFk
LCAwKQogICAgICAgICAsIG1fZnJlZWFibGVCeXRlcygwKQogICAgICAgICAsIG1fZnJlZU1lbW9y
eUlmUG9zc2libGVDb3VudCgwKQogICAgICAgICAsIG1fZmx1c2hDb3VudCgwKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIzMDJiODRiNjhhM2E3
MGNhOGNkMTkwMDRkMDIzYjMyY2I5NGE0MzYuLjRhZjIyMzQxNGViMWQxMDA1YzkyMjI4MDY2NzI3
MmZjNTYwYTBiNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5v
dkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVhbnVwOiByZW1vdmlu
ZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsZXRpbmcgYWxsIHRoZSBj
b2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0aW5nCisgICAgICAg
IHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQgMmQgY2FudmFzIHJl
bmRlcmluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OnJlc2V0KToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0
U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMy0xOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBkZWxldGUtc3RhbGUtYnVp
bGQtZmlsZXMgaXMgdG9vIGFnZ3Jlc3NpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBjNGJmZmMzNDA2ZjMxMjk5MjJhZWRiMjRm
ZjUxYzI3NmIwMzUxMjQ5Li4wN2Y3MmNmZjA2OGU3ZjZkZmMyMzIzMjZmYTYxODllNzUwODU1MGRm
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUu
Y3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZVNvZnR3
YXJlQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS1zb2Z0d2FyZS1jb21wb3NpCiBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVUaHJlYWRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtdGhy
ZWFkZWQtY29tcG9zaXRpbmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3Np
dGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJh
dGVkLTJkLWNhbnZhcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVEZWZlcnJlZDJE
Q2FudmFzW10gPSAiLS1lbmFibGUtZGVmZXJyZWQtMmQtY2FudmFzIjsKIHN0YXRpYyBjb25zdCBj
aGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkUGFpbnRpbmdbXSA9ICItLWVuYWJsZS1hY2NlbGVy
YXRlZC1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBz
dGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9
ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CkBAIC0xMzksNyArMTM4LDYg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBib29sIGZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCB0aHJlYWRlZEhUTUxQYXJzZXIgPSB0cnVlOwog
ICAgIGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBib29sIGRl
ZmVycmVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVyYXRlZFBhaW50
aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IGZh
bHNlOwogICAgIGJvb2wgZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9IGZhbHNlOwpAQCAt
MTg2LDggKzE4NCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAg
ICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1l
bnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2Vs
ZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQg
PT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAgICAgICAgICAgIGRlZmVycmVkMkRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9u
RW5hYmxlQWNjZWxlcmF0ZWRQYWludGluZykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkUGFpbnRp
bmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5h
YmxlUGVyVGlsZVBhaW50aW5nKQpAQCAtMjMzLDcgKzIyOSw2IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgICAgIHNoZWxsLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZv
cmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0VGhyZWFkZWRIVE1MUGFyc2Vy
KHRocmVhZGVkSFRNTFBhcnNlcik7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkKGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkKTsKLSAgICAgICAgc2hlbGwuc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZGVmZXJyZWQyRENhbnZhc0VuYWJsZWQpOwogICAgICAg
ICBzaGVsbC5zZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChhY2NlbGVyYXRlZFBhaW50aW5n
RW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZChh
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlBy
ZWZlcmVuY2VzLmgKaW5kZXggY2FmMjY0ZmY4NTZhNGNjNWMwODA1NjJmMGJlNjQyMTZjOTJkNzk3
MS4uNTRmM2JlMTRmZjVhZDdmZDdhNDA4OGM0ZTBmODBmYWVlMjUzYTE0YyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVy
ZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJQcmVmZXJlbmNlcy5oCkBAIC05NCw3ICs5NCw2IEBAIHN0cnVjdCBXRUJURVNUUlVO
TkVSX0VYUE9SVCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9k
ZTsKICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlcjsKICAgICBib29sIGFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOwotICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9v
bCBhY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIHBlclRpbGVQYWludGluZ0Vu
YWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJl
bmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMzExNGZiZGE5N2U5M2U4MTkxNWVlNjYzNWY4ZDllYjhj
MDg3ZTU4Zi4uMTJkMTgyYTUzZjAxYzg5ZjFmODZhNzc5NTY5NTdhN2FjY2NlNGYzMCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTE5LDcgKzExOSw2IEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnJlc2V0KCkKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
PSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGRl
ZmVycmVkMmRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRQYWludGluZ0Vu
YWJsZWQgPSBmYWxzZTsKICAgICBmb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogICAgIHRo
cmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CkBAIC0xOTIsNyArMTkxLDYgQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7
Ci0gICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52
YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQo
YWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRlMjEw
MzE3MTRlMzkwOGIzYmUzYTYyNjhhMjNmYTZmNzg2NmJlMDUuLmZjNGY1NzFhZDE3M2RkMWUwZGQz
YzQwYzk4YjVkZWE5MWMzYThjYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmNwcApAQCAtMTE1LDcgKzExNSw2IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxsKCkK
ICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCiAgICAgLCBtX3RocmVhZGVkSFRN
TFBhcnNlcih0cnVlKQogICAgICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJh
dGVkUGFpbnRpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCkBAIC0y
MTcsNyArMjE2LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3MoV2ViVmlldyYg
d2ViVmlldykKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQgPSBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQ7CiAgICAgbV9wcmVmcy5mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IG1fZm9yY2VDb21wb3Np
dGluZ01vZGU7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IG1fYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgbV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZCA9IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRl
ZFBhaW50aW5nRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgbV9w
cmVmcy5wZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOwog
ICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gbV9hY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQ7CkBAIC0yNDAsNyArMjM4LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJ1bkZp
bGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywgYm9vbCBzaG91bGREdW1wUGl4ZWxzKQog
ICAgICAgICBpZiAoIW1fc29mdHdhcmVDb21wb3NpdGluZ0VuYWJsZWQpCiAgICAgICAgICAgICBt
X3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVm
cy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gdHJ1ZTsKLSAgICAgICAg
bV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMu
bW9ja1Njcm9sbGJhcnNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5hcHBseVRvKG1f
d2ViVmlldyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCAwMmRhMWZjMmU5NWVhNjg2NTE5NTUyZWY3MDhkY2M5NTMxODQyZjQ4Li42MGUwOWFi
MjFmZDk1Mzk3ZmNkMjI3NTdkZTAyMDFjZDE4M2JiNTI2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTIxLDcgKzEyMSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VGhyZWFkZWRIVE1MUGFyc2VyKGJv
b2wgZW5hYmxlZCkgeyBtX3RocmVhZGVkSFRNTFBhcnNlciA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgIHZvaWQgc2V0RGVmZXJyZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSBl
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2
b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBh
aW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQW5pbWF0
aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQg
PSBlbmFibGVkOyB9CkBAIC0yMTgsNyArMjE3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9y
Y2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX3RocmVhZGVkSFRNTFBhcnNlcjsKICAgICBi
b29sIG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBtX2RlZmVycmVkMmRD
YW52YXNFbmFibGVkOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAg
ICBib29sIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRB
bmltYXRpb25FbmFibGVkOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0MThhYmM1ZTQ4OWI1M2IxMmYxNTAxN2JjNjRjZGM0
MTI1ZjU1YjguLjhhYjAzOTU3YTIzODZjYTVhODExNmExZjEyYWM5OWE0ZTA2Yjg3YWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29n
bGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVhbnVwOiByZW1vdmluZyBzdXBw
b3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1CisKKyAgICAgICAgTWFya2Vk
IHNvbWUgMmQgY2FudmFzIHRlc3RzIGFzIGZhaWxpbmcuIFRoZXNlIHRlc3RzIGFyZSB1c2luZyB0
aGUKKyAgICAgICAgdHdvIHBvaW50IHJhZGlhbCBncmFkaWVudCBBUEkuICBUaGUgYnVnIHdhcyBh
bHJlYWR5IHByZXNlbnQgaW4KKyAgICAgICAgY2hyb21pdW0uIFN0YXJ0cyBnZXR0aW5nIGRldGVj
dGVkIGluIERSVCB3aXRoIHRoaXMgY2hhbmdlLgorICAgICAgICBSZWxhdGVkOiBjcmJ1Zy5jb20v
MjIyMTQwCisKIDIwMTMtMDMtMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gRml4IFN0eWxlR3JpZERhdGE6Om9w
ZXJhdG9yPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDZkNGU0YmIyZTY2M2MxODk5YjQ3YzA1OGZhZmI4NDkyYmRkMzVlZGIuLjYzOTIy
Yzc1M2M1YjhjYjA3N2U2NGI4YWQ2MzNkMjBiMGNlYjVlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ1Niw2ICsxNDU2LDE0IEBA
IHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRp
cGxlLWhvcml6b250YWwuaHRtbCBbIEltCiB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0g
ZmFzdC9yZXBhaW50L3NoYWRvdy1tdWx0aXBsZS1zdHJpY3QtaG9yaXpvbnRhbC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0gZmFzdC9yZXBh
aW50L3NoYWRvdy1tdWx0aXBsZS1zdHJpY3QtdmVydGljYWwuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogCisjIFRoZXNlIHRlc3RzIGZhaWwgZHVlIHRvIGEgYnVnIHdpdGggMkQgY2FudmFzIGNv
bW1hbmQgZGVmZXJyYWwKK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5iZXNpZGUu
aHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0
dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLnNoYXBl
MS5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3Zp
cnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuYmVo
aW5kLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0v
dmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5z
aGFwZTIuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1
bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC50b3Vj
aDEuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC50b3VjaDMu
aHRtbCBbIEZhaWx1cmUgXQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFdlYkdMIFRlc3RzCiAjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194046</attachid>
            <date>2013-03-20 07:00:03 -0700</date>
            <delta_ts>2013-03-20 07:36:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320095552.patch</filename>
            <type>text/plain</type>
            <size>41383</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkOTQzODM2ZmYyMmI4
ZGIzMzI5MGI0MTFkM2QwZTViMGYyZTU2YS4uMDI2ZWE2M2JmZGExMjUzNmM2NDhjYmJjMjA2ODZj
NGQ0ZjRmZjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0xOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBGaXggU3R5bGVHcmlkRGF0YTo6b3BlcmF0
b3I9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNjhmZTE2MGEwZWNmZGQ0NTQ1MWQx
YmI0MTk1YTY1MDY2ZTNlZjJhLi5jMTEzMDdhZDIzMDA3NTJlYTM2YmMxMmZhOThlMzVkN2U1OGM2
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRp
bmcgYW5kIHN1cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2Fi
bGluZyBkZWZlcnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgICogcHVibGljL1dl
YlNldHRpbmdzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzOjpzZXREZWZlcnJlZDJk
Q2FudmFzRW5hYmxlZCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0OjpmdWxsTGlmZWN5Y2xlVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcDoKKyAgICAgICAgKEZha2VDYW52YXMy
RExheWVyQnJpZGdlOjpGYWtlQ2FudmFzMkRMYXllckJyaWRnZSk6CisKIDIwMTMtMDMtMTggIEpv
aG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBDb21wb3NpdG9yIGlzIGFwcGx5aW5nIHNjcm9sbCBvZmZzZXQgdXNpbmcgJ3Byb2dyYW1t
YXRpYycgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4
IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJkYmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1
Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIgKzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgog
fQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYg
VVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkt
PnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRD
YW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVl
OwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFn
ZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vsc2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNl
bmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVm
ZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJl
bmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFu
c2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4
IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlkNTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFm
NDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRT
dXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29u
c3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhh
c2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
CmluZGV4IDM5NzFiYmE1MWJhY2E4MzcxNTI1ZmNkN2M0NjBiM2E2ZTU1MzU5YTMuLjI4MDIzMDAw
MDg5NDhiMDEyMzE1MDU5Y2YwMGNmNzg3Mjc2MDc1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFs
PXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1m
YWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJy
aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdlYkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5
YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJi
MWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBt
YXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0g
ICAgICAgIE5vbkRlZmVycmVkLAotICAgICAgICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVt
IFNjYWxlQmVoYXZpb3IgewogICAgICAgICBTY2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04
NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBm
YWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5n
TW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZl
cnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAgICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3Mg
PSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIo
bmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVy
aW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpAQCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1
Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZhcmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3Jl
YXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIElt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAg
ICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNj
ZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmlu
ZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZiMzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4
YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2YwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0
YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRoaXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90
aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RX
aW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3cs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUo
c2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmlu
ZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMy
NjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBA
IC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IElu
dFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUp
CiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
aW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUzNjk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMx
NmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsx
MDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQog
Ci1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBi
b29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJl
IGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3Qg
aWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlv
blNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAK
aW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUxMzM4YzA4YmU2NzljNDQ1YmI2OS4uZTQwNmMzMGJi
OTllZjMyOWE3ZWU0NDc3NzI0YTQxYWVjMmYyNTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2Vi
S2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMy
RExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJh
bE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDog
bV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2RlKQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUo
MCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2ln
bmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAg
ICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNl
ZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVjdCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJy
aWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXll
ckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAvLyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2Zm
IGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJy
ZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5nIGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGlj
IGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3Rv
cnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUKLSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4K
LSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVm
ZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwotCi0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5n
KSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1f
ZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmlu
ZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFy
YW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAg
IC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMgb25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBp
cyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGlj
c0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2Uy
RFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAg
ICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAg
ICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRDb250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXll
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNl
dFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQo
dGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQp
OwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5
ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwyMSArNjgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdl
Ojp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xheWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExh
eWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0JlRGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0Rl
ZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRlZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVy
cmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7CisgICAgaWYgKG1fY2FudmFzKQorICAgICAg
ICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KDApOwogICAgIG1fbGF5ZXItPnNldFRl
eHR1cmVJZCgwKTsKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICAgICAgbV9jb250ZXh0LT5kZWxldGVU
ZXh0dXJlKG1fZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAgICAgbV9jb250ZXh0LT5mbHVzaCgp
OwotICAgIH0KLX0KLQotU2tEZWZlcnJlZENhbnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6ZGVm
ZXJyZWRDYW52YXMoKQotewotICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNrRGVmZXJyZWRDYW52YXMqPihtX2NhbnZhcyk7Ci0g
ICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5n
RnJhbWVzKCkKQEAgLTExOSwxNSArODUsMTIgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjps
aW1pdFBlbmRpbmdGcmFtZXMoKQogCiB2b2lkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVG
b3JEcmF3KCkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYgKCFtX3Vz
ZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgbV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUoKTsK
KyAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOwogICAgIG1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCk7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFs
bG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQoc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKQogewotICAg
IEFTU0VSVChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCk7CiAgICAgaW50cHRyX3QgZGVsdGEg
PSAoaW50cHRyX3QpYnl0ZXNBbGxvY2F0ZWQgLSAoaW50cHRyX3QpbV9ieXRlc0FsbG9jYXRlZDsK
ICAgICBtX2J5dGVzQWxsb2NhdGVkID0gYnl0ZXNBbGxvY2F0ZWQ7CiAgICAgQ2FudmFzMkRMYXll
ck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgZGVsdGEp
OwpAQCAtMTM1LDcgKzk4LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpzdG9yYWdlQWxs
b2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0ZXNBbGxvY2EKIAogc2l6ZV90IENh
bnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcoKQogewotICAg
IHJldHVybiBkZWZlcnJlZENhbnZhcygpLT5zdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCk7
CisgICAgcmV0dXJuIG1fY2FudmFzID8gbV9jYW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNv
cmRpbmcoKSA6IDA7CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2hlZERyYXdD
b21tYW5kcygpCkBAIC0xNTEsOCArMTE0LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpz
a2lwcGVkUGVuZGluZ0RyYXdDb21tYW5kcygpCiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdl
OjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiB7Ci0gICAgQVNTRVJU
KGRlZmVycmVkQ2FudmFzKCkpOwotICAgIHNpemVfdCBieXRlc0ZyZWVkID0gZGVmZXJyZWRDYW52
YXMoKS0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpOworICAgIHNpemVfdCBieXRl
c0ZyZWVkID0gbV9jYW52YXMgPyBtX2NhbnZhcy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNU
b0ZyZWUpIDogMDsKICAgICBpZiAoYnl0ZXNGcmVlZCkKICAgICAgICAgQ2FudmFzMkRMYXllck1h
bmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVkU3RvcmFnZUNoYW5nZWQodGhpcywgLSgoaW50cHRy
X3QpYnl0ZXNGcmVlZCkpOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgLT0gYnl0ZXNGcmVlZDsKQEAg
LTE2MSwyMSArMTIzLDE1IEBAIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5
SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0ZyZWUpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRn
ZTo6Zmx1c2goKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZhcygpKTsKLSAgICBpZiAoZGVm
ZXJyZWRDYW52YXMoKS0+aGFzUGVuZGluZ0NvbW1hbmRzKCkpCisgICAgaWYgKG1fY2FudmFzICYm
IG1fY2FudmFzLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkKICAgICAgICAgbV9jYW52YXMtPmZsdXNo
KCk7CiB9CiAKIFNrQ2FudmFzKiBDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0Rldmlj
ZSogZGV2aWNlKQogewogICAgIEFTU0VSVCghbV9jYW52YXMpOwotICAgIGlmIChtX2RlZmVycmFs
TW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9
IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7Ci0gICAgICAgIGRlZmVycmVkLT5zZXROb3Rp
ZmljYXRpb25DbGllbnQodGhpcyk7Ci0gICAgICAgIG1fY2FudmFzID0gZGVmZXJyZWQ7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1fY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZSk7Ci0KKyAgICBt
X2NhbnZhcyA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSk7CisgICAgbV9jYW52YXMtPnNl
dE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKICAgICByZXR1cm4gbV9jYW52YXM7CiB9CiAKQEAg
LTE5MSwxMSArMTQ3LDYgQEAgdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRl
eHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiAKICAgICBtX2NvbnRleHQtPmZsdXNo
KCk7CiAKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgdXBkYXRlci5h
cHBlbmRDb3B5KG1fYmFja0J1ZmZlclRleHR1cmUsIG1fZnJvbnRCdWZmZXJUZXh0dXJlLCBtX3Np
emUpOwotICAgICAgICByZXR1cm4gbV9mcm9udEJ1ZmZlclRleHR1cmU7Ci0gICAgfQotCiAgICAg
aWYgKG1fY2FudmFzKSB7CiAgICAgICAgIC8vIE5vdGlmeSBza2lhIHRoYXQgdGhlIHN0YXRlIG9m
IHRoZSBiYWNraW5nIHN0b3JlIHRleHR1cmUgb2JqZWN0IHdpbGwgYmUgdG91Y2hlZCBieSB0aGUg
Y29tcG9zaXRvcgogICAgICAgICBHclJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0ID0gcmVpbnRl
cnByZXRfY2FzdDxHclJlbmRlclRhcmdldCo+KG1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNz
UmVuZGVyVGFyZ2V0KCkpOwpAQCAtMjE3LDEyICsxNjgsOCBAQCBXZWJLaXQ6OldlYkxheWVyKiBD
YW52YXMyRExheWVyQnJpZGdlOjpsYXllcigpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6
Y29udGV4dEFjcXVpcmVkKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJy
ZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5
VGV4dHVyZSgpOwotICAgIGVsc2UgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0g
ICAgICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhpcyk7Ci0g
ICAgICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1hbmQgPSB0cnVlOwotICAgIH0KKyAgICBDYW52YXMy
RExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJEaWREcmF3KHRoaXMpOworICAgIG1fZGlkUmVjb3Jk
RHJhd0NvbW1hbmQgPSB0cnVlOwogfQogCiB1bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpi
YWNrQnVmZmVyVGV4dHVyZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKaW5kZXggOGU0
NDJmZDkxNzdhYTgyODNkMmIwNjg3YTQwNTgzOWNlYjY1MDMyZC4uYjM4NjMwNGMzMzdmMzAzYTY3
NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaApA
QCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDYW52YXMyRExheWVyQnJpZGdlX2gKIAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIgLy8gRm9y
IERlZmVycmFsTW9kZSBlbnVtLgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJTa0Rl
ZmVycmVkQ2FudmFzLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
Lmg+CkBAIC01MCw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9Owog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0
ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUm
IHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwg
c2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhyZWFk
aW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DYW52YXMyRExheWVyQnJp
ZGdlKCk7CkBAIC04MSwxNSArODAsMTEgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZm
ZXJUZXh0dXJlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgRGVmZXJyYWxNb2RlLCBU
aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpOwotICAgIFNrRGVmZXJyZWRDYW52YXMqIGRl
ZmVycmVkQ2FudmFzKCk7CisgICAgQ2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCk7CiAKLSAgICBEZWZlcnJhbE1vZGUgbV9kZWZlcnJhbE1vZGU7Ci0gICAgYm9vbCBtX3Vz
ZURvdWJsZUJ1ZmZlcmluZzsKLSAgICB1bnNpZ25lZCBtX2Zyb250QnVmZmVyVGV4dHVyZTsKICAg
ICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNpemUgbV9zaXplOwotICAg
IFNrQ2FudmFzKiBtX2NhbnZhczsKKyAgICBTa0RlZmVycmVkQ2FudmFzKiBtX2NhbnZhczsKICAg
ICBPd25QdHI8V2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcj4gbV9sYXllcjsKICAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBzaXplX3QgbV9ieXRlc0Fs
bG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4NTljYWQxYzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdh
NzI4NThkNC4uMWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJR
dC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUltYWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2Uo
KSBjb25zdAogICAgIHJldHVybiBpbWFnZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRp
b25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAg
ICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXpl
KHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5kZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRh
YzFjZDNlN2U4MDQ2NS4uNjEzMDlmYWQ0N2M1ZWViZmI4ZTRlYTQwZjRlZTk0OWFiNzAwOWY2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
SW1hZ2VCdWZmZXJTa2lhLmNwcApAQCAtNzIsNyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6Oklt
YWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52
YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVm
ZmVyRGF0YSogZGF0YSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZh
cyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZm
ZXJEYXRhKiBkYXRhKQogewogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNE
ID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpA
QCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJl
ZjxTa0RldmljZT4gZGV2aWNlKG5ldyBTa0dwdURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdl
OjpUaHJlYWRNb2RlIHRocmVhZE1vZGUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlz
VGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQoKSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVh
ZGVkIDogQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5
ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2Uo
KSwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0
dXJlSGFuZGxlKCkpOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4dHVy
ZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgpKTsKICAgICBjYW52YXMgPSBkYXRhLT5tX2xheWVy
QnJpZGdlLT5za0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwogI2Vsc2UKICAgICBjYW52YXMgPSBuZXcg
U2tDYW52YXMoZGV2aWNlLmdldCgpKTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlLAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1v
ZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpAQCAtMTYwLDcgKzE2MCw3
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgT3duUHRyPFNrQ2FudmFzPiBjYW52YXM7
CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRlZCkKLSAgICAgICAgY2FudmFz
ID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJy
YWxNb2RlKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2Fu
dmFzKHNpemUsICZtX2RhdGEpKTsKICAgICBlbHNlIGlmIChyZW5kZXJpbmdNb2RlID09IFVuYWNj
ZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcikKICAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3Jl
YXRlTm9uUGxhdGZvcm1DYW52YXMoc2l6ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4
IGMzYzQxMTlmM2M0ZGEwZDQ1ZDZmMjdmNmVkNTcyOGRhZjI5ODQ4ZDYuLmZkNDFlMTI0YmViNzMx
Y2Q3YjEyYjA3Yjc3Mjk1YzJjNzcxNmUxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgbV9iaXRtYXAtPnNldEhhc0FscGhhKHRydWUpOwogfQogCi1JbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwg
Ym9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDRmNDFlZDEw
M2NmN2MxOWUzYjM0ZTU5NWMwMmM5ZjdiYWUyYTliODQuLjlmMDFlYTIzMDAyMDhiZjZmMTYwYTUw
ZDJhZWQ4ZjdlMjBkNThkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxN
b2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBS
ZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBt
X3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDNlNWJmMTE2MTIxNGM1MDNmZTUwMTJk
ZGNjNDk2OWYyNWZjNzVjZjUuLjZhZGQ1MWE3NTY4MTg0OGQ5MDAyOGJlNTllZjYxYWNkOWIwNzEy
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAt
OTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5j
b2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRpbGVTaXplKFdlYlNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFZp
ZGVvUG9zdGVyVVJMKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZvaWQgc2V0RGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQoYm9vbCkgeyB9IC8vIHRlbXBvcmFyeSBzdHViCiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCA2MTA2NjcxZGE5N2RhNTNh
MmVhN2U3MWYxYTA4M2MxZmI1OTVkNTU5Li4wZWRlZjVhMDYyNzg5ZGIyYjZjOTdjYWEyZWRkMTVi
NzlkZmIyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKQEAgLTUzOCw3ICs1MzgsNiBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QW50
aWFsaWFzZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIG1f
c2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGVuYWJsZWQpOwogfQogCiB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IGM0NGYzMzBiNDcxNmYwMzQxMGU4MmQyZjg1MzE2
NmQ1MjMzNjI1NzcuLjZmMjYxYmEzYzlmOTUxMDg1NmNjNjkzNTMzYTMzZWEzNGQ0NTczNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXll
ckJyaWRnZVRlc3QuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QgOiBwdWJsaWMgVGVzdCB7CiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1v
ZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUpCisgICAgdm9pZCBmdWxsTGlmZWN5Y2xlVGVz
dChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUpCiAgICAgewogICAg
ICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1haW5Db250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0
cihuZXcgTW9ja0NhbnZhc0NvbnRleHQpKTsKIApAQCAtNzYsNTIgKzc2LDI5IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgV2ViR0xJZCBiYWNrVGV4dHVyZUlkID0gMTsKICAgICAgICAgV2ViR0xJZCBm
cm9udFRleHR1cmVJZCA9IDE7CiAKLSAgICAgICAgLy8gVGhyZWFkZWQgYW5kIG5vbiBkZWZlcnJl
ZCBjYW52YXNlcyBhcmUgZG91YmxlIGJ1ZmZlcmVkLgotICAgICAgICBpZiAodGhyZWFkTW9kZSA9
PSBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVm
ZXJyZWQpIHsKLSAgICAgICAgICAgIGZyb250VGV4dHVyZUlkID0gMjsKLSAgICAgICAgICAgIC8v
IENyZWF0ZSB0ZXh0dXJlIChvbiB0aGUgbWFpbiB0aHJlYWQpIGFuZCBkbyB0aGUgY29weSAob24g
dGhlIGltcGwgdGhyZWFkKS4KLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBjcmVh
dGVUZXh0dXJlKCkpLldpbGxPbmNlKFJldHVybihmcm9udFRleHR1cmVJZCkpOwotICAgICAgICB9
Ci0KLSAgICAgICAgT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJE
TGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgc2l6ZSwgZGVmZXJyYWxNb2Rl
LCB0aHJlYWRNb2RlLCBiYWNrVGV4dHVyZUlkKTsKKyAgICAgICAgT3duUHRyPENhbnZhczJETGF5
ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4
dC5nZXQoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CiAKICAgICAgICAgOjp0
ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmbWFpbk1vY2spOwogCiAg
ICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKLSAgICAgICAgaWYgKHRocmVh
ZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09
IE5vbkRlZmVycmVkKQotICAgICAgICAgICAgRVhQRUNUX0NBTEwodXBkYXRlciwgYXBwZW5kQ29w
eShiYWNrVGV4dHVyZUlkLCBmcm9udFRleHR1cmVJZCwgV2ViU2l6ZSgzMDAsIDE1MCkpKTsKICAg
ICAgICAgRVhQRUNUX0VRKGZyb250VGV4dHVyZUlkLCBicmlkZ2UtPnByZXBhcmVUZXh0dXJlKHVw
ZGF0ZXIpKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0
aW9ucygmbWFpbk1vY2spOwogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFy
RXhwZWN0YXRpb25zKCZ1cGRhdGVyKTsKIAotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBDYW52
YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQp
IHsKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBkZWxldGVUZXh0dXJlKGZyb250
VGV4dHVyZUlkKSk7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7
Ci0gICAgICAgIH0KICAgICAgICAgYnJpZGdlLmNsZWFyKCk7CiAgICAgfQogfTsKIAogbmFtZXNw
YWNlIHsKIAotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNs
ZVNpbmdsZVRocmVhZGVkRGVmZXJyZWQpCi17Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFz
MkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkLCBOb25EZWZlcnJlZCk7Ci19Ci0KLVRFU1RfRihD
YW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZE5v
bkRlZmVycmVkKQotewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6
OlNpbmdsZVRocmVhZCwgRGVmZXJyZWQpOwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWROb25EZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZCkKIHsK
LSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgTm9u
RGVmZXJyZWQpOworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNp
bmdsZVRocmVhZCk7CiB9CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1
bGxMaWZlY3ljbGVUaHJlYWRlZERlZmVycmVkKQorVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkKQogewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0
KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkLCBEZWZlcnJlZCk7CisgICAgZnVsbExpZmVj
eWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQpOwogfQogCiB9IC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExh
eWVyTWFuYWdlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMy
RExheWVyTWFuYWdlclRlc3QuY3BwCmluZGV4IGZlYjMxYjI4NGZlMzRiNDExN2Q1ODAwYjhhNWJk
OTczYTRhNWVjMTguLjI5NzczYWVjYjIwOTY5NzJhMzVhY2RmN2JiZGM4NTNhZGE5NGM2YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFn
ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJNYW5hZ2VyVGVzdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdXNpbmcgdGVzdGluZzo6VGVzdDsK
IGNsYXNzIEZha2VDYW52YXMyRExheWVyQnJpZGdlIDogcHVibGljIENhbnZhczJETGF5ZXJCcmlk
Z2UgewogcHVibGljOgogICAgIEZha2VDYW52YXMyRExheWVyQnJpZGdlKCkgCi0gICAgICAgIDog
Q2FudmFzMkRMYXllckJyaWRnZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBXZWJLaXQ6OkZha2VXZWJHcmFw
aGljc0NvbnRleHQzRCkpLCBJbnRTaXplKDEsIDEpLCBEZWZlcnJlZCwgU2luZ2xlVGhyZWFkLCAw
KQorICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2ViS2l0
OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgU2luZ2xlVGhyZWFk
LCAwKQogICAgICAgICAsIG1fZnJlZWFibGVCeXRlcygwKQogICAgICAgICAsIG1fZnJlZU1lbW9y
eUlmUG9zc2libGVDb3VudCgwKQogICAgICAgICAsIG1fZmx1c2hDb3VudCgwKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIzMDJiODRiNjhhM2E3
MGNhOGNkMTkwMDRkMDIzYjMyY2I5NGE0MzYuLjRhZjIyMzQxNGViMWQxMDA1YzkyMjI4MDY2NzI3
MmZjNTYwYTBiNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5v
dkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVhbnVwOiByZW1vdmlu
ZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsZXRpbmcgYWxsIHRoZSBj
b2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0aW5nCisgICAgICAg
IHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQgMmQgY2FudmFzIHJl
bmRlcmluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OnJlc2V0KToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0
U2hlbGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMy0wMy0xOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBkZWxldGUtc3RhbGUtYnVp
bGQtZmlsZXMgaXMgdG9vIGFnZ3Jlc3NpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBjNGJmZmMzNDA2ZjMxMjk5MjJhZWRiMjRm
ZjUxYzI3NmIwMzUxMjQ5Li4wN2Y3MmNmZjA2OGU3ZjZkZmMyMzIzMjZmYTYxODllNzUwODU1MGRm
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUu
Y3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZVNvZnR3
YXJlQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS1zb2Z0d2FyZS1jb21wb3NpCiBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVUaHJlYWRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtdGhy
ZWFkZWQtY29tcG9zaXRpbmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3Np
dGluZ01vZGVbXSA9ICItLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJh
dGVkLTJkLWNhbnZhcyI7Ci1zdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVEZWZlcnJlZDJE
Q2FudmFzW10gPSAiLS1lbmFibGUtZGVmZXJyZWQtMmQtY2FudmFzIjsKIHN0YXRpYyBjb25zdCBj
aGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkUGFpbnRpbmdbXSA9ICItLWVuYWJsZS1hY2NlbGVy
YXRlZC1wYWludGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBz
dGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9
ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CkBAIC0xMzksNyArMTM4LDYg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBib29sIGZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZmFsc2U7CiAgICAgYm9vbCB0aHJlYWRlZEhUTUxQYXJzZXIgPSB0cnVlOwog
ICAgIGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBib29sIGRl
ZmVycmVkMkRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBhY2NlbGVyYXRlZFBhaW50
aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIGJvb2wgcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IGZh
bHNlOwogICAgIGJvb2wgZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9IGZhbHNlOwpAQCAt
MTg2LDggKzE4NCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAg
ICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1l
bnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2Vs
ZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQg
PT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAgICAgICAgICAgIGRlZmVycmVkMkRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9u
RW5hYmxlQWNjZWxlcmF0ZWRQYWludGluZykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkUGFpbnRp
bmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5h
YmxlUGVyVGlsZVBhaW50aW5nKQpAQCAtMjMzLDcgKzIyOSw2IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgICAgIHNoZWxsLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZv
cmNlQ29tcG9zaXRpbmdNb2RlKTsKICAgICAgICAgc2hlbGwuc2V0VGhyZWFkZWRIVE1MUGFyc2Vy
KHRocmVhZGVkSFRNTFBhcnNlcik7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkKGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkKTsKLSAgICAgICAgc2hlbGwuc2V0
RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZGVmZXJyZWQyRENhbnZhc0VuYWJsZWQpOwogICAgICAg
ICBzaGVsbC5zZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChhY2NlbGVyYXRlZFBhaW50aW5n
RW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZChh
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlBy
ZWZlcmVuY2VzLmgKaW5kZXggY2FmMjY0ZmY4NTZhNGNjNWMwODA1NjJmMGJlNjQyMTZjOTJkNzk3
MS4uNTRmM2JlMTRmZjVhZDdmZDdhNDA4OGM0ZTBmODBmYWVlMjUzYTE0YyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVy
ZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJQcmVmZXJlbmNlcy5oCkBAIC05NCw3ICs5NCw2IEBAIHN0cnVjdCBXRUJURVNUUlVO
TkVSX0VYUE9SVCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCBmb3JjZUNvbXBvc2l0aW5nTW9k
ZTsKICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlcjsKICAgICBib29sIGFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkOwotICAgIGJvb2wgZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9v
bCBhY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIHBlclRpbGVQYWludGluZ0Vu
YWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJl
bmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMzExNGZiZGE5N2U5M2U4MTkxNWVlNjYzNWY4ZDllYjhj
MDg3ZTU4Zi4uMTJkMTgyYTUzZjAxYzg5ZjFmODZhNzc5NTY5NTdhN2FjY2NlNGYzMCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTE5LDcgKzExOSw2IEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnJlc2V0KCkKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dT
Y3JvbGxFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQg
PSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGRl
ZmVycmVkMmRDYW52YXNFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRQYWludGluZ0Vu
YWJsZWQgPSBmYWxzZTsKICAgICBmb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGZhbHNlOwogICAgIHRo
cmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CkBAIC0xOTIsNyArMTkxLDYgQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7
Ci0gICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52
YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQo
YWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRlMjEw
MzE3MTRlMzkwOGIzYmUzYTYyNjhhMjNmYTZmNzg2NmJlMDUuLmZjNGY1NzFhZDE3M2RkMWUwZGQz
YzQwYzk4YjVkZWE5MWMzYThjYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmNwcApAQCAtMTE1LDcgKzExNSw2IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxsKCkK
ICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCiAgICAgLCBtX3RocmVhZGVkSFRN
TFBhcnNlcih0cnVlKQogICAgICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkK
LSAgICAsIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJh
dGVkUGFpbnRpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCkBAIC0y
MTcsNyArMjE2LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3MoV2ViVmlldyYg
d2ViVmlldykKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQgPSBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVu
YWJsZWQ7CiAgICAgbV9wcmVmcy5mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IG1fZm9yY2VDb21wb3Np
dGluZ01vZGU7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IG1fYWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgbV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZCA9IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgbV9wcmVmcy5hY2NlbGVyYXRl
ZFBhaW50aW5nRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7CiAgICAgbV9w
cmVmcy5wZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOwog
ICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gbV9hY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQ7CkBAIC0yNDAsNyArMjM4LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJ1bkZp
bGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmIHBhcmFtcywgYm9vbCBzaG91bGREdW1wUGl4ZWxzKQog
ICAgICAgICBpZiAoIW1fc29mdHdhcmVDb21wb3NpdGluZ0VuYWJsZWQpCiAgICAgICAgICAgICBt
X3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVm
cy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gdHJ1ZTsKLSAgICAgICAg
bV9wcmVmcy5kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIG1fcHJlZnMu
bW9ja1Njcm9sbGJhcnNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5hcHBseVRvKG1f
d2ViVmlldyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAppbmRleCAwMmRhMWZjMmU5NWVhNjg2NTE5NTUyZWY3MDhkY2M5NTMxODQyZjQ4Li42MGUwOWFi
MjFmZDk1Mzk3ZmNkMjI3NTdkZTAyMDFjZDE4M2JiNTI2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTIxLDcgKzEyMSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VGhyZWFkZWRIVE1MUGFyc2VyKGJv
b2wgZW5hYmxlZCkgeyBtX3RocmVhZGVkSFRNTFBhcnNlciA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkID0gZW5hYmxlZDsgfQotICAgIHZvaWQgc2V0RGVmZXJyZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQgPSBl
bmFibGVkOyB9CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2
b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBh
aW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQW5pbWF0
aW9uRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQg
PSBlbmFibGVkOyB9CkBAIC0yMTgsNyArMjE3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9y
Y2VDb21wb3NpdGluZ01vZGU7CiAgICAgYm9vbCBtX3RocmVhZGVkSFRNTFBhcnNlcjsKICAgICBi
b29sIG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBtX2RlZmVycmVkMmRD
YW52YXNFbmFibGVkOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZDsKICAg
ICBib29sIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRB
bmltYXRpb25FbmFibGVkOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0MThhYmM1ZTQ4OWI1M2IxMmYxNTAxN2JjNjRjZGM0
MTI1ZjU1YjguLjhhYjAzOTU3YTIzODZjYTVhODExNmExZjEyYWM5OWE0ZTA2Yjg3YWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29n
bGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVhbnVwOiByZW1vdmluZyBzdXBw
b3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1CisKKyAgICAgICAgTWFya2Vk
IHNvbWUgMmQgY2FudmFzIHRlc3RzIGFzIGZhaWxpbmcuIFRoZXNlIHRlc3RzIGFyZSB1c2luZyB0
aGUKKyAgICAgICAgdHdvIHBvaW50IHJhZGlhbCBncmFkaWVudCBBUEkuICBUaGUgYnVnIHdhcyBh
bHJlYWR5IHByZXNlbnQgaW4KKyAgICAgICAgY2hyb21pdW0uIFN0YXJ0cyBnZXR0aW5nIGRldGVj
dGVkIGluIERSVCB3aXRoIHRoaXMgY2hhbmdlLgorICAgICAgICBSZWxhdGVkOiBjcmJ1Zy5jb20v
MjIyMTQwCisKIDIwMTMtMDMtMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gRml4IFN0eWxlR3JpZERhdGE6Om9w
ZXJhdG9yPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDZkNGU0YmIyZTY2M2MxODk5YjQ3YzA1OGZhZmI4NDkyYmRkMzVlZGIuLjYzOTIy
Yzc1M2M1YjhjYjA3N2U2NGI4YWQ2MzNkMjBiMGNlYjVlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ1Niw2ICsxNDU2LDE0IEBA
IHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRp
cGxlLWhvcml6b250YWwuaHRtbCBbIEltCiB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0g
ZmFzdC9yZXBhaW50L3NoYWRvdy1tdWx0aXBsZS1zdHJpY3QtaG9yaXpvbnRhbC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0gZmFzdC9yZXBh
aW50L3NoYWRvdy1tdWx0aXBsZS1zdHJpY3QtdmVydGljYWwuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogCisjIFRoZXNlIHRlc3RzIGZhaWwgZHVlIHRvIGEgYnVnIHdpdGggMkQgY2FudmFzIGNv
bW1hbmQgZGVmZXJyYWwKK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5iZXNpZGUu
aHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0
dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLnNoYXBl
MS5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3Zp
cnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuYmVo
aW5kLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0v
dmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5z
aGFwZTIuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1
bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC50b3Vj
aDEuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC50b3VjaDMu
aHRtbCBbIEZhaWx1cmUgXQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFdlYkdMIFRlc3RzCiAjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194051</attachid>
            <date>2013-03-20 07:36:06 -0700</date>
            <delta_ts>2013-03-20 07:49:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320103155.patch</filename>
            <type>text/plain</type>
            <size>41223</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwMzZiYTgzNzc4YWZl
ZTkwNDhkNzcyMWY1MTk5ZDUyZjQ2MmI2Ni4uNzUwYzY0NzNhZTcwN2IyOGY5OGY4OTAwODYzZDJk
OTI1NmMyMTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjMzMS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggZDI2NjI0YTQ3ZmE3MDQzOGIyN2NmOTQyMmEwMDQxZDI1NzM3
MWZlMC4uYjRiNjIzN2ZlZjU1ZDFmNzc0ZTE2NzA3MmUyYjFjNTEwOTQyM2QxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5v
dm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVh
bnVwOiByZW1vdmluZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsZXRp
bmcgYWxsIHRoZSBjb2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0
aW5nCisgICAgICAgIHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQg
MmQgY2FudmFzIHJlbmRlcmluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKToKKyAgICAgICAgKiB0
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMyRExheWVy
QnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorICAgICAgICAqIHRlc3RzL0NhbnZhczJE
TGF5ZXJNYW5hZ2VyVGVzdC5jcHA6CisgICAgICAgIChGYWtlQ2FudmFzMkRMYXllckJyaWRnZTo6
RmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UpOgorCiAyMDEzLTAzLTE5ICBNYXJrIFBpbGdyaW0gIDxw
aWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1pZ3JhdGUgdG8gV0VC
S0lUX1VTRV9ORVdfV0VCRklMRVNZU1RFTVRZUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggM2NjMmM5MzBhMmNlNThjOTFlZTA4OWQwYmRiYmVhYTEyNmRm
N2E3ZS4uYTNjMDQ2MzMxOWIzNTU2NzQzZmYzMDRhZThkZDQyM2ZlNGQ4M2VhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTUyMCwyMiArNTIwLDYgQEAg
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZShjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZERl
ZmVyKCkgY29uc3QKLXsKLSNpZiBVU0UoU0tJQSkKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2Nv
bnRleHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKLSAgICBpZiAoIXNldHRpbmdzIHx8ICFz
ZXR0aW5ncy0+ZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
fQotCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFtX2ltYWdlQnVmZmVyKTsKQEAgLTU2NSw4ICs1NDksNyBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAjZWxzZQogICAgICAg
ICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSA9
IHNob3VsZERlZmVyKCkgPyBEZWZlcnJlZCA6IE5vbkRlZmVycmVkOwotICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlKTsKKyAgICBtX2lt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0
b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUpOwogICAgIGlmICghbV9pbWFn
ZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+
c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKaW5kZXggY2Q5ODIxYzVjMzc3YjY3MTNjYWE3OGJmOWQ1NmNhZDBmYWI0
NTA0YS4uYmY3MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTYwLDggKzE2MCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNldFN1cmZhY2VTaXplKGNvbnN0IEludFNpemUmKTsKIAotICAgIGJv
b2wgc2hvdWxkRGVmZXIoKSBjb25zdDsKLQogICAgIGJvb2wgcGFpbnRzSW50b0NhbnZhc0J1ZmZl
cigpIGNvbnN0OwogCiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZGI3Y2E3YWRiOWE2YjE4MTYzZDg2MDZmM2YzZWIy
NjYwMGUwZDlmMC4uZjY0ZjU3OGJlOGIxZGZlZWIxNmE3M2E1NDMxZjZiMTNkNDk2YmE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xMTMsNyArMTEzLDYgQEAgd2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkIGluaXRpYWw9dHJ1ZQogb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgaW5p
dGlhbD10cnVlCiBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNl
CiBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1kZWZlcnJlZDJkQ2Fu
dmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCiBhbnRpYWxpYXNlZDJkQ2FudmFzRW5hYmxlZCBpbml0
aWFsPXRydWUKIGxvYWREZWZlcnJpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogd2ViQXVkaW9FbmFi
bGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IDljNWU2M2E5NTk1ZTlhNjA5OWE1Mjc1NWQ0Nzk2MzNlMjFjODlk
YTcuLjFlNGU1ZDRkNDMzMWM5MmIxYWVhYzgyNTMxNDNhNjQzODVkMDM0MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNzAsMTEgKzcw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEb250Q29weUJhY2tpbmdTdG9yZSAv
LyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCiAgICAgfTsKIAotICAgIGVu
dW0gRGVmZXJyYWxNb2RlIHsKLSAgICAgICAgTm9uRGVmZXJyZWQsCi0gICAgICAgIERlZmVycmVk
Ci0gICAgfTsKLQogICAgIGVudW0gU2NhbGVCZWhhdmlvciB7CiAgICAgICAgIFNjYWxlZCwKICAg
ICAgICAgVW5zY2FsZWQKQEAgLTg0LDEwICs3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9p
bnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPElt
YWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZCwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSA9IE5vbkRlZmVycmVkKQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFn
ZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPEltYWdlQnVm
ZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBkZWZlcnJhbE1vZGUsIHN1Y2Nlc3MpKTsKKyAg
ICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVm
ZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgc3Vj
Y2VzcykpOwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7CkBAIC0xNjAsNyAr
MTU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0
b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBvdXQtdmFyaWFibGUKICAg
ICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCByZXR1cm4gZmFp
bHVyZS4KLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBz
dWNjZXNzKTsKKyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CiAj
aWYgVVNFKFNLSUEpCiAgICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGJvb2wg
aGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggNWQ4YTI0NTI3NmVkMzc5MmQzMWI5NmIzM2IwNzkyNjRi
MDQwOWFhYi4uZmU3MjU5MDg3MDhjMmM2YzBjNmVjYjFkZjNmZDA5MThmOTIzZjBjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1
ZmZlckJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBA
IHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogdGhpc0NvbnRleHQs
IEdyYXBoaWNzQ29udGV4dCogb3RoZXJDCiAgICAgfQogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2Rl
IGRlZmVycmFsTW9kZSwgSG9zdFdpbmRvdyogd2luZG93LCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IEhvc3RXaW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fc2l6ZShzaXplKQog
ICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUoMSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKaW5kZXggNjk1MzkzMjdmMTMwNDI2ZTZhOTRmMDRkODgwM2E0NDc4
NjlmMzNmNC4uOWViZWQ5ZDcwMzI2MjZjOTcxNzkwYjZjNDIxYzdhMTBkYzMyZjcyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFn
ZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYpCiB7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENv
bG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0lt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNv
bHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3Mp
CiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2Fs
U2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA3ZTA0MzRjMzZhYzM4ZWQzOTZlZTM2OTUwOWUwNDgz
ZTI0MmQ5YWIxLi5lNTczNzMyMzE2ZGZjMGZlMzliZTY0ZGFhNDE3ZDgwNWNhYzA3ZDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VJbWFnZURhdGEo
dm9pZCosIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCkKICAgICBmYXN0RnJlZShjb25zdF9jYXN0
PHZvaWQqPihkYXRhKSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8g
Tk9URTogVGhlIGlucHV0IGhlcmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNH
J3MgY29uc3RydWN0b3IganVzdCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJy
aWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52
YXMyRExheWVyQnJpZGdlLmNwcAppbmRleCA2NjI3MmZkYjM4Mjk4MTdlMTIwNTEzMzhjMDhiZTY3
OWM0NDViYjY5Li5lNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMy
RExheWVyQnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiU2tE
ZXZpY2UuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CkBAIC00Mywx
MCArNDQsOCBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVVcGRhdGVyOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
RGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25l
ZCB0ZXh0dXJlSWQpCi0gICAgOiBtX2RlZmVycmFsTW9kZShkZWZlcnJhbE1vZGUpCi0gICAgLCBt
X2Zyb250QnVmZmVyVGV4dHVyZSgwKQotICAgICwgbV9iYWNrQnVmZmVyVGV4dHVyZSh0ZXh0dXJl
SWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1v
ZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQorICAgIDogbV9iYWNrQnVmZmVyVGV4
dHVyZSh0ZXh0dXJlSWQpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fY2FudmFzKDApCiAg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKQEAgLTU5LDMwICs1OCw5IEBAIENhbnZhczJETGF5ZXJC
cmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwKICAgICAvLyBVc2VkIGJ5IGJyb3dzZXIgdGVzdHMgdG8gZGV0ZWN0IHRoZSB1c2Ug
b2YgYSBDYW52YXMyRExheWVyQnJpZGdlLgogICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ0ZXN0
X2dwdSIsICJDYW52YXMyRExheWVyQnJpZGdlQ3JlYXRpb24iKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBjdXJyZW50bHkgdHVybiBvZmYgZG91YmxlIGJ1ZmZlcmluZyB3aGVuIGNhbnZhcyByZW5kZXJp
bmcgaXMKLSAgICAvLyBkZWZlcnJlZC4gV2hhdCB3ZSBzaG91bGQgYmUgZG9pbmcgaXMgdG8gdXNl
IGEgc21hcnRlciBoZXVyaXN0aWMgYmFzZWQKLSAgICAvLyBvbiBHUFUgcmVzb3VyY2UgbW9uaXRv
cmluZyBhbmQgb3RoZXIgZmFjdG9ycyB0byBjaG9zZSBiZXR3ZWVuIHNpbmdsZQotICAgIC8vIGFu
ZCBkb3VibGUgYnVmZmVyaW5nLgotICAgIG1fdXNlRG91YmxlQnVmZmVyaW5nID0gdGhyZWFkTW9k
ZSA9PSBUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQ7Ci0KLSAgICBpZiAo
bV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKTsKLSAgICAgICAgbV9mcm9udEJ1ZmZlclRleHR1cmUgPSBtX2NvbnRleHQtPmNyZWF0
ZVRleHR1cmUoKTsKLSAgICAgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgbV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAgICAvLyBEbyBi
YXNpYyBsaW5lYXIgZmlsdGVyaW5nIG9uIHJlc2l6ZS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAgICAg
ICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQz
RDo6TElORUFSKTsKLSAgICAgICAgLy8gTlBPVCB0ZXh0dXJlcyBpbiBHTCBFUyBvbmx5IHdvcmsg
d2hlbiB0aGUgd3JhcCBtb2RlIGlzIHNldCB0byBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAg
bV9jb250ZXh0LT50ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX0JZVEUpOwotICAgICAgICBpZiAoR3JDb250ZXh0KiBnckNvbnRleHQgPSBtX2NvbnRl
eHQtPmdyQ29udGV4dCgpKQotICAgICAgICAgICAgZ3JDb250ZXh0LT5yZXNldENvbnRleHQoKTsK
LSAgICB9Ci0KICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0aGlz
KSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXllci0+
c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCB8fCBtX3VzZURv
dWJsZUJ1ZmZlcmluZyk7CisgICAgbV9sYXllci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRN
b2RlID09IFNpbmdsZVRocmVhZCk7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3Rl
ckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKQEAgLTkwLDIxICs2OCw5IEBA
IENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdlKCkKIHsKICAgICBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVy
KCkpOwogICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllclRvQmVEZXN0cm95ZWQo
dGhpcyk7Ci0gICAgaWYgKFNrRGVmZXJyZWRDYW52YXMqIGRlZmVycmVkID0gZGVmZXJyZWRDYW52
YXMoKSkKLSAgICAgICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCgwKTsKKyAgICBp
ZiAobV9jYW52YXMpCisgICAgICAgIG1fY2FudmFzLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7
CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKDApOwotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZl
cmluZykgewotICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBtX2NvbnRleHQtPmRlbGV0ZVRleHR1cmUobV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAg
ICBtX2NvbnRleHQtPmZsdXNoKCk7Ci0gICAgfQotfQotCi1Ta0RlZmVycmVkQ2FudmFzKiBDYW52
YXMyRExheWVyQnJpZGdlOjpkZWZlcnJlZENhbnZhcygpCi17Ci0gICAgaWYgKG1fZGVmZXJyYWxN
b2RlID09IERlZmVycmVkKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2tEZWZlcnJlZENh
bnZhcyo+KG1fY2FudmFzKTsKLSAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpsaW1pdFBlbmRpbmdGcmFtZXMoKQpAQCAtMTE5LDE1ICs4NSwxMiBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmxpbWl0UGVuZGluZ0ZyYW1lcygpCiAKIHZvaWQgQ2FudmFzMkRM
YXllckJyaWRnZTo6cHJlcGFyZUZvckRyYXcoKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZh
cygpKTsKLSAgICBpZiAoIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53
aWxsTW9kaWZ5VGV4dHVyZSgpOworICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7CiAg
ICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAogdm9pZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0
ZXNBbGxvY2F0ZWQpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKTsK
ICAgICBpbnRwdHJfdCBkZWx0YSA9IChpbnRwdHJfdClieXRlc0FsbG9jYXRlZCAtIChpbnRwdHJf
dCltX2J5dGVzQWxsb2NhdGVkOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0FsbG9jYXRl
ZDsKICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdl
Q2hhbmdlZCh0aGlzLCBkZWx0YSk7CkBAIC0xMzUsNyArOTgsNyBAQCB2b2lkIENhbnZhczJETGF5
ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKHNpemVfdCBieXRl
c0FsbG9jYQogCiBzaXplX3QgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZv
clJlY29yZGluZygpCiB7Ci0gICAgcmV0dXJuIGRlZmVycmVkQ2FudmFzKCktPnN0b3JhZ2VBbGxv
Y2F0ZWRGb3JSZWNvcmRpbmcoKTsKKyAgICByZXR1cm4gbV9jYW52YXMgPyBtX2NhbnZhcy0+c3Rv
cmFnZUFsbG9jYXRlZEZvclJlY29yZGluZygpIDogMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpmbHVzaGVkRHJhd0NvbW1hbmRzKCkKQEAgLTE1MSw4ICsxMTQsNyBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OnNraXBwZWRQZW5kaW5nRHJhd0NvbW1hbmRzKCkKIAogc2l6ZV90
IENhbnZhczJETGF5ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1Rv
RnJlZSkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgc2l6ZV90IGJ5dGVz
RnJlZWQgPSBkZWZlcnJlZENhbnZhcygpLT5mcmVlTWVtb3J5SWZQb3NzaWJsZShieXRlc1RvRnJl
ZSk7CisgICAgc2l6ZV90IGJ5dGVzRnJlZWQgPSBtX2NhbnZhcyA/IG1fY2FudmFzLT5mcmVlTWVt
b3J5SWZQb3NzaWJsZShieXRlc1RvRnJlZSkgOiAwOwogICAgIGlmIChieXRlc0ZyZWVkKQogICAg
ICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdlQ2hh
bmdlZCh0aGlzLCAtKChpbnRwdHJfdClieXRlc0ZyZWVkKSk7CiAgICAgbV9ieXRlc0FsbG9jYXRl
ZCAtPSBieXRlc0ZyZWVkOwpAQCAtMTYxLDIxICsxMjMsMTUgQEAgc2l6ZV90IENhbnZhczJETGF5
ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1RvRnJlZSkKIAogdm9p
ZCBDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCgpCiB7Ci0gICAgQVNTRVJUKGRlZmVycmVkQ2Fu
dmFzKCkpOwotICAgIGlmIChkZWZlcnJlZENhbnZhcygpLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkK
KyAgICBpZiAobV9jYW52YXMgJiYgbV9jYW52YXMtPmhhc1BlbmRpbmdDb21tYW5kcygpKQogICAg
ICAgICBtX2NhbnZhcy0+Zmx1c2goKTsKIH0KIAogU2tDYW52YXMqIENhbnZhczJETGF5ZXJCcmlk
Z2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZpY2UpCiB7CiAgICAgQVNTRVJUKCFtX2NhbnZhcyk7
Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIFNrRGVmZXJy
ZWRDYW52YXMqIGRlZmVycmVkID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNlKTsKLSAgICAg
ICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKLSAgICAgICAgbV9jYW52
YXMgPSBkZWZlcnJlZDsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9jYW52YXMgPSBuZXcgU2tDYW52
YXMoZGV2aWNlKTsKLQorICAgIG1fY2FudmFzID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNl
KTsKKyAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpOwogICAgIHJldHVy
biBtX2NhbnZhczsKIH0KIApAQCAtMTkxLDExICsxNDcsNiBAQCB1bnNpZ25lZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZShXZWJUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKIAog
ICAgIG1fY29udGV4dC0+Zmx1c2goKTsKIAotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykg
ewotICAgICAgICB1cGRhdGVyLmFwcGVuZENvcHkobV9iYWNrQnVmZmVyVGV4dHVyZSwgbV9mcm9u
dEJ1ZmZlclRleHR1cmUsIG1fc2l6ZSk7Ci0gICAgICAgIHJldHVybiBtX2Zyb250QnVmZmVyVGV4
dHVyZTsKLSAgICB9Ci0KICAgICBpZiAobV9jYW52YXMpIHsKICAgICAgICAgLy8gTm90aWZ5IHNr
aWEgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIGJhY2tpbmcgc3RvcmUgdGV4dHVyZSBvYmplY3Qgd2ls
bCBiZSB0b3VjaGVkIGJ5IHRoZSBjb21wb3NpdG9yCiAgICAgICAgIEdyUmVuZGVyVGFyZ2V0KiBy
ZW5kZXJUYXJnZXQgPSByZWludGVycHJldF9jYXN0PEdyUmVuZGVyVGFyZ2V0Kj4obV9jYW52YXMt
PmdldERldmljZSgpLT5hY2Nlc3NSZW5kZXJUYXJnZXQoKSk7CkBAIC0yMTcsMTIgKzE2OCw4IEBA
IFdlYktpdDo6V2ViTGF5ZXIqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKCkKIAogdm9pZCBD
YW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQoKQogewotICAgIGlmIChtX2RlZmVy
cmFsTW9kZSA9PSBOb25EZWZlcnJlZCAmJiAhbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAgICAg
IG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7Ci0gICAgZWxzZSBpZiAobV9kZWZlcnJhbE1v
ZGUgPT0gRGVmZXJyZWQpIHsKLSAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxh
eWVyRGlkRHJhdyh0aGlzKTsKLSAgICAgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7
Ci0gICAgfQorICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhp
cyk7CisgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7CiB9CiAKIHVuc2lnbmVkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmJhY2tCdWZmZXJUZXh0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5
ZXJCcmlkZ2UuaAppbmRleCA4ZTQ0MmZkOTE3N2FhODI4M2QyYjA2ODdhNDA1ODM5Y2ViNjUwMzJk
Li5iMzg2MzA0YzMzN2YzMDNhNjc0NWU2YTkxZDk0YzZlOTVjZTUyMWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJp
ZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckJyaWRnZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENhbnZhczJETGF5
ZXJCcmlkZ2VfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIiAvLyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgogI2luY2x1ZGUgIlNrRGVmZXJyZWRDYW52YXMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KQEAgLTUwLDkgKzQ5LDkgQEAgcHVibGljOgogICAgICAg
ICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVy
QnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0
aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDYW52
YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRpbmcsIHVuc2lnbmVk
IHRleHR1cmVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRM
YXllckJyaWRnZShjb250ZXh0LCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZGluZywgdGV4dHVy
ZUlkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRMYXllckJyaWRnZShj
b250ZXh0LCBzaXplLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAgLTgxLDE1ICs4MCwxMSBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgYmFja0J1ZmZlclRleHR1cmUoKTsKIAogcHJvdGVjdGVkOgotICAgIENhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IEludFNp
emUmLCBEZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7Ci0gICAg
U2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWRDYW52YXMoKTsKKyAgICBDYW52YXMyRExheWVyQnJp
ZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFk
TW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKTsKIAotICAgIERlZmVycmFsTW9kZSBtX2RlZmVycmFs
TW9kZTsKLSAgICBib29sIG1fdXNlRG91YmxlQnVmZmVyaW5nOwotICAgIHVuc2lnbmVkIG1fZnJv
bnRCdWZmZXJUZXh0dXJlOwogICAgIHVuc2lnbmVkIG1fYmFja0J1ZmZlclRleHR1cmU7CiAgICAg
SW50U2l6ZSBtX3NpemU7Ci0gICAgU2tDYW52YXMqIG1fY2FudmFzOworICAgIFNrRGVmZXJyZWRD
YW52YXMqIG1fY2FudmFzOwogICAgIE93blB0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxh
eWVyPiBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0Owog
ICAgIHNpemVfdCBtX2J5dGVzQWxsb2NhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCA0Mzg1OWNhZDFjNzQ4
MzU0M2MwN2RmMThhZDYzZTk1N2E3Mjg1OGQ0Li4xYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdj
ZjUxYmM3Yzc4NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VC
dWZmZXJEYXRhOjp0b1FJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1
dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJv
b2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
LCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA3NDJiMDEx
YjgwMmVlMDExYTY0ZGJhNzM1NGFjMWNkM2U3ZTgwNDY1Li42MTMwOWZhZDQ3YzVlZWJmYjhlNGVh
NDBmNGVlOTQ5YWI3MDA5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCiB7
CiB9CiAKLXN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxN
b2RlKQorc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRT
aXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGRhdGEpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBjb250ZXh0M0QgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAg
ICAgaWYgKCFjb250ZXh0M0QpCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBTa0NhbnZhcyogY3Jl
YXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRh
KiBkCiAgICAgU2tBdXRvVFVucmVmPFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdy
LCB0ZXh0dXJlLmdldCgpKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxh
dGZvcm06OmN1cnJlbnQoKS0+aXNUaHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFz
MkRMYXllckJyaWRnZTo6VGhyZWFkZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJl
YWQ7Ci0gICAgZGF0YS0+bV9sYXllckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0
ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1vZGUsIHRl
eHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5kbGUoKSk7CisgICAgZGF0YS0+bV9sYXllckJyaWRn
ZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXpl
LCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwogICAgIGNh
bnZhcyA9IGRhdGEtPm1fbGF5ZXJCcmlkZ2UtPnNrQ2FudmFzKGRldmljZS5nZXQoKSk7CiAjZWxz
ZQogICAgIGNhbnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwpAQCAtMTUxLDcgKzE1
MSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAK
LUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVm
ZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFn
ZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6
IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNp
emUpCkBAIC0xNjAsNyArMTYwLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBPd25Q
dHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IEFjY2VsZXJh
dGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhz
aXplLCAmbV9kYXRhLCBkZWZlcnJhbE1vZGUpKTsKKyAgICAgICAgY2FudmFzID0gYWRvcHRQdHIo
Y3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSkpOwogICAgIGVsc2UgaWYgKHJl
bmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyKQogICAgICAgICBj
YW52YXMgPSBhZG9wdFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZhcyhzaXplKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVy
V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKaW5kZXggYzNjNDExOWYzYzRkYTBkNDVkNmYyN2Y2ZWQ1NzI4ZGFmMjk4
NDhkNi4uZmQ0MWUxMjRiZWI3MzFjZDdiMTJiMDdiNzcyOTVjMmM3NzE2ZTFmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1
ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1hcC0+c2V0SGFzQWxwaGEo
dHJ1ZSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVy
V3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJX
eC5jcHAKaW5kZXggNGY0MWVkMTAzY2Y3YzE5ZTNiMzRlNTk1YzAyYzlmN2JhZTJhOWI4NC4uOWYw
MWVhMjMwMDIwOGJmNmYxNjBhNTBkMmFlZDhmN2UyMGQ1OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKQEAgLTk0
LDcgKzk0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKCkKICAgICBkZWxl
dGUgbV9tZW1EQzsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1h
Z2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBt
X2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZTky
YjZjODk5ZjQ4MGUwZDE2NDBmODM3ZTk1NzRlNTIyYjRlY2YyYy4uNzI1YzYxYzgwMDU1OTEwODg4
MjVjMTk5MmVmNzhjNzhmMDEyMjJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmYXVsdEZvbnRTaXplKGludCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmF1bHRWaWRlb1Bvc3RlclVSTChjb25zdCBXZWJTdHJpbmcmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2
b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpIHsgfSAvLyB0ZW1wb3Jhcnkgc3R1
YgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXgg
MGMwZDJmZGJlZWUzODFmOWI4MGNiM2IwOTRhZTdjODMzMDViODE2MC4uOWYzNDkwMWUwZDExMjVk
ZjAwYjU0NmY4NmNhMGQ1Mjg2YTlhNjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MTQsNyArNTE0LDYgQEAgdm9pZCBXZWJTZXR0
aW5nc0ltcGw6OnNldEFudGlhbGlhc2VkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAog
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKLSAgICBtX3NldHRpbmdzLT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCBjNDRmMzMwYjQ3MTZm
MDM0MTBlODJkMmY4NTMxNjZkNTIzMzYyNTc3Li42ZjI2MWJhM2M5Zjk1MTA4NTZjYzY5MzUzM2Ez
M2VhMzRkNDU3MzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAKIGNsYXNzIENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0IDogcHVibGljIFRlc3QgewogcHJvdGVj
dGVkOgotICAgIHZvaWQgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhy
ZWFkTW9kZSB0aHJlYWRNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlKQorICAgIHZvaWQg
ZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRN
b2RlKQogICAgIHsKICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtYWluQ29udGV4
dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdl
YkNvbnRleHQoYWRvcHRQdHIobmV3IE1vY2tDYW52YXNDb250ZXh0KSk7CiAKQEAgLTc2LDUyICs3
NiwyOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAg
ICAgICAgIFdlYkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwogCi0gICAgICAgIC8vIFRocmVhZGVk
IGFuZCBub24gZGVmZXJyZWQgY2FudmFzZXMgYXJlIGRvdWJsZSBidWZmZXJlZC4KLSAgICAgICAg
aWYgKHRocmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJy
YWxNb2RlID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBmcm9udFRleHR1cmVJZCA9IDI7
Ci0gICAgICAgICAgICAvLyBDcmVhdGUgdGV4dHVyZSAob24gdGhlIG1haW4gdGhyZWFkKSBhbmQg
ZG8gdGhlIGNvcHkgKG9uIHRoZSBpbXBsIHRocmVhZCkuCi0gICAgICAgICAgICBFWFBFQ1RfQ0FM
TChtYWluTW9jaywgY3JlYXRlVGV4dHVyZSgpKS5XaWxsT25jZShSZXR1cm4oZnJvbnRUZXh0dXJl
SWQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBi
cmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNp
emUsIGRlZmVycmFsTW9kZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CisgICAgICAgIE93
blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpj
cmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQp
OwogCiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMo
Jm1haW5Nb2NrKTsKIAogICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7Ci0g
ICAgICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYm
IGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVw
ZGF0ZXIsIGFwcGVuZENvcHkoYmFja1RleHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUo
MzAwLCAxNTApKSk7CiAgICAgICAgIEVYUEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5w
cmVwYXJlVGV4dHVyZSh1cGRhdGVyKSk7CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5
QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2Nr
OjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKLSAgICAgICAgaWYgKHRo
cmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2Rl
ID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVs
ZXRlVGV4dHVyZShmcm9udFRleHR1cmVJZCkpOwotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGZsdXNoKCkpOwotICAgICAgICB9CiAgICAgICAgIGJyaWRnZS5jbGVhcigpOwogICAg
IH0KIH07CiAKIG5hbWVzcGFjZSB7CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwg
dGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZERlZmVycmVkKQotewotICAgIGZ1bGxMaWZl
Y3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZCwgTm9uRGVmZXJyZWQp
OwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xl
U2luZ2xlVGhyZWFkZWROb25EZWZlcnJlZCkKLXsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52
YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQsIERlZmVycmVkKTsKLX0KLQotVEVTVF9GKENh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkTm9uRGVmZXJy
ZWQpCitURVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2lu
Z2xlVGhyZWFkZWQpCiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRn
ZTo6VGhyZWFkZWQsIE5vbkRlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMy
RExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQpOwogfQogCi1URVNUX0YoQ2FudmFzMkRMYXllckJy
aWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWREZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRlZCkKIHsKLSAgICBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgRGVmZXJyZWQp
OworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcAppbmRleCBmZWIzMWIyODRmZTM0
YjQxMTdkNTgwMGI4YTViZDk3M2E0YTVlYzE4Li4yOTc3M2FlY2IyMDk2OTcyYTM1YWNkZjdiYmRj
ODUzYWRhOTRjNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5n
IHRlc3Rpbmc6OlRlc3Q7CiBjbGFzcyBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBD
YW52YXMyRExheWVyQnJpZGdlIHsKIHB1YmxpYzoKICAgICBGYWtlQ2FudmFzMkRMYXllckJyaWRn
ZSgpIAotICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2Vi
S2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgRGVmZXJyZWQs
IFNpbmdsZVRocmVhZCwgMCkKKyAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRv
cHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwg
MSksIFNpbmdsZVRocmVhZCwgMCkKICAgICAgICAgLCBtX2ZyZWVhYmxlQnl0ZXMoMCkKICAgICAg
ICAgLCBtX2ZyZWVNZW1vcnlJZlBvc3NpYmxlQ291bnQoMCkKICAgICAgICAgLCBtX2ZsdXNoQ291
bnQoMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA3NjRjYmMwZmFkZjY0MDgyMmJjOTY4MzI5Y2Y5NzdjYTM1MGU4ZWI2Li4xN2Y3NGM1N2Q5NzAy
YmYyOTVjNDNlMTgwZDBkNDg0OGMzYjU1ZGU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMTggIEp1c3Rp
biBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvZGUg
Y2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyByZW5k
ZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBhbmQgc3Vw
cG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5nIGRlZmVy
cmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNl
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAg
KFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0
aW5ncyk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6CisK
IDIwMTMtMDMtMjAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSBSZW1vdmUgZW1wdHkgZnVuY3Rpb24gc3R1YnMgZnJvbSBUZXN0UnVubmVyUXQuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NGNmYmQxNWI3MDkwNDA1ZWIwNzljNWQzNDFlYjNkZjUzODFhN2RiNi4uODAzODA0MDNmZGE3OWVh
Mzc1ZmZhMmNmMzNmOWYwMzY3ZjM0M2ZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNyArNTksNiBAQCBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtc29m
dHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlVGhyZWFkZWRDb21w
b3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNvbXBvc2l0aW5nIjsKIHN0YXRpYyBjb25z
dCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2RlW10gPSAiLS1mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52
YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWRlZmVycmVkLTJk
LWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBzdGF0aWMg
Y29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9ICItLWVu
YWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRp
b25FbmFibGVBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0
ZWQtb3ZlcmZsb3ctc2Nyb2xsIjsKQEAgLTEzOCw3ICsxMzcsNiBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsK
ICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CiAgICAgYm9vbCBhY2NlbGVyYXRl
ZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGJvb2wgZGVmZXJyZWQyRENhbnZhc0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKICAg
ICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHN0
cmVzc09wdCA9IGZhbHNlOwpAQCAtMTgzLDggKzE4MSw2IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAg
ICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZh
cykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAg
ICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBp
ZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlUGVyVGlsZVBhaW50aW5nKQogICAgICAgICAgICAg
cGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50
ID09IG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZykKQEAgLTIyOCw3ICsyMjQsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBzaGVsbC5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgICAgIHNoZWxsLnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgICAgICBzaGVsbC5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCk7
Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMkRDYW52
YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJU
aWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0RGVmZXJyZWRJbWFnZURlY29k
aW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwu
c2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJl
ZmVyZW5jZXMuaAppbmRleCA1NjQ0ZDA5OWZlNDdhMDY1NDAyMjFhZGExZGYwZmZhODVkNDVjOWRj
Li5iZmNlNWFmZWVlYjJkZmY2NmJkOWQ4ZGU5MjE4MzJhNzdlNmQ3NmEwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJl
bmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlByZWZlcmVuY2VzLmgKQEAgLTk0LDcgKzk0LDYgQEAgc3RydWN0IFdFQlRFU1RSVU5O
RVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
OwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBib29s
IHBlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVu
YWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE2ODc3NzM3OWY4MWMwYTczNTcwZGJiNzY4NmY2OGJh
Mzc1OTY1NTUuLjVkODgyYWVmNTExOTU4MGQ5OGEyNzRiNWEyNzk0NWY4OGFmMTdlNDEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTksNiBAQCB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
ID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBk
ZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
ID0gZmFsc2U7CiAgICAgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsKICAgICBwZXJUaWxlUGFp
bnRpbmdFbmFibGVkID0gZmFsc2U7CkBAIC0xODksNyArMTg4LDYgQEAgdm9pZCBXZWJQcmVmZXJl
bmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNldFRo
cmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7Ci0g
ICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52YXNF
bmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJUaWxl
UGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmZXJyZWRJbWFnZURlY29kaW5n
RW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0
TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUobWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
aW5kZXggZDNkYjY1ZWIwYzIxODM2NWUwOWJhMDg4YTNmOGY0MmE4N2ZhYjIxMi4uNjZmMWM0MGRj
MGJhMWYwZWM2ODExYmY4YjQ1NTczOGE2NDlhNzJkOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMTUsNyArMTE1LDYgQEAgVGVzdFNoZWxsOjpU
ZXN0U2hlbGwoKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1f
dGhyZWFkZWRIVE1MUGFyc2VyKHRydWUpCiAgICAgLCBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQpAQCAtMjE1LDcg
KzIxNCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdlYlZp
ZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
OwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQg
PSBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMucGVyVGlsZVBhaW50aW5n
RW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmRlZmVycmVk
SW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgbV9wcmVmcy50aHJlYWRlZEhUTUxQYXJzZXIgPSBtX3RocmVhZGVkSFRNTFBhcnNlcjsKQEAg
LTIzNiw3ICsyMzQsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QoY29uc3QgVGVzdFBh
cmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAgICAgIGlmICghbV9zb2Z0
d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAgICAgICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JWaWRlb0VuYWJsZWQgPSB0cnVlOwotICAgICAgICBtX3ByZWZzLmRlZmVycmVkMmRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5tb2NrU2Nyb2xsYmFyc0VuYWJs
ZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFwcGx5VG8obV93ZWJWaWV3KTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IGVkN2VhZmNiMjYw
YTMxZjQ2YzdiYzJkNjM4ZWNlMTE0YjYzZTY4OTYuLjFjYjM0YWMxYzQ1YWIwNmNiMGRiOWY2MWEx
M2FlY2Y0YzUyYzE5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBlbmFibGVk
OyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZEhUTUxQYXJzZXIoYm9vbCBlbmFibGVkKSB7IG1fdGhy
ZWFkZWRIVE1MUGFyc2VyID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQg
PSBlbmFibGVkOyB9Ci0gICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBhaW50
aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9
IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIxNiw3ICsyMTUsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBib29sIG1fdGhyZWFk
ZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKLSAg
ICBib29sIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9vbCBtX3BlclRpbGVQYWlu
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXMgbV9wcmVmczsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNjRjNjkz
NzlkY2FlYzg3NDI2NWM4MzdlOTQzNjMzYTMyMzQ5NmJmLi4xZjc2MWMwZTMwMDY3MTM1NTM2NTll
YjUwMTA1MTdiY2Y1YTg4MGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMtMTggIEp1
c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENv
ZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyBy
ZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjYwNQorCisgICAgICAgIE1hcmtlZCBzb21lIDJkIGNhbnZhcyB0ZXN0cyBhcyBmYWlsaW5n
LiBUaGVzZSB0ZXN0cyBhcmUgdXNpbmcgdGhlCisgICAgICAgIHR3byBwb2ludCByYWRpYWwgZ3Jh
ZGllbnQgQVBJLiAgVGhlIGJ1ZyB3YXMgYWxyZWFkeSBwcmVzZW50IGluCisgICAgICAgIGNocm9t
aXVtLiBTdGFydHMgZ2V0dGluZyBkZXRlY3RlZCBpbiBEUlQgd2l0aCB0aGlzIGNoYW5nZS4KKyAg
ICAgICAgUmVsYXRlZDogY3JidWcuY29tLzIyMjE0MAorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTQ2MzMxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjZjOGQxM2FlOTg2MjBlNmI1ZGQ0Y2VmNTQ3OWY4NTI3NmIw
NmQyNS4uNmViNDUwODBmZGJiNGYzZTBhYWM0MjVkOWVhYmE4ZjQ1YmU3OWE3YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDU2LDYg
KzE0NTYsMTQgQEAgd2Via2l0Lm9yZy9iLzc1Mjc2IFsgQW5kcm9pZCBdIGZhc3QvcmVwYWludC9z
aGFkb3ctbXVsdGlwbGUtaG9yaXpvbnRhbC5odG1sIFsgSW0KIHdlYmtpdC5vcmcvYi83NTI3NiBb
IEFuZHJvaWQgXSBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRpcGxlLXN0cmljdC1ob3Jpem9udGFs
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQg
XSBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRpcGxlLXN0cmljdC12ZXJ0aWNhbC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMgZmFpbCBkdWUgdG8gYSBidWcgd2l0aCAy
RCBjYW52YXMgY29tbWFuZCBkZWZlcnJhbAorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJv
bWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5j
b25lLmJlc2lkZS5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2No
cm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFs
LmNvbmUuc2hhcGUxLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0v
Y2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRp
YWwuY29uZS5iZWhpbmQuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJh
ZGlhbC5jb25lLnNoYXBlMi5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRm
b3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQu
cmFkaWFsLnRvdWNoMS5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3Jt
L2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFk
aWFsLnRvdWNoMy5odG1sIFsgRmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgV2ViR0wgVGVzdHMK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194055</attachid>
            <date>2013-03-20 07:49:18 -0700</date>
            <delta_ts>2013-03-20 07:51:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320104507.patch</filename>
            <type>text/plain</type>
            <size>41262</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwMzZiYTgzNzc4YWZl
ZTkwNDhkNzcyMWY1MTk5ZDUyZjQ2MmI2Ni4uNzUwYzY0NzNhZTcwN2IyOGY5OGY4OTAwODYzZDJk
OTI1NmMyMTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjMzMS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggZDI2NjI0YTQ3ZmE3MDQzOGIyN2NmOTQyMmEwMDQxZDI1NzM3
MWZlMC4uYjRiNjIzN2ZlZjU1ZDFmNzc0ZTE2NzA3MmUyYjFjNTEwOTQyM2QxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5v
dm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVh
bnVwOiByZW1vdmluZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVsZXRp
bmcgYWxsIHRoZSBjb2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0
aW5nCisgICAgICAgIHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQg
MmQgY2FudmFzIHJlbmRlcmluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKToKKyAgICAgICAgKiB0
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMyRExheWVy
QnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorICAgICAgICAqIHRlc3RzL0NhbnZhczJE
TGF5ZXJNYW5hZ2VyVGVzdC5jcHA6CisgICAgICAgIChGYWtlQ2FudmFzMkRMYXllckJyaWRnZTo6
RmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UpOgorCiAyMDEzLTAzLTE5ICBNYXJrIFBpbGdyaW0gIDxw
aWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1pZ3JhdGUgdG8gV0VC
S0lUX1VTRV9ORVdfV0VCRklMRVNZU1RFTVRZUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggM2NjMmM5MzBhMmNlNThjOTFlZTA4OWQwYmRiYmVhYTEyNmRm
N2E3ZS4uYTNjMDQ2MzMxOWIzNTU2NzQzZmYzMDRhZThkZDQyM2ZlNGQ4M2VhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTUyMCwyMiArNTIwLDYgQEAg
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZShjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZERl
ZmVyKCkgY29uc3QKLXsKLSNpZiBVU0UoU0tJQSkKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2Nv
bnRleHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKLSAgICBpZiAoIXNldHRpbmdzIHx8ICFz
ZXR0aW5ncy0+ZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
fQotCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFtX2ltYWdlQnVmZmVyKTsKQEAgLTU2NSw4ICs1NDksNyBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAjZWxzZQogICAgICAg
ICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSA9
IHNob3VsZERlZmVyKCkgPyBEZWZlcnJlZCA6IE5vbkRlZmVycmVkOwotICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlKTsKKyAgICBtX2lt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0
b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUpOwogICAgIGlmICghbV9pbWFn
ZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+
c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKaW5kZXggY2Q5ODIxYzVjMzc3YjY3MTNjYWE3OGJmOWQ1NmNhZDBmYWI0
NTA0YS4uYmY3MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTYwLDggKzE2MCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNldFN1cmZhY2VTaXplKGNvbnN0IEludFNpemUmKTsKIAotICAgIGJv
b2wgc2hvdWxkRGVmZXIoKSBjb25zdDsKLQogICAgIGJvb2wgcGFpbnRzSW50b0NhbnZhc0J1ZmZl
cigpIGNvbnN0OwogCiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZGI3Y2E3YWRiOWE2YjE4MTYzZDg2MDZmM2YzZWIy
NjYwMGUwZDlmMC4uZjY0ZjU3OGJlOGIxZGZlZWIxNmE3M2E1NDMxZjZiMTNkNDk2YmE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xMTMsNyArMTEzLDYgQEAgd2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkIGluaXRpYWw9dHJ1ZQogb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgaW5p
dGlhbD10cnVlCiBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNl
CiBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1kZWZlcnJlZDJkQ2Fu
dmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCiBhbnRpYWxpYXNlZDJkQ2FudmFzRW5hYmxlZCBpbml0
aWFsPXRydWUKIGxvYWREZWZlcnJpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogd2ViQXVkaW9FbmFi
bGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IDljNWU2M2E5NTk1ZTlhNjA5OWE1Mjc1NWQ0Nzk2MzNlMjFjODlk
YTcuLjFlNGU1ZDRkNDMzMWM5MmIxYWVhYzgyNTMxNDNhNjQzODVkMDM0MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNzAsMTEgKzcw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEb250Q29weUJhY2tpbmdTdG9yZSAv
LyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCiAgICAgfTsKIAotICAgIGVu
dW0gRGVmZXJyYWxNb2RlIHsKLSAgICAgICAgTm9uRGVmZXJyZWQsCi0gICAgICAgIERlZmVycmVk
Ci0gICAgfTsKLQogICAgIGVudW0gU2NhbGVCZWhhdmlvciB7CiAgICAgICAgIFNjYWxlZCwKICAg
ICAgICAgVW5zY2FsZWQKQEAgLTg0LDEwICs3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9p
bnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPElt
YWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZCwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSA9IE5vbkRlZmVycmVkKQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFn
ZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPEltYWdlQnVm
ZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBkZWZlcnJhbE1vZGUsIHN1Y2Nlc3MpKTsKKyAg
ICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVm
ZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgc3Vj
Y2VzcykpOwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7CkBAIC0xNjAsNyAr
MTU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0
b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBvdXQtdmFyaWFibGUKICAg
ICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCByZXR1cm4gZmFp
bHVyZS4KLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBz
dWNjZXNzKTsKKyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CiAj
aWYgVVNFKFNLSUEpCiAgICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGJvb2wg
aGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggNWQ4YTI0NTI3NmVkMzc5MmQzMWI5NmIzM2IwNzkyNjRi
MDQwOWFhYi4uZmU3MjU5MDg3MDhjMmM2YzBjNmVjYjFkZjNmZDA5MThmOTIzZjBjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1
ZmZlckJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBA
IHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogdGhpc0NvbnRleHQs
IEdyYXBoaWNzQ29udGV4dCogb3RoZXJDCiAgICAgfQogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2Rl
IGRlZmVycmFsTW9kZSwgSG9zdFdpbmRvdyogd2luZG93LCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IEhvc3RXaW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fc2l6ZShzaXplKQog
ICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUoMSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKaW5kZXggNjk1MzkzMjdmMTMwNDI2ZTZhOTRmMDRkODgwM2E0NDc4
NjlmMzNmNC4uOWViZWQ5ZDcwMzI2MjZjOTcxNzkwYjZjNDIxYzdhMTBkYzMyZjcyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFn
ZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYpCiB7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENv
bG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0lt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNv
bHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3Mp
CiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2Fs
U2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA3ZTA0MzRjMzZhYzM4ZWQzOTZlZTM2OTUwOWUwNDgz
ZTI0MmQ5YWIxLi5lNTczNzMyMzE2ZGZjMGZlMzliZTY0ZGFhNDE3ZDgwNWNhYzA3ZDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VJbWFnZURhdGEo
dm9pZCosIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCkKICAgICBmYXN0RnJlZShjb25zdF9jYXN0
PHZvaWQqPihkYXRhKSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8g
Tk9URTogVGhlIGlucHV0IGhlcmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNH
J3MgY29uc3RydWN0b3IganVzdCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJy
aWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52
YXMyRExheWVyQnJpZGdlLmNwcAppbmRleCA2NjI3MmZkYjM4Mjk4MTdlMTIwNTEzMzhjMDhiZTY3
OWM0NDViYjY5Li5lNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMy
RExheWVyQnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiU2tE
ZXZpY2UuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CkBAIC00Mywx
MCArNDQsOCBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVVcGRhdGVyOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
RGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25l
ZCB0ZXh0dXJlSWQpCi0gICAgOiBtX2RlZmVycmFsTW9kZShkZWZlcnJhbE1vZGUpCi0gICAgLCBt
X2Zyb250QnVmZmVyVGV4dHVyZSgwKQotICAgICwgbV9iYWNrQnVmZmVyVGV4dHVyZSh0ZXh0dXJl
SWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1v
ZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQorICAgIDogbV9iYWNrQnVmZmVyVGV4
dHVyZSh0ZXh0dXJlSWQpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fY2FudmFzKDApCiAg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKQEAgLTU5LDMwICs1OCw5IEBAIENhbnZhczJETGF5ZXJC
cmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwKICAgICAvLyBVc2VkIGJ5IGJyb3dzZXIgdGVzdHMgdG8gZGV0ZWN0IHRoZSB1c2Ug
b2YgYSBDYW52YXMyRExheWVyQnJpZGdlLgogICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ0ZXN0
X2dwdSIsICJDYW52YXMyRExheWVyQnJpZGdlQ3JlYXRpb24iKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBjdXJyZW50bHkgdHVybiBvZmYgZG91YmxlIGJ1ZmZlcmluZyB3aGVuIGNhbnZhcyByZW5kZXJp
bmcgaXMKLSAgICAvLyBkZWZlcnJlZC4gV2hhdCB3ZSBzaG91bGQgYmUgZG9pbmcgaXMgdG8gdXNl
IGEgc21hcnRlciBoZXVyaXN0aWMgYmFzZWQKLSAgICAvLyBvbiBHUFUgcmVzb3VyY2UgbW9uaXRv
cmluZyBhbmQgb3RoZXIgZmFjdG9ycyB0byBjaG9zZSBiZXR3ZWVuIHNpbmdsZQotICAgIC8vIGFu
ZCBkb3VibGUgYnVmZmVyaW5nLgotICAgIG1fdXNlRG91YmxlQnVmZmVyaW5nID0gdGhyZWFkTW9k
ZSA9PSBUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQ7Ci0KLSAgICBpZiAo
bV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKTsKLSAgICAgICAgbV9mcm9udEJ1ZmZlclRleHR1cmUgPSBtX2NvbnRleHQtPmNyZWF0
ZVRleHR1cmUoKTsKLSAgICAgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgbV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAgICAvLyBEbyBi
YXNpYyBsaW5lYXIgZmlsdGVyaW5nIG9uIHJlc2l6ZS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAgICAg
ICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQz
RDo6TElORUFSKTsKLSAgICAgICAgLy8gTlBPVCB0ZXh0dXJlcyBpbiBHTCBFUyBvbmx5IHdvcmsg
d2hlbiB0aGUgd3JhcCBtb2RlIGlzIHNldCB0byBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAg
bV9jb250ZXh0LT50ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX0JZVEUpOwotICAgICAgICBpZiAoR3JDb250ZXh0KiBnckNvbnRleHQgPSBtX2NvbnRl
eHQtPmdyQ29udGV4dCgpKQotICAgICAgICAgICAgZ3JDb250ZXh0LT5yZXNldENvbnRleHQoKTsK
LSAgICB9Ci0KICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0aGlz
KSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXllci0+
c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCB8fCBtX3VzZURv
dWJsZUJ1ZmZlcmluZyk7CisgICAgbV9sYXllci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRN
b2RlID09IFNpbmdsZVRocmVhZCk7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3Rl
ckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKQEAgLTkwLDIxICs2OCw5IEBA
IENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdlKCkKIHsKICAgICBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVy
KCkpOwogICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllclRvQmVEZXN0cm95ZWQo
dGhpcyk7Ci0gICAgaWYgKFNrRGVmZXJyZWRDYW52YXMqIGRlZmVycmVkID0gZGVmZXJyZWRDYW52
YXMoKSkKLSAgICAgICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCgwKTsKKyAgICBp
ZiAobV9jYW52YXMpCisgICAgICAgIG1fY2FudmFzLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7
CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKDApOwotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZl
cmluZykgewotICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBtX2NvbnRleHQtPmRlbGV0ZVRleHR1cmUobV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAg
ICBtX2NvbnRleHQtPmZsdXNoKCk7Ci0gICAgfQotfQotCi1Ta0RlZmVycmVkQ2FudmFzKiBDYW52
YXMyRExheWVyQnJpZGdlOjpkZWZlcnJlZENhbnZhcygpCi17Ci0gICAgaWYgKG1fZGVmZXJyYWxN
b2RlID09IERlZmVycmVkKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2tEZWZlcnJlZENh
bnZhcyo+KG1fY2FudmFzKTsKLSAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpsaW1pdFBlbmRpbmdGcmFtZXMoKQpAQCAtMTE5LDE1ICs4NSwxMiBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmxpbWl0UGVuZGluZ0ZyYW1lcygpCiAKIHZvaWQgQ2FudmFzMkRM
YXllckJyaWRnZTo6cHJlcGFyZUZvckRyYXcoKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZh
cygpKTsKLSAgICBpZiAoIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53
aWxsTW9kaWZ5VGV4dHVyZSgpOworICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7CiAg
ICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAogdm9pZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0
ZXNBbGxvY2F0ZWQpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKTsK
ICAgICBpbnRwdHJfdCBkZWx0YSA9IChpbnRwdHJfdClieXRlc0FsbG9jYXRlZCAtIChpbnRwdHJf
dCltX2J5dGVzQWxsb2NhdGVkOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0FsbG9jYXRl
ZDsKICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdl
Q2hhbmdlZCh0aGlzLCBkZWx0YSk7CkBAIC0xMzUsNyArOTgsNyBAQCB2b2lkIENhbnZhczJETGF5
ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKHNpemVfdCBieXRl
c0FsbG9jYQogCiBzaXplX3QgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZv
clJlY29yZGluZygpCiB7Ci0gICAgcmV0dXJuIGRlZmVycmVkQ2FudmFzKCktPnN0b3JhZ2VBbGxv
Y2F0ZWRGb3JSZWNvcmRpbmcoKTsKKyAgICByZXR1cm4gbV9jYW52YXMgPyBtX2NhbnZhcy0+c3Rv
cmFnZUFsbG9jYXRlZEZvclJlY29yZGluZygpIDogMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpmbHVzaGVkRHJhd0NvbW1hbmRzKCkKQEAgLTE1MSw4ICsxMTQsNyBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OnNraXBwZWRQZW5kaW5nRHJhd0NvbW1hbmRzKCkKIAogc2l6ZV90
IENhbnZhczJETGF5ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1Rv
RnJlZSkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgc2l6ZV90IGJ5dGVz
RnJlZWQgPSBkZWZlcnJlZENhbnZhcygpLT5mcmVlTWVtb3J5SWZQb3NzaWJsZShieXRlc1RvRnJl
ZSk7CisgICAgc2l6ZV90IGJ5dGVzRnJlZWQgPSBtX2NhbnZhcyA/IG1fY2FudmFzLT5mcmVlTWVt
b3J5SWZQb3NzaWJsZShieXRlc1RvRnJlZSkgOiAwOwogICAgIGlmIChieXRlc0ZyZWVkKQogICAg
ICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdlQ2hh
bmdlZCh0aGlzLCAtKChpbnRwdHJfdClieXRlc0ZyZWVkKSk7CiAgICAgbV9ieXRlc0FsbG9jYXRl
ZCAtPSBieXRlc0ZyZWVkOwpAQCAtMTYxLDIxICsxMjMsMTUgQEAgc2l6ZV90IENhbnZhczJETGF5
ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1RvRnJlZSkKIAogdm9p
ZCBDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCgpCiB7Ci0gICAgQVNTRVJUKGRlZmVycmVkQ2Fu
dmFzKCkpOwotICAgIGlmIChkZWZlcnJlZENhbnZhcygpLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkK
KyAgICBpZiAobV9jYW52YXMgJiYgbV9jYW52YXMtPmhhc1BlbmRpbmdDb21tYW5kcygpKQogICAg
ICAgICBtX2NhbnZhcy0+Zmx1c2goKTsKIH0KIAogU2tDYW52YXMqIENhbnZhczJETGF5ZXJCcmlk
Z2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZpY2UpCiB7CiAgICAgQVNTRVJUKCFtX2NhbnZhcyk7
Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIFNrRGVmZXJy
ZWRDYW52YXMqIGRlZmVycmVkID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNlKTsKLSAgICAg
ICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKLSAgICAgICAgbV9jYW52
YXMgPSBkZWZlcnJlZDsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9jYW52YXMgPSBuZXcgU2tDYW52
YXMoZGV2aWNlKTsKLQorICAgIG1fY2FudmFzID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNl
KTsKKyAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpOwogICAgIHJldHVy
biBtX2NhbnZhczsKIH0KIApAQCAtMTkxLDExICsxNDcsNiBAQCB1bnNpZ25lZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZShXZWJUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKIAog
ICAgIG1fY29udGV4dC0+Zmx1c2goKTsKIAotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykg
ewotICAgICAgICB1cGRhdGVyLmFwcGVuZENvcHkobV9iYWNrQnVmZmVyVGV4dHVyZSwgbV9mcm9u
dEJ1ZmZlclRleHR1cmUsIG1fc2l6ZSk7Ci0gICAgICAgIHJldHVybiBtX2Zyb250QnVmZmVyVGV4
dHVyZTsKLSAgICB9Ci0KICAgICBpZiAobV9jYW52YXMpIHsKICAgICAgICAgLy8gTm90aWZ5IHNr
aWEgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIGJhY2tpbmcgc3RvcmUgdGV4dHVyZSBvYmplY3Qgd2ls
bCBiZSB0b3VjaGVkIGJ5IHRoZSBjb21wb3NpdG9yCiAgICAgICAgIEdyUmVuZGVyVGFyZ2V0KiBy
ZW5kZXJUYXJnZXQgPSByZWludGVycHJldF9jYXN0PEdyUmVuZGVyVGFyZ2V0Kj4obV9jYW52YXMt
PmdldERldmljZSgpLT5hY2Nlc3NSZW5kZXJUYXJnZXQoKSk7CkBAIC0yMTcsMTIgKzE2OCw4IEBA
IFdlYktpdDo6V2ViTGF5ZXIqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKCkKIAogdm9pZCBD
YW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQoKQogewotICAgIGlmIChtX2RlZmVy
cmFsTW9kZSA9PSBOb25EZWZlcnJlZCAmJiAhbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAgICAg
IG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7Ci0gICAgZWxzZSBpZiAobV9kZWZlcnJhbE1v
ZGUgPT0gRGVmZXJyZWQpIHsKLSAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxh
eWVyRGlkRHJhdyh0aGlzKTsKLSAgICAgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7
Ci0gICAgfQorICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhp
cyk7CisgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7CiB9CiAKIHVuc2lnbmVkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmJhY2tCdWZmZXJUZXh0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5
ZXJCcmlkZ2UuaAppbmRleCA4ZTQ0MmZkOTE3N2FhODI4M2QyYjA2ODdhNDA1ODM5Y2ViNjUwMzJk
Li5iMzg2MzA0YzMzN2YzMDNhNjc0NWU2YTkxZDk0YzZlOTVjZTUyMWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJp
ZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckJyaWRnZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENhbnZhczJETGF5
ZXJCcmlkZ2VfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIiAvLyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgogI2luY2x1ZGUgIlNrRGVmZXJyZWRDYW52YXMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KQEAgLTUwLDkgKzQ5LDkgQEAgcHVibGljOgogICAgICAg
ICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVy
QnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0
aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDYW52
YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRpbmcsIHVuc2lnbmVk
IHRleHR1cmVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRM
YXllckJyaWRnZShjb250ZXh0LCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZGluZywgdGV4dHVy
ZUlkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRMYXllckJyaWRnZShj
b250ZXh0LCBzaXplLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAgLTgxLDE1ICs4MCwxMSBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgYmFja0J1ZmZlclRleHR1cmUoKTsKIAogcHJvdGVjdGVkOgotICAgIENhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IEludFNp
emUmLCBEZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7Ci0gICAg
U2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWRDYW52YXMoKTsKKyAgICBDYW52YXMyRExheWVyQnJp
ZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFk
TW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKTsKIAotICAgIERlZmVycmFsTW9kZSBtX2RlZmVycmFs
TW9kZTsKLSAgICBib29sIG1fdXNlRG91YmxlQnVmZmVyaW5nOwotICAgIHVuc2lnbmVkIG1fZnJv
bnRCdWZmZXJUZXh0dXJlOwogICAgIHVuc2lnbmVkIG1fYmFja0J1ZmZlclRleHR1cmU7CiAgICAg
SW50U2l6ZSBtX3NpemU7Ci0gICAgU2tDYW52YXMqIG1fY2FudmFzOworICAgIFNrRGVmZXJyZWRD
YW52YXMqIG1fY2FudmFzOwogICAgIE93blB0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxh
eWVyPiBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0Owog
ICAgIHNpemVfdCBtX2J5dGVzQWxsb2NhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCA0Mzg1OWNhZDFjNzQ4
MzU0M2MwN2RmMThhZDYzZTk1N2E3Mjg1OGQ0Li4xYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdj
ZjUxYmM3Yzc4NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VC
dWZmZXJEYXRhOjp0b1FJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1
dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJv
b2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
LCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA3NDJiMDEx
YjgwMmVlMDExYTY0ZGJhNzM1NGFjMWNkM2U3ZTgwNDY1Li42MTMwOWZhZDQ3YzVlZWJmYjhlNGVh
NDBmNGVlOTQ5YWI3MDA5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCiB7
CiB9CiAKLXN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxN
b2RlKQorc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRT
aXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGRhdGEpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBjb250ZXh0M0QgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAg
ICAgaWYgKCFjb250ZXh0M0QpCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBTa0NhbnZhcyogY3Jl
YXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRh
KiBkCiAgICAgU2tBdXRvVFVucmVmPFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdy
LCB0ZXh0dXJlLmdldCgpKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxh
dGZvcm06OmN1cnJlbnQoKS0+aXNUaHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFz
MkRMYXllckJyaWRnZTo6VGhyZWFkZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJl
YWQ7Ci0gICAgZGF0YS0+bV9sYXllckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0
ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1vZGUsIHRl
eHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5kbGUoKSk7CisgICAgZGF0YS0+bV9sYXllckJyaWRn
ZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXpl
LCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwogICAgIGNh
bnZhcyA9IGRhdGEtPm1fbGF5ZXJCcmlkZ2UtPnNrQ2FudmFzKGRldmljZS5nZXQoKSk7CiAjZWxz
ZQogICAgIGNhbnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwpAQCAtMTUxLDcgKzE1
MSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAK
LUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVm
ZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFn
ZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6
IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNp
emUpCkBAIC0xNjAsNyArMTYwLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBPd25Q
dHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IEFjY2VsZXJh
dGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhz
aXplLCAmbV9kYXRhLCBkZWZlcnJhbE1vZGUpKTsKKyAgICAgICAgY2FudmFzID0gYWRvcHRQdHIo
Y3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSkpOwogICAgIGVsc2UgaWYgKHJl
bmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyKQogICAgICAgICBj
YW52YXMgPSBhZG9wdFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZhcyhzaXplKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVy
V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKaW5kZXggYzNjNDExOWYzYzRkYTBkNDVkNmYyN2Y2ZWQ1NzI4ZGFmMjk4
NDhkNi4uZmQ0MWUxMjRiZWI3MzFjZDdiMTJiMDdiNzcyOTVjMmM3NzE2ZTFmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1
ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1hcC0+c2V0SGFzQWxwaGEo
dHJ1ZSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVy
V3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJX
eC5jcHAKaW5kZXggNGY0MWVkMTAzY2Y3YzE5ZTNiMzRlNTk1YzAyYzlmN2JhZTJhOWI4NC4uOWYw
MWVhMjMwMDIwOGJmNmYxNjBhNTBkMmFlZDhmN2UyMGQ1OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKQEAgLTk0
LDcgKzk0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKCkKICAgICBkZWxl
dGUgbV9tZW1EQzsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1h
Z2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBt
X2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZTky
YjZjODk5ZjQ4MGUwZDE2NDBmODM3ZTk1NzRlNTIyYjRlY2YyYy4uNzI1YzYxYzgwMDU1OTEwODg4
MjVjMTk5MmVmNzhjNzhmMDEyMjJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmYXVsdEZvbnRTaXplKGludCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmF1bHRWaWRlb1Bvc3RlclVSTChjb25zdCBXZWJTdHJpbmcmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2
b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpIHsgfSAvLyB0ZW1wb3Jhcnkgc3R1
YgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXgg
MGMwZDJmZGJlZWUzODFmOWI4MGNiM2IwOTRhZTdjODMzMDViODE2MC4uOWYzNDkwMWUwZDExMjVk
ZjAwYjU0NmY4NmNhMGQ1Mjg2YTlhNjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MTQsNyArNTE0LDYgQEAgdm9pZCBXZWJTZXR0
aW5nc0ltcGw6OnNldEFudGlhbGlhc2VkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAog
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKLSAgICBtX3NldHRpbmdzLT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCBjNDRmMzMwYjQ3MTZm
MDM0MTBlODJkMmY4NTMxNjZkNTIzMzYyNTc3Li42ZjI2MWJhM2M5Zjk1MTA4NTZjYzY5MzUzM2Ez
M2VhMzRkNDU3MzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAKIGNsYXNzIENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0IDogcHVibGljIFRlc3QgewogcHJvdGVj
dGVkOgotICAgIHZvaWQgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhy
ZWFkTW9kZSB0aHJlYWRNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlKQorICAgIHZvaWQg
ZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRN
b2RlKQogICAgIHsKICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtYWluQ29udGV4
dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdl
YkNvbnRleHQoYWRvcHRQdHIobmV3IE1vY2tDYW52YXNDb250ZXh0KSk7CiAKQEAgLTc2LDUyICs3
NiwyOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAg
ICAgICAgIFdlYkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwogCi0gICAgICAgIC8vIFRocmVhZGVk
IGFuZCBub24gZGVmZXJyZWQgY2FudmFzZXMgYXJlIGRvdWJsZSBidWZmZXJlZC4KLSAgICAgICAg
aWYgKHRocmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJy
YWxNb2RlID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBmcm9udFRleHR1cmVJZCA9IDI7
Ci0gICAgICAgICAgICAvLyBDcmVhdGUgdGV4dHVyZSAob24gdGhlIG1haW4gdGhyZWFkKSBhbmQg
ZG8gdGhlIGNvcHkgKG9uIHRoZSBpbXBsIHRocmVhZCkuCi0gICAgICAgICAgICBFWFBFQ1RfQ0FM
TChtYWluTW9jaywgY3JlYXRlVGV4dHVyZSgpKS5XaWxsT25jZShSZXR1cm4oZnJvbnRUZXh0dXJl
SWQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBi
cmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNp
emUsIGRlZmVycmFsTW9kZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CisgICAgICAgIE93
blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpj
cmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQp
OwogCiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMo
Jm1haW5Nb2NrKTsKIAogICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7Ci0g
ICAgICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYm
IGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVw
ZGF0ZXIsIGFwcGVuZENvcHkoYmFja1RleHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUo
MzAwLCAxNTApKSk7CiAgICAgICAgIEVYUEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5w
cmVwYXJlVGV4dHVyZSh1cGRhdGVyKSk7CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5
QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2Nr
OjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKLSAgICAgICAgaWYgKHRo
cmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2Rl
ID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVs
ZXRlVGV4dHVyZShmcm9udFRleHR1cmVJZCkpOwotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGZsdXNoKCkpOwotICAgICAgICB9CiAgICAgICAgIGJyaWRnZS5jbGVhcigpOwogICAg
IH0KIH07CiAKIG5hbWVzcGFjZSB7CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwg
dGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZERlZmVycmVkKQotewotICAgIGZ1bGxMaWZl
Y3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZCwgTm9uRGVmZXJyZWQp
OwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xl
U2luZ2xlVGhyZWFkZWROb25EZWZlcnJlZCkKLXsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52
YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQsIERlZmVycmVkKTsKLX0KLQotVEVTVF9GKENh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkTm9uRGVmZXJy
ZWQpCitURVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2lu
Z2xlVGhyZWFkZWQpCiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRn
ZTo6VGhyZWFkZWQsIE5vbkRlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMy
RExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQpOwogfQogCi1URVNUX0YoQ2FudmFzMkRMYXllckJy
aWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWREZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRlZCkKIHsKLSAgICBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgRGVmZXJyZWQp
OworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcAppbmRleCBmZWIzMWIyODRmZTM0
YjQxMTdkNTgwMGI4YTViZDk3M2E0YTVlYzE4Li4yOTc3M2FlY2IyMDk2OTcyYTM1YWNkZjdiYmRj
ODUzYWRhOTRjNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5n
IHRlc3Rpbmc6OlRlc3Q7CiBjbGFzcyBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBD
YW52YXMyRExheWVyQnJpZGdlIHsKIHB1YmxpYzoKICAgICBGYWtlQ2FudmFzMkRMYXllckJyaWRn
ZSgpIAotICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2Vi
S2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgRGVmZXJyZWQs
IFNpbmdsZVRocmVhZCwgMCkKKyAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRv
cHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwg
MSksIFNpbmdsZVRocmVhZCwgMCkKICAgICAgICAgLCBtX2ZyZWVhYmxlQnl0ZXMoMCkKICAgICAg
ICAgLCBtX2ZyZWVNZW1vcnlJZlBvc3NpYmxlQ291bnQoMCkKICAgICAgICAgLCBtX2ZsdXNoQ291
bnQoMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA3NjRjYmMwZmFkZjY0MDgyMmJjOTY4MzI5Y2Y5NzdjYTM1MGU4ZWI2Li4xN2Y3NGM1N2Q5NzAy
YmYyOTVjNDNlMTgwZDBkNDg0OGMzYjU1ZGU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMTggIEp1c3Rp
biBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvZGUg
Y2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyByZW5k
ZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERl
bGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBhbmQgc3Vw
cG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5nIGRlZmVy
cmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNl
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAg
KFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0
aW5ncyk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6CisK
IDIwMTMtMDMtMjAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSBSZW1vdmUgZW1wdHkgZnVuY3Rpb24gc3R1YnMgZnJvbSBUZXN0UnVubmVyUXQuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NGNmYmQxNWI3MDkwNDA1ZWIwNzljNWQzNDFlYjNkZjUzODFhN2RiNi4uODAzODA0MDNmZGE3OWVh
Mzc1ZmZhMmNmMzNmOWYwMzY3ZjM0M2ZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNyArNTksNiBAQCBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtc29m
dHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlVGhyZWFkZWRDb21w
b3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNvbXBvc2l0aW5nIjsKIHN0YXRpYyBjb25z
dCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2RlW10gPSAiLS1mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52
YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWRlZmVycmVkLTJk
LWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBzdGF0aWMg
Y29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9ICItLWVu
YWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRp
b25FbmFibGVBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0
ZWQtb3ZlcmZsb3ctc2Nyb2xsIjsKQEAgLTEzOCw3ICsxMzcsNiBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsK
ICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CiAgICAgYm9vbCBhY2NlbGVyYXRl
ZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGJvb2wgZGVmZXJyZWQyRENhbnZhc0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKICAg
ICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHN0
cmVzc09wdCA9IGZhbHNlOwpAQCAtMTgzLDggKzE4MSw2IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAg
ICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZh
cykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAg
ICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBp
ZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlUGVyVGlsZVBhaW50aW5nKQogICAgICAgICAgICAg
cGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50
ID09IG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZykKQEAgLTIyOCw3ICsyMjQsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBzaGVsbC5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgICAgIHNoZWxsLnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgICAgICBzaGVsbC5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCk7
Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMkRDYW52
YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJU
aWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0RGVmZXJyZWRJbWFnZURlY29k
aW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwu
c2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJl
ZmVyZW5jZXMuaAppbmRleCA1NjQ0ZDA5OWZlNDdhMDY1NDAyMjFhZGExZGYwZmZhODVkNDVjOWRj
Li5iZmNlNWFmZWVlYjJkZmY2NmJkOWQ4ZGU5MjE4MzJhNzdlNmQ3NmEwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJl
bmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlByZWZlcmVuY2VzLmgKQEAgLTk0LDcgKzk0LDYgQEAgc3RydWN0IFdFQlRFU1RSVU5O
RVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
OwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBib29s
IHBlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVu
YWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE2ODc3NzM3OWY4MWMwYTczNTcwZGJiNzY4NmY2OGJh
Mzc1OTY1NTUuLjVkODgyYWVmNTExOTU4MGQ5OGEyNzRiNWEyNzk0NWY4OGFmMTdlNDEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTksNiBAQCB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
ID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBk
ZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
ID0gZmFsc2U7CiAgICAgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsKICAgICBwZXJUaWxlUGFp
bnRpbmdFbmFibGVkID0gZmFsc2U7CkBAIC0xODksNyArMTg4LDYgQEAgdm9pZCBXZWJQcmVmZXJl
bmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNldFRo
cmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7Ci0g
ICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52YXNF
bmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJUaWxl
UGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmZXJyZWRJbWFnZURlY29kaW5n
RW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0
TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUobWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
aW5kZXggZDNkYjY1ZWIwYzIxODM2NWUwOWJhMDg4YTNmOGY0MmE4N2ZhYjIxMi4uNjZmMWM0MGRj
MGJhMWYwZWM2ODExYmY4YjQ1NTczOGE2NDlhNzJkOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMTUsNyArMTE1LDYgQEAgVGVzdFNoZWxsOjpU
ZXN0U2hlbGwoKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1f
dGhyZWFkZWRIVE1MUGFyc2VyKHRydWUpCiAgICAgLCBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQpAQCAtMjE1LDcg
KzIxNCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdlYlZp
ZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
OwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQg
PSBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMucGVyVGlsZVBhaW50aW5n
RW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmRlZmVycmVk
SW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgbV9wcmVmcy50aHJlYWRlZEhUTUxQYXJzZXIgPSBtX3RocmVhZGVkSFRNTFBhcnNlcjsKQEAg
LTIzNiw3ICsyMzQsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QoY29uc3QgVGVzdFBh
cmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAgICAgIGlmICghbV9zb2Z0
d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAgICAgICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JWaWRlb0VuYWJsZWQgPSB0cnVlOwotICAgICAgICBtX3ByZWZzLmRlZmVycmVkMmRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5tb2NrU2Nyb2xsYmFyc0VuYWJs
ZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFwcGx5VG8obV93ZWJWaWV3KTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IGVkN2VhZmNiMjYw
YTMxZjQ2YzdiYzJkNjM4ZWNlMTE0YjYzZTY4OTYuLjFjYjM0YWMxYzQ1YWIwNmNiMGRiOWY2MWEx
M2FlY2Y0YzUyYzE5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBlbmFibGVk
OyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZEhUTUxQYXJzZXIoYm9vbCBlbmFibGVkKSB7IG1fdGhy
ZWFkZWRIVE1MUGFyc2VyID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQg
PSBlbmFibGVkOyB9Ci0gICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBhaW50
aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9
IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIxNiw3ICsyMTUsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBib29sIG1fdGhyZWFk
ZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKLSAg
ICBib29sIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9vbCBtX3BlclRpbGVQYWlu
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXMgbV9wcmVmczsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNjRjNjkz
NzlkY2FlYzg3NDI2NWM4MzdlOTQzNjMzYTMyMzQ5NmJmLi5jOTE0ZjRmMDkyNGVjOGE5N2JiMzg1
NzAzMGY4NDE4OWZjN2U2Y2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDMtMTggIEp1
c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENv
ZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyBy
ZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1hcmtlZCBzb21lIDJkIGNhbnZhcyB0ZXN0cyBhcyBmYWlsaW5nLiBUaGVzZSB0ZXN0cyBhcmUg
dXNpbmcgdGhlCisgICAgICAgIHR3byBwb2ludCByYWRpYWwgZ3JhZGllbnQgQVBJLiAgVGhlIGJ1
ZyB3YXMgYWxyZWFkeSBwcmVzZW50IGluCisgICAgICAgIGNocm9taXVtLiBTdGFydHMgZ2V0dGlu
ZyBkZXRlY3RlZCBpbiBEUlQgd2l0aCB0aGlzIGNoYW5nZS4KKyAgICAgICAgUmVsYXRlZDogY3Ji
dWcuY29tLzIyMjE0MAorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ2MzMx
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMjZjOGQxM2FlOTg2MjBlNmI1ZGQ0Y2VmNTQ3OWY4NTI3NmIwNmQyNS4uNmViNDUwODBmZGJi
NGYzZTBhYWM0MjVkOWVhYmE4ZjQ1YmU3OWE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDU2LDYgKzE0NTYsMTQgQEAgd2Via2l0
Lm9yZy9iLzc1Mjc2IFsgQW5kcm9pZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtaG9y
aXpvbnRhbC5odG1sIFsgSW0KIHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3Jl
cGFpbnQvc2hhZG93LW11bHRpcGxlLXN0cmljdC1ob3Jpem9udGFsLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3JlcGFpbnQvc2hh
ZG93LW11bHRpcGxlLXN0cmljdC12ZXJ0aWNhbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
KyMgVGhlc2UgdGVzdHMgZmFpbCBkdWUgdG8gYSBidWcgd2l0aCAyRCBjYW52YXMgY29tbWFuZCBk
ZWZlcnJhbAorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLmJlc2lkZS5odG1sIFsg
RmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuc2hhcGUxLmh0bWwg
WyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9n
cHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5iZWhpbmQuaHRt
bCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLnNoYXBlMi5o
dG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLnRvdWNoMS5odG1s
IFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwv
Z3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLnRvdWNoMy5odG1sIFsg
RmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgV2ViR0wgVGVzdHMKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194057</attachid>
            <date>2013-03-20 07:51:24 -0700</date>
            <delta_ts>2013-03-20 08:11:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320104713.patch</filename>
            <type>text/plain</type>
            <size>41282</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwMzZiYTgzNzc4YWZl
ZTkwNDhkNzcyMWY1MTk5ZDUyZjQ2MmI2Ni4uYjZiNGNmY2JlZjJiYWQxZWM0YjMxNzlmZTc0NmQ4
ZTc3MDZkNzQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3JnLgorCisgICAg
ICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBh
bmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5n
IGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBB
ZmZlY3RlZCBjb2RlIHBhdGhzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVy
OjpjcmVhdGUpOgorICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZh
czJETGF5ZXJCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6
fkNhbnZhczJETGF5ZXJCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJy
aWRnZTo6cHJlcGFyZUZvckRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJy
aWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3Nz
aWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgIChD
YW52YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZUJ1ZmZlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
SW1hZ2VCdWZmZXJXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIpOgorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ2MzMxLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkMjY2MjRhNDdmYTcwNDM4YjI3Y2Y5NDIyYTAwNDFk
MjU3MzcxZmUwLi4xZWVlOWE4ZmU4YWExYjg2MmJhNDY0MmRlMzQxM2YwOTNiMDJlODNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3JnLgorCisgICAg
ICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBh
bmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5n
IGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0
dGluZ3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3M6OnNldERlZmVycmVkMmRDYW52
YXNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCk6Cisg
ICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwOgorICAgICAgICAoQ2Fu
dmFzMkRMYXllckJyaWRnZVRlc3Q6OmZ1bGxMaWZlY3ljbGVUZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwOgorICAgICAgICAoRmFrZUNhbnZhczJETGF5
ZXJCcmlkZ2U6OkZha2VDYW52YXMyRExheWVyQnJpZGdlKToKKwogMjAxMy0wMy0xOSAgTWFyayBQ
aWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNaWdy
YXRlIHRvIFdFQktJVF9VU0VfTkVXX1dFQkZJTEVTWVNURU1UWVBFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJk
YmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIg
KzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgogfQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50
OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYgVVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4
dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNl
dHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0
aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRDYW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
KSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFnZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcg
QEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vs
c2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNlbmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZl
cnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVmZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBt
X2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVG
YWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7
CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2Rldmlj
ZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBp
ZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5j
b250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlk
NTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFmNDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAs
NiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7
CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29uc3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9D
YW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhhc2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29i
c2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGRiN2NhN2FkYjlhNmIxODE2M2Q4
NjA2ZjNmM2ViMjY2MDBlMGQ5ZjAuLmY2NGY1NzhiZThiMWRmZWViMTZhNzNhNTQzMWY2YjEzZDQ5
NmJhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdM
RXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFsPXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdF
bmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVm
ZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0Vu
YWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJyaW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdl
YkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5
NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJiMWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAg
LTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRG9udENvcHlCYWNr
aW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07
CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0gICAgICAgIE5vbkRlZmVycmVkLAotICAgICAg
ICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVtIFNjYWxlQmVoYXZpb3IgewogICAgICAgICBT
Y2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4g
YSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZp
Y2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVy
cmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZlcnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNl
UkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAg
ICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0
cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNj
ZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5l
dyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmlu
Z01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcykKICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpA
QCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlz
IGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZh
cmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3JlYXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQg
cmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9k
ZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1
Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXpl
JiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRl
eHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJs
YWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmluZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZi
MzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2Yw
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3
ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRo
aXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RXaW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2Vz
cykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3csIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3Np
emUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNj
YWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0
ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMyNjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVy
RGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNj
YWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1
Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxv
YXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29s
JiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAs
IG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUz
Njk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMxNmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMw
N2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNl
SW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUo
Y29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGlt
YWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJlIGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1
ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3QgaWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNh
bFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKaW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUx
MzM4YzA4YmU2NzljNDQ1YmI2OS4uZTQwNmMzMGJiOTllZjMyOWE3ZWU0NDc3NzI0YTQxYWVjMmYy
NTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2lu
Y2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1
YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5o
PgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNp
emUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9k
ZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDogbV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2Rl
KQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUoMCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1
cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXpl
LCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFj
a0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2Nh
bnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52
YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNlZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVj
dCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJyaWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNU
QU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXllckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAv
LyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2ZmIGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52
YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJyZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5n
IGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGljIGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291
cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3RvcnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUK
LSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4KLSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9
IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwot
Ci0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5nKSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1fZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250
ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAg
ICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmluZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMg
b25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBpcyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6
OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9T
LCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+
dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7
Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0
ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAgICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRD
b250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXllciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJl
TGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNldFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQg
fHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRl
eHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQpOwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwy
MSArNjgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7
CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xh
eWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0Jl
RGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRl
ZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVycmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQo
MCk7CisgICAgaWYgKG1fY2FudmFzKQorICAgICAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9u
Q2xpZW50KDApOwogICAgIG1fbGF5ZXItPnNldFRleHR1cmVJZCgwKTsKLSAgICBpZiAobV91c2VE
b3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKLSAgICAgICAgbV9jb250ZXh0LT5kZWxldGVUZXh0dXJlKG1fZnJvbnRCdWZmZXJUZXh0dXJl
KTsKLSAgICAgICAgbV9jb250ZXh0LT5mbHVzaCgpOwotICAgIH0KLX0KLQotU2tEZWZlcnJlZENh
bnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6ZGVmZXJyZWRDYW52YXMoKQotewotICAgIGlmICht
X2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNr
RGVmZXJyZWRDYW52YXMqPihtX2NhbnZhcyk7Ci0gICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ2Fu
dmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5nRnJhbWVzKCkKQEAgLTExOSwxNSArODUsMTIg
QEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpsaW1pdFBlbmRpbmdGcmFtZXMoKQogCiB2b2lk
IENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVGb3JEcmF3KCkKIHsKLSAgICBBU1NFUlQoZGVm
ZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYgKCFtX3VzZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAg
bV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUoKTsKKyAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4
dHVyZSgpOwogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKIHZvaWQg
Q2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQo
c2l6ZV90IGJ5dGVzQWxsb2NhdGVkKQogewotICAgIEFTU0VSVChtX2RlZmVycmFsTW9kZSA9PSBE
ZWZlcnJlZCk7CiAgICAgaW50cHRyX3QgZGVsdGEgPSAoaW50cHRyX3QpYnl0ZXNBbGxvY2F0ZWQg
LSAoaW50cHRyX3QpbV9ieXRlc0FsbG9jYXRlZDsKICAgICBtX2J5dGVzQWxsb2NhdGVkID0gYnl0
ZXNBbGxvY2F0ZWQ7CiAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2Nh
dGVkU3RvcmFnZUNoYW5nZWQodGhpcywgZGVsdGEpOwpAQCAtMTM1LDcgKzk4LDcgQEAgdm9pZCBD
YW52YXMyRExheWVyQnJpZGdlOjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChz
aXplX3QgYnl0ZXNBbGxvY2EKIAogc2l6ZV90IENhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VB
bGxvY2F0ZWRGb3JSZWNvcmRpbmcoKQogewotICAgIHJldHVybiBkZWZlcnJlZENhbnZhcygpLT5z
dG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCk7CisgICAgcmV0dXJuIG1fY2FudmFzID8gbV9j
YW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcoKSA6IDA7CiB9CiAKIHZvaWQgQ2Fu
dmFzMkRMYXllckJyaWRnZTo6Zmx1c2hlZERyYXdDb21tYW5kcygpCkBAIC0xNTEsOCArMTE0LDcg
QEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpza2lwcGVkUGVuZGluZ0RyYXdDb21tYW5kcygp
CiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXpl
X3QgYnl0ZXNUb0ZyZWUpCiB7Ci0gICAgQVNTRVJUKGRlZmVycmVkQ2FudmFzKCkpOwotICAgIHNp
emVfdCBieXRlc0ZyZWVkID0gZGVmZXJyZWRDYW52YXMoKS0+ZnJlZU1lbW9yeUlmUG9zc2libGUo
Ynl0ZXNUb0ZyZWUpOworICAgIHNpemVfdCBieXRlc0ZyZWVkID0gbV9jYW52YXMgPyBtX2NhbnZh
cy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpIDogMDsKICAgICBpZiAoYnl0ZXNG
cmVlZCkKICAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVk
U3RvcmFnZUNoYW5nZWQodGhpcywgLSgoaW50cHRyX3QpYnl0ZXNGcmVlZCkpOwogICAgIG1fYnl0
ZXNBbGxvY2F0ZWQgLT0gYnl0ZXNGcmVlZDsKQEAgLTE2MSwyMSArMTIzLDE1IEBAIHNpemVfdCBD
YW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0Zy
ZWUpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2goKQogewotICAgIEFTU0VSVChk
ZWZlcnJlZENhbnZhcygpKTsKLSAgICBpZiAoZGVmZXJyZWRDYW52YXMoKS0+aGFzUGVuZGluZ0Nv
bW1hbmRzKCkpCisgICAgaWYgKG1fY2FudmFzICYmIG1fY2FudmFzLT5oYXNQZW5kaW5nQ29tbWFu
ZHMoKSkKICAgICAgICAgbV9jYW52YXMtPmZsdXNoKCk7CiB9CiAKIFNrQ2FudmFzKiBDYW52YXMy
RExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0RldmljZSogZGV2aWNlKQogewogICAgIEFTU0VSVCgh
bV9jYW52YXMpOwotICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAg
ICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmlj
ZSk7Ci0gICAgICAgIGRlZmVycmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQodGhpcyk7Ci0gICAg
ICAgIG1fY2FudmFzID0gZGVmZXJyZWQ7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fY2FudmFzID0g
bmV3IFNrQ2FudmFzKGRldmljZSk7Ci0KKyAgICBtX2NhbnZhcyA9IG5ldyBTa0RlZmVycmVkQ2Fu
dmFzKGRldmljZSk7CisgICAgbV9jYW52YXMtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsK
ICAgICByZXR1cm4gbV9jYW52YXM7CiB9CiAKQEAgLTE5MSwxMSArMTQ3LDYgQEAgdW5zaWduZWQg
Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVw
ZGF0ZXIpCiAKICAgICBtX2NvbnRleHQtPmZsdXNoKCk7CiAKLSAgICBpZiAobV91c2VEb3VibGVC
dWZmZXJpbmcpIHsKLSAgICAgICAgdXBkYXRlci5hcHBlbmRDb3B5KG1fYmFja0J1ZmZlclRleHR1
cmUsIG1fZnJvbnRCdWZmZXJUZXh0dXJlLCBtX3NpemUpOwotICAgICAgICByZXR1cm4gbV9mcm9u
dEJ1ZmZlclRleHR1cmU7Ci0gICAgfQotCiAgICAgaWYgKG1fY2FudmFzKSB7CiAgICAgICAgIC8v
IE5vdGlmeSBza2lhIHRoYXQgdGhlIHN0YXRlIG9mIHRoZSBiYWNraW5nIHN0b3JlIHRleHR1cmUg
b2JqZWN0IHdpbGwgYmUgdG91Y2hlZCBieSB0aGUgY29tcG9zaXRvcgogICAgICAgICBHclJlbmRl
clRhcmdldCogcmVuZGVyVGFyZ2V0ID0gcmVpbnRlcnByZXRfY2FzdDxHclJlbmRlclRhcmdldCo+
KG1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNzUmVuZGVyVGFyZ2V0KCkpOwpAQCAtMjE3LDEy
ICsxNjgsOCBAQCBXZWJLaXQ6OldlYkxheWVyKiBDYW52YXMyRExheWVyQnJpZGdlOjpsYXllcigp
CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKCkKIHsKLSAgICBp
ZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5n
KQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOwotICAgIGVsc2UgaWYgKG1f
ZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIENhbnZhczJETGF5ZXJNYW5hZ2Vy
OjpnZXQoKS5sYXllckRpZERyYXcodGhpcyk7Ci0gICAgICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1h
bmQgPSB0cnVlOwotICAgIH0KKyAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJE
aWREcmF3KHRoaXMpOworICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1hbmQgPSB0cnVlOwogfQogCiB1
bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpiYWNrQnVmZmVyVGV4dHVyZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXMyRExheWVyQnJpZGdlLmgKaW5kZXggOGU0NDJmZDkxNzdhYTgyODNkMmIwNjg3YTQwNTgz
OWNlYjY1MDMyZC4uYjM4NjMwNGMzMzdmMzAzYTY3NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFz
MkRMYXllckJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBD
YW52YXMyRExheWVyQnJpZGdlX2gKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0j
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIgLy8gRm9yIERlZmVycmFsTW9kZSBlbnVtLgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJTa0RlZmVycmVkQ2FudmFzLmgiCiAjaW5jbHVkZSA8
cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmg+CkBAIC01MCw5ICs0OSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2Fu
dmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRo
cmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NP
d25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5n
LCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRp
bmcsIHRleHR1cmVJZCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5
ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhyZWFkaW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5DYW52YXMyRExheWVyQnJpZGdlKCk7CkBAIC04MSwxNSArODAsMTEgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZmZXJUZXh0dXJlKCk7CiAKIHByb3RlY3RlZDoK
LSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBj
b25zdCBJbnRTaXplJiwgRGVmZXJyYWxNb2RlLCBUaHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJl
SWQpOwotICAgIFNrRGVmZXJyZWRDYW52YXMqIGRlZmVycmVkQ2FudmFzKCk7CisgICAgQ2FudmFz
MkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6
ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7CiAKLSAgICBEZWZlcnJhbE1vZGUg
bV9kZWZlcnJhbE1vZGU7Ci0gICAgYm9vbCBtX3VzZURvdWJsZUJ1ZmZlcmluZzsKLSAgICB1bnNp
Z25lZCBtX2Zyb250QnVmZmVyVGV4dHVyZTsKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0
dXJlOwogICAgIEludFNpemUgbV9zaXplOwotICAgIFNrQ2FudmFzKiBtX2NhbnZhczsKKyAgICBT
a0RlZmVycmVkQ2FudmFzKiBtX2NhbnZhczsKICAgICBPd25QdHI8V2ViS2l0OjpXZWJFeHRlcm5h
bFRleHR1cmVMYXllcj4gbV9sYXllcjsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1f
Y29udGV4dDsKICAgICBzaXplX3QgbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4
NTljYWQxYzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdhNzI4NThkNC4uMWJjZGVlOTQ1ZDUxNGQ0MzNj
ZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUlt
YWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBpbWFnZTsK
IH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0
IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJy
YWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVu
ZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9z
aXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5k
ZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRhYzFjZDNlN2U4MDQ2NS4uNjEzMDlmYWQ0N2M1
ZWViZmI4ZTRlYTQwZjRlZTk0OWFiNzAwOWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcApAQCAtNzIs
NyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXpl
JiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZGF0YSwgRGVmZXJyYWxNb2Rl
IGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhKQogewogICAgIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNEID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgU2tD
YW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdl
QnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJlZjxTa0RldmljZT4gZGV2aWNlKG5ldyBTa0dw
dURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUgPSBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlzVGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQo
KSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkIDogQ2FudmFzMkRMYXllckJyaWRnZTo6
U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJl
YWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOworICAgIGRhdGEtPm1f
bGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVh
c2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4dHVyZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgp
KTsKICAgICBjYW52YXMgPSBkYXRhLT5tX2xheWVyQnJpZGdlLT5za0NhbnZhcyhkZXZpY2UuZ2V0
KCkpOwogI2Vsc2UKICAgICBjYW52YXMgPSBuZXcgU2tDYW52YXMoZGV2aWNlLmdldCgpKTsKQEAg
LTE1MSw3ICsxNTEsNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLAogICAgIHN1Y2Nlc3MgPSB0
cnVlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nl
c3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dp
Y2FsU2l6ZShzaXplKQpAQCAtMTYwLDcgKzE2MCw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
CiAgICAgT3duUHRyPFNrQ2FudmFzPiBjYW52YXM7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9
PSBBY2NlbGVyYXRlZCkKLSAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0
ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJyYWxNb2RlKSk7CisgICAgICAgIGNhbnZhcyA9
IGFkb3B0UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEpKTsKICAgICBl
bHNlIGlmIChyZW5kZXJpbmdNb2RlID09IFVuYWNjZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcikK
ICAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlTm9uUGxhdGZvcm1DYW52YXMoc2l6ZSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9J
bWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4IGMzYzQxMTlmM2M0ZGEwZDQ1ZDZmMjdmNmVk
NTcyOGRhZjI5ODQ4ZDYuLmZkNDFlMTI0YmViNzMxY2Q3YjEyYjA3Yjc3Mjk1YzJjNzcxNmUxZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdl
QnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC03MSw3ICs3MSw3IEBAIEltYWdlQnVmZmVyRGF0
YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgbV9iaXRtYXAtPnNl
dEhhc0FscGhhKHRydWUpOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAg
ICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXpl
KHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9J
bWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0lt
YWdlQnVmZmVyV3guY3BwCmluZGV4IDRmNDFlZDEwM2NmN2MxOWUzYjM0ZTU5NWMwMmM5ZjdiYWUy
YTliODQuLjlmMDFlYTIzMDAyMDhiZjZmMTYwYTUwZDJhZWQ4ZjdlMjBkNThkOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3gu
Y3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgp
CiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNh
bFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CmluZGV4IGU5MmI2Yzg5OWY0ODBlMGQxNjQwZjgzN2U5NTc0ZTUyMmI0ZWNmMmMuLjcyNWM2MWM4
MDA1NTkxMDg4ODI1YzE5OTJlZjc4Yzc4ZjAxMjIyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldERlZmF1bHRGb250U2l6ZShpbnQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VmlkZW9Qb3N0ZXJVUkwoY29uc3QgV2ViU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKSA9
IDA7CisgICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKSB7IH0gLy8gdGVt
cG9yYXJ5IHN0dWIKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJv
b2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IDBjMGQyZmRiZWVlMzgxZjliODBjYjNiMDk0YWU3YzgzMzA1YjgxNjAuLjlmMzQ5
MDFlMGQxMTI1ZGYwMGI1NDZmODZjYTBkNTI4NmE5YTY5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTE0LDcgKzUxNCw2IEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRBbnRpYWxpYXNlZDJkQ2FudmFzRW5hYmxlZChib29sIGVu
YWJsZWQpCiAKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7Ci0gICAgbV9zZXR0aW5ncy0+c2V0RGVmZXJyZWQyZENhbnZhc0Vu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZElt
YWdlRGVjb2RpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKaW5kZXggYzQ0
ZjMzMGI0NzE2ZjAzNDEwZTgyZDJmODUzMTY2ZDUyMzM2MjU3Ny4uNmYyNjFiYTNjOWY5NTEwODU2
Y2M2OTM1MzNhMzNlYTM0ZDQ1NzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgcHVibGljOgogCiBjbGFzcyBDYW52YXMyRExheWVyQnJpZGdlVGVzdCA6IHB1YmxpYyBUZXN0
IHsKIHByb3RlY3RlZDoKLSAgICB2b2lkIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJC
cmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkK
KyAgICB2b2lkIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1v
ZGUgdGhyZWFkTW9kZSkKICAgICB7CiAgICAgICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
bWFpbkNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBNb2NrQ2FudmFzQ29udGV4dCkpOwogCkBA
IC03Niw1MiArNzYsMjkgQEAgcHJvdGVjdGVkOgogICAgICAgICBXZWJHTElkIGJhY2tUZXh0dXJl
SWQgPSAxOwogICAgICAgICBXZWJHTElkIGZyb250VGV4dHVyZUlkID0gMTsKIAotICAgICAgICAv
LyBUaHJlYWRlZCBhbmQgbm9uIGRlZmVycmVkIGNhbnZhc2VzIGFyZSBkb3VibGUgYnVmZmVyZWQu
Ci0gICAgICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVk
ICYmIGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkgewotICAgICAgICAgICAgZnJvbnRUZXh0
dXJlSWQgPSAyOwotICAgICAgICAgICAgLy8gQ3JlYXRlIHRleHR1cmUgKG9uIHRoZSBtYWluIHRo
cmVhZCkgYW5kIGRvIHRoZSBjb3B5IChvbiB0aGUgaW1wbCB0aHJlYWQpLgotICAgICAgICAgICAg
RVhQRUNUX0NBTEwobWFpbk1vY2ssIGNyZWF0ZVRleHR1cmUoKSkuV2lsbE9uY2UoUmV0dXJuKGZy
b250VGV4dHVyZUlkKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBPd25QdHI8Q2FudmFzMkRMYXll
ckJyaWRnZT4gYnJpZGdlID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRlKG1haW5Db250ZXh0
LmdldCgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQpOwor
ICAgICAgICBPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gYnJpZGdlID0gQ2FudmFzMkRMYXll
ckJyaWRnZTo6Y3JlYXRlKG1haW5Db250ZXh0LmdldCgpLCBzaXplLCB0aHJlYWRNb2RlLCBiYWNr
VGV4dHVyZUlkKTsKIAogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFyRXhw
ZWN0YXRpb25zKCZtYWluTW9jayk7CiAKICAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1vY2ssIGZs
dXNoKCkpOwotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBDYW52YXMyRExheWVyQnJpZGdlOjpU
aHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpCi0gICAgICAgICAgICBFWFBF
Q1RfQ0FMTCh1cGRhdGVyLCBhcHBlbmRDb3B5KGJhY2tUZXh0dXJlSWQsIGZyb250VGV4dHVyZUlk
LCBXZWJTaXplKDMwMCwgMTUwKSkpOwogICAgICAgICBFWFBFQ1RfRVEoZnJvbnRUZXh0dXJlSWQs
IGJyaWRnZS0+cHJlcGFyZVRleHR1cmUodXBkYXRlcikpOwogICAgICAgICA6OnRlc3Rpbmc6Ok1v
Y2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZtYWluTW9jayk7CiAgICAgICAgIDo6dGVz
dGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJnVwZGF0ZXIpOwogCi0gICAg
ICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYmIGRl
ZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkgewotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGRlbGV0ZVRleHR1cmUoZnJvbnRUZXh0dXJlSWQpKTsKLSAgICAgICAgICAgIEVYUEVD
VF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKLSAgICAgICAgfQogICAgICAgICBicmlkZ2UuY2xl
YXIoKTsKICAgICB9CiB9OwogCiBuYW1lc3BhY2UgewogCi1URVNUX0YoQ2FudmFzMkRMYXllckJy
aWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhyZWFkZWREZWZlcnJlZCkKLXsKLSAg
ICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQsIE5v
bkRlZmVycmVkKTsKLX0KLQotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVs
bExpZmVjeWNsZVNpbmdsZVRocmVhZGVkTm9uRGVmZXJyZWQpCi17Ci0gICAgZnVsbExpZmVjeWNs
ZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkLCBEZWZlcnJlZCk7Ci19Ci0K
LVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRl
ZE5vbkRlZmVycmVkKQorVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExp
ZmVjeWNsZVNpbmdsZVRocmVhZGVkKQogewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJE
TGF5ZXJCcmlkZ2U6OlRocmVhZGVkLCBOb25EZWZlcnJlZCk7CisgICAgZnVsbExpZmVjeWNsZVRl
c3QoQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkKTsKIH0KIAotVEVTVF9GKENhbnZh
czJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkRGVmZXJyZWQpCitU
RVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWQp
CiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQs
IERlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpU
aHJlYWRlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKaW5kZXggZmVi
MzFiMjg0ZmUzNGI0MTE3ZDU4MDBiOGE1YmQ5NzNhNGE1ZWMxOC4uMjk3NzNhZWNiMjA5Njk3MmEz
NWFjZGY3YmJkYzg1M2FkYTk0YzZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcApAQCAtNDIsNyArNDIs
NyBAQCB1c2luZyB0ZXN0aW5nOjpUZXN0OwogY2xhc3MgRmFrZUNhbnZhczJETGF5ZXJCcmlkZ2Ug
OiBwdWJsaWMgQ2FudmFzMkRMYXllckJyaWRnZSB7CiBwdWJsaWM6CiAgICAgRmFrZUNhbnZhczJE
TGF5ZXJCcmlkZ2UoKSAKLSAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQ
dHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSks
IERlZmVycmVkLCBTaW5nbGVUaHJlYWQsIDApCisgICAgICAgIDogQ2FudmFzMkRMYXllckJyaWRn
ZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJD
b250ZXh0KGFkb3B0UHRyKG5ldyBXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRCkpLCBJ
bnRTaXplKDEsIDEpLCBTaW5nbGVUaHJlYWQsIDApCiAgICAgICAgICwgbV9mcmVlYWJsZUJ5dGVz
KDApCiAgICAgICAgICwgbV9mcmVlTWVtb3J5SWZQb3NzaWJsZUNvdW50KDApCiAgICAgICAgICwg
bV9mbHVzaENvdW50KDApCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNzY0Y2JjMGZhZGY2NDA4MjJiYzk2ODMyOWNmOTc3Y2EzNTBlOGViNi4uMTUw
NDk2ZGY3ODZlM2U2Mjc3MGUzMmUwMjc1YTNmZjk5MDZhZDc5YiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3Jn
LgorCisgICAgICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9w
YWdhdGluZyBhbmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3Ig
ZGlzYWJsaW5nIGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQ
cmVmZXJlbmNlcy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBy
ZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNl
czo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVs
bDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAg
KFRlc3RTaGVsbCk6CisKIDIwMTMtMDMtMjAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW1F0XSBSZW1vdmUgZW1wdHkgZnVuY3Rpb24gc3R1YnMgZnJvbSBUZXN0
UnVubmVyUXQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggNGNmYmQxNWI3MDkwNDA1ZWIwNzljNWQzNDFlYjNkZjUzODFhN2RiNi4u
ODAzODA0MDNmZGE3OWVhMzc1ZmZhMmNmMzNmOWYwMzY3ZjM0M2ZjMSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNyArNTks
NiBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBvc2l0aW5nW10g
PSAiLS1lbmFibGUtc29mdHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5h
YmxlVGhyZWFkZWRDb21wb3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNvbXBvc2l0aW5n
IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2RlW10gPSAiLS1m
b3JjZS1jb21wb3NpdGluZy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFj
Y2VsZXJhdGVkMkRDYW52YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwot
c3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1tdID0gIi0tZW5h
YmxlLWRlZmVycmVkLTJkLWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12
aWRlbyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9z
aXRpb25bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CiBzdGF0aWMg
Y29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsW10gPSAiLS1l
bmFibGUtYWNjZWxlcmF0ZWQtb3ZlcmZsb3ctc2Nyb2xsIjsKQEAgLTEzOCw3ICsxMzcsNiBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGJvb2wgZm9yY2VDb21wb3NpdGlu
Z01vZGUgPSBmYWxzZTsKICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CiAgICAg
Ym9vbCBhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGJvb2wgZGVmZXJy
ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxz
ZTsKICAgICBib29sIHN0cmVzc09wdCA9IGZhbHNlOwpAQCAtMTgzLDggKzE4MSw2IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJz
ZXIgPSBmYWxzZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVk
ID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJy
ZWQyRENhbnZhcykKLSAgICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlUGVyVGlsZVBhaW50aW5n
KQogICAgICAgICAgICAgcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVs
c2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZykKQEAg
LTIyOCw3ICsyMjQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAg
ICBzaGVsbC5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAg
ICAgICAgIHNoZWxsLnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwog
ICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJE
Q2FudmFzRW5hYmxlZCk7Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVk
KGRlZmVycmVkMkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50
aW5nRW5hYmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0RGVm
ZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsK
ICAgICAgICAgc2hlbGwuc2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJQcmVmZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaAppbmRleCA1NjQ0ZDA5OWZlNDdhMDY1NDAyMjFhZGEx
ZGYwZmZhODVkNDVjOWRjLi5iZmNlNWFmZWVlYjJkZmY2NmJkOWQ4ZGU5MjE4MzJhNzdlNmQ3NmEw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgKQEAgLTk0LDcgKzk0LDYgQEAgc3Ry
dWN0IFdFQlRFU1RSVU5ORVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGZvcmNl
Q29tcG9zaXRpbmdNb2RlOwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wg
YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZDsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVy
YXRlZEFuaW1hdGlvbkVuYWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFi
bGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE2ODc3NzM3OWY4MWMwYTcz
NTcwZGJiNzY4NmY2OGJhMzc1OTY1NTUuLjVkODgyYWVmNTExOTU4MGQ5OGEyNzRiNWEyNzk0NWY4
OGFmMTdlNDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTks
NiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQg
PSBmYWxzZTsKLSAgICBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGZvcmNl
Q29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsK
ICAgICBwZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gZmFsc2U7CkBAIC0xODksNyArMTg4LDYgQEAg
dm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRp
bmdzLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAg
c2V0dGluZ3MtPnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAg
IHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZCk7Ci0gICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRl
ZmVycmVkMmRDYW52YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5n
RW5hYmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmZXJy
ZWRJbWFnZURlY29kaW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAg
ICBzZXR0aW5ncy0+c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUobWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5jcHAKaW5kZXggZDNkYjY1ZWIwYzIxODM2NWUwOWJhMDg4YTNmOGY0MmE4N2Zh
YjIxMi4uNjZmMWM0MGRjMGJhMWYwZWM2ODExYmY4YjQ1NTczOGE2NDlhNzJkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMTUsNyArMTE1LDYg
QEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShm
YWxzZSkKICAgICAsIG1fdGhyZWFkZWRIVE1MUGFyc2VyKHRydWUpCiAgICAgLCBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxl
ZChmYWxzZSkKICAgICAsIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
ZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZh
bHNlKQpAQCAtMjE1LDcgKzIxNCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdz
KFdlYlZpZXcmIHdlYlZpZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxFbmFibGVkOwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2Zv
cmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJs
ZWQgPSBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQgPSBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMu
cGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBt
X3ByZWZzLmRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBtX2RlZmVycmVkSW1hZ2VEZWNv
ZGluZ0VuYWJsZWQ7CiAgICAgbV9wcmVmcy50aHJlYWRlZEhUTUxQYXJzZXIgPSBtX3RocmVhZGVk
SFRNTFBhcnNlcjsKQEAgLTIzNiw3ICsyMzQsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRl
c3QoY29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAg
ICAgIGlmICghbV9zb2Z0d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAgICAgICAgIG1fcHJl
ZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgPSB0cnVlOwotICAgICAgICBtX3By
ZWZzLmRlZmVycmVkMmRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5tb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFwcGx5VG8obV93ZWJW
aWV3KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmlu
ZGV4IGVkN2VhZmNiMjYwYTMxZjQ2YzdiYzJkNjM4ZWNlMTE0YjYzZTY4OTYuLjFjYjM0YWMxYzQ1
YWIwNmNiMGRiOWY2MWExM2FlY2Y0YzUyYzE5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VDb21wb3NpdGlu
Z01vZGUgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZEhUTUxQYXJzZXIoYm9vbCBl
bmFibGVkKSB7IG1fdGhyZWFkZWRIVE1MUGFyc2VyID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFz
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KICAgICB2b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERlZmVy
cmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIxNiw3
ICsyMTUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAg
ICBib29sIG1fdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZDsKLSAgICBib29sIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9v
bCBtX3BlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNv
ZGluZ0VuYWJsZWQ7CiAgICAgV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXMgbV9wcmVmczsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjRjNjkzNzlkY2FlYzg3NDI2NWM4MzdlOTQzNjMzYTMyMzQ5NmJmLi45MzM2NTZk
OGNmZDkyMzA2OTBmZDJmZWMzNzJjMjdhNmVjOThlMDJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTMtMDMtMTggIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBbQ2hyb21pdW1dIENvZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVy
cmVkIDJkIGNhbnZhcyByZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IGphbWVzckBjaHJv
bWl1bS5vcmcuCisKKyAgICAgICAgTWFya2VkIHNvbWUgMmQgY2FudmFzIHRlc3RzIGFzIGZhaWxp
bmcuIFRoZXNlIHRlc3RzIGFyZSB1c2luZyB0aGUKKyAgICAgICAgdHdvIHBvaW50IHJhZGlhbCBn
cmFkaWVudCBBUEkuICBUaGUgYnVnIHdhcyBhbHJlYWR5IHByZXNlbnQgaW4KKyAgICAgICAgY2hy
b21pdW0uIFN0YXJ0cyBnZXR0aW5nIGRldGVjdGVkIGluIERSVCB3aXRoIHRoaXMgY2hhbmdlLgor
ICAgICAgICBSZWxhdGVkOiBjcmJ1Zy5jb20vMjIyMTQwCisKIDIwMTMtMDMtMjAgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNDYzMzEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNmM4ZDEzYWU5ODYyMGU2YjVkZDRjZWY1NDc5Zjg1Mjc2
YjA2ZDI1Li42ZWI0NTA4MGZkYmI0ZjNlMGFhYzQyNWQ5ZWFiYThmNDViZTc5YTdjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NTYs
NiArMTQ1NiwxNCBAQCB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0gZmFzdC9yZXBhaW50
L3NoYWRvdy1tdWx0aXBsZS1ob3Jpem9udGFsLmh0bWwgWyBJbQogd2Via2l0Lm9yZy9iLzc1Mjc2
IFsgQW5kcm9pZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtc3RyaWN0LWhvcml6b250
YWwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzc1Mjc2IFsgQW5kcm9p
ZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtc3RyaWN0LXZlcnRpY2FsLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIAorIyBUaGVzZSB0ZXN0cyBmYWlsIGR1ZSB0byBhIGJ1ZyB3aXRo
IDJEIGNhbnZhcyBjb21tYW5kIGRlZmVycmFsCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2No
cm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFs
LmNvbmUuYmVzaWRlLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0v
Y2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRp
YWwuY29uZS5zaGFwZTEuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJh
ZGlhbC5jb25lLmJlaGluZC5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRm
b3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQu
cmFkaWFsLmNvbmUuc2hhcGUyLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVu
dC5yYWRpYWwudG91Y2gxLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZv
cm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5y
YWRpYWwudG91Y2gzLmh0bWwgWyBGYWlsdXJlIF0KKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBXZWJHTCBUZXN0
cwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194062</attachid>
            <date>2013-03-20 08:11:48 -0700</date>
            <delta_ts>2013-03-20 08:25:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320110738.patch</filename>
            <type>text/plain</type>
            <size>41282</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwMzZiYTgzNzc4YWZl
ZTkwNDhkNzcyMWY1MTk5ZDUyZjQ2MmI2Ni4uYjZiNGNmY2JlZjJiYWQxZWM0YjMxNzlmZTc0NmQ4
ZTc3MDZkNzQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3JnLgorCisgICAg
ICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBh
bmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5n
IGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBB
ZmZlY3RlZCBjb2RlIHBhdGhzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVy
OjpjcmVhdGUpOgorICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZh
czJETGF5ZXJCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6
fkNhbnZhczJETGF5ZXJCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJy
aWRnZTo6cHJlcGFyZUZvckRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJy
aWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3Nz
aWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgIChD
YW52YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZUJ1ZmZlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
SW1hZ2VCdWZmZXJXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIpOgorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ2MzMxLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkMjY2MjRhNDdmYTcwNDM4YjI3Y2Y5NDIyYTAwNDFk
MjU3MzcxZmUwLi4xZWVlOWE4ZmU4YWExYjg2MmJhNDY0MmRlMzQxM2YwOTNiMDJlODNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3JnLgorCisgICAg
ICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBh
bmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5n
IGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0
dGluZ3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3M6OnNldERlZmVycmVkMmRDYW52
YXNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCk6Cisg
ICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwOgorICAgICAgICAoQ2Fu
dmFzMkRMYXllckJyaWRnZVRlc3Q6OmZ1bGxMaWZlY3ljbGVUZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwOgorICAgICAgICAoRmFrZUNhbnZhczJETGF5
ZXJCcmlkZ2U6OkZha2VDYW52YXMyRExheWVyQnJpZGdlKToKKwogMjAxMy0wMy0xOSAgTWFyayBQ
aWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNaWdy
YXRlIHRvIFdFQktJVF9VU0VfTkVXX1dFQkZJTEVTWVNURU1UWVBFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDNjYzJjOTMwYTJjZTU4YzkxZWUwODlkMGJk
YmJlYWExMjZkZjdhN2UuLmEzYzA0NjMzMTliMzU1Njc0M2ZmMzA0YWU4ZGQ0MjNmZTRkODNlYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC01MjAsMjIg
KzUyMCw2IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkgY29uc3QKICNlbmRpZgogfQogCi1ib29sIEhUTUxDYW52YXNFbGVtZW50
OjpzaG91bGREZWZlcigpIGNvbnN0Ci17Ci0jaWYgVVNFKFNLSUEpCi0gICAgaWYgKG1fY29udGV4
dCAmJiAhbV9jb250ZXh0LT5pczJkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNl
dHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0
aW5ncyB8fCAhc2V0dGluZ3MtPmRlZmVycmVkMmRDYW52YXNFbmFibGVkKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKLX0KLQogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
KSBjb25zdAogewogICAgIEFTU0VSVCghbV9pbWFnZUJ1ZmZlcik7CkBAIC01NjUsOCArNTQ5LDcg
QEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogI2Vs
c2UKICAgICAgICAgVW5hY2NlbGVyYXRlZDsKICNlbmRpZgotICAgIERlZmVycmFsTW9kZSBkZWZl
cnJhbE1vZGUgPSBzaG91bGREZWZlcigpID8gRGVmZXJyZWQgOiBOb25EZWZlcnJlZDsKLSAgICBt
X2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVG
YWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUsIGRlZmVycmFsTW9kZSk7
CisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2Rldmlj
ZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlKTsKICAgICBp
ZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX2ltYWdlQnVmZmVyLT5j
b250ZXh0KCktPnNldFNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKHRydWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IGNkOTgyMWM1YzM3N2I2NzEzY2FhNzhiZjlk
NTZjYWQwZmFiNDUwNGEuLmJmNzEzZDMxMWQ3ZGFmNDgxZGFiOTY5OTlkMDQ5YzAzZTRkMGE1Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTE2MCw4ICsxNjAs
NiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7
CiAKLSAgICBib29sIHNob3VsZERlZmVyKCkgY29uc3Q7Ci0KICAgICBib29sIHBhaW50c0ludG9D
YW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIEhhc2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29i
c2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGRiN2NhN2FkYjlhNmIxODE2M2Q4
NjA2ZjNmM2ViMjY2MDBlMGQ5ZjAuLmY2NGY1NzhiZThiMWRmZWViMTZhNzNhNTQzMWY2YjEzZDQ5
NmJhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTEzLDcgKzExMyw2IEBAIHdlYkdM
RXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFsPXRydWUKIG9wZW5HTE11bHRpc2FtcGxpbmdF
bmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQogYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVm
ZXJyZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogYW50aWFsaWFzZWQyZENhbnZhc0Vu
YWJsZWQgaW5pdGlhbD10cnVlCiBsb2FkRGVmZXJyaW5nRW5hYmxlZCBpbml0aWFsPXRydWUKIHdl
YkF1ZGlvRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA5YzVlNjNhOTU5NWU5YTYwOTlhNTI3NTVkNDc5
NjMzZTIxYzg5ZGE3Li4xZTRlNWQ0ZDQzMzFjOTJiMWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAg
LTcwLDExICs3MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRG9udENvcHlCYWNr
aW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgogICAgIH07
CiAKLSAgICBlbnVtIERlZmVycmFsTW9kZSB7Ci0gICAgICAgIE5vbkRlZmVycmVkLAotICAgICAg
ICBEZWZlcnJlZAotICAgIH07Ci0KICAgICBlbnVtIFNjYWxlQmVoYXZpb3IgewogICAgICAgICBT
Y2FsZWQsCiAgICAgICAgIFVuc2NhbGVkCkBAIC04NCwxMCArNzksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4g
YSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZp
Y2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQsIERlZmVy
cmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZlcnJlZCkKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUgPSAxLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNl
UkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkKQogICAgICAg
ICB7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgIE93blB0
cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBzdWNj
ZXNzKSk7CisgICAgICAgICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5l
dyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmlu
Z01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcykKICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybiBidWYucmVsZWFzZSgpOwpA
QCAtMTYwLDcgKzE1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBUaGlz
IGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZh
cmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3JlYXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQg
cmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9k
ZSwgYm9vbCYgc3VjY2Vzcyk7CisgICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1
Y2Nlc3MpOwogI2lmIFVTRShTS0lBKQogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXpl
JiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRl
eHQqLCBib29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1ZmZlckJs
YWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9JbWFnZUJ1ZmZlckJsYWNrQmVycnkuY3BwCmluZGV4IDVkOGEyNDUyNzZlZDM3OTJkMzFiOTZi
MzNiMDc5MjY0YjA0MDlhYWIuLmZlNzI1OTA4NzA4YzJjNmMwYzZlY2IxZGYzZmQwOTE4ZjkyM2Yw
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHAKQEAgLTE1Myw3
ICsxNTMsNyBAQCB2b2lkIEltYWdlQnVmZmVyRGF0YTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIHRo
aXNDb250ZXh0LCBHcmFwaGljc0NvbnRleHQqIG90aGVyQwogICAgIH0KIH0KIAotSW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIEhvc3RXaW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2Vz
cykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBIb3N0V2luZG93KiB3aW5kb3csIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX3Np
emUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNj
YWxlKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDY5NTM5MzI3ZjEzMDQyNmU2YTk0ZjA0
ZDg4MDNhNDQ3ODY5ZjMzZjQuLjllYmVkOWQ3MDMyNjI2Yzk3MTc5MGI2YzQyMWM3YTEwZGMzMmY3
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVy
RGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNj
YWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1
Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxv
YXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29s
JiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAs
IG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUz
Njk1MDllMDQ4M2UyNDJkOWFiMS4uZTU3MzczMjMxNmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMw
N2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNl
SW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUo
Y29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGlt
YWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJlIGlzbid0IGltcG9ydGFudCBhcyBJbWFnZUJ1
ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3QgaWdub3JlcyBpdC4KICAgICAsIG1fbG9naWNh
bFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKaW5kZXggNjYyNzJmZGIzODI5ODE3ZTEyMDUx
MzM4YzA4YmU2NzljNDQ1YmI2OS4uZTQwNmMzMGJiOTllZjMyOWE3ZWU0NDc3NzI0YTQxYWVjMmYy
NTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgorI2lu
Y2x1ZGUgIlNrRGV2aWNlLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgogI2luY2x1ZGUgPHB1
YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5o
PgpAQCAtNDMsMTAgKzQ0LDggQEAgdXNpbmcgV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVy
QnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNp
emUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9k
ZSwgdW5zaWduZWQgdGV4dHVyZUlkKQotICAgIDogbV9kZWZlcnJhbE1vZGUoZGVmZXJyYWxNb2Rl
KQotICAgICwgbV9mcm9udEJ1ZmZlclRleHR1cmUoMCkKLSAgICAsIG1fYmFja0J1ZmZlclRleHR1
cmUodGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXpl
LCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICA6IG1fYmFj
a0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2Nh
bnZhcygwKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC01OSwzMCArNTgsOSBAQCBDYW52
YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNvbnRleHQsCiAgICAgLy8gVXNlZCBieSBicm93c2VyIHRlc3RzIHRvIGRldGVj
dCB0aGUgdXNlIG9mIGEgQ2FudmFzMkRMYXllckJyaWRnZS4KICAgICBUUkFDRV9FVkVOVF9JTlNU
QU5UMCgidGVzdF9ncHUiLCAiQ2FudmFzMkRMYXllckJyaWRnZUNyZWF0aW9uIik7CiAKLSAgICAv
LyBGSVhNRTogV2UgY3VycmVudGx5IHR1cm4gb2ZmIGRvdWJsZSBidWZmZXJpbmcgd2hlbiBjYW52
YXMgcmVuZGVyaW5nIGlzCi0gICAgLy8gZGVmZXJyZWQuIFdoYXQgd2Ugc2hvdWxkIGJlIGRvaW5n
IGlzIHRvIHVzZSBhIHNtYXJ0ZXIgaGV1cmlzdGljIGJhc2VkCi0gICAgLy8gb24gR1BVIHJlc291
cmNlIG1vbml0b3JpbmcgYW5kIG90aGVyIGZhY3RvcnMgdG8gY2hvc2UgYmV0d2VlbiBzaW5nbGUK
LSAgICAvLyBhbmQgZG91YmxlIGJ1ZmZlcmluZy4KLSAgICBtX3VzZURvdWJsZUJ1ZmZlcmluZyA9
IHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkOwot
Ci0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5nKSB7Ci0gICAgICAgIG1fY29udGV4dC0+bWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgICAgIG1fZnJvbnRCdWZmZXJUZXh0dXJlID0gbV9jb250
ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fZnJvbnRCdWZmZXJUZXh0dXJlKTsKLSAgICAg
ICAgLy8gRG8gYmFzaWMgbGluZWFyIGZpbHRlcmluZyBvbiByZXNpemUuCi0gICAgICAgIG1fY29u
dGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7Ci0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJTFRFUiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkxJTkVBUik7Ci0gICAgICAgIC8vIE5QT1QgdGV4dHVyZXMgaW4gR0wgRVMg
b25seSB3b3JrIHdoZW4gdGhlIHdyYXAgbW9kZSBpcyBzZXQgdG8gR3JhcGhpY3NDb250ZXh0M0Q6
OkNMQU1QX1RPX0VER0UuCi0gICAgICAgIG1fY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9T
LCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1fY29udGV4dC0+
dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfV1JBUF9ULCBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7
Ci0gICAgICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRFJlc291cmNlU2FmZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKTsKLSAgICAgICAgaWYgKEdyQ29udGV4dCogZ3JDb250ZXh0
ID0gbV9jb250ZXh0LT5nckNvbnRleHQoKSkKLSAgICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRD
b250ZXh0KCk7Ci0gICAgfQotCiAgICAgbV9sYXllciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJl
TGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNldFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAg
IG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQg
fHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRl
eHQodGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQpOwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bTo6cmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVyKCkpOwogfQogCkBAIC05MCwy
MSArNjgsOSBAQCBDYW52YXMyRExheWVyQnJpZGdlOjp+Q2FudmFzMkRMYXllckJyaWRnZSgpCiB7
CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX2xh
eWVyLT5sYXllcigpKTsKICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJUb0Jl
RGVzdHJveWVkKHRoaXMpOwotICAgIGlmIChTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IGRl
ZmVycmVkQ2FudmFzKCkpCi0gICAgICAgIGRlZmVycmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQo
MCk7CisgICAgaWYgKG1fY2FudmFzKQorICAgICAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9u
Q2xpZW50KDApOwogICAgIG1fbGF5ZXItPnNldFRleHR1cmVJZCgwKTsKLSAgICBpZiAobV91c2VE
b3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKLSAgICAgICAgbV9jb250ZXh0LT5kZWxldGVUZXh0dXJlKG1fZnJvbnRCdWZmZXJUZXh0dXJl
KTsKLSAgICAgICAgbV9jb250ZXh0LT5mbHVzaCgpOwotICAgIH0KLX0KLQotU2tEZWZlcnJlZENh
bnZhcyogQ2FudmFzMkRMYXllckJyaWRnZTo6ZGVmZXJyZWRDYW52YXMoKQotewotICAgIGlmICht
X2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNr
RGVmZXJyZWRDYW52YXMqPihtX2NhbnZhcyk7Ci0gICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgQ2Fu
dmFzMkRMYXllckJyaWRnZTo6bGltaXRQZW5kaW5nRnJhbWVzKCkKQEAgLTExOSwxNSArODUsMTIg
QEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpsaW1pdFBlbmRpbmdGcmFtZXMoKQogCiB2b2lk
IENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVGb3JEcmF3KCkKIHsKLSAgICBBU1NFUlQoZGVm
ZXJyZWRDYW52YXMoKSk7Ci0gICAgaWYgKCFtX3VzZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAg
bV9sYXllci0+d2lsbE1vZGlmeVRleHR1cmUoKTsKKyAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4
dHVyZSgpOwogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKIHZvaWQg
Q2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZvclJlY29yZGluZ0NoYW5nZWQo
c2l6ZV90IGJ5dGVzQWxsb2NhdGVkKQogewotICAgIEFTU0VSVChtX2RlZmVycmFsTW9kZSA9PSBE
ZWZlcnJlZCk7CiAgICAgaW50cHRyX3QgZGVsdGEgPSAoaW50cHRyX3QpYnl0ZXNBbGxvY2F0ZWQg
LSAoaW50cHRyX3QpbV9ieXRlc0FsbG9jYXRlZDsKICAgICBtX2J5dGVzQWxsb2NhdGVkID0gYnl0
ZXNBbGxvY2F0ZWQ7CiAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2Nh
dGVkU3RvcmFnZUNoYW5nZWQodGhpcywgZGVsdGEpOwpAQCAtMTM1LDcgKzk4LDcgQEAgdm9pZCBD
YW52YXMyRExheWVyQnJpZGdlOjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChz
aXplX3QgYnl0ZXNBbGxvY2EKIAogc2l6ZV90IENhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VB
bGxvY2F0ZWRGb3JSZWNvcmRpbmcoKQogewotICAgIHJldHVybiBkZWZlcnJlZENhbnZhcygpLT5z
dG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nKCk7CisgICAgcmV0dXJuIG1fY2FudmFzID8gbV9j
YW52YXMtPnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcoKSA6IDA7CiB9CiAKIHZvaWQgQ2Fu
dmFzMkRMYXllckJyaWRnZTo6Zmx1c2hlZERyYXdDb21tYW5kcygpCkBAIC0xNTEsOCArMTE0LDcg
QEAgdm9pZCBDYW52YXMyRExheWVyQnJpZGdlOjpza2lwcGVkUGVuZGluZ0RyYXdDb21tYW5kcygp
CiAKIHNpemVfdCBDYW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXpl
X3QgYnl0ZXNUb0ZyZWUpCiB7Ci0gICAgQVNTRVJUKGRlZmVycmVkQ2FudmFzKCkpOwotICAgIHNp
emVfdCBieXRlc0ZyZWVkID0gZGVmZXJyZWRDYW52YXMoKS0+ZnJlZU1lbW9yeUlmUG9zc2libGUo
Ynl0ZXNUb0ZyZWUpOworICAgIHNpemVfdCBieXRlc0ZyZWVkID0gbV9jYW52YXMgPyBtX2NhbnZh
cy0+ZnJlZU1lbW9yeUlmUG9zc2libGUoYnl0ZXNUb0ZyZWUpIDogMDsKICAgICBpZiAoYnl0ZXNG
cmVlZCkKICAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxheWVyQWxsb2NhdGVk
U3RvcmFnZUNoYW5nZWQodGhpcywgLSgoaW50cHRyX3QpYnl0ZXNGcmVlZCkpOwogICAgIG1fYnl0
ZXNBbGxvY2F0ZWQgLT0gYnl0ZXNGcmVlZDsKQEAgLTE2MSwyMSArMTIzLDE1IEBAIHNpemVfdCBD
YW52YXMyRExheWVyQnJpZGdlOjpmcmVlTWVtb3J5SWZQb3NzaWJsZShzaXplX3QgYnl0ZXNUb0Zy
ZWUpCiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2goKQogewotICAgIEFTU0VSVChk
ZWZlcnJlZENhbnZhcygpKTsKLSAgICBpZiAoZGVmZXJyZWRDYW52YXMoKS0+aGFzUGVuZGluZ0Nv
bW1hbmRzKCkpCisgICAgaWYgKG1fY2FudmFzICYmIG1fY2FudmFzLT5oYXNQZW5kaW5nQ29tbWFu
ZHMoKSkKICAgICAgICAgbV9jYW52YXMtPmZsdXNoKCk7CiB9CiAKIFNrQ2FudmFzKiBDYW52YXMy
RExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0RldmljZSogZGV2aWNlKQogewogICAgIEFTU0VSVCgh
bV9jYW52YXMpOwotICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAg
ICBTa0RlZmVycmVkQ2FudmFzKiBkZWZlcnJlZCA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmlj
ZSk7Ci0gICAgICAgIGRlZmVycmVkLT5zZXROb3RpZmljYXRpb25DbGllbnQodGhpcyk7Ci0gICAg
ICAgIG1fY2FudmFzID0gZGVmZXJyZWQ7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fY2FudmFzID0g
bmV3IFNrQ2FudmFzKGRldmljZSk7Ci0KKyAgICBtX2NhbnZhcyA9IG5ldyBTa0RlZmVycmVkQ2Fu
dmFzKGRldmljZSk7CisgICAgbV9jYW52YXMtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsK
ICAgICByZXR1cm4gbV9jYW52YXM7CiB9CiAKQEAgLTE5MSwxMSArMTQ3LDYgQEAgdW5zaWduZWQg
Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVw
ZGF0ZXIpCiAKICAgICBtX2NvbnRleHQtPmZsdXNoKCk7CiAKLSAgICBpZiAobV91c2VEb3VibGVC
dWZmZXJpbmcpIHsKLSAgICAgICAgdXBkYXRlci5hcHBlbmRDb3B5KG1fYmFja0J1ZmZlclRleHR1
cmUsIG1fZnJvbnRCdWZmZXJUZXh0dXJlLCBtX3NpemUpOwotICAgICAgICByZXR1cm4gbV9mcm9u
dEJ1ZmZlclRleHR1cmU7Ci0gICAgfQotCiAgICAgaWYgKG1fY2FudmFzKSB7CiAgICAgICAgIC8v
IE5vdGlmeSBza2lhIHRoYXQgdGhlIHN0YXRlIG9mIHRoZSBiYWNraW5nIHN0b3JlIHRleHR1cmUg
b2JqZWN0IHdpbGwgYmUgdG91Y2hlZCBieSB0aGUgY29tcG9zaXRvcgogICAgICAgICBHclJlbmRl
clRhcmdldCogcmVuZGVyVGFyZ2V0ID0gcmVpbnRlcnByZXRfY2FzdDxHclJlbmRlclRhcmdldCo+
KG1fY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNzUmVuZGVyVGFyZ2V0KCkpOwpAQCAtMjE3LDEy
ICsxNjgsOCBAQCBXZWJLaXQ6OldlYkxheWVyKiBDYW52YXMyRExheWVyQnJpZGdlOjpsYXllcigp
CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKCkKIHsKLSAgICBp
ZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5n
KQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOwotICAgIGVsc2UgaWYgKG1f
ZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIENhbnZhczJETGF5ZXJNYW5hZ2Vy
OjpnZXQoKS5sYXllckRpZERyYXcodGhpcyk7Ci0gICAgICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1h
bmQgPSB0cnVlOwotICAgIH0KKyAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJE
aWREcmF3KHRoaXMpOworICAgIG1fZGlkUmVjb3JkRHJhd0NvbW1hbmQgPSB0cnVlOwogfQogCiB1
bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpiYWNrQnVmZmVyVGV4dHVyZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXMyRExheWVyQnJpZGdlLmgKaW5kZXggOGU0NDJmZDkxNzdhYTgyODNkMmIwNjg3YTQwNTgz
OWNlYjY1MDMyZC4uYjM4NjMwNGMzMzdmMzAzYTY3NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFz
MkRMYXllckJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBD
YW52YXMyRExheWVyQnJpZGdlX2gKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0j
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIgLy8gRm9yIERlZmVycmFsTW9kZSBlbnVtLgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJTa0RlZmVycmVkQ2FudmFzLmgiCiAjaW5jbHVkZSA8
cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmg+CkBAIC01MCw5ICs0OSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2Fu
dmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRo
cmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NP
d25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5n
LCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJlYWRp
bmcsIHRleHR1cmVJZCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5
ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhyZWFkaW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5DYW52YXMyRExheWVyQnJpZGdlKCk7CkBAIC04MSwxNSArODAsMTEgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZmZXJUZXh0dXJlKCk7CiAKIHByb3RlY3RlZDoK
LSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBj
b25zdCBJbnRTaXplJiwgRGVmZXJyYWxNb2RlLCBUaHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJl
SWQpOwotICAgIFNrRGVmZXJyZWRDYW52YXMqIGRlZmVycmVkQ2FudmFzKCk7CisgICAgQ2FudmFz
MkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6
ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7CiAKLSAgICBEZWZlcnJhbE1vZGUg
bV9kZWZlcnJhbE1vZGU7Ci0gICAgYm9vbCBtX3VzZURvdWJsZUJ1ZmZlcmluZzsKLSAgICB1bnNp
Z25lZCBtX2Zyb250QnVmZmVyVGV4dHVyZTsKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0
dXJlOwogICAgIEludFNpemUgbV9zaXplOwotICAgIFNrQ2FudmFzKiBtX2NhbnZhczsKKyAgICBT
a0RlZmVycmVkQ2FudmFzKiBtX2NhbnZhczsKICAgICBPd25QdHI8V2ViS2l0OjpXZWJFeHRlcm5h
bFRleHR1cmVMYXllcj4gbV9sYXllcjsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1f
Y29udGV4dDsKICAgICBzaXplX3QgbV9ieXRlc0FsbG9jYXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4
NTljYWQxYzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdhNzI4NThkNC4uMWJjZGVlOTQ1ZDUxNGQ0MzNj
ZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUlt
YWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBpbWFnZTsK
IH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0
IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJy
YWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVu
ZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9z
aXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5k
ZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRhYzFjZDNlN2U4MDQ2NS4uNjEzMDlmYWQ0N2M1
ZWViZmI4ZTRlYTQwZjRlZTk0OWFiNzAwOWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcApAQCAtNzIs
NyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXpl
JiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZGF0YSwgRGVmZXJyYWxNb2Rl
IGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhKQogewogICAgIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNEID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgU2tD
YW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdl
QnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJlZjxTa0RldmljZT4gZGV2aWNlKG5ldyBTa0dw
dURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUgPSBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlzVGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQo
KSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkIDogQ2FudmFzMkRMYXllckJyaWRnZTo6
U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJp
ZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgZGVmZXJyYWxNb2RlLCB0aHJl
YWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOworICAgIGRhdGEtPm1f
bGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVh
c2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4dHVyZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgp
KTsKICAgICBjYW52YXMgPSBkYXRhLT5tX2xheWVyQnJpZGdlLT5za0NhbnZhcyhkZXZpY2UuZ2V0
KCkpOwogI2Vsc2UKICAgICBjYW52YXMgPSBuZXcgU2tDYW52YXMoZGV2aWNlLmdldCgpKTsKQEAg
LTE1MSw3ICsxNTEsNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLAogICAgIHN1Y2Nlc3MgPSB0
cnVlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nl
c3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dp
Y2FsU2l6ZShzaXplKQpAQCAtMTYwLDcgKzE2MCw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
CiAgICAgT3duUHRyPFNrQ2FudmFzPiBjYW52YXM7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9
PSBBY2NlbGVyYXRlZCkKLSAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0
ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJyYWxNb2RlKSk7CisgICAgICAgIGNhbnZhcyA9
IGFkb3B0UHRyKGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEpKTsKICAgICBl
bHNlIGlmIChyZW5kZXJpbmdNb2RlID09IFVuYWNjZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcikK
ICAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlTm9uUGxhdGZvcm1DYW52YXMoc2l6ZSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9J
bWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4IGMzYzQxMTlmM2M0ZGEwZDQ1ZDZmMjdmNmVk
NTcyOGRhZjI5ODQ4ZDYuLmZkNDFlMTI0YmViNzMxY2Q3YjEyYjA3Yjc3Mjk1YzJjNzcxNmUxZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdl
QnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC03MSw3ICs3MSw3IEBAIEltYWdlQnVmZmVyRGF0
YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgbV9iaXRtYXAtPnNl
dEhhc0FscGhhKHRydWUpOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVy
OjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAg
ICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXpl
KHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9J
bWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0lt
YWdlQnVmZmVyV3guY3BwCmluZGV4IDRmNDFlZDEwM2NmN2MxOWUzYjM0ZTU5NWMwMmM5ZjdiYWUy
YTliODQuLjlmMDFlYTIzMDAyMDhiZjZmMTYwYTUwZDJhZWQ4ZjdlMjBkNThkOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3gu
Y3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgp
CiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNh
bFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CmluZGV4IGU5MmI2Yzg5OWY0ODBlMGQxNjQwZjgzN2U5NTc0ZTUyMmI0ZWNmMmMuLjcyNWM2MWM4
MDA1NTkxMDg4ODI1YzE5OTJlZjc4Yzc4ZjAxMjIyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldERlZmF1bHRGb250U2l6ZShpbnQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VmlkZW9Qb3N0ZXJVUkwoY29uc3QgV2ViU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKSA9
IDA7CisgICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKSB7IH0gLy8gdGVt
cG9yYXJ5IHN0dWIKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJv
b2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IDBjMGQyZmRiZWVlMzgxZjliODBjYjNiMDk0YWU3YzgzMzA1YjgxNjAuLjlmMzQ5
MDFlMGQxMTI1ZGYwMGI1NDZmODZjYTBkNTI4NmE5YTY5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTE0LDcgKzUxNCw2IEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRBbnRpYWxpYXNlZDJkQ2FudmFzRW5hYmxlZChib29sIGVu
YWJsZWQpCiAKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7Ci0gICAgbV9zZXR0aW5ncy0+c2V0RGVmZXJyZWQyZENhbnZhc0Vu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZWZlcnJlZElt
YWdlRGVjb2RpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKaW5kZXggYzQ0
ZjMzMGI0NzE2ZjAzNDEwZTgyZDJmODUzMTY2ZDUyMzM2MjU3Ny4uNmYyNjFiYTNjOWY5NTEwODU2
Y2M2OTM1MzNhMzNlYTM0ZDQ1NzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgcHVibGljOgogCiBjbGFzcyBDYW52YXMyRExheWVyQnJpZGdlVGVzdCA6IHB1YmxpYyBUZXN0
IHsKIHByb3RlY3RlZDoKLSAgICB2b2lkIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJC
cmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkK
KyAgICB2b2lkIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1v
ZGUgdGhyZWFkTW9kZSkKICAgICB7CiAgICAgICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
bWFpbkNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBNb2NrQ2FudmFzQ29udGV4dCkpOwogCkBA
IC03Niw1MiArNzYsMjkgQEAgcHJvdGVjdGVkOgogICAgICAgICBXZWJHTElkIGJhY2tUZXh0dXJl
SWQgPSAxOwogICAgICAgICBXZWJHTElkIGZyb250VGV4dHVyZUlkID0gMTsKIAotICAgICAgICAv
LyBUaHJlYWRlZCBhbmQgbm9uIGRlZmVycmVkIGNhbnZhc2VzIGFyZSBkb3VibGUgYnVmZmVyZWQu
Ci0gICAgICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVk
ICYmIGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkgewotICAgICAgICAgICAgZnJvbnRUZXh0
dXJlSWQgPSAyOwotICAgICAgICAgICAgLy8gQ3JlYXRlIHRleHR1cmUgKG9uIHRoZSBtYWluIHRo
cmVhZCkgYW5kIGRvIHRoZSBjb3B5IChvbiB0aGUgaW1wbCB0aHJlYWQpLgotICAgICAgICAgICAg
RVhQRUNUX0NBTEwobWFpbk1vY2ssIGNyZWF0ZVRleHR1cmUoKSkuV2lsbE9uY2UoUmV0dXJuKGZy
b250VGV4dHVyZUlkKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBPd25QdHI8Q2FudmFzMkRMYXll
ckJyaWRnZT4gYnJpZGdlID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRlKG1haW5Db250ZXh0
LmdldCgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQpOwor
ICAgICAgICBPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gYnJpZGdlID0gQ2FudmFzMkRMYXll
ckJyaWRnZTo6Y3JlYXRlKG1haW5Db250ZXh0LmdldCgpLCBzaXplLCB0aHJlYWRNb2RlLCBiYWNr
VGV4dHVyZUlkKTsKIAogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFyRXhw
ZWN0YXRpb25zKCZtYWluTW9jayk7CiAKICAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1vY2ssIGZs
dXNoKCkpOwotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBDYW52YXMyRExheWVyQnJpZGdlOjpU
aHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpCi0gICAgICAgICAgICBFWFBF
Q1RfQ0FMTCh1cGRhdGVyLCBhcHBlbmRDb3B5KGJhY2tUZXh0dXJlSWQsIGZyb250VGV4dHVyZUlk
LCBXZWJTaXplKDMwMCwgMTUwKSkpOwogICAgICAgICBFWFBFQ1RfRVEoZnJvbnRUZXh0dXJlSWQs
IGJyaWRnZS0+cHJlcGFyZVRleHR1cmUodXBkYXRlcikpOwogICAgICAgICA6OnRlc3Rpbmc6Ok1v
Y2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZtYWluTW9jayk7CiAgICAgICAgIDo6dGVz
dGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJnVwZGF0ZXIpOwogCi0gICAg
ICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYmIGRl
ZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkgewotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGRlbGV0ZVRleHR1cmUoZnJvbnRUZXh0dXJlSWQpKTsKLSAgICAgICAgICAgIEVYUEVD
VF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKLSAgICAgICAgfQogICAgICAgICBicmlkZ2UuY2xl
YXIoKTsKICAgICB9CiB9OwogCiBuYW1lc3BhY2UgewogCi1URVNUX0YoQ2FudmFzMkRMYXllckJy
aWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2luZ2xlVGhyZWFkZWREZWZlcnJlZCkKLXsKLSAg
ICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQsIE5v
bkRlZmVycmVkKTsKLX0KLQotVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVs
bExpZmVjeWNsZVNpbmdsZVRocmVhZGVkTm9uRGVmZXJyZWQpCi17Ci0gICAgZnVsbExpZmVjeWNs
ZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkLCBEZWZlcnJlZCk7Ci19Ci0K
LVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRl
ZE5vbkRlZmVycmVkKQorVEVTVF9GKENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExp
ZmVjeWNsZVNpbmdsZVRocmVhZGVkKQogewotICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJE
TGF5ZXJCcmlkZ2U6OlRocmVhZGVkLCBOb25EZWZlcnJlZCk7CisgICAgZnVsbExpZmVjeWNsZVRl
c3QoQ2FudmFzMkRMYXllckJyaWRnZTo6U2luZ2xlVGhyZWFkKTsKIH0KIAotVEVTVF9GKENhbnZh
czJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkRGVmZXJyZWQpCitU
RVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWQp
CiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQs
IERlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpU
aHJlYWRlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKaW5kZXggZmVi
MzFiMjg0ZmUzNGI0MTE3ZDU4MDBiOGE1YmQ5NzNhNGE1ZWMxOC4uMjk3NzNhZWNiMjA5Njk3MmEz
NWFjZGY3YmJkYzg1M2FkYTk0YzZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcApAQCAtNDIsNyArNDIs
NyBAQCB1c2luZyB0ZXN0aW5nOjpUZXN0OwogY2xhc3MgRmFrZUNhbnZhczJETGF5ZXJCcmlkZ2Ug
OiBwdWJsaWMgQ2FudmFzMkRMYXllckJyaWRnZSB7CiBwdWJsaWM6CiAgICAgRmFrZUNhbnZhczJE
TGF5ZXJCcmlkZ2UoKSAKLSAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQ
dHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSks
IERlZmVycmVkLCBTaW5nbGVUaHJlYWQsIDApCisgICAgICAgIDogQ2FudmFzMkRMYXllckJyaWRn
ZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJD
b250ZXh0KGFkb3B0UHRyKG5ldyBXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRCkpLCBJ
bnRTaXplKDEsIDEpLCBTaW5nbGVUaHJlYWQsIDApCiAgICAgICAgICwgbV9mcmVlYWJsZUJ5dGVz
KDApCiAgICAgICAgICwgbV9mcmVlTWVtb3J5SWZQb3NzaWJsZUNvdW50KDApCiAgICAgICAgICwg
bV9mbHVzaENvdW50KDApCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNzY0Y2JjMGZhZGY2NDA4MjJiYzk2ODMyOWNmOTc3Y2EzNTBlOGViNi4uMTUw
NDk2ZGY3ODZlM2U2Mjc3MGUzMmUwMjc1YTNmZjk5MDZhZDc5YiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAz
LTE4ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9t
aXVtXSBDb2RlIGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBj
YW52YXMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBqYW1lc3JAY2hyb21pdW0ub3Jn
LgorCisgICAgICAgIERlbGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9w
YWdhdGluZyBhbmQgc3VwcG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3Ig
ZGlzYWJsaW5nIGRlZmVycmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQ
cmVmZXJlbmNlcy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBy
ZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNl
czo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVs
bDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAg
KFRlc3RTaGVsbCk6CisKIDIwMTMtMDMtMjAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW1F0XSBSZW1vdmUgZW1wdHkgZnVuY3Rpb24gc3R1YnMgZnJvbSBUZXN0
UnVubmVyUXQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggNGNmYmQxNWI3MDkwNDA1ZWIwNzljNWQzNDFlYjNkZjUzODFhN2RiNi4u
ODAzODA0MDNmZGE3OWVhMzc1ZmZhMmNmMzNmOWYwMzY3ZjM0M2ZjMSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNyArNTks
NiBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBvc2l0aW5nW10g
PSAiLS1lbmFibGUtc29mdHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5h
YmxlVGhyZWFkZWRDb21wb3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNvbXBvc2l0aW5n
IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2RlW10gPSAiLS1m
b3JjZS1jb21wb3NpdGluZy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFj
Y2VsZXJhdGVkMkRDYW52YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwot
c3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1tdID0gIi0tZW5h
YmxlLWRlZmVycmVkLTJkLWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12
aWRlbyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9z
aXRpb25bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CiBzdGF0aWMg
Y29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsW10gPSAiLS1l
bmFibGUtYWNjZWxlcmF0ZWQtb3ZlcmZsb3ctc2Nyb2xsIjsKQEAgLTEzOCw3ICsxMzcsNiBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGJvb2wgZm9yY2VDb21wb3NpdGlu
Z01vZGUgPSBmYWxzZTsKICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CiAgICAg
Ym9vbCBhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGJvb2wgZGVmZXJy
ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxz
ZTsKICAgICBib29sIHN0cmVzc09wdCA9IGZhbHNlOwpAQCAtMTgzLDggKzE4MSw2IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJz
ZXIgPSBmYWxzZTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWQyRENhbnZhcykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVk
ID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJy
ZWQyRENhbnZhcykKLSAgICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlUGVyVGlsZVBhaW50aW5n
KQogICAgICAgICAgICAgcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVs
c2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZykKQEAg
LTIyOCw3ICsyMjQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAg
ICBzaGVsbC5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAg
ICAgICAgIHNoZWxsLnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwog
ICAgICAgICBzaGVsbC5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJE
Q2FudmFzRW5hYmxlZCk7Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVk
KGRlZmVycmVkMkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50
aW5nRW5hYmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0RGVm
ZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsK
ICAgICAgICAgc2hlbGwuc2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJQcmVmZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaAppbmRleCA1NjQ0ZDA5OWZlNDdhMDY1NDAyMjFhZGEx
ZGYwZmZhODVkNDVjOWRjLi5iZmNlNWFmZWVlYjJkZmY2NmJkOWQ4ZGU5MjE4MzJhNzdlNmQ3NmEw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgKQEAgLTk0LDcgKzk0LDYgQEAgc3Ry
dWN0IFdFQlRFU1RSVU5ORVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGZvcmNl
Q29tcG9zaXRpbmdNb2RlOwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wg
YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5h
YmxlZDsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVy
YXRlZEFuaW1hdGlvbkVuYWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFi
bGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE2ODc3NzM3OWY4MWMwYTcz
NTcwZGJiNzY4NmY2OGJhMzc1OTY1NTUuLjVkODgyYWVmNTExOTU4MGQ5OGEyNzRiNWEyNzk0NWY4
OGFmMTdlNDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTks
NiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQg
PSBmYWxzZTsKLSAgICBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGZvcmNl
Q29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CiAgICAgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsK
ICAgICBwZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gZmFsc2U7CkBAIC0xODksNyArMTg4LDYgQEAg
dm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRp
bmdzLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAg
c2V0dGluZ3MtPnNldFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAg
IHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZCk7Ci0gICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRl
ZmVycmVkMmRDYW52YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5n
RW5hYmxlZChwZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmZXJy
ZWRJbWFnZURlY29kaW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAg
ICBzZXR0aW5ncy0+c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUobWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5jcHAKaW5kZXggZDNkYjY1ZWIwYzIxODM2NWUwOWJhMDg4YTNmOGY0MmE4N2Zh
YjIxMi4uNjZmMWM0MGRjMGJhMWYwZWM2ODExYmY4YjQ1NTczOGE2NDlhNzJkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMTUsNyArMTE1LDYg
QEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShm
YWxzZSkKICAgICAsIG1fdGhyZWFkZWRIVE1MUGFyc2VyKHRydWUpCiAgICAgLCBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxl
ZChmYWxzZSkKICAgICAsIG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
ZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZh
bHNlKQpAQCAtMjE1LDcgKzIxNCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdz
KFdlYlZpZXcmIHdlYlZpZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxFbmFibGVkOwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2Zv
cmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJs
ZWQgPSBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQy
ZENhbnZhc0VuYWJsZWQgPSBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMu
cGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBt
X3ByZWZzLmRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBtX2RlZmVycmVkSW1hZ2VEZWNv
ZGluZ0VuYWJsZWQ7CiAgICAgbV9wcmVmcy50aHJlYWRlZEhUTUxQYXJzZXIgPSBtX3RocmVhZGVk
SFRNTFBhcnNlcjsKQEAgLTIzNiw3ICsyMzQsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRl
c3QoY29uc3QgVGVzdFBhcmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAg
ICAgIGlmICghbV9zb2Z0d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAgICAgICAgIG1fcHJl
ZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgPSB0cnVlOwotICAgICAgICBtX3By
ZWZzLmRlZmVycmVkMmRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5tb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFwcGx5VG8obV93ZWJW
aWV3KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmlu
ZGV4IGVkN2VhZmNiMjYwYTMxZjQ2YzdiYzJkNjM4ZWNlMTE0YjYzZTY4OTYuLjFjYjM0YWMxYzQ1
YWIwNmNiMGRiOWY2MWExM2FlY2Y0YzUyYzE5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VDb21wb3NpdGlu
Z01vZGUgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZEhUTUxQYXJzZXIoYm9vbCBl
bmFibGVkKSB7IG1fdGhyZWFkZWRIVE1MUGFyc2VyID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0
QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0gICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFz
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KICAgICB2b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERlZmVy
cmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIxNiw3
ICsyMTUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAg
ICBib29sIG1fdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZDsKLSAgICBib29sIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9v
bCBtX3BlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNv
ZGluZ0VuYWJsZWQ7CiAgICAgV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXMgbV9wcmVmczsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjRjNjkzNzlkY2FlYzg3NDI2NWM4MzdlOTQzNjMzYTMyMzQ5NmJmLi45MzM2NTZk
OGNmZDkyMzA2OTBmZDJmZWMzNzJjMjdhNmVjOThlMDJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTMtMDMtMTggIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBbQ2hyb21pdW1dIENvZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVy
cmVkIDJkIGNhbnZhcyByZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IGphbWVzckBjaHJv
bWl1bS5vcmcuCisKKyAgICAgICAgTWFya2VkIHNvbWUgMmQgY2FudmFzIHRlc3RzIGFzIGZhaWxp
bmcuIFRoZXNlIHRlc3RzIGFyZSB1c2luZyB0aGUKKyAgICAgICAgdHdvIHBvaW50IHJhZGlhbCBn
cmFkaWVudCBBUEkuICBUaGUgYnVnIHdhcyBhbHJlYWR5IHByZXNlbnQgaW4KKyAgICAgICAgY2hy
b21pdW0uIFN0YXJ0cyBnZXR0aW5nIGRldGVjdGVkIGluIERSVCB3aXRoIHRoaXMgY2hhbmdlLgor
ICAgICAgICBSZWxhdGVkOiBjcmJ1Zy5jb20vMjIyMTQwCisKIDIwMTMtMDMtMjAgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxNDYzMzEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNmM4ZDEzYWU5ODYyMGU2YjVkZDRjZWY1NDc5Zjg1Mjc2
YjA2ZDI1Li42ZWI0NTA4MGZkYmI0ZjNlMGFhYzQyNWQ5ZWFiYThmNDViZTc5YTdjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NTYs
NiArMTQ1NiwxNCBAQCB3ZWJraXQub3JnL2IvNzUyNzYgWyBBbmRyb2lkIF0gZmFzdC9yZXBhaW50
L3NoYWRvdy1tdWx0aXBsZS1ob3Jpem9udGFsLmh0bWwgWyBJbQogd2Via2l0Lm9yZy9iLzc1Mjc2
IFsgQW5kcm9pZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtc3RyaWN0LWhvcml6b250
YWwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzc1Mjc2IFsgQW5kcm9p
ZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtc3RyaWN0LXZlcnRpY2FsLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIAorIyBUaGVzZSB0ZXN0cyBmYWlsIGR1ZSB0byBhIGJ1ZyB3aXRo
IDJEIGNhbnZhcyBjb21tYW5kIGRlZmVycmFsCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2No
cm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFs
LmNvbmUuYmVzaWRlLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0v
Y2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRp
YWwuY29uZS5zaGFwZTEuaHRtbCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9y
bS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJh
ZGlhbC5jb25lLmJlaGluZC5odG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRm
b3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQu
cmFkaWFsLmNvbmUuc2hhcGUyLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVu
dC5yYWRpYWwudG91Y2gxLmh0bWwgWyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZv
cm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5y
YWRpYWwudG91Y2gzLmh0bWwgWyBGYWlsdXJlIF0KKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBXZWJHTCBUZXN0
cwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194066</attachid>
            <date>2013-03-20 08:25:21 -0700</date>
            <delta_ts>2013-03-20 09:01:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112605-20130320112110.patch</filename>
            <type>text/plain</type>
            <size>41262</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQwMzZiYTgzNzc4YWZl
ZTkwNDhkNzcyMWY1MTk5ZDUyZjQ2MmI2Ni4uMzY3MjU5NmQ2NmJkYTlhMDRmZmJiZWFhMTllNTFj
OGVhMDRlYTUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTE4ICBKdXN0
aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb2Rl
IGNsZWFudXA6IHJlbW92aW5nIHN1cHBvcnQgZm9yIG5vbi1kZWZlcnJlZCAyZCBjYW52YXMgcmVu
ZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI2MDUKKworICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBE
ZWxldGluZyBhbGwgdGhlIGNvZGUgdGhhdCB3YXMgdXNlZCBmb3IgcHJvcGFnYXRpbmcgYW5kIHN1
cHBvcnRpbmcKKyAgICAgICAgdGhlIENocm9taXVtIHNldHRpbmcgZm9yIGRpc2FibGluZyBkZWZl
cnJlZCAyZCBjYW52YXMgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogQWZmZWN0
ZWQgY29kZSBwYXRocyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExh
eWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52
YXMyRExheWVyQnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVGb3JEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6
OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhczJETGF5ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6ZnJlZU1lbW9yeUlmUG9zc2libGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoQ2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZm
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdl
QnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKwogMjAxMy0wMy0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjMzMS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggZDI2NjI0YTQ3ZmE3MDQzOGIyN2NmOTQyMmEwMDQxZDI1NzM3
MWZlMC4uZWUyMGZjZDdlZTBiZmFjNGMyYTczMjljZDUzNTRmZmVkNDIzYmRjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMy0xOCAgSnVzdGluIE5v
dm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29kZSBjbGVh
bnVwOiByZW1vdmluZyBzdXBwb3J0IGZvciBub24tZGVmZXJyZWQgMmQgY2FudmFzIHJlbmRlcmlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgRGVsZXRp
bmcgYWxsIHRoZSBjb2RlIHRoYXQgd2FzIHVzZWQgZm9yIHByb3BhZ2F0aW5nIGFuZCBzdXBwb3J0
aW5nCisgICAgICAgIHRoZSBDaHJvbWl1bSBzZXR0aW5nIGZvciBkaXNhYmxpbmcgZGVmZXJyZWQg
MmQgY2FudmFzIHJlbmRlcmluZy4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RGVmZXJyZWQyZENhbnZhc0VuYWJsZWQp
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKToKKyAgICAgICAgKiB0
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMyRExheWVy
QnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorICAgICAgICAqIHRlc3RzL0NhbnZhczJE
TGF5ZXJNYW5hZ2VyVGVzdC5jcHA6CisgICAgICAgIChGYWtlQ2FudmFzMkRMYXllckJyaWRnZTo6
RmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UpOgorCiAyMDEzLTAzLTE5ICBNYXJrIFBpbGdyaW0gIDxw
aWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1pZ3JhdGUgdG8gV0VC
S0lUX1VTRV9ORVdfV0VCRklMRVNZU1RFTVRZUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggM2NjMmM5MzBhMmNlNThjOTFlZTA4OWQwYmRiYmVhYTEyNmRm
N2E3ZS4uYTNjMDQ2MzMxOWIzNTU2NzQzZmYzMDRhZThkZDQyM2ZlNGQ4M2VhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTUyMCwyMiArNTIwLDYgQEAg
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6c2hvdWxkQWNjZWxlcmF0ZShjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZERl
ZmVyKCkgY29uc3QKLXsKLSNpZiBVU0UoU0tJQSkKLSAgICBpZiAobV9jb250ZXh0ICYmICFtX2Nv
bnRleHQtPmlzMmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKLSAgICBpZiAoIXNldHRpbmdzIHx8ICFz
ZXR0aW5ncy0+ZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
fQotCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFtX2ltYWdlQnVmZmVyKTsKQEAgLTU2NSw4ICs1NDksNyBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAjZWxzZQogICAgICAg
ICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSA9
IHNob3VsZERlZmVyKCkgPyBEZWZlcnJlZCA6IE5vbkRlZmVycmVkOwotICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlKTsKKyAgICBtX2lt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2aWNlU2NhbGVGYWN0
b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUpOwogICAgIGlmICghbV9pbWFn
ZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+
c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKaW5kZXggY2Q5ODIxYzVjMzc3YjY3MTNjYWE3OGJmOWQ1NmNhZDBmYWI0
NTA0YS4uYmY3MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTYwLDggKzE2MCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNldFN1cmZhY2VTaXplKGNvbnN0IEludFNpemUmKTsKIAotICAgIGJv
b2wgc2hvdWxkRGVmZXIoKSBjb25zdDsKLQogICAgIGJvb2wgcGFpbnRzSW50b0NhbnZhc0J1ZmZl
cigpIGNvbnN0OwogCiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZGI3Y2E3YWRiOWE2YjE4MTYzZDg2MDZmM2YzZWIy
NjYwMGUwZDlmMC4uZjY0ZjU3OGJlOGIxZGZlZWIxNmE3M2E1NDMxZjZiMTNkNDk2YmE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xMTMsNyArMTEzLDYgQEAgd2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkIGluaXRpYWw9dHJ1ZQogb3BlbkdMTXVsdGlzYW1wbGluZ0VuYWJsZWQgaW5p
dGlhbD10cnVlCiBwcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNl
CiBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1kZWZlcnJlZDJkQ2Fu
dmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCiBhbnRpYWxpYXNlZDJkQ2FudmFzRW5hYmxlZCBpbml0
aWFsPXRydWUKIGxvYWREZWZlcnJpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogd2ViQXVkaW9FbmFi
bGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IDljNWU2M2E5NTk1ZTlhNjA5OWE1Mjc1NWQ0Nzk2MzNlMjFjODlk
YTcuLjFlNGU1ZDRkNDMzMWM5MmIxYWVhYzgyNTMxNDNhNjQzODVkMDM0MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNzAsMTEgKzcw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEb250Q29weUJhY2tpbmdTdG9yZSAv
LyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCiAgICAgfTsKIAotICAgIGVu
dW0gRGVmZXJyYWxNb2RlIHsKLSAgICAgICAgTm9uRGVmZXJyZWQsCi0gICAgICAgIERlZmVycmVk
Ci0gICAgfTsKLQogICAgIGVudW0gU2NhbGVCZWhhdmlvciB7CiAgICAgICAgIFNjYWxlZCwKICAg
ICAgICAgVW5zY2FsZWQKQEAgLTg0LDEwICs3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9p
bnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPElt
YWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVu
ZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZCwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSA9IE5vbkRlZmVycmVkKQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxJbWFn
ZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPEltYWdlQnVm
ZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBkZWZlcnJhbE1vZGUsIHN1Y2Nlc3MpKTsKKyAg
ICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVm
ZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgc3Vj
Y2VzcykpOwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7CkBAIC0xNjAsNyAr
MTU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFRoaXMgY29uc3RydWN0
b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBvdXQtdmFyaWFibGUKICAg
ICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCByZXR1cm4gZmFp
bHVyZS4KLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBz
dWNjZXNzKTsKKyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2Vzcyk7CiAj
aWYgVVNFKFNLSUEpCiAgICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGJvb2wg
aGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVmZmVyQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQnVm
ZmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggNWQ4YTI0NTI3NmVkMzc5MmQzMWI5NmIzM2IwNzkyNjRi
MDQwOWFhYi4uZmU3MjU5MDg3MDhjMmM2YzBjNmVjYjFkZjNmZDA5MThmOTIzZjBjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJ1
ZmZlckJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvSW1hZ2VCdWZmZXJCbGFja0JlcnJ5LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBA
IHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogdGhpc0NvbnRleHQs
IEdyYXBoaWNzQ29udGV4dCogb3RoZXJDCiAgICAgfQogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2Rl
IGRlZmVycmFsTW9kZSwgSG9zdFdpbmRvdyogd2luZG93LCBib29sJiBzdWNjZXNzKQorSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IEhvc3RXaW5kb3cqIHdpbmRvdywgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fc2l6ZShzaXplKQog
ICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUoMSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKaW5kZXggNjk1MzkzMjdmMTMwNDI2ZTZhOTRmMDRkODgwM2E0NDc4
NjlmMzNmNC4uOWViZWQ5ZDcwMzI2MjZjOTcxNzkwYjZjNDIxYzdhMTBkYzMyZjcyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFn
ZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYpCiB7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENv
bG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0lt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNv
bHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3Mp
CiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2Fs
U2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA3ZTA0MzRjMzZhYzM4ZWQzOTZlZTM2OTUwOWUwNDgz
ZTI0MmQ5YWIxLi5lNTczNzMyMzE2ZGZjMGZlMzliZTY0ZGFhNDE3ZDgwNWNhYzA3ZDQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VJbWFnZURhdGEo
dm9pZCosIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCkKICAgICBmYXN0RnJlZShjb25zdF9jYXN0
PHZvaWQqPihkYXRhKSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNw
YWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIERlZmVycmFsTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8g
Tk9URTogVGhlIGlucHV0IGhlcmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNH
J3MgY29uc3RydWN0b3IganVzdCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJy
aWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52
YXMyRExheWVyQnJpZGdlLmNwcAppbmRleCA2NjI3MmZkYjM4Mjk4MTdlMTIwNTEzMzhjMDhiZTY3
OWM0NDViYjY5Li5lNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMy
RExheWVyQnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiU2tE
ZXZpY2UuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CkBAIC00Mywx
MCArNDQsOCBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVVcGRhdGVyOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
RGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25l
ZCB0ZXh0dXJlSWQpCi0gICAgOiBtX2RlZmVycmFsTW9kZShkZWZlcnJhbE1vZGUpCi0gICAgLCBt
X2Zyb250QnVmZmVyVGV4dHVyZSgwKQotICAgICwgbV9iYWNrQnVmZmVyVGV4dHVyZSh0ZXh0dXJl
SWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1v
ZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQorICAgIDogbV9iYWNrQnVmZmVyVGV4
dHVyZSh0ZXh0dXJlSWQpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fY2FudmFzKDApCiAg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKQEAgLTU5LDMwICs1OCw5IEBAIENhbnZhczJETGF5ZXJC
cmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwKICAgICAvLyBVc2VkIGJ5IGJyb3dzZXIgdGVzdHMgdG8gZGV0ZWN0IHRoZSB1c2Ug
b2YgYSBDYW52YXMyRExheWVyQnJpZGdlLgogICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ0ZXN0
X2dwdSIsICJDYW52YXMyRExheWVyQnJpZGdlQ3JlYXRpb24iKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBjdXJyZW50bHkgdHVybiBvZmYgZG91YmxlIGJ1ZmZlcmluZyB3aGVuIGNhbnZhcyByZW5kZXJp
bmcgaXMKLSAgICAvLyBkZWZlcnJlZC4gV2hhdCB3ZSBzaG91bGQgYmUgZG9pbmcgaXMgdG8gdXNl
IGEgc21hcnRlciBoZXVyaXN0aWMgYmFzZWQKLSAgICAvLyBvbiBHUFUgcmVzb3VyY2UgbW9uaXRv
cmluZyBhbmQgb3RoZXIgZmFjdG9ycyB0byBjaG9zZSBiZXR3ZWVuIHNpbmdsZQotICAgIC8vIGFu
ZCBkb3VibGUgYnVmZmVyaW5nLgotICAgIG1fdXNlRG91YmxlQnVmZmVyaW5nID0gdGhyZWFkTW9k
ZSA9PSBUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQ7Ci0KLSAgICBpZiAo
bV91c2VEb3VibGVCdWZmZXJpbmcpIHsKLSAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKTsKLSAgICAgICAgbV9mcm9udEJ1ZmZlclRleHR1cmUgPSBtX2NvbnRleHQtPmNyZWF0
ZVRleHR1cmUoKTsKLSAgICAgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgbV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAgICAvLyBEbyBi
YXNpYyBsaW5lYXIgZmlsdGVyaW5nIG9uIHJlc2l6ZS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV9NSU5fRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKLSAgICAg
ICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQz
RDo6TElORUFSKTsKLSAgICAgICAgLy8gTlBPVCB0ZXh0dXJlcyBpbiBHTCBFUyBvbmx5IHdvcmsg
d2hlbiB0aGUgd3JhcCBtb2RlIGlzIHNldCB0byBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9f
RURHRS4KLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1MsIEdyYXBoaWNz
Q29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAgbV9jb250ZXh0LT50ZXhQYXJhbWV0
ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV9XUkFQX1QsIEdyYXBoaWNzQ29udGV4dDNEOjpDTEFNUF9UT19FREdFKTsKLSAgICAgICAg
bV9jb250ZXh0LT50ZXhJbWFnZTJEUmVzb3VyY2VTYWZlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX0JZVEUpOwotICAgICAgICBpZiAoR3JDb250ZXh0KiBnckNvbnRleHQgPSBtX2NvbnRl
eHQtPmdyQ29udGV4dCgpKQotICAgICAgICAgICAgZ3JDb250ZXh0LT5yZXNldENvbnRleHQoKTsK
LSAgICB9Ci0KICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0aGlz
KSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXllci0+
c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCB8fCBtX3VzZURv
dWJsZUJ1ZmZlcmluZyk7CisgICAgbV9sYXllci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRN
b2RlID09IFNpbmdsZVRocmVhZCk7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3Rl
ckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKQEAgLTkwLDIxICs2OCw5IEBA
IENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdlKCkKIHsKICAgICBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0ZXJDb250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVy
KCkpOwogICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllclRvQmVEZXN0cm95ZWQo
dGhpcyk7Ci0gICAgaWYgKFNrRGVmZXJyZWRDYW52YXMqIGRlZmVycmVkID0gZGVmZXJyZWRDYW52
YXMoKSkKLSAgICAgICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCgwKTsKKyAgICBp
ZiAobV9jYW52YXMpCisgICAgICAgIG1fY2FudmFzLT5zZXROb3RpZmljYXRpb25DbGllbnQoMCk7
CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKDApOwotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZl
cmluZykgewotICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBtX2NvbnRleHQtPmRlbGV0ZVRleHR1cmUobV9mcm9udEJ1ZmZlclRleHR1cmUpOwotICAgICAg
ICBtX2NvbnRleHQtPmZsdXNoKCk7Ci0gICAgfQotfQotCi1Ta0RlZmVycmVkQ2FudmFzKiBDYW52
YXMyRExheWVyQnJpZGdlOjpkZWZlcnJlZENhbnZhcygpCi17Ci0gICAgaWYgKG1fZGVmZXJyYWxN
b2RlID09IERlZmVycmVkKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2tEZWZlcnJlZENh
bnZhcyo+KG1fY2FudmFzKTsKLSAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpsaW1pdFBlbmRpbmdGcmFtZXMoKQpAQCAtMTE5LDE1ICs4NSwxMiBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmxpbWl0UGVuZGluZ0ZyYW1lcygpCiAKIHZvaWQgQ2FudmFzMkRM
YXllckJyaWRnZTo6cHJlcGFyZUZvckRyYXcoKQogewotICAgIEFTU0VSVChkZWZlcnJlZENhbnZh
cygpKTsKLSAgICBpZiAoIW1fdXNlRG91YmxlQnVmZmVyaW5nKQotICAgICAgICBtX2xheWVyLT53
aWxsTW9kaWZ5VGV4dHVyZSgpOworICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7CiAg
ICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAogdm9pZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpzdG9yYWdlQWxsb2NhdGVkRm9yUmVjb3JkaW5nQ2hhbmdlZChzaXplX3QgYnl0
ZXNBbGxvY2F0ZWQpCiB7Ci0gICAgQVNTRVJUKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKTsK
ICAgICBpbnRwdHJfdCBkZWx0YSA9IChpbnRwdHJfdClieXRlc0FsbG9jYXRlZCAtIChpbnRwdHJf
dCltX2J5dGVzQWxsb2NhdGVkOwogICAgIG1fYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0FsbG9jYXRl
ZDsKICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdl
Q2hhbmdlZCh0aGlzLCBkZWx0YSk7CkBAIC0xMzUsNyArOTgsNyBAQCB2b2lkIENhbnZhczJETGF5
ZXJCcmlkZ2U6OnN0b3JhZ2VBbGxvY2F0ZWRGb3JSZWNvcmRpbmdDaGFuZ2VkKHNpemVfdCBieXRl
c0FsbG9jYQogCiBzaXplX3QgQ2FudmFzMkRMYXllckJyaWRnZTo6c3RvcmFnZUFsbG9jYXRlZEZv
clJlY29yZGluZygpCiB7Ci0gICAgcmV0dXJuIGRlZmVycmVkQ2FudmFzKCktPnN0b3JhZ2VBbGxv
Y2F0ZWRGb3JSZWNvcmRpbmcoKTsKKyAgICByZXR1cm4gbV9jYW52YXMgPyBtX2NhbnZhcy0+c3Rv
cmFnZUFsbG9jYXRlZEZvclJlY29yZGluZygpIDogMDsKIH0KIAogdm9pZCBDYW52YXMyRExheWVy
QnJpZGdlOjpmbHVzaGVkRHJhd0NvbW1hbmRzKCkKQEAgLTE1MSw4ICsxMTQsNyBAQCB2b2lkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OnNraXBwZWRQZW5kaW5nRHJhd0NvbW1hbmRzKCkKIAogc2l6ZV90
IENhbnZhczJETGF5ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1Rv
RnJlZSkKIHsKLSAgICBBU1NFUlQoZGVmZXJyZWRDYW52YXMoKSk7Ci0gICAgc2l6ZV90IGJ5dGVz
RnJlZWQgPSBkZWZlcnJlZENhbnZhcygpLT5mcmVlTWVtb3J5SWZQb3NzaWJsZShieXRlc1RvRnJl
ZSk7CisgICAgc2l6ZV90IGJ5dGVzRnJlZWQgPSBtX2NhbnZhcyA/IG1fY2FudmFzLT5mcmVlTWVt
b3J5SWZQb3NzaWJsZShieXRlc1RvRnJlZSkgOiAwOwogICAgIGlmIChieXRlc0ZyZWVkKQogICAg
ICAgICBDYW52YXMyRExheWVyTWFuYWdlcjo6Z2V0KCkubGF5ZXJBbGxvY2F0ZWRTdG9yYWdlQ2hh
bmdlZCh0aGlzLCAtKChpbnRwdHJfdClieXRlc0ZyZWVkKSk7CiAgICAgbV9ieXRlc0FsbG9jYXRl
ZCAtPSBieXRlc0ZyZWVkOwpAQCAtMTYxLDIxICsxMjMsMTUgQEAgc2l6ZV90IENhbnZhczJETGF5
ZXJCcmlkZ2U6OmZyZWVNZW1vcnlJZlBvc3NpYmxlKHNpemVfdCBieXRlc1RvRnJlZSkKIAogdm9p
ZCBDYW52YXMyRExheWVyQnJpZGdlOjpmbHVzaCgpCiB7Ci0gICAgQVNTRVJUKGRlZmVycmVkQ2Fu
dmFzKCkpOwotICAgIGlmIChkZWZlcnJlZENhbnZhcygpLT5oYXNQZW5kaW5nQ29tbWFuZHMoKSkK
KyAgICBpZiAobV9jYW52YXMgJiYgbV9jYW52YXMtPmhhc1BlbmRpbmdDb21tYW5kcygpKQogICAg
ICAgICBtX2NhbnZhcy0+Zmx1c2goKTsKIH0KIAogU2tDYW52YXMqIENhbnZhczJETGF5ZXJCcmlk
Z2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZpY2UpCiB7CiAgICAgQVNTRVJUKCFtX2NhbnZhcyk7
Ci0gICAgaWYgKG1fZGVmZXJyYWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIFNrRGVmZXJy
ZWRDYW52YXMqIGRlZmVycmVkID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNlKTsKLSAgICAg
ICAgZGVmZXJyZWQtPnNldE5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKTsKLSAgICAgICAgbV9jYW52
YXMgPSBkZWZlcnJlZDsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9jYW52YXMgPSBuZXcgU2tDYW52
YXMoZGV2aWNlKTsKLQorICAgIG1fY2FudmFzID0gbmV3IFNrRGVmZXJyZWRDYW52YXMoZGV2aWNl
KTsKKyAgICBtX2NhbnZhcy0+c2V0Tm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpOwogICAgIHJldHVy
biBtX2NhbnZhczsKIH0KIApAQCAtMTkxLDExICsxNDcsNiBAQCB1bnNpZ25lZCBDYW52YXMyRExh
eWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZShXZWJUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKIAog
ICAgIG1fY29udGV4dC0+Zmx1c2goKTsKIAotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykg
ewotICAgICAgICB1cGRhdGVyLmFwcGVuZENvcHkobV9iYWNrQnVmZmVyVGV4dHVyZSwgbV9mcm9u
dEJ1ZmZlclRleHR1cmUsIG1fc2l6ZSk7Ci0gICAgICAgIHJldHVybiBtX2Zyb250QnVmZmVyVGV4
dHVyZTsKLSAgICB9Ci0KICAgICBpZiAobV9jYW52YXMpIHsKICAgICAgICAgLy8gTm90aWZ5IHNr
aWEgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIGJhY2tpbmcgc3RvcmUgdGV4dHVyZSBvYmplY3Qgd2ls
bCBiZSB0b3VjaGVkIGJ5IHRoZSBjb21wb3NpdG9yCiAgICAgICAgIEdyUmVuZGVyVGFyZ2V0KiBy
ZW5kZXJUYXJnZXQgPSByZWludGVycHJldF9jYXN0PEdyUmVuZGVyVGFyZ2V0Kj4obV9jYW52YXMt
PmdldERldmljZSgpLT5hY2Nlc3NSZW5kZXJUYXJnZXQoKSk7CkBAIC0yMTcsMTIgKzE2OCw4IEBA
IFdlYktpdDo6V2ViTGF5ZXIqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKCkKIAogdm9pZCBD
YW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0QWNxdWlyZWQoKQogewotICAgIGlmIChtX2RlZmVy
cmFsTW9kZSA9PSBOb25EZWZlcnJlZCAmJiAhbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAgICAg
IG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJlKCk7Ci0gICAgZWxzZSBpZiAobV9kZWZlcnJhbE1v
ZGUgPT0gRGVmZXJyZWQpIHsKLSAgICAgICAgQ2FudmFzMkRMYXllck1hbmFnZXI6OmdldCgpLmxh
eWVyRGlkRHJhdyh0aGlzKTsKLSAgICAgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7
Ci0gICAgfQorICAgIENhbnZhczJETGF5ZXJNYW5hZ2VyOjpnZXQoKS5sYXllckRpZERyYXcodGhp
cyk7CisgICAgbV9kaWRSZWNvcmREcmF3Q29tbWFuZCA9IHRydWU7CiB9CiAKIHVuc2lnbmVkIENh
bnZhczJETGF5ZXJCcmlkZ2U6OmJhY2tCdWZmZXJUZXh0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5
ZXJCcmlkZ2UuaAppbmRleCA4ZTQ0MmZkOTE3N2FhODI4M2QyYjA2ODdhNDA1ODM5Y2ViNjUwMzJk
Li5iMzg2MzA0YzMzN2YzMDNhNjc0NWU2YTkxZDk0YzZlOTVjZTUyMWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJp
ZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckJyaWRnZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENhbnZhczJETGF5
ZXJCcmlkZ2VfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIiAvLyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgogI2luY2x1ZGUgIlNrRGVmZXJyZWRDYW52YXMuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KQEAgLTUwLDkgKzQ5LDkgQEAgcHVibGljOgogICAgICAg
ICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVy
QnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgVGhyZWFkTW9kZSB0
aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDYW52
YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRpbmcsIHVuc2lnbmVk
IHRleHR1cmVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRM
YXllckJyaWRnZShjb250ZXh0LCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZGluZywgdGV4dHVy
ZUlkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRMYXllckJyaWRnZShj
b250ZXh0LCBzaXplLCB0aHJlYWRpbmcsIHRleHR1cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAgLTgxLDE1ICs4MCwxMSBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgYmFja0J1ZmZlclRleHR1cmUoKTsKIAogcHJvdGVjdGVkOgotICAgIENhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IEludFNp
emUmLCBEZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7Ci0gICAg
U2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWRDYW52YXMoKTsKKyAgICBDYW52YXMyRExheWVyQnJp
ZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFk
TW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKTsKIAotICAgIERlZmVycmFsTW9kZSBtX2RlZmVycmFs
TW9kZTsKLSAgICBib29sIG1fdXNlRG91YmxlQnVmZmVyaW5nOwotICAgIHVuc2lnbmVkIG1fZnJv
bnRCdWZmZXJUZXh0dXJlOwogICAgIHVuc2lnbmVkIG1fYmFja0J1ZmZlclRleHR1cmU7CiAgICAg
SW50U2l6ZSBtX3NpemU7Ci0gICAgU2tDYW52YXMqIG1fY2FudmFzOworICAgIFNrRGVmZXJyZWRD
YW52YXMqIG1fY2FudmFzOwogICAgIE93blB0cjxXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxh
eWVyPiBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0Owog
ICAgIHNpemVfdCBtX2J5dGVzQWxsb2NhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCA0Mzg1OWNhZDFjNzQ4
MzU0M2MwN2RmMThhZDYzZTk1N2E3Mjg1OGQ0Li4xYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdj
ZjUxYmM3Yzc4NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VC
dWZmZXJEYXRhOjp0b1FJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1
dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJv
b2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
LCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA3NDJiMDEx
YjgwMmVlMDExYTY0ZGJhNzM1NGFjMWNkM2U3ZTgwNDY1Li42MTMwOWZhZDQ3YzVlZWJmYjhlNGVh
NDBmNGVlOTQ5YWI3MDA5ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmIHNpemUpCiB7
CiB9CiAKLXN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxN
b2RlKQorc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRT
aXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGRhdGEpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBjb250ZXh0M0QgPSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAg
ICAgaWYgKCFjb250ZXh0M0QpCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBTa0NhbnZhcyogY3Jl
YXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRh
KiBkCiAgICAgU2tBdXRvVFVucmVmPFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdy
LCB0ZXh0dXJlLmdldCgpKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxh
dGZvcm06OmN1cnJlbnQoKS0+aXNUaHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFz
MkRMYXllckJyaWRnZTo6VGhyZWFkZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJl
YWQ7Ci0gICAgZGF0YS0+bV9sYXllckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0
ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXplLCBkZWZlcnJhbE1vZGUsIHRocmVhZE1vZGUsIHRl
eHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5kbGUoKSk7CisgICAgZGF0YS0+bV9sYXllckJyaWRn
ZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgpLCBzaXpl
LCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwogICAgIGNh
bnZhcyA9IGRhdGEtPm1fbGF5ZXJCcmlkZ2UtPnNrQ2FudmFzKGRldmljZS5nZXQoKSk7CiAjZWxz
ZQogICAgIGNhbnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwpAQCAtMTUxLDcgKzE1
MSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAK
LUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgRGVm
ZXJyYWxNb2RlIGRlZmVycmFsTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFn
ZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6
IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNp
emUpCkBAIC0xNjAsNyArMTYwLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBPd25Q
dHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IEFjY2VsZXJh
dGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhz
aXplLCAmbV9kYXRhLCBkZWZlcnJhbE1vZGUpKTsKKyAgICAgICAgY2FudmFzID0gYWRvcHRQdHIo
Y3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSkpOwogICAgIGVsc2UgaWYgKHJl
bmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyKQogICAgICAgICBj
YW52YXMgPSBhZG9wdFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZhcyhzaXplKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVy
V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKaW5kZXggYzNjNDExOWYzYzRkYTBkNDVkNmYyN2Y2ZWQ1NzI4ZGFmMjk4
NDhkNi4uZmQ0MWUxMjRiZWI3MzFjZDdiMTJiMDdiNzcyOTVjMmM3NzE2ZTFmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1
ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1hcC0+c2V0SGFzQWxwaGEo
dHJ1ZSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSwgRGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVy
V3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJX
eC5jcHAKaW5kZXggNGY0MWVkMTAzY2Y3YzE5ZTNiMzRlNTk1YzAyYzlmN2JhZTJhOWI4NC4uOWYw
MWVhMjMwMDIwOGJmNmYxNjBhNTBkMmFlZDhmN2UyMGQ1OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAKQEAgLTk0
LDcgKzk0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKCkKICAgICBkZWxl
dGUgbV9tZW1EQzsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5k
ZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1h
Z2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBt
X2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXpl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZTky
YjZjODk5ZjQ4MGUwZDE2NDBmODM3ZTk1NzRlNTIyYjRlY2YyYy4uNzI1YzYxYzgwMDU1OTEwODg4
MjVjMTk5MmVmNzhjNzhmMDEyMjJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmYXVsdEZvbnRTaXplKGludCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZh
dWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldERlZmF1bHRWaWRlb1Bvc3RlclVSTChjb25zdCBXZWJTdHJpbmcmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpID0gMDsKKyAgICB2
b2lkIHNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wpIHsgfSAvLyB0ZW1wb3Jhcnkgc3R1
YgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXgg
MGMwZDJmZGJlZWUzODFmOWI4MGNiM2IwOTRhZTdjODMzMDViODE2MC4uOWYzNDkwMWUwZDExMjVk
ZjAwYjU0NmY4NmNhMGQ1Mjg2YTlhNjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MTQsNyArNTE0LDYgQEAgdm9pZCBXZWJTZXR0
aW5nc0ltcGw6OnNldEFudGlhbGlhc2VkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAog
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKLSAgICBtX3NldHRpbmdzLT5zZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCBjNDRmMzMwYjQ3MTZm
MDM0MTBlODJkMmY4NTMxNjZkNTIzMzYyNTc3Li42ZjI2MWJhM2M5Zjk1MTA4NTZjYzY5MzUzM2Ez
M2VhMzRkNDU3MzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAKIGNsYXNzIENhbnZhczJETGF5ZXJCcmlkZ2VUZXN0IDogcHVibGljIFRlc3QgewogcHJvdGVj
dGVkOgotICAgIHZvaWQgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhy
ZWFkTW9kZSB0aHJlYWRNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlKQorICAgIHZvaWQg
ZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9kZSB0aHJlYWRN
b2RlKQogICAgIHsKICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtYWluQ29udGV4
dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdl
YkNvbnRleHQoYWRvcHRQdHIobmV3IE1vY2tDYW52YXNDb250ZXh0KSk7CiAKQEAgLTc2LDUyICs3
NiwyOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAg
ICAgICAgIFdlYkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwogCi0gICAgICAgIC8vIFRocmVhZGVk
IGFuZCBub24gZGVmZXJyZWQgY2FudmFzZXMgYXJlIGRvdWJsZSBidWZmZXJlZC4KLSAgICAgICAg
aWYgKHRocmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJy
YWxNb2RlID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBmcm9udFRleHR1cmVJZCA9IDI7
Ci0gICAgICAgICAgICAvLyBDcmVhdGUgdGV4dHVyZSAob24gdGhlIG1haW4gdGhyZWFkKSBhbmQg
ZG8gdGhlIGNvcHkgKG9uIHRoZSBpbXBsIHRocmVhZCkuCi0gICAgICAgICAgICBFWFBFQ1RfQ0FM
TChtYWluTW9jaywgY3JlYXRlVGV4dHVyZSgpKS5XaWxsT25jZShSZXR1cm4oZnJvbnRUZXh0dXJl
SWQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBi
cmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNp
emUsIGRlZmVycmFsTW9kZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CisgICAgICAgIE93
blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpj
cmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIHRocmVhZE1vZGUsIGJhY2tUZXh0dXJlSWQp
OwogCiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMo
Jm1haW5Nb2NrKTsKIAogICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7Ci0g
ICAgICAgIGlmICh0aHJlYWRNb2RlID09IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkICYm
IGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVw
ZGF0ZXIsIGFwcGVuZENvcHkoYmFja1RleHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUo
MzAwLCAxNTApKSk7CiAgICAgICAgIEVYUEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5w
cmVwYXJlVGV4dHVyZSh1cGRhdGVyKSk7CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5
QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKICAgICAgICAgOjp0ZXN0aW5nOjpNb2Nr
OjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKLSAgICAgICAgaWYgKHRo
cmVhZE1vZGUgPT0gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkZWQgJiYgZGVmZXJyYWxNb2Rl
ID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVs
ZXRlVGV4dHVyZShmcm9udFRleHR1cmVJZCkpOwotICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGZsdXNoKCkpOwotICAgICAgICB9CiAgICAgICAgIGJyaWRnZS5jbGVhcigpOwogICAg
IH0KIH07CiAKIG5hbWVzcGFjZSB7CiAKLVRFU1RfRihDYW52YXMyRExheWVyQnJpZGdlVGVzdCwg
dGVzdEZ1bGxMaWZlY3ljbGVTaW5nbGVUaHJlYWRlZERlZmVycmVkKQotewotICAgIGZ1bGxMaWZl
Y3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZCwgTm9uRGVmZXJyZWQp
OwotfQotCi1URVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xl
U2luZ2xlVGhyZWFkZWROb25EZWZlcnJlZCkKLXsKLSAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52
YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQsIERlZmVycmVkKTsKLX0KLQotVEVTVF9GKENh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LCB0ZXN0RnVsbExpZmVjeWNsZVRocmVhZGVkTm9uRGVmZXJy
ZWQpCitURVNUX0YoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlU2lu
Z2xlVGhyZWFkZWQpCiB7Ci0gICAgZnVsbExpZmVjeWNsZVRlc3QoQ2FudmFzMkRMYXllckJyaWRn
ZTo6VGhyZWFkZWQsIE5vbkRlZmVycmVkKTsKKyAgICBmdWxsTGlmZWN5Y2xlVGVzdChDYW52YXMy
RExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQpOwogfQogCi1URVNUX0YoQ2FudmFzMkRMYXllckJy
aWRnZVRlc3QsIHRlc3RGdWxsTGlmZWN5Y2xlVGhyZWFkZWREZWZlcnJlZCkKK1RFU1RfRihDYW52
YXMyRExheWVyQnJpZGdlVGVzdCwgdGVzdEZ1bGxMaWZlY3ljbGVUaHJlYWRlZCkKIHsKLSAgICBm
dWxsTGlmZWN5Y2xlVGVzdChDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCwgRGVmZXJyZWQp
OworICAgIGZ1bGxMaWZlY3ljbGVUZXN0KENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJUZXN0LmNwcAppbmRleCBmZWIzMWIyODRmZTM0
YjQxMTdkNTgwMGI4YTViZDk3M2E0YTVlYzE4Li4yOTc3M2FlY2IyMDk2OTcyYTM1YWNkZjdiYmRj
ODUzYWRhOTRjNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHVzaW5n
IHRlc3Rpbmc6OlRlc3Q7CiBjbGFzcyBGYWtlQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBD
YW52YXMyRExheWVyQnJpZGdlIHsKIHB1YmxpYzoKICAgICBGYWtlQ2FudmFzMkRMYXllckJyaWRn
ZSgpIAotICAgICAgICA6IENhbnZhczJETGF5ZXJCcmlkZ2UoR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgV2Vi
S2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpKSwgSW50U2l6ZSgxLCAxKSwgRGVmZXJyZWQs
IFNpbmdsZVRocmVhZCwgMCkKKyAgICAgICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRv
cHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwg
MSksIFNpbmdsZVRocmVhZCwgMCkKICAgICAgICAgLCBtX2ZyZWVhYmxlQnl0ZXMoMCkKICAgICAg
ICAgLCBtX2ZyZWVNZW1vcnlJZlBvc3NpYmxlQ291bnQoMCkKICAgICAgICAgLCBtX2ZsdXNoQ291
bnQoMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA3NjRjYmMwZmFkZjY0MDgyMmJjOTY4MzI5Y2Y5NzdjYTM1MGU4ZWI2Li4xODMxZGExOGIzZjBi
NjUzYzBjZmM3MjY5YjI2ZjMzNDFjYTkwZjRlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMTggIEp1c3Rp
biBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvZGUg
Y2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyByZW5k
ZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIERl
bGV0aW5nIGFsbCB0aGUgY29kZSB0aGF0IHdhcyB1c2VkIGZvciBwcm9wYWdhdGluZyBhbmQgc3Vw
cG9ydGluZworICAgICAgICB0aGUgQ2hyb21pdW0gc2V0dGluZyBmb3IgZGlzYWJsaW5nIGRlZmVy
cmVkIDJkIGNhbnZhcyByZW5kZXJpbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNl
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAg
KFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAgICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0
aW5ncyk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6CisK
IDIwMTMtMDMtMjAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSBSZW1vdmUgZW1wdHkgZnVuY3Rpb24gc3R1YnMgZnJvbSBUZXN0UnVubmVyUXQuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NGNmYmQxNWI3MDkwNDA1ZWIwNzljNWQzNDFlYjNkZjUzODFhN2RiNi4uODAzODA0MDNmZGE3OWVh
Mzc1ZmZhMmNmMzNmOWYwMzY3ZjM0M2ZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNyArNTksNiBAQCBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25FbmFibGVTb2Z0d2FyZUNvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtc29m
dHdhcmUtY29tcG9zaQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlVGhyZWFkZWRDb21w
b3NpdGluZ1tdID0gIi0tZW5hYmxlLXRocmVhZGVkLWNvbXBvc2l0aW5nIjsKIHN0YXRpYyBjb25z
dCBjaGFyIG9wdGlvbkZvcmNlQ29tcG9zaXRpbmdNb2RlW10gPSAiLS1mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52
YXNbXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwotc3RhdGljIGNvbnN0IGNo
YXIgb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWRlZmVycmVkLTJk
LWNhbnZhcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9bXSA9ICItLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbyI7CiBzdGF0aWMg
Y29uc3QgY2hhciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZEZpeGVkUG9zaXRpb25bXSA9ICItLWVu
YWJsZS1hY2NlbGVyYXRlZC1maXhlZC1wb3NpdGlvbiI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRp
b25FbmFibGVBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0
ZWQtb3ZlcmZsb3ctc2Nyb2xsIjsKQEAgLTEzOCw3ICsxMzcsNiBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxzZTsK
ICAgICBib29sIHRocmVhZGVkSFRNTFBhcnNlciA9IHRydWU7CiAgICAgYm9vbCBhY2NlbGVyYXRl
ZDJEQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwotICAgIGJvb2wgZGVmZXJyZWQyRENhbnZhc0VuYWJs
ZWQgPSBmYWxzZTsKICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKICAg
ICBib29sIGRlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHN0
cmVzc09wdCA9IGZhbHNlOwpAQCAtMTgzLDggKzE4MSw2IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyKiBhcmd2W10pCiAgICAgICAgICAgICB0aHJlYWRlZEhUTUxQYXJzZXIgPSBmYWxzZTsKICAg
ICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWQyRENhbnZh
cykKICAgICAgICAgICAgIGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJyZWQyRENhbnZhcykKLSAg
ICAgICAgICAgIGRlZmVycmVkMkRDYW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBp
ZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlUGVyVGlsZVBhaW50aW5nKQogICAgICAgICAgICAg
cGVyVGlsZVBhaW50aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50
ID09IG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZykKQEAgLTIyOCw3ICsyMjQsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBzaGVsbC5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgICAgIHNoZWxsLnNl
dFRocmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgICAgICBzaGVsbC5z
ZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJEQ2FudmFzRW5hYmxlZCk7
Ci0gICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMkRDYW52
YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJU
aWxlUGFpbnRpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0RGVmZXJyZWRJbWFnZURlY29k
aW5nRW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICAgICAgc2hlbGwu
c2V0SmF2YVNjcmlwdEZsYWdzKGphdmFTY3JpcHRGbGFncyk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJl
ZmVyZW5jZXMuaAppbmRleCA1NjQ0ZDA5OWZlNDdhMDY1NDAyMjFhZGExZGYwZmZhODVkNDVjOWRj
Li5iZmNlNWFmZWVlYjJkZmY2NmJkOWQ4ZGU5MjE4MzJhNzdlNmQ3NmEwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJl
bmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlByZWZlcmVuY2VzLmgKQEAgLTk0LDcgKzk0LDYgQEAgc3RydWN0IFdFQlRFU1RSVU5O
RVJfRVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
OwogICAgIGJvb2wgdGhyZWFkZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQ7Ci0gICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBib29s
IHBlclRpbGVQYWludGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZEFuaW1hdGlvbkVu
YWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE2ODc3NzM3OWY4MWMwYTczNTcwZGJiNzY4NmY2OGJh
Mzc1OTY1NTUuLjVkODgyYWVmNTExOTU4MGQ5OGEyNzRiNWEyNzk0NWY4OGFmMTdlNDEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExOSw3ICsxMTksNiBAQCB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
ID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKLSAgICBk
ZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGZvcmNlQ29tcG9zaXRpbmdNb2Rl
ID0gZmFsc2U7CiAgICAgdGhyZWFkZWRIVE1MUGFyc2VyID0gdHJ1ZTsKICAgICBwZXJUaWxlUGFp
bnRpbmdFbmFibGVkID0gZmFsc2U7CkBAIC0xODksNyArMTg4LDYgQEAgdm9pZCBXZWJQcmVmZXJl
bmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNldFRo
cmVhZGVkSFRNTFBhcnNlcih0aHJlYWRlZEhUTUxQYXJzZXIpOwogICAgIHNldHRpbmdzLT5zZXRB
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7Ci0g
ICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52YXNF
bmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChwZXJUaWxl
UGFpbnRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmZXJyZWRJbWFnZURlY29kaW5n
RW5hYmxlZChkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0
TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUobWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
aW5kZXggZDNkYjY1ZWIwYzIxODM2NWUwOWJhMDg4YTNmOGY0MmE4N2ZhYjIxMi4uNjZmMWM0MGRj
MGJhMWYwZWM2ODExYmY4YjQ1NTczOGE2NDlhNzJkOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMTUsNyArMTE1LDYgQEAgVGVzdFNoZWxsOjpU
ZXN0U2hlbGwoKQogICAgICwgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZShmYWxzZSkKICAgICAsIG1f
dGhyZWFkZWRIVE1MUGFyc2VyKHRydWUpCiAgICAgLCBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQpAQCAtMjE1LDcg
KzIxNCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdlYlZp
ZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxF
bmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
OwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBtX2FjY2VsZXJh
dGVkMmRDYW52YXNFbmFibGVkOwotICAgIG1fcHJlZnMuZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQg
PSBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkOwogICAgIG1fcHJlZnMucGVyVGlsZVBhaW50aW5n
RW5hYmxlZCA9IG1fcGVyVGlsZVBhaW50aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmRlZmVycmVk
SW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgbV9wcmVmcy50aHJlYWRlZEhUTUxQYXJzZXIgPSBtX3RocmVhZGVkSFRNTFBhcnNlcjsKQEAg
LTIzNiw3ICsyMzQsNiBAQCB2b2lkIFRlc3RTaGVsbDo6cnVuRmlsZVRlc3QoY29uc3QgVGVzdFBh
cmFtcyYgcGFyYW1zLCBib29sIHNob3VsZER1bXBQaXhlbHMpCiAgICAgICAgIGlmICghbV9zb2Z0
d2FyZUNvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAgICAgICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JWaWRlb0VuYWJsZWQgPSB0cnVlOwotICAgICAgICBtX3ByZWZzLmRlZmVycmVkMmRD
YW52YXNFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgbV9wcmVmcy5tb2NrU2Nyb2xsYmFyc0VuYWJs
ZWQgPSB0cnVlOwogICAgICAgICBtX3ByZWZzLmFwcGx5VG8obV93ZWJWaWV3KTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IGVkN2VhZmNiMjYw
YTMxZjQ2YzdiYzJkNjM4ZWNlMTE0YjYzZTY4OTYuLjFjYjM0YWMxYzQ1YWIwNmNiMGRiOWY2MWEx
M2FlY2Y0YzUyYzE5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5oCkBAIC0xMjEsNyArMTIxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VDb21wb3NpdGluZ01vZGUgPSBlbmFibGVk
OyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZEhUTUxQYXJzZXIoYm9vbCBlbmFibGVkKSB7IG1fdGhy
ZWFkZWRIVE1MUGFyc2VyID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQg
PSBlbmFibGVkOyB9Ci0gICAgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lk
IHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcGVyVGlsZVBhaW50
aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERlZmVycmVkSW1hZ2VEZWNvZGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9
IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKQEAgLTIxNiw3ICsyMTUsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsKICAgICBib29sIG1fdGhyZWFk
ZWRIVE1MUGFyc2VyOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKLSAg
ICBib29sIG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9vbCBtX3BlclRpbGVQYWlu
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiAg
ICAgV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXMgbV9wcmVmczsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNjRjNjkz
NzlkY2FlYzg3NDI2NWM4MzdlOTQzNjMzYTMyMzQ5NmJmLi40NjUxNzJjYjI5NjAxNmU4YWI3YTcz
YjFlMmIzMjk1NTBhOWY3ZDM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDMtMTggIEp1
c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENv
ZGUgY2xlYW51cDogcmVtb3Zpbmcgc3VwcG9ydCBmb3Igbm9uLWRlZmVycmVkIDJkIGNhbnZhcyBy
ZW5kZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAg
IE1hcmtlZCBzb21lIDJkIGNhbnZhcyB0ZXN0cyBhcyBmYWlsaW5nLiBUaGVzZSB0ZXN0cyBhcmUg
dXNpbmcgdGhlCisgICAgICAgIHR3byBwb2ludCByYWRpYWwgZ3JhZGllbnQgQVBJLiAgVGhlIGJ1
ZyB3YXMgYWxyZWFkeSBwcmVzZW50IGluCisgICAgICAgIGNocm9taXVtLiBTdGFydHMgZ2V0dGlu
ZyBkZXRlY3RlZCBpbiBEUlQgd2l0aCB0aGlzIGNoYW5nZS4KKyAgICAgICAgUmVsYXRlZDogY3Ji
dWcuY29tLzIyMjE0MAorCiAyMDEzLTAzLTIwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ2MzMx
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMjZjOGQxM2FlOTg2MjBlNmI1ZGQ0Y2VmNTQ3OWY4NTI3NmIwNmQyNS4uNmViNDUwODBmZGJi
NGYzZTBhYWM0MjVkOWVhYmE4ZjQ1YmU3OWE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDU2LDYgKzE0NTYsMTQgQEAgd2Via2l0
Lm9yZy9iLzc1Mjc2IFsgQW5kcm9pZCBdIGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtaG9y
aXpvbnRhbC5odG1sIFsgSW0KIHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3Jl
cGFpbnQvc2hhZG93LW11bHRpcGxlLXN0cmljdC1ob3Jpem9udGFsLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83NTI3NiBbIEFuZHJvaWQgXSBmYXN0L3JlcGFpbnQvc2hh
ZG93LW11bHRpcGxlLXN0cmljdC12ZXJ0aWNhbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
KyMgVGhlc2UgdGVzdHMgZmFpbCBkdWUgdG8gYSBidWcgd2l0aCAyRCBjYW52YXMgY29tbWFuZCBk
ZWZlcnJhbAorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLmJlc2lkZS5odG1sIFsg
RmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLmNvbmUuc2hhcGUxLmh0bWwg
WyBGYWlsdXJlIF0KK2NyYnVnLmNvbS8yMjIxNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9n
cHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFkaWVudC5yYWRpYWwuY29uZS5iZWhpbmQuaHRt
bCBbIEZhaWx1cmUgXQorY3JidWcuY29tLzIyMjE0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmdyYWRpZW50LnJhZGlhbC5jb25lLnNoYXBlMi5o
dG1sIFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLnRvdWNoMS5odG1s
IFsgRmFpbHVyZSBdCitjcmJ1Zy5jb20vMjIyMTQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwv
Z3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQucmFkaWFsLnRvdWNoMy5odG1sIFsg
RmFpbHVyZSBdCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgV2ViR0wgVGVzdHMKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
      

    </bug>

</bugzilla>