<?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>24747</bug_id>
          
          <creation_ts>2009-03-22 06:43:12 -0700</creation_ts>
          <short_desc>preloading logic caused the same resource was loaded and reloaded.(sent two requests for same resource)</short_desc>
          <delta_ts>2009-06-03 00:34:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="johnnyding">johnnyding.webkit</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>emacemac7</cc>
    
    <cc>jasneet</cc>
    
    <cc>johnnyding.webkit</cc>
    
    <cc>koivisto</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114700</commentid>
    <comment_count>0</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-03-22 06:43:12 -0700</bug_when>
    <thetext>Please refer to the following html content

&lt;HTML&gt;&lt;HEAD&gt;&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;SCRIPT type=&quot;text/javascript&quot; src=&quot;test.js&quot;&gt;&lt;/SCRIPT&gt;
&lt;/HEAD&gt;&lt;BODY&gt;&lt;IMG src=&quot;test.jpg&quot;&gt;
&lt;/BODY&gt;&lt;/HTML&gt;

The following is bug analysis:

1)When requiring &quot;test.js&quot;, WebKit started a PreloadScanner to see whether there were some resources written in m_pendingSrc which could be preloaded in function &quot;HTMLTokenizer::scriptHandler&quot;. 

2)In &quot;DocLoader::preload&quot;, it put resources in pending list when they were preload images or body resources before WebKit had something to draw, which caused &quot;test.jpg&quot; was put in DocLoader&apos;s m_pendingPreloads.

3)When finishing &quot;test.js&quot;, WebKit continued parsing m_pendingSrc in &quot;HTMLTokenizer::notifyFinished&quot;, which caused WebKit called &quot;requestResource&quot; to get a CachedResource for &quot;test.jpg&quot; (parameter isPreload is false).

4)After calling &quot;HTMLTokenizer::notifyFinished&quot;, the DocLoader&apos;s checkForPendingPreloads was called(see Loader::Host::didFinishLoading). In this function, it called &quot;requestResource&quot; again to get a CachedResource for &quot;test.jpg&quot; (parameter isPreload is true). Inside &quot;DocLoader::requestResource&quot;, the function &quot;checkForReload&quot; removed the existing CachedResource for &quot;test.jpg&quot; created in step3 and started to re-create a CachedResource to reload &quot;test.jpg&quot;, which is totally unnecessary.

The reason of this problem is that WebKit created CachedResource for one resource and reloaded it because of preloading logic. I think we should check isPreload parameter in function &quot;checkForReload&quot;, ignore the reload request if the isPreload is true when there is one CachedResource existed for same resource.

The patch for the fix and corresponding testcase will be sent soon.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114701</commentid>
    <comment_count>1</comment_count>
      <attachid>28831</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-03-22 06:44:28 -0700</bug_when>
    <thetext>Created attachment 28831
HTML file for reproducing this problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114702</commentid>
    <comment_count>2</comment_count>
      <attachid>28832</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-03-22 06:45:07 -0700</bug_when>
    <thetext>Created attachment 28832
image file for the test HTML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114703</commentid>
    <comment_count>3</comment_count>
      <attachid>28833</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-03-22 06:46:00 -0700</bug_when>
    <thetext>Created attachment 28833
empty js file for the test HTML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114759</commentid>
    <comment_count>4</comment_count>
      <attachid>28851</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-03-23 05:40:54 -0700</bug_when>
    <thetext>Created attachment 28851
patch V1 for fixing this bug, so far no test

I did not add test for this patch. It&apos;s because to reproduce this problem, I have to rewrite my own HTTP server to catch up the image reload and return a 401 error to let page trigger the error condition. I am not sure whether you guys have concerns on it or not. If not, I will add it on patch V2. It&apos;s highly appreciated if someone can point me out the similar existing testcase, then I can leverage it.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114779</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-23 09:02:47 -0700</bug_when>
    <thetext>&gt; 401 error

You could use technique from http/tests/resources/network-simulator.php to make a stateful resource that would generate an error every other time. Some caution should be taken to reset the state before and/or after the test, so that each run of the test would be guaranteed to be the same, even if code were temporarily broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116265</commentid>
    <comment_count>6</comment_count>
      <attachid>29186</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-04-02 02:25:11 -0700</bug_when>
    <thetext>Created attachment 29186
patch V2 to fix this bug

V2 is ready. sorry for being late.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116267</commentid>
    <comment_count>7</comment_count>
      <attachid>29187</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-04-02 03:24:22 -0700</bug_when>
    <thetext>Created attachment 29187
latest V2 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116378</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-04-02 18:22:34 -0700</bug_when>
    <thetext>*** Bug 25015 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116527</commentid>
    <comment_count>9</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-04-04 01:50:10 -0700</bug_when>
    <thetext>Would anyone take a look this bug and patch? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116834</commentid>
    <comment_count>10</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-04-07 18:35:50 -0700</bug_when>
    <thetext>This patch is simple. I will highly appreciate if someone who has review authority can take a look this patch.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116859</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-08 03:54:42 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; This patch is simple. I will highly appreciate if someone who has review
&gt; authority can take a look this patch.
&gt; 
&gt; Thanks!

There is no patch on this bug which is marked for review.  Please mark your patches r=? if you&apos;d like someone to review them. :)
http://webkit.org/coding/contributing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116860</commentid>
    <comment_count>12</comment_count>
      <attachid>29187</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-08 03:56:15 -0700</bug_when>
    <thetext>Comment on attachment 29187
latest V2 patch

You ChangeLog entry shoudl also have a description of what you&apos;re changing (why your&apos;e making the change, how you&apos;re fixing the bug, etc.) and the URL of the bugzilla bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117253</commentid>
    <comment_count>13</comment_count>
      <attachid>29419</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-04-12 04:48:15 -0700</bug_when>
    <thetext>Created attachment 29419
update patch v2

Thank Eric. I have added the bug URL and simple description for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122304</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-21 02:47:51 -0700</bug_when>
    <thetext>&gt; ignore the reload request if the isPreload is true when there is one 
&gt; CachedResource existed for same resource.

I don&apos;t think that this is correct. When reloading a page with Cmd+R, you need to reload (revalidate) all resources, preloaded or not.

This bug might have been fixed in &lt;http://trac.webkit.org/changeset/43831&gt;, but I&apos;m somewhat confused since in that case, it was essential that the document was a result of posting a form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122618</commentid>
    <comment_count>15</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 02:20:53 -0700</bug_when>
    <thetext>It does look to me like Darin&apos;s patch should have fixed it. Johnny, can you check if that&apos;s the case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122681</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-22 09:15:51 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; It does look to me like Darin&apos;s patch should have fixed it. Johnny, can you
&gt; check if that&apos;s the case?

Maciej means Alexey&apos;s patch &lt;http://trac.webkit.org/changeset/43831&gt;. I was just the reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122686</commentid>
    <comment_count>17</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-05-22 10:17:48 -0700</bug_when>
    <thetext>Yes, Alexey&apos;s patch has fixed it. I will close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122689</commentid>
    <comment_count>18</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-05-22 10:29:05 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; ignore the reload request if the isPreload is true when there is one 
&gt; &gt; CachedResource existed for same resource.
&gt; 
&gt; I don&apos;t think that this is correct. When reloading a page with Cmd+R, you need
&gt; to reload (revalidate) all resources, preloaded or not.
&gt; 
&gt; This bug might have been fixed in &lt;http://trac.webkit.org/changeset/43831&gt;, but
&gt; I&apos;m somewhat confused since in that case, it was essential that the document
&gt; was a result of posting a form.
&gt; 
I don&apos;t see the original bug related with Alexey&apos;s patch. But this case were because WebKit called requestPreload for a preloaded resource in DocLoader::checkForPendingPreloads without checking whether the resource was loaded or not.  So yes, Alexey&apos;s patch did fix it.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122695</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-22 11:01:03 -0700</bug_when>
    <thetext>We should land a test from this bug - we have very few tests for preloading, so it would be very useful.

Would you be willing to prepare a patch with just the test, and submit it for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122866</commentid>
    <comment_count>20</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-05-23 09:57:50 -0700</bug_when>
    <thetext>Sure, I think the test in my previous patch should be OK. I will extract it and send it as a new patch for test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123310</commentid>
    <comment_count>21</comment_count>
      <attachid>30712</attachid>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-05-27 11:37:56 -0700</bug_when>
    <thetext>Created attachment 30712
patch for test of this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123313</commentid>
    <comment_count>22</comment_count>
      <attachid>30712</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-27 12:24:36 -0700</bug_when>
    <thetext>Comment on attachment 30712
patch for test of this issue

&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=24747
&gt; +
&gt; +        Add a test case for multiple requests for same sub-resource due to preload.

We usually put an empty line after &quot;Reviewed by&quot; line, not between bug reference and title.

&gt; +
&gt; +        * http\tests\loading\preload-img-test-expected.txt: Added.
&gt; +        * http\tests\loading\preload-img-test.html: Added.
&gt; +        * http\tests\loading\resources\preload-test.jpg: Added.
&gt; +        * http\tests\resources\network-simulator.php:

One day we should fix prepare-ChangeLog to not emit Windows paths.

&gt; +main frame - didStartProvisionalLoadForFrame
&gt; +main frame - didCommitLoadForFrame
&gt; +main frame - didFinishDocumentLoadForFrame
&gt; +main frame - didHandleOnloadEventsForFrame
&gt; +main frame - didFinishLoadForFrame

These lines are useless - but I know that they are generated because the test in in a loading/ directory. Maybe we just need a new directory for preloading tests.

&gt; +       document.getElementById(&quot;outputPanel&quot;).innerHTML = &quot;FALIED&quot;;

Typo: &quot;FAILED&quot;.

+  &lt;span id=&quot;outputPanel&quot;&gt;PASSED&lt;/span&gt;

It&apos;s not good to have &quot;PASSED&quot; output from the beginning - if the test doesn&apos;t run to completion, that could mask the failure.

These are all extremely minor nitpicks, just wanted to mention them for the future. No need to fix them to land this patch.

It is really great to have a framework for preloading tests, and thanks for refactoring network-simulator!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123503</commentid>
    <comment_count>23</comment_count>
    <who name="johnnyding">johnnyding.webkit</who>
    <bug_when>2009-05-28 17:41:59 -0700</bug_when>
    <thetext>Thanks, Alexey!  I keep your comments in mind for future work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123948</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-06-02 00:12:58 -0700</bug_when>
    <thetext>Will land.  I&apos;ll try to fix some of the nits too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123949</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-06-02 00:28:13 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/http/tests/loading/preload-img-test-expected.txt
Adding         LayoutTests/http/tests/loading/preload-img-test.html
Adding         LayoutTests/http/tests/loading/resources/preload-test.jpg
Sending        LayoutTests/http/tests/resources/network-simulator.php
Transmitting file data .....
Committed revision 44350.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124117</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-03 00:34:13 -0700</bug_when>
    <thetext>Follow-up fix in &lt;http://trac.webkit.org/changeset/44380&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28831</attachid>
            <date>2009-03-22 06:44:28 -0700</date>
            <delta_ts>2009-03-22 06:44:28 -0700</delta_ts>
            <desc>HTML file for reproducing this problem</desc>
            <filename>test_preload.htm</filename>
            <type>text/html</type>
            <size>186</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">PEhUTUw+PEhFQUQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0idGVzdC5qcyI+PC9TQ1JJUFQ+DQo8L0hFQUQ+PEJPRFk+PElNRyBzcmM9InRlc3QuanBnIj4N
CjwvQk9EWT48L0hUTUw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28832</attachid>
            <date>2009-03-22 06:45:07 -0700</date>
            <delta_ts>2009-03-22 06:45:07 -0700</delta_ts>
            <desc>image file for the test HTML</desc>
            <filename>test.jpg</filename>
            <type>image/jpeg</type>
            <size>3177</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD//gATNjg5MTAxYWVhNGIxNThkMgD/2wBDAAgGBgcGBQgHBwcJ
CQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBD
AQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjL/wAARCABGAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI
CQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk
M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqD
hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgEC
BAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcY
GRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOU
lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3
+Pn6/9oADAMBAAIRAxEAPwD37NGaQ9aKAFyKMikooAXIoyKSigBcijNJRQAuRRmkooAXIoyKSigB
c0ZFJRQAuRRkUlFAC5ozSUUALkUZFJRQAuRRkUlFAC5FGRSUUAOooHSigBp60UHrRQAUUUUAFFFe
Za98Rtcs9al0qx0BvPjOAJMuWHYgDsa2o0J1naBE6kYK7PTaK8vTx340s0E2o+Fd1uOWaNHUgfma
7Lwz4s03xTaNLZsUmj/1sEnDp/iPeqqYWpTXM9V5aijVjJ26m9WdrWtWWgaa9/fuUhUhflGSSegr
RrB8Z6b/AGt4P1O0C7n8kyIP9pfmH6is6Si5pS2uVNtRbW5o6TqUGsaVbajbZ8m4QOoPUex9xV2v
PvhBqP2rwlJaM2WtJ2UD0VvmH67q9BqsRS9lVlDsxU5c8FIKKKKxLCisbxP4itfDGjyX9yNzZ2xx
g8u3YV5/Dq/xK1q2/tOxgihtGG6OLYgLD2zya6aWFlUjzXSXd6GU6qi7bs9B8U6jc6T4Y1C/swpn
gi3puGR1GT+Wazfh5qt1rPhC3u72YzXBlkDuf944/QisSx8US+K/Auv2t7b+RqNrayrMoUgH5Tg+
x46VN8IH3eC5AT927kH/AI6p/rW0qPs8PJSXvKS/IhT5qia2aO/orGn8WaBbXJt5tXtEmBwUMgyD
WtFLHNGskTq8bDKspyCPrXE4SirtG6knsPoqhqutadolt9o1G7jgTtuPLfQdTXHyfF7w2suxUvWX
ON/lDH88/pWlPD1aivCLZMqkI6SZ39FZ+j61Y67YLe6fOJYScHsVPoR2rQrKUXF2e5Saauhw6UUD
pRSGNPWig9aKACiiigAqGVreDNxMY49owZHwMD61NXj3xhvrz+1bDTvNaOzePecHAY5xk/SujDUH
XqKF7GdWp7OPMegTeOfDFvIUk1m2yP7pLfyrzm+1jSdJ+KFhq+jXkElleYW6EJ4UsdrZHbs31rvN
D8A+H9NsIg1hDczFQXlmXcWNYXxL8JaanhSW/wBO0+3t57WRZGaGMKWQ8EcfUH8K68NLDxq8kb+9
p06mNVVHHmdtNSb4j+LtT0a5sdL0chbu6G4vtBPXAA/GmWGqeM/D0az+JYI77TW/1ssODJAPUgAZ
HrXM65qQvbvwR4ilIKOqRzMezxuA2fxJNe1ModSrAFSMEHuKKvLRpQi4p3vfvo7bhC85t39DyP4Y
yx6b431vSI5A0Eil4WByGCt8pH1Vs1t6J411W4+It14dv0tvIR5VjZEKt8vK5OfQelc1NpieDPi/
p7QjZZXcg8sdlD5Qr+BP8ql8Rr/Yvxr0+8+6ly8TE/737s/yroqU4VZuW/NC69UZxlKEUuzPYq4v
x342ufCEliIbGK5S5D5LuV2lcen1rtK8x+NNvv0TTbn/AJ53DJ/30uf/AGWvOwUITrxjNXTOmvJx
ptxM/wCJdydV8R+HLAn9xMqSbc8HewH8q9bjjWKJI0AVEAVQOgArxTxcWSx8F6/jKJbwox90w3+N
e1QypPBHNGwKSKGUjuDzW2LVqNNLZX++5nRd5yfoUdSsYF0bU0hhSNriGQuVXBZipGT615B4Cm1D
VNCl8NabI8BmuWmurpf+WcO1Rge5IIr22YLLFJFkbmQjGeea80+C4VdJ1Vdo8xbhdx7428D9DRh6
nLh6jerTQVI3qRXqWPEPw00C08LXktpBIl1bwtKJmkJLFRk57c1Q+GfiH+z/AAVq0947NBYOGQE+
o+6PxH6133ittvhHWD6Wcv8A6Ca8OtJWg+Ft/tOPP1NI29wI810YbmxFBxqO/vIzq2p1E4rozrPC
eiP4+1K48ReIGaW1WQpBb7iF47fQfqa9Bu/D3h2Wwe0lsLGOJlxwiqR759a888JfD+bVvDVnef8A
CQ3ttFMC32eEYC8nvn+lb6/CXSmObnVdVn/3pgP6VGIlTdRr2lktkk9LFUlLl+G9zH+ETNbaxrun
o++CNgVIPGQxGfxFesVgeHPB+k+F2nbTklDzgB2kk3EgZx/Ot+uPF1Y1arnHY2owcIKLHDpRQOlF
cxqNPWig9aKACiiigArmfGnhGDxZpQhLCK7hy0EpHQ9wfY4rpqKunUlTkpR3RMoqSszynTvF/iTw
dbrpuv6LPdRQ/LHcRnqvbnBB/SnT6vrXxGnXTLWxn07SGObiZx8zD09Pwr1SkwB2rq+tQvzqCUu/
/AMvYytyuWh8+3inTPD+oeE9YV4ry2uftNk+0lXJGCoPoRyPevYPA+vr4g8MW1wXzcxKIrgdw47/
AI9fxrWv9I07VAov7G3udn3TLGGK/SuH1Xw7rPhbXJtd8KRCe3uObvTz0J9V/wA5HuK2nWp4qHI9
Jb+V+vpf8yIwlSd90U/jKnlW2jXyHbNFOwVu/QH+YFUfikReaX4d8SW/G9R8w7bgHX+TVLdW2u/E
N7htR0mTT7aztZDbxuCC0xHy9QM9K09I8O3uv/ChNH1CBre6j3G2MoweCShPoOSPpW8JRoRp8z1i
9fRmck6jlZaP9Dv7G6W+0+2u05SeJZB9CM1x/wAWIFm8DTOSA0U0br7nOP5E1z/hzx83hWwXQvEd
hdxTWvyRuqZ3KOg/+uKlvP7R+I9te3DW8trpNrA7WsbcNNNg7SfYVz08NOjWU5aRT37mkqqnDlW7
LfhzSIPF/wAJbXTpWCyR71jk67HVjg/kR+BrJ0vxnrXge3/sbXtJmnSD5YJkOMjsM9CK1Pgzcu/h
6+tmVgsdxvUkcEMoHH4r+tekMitjcoOPUUV6qpVZ0px5o3uFOHNCM4uzseYeFI9b8U+NW8T3kU1n
YRJtijyQHGMAe45JJp/wpAttV8T2XeK5XH4M4/pXp1cf4c8LX2jeL9c1SSSA2d+xdEQncCW3cjGO
5qXiVUhNPTRWXoyvZOMovfe5seK13eEdYA72cv8A6Aa8o8LaHJr3ws1e2gXdcR3nmxj1IRePxGa9
m1G0+36Zd2e7Z9oheLdjONykZ/WsLwV4TPhHTJ7RrwXXnTebuEezHAGOp9KmhiFSotJ+9dNDqU3O
a7WZy3wv8V2cWk/2JqE6W9zbufLEp27gT057j0rrPEHjXRtAsnlku4pp8fu4InDMx/DoKr678PNA
164a4mgaC4b70kB27vcjpVLTvhT4bsJ1mdLi7ZTkLO4K/kAKqcsLUn7WV1fdf8EmKrRXKrep0Phr
XP8AhItFi1H7JLbCTI2Sd8dx6itemoiRxqiKFRRhVUYAFOrhm05NxVkdCTS1HDpRQOlFSMTFGKKK
ADFGKKKADFGKKKADFGKKKADFGKKKADFGKKKAI5baCb/Wwxyf76g09Y1VQqgBQMAAcUUUXAZDbw28
YjhjSNB0VFAAqTFFFABijFFFABijFFFABijFFFABijFFFAC0UUUAf//Z
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28833</attachid>
            <date>2009-03-22 06:46:00 -0700</date>
            <delta_ts>2009-03-22 06:46:00 -0700</delta_ts>
            <desc>empty js file for the test HTML</desc>
            <filename>test.js</filename>
            <type>text/plain</type>
            <size>23</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">KGZ1bmN0aW9uKCkgeyAKCiB9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28851</attachid>
            <date>2009-03-23 05:40:54 -0700</date>
            <delta_ts>2009-04-02 02:25:11 -0700</delta_ts>
            <desc>patch V1 for fixing this bug, so far no test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2339</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQxOTA1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDMt
MjMgIEpvaG5ueSBEaW5nICA8am9obm55ZGluZy53ZWJraXRAZ21haWwuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc0NwogICAgICAgICBEbyBub3QgcmVsb2FkIHJlc291
cmNlIGlmIHRoZSByZXF1ZXN0IGlzIGZvciBwcmVsb2FkCisKKyAgICAgICAgKiBsb2FkZXIvRG9j
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xvYWRlcjo6Y2hlY2tGb3JSZWxvYWQp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAg
ICAqIGxvYWRlci9Eb2NMb2FkZXIuaDoKKwogMjAwOS0wMy0yMiAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICB3eEdUSyBidWlsZCBmaXguIEFkZCBt
aXNzaW5nIGhlYWRlci4KSW5kZXg6IGxvYWRlci9Eb2NMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGxvYWRlci9Eb2NMb2FkZXIuY3BwCShyZXZpc2lvbiA0MTkwNSkKKysrIGxvYWRlci9Eb2NMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIEZyYW1lKiBEb2NMb2FkZXI6
OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2MtPmZyYW1lKCk7CiB9CiAKLXZvaWQgRG9j
TG9hZGVyOjpjaGVja0ZvclJlbG9hZChjb25zdCBLVVJMJiBmdWxsVVJMKQordm9pZCBEb2NMb2Fk
ZXI6OmNoZWNrRm9yUmVsb2FkKGNvbnN0IEtVUkwmIGZ1bGxVUkwsIGJvb2wgaXNQcmVsb2FkKQog
ewogICAgIGlmIChtX2FsbG93U3RhbGVSZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsgLy8gRG9u
J3QgcmVsb2FkIHJlc291cmNlcyB3aGlsZSBwYXN0aW5nCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQg
RG9jTG9hZGVyOjpjaGVja0ZvclJlbG9hZChjb25zdCBLVVIKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IGNhY2hlKCktPnJlc291cmNlRm9yVVJM
KGZ1bGxVUkwuc3RyaW5nKCkpOwotICAgIGlmICghZXhpc3RpbmcgfHwgZXhpc3RpbmctPmlzUHJl
bG9hZGVkKCkpCisgICAgaWYgKCFleGlzdGluZyB8fCBleGlzdGluZy0+aXNQcmVsb2FkZWQoKSB8
fCBpc1ByZWxvYWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN3aXRjaCAoY2FjaGVQb2xpY3ko
KSkgewpAQCAtMjA3LDcgKzIwNyw3IEBAIENhY2hlZFJlc291cmNlKiBEb2NMb2FkZXI6OnJlcXVl
c3RSZXNvdXIKICAgICAgICAgfQogICAgIH0KIAotICAgIGNoZWNrRm9yUmVsb2FkKGZ1bGxVUkwp
OworICAgIGNoZWNrRm9yUmVsb2FkKGZ1bGxVUkwsIGlzUHJlbG9hZCk7CiAKICAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UgPSBjYWNoZSgpLT5yZXF1ZXN0UmVzb3VyY2UodGhpcywgdHlwZSwg
ZnVsbFVSTCwgY2hhcnNldCwgaXNQcmVsb2FkKTsKICAgICBpZiAocmVzb3VyY2UpIHsKSW5kZXg6
IGxvYWRlci9Eb2NMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsb2FkZXIvRG9jTG9hZGVyLmgJKHJl
dmlzaW9uIDQxOTA1KQorKysgbG9hZGVyL0RvY0xvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZSogcmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBib29sIGlzUHJlbG9hZCA9IGZhbHNlKTsKICAgICB2b2lkIHJlcXVlc3RQcmVs
b2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KTsKIAotICAgIHZvaWQgY2hlY2tGb3JSZWxvYWQoY29uc3QgS1VSTCYpOworICAg
IHZvaWQgY2hlY2tGb3JSZWxvYWQoY29uc3QgS1VSTCYsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2Up
OwogICAgIHZvaWQgY2hlY2tDYWNoZU9iamVjdFN0YXR1cyhDYWNoZWRSZXNvdXJjZSopOwogICAg
IGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgS1VSTCYpOwogICAg
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29186</attachid>
            <date>2009-04-02 02:25:11 -0700</date>
            <delta_ts>2009-04-02 03:24:22 -0700</delta_ts>
            <desc>patch V2 to fix this bug</desc>
            <filename>patch1.txt</filename>
            <type>text/plain</type>
            <size>14400</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTkwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDMtMjMgIEpvaG5ueSBEaW5nICA8am9obm55ZGluZy53ZWJr
aXRAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0Lmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9Eb2NMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jTG9h
ZGVyOjpjaGVja0ZvclJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY0xvYWRlci5oOgorCiAyMDA5LTAzLTIy
ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4
R1RLIGJ1aWxkIGZpeC4gQWRkIG1pc3NpbmcgaGVhZGVyLgpJbmRleDogV2ViQ29yZS9sb2FkZXIv
RG9jTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuY3Bw
CShyZXZpc2lvbiA0MTkwNSkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgRnJhbWUqIERvY0xvYWRlcjo6ZnJhbWUoKSBjb25z
dAogICAgIHJldHVybiBtX2RvYy0+ZnJhbWUoKTsKIH0KIAotdm9pZCBEb2NMb2FkZXI6OmNoZWNr
Rm9yUmVsb2FkKGNvbnN0IEtVUkwmIGZ1bGxVUkwpCit2b2lkIERvY0xvYWRlcjo6Y2hlY2tGb3JS
ZWxvYWQoY29uc3QgS1VSTCYgZnVsbFVSTCwgYm9vbCBpc1ByZWxvYWQpCiB7CiAgICAgaWYgKG1f
YWxsb3dTdGFsZVJlc291cmNlcykKICAgICAgICAgcmV0dXJuOyAvLyBEb24ndCByZWxvYWQgcmVz
b3VyY2VzIHdoaWxlIHBhc3RpbmcKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBEb2NMb2FkZXI6OmNo
ZWNrRm9yUmVsb2FkKGNvbnN0IEtVUgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgQ2FjaGVk
UmVzb3VyY2UqIGV4aXN0aW5nID0gY2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoZnVsbFVSTC5zdHJp
bmcoKSk7Ci0gICAgaWYgKCFleGlzdGluZyB8fCBleGlzdGluZy0+aXNQcmVsb2FkZWQoKSkKKyAg
ICBpZiAoIWV4aXN0aW5nIHx8IGV4aXN0aW5nLT5pc1ByZWxvYWRlZCgpIHx8IGlzUHJlbG9hZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc3dpdGNoIChjYWNoZVBvbGljeSgpKSB7CkBAIC0yMDcs
NyArMjA3LDcgQEAgQ2FjaGVkUmVzb3VyY2UqIERvY0xvYWRlcjo6cmVxdWVzdFJlc291cgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgY2hlY2tGb3JSZWxvYWQoZnVsbFVSTCk7CisgICAgY2hlY2tG
b3JSZWxvYWQoZnVsbFVSTCwgaXNQcmVsb2FkKTsKIAogICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IGNhY2hlKCktPnJlcXVlc3RSZXNvdXJjZSh0aGlzLCB0eXBlLCBmdWxsVVJMLCBjaGFy
c2V0LCBpc1ByZWxvYWQpOwogICAgIGlmIChyZXNvdXJjZSkgewpJbmRleDogV2ViQ29yZS9sb2Fk
ZXIvRG9jTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmgJ
KHJldmlzaW9uIDQxOTA1KQorKysgV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlKiBy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UpOwogICAgIHZvaWQg
cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQpOwogCi0gICAgdm9pZCBjaGVja0ZvclJlbG9hZChjb25zdCBL
VVJMJik7CisgICAgdm9pZCBjaGVja0ZvclJlbG9hZChjb25zdCBLVVJMJiwgYm9vbCBpc1ByZWxv
YWQgPSBmYWxzZSk7CiAgICAgdm9pZCBjaGVja0NhY2hlT2JqZWN0U3RhdHVzKENhY2hlZFJlc291
cmNlKik7CiAgICAgYm9vbCBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBL
VVJMJik7CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9h
ZC1pbWctdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aExvYWRGb3JGcmFtZQorCitUaGlzIHRlc3QgaXMgdG8gdGVzdCB3aGV0aGVyIHByZWxvYWQgaW1h
Z2Ugd2lsbCByZXF1aXJlIDIgbW9yZSByZXF1ZXN0cyBvciBub3QuCisKK1BBU1NFRApJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVz
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3By
ZWxvYWQtaW1nLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+
DQorPGhlYWQ+DQorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQorICA8c2NyaXB0Pg0KKyAgZnVuY3Rpb24gQ2FsbENv
bW1hbmQoY21kKQ0KKyAgew0KKyAgICAgICB0cnkgew0KKyAgICAgICAgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdDsNCisgICAgICAgICAgIHJlcS5vcGVuKCJHRVQiLCAiL3Jlc291cmNl
cy9uZXR3b3JrLXNpbXVsYXRvci5waHA/Y29tbWFuZD0iICsgY21kLCBmYWxzZSk7DQorICAgICAg
ICAgICByZXEuc2VuZChudWxsKTsNCisgICAgICAgICAgIHJldHVybiByZXEucmVzcG9uc2VUZXh0
Ow0KKyAgICAgICB9IGNhdGNoIChleCkgew0KKyAgICAgICAgICAgcmV0dXJuICIiOw0KKyAgICAg
ICB9DQorICAgfQ0KKyAgIA0KKyAgIGZ1bmN0aW9uIHRlc3QoKQ0KKyAgIHsNCisgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KKyAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICB9DQorICAgfQ0KKw0KKyAgIGZ1bmN0aW9uIGNoZWNr
QWNjZXNzQ291bnQoKQ0KKyAgIHsNCisgICAgICAgLy8gR2V0IHRoZSBhY2Nlc3MgY291bnQgb2Yg
cmVzb3VyY2U6L2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5qcGcuIFNob3VsZCBiZSAx
Lg0KKyAgICAgICB2YXIgY291bnQgPSBDYWxsQ29tbWFuZCgiZ2V0LXJlc291cmNlLWNvdW50JnBh
dGg9L2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5qcGciKTsNCisgICAgICAgY291bnQg
PSBwYXJzZUludChjb3VudCwgMTApOw0KKyAgICAgICBpZiAoY291bnQgPT0gMSkNCisgICAgICAg
ICAgIGNoZWNrTm90aWZ5RG9uZSgpOw0KKyAgICAgICBlbHNlDQorICAgICAgICAgICBpbWdfZXJy
b3IoKTsNCisgICB9DQorDQorICAgZnVuY3Rpb24gaW1nX2Vycm9yKCkNCisgICB7DQorICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXRQYW5lbCIpLmlubmVySFRNTCA9ICJGQUxJ
RUQiOw0KKyAgICAgICBjaGVja05vdGlmeURvbmUoKTsNCisgICB9DQorDQorICAgZnVuY3Rpb24g
Y2hlY2tOb3RpZnlEb25lKCkgew0KKyAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQ0KKyAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOw0KKyAg
IH0NCisgICAvLyBSZXNldCByZXNvdXJjZSBjb3VudCAgIA0KKyAgIENhbGxDb21tYW5kKCJyZXNl
dC1yZXNvdXJjZS1jb3VudCIpOw0KKyAgPC9zY3JpcHQ+DQorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9lbXB0eS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFk
Pg0KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4NCisgIDxpbWcgaWQgPSJ0ZXN0X2ltYWdlIiBzcmM9
Ii9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwP2NvbW1hbmQ9aW5jcmVhc2UtcmVzb3Vy
Y2UtY291bnQmcGF0aD0vbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZyIgb25lcnJv
cj0iaW1nX2Vycm9yKCkiIG9ubG9hZD0ic2V0VGltZW91dChjaGVja0FjY2Vzc0NvdW50LCAzMDAw
KSI+DQorICA8cD5UaGlzIHRlc3QgaXMgdG8gdGVzdCB3aGV0aGVyIHByZWxvYWQgaW1hZ2Ugd2ls
bCByZXF1aXJlIDIgbW9yZSByZXF1ZXN0cyBvciBub3QuPC9wPg0KKyAgPHNwYW4gaWQ9Im91dHB1
dFBhbmVsIj5QQVNTRUQ8L3NwYW4+DQorPC9ib2R5Pg0KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VzL2VtcHR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy9yZXNvdXJjZXMvZW1wdHkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvYWRpbmcvcmVzb3VyY2VzL2VtcHR5LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMg
QEAKKyhmdW5jdGlvbigpIHsgCisKKyB9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocAkocmV2aXNpb24g
NDE5MDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9uZXR3b3JrLXNpbXVs
YXRvci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDc3IEBAIGZ1bmN0aW9uIGNvbnRl
bnRUeXBlKCRwYXRoKQogICAgIHJldHVybiAidGV4dC9wbGFpbiI7CiB9CiAKK2Z1bmN0aW9uIGdl
bmVyYXRlUmVzcG9uc2UoJHBhdGgpCit7CisgICAgJHN0YXRlID0gZ2V0U3RhdGUoJHN0YXRlRmls
ZSk7CisgICAgaWYgKCRzdGF0ZSA9PSAiT2ZmbGluZSIpIHsKKyAgICAgICAgaGVhZGVyKCdIVFRQ
LzEuMSAzMDcgVGVtcG9yYXJ5IFJlZGlyZWN0Jyk7CisgICAgICAgICMgU2ltdWxhdGUgYSBuZXR3
b3JrIGVycm9yIGJ5IHJlZGlyZWN0aW5nIHRvIHNlbGYuCisgICAgICAgIGhlYWRlcignTG9jYXRp
b246ICcgLiAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gQSBsaXR0bGUgc2VjdXJ1dHkgY2hlY2tpbmcgY2FuJ3QgaHVydC4KKyAgICAgICAgaWYgKHN0
cnN0cigkcGF0aCwgIi4uIikpCisgICAgICAgICAgICBleGl0OworCisgICAgICAgIGlmICgkcGF0
aFswXSA9PSAnLycpCisgICAgICAgICAgICAkcGF0aCA9ICcuLicgLiAkcGF0aDsKKworICAgICAg
ICBoZWFkZXIoIkV4cGlyZXM6IFRodSwgMDEgRGVjIDIwMDMgMTY6MDA6MDAgR01UIik7CisgICAg
ICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFs
aWRhdGUiKTsKKyAgICAgICAgaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7CisKKyAgICAgICAg
aWYgKGZpbGVfZXhpc3RzKCRwYXRoKSkgeworICAgICAgICAgICAgaGVhZGVyKCJMYXN0LU1vZGlm
aWVkOiAiIC4gZ21kYXRlKCJELCBkIE0gWSBIOmk6cyBUIiwgZmlsZW10aW1lKCRwYXRoKSkpOwor
ICAgICAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiBjb250ZW50VHlwZSgkcGF0aCkp
OworICAgICAgICAKKyAgICAgICAgICAgIHByaW50IGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDA0IE5vdCBG
b3VuZCcpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBoYW5kbGVJbmNyZWFzZVJl
c291cmNlQ291bnRDb21tYW5kKCRwYXRoKQoreworICAgICRyZXNvdXJjZUNvdW50RmlsZSA9IHN5
c19nZXRfdGVtcF9kaXIoKSAuICIvcmVzb3VyY2UtY291bnQiOworICAgICRyZXNvdXJjZUNvdW50
ID0gZ2V0U3RhdGUoJHJlc291cmNlQ291bnRGaWxlKTsKKyAgICAkcGllY2VzID0gZXhwbG9kZSgi
ICIsICRyZXNvdXJjZUNvdW50KTsKKyAgICAkY291bnQgPSAwOworICAgIGlmIChjb3VudCgkcGll
Y2VzKSA9PSAyICYmICRwaWVjZXNbMF0gPT0gJHBhdGgpIHsKKyAgICAgICAgJGNvdW50ID0gMSAr
ICRwaWVjZXNbMV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGNvdW50ID0gMTsKKyAgICB9Cisg
ICAgZmlsZV9wdXRfY29udGVudHMoJHJlc291cmNlQ291bnRGaWxlLCAkcGF0aCAuICIgIiAuICRj
b3VudCk7CisgICAgZ2VuZXJhdGVSZXNwb25zZSgkcGF0aCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRs
ZVJlc2V0UmVzb3VyY2VDb3VudENvbW1hbmQoKQoreworICAgICRyZXNvdXJjZUNvdW50RmlsZSA9
IHN5c19nZXRfdGVtcF9kaXIoKSAuICIvcmVzb3VyY2UtY291bnQiOworICAgIGZpbGVfcHV0X2Nv
bnRlbnRzKCRyZXNvdXJjZUNvdW50RmlsZSwgMCk7CisgICAgaGVhZGVyKCJFeHBpcmVzOiBUaHUs
IDAxIERlYyAyMDAzIDE2OjAwOjAwIEdNVCIpOworICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDog
bm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsKKyAgICBoZWFkZXIoIlByYWdt
YTogbm8tY2FjaGUiKTsKKyAgICBoZWFkZXIoJ0hUVFAvMS4xIDIwMCBPSycpOworfQorCitmdW5j
dGlvbiBoYW5kbGVHZXRSZXNvdXJjZUNvdW50Q29tbWFuZCgkcGF0aCkKK3sKKyAgICAkcmVzb3Vy
Y2VDb3VudEZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL3Jlc291cmNlLWNvdW50IjsKKyAg
ICAkcmVzb3VyY2VDb3VudCA9IGdldFN0YXRlKCRyZXNvdXJjZUNvdW50RmlsZSk7CisgICAgJHBp
ZWNlcyA9IGV4cGxvZGUoIiAiLCAkcmVzb3VyY2VDb3VudCk7CisgICAgaGVhZGVyKCJFeHBpcmVz
OiBUaHUsIDAxIERlYyAyMDAzIDE2OjAwOjAwIEdNVCIpOworICAgIGhlYWRlcigiQ2FjaGUtQ29u
dHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsKKyAgICBoZWFkZXIo
IlByYWdtYTogbm8tY2FjaGUiKTsKKyAgICBoZWFkZXIoJ0hUVFAvMS4xIDIwMCBPSycpOworICAg
IGlmIChjb3VudCgkcGllY2VzKSA9PSAyICYmICRwaWVjZXNbMF0gPT0gJHBhdGgpIHsKKyAgICAg
ICAgZWNobyAkcGllY2VzWzFdOworICAgIH0gZWxzZSB7CisgICAgICAgIGVjaG8gMDsKKyAgICB9
Cit9CisKICRzdGF0ZUZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL25ldHdvcmstc2ltdWxh
dG9yLXN0YXRlIjsKICRjb21tYW5kID0gJF9HRVRbJ2NvbW1hbmQnXTsKIGlmICgkY29tbWFuZCkg
ewpAQCAtNTQsMzYgKzEyNSwxNyBAQCBpZiAoJGNvbW1hbmQpIHsKICAgICAgICAgc2V0U3RhdGUo
Ik9ubGluZSIsICRzdGF0ZUZpbGUpOwogICAgIGVsc2UgaWYgKCRjb21tYW5kID09ICJkaXNjb25u
ZWN0IikKICAgICAgICAgc2V0U3RhdGUoIk9mZmxpbmUiLCAkc3RhdGVGaWxlKTsKLSAgICBlbHNl
CisgICAgZWxzZSBpZiAoJGNvbW1hbmQgPT0gImluY3JlYXNlLXJlc291cmNlLWNvdW50Iikgewor
ICAgICAgICBoYW5kbGVJbmNyZWFzZVJlc291cmNlQ291bnRDb21tYW5kKCRfR0VUWydwYXRoJ10p
OworICAgIH0gZWxzZSBpZiAoJGNvbW1hbmQgPT0gInJlc2V0LXJlc291cmNlLWNvdW50Iikgewor
ICAgICAgaGFuZGxlUmVzZXRSZXNvdXJjZUNvdW50Q29tbWFuZCgpOworICAgIH0gZWxzZSBpZiAo
JGNvbW1hbmQgPT0gImdldC1yZXNvdXJjZS1jb3VudCIpIHsKKyAgICAgIGhhbmRsZUdldFJlc291
cmNlQ291bnRDb21tYW5kKCRfR0VUWydwYXRoJ10pOworICAgIH0gZWxzZQogICAgICAgICBlY2hv
ICJVbmtub3duIGNvbW1hbmQ6ICIgLiAkY29tbWFuZCAuICJcbiI7CiAgICAgZXhpdCgpOwogfQog
CiAkcmVxdWVzdGVkUGF0aCA9ICRfR0VUWydwYXRoJ107Ci0kc3RhdGUgPSBnZXRTdGF0ZSgkc3Rh
dGVGaWxlKTsKLWlmICgkc3RhdGUgPT0gIk9mZmxpbmUiKSB7Ci0gICAgaGVhZGVyKCdIVFRQLzEu
MSAzMDcgVGVtcG9yYXJ5IFJlZGlyZWN0Jyk7Ci0gICAgIyBTaW11bGF0ZSBhIG5ldHdvcmsgZXJy
b3IgYnkgcmVkaXJlY3RpbmcgdG8gc2VsZi4KLSAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJF9T
RVJWRVJbJ1JFUVVFU1RfVVJJJ10pOwotfSBlbHNlIHsKLSAgICAvLyBBIGxpdHRsZSBzZWN1cnV0
eSBjaGVja2luZyBjYW4ndCBodXJ0LgotICAgIGlmIChzdHJzdHIoJHJlcXVlc3RlZFBhdGgsICIu
LiIpKQotICAgICAgICBleGl0OwotCi0gICAgaWYgKCRyZXF1ZXN0ZWRQYXRoWzBdID09ICcvJykK
LSAgICAgICAgJHJlcXVlc3RlZFBhdGggPSAnLi4nIC4gJHJlcXVlc3RlZFBhdGg7Ci0KLSAgICBo
ZWFkZXIoIkV4cGlyZXM6IFRodSwgMDEgRGVjIDIwMDMgMTY6MDA6MDAgR01UIik7Ci0gICAgaGVh
ZGVyKCJDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSIp
OwotICAgIGhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOwotCi0gICAgaWYgKGZpbGVfZXhpc3Rz
KCRyZXF1ZXN0ZWRQYXRoKSkgewotICAgICAgICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIgLiBn
bWRhdGUoIkQsIGQgTSBZIEg6aTpzIFQiLCBmaWxlbXRpbWUoJHJlcXVlc3RlZFBhdGgpKSk7Ci0g
ICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiAiIC4gY29udGVudFR5cGUoJHJlcXVlc3RlZFBh
dGgpKTsKLSAgICAKLSAgICAgICAgcHJpbnQgZmlsZV9nZXRfY29udGVudHMoJHJlcXVlc3RlZFBh
dGgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDA0IE5vdCBGb3Vu
ZCcpOwotICAgIH0KLX0KK2dlbmVyYXRlUmVzcG9uc2UoJHJlcXVlc3RlZFBhdGgpOwogPz4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0
LmpwZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxv
YWQtdGVzdC5qcGcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtCgoKLzlqLzRBQVFTa1pKUmdBQkFRQUFBUUFCQUFELy9nQVROamc1TVRB
eFlXVmhOR0l4TlRoa01nRC8yd0JEQUFnR0JnY0dCUWdIQndjSgpDUWdLREJRTkRBc0xEQmtTRXc4
VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JE
CkFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5
TWpJeU1qSXlNakl5TWpJeU1qSXkKTWpJeU1qSXlNakwvd0FBUkNBQkdBTWdEQVNJQUFoRUJBeEVC
LzhRQUh3QUFBUVVCQVFFQkFRRUFBQUFBQUFBQUFBRUNBd1FGQmdjSQpDUW9MLzhRQXRSQUFBZ0VE
QXdJRUF3VUZCQVFBQUFGOUFRSURBQVFSQlJJaE1VRUdFMUZoQnlKeEZES0JrYUVJSTBLeHdSVlMw
ZkFrCk0ySnlnZ2tLRmhjWUdSb2xKaWNvS1NvME5UWTNPRGs2UTBSRlJrZElTVXBUVkZWV1YxaFpX
bU5rWldabmFHbHFjM1IxZG5kNGVYcUQKaElXR2g0aUppcEtUbEpXV2w1aVptcUtqcEtXbXA2aXBx
ckt6dExXMnQ3aTV1c0xEeE1YR3g4akp5dExUMU5YVzE5aloydUhpNCtUbAo1dWZvNmVyeDh2UDA5
ZmIzK1BuNi84UUFId0VBQXdFQkFRRUJBUUVCQVFBQUFBQUFBQUVDQXdRRkJnY0lDUW9MLzhRQXRS
RUFBZ0VDCkJBUURCQWNGQkFRQUFRSjNBQUVDQXhFRUJTRXhCaEpCVVFkaGNSTWlNb0VJRkVLUm9i
SEJDU016VXZBVlluTFJDaFlrTk9FbDhSY1kKR1JvbUp5Z3BLalUyTnpnNU9rTkVSVVpIU0VsS1Ux
UlZWbGRZV1ZwalpHVm1aMmhwYW5OMGRYWjNlSGw2Z29PRWhZYUhpSW1La3BPVQpsWmFYbUptYW9x
T2twYWFucUttcXNyTzB0YmEzdUxtNndzUEV4Y2JIeU1uSzB0UFUxZGJYMk5uYTR1UGs1ZWJuNk9u
cTh2UDA5ZmIzCitQbjYvOW9BREFNQkFBSVJBeEVBUHdEMzdOR2FROWFLQUZ5S01pa29vQVhJb3lL
U2lnQmNpak5KUlFBdVJSbWtvb0FYSW95S1NpZ0IKYzBaRkpSUUF1UlJrVWxGQUM1b3pTVVVBTGtV
WkZKUlFBdVJSa1VsRkFDNUZHUlNVVUFPb29IU2lnQnA2MFVIclJRQVVVVVVBRkZGZQpaYTk4UnRj
czlhbDBxeDBCdlBqT0FKTXVXSFlnRHNhMm8wSjFuYUJFNmtZSzdQVGFLOHZUeDM0MHMwRTJvK0Zk
MXVPV2FOSFVnZm1hCjdMd3o0czAzeFRhTkxac1Vtai8xc0VuRHAvaVBlcXFZV3BUWE05VjVhaWpW
akoyNm05V2RyV3RXV2dhYTkvZnVVaFVoZmxHU1NlZ3IKUnJCOFo2Yi9BR3Q0UDFPMEM3bjhreUlQ
OXBmbUg2aXM2U2k1cFMydVZOdFJiVzVvNlRxVUdzYVZiYWpiWjhtNFFPb1BVZXg5eFYydgpQdmhC
cVAycndsSmFNMld0SjJVRDBWdm1INjdxOUJxc1JTOWxWbERzeFU1YzhGSUtLS0t4TENpc2J4UDRp
dGZER2p5WDl5TnpaMnh4Cmc4dTNZVjUvRHEveEsxcTIvdE94Z2lodEdHNk9MWWdMRDJ6eWE2YVdG
bFVqelhTWGQ2R1U2cWk3YnM5QjhVNmpjNlQ0WTFDL3N3cG4KZ2kzcHVHUjFHVCtXYXpmaDVxdDFy
UGhDM3U3Mll6WEJsa0R1Zjk0NC9RaXNTeDhVUytLL0F1djJ0N2IrUnFOcmF5ck1vVWdINVRnKwp4
NDZWTjhJSDNlQzVBVDkyN2tIL0FJNnAvclcwcVBzOFBKU1h2S1MvSWhUNXFpYTJhTy9vckduOFdh
QmJYSnQ1dFh0RW1Cd1VNZ3lECld0RkxITkdza1RxOGJES3NweUNQclhFNFNpcnRHNmtuc1BvcWhx
dXRhZG9sdDlvMUc3amdUdHVQTGZRZFRYSHlmRjd3MnN1eFV2V1gKT04vbERIODgvcFdsUEQxYWl2
Q0xaTXFrSTZTWjM5RlorajYxWTY3WUxlNmZPSllTY0hzVlBvUjJyUXJLVVhGMmU1U2FhdWh3NlVV
RApwUlNHTlBXaWc5YUtBQ2lpaWdBcUdWcmVETnhNWTQ5b3daSHdNRDYxTlhqM3hodnJ6KzFiRFR2
TmFPemVQZWNIQVk1eGsvU3VqRFVIClhxS0Y3R2RXcDdPUE1lZ1RlT2ZERnZJVWsxbTJ5UDdwTGZ5
cnptKzFqU2RKK0tGaHEralhrRWxsZVlXNkVKNFVzZHJaSGJzMzFydk4KRDhBK0g5TnNJZzFoRGN6
RlFYbG1YY1dOWVh4TDhKYWFuaFNXL3dCTzArM3Q1N1dSWkdhR01LV1E4RWNmVUg4SzY4TkxEeHE4
a2IrOQpwMDZtTlZWSEhtZHROU2I0aitMdFQwYTVzZEwwY2hidTZHNHZ0QlBYQUEvR21XR3FlTS9E
MGF6K0pZSTc3VFcvMXNzT0RKQVBVZ0FaCkhyWE02NXFRdmJ2d1I0aWxJS09xUnpNZXp4dUEyZnhK
TmUxTW9kU3JBRlNNRUh1S0t2TFJwUWk0cDN2ZnZvN2JoQzg1dDM5RHlQNFkKeXg2YjQzMXZTSTVB
MEVpbDRXQnlHQ3Q4cEgxVnMxdDZKNDExVzQrSXQxNGR2MHR2SVI1VmpaRUt0OHZLNU9mUWVsYzFO
cGllRFBpLwpwN1FqWlpYY2c4c2RsRDVRcitCUDhxbDhSci9ZdnhyMCs4KzZseThURS83MzdzL3ly
b3FVNFZadVcvTkM2OVVaeGxLRVV1elBZcTR2CngzNDJ1ZkNFbGlJYkdLNVM1RDVMdVYybGNlbjFy
dEs4eCtOTnZ2MFRUYm4vQUo1M0RKLzMwdWYvQUdXdk93VUlUcnhqTlhUT212SngKcHR4TS93Q0pk
eWRWOFIrSExBbjl4TXFTYmM4SGV3SDhxOWJqaldLSkkwQVZFQVZRT2dBcnhUeGNXU3g4RjYvaktK
YndveDkwdzMrTgplMVF5cFBCSE5Hd0tTS0dVanVEelcyTFZxTk5MWlgrKzVuUmQ1eWZvVWRTc1lG
MGJVMGhoU05yaUdRdVZYQlppcEdUNjE1QjRDbTFEClZOQ2w4TmFiSThCbXVXbXVycGYrV2NPMVJn
ZTVJSXIyMllMTEZKRmtibVFqR2VlYTgwK0M0VmRKMVZkbzh4YmhkeDc0MjhEOURSaDYKbkxoNmpl
clRRVkkzcVJYcVdQRVB3MDBDMDhMWGt0cEJJbDFid3RLSm1rSkxGUms1N2MxUStHZmlIK3ovQUFW
cTA5NDdOQllPR1FFKwpvKzZQeEg2MTMzaXR0dmhIV0Q2V2N2OEE2Q2E4T3RKV2crRnQvdE9QUDFO
STI5d0k4MTBZYm14RkJ4cU8vdkl6cTJwMUU0cm96clBDCmVpUDQrMUs0OFJlSUdhVzFXUXBCYjdp
RjQ3ZlFmcWE5QnUvRDNoMld3ZTBsc0xHT0pseHdpcVI3NTlhODg4SmZEK2JWdkRWbmVmOEEKQ1Ez
dHRGTUMzMmVFWUM4bnZuK2xiNi9DWFNtT2JuVmRWbi8zcGdQNlZHSWxUZFJyMmxrdGtrOUxGVWxM
bCtHOXpIK0VUTmJheHJ1bgpvKytDTmdWSVBHUXhHZnhGZXNWZ2VIUEIraytGMm5iVGtsRHpnQjJr
azNFZ1p4L090K3VQRjFZMWFybkhZMm93Y0lLTEhEcFJRT2xGCmN4cU5QV2lnOWFLQUNpaWlnQXJt
ZkduaEdEeFpwUWhMQ0s3aHkwRXBIUTl3Zlk0cnBxS3VuVWxUa3BSM1JNb3FTc3p5blR2Ri9pVHcK
ZGJycHV2NkxQZFJRL0xIY1JucXZibkJCL1NuVDZ2clh4R25YVExXeG4wN1NHT2JpWng4ekQwOVB3
cjFTa3dCMnJxK3RRdnpxQ1V1LwovQU12WXl0eXVXaDgrM2luVFBEK29lRTlZVjRyeTJ1ZnROaysw
bFhKR0NvUG9SeVBldllQQSt2cjRnOE1XMXdYemN4S0lyZ2R3NDcvCkFJOWZ4cld2OUkwN1ZBb3Y3
RzN1ZG4zVExHR0svU3VIMVh3N3JQaGJYSnRkOEtSQ2UzdU9idlR6MEo5Vi93QTVIdUsybldwNHFI
STkKSmIrVit2cGY4eUl3bFNkOTBVL2pLbmxXMmpYeUhiTkZPd1Z1L1FIK1lGVWZpa1JlYVg0ZDhT
Vy9HOVI4dzdiZ0hYK1RWTGRXMnUvRQpON2h0UjBtVFQ3YXp0WkRieHVDQzB4SHk5UU05SzA5SThP
M3V2L0NoTkgxQ0JyZTZqM0cyTW93ZUNTaFBvT1NQcFc4SlJvUnA4ejFpCjlmUm1jazZqbFphUDlE
djdHNlcrMCsydTA1U2VKWkI5Q00xeC93QVdJRm04RFRPU0EwVTBicjduT1A1RTF6L2h6eDgzaFd3
WFF2RWQKaGR4VFd2eVJ1cVozS09nLyt1S2x2UDdSK0k5dGUzRFc4dHJwTnJBN1dzYmNOTk5nN1Nm
WVZ6MDhOT2pXVTVhUlQzN21rcXFuRGxXNwpMZmh6U0lQRi93QUpiWFRwV0N5Ujcxams2N0hWamcv
a1IrQnJKMHZ4bnJYZ2UzL3NiWHRKbW5TRDVZSmtPTWpzTTlDSzFQZ3pjdS9oCjYrdG1WZ3NkeHZV
a2NFTW9ISDRyK3Rla01pdGpjb09QVVVWNnFwVlowcHg1bzN1Rk9ITkNNNHV6c2VZZUZJOWI4VStO
VzhUM2tVMW4KWVJKdGlqeVFIR01BZTQ1SkpwL3dwQXR0VjhUMlhlSzVYSDRNNC9wWHAxY2Y0YzhM
WDJqZUw5YzFTU1NBMmQreGRFUW5jQ1czY2pHTwo1cVhpVlVoTlBUUldYb3l2Wk9Nb3ZmZTVzZUsx
M2VFZFlBNzJjdjhBNkFhOG84TGFISnIzd3MxZTJnWGRjUjNubXhqMUlSZVB4R2E5Cm0xRzArMzZa
ZDJlN1o5b2hlTGRqT055a1ovV3NMd1Y0VFBoSFRKN1Jyd1hYblRlYnVFZXpIQUdPcDlLbWhpRlNv
dEorOWRORHFVM08KYTdXWnkzd3Y4VjJjV2svMkpxRTZXOXpidWZMRXAyN2dUMDU3ajByclBFSGpY
UnRBc25sa3U0cHA4ZnU0SW5ETXgvRG9LcjY3OFBOQQoxNjRhNG1nYUM0Yjcwa0IyN3ZjanBWTFR2
aFQ0YnNKMW1kTGk3WlRrTE80Sy9rQUtxY3NMVW43V1YxZmRmOEVtS3JSWEtyZXAwUGhyClhQOEFo
SXRGaTFIN0pMYkNUSTJTZDhkeDZpdGVtb2lSeHFpS0ZSUmhWVVlBRk9yaG0wNU54VmtkQ1RTMUhE
cFJRT2xGU01URkdLS0sKQURGR0tLS0FERkdLS0tBREZHS0tLQURGR0tLS0FERkdLS0tBSTViYUNi
L1d3eHlmNzZnMDlZMVZRcWdCUU1BQWNVVVVYQVpEYncyOApZamhqU05CMFZGQUFxVEZGRkFCaWpG
RkZBQmlqRkZGQUJpakZGRkFCaWpGRkZBQzBVVVVBZi8vWgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29187</attachid>
            <date>2009-04-02 03:24:22 -0700</date>
            <delta_ts>2009-04-12 04:48:15 -0700</delta_ts>
            <desc>latest V2 patch</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>14234</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTkwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDMtMjMgIEpvaG5ueSBEaW5nICA8am9obm55ZGluZy53ZWJr
aXRAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0Lmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9Eb2NMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jTG9h
ZGVyOjpjaGVja0ZvclJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY0xvYWRlci5oOgorCiAyMDA5LTAzLTIy
ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4
R1RLIGJ1aWxkIGZpeC4gQWRkIG1pc3NpbmcgaGVhZGVyLgpJbmRleDogV2ViQ29yZS9sb2FkZXIv
RG9jTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuY3Bw
CShyZXZpc2lvbiA0MTkwNSkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgRnJhbWUqIERvY0xvYWRlcjo6ZnJhbWUoKSBjb25z
dAogICAgIHJldHVybiBtX2RvYy0+ZnJhbWUoKTsKIH0KIAotdm9pZCBEb2NMb2FkZXI6OmNoZWNr
Rm9yUmVsb2FkKGNvbnN0IEtVUkwmIGZ1bGxVUkwpCit2b2lkIERvY0xvYWRlcjo6Y2hlY2tGb3JS
ZWxvYWQoY29uc3QgS1VSTCYgZnVsbFVSTCwgYm9vbCBpc1ByZWxvYWQpCiB7CiAgICAgaWYgKG1f
YWxsb3dTdGFsZVJlc291cmNlcykKICAgICAgICAgcmV0dXJuOyAvLyBEb24ndCByZWxvYWQgcmVz
b3VyY2VzIHdoaWxlIHBhc3RpbmcKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBEb2NMb2FkZXI6OmNo
ZWNrRm9yUmVsb2FkKGNvbnN0IEtVUgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgQ2FjaGVk
UmVzb3VyY2UqIGV4aXN0aW5nID0gY2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoZnVsbFVSTC5zdHJp
bmcoKSk7Ci0gICAgaWYgKCFleGlzdGluZyB8fCBleGlzdGluZy0+aXNQcmVsb2FkZWQoKSkKKyAg
ICBpZiAoIWV4aXN0aW5nIHx8IGV4aXN0aW5nLT5pc1ByZWxvYWRlZCgpIHx8IGlzUHJlbG9hZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc3dpdGNoIChjYWNoZVBvbGljeSgpKSB7CkBAIC0yMDcs
NyArMjA3LDcgQEAgQ2FjaGVkUmVzb3VyY2UqIERvY0xvYWRlcjo6cmVxdWVzdFJlc291cgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgY2hlY2tGb3JSZWxvYWQoZnVsbFVSTCk7CisgICAgY2hlY2tG
b3JSZWxvYWQoZnVsbFVSTCwgaXNQcmVsb2FkKTsKIAogICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IGNhY2hlKCktPnJlcXVlc3RSZXNvdXJjZSh0aGlzLCB0eXBlLCBmdWxsVVJMLCBjaGFy
c2V0LCBpc1ByZWxvYWQpOwogICAgIGlmIChyZXNvdXJjZSkgewpJbmRleDogV2ViQ29yZS9sb2Fk
ZXIvRG9jTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmgJ
KHJldmlzaW9uIDQxOTA1KQorKysgV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlKiBy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UpOwogICAgIHZvaWQg
cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQpOwogCi0gICAgdm9pZCBjaGVja0ZvclJlbG9hZChjb25zdCBL
VVJMJik7CisgICAgdm9pZCBjaGVja0ZvclJlbG9hZChjb25zdCBLVVJMJiwgYm9vbCBpc1ByZWxv
YWQgPSBmYWxzZSk7CiAgICAgdm9pZCBjaGVja0NhY2hlT2JqZWN0U3RhdHVzKENhY2hlZFJlc291
cmNlKik7CiAgICAgYm9vbCBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBL
VVJMJik7CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9h
ZC1pbWctdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aExvYWRGb3JGcmFtZQorCitUaGlzIHRlc3QgaXMgdG8gdGVzdCB3aGV0aGVyIHByZWxvYWQgaW1h
Z2Ugd2lsbCByZXF1aXJlIDIgbW9yZSByZXF1ZXN0cyBvciBub3QuCisKK1BBU1NFRApJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVz
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3By
ZWxvYWQtaW1nLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+
DQorPGhlYWQ+DQorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+DQorICA8c2NyaXB0Pg0KKyAgZnVuY3Rpb24gQ2FsbENv
bW1hbmQoY21kKQ0KKyAgew0KKyAgICAgICB0cnkgew0KKyAgICAgICAgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdDsNCisgICAgICAgICAgIHJlcS5vcGVuKCJHRVQiLCAiL3Jlc291cmNl
cy9uZXR3b3JrLXNpbXVsYXRvci5waHA/Y29tbWFuZD0iICsgY21kLCBmYWxzZSk7DQorICAgICAg
ICAgICByZXEuc2VuZChudWxsKTsNCisgICAgICAgICAgIHJldHVybiByZXEucmVzcG9uc2VUZXh0
Ow0KKyAgICAgICB9IGNhdGNoIChleCkgew0KKyAgICAgICAgICAgcmV0dXJuICIiOw0KKyAgICAg
ICB9DQorICAgfQ0KKyAgIA0KKyAgIGZ1bmN0aW9uIHRlc3QoKQ0KKyAgIHsNCisgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KKyAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICB9DQorICAgfQ0KKw0KKyAgIGZ1bmN0aW9uIGNoZWNr
QWNjZXNzQ291bnQoKQ0KKyAgIHsNCisgICAgICAgLy8gR2V0IHRoZSBhY2Nlc3MgY291bnQgb2Yg
cmVzb3VyY2U6L2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5qcGcuIFNob3VsZCBiZSAx
Lg0KKyAgICAgICB2YXIgY291bnQgPSBDYWxsQ29tbWFuZCgiZ2V0LXJlc291cmNlLWNvdW50JnBh
dGg9L2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5qcGciKTsNCisgICAgICAgY291bnQg
PSBwYXJzZUludChjb3VudCwgMTApOw0KKyAgICAgICBpZiAoY291bnQgPT0gMSkNCisgICAgICAg
ICAgIGNoZWNrTm90aWZ5RG9uZSgpOw0KKyAgICAgICBlbHNlDQorICAgICAgICAgICBpbWdfZXJy
b3IoKTsNCisgICB9DQorDQorICAgZnVuY3Rpb24gaW1nX2Vycm9yKCkNCisgICB7DQorICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXRQYW5lbCIpLmlubmVySFRNTCA9ICJGQUxJ
RUQiOw0KKyAgICAgICBjaGVja05vdGlmeURvbmUoKTsNCisgICB9DQorDQorICAgZnVuY3Rpb24g
Y2hlY2tOb3RpZnlEb25lKCkgew0KKyAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQ0KKyAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOw0KKyAg
IH0NCisgICAvLyBSZXNldCByZXNvdXJjZSBjb3VudCAgIA0KKyAgIENhbGxDb21tYW5kKCJyZXNl
dC1yZXNvdXJjZS1jb3VudCIpOw0KKyAgPC9zY3JpcHQ+DQorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9lbXB0eS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFk
Pg0KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4NCisgIDxpbWcgaWQgPSJ0ZXN0X2ltYWdlIiBzcmM9
Ii9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwP2NvbW1hbmQ9aW5jcmVhc2UtcmVzb3Vy
Y2UtY291bnQmcGF0aD0vbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZyIgb25lcnJv
cj0iaW1nX2Vycm9yKCkiIG9ubG9hZD0ic2V0VGltZW91dChjaGVja0FjY2Vzc0NvdW50LCAzMDAw
KSI+DQorICA8cD5UaGlzIHRlc3QgaXMgdG8gdGVzdCB3aGV0aGVyIHByZWxvYWQgaW1hZ2Ugd2ls
bCByZXF1aXJlIDIgbW9yZSByZXF1ZXN0cyBvciBub3QuPC9wPg0KKyAgPHNwYW4gaWQ9Im91dHB1
dFBhbmVsIj5QQVNTRUQ8L3NwYW4+DQorPC9ib2R5Pg0KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VzL2VtcHR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy9yZXNvdXJjZXMvZW1wdHkuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvYWRpbmcvcmVzb3VyY2VzL2VtcHR5LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMg
QEAKKyhmdW5jdGlvbigpIHsgCisKKyB9KSgpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocAkocmV2aXNpb24g
NDE5MDUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9uZXR3b3JrLXNpbXVs
YXRvci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDc4IEBAIGZ1bmN0aW9uIGNvbnRl
bnRUeXBlKCRwYXRoKQogICAgIHJldHVybiAidGV4dC9wbGFpbiI7CiB9CiAKK2Z1bmN0aW9uIGdl
bmVyYXRlTm9DYWNoZUhUVFBIZWFkZXIoKQoreworICAgIGhlYWRlcigiRXhwaXJlczogVGh1LCAw
MSBEZWMgMjAwMyAxNjowMDowMCBHTVQiKTsKKyAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5v
LWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIik7CisgICAgaGVhZGVyKCJQcmFnbWE6
IG5vLWNhY2hlIik7Cit9CisKK2Z1bmN0aW9uIGdlbmVyYXRlUmVzcG9uc2UoJHBhdGgpCit7Cisg
ICAgJHN0YXRlID0gZ2V0U3RhdGUoJHN0YXRlRmlsZSk7CisgICAgaWYgKCRzdGF0ZSA9PSAiT2Zm
bGluZSIpIHsKKyAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSAzMDcgVGVtcG9yYXJ5IFJlZGlyZWN0
Jyk7CisgICAgICAgICMgU2ltdWxhdGUgYSBuZXR3b3JrIGVycm9yIGJ5IHJlZGlyZWN0aW5nIHRv
IHNlbGYuCisgICAgICAgIGhlYWRlcignTG9jYXRpb246ICcgLiAkX1NFUlZFUlsnUkVRVUVTVF9V
UkknXSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBsaXR0bGUgc2VjdXJ1dHkgY2hlY2tp
bmcgY2FuJ3QgaHVydC4KKyAgICAgICAgaWYgKHN0cnN0cigkcGF0aCwgIi4uIikpCisgICAgICAg
ICAgICBleGl0OworCisgICAgICAgIGlmICgkcGF0aFswXSA9PSAnLycpCisgICAgICAgICAgICAk
cGF0aCA9ICcuLicgLiAkcGF0aDsKKworICAgICAgICBnZW5lcmF0ZU5vQ2FjaGVIVFRQSGVhZGVy
KCk7ICAgIAorCisgICAgICAgIGlmIChmaWxlX2V4aXN0cygkcGF0aCkpIHsKKyAgICAgICAgICAg
IGhlYWRlcigiTGFzdC1Nb2RpZmllZDogIiAuIGdtZGF0ZSgiRCwgZCBNIFkgSDppOnMgVCIsIGZp
bGVtdGltZSgkcGF0aCkpKTsKKyAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiAiIC4g
Y29udGVudFR5cGUoJHBhdGgpKTsKKyAgICAgICAgCisgICAgICAgICAgICBwcmludCBmaWxlX2dl
dF9jb250ZW50cygkcGF0aCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBoZWFkZXIo
J0hUVFAvMS4xIDQwNCBOb3QgRm91bmQnKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rp
b24gaGFuZGxlSW5jcmVhc2VSZXNvdXJjZUNvdW50Q29tbWFuZCgkcGF0aCkKK3sKKyAgICAkcmVz
b3VyY2VDb3VudEZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL3Jlc291cmNlLWNvdW50IjsK
KyAgICAkcmVzb3VyY2VDb3VudCA9IGdldFN0YXRlKCRyZXNvdXJjZUNvdW50RmlsZSk7CisgICAg
JHBpZWNlcyA9IGV4cGxvZGUoIiAiLCAkcmVzb3VyY2VDb3VudCk7CisgICAgJGNvdW50ID0gMDsK
KyAgICBpZiAoY291bnQoJHBpZWNlcykgPT0gMiAmJiAkcGllY2VzWzBdID09ICRwYXRoKSB7Cisg
ICAgICAgICRjb3VudCA9IDEgKyAkcGllY2VzWzFdOworICAgIH0gZWxzZSB7CisgICAgICAgICRj
b3VudCA9IDE7CisgICAgfQorICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRyZXNvdXJjZUNvdW50Rmls
ZSwgJHBhdGggLiAiICIgLiAkY291bnQpOworICAgIGdlbmVyYXRlUmVzcG9uc2UoJHBhdGgpOwor
fQorCitmdW5jdGlvbiBoYW5kbGVSZXNldFJlc291cmNlQ291bnRDb21tYW5kKCkKK3sKKyAgICAk
cmVzb3VyY2VDb3VudEZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL3Jlc291cmNlLWNvdW50
IjsKKyAgICBmaWxlX3B1dF9jb250ZW50cygkcmVzb3VyY2VDb3VudEZpbGUsIDApOworICAgIGdl
bmVyYXRlTm9DYWNoZUhUVFBIZWFkZXIoKTsKKyAgICBoZWFkZXIoJ0hUVFAvMS4xIDIwMCBPSycp
OworfQorCitmdW5jdGlvbiBoYW5kbGVHZXRSZXNvdXJjZUNvdW50Q29tbWFuZCgkcGF0aCkKK3sK
KyAgICAkcmVzb3VyY2VDb3VudEZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL3Jlc291cmNl
LWNvdW50IjsKKyAgICAkcmVzb3VyY2VDb3VudCA9IGdldFN0YXRlKCRyZXNvdXJjZUNvdW50Rmls
ZSk7CisgICAgJHBpZWNlcyA9IGV4cGxvZGUoIiAiLCAkcmVzb3VyY2VDb3VudCk7CisgICAgZ2Vu
ZXJhdGVOb0NhY2hlSFRUUEhlYWRlcigpOworICAgIGhlYWRlcignSFRUUC8xLjEgMjAwIE9LJyk7
CisgICAgaWYgKGNvdW50KCRwaWVjZXMpID09IDIgJiYgJHBpZWNlc1swXSA9PSAkcGF0aCkgewor
ICAgICAgICBlY2hvICRwaWVjZXNbMV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgZWNobyAwOwor
ICAgIH0KK30KKwogJHN0YXRlRmlsZSA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICIvbmV0d29yay1z
aW11bGF0b3Itc3RhdGUiOwogJGNvbW1hbmQgPSAkX0dFVFsnY29tbWFuZCddOwogaWYgKCRjb21t
YW5kKSB7CkBAIC01NCwzNiArMTI2LDE3IEBAIGlmICgkY29tbWFuZCkgewogICAgICAgICBzZXRT
dGF0ZSgiT25saW5lIiwgJHN0YXRlRmlsZSk7CiAgICAgZWxzZSBpZiAoJGNvbW1hbmQgPT0gImRp
c2Nvbm5lY3QiKQogICAgICAgICBzZXRTdGF0ZSgiT2ZmbGluZSIsICRzdGF0ZUZpbGUpOwotICAg
IGVsc2UKKyAgICBlbHNlIGlmICgkY29tbWFuZCA9PSAiaW5jcmVhc2UtcmVzb3VyY2UtY291bnQi
KSB7CisgICAgICAgIGhhbmRsZUluY3JlYXNlUmVzb3VyY2VDb3VudENvbW1hbmQoJF9HRVRbJ3Bh
dGgnXSk7CisgICAgfSBlbHNlIGlmICgkY29tbWFuZCA9PSAicmVzZXQtcmVzb3VyY2UtY291bnQi
KSB7CisgICAgICBoYW5kbGVSZXNldFJlc291cmNlQ291bnRDb21tYW5kKCk7CisgICAgfSBlbHNl
IGlmICgkY29tbWFuZCA9PSAiZ2V0LXJlc291cmNlLWNvdW50IikgeworICAgICAgaGFuZGxlR2V0
UmVzb3VyY2VDb3VudENvbW1hbmQoJF9HRVRbJ3BhdGgnXSk7CisgICAgfSBlbHNlCiAgICAgICAg
IGVjaG8gIlVua25vd24gY29tbWFuZDogIiAuICRjb21tYW5kIC4gIlxuIjsKICAgICBleGl0KCk7
CiB9CiAKICRyZXF1ZXN0ZWRQYXRoID0gJF9HRVRbJ3BhdGgnXTsKLSRzdGF0ZSA9IGdldFN0YXRl
KCRzdGF0ZUZpbGUpOwotaWYgKCRzdGF0ZSA9PSAiT2ZmbGluZSIpIHsKLSAgICBoZWFkZXIoJ0hU
VFAvMS4xIDMwNyBUZW1wb3JhcnkgUmVkaXJlY3QnKTsKLSAgICAjIFNpbXVsYXRlIGEgbmV0d29y
ayBlcnJvciBieSByZWRpcmVjdGluZyB0byBzZWxmLgotICAgIGhlYWRlcignTG9jYXRpb246ICcg
LiAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7Ci19IGVsc2UgewotICAgIC8vIEEgbGl0dGxlIHNl
Y3VydXR5IGNoZWNraW5nIGNhbid0IGh1cnQuCi0gICAgaWYgKHN0cnN0cigkcmVxdWVzdGVkUGF0
aCwgIi4uIikpCi0gICAgICAgIGV4aXQ7Ci0KLSAgICBpZiAoJHJlcXVlc3RlZFBhdGhbMF0gPT0g
Jy8nKQotICAgICAgICAkcmVxdWVzdGVkUGF0aCA9ICcuLicgLiAkcmVxdWVzdGVkUGF0aDsKLQot
ICAgIGhlYWRlcigiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAxNjowMDowMCBHTVQiKTsKLSAg
ICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlk
YXRlIik7Ci0gICAgaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7Ci0KLSAgICBpZiAoZmlsZV9l
eGlzdHMoJHJlcXVlc3RlZFBhdGgpKSB7Ci0gICAgICAgIGhlYWRlcigiTGFzdC1Nb2RpZmllZDog
IiAuIGdtZGF0ZSgiRCwgZCBNIFkgSDppOnMgVCIsIGZpbGVtdGltZSgkcmVxdWVzdGVkUGF0aCkp
KTsKLSAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiBjb250ZW50VHlwZSgkcmVxdWVz
dGVkUGF0aCkpOwotICAgIAotICAgICAgICBwcmludCBmaWxlX2dldF9jb250ZW50cygkcmVxdWVz
dGVkUGF0aCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDQgTm90
IEZvdW5kJyk7Ci0gICAgfQotfQorZ2VuZXJhdGVSZXNwb25zZSgkcmVxdWVzdGVkUGF0aCk7CiA/
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlcy9wcmVsb2Fk
LXRlc3QuanBnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmlu
YXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZXMv
cHJlbG9hZC10ZXN0LmpwZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0KCgovOWovNEFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvL2dBVE5q
ZzVNVEF4WVdWaE5HSXhOVGhrTWdELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKCkNRZ0tEQlFOREFzTERC
a1NFdzhVSFJvZkhoMGFIQndnSkM0bklDSXNJeHdjS0RjcExEQXhORFEwSHljNVBUZ3lQQzR6TkRM
LzJ3QkQKQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJ
eU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeQpNakl5TWpJeU1qTC93QUFSQ0FCR0FNZ0RBU0lBQWhF
QkF4RUIvOFFBSHdBQUFRVUJBUUVCQVFFQUFBQUFBQUFBQUFFQ0F3UUZCZ2NJCkNRb0wvOFFBdFJB
QUFnRURBd0lFQXdVRkJBUUFBQUY5QVFJREFBUVJCUkloTVVFR0UxRmhCeUp4RkRLQmthRUlJMEt4
d1JWUzBmQWsKTTJKeWdna0tGaGNZR1JvbEppY29LU28wTlRZM09EazZRMFJGUmtkSVNVcFRWRlZX
VjFoWldtTmtaV1puYUdscWMzUjFkbmQ0ZVhxRApoSVdHaDRpSmlwS1RsSldXbDVpWm1xS2pwS1dt
cDZpcHFyS3p0TFcydDdpNXVzTER4TVhHeDhqSnl0TFQxTlhXMTlqWjJ1SGk0K1RsCjV1Zm82ZXJ4
OHZQMDlmYjMrUG42LzhRQUh3RUFBd0VCQVFFQkFRRUJBUUFBQUFBQUFBRUNBd1FGQmdjSUNRb0wv
OFFBdFJFQUFnRUMKQkFRREJBY0ZCQVFBQVFKM0FBRUNBeEVFQlNFeEJoSkJVUWRoY1JNaU1vRUlG
RUtSb2JIQkNTTXpVdkFWWW5MUkNoWWtOT0VsOFJjWQpHUm9tSnlncEtqVTJOemc1T2tORVJVWkhT
RWxLVTFSVlZsZFlXVnBqWkdWbVoyaHBhbk4wZFhaM2VIbDZnb09FaFlhSGlJbUtrcE9VCmxaYVht
Sm1hb3FPa3BhYW5xS21xc3JPMHRiYTN1TG02d3NQRXhjYkh5TW5LMHRQVTFkYlgyTm5hNHVQazVl
Ym42T25xOHZQMDlmYjMKK1BuNi85b0FEQU1CQUFJUkF4RUFQd0QzN05HYVE5YUtBRnlLTWlrb29B
WElveUtTaWdCY2lqTkpSUUF1UlJta29vQVhJb3lLU2lnQgpjMFpGSlJRQXVSUmtVbEZBQzVvelNV
VUFMa1VaRkpSUUF1UlJrVWxGQUM1RkdSU1VVQU9vb0hTaWdCcDYwVUhyUlFBVVVVVUFGRkZlClph
OThSdGNzOWFsMHF4MEJ2UGpPQUpNdVdIWWdEc2EybzBKMW5hQkU2a1lLN1BUYUs4dlR4MzQwczBF
Mm8rRmQxdU9XYU5IVWdmbWEKN0x3ejRzMDN4VGFOTFpzVW1qLzFzRW5EcC9pUGVxcVlXcFRYTTlW
NWFpalZqSjI2bTlXZHJXdFdXZ2FhOS9mdVVoVWhmbEdTU2VncgpSckI4WjZiL0FHdDRQMU8wQzdu
OGt5SVA5cGZtSDZpczZTaTVwUzJ1Vk50UmJXNW82VHFVR3NhVmJhamJaOG00UU9vUFVleDl4VjJ2
ClB2aEJxUDJyd2xKYU0yV3RKMlVEMFZ2bUg2N3E5QnFzUlM5bFZsRHN4VTVjOEZJS0tLS3hMQ2lz
YnhQNGl0ZkRHanlYOXlOeloyeHgKZzh1M1lWNS9EcS94SzFxMi90T3hnaWh0R0c2T0xZZ0xEMnp5
YTZhV0ZsVWp6WFNYZDZHVTZxaTdiczlCOFU2amM2VDRZMUMvc3dwbgpnaTNwdUdSMUdUK1dhemZo
NXF0MXJQaEMzdTcyWXpYQmxrRHVmOTQ0L1Fpc1N4OFVTK0svQXV2MnQ3YitScU5yYXlyTW9VZ0g1
VGcrCng0NlZOOElIM2VDNUFUOTI3a0gvQUk2cC9yVzBxUHM4UEpTWHZLUy9JaFQ1cWlhMmFPL29y
R244V2FCYlhKdDV0WHRFbUJ3VU1neUQKV3RGTEhOR3NrVHE4YkRLc3B5Q1ByWEU0U2lydEc2a25z
UG9xaHF1dGFkb2x0OW8xRzdqZ1R0dVBMZlFkVFhIeWZGN3cyc3V4VXZXWApPTi9sREg4OC9wV2xQ
RDFhaXZDTFpNcWtJNlNaMzlGWitqNjFZNjdZTGU2Zk9KWVNjSHNWUG9SMnJRcktVWEYyZTVTYWF1
aHc2VVVECnBSU0dOUFdpZzlhS0FDaWlpZ0FxR1ZyZUROeE1ZNDlvd1pId01ENjFOWGozeGh2cnor
MWJEVHZOYU96ZVBlY0hBWTV4ay9TdWpEVUgKWHFLRjdHZFdwN09QTWVnVGVPZkRGdklVazFtMnlQ
N3BMZnlyem0rMWpTZEorS0ZocStqWGtFbGxlWVc2RUo0VXNkclpIYnMzMXJ2TgpEOEErSDlOc0ln
MWhEY3pGUVhsbVhjV05ZWHhMOEphYW5oU1cvd0JPMCszdDU3V1JaR2FHTUtXUThFY2ZVSDhLNjhO
TER4cThrYis5CnAwNm1OVlZISG1kdE5TYjRqK0x0VDBhNXNkTDBjaGJ1Nkc0dnRCUFhBQS9HbVdH
cWVNL0QwYXorSllJNzdUVy8xc3NPREpBUFVnQVoKSHJYTTY1cVF2YnZ3UjRpbElLT3FSek1lenh1
QTJmeEpOZTFNb2RTckFGU01FSHVLS3ZMUnBRaTRwM3Zmdm83YmhDODV0MzlEeVA0WQp5eDZiNDMx
dlNJNUEwRWlsNFdCeUdDdDhwSDFWczF0Nko0MTFXNCtJdDE0ZHYwdHZJUjVWalpFS3Q4dks1T2ZR
ZWxjMU5waWVEUGkvCnA3UWpaWlhjZzhzZGxENVFyK0JQOHFsOFJyL1l2eHIwKzgrNmx5OFRFLzcz
N3MveXJvcVU0Vlp1Vy9OQzY5VVp4bEtFVXV6UFlxNHYKeDM0MnVmQ0VsaUliR0s1UzVENUx1VjJs
Y2VuMXJ0Szh4K05OdnYwVFRibi9BSjUzREovMzB1Zi9BR1d2T3dVSVRyeGpOWFRPbXZKeApwdHhN
L3dDSmR5ZFY4UitITEFuOXhNcVNiYzhIZXdIOHE5YmpqV0tKSTBBVkVBVlFPZ0FyeFR4Y1dTeDhG
Ni9qS0pid294OTB3MytOCmUxUXlwUEJITkd3S1NLR1VqdUR6VzJMVnFOTkxaWCsrNW5SZDV5Zm9V
ZFNzWUYwYlUwaGhTTnJpR1F1VlhCWmlwR1Q2MTVCNENtMUQKVk5DbDhOYWJJOEJtdVdtdXJwZitX
Y08xUmdlNUlJcjIyWUxMRkpGa2JtUWpHZWVhODArQzRWZEoxVmRvOHhiaGR4NzQyOEQ5RFJoNgpu
TGg2amVyVFFWSTNxUlhxV1BFUHcwMEMwOExYa3RwQklsMWJ3dEtKbWtKTEZSazU3YzFRK0dmaUgr
ei9BQVZxMDk0N05CWU9HUUUrCm8rNlB4SDYxMzNpdHR2aEhXRDZXY3Y4QTZDYThPdEpXZytGdC90
T1BQMU5JMjl3STgxMFlibXhGQnhxTy92SXpxMnAxRTRyb3pyUEMKZWlQNCsxSzQ4UmVJR2FXMVdR
cEJiN2lGNDdmUWZxYTlCdS9EM2gyV3dlMGxzTEdPSmx4d2lxUjc1OWE4ODhKZkQrYlZ2RFZuZWY4
QQpDUTN0dEZNQzMyZUVZQzhudm4rbGI2L0NYU21PYm5WZFZuLzNwZ1A2VkdJbFRkUnIybGt0a2s5
TEZVbExsK0c5ekgrRVROYmF4cnVuCm8rK0NOZ1ZJUEdReEdmeEZlc1ZnZUhQQitrK0YybmJUa2xE
emdCMmtrM0VnWngvT3QrdVBGMVkxYXJuSFkyb3djSUtMSERwUlFPbEYKY3hxTlBXaWc5YUtBQ2lp
aWdBcm1mR25oR0R4WnBRaExDSzdoeTBFcEhROXdmWTRycHFLdW5VbFRrcFIzUk1vcVNzenluVHZG
L2lUdwpkYnJwdXY2TFBkUlEvTEhjUm5xdmJuQkIvU25UNnZyWHhHblhUTFd4bjA3U0dPYmlaeDh6
RDA5UHdyMVNrd0IycnErdFF2enFDVXUvCi9BTXZZeXR5dVdoOCszaW5UUEQrb2VFOVlWNHJ5MnVm
dE5rKzBsWEpHQ29Qb1J5UGV2WVBBK3ZyNGc4TVcxd1h6Y3hLSXJnZHc0Ny8KQUk5ZnhyV3Y5STA3
VkFvdjdHM3VkbjNUTEdHSy9TdUgxWHc3clBoYlhKdGQ4S1JDZTN1T2J2VHowSjlWL3dBNUh1SzJu
V3A0cUhJOQpKYitWK3ZwZjh5SXdsU2Q5MFUvaktubFcyalh5SGJORk93VnUvUUgrWUZVZmlrUmVh
WDRkOFNXL0c5Ujh3N2JnSFgrVFZMZFcydS9FCk43aHRSMG1UVDdhenRaRGJ4dUNDMHhIeTlRTTlL
MDlJOE8zdXYvQ2hOSDFDQnJlNmozRzJNb3dlQ1NoUG9PU1BwVzhKUm9ScDh6MWkKOWZSbWNrNmps
WmFQOUR2N0c2VyswKzJ1MDVTZUpaQjlDTTF4L3dBV0lGbThEVE9TQTBVMGJyN25PUDVFMXovaHp4
ODNoV3dYUXZFZApoZHhUV3Z5UnVxWjNLT2cvK3VLbHZQN1IrSTl0ZTNEVzh0cnBOckE3V3NiY05O
Tmc3U2ZZVnowOE5PaldVNWFSVDM3bWtxcW5EbFc3CkxmaHpTSVBGL3dBSmJYVHBXQ3lSNzFqazY3
SFZqZy9rUitCckowdnhuclhnZTMvc2JYdEptblNENVlKa09NanNNOUNLMVBnemN1L2gKNit0bVZn
c2R4dlVrY0VNb0hINHIrdGVrTWl0amNvT1BVVVY2cXBWWjBweDVvM3VGT0hOQ000dXpzZVllRkk5
YjhVK05XOFQza1UxbgpZUkp0aWp5UUhHTUFlNDVKSnAvd3BBdHRWOFQyWGVLNVhINE00L3BYcDFj
ZjRjOExYMmplTDljMVNTU0EyZCt4ZEVRbmNDVzNjakdPCjVxWGlWVWhOUFRSV1hveXZaT01vdmZl
NXNlSzEzZUVkWUE3MmN2OEE2QWE4bzhMYUhKcjN3czFlMmdYZGNSM25teGoxSVJlUHhHYTkKbTFH
MCszNlpkMmU3WjlvaGVMZGpPTnlrWi9Xc0x3VjRUUGhIVEo3UnJ3WFhuVGVidUVlekhBR09wOUtt
aGlGU290Sis5ZE5EcVUzTwphN1daeTN3djhWMmNXay8ySnFFNlc5emJ1ZkxFcDI3Z1QwNTdqMHJy
UEVIalhSdEFzbmxrdTRwcDhmdTRJbkRNeC9Eb0tyNjc4UE5BCjE2NGE0bWdhQzRiNzBrQjI3dmNq
cFZMVHZoVDRic0oxbWRMaTdaVGtMTzRLL2tBS3Fjc0xVbjdXVjFmZGY4RW1LclJYS3JlcDBQaHIK
WFA4QWhJdEZpMUg3SkxiQ1RJMlNkOGR4Nml0ZW1vaVJ4cWlLRlJSaFZVWUFGT3JobTA1TnhWa2RD
VFMxSERwUlFPbEZTTVRGR0tLSwpBREZHS0tLQURGR0tLS0FERkdLS0tBREZHS0tLQURGR0tLS0FJ
NWJhQ2IvV3d4eWY3NmcwOVkxVlFxZ0JRTUFBY1VVVVhBWkRidzI4CllqaGpTTkIwVkZBQXFURkZG
QUJpakZGRkFCaWpGRkZBQmlqRkZGQUJpakZGRkFDMFVVVUFmLy9aCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29419</attachid>
            <date>2009-04-12 04:48:15 -0700</date>
            <delta_ts>2009-05-22 10:18:50 -0700</delta_ts>
            <desc>update patch v2</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>14398</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTkwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDMtMjMgIEpvaG5ueSBEaW5nICA8am9obm55ZGluZy53ZWJr
aXRAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3NDcKKworICAg
ICAgICBEb2NMb2FkZXI6OmNoZWNrRm9yUmVsb2FkIHNob3VsZCBkaXJlY3RseSByZXR1cm4gaWYg
dGhlIGNhbGxpbmcgaXMgZm9yIGEgcGVuZGluZyBwcmVsb2FkIHJlcXVlc3QuCisKKyAgICAgICAg
VGVzdDogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0RvY0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6OmNo
ZWNrRm9yUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xvYWRlcjo6cmVxdWVzdFJlc291
cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jTG9hZGVyLmg6CisKIDIwMDktMDMtMjIgIEtldmlu
IE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgd3hHVEsgYnVp
bGQgZml4LiBBZGQgbWlzc2luZyBoZWFkZXIuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2NMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHJldmlz
aW9uIDQxOTA1KQorKysgV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzUsNyArNzUsNyBAQCBGcmFtZSogRG9jTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fZG9jLT5mcmFtZSgpOwogfQogCi12b2lkIERvY0xvYWRlcjo6Y2hlY2tGb3JSZWxv
YWQoY29uc3QgS1VSTCYgZnVsbFVSTCkKK3ZvaWQgRG9jTG9hZGVyOjpjaGVja0ZvclJlbG9hZChj
b25zdCBLVVJMJiBmdWxsVVJMLCBib29sIGlzUHJlbG9hZCkKIHsKICAgICBpZiAobV9hbGxvd1N0
YWxlUmVzb3VyY2VzKQogICAgICAgICByZXR1cm47IC8vIERvbid0IHJlbG9hZCByZXNvdXJjZXMg
d2hpbGUgcGFzdGluZwpAQCAtODcsNyArODcsNyBAQCB2b2lkIERvY0xvYWRlcjo6Y2hlY2tGb3JS
ZWxvYWQoY29uc3QgS1VSCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBDYWNoZWRSZXNvdXJj
ZSogZXhpc3RpbmcgPSBjYWNoZSgpLT5yZXNvdXJjZUZvclVSTChmdWxsVVJMLnN0cmluZygpKTsK
LSAgICBpZiAoIWV4aXN0aW5nIHx8IGV4aXN0aW5nLT5pc1ByZWxvYWRlZCgpKQorICAgIGlmICgh
ZXhpc3RpbmcgfHwgZXhpc3RpbmctPmlzUHJlbG9hZGVkKCkgfHwgaXNQcmVsb2FkKQogICAgICAg
ICByZXR1cm47CiAKICAgICBzd2l0Y2ggKGNhY2hlUG9saWN5KCkpIHsKQEAgLTIwNyw3ICsyMDcs
NyBAQCBDYWNoZWRSZXNvdXJjZSogRG9jTG9hZGVyOjpyZXF1ZXN0UmVzb3VyCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBjaGVja0ZvclJlbG9hZChmdWxsVVJMKTsKKyAgICBjaGVja0ZvclJlbG9h
ZChmdWxsVVJMLCBpc1ByZWxvYWQpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
Y2FjaGUoKS0+cmVxdWVzdFJlc291cmNlKHRoaXMsIHR5cGUsIGZ1bGxVUkwsIGNoYXJzZXQsIGlz
UHJlbG9hZCk7CiAgICAgaWYgKHJlc291cmNlKSB7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2NM
b2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuaAkocmV2aXNp
b24gNDE5MDUpCisrKyBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgYm9vbCBpc1ByZWxvYWQgPSBmYWxzZSk7CiAgICAgdm9pZCByZXF1ZXN0
UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCk7CiAKLSAgICB2b2lkIGNoZWNrRm9yUmVsb2FkKGNvbnN0IEtVUkwmKTsK
KyAgICB2b2lkIGNoZWNrRm9yUmVsb2FkKGNvbnN0IEtVUkwmLCBib29sIGlzUHJlbG9hZCA9IGZh
bHNlKTsKICAgICB2b2lkIGNoZWNrQ2FjaGVPYmplY3RTdGF0dXMoQ2FjaGVkUmVzb3VyY2UqKTsK
ICAgICBib29sIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IEtVUkwmKTsK
ICAgICAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10
ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
YWRpbmcvcHJlbG9hZC1pbWctdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVzdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK21h
aW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZv
ckZyYW1lCisKK1RoaXMgdGVzdCBpcyB0byB0ZXN0IHdoZXRoZXIgcHJlbG9hZCBpbWFnZSB3aWxs
IHJlcXVpcmUgMiBtb3JlIHJlcXVlc3RzIG9yIG5vdC4KKworUEFTU0VECkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVzdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1p
bWctdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACis8aHRtbD4NCis8aGVh
ZD4NCisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ij4NCisgIDxzY3JpcHQ+DQorICBmdW5jdGlvbiBDYWxsQ29tbWFuZChj
bWQpDQorICB7DQorICAgICAgIHRyeSB7DQorICAgICAgICAgICB2YXIgcmVxID0gbmV3IFhNTEh0
dHBSZXF1ZXN0Ow0KKyAgICAgICAgICAgcmVxLm9wZW4oIkdFVCIsICIvcmVzb3VyY2VzL25ldHdv
cmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyBjbWQsIGZhbHNlKTsNCisgICAgICAgICAgIHJl
cS5zZW5kKG51bGwpOw0KKyAgICAgICAgICAgcmV0dXJuIHJlcS5yZXNwb25zZVRleHQ7DQorICAg
ICAgIH0gY2F0Y2ggKGV4KSB7DQorICAgICAgICAgICByZXR1cm4gIiI7DQorICAgICAgIH0NCisg
ICB9DQorICAgDQorICAgZnVuY3Rpb24gdGVzdCgpDQorICAgew0KKyAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQorICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7DQorICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7DQorICAgICAgIH0NCisgICB9DQorDQorICAgZnVuY3Rpb24gY2hlY2tBY2Nlc3ND
b3VudCgpDQorICAgew0KKyAgICAgICAvLyBHZXQgdGhlIGFjY2VzcyBjb3VudCBvZiByZXNvdXJj
ZTovbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZy4gU2hvdWxkIGJlIDEuDQorICAg
ICAgIHZhciBjb3VudCA9IENhbGxDb21tYW5kKCJnZXQtcmVzb3VyY2UtY291bnQmcGF0aD0vbG9h
ZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZyIpOw0KKyAgICAgICBjb3VudCA9IHBhcnNl
SW50KGNvdW50LCAxMCk7DQorICAgICAgIGlmIChjb3VudCA9PSAxKQ0KKyAgICAgICAgICAgY2hl
Y2tOb3RpZnlEb25lKCk7DQorICAgICAgIGVsc2UNCisgICAgICAgICAgIGltZ19lcnJvcigpOw0K
KyAgIH0NCisNCisgICBmdW5jdGlvbiBpbWdfZXJyb3IoKQ0KKyAgIHsNCisgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dFBhbmVsIikuaW5uZXJIVE1MID0gIkZBTElFRCI7DQor
ICAgICAgIGNoZWNrTm90aWZ5RG9uZSgpOw0KKyAgIH0NCisNCisgICBmdW5jdGlvbiBjaGVja05v
dGlmeURvbmUoKSB7DQorICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQor
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgfQ0KKyAg
IC8vIFJlc2V0IHJlc291cmNlIGNvdW50ICAgDQorICAgQ2FsbENvbW1hbmQoInJlc2V0LXJlc291
cmNlLWNvdW50Iik7DQorICA8L3NjcmlwdD4NCisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2VtcHR5LmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPg0KKyAgPGltZyBpZCA9InRlc3RfaW1hZ2UiIHNyYz0iL3Jlc291
cmNlcy9uZXR3b3JrLXNpbXVsYXRvci5waHA/Y29tbWFuZD1pbmNyZWFzZS1yZXNvdXJjZS1jb3Vu
dCZwYXRoPS9sb2FkaW5nL3Jlc291cmNlcy9wcmVsb2FkLXRlc3QuanBnIiBvbmVycm9yPSJpbWdf
ZXJyb3IoKSIgb25sb2FkPSJzZXRUaW1lb3V0KGNoZWNrQWNjZXNzQ291bnQsIDMwMDApIj4NCisg
IDxwPlRoaXMgdGVzdCBpcyB0byB0ZXN0IHdoZXRoZXIgcHJlbG9hZCBpbWFnZSB3aWxsIHJlcXVp
cmUgMiBtb3JlIHJlcXVlc3RzIG9yIG5vdC48L3A+DQorICA8c3BhbiBpZD0ib3V0cHV0UGFuZWwi
PlBBU1NFRDwvc3Bhbj4NCis8L2JvZHk+DQorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZXMvZW1w
dHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291
cmNlcy9lbXB0eS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9yZXNvdXJjZXMvZW1wdHkuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorKGZ1
bmN0aW9uKCkgeyAKKworIH0pKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlcy9uZXR3b3JrLXNpbXVsYXRvci5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZXMvbmV0d29yay1zaW11bGF0b3IucGhwCShyZXZpc2lvbiA0MTkwNSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBo
cAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNzggQEAgZnVuY3Rpb24gY29udGVudFR5cGUo
JHBhdGgpCiAgICAgcmV0dXJuICJ0ZXh0L3BsYWluIjsKIH0KIAorZnVuY3Rpb24gZ2VuZXJhdGVO
b0NhY2hlSFRUUEhlYWRlcigpCit7CisgICAgaGVhZGVyKCJFeHBpcmVzOiBUaHUsIDAxIERlYyAy
MDAzIDE2OjAwOjAwIEdNVCIpOworICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUs
IG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsKKyAgICBoZWFkZXIoIlByYWdtYTogbm8tY2Fj
aGUiKTsKK30KKworZnVuY3Rpb24gZ2VuZXJhdGVSZXNwb25zZSgkcGF0aCkKK3sKKyAgICAkc3Rh
dGUgPSBnZXRTdGF0ZSgkc3RhdGVGaWxlKTsKKyAgICBpZiAoJHN0YXRlID09ICJPZmZsaW5lIikg
eworICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDMwNyBUZW1wb3JhcnkgUmVkaXJlY3QnKTsKKyAg
ICAgICAgIyBTaW11bGF0ZSBhIG5ldHdvcmsgZXJyb3IgYnkgcmVkaXJlY3RpbmcgdG8gc2VsZi4K
KyAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGxpdHRsZSBzZWN1cnV0eSBjaGVja2luZyBjYW4n
dCBodXJ0LgorICAgICAgICBpZiAoc3Ryc3RyKCRwYXRoLCAiLi4iKSkKKyAgICAgICAgICAgIGV4
aXQ7CisKKyAgICAgICAgaWYgKCRwYXRoWzBdID09ICcvJykKKyAgICAgICAgICAgICRwYXRoID0g
Jy4uJyAuICRwYXRoOworCisgICAgICAgIGdlbmVyYXRlTm9DYWNoZUhUVFBIZWFkZXIoKTsgICAg
CisKKyAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRwYXRoKSkgeworICAgICAgICAgICAgaGVhZGVy
KCJMYXN0LU1vZGlmaWVkOiAiIC4gZ21kYXRlKCJELCBkIE0gWSBIOmk6cyBUIiwgZmlsZW10aW1l
KCRwYXRoKSkpOworICAgICAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiBjb250ZW50
VHlwZSgkcGF0aCkpOworICAgICAgICAKKyAgICAgICAgICAgIHByaW50IGZpbGVfZ2V0X2NvbnRl
bnRzKCRwYXRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhlYWRlcignSFRUUC8x
LjEgNDA0IE5vdCBGb3VuZCcpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBoYW5k
bGVJbmNyZWFzZVJlc291cmNlQ291bnRDb21tYW5kKCRwYXRoKQoreworICAgICRyZXNvdXJjZUNv
dW50RmlsZSA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICIvcmVzb3VyY2UtY291bnQiOworICAgICRy
ZXNvdXJjZUNvdW50ID0gZ2V0U3RhdGUoJHJlc291cmNlQ291bnRGaWxlKTsKKyAgICAkcGllY2Vz
ID0gZXhwbG9kZSgiICIsICRyZXNvdXJjZUNvdW50KTsKKyAgICAkY291bnQgPSAwOworICAgIGlm
IChjb3VudCgkcGllY2VzKSA9PSAyICYmICRwaWVjZXNbMF0gPT0gJHBhdGgpIHsKKyAgICAgICAg
JGNvdW50ID0gMSArICRwaWVjZXNbMV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGNvdW50ID0g
MTsKKyAgICB9CisgICAgZmlsZV9wdXRfY29udGVudHMoJHJlc291cmNlQ291bnRGaWxlLCAkcGF0
aCAuICIgIiAuICRjb3VudCk7CisgICAgZ2VuZXJhdGVSZXNwb25zZSgkcGF0aCk7Cit9CisKK2Z1
bmN0aW9uIGhhbmRsZVJlc2V0UmVzb3VyY2VDb3VudENvbW1hbmQoKQoreworICAgICRyZXNvdXJj
ZUNvdW50RmlsZSA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICIvcmVzb3VyY2UtY291bnQiOworICAg
IGZpbGVfcHV0X2NvbnRlbnRzKCRyZXNvdXJjZUNvdW50RmlsZSwgMCk7CisgICAgZ2VuZXJhdGVO
b0NhY2hlSFRUUEhlYWRlcigpOworICAgIGhlYWRlcignSFRUUC8xLjEgMjAwIE9LJyk7Cit9CisK
K2Z1bmN0aW9uIGhhbmRsZUdldFJlc291cmNlQ291bnRDb21tYW5kKCRwYXRoKQoreworICAgICRy
ZXNvdXJjZUNvdW50RmlsZSA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICIvcmVzb3VyY2UtY291bnQi
OworICAgICRyZXNvdXJjZUNvdW50ID0gZ2V0U3RhdGUoJHJlc291cmNlQ291bnRGaWxlKTsKKyAg
ICAkcGllY2VzID0gZXhwbG9kZSgiICIsICRyZXNvdXJjZUNvdW50KTsKKyAgICBnZW5lcmF0ZU5v
Q2FjaGVIVFRQSGVhZGVyKCk7CisgICAgaGVhZGVyKCdIVFRQLzEuMSAyMDAgT0snKTsKKyAgICBp
ZiAoY291bnQoJHBpZWNlcykgPT0gMiAmJiAkcGllY2VzWzBdID09ICRwYXRoKSB7CisgICAgICAg
IGVjaG8gJHBpZWNlc1sxXTsKKyAgICB9IGVsc2UgeworICAgICAgICBlY2hvIDA7CisgICAgfQor
fQorCiAkc3RhdGVGaWxlID0gc3lzX2dldF90ZW1wX2RpcigpIC4gIi9uZXR3b3JrLXNpbXVsYXRv
ci1zdGF0ZSI7CiAkY29tbWFuZCA9ICRfR0VUWydjb21tYW5kJ107CiBpZiAoJGNvbW1hbmQpIHsK
QEAgLTU0LDM2ICsxMjYsMTcgQEAgaWYgKCRjb21tYW5kKSB7CiAgICAgICAgIHNldFN0YXRlKCJP
bmxpbmUiLCAkc3RhdGVGaWxlKTsKICAgICBlbHNlIGlmICgkY29tbWFuZCA9PSAiZGlzY29ubmVj
dCIpCiAgICAgICAgIHNldFN0YXRlKCJPZmZsaW5lIiwgJHN0YXRlRmlsZSk7Ci0gICAgZWxzZQor
ICAgIGVsc2UgaWYgKCRjb21tYW5kID09ICJpbmNyZWFzZS1yZXNvdXJjZS1jb3VudCIpIHsKKyAg
ICAgICAgaGFuZGxlSW5jcmVhc2VSZXNvdXJjZUNvdW50Q29tbWFuZCgkX0dFVFsncGF0aCddKTsK
KyAgICB9IGVsc2UgaWYgKCRjb21tYW5kID09ICJyZXNldC1yZXNvdXJjZS1jb3VudCIpIHsKKyAg
ICAgIGhhbmRsZVJlc2V0UmVzb3VyY2VDb3VudENvbW1hbmQoKTsKKyAgICB9IGVsc2UgaWYgKCRj
b21tYW5kID09ICJnZXQtcmVzb3VyY2UtY291bnQiKSB7CisgICAgICBoYW5kbGVHZXRSZXNvdXJj
ZUNvdW50Q29tbWFuZCgkX0dFVFsncGF0aCddKTsKKyAgICB9IGVsc2UKICAgICAgICAgZWNobyAi
VW5rbm93biBjb21tYW5kOiAiIC4gJGNvbW1hbmQgLiAiXG4iOwogICAgIGV4aXQoKTsKIH0KIAog
JHJlcXVlc3RlZFBhdGggPSAkX0dFVFsncGF0aCddOwotJHN0YXRlID0gZ2V0U3RhdGUoJHN0YXRl
RmlsZSk7Ci1pZiAoJHN0YXRlID09ICJPZmZsaW5lIikgewotICAgIGhlYWRlcignSFRUUC8xLjEg
MzA3IFRlbXBvcmFyeSBSZWRpcmVjdCcpOwotICAgICMgU2ltdWxhdGUgYSBuZXR3b3JrIGVycm9y
IGJ5IHJlZGlyZWN0aW5nIHRvIHNlbGYuCi0gICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRfU0VS
VkVSWydSRVFVRVNUX1VSSSddKTsKLX0gZWxzZSB7Ci0gICAgLy8gQSBsaXR0bGUgc2VjdXJ1dHkg
Y2hlY2tpbmcgY2FuJ3QgaHVydC4KLSAgICBpZiAoc3Ryc3RyKCRyZXF1ZXN0ZWRQYXRoLCAiLi4i
KSkKLSAgICAgICAgZXhpdDsKLQotICAgIGlmICgkcmVxdWVzdGVkUGF0aFswXSA9PSAnLycpCi0g
ICAgICAgICRyZXF1ZXN0ZWRQYXRoID0gJy4uJyAuICRyZXF1ZXN0ZWRQYXRoOwotCi0gICAgaGVh
ZGVyKCJFeHBpcmVzOiBUaHUsIDAxIERlYyAyMDAzIDE2OjAwOjAwIEdNVCIpOwotICAgIGhlYWRl
cigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKTsK
LSAgICBoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsKLQotICAgIGlmIChmaWxlX2V4aXN0cygk
cmVxdWVzdGVkUGF0aCkpIHsKLSAgICAgICAgaGVhZGVyKCJMYXN0LU1vZGlmaWVkOiAiIC4gZ21k
YXRlKCJELCBkIE0gWSBIOmk6cyBUIiwgZmlsZW10aW1lKCRyZXF1ZXN0ZWRQYXRoKSkpOwotICAg
ICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogIiAuIGNvbnRlbnRUeXBlKCRyZXF1ZXN0ZWRQYXRo
KSk7Ci0gICAgCi0gICAgICAgIHByaW50IGZpbGVfZ2V0X2NvbnRlbnRzKCRyZXF1ZXN0ZWRQYXRo
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCBOb3QgRm91bmQn
KTsKLSAgICB9Ci19CitnZW5lcmF0ZVJlc3BvbnNlKCRyZXF1ZXN0ZWRQYXRoKTsKID8+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5q
cGcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlw
ZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlcy9wcmVsb2Fk
LXRlc3QuanBnCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbQoKCi85ai80QUFRU2taSlJnQUJBUUFBQVFBQkFBRC8vZ0FUTmpnNU1UQXhZ
V1ZoTkdJeE5UaGtNZ0QvMndCREFBZ0dCZ2NHQlFnSEJ3Y0oKQ1FnS0RCUU5EQXNMREJrU0V3OFVI
Um9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCRApB
UWtKQ1F3TERCZ05EUmd5SVJ3aE1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1q
SXlNakl5TWpJeU1qSXlNakl5Ck1qSXlNakl5TWpML3dBQVJDQUJHQU1nREFTSUFBaEVCQXhFQi84
UUFId0FBQVFVQkFRRUJBUUVBQUFBQUFBQUFBQUVDQXdRRkJnY0kKQ1FvTC84UUF0UkFBQWdFREF3
SUVBd1VGQkFRQUFBRjlBUUlEQUFRUkJSSWhNVUVHRTFGaEJ5SnhGREtCa2FFSUkwS3h3UlZTMGZB
awpNMkp5Z2drS0ZoY1lHUm9sSmljb0tTbzBOVFkzT0RrNlEwUkZSa2RJU1VwVFZGVldWMWhaV21O
a1pXWm5hR2xxYzNSMWRuZDRlWHFECmhJV0doNGlKaXBLVGxKV1dsNWlabXFLanBLV21wNmlwcXJL
enRMVzJ0N2k1dXNMRHhNWEd4OGpKeXRMVDFOWFcxOWpaMnVIaTQrVGwKNXVmbzZlcng4dlAwOWZi
MytQbjYvOFFBSHdFQUF3RUJBUUVCQVFFQkFRQUFBQUFBQUFFQ0F3UUZCZ2NJQ1FvTC84UUF0UkVB
QWdFQwpCQVFEQkFjRkJBUUFBUUozQUFFQ0F4RUVCU0V4QmhKQlVRZGhjUk1pTW9FSUZFS1JvYkhC
Q1NNelV2QVZZbkxSQ2hZa05PRWw4UmNZCkdSb21KeWdwS2pVMk56ZzVPa05FUlVaSFNFbEtVMVJW
VmxkWVdWcGpaR1ZtWjJocGFuTjBkWFozZUhsNmdvT0VoWWFIaUltS2twT1UKbFphWG1KbWFvcU9r
cGFhbnFLbXFzck8wdGJhM3VMbTZ3c1BFeGNiSHlNbkswdFBVMWRiWDJObmE0dVBrNWVibjZPbnE4
dlAwOWZiMworUG42LzlvQURBTUJBQUlSQXhFQVB3RDM3TkdhUTlhS0FGeUtNaWtvb0FYSW95S1Np
Z0JjaWpOSlJRQXVSUm1rb29BWElveUtTaWdCCmMwWkZKUlFBdVJSa1VsRkFDNW96U1VVQUxrVVpG
SlJRQXVSUmtVbEZBQzVGR1JTVVVBT29vSFNpZ0JwNjBVSHJSUUFVVVVVQUZGRmUKWmE5OFJ0Y3M5
YWwwcXgwQnZQak9BSk11V0hZZ0RzYTJvMEoxbmFCRTZrWUs3UFRhSzh2VHgzNDBzMEUybytGZDF1
T1dhTkhVZ2ZtYQo3THd6NHMwM3hUYU5MWnNVbWovMXNFbkRwL2lQZXFxWVdwVFhNOVY1YWlqVmpK
MjZtOVdkcld0V1dnYWE5L2Z1VWhVaGZsR1NTZWdyClJyQjhaNmIvQUd0NFAxTzBDN244a3lJUDlw
Zm1INmlzNlNpNXBTMnVWTnRSYlc1bzZUcVVHc2FWYmFqYlo4bTRRT29QVWV4OXhWMnYKUHZoQnFQ
MnJ3bEphTTJXdEoyVUQwVnZtSDY3cTlCcXNSUzlsVmxEc3hVNWM4RklLS0tLeExDaXNieFA0aXRm
REdqeVg5eU56WjJ4eApnOHUzWVY1L0RxL3hLMXEyL3RPeGdpaHRHRzZPTFlnTEQyenlhNmFXRmxV
anpYU1hkNkdVNnFpN2JzOUI4VTZqYzZUNFkxQy9zd3BuCmdpM3B1R1IxR1QrV2F6Zmg1cXQxclBo
QzN1NzJZelhCbGtEdWY5NDQvUWlzU3g4VVMrSy9BdXYydDdiK1JxTnJheXJNb1VnSDVUZysKeDQ2
Vk44SUgzZUM1QVQ5MjdrSC9BSTZwL3JXMHFQczhQSlNYdktTL0loVDVxaWEyYU8vb3JHbjhXYUJi
WEp0NXRYdEVtQndVTWd5RApXdEZMSE5Hc2tUcThiREtzcHlDUHJYRTRTaXJ0RzZrbnNQb3FocXV0
YWRvbHQ5bzFHN2pnVHR1UExmUWRUWEh5ZkY3dzJzdXhVdldYCk9OL2xESDg4L3BXbFBEMWFpdkNM
Wk1xa0k2U1ozOUZaK2o2MVk2N1lMZTZmT0pZU2NIc1ZQb1IyclFyS1VYRjJlNVNhYXVodzZVVUQK
cFJTR05QV2lnOWFLQUNpaWlnQXFHVnJlRE54TVk0OW93Wkh3TUQ2MU5YajN4aHZyeisxYkRUdk5h
T3plUGVjSEFZNXhrL1N1akRVSApYcUtGN0dkV3A3T1BNZWdUZU9mREZ2SVVrMW0yeVA3cExmeXJ6
bSsxalNkSitLRmhxK2pYa0VsbGVZVzZFSjRVc2RyWkhiczMxcnZOCkQ4QStIOU5zSWcxaERjekZR
WGxtWGNXTllYeEw4SmFhbmhTVy93Qk8wKzN0NTdXUlpHYUdNS1dROEVjZlVIOEs2OE5MRHhxOGti
KzkKcDA2bU5WVkhIbWR0TlNiNGorTHRUMGE1c2RMMGNoYnU2RzR2dEJQWEFBL0dtV0dxZU0vRDBh
eitKWUk3N1RXLzFzc09ESkFQVWdBWgpIclhNNjVxUXZidndSNGlsSUtPcVJ6TWV6eHVBMmZ4Sk5l
MU1vZFNyQUZTTUVIdUtLdkxScFFpNHAzdmZ2bzdiaEM4NXQzOUR5UDRZCnl4NmI0MzF2U0k1QTBF
aWw0V0J5R0N0OHBIMVZzMXQ2SjQxMVc0K0l0MTRkdjB0dklSNVZqWkVLdDh2SzVPZlFlbGMxTnBp
ZURQaS8KcDdRalpaWGNnOHNkbEQ1UXIrQlA4cWw4UnIvWXZ4cjArOCs2bHk4VEUvNzM3cy95cm9x
VTRWWnVXL05DNjlVWnhsS0VVdXpQWXE0dgp4MzQydWZDRWxpSWJHSzVTNUQ1THVWMmxjZW4xcnRL
OHgrTk52djBUVGJuL0FKNTNESi8zMHVmL0FHV3ZPd1VJVHJ4ak5YVE9tdkp4CnB0eE0vd0NKZHlk
VjhSK0hMQW45eE1xU2JjOEhld0g4cTliampXS0pJMEFWRUFWUU9nQXJ4VHhjV1N4OEY2L2pLSmJ3
b3g5MHczK04KZTFReXBQQkhOR3dLU0tHVWp1RHpXMkxWcU5OTFpYKys1blJkNXlmb1VkU3NZRjBi
VTBoaFNOcmlHUXVWWEJaaXBHVDYxNUI0Q20xRApWTkNsOE5hYkk4Qm11V211cnBmK1djTzFSZ2U1
SUlyMjJZTExGSkZrYm1RakdlZWE4MCtDNFZkSjFWZG84eGJoZHg3NDI4RDlEUmg2Cm5MaDZqZXJU
UVZJM3FSWHFXUEVQdzAwQzA4TFhrdHBCSWwxYnd0S0pta0pMRlJrNTdjMVErR2ZpSCt6L0FBVnEw
OTQ3TkJZT0dRRSsKbys2UHhINjEzM2l0dHZoSFdENldjdjhBNkNhOE90SldnK0Z0L3RPUFAxTkky
OXdJODEwWWJteEZCeHFPL3ZJenEycDFFNHJvenJQQwplaVA0KzFLNDhSZUlHYVcxV1FwQmI3aUY0
N2ZRZnFhOUJ1L0QzaDJXd2UwbHNMR09KbHh3aXFSNzU5YTg4OEpmRCtiVnZEVm5lZjhBCkNRM3R0
Rk1DMzJlRVlDOG52bitsYjYvQ1hTbU9iblZkVm4vM3BnUDZWR0lsVGRScjJsa3RrazlMRlVsTGwr
Rzl6SCtFVE5iYXhydW4KbysrQ05nVklQR1F4R2Z4RmVzVmdlSFBCK2srRjJuYlRrbER6Z0Iya2sz
RWdaeC9PdCt1UEYxWTFhcm5IWTJvd2NJS0xIRHBSUU9sRgpjeHFOUFdpZzlhS0FDaWlpZ0FybWZH
bmhHRHhacFFoTENLN2h5MEVwSFE5d2ZZNHJwcUt1blVsVGtwUjNSTW9xU3N6eW5UdkYvaVR3CmRi
cnB1djZMUGRSUS9MSGNSbnF2Ym5CQi9TblQ2dnJYeEduWFRMV3huMDdTR09iaVp4OHpEMDlQd3Ix
U2t3QjJycSt0UXZ6cUNVdS8KL0FNdll5dHl1V2g4KzNpblRQRCtvZUU5WVY0cnkydWZ0TmsrMGxY
SkdDb1BvUnlQZXZZUEErdnI0ZzhNVzF3WHpjeEtJcmdkdzQ3LwpBSTlmeHJXdjlJMDdWQW92N0cz
dWRuM1RMR0dLL1N1SDFYdzdyUGhiWEp0ZDhLUkNlM3VPYnZUejBKOVYvd0E1SHVLMm5XcDRxSEk5
CkpiK1YrdnBmOHlJd2xTZDkwVS9qS25sVzJqWHlIYk5GT3dWdS9RSCtZRlVmaWtSZWFYNGQ4U1cv
RzlSOHc3YmdIWCtUVkxkVzJ1L0UKTjdodFIwbVRUN2F6dFpEYnh1Q0MweEh5OVFNOUswOUk4TzN1
di9DaE5IMUNCcmU2ajNHMk1vd2VDU2hQb09TUHBXOEpSb1JwOHoxaQo5ZlJtY2s2amxaYVA5RHY3
RzZXKzArMnUwNVNlSlpCOUNNMXgvd0FXSUZtOERUT1NBMFUwYnI3bk9QNUUxei9oeng4M2hXd1hR
dkVkCmhkeFRXdnlSdXFaM0tPZy8rdUtsdlA3UitJOXRlM0RXOHRycE5yQTdXc2JjTk5OZzdTZllW
ejA4Tk9qV1U1YVJUMzdta3FxbkRsVzcKTGZoelNJUEYvd0FKYlhUcFdDeVI3MWprNjdIVmpnL2tS
K0JySjB2eG5yWGdlMy9zYlh0Sm1uU0Q1WUprT01qc005Q0sxUGd6Y3UvaAo2K3RtVmdzZHh2VWtj
RU1vSEg0cit0ZWtNaXRqY29PUFVVVjZxcFZaMHB4NW8zdUZPSE5DTTR1enNlWWVGSTliOFUrTlc4
VDNrVTFuCllSSnRpanlRSEdNQWU0NUpKcC93cEF0dFY4VDJYZUs1WEg0TTQvcFhwMWNmNGM4TFgy
amVMOWMxU1NTQTJkK3hkRVFuY0NXM2NqR08KNXFYaVZVaE5QVFJXWG95dlpPTW92ZmU1c2VLMTNl
RWRZQTcyY3Y4QTZBYThvOExhSEpyM3dzMWUyZ1hkY1Izbm14ajFJUmVQeEdhOQptMUcwKzM2WmQy
ZTdaOW9oZUxkak9OeWtaL1dzTHdWNFRQaEhUSjdScndYWG5UZWJ1RWV6SEFHT3A5S21oaUZTb3RK
KzlkTkRxVTNPCmE3V1p5M3d2OFYyY1drLzJKcUU2Vzl6YnVmTEVwMjdnVDA1N2owcnJQRUhqWFJ0
QXNubGt1NHBwOGZ1NEluRE14L0RvS3I2NzhQTkEKMTY0YTRtZ2FDNGI3MGtCMjd2Y2pwVkxUdmhU
NGJzSjFtZExpN1pUa0xPNEsva0FLcWNzTFVuN1dWMWZkZjhFbUtyUlhLcmVwMFBocgpYUDhBaEl0
RmkxSDdKTGJDVEkyU2Q4ZHg2aXRlbW9pUnhxaUtGUlJoVlVZQUZPcmhtMDVOeFZrZENUUzFIRHBS
UU9sRlNNVEZHS0tLCkFERkdLS0tBREZHS0tLQURGR0tLS0FERkdLS0tBREZHS0tLQUk1YmFDYi9X
d3h5Zjc2ZzA5WTFWUXFnQlFNQUFjVVVVWEFaRGJ3MjgKWWpoalNOQjBWRkFBcVRGRkZBQmlqRkZG
QUJpakZGRkFCaWpGRkZBQmlqRkZGQUMwVVVVQWYvL1oKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30712</attachid>
            <date>2009-05-27 11:37:56 -0700</date>
            <delta_ts>2009-05-27 12:24:36 -0700</delta_ts>
            <desc>patch for test of this issue</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9648</size>
            <attacher name="johnnyding">johnnyding.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ0MTk0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDUt
MjcgIEpvaG5ueSBEaW5nICA8am9obm55ZGluZy53ZWJraXRAZ21haWwuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3NDcKKworICAgICAgICBBZGQgYSB0ZXN0IGNhc2UgZm9y
IG11bHRpcGxlIHJlcXVlc3RzIGZvciBzYW1lIHN1Yi1yZXNvdXJjZSBkdWUgdG8gcHJlbG9hZC4K
KworICAgICAgICAqIGh0dHBcdGVzdHNcbG9hZGluZ1xwcmVsb2FkLWltZy10ZXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cFx0ZXN0c1xsb2FkaW5nXHByZWxvYWQtaW1nLXRl
c3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cFx0ZXN0c1xsb2FkaW5nXHJlc291cmNlc1xw
cmVsb2FkLXRlc3QuanBnOiBBZGRlZC4KKyAgICAgICAgKiBodHRwXHRlc3RzXHJlc291cmNlc1xu
ZXR3b3JrLXNpbXVsYXRvci5waHA6CisKIDIwMDktMDUtMjcgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRl
eDogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACittYWluIGZyYW1lIC0gZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRG
b3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUKKworVGhpcyB0ZXN0IGlzIHRvIHRlc3Qgd2hldGhlciBwcmVsb2Fk
IGltYWdlIHdpbGwgcmVxdWlyZSAyIG1vcmUgcmVxdWVzdHMgb3Igbm90LgorCitQQVNTRUQKSW5k
ZXg6IGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtaW1nLXRlc3QuaHRtbAkocmV2aXNpb24gMCkK
KysrIGh0dHAvdGVzdHMvbG9hZGluZy9wcmVsb2FkLWltZy10ZXN0Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgPHNjcmlw
dD4KKyAgZnVuY3Rpb24gQ2FsbENvbW1hbmQoY21kKQorICB7CisgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICAgICAgICAgcmVxLm9wZW4o
IkdFVCIsICIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyBjbWQs
IGZhbHNlKTsKKyAgICAgICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAgICAgICAgIHJldHVybiBy
ZXEucmVzcG9uc2VUZXh0OworICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICB9CisgICB9CisgICAKKyAgIGZ1bmN0aW9uIHRlc3QoKQorICAgeworICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgfQorICAgfQorCisgICBmdW5jdGlvbiBjaGVj
a0FjY2Vzc0NvdW50KCkKKyAgIHsKKyAgICAgICAvLyBHZXQgdGhlIGFjY2VzcyBjb3VudCBvZiBy
ZXNvdXJjZTovbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZy4gU2hvdWxkIGJlIDEu
CisgICAgICAgdmFyIGNvdW50ID0gQ2FsbENvbW1hbmQoImdldC1yZXNvdXJjZS1jb3VudCZwYXRo
PS9sb2FkaW5nL3Jlc291cmNlcy9wcmVsb2FkLXRlc3QuanBnIik7CisgICAgICAgY291bnQgPSBw
YXJzZUludChjb3VudCwgMTApOworICAgICAgIGlmIChjb3VudCA9PSAxKQorICAgICAgICAgICBj
aGVja05vdGlmeURvbmUoKTsKKyAgICAgICBlbHNlCisgICAgICAgICAgIGltZ19lcnJvcigpOwor
ICAgfQorCisgICBmdW5jdGlvbiBpbWdfZXJyb3IoKQorICAgeworICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXRQYW5lbCIpLmlubmVySFRNTCA9ICJGQUxJRUQiOworICAgICAg
IGNoZWNrTm90aWZ5RG9uZSgpOworICAgfQorCisgICBmdW5jdGlvbiBjaGVja05vdGlmeURvbmUo
KSB7CisgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgfQorICAgLy8gUmVzZXQgcmVz
b3VyY2UgY291bnQgICAKKyAgIENhbGxDb21tYW5kKCJyZXNldC1yZXNvdXJjZS1jb3VudCIpOwor
ICA8L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvZW1wdHkuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCki
PgorICA8aW1nIGlkID0idGVzdF9pbWFnZSIgc3JjPSIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxh
dG9yLnBocD9jb21tYW5kPWluY3JlYXNlLXJlc291cmNlLWNvdW50JnBhdGg9L2xvYWRpbmcvcmVz
b3VyY2VzL3ByZWxvYWQtdGVzdC5qcGciIG9uZXJyb3I9ImltZ19lcnJvcigpIiBvbmxvYWQ9InNl
dFRpbWVvdXQoY2hlY2tBY2Nlc3NDb3VudCwgMzAwMCkiPgorICA8cD5UaGlzIHRlc3QgaXMgdG8g
dGVzdCB3aGV0aGVyIHByZWxvYWQgaW1hZ2Ugd2lsbCByZXF1aXJlIDIgbW9yZSByZXF1ZXN0cyBv
ciBub3QuPC9wPgorICA8c3BhbiBpZD0ib3V0cHV0UGFuZWwiPlBBU1NFRDwvc3Bhbj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IGh0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9y
LnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBodHRwL3Rlc3RzL3Jlc291cmNlcy9uZXR3b3JrLXNpbXVsYXRv
ci5waHAJKHJldmlzaW9uIDQ0MTkyKQorKysgaHR0cC90ZXN0cy9yZXNvdXJjZXMvbmV0d29yay1z
aW11bGF0b3IucGhwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3OCBAQCBmdW5jdGlvbiBj
b250ZW50VHlwZSgkcGF0aCkKICAgICByZXR1cm4gInRleHQvcGxhaW4iOwogfQogCitmdW5jdGlv
biBnZW5lcmF0ZU5vQ2FjaGVIVFRQSGVhZGVyKCkKK3sKKyAgICBoZWFkZXIoIkV4cGlyZXM6IFRo
dSwgMDEgRGVjIDIwMDMgMTY6MDA6MDAgR01UIik7CisgICAgaGVhZGVyKCJDYWNoZS1Db250cm9s
OiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSIpOworICAgIGhlYWRlcigiUHJh
Z21hOiBuby1jYWNoZSIpOworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVJlc3BvbnNlKCRwYXRoKQor
eworICAgICRzdGF0ZSA9IGdldFN0YXRlKCRzdGF0ZUZpbGUpOworICAgIGlmICgkc3RhdGUgPT0g
Ik9mZmxpbmUiKSB7CisgICAgICAgIGhlYWRlcignSFRUUC8xLjEgMzA3IFRlbXBvcmFyeSBSZWRp
cmVjdCcpOworICAgICAgICAjIFNpbXVsYXRlIGEgbmV0d29yayBlcnJvciBieSByZWRpcmVjdGlu
ZyB0byBzZWxmLgorICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJF9TRVJWRVJbJ1JFUVVF
U1RfVVJJJ10pOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgbGl0dGxlIHNlY3VydXR5IGNo
ZWNraW5nIGNhbid0IGh1cnQuCisgICAgICAgIGlmIChzdHJzdHIoJHBhdGgsICIuLiIpKQorICAg
ICAgICAgICAgZXhpdDsKKworICAgICAgICBpZiAoJHBhdGhbMF0gPT0gJy8nKQorICAgICAgICAg
ICAgJHBhdGggPSAnLi4nIC4gJHBhdGg7CisKKyAgICAgICAgZ2VuZXJhdGVOb0NhY2hlSFRUUEhl
YWRlcigpOyAgICAKKworICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHBhdGgpKSB7CisgICAgICAg
ICAgICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIgLiBnbWRhdGUoIkQsIGQgTSBZIEg6aTpzIFQi
LCBmaWxlbXRpbWUoJHBhdGgpKSk7CisgICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTog
IiAuIGNvbnRlbnRUeXBlKCRwYXRoKSk7CisgICAgICAgIAorICAgICAgICAgICAgcHJpbnQgZmls
ZV9nZXRfY29udGVudHMoJHBhdGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaGVh
ZGVyKCdIVFRQLzEuMSA0MDQgTm90IEZvdW5kJyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGhhbmRsZUluY3JlYXNlUmVzb3VyY2VDb3VudENvbW1hbmQoJHBhdGgpCit7CisgICAg
JHJlc291cmNlQ291bnRGaWxlID0gc3lzX2dldF90ZW1wX2RpcigpIC4gIi9yZXNvdXJjZS1jb3Vu
dCI7CisgICAgJHJlc291cmNlQ291bnQgPSBnZXRTdGF0ZSgkcmVzb3VyY2VDb3VudEZpbGUpOwor
ICAgICRwaWVjZXMgPSBleHBsb2RlKCIgIiwgJHJlc291cmNlQ291bnQpOworICAgICRjb3VudCA9
IDA7CisgICAgaWYgKGNvdW50KCRwaWVjZXMpID09IDIgJiYgJHBpZWNlc1swXSA9PSAkcGF0aCkg
eworICAgICAgICAkY291bnQgPSAxICsgJHBpZWNlc1sxXTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAkY291bnQgPSAxOworICAgIH0KKyAgICBmaWxlX3B1dF9jb250ZW50cygkcmVzb3VyY2VDb3Vu
dEZpbGUsICRwYXRoIC4gIiAiIC4gJGNvdW50KTsKKyAgICBnZW5lcmF0ZVJlc3BvbnNlKCRwYXRo
KTsKK30KKworZnVuY3Rpb24gaGFuZGxlUmVzZXRSZXNvdXJjZUNvdW50Q29tbWFuZCgpCit7Cisg
ICAgJHJlc291cmNlQ291bnRGaWxlID0gc3lzX2dldF90ZW1wX2RpcigpIC4gIi9yZXNvdXJjZS1j
b3VudCI7CisgICAgZmlsZV9wdXRfY29udGVudHMoJHJlc291cmNlQ291bnRGaWxlLCAwKTsKKyAg
ICBnZW5lcmF0ZU5vQ2FjaGVIVFRQSGVhZGVyKCk7CisgICAgaGVhZGVyKCdIVFRQLzEuMSAyMDAg
T0snKTsKK30KKworZnVuY3Rpb24gaGFuZGxlR2V0UmVzb3VyY2VDb3VudENvbW1hbmQoJHBhdGgp
Cit7CisgICAgJHJlc291cmNlQ291bnRGaWxlID0gc3lzX2dldF90ZW1wX2RpcigpIC4gIi9yZXNv
dXJjZS1jb3VudCI7CisgICAgJHJlc291cmNlQ291bnQgPSBnZXRTdGF0ZSgkcmVzb3VyY2VDb3Vu
dEZpbGUpOworICAgICRwaWVjZXMgPSBleHBsb2RlKCIgIiwgJHJlc291cmNlQ291bnQpOworICAg
IGdlbmVyYXRlTm9DYWNoZUhUVFBIZWFkZXIoKTsKKyAgICBoZWFkZXIoJ0hUVFAvMS4xIDIwMCBP
SycpOworICAgIGlmIChjb3VudCgkcGllY2VzKSA9PSAyICYmICRwaWVjZXNbMF0gPT0gJHBhdGgp
IHsKKyAgICAgICAgZWNobyAkcGllY2VzWzFdOworICAgIH0gZWxzZSB7CisgICAgICAgIGVjaG8g
MDsKKyAgICB9Cit9CisKICRzdGF0ZUZpbGUgPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAiL25ldHdv
cmstc2ltdWxhdG9yLXN0YXRlIjsKICRjb21tYW5kID0gJF9HRVRbJ2NvbW1hbmQnXTsKIGlmICgk
Y29tbWFuZCkgewpAQCAtNTQsMzYgKzEyNiwxNyBAQCBpZiAoJGNvbW1hbmQpIHsKICAgICAgICAg
c2V0U3RhdGUoIk9ubGluZSIsICRzdGF0ZUZpbGUpOwogICAgIGVsc2UgaWYgKCRjb21tYW5kID09
ICJkaXNjb25uZWN0IikKICAgICAgICAgc2V0U3RhdGUoIk9mZmxpbmUiLCAkc3RhdGVGaWxlKTsK
KyAgICBlbHNlIGlmICgkY29tbWFuZCA9PSAiaW5jcmVhc2UtcmVzb3VyY2UtY291bnQiKQorICAg
ICAgICBoYW5kbGVJbmNyZWFzZVJlc291cmNlQ291bnRDb21tYW5kKCRfR0VUWydwYXRoJ10pOwor
ICAgIGVsc2UgaWYgKCRjb21tYW5kID09ICJyZXNldC1yZXNvdXJjZS1jb3VudCIpCisgICAgICAg
IGhhbmRsZVJlc2V0UmVzb3VyY2VDb3VudENvbW1hbmQoKTsKKyAgICBlbHNlIGlmICgkY29tbWFu
ZCA9PSAiZ2V0LXJlc291cmNlLWNvdW50IikKKyAgICAgICAgaGFuZGxlR2V0UmVzb3VyY2VDb3Vu
dENvbW1hbmQoJF9HRVRbJ3BhdGgnXSk7CiAgICAgZWxzZQogICAgICAgICBlY2hvICJVbmtub3du
IGNvbW1hbmQ6ICIgLiAkY29tbWFuZCAuICJcbiI7CiAgICAgZXhpdCgpOwogfQogCiAkcmVxdWVz
dGVkUGF0aCA9ICRfR0VUWydwYXRoJ107Ci0kc3RhdGUgPSBnZXRTdGF0ZSgkc3RhdGVGaWxlKTsK
LWlmICgkc3RhdGUgPT0gIk9mZmxpbmUiKSB7Ci0gICAgaGVhZGVyKCdIVFRQLzEuMSAzMDcgVGVt
cG9yYXJ5IFJlZGlyZWN0Jyk7Ci0gICAgIyBTaW11bGF0ZSBhIG5ldHdvcmsgZXJyb3IgYnkgcmVk
aXJlY3RpbmcgdG8gc2VsZi4KLSAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJF9TRVJWRVJbJ1JF
UVVFU1RfVVJJJ10pOwotfSBlbHNlIHsKLSAgICAvLyBBIGxpdHRsZSBzZWN1cnV0eSBjaGVja2lu
ZyBjYW4ndCBodXJ0LgotICAgIGlmIChzdHJzdHIoJHJlcXVlc3RlZFBhdGgsICIuLiIpKQotICAg
ICAgICBleGl0OwotCi0gICAgaWYgKCRyZXF1ZXN0ZWRQYXRoWzBdID09ICcvJykKLSAgICAgICAg
JHJlcXVlc3RlZFBhdGggPSAnLi4nIC4gJHJlcXVlc3RlZFBhdGg7Ci0KLSAgICBoZWFkZXIoIkV4
cGlyZXM6IFRodSwgMDEgRGVjIDIwMDMgMTY6MDA6MDAgR01UIik7Ci0gICAgaGVhZGVyKCJDYWNo
ZS1Db250cm9sOiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSIpOwotICAgIGhl
YWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOwotCi0gICAgaWYgKGZpbGVfZXhpc3RzKCRyZXF1ZXN0
ZWRQYXRoKSkgewotICAgICAgICBoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIgLiBnbWRhdGUoIkQs
IGQgTSBZIEg6aTpzIFQiLCBmaWxlbXRpbWUoJHJlcXVlc3RlZFBhdGgpKSk7Ci0gICAgICAgIGhl
YWRlcigiQ29udGVudC1UeXBlOiAiIC4gY29udGVudFR5cGUoJHJlcXVlc3RlZFBhdGgpKTsKLSAg
ICAKLSAgICAgICAgcHJpbnQgZmlsZV9nZXRfY29udGVudHMoJHJlcXVlc3RlZFBhdGgpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDA0IE5vdCBGb3VuZCcpOwotICAg
IH0KLX0KK2dlbmVyYXRlUmVzcG9uc2UoJHJlcXVlc3RlZFBhdGgpOwogPz4KSW5kZXg6IGh0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZXMvcHJlbG9hZC10ZXN0LmpwZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBodHRwL3Rlc3Rz
L2xvYWRpbmcvcmVzb3VyY2VzL3ByZWxvYWQtdGVzdC5qcGcKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKLzlqLzRBQVFTa1pKUmdB
QkFRRUFZQUJnQUFELzRRQWlSWGhwWmdBQVNVa3FBQWdBQUFBQkFBQlJCQUFCQUFBQUFBQUFBQUFB
QUFELwoyd0JEQUFnR0JnY0dCUWdIQndjSkNRZ0tEQlFOREFzTERCa1NFdzhVSFJvZkhoMGFIQndn
SkM0bklDSXNJeHdjS0RjcExEQXhORFEwCkh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdO
RFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXkKTWpJeU1qSXlNakl5
TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FBd0FDUURBU0lBQWhFQkF4RUIvOFFBSHdBQUFRVUJB
UUVCQVFFQQpBQUFBQUFBQUFBRUNBd1FGQmdjSUNRb0wvOFFBdFJBQUFnRURBd0lFQXdVRkJBUUFB
QUY5QVFJREFBUVJCUkloTVVFR0UxRmhCeUp4CkZES0JrYUVJSTBLeHdSVlMwZkFrTTJKeWdna0tG
aGNZR1JvbEppY29LU28wTlRZM09EazZRMFJGUmtkSVNVcFRWRlZXVjFoWldtTmsKWldabmFHbHFj
M1IxZG5kNGVYcURoSVdHaDRpSmlwS1RsSldXbDVpWm1xS2pwS1dtcDZpcHFyS3p0TFcydDdpNXVz
TER4TVhHeDhqSgp5dExUMU5YVzE5aloydUhpNCtUbDV1Zm82ZXJ4OHZQMDlmYjMrUG42LzhRQUh3
RUFBd0VCQVFFQkFRRUJBUUFBQUFBQUFBRUNBd1FGCkJnY0lDUW9MLzhRQXRSRUFBZ0VDQkFRREJB
Y0ZCQVFBQVFKM0FBRUNBeEVFQlNFeEJoSkJVUWRoY1JNaU1vRUlGRUtSb2JIQkNTTXoKVXZBVllu
TFJDaFlrTk9FbDhSY1lHUm9tSnlncEtqVTJOemc1T2tORVJVWkhTRWxLVTFSVlZsZFlXVnBqWkdW
bVoyaHBhbk4wZFhaMwplSGw2Z29PRWhZYUhpSW1La3BPVWxaYVhtSm1hb3FPa3BhYW5xS21xc3JP
MHRiYTN1TG02d3NQRXhjYkh5TW5LMHRQVTFkYlgyTm5hCjR1UGs1ZWJuNk9ucTh2UDA5ZmIzK1Bu
Ni85b0FEQU1CQUFJUkF4RUFQd0QySFJkRjBxWFF0UGtrMHl6ZDN0bzJabWdVa2txTWtuRlgKdjdD
MGYvb0ZXUDhBNERwL2hSb1gvSXZhWi8xNlJmOEFvQXJQOFdlTTlIOEdXTVZ6cTBzZ014S3d3eEx1
a2tJR1RnWkhUSTVKQTVIcgpXbEtsT3JOUXBxN2ZSQ2JTMVpvZjJGby8vUUtzZi9BZFA4SzVMUjlU
dlBDZG5ZblZaM24wQzhpUjQ3eVE1Tmk3QUVwSWYrZVdUdzM4CkhmNVA5WHBlRVBpSG9QalY1b3RN
ZWVPNWhYZTl2Y0lGZmJuRzRZSkJHY2REeGtldFo5eHAvanlHQnROdG44UFhPbklnaWpNOW5KdVoK
QU1EZCsrSFAwQTVwMXFGU2hOMDZzV211akJOTlhSM2RGZk9tdS9FWHhuOEtyMkx3Mnk2UmR4aUlU
d3JKQkppM1JpUUlseEpuYU5wSQpCSndEZ1lBQUJXUXozdlF2K1JlMHovcjBpLzhBUUJYbnZ4Y1h3
YnFac3ROOFE2NUxwZW93STA5czZXMGtvMk9kcHlGR0NDVTlRZmw5CjY5QzBML2tYdE0vNjlJdi9B
RUFWeTN4aVVINFdhd1NBU3BnSXlPaDg1SzlIS1pXeHROWGFiYVYwMG1yNmRVKysxdFNLbndzNWo0
UTYKWDROMDdXYnYreGZFTXVyNnMxc2Q1TnBKQXFRNzF6Z01NZGRuY25qanZYc0ZmT1h3Qi81SHUr
LzdCa24vQUtOaXI2TnJzNGpvdWxqNQpSY25MUmF1MS93QUVsK0JORjNpZkxIN1EzL0pTWXY4QXNI
eGYraFBSUiswTi93QWxKaS83QjhYL0FLRTlGZUVhbjB2b1gvSXZhWi8xCjZSZitnQ3VkOGMrRE5X
OFl4TlpSZUpUcCtseVJvczFtTEpaZk1kV0xidCs0TVA0ZU9ueSs5TTBmNGhlRG9ORXNJWmZFMmxw
SkhiUnEKeW01WElJVUFqclYzL2hZL2d2OEE2R2pTdi9BbGY4YTJ3K0lxWWVvcWxQZGJYU2Y1cGlh
VFZtY1ZvSHdaMWJ3eHFEWDJqK05EYTNMUgptSm5HbUsrVkpCSXd6a2RRUHlyMTJ1WC9BT0ZqK0Mv
K2hvMHIvd0FDVi94by93Q0ZqK0MvK2hvMHIvd0pYL0d0Y1pqcStNa3AxM2RyCnJaSi9nbGY1aWpG
UjJQQVAyaHYrU2t4ZjlnK0wvd0JDZWlxWHh5MWZUZGI4ZXhYbWwzMXZlMi8yR05QTmdrRHJ1RFBr
WkhlaXVRby8KLzlrPQoK
</data>
<flag name="review"
          id="15566"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>