<?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>70574</bug_id>
          
          <creation_ts>2011-10-20 19:26:21 -0700</creation_ts>
          <short_desc>[JSC] Don&apos;t sanitize window.onerror information on crossorigin-enabled scripts</short_desc>
          <delta_ts>2017-01-30 12:52:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=132945</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81438</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Robert Kieffer">broofa</reporter>
          <assigned_to name="Pablo Flouret">pf</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>browser-bugs</cc>
    
    <cc>chris.cinelli</cc>
    
    <cc>doochik</cc>
    
    <cc>dpetroff</cc>
    
    <cc>ggaren</cc>
    
    <cc>ian</cc>
    
    <cc>ide+webkit</cc>
    
    <cc>pf</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>todd</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wickedjack</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>488092</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Kieffer">broofa</who>
    <bug_when>2011-10-20 19:26:21 -0700</bug_when>
    <thetext>WebKit and Mozilla browsers redact the information passed to window.onerror for exceptions that occur in scripts that originate from external domains.

Unfortunately this means that for large institutions (like us here at Facebook) that use CDNs to host static script resources, we are unable to collect useful information about errors that occur in production.  And public adoption of Mozilla and Webkit-based browsers has reached a point where the majority of script errors are completely unactionable for us.

I&apos;d like to propose a &quot;X-Script-Origin&quot; header that can be sent back with a script resource that would specify the domain(s) for which error reporting should be allowed.  

I&apos;ve provided a few more details in this Mozilla report: https://bugzilla.mozilla.org/show_bug.cgi?id=696301

Please let me know the best way to proceed with this so as to enable smooth (and hopefully consistent) progress between these two platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488568</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-21 12:45:21 -0700</bug_when>
    <thetext>We should just use CORS for this.  The script tag should have a crossorigin attribute like the img tag does.  If the CORS check passes, then we can feel confident in forwarding the errors to the embedding page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488653</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Kieffer">broofa</who>
    <bug_when>2011-10-21 14:17:44 -0700</bug_when>
    <thetext>Adam, good idea!  https://developer.mozilla.org/en/CORS_Enabled_Image, but for script tags looks like just the ticket. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488989</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-22 20:25:45 -0700</bug_when>
    <thetext>I wrote a blog post with some background information about this bug:

http://www.schemehostport.com/2011/10/x-script-origin-we-hardly-knew-ye.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575949</commentid>
    <comment_count>4</comment_count>
    <who name="can3p">dpetroff</who>
    <bug_when>2012-03-11 22:52:00 -0700</bug_when>
    <thetext>The issue was solved in firefox, is there any chance to see it google chrome soon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575952</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-11 22:54:30 -0700</bug_when>
    <thetext>&gt; The issue was solved in firefox, is there any chance to see it google chrome soon?

We have a good idea what the API should look like.  We just need someone to write a patch that implements it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579941</commentid>
    <comment_count>6</comment_count>
      <attachid>132158</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-15 17:27:01 -0700</bug_when>
    <thetext>Created attachment 132158
work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579942</commentid>
    <comment_count>7</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-15 17:27:20 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=132158) [details]
&gt; work-in-progress

I&apos;ve been looking at this on-and-off the past weeks, and the plumbing is a bit tricky. Uploaded a wip patch with what i have so far for JSC, couldn&apos;t find a way to do it in v8 at a glance.

It&apos;d be nice to hear from someone more experienced with v8 bindings if there&apos;s a viable way to do it with existing infrastructure or if bigger changes are needed on the whole. Hopefully i&apos;m missing something obvious ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579980</commentid>
    <comment_count>8</comment_count>
      <attachid>132158</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-15 18:02:43 -0700</bug_when>
    <thetext>Comment on attachment 132158
work-in-progress

This looks like a nice approach.  You might want to split this patch up into two pieces.  The first might just add support for the crossorigin attribute to the &lt;script&gt; element.  The second could use that information when sanitizing the error reporting.  I&apos;m not sure how to do that latter in V8 off the top of my head, but I&apos;m sure we can figure out a way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581175</commentid>
    <comment_count>9</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-16 18:10:02 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 132158 [details])
&gt; This looks like a nice approach.  You might want to split this patch up into two pieces.  The first might just add support for the crossorigin attribute to the &lt;script&gt; element.  The second could use that information when sanitizing the error reporting.  I&apos;m not sure how to do that latter in V8 off the top of my head, but I&apos;m sure we can figure out a way.

Split off the attribute part to bug 81438.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583429</commentid>
    <comment_count>10</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-20 14:03:44 -0700</bug_when>
    <thetext>It would&apos;ve been nice if Script::SetData had taken a void* instead of v8::String, but anyway, would it be wise to use V8BindingPerIsolateData to store a ScriptSourceCode or CachedScript while the script is executing? Is only one evaluated script ever active per isolate at a given time? Not very pretty, but it might do the job...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678589</commentid>
    <comment_count>11</comment_count>
    <who name="James Ide">ide+webkit</who>
    <bug_when>2012-07-25 16:27:59 -0700</bug_when>
    <thetext>Firefox now supports this in release builds and IE doesn&apos;t implement the &quot;Script error.&quot; part of the HTML spec so now it&apos;s largely WebKit errors that are opaque. Can this feature be prioritized accordingly? Being able to rely on window.onerror is very helpful for debugging at scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678598</commentid>
    <comment_count>12</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-07-25 16:35:30 -0700</bug_when>
    <thetext>I&apos;m not sure anything changed in v8 to make this easier to accomplish since last time i tried, but maybe in the meantime we can land the part that deals with JSC, which is pretty straightforward; and i can take another look at v8 when i get some time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678681</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-07-25 17:59:26 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I&apos;m not sure anything changed in v8 to make this easier to accomplish since last time i tried, but maybe in the meantime we can land the part that deals with JSC, which is pretty straightforward; and i can take another look at v8 when i get some time?

In order to land anything here, the patch needs to be cleaned up and tests added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678688</commentid>
    <comment_count>14</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-07-25 18:04:23 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; I&apos;m not sure anything changed in v8 to make this easier to accomplish since last time i tried, but maybe in the meantime we can land the part that deals with JSC, which is pretty straightforward; and i can take another look at v8 when i get some time?
&gt; 
&gt; In order to land anything here, the patch needs to be cleaned up and tests added.

Sure, that&apos;s why it says work-in-progress :-)

I was just wondering if it&apos;s a good idea to go ahead with the JSC part first, and look into fixing the v8 side at an unspecified future time, or if it&apos;s better to have it working in both at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679537</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-07-26 11:13:30 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; I&apos;m not sure anything changed in v8 to make this easier to accomplish since last time i tried, but maybe in the meantime we can land the part that deals with JSC, which is pretty straightforward; and i can take another look at v8 when i get some time?
&gt; &gt; 
&gt; &gt; In order to land anything here, the patch needs to be cleaned up and tests added.
&gt; 
&gt; Sure, that&apos;s why it says work-in-progress :-)
&gt; 
&gt; I was just wondering if it&apos;s a good idea to go ahead with the JSC part first, and look into fixing the v8 side at an unspecified future time, or if it&apos;s better to have it working in both at the same time.

That&apos;s fine.  JavaScriptCore is the javascript engine of the WebKit project, and Google has agreed to keep their V8 bindings up to date, but there is not a compelling reason to wait.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728111</commentid>
    <comment_count>16</comment_count>
      <attachid>165709</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-09-25 18:10:54 -0700</bug_when>
    <thetext>Created attachment 165709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728113</commentid>
    <comment_count>17</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-09-25 18:11:55 -0700</bug_when>
    <thetext>Filed bug 97499 for V8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728115</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 18:16:15 -0700</bug_when>
    <thetext>Attachment 165709 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1
WARNING: Using the chromium port without having the downstream skia_test_expectations.txt file checked out. Expectations related things might be wonky.
Source/WebCore/bindings/js/JSDOMBinding.h:58:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728133</commentid>
    <comment_count>19</comment_count>
      <attachid>165709</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-25 18:53:15 -0700</bug_when>
    <thetext>Comment on attachment 165709
Patch

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

&gt; Source/WebCore/bindings/js/ScriptSourceCode.h:54
&gt; +    ScriptSourceCode(CachedScript* cachedScript)

Should this constructor be marked explicit?

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:78
&gt; +                    m_crossOriginMode = attributeValue;

There&apos;s no whitespace stripping?

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:135
&gt; +                request.setAllowCookies(equalIgnoringCase(m_crossOriginMode, &quot;use-credentials&quot;));

It feels odd to be doing a string comparison here.  Maybe we should have a helper function that can give us back a cross origin mode enum value?

&gt; LayoutTests/http/tests/security/resources/cors-script.php:5
&gt; +    echo &quot;ohhaiconga;&quot;;

ohhaiconga -&gt; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728306</commentid>
    <comment_count>20</comment_count>
      <attachid>165709</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-26 01:27:10 -0700</bug_when>
    <thetext>Comment on attachment 165709
Patch

Attachment 165709 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14018441

New failing tests:
http/tests/workers/terminate-during-sync-operation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729005</commentid>
    <comment_count>21</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-09-26 14:57:27 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 165709 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165709&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/security/resources/cors-script.php:5
&gt; &gt; +    echo &quot;ohhaiconga;&quot;;
&gt; 
&gt; ohhaiconga -&gt; ?

Heh, quick way to get an exception, forgot to change it to a more serious/explicit variant. I&apos;ll fix it and the rest of the issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729093</commentid>
    <comment_count>22</comment_count>
      <attachid>165904</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-09-26 17:22:20 -0700</bug_when>
    <thetext>Created attachment 165904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729094</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 17:24:38 -0700</bug_when>
    <thetext>Attachment 165904 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1
Source/WebCore/bindings/js/JSDOMBinding.h:58:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740418</commentid>
    <comment_count>24</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-10-11 16:45:22 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760951</commentid>
    <comment_count>25</comment_count>
      <attachid>165904</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-07 12:02:31 -0800</bug_when>
    <thetext>Comment on attachment 165904
Patch

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

It looks like all of Adam&apos;s prior comments have been addressed, and this patch looks good to me, so I&apos;ll say r+.

Please fix the initializer before landing.

&gt; Source/WebCore/bindings/js/ScriptSourceCode.h:49
&gt; +        , m_cachedScript(0)

Explicit initialization is not required here. The class default-initializes to null.

&gt; Source/WebCore/bindings/js/ScriptSourceCode.h:78
&gt;      RefPtr&lt;JSC::SourceProvider&gt; m_provider;
&gt;      
&gt;      JSC::SourceCode m_code;
&gt; -    
&gt; +
&gt; +    CachedResourceHandle&lt;CachedScript&gt; m_cachedScript;

It&apos;s a little disappointing to have both a SourceProvider and a CachedScript pointer, since these will point to the same thing. But I don&apos;t have an immediate suggestion for how to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767524</commentid>
    <comment_count>26</comment_count>
      <attachid>174298</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-11-14 17:42:42 -0800</bug_when>
    <thetext>Created attachment 174298
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769475</commentid>
    <comment_count>27</comment_count>
      <attachid>174298</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 11:10:22 -0800</bug_when>
    <thetext>Comment on attachment 174298
Patch for landing

Rejecting attachment 174298 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
rity/script-crossorigin-onerror-information.html
patching file LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt
patching file LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
patching file LayoutTests/platform/chromium/TestExpectations
Hunk #1 succeeded at 4112 (offset -17 lines).

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

Full output: http://queues.webkit.org/results/14846931</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769580</commentid>
    <comment_count>28</comment_count>
      <attachid>174745</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-11-16 12:38:21 -0800</bug_when>
    <thetext>Created attachment 174745
Rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769722</commentid>
    <comment_count>29</comment_count>
      <attachid>174745</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 15:31:07 -0800</bug_when>
    <thetext>Comment on attachment 174745
Rebased patch for landing

Clearing flags on attachment: 174745

Committed r135009: &lt;http://trac.webkit.org/changeset/135009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771086</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Cinelli">chris.cinelli</who>
    <bug_when>2012-11-19 15:17:15 -0800</bug_when>
    <thetext>Please move the status to completed and add the patch.
We host the static resource on Amazon and our logs of frontend errors are useless with line: 0 and error &quot;Script error&quot;.

Please consider expanding onerror and add a 4th parameter that can give more info on what happened (ex: exception). Adding also the stack trace would be great, but if we have at least the exception and the context in the meanwhile we can still use: https://github.com/eriwen/javascript-stacktrace to find out what happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786114</commentid>
    <comment_count>31</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-07 13:50:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/12838505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786120</commentid>
    <comment_count>32</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-12-07 13:58:37 -0800</bug_when>
    <thetext>&gt; Please consider expanding onerror and add a 4th parameter

This sounds like a separate feature request. Can you file a feature request bug for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786193</commentid>
    <comment_count>33</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-12-07 14:54:03 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; &gt; Please consider expanding onerror and add a 4th parameter
&gt; 
&gt; This sounds like a separate feature request. Can you file a feature request bug for it?

I seem to recall some threads with similar requests in the whatwg list as well. At least this one, http://lists.w3.org/Archives/Public/public-whatwg-archive/2012May/thread.html#msg124</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786231</commentid>
    <comment_count>34</comment_count>
    <who name="Chris Cinelli">chris.cinelli</who>
    <bug_when>2012-12-07 15:31:37 -0800</bug_when>
    <thetext>Yes, that conversation is aligned with what I am asking. Did it have any follow-up ? Should add a new enhancement request referencing that message?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786247</commentid>
    <comment_count>35</comment_count>
    <who name="Chris Cinelli">chris.cinelli</who>
    <bug_when>2012-12-07 15:48:07 -0800</bug_when>
    <thetext>Ok, I added it here: https://bugs.webkit.org/show_bug.cgi?id=104408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979719</commentid>
    <comment_count>36</comment_count>
    <who name="Todd H Gardner">todd</who>
    <bug_when>2014-02-11 19:16:12 -0800</bug_when>
    <thetext>I think this may have regressed. I am not seeing this behavior in Chrome 32.0.1700.107 or Safari 5.1.7. I put together a test case at:

http://trackjs.com/demo/bug.html

Scripts are both loaded from an AWS domain and have the crossorigin attribute. The error that occurs on button click is santitized before being given to the window.onerror handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979958</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-12 12:22:25 -0800</bug_when>
    <thetext>Safari 5.1.7 is very old. Please file a new bg if you can reproduce this with Safari 7.

Google has forked WebKit, so Chrome code is separate now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009486</commentid>
    <comment_count>38</comment_count>
    <who name="Walt">wickedjack</who>
    <bug_when>2014-05-15 01:48:27 -0700</bug_when>
    <thetext>I just reproduced this with Safari7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009558</commentid>
    <comment_count>39</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-15 09:23:19 -0700</bug_when>
    <thetext>Please file a new bug if you can reproduce this with Safari 7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009569</commentid>
    <comment_count>40</comment_count>
    <who name="Walt">wickedjack</who>
    <bug_when>2014-05-15 09:57:35 -0700</bug_when>
    <thetext>I have, see here: https://bugs.webkit.org/show_bug.cgi?id=132945</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132158</attachid>
            <date>2012-03-15 17:27:01 -0700</date>
            <delta_ts>2012-09-25 18:10:48 -0700</delta_ts>
            <desc>work-in-progress</desc>
            <filename>bug-70574-20120315172700.patch</filename>
            <type>text/plain</type>
            <size>15793</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjEyZGRmYTg3MGRlNmFh
YTVjZjI4MDYzYzI2OGFkMDAyMGRhNWI3Ny4uOTFhOGM4OTRmNmI2ZTYxY2NhM2VjNDgxY2U4YTky
MmYxMjUwNzMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAzLTE1ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBbGxvdyBzaXRlcyB0
byBlbmFibGUgeC1kb21haW4gd2luZG93Lm9uZXJyb3IgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUlu
V29ybGQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OlNjcmlwdFNvdXJjZUNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6Y2FjaGVkU2NyaXB0KToKKyAgICAgICAgKFNj
cmlwdFNvdXJjZUNvZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnNhbml0aXplU2NyaXB0RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk6CisKIDIwMTItMDMtMDIgIENhaW8gTWFyY2VsbyBkZSBPbGl2
ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBJbXBs
ZW1lbnQgTmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW0oKSBpbiB0ZXJtcyBvZiBFbGVtZW50Ojpz
ZXRBdHRyaWJ1dGVOb2RlKCkgaW5zdGVhZCBvZiB0aGUgb3RoZXIgd2F5IHJvdW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IGQxYzU3MzNkOWQ2YjA5ZDgwM2ExMmM4M2IwNGZiZjYwMGJkNWE1Njcu
LjEwNzgwNDhmMWM5Y2VmZTZmOWM5YzMzZGMzODE3YmZjMjljY2QwM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCkBAIC00NTksNyArNDU5LDcgQEAgX19aTjdXZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25D
MUVSS05TXzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQogX19aTjdXZWJDb3JlMTVkZWZhdWx0TGFu
Z3VhZ2VFdgogX19aTjdXZWJDb3JlMTVsb2NhbGl6ZWRTdHJpbmdFUEtjCiBfX1pON1dlYkNvcmUx
NXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTE1cmVwb3J0RXhj
ZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTVyZXBv
cnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5TXzEyQ2FjaGVkU2Ny
aXB0RQogX19aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVpCiBf
X1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUxNkFic3RyYWN0
RGF0YWJhc2UxNHNldElzQXZhaWxhYmxlRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDY1ODJmYjRi
YTYxM2U1NjcxMjM5ZDQ4NjYxZWYxYzUxZmUwZmI3MjIuLmMzNzkxZGFlZjQ2MTllOGQ0NDY2NWY2
MGQyMjU4ZWU4OGE4MzIwMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMjA3MCw3ICsyMDcwLDcg
QEAgX19aTjNKU0M4SlNPYmplY3QxN2dldERpcmVjdExvY2F0aW9uRVJOU18xMkpTR2xvYmFsRGF0
YUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTE2ZmluZEF0b21pY1N0cmluZ0VSS04z
SlNDMTBJZGVudGlmaWVyRQogX19aTkszV1RGOUhhc2hUYWJsZUlQTlNfMTZBdG9taWNTdHJpbmdJ
bXBsRVN0NHBhaXJJUzJfakVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNF9FRU5TXzdQdHJIYXNo
SVMyX0VFTlNfMTRQYWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFpdHNJUzJfRUVOU0FfSWpFRUVF
U0JfRThjb250YWluc0lTMl9OU18yMklkZW50aXR5SGFzaFRyYW5zbGF0b3JJUzJfUzRfUzhfRUVF
RWJSS1RfCiBfX1pOSzNXVEY5SGFzaFRhYmxlSVBOU18xNkF0b21pY1N0cmluZ0ltcGxFU3Q0cGFp
cklTMl9QTjdXZWJDb3JlN0VsZW1lbnRFRU5TXzE4UGFpckZpcnN0RXh0cmFjdG9ySVM3X0VFTlNf
N1B0ckhhc2hJUzJfRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMl9FRU5T
RF9JUzZfRUVFRVNFX0U4Y29udGFpbnNJUzJfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySVMy
X1M3X1NCX0VFRUViUktUXwotX19aTjdXZWJDb3JlMTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4
ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJDYWNoZWRTY3JpcHRFCiBfX1pOSzNKU0M3
SlNWYWx1ZTh0b1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDNnZXRF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUxNXRvRXhjZXB0
aW9uQmFzZUVOM0pTQzdKU1ZhbHVlRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAKaW5kZXggMDA1MGE3MzE1N2ZkZmNiNWRlMDc2MWYzMjVmNmZkMTVhYzAwMDc2
ZC4uYzEyMjVkZjg0YTJiZTgyZjljZmU1ZTIxMWE2YTJkNDgwMTExZTE5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKKyNpbmNsdWRl
ICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJET01PYmplY3RIYXNoVGFibGVNYXAuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVhZGVycy5oIgpA
QCAtMTQ2LDcgKzE0Nyw3IEBAIGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVl
LnRvT2JqZWN0KGV4ZWMpKS0+aW50ZXJuYWxOdW1iZXIoKTsKIH0KIAotdm9pZCByZXBvcnRFeGNl
cHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGV4Y2VwdGlvbikKK3ZvaWQgcmVwb3J0RXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCog
Y2FjaGVkU2NyaXB0KQogewogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
ZXhjZXB0aW9uKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY3LDcgKzE2OCw3IEBAIHZvaWQgcmVw
b3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24pCiAgICAgaWYg
KCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKGVycm9yTWVz
c2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRpb25Tb3VyY2VVUkwpLCAw
KTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24odXN0cmluZ1Rv
U3RyaW5nKGVycm9yTWVzc2FnZSksIGxpbmVOdW1iZXIsIHVzdHJpbmdUb1N0cmluZyhleGNlcHRp
b25Tb3VyY2VVUkwpLCAwLCBjYWNoZWRTY3JpcHQpOwogfQogCiB2b2lkIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAppbmRleCAwZWIzZDljZjUyM2U2NDIxZGNlNDg0MmM2ZGQzYWNkZmNjMGU3YWNm
Li4zZTdhOWI1MjQ2YWVlNzM4MWRiNWJjODUwM2Q5MzQ4NjY1ZDY4MWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNTAsNiArNTAsNyBAQCBlbnVtIFBh
cmFtZXRlckRlZmF1bHRQb2xpY3kgewogCiAjZGVmaW5lIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIGluZGV4LCBwb2xpY3kpICgoKHBvbGljeSkgPT0gRGVmYXVsdElzTnVsbFN0cmluZyAm
JiAoaW5kZXgpID49IChleGVjKS0+YXJndW1lbnRDb3VudCgpKSA/IChKU1ZhbHVlKCkpIDogKChl
eGVjKS0+YXJndW1lbnQoaW5kZXgpKSkKIAorICAgIGNsYXNzIENhY2hlZFNjcmlwdDsKICAgICBj
bGFzcyBGcmFtZTsKICAgICBjbGFzcyBLVVJMOwogCkBAIC0yMjIsNyArMjIzLDcgQEAgZW51bSBQ
YXJhbWV0ZXJEZWZhdWx0UG9saWN5IHsKIAogICAgIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBnZXRI
YXNoVGFibGVGb3JHbG9iYWxEYXRhKEpTQzo6SlNHbG9iYWxEYXRhJiwgY29uc3QgSlNDOjpIYXNo
VGFibGUqIHN0YXRpY1RhYmxlKTsKIAotICAgIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbik7CisgICAgdm9pZCByZXBvcnRFeGNlcHRp
b24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQq
ID0gMCk7CiAgICAgdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7
CiAKICAgICAvLyBDb252ZXJ0IGEgRE9NIGltcGxlbWVudGF0aW9uIGV4Y2VwdGlvbiBjb2RlIGlu
dG8gYSBKYXZhU2NyaXB0IGV4Y2VwdGlvbiBpbiB0aGUgZXhlY3V0aW9uIHN0YXRlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0MTQz
ZjQ0YjUxNGY2OWVkY2RjM2IzMGUzNWJjMGQ2NjlkOTI1NmQzLi40ZTA4ODYyYjc3MmQzYTEwNzVm
ODhkNzliZDY1OWUwMWZjNjRkYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIFNjcmlwdFZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlw
dChjb29raWUpOwogCiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKLSAgICAgICAgcmVw
b3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgICAgICByZXBvcnRF
eGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgc291cmNlQ29kZS5jYWNoZWRTY3Jp
cHQoKSk7CiAgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CiAgICAgICAgIHJl
dHVybiBTY3JpcHRWYWx1ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBmZTVhYjdiMDQ3NGRkZDA3NjhjYzI5NjkzMWM5ZDAw
ZjVjMjhhMWU0Li41MDYxNDkzNTA4ZGU5NzkzZjI2ZjkwOGY4YWQyZThiYzFkNGIzNzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC0zMSw2
ICszMSw4IEBACiAjaWZuZGVmIFNjcmlwdFNvdXJjZUNvZGVfaAogI2RlZmluZSBTY3JpcHRTb3Vy
Y2VDb2RlX2gKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlN0cmluZ1NvdXJj
ZVByb3ZpZGVyLmgiCkBAIC00NSwxMyArNDcsMTUgQEAgcHVibGljOgogICAgIFNjcmlwdFNvdXJj
ZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uOjptaW5pbXVtUG9z
aXRpb24oKSkKICAgICAgICAgOiBtX3Byb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVh
dGUoc291cmNlLCB1cmwuaXNOdWxsKCkgPyBTdHJpbmcoKSA6IHVybC5zdHJpbmcoKSwgc3RhcnRQ
b3NpdGlvbikpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIsIHN0YXJ0UG9zaXRpb24ubV9s
aW5lLm9uZUJhc2VkSW50KCkpCisgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoMCkKICAgICAgICAg
LCBtX3VybCh1cmwpCiAgICAgewogICAgIH0KIAotICAgIFNjcmlwdFNvdXJjZUNvZGUoQ2FjaGVk
U2NyaXB0KiBjcykKLSAgICAgICAgOiBtX3Byb3ZpZGVyKENhY2hlZFNjcmlwdFNvdXJjZVByb3Zp
ZGVyOjpjcmVhdGUoY3MpKQorICAgIFNjcmlwdFNvdXJjZUNvZGUoQ2FjaGVkU2NyaXB0KiBjYWNo
ZWRTY3JpcHQpCisgICAgICAgIDogbV9wcm92aWRlcihDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
cjo6Y3JlYXRlKGNhY2hlZFNjcmlwdCkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIpCisg
ICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQogICAgIHsKICAgICB9CiAKQEAg
LTYzLDEzICs2NywxNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgc3RhcnRMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb2RlLmZpcnN0TGluZSgpOyB9CiAKKyAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNj
cmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CisKICAgICBjb25z
dCBLVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIAogcHJpdmF0ZToKICAg
ICBSZWZQdHI8U2NyaXB0U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CiAgICAgCiAgICAgSlND
OjpTb3VyY2VDb2RlIG1fY29kZTsKLSAgICAKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CisKICAgICBLVVJMIG1fdXJsOwogCiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCAyYzYwZmZmZjA5MGI4ZjY0YjcxMzFjNWIzNzk1MjkzNWY2NWVjMzAyLi41OWI4
ZTRiZDEwYzM5MzlkYjFmMmUxZjQzZjA3YjM1NTEyODE3ZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTQ4
LDcgKzE0OCw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU2NyaXB0CiAgICAgICAgIFN0cmluZyBlcnJv
ck1lc3NhZ2U7CiAgICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKICAgICAgICAgU3RyaW5nIHNv
dXJjZVVSTCA9IHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCk7Ci0gICAgICAgIGlmIChtX3dvcmtl
ckNvbnRleHQtPnNhbml0aXplU2NyaXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpKQorICAgICAgICBpZiAobV93b3JrZXJDb250ZXh0LT5zYW5pdGl6ZVNjcmlwdEVy
cm9yKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBzb3VyY2VDb2RlLmNhY2hl
ZFNjcmlwdCgpKSkKICAgICAgICAgICAgICpleGNlcHRpb24gPSBTY3JpcHRWYWx1ZSgqbV9nbG9i
YWxEYXRhLCB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZS5p
bXBsKCkpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICpleGNlcHRpb24gPSBTY3JpcHRW
YWx1ZSgqbV9nbG9iYWxEYXRhLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcAppbmRleCA2ZThlODNiYjQ2MDlhNmFhYWRjZmUwODc0ZjU0ZjNlZTQ4
ZjU1MDIzLi4wYmEzMjRiNGZhMGM4ZGU2ZTNjNmZiMmQwN2EzNmM0MGI1MjJhZDVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50UGFy
c2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTQwLDYgKzQxLDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KQEAgLTI0NSw3ICsyNDcsMTQgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0
KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7
CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV9lbGVtZW50LT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKTsKKyAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChzb3VyY2VVcmwpKTsKKworICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0g
bV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsK
KyAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIFN0
b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9z
c09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMg
OiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0
Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICB9CisKICAgICAgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTY3JpcHQocmVxdWVzdCwgc2NyaXB0Q2hhcnNldCgpKTsKICAgICAgICAgbV9pc0V4
dGVybmFsU2NyaXB0ID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggNWFiOTc3NTY1ZmVlZmUyZDhiZDcyNzRhNmUyYWNh
ZjJjMjA2ZjQ4OC4uZjRkMTg3YTk5ZGY0N2ZjNTI5Yjk0Y2EwMjgyNzVjYWM3YTRhNThiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5j
bHVkZSAiRXJyb3JFdmVudC5oIgpAQCAtMjc1LDEwICsyNzYsMTAgQEAgdm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpjbG9zZU1lc3NhZ2VQb3J0cygpIHsKICAgICB9CiB9CiAKLWJvb2wgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCkKK2Jvb2wgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRT
Y3JpcHQpCiB7CiAgICAgS1VSTCB0YXJnZXRVUkwgPSBjb21wbGV0ZVVSTChzb3VyY2VVUkwpOwot
ICAgIGlmIChzZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHRhcmdldFVSTCkpCisgICAgaWYg
KHNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodGFyZ2V0VVJMKSB8fCAoY2FjaGVkU2NyaXB0
ICYmIGNhY2hlZFNjcmlwdC0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHNlY3VyaXR5T3JpZ2lu
KCkpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGVycm9yTWVzc2FnZSA9ICJTY3JpcHQg
ZXJyb3IuIjsKICAgICBzb3VyY2VVUkwgPSBTdHJpbmcoKTsKQEAgLTI4Niw3ICsyODcsNyBAQCBi
b29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCYgbGluZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjaywgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgaWYgKG1faW5E
aXNwYXRjaEVycm9yRXZlbnQpIHsKICAgICAgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQpA
QCAtMjk2LDcgKzI5Nyw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluCiAgICAgfQogCiAgICAg
Ly8gRmlyc3QgcmVwb3J0IHRoZSBvcmlnaW5hbCBleGNlcHRpb24gYW5kIG9ubHkgdGhlbiBhbGwg
dGhlIG5lc3RlZCBvbmVzLgotICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KGVycm9yTWVzc2Fn
ZSwgbGluZU51bWJlciwgc291cmNlVVJMKSkKKyAgICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudChl
cnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgY2FjaGVkU2NyaXB0KSkKICAgICAg
ICAgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVt
YmVyLCBjYWxsU3RhY2spOwogCiAgICAgaWYgKCFtX3BlbmRpbmdFeGNlcHRpb25zKQpAQCAtMzIw
LDcgKzMyMSw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlCiB9CiAKIAotYm9vbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK2Jvb2wgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogewogICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQgPSBlcnJv
ckV2ZW50VGFyZ2V0KCk7CiAgICAgaWYgKCF0YXJnZXQpCkBAIC0zMjksNyArMzMwLDcgQEAgYm9v
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludAogICAgIFN0cmluZyBtZXNzYWdlID0gZXJyb3JNZXNzYWdlOwog
ICAgIGludCBsaW5lID0gbGluZU51bWJlcjsKICAgICBTdHJpbmcgc291cmNlTmFtZSA9IHNvdXJj
ZVVSTDsKLSAgICBzYW5pdGl6ZVNjcmlwdEVycm9yKG1lc3NhZ2UsIGxpbmUsIHNvdXJjZU5hbWUp
OworICAgIHNhbml0aXplU2NyaXB0RXJyb3IobWVzc2FnZSwgbGluZSwgc291cmNlTmFtZSwgY2Fj
aGVkU2NyaXB0KTsKIAogICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JFdmVudCk7CiAgICAg
bV9pbkRpc3BhdGNoRXJyb3JFdmVudCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCA1M2Y1MzE0YjgxZTkwNjA5YTAxMTY5NWVlN2VlZjEw
N2MzZDRmNzU3Li4zNjc5NDllZGJiMzdkN2JlZTRiYjQ1NDIyOTIyMjgyY2IyNTQwYmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTQ4LDYgKzQ4
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFz
cyBET01UaW1lcjsKIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBFdmVudFF1ZXVlOwpAQCAt
ODQsOCArODUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKSA9
IDA7CiAKLSAgICBib29sIHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCYgbGluZU51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwpOwotICAgIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgYm9v
bCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1i
ZXIsIFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqID0gMCk7CisgICAgdm9pZCByZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCBDYWNo
ZWRTY3JpcHQqID0gMCk7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwKTsKICAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKIApAQCAtMTg5LDcgKzE5
MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+KSA9IDA7CiAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRh
cmdldCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVO
dW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwotICAgIGJvb2wgZGlzcGF0
Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2ZW50KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIENhY2hlZFNjcmlwdCopOwogCiAgICAgdm9pZCBjbG9zZU1lc3NhZ2VQb3J0cygp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165709</attachid>
            <date>2012-09-25 18:10:54 -0700</date>
            <delta_ts>2012-09-26 17:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70574-20120925181014.patch</filename>
            <type>text/plain</type>
            <size>23713</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ2ZTA2NTdkOGJmZWRm
ZDRlMmJmNzlhZmE5MzE1MjE5ZGY0MzIxNS4uOWFlZTBhMzRhODY2OTJmODE0MDg0NGJjODMxZGNh
OTgwZmU2NzA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA5LTI1ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbSlNDXSBEb24ndCBz
YW5pdGl6ZSB3aW5kb3cub25lcnJvciBpbmZvcm1hdGlvbiBvbiBjcm9zc29yaWdpbi1lbmFibGVk
IHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yIHNjcmlwdHMgdGhhdCB1c2UgQ09SUyAodmlhIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUg
aW4gdGhpcyBjYXNlKSwKKyAgICAgICAgZG9uJ3Qgc2FuaXRpemUgdGhlIGluZm9ybWF0aW9uIHBh
c3NlZCB0byB0aGUgd2luZG93J3Mgb25lcnJvciBoYW5kbGVyIChpLmUuCisgICAgICAgIG1lc3Nh
Z2UsIHVybCwgYW5kIGxpbmUgbnVtYmVyKS4gVXNlZnVsIGZvciBzY3JpcHRzIGhvc3RlZCBvbiBD
RE5zLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29y
aWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXpl
ZC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLm9y
ZGVyOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAoU2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgICAgICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjYWNo
ZWQgc2NyaXB0IGluIHRoZSBTY3JpcHRTb3VyY2VDb2RlLCBzbworICAgICAgICAgICAgdGhhdCBp
dCBjYW4gYmUgcGFzc2VkIGFyb3VuZCBhbmQgYmUgYXZhaWxhYmxlIHdoZW4gcmVwb3J0aW5nIHRo
ZQorICAgICAgICAgICAgZXhjZXB0aW9uLgorCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
c2FuaXRpemVTY3JpcHRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KToKKyAgICAgICAgICAgIENoZWNrIGlmIHRoZSBzY3JpcHQgcGFzc2VzIHRo
ZSBhY2Nlc3MgY29udHJvbCBjaGVja3MsIGFuZCBpZiBzbywKKyAgICAgICAgICAgIGRvbid0IHNh
bml0aXplIHRoZSBlcnJvciBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJv
Y2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6OnByZWxvYWQp
OgorICAgICAgICAoUHJlbG9hZFRhc2spOgorICAgICAgICAgICAgV2hlbiBwcmVsb2FkaW5nIHNj
cmlwdCBlbGVtZW50cywgY2hlY2sgZm9yIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUKKyAgICAg
ICAgICAgIGFuZCBhZGp1c3QgdGhlIHJlcXVlc3QncyBhbGxvd0Nvb2tpZXMgdmFsdWUgYWNjb3Jk
aW5nbHkuIE90aGVyd2lzZQorICAgICAgICAgICAgd2hlbiB0aGUgc2NyaXB0IGlzIGxvYWRlZCBm
cm9tIHRoZSBjYWNoZSBsYXRlciBvbiwgdGhlIGNyb3NzIG9yaWdpbiBtb2RlCisgICAgICAgICAg
ICAoYW5vbnltb3VzL3VzZS1jcmVkZW50aWFscykgd2lsbCBiZSBlZmZlY3RpdmVseSBpZ25vcmVk
LgorCiAyMDEyLTA5LTIwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbmFtZSBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZCAicGFyc2VyQXBwZW5kQ2hp
bGQiIGZvciBjb25zaXN0ZW5jeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmY4MzBkNTAzODQ5
MmZkMmRlNDEwY2YyNWY4MzI5MzcyMjAxMDM4Li4xOTg3ZWEwNDUyNmNlYjJjYjc3MzVhMDI5MzE3
ZDgzNzA4NTE5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzg3LDcgKzM4Nyw3IEBAIF9f
Wk43V2ViQ29yZTE1ZGVmYXVsdExhbmd1YWdlRXYKIF9fWk43V2ViQ29yZTE1bG9jYWxpemVkU3Ry
aW5nRVBLYwogX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAogX19aTjdXZWJD
b3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxNXJlcG9y
dEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE1
cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hl
ZFNjcmlwdEUKIF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVF
aQogX19aTjdXZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRl
cgppbmRleCA3NjhhN2ZhMzUwYzMzOGY5MTQxMjljMzhkMmY4ZmM2YTRiMjI5ZTg3Li4wOTdiNTNj
MDk1ZDE5M2M1NzE2ZTU1M2M1MTA0ZjUzNGRlOGI5YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAg
LTIwNzEsNyArMjA3MSw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdnZXREaXJlY3RMb2NhdGlvbkVS
TlNfMTJKU0dsb2JhbERhdGFFUktOU18xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUxNmZpbmRB
dG9taWNTdHJpbmdFUktOM0pTQzEwSWRlbnRpZmllckUKIF9fWk5LM1dURjlIYXNoVGFibGVJUE5T
XzE2QXRvbWljU3RyaW5nSW1wbEVTdDRwYWlySVMyX2pFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJ
UzRfRUVOU183UHRySGFzaElTMl9FRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRz
SVMyX0VFTlNBX0lqRUVFRVNCX0U4Y29udGFpbnNJUzJfTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xh
dG9ySVMyX1M0X1M4X0VFRUViUktUXwogX19aTkszV1RGOUhhc2hUYWJsZUlQTlNfMTZBdG9taWNT
dHJpbmdJbXBsRVN0NHBhaXJJUzJfUE43V2ViQ29yZTdFbGVtZW50RUVOU18xOFBhaXJGaXJzdEV4
dHJhY3RvcklTN19FRU5TXzdQdHJIYXNoSVMyX0VFTlNfMTRQYWlySGFzaFRyYWl0c0lOU18xMEhh
c2hUcmFpdHNJUzJfRUVOU0RfSVM2X0VFRUVTRV9FOGNvbnRhaW5zSVMyX05TXzIySWRlbnRpdHlI
YXNoVHJhbnNsYXRvcklTMl9TN19TQl9FRUVFYlJLVF8KLV9fWk43V2ViQ29yZTE1cmVwb3J0RXhj
ZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTVyZXBv
cnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5TXzEyQ2FjaGVkU2Ny
aXB0RQogX19aTkszSlNDN0pTVmFsdWU4dG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNK
U0M4SlNPYmplY3QzZ2V0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjdX
ZWJDb3JlMTV0b0V4Y2VwdGlvbkJhc2VFTjNKU0M3SlNWYWx1ZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IGZlMDg0ZWE0ZGZiNDAyMjU2N2QxNzY0
YzY4M2Q3ZmM3Zjg1OTNmZmUuLmU3MTA5MDA0YmVhNzM4Yzk4MGJhMWQ4NDVmMWVhZDYwM2NhNWUz
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAt
MjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogCiAjaW5jbHVkZSAiQmlu
ZGluZ1NlY3VyaXR5LmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiRE9N
T2JqZWN0SGFzaFRhYmxlTWFwLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBKU0M6OkpTVmFsdWUganNB
cnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzcwogICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVj
dCwgbGlzdCk7CiB9CiAKLXZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBleGNlcHRpb24pCit2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBpZiAo
aXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE2NCw3ICsxNjUsNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgZXhjZXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gZ2xvYmFsT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgZXhjZXB0aW9uU291
cmNlVVJMLCAwKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNlcHRpb24o
ZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBleGNlcHRpb25Tb3VyY2VVUkwsIDAsIGNhY2hlZFNj
cmlwdCk7CiB9CiAKIHZvaWQgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDc1MzJiNzkz
ZTcyOGQwZDhiYzFhZTJkNWMzZTJhMTJlOTA5NzEzOTAuLjY3MGU2YWI5MzI5MmY4NTU5OGE0NWU0
ZGU5ZDk4NzFkOGU0NjViNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCkBAIC01NSw2ICs1NSw3IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAK
ICNkZWZpbmUgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGljeSkgKCgo
cG9saWN5KSA9PSBEZWZhdWx0SXNOdWxsU3RyaW5nICYmIChpbmRleCkgPj0gKGV4ZWMpLT5hcmd1
bWVudENvdW50KCkpID8gKEpTVmFsdWUoKSkgOiAoKGV4ZWMpLT5hcmd1bWVudChpbmRleCkpKQog
CisgICAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEtV
Ukw7CiAKQEAgLTIyNyw3ICsyMjgsNyBAQCBlbnVtIFBhcmFtZXRlckRlZmF1bHRQb2xpY3kgewog
CiAgICAgY29uc3QgSlNDOjpIYXNoVGFibGUqIGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoSlND
OjpKU0dsb2JhbERhdGEmLCBjb25zdCBKU0M6Okhhc2hUYWJsZSogc3RhdGljVGFibGUpOwogCi0g
ICAgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgZXhj
ZXB0aW9uKTsKKyAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogPSAwKTsKICAgICB2b2lkIHJlcG9ydEN1
cnJlbnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIAogICAgIC8vIENvbnZlcnQgYSBET00g
aW1wbGVtZW50YXRpb24gZXhjZXB0aW9uIGNvZGUgaW50byBhIEphdmFTY3JpcHQgZXhjZXB0aW9u
IGluIHRoZSBleGVjdXRpb24gc3RhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ4ZjY4YzhhMzI4NmY1ZDlhODJlMGYxYTA3ZWZh
OGNkZDRlMjVlNTIuLjg4ZmE0YWFiOGMwOGVmODhhZDFhNWJjNzViZWFkNTc1ODBjYzFlNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBA
IC0xNTEsNyArMTUxLDcgQEAgU2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJ
bldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSk7CiAKICAgICBpZiAoZXZh
bHVhdGlvbkV4Y2VwdGlvbikgewotICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVh
dGlvbkV4Y2VwdGlvbik7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9u
RXhjZXB0aW9uLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKTsKICAgICAgICAgbV9zb3VyY2VV
UkwgPSBzYXZlZFNvdXJjZVVSTDsKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29k
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCmluZGV4
IGIxYWZiZGViMDM3Y2VlYTJhZWIzYjdmNGExYjg1MDM0ZmNmNTAxZmEuLmRlNjc2YjQ4NTBmMTEw
YjVhNGM2MjE2M2FhNjNmNTA2NjVhYWNlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpZm5kZWYgU2NyaXB0
U291cmNlQ29kZV9oCiAjZGVmaW5lIFNjcmlwdFNvdXJjZUNvZGVfaAogCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRl
ICJDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNs
dWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KQEAgLTQ0LDEzICs0NiwxNSBAQCBwdWJsaWM6
CiAgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYg
dXJsID0gS1VSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9z
aXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJp
bmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgdXJsLmlzTnVsbCgpID8gU3RyaW5nKCkg
OiB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24pKQogICAgICAgICAsIG1fY29kZShtX3Byb3Zp
ZGVyLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKQorICAgICAgICAsIG1fY2Fj
aGVkU2NyaXB0KDApCiAgICAgICAgICwgbV91cmwodXJsKQogICAgIHsKICAgICB9CiAKLSAgICBT
Y3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY3MpCi0gICAgICAgIDogbV9wcm92aWRlcihD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGNzKSkKKyAgICBTY3JpcHRTb3VyY2VD
b2RlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQorICAgICAgICA6IG1fcHJvdmlkZXIoQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShjYWNoZWRTY3JpcHQpKQogICAgICAgICAs
IG1fY29kZShtX3Byb3ZpZGVyKQorICAgICAgICAsIG1fY2FjaGVkU2NyaXB0KGNhY2hlZFNjcmlw
dCkKICAgICB7CiAgICAgfQogCkBAIC02MiwxMyArNjYsMTcgQEAgcHVibGljOgogCiAgICAgaW50
IHN0YXJ0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZS5maXJzdExpbmUoKTsgfQogCisgICAg
Q2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlw
dC5nZXQoKTsgfQorCiAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KICAgICAKIHByaXZhdGU6CiAgICAgUmVmUHRyPEpTQzo6U291cmNlUHJvdmlkZXI+IG1fcHJv
dmlkZXI7CiAgICAgCiAgICAgSlNDOjpTb3VyY2VDb2RlIG1fY29kZTsKLSAgICAKKworICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CisKICAgICBL
VVJMIG1fdXJsOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA1NWMzNDc2N2IzZDNhYjM4NDI0YmJhMWFk
YTk5NmRiYmZkNTUzZDI5Li5lODMyODU5ZmEwMWY4MzAzNDE4MTg4ZGM2NzQ5ZDgxYzY3ZTQ4ZjFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU2NyaXB0
CiAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgICAgIGludCBsaW5lTnVtYmVyID0g
MDsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCk7
Ci0gICAgICAgIGlmIChtX3dvcmtlckNvbnRleHQtPnNhbml0aXplU2NyaXB0RXJyb3IoZXJyb3JN
ZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBpZiAobV93b3JrZXJDb250
ZXh0LT5zYW5pdGl6ZVNjcmlwdEVycm9yKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNl
VVJMLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKSkKICAgICAgICAgICAgICpleGNlcHRpb24g
PSBTY3JpcHRWYWx1ZSgqbV9nbG9iYWxEYXRhLCB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9y
KGV4ZWMsIGVycm9yTWVzc2FnZS5pbXBsKCkpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICpleGNlcHRpb24gPSBTY3JpcHRWYWx1ZSgqbV9nbG9iYWxEYXRhLCBldmFsdWF0aW9uRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApp
bmRleCA5MjQ0NWNhODBkYWY2MzMyMzlkMmY3OWNlZTk4ZGQ5ZGQ0NDFiMzIzLi4yMTMxZGRlNjI2
NjQ5OGFjY2E5OWM4ODdlYjFmYWIxYzY4YTFlYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCkBA
IC0yNzcsMTAgKzI3OCwxMCBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNsb3NlTWVz
c2FnZVBvcnRzKCkgewogICAgIH0KIH0KIAotYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpz
YW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIs
IFN0cmluZyYgc291cmNlVVJMKQorYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6
ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmlu
ZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBLVVJMIHRh
cmdldFVSTCA9IGNvbXBsZXRlVVJMKHNvdXJjZVVSTCk7Ci0gICAgaWYgKHNlY3VyaXR5T3JpZ2lu
KCktPmNhblJlcXVlc3QodGFyZ2V0VVJMKSkKKyAgICBpZiAoc2VjdXJpdHlPcmlnaW4oKS0+Y2Fu
UmVxdWVzdCh0YXJnZXRVUkwpIHx8IChjYWNoZWRTY3JpcHQgJiYgY2FjaGVkU2NyaXB0LT5wYXNz
ZXNBY2Nlc3NDb250cm9sQ2hlY2soc2VjdXJpdHlPcmlnaW4oKSkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgZXJyb3JNZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iOwogICAgIHNvdXJjZVVS
TCA9IFN0cmluZygpOwpAQCAtMjg4LDcgKzI4OSw3IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5l
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVw
b3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2spCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBpZiAobV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgewog
ICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCkBAIC0yOTgsNyArMjk5LDcgQEAgdm9p
ZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCBsaW4KICAgICB9CiAKICAgICAvLyBGaXJzdCByZXBvcnQgdGhlIG9y
aWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUgbmVzdGVkIG9uZXMuCi0gICAg
aWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VV
UkwpKQorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KGVycm9yTWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMLCBjYWNoZWRTY3JpcHQpKQogICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNv
bGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjayk7CiAKICAg
ICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCkBAIC0zMjIsNyArMzIzLDcgQEAgdm9pZCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZVR5cGUKIH0KIAogCi1ib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3Bh
dGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpk
aXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQp
CiB7CiAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZlbnRUYXJnZXQoKTsKICAgICBp
ZiAoIXRhcmdldCkKQEAgLTMzMSw3ICszMzIsNyBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50CiAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7CiAgICAgaW50IGxpbmUgPSBsaW5lTnVt
YmVyOwogICAgIFN0cmluZyBzb3VyY2VOYW1lID0gc291cmNlVVJMOwotICAgIHNhbml0aXplU2Ny
aXB0RXJyb3IobWVzc2FnZSwgbGluZSwgc291cmNlTmFtZSk7CisgICAgc2FuaXRpemVTY3JpcHRF
cnJvcihtZXNzYWdlLCBsaW5lLCBzb3VyY2VOYW1lLCBjYWNoZWRTY3JpcHQpOwogCiAgICAgQVNT
RVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKICAgICBtX2luRGlzcGF0Y2hFcnJvckV2ZW50
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmlu
ZGV4IDhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4ZDg3MjA4NGI0Mzc0MjUuLmFhNGMwY2ZmNmRi
OGNhMjVkZWNkZWRlZjA1OGIyOTM0ZGU0YjM4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNDgsNiArNDgsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERPTVRpbWVyOwogY2xhc3MgRXZl
bnRMaXN0ZW5lcjsKIGNsYXNzIEV2ZW50UXVldWU7CkBAIC04MSw4ICs4Miw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSkgPSAwOwogCi0gICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsKLSAgICB2b2lkIHJlcG9y
dEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAg
IGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5l
TnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0KiA9IDApOworICAgIHZvaWQg
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwg
Q2FjaGVkU2NyaXB0KiA9IDApOwogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0g
MCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCk7CiAgICAgdm9pZCBhZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKQEAgLTE4Nyw3
ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZl
bnRUYXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBs
aW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKLSAgICBib29sIGRp
c3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVu
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqKTsKIAogICAgIHZvaWQgY2xvc2VNZXNzYWdlUG9y
dHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxv
YWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nh
bm5lci5jcHAKaW5kZXggYTc1YjUyZTM1NTA2YWEzMGU1ZTliZjMwOWYwMjBkODcxOTFjY2ZmNC4u
ZDcwOTAyMzViMDU5MTNlOTI5MDVmNzE3M2IzOTQ5NWYwNmQyY2NiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC03NCw2ICs3
NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmIChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnIHx8
IG1fdGFnTmFtZSA9PSBpbWdUYWcpIHsKICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFt
ZSA9PSBzcmNBdHRyKQogICAgICAgICAgICAgICAgICAgICBzZXRVcmxUb0xvYWQoYXR0cmlidXRl
VmFsdWUpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gY3Jvc3Nv
cmlnaW5BdHRyKQorICAgICAgICAgICAgICAgICAgICBtX2Nyb3NzT3JpZ2luTW9kZSA9IGF0dHJp
YnV0ZVZhbHVlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX3RhZ05hbWUgPT0gbGlua1RhZykg
ewogICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IGhyZWZBdHRyKQogICAgICAg
ICAgICAgICAgICAgICBzZXRVcmxUb0xvYWQoYXR0cmlidXRlVmFsdWUpOwpAQCAtMTI4LDggKzEz
MCwxMSBAQCBwdWJsaWM6CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJl
c291cmNlTG9hZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAgICAgICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fdXJsVG9M
b2FkLCBiYXNlVVJMKTsKLSAgICAgICAgaWYgKG1fdGFnTmFtZSA9PSBzY3JpcHRUYWcpCisgICAg
ICAgIGlmIChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKSB7CisgICAgICAgICAgICBpZiAoIW1fY3Jv
c3NPcmlnaW5Nb2RlLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0QWxsb3dD
b29raWVzKGVxdWFsSWdub3JpbmdDYXNlKG1fY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRp
YWxzIikpOwogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPnByZWxvYWQoQ2FjaGVk
UmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBzY2FubmluZ0JvZHkpOworICAg
ICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG1fdGFnTmFtZSA9PSBpbWdUYWcgfHwgKG1fdGFnTmFt
ZSA9PSBpbnB1dFRhZyAmJiBtX2lucHV0SXNJbWFnZSkpCiAgICAgICAgICAgICBjYWNoZWRSZXNv
dXJjZUxvYWRlci0+cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVz
dCwgU3RyaW5nKCksIHNjYW5uaW5nQm9keSk7CiAgICAgICAgIGVsc2UgaWYgKG1fdGFnTmFtZSA9
PSBsaW5rVGFnICYmIG1fbGlua0lzU3R5bGVTaGVldCAmJiBtX2xpbmtNZWRpYUF0dHJpYnV0ZUlz
U2NyZWVuKSAKQEAgLTE0NCw2ICsxNDksNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VybFRv
TG9hZDsKICAgICBTdHJpbmcgbV9jaGFyc2V0OwogICAgIFN0cmluZyBtX2Jhc2VFbGVtZW50SHJl
ZjsKKyAgICBTdHJpbmcgbV9jcm9zc09yaWdpbk1vZGU7CiAgICAgYm9vbCBtX2xpbmtJc1N0eWxl
U2hlZXQ7CiAgICAgYm9vbCBtX2xpbmtNZWRpYUF0dHJpYnV0ZUlzU2NyZWVuOwogICAgIGJvb2wg
bV9pbnB1dElzSW1hZ2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmExYTdhMGVhMjU0ZTM4YjUyNDFjMTkyNTUwZDM0NTc4
N2MwYzQ4Ny4uYzc3ZjZjNTliZTFmYzNiZDJlMjNlOTE3ZjIxNTU5MGEzYWNlODVkYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEyLTA5LTI1ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9y
b2xhLmNvbT4KKworICAgICAgICBbSlNDXSBEb24ndCBzYW5pdGl6ZSB3aW5kb3cub25lcnJvciBp
bmZvcm1hdGlvbiBvbiBjcm9zc29yaWdpbi1lbmFibGVkIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9jb3JzLXNjcmlwdC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9z
Y3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9uZXJy
b3ItaW5mb3JtYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtbm8t
Y3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAg
IFRoaXMgcGF0Y2ggb25seSBkZWFscyB3aXRoIEpTQyByaWdodCBub3csIHNraXAgdGhlIG5ldyB0
ZXN0cy4KKwogMjAxMi0wOS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVz
dGFtcHMuaHRtbCB0aW1lcyBvdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHAKaW5kZXggNzM0NGFlOWE5ZGVh
YzdlYjE2YTBiOWI4YzA3NjQ0YjJkYTE1Mjc2OC4uMWM5N2U1NmJkMDI1NDQ1MDI2YjIwNGIwZTI1
ZmVkZjk0NzIyYzg5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0LnBocApAQCAtMSw1ICsxLDggQEAKIDw/cGhw
CiBoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4
MDAwIik7CiBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vamF2YXNjcmlwdCIpOwor
aWYgKHN0cnRvbG93ZXIoJF9HRVRbImZhaWwiXSkgPT0gInRydWUiKQorICAgIGVjaG8gIm9oaGFp
Y29uZ2E7IjsKK2Vsc2UKKyAgICBlY2hvICJhbGVydCgnc2NyaXB0IHJhbi4nKTsiOwogPz4KLWFs
ZXJ0KCJzY3JpcHQgcmFuLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1v
bmVycm9yLWluZm9ybWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGY2YTI3OTk2MjQz
ZDUwM2JhMDM4NzI4NGI1Zjc2NTYxODRkYWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1h
dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBvaGhhaWNvbmdhCitUaGUg
dGVzdCBwYXNzZXMgaWYgd2luZG93Lm9uZXJyb3IgZ2V0cyBmdWxsLCB1bnJlZGFjdGVkIGluZm9y
bWF0aW9uIGFib3V0IHRoZSBzY3JpcHQgZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG1zZyBpcyAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IG9oaGFpY29uZ2EiCitQQVNTIHVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/ZmFpbD10cnVlIgorUEFTUyBsaW5lIGlzIDEKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1v
bmVycm9yLWluZm9ybWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDBkNmI3ZDU4ZjViMGYxZWMzYWJlYmNlM2M1ZmI1ODVhODlmMDM4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9u
ZXJyb3ItaW5mb3JtYXRpb24uaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9uKCJUaGUgdGVzdCBwYXNzZXMgaWYgd2luZG93Lm9u
ZXJyb3IgZ2V0cyBmdWxsLCB1bnJlZGFjdGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHQg
ZXJyb3IuIik7CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpIHsK
KyAgICB3aW5kb3cubXNnID0gbXNnOworICAgIHdpbmRvdy51cmwgPSB1cmw7CisgICAgd2luZG93
LmxpbmUgPSBsaW5lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXNnIiwgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBvaGhhaWNvbmdhIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ1cmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291
cmNlcy9jb3JzLXNjcmlwdC5waHA/ZmFpbD10cnVlIik7CisgICAgc2hvdWxkQmUoImxpbmUiLCAi
MSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGNyb3Nzb3Jp
Z2luIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNj
cmlwdC5waHA/ZmFpbD10cnVlIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1z
aG91bGQtYmUtc2FuaXRpemVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXpl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJkMDViNTNhYzMyNTlmNzEzYmQ0NTQzM2Q3MmMw
Mzk2ZTA3ZjEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBvaGhhaWNvbmdhCitUaGUgdGVzdCBw
YXNzZXMgaWYgd2luZG93Lm9uZXJyb3IgZ2V0cyByZWRhY3RlZCBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgc2NyaXB0IGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBt
c2cgaXMgbm90ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogb2hoYWljb25n
YSIKK1BBU1MgdXJsIGlzICIiCitQQVNTIGxpbmUgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJl
LXNhbml0aXplZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQt
bm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGUxNGUyOWI0MTdmOWE0ODBkNDAzNTI2N2NjMGFmMTdmYjNkNWIyOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3Jp
Z2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZXNj
cmlwdGlvbigiVGhlIHRlc3QgcGFzc2VzIGlmIHdpbmRvdy5vbmVycm9yIGdldHMgcmVkYWN0ZWQg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdCBlcnJvci4iKTsKKword2luZG93Lm9uZXJyb3Ig
PSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkgeworICAgIHdpbmRvdy5tc2cgPSBtc2c7CisgICAg
d2luZG93LnVybCA9IHVybDsKKyAgICB3aW5kb3cubGluZSA9IGxpbmU7CisgICAgc2hvdWxkTm90
QmUoIm1zZyIsICciUmVmZXJlbmNlRXJyb3I6IENhblwndCBmaW5kIHZhcmlhYmxlOiBvaGhhaWNv
bmdhIicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidXJsIiwgIiIpOworICAgIHNob3Vs
ZEJlKCJsaW5lIiwgIjAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPCEt
LSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgbm90IHNldCwgd2Ugc2hvdWxkbid0IGdldCBhbnkg
c3BlY2lmaWMgaW5mbyBvbiB0aGUgZXJyb3IuIC0tPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwP2ZhaWw9dHJ1ZSI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMjY3NDc2NGRkNDc3YmFjYzgwYzNjMDY0YzUzNTdjMmY3YTdl
MmJhNS4uNzQ0ZDRiNWU2YzEzOTExNDcyNzlmMDUxYjkwMmJmMWFhZDZmZDk0MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNTU4LDQg
KzM1NTgsNyBAQCB3ZWJraXQub3JnL2IvOTY5NjIgZmFzdC9qcy9jcm9zcy1mcmFtZS1yZWFsbHkt
YmFkLXRpbWUtd2l0aC1fX3Byb3RvX18uaHRtbCBbIEZhaQogCiB3ZWJraXQub3JnL2IvOTcxNzkg
aHR0cC90ZXN0cy9jc3MvbGluay1jc3MtZGlzYWJsZWQtdmFsdWUtd2l0aC1zbG93LWxvYWRpbmct
c2hlZXQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKKyMgT25seSByZWFkeSBmb3IgSlNDIHNvIGZh
ciwgbm90IGZpeGVkIGluIHY4IHlldC4KK3dlYmtpdC5vcmcvYi85NzQ5OSBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi85NzQ5OSBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1j
cm9zc29yaWdpbi1vbmVycm9yLXNob3VsZC1iZS1zYW5pdGl6ZWQuaHRtbCBbIEZhaWx1cmUgXQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165904</attachid>
            <date>2012-09-26 17:22:20 -0700</date>
            <delta_ts>2012-11-07 12:02:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70574-20120926172139.patch</filename>
            <type>text/plain</type>
            <size>23928</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ2ZTA2NTdkOGJmZWRm
ZDRlMmJmNzlhZmE5MzE1MjE5ZGY0MzIxNS4uZTQ2MzUyMDQ0NzEwNzVmNDc0MWE4NDZmYzY1NmJj
OWRmM2I4ZWU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTA5LTI1ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbSlNDXSBEb24ndCBz
YW5pdGl6ZSB3aW5kb3cub25lcnJvciBpbmZvcm1hdGlvbiBvbiBjcm9zc29yaWdpbi1lbmFibGVk
IHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yIHNjcmlwdHMgdGhhdCB1c2UgQ09SUyAodmlhIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUg
aW4gdGhpcyBjYXNlKSwKKyAgICAgICAgZG9uJ3Qgc2FuaXRpemUgdGhlIGluZm9ybWF0aW9uIHBh
c3NlZCB0byB0aGUgd2luZG93J3Mgb25lcnJvciBoYW5kbGVyIChpLmUuCisgICAgICAgIG1lc3Nh
Z2UsIHVybCwgYW5kIGxpbmUgbnVtYmVyKS4gVXNlZnVsIGZvciBzY3JpcHRzIGhvc3RlZCBvbiBD
RE5zLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29y
aWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXpl
ZC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLm9y
ZGVyOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAoU2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgICAgICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjYWNo
ZWQgc2NyaXB0IGluIHRoZSBTY3JpcHRTb3VyY2VDb2RlLCBzbworICAgICAgICAgICAgdGhhdCBp
dCBjYW4gYmUgcGFzc2VkIGFyb3VuZCBhbmQgYmUgYXZhaWxhYmxlIHdoZW4gcmVwb3J0aW5nIHRo
ZQorICAgICAgICAgICAgZXhjZXB0aW9uLgorCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
c2FuaXRpemVTY3JpcHRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KToKKyAgICAgICAgICAgIENoZWNrIGlmIHRoZSBzY3JpcHQgcGFzc2VzIHRo
ZSBhY2Nlc3MgY29udHJvbCBjaGVja3MsIGFuZCBpZiBzbywKKyAgICAgICAgICAgIGRvbid0IHNh
bml0aXplIHRoZSBlcnJvciBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJv
Y2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6OnByZWxvYWQp
OgorICAgICAgICAoUHJlbG9hZFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6
OmNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMpOgorICAgICAgICAgICAgV2hlbiBwcmVsb2Fk
aW5nIHNjcmlwdCBlbGVtZW50cywgY2hlY2sgZm9yIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUK
KyAgICAgICAgICAgIGFuZCBhZGp1c3QgdGhlIHJlcXVlc3QncyBhbGxvd0Nvb2tpZXMgdmFsdWUg
YWNjb3JkaW5nbHkuIE90aGVyd2lzZQorICAgICAgICAgICAgd2hlbiB0aGUgc2NyaXB0IGlzIGxv
YWRlZCBmcm9tIHRoZSBjYWNoZSBsYXRlciBvbiwgdGhlIGNyb3NzIG9yaWdpbiBtb2RlCisgICAg
ICAgICAgICAoYW5vbnltb3VzL3VzZS1jcmVkZW50aWFscykgd2lsbCBiZSBlZmZlY3RpdmVseSBp
Z25vcmVkLgorCiAyMDEyLTA5LTIwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJlbmFtZSBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZCAicGFyc2VyQXBw
ZW5kQ2hpbGQiIGZvciBjb25zaXN0ZW5jeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmY4MzBk
NTAzODQ5MmZkMmRlNDEwY2YyNWY4MzI5MzcyMjAxMDM4Li4xOTg3ZWEwNDUyNmNlYjJjYjc3MzVh
MDI5MzE3ZDgzNzA4NTE5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzg3LDcgKzM4Nyw3
IEBAIF9fWk43V2ViQ29yZTE1ZGVmYXVsdExhbmd1YWdlRXYKIF9fWk43V2ViQ29yZTE1bG9jYWxp
emVkU3RyaW5nRVBLYwogX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAogX19a
TjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUx
NXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUUKK19fWk43V2Vi
Q29yZTE1cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18x
MkNhY2hlZFNjcmlwdEUKIF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVj
U3RhdGVFaQogX19aTjdXZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVO
UzBfN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcgppbmRleCA3NjhhN2ZhMzUwYzMzOGY5MTQxMjljMzhkMmY4ZmM2YTRiMjI5ZTg3Li4w
OTdiNTNjMDk1ZDE5M2M1NzE2ZTU1M2M1MTA0ZjUzNGRlOGI5YzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKQEAgLTIwNzEsNyArMjA3MSw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdnZXREaXJlY3RMb2Nh
dGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU18xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUx
NmZpbmRBdG9taWNTdHJpbmdFUktOM0pTQzEwSWRlbnRpZmllckUKIF9fWk5LM1dURjlIYXNoVGFi
bGVJUE5TXzE2QXRvbWljU3RyaW5nSW1wbEVTdDRwYWlySVMyX2pFTlNfMThQYWlyRmlyc3RFeHRy
YWN0b3JJUzRfRUVOU183UHRySGFzaElTMl9FRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNo
VHJhaXRzSVMyX0VFTlNBX0lqRUVFRVNCX0U4Y29udGFpbnNJUzJfTlNfMjJJZGVudGl0eUhhc2hU
cmFuc2xhdG9ySVMyX1M0X1M4X0VFRUViUktUXwogX19aTkszV1RGOUhhc2hUYWJsZUlQTlNfMTZB
dG9taWNTdHJpbmdJbXBsRVN0NHBhaXJJUzJfUE43V2ViQ29yZTdFbGVtZW50RUVOU18xOFBhaXJG
aXJzdEV4dHJhY3RvcklTN19FRU5TXzdQdHJIYXNoSVMyX0VFTlNfMTRQYWlySGFzaFRyYWl0c0lO
U18xMEhhc2hUcmFpdHNJUzJfRUVOU0RfSVM2X0VFRUVTRV9FOGNvbnRhaW5zSVMyX05TXzIySWRl
bnRpdHlIYXNoVHJhbnNsYXRvcklTMl9TN19TQl9FRUVFYlJLVF8KLV9fWk43V2ViQ29yZTE1cmVw
b3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQorX19aTjdXZWJDb3Jl
MTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5TXzEyQ2Fj
aGVkU2NyaXB0RQogX19aTkszSlNDN0pTVmFsdWU4dG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCiBf
X1pOSzNKU0M4SlNPYmplY3QzZ2V0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQog
X19aTjdXZWJDb3JlMTV0b0V4Y2VwdGlvbkJhc2VFTjNKU0M3SlNWYWx1ZUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IGZlMDg0ZWE0ZGZiNDAyMjU2
N2QxNzY0YzY4M2Q3ZmM3Zjg1OTNmZmUuLmU3MTA5MDA0YmVhNzM4Yzk4MGJhMWQ4NDVmMWVhZDYw
M2NhNWUzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogCiAjaW5jbHVk
ZSAiQmluZGluZ1NlY3VyaXR5LmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBKU0M6OkpTVmFs
dWUganNBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUGFzcwogICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgbGlzdCk7CiB9CiAKLXZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBleGNlcHRpb24pCit2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAg
ICBpZiAoaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpCiAgICAgICAg
IHJldHVybjsKQEAgLTE2NCw3ICsxNjUsNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gZ2xv
YmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgZXhjZXB0
aW9uU291cmNlVVJMLCAwKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5yZXBvcnRFeGNl
cHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBleGNlcHRpb25Tb3VyY2VVUkwsIDAsIGNh
Y2hlZFNjcmlwdCk7CiB9CiAKIHZvaWQgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDc1
MzJiNzkzZTcyOGQwZDhiYzFhZTJkNWMzZTJhMTJlOTA5NzEzOTAuLjY3MGU2YWI5MzI5MmY4NTU5
OGE0NWU0ZGU5ZDk4NzFkOGU0NjViNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCkBAIC01NSw2ICs1NSw3IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGlj
eSB7CiAKICNkZWZpbmUgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGlj
eSkgKCgocG9saWN5KSA9PSBEZWZhdWx0SXNOdWxsU3RyaW5nICYmIChpbmRleCkgPj0gKGV4ZWMp
LT5hcmd1bWVudENvdW50KCkpID8gKEpTVmFsdWUoKSkgOiAoKGV4ZWMpLT5hcmd1bWVudChpbmRl
eCkpKQogCisgICAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNs
YXNzIEtVUkw7CiAKQEAgLTIyNyw3ICsyMjgsNyBAQCBlbnVtIFBhcmFtZXRlckRlZmF1bHRQb2xp
Y3kgewogCiAgICAgY29uc3QgSlNDOjpIYXNoVGFibGUqIGdldEhhc2hUYWJsZUZvckdsb2JhbERh
dGEoSlNDOjpKU0dsb2JhbERhdGEmLCBjb25zdCBKU0M6Okhhc2hUYWJsZSogc3RhdGljVGFibGUp
OwogCi0gICAgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUgZXhjZXB0aW9uKTsKKyAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogPSAwKTsKICAgICB2b2lkIHJl
cG9ydEN1cnJlbnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIAogICAgIC8vIENvbnZlcnQg
YSBET00gaW1wbGVtZW50YXRpb24gZXhjZXB0aW9uIGNvZGUgaW50byBhIEphdmFTY3JpcHQgZXhj
ZXB0aW9uIGluIHRoZSBleGVjdXRpb24gc3RhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ4ZjY4YzhhMzI4NmY1ZDlhODJlMGYx
YTA3ZWZhOGNkZDRlMjVlNTIuLjg4ZmE0YWFiOGMwOGVmODhhZDFhNWJjNzViZWFkNTc1ODBjYzFl
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgU2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSk7CiAKICAgICBp
ZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgewotICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywg
ZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFs
dWF0aW9uRXhjZXB0aW9uLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKTsKICAgICAgICAgbV9z
b3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5o
CmluZGV4IGIxYWZiZGViMDM3Y2VlYTJhZWIzYjdmNGExYjg1MDM0ZmNmNTAxZmEuLmExNzVkMTVl
Zjg4MTBlNDFhODE5NjcxYzdmZGJmMWM0YTlmMzEyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpZm5kZWYg
U2NyaXB0U291cmNlQ29kZV9oCiAjZGVmaW5lIFNjcmlwdFNvdXJjZUNvZGVfaAogCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIktVUkwuaCIK
ICNpbmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXIuaD4KQEAgLTQ0LDEzICs0NiwxNSBAQCBw
dWJsaWM6CiAgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3Qg
S1VSTCYgdXJsID0gS1VSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBU
ZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgdXJsLmlzTnVsbCgpID8gU3Ry
aW5nKCkgOiB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24pKQogICAgICAgICAsIG1fY29kZSht
X3Byb3ZpZGVyLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKQorICAgICAgICAs
IG1fY2FjaGVkU2NyaXB0KDApCiAgICAgICAgICwgbV91cmwodXJsKQogICAgIHsKICAgICB9CiAK
LSAgICBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY3MpCi0gICAgICAgIDogbV9wcm92
aWRlcihDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGNzKSkKKyAgICBleHBsaWNp
dCBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQorICAgICAgICA6
IG1fcHJvdmlkZXIoQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShjYWNoZWRTY3Jp
cHQpKQogICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyKQorICAgICAgICAsIG1fY2FjaGVkU2Ny
aXB0KGNhY2hlZFNjcmlwdCkKICAgICB7CiAgICAgfQogCkBAIC02MiwxMyArNjYsMTcgQEAgcHVi
bGljOgogCiAgICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZS5maXJzdExp
bmUoKTsgfQogCisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCiAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV91cmw7IH0KICAgICAKIHByaXZhdGU6CiAgICAgUmVmUHRyPEpTQzo6U291cmNl
UHJvdmlkZXI+IG1fcHJvdmlkZXI7CiAgICAgCiAgICAgSlNDOjpTb3VyY2VDb2RlIG1fY29kZTsK
LSAgICAKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRT
Y3JpcHQ7CisKICAgICBLVVJMIG1fdXJsOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA1NWMzNDc2N2Iz
ZDNhYjM4NDI0YmJhMWFkYTk5NmRiYmZkNTUzZDI5Li5lODMyODU5ZmEwMWY4MzAzNDE4MTg4ZGM2
NzQ5ZDgxYzY3ZTQ4ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291
cmNlQ29kZSwgU2NyaXB0CiAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgICAgIGlu
dCBsaW5lTnVtYmVyID0gMDsKICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHNvdXJjZUNvZGUu
dXJsKCkuc3RyaW5nKCk7Ci0gICAgICAgIGlmIChtX3dvcmtlckNvbnRleHQtPnNhbml0aXplU2Ny
aXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgICAgICBp
ZiAobV93b3JrZXJDb250ZXh0LT5zYW5pdGl6ZVNjcmlwdEVycm9yKGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgc291cmNlVVJMLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKSkKICAgICAgICAg
ICAgICpleGNlcHRpb24gPSBTY3JpcHRWYWx1ZSgqbV9nbG9iYWxEYXRhLCB0aHJvd0Vycm9yKGV4
ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZS5pbXBsKCkpKSk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICpleGNlcHRpb24gPSBTY3JpcHRWYWx1ZSgqbV9nbG9iYWxEYXRhLCBl
dmFsdWF0aW9uRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcAppbmRleCA5MjQ0NWNhODBkYWY2MzMyMzlkMmY3OWNlZTk4ZGQ5ZGQ0NDFi
MzIzLi4yMTMxZGRlNjI2NjQ5OGFjY2E5OWM4ODdlYjFmYWIxYzY4YTFlYzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQWN0
aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJF
cnJvckV2ZW50LmgiCkBAIC0yNzcsMTAgKzI3OCwxMCBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmNsb3NlTWVzc2FnZVBvcnRzKCkgewogICAgIH0KIH0KIAotYm9vbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKQorYm9vbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxp
bmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkK
IHsKICAgICBLVVJMIHRhcmdldFVSTCA9IGNvbXBsZXRlVVJMKHNvdXJjZVVSTCk7Ci0gICAgaWYg
KHNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodGFyZ2V0VVJMKSkKKyAgICBpZiAoc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh0YXJnZXRVUkwpIHx8IChjYWNoZWRTY3JpcHQgJiYgY2Fj
aGVkU2NyaXB0LT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soc2VjdXJpdHlPcmlnaW4oKSkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZXJyb3JNZXNzYWdlID0gIlNjcmlwdCBlcnJvci4i
OwogICAgIHNvdXJjZVVSTCA9IFN0cmluZygpOwpAQCAtMjg4LDcgKzI4OSw3IEBAIGJvb2wgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50JiBsaW5lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9y
dEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBpZiAobV9pbkRpc3BhdGNo
RXJyb3JFdmVudCkgewogICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCkBAIC0yOTgs
NyArMjk5LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW4KICAgICB9CiAKICAgICAvLyBGaXJz
dCByZXBvcnQgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVuIGFsbCB0aGUgbmVz
dGVkIG9uZXMuCi0gICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwpKQorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2ZW50KGVycm9yTWVz
c2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWNoZWRTY3JpcHQpKQogICAgICAgICBsb2dF
eGNlcHRpb25Ub0NvbnNvbGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNh
bGxTdGFjayk7CiAKICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCkBAIC0zMjIsNyArMzIz
LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUKIH0KIAogCi1ib29sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorYm9vbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0
KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9IGVycm9yRXZlbnRU
YXJnZXQoKTsKICAgICBpZiAoIXRhcmdldCkKQEAgLTMzMSw3ICszMzIsNyBAQCBib29sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7CiAgICAgaW50
IGxpbmUgPSBsaW5lTnVtYmVyOwogICAgIFN0cmluZyBzb3VyY2VOYW1lID0gc291cmNlVVJMOwot
ICAgIHNhbml0aXplU2NyaXB0RXJyb3IobWVzc2FnZSwgbGluZSwgc291cmNlTmFtZSk7CisgICAg
c2FuaXRpemVTY3JpcHRFcnJvcihtZXNzYWdlLCBsaW5lLCBzb3VyY2VOYW1lLCBjYWNoZWRTY3Jp
cHQpOwogCiAgICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsKICAgICBtX2luRGlz
cGF0Y2hFcnJvckV2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCmluZGV4IDhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4ZDg3MjA4NGI0Mzc0
MjUuLmFhNGMwY2ZmNmRiOGNhMjVkZWNkZWRlZjA1OGIyOTM0ZGU0YjM4NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNDgsNiArNDgsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERPTVRp
bWVyOwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEV2ZW50UXVldWU7CkBAIC04MSw4ICs4
Miw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSkgPSAwOwogCi0gICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0
cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsK
LSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOworICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0KiA9
IDApOworICAgIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiwgQ2FjaGVkU2NyaXB0KiA9IDApOwogICAgIHZvaWQgYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCk7CiAgICAg
dm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CiAKQEAgLTE4Nyw3ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2Vw
dGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0g
MDsKLSAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICBib29sIGRp
c3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqKTsKIAogICAgIHZvaWQg
Y2xvc2VNZXNzYWdlUG9ydHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggYTc1YjUyZTM1NTA2YWEzMGU1ZTliZjMwOWYw
MjBkODcxOTFjY2ZmNC4uYmViODA0MDUxMWVjMGQ3ZWQ2ZTAwMTdiMWEwZjBiNzBkYTNkOWNlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIu
Y3BwCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmIChtX3RhZ05hbWUg
PT0gc2NyaXB0VGFnIHx8IG1fdGFnTmFtZSA9PSBpbWdUYWcpIHsKICAgICAgICAgICAgICAgICBp
ZiAoYXR0cmlidXRlTmFtZSA9PSBzcmNBdHRyKQogICAgICAgICAgICAgICAgICAgICBzZXRVcmxU
b0xvYWQoYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0gY3Jvc3NvcmlnaW5BdHRyICYmICFhdHRyaWJ1dGVWYWx1ZS5pc051bGwoKSkKKyAg
ICAgICAgICAgICAgICAgICAgbV9jcm9zc09yaWdpbk1vZGUgPSBzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlVmFsdWUpOwogICAgICAgICAgICAgfSBlbHNlIGlmICht
X3RhZ05hbWUgPT0gbGlua1RhZykgewogICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1l
ID09IGhyZWZBdHRyKQogICAgICAgICAgICAgICAgICAgICBzZXRVcmxUb0xvYWQoYXR0cmlidXRl
VmFsdWUpOwpAQCAtMTI4LDggKzEzMCwxMCBAQCBwdWJsaWM6CiAKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCk7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gZG9jdW1lbnQt
PmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNlVVJMKTsKLSAgICAgICAgaWYgKG1fdGFnTmFt
ZSA9PSBzY3JpcHRUYWcpCisgICAgICAgIGlmIChtX3RhZ05hbWUgPT0gc2NyaXB0VGFnKSB7Cisg
ICAgICAgICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyhjcm9zc09yaWdpbk1vZGVBbGxvd3ND
b29raWVzKCkpOwogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPnByZWxvYWQoQ2Fj
aGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgbV9jaGFyc2V0LCBzY2FubmluZ0JvZHkpOwor
ICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG1fdGFnTmFtZSA9PSBpbWdUYWcgfHwgKG1fdGFn
TmFtZSA9PSBpbnB1dFRhZyAmJiBtX2lucHV0SXNJbWFnZSkpCiAgICAgICAgICAgICBjYWNoZWRS
ZXNvdXJjZUxvYWRlci0+cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVx
dWVzdCwgU3RyaW5nKCksIHNjYW5uaW5nQm9keSk7CiAgICAgICAgIGVsc2UgaWYgKG1fdGFnTmFt
ZSA9PSBsaW5rVGFnICYmIG1fbGlua0lzU3R5bGVTaGVldCAmJiBtX2xpbmtNZWRpYUF0dHJpYnV0
ZUlzU2NyZWVuKSAKQEAgLTE0MCwxMCArMTQ0LDE3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJp
bmcmIGJhc2VFbGVtZW50SHJlZigpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZUVsZW1lbnRIcmVmOyB9
CiAKIHByaXZhdGU6CisKKyAgICBib29sIGNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpIHx8IGVxdWFs
SWdub3JpbmdDYXNlKG1fY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIik7CisgICAg
fQorCiAgICAgQXRvbWljU3RyaW5nIG1fdGFnTmFtZTsKICAgICBTdHJpbmcgbV91cmxUb0xvYWQ7
CiAgICAgU3RyaW5nIG1fY2hhcnNldDsKICAgICBTdHJpbmcgbV9iYXNlRWxlbWVudEhyZWY7Cisg
ICAgU3RyaW5nIG1fY3Jvc3NPcmlnaW5Nb2RlOwogICAgIGJvb2wgbV9saW5rSXNTdHlsZVNoZWV0
OwogICAgIGJvb2wgbV9saW5rTWVkaWFBdHRyaWJ1dGVJc1NjcmVlbjsKICAgICBib29sIG1faW5w
dXRJc0ltYWdlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDZhMWE3YTBlYTI1NGUzOGI1MjQxYzE5MjU1MGQzNDU3ODdjMGM0
ODcuLmM3N2Y2YzU5YmUxZmMzYmQyZTIzZTkxN2YyMTU1OTBhM2FjZTg1ZGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMi0wOS0yNSAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5j
b20+CisKKyAgICAgICAgW0pTQ10gRG9uJ3Qgc2FuaXRpemUgd2luZG93Lm9uZXJyb3IgaW5mb3Jt
YXRpb24gb24gY3Jvc3NvcmlnaW4tZW5hYmxlZCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvY29ycy1zY3JpcHQucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0
LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWlu
Zm9ybWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2Ny
aXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nz
b3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sOiBBZGRlZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICBUaGlz
IHBhdGNoIG9ubHkgZGVhbHMgd2l0aCBKU0MgcmlnaHQgbm93LCBza2lwIHRoZSBuZXcgdGVzdHMu
CisKIDIwMTItMDktMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBz
Lmh0bWwgdGltZXMgb3V0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwCmluZGV4IDczNDRhZTlhOWRlYWM3ZWIx
NmEwYjliOGMwNzY0NGIyZGExNTI3NjguLjI5OGFjZjExNjZhYTVjMGE4MzA1N2Y5ZWFiYjQ2ZTJm
NjQ4MWQyMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2NvcnMtc2NyaXB0LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHAKQEAgLTEsNSArMSw4IEBACiA8P3BocAogaGVh
ZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIp
OwogaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKTsKK2lmIChz
dHJ0b2xvd2VyKCRfR0VUWyJmYWlsIl0pID09ICJ0cnVlIikKKyAgICBlY2hvICJ0aHJvdyh7dG9T
dHJpbmc6IGZ1bmN0aW9uKCl7IHJldHVybiAnU29tZUVycm9yJyB9fSk7IjsKK2Vsc2UKKyAgICBl
Y2hvICJhbGVydCgnc2NyaXB0IHJhbi4nKTsiOwogPz4KLWFsZXJ0KCJzY3JpcHQgcmFuLiIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3Nv
cmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGYxZTFiYTE3NDAzZDdiM2ZiM2Q5N2Y4NzRjMzc2MWI5
MzEzMTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFNvbWVFcnJvcgorVGhlIHRl
c3QgcGFzc2VzIGlmIHdpbmRvdy5vbmVycm9yIGdldHMgdW5zYW5pdGl6ZWQgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHNjcmlwdCBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgbXNnLm1hdGNoKC9Tb21lRXJyb3IvKVswXSBpcyAiU29tZUVycm9yIgorUEFTUyB1cmwg
aXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQu
cGhwP2ZhaWw9dHJ1ZSIKK1BBU1MgbGluZSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25l
cnJvci1pbmZvcm1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyM2MxNTQ3NzQyZjU5NGE4M2RkODMz
ZjNjMWE2OTRmODNjNjU3MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZXNjcmlw
dGlvbigiVGhlIHRlc3QgcGFzc2VzIGlmIHdpbmRvdy5vbmVycm9yIGdldHMgdW5zYW5pdGl6ZWQg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdCBlcnJvci4iKTsKKword2luZG93Lm9uZXJyb3Ig
PSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkgeworICAgIHdpbmRvdy5tc2cgPSBtc2c7CisgICAg
d2luZG93LnVybCA9IHVybDsKKyAgICB3aW5kb3cubGluZSA9IGxpbmU7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJtc2cubWF0Y2goL1NvbWVFcnJvci8pWzBdIiwgIlNvbWVFcnJvciIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwP2ZhaWw9dHJ1ZSIpOworICAgIHNob3Vs
ZEJlKCJsaW5lIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNj
cmlwdCBjcm9zc29yaWdpbj0iICAgIGFub255bW91cyAiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/ZmFpbD10cnVlIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
Y3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3Jp
Z2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzYyNjg0M2ZkZWI0ZmU0N2NlY2QxNzU0ZTRiZDI4MmNhNzhjZDZmOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2lu
LW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFNvbWVFcnJvcgorVGhlIHRlc3QgcGFzc2VzIGlm
IHdpbmRvdy5vbmVycm9yIGdldHMgc2FuaXRpemVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3Jp
cHQgZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1zZy5tYXRj
aCgvU29tZUVycm9yLykgaXMgbnVsbAorUEFTUyB1cmwgaXMgIiIKK1BBU1MgbGluZSBpcyAwCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtbm8tY3Jvc3Nvcmln
aW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNob3VsZC1iZS1zYW5p
dGl6ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDEzNzgwNWY5MDFjZDRkOTE5ZjBlMzdiYzgzNTE2YWZm
Yjc1NDcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWwK
QEAgLTAsMCArMSwyMCBAQAorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9uKCJUaGUgdGVzdCBwYXNzZXMgaWYgd2luZG93Lm9u
ZXJyb3IgZ2V0cyBzYW5pdGl6ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdCBlcnJvci4i
KTsKKword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihtc2csIHVybCwgbGluZSkgeworICAgIHdp
bmRvdy5tc2cgPSBtc2c7CisgICAgd2luZG93LnVybCA9IHVybDsKKyAgICB3aW5kb3cubGluZSA9
IGxpbmU7CisgICAgc2hvdWxkQmVOdWxsKCJtc2cubWF0Y2goL1NvbWVFcnJvci8pIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1cmwiLCAiIik7CisgICAgc2hvdWxkQmUoImxpbmUiLCAi
MCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8IS0tIGNyb3Nzb3JpZ2lu
IGF0dHJpYnV0ZSBpcyBub3Qgc2V0LCB3ZSBzaG91bGRuJ3QgZ2V0IGFueSBzcGVjaWZpYyBpbmZv
IG9uIHRoZSBlcnJvci4gLS0+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/ZmFpbD10cnVlIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAyNjc0NzY0ZGQ0NzdiYWNjODBjM2MwNjRjNTM1N2MyZjdhN2UyYmE1Li43NDRkNGI1
ZTZjMTM5MTE0NzI3OWYwNTFiOTAyYmYxYWFkNmZkOTQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM1NTgsNCArMzU1OCw3IEBAIHdl
YmtpdC5vcmcvYi85Njk2MiBmYXN0L2pzL2Nyb3NzLWZyYW1lLXJlYWxseS1iYWQtdGltZS13aXRo
LV9fcHJvdG9fXy5odG1sIFsgRmFpCiAKIHdlYmtpdC5vcmcvYi85NzE3OSBodHRwL3Rlc3RzL2Nz
cy9saW5rLWNzcy1kaXNhYmxlZC12YWx1ZS13aXRoLXNsb3ctbG9hZGluZy1zaGVldC5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KIAorIyBPbmx5IHJlYWR5IGZvciBKU0Mgc28gZmFyLCBub3QgZml4ZWQg
aW4gdjggeWV0Lgord2Via2l0Lm9yZy9iLzk3NDk5IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0
LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24uaHRtbCBbIEZhaWx1cmUgXQord2Via2l0
Lm9yZy9iLzk3NDk5IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9u
ZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sIFsgRmFpbHVyZSBdCiAK
</data>
<flag name="review"
          id="178067"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="178068"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174298</attachid>
            <date>2012-11-14 17:42:42 -0800</date>
            <delta_ts>2012-11-16 12:38:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70574-20121114174040.patch</filename>
            <type>text/plain</type>
            <size>23971</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc4ZWYwNmU0NDYyM2Nk
NTc4MGZmZDRmMjU4NDdmYTBiZTYxMjZhZi4uYzE4YmVkODJjMDg0NTdlYTVjNTYxOTJlMDZmZWQ4
OGFmNjg0ZWM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTExLTE0ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbSlNDXSBEb24ndCBz
YW5pdGl6ZSB3aW5kb3cub25lcnJvciBpbmZvcm1hdGlvbiBvbiBjcm9zc29yaWdpbi1lbmFibGVk
IHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
Rm9yIHNjcmlwdHMgdGhhdCB1c2UgQ09SUyAodmlhIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUg
aW4gdGhpcyBjYXNlKSwKKyAgICAgICAgZG9uJ3Qgc2FuaXRpemUgdGhlIGluZm9ybWF0aW9uIHBh
c3NlZCB0byB0aGUgd2luZG93J3Mgb25lcnJvciBoYW5kbGVyIChpLmUuCisgICAgICAgIG1lc3Nh
Z2UsIHVybCwgYW5kIGxpbmUgbnVtYmVyKS4gVXNlZnVsIGZvciBzY3JpcHRzIGhvc3RlZCBvbiBD
RE5zLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29y
aWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXpl
ZC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLm9y
ZGVyOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAoU2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgICAgICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjYWNo
ZWQgc2NyaXB0IGluIHRoZSBTY3JpcHRTb3VyY2VDb2RlLCBzbworICAgICAgICAgICAgdGhhdCBp
dCBjYW4gYmUgcGFzc2VkIGFyb3VuZCBhbmQgYmUgYXZhaWxhYmxlIHdoZW4gcmVwb3J0aW5nIHRo
ZQorICAgICAgICAgICAgZXhjZXB0aW9uLgorCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
c2FuaXRpemVTY3JpcHRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KToKKyAgICAgICAgICAgIENoZWNrIGlmIHRoZSBzY3JpcHQgcGFzc2VzIHRo
ZSBhY2Nlc3MgY29udHJvbCBjaGVja3MsIGFuZCBpZiBzbywKKyAgICAgICAgICAgIGRvbid0IHNh
bml0aXplIHRoZSBlcnJvciBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJv
Y2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6OnByZWxvYWQp
OgorICAgICAgICAoUHJlbG9hZFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6
OmNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMpOgorICAgICAgICAgICAgV2hlbiBwcmVsb2Fk
aW5nIHNjcmlwdCBlbGVtZW50cywgY2hlY2sgZm9yIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUK
KyAgICAgICAgICAgIGFuZCBhZGp1c3QgdGhlIHJlcXVlc3QncyBhbGxvd0Nvb2tpZXMgdmFsdWUg
YWNjb3JkaW5nbHkuIE90aGVyd2lzZQorICAgICAgICAgICAgd2hlbiB0aGUgc2NyaXB0IGlzIGxv
YWRlZCBmcm9tIHRoZSBjYWNoZSBsYXRlciBvbiwgdGhlIGNyb3NzIG9yaWdpbiBtb2RlCisgICAg
ICAgICAgICAoYW5vbnltb3VzL3VzZS1jcmVkZW50aWFscykgd2lsbCBiZSBlZmZlY3RpdmVseSBp
Z25vcmVkLgorCiAyMDEyLTExLTE0ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgSW5kZXhlZERCOiBJbmRleGluZyB0ZXN0cyBhcmUgZmxha3ktY3Jhc2hpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYmFjNmFhYTMyOGI3YWU2MGVhOGVkZWFlZGQzMGQ1ODZi
ODFjYTcxYy4uNWVmNmFjMTY1NWY3MWFmZDUyZjJiZDFiYmI4MTk3OGVkZTZhYjM0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTQxMiw3ICs0MTIsNyBAQCBfX1pON1dlYkNvcmUxNWRlZmF1bHRM
YW5ndWFnZUV2CiBfX1pON1dlYkNvcmUxNWxvY2FsaXplZFN0cmluZ0VQS2MKIF9fWk43V2ViQ29y
ZTE1b3JpZ2luYWxVUkxEYXRhRVA1TlNVUkwKIF9fWk43V2ViQ29yZTE1cGF0aEdldEZpbGVOYW1l
RVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4
ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJDYWNoZWRTY3JpcHRFCiBfX1pON1dlYkNv
cmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRWkKIF9fWk43V2ViQ29yZTE1dG9E
T01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
MTV2aXNpdGVkTGlua0hhc2hFUEt0agpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggN2NiYTNlY2E0ZTk2
Y2NmNzA1MTU5MmQzMDg3MmIzOGEyOThhODJhNS4uNTEwYjhhMjI1NWU2YTE4ZmJlNmZhYWRmY2E1
OTA4YWU3Y2U4ZWJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yMDcxLDcgKzIwNzEsNyBAQCBf
X1pOM0pTQzhKU09iamVjdDE3Z2V0RGlyZWN0TG9jYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMTZmaW5kQXRvbWljU3RyaW5nRVJLTjNKU0Mx
MElkZW50aWZpZXJFCiBfX1pOSzNXVEY5SGFzaFRhYmxlSVBOU18xNkF0b21pY1N0cmluZ0ltcGxF
U3Q0cGFpcklTMl9qRU5TXzE4UGFpckZpcnN0RXh0cmFjdG9ySVM0X0VFTlNfN1B0ckhhc2hJUzJf
RUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lTMl9FRU5TQV9JakVFRUVTQl9F
OGNvbnRhaW5zSVMyX05TXzIySWRlbnRpdHlIYXNoVHJhbnNsYXRvcklTMl9TNF9TOF9FRUVFYlJL
VF8KIF9fWk5LM1dURjlIYXNoVGFibGVJUE5TXzE2QXRvbWljU3RyaW5nSW1wbEVTdDRwYWlySVMy
X1BON1dlYkNvcmU3RWxlbWVudEVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzdfRUVOU183UHRy
SGFzaElTMl9FRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSVMyX0VFTlNEX0lT
Nl9FRUVFU0VfRThjb250YWluc0lTMl9OU18yMklkZW50aXR5SGFzaFRyYW5zbGF0b3JJUzJfUzdf
U0JfRUVFRWJSS1RfCi1fX1pON1dlYkNvcmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRU5TMF83SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE1cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hlZFNjcmlwdEUKIF9fWk5LM0pTQzdKU1Zh
bHVlOHRvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDOEpTT2JqZWN0M2dldEVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTE1dG9FeGNlcHRpb25C
YXNlRU4zSlNDN0pTVmFsdWVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcAppbmRleCAzMGVjY2VjODlhMGQwNDI1ZGYwMjA3YmYwNmVjNGY1YmRiMzExMWVhLi43
ZjUwMmMwMTkyYTQ3Mzg5YjA0ZmY3YTA0YjZjMWExOGE5YTk0Y2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKIAogI2luY2x1ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRPTU9iamVjdEhhc2hUYWJsZU1hcC5o
IgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CkBAIC0xNDUsNyArMTQ2LDcgQEAgSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3MKICAgICByZXR1cm4g
SlNDOjpjb25zdHJ1Y3RBcnJheShleGVjLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwogfQogCi12
b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9uKQor
dm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGV4Y2VwdGlvbiwg
Q2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbihleGNlcHRpb24pKQogICAgICAgICByZXR1cm47CkBAIC0xNjYsNyArMTY3
LDcgQEAgdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGV4Y2Vw
dGlvbikKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2VwdGlv
bihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGV4Y2VwdGlvblNvdXJjZVVSTCwgMCk7CisgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGlu
ZU51bWJlciwgZXhjZXB0aW9uU291cmNlVVJMLCAwLCBjYWNoZWRTY3JpcHQpOwogfQogCiB2b2lk
IHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCAzYzJmMTE1M2UxZWMwOGU1ZDY2ODVjZTZj
NDhjZGQwNWFjNGIzNGJiLi44ZWZhZGI2Y2U4NWMzZjhiY2JmNWM5NmQxY2Q1ZTUyN2E1MzRiMTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNTYsNiAr
NTYsNyBAQCBlbnVtIFBhcmFtZXRlckRlZmF1bHRQb2xpY3kgewogCiAjZGVmaW5lIE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIGluZGV4LCBwb2xpY3kpICgoKHBvbGljeSkgPT0gRGVmYXVs
dElzTnVsbFN0cmluZyAmJiAoaW5kZXgpID49IChleGVjKS0+YXJndW1lbnRDb3VudCgpKSA/IChK
U1ZhbHVlKCkpIDogKChleGVjKS0+YXJndW1lbnQoaW5kZXgpKSkKIAorICAgIGNsYXNzIENhY2hl
ZFNjcmlwdDsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBLVVJMOwogCkBAIC0yNTIsNyAr
MjUzLDcgQEAgZW51bSBQYXJhbWV0ZXJEZWZhdWx0UG9saWN5IHsKIAogICAgIGNvbnN0IEpTQzo6
SGFzaFRhYmxlKiBnZXRIYXNoVGFibGVGb3JHbG9iYWxEYXRhKEpTQzo6SlNHbG9iYWxEYXRhJiwg
Y29uc3QgSlNDOjpIYXNoVGFibGUqIHN0YXRpY1RhYmxlKTsKIAotICAgIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbik7CisgICAgdm9p
ZCByZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9u
LCBDYWNoZWRTY3JpcHQqID0gMCk7CiAgICAgdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEpT
Qzo6RXhlY1N0YXRlKik7CiAKICAgICAvLyBDb252ZXJ0IGEgRE9NIGltcGxlbWVudGF0aW9uIGV4
Y2VwdGlvbiBjb2RlIGludG8gYSBKYXZhU2NyaXB0IGV4Y2VwdGlvbiBpbiB0aGUgZXhlY3V0aW9u
IHN0YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCA5NTlmOGEyZWZlNGUyZTNmZGUwZjdjZDI2ZmNiYzQwMzA1MTBhY2UwLi5hNjA1
ZTYzOGY1MDE5ZDk0N2NlY2NkNWMyYmE0YjMxYzRlM2U1ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBA
IFNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRFdmFsdWF0ZVNjcmlwdChjb29raWUpOwogCiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24p
IHsKLSAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24pOwor
ICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgc291cmNl
Q29kZS5jYWNoZWRTY3JpcHQoKSk7CiAgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VV
Ukw7CiAgICAgICAgIHJldHVybiBTY3JpcHRWYWx1ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBiMWFmYmRlYjAzN2NlZWEy
YWViM2I3ZjRhMWI4NTAzNGZjZjUwMWZhLi4wMzU1ZWNlNGJmMTI4ZTAxYzEyODIzMzFjNjQ4M2Vh
OTcxZGY1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRT
b3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNl
Q29kZS5oCkBAIC0zMSw2ICszMSw4IEBACiAjaWZuZGVmIFNjcmlwdFNvdXJjZUNvZGVfaAogI2Rl
ZmluZSBTY3JpcHRTb3VyY2VDb2RlX2gKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJj
ZVByb3ZpZGVyLmg+CkBAIC00OCw5ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIFNjcmlwdFNvdXJjZUNvZGUoQ2FjaGVkU2NyaXB0KiBjcykKLSAgICAgICAgOiBtX3Byb3Zp
ZGVyKENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoY3MpKQorICAgIGV4cGxpY2l0
IFNjcmlwdFNvdXJjZUNvZGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCisgICAgICAgIDog
bV9wcm92aWRlcihDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGNhY2hlZFNjcmlw
dCkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIpCisgICAgICAgICwgbV9jYWNoZWRTY3Jp
cHQoY2FjaGVkU2NyaXB0KQogICAgIHsKICAgICB9CiAKQEAgLTYyLDEzICs2NSwxNyBAQCBwdWJs
aWM6CiAKICAgICBpbnQgc3RhcnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlLmZpcnN0TGlu
ZSgpOyB9CiAKKyAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CisKICAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybDsgfQogICAgIAogcHJpdmF0ZToKICAgICBSZWZQdHI8SlNDOjpTb3VyY2VQ
cm92aWRlcj4gbV9wcm92aWRlcjsKICAgICAKICAgICBKU0M6OlNvdXJjZUNvZGUgbV9jb2RlOwot
ICAgIAorCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNj
cmlwdDsKKwogICAgIEtVUkwgbV91cmw7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGMzNGUyNThhYTg2
NzkzNmRhNGVmNWQ2OTZlMmJjOTNlYmE3OGJiODMuLjBjNGU3ZmYyOGE2OTY4MjJlNmNhOWEzNmNk
ZTU1MmE4ODFmYTNmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlLCBTY3JpcHQKICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICAgICAgaW50
IGxpbmVOdW1iZXIgPSAwOwogICAgICAgICBTdHJpbmcgc291cmNlVVJMID0gc291cmNlQ29kZS51
cmwoKS5zdHJpbmcoKTsKLSAgICAgICAgaWYgKG1fd29ya2VyQ29udGV4dC0+c2FuaXRpemVTY3Jp
cHRFcnJvcihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpCisgICAgICAgIGlm
IChtX3dvcmtlckNvbnRleHQtPnNhbml0aXplU2NyaXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwsIHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCkpKQogICAgICAgICAg
ICAgKmV4Y2VwdGlvbiA9IFNjcmlwdFZhbHVlKCptX2dsb2JhbERhdGEsIHRocm93RXJyb3IoZXhl
YywgY3JlYXRlRXJyb3IoZXhlYywgZXJyb3JNZXNzYWdlLmltcGwoKSkpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IFNjcmlwdFZhbHVlKCptX2dsb2JhbERhdGEsIGV2
YWx1YXRpb25FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwCmluZGV4IGQyOWI4N2VmZDUyNzg3YmFiOGM4NDBmYjAxNWY5NTc5MWY3Y2Nk
OWMuLjhlM2M4YWNlZDE4MWMyZTM5ZmMzMTdlNWYyNDk4MGM3NDllNjc2YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkVycm9yRXZlbnQu
aCIKQEAgLTI4NSwxMCArMjg2LDEwIEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y2xv
c2VNZXNzYWdlUG9ydHMoKSB7CiAgICAgfQogfQogCi1ib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OnNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51
bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwpCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNh
bml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwg
U3RyaW5nJiBzb3VyY2VVUkwsIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogewogICAgIEtV
UkwgdGFyZ2V0VVJMID0gY29tcGxldGVVUkwoc291cmNlVVJMKTsKLSAgICBpZiAoc2VjdXJpdHlP
cmlnaW4oKS0+Y2FuUmVxdWVzdCh0YXJnZXRVUkwpKQorICAgIGlmIChzZWN1cml0eU9yaWdpbigp
LT5jYW5SZXF1ZXN0KHRhcmdldFVSTCkgfHwgKGNhY2hlZFNjcmlwdCAmJiBjYWNoZWRTY3JpcHQt
PnBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhzZWN1cml0eU9yaWdpbigpKSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBlcnJvck1lc3NhZ2UgPSAiU2NyaXB0IGVycm9yLiI7CiAgICAgc291
cmNlVVJMID0gU3RyaW5nKCk7CkBAIC0yOTYsNyArMjk3LDcgQEAgYm9vbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQm
IGxpbmUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjaykKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogewogICAgIGlmIChtX2luRGlzcGF0Y2hFcnJvckV2ZW50
KSB7CiAgICAgICAgIGlmICghbV9wZW5kaW5nRXhjZXB0aW9ucykKQEAgLTMwNiw3ICszMDcsNyBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbgogICAgIH0KIAogICAgIC8vIEZpcnN0IHJlcG9ydCB0
aGUgb3JpZ2luYWwgZXhjZXB0aW9uIGFuZCBvbmx5IHRoZW4gYWxsIHRoZSBuZXN0ZWQgb25lcy4K
LSAgICBpZiAoIWRpc3BhdGNoRXJyb3JFdmVudChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCkpCisgICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwsIGNhY2hlZFNjcmlwdCkpCiAgICAgICAgIGxvZ0V4Y2VwdGlvblRv
Q29uc29sZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrKTsK
IAogICAgIGlmICghbV9wZW5kaW5nRXhjZXB0aW9ucykKQEAgLTMzMCw3ICszMzEsNyBAQCB2b2lk
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZQogfQogCiAKLWJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNj
cmlwdCkKIHsKICAgICBFdmVudFRhcmdldCogdGFyZ2V0ID0gZXJyb3JFdmVudFRhcmdldCgpOwog
ICAgIGlmICghdGFyZ2V0KQpAQCAtMzM5LDcgKzM0MCw3IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQKICAgICBTdHJpbmcgbWVzc2FnZSA9IGVycm9yTWVzc2FnZTsKICAgICBpbnQgbGluZSA9IGxp
bmVOdW1iZXI7CiAgICAgU3RyaW5nIHNvdXJjZU5hbWUgPSBzb3VyY2VVUkw7Ci0gICAgc2FuaXRp
emVTY3JpcHRFcnJvcihtZXNzYWdlLCBsaW5lLCBzb3VyY2VOYW1lKTsKKyAgICBzYW5pdGl6ZVNj
cmlwdEVycm9yKG1lc3NhZ2UsIGxpbmUsIHNvdXJjZU5hbWUsIGNhY2hlZFNjcmlwdCk7CiAKICAg
ICBBU1NFUlQoIW1faW5EaXNwYXRjaEVycm9yRXZlbnQpOwogICAgIG1faW5EaXNwYXRjaEVycm9y
RXZlbnQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKaW5kZXggYzg5ZDA5YWVjZDFhMGRiMTYxYWZlYzYyYjM0ZDNhMzcyOWE2ODBmMS4uYjg1NzMw
MDMyMjQwNmEwNTE5Yjg3MTgwMGU0NjJkZGVmODc1YjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRE9NVGltZXI7CiBjbGFz
cyBFdmVudExpc3RlbmVyOwogY2xhc3MgRXZlbnRRdWV1ZTsKQEAgLTgxLDggKzgyLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKSA9IDA7CiAKLSAgICBib29sIHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwpOwotICAgIHZvaWQg
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CisgICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQm
IGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqID0gMCk7CisgICAg
dm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+LCBDYWNoZWRTY3JpcHQqID0gMCk7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1i
ZXIgPSAwLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyID0gMCk7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApOwogCkBAIC0xOTIsNyArMTkzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JF
dmVudFRhcmdldCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50
IGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwotICAgIGJvb2wg
ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgIGJvb2wgZGlzcGF0Y2hFcnJvckV2
ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIENhY2hlZFNjcmlwdCopOwogCiAgICAgdm9pZCBjbG9zZU1lc3NhZ2VQ
b3J0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJl
bG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcAppbmRleCAyMzAzOGJkMGJjZWEwOGQ5ZTI1ZWVjZmNkZjU0YzQ4ZmMxNGIwMzdh
Li43NzRkNjVmMWFlZTY1NTZkOTE0YTFiYzk0ZTYxMDJlYjA1MmU3NDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTc0LDYg
Kzc0LDggQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKG1fdGFnTmFtZSA9PSBzY3JpcHRUYWcg
fHwgbV90YWdOYW1lID09IGltZ1RhZykgewogICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVO
YW1lID09IHNyY0F0dHIpCiAgICAgICAgICAgICAgICAgICAgIHNldFVybFRvTG9hZChhdHRyaWJ1
dGVWYWx1ZSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXR0cmlidXRlTmFtZSA9PSBjcm9z
c29yaWdpbkF0dHIgJiYgIWF0dHJpYnV0ZVZhbHVlLmlzTnVsbCgpKQorICAgICAgICAgICAgICAg
ICAgICBtX2Nyb3NzT3JpZ2luTW9kZSA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyhhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fdGFnTmFtZSA9PSBs
aW5rVGFnKSB7CiAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gaHJlZkF0dHIp
CiAgICAgICAgICAgICAgICAgICAgIHNldFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CkBAIC0x
MjgsOCArMTMwLDEwIEBAIHB1YmxpYzoKIAogICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciog
Y2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsK
ICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwo
bV91cmxUb0xvYWQsIGJhc2VVUkwpOwotICAgICAgICBpZiAobV90YWdOYW1lID09IHNjcmlwdFRh
ZykKKyAgICAgICAgaWYgKG1fdGFnTmFtZSA9PSBzY3JpcHRUYWcpIHsKKyAgICAgICAgICAgIHJl
cXVlc3Quc2V0QWxsb3dDb29raWVzKGNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMoKSk7CiAg
ICAgICAgICAgICBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6
U2NyaXB0LCByZXF1ZXN0LCBtX2NoYXJzZXQsIHNjYW5uaW5nQm9keSk7CisgICAgICAgIH0KICAg
ICAgICAgZWxzZSBpZiAobV90YWdOYW1lID09IGltZ1RhZyB8fCAobV90YWdOYW1lID09IGlucHV0
VGFnICYmIG1faW5wdXRJc0ltYWdlKSkKICAgICAgICAgICAgIGNhY2hlZFJlc291cmNlTG9hZGVy
LT5wcmVsb2FkKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmco
KSwgc2Nhbm5pbmdCb2R5KTsKICAgICAgICAgZWxzZSBpZiAobV90YWdOYW1lID09IGxpbmtUYWcg
JiYgbV9saW5rSXNTdHlsZVNoZWV0ICYmIG1fbGlua01lZGlhQXR0cmlidXRlSXNTY3JlZW4pIApA
QCAtMTQwLDEwICsxNDQsMTcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgYmFzZUVsZW1l
bnRIcmVmKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlRWxlbWVudEhyZWY7IH0KIAogcHJpdmF0ZToK
KworICAgIGJvb2wgY3Jvc3NPcmlnaW5Nb2RlQWxsb3dzQ29va2llcygpCisgICAgeworICAgICAg
ICByZXR1cm4gbV9jcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkgfHwgZXF1YWxJZ25vcmluZ0Nhc2Uo
bV9jcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKTsKKyAgICB9CisKICAgICBBdG9t
aWNTdHJpbmcgbV90YWdOYW1lOwogICAgIFN0cmluZyBtX3VybFRvTG9hZDsKICAgICBTdHJpbmcg
bV9jaGFyc2V0OwogICAgIFN0cmluZyBtX2Jhc2VFbGVtZW50SHJlZjsKKyAgICBTdHJpbmcgbV9j
cm9zc09yaWdpbk1vZGU7CiAgICAgYm9vbCBtX2xpbmtJc1N0eWxlU2hlZXQ7CiAgICAgYm9vbCBt
X2xpbmtNZWRpYUF0dHJpYnV0ZUlzU2NyZWVuOwogICAgIGJvb2wgbV9pbnB1dElzSW1hZ2U7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYTQ4ZmRkYjc0OWM5NDNjYTcwOWI2YmVkNGMzYTAyZTBlMjFlMDVjNC4uZTQyOTQ5ZjA2
ODczMTMyZTEwY2JkODBmYmQ0ZGYxYTFkMTFmMzUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEyLTExLTE0ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBbSlNDXSBEb24ndCBzYW5pdGl6ZSB3aW5kb3cub25lcnJvciBpbmZvcm1hdGlvbiBvbiBjcm9z
c29yaWdpbi1lbmFibGVkIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2Fy
ZW4uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlw
dC5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4t
b25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24uaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtbm8tY3Jvc3Nv
cmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJv
ci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIFRoaXMgcGF0Y2ggb25seSBk
ZWFscyB3aXRoIEpTQyByaWdodCBub3csIHNraXAgdGhlIG5ldyB0ZXN0cy4KKwogMjAxMi0xMS0x
NCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gTWFya2VkIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9p
bWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGFzIGZhaWxpbmcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHAgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHAK
aW5kZXggNzM0NGFlOWE5ZGVhYzdlYjE2YTBiOWI4YzA3NjQ0YjJkYTE1Mjc2OC4uMjk4YWNmMTE2
NmFhNWMwYTgzMDU3ZjllYWJiNDZlMmY2NDgxZDIwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0LnBocApAQCAt
MSw1ICsxLDggQEAKIDw/cGhwCiBoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjog
aHR0cDovLzEyNy4wLjAuMTo4MDAwIik7CiBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRp
b24vamF2YXNjcmlwdCIpOworaWYgKHN0cnRvbG93ZXIoJF9HRVRbImZhaWwiXSkgPT0gInRydWUi
KQorICAgIGVjaG8gInRocm93KHt0b1N0cmluZzogZnVuY3Rpb24oKXsgcmV0dXJuICdTb21lRXJy
b3InIH19KTsiOworZWxzZQorICAgIGVjaG8gImFsZXJ0KCdzY3JpcHQgcmFuLicpOyI7CiA/Pgot
YWxlcnQoInNjcmlwdCByYW4uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2lu
LW9uZXJyb3ItaW5mb3JtYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkZjFlMWJhMTc0
MDNkN2IzZmIzZDk3Zjg3NGMzNzYxYjkzMTMxMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9y
bWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogU29tZUVycm9yCitUaGUgdGVzdCBwYXNzZXMgaWYgd2luZG93Lm9uZXJyb3IgZ2V0cyB1
bnNhbml0aXplZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0IGVycm9yLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtc2cubWF0Y2goL1NvbWVFcnJvci8pWzBdIGlz
ICJTb21lRXJyb3IiCitQQVNTIHVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/ZmFpbD10cnVlIgorUEFTUyBsaW5lIGlzIDEKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1v
bmVycm9yLWluZm9ybWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NjcmlwdC1jcm9zc29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDIzYzE1NDc3NDJmNTk0YTgzZGQ4MzNmM2MxYTY5NGY4M2M2NTcwMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9u
ZXJyb3ItaW5mb3JtYXRpb24uaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9uKCJUaGUgdGVzdCBwYXNzZXMgaWYgd2luZG93Lm9u
ZXJyb3IgZ2V0cyB1bnNhbml0aXplZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0IGVycm9y
LiIpOworCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1zZywgdXJsLCBsaW5lKSB7CisgICAg
d2luZG93Lm1zZyA9IG1zZzsKKyAgICB3aW5kb3cudXJsID0gdXJsOworICAgIHdpbmRvdy5saW5l
ID0gbGluZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1zZy5tYXRjaCgvU29tZUVycm9y
LylbMF0iLCAiU29tZUVycm9yIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ1cmwiLCAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/
ZmFpbD10cnVlIik7CisgICAgc2hvdWxkQmUoImxpbmUiLCAiMSIpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGNyb3Nzb3JpZ2luPSIgICAgYW5vbnltb3VzICIg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0
LnBocD9mYWlsPXRydWUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNob3Vs
ZC1iZS1zYW5pdGl6ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjI2ODQzZmRlYjRmZTQ3Y2VjZDE3NTRlNGJkMjgyY2E3
OGNkNmY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zY3JpcHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogU29tZUVy
cm9yCitUaGUgdGVzdCBwYXNzZXMgaWYgd2luZG93Lm9uZXJyb3IgZ2V0cyBzYW5pdGl6ZWQgaW5m
b3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdCBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgbXNnLm1hdGNoKC9Tb21lRXJyb3IvKSBpcyBudWxsCitQQVNTIHVybCBp
cyAiIgorUEFTUyBsaW5lIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNob3VsZC1iZS1zYW5pdGl6ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2lu
LW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwMTM3ODA1Zjkw
MWNkNGQ5MTlmMGUzN2JjODM1MTZhZmZiNzU0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNo
b3VsZC1iZS1zYW5pdGl6ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVzY3JpcHRpb24oIlRoZSB0
ZXN0IHBhc3NlcyBpZiB3aW5kb3cub25lcnJvciBnZXRzIHNhbml0aXplZCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgc2NyaXB0IGVycm9yLiIpOworCit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKG1z
ZywgdXJsLCBsaW5lKSB7CisgICAgd2luZG93Lm1zZyA9IG1zZzsKKyAgICB3aW5kb3cudXJsID0g
dXJsOworICAgIHdpbmRvdy5saW5lID0gbGluZTsKKyAgICBzaG91bGRCZU51bGwoIm1zZy5tYXRj
aCgvU29tZUVycm9yLykiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInVybCIsICIiKTsK
KyAgICBzaG91bGRCZSgibGluZSIsICIwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Nj
cmlwdD4KKzwhLS0gY3Jvc3NvcmlnaW4gYXR0cmlidXRlIGlzIG5vdCBzZXQsIHdlIHNob3VsZG4n
dCBnZXQgYW55IHNwZWNpZmljIGluZm8gb24gdGhlIGVycm9yLiAtLT4KKzxzY3JpcHQgc3JjPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0LnBocD9m
YWlsPXRydWUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMzYmM5NjY3OTVhN2VhMjk4ODM3N2MyMzg2
N2ZhOTkwOTdiZmRjMzguLmFmZjVmZmQ2Nzg0ZjdkMDY0YzNmYjIyYjVlMzkxYTFhODZlYWUzMzMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNDEyOSw2ICs0MTI5LDEwIEBAIHdlYmtpdC5vcmcvYi83OTQ0NiBzdmcvcmVwYWludC9pbWFn
ZS13aXRoLWNsaXAtcGF0aC5zdmcgWyBQYXNzIEltYWdlT25seUZhaWx1cmUKIHdlYmtpdC5vcmcv
Yi8xMDAxNDIgY3NzMy9maWx0ZXJzL2VmZmVjdC1yZWZlcmVuY2UtaHcuaHRtbCBbIEZhaWx1cmUg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTAwMTQyIGNzczMvZmlsdGVycy9lZmZl
Y3QtcmVmZXJlbmNlLW9yZGVyaW5nLWh3Lmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUg
TWlzc2luZyBdCiAKKyMgT25seSByZWFkeSBmb3IgSlNDIHNvIGZhciwgbm90IGZpeGVkIGluIHY4
IHlldC4KK3dlYmtpdC5vcmcvYi85NzQ5OSBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9z
c29yaWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi85NzQ5OSBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9y
LXNob3VsZC1iZS1zYW5pdGl6ZWQuaHRtbCBbIEZhaWx1cmUgXQorCiAjIFRoaXMgdGVzdCBpcyBw
cm9iYWJseSBlaXRoZXIgRmFpbHVyZSBvciBJbWFnZU9ubHlGYWlsdXJlIGRlcGVuZGluZyBvbiB3
aGljaCBmb250cyBhcmUgaW5zdGFsbGVkLgogd2Via2l0Lm9yZy9iLzk5NzQ5IFsgTW91bnRhaW5M
aW9uIF0gZmFzdC90ZXh0L21pZHdvcmQtYnJlYWstYmVmb3JlLXN1cnJvZ2F0ZS1wYWlyLmh0bWwg
WyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogCg==
</data>
<flag name="commit-queue"
          id="189304"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174745</attachid>
            <date>2012-11-16 12:38:21 -0800</date>
            <delta_ts>2012-11-16 15:31:07 -0800</delta_ts>
            <desc>Rebased patch for landing</desc>
            <filename>bug-70574-20121116123616.patch</filename>
            <type>text/plain</type>
            <size>24045</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNDNiMDQ3ZGFjMTM3
ZjFlNTliZWI3NjdmNDc4MzRiZThmYTdiMy4uNzM3YTJlMmJmOThmYWNkMmNhOTg0ZjkwZDkzYWEz
MThhOWU5ZGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTExLTE2ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBbSlNDXSBEb24ndCBz
YW5pdGl6ZSB3aW5kb3cub25lcnJvciBpbmZvcm1hdGlvbiBvbiBjcm9zc29yaWdpbi1lbmFibGVk
IHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
Rm9yIHNjcmlwdHMgdGhhdCB1c2UgQ09SUyAodmlhIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUg
aW4gdGhpcyBjYXNlKSwKKyAgICAgICAgZG9uJ3Qgc2FuaXRpemUgdGhlIGluZm9ybWF0aW9uIHBh
c3NlZCB0byB0aGUgd2luZG93J3Mgb25lcnJvciBoYW5kbGVyIChpLmUuCisgICAgICAgIG1lc3Nh
Z2UsIHVybCwgYW5kIGxpbmUgbnVtYmVyKS4gVXNlZnVsIGZvciBzY3JpcHRzIGhvc3RlZCBvbiBD
RE5zLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29y
aWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXpl
ZC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLm9y
ZGVyOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAoU2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgICAgICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjYWNo
ZWQgc2NyaXB0IGluIHRoZSBTY3JpcHRTb3VyY2VDb2RlLCBzbworICAgICAgICAgICAgdGhhdCBp
dCBjYW4gYmUgcGFzc2VkIGFyb3VuZCBhbmQgYmUgYXZhaWxhYmxlIHdoZW4gcmVwb3J0aW5nIHRo
ZQorICAgICAgICAgICAgZXhjZXB0aW9uLgorCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
c2FuaXRpemVTY3JpcHRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KToKKyAgICAgICAgICAgIENoZWNrIGlmIHRoZSBzY3JpcHQgcGFzc2VzIHRo
ZSBhY2Nlc3MgY29udHJvbCBjaGVja3MsIGFuZCBpZiBzbywKKyAgICAgICAgICAgIGRvbid0IHNh
bml0aXplIHRoZSBlcnJvciBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2FkVGFzazo6cHJv
Y2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6OnByZWxvYWQp
OgorICAgICAgICAoUHJlbG9hZFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFRhc2s6
OmNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMpOgorICAgICAgICAgICAgV2hlbiBwcmVsb2Fk
aW5nIHNjcmlwdCBlbGVtZW50cywgY2hlY2sgZm9yIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUK
KyAgICAgICAgICAgIGFuZCBhZGp1c3QgdGhlIHJlcXVlc3QncyBhbGxvd0Nvb2tpZXMgdmFsdWUg
YWNjb3JkaW5nbHkuIE90aGVyd2lzZQorICAgICAgICAgICAgd2hlbiB0aGUgc2NyaXB0IGlzIGxv
YWRlZCBmcm9tIHRoZSBjYWNoZSBsYXRlciBvbiwgdGhlIGNyb3NzIG9yaWdpbiBtb2RlCisgICAg
ICAgICAgICAoYW5vbnltb3VzL3VzZS1jcmVkZW50aWFscykgd2lsbCBiZSBlZmZlY3RpdmVseSBp
Z25vcmVkLgorCiAyMDEyLTExLTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gTW92ZSBHdGtBdXRoZW50aWNhdGlvbkRp
YWxvZyB0byB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ1NTE4MGIyYWM4
MTdhZTJlNWRiODRkYTQ4NjcwMWZjYWFhNTJiNWEuLjcxYjc2MDc0M2NhM2M4OTA2NWExOWZiN2Ix
ZDYxNGU3N2RjNDQwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00MTEsNyArNDExLDcgQEAg
X19aTjdXZWJDb3JlMTVkZWZhdWx0TGFuZ3VhZ2VFdgogX19aTjdXZWJDb3JlMTVsb2NhbGl6ZWRT
dHJpbmdFUEtjCiBfX1pON1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pON1dl
YkNvcmUxNXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTE1cmVw
b3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQorX19aTjdXZWJDb3Jl
MTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5TXzEyQ2Fj
aGVkU2NyaXB0RQogX19aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0
ZUVpCiBfX1pON1dlYkNvcmUxNXRvRE9NU3RyaW5nTGlzdEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVBLdGoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCmluZGV4IGRlMWE2MzE2NWU0ZGNhMjNmNTExMTgzNTk2YzBkNDUzMDNkZTliOWYuLjBjYzJk
ZmI1MzMwYWEyZTJjMjg3NjJlZDA2YTBhYTkzNjE2NzJjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpA
QCAtMjAzOCw3ICsyMDM4LDcgQEAgX19aTjNKU0M4SlNPYmplY3QxN2dldERpcmVjdExvY2F0aW9u
RVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTE2Zmlu
ZEF0b21pY1N0cmluZ0VSS04zSlNDMTBJZGVudGlmaWVyRQogX19aTkszV1RGOUhhc2hUYWJsZUlQ
TlNfMTZBdG9taWNTdHJpbmdJbXBsRVN0NHBhaXJJUzJfakVOU18xOFBhaXJGaXJzdEV4dHJhY3Rv
cklTNF9FRU5TXzdQdHJIYXNoSVMyX0VFTlNfMTRQYWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFp
dHNJUzJfRUVOU0FfSWpFRUVFU0JfRThjb250YWluc0lTMl9OU18yMklkZW50aXR5SGFzaFRyYW5z
bGF0b3JJUzJfUzRfUzhfRUVFRWJSS1RfCiBfX1pOSzNXVEY5SGFzaFRhYmxlSVBOU18xNkF0b21p
Y1N0cmluZ0ltcGxFU3Q0cGFpcklTMl9QTjdXZWJDb3JlN0VsZW1lbnRFRU5TXzE4UGFpckZpcnN0
RXh0cmFjdG9ySVM3X0VFTlNfN1B0ckhhc2hJUzJfRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lTMl9FRU5TRF9JUzZfRUVFRVNFX0U4Y29udGFpbnNJUzJfTlNfMjJJZGVudGl0
eUhhc2hUcmFuc2xhdG9ySVMyX1M3X1NCX0VFRUViUktUXwotX19aTjdXZWJDb3JlMTVyZXBvcnRF
eGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNXJl
cG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJDYWNoZWRT
Y3JpcHRFCiBfX1pOSzNKU0M3SlNWYWx1ZTh0b1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5L
M0pTQzhKU09iamVjdDNnZXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pO
N1dlYkNvcmUxNXRvRXhjZXB0aW9uQmFzZUVOM0pTQzdKU1ZhbHVlRQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggMzBlY2NlYzg5YTBkMDQyNWRmMDIw
N2JmMDZlYzRmNWJkYjMxMTFlYS4uN2Y1MDJjMDE5MmE0NzM4OWIwNGZmN2EwNGI2YzFhMThhOWE5
NGNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBA
IC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKICNpbmNsdWRlICJC
aW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJE
T01PYmplY3RIYXNoVGFibGVNYXAuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMTQ1LDcgKzE0Niw3IEBAIEpTQzo6SlNWYWx1ZSBq
c0FycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQYXNzCiAgICAgcmV0dXJuIEpTQzo6Y29uc3RydWN0QXJyYXkoZXhlYywgMCwgZ2xvYmFs
T2JqZWN0LCBsaXN0KTsKIH0KIAotdm9pZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGV4Y2VwdGlvbikKK3ZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogewogICAg
IGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMTY2LDcgKzE2Nyw3IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBleGNlcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBnbG9i
YWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBleGNlcHRp
b25Tb3VyY2VVUkwsIDApOworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnJlcG9ydEV4Y2Vw
dGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGV4Y2VwdGlvblNvdXJjZVVSTCwgMCwgY2Fj
aGVkU2NyaXB0KTsKIH0KIAogdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEV4ZWNTdGF0ZSog
ZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggZWFh
NzcyZTcwYzY1NzFiM2M4Yjg3YzIwMjE3ZTRlYTEzOTBiMDliYi4uYTIxOTU5YmNiZTQxM2MyMjBh
MDgxNDllNjQxOWRjZjZjNjJkYzM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBQYXJhbWV0ZXJEZWZhdWx0UG9saWN5
IHsKIAogI2RlZmluZSBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCBpbmRleCwgcG9saWN5
KSAoKChwb2xpY3kpID09IERlZmF1bHRJc051bGxTdHJpbmcgJiYgKGluZGV4KSA+PSAoZXhlYykt
PmFyZ3VtZW50Q291bnQoKSkgPyAoSlNWYWx1ZSgpKSA6ICgoZXhlYyktPmFyZ3VtZW50KGluZGV4
KSkpCiAKKyAgICBjbGFzcyBDYWNoZWRTY3JpcHQ7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xh
c3MgS1VSTDsKIApAQCAtMjUzLDcgKzI1NCw3IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGlj
eSB7CiAKICAgICBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0
YShKU0M6OkpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBzdGF0aWNUYWJsZSk7
CiAKLSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSBleGNlcHRpb24pOworICAgIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiA9IDApOwogICAgIHZvaWQgcmVw
b3J0Q3VycmVudEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogCiAgICAgLy8gQ29udmVydCBh
IERPTSBpbXBsZW1lbnRhdGlvbiBleGNlcHRpb24gY29kZSBpbnRvIGEgSmF2YVNjcmlwdCBleGNl
cHRpb24gaW4gdGhlIGV4ZWN1dGlvbiBzdGF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggOTU5ZjhhMmVmZTRlMmUzZmRlMGY3Y2Qy
NmZjYmM0MDMwNTEwYWNlMC4uYTYwNWU2MzhmNTAxOWQ5NDdjZWNjZDVjMmJhNGIzMWM0ZTNlNWQ2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFs
dWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZQogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llKTsKIAogICAgIGlm
IChldmFsdWF0aW9uRXhjZXB0aW9uKSB7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBl
dmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1
YXRpb25FeGNlcHRpb24sIHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCkpOwogICAgICAgICBtX3Nv
dXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOwogICAgICAgICByZXR1cm4gU2NyaXB0VmFsdWUoKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3Vy
Y2VDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgK
aW5kZXggYjFhZmJkZWIwMzdjZWVhMmFlYjNiN2Y0YTFiODUwMzRmY2Y1MDFmYS4uMDM1NWVjZTRi
ZjEyOGUwMWMxMjgyMzMxYzY0ODNlYTk3MWRmNWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaApAQCAtMzEsNiArMzEsOCBAQAogI2lmbmRlZiBT
Y3JpcHRTb3VyY2VDb2RlX2gKICNkZWZpbmUgU2NyaXB0U291cmNlQ29kZV9oCiAKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgpAQCAtNDgsOSArNTAsMTAgQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCog
Y3MpCi0gICAgICAgIDogbV9wcm92aWRlcihDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKGNzKSkKKyAgICBleHBsaWNpdCBTY3JpcHRTb3VyY2VDb2RlKENhY2hlZFNjcmlwdCogY2Fj
aGVkU2NyaXB0KQorICAgICAgICA6IG1fcHJvdmlkZXIoQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXI6OmNyZWF0ZShjYWNoZWRTY3JpcHQpKQogICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyKQor
ICAgICAgICAsIG1fY2FjaGVkU2NyaXB0KGNhY2hlZFNjcmlwdCkKICAgICB7CiAgICAgfQogCkBA
IC02MiwxMyArNjUsMTcgQEAgcHVibGljOgogCiAgICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29kZS5maXJzdExpbmUoKTsgfQogCisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRT
Y3JpcHQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCiAgICAgY29u
c3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICAKIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEpTQzo6U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CiAgICAgCiAgICAgSlND
OjpTb3VyY2VDb2RlIG1fY29kZTsKLSAgICAKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CisKICAgICBLVVJMIG1fdXJsOwogCiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCBjMzRlMjU4YWE4Njc5MzZkYTRlZjVkNjk2ZTJiYzkzZWJhNzhiYjgzLi4wYzRl
N2ZmMjhhNjk2ODIyZTZjYTlhMzZjZGU1NTJhODgxZmEzZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTUw
LDcgKzE1MCw3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU2NyaXB0CiAgICAgICAgIFN0cmluZyBlcnJv
ck1lc3NhZ2U7CiAgICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKICAgICAgICAgU3RyaW5nIHNv
dXJjZVVSTCA9IHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCk7Ci0gICAgICAgIGlmIChtX3dvcmtl
ckNvbnRleHQtPnNhbml0aXplU2NyaXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpKQorICAgICAgICBpZiAobV93b3JrZXJDb250ZXh0LT5zYW5pdGl6ZVNjcmlwdEVy
cm9yKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBzb3VyY2VDb2RlLmNhY2hl
ZFNjcmlwdCgpKSkKICAgICAgICAgICAgICpleGNlcHRpb24gPSBTY3JpcHRWYWx1ZSgqbV9nbG9i
YWxEYXRhLCB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZS5p
bXBsKCkpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICpleGNlcHRpb24gPSBTY3JpcHRW
YWx1ZSgqbV9nbG9iYWxEYXRhLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBkMjliODdlZmQ1Mjc4N2Jh
YjhjODQwZmIwMTVmOTU3OTFmN2NjZDljLi44ZTNjOGFjZWQxODFjMmUzOWZjMzE3ZTVmMjQ5ODBj
NzQ5ZTY3NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAj
aW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIK
ICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCkBAIC0yODUsMTAgKzI4NiwxMCBAQCB2b2lkIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OmNsb3NlTWVzc2FnZVBvcnRzKCkgewogICAgIH0KIH0KIAotYm9v
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKQorYm9vbCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCkKIHsKICAgICBLVVJMIHRhcmdldFVSTCA9IGNvbXBsZXRlVVJMKHNvdXJjZVVS
TCk7Ci0gICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodGFyZ2V0VVJMKSkKKyAg
ICBpZiAoc2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh0YXJnZXRVUkwpIHx8IChjYWNoZWRT
Y3JpcHQgJiYgY2FjaGVkU2NyaXB0LT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soc2VjdXJpdHlP
cmlnaW4oKSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZXJyb3JNZXNzYWdlID0gIlNj
cmlwdCBlcnJvci4iOwogICAgIHNvdXJjZVVSTCA9IFN0cmluZygpOwpAQCAtMjk2LDcgKzI5Nyw3
IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBpZiAo
bV9pbkRpc3BhdGNoRXJyb3JFdmVudCkgewogICAgICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlv
bnMpCkBAIC0zMDYsNyArMzA3LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW4KICAgICB9CiAK
ICAgICAvLyBGaXJzdCByZXBvcnQgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBhbmQgb25seSB0aGVu
IGFsbCB0aGUgbmVzdGVkIG9uZXMuCi0gICAgaWYgKCFkaXNwYXRjaEVycm9yRXZlbnQoZXJyb3JN
ZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKQorICAgIGlmICghZGlzcGF0Y2hFcnJvckV2
ZW50KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCBjYWNoZWRTY3JpcHQpKQog
ICAgICAgICBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxp
bmVOdW1iZXIsIGNhbGxTdGFjayk7CiAKICAgICBpZiAoIW1fcGVuZGluZ0V4Y2VwdGlvbnMpCkBA
IC0zMzAsNyArMzMxLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUKIH0KIAogCi1ib29sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorYm9v
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
Q2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCA9
IGVycm9yRXZlbnRUYXJnZXQoKTsKICAgICBpZiAoIXRhcmdldCkKQEAgLTMzOSw3ICszNDAsNyBA
QCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgaW50CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBlcnJvck1lc3Nh
Z2U7CiAgICAgaW50IGxpbmUgPSBsaW5lTnVtYmVyOwogICAgIFN0cmluZyBzb3VyY2VOYW1lID0g
c291cmNlVVJMOwotICAgIHNhbml0aXplU2NyaXB0RXJyb3IobWVzc2FnZSwgbGluZSwgc291cmNl
TmFtZSk7CisgICAgc2FuaXRpemVTY3JpcHRFcnJvcihtZXNzYWdlLCBsaW5lLCBzb3VyY2VOYW1l
LCBjYWNoZWRTY3JpcHQpOwogCiAgICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2ZW50KTsK
ICAgICBtX2luRGlzcGF0Y2hFcnJvckV2ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGM4OWQwOWFlY2QxYTBkYjE2MWFmZWM2MmIz
NGQzYTM3MjlhNjgwZjEuLmI4NTczMDAzMjI0MDZhMDUxOWI4NzE4MDBlNDYyZGRlZjg3NWI3ZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNDks
NiArNDksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFNjcmlwdDsK
IGNsYXNzIERPTVRpbWVyOwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEV2ZW50UXVldWU7
CkBAIC04MSw4ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZh
bChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogCi0gICAgYm9vbCBzYW5pdGl6ZVNj
cmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYg
c291cmNlVVJMKTsKLSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgQ2Fj
aGVkU2NyaXB0KiA9IDApOworICAgIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgQ2FjaGVkU2NyaXB0KiA9IDApOwogICAgIHZvaWQg
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmlu
ZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
ID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pID0gMDsKLSAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAg
ICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqKTsKIAog
ICAgIHZvaWQgY2xvc2VNZXNzYWdlUG9ydHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggOTY1NGM4ZDhkYzBkNmE3Y2Vi
Y2IxNDJjYjNiMTJkOWYyYTI1ZDA1MC4uNjhkZDkzMjFiZGRmNjMyYzg3MWIxZGQ3NWNmODFmMWI5
NmU3MzQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxv
YWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICht
X3RhZ05hbWUgPT0gc2NyaXB0VGFnIHx8IG1fdGFnTmFtZSA9PSBpbWdUYWcpIHsKICAgICAgICAg
ICAgICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzcmNBdHRyKQogICAgICAgICAgICAgICAgICAg
ICBzZXRVcmxUb0xvYWQoYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGF0dHJpYnV0ZU5hbWUgPT0gY3Jvc3NvcmlnaW5BdHRyICYmICFhdHRyaWJ1dGVWYWx1ZS5pc051
bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9jcm9zc09yaWdpbk1vZGUgPSBzdHJpcExlYWRp
bmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoYXR0cmlidXRlVmFsdWUpOwogICAgICAgICAgICAgfSBl
bHNlIGlmIChtX3RhZ05hbWUgPT0gbGlua1RhZykgewogICAgICAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVOYW1lID09IGhyZWZBdHRyKQogICAgICAgICAgICAgICAgICAgICBzZXRVcmxUb0xvYWQo
YXR0cmlidXRlVmFsdWUpOwpAQCAtMTI5LDggKzEzMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIENh
Y2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50LT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fdXJsVG9Mb2FkLCBiYXNl
VVJMKSkpOwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0YWdOYW1lKCksIGRvY3VtZW50
KTsKLSAgICAgICAgaWYgKG1fdGFnTmFtZSA9PSBzY3JpcHRUYWcpCisgICAgICAgIGlmIChtX3Rh
Z05hbWUgPT0gc2NyaXB0VGFnKSB7CisgICAgICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKS5zZXRBbGxvd0Nvb2tpZXMoY3Jvc3NPcmlnaW5Nb2RlQWxsb3dzQ29va2llcygp
KTsKICAgICAgICAgICAgIGNhY2hlZFJlc291cmNlTG9hZGVyLT5wcmVsb2FkKENhY2hlZFJlc291
cmNlOjpTY3JpcHQsIHJlcXVlc3QsIG1fY2hhcnNldCwgc2Nhbm5pbmdCb2R5KTsKKyAgICAgICAg
fQogICAgICAgICBlbHNlIGlmIChtX3RhZ05hbWUgPT0gaW1nVGFnIHx8IChtX3RhZ05hbWUgPT0g
aW5wdXRUYWcgJiYgbV9pbnB1dElzSW1hZ2UpKQogICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VM
b2FkZXItPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QsIFN0
cmluZygpLCBzY2FubmluZ0JvZHkpOwogICAgICAgICBlbHNlIGlmIChtX3RhZ05hbWUgPT0gbGlu
a1RhZyAmJiBtX2xpbmtJc1N0eWxlU2hlZXQgJiYgbV9saW5rTWVkaWFBdHRyaWJ1dGVJc1NjcmVl
bikgCkBAIC0xNDEsMTAgKzE0NSwxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBiYXNl
RWxlbWVudEhyZWYoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VFbGVtZW50SHJlZjsgfQogCiBwcml2
YXRlOgorCisgICAgYm9vbCBjcm9zc09yaWdpbk1vZGVBbGxvd3NDb29raWVzKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2Nyb3NzT3JpZ2luTW9kZS5pc051bGwoKSB8fCBlcXVhbElnbm9yaW5n
Q2FzZShtX2Nyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpOworICAgIH0KKwogICAg
IEF0b21pY1N0cmluZyBtX3RhZ05hbWU7CiAgICAgU3RyaW5nIG1fdXJsVG9Mb2FkOwogICAgIFN0
cmluZyBtX2NoYXJzZXQ7CiAgICAgU3RyaW5nIG1fYmFzZUVsZW1lbnRIcmVmOworICAgIFN0cmlu
ZyBtX2Nyb3NzT3JpZ2luTW9kZTsKICAgICBib29sIG1fbGlua0lzU3R5bGVTaGVldDsKICAgICBi
b29sIG1fbGlua01lZGlhQXR0cmlidXRlSXNTY3JlZW47CiAgICAgYm9vbCBtX2lucHV0SXNJbWFn
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiYTIzYjhjYmE1NjNlMjc2YjZhNDQxNDE3ZjQ2ODk0ZDc2MjVhZWQ2Li4yODFk
ODBmYTg0OTRkNDZiYzhjZGE3ZmFjMTQ4YWE1MWUwMzI4MDAyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMTEtMTYgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisg
ICAgICAgIFtKU0NdIERvbid0IHNhbml0aXplIHdpbmRvdy5vbmVycm9yIGluZm9ybWF0aW9uIG9u
IGNyb3Nzb3JpZ2luLWVuYWJsZWQgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJl
eSBHYXJlbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMt
c2NyaXB0LnBocDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29y
aWdpbi1vbmVycm9yLWluZm9ybWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1j
cm9zc29yaWdpbi1vbmVycm9yLXNob3VsZC1iZS1zYW5pdGl6ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1v
bmVycm9yLXNob3VsZC1iZS1zYW5pdGl6ZWQuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgVGhpcyBwYXRjaCBv
bmx5IGRlYWxzIHdpdGggSlNDIHJpZ2h0IG5vdywgc2tpcCB0aGUgbmV3IHRlc3RzLgorCiAyMDEy
LTExLTE2ICBMaSBZaW4gIDxsaS55aW5AaW50ZWwuY29tPgogCiAgICAgICAgIGF1ZGlvcGFubmVy
bm9kZS1iYXNpYy5odG1sIHNob3VsZCBjb3ZlciBkZWZhdWx0IHZhbHVlIG9mIGF0dHJpYnV0ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nv
cnMtc2NyaXB0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2NvcnMtc2NyaXB0LnBocAppbmRleCA3MzQ0YWU5YTlkZWFjN2ViMTZhMGI5YjhjMDc2NDRiMmRh
MTUyNzY4Li4yOThhY2YxMTY2YWE1YzBhODMwNTdmOWVhYmI0NmUyZjY0ODFkMjAyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlw
dC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29y
cy1zY3JpcHQucGhwCkBAIC0xLDUgKzEsOCBAQAogPD9waHAKIGhlYWRlcigiQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAiKTsKIGhlYWRlcigiQ29udGVu
dC1UeXBlOiBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iik7CitpZiAoc3RydG9sb3dlcigkX0dFVFsi
ZmFpbCJdKSA9PSAidHJ1ZSIpCisgICAgZWNobyAidGhyb3coe3RvU3RyaW5nOiBmdW5jdGlvbigp
eyByZXR1cm4gJ1NvbWVFcnJvcicgfX0pOyI7CitlbHNlCisgICAgZWNobyAiYWxlcnQoJ3Njcmlw
dCByYW4uJyk7IjsKID8+Ci1hbGVydCgic2NyaXB0IHJhbi4iKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5m
b3JtYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
Y3JpcHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmRmMWUxYmExNzQwM2Q3YjNmYjNkOTdmODc0YzM3NjFiOTMxMzEyZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3Jp
Z2luLW9uZXJyb3ItaW5mb3JtYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBTb21lRXJyb3IKK1RoZSB0ZXN0IHBhc3NlcyBpZiB3aW5k
b3cub25lcnJvciBnZXRzIHVuc2FuaXRpemVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHQg
ZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1zZy5tYXRjaCgv
U29tZUVycm9yLylbMF0gaXMgIlNvbWVFcnJvciIKK1BBU1MgdXJsIGlzICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0LnBocD9mYWlsPXRydWUiCitQ
QVNTIGxpbmUgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2Ny
aXB0LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMjNjMTU0Nzc0MmY1OTRhODNkZDgzM2YzYzFhNjk0ZjgzYzY1NzAz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3Jp
cHQtY3Jvc3NvcmlnaW4tb25lcnJvci1pbmZvcm1hdGlvbi5odG1sCkBAIC0wLDAgKzEsMjEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVzY3JpcHRpb24oIlRoZSB0ZXN0IHBh
c3NlcyBpZiB3aW5kb3cub25lcnJvciBnZXRzIHVuc2FuaXRpemVkIGluZm9ybWF0aW9uIGFib3V0
IHRoZSBzY3JpcHQgZXJyb3IuIik7CisKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24obXNnLCB1
cmwsIGxpbmUpIHsKKyAgICB3aW5kb3cubXNnID0gbXNnOworICAgIHdpbmRvdy51cmwgPSB1cmw7
CisgICAgd2luZG93LmxpbmUgPSBsaW5lOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibXNn
Lm1hdGNoKC9Tb21lRXJyb3IvKVswXSIsICJTb21lRXJyb3IiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2NvcnMtc2NyaXB0LnBocD9mYWlsPXRydWUiKTsKKyAgICBzaG91bGRCZSgibGluZSIsICIxIik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgY3Jvc3NvcmlnaW49
IiAgICBhbm9ueW1vdXMgIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY29ycy1zY3JpcHQucGhwP2ZhaWw9dHJ1ZSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3Jp
Z2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNob3Vs
ZC1iZS1zYW5pdGl6ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MjY4NDNmZGViNGZlNDdj
ZWNkMTc1NGU0YmQyODJjYTc4Y2Q2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1uby1jcm9zc29yaWdpbi1vbmVycm9yLXNob3VsZC1i
ZS1zYW5pdGl6ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBTb21lRXJyb3IKK1RoZSB0ZXN0IHBhc3NlcyBpZiB3aW5kb3cub25lcnJvciBn
ZXRzIHNhbml0aXplZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0IGVycm9yLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtc2cubWF0Y2goL1NvbWVFcnJvci8pIGlz
IG51bGwKK1BBU1MgdXJsIGlzICIiCitQQVNTIGxpbmUgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxk
LWJlLXNhbml0aXplZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3Jp
cHQtbm8tY3Jvc3NvcmlnaW4tb25lcnJvci1zaG91bGQtYmUtc2FuaXRpemVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjAxMzc4MDVmOTAxY2Q0ZDkxOWYwZTM3YmM4MzUxNmFmZmI3NTQ3MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNyb3Nz
b3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sCkBAIC0wLDAgKzEsMjAgQEAK
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Citk
ZXNjcmlwdGlvbigiVGhlIHRlc3QgcGFzc2VzIGlmIHdpbmRvdy5vbmVycm9yIGdldHMgc2FuaXRp
emVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHQgZXJyb3IuIik7CisKK3dpbmRvdy5vbmVy
cm9yID0gZnVuY3Rpb24obXNnLCB1cmwsIGxpbmUpIHsKKyAgICB3aW5kb3cubXNnID0gbXNnOwor
ICAgIHdpbmRvdy51cmwgPSB1cmw7CisgICAgd2luZG93LmxpbmUgPSBsaW5lOworICAgIHNob3Vs
ZEJlTnVsbCgibXNnLm1hdGNoKC9Tb21lRXJyb3IvKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygidXJsIiwgIiIpOworICAgIHNob3VsZEJlKCJsaW5lIiwgIjAiKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPCEtLSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgbm90
IHNldCwgd2Ugc2hvdWxkbid0IGdldCBhbnkgc3BlY2lmaWMgaW5mbyBvbiB0aGUgZXJyb3IuIC0t
PgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMv
Y29ycy1zY3JpcHQucGhwP2ZhaWw9dHJ1ZSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWU1MjlkOTIw
MjgzYjc1NzM3OTg3MTY3ODJiNzVlMzExYmIxYzVlMS4uMTE4MjZhMDYzYTgyZTM2YTlhNWNkYzRm
OTgxNDQ0MmIxMjA2MGU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00MTEyLDYgKzQxMTIsMTAgQEAgd2Via2l0Lm9yZy9iLzc5NDQ2
IHN2Zy9yZXBhaW50L2ltYWdlLXdpdGgtY2xpcC1wYXRoLnN2ZyBbIFBhc3MgSW1hZ2VPbmx5RmFp
bHVyZQogd2Via2l0Lm9yZy9iLzEwMDE0MiBjc3MzL2ZpbHRlcnMvZWZmZWN0LXJlZmVyZW5jZS1o
dy5odG1sIFsgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMDAxNDIg
Y3NzMy9maWx0ZXJzL2VmZmVjdC1yZWZlcmVuY2Utb3JkZXJpbmctaHcuaHRtbCBbIEZhaWx1cmUg
SW1hZ2VPbmx5RmFpbHVyZSBNaXNzaW5nIF0KIAorIyBPbmx5IHJlYWR5IGZvciBKU0Mgc28gZmFy
LCBub3QgZml4ZWQgaW4gdjggeWV0Lgord2Via2l0Lm9yZy9iLzk3NDk5IGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLW9uZXJyb3ItaW5mb3JtYXRpb24uaHRtbCBbIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzk3NDk5IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LW5vLWNy
b3Nzb3JpZ2luLW9uZXJyb3Itc2hvdWxkLWJlLXNhbml0aXplZC5odG1sIFsgRmFpbHVyZSBdCisK
ICMgVGhpcyB0ZXN0IGlzIHByb2JhYmx5IGVpdGhlciBGYWlsdXJlIG9yIEltYWdlT25seUZhaWx1
cmUgZGVwZW5kaW5nIG9uIHdoaWNoIGZvbnRzIGFyZSBpbnN0YWxsZWQuCiB3ZWJraXQub3JnL2Iv
OTk3NDkgWyBNb3VudGFpbkxpb24gXSBmYXN0L3RleHQvbWlkd29yZC1icmVhay1iZWZvcmUtc3Vy
cm9nYXRlLXBhaXIuaHRtbCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>