<?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>67628</bug_id>
          
          <creation_ts>2011-09-05 22:23:18 -0700</creation_ts>
          <short_desc>PrettyPatch should handle delta patch mechanism in git binary patches</short_desc>
          <delta_ts>2011-09-14 21:07:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67631</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Wells">benwells</reporter>
          <assigned_to name="Ben Wells">benwells</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>davidbarr</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>mikelawther</cc>
    
    <cc>mrowe</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>462363</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-05 22:23:18 -0700</bug_when>
    <thetext>PrettyPatch doesn&apos;t handle delta patch mechanism in git binary patches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462365</commentid>
    <comment_count>1</comment_count>
      <attachid>106389</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-05 22:37:22 -0700</bug_when>
    <thetext>Created attachment 106389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462369</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-05 22:51:17 -0700</bug_when>
    <thetext>Link to mail archive where delta patch mechanism is mentioned: http://marc.info/?l=git&amp;m=114682417113315&amp;w=2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462374</commentid>
    <comment_count>3</comment_count>
      <attachid>106389</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-09-05 23:25:46 -0700</bug_when>
    <thetext>Comment on attachment 106389
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462392</commentid>
    <comment_count>4</comment_count>
      <attachid>106389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-06 00:25:20 -0700</bug_when>
    <thetext>Comment on attachment 106389
Patch

Clearing flags on attachment: 106389

Committed r94554: &lt;http://trac.webkit.org/changeset/94554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462393</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-06 00:25:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462416</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-06 01:05:08 -0700</bug_when>
    <thetext>This doesn&apos;t fix the problem when applied to the website.

Instead of getting &quot;Binary file, nothing to see here&quot; you get errors applying the patch. This worked locally when running webkit-patch upload, but not when deployed on the server. Will look more tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463066</commentid>
    <comment_count>7</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-06 18:57:56 -0700</bug_when>
    <thetext>I&apos;ve had a look into this and have some findings. 

Summary: as far as I can see, this can&apos;t be fixed. We can give better feedback.

Details: binary patch generation in git works like this:

GenerateBinaryPatch: 
    write a header to the patch for this file
    GenerateBinaryDiff(oldfile, newfile)
    GenerateBinaryDiff(newfile, oldfile)

GenerateBinaryDiff(fromfile, tofile):
    compress / encode tofile and see how big it is
    generate a compress / encoded delta between fromfile and tofile 
    if compressed delta is smaller than compressed tofile:
        write &apos;delta SIZE&apos;
        write the compressed delta
    else:
        write &apos;literal SIZE&apos;
        write the compressed tofile

(paraphrased from http://git.kernel.org/?p=git/git.git;a=blob;f=diff.c;h=fcc0078074c364d0a4c2bd75a6d390e517eb7f87;hb=HEAD)

Currently, if the to file uses literal and the from file uses delta, the file is recognized as an image but extracting the from file fails. This can be seen for LayoutTests/platform/chromium-win/fast/backgrounds/gradient-background-leakage-expected.png in attachment 106368

Recognising image files when the to file is delta makes these errors show up more.

Not much can be done if both use delta encoding as the files can&apos;t be extracted from deltas alone. A simple change is to print a better message if either file uses delta encoding. Ideally we would recognise if one is literal and the other is delta but this probably isn&apos;t worth it as the delta/delta case is more common.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463100</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-06 19:56:43 -0700</bug_when>
    <thetext>Can&apos;t we show the resulting file by applying to the version available at trac.webkit.org/browse?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463104</commentid>
    <comment_count>9</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-06 20:04:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Can&apos;t we show the resulting file by applying to the version available at trac.webkit.org/browse?

That would be good. I&apos;m unsure of the mechanics of this on the server; I&apos;ll dig around in those script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463108</commentid>
    <comment_count>10</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-06 20:24:19 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Can&apos;t we show the resulting file by applying to the version available at trac.webkit.org/browse?
&gt; 
&gt; That would be good. I&apos;m unsure of the mechanics of this on the server; I&apos;ll dig around in those script.

The PrettyPatch.rb script could be made to download the &apos;from&apos; file to a temp location (using the open-uri import) and apply the delta to that. That should work. Would there be any problem doing this locally, e.g. when running webkit-patch upload? If so it could not do this if you&apos;re in a git repo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463109</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-06 20:27:54 -0700</bug_when>
    <thetext>I think the original dream was to do this all in JavaScript.  I don&apos;t know how tenable such a dream is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463288</commentid>
    <comment_count>12</comment_count>
      <attachid>106569</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-07 04:41:43 -0700</bug_when>
    <thetext>Created attachment 106569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463297</commentid>
    <comment_count>13</comment_count>
      <attachid>106571</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-07 04:58:55 -0700</bug_when>
    <thetext>Created attachment 106571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463300</commentid>
    <comment_count>14</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-07 05:02:34 -0700</bug_when>
    <thetext>This is my first Ruby coding, so there are probably some dumb things in there. Doing this in javascript sounds difficult, although if you could keep the git apply stuff in cgi-land it might be a lot simpler.

If this is r+, I will put it through the cq tomorrow Sydney time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463367</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-07 08:42:14 -0700</bug_when>
    <thetext>Maybe we should be downloading files from svn.webkit.org instead of trac.webkit.org?

CCing Mark Rowe, who knows a lot more about Ruby than I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463785</commentid>
    <comment_count>16</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-07 17:10:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Maybe we should be downloading files from svn.webkit.org instead of trac.webkit.org?

I can use something like this instead if it is preferable: http://svn.webkit.org/repository/webkit/!svn/bc/93233/trunk/....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464564</commentid>
    <comment_count>17</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-08 18:38:34 -0700</bug_when>
    <thetext>Any more feedback? Would be great to get this reviewed as it is making rebaselining from a git checkout and going through the cq pretty painful.

Also, I meant to ask explicitly: should i use svn.webkit.org or trac.webkit.org? Either way the URL is just a constant; if svn.webkit.org is preferable let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464594</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-08 19:17:06 -0700</bug_when>
    <thetext>aroben is probably your best reviewer for this patch.

I would use svn.webkit.org.  It&apos;s the horse&apos;s mouth, so to speak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464635</commentid>
    <comment_count>19</comment_count>
      <attachid>106839</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-08 21:31:15 -0700</bug_when>
    <thetext>Created attachment 106839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464636</commentid>
    <comment_count>20</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-08 21:32:25 -0700</bug_when>
    <thetext>Updated to use svn.webkit.org.

You can see the output of this version of PrettyPatch.rb (and the problem without it) at bug 67830.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464654</commentid>
    <comment_count>21</comment_count>
      <attachid>106839</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2011-09-08 22:41:02 -0700</bug_when>
    <thetext>Comment on attachment 106839
Patch

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

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:713
&gt; +        def self.extract_contents_from_git_binary_delta_chunk(from_filepath, from_git_index, encoded_chunk, to_git_index)

Maybe we can add a helper function for this and download_from_revision_from_svn ? They look very similar.

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:721
&gt; +                    file &lt;&lt; open(from_filepath).read

The opened file is not closed here? Maybe

file &lt;&lt; open(from_filepath){|f|f.read}

or something like this. (with recent ruby (&gt;=1.8.7) we can do the same thing by open(from_filepath, &amp;:read), but the above way would be safer considering older interpreters)

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:723
&gt; +                    file.close

I think we don&apos;t need this begin-ensure because Kernel#open should close the file automatically even if an exception is raised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464675</commentid>
    <comment_count>22</comment_count>
      <attachid>106845</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-09 00:21:14 -0700</bug_when>
    <thetext>Created attachment 106845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464677</commentid>
    <comment_count>23</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-09 00:23:37 -0700</bug_when>
    <thetext>Updated per Hamaji&apos;s feedback - factored out temp filename and file copying. Looks much nicer now, hope I got the file copy stuff correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464755</commentid>
    <comment_count>24</comment_count>
      <attachid>106845</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-09 06:01:56 -0700</bug_when>
    <thetext>Comment on attachment 106845
Patch

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

It would be nice if we could avoid touching the disk. Is there a way to run git-apply on stdin?

&gt; Websites/bugs.webkit.org/ChangeLog:14
&gt; +        When reconstructing the images from the patches, if we have a delta patch
&gt; +        we may download the previous revision from trac to get the image data.

&quot;from trac&quot; is no longer accurate.

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:23
&gt; +        $git_svn_revision = 0

This is just a Subversion revision number. It has nothing to do with Git (even though it&apos;s only present for git patches). I&apos;d just call it $svn_revision.

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:672
&gt; +                to_file &lt;&lt; open(from_path) { |from_file| from_file.read}

Missing a space before }

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:678
&gt; +            svn_uri =  get_svn_uri(repository_path)

Extra space after =

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:719
&gt; +            # For literal encoded, simply reconstruct. For delta encoded, download from svn

Missing a period at the end of this comment.

&gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:723
&gt; +            if (GIT_LITERAL_FORMAT.match(encoded_chunk[0])) then
&gt; +                return extract_contents_from_git_binary_literal_chunk(encoded_chunk, git_index)
&gt; +            elsif (GIT_DELTA_FORMAT.match(encoded_chunk[0])) then
&gt; +                return download_from_revision_from_svn(repository_path)

Ruby, like Python, typically omits parentheses around conditionals like these.

WebKit coding style says not to say &quot;else&quot; after &quot;return&quot;. So these could both just be &quot;if&quot;s. No need for &quot;elsif&quot;.

Like in Perl, you can use syntax like this:

return extract_contents_from_git_binary_literal_chunk(encoded_chunk, git_index) if GIT_LITERAL_FORMAT.match(encoded_chunk[0])
return download_from_revision_from_svn(repository_path) if GIT_DELTA_FORMAT.match(encoded_chunk[0])

That might be clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465437</commentid>
    <comment_count>25</comment_count>
      <attachid>107012</attachid>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-11 18:34:26 -0700</bug_when>
    <thetext>Created attachment 107012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465439</commentid>
    <comment_count>26</comment_count>
    <who name="Ben Wells">benwells</who>
    <bug_when>2011-09-11 18:43:39 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; It would be nice if we could avoid touching the disk. Is there a way to run git-apply on stdin?

git-apply takes the patch on stdin. It&apos;s also hard coded to output to disk as far as I can see. I&apos;ve updated the way git-apply is used for the delta patches so that it doesn&apos;t require a disk copy before calling git-apply; now the disk is used for delta patches the same way as for literal patches.

The only way I can see to avoid touching disk is to use some sort of RAM disk or virtual disk on the server, but I think that&apos;s an orthogonal thing.

BTW, something which has snuck in with this change is that the tmp files should be cleaned up now; there is a bug in the current version of PrettyPatch where the filename was used in the erase instead of the filepath so the tmp files hang around (line 660).

&gt; &quot;from trac&quot; is no longer accurate.

Fixed.

&gt; &gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:23
&gt; &gt; +        $git_svn_revision = 0
&gt; 
&gt; This is just a Subversion revision number. It has nothing to do with Git (even though it&apos;s only present for git patches). I&apos;d just call it $svn_revision.

Renamed.

&gt; &gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:672
&gt; &gt; +                to_file &lt;&lt; open(from_path) { |from_file| from_file.read}
&gt; 
&gt; Missing a space before }

Fixed.

&gt; &gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:678
&gt; &gt; +            svn_uri =  get_svn_uri(repository_path)
&gt; 
&gt; Extra space after =

Fixed.

&gt; &gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:719
&gt; &gt; +            # For literal encoded, simply reconstruct. For delta encoded, download from svn
&gt; 
&gt; Missing a period at the end of this comment.
&gt; 
&gt; &gt; Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb:723
&gt; &gt; +            if (GIT_LITERAL_FORMAT.match(encoded_chunk[0])) then
&gt; &gt; +                return extract_contents_from_git_binary_literal_chunk(encoded_chunk, git_index)
&gt; &gt; +            elsif (GIT_DELTA_FORMAT.match(encoded_chunk[0])) then
&gt; &gt; +                return download_from_revision_from_svn(repository_path)
&gt; 
&gt; Ruby, like Python, typically omits parentheses around conditionals like these.
&gt; 
&gt; WebKit coding style says not to say &quot;else&quot; after &quot;return&quot;. So these could both just be &quot;if&quot;s. No need for &quot;elsif&quot;.
&gt; 
&gt; Like in Perl, you can use syntax like this:
&gt; 
&gt; return extract_contents_from_git_binary_literal_chunk(encoded_chunk, git_index) if GIT_LITERAL_FORMAT.match(encoded_chunk[0])
&gt; return download_from_revision_from_svn(repository_path) if GIT_DELTA_FORMAT.match(encoded_chunk[0])
&gt; 
&gt; That might be clearer.

I&apos;ve removed the elsif, but haven&apos;t used the return X if Y construct as I thought the lines got too long (&gt;160 characters for the to file / delta case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467584</commentid>
    <comment_count>27</comment_count>
      <attachid>107012</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-14 21:07:46 -0700</bug_when>
    <thetext>Comment on attachment 107012
Patch

Clearing flags on attachment: 107012

Committed r95159: &lt;http://trac.webkit.org/changeset/95159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467585</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-14 21:07:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106389</attachid>
            <date>2011-09-05 22:37:22 -0700</date>
            <delta_ts>2011-09-07 04:41:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110906153719.patch</filename>
            <type>text/plain</type>
            <size>4253</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1MzkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDVjYzFiMzNhYzcyYmZjZDVjMThhNzA2ODI4ZjUyNWMzNGQ1NDQxODkuLmZkZWQxMTRjYmI3
YTMyYWQwYTIwMGExZjg2MDY0OGI0MDY1MWVhMjMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA5LTA1ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIFNlZSB0aGlzIGVtYWlsIGZyb20gdGhlIGdpdCBtYWlsaW5nIGxpc3QgYXJj
aGl2ZSBmb3IgaW5mbworICAgICAgICBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExNDY4MjQx
NzExMzMxNSZ3PTIKKworICAgICAgICBXaGVuIGRldGVybWluaW5nIGlmIGEgYmluYXJ5IGZpbGUg
cGF0Y2ggaXMgYW4gaW1hZ2Ugb3Igbm90IHdlIHNob3VsZCBhY2NlcHQKKyAgICAgICAgYm90aCBs
aXRlcmFsIGFuZCBkZWx0YSBwYXRjaCBlbmNvZGluZ3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoK
KyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA2LTMw
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5
UGF0Y2gvUHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0
Y2gvUHJldHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5ZTcyNmUxMDAyMmFi
NzMxMWU2OC4uMWFkMTIwZDMzODc4MTIzNzBkNmI2MzU5ZjBjZDM3ZWFmOGY2YjNkOSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoLnJi
CisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5y
YgpAQCAtMTMsNyArMTMsNyBAQCBwdWJsaWMKIAogICAgIGRlZiBzZWxmLnByZXR0aWZ5KHN0cmlu
ZykKICAgICAgICAgJGxhc3RfcHJldHRpZnlfZmlsZV9jb3VudCA9IC0xCi0gICAgICAgICRsYXN0
X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7ICJyZW1vdmUiID0+IDAsICJhZGQiID0+IDAsICJzaGFy
ZWQiID0+IDAgfQorICAgICAgICAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50ID0geyAicmVtb3Zl
IiA9PiAwLCAiYWRkIiA9PiAwLCAic2hhcmVkIiA9PiAwLCAiYmluYXJ5IiA9PiAwIH0KICAgICAg
ICAgc3RyaW5nID0gbm9ybWFsaXplX2xpbmVfZW5kaW5nKHN0cmluZykKICAgICAgICAgZmlsZURp
ZmZzID0gRmlsZURpZmYucGFyc2Uoc3RyaW5nKQogCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGUK
IAogICAgIEdJVF9CSU5BUllfRklMRV9NQVJLRVJfRk9STUFUID0gL15HSVQgYmluYXJ5IHBhdGNo
JC8KIAotICAgIEdJVF9MSVRFUkFMX0ZPUk1BVCA9IC9ebGl0ZXJhbCBcZCskLworICAgIEdJVF9C
SU5BUllfUEFUQ0hfRk9STUFUID0gL14obGl0ZXJhbHxkZWx0YSkgXGQrJC8KIAogICAgIFNUQVJU
X09GX0JJTkFSWV9EQVRBX0ZPUk1BVCA9IC9eWzAtOWEtekEtWlwrXC89XXsyMCx9LyAjIEFzc3Vt
ZSAyMCBjaGFycyB3aXRob3V0IGEgc3BhY2UgaXMgYmFzZTY0IGJpbmFyeSBkYXRhLgogCkBAIC01
MDgsNyArNTA4LDcgQEAgRU9GCiAgICAgICAgICAgICAgICAgICAgIEBnaXRfaW5kZXhlcyA9IFsk
MSwgJDJdCiAgICAgICAgICAgICAgICAgd2hlbiBHSVRfQklOQVJZX0ZJTEVfTUFSS0VSX0ZPUk1B
VAogICAgICAgICAgICAgICAgICAgICBAYmluYXJ5ID0gdHJ1ZQotICAgICAgICAgICAgICAgICAg
ICBpZiAoR0lUX0xJVEVSQUxfRk9STUFULm1hdGNoKGxpbmVzW2kgKyAxXSkgYW5kIFByZXR0eVBh
dGNoLmhhc19pbWFnZV9zdWZmaXgoQGZpbGVuYW1lKSkgdGhlbgorICAgICAgICAgICAgICAgICAg
ICBpZiAoR0lUX0JJTkFSWV9QQVRDSF9GT1JNQVQubWF0Y2gobGluZXNbaSArIDFdKSBhbmQgUHJl
dHR5UGF0Y2guaGFzX2ltYWdlX3N1ZmZpeChAZmlsZW5hbWUpKSB0aGVuCiAgICAgICAgICAgICAg
ICAgICAgICAgICBAZ2l0X2ltYWdlID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnRPZlNlY3Rpb25zID0gaSArIDEKICAgICAgICAgICAgICAgICAgICAgZW5kCkBAIC01ODUsNiAr
NTg1LDcgQEAgRU9GCiAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIGVu
ZAogICAgICAgICAgICAgZWxzaWYgQGJpbmFyeSB0aGVuCisgICAgICAgICAgICAgICAgJGxhc3Rf
cHJldHRpZnlfcGFydF9jb3VudFsiYmluYXJ5Il0gKz0gMQogICAgICAgICAgICAgICAgIHN0ciAr
PSAiPHNwYW4gY2xhc3M9J3RleHQnPkJpbmFyeSBmaWxlLCBub3RoaW5nIHRvIHNlZSBoZXJlPC9z
cGFuPiIKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzdHIgKz0gQHNlY3Rpb25z
LmNvbGxlY3R7IHxzZWN0aW9ufCBzZWN0aW9uLnRvX2h0bWwgfS5qb2luKCI8YnI+XG4iKSB1bmxl
c3MgQHNlY3Rpb25zLm5pbD8KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9Q
cmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3Jn
L1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoX3Rlc3QucmIKaW5kZXggOGI3MTRjYjgxOGVlZDk1Yjg5
ZDg5ODkxYWZmMDY1OWIwMWMxM2EwMi4uZDMzODdjZjRhYzY1ODNkYzdhZDczM2Y5NGI4ODQ0YWE2
ODcwYWEwNiAxMDA3NTUKLS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNo
L1ByZXR0eVBhdGNoX3Rlc3QucmIKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0
eVBhdGNoL1ByZXR0eVBhdGNoX3Rlc3QucmIKQEAgLTI2LDYgKzI2LDcgQEAgY2xhc3MgUHJldHR5
UGF0Y2hfdGVzdCA8IFRlc3Q6OlVuaXQ6OlRlc3RDYXNlCiAgICAgICAgIDgwODUyID0+IFsiQ2hh
bmdlcyBvbmUgbGluZSBwbHVzIENoYW5nZUxvZyIsIDIsIDIsIDEsIDRdLAogICAgICAgICA4MzEy
NyA9PiBbIk9ubHkgYWRkIHN0dWZmIiwgMiwgMiwgMCwgM10sCiAgICAgICAgIDg1MDcxID0+IFsi
QWRkcyBhbmQgcmVtb3ZlcyBmcm9tIGEgZmlsZSBwbHVzIGdpdCBzaWduYXR1cmUiLCAyLCA1LCAz
LCA5XSwKKyAgICAgICAgMTA0NjMzID0+IFsiRGVsdGEgbWVjaGFuaXNtIGZvciBiaW5hcnkgcGF0
Y2ggaW4gZ2l0IGRpZmYiLCAxMiwgMywgNSwgM10sCiAgICAgfQogCiAgICAgZGVmIGdldF9wYXRj
aF91cmkoaWQpCkBAIC01Nyw2ICs1OCw3IEBAIGNsYXNzIFByZXR0eVBhdGNoX3Rlc3QgPCBUZXN0
OjpVbml0OjpUZXN0Q2FzZQogICAgICAgICBhc3NlcnRfZXF1YWwoaW5mb1tJbmZvOjpBRERdLCAk
bGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJhZGQiXSwgIldyb25nIG51bWJlciBvZiAnYWRkJyBw
YXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgICAgIGFzc2VydF9lcXVhbChpbmZvW0luZm86
OlJFTU9WRV0sICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbInJlbW92ZSJdLCAiV3JvbmcgbnVt
YmVyIG9mICdyZW1vdmUnIHBhcnRzIGluICIgKyBkZXNjcmlwdGlvbikKICAgICAgICAgYXNzZXJ0
X2VxdWFsKGluZm9bSW5mbzo6U0hBUkVEXSwgJGxhc3RfcHJldHRpZnlfcGFydF9jb3VudFsic2hh
cmVkIl0sICJXcm9uZyBudW1iZXIgb2YgJ3NoYXJlZCcgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9u
KQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwgJGxhc3RfcHJldHRpZnlfcGFydF9jb3VudFsiYmlu
YXJ5Il0sICJXcm9uZyBudW1iZXIgb2YgJ2JpbmFyeScgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9u
KQogICAgIGVuZAogCiAgICAgZGVmIHRlc3RfcGF0Y2hlcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106569</attachid>
            <date>2011-09-07 04:41:43 -0700</date>
            <delta_ts>2011-09-07 04:58:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110907214141.patch</filename>
            <type>text/plain</type>
            <size>13003</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1MzkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDVjYzFiMzNhYzcyYmZjZDVjMThhNzA2ODI4ZjUyNWMzNGQ1NDQxODkuLmQzOTJiNGIyZWVj
ZDAyYzVjNTg4N2MxOWFhMmI5NzhmMTI5NzRmMTIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTA1ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIFNlZSB0aGlzIGVtYWlsIGZyb20gdGhlIGdpdCBtYWlsaW5nIGxpc3QgYXJj
aGl2ZSBmb3IgaW5mbworICAgICAgICBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExNDY4MjQx
NzExMzMxNSZ3PTIKKworICAgICAgICBXaGVuIGRldGVybWluaW5nIGlmIGEgYmluYXJ5IGZpbGUg
cGF0Y2ggaXMgYW4gaW1hZ2Ugb3Igbm90IHdlIHNob3VsZCBhY2NlcHQKKyAgICAgICAgYm90aCBs
aXRlcmFsIGFuZCBkZWx0YSBwYXRjaCBlbmNvZGluZ3MuCisKKyAgICAgICAgV2hlbiByZWNvbnN0
cnVjdGluZyB0aGUgaW1hZ2VzIGZyb20gdGhlIHBhdGNoZXMsIGlmIHdlIGhhdmUgYSBkZWx0YSBw
YXRjaAorICAgICAgICB3ZSBtYXkgZG93bmxvYWQgdGhlIHByZXZpb3VzIHJldmlzaW9uIGZyb20g
dHJhYyB0byBnZXQgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoKKyAgICAg
ICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA2LTMwICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gv
UHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJl
dHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5ZTcyNmUxMDAyMmFiNzMxMWU2
OC4uMDUxMmMxYmM2NjI5NWZiM2M5M2Y0NGUyMzA4MjA4YzE3NTZiOGQ4MiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoLnJiCisrKyBi
L1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYgpAQCAt
MSw2ICsxLDcgQEAKIHJlcXVpcmUgJ2NnaScKIHJlcXVpcmUgJ2RpZmYnCiByZXF1aXJlICdvcGVu
MycKK3JlcXVpcmUgJ29wZW4tdXJpJwogcmVxdWlyZSAncHAnCiByZXF1aXJlICdzZXQnCiByZXF1
aXJlICd0ZW1wZmlsZScKQEAgLTEzLDIyICsxNCwyNCBAQCBwdWJsaWMKIAogICAgIGRlZiBzZWxm
LnByZXR0aWZ5KHN0cmluZykKICAgICAgICAgJGxhc3RfcHJldHRpZnlfZmlsZV9jb3VudCA9IC0x
Ci0gICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7ICJyZW1vdmUiID0+IDAsICJh
ZGQiID0+IDAsICJzaGFyZWQiID0+IDAgfQorICAgICAgICAkbGFzdF9wcmV0dGlmeV9wYXJ0X2Nv
dW50ID0geyAicmVtb3ZlIiA9PiAwLCAiYWRkIiA9PiAwLCAic2hhcmVkIiA9PiAwLCAiYmluYXJ5
IiA9PiAwLCAiZXh0cmFjdC1lcnJvciIgPT4gMCB9CiAgICAgICAgIHN0cmluZyA9IG5vcm1hbGl6
ZV9saW5lX2VuZGluZyhzdHJpbmcpCi0gICAgICAgIGZpbGVEaWZmcyA9IEZpbGVEaWZmLnBhcnNl
KHN0cmluZykKLQogICAgICAgICBzdHIgPSBIRUFERVIgKyAiXG4iCiAKICAgICAgICAgIyBKdXN0
IGxvb2sgYXQgdGhlIGZpcnN0IGxpbmUgdG8gc2VlIGlmIGl0IGlzIGFuIFNWTiByZXZpc2lvbiBu
dW1iZXIgYXMgYWRkZWQKICAgICAgICAgIyBieSB3ZWJraXQtcGF0Y2ggZm9yIGdpdCBjaGVja291
dHMuCisgICAgICAgICRnaXRfc3ZuX3JldmlzaW9uID0gMAogICAgICAgICBzdHJpbmcuZWFjaF9s
aW5lIGRvIHxsaW5lfAogICAgICAgICAgICAgbWF0Y2ggPSAvXlN1YnZlcnNpb25cIFJldmlzaW9u
OiAoXGQqKSQvLm1hdGNoKGxpbmUpCiAgICAgICAgICAgICB1bmxlc3MgbWF0Y2gubmlsPwotICAg
ICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lvbic+IiArIG1hdGNoWzFdICsg
Ijwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lv
bic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICAkZ2l0X3N2bl9y
ZXZpc2lvbiA9IG1hdGNoWzFdLnRvX2k7CiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGJy
ZWFrCiAgICAgICAgIGVuZAogCisgICAgICAgIGZpbGVEaWZmcyA9IEZpbGVEaWZmLnBhcnNlKHN0
cmluZykKKwogICAgICAgICAkbGFzdF9wcmV0dGlmeV9maWxlX2NvdW50ID0gZmlsZURpZmZzLmxl
bmd0aAogICAgICAgICBzdHIgKz0gZmlsZURpZmZzLmNvbGxlY3R7IHxkaWZmfCBkaWZmLnRvX2h0
bWwgfS5qb2luCiAgICAgZW5kCkBAIC02NSw4ICs2OCwxMiBAQCBwcml2YXRlCiAKICAgICBHSVRf
QklOQVJZX0ZJTEVfTUFSS0VSX0ZPUk1BVCA9IC9eR0lUIGJpbmFyeSBwYXRjaCQvCiAKKyAgICBH
SVRfQklOQVJZX1BBVENIX0ZPUk1BVCA9IC9eKGxpdGVyYWx8ZGVsdGEpIFxkKyQvCisKICAgICBH
SVRfTElURVJBTF9GT1JNQVQgPSAvXmxpdGVyYWwgXGQrJC8KIAorICAgIEdJVF9ERUxUQV9GT1JN
QVQgPSAvXmRlbHRhIFxkKyQvCisKICAgICBTVEFSVF9PRl9CSU5BUllfREFUQV9GT1JNQVQgPSAv
XlswLTlhLXpBLVpcK1wvPV17MjAsfS8gIyBBc3N1bWUgMjAgY2hhcnMgd2l0aG91dCBhIHNwYWNl
IGlzIGJhc2U2NCBiaW5hcnkgZGF0YS4KIAogICAgIFNUQVJUX09GX1NFQ1RJT05fRk9STUFUID0g
L15AQCAtKFxkKykoPzosKFxkKykpPyBcKyhcZCspKD86LChcZCspKT8gQEBccyooLiopLwpAQCAt
MTI0LDYgKzEzMSw3IEBAIHByaXZhdGUKICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAg
Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsKIH0KK30KIAogOmxpbmsgewogICAgIGNvbG9yOiAj
MDM5OwpAQCAtNTA4LDcgKzUxNiw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAgICBAZ2l0X2lu
ZGV4ZXMgPSBbJDEsICQyXQogICAgICAgICAgICAgICAgIHdoZW4gR0lUX0JJTkFSWV9GSUxFX01B
UktFUl9GT1JNQVQKICAgICAgICAgICAgICAgICAgICAgQGJpbmFyeSA9IHRydWUKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChsaW5lc1tpICsgMV0pIGFu
ZCBQcmV0dHlQYXRjaC5oYXNfaW1hZ2Vfc3VmZml4KEBmaWxlbmFtZSkpIHRoZW4KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKEdJVF9CSU5BUllfUEFUQ0hfRk9STUFULm1hdGNoKGxpbmVzW2kgKyAx
XSkgYW5kIFByZXR0eVBhdGNoLmhhc19pbWFnZV9zdWZmaXgoQGZpbGVuYW1lKSkgdGhlbgogICAg
ICAgICAgICAgICAgICAgICAgICAgQGdpdF9pbWFnZSA9IHRydWUKICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0T2ZTZWN0aW9ucyA9IGkgKyAxCiAgICAgICAgICAgICAgICAgICAgIGVuZApA
QCAtNTM0LDE0ICs1NDIsMjAgQEAgRU9GCiAKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIm5v
IGJpbmFyeSBjaHVua3MiIHVubGVzcyBjaHVua3MKIAotICAgICAgICAgICAgICAgICAgICBiaW5h
cnlfY29udGVudHMgPSBjaHVua3MuemlwKEBnaXRfaW5kZXhlcykuY29sbGVjdCBkbyB8Y2h1bmss
IGdpdF9pbmRleHwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWZmLmV4dHJhY3RfY29u
dGVudHNfZnJvbV9naXRfYmluYXJ5X2NodW5rKGNodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBmcm9tX2ZpbGVwYXRoID0gRmlsZURp
ZmYuZXh0cmFjdF9jb250ZW50c19vZl9mcm9tX3JldmlzaW9uKEBmaWxlbmFtZSwgY2h1bmtzWzBd
LCBAZ2l0X2luZGV4ZXNbMF0pCisgICAgICAgICAgICAgICAgICAgIHRvX2ZpbGVwYXRoID0gRmls
ZURpZmYuZXh0cmFjdF9jb250ZW50c19vZl90b19yZXZpc2lvbihAZmlsZW5hbWUsIGNodW5rc1sx
XSwgQGdpdF9pbmRleGVzWzFdLCBmcm9tX2ZpbGVwYXRoLCBAZ2l0X2luZGV4ZXNbMF0pCisgICAg
ICAgICAgICAgICAgICAgIGZpbGVwYXRocyA9IGZyb21fZmlsZXBhdGgsIHRvX2ZpbGVwYXRoCiAK
LSAgICAgICAgICAgICAgICAgICAgQGltYWdlX3VybHMgPSBiaW5hcnlfY29udGVudHMuY29sbGVj
dCB7IHxjb250ZW50fCBjb250ZW50ID8gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiICsgW2NvbnRl
bnRdLnBhY2soIm0iKSA6IG5pbCB9CisgICAgICAgICAgICAgICAgICAgIGJpbmFyeV9jb250ZW50
cyA9IGZpbGVwYXRocy5jb2xsZWN0IHsgfGZpbGVwYXRofCBGaWxlLmV4aXN0cz8oZmlsZXBhdGgp
ID8gRmlsZS5yZWFkKGZpbGVwYXRoKSA6IG5pbCB9CisKKyAgICAgICAgICAgICAgICAgICAgQGlt
YWdlX3VybHMgPSBiaW5hcnlfY29udGVudHMuY29sbGVjdCB7IHxjb250ZW50fCAoY29udGVudCBh
bmQgbm90IGNvbnRlbnQuZW1wdHk/KSA/ICJkYXRhOmltYWdlL3BuZztiYXNlNjQsIiArIFtjb250
ZW50XS5wYWNrKCJtIikgOiBuaWwgfQogICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfY2hlY2tz
dW1zID0gYmluYXJ5X2NvbnRlbnRzLmNvbGxlY3QgeyB8Y29udGVudHwgRmlsZURpZmYucmVhZF9j
aGVja3N1bV9mcm9tX3BuZyhjb250ZW50KSB9CiAgICAgICAgICAgICAgICAgcmVzY3VlCisgICAg
ICAgICAgICAgICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImV4dHJhY3QtZXJyb3Ii
XSArPSAxCiAgICAgICAgICAgICAgICAgICAgIEBpbWFnZV9lcnJvciA9ICJFeGNlcHRpb24gcmFp
c2VkIGR1cmluZyBkZWNvZGluZyBnaXQgYmluYXJ5IHBhdGNoOjxwcmU+I3tDR0kuZXNjYXBlSFRN
TCgkIS50b19zICsgIlxuIiArICQhLmJhY2t0cmFjZS5qb2luKCJcbiIpKX08L3ByZT4iCisgICAg
ICAgICAgICAgICAgZW5zdXJlCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKGZyb21f
ZmlsZXBhdGgpIGlmIChmcm9tX2ZpbGVwYXRoIGFuZCBGaWxlLmV4aXN0cz8oZnJvbV9maWxlcGF0
aCkpCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKHRvX2ZpbGVwYXRoKSBpZiAodG9f
ZmlsZXBhdGggYW5kIEZpbGUuZXhpc3RzPyh0b19maWxlcGF0aCkpCiAgICAgICAgICAgICAgICAg
ZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIG5pbApAQCAtNTg1LDYgKzU5OSw3IEBA
IEVPRgogICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBlbmQKICAgICAg
ICAgICAgIGVsc2lmIEBiaW5hcnkgdGhlbgorICAgICAgICAgICAgICAgICRsYXN0X3ByZXR0aWZ5
X3BhcnRfY291bnRbImJpbmFyeSJdICs9IDEKICAgICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFu
IGNsYXNzPSd0ZXh0Jz5CaW5hcnkgZmlsZSwgbm90aGluZyB0byBzZWUgaGVyZTwvc3Bhbj4iCiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc3RyICs9IEBzZWN0aW9ucy5jb2xsZWN0
eyB8c2VjdGlvbnwgc2VjdGlvbi50b19odG1sIH0uam9pbigiPGJyPlxuIikgdW5sZXNzIEBzZWN0
aW9ucy5uaWw/CkBAIC02MzEsMzcgKzY0NiwxMTEgQEAgSGNtVj9kMDAwMDEKIEVORAogICAgICAg
ICBlbmQKIAotICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFy
eV9jaHVuayhlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAgICAjIFdlIHVzZSBU
ZW1wZmlsZSB3ZSBuZWVkIGEgdW5pcXVlIGZpbGUgYW1vbmcgcHJvY2Vzc2VzLgorICAgICAgICBk
ZWYgc2VsZi5naXRfY2hhbmdlZF9maWxlX2JpbmFyeV9wYXRjaCh0b19maWxlbmFtZSwgZW5jb2Rl
ZF9jaHVuaywgdG9fZ2l0X2luZGV4LCBmcm9tX2dpdF9pbmRleCkKKyAgICAgICAgICAgIHJldHVy
biA8PEVORAorZGlmZiAtLWdpdCBhLyN7dG9fZmlsZW5hbWV9IGIvI3t0b19maWxlbmFtZX0KK2lu
ZGV4ICN7ZnJvbV9naXRfaW5kZXh9Li4je3RvX2dpdF9pbmRleH0gMTAwNjQ0CitHSVQgYmluYXJ5
IHBhdGNoCisje2VuY29kZWRfY2h1bmsuam9pbigiIil9bGl0ZXJhbCAwCitIY21WP2QwMDAwMQor
CitFTkQKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZ2V0X3RyYWNfdXJpKHJlcG9z
aXRvcnlfcGF0aCkKKyAgICAgICAgICAgICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2V4cG9ydC8i
ICsgJGdpdF9zdm5fcmV2aXNpb24udG9fcyArICIvdHJ1bmsvIiArIChyZXBvc2l0b3J5X3BhdGgp
CisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxmLmRvd25sb2FkX2Zyb21fcmV2aXNpb25f
ZnJvbV90cmFjKHJlcG9zaXRvcnlfcGF0aCkKICAgICAgICAgICAgIHRlbXBmaWxlID0gVGVtcGZp
bGUubmV3KCJQcmV0dHlQYXRjaCIpCi0gICAgICAgICAgICAjIFdlIG5lZWQgYSBmaWxlbmFtZSB3
aGljaCBkb2Vzbid0IGV4aXN0IHRvIGFwcGx5IGEgcGF0Y2gKLSAgICAgICAgICAgICMgd2hpY2gg
Y3JlYXRlcyBhIG5ldyBmaWxlLiBBcHBlbmQgYSBzdWZmaXggc28gZmlsZW5hbWUKLSAgICAgICAg
ICAgICMgZG9lc24ndCBleGlzdC4KICAgICAgICAgICAgIGZpbGVwYXRoID0gdGVtcGZpbGUucGF0
aCArICcuYmluJwogICAgICAgICAgICAgZmlsZW5hbWUgPSBGaWxlLmJhc2VuYW1lKGZpbGVwYXRo
KQorICAgICAgICAgICAgdHJhY191cmkgPSAgZ2V0X3RyYWNfdXJpKHJlcG9zaXRvcnlfcGF0aCkK
KyAgICAgICAgICAgIG9wZW4oZmlsZXBhdGgsICd3YicpIGRvIHxmaWxlfAorICAgICAgICAgICAg
ICAgIGJlZ2luCisgICAgICAgICAgICAgICAgICAgIGZpbGUgPDwgb3Blbih0cmFjX3VyaSkucmVh
ZAorICAgICAgICAgICAgICAgIGVuc3VyZQorICAgICAgICAgICAgICAgICAgICBmaWxlLmNsb3Nl
CisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHJldHVy
biBmaWxlcGF0aAorICAgICAgICBlbmQKIAotICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5n
aXRfbmV3X2ZpbGVfYmluYXJ5X3BhdGNoKGZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5k
ZXgpCi0KKyAgICAgICAgZGVmIHNlbGYucnVuX2dpdF9hcHBseV9vbl9wYXRjaChvdXRwdXRfZmls
ZXBhdGgsIHBhdGNoKQogICAgICAgICAgICAgIyBBcHBseSB0aGUgZ2l0IGJpbmFyeSBwYXRjaCB1
c2luZyBnaXQtYXBwbHkuCi0gICAgICAgICAgICBjbWQgPSBHSVRfUEFUSCArICIgYXBwbHkgLS1k
aXJlY3Rvcnk9IiArIEZpbGUuZGlybmFtZShmaWxlcGF0aCkKKyAgICAgICAgICAgIGNtZCA9IEdJ
VF9QQVRIICsgIiBhcHBseSAtLWRpcmVjdG9yeT0iICsgRmlsZS5kaXJuYW1lKG91dHB1dF9maWxl
cGF0aCkKICAgICAgICAgICAgIHN0ZGluLCBzdGRvdXQsIHN0ZGVyciA9ICpPcGVuMy5wb3BlbjMo
Y21kKQogICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICBzdGRpbi5wdXRzKHBhdGNo
KQogICAgICAgICAgICAgICAgIHN0ZGluLmNsb3NlCiAKICAgICAgICAgICAgICAgICBlcnJvciA9
IHN0ZGVyci5yZWFkCisgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKQorICAgICAgICAg
ICAgICAgICAgICBlcnJvciA9ICJFcnJvciBydW5uaW5nICIgKyBjbWQgKyAiXG4iICsgIndpdGgg
cGF0Y2g6XG4iICsgcGF0Y2hbMC4uNTAwXSArICIuLi5cbiIgKyBlcnJvcgorICAgICAgICAgICAg
ICAgIGVuZAogICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yIGlmIGVycm9yICE9ICIiCi0KLSAg
ICAgICAgICAgICAgICBjb250ZW50cyA9IEZpbGUucmVhZChmaWxlcGF0aCkKICAgICAgICAgICAg
IGVuc3VyZQogICAgICAgICAgICAgICAgIHN0ZGluLmNsb3NlIHVubGVzcyBzdGRpbi5jbG9zZWQ/
CiAgICAgICAgICAgICAgICAgc3Rkb3V0LmNsb3NlCiAgICAgICAgICAgICAgICAgc3RkZXJyLmNs
b3NlCi0gICAgICAgICAgICAgICAgRmlsZS51bmxpbmsoZmlsZW5hbWUpIGlmIEZpbGUuZXhpc3Rz
PyhmaWxlbmFtZSkKICAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKIAotICAgICAgICAgICAg
cmV0dXJuIG5pbCBpZiBjb250ZW50cy5lbXB0eT8KLSAgICAgICAgICAgIHJldHVybiBjb250ZW50
cworICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRl
cmFsX2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAgICMgV2UgdXNl
IFRlbXBmaWxlIHdlIG5lZWQgYSB1bmlxdWUgZmlsZSBhbW9uZyBwcm9jZXNzZXMuCisgICAgICAg
ICAgICB0ZW1wZmlsZSA9IFRlbXBmaWxlLm5ldygiUHJldHR5UGF0Y2giKQorICAgICAgICAgICAg
IyBXZSBuZWVkIGEgZmlsZW5hbWUgd2hpY2ggZG9lc24ndCBleGlzdCB0byBhcHBseSBhIHBhdGNo
CisgICAgICAgICAgICAjIHdoaWNoIGNyZWF0ZXMgYSBuZXcgZmlsZS4gQXBwZW5kIGEgc3VmZml4
IHNvIGZpbGVuYW1lCisgICAgICAgICAgICAjIGRvZXNuJ3QgZXhpc3QuCisgICAgICAgICAgICBm
aWxlcGF0aCA9IHRlbXBmaWxlLnBhdGggKyAnLmJpbicKKyAgICAgICAgICAgIGZpbGVuYW1lID0g
RmlsZS5iYXNlbmFtZShmaWxlcGF0aCkKKworICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5n
aXRfbmV3X2ZpbGVfYmluYXJ5X3BhdGNoKGZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5k
ZXgpCisgICAgICAgICAgICBydW5fZ2l0X2FwcGx5X29uX3BhdGNoKGZpbGVwYXRoLCBwYXRjaCkK
KworICAgICAgICAgICAgcmV0dXJuIGZpbGVwYXRoCisgICAgICAgIGVuZAorCisgICAgICAgIGRl
ZiBzZWxmLmV4dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2RlbHRhX2NodW5rKGZyb21f
ZmlsZXBhdGgsIGZyb21fZ2l0X2luZGV4LCBlbmNvZGVkX2NodW5rLCB0b19naXRfaW5kZXgpCisg
ICAgICAgICAgICAjIEdldCBhIGZyZXNoIG5ld2ggdGVtcCBmaWxlCisgICAgICAgICAgICB0ZW1w
ZmlsZSA9IFRlbXBmaWxlLm5ldygiUHJldHR5UGF0Y2giKQorICAgICAgICAgICAgZmlsZXBhdGgg
PSB0ZW1wZmlsZS5wYXRoICsgJy5iaW4nCisgICAgICAgICAgICB0b19maWxlbmFtZSA9IEZpbGUu
YmFzZW5hbWUoZmlsZXBhdGgpCisgICAgICAgICAgICAjIENvcHkgdGhlICdmcm9tJyByZXZpc2lv
biBpbnRvIHRoaXMgZmlsZQorICAgICAgICAgICAgb3BlbihmaWxlcGF0aCwgJ3diJykgZG8gfGZp
bGV8CisgICAgICAgICAgICAgICAgYmVnaW4KKyAgICAgICAgICAgICAgICAgICAgZmlsZSA8PCBv
cGVuKGZyb21fZmlsZXBhdGgpLnJlYWQKKyAgICAgICAgICAgICAgICBlbnN1cmUKKyAgICAgICAg
ICAgICAgICAgICAgZmlsZS5jbG9zZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICBwYXRjaCA9IEZpbGVEaWZmLmdpdF9jaGFuZ2VkX2ZpbGVfYmluYXJ5
X3BhdGNoKHRvX2ZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCB0b19naXRfaW5kZXgsIGZyb21fZ2l0
X2luZGV4KQorICAgICAgICAgICAgcnVuX2dpdF9hcHBseV9vbl9wYXRjaChmaWxlcGF0aCwgcGF0
Y2gpCisKKyAgICAgICAgICAgIHJldHVybiBmaWxlcGF0aAorICAgICAgICBlbmQKKworICAgICAg
ICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX29mX2Zyb21fcmV2aXNpb24ocmVwb3NpdG9yeV9w
YXRoLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgICAgICAjIEZvciBsaXRlcmFs
IGVuY29kZWQsIHNpbXBseSByZWNvbnN0cnVjdC4gRm9yIGRlbHRhIGVuY29kZWQsIGRvd25sb2Fk
IGZyb20gdHJhYworICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChlbmNv
ZGVkX2NodW5rWzBdKSkgdGhlbgorICAgICAgICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRl
bnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRlcmFsX2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRl
eCkKKyAgICAgICAgICAgIGVsc2lmIChHSVRfREVMVEFfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1
bmtbMF0pKSB0aGVuCisgICAgICAgICAgICAgICAgcmV0dXJuIGRvd25sb2FkX2Zyb21fcmV2aXNp
b25fZnJvbV90cmFjKHJlcG9zaXRvcnlfcGF0aCkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByYWlzZSAiRXJyb3I6IHVua25vd24gZ2l0IHBhdGNoIGVuY29kaW5nIgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxmLmV4dHJhY3RfY29udGVu
dHNfb2ZfdG9fcmV2aXNpb24ocmVwb3NpdG9yeV9wYXRoLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5k
ZXgsIGZyb21fZmlsZXBhdGgsIGZyb21fZ2l0X2luZGV4KQorICAgICAgICAgICAgIyBGb3IgbGl0
ZXJhbCBlbmNvZGVkLCBzaW1wbHkgcmVjb25zdHJ1Y3QuIEZvciBkZWx0YSBlbmNvZGVkLCByZWNv
bnN0cnVjdCB1c2luZyBkZWx0YSBhbmQgcHJldmlvdXNseQorICAgICAgICAgICAgIyAnZnJvbScg
cmV2aXNpb24uZQorICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChlbmNv
ZGVkX2NodW5rWzBdKSkgdGhlbgorICAgICAgICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRl
bnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRlcmFsX2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRl
eCkKKyAgICAgICAgICAgIGVsc2lmIChHSVRfREVMVEFfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1
bmtbMF0pKSB0aGVuCisgICAgICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RfY29udGVudHNfZnJv
bV9naXRfYmluYXJ5X2RlbHRhX2NodW5rKGZyb21fZmlsZXBhdGgsIGZyb21fZ2l0X2luZGV4LCBl
bmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgcmFpc2UgIkVycm9yOiB1bmtub3duIGdpdCBwYXRjaCBlbmNvZGluZyIKKyAgICAgICAgICAg
IGVuZAogICAgICAgICBlbmQKICAgICBlbmQKIApAQCAtODA0LDcgKzg5Myw3IEBAIEVORAogICAg
ICAgICAgICAgc3RyICs9IEBibG9ja3MuY29sbGVjdHsgfGJsb2NrfCBibG9jay50b19odG1sIH0u
am9pbgogICAgICAgICAgICAgc3RyICs9ICI8L2Rpdj5cbiIKICAgICAgICAgZW5kCi0gICAgICAg
IAorCiAgICAgICAgIGRlZiBzZWxmLnBhcnNlKGxpbmVzKQogICAgICAgICAgICAgbGluZXNGb3JT
ZWN0aW9ucyA9IGxpbmVzLmluamVjdChbW11dKSBkbyB8c2VjdGlvbnMsIGxpbmV8CiAgICAgICAg
ICAgICAgICAgc2VjdGlvbnMgPDwgW10gaWYgbGluZSA9fiAvXkBALwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoX3Rlc3QucmIgYi9X
ZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgpp
bmRleCA4YjcxNGNiODE4ZWVkOTViODlkODk4OTFhZmYwNjU5YjAxYzEzYTAyLi5lZDQxNjkzYjcy
ZjIwZGViYmRkMmRiYzU2YWNkYTE1Y2FjMDE3YWU4IDEwMDc1NQotLS0gYS9XZWJzaXRlcy9idWdz
LndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgorKysgYi9XZWJzaXRl
cy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgpAQCAtMjYs
NiArMjYsNyBAQCBjbGFzcyBQcmV0dHlQYXRjaF90ZXN0IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UK
ICAgICAgICAgODA4NTIgPT4gWyJDaGFuZ2VzIG9uZSBsaW5lIHBsdXMgQ2hhbmdlTG9nIiwgMiwg
MiwgMSwgNF0sCiAgICAgICAgIDgzMTI3ID0+IFsiT25seSBhZGQgc3R1ZmYiLCAyLCAyLCAwLCAz
XSwKICAgICAgICAgODUwNzEgPT4gWyJBZGRzIGFuZCByZW1vdmVzIGZyb20gYSBmaWxlIHBsdXMg
Z2l0IHNpZ25hdHVyZSIsIDIsIDUsIDMsIDldLAorICAgICAgICAxMDYzNjggPT4gWyJJbWFnZXMg
d2l0aCBnaXQgZGVsdGEgYmluYXJ5IHBhdGNoIiwgNjksIDgsIDIzLCAxMF0sCiAgICAgfQogCiAg
ICAgZGVmIGdldF9wYXRjaF91cmkoaWQpCkBAIC01Nyw2ICs1OCw4IEBAIGNsYXNzIFByZXR0eVBh
dGNoX3Rlc3QgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgICAgICBhc3NlcnRfZXF1YWwoaW5m
b1tJbmZvOjpBRERdLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJhZGQiXSwgIldyb25nIG51
bWJlciBvZiAnYWRkJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgICAgIGFzc2VydF9l
cXVhbChpbmZvW0luZm86OlJFTU9WRV0sICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbInJlbW92
ZSJdLCAiV3JvbmcgbnVtYmVyIG9mICdyZW1vdmUnIHBhcnRzIGluICIgKyBkZXNjcmlwdGlvbikK
ICAgICAgICAgYXNzZXJ0X2VxdWFsKGluZm9bSW5mbzo6U0hBUkVEXSwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsic2hhcmVkIl0sICJXcm9uZyBudW1iZXIgb2YgJ3NoYXJlZCcgcGFydHMgaW4g
IiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsiYmluYXJ5Il0sICJXcm9uZyBudW1iZXIgb2YgJ2JpbmFyeScgcGFydHMgaW4g
IiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsiZXh0cmFjdC1lcnJvciJdLCAiV3JvbmcgbnVtYmVyIG9mICdleHRyYWN0LWVy
cm9yJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgZW5kCiAKICAgICBkZWYgdGVzdF9w
YXRjaGVzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106571</attachid>
            <date>2011-09-07 04:58:55 -0700</date>
            <delta_ts>2011-09-08 21:31:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110907215853.patch</filename>
            <type>text/plain</type>
            <size>12889</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1MzkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDVjYzFiMzNhYzcyYmZjZDVjMThhNzA2ODI4ZjUyNWMzNGQ1NDQxODkuLmQzOTJiNGIyZWVj
ZDAyYzVjNTg4N2MxOWFhMmI5NzhmMTI5NzRmMTIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTA1ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIFNlZSB0aGlzIGVtYWlsIGZyb20gdGhlIGdpdCBtYWlsaW5nIGxpc3QgYXJj
aGl2ZSBmb3IgaW5mbworICAgICAgICBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExNDY4MjQx
NzExMzMxNSZ3PTIKKworICAgICAgICBXaGVuIGRldGVybWluaW5nIGlmIGEgYmluYXJ5IGZpbGUg
cGF0Y2ggaXMgYW4gaW1hZ2Ugb3Igbm90IHdlIHNob3VsZCBhY2NlcHQKKyAgICAgICAgYm90aCBs
aXRlcmFsIGFuZCBkZWx0YSBwYXRjaCBlbmNvZGluZ3MuCisKKyAgICAgICAgV2hlbiByZWNvbnN0
cnVjdGluZyB0aGUgaW1hZ2VzIGZyb20gdGhlIHBhdGNoZXMsIGlmIHdlIGhhdmUgYSBkZWx0YSBw
YXRjaAorICAgICAgICB3ZSBtYXkgZG93bmxvYWQgdGhlIHByZXZpb3VzIHJldmlzaW9uIGZyb20g
dHJhYyB0byBnZXQgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoKKyAgICAg
ICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA2LTMwICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gv
UHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJl
dHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5ZTcyNmUxMDAyMmFiNzMxMWU2
OC4uMTFjNjczNmM1MzQ2OWViMGE4ODg2NmY2Njk0MTA3Yzc2MzJiZTM4NSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoLnJiCisrKyBi
L1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYgpAQCAt
MSw2ICsxLDcgQEAKIHJlcXVpcmUgJ2NnaScKIHJlcXVpcmUgJ2RpZmYnCiByZXF1aXJlICdvcGVu
MycKK3JlcXVpcmUgJ29wZW4tdXJpJwogcmVxdWlyZSAncHAnCiByZXF1aXJlICdzZXQnCiByZXF1
aXJlICd0ZW1wZmlsZScKQEAgLTEzLDIyICsxNCwyNCBAQCBwdWJsaWMKIAogICAgIGRlZiBzZWxm
LnByZXR0aWZ5KHN0cmluZykKICAgICAgICAgJGxhc3RfcHJldHRpZnlfZmlsZV9jb3VudCA9IC0x
Ci0gICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7ICJyZW1vdmUiID0+IDAsICJh
ZGQiID0+IDAsICJzaGFyZWQiID0+IDAgfQorICAgICAgICAkbGFzdF9wcmV0dGlmeV9wYXJ0X2Nv
dW50ID0geyAicmVtb3ZlIiA9PiAwLCAiYWRkIiA9PiAwLCAic2hhcmVkIiA9PiAwLCAiYmluYXJ5
IiA9PiAwLCAiZXh0cmFjdC1lcnJvciIgPT4gMCB9CiAgICAgICAgIHN0cmluZyA9IG5vcm1hbGl6
ZV9saW5lX2VuZGluZyhzdHJpbmcpCi0gICAgICAgIGZpbGVEaWZmcyA9IEZpbGVEaWZmLnBhcnNl
KHN0cmluZykKLQogICAgICAgICBzdHIgPSBIRUFERVIgKyAiXG4iCiAKICAgICAgICAgIyBKdXN0
IGxvb2sgYXQgdGhlIGZpcnN0IGxpbmUgdG8gc2VlIGlmIGl0IGlzIGFuIFNWTiByZXZpc2lvbiBu
dW1iZXIgYXMgYWRkZWQKICAgICAgICAgIyBieSB3ZWJraXQtcGF0Y2ggZm9yIGdpdCBjaGVja291
dHMuCisgICAgICAgICRnaXRfc3ZuX3JldmlzaW9uID0gMAogICAgICAgICBzdHJpbmcuZWFjaF9s
aW5lIGRvIHxsaW5lfAogICAgICAgICAgICAgbWF0Y2ggPSAvXlN1YnZlcnNpb25cIFJldmlzaW9u
OiAoXGQqKSQvLm1hdGNoKGxpbmUpCiAgICAgICAgICAgICB1bmxlc3MgbWF0Y2gubmlsPwotICAg
ICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lvbic+IiArIG1hdGNoWzFdICsg
Ijwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lv
bic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICAkZ2l0X3N2bl9y
ZXZpc2lvbiA9IG1hdGNoWzFdLnRvX2k7CiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGJy
ZWFrCiAgICAgICAgIGVuZAogCisgICAgICAgIGZpbGVEaWZmcyA9IEZpbGVEaWZmLnBhcnNlKHN0
cmluZykKKwogICAgICAgICAkbGFzdF9wcmV0dGlmeV9maWxlX2NvdW50ID0gZmlsZURpZmZzLmxl
bmd0aAogICAgICAgICBzdHIgKz0gZmlsZURpZmZzLmNvbGxlY3R7IHxkaWZmfCBkaWZmLnRvX2h0
bWwgfS5qb2luCiAgICAgZW5kCkBAIC02NSw4ICs2OCwxMiBAQCBwcml2YXRlCiAKICAgICBHSVRf
QklOQVJZX0ZJTEVfTUFSS0VSX0ZPUk1BVCA9IC9eR0lUIGJpbmFyeSBwYXRjaCQvCiAKKyAgICBH
SVRfQklOQVJZX1BBVENIX0ZPUk1BVCA9IC9eKGxpdGVyYWx8ZGVsdGEpIFxkKyQvCisKICAgICBH
SVRfTElURVJBTF9GT1JNQVQgPSAvXmxpdGVyYWwgXGQrJC8KIAorICAgIEdJVF9ERUxUQV9GT1JN
QVQgPSAvXmRlbHRhIFxkKyQvCisKICAgICBTVEFSVF9PRl9CSU5BUllfREFUQV9GT1JNQVQgPSAv
XlswLTlhLXpBLVpcK1wvPV17MjAsfS8gIyBBc3N1bWUgMjAgY2hhcnMgd2l0aG91dCBhIHNwYWNl
IGlzIGJhc2U2NCBiaW5hcnkgZGF0YS4KIAogICAgIFNUQVJUX09GX1NFQ1RJT05fRk9STUFUID0g
L15AQCAtKFxkKykoPzosKFxkKykpPyBcKyhcZCspKD86LChcZCspKT8gQEBccyooLiopLwpAQCAt
NTA4LDcgKzUxNSw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAgICBAZ2l0X2luZGV4ZXMgPSBb
JDEsICQyXQogICAgICAgICAgICAgICAgIHdoZW4gR0lUX0JJTkFSWV9GSUxFX01BUktFUl9GT1JN
QVQKICAgICAgICAgICAgICAgICAgICAgQGJpbmFyeSA9IHRydWUKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChsaW5lc1tpICsgMV0pIGFuZCBQcmV0dHlQ
YXRjaC5oYXNfaW1hZ2Vfc3VmZml4KEBmaWxlbmFtZSkpIHRoZW4KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKEdJVF9CSU5BUllfUEFUQ0hfRk9STUFULm1hdGNoKGxpbmVzW2kgKyAxXSkgYW5kIFBy
ZXR0eVBhdGNoLmhhc19pbWFnZV9zdWZmaXgoQGZpbGVuYW1lKSkgdGhlbgogICAgICAgICAgICAg
ICAgICAgICAgICAgQGdpdF9pbWFnZSA9IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXJ0T2ZTZWN0aW9ucyA9IGkgKyAxCiAgICAgICAgICAgICAgICAgICAgIGVuZApAQCAtNTM0LDE0
ICs1NDEsMjAgQEAgRU9GCiAKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIm5vIGJpbmFyeSBj
aHVua3MiIHVubGVzcyBjaHVua3MKIAotICAgICAgICAgICAgICAgICAgICBiaW5hcnlfY29udGVu
dHMgPSBjaHVua3MuemlwKEBnaXRfaW5kZXhlcykuY29sbGVjdCBkbyB8Y2h1bmssIGdpdF9pbmRl
eHwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWZmLmV4dHJhY3RfY29udGVudHNfZnJv
bV9naXRfYmluYXJ5X2NodW5rKGNodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgICAgICAgICBmcm9tX2ZpbGVwYXRoID0gRmlsZURpZmYuZXh0cmFj
dF9jb250ZW50c19vZl9mcm9tX3JldmlzaW9uKEBmaWxlbmFtZSwgY2h1bmtzWzBdLCBAZ2l0X2lu
ZGV4ZXNbMF0pCisgICAgICAgICAgICAgICAgICAgIHRvX2ZpbGVwYXRoID0gRmlsZURpZmYuZXh0
cmFjdF9jb250ZW50c19vZl90b19yZXZpc2lvbihAZmlsZW5hbWUsIGNodW5rc1sxXSwgQGdpdF9p
bmRleGVzWzFdLCBmcm9tX2ZpbGVwYXRoLCBAZ2l0X2luZGV4ZXNbMF0pCisgICAgICAgICAgICAg
ICAgICAgIGZpbGVwYXRocyA9IGZyb21fZmlsZXBhdGgsIHRvX2ZpbGVwYXRoCisKKyAgICAgICAg
ICAgICAgICAgICAgYmluYXJ5X2NvbnRlbnRzID0gZmlsZXBhdGhzLmNvbGxlY3QgeyB8ZmlsZXBh
dGh8IEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkgPyBGaWxlLnJlYWQoZmlsZXBhdGgpIDogbmlsIH0K
IAotICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfdXJscyA9IGJpbmFyeV9jb250ZW50cy5jb2xs
ZWN0IHsgfGNvbnRlbnR8IGNvbnRlbnQgPyAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LCIgKyBbY29u
dGVudF0ucGFjaygibSIpIDogbmlsIH0KKyAgICAgICAgICAgICAgICAgICAgQGltYWdlX3VybHMg
PSBiaW5hcnlfY29udGVudHMuY29sbGVjdCB7IHxjb250ZW50fCAoY29udGVudCBhbmQgbm90IGNv
bnRlbnQuZW1wdHk/KSA/ICJkYXRhOmltYWdlL3BuZztiYXNlNjQsIiArIFtjb250ZW50XS5wYWNr
KCJtIikgOiBuaWwgfQogICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfY2hlY2tzdW1zID0gYmlu
YXJ5X2NvbnRlbnRzLmNvbGxlY3QgeyB8Y29udGVudHwgRmlsZURpZmYucmVhZF9jaGVja3N1bV9m
cm9tX3BuZyhjb250ZW50KSB9CiAgICAgICAgICAgICAgICAgcmVzY3VlCisgICAgICAgICAgICAg
ICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImV4dHJhY3QtZXJyb3IiXSArPSAxCiAg
ICAgICAgICAgICAgICAgICAgIEBpbWFnZV9lcnJvciA9ICJFeGNlcHRpb24gcmFpc2VkIGR1cmlu
ZyBkZWNvZGluZyBnaXQgYmluYXJ5IHBhdGNoOjxwcmU+I3tDR0kuZXNjYXBlSFRNTCgkIS50b19z
ICsgIlxuIiArICQhLmJhY2t0cmFjZS5qb2luKCJcbiIpKX08L3ByZT4iCisgICAgICAgICAgICAg
ICAgZW5zdXJlCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKGZyb21fZmlsZXBhdGgp
IGlmIChmcm9tX2ZpbGVwYXRoIGFuZCBGaWxlLmV4aXN0cz8oZnJvbV9maWxlcGF0aCkpCisgICAg
ICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKHRvX2ZpbGVwYXRoKSBpZiAodG9fZmlsZXBhdGgg
YW5kIEZpbGUuZXhpc3RzPyh0b19maWxlcGF0aCkpCiAgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBlbmQKICAgICAgICAgICAgIG5pbApAQCAtNTg1LDYgKzU5OCw3IEBAIEVPRgogICAg
ICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVs
c2lmIEBiaW5hcnkgdGhlbgorICAgICAgICAgICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291
bnRbImJpbmFyeSJdICs9IDEKICAgICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSd0
ZXh0Jz5CaW5hcnkgZmlsZSwgbm90aGluZyB0byBzZWUgaGVyZTwvc3Bhbj4iCiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgc3RyICs9IEBzZWN0aW9ucy5jb2xsZWN0eyB8c2VjdGlv
bnwgc2VjdGlvbi50b19odG1sIH0uam9pbigiPGJyPlxuIikgdW5sZXNzIEBzZWN0aW9ucy5uaWw/
CkBAIC02MzEsMzcgKzY0NSwxMTEgQEAgSGNtVj9kMDAwMDEKIEVORAogICAgICAgICBlbmQKIAot
ICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9jaHVuayhl
bmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAgICAjIFdlIHVzZSBUZW1wZmlsZSB3
ZSBuZWVkIGEgdW5pcXVlIGZpbGUgYW1vbmcgcHJvY2Vzc2VzLgorICAgICAgICBkZWYgc2VsZi5n
aXRfY2hhbmdlZF9maWxlX2JpbmFyeV9wYXRjaCh0b19maWxlbmFtZSwgZW5jb2RlZF9jaHVuaywg
dG9fZ2l0X2luZGV4LCBmcm9tX2dpdF9pbmRleCkKKyAgICAgICAgICAgIHJldHVybiA8PEVORAor
ZGlmZiAtLWdpdCBhLyN7dG9fZmlsZW5hbWV9IGIvI3t0b19maWxlbmFtZX0KK2luZGV4ICN7ZnJv
bV9naXRfaW5kZXh9Li4je3RvX2dpdF9pbmRleH0gMTAwNjQ0CitHSVQgYmluYXJ5IHBhdGNoCisj
e2VuY29kZWRfY2h1bmsuam9pbigiIil9bGl0ZXJhbCAwCitIY21WP2QwMDAwMQorCitFTkQKKyAg
ICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZ2V0X3RyYWNfdXJpKHJlcG9zaXRvcnlfcGF0
aCkKKyAgICAgICAgICAgICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2V4cG9ydC8iICsgJGdpdF9z
dm5fcmV2aXNpb24udG9fcyArICIvdHJ1bmsvIiArIChyZXBvc2l0b3J5X3BhdGgpCisgICAgICAg
IGVuZAorCisgICAgICAgIGRlZiBzZWxmLmRvd25sb2FkX2Zyb21fcmV2aXNpb25fZnJvbV90cmFj
KHJlcG9zaXRvcnlfcGF0aCkKICAgICAgICAgICAgIHRlbXBmaWxlID0gVGVtcGZpbGUubmV3KCJQ
cmV0dHlQYXRjaCIpCi0gICAgICAgICAgICAjIFdlIG5lZWQgYSBmaWxlbmFtZSB3aGljaCBkb2Vz
bid0IGV4aXN0IHRvIGFwcGx5IGEgcGF0Y2gKLSAgICAgICAgICAgICMgd2hpY2ggY3JlYXRlcyBh
IG5ldyBmaWxlLiBBcHBlbmQgYSBzdWZmaXggc28gZmlsZW5hbWUKLSAgICAgICAgICAgICMgZG9l
c24ndCBleGlzdC4KICAgICAgICAgICAgIGZpbGVwYXRoID0gdGVtcGZpbGUucGF0aCArICcuYmlu
JwogICAgICAgICAgICAgZmlsZW5hbWUgPSBGaWxlLmJhc2VuYW1lKGZpbGVwYXRoKQorICAgICAg
ICAgICAgdHJhY191cmkgPSAgZ2V0X3RyYWNfdXJpKHJlcG9zaXRvcnlfcGF0aCkKKyAgICAgICAg
ICAgIG9wZW4oZmlsZXBhdGgsICd3YicpIGRvIHxmaWxlfAorICAgICAgICAgICAgICAgIGJlZ2lu
CisgICAgICAgICAgICAgICAgICAgIGZpbGUgPDwgb3Blbih0cmFjX3VyaSkucmVhZAorICAgICAg
ICAgICAgICAgIGVuc3VyZQorICAgICAgICAgICAgICAgICAgICBmaWxlLmNsb3NlCisgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHJldHVybiBmaWxlcGF0
aAorICAgICAgICBlbmQKIAotICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5naXRfbmV3X2Zp
bGVfYmluYXJ5X3BhdGNoKGZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCi0KKyAg
ICAgICAgZGVmIHNlbGYucnVuX2dpdF9hcHBseV9vbl9wYXRjaChvdXRwdXRfZmlsZXBhdGgsIHBh
dGNoKQogICAgICAgICAgICAgIyBBcHBseSB0aGUgZ2l0IGJpbmFyeSBwYXRjaCB1c2luZyBnaXQt
YXBwbHkuCi0gICAgICAgICAgICBjbWQgPSBHSVRfUEFUSCArICIgYXBwbHkgLS1kaXJlY3Rvcnk9
IiArIEZpbGUuZGlybmFtZShmaWxlcGF0aCkKKyAgICAgICAgICAgIGNtZCA9IEdJVF9QQVRIICsg
IiBhcHBseSAtLWRpcmVjdG9yeT0iICsgRmlsZS5kaXJuYW1lKG91dHB1dF9maWxlcGF0aCkKICAg
ICAgICAgICAgIHN0ZGluLCBzdGRvdXQsIHN0ZGVyciA9ICpPcGVuMy5wb3BlbjMoY21kKQogICAg
ICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICBzdGRpbi5wdXRzKHBhdGNoKQogICAgICAg
ICAgICAgICAgIHN0ZGluLmNsb3NlCiAKICAgICAgICAgICAgICAgICBlcnJvciA9IHN0ZGVyci5y
ZWFkCisgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKQorICAgICAgICAgICAgICAgICAg
ICBlcnJvciA9ICJFcnJvciBydW5uaW5nICIgKyBjbWQgKyAiXG4iICsgIndpdGggcGF0Y2g6XG4i
ICsgcGF0Y2hbMC4uNTAwXSArICIuLi5cbiIgKyBlcnJvcgorICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yIGlmIGVycm9yICE9ICIiCi0KLSAgICAgICAgICAg
ICAgICBjb250ZW50cyA9IEZpbGUucmVhZChmaWxlcGF0aCkKICAgICAgICAgICAgIGVuc3VyZQog
ICAgICAgICAgICAgICAgIHN0ZGluLmNsb3NlIHVubGVzcyBzdGRpbi5jbG9zZWQ/CiAgICAgICAg
ICAgICAgICAgc3Rkb3V0LmNsb3NlCiAgICAgICAgICAgICAgICAgc3RkZXJyLmNsb3NlCi0gICAg
ICAgICAgICAgICAgRmlsZS51bmxpbmsoZmlsZW5hbWUpIGlmIEZpbGUuZXhpc3RzPyhmaWxlbmFt
ZSkKICAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKIAotICAgICAgICAgICAgcmV0dXJuIG5p
bCBpZiBjb250ZW50cy5lbXB0eT8KLSAgICAgICAgICAgIHJldHVybiBjb250ZW50cworICAgICAg
ICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRlcmFsX2NodW5r
KGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAgICMgV2UgdXNlIFRlbXBmaWxl
IHdlIG5lZWQgYSB1bmlxdWUgZmlsZSBhbW9uZyBwcm9jZXNzZXMuCisgICAgICAgICAgICB0ZW1w
ZmlsZSA9IFRlbXBmaWxlLm5ldygiUHJldHR5UGF0Y2giKQorICAgICAgICAgICAgIyBXZSBuZWVk
IGEgZmlsZW5hbWUgd2hpY2ggZG9lc24ndCBleGlzdCB0byBhcHBseSBhIHBhdGNoCisgICAgICAg
ICAgICAjIHdoaWNoIGNyZWF0ZXMgYSBuZXcgZmlsZS4gQXBwZW5kIGEgc3VmZml4IHNvIGZpbGVu
YW1lCisgICAgICAgICAgICAjIGRvZXNuJ3QgZXhpc3QuCisgICAgICAgICAgICBmaWxlcGF0aCA9
IHRlbXBmaWxlLnBhdGggKyAnLmJpbicKKyAgICAgICAgICAgIGZpbGVuYW1lID0gRmlsZS5iYXNl
bmFtZShmaWxlcGF0aCkKKworICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5naXRfbmV3X2Zp
bGVfYmluYXJ5X3BhdGNoKGZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAg
ICAgICAgICBydW5fZ2l0X2FwcGx5X29uX3BhdGNoKGZpbGVwYXRoLCBwYXRjaCkKKworICAgICAg
ICAgICAgcmV0dXJuIGZpbGVwYXRoCisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxmLmV4
dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2RlbHRhX2NodW5rKGZyb21fZmlsZXBhdGgs
IGZyb21fZ2l0X2luZGV4LCBlbmNvZGVkX2NodW5rLCB0b19naXRfaW5kZXgpCisgICAgICAgICAg
ICAjIEdldCBhIGZyZXNoIG5ldyB0ZW1wIGZpbGUKKyAgICAgICAgICAgIHRlbXBmaWxlID0gVGVt
cGZpbGUubmV3KCJQcmV0dHlQYXRjaCIpCisgICAgICAgICAgICBmaWxlcGF0aCA9IHRlbXBmaWxl
LnBhdGggKyAnLmJpbicKKyAgICAgICAgICAgIHRvX2ZpbGVuYW1lID0gRmlsZS5iYXNlbmFtZShm
aWxlcGF0aCkKKyAgICAgICAgICAgICMgQ29weSB0aGUgJ2Zyb20nIHJldmlzaW9uIGludG8gdGhp
cyBmaWxlCisgICAgICAgICAgICBvcGVuKGZpbGVwYXRoLCAnd2InKSBkbyB8ZmlsZXwKKyAgICAg
ICAgICAgICAgICBiZWdpbgorICAgICAgICAgICAgICAgICAgICBmaWxlIDw8IG9wZW4oZnJvbV9m
aWxlcGF0aCkucmVhZAorICAgICAgICAgICAgICAgIGVuc3VyZQorICAgICAgICAgICAgICAgICAg
ICBmaWxlLmNsb3NlCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X2NoYW5nZWRfZmlsZV9iaW5hcnlfcGF0Y2godG9f
ZmlsZW5hbWUsIGVuY29kZWRfY2h1bmssIHRvX2dpdF9pbmRleCwgZnJvbV9naXRfaW5kZXgpCisg
ICAgICAgICAgICBydW5fZ2l0X2FwcGx5X29uX3BhdGNoKGZpbGVwYXRoLCBwYXRjaCkKKworICAg
ICAgICAgICAgcmV0dXJuIGZpbGVwYXRoCisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxm
LmV4dHJhY3RfY29udGVudHNfb2ZfZnJvbV9yZXZpc2lvbihyZXBvc2l0b3J5X3BhdGgsIGVuY29k
ZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAgICMgRm9yIGxpdGVyYWwgZW5jb2RlZCwg
c2ltcGx5IHJlY29uc3RydWN0LiBGb3IgZGVsdGEgZW5jb2RlZCwgZG93bmxvYWQgZnJvbSB0cmFj
CisgICAgICAgICAgICBpZiAoR0lUX0xJVEVSQUxfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1bmtb
MF0pKSB0aGVuCisgICAgICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RfY29udGVudHNfZnJvbV9n
aXRfYmluYXJ5X2xpdGVyYWxfY2h1bmsoZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAg
ICAgICAgZWxzaWYgKEdJVF9ERUxUQV9GT1JNQVQubWF0Y2goZW5jb2RlZF9jaHVua1swXSkpIHRo
ZW4KKyAgICAgICAgICAgICAgICByZXR1cm4gZG93bmxvYWRfZnJvbV9yZXZpc2lvbl9mcm9tX3Ry
YWMocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJh
aXNlICJFcnJvcjogdW5rbm93biBnaXQgcGF0Y2ggZW5jb2RpbmciCisgICAgICAgICAgICBlbmQK
KyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZXh0cmFjdF9jb250ZW50c19vZl90b19y
ZXZpc2lvbihyZXBvc2l0b3J5X3BhdGgsIGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCwgZnJvbV9m
aWxlcGF0aCwgZnJvbV9naXRfaW5kZXgpCisgICAgICAgICAgICAjIEZvciBsaXRlcmFsIGVuY29k
ZWQsIHNpbXBseSByZWNvbnN0cnVjdC4gRm9yIGRlbHRhIGVuY29kZWQsIHJlY29uc3RydWN0IHVz
aW5nIGRlbHRhIGFuZCBwcmV2aW91c2x5CisgICAgICAgICAgICAjIGNvbnN0cnVjdGVkICdmcm9t
JyByZXZpc2lvbgorICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChlbmNv
ZGVkX2NodW5rWzBdKSkgdGhlbgorICAgICAgICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRl
bnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRlcmFsX2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRl
eCkKKyAgICAgICAgICAgIGVsc2lmIChHSVRfREVMVEFfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1
bmtbMF0pKSB0aGVuCisgICAgICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RfY29udGVudHNfZnJv
bV9naXRfYmluYXJ5X2RlbHRhX2NodW5rKGZyb21fZmlsZXBhdGgsIGZyb21fZ2l0X2luZGV4LCBl
bmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgcmFpc2UgIkVycm9yOiB1bmtub3duIGdpdCBwYXRjaCBlbmNvZGluZyIKKyAgICAgICAgICAg
IGVuZAogICAgICAgICBlbmQKICAgICBlbmQKIApAQCAtODA0LDcgKzg5Miw3IEBAIEVORAogICAg
ICAgICAgICAgc3RyICs9IEBibG9ja3MuY29sbGVjdHsgfGJsb2NrfCBibG9jay50b19odG1sIH0u
am9pbgogICAgICAgICAgICAgc3RyICs9ICI8L2Rpdj5cbiIKICAgICAgICAgZW5kCi0gICAgICAg
IAorCiAgICAgICAgIGRlZiBzZWxmLnBhcnNlKGxpbmVzKQogICAgICAgICAgICAgbGluZXNGb3JT
ZWN0aW9ucyA9IGxpbmVzLmluamVjdChbW11dKSBkbyB8c2VjdGlvbnMsIGxpbmV8CiAgICAgICAg
ICAgICAgICAgc2VjdGlvbnMgPDwgW10gaWYgbGluZSA9fiAvXkBALwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoX3Rlc3QucmIgYi9X
ZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgpp
bmRleCA4YjcxNGNiODE4ZWVkOTViODlkODk4OTFhZmYwNjU5YjAxYzEzYTAyLi5lZDQxNjkzYjcy
ZjIwZGViYmRkMmRiYzU2YWNkYTE1Y2FjMDE3YWU4IDEwMDc1NQotLS0gYS9XZWJzaXRlcy9idWdz
LndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgorKysgYi9XZWJzaXRl
cy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYgpAQCAtMjYs
NiArMjYsNyBAQCBjbGFzcyBQcmV0dHlQYXRjaF90ZXN0IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UK
ICAgICAgICAgODA4NTIgPT4gWyJDaGFuZ2VzIG9uZSBsaW5lIHBsdXMgQ2hhbmdlTG9nIiwgMiwg
MiwgMSwgNF0sCiAgICAgICAgIDgzMTI3ID0+IFsiT25seSBhZGQgc3R1ZmYiLCAyLCAyLCAwLCAz
XSwKICAgICAgICAgODUwNzEgPT4gWyJBZGRzIGFuZCByZW1vdmVzIGZyb20gYSBmaWxlIHBsdXMg
Z2l0IHNpZ25hdHVyZSIsIDIsIDUsIDMsIDldLAorICAgICAgICAxMDYzNjggPT4gWyJJbWFnZXMg
d2l0aCBnaXQgZGVsdGEgYmluYXJ5IHBhdGNoIiwgNjksIDgsIDIzLCAxMF0sCiAgICAgfQogCiAg
ICAgZGVmIGdldF9wYXRjaF91cmkoaWQpCkBAIC01Nyw2ICs1OCw4IEBAIGNsYXNzIFByZXR0eVBh
dGNoX3Rlc3QgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgICAgICBhc3NlcnRfZXF1YWwoaW5m
b1tJbmZvOjpBRERdLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJhZGQiXSwgIldyb25nIG51
bWJlciBvZiAnYWRkJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgICAgIGFzc2VydF9l
cXVhbChpbmZvW0luZm86OlJFTU9WRV0sICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbInJlbW92
ZSJdLCAiV3JvbmcgbnVtYmVyIG9mICdyZW1vdmUnIHBhcnRzIGluICIgKyBkZXNjcmlwdGlvbikK
ICAgICAgICAgYXNzZXJ0X2VxdWFsKGluZm9bSW5mbzo6U0hBUkVEXSwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsic2hhcmVkIl0sICJXcm9uZyBudW1iZXIgb2YgJ3NoYXJlZCcgcGFydHMgaW4g
IiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsiYmluYXJ5Il0sICJXcm9uZyBudW1iZXIgb2YgJ2JpbmFyeScgcGFydHMgaW4g
IiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwgJGxhc3RfcHJldHRpZnlf
cGFydF9jb3VudFsiZXh0cmFjdC1lcnJvciJdLCAiV3JvbmcgbnVtYmVyIG9mICdleHRyYWN0LWVy
cm9yJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgZW5kCiAKICAgICBkZWYgdGVzdF9w
YXRjaGVzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106839</attachid>
            <date>2011-09-08 21:31:15 -0700</date>
            <delta_ts>2011-09-09 00:21:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110909143113.patch</filename>
            <type>text/plain</type>
            <size>12918</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4MjYKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDMzMDA3YjA5MzIxOTYzZTAzYjg3MTBjZGQ0Y2EwYWVkYTQwNmE3NDQuLjUyY2M4M2NlNWFh
NWEzNjMyNTQzN2FmMGE3N2RhZjdiOGIxZmVkM2YgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTA2ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIFNlZSB0aGlzIGVtYWlsIGZyb20gdGhlIGdpdCBtYWlsaW5nIGxpc3QgYXJj
aGl2ZSBmb3IgaW5mbworICAgICAgICBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExNDY4MjQx
NzExMzMxNSZ3PTIKKworICAgICAgICBXaGVuIGRldGVybWluaW5nIGlmIGEgYmluYXJ5IGZpbGUg
cGF0Y2ggaXMgYW4gaW1hZ2Ugb3Igbm90IHdlIHNob3VsZCBhY2NlcHQKKyAgICAgICAgYm90aCBs
aXRlcmFsIGFuZCBkZWx0YSBwYXRjaCBlbmNvZGluZ3MuCisKKyAgICAgICAgV2hlbiByZWNvbnN0
cnVjdGluZyB0aGUgaW1hZ2VzIGZyb20gdGhlIHBhdGNoZXMsIGlmIHdlIGhhdmUgYSBkZWx0YSBw
YXRjaAorICAgICAgICB3ZSBtYXkgZG93bmxvYWQgdGhlIHByZXZpb3VzIHJldmlzaW9uIGZyb20g
dHJhYyB0byBnZXQgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoKKyAgICAg
ICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA5LTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByOTQ1NTQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtp
dC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5v
cmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5
ZTcyNmUxMDAyMmFiNzMxMWU2OC4uYTdhZjdlZTczNTU0YmI5ZGQ5NGM2ZWQwMzRkZGY5ZTM5ODJh
ZjFlOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1By
ZXR0eVBhdGNoLnJiCisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9Q
cmV0dHlQYXRjaC5yYgpAQCAtMSw2ICsxLDcgQEAKIHJlcXVpcmUgJ2NnaScKIHJlcXVpcmUgJ2Rp
ZmYnCiByZXF1aXJlICdvcGVuMycKK3JlcXVpcmUgJ29wZW4tdXJpJwogcmVxdWlyZSAncHAnCiBy
ZXF1aXJlICdzZXQnCiByZXF1aXJlICd0ZW1wZmlsZScKQEAgLTEzLDIyICsxNCwyNCBAQCBwdWJs
aWMKIAogICAgIGRlZiBzZWxmLnByZXR0aWZ5KHN0cmluZykKICAgICAgICAgJGxhc3RfcHJldHRp
ZnlfZmlsZV9jb3VudCA9IC0xCi0gICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7
ICJyZW1vdmUiID0+IDAsICJhZGQiID0+IDAsICJzaGFyZWQiID0+IDAgfQorICAgICAgICAkbGFz
dF9wcmV0dGlmeV9wYXJ0X2NvdW50ID0geyAicmVtb3ZlIiA9PiAwLCAiYWRkIiA9PiAwLCAic2hh
cmVkIiA9PiAwLCAiYmluYXJ5IiA9PiAwLCAiZXh0cmFjdC1lcnJvciIgPT4gMCB9CiAgICAgICAg
IHN0cmluZyA9IG5vcm1hbGl6ZV9saW5lX2VuZGluZyhzdHJpbmcpCi0gICAgICAgIGZpbGVEaWZm
cyA9IEZpbGVEaWZmLnBhcnNlKHN0cmluZykKLQogICAgICAgICBzdHIgPSBIRUFERVIgKyAiXG4i
CiAKICAgICAgICAgIyBKdXN0IGxvb2sgYXQgdGhlIGZpcnN0IGxpbmUgdG8gc2VlIGlmIGl0IGlz
IGFuIFNWTiByZXZpc2lvbiBudW1iZXIgYXMgYWRkZWQKICAgICAgICAgIyBieSB3ZWJraXQtcGF0
Y2ggZm9yIGdpdCBjaGVja291dHMuCisgICAgICAgICRnaXRfc3ZuX3JldmlzaW9uID0gMAogICAg
ICAgICBzdHJpbmcuZWFjaF9saW5lIGRvIHxsaW5lfAogICAgICAgICAgICAgbWF0Y2ggPSAvXlN1
YnZlcnNpb25cIFJldmlzaW9uOiAoXGQqKSQvLm1hdGNoKGxpbmUpCiAgICAgICAgICAgICB1bmxl
c3MgbWF0Y2gubmlsPwotICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lv
bic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICBzdHIgKz0gIjxz
cGFuIGNsYXNzPSdyZXZpc2lvbic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAg
ICAgICAgICAkZ2l0X3N2bl9yZXZpc2lvbiA9IG1hdGNoWzFdLnRvX2k7CiAgICAgICAgICAgICBl
bmQKICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGVuZAogCisgICAgICAgIGZpbGVEaWZmcyA9
IEZpbGVEaWZmLnBhcnNlKHN0cmluZykKKwogICAgICAgICAkbGFzdF9wcmV0dGlmeV9maWxlX2Nv
dW50ID0gZmlsZURpZmZzLmxlbmd0aAogICAgICAgICBzdHIgKz0gZmlsZURpZmZzLmNvbGxlY3R7
IHxkaWZmfCBkaWZmLnRvX2h0bWwgfS5qb2luCiAgICAgZW5kCkBAIC02NSw4ICs2OCwxMiBAQCBw
cml2YXRlCiAKICAgICBHSVRfQklOQVJZX0ZJTEVfTUFSS0VSX0ZPUk1BVCA9IC9eR0lUIGJpbmFy
eSBwYXRjaCQvCiAKKyAgICBHSVRfQklOQVJZX1BBVENIX0ZPUk1BVCA9IC9eKGxpdGVyYWx8ZGVs
dGEpIFxkKyQvCisKICAgICBHSVRfTElURVJBTF9GT1JNQVQgPSAvXmxpdGVyYWwgXGQrJC8KIAor
ICAgIEdJVF9ERUxUQV9GT1JNQVQgPSAvXmRlbHRhIFxkKyQvCisKICAgICBTVEFSVF9PRl9CSU5B
UllfREFUQV9GT1JNQVQgPSAvXlswLTlhLXpBLVpcK1wvPV17MjAsfS8gIyBBc3N1bWUgMjAgY2hh
cnMgd2l0aG91dCBhIHNwYWNlIGlzIGJhc2U2NCBiaW5hcnkgZGF0YS4KIAogICAgIFNUQVJUX09G
X1NFQ1RJT05fRk9STUFUID0gL15AQCAtKFxkKykoPzosKFxkKykpPyBcKyhcZCspKD86LChcZCsp
KT8gQEBccyooLiopLwpAQCAtNTA4LDcgKzUxNSw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAg
ICBAZ2l0X2luZGV4ZXMgPSBbJDEsICQyXQogICAgICAgICAgICAgICAgIHdoZW4gR0lUX0JJTkFS
WV9GSUxFX01BUktFUl9GT1JNQVQKICAgICAgICAgICAgICAgICAgICAgQGJpbmFyeSA9IHRydWUK
LSAgICAgICAgICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChsaW5lc1tp
ICsgMV0pIGFuZCBQcmV0dHlQYXRjaC5oYXNfaW1hZ2Vfc3VmZml4KEBmaWxlbmFtZSkpIHRoZW4K
KyAgICAgICAgICAgICAgICAgICAgaWYgKEdJVF9CSU5BUllfUEFUQ0hfRk9STUFULm1hdGNoKGxp
bmVzW2kgKyAxXSkgYW5kIFByZXR0eVBhdGNoLmhhc19pbWFnZV9zdWZmaXgoQGZpbGVuYW1lKSkg
dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgQGdpdF9pbWFnZSA9IHRydWUKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXJ0T2ZTZWN0aW9ucyA9IGkgKyAxCiAgICAgICAgICAgICAgICAg
ICAgIGVuZApAQCAtNTM0LDE0ICs1NDEsMjAgQEAgRU9GCiAKICAgICAgICAgICAgICAgICAgICAg
cmFpc2UgIm5vIGJpbmFyeSBjaHVua3MiIHVubGVzcyBjaHVua3MKIAotICAgICAgICAgICAgICAg
ICAgICBiaW5hcnlfY29udGVudHMgPSBjaHVua3MuemlwKEBnaXRfaW5kZXhlcykuY29sbGVjdCBk
byB8Y2h1bmssIGdpdF9pbmRleHwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWZmLmV4
dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2NodW5rKGNodW5rLCBnaXRfaW5kZXgpCi0g
ICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBmcm9tX2ZpbGVwYXRo
ID0gRmlsZURpZmYuZXh0cmFjdF9jb250ZW50c19vZl9mcm9tX3JldmlzaW9uKEBmaWxlbmFtZSwg
Y2h1bmtzWzBdLCBAZ2l0X2luZGV4ZXNbMF0pCisgICAgICAgICAgICAgICAgICAgIHRvX2ZpbGVw
YXRoID0gRmlsZURpZmYuZXh0cmFjdF9jb250ZW50c19vZl90b19yZXZpc2lvbihAZmlsZW5hbWUs
IGNodW5rc1sxXSwgQGdpdF9pbmRleGVzWzFdLCBmcm9tX2ZpbGVwYXRoLCBAZ2l0X2luZGV4ZXNb
MF0pCisgICAgICAgICAgICAgICAgICAgIGZpbGVwYXRocyA9IGZyb21fZmlsZXBhdGgsIHRvX2Zp
bGVwYXRoCisKKyAgICAgICAgICAgICAgICAgICAgYmluYXJ5X2NvbnRlbnRzID0gZmlsZXBhdGhz
LmNvbGxlY3QgeyB8ZmlsZXBhdGh8IEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkgPyBGaWxlLnJlYWQo
ZmlsZXBhdGgpIDogbmlsIH0KIAotICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfdXJscyA9IGJp
bmFyeV9jb250ZW50cy5jb2xsZWN0IHsgfGNvbnRlbnR8IGNvbnRlbnQgPyAiZGF0YTppbWFnZS9w
bmc7YmFzZTY0LCIgKyBbY29udGVudF0ucGFjaygibSIpIDogbmlsIH0KKyAgICAgICAgICAgICAg
ICAgICAgQGltYWdlX3VybHMgPSBiaW5hcnlfY29udGVudHMuY29sbGVjdCB7IHxjb250ZW50fCAo
Y29udGVudCBhbmQgbm90IGNvbnRlbnQuZW1wdHk/KSA/ICJkYXRhOmltYWdlL3BuZztiYXNlNjQs
IiArIFtjb250ZW50XS5wYWNrKCJtIikgOiBuaWwgfQogICAgICAgICAgICAgICAgICAgICBAaW1h
Z2VfY2hlY2tzdW1zID0gYmluYXJ5X2NvbnRlbnRzLmNvbGxlY3QgeyB8Y29udGVudHwgRmlsZURp
ZmYucmVhZF9jaGVja3N1bV9mcm9tX3BuZyhjb250ZW50KSB9CiAgICAgICAgICAgICAgICAgcmVz
Y3VlCisgICAgICAgICAgICAgICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImV4dHJh
Y3QtZXJyb3IiXSArPSAxCiAgICAgICAgICAgICAgICAgICAgIEBpbWFnZV9lcnJvciA9ICJFeGNl
cHRpb24gcmFpc2VkIGR1cmluZyBkZWNvZGluZyBnaXQgYmluYXJ5IHBhdGNoOjxwcmU+I3tDR0ku
ZXNjYXBlSFRNTCgkIS50b19zICsgIlxuIiArICQhLmJhY2t0cmFjZS5qb2luKCJcbiIpKX08L3By
ZT4iCisgICAgICAgICAgICAgICAgZW5zdXJlCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5s
aW5rKGZyb21fZmlsZXBhdGgpIGlmIChmcm9tX2ZpbGVwYXRoIGFuZCBGaWxlLmV4aXN0cz8oZnJv
bV9maWxlcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKHRvX2ZpbGVwYXRo
KSBpZiAodG9fZmlsZXBhdGggYW5kIEZpbGUuZXhpc3RzPyh0b19maWxlcGF0aCkpCiAgICAgICAg
ICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIG5pbApAQCAtNTg1LDYg
KzU5OCw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBl
bmQKICAgICAgICAgICAgIGVsc2lmIEBiaW5hcnkgdGhlbgorICAgICAgICAgICAgICAgICRsYXN0
X3ByZXR0aWZ5X3BhcnRfY291bnRbImJpbmFyeSJdICs9IDEKICAgICAgICAgICAgICAgICBzdHIg
Kz0gIjxzcGFuIGNsYXNzPSd0ZXh0Jz5CaW5hcnkgZmlsZSwgbm90aGluZyB0byBzZWUgaGVyZTwv
c3Bhbj4iCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc3RyICs9IEBzZWN0aW9u
cy5jb2xsZWN0eyB8c2VjdGlvbnwgc2VjdGlvbi50b19odG1sIH0uam9pbigiPGJyPlxuIikgdW5s
ZXNzIEBzZWN0aW9ucy5uaWw/CkBAIC02MzEsMzcgKzY0NSwxMTEgQEAgSGNtVj9kMDAwMDEKIEVO
RAogICAgICAgICBlbmQKIAotICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21f
Z2l0X2JpbmFyeV9jaHVuayhlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAgICAj
IFdlIHVzZSBUZW1wZmlsZSB3ZSBuZWVkIGEgdW5pcXVlIGZpbGUgYW1vbmcgcHJvY2Vzc2VzLgor
ICAgICAgICBkZWYgc2VsZi5naXRfY2hhbmdlZF9maWxlX2JpbmFyeV9wYXRjaCh0b19maWxlbmFt
ZSwgZW5jb2RlZF9jaHVuaywgdG9fZ2l0X2luZGV4LCBmcm9tX2dpdF9pbmRleCkKKyAgICAgICAg
ICAgIHJldHVybiA8PEVORAorZGlmZiAtLWdpdCBhLyN7dG9fZmlsZW5hbWV9IGIvI3t0b19maWxl
bmFtZX0KK2luZGV4ICN7ZnJvbV9naXRfaW5kZXh9Li4je3RvX2dpdF9pbmRleH0gMTAwNjQ0CitH
SVQgYmluYXJ5IHBhdGNoCisje2VuY29kZWRfY2h1bmsuam9pbigiIil9bGl0ZXJhbCAwCitIY21W
P2QwMDAwMQorCitFTkQKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZ2V0X3N2bl91
cmkocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAgImh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9y
ZXBvc2l0b3J5L3dlYmtpdC8hc3ZuL2JjLyIgKyAkZ2l0X3N2bl9yZXZpc2lvbi50b19zICsgIi90
cnVuay8iICsgKHJlcG9zaXRvcnlfcGF0aCkKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNl
bGYuZG93bmxvYWRfZnJvbV9yZXZpc2lvbl9mcm9tX3N2bihyZXBvc2l0b3J5X3BhdGgpCiAgICAg
ICAgICAgICB0ZW1wZmlsZSA9IFRlbXBmaWxlLm5ldygiUHJldHR5UGF0Y2giKQotICAgICAgICAg
ICAgIyBXZSBuZWVkIGEgZmlsZW5hbWUgd2hpY2ggZG9lc24ndCBleGlzdCB0byBhcHBseSBhIHBh
dGNoCi0gICAgICAgICAgICAjIHdoaWNoIGNyZWF0ZXMgYSBuZXcgZmlsZS4gQXBwZW5kIGEgc3Vm
Zml4IHNvIGZpbGVuYW1lCi0gICAgICAgICAgICAjIGRvZXNuJ3QgZXhpc3QuCiAgICAgICAgICAg
ICBmaWxlcGF0aCA9IHRlbXBmaWxlLnBhdGggKyAnLmJpbicKICAgICAgICAgICAgIGZpbGVuYW1l
ID0gRmlsZS5iYXNlbmFtZShmaWxlcGF0aCkKKyAgICAgICAgICAgIHN2bl91cmkgPSAgZ2V0X3N2
bl91cmkocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAgb3BlbihmaWxlcGF0aCwgJ3diJykg
ZG8gfGZpbGV8CisgICAgICAgICAgICAgICAgYmVnaW4KKyAgICAgICAgICAgICAgICAgICAgZmls
ZSA8PCBvcGVuKHN2bl91cmkpLnJlYWQKKyAgICAgICAgICAgICAgICBlbnN1cmUKKyAgICAgICAg
ICAgICAgICAgICAgZmlsZS5jbG9zZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICByZXR1cm4gZmlsZXBhdGgKKyAgICAgICAgZW5kCiAKLSAgICAgICAg
ICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X25ld19maWxlX2JpbmFyeV9wYXRjaChmaWxlbmFtZSwg
ZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQotCisgICAgICAgIGRlZiBzZWxmLnJ1bl9naXRfYXBw
bHlfb25fcGF0Y2gob3V0cHV0X2ZpbGVwYXRoLCBwYXRjaCkKICAgICAgICAgICAgICMgQXBwbHkg
dGhlIGdpdCBiaW5hcnkgcGF0Y2ggdXNpbmcgZ2l0LWFwcGx5LgotICAgICAgICAgICAgY21kID0g
R0lUX1BBVEggKyAiIGFwcGx5IC0tZGlyZWN0b3J5PSIgKyBGaWxlLmRpcm5hbWUoZmlsZXBhdGgp
CisgICAgICAgICAgICBjbWQgPSBHSVRfUEFUSCArICIgYXBwbHkgLS1kaXJlY3Rvcnk9IiArIEZp
bGUuZGlybmFtZShvdXRwdXRfZmlsZXBhdGgpCiAgICAgICAgICAgICBzdGRpbiwgc3Rkb3V0LCBz
dGRlcnIgPSAqT3BlbjMucG9wZW4zKGNtZCkKICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAg
ICAgICAgc3RkaW4ucHV0cyhwYXRjaCkKICAgICAgICAgICAgICAgICBzdGRpbi5jbG9zZQogCiAg
ICAgICAgICAgICAgICAgZXJyb3IgPSBzdGRlcnIucmVhZAorICAgICAgICAgICAgICAgIGlmIChl
cnJvciAhPSAiIikKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiRXJyb3IgcnVubmluZyAi
ICsgY21kICsgIlxuIiArICJ3aXRoIHBhdGNoOlxuIiArIHBhdGNoWzAuLjUwMF0gKyAiLi4uXG4i
ICsgZXJyb3IKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICByYWlzZSBlcnJv
ciBpZiBlcnJvciAhPSAiIgotCi0gICAgICAgICAgICAgICAgY29udGVudHMgPSBGaWxlLnJlYWQo
ZmlsZXBhdGgpCiAgICAgICAgICAgICBlbnN1cmUKICAgICAgICAgICAgICAgICBzdGRpbi5jbG9z
ZSB1bmxlc3Mgc3RkaW4uY2xvc2VkPwogICAgICAgICAgICAgICAgIHN0ZG91dC5jbG9zZQogICAg
ICAgICAgICAgICAgIHN0ZGVyci5jbG9zZQotICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKGZp
bGVuYW1lKSBpZiBGaWxlLmV4aXN0cz8oZmlsZW5hbWUpCiAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgZW5kCiAKLSAgICAgICAgICAgIHJldHVybiBuaWwgaWYgY29udGVudHMuZW1wdHk/Ci0gICAg
ICAgICAgICByZXR1cm4gY29udGVudHMKKyAgICAgICAgZGVmIHNlbGYuZXh0cmFjdF9jb250ZW50
c19mcm9tX2dpdF9iaW5hcnlfbGl0ZXJhbF9jaHVuayhlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgp
CisgICAgICAgICAgICAjIFdlIHVzZSBUZW1wZmlsZSB3ZSBuZWVkIGEgdW5pcXVlIGZpbGUgYW1v
bmcgcHJvY2Vzc2VzLgorICAgICAgICAgICAgdGVtcGZpbGUgPSBUZW1wZmlsZS5uZXcoIlByZXR0
eVBhdGNoIikKKyAgICAgICAgICAgICMgV2UgbmVlZCBhIGZpbGVuYW1lIHdoaWNoIGRvZXNuJ3Qg
ZXhpc3QgdG8gYXBwbHkgYSBwYXRjaAorICAgICAgICAgICAgIyB3aGljaCBjcmVhdGVzIGEgbmV3
IGZpbGUuIEFwcGVuZCBhIHN1ZmZpeCBzbyBmaWxlbmFtZQorICAgICAgICAgICAgIyBkb2Vzbid0
IGV4aXN0LgorICAgICAgICAgICAgZmlsZXBhdGggPSB0ZW1wZmlsZS5wYXRoICsgJy5iaW4nCisg
ICAgICAgICAgICBmaWxlbmFtZSA9IEZpbGUuYmFzZW5hbWUoZmlsZXBhdGgpCisKKyAgICAgICAg
ICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X25ld19maWxlX2JpbmFyeV9wYXRjaChmaWxlbmFtZSwg
ZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAgICAgICAgcnVuX2dpdF9hcHBseV9vbl9w
YXRjaChmaWxlcGF0aCwgcGF0Y2gpCisKKyAgICAgICAgICAgIHJldHVybiBmaWxlcGF0aAorICAg
ICAgICBlbmQKKworICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2Jp
bmFyeV9kZWx0YV9jaHVuayhmcm9tX2ZpbGVwYXRoLCBmcm9tX2dpdF9pbmRleCwgZW5jb2RlZF9j
aHVuaywgdG9fZ2l0X2luZGV4KQorICAgICAgICAgICAgIyBHZXQgYSBmcmVzaCBuZXcgdGVtcCBm
aWxlCisgICAgICAgICAgICB0ZW1wZmlsZSA9IFRlbXBmaWxlLm5ldygiUHJldHR5UGF0Y2giKQor
ICAgICAgICAgICAgZmlsZXBhdGggPSB0ZW1wZmlsZS5wYXRoICsgJy5iaW4nCisgICAgICAgICAg
ICB0b19maWxlbmFtZSA9IEZpbGUuYmFzZW5hbWUoZmlsZXBhdGgpCisgICAgICAgICAgICAjIENv
cHkgdGhlICdmcm9tJyByZXZpc2lvbiBpbnRvIHRoaXMgZmlsZQorICAgICAgICAgICAgb3Blbihm
aWxlcGF0aCwgJ3diJykgZG8gfGZpbGV8CisgICAgICAgICAgICAgICAgYmVnaW4KKyAgICAgICAg
ICAgICAgICAgICAgZmlsZSA8PCBvcGVuKGZyb21fZmlsZXBhdGgpLnJlYWQKKyAgICAgICAgICAg
ICAgICBlbnN1cmUKKyAgICAgICAgICAgICAgICAgICAgZmlsZS5jbG9zZQorICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBwYXRjaCA9IEZpbGVEaWZmLmdp
dF9jaGFuZ2VkX2ZpbGVfYmluYXJ5X3BhdGNoKHRvX2ZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCB0
b19naXRfaW5kZXgsIGZyb21fZ2l0X2luZGV4KQorICAgICAgICAgICAgcnVuX2dpdF9hcHBseV9v
bl9wYXRjaChmaWxlcGF0aCwgcGF0Y2gpCisKKyAgICAgICAgICAgIHJldHVybiBmaWxlcGF0aAor
ICAgICAgICBlbmQKKworICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX29mX2Zyb21f
cmV2aXNpb24ocmVwb3NpdG9yeV9wYXRoLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAg
ICAgICAgICAjIEZvciBsaXRlcmFsIGVuY29kZWQsIHNpbXBseSByZWNvbnN0cnVjdC4gRm9yIGRl
bHRhIGVuY29kZWQsIGRvd25sb2FkIGZyb20gc3ZuCisgICAgICAgICAgICBpZiAoR0lUX0xJVEVS
QUxfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1bmtbMF0pKSB0aGVuCisgICAgICAgICAgICAgICAg
cmV0dXJuIGV4dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2xpdGVyYWxfY2h1bmsoZW5j
b2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAgICAgICAgZWxzaWYgKEdJVF9ERUxUQV9GT1JN
QVQubWF0Y2goZW5jb2RlZF9jaHVua1swXSkpIHRoZW4KKyAgICAgICAgICAgICAgICByZXR1cm4g
ZG93bmxvYWRfZnJvbV9yZXZpc2lvbl9mcm9tX3N2bihyZXBvc2l0b3J5X3BhdGgpCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmFpc2UgIkVycm9yOiB1bmtub3duIGdpdCBwYXRj
aCBlbmNvZGluZyIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKworICAgICAgICBkZWYg
c2VsZi5leHRyYWN0X2NvbnRlbnRzX29mX3RvX3JldmlzaW9uKHJlcG9zaXRvcnlfcGF0aCwgZW5j
b2RlZF9jaHVuaywgZ2l0X2luZGV4LCBmcm9tX2ZpbGVwYXRoLCBmcm9tX2dpdF9pbmRleCkKKyAg
ICAgICAgICAgICMgRm9yIGxpdGVyYWwgZW5jb2RlZCwgc2ltcGx5IHJlY29uc3RydWN0LiBGb3Ig
ZGVsdGEgZW5jb2RlZCwgcmVjb25zdHJ1Y3QgdXNpbmcgZGVsdGEgYW5kIHByZXZpb3VzbHkKKyAg
ICAgICAgICAgICMgY29uc3RydWN0ZWQgJ2Zyb20nIHJldmlzaW9uCisgICAgICAgICAgICBpZiAo
R0lUX0xJVEVSQUxfRk9STUFULm1hdGNoKGVuY29kZWRfY2h1bmtbMF0pKSB0aGVuCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGV4dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2xpdGVyYWxf
Y2h1bmsoZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAgICAgICAgZWxzaWYgKEdJVF9E
RUxUQV9GT1JNQVQubWF0Y2goZW5jb2RlZF9jaHVua1swXSkpIHRoZW4KKyAgICAgICAgICAgICAg
ICByZXR1cm4gZXh0cmFjdF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfZGVsdGFfY2h1bmsoZnJv
bV9maWxlcGF0aCwgZnJvbV9naXRfaW5kZXgsIGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZSAiRXJyb3I6IHVua25vd24gZ2l0
IHBhdGNoIGVuY29kaW5nIgorICAgICAgICAgICAgZW5kCiAgICAgICAgIGVuZAogICAgIGVuZAog
CkBAIC04MDQsNyArODkyLDcgQEAgRU5ECiAgICAgICAgICAgICBzdHIgKz0gQGJsb2Nrcy5jb2xs
ZWN0eyB8YmxvY2t8IGJsb2NrLnRvX2h0bWwgfS5qb2luCiAgICAgICAgICAgICBzdHIgKz0gIjwv
ZGl2PlxuIgogICAgICAgICBlbmQKLSAgICAgICAgCisKICAgICAgICAgZGVmIHNlbGYucGFyc2Uo
bGluZXMpCiAgICAgICAgICAgICBsaW5lc0ZvclNlY3Rpb25zID0gbGluZXMuaW5qZWN0KFtbXV0p
IGRvIHxzZWN0aW9ucywgbGluZXwKICAgICAgICAgICAgICAgICBzZWN0aW9ucyA8PCBbXSBpZiBs
aW5lID1+IC9eQEAvCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5
UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5yYiBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0
dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiCmluZGV4IDhiNzE0Y2I4MThlZWQ5NWI4OWQ4OTg5
MWFmZjA2NTliMDFjMTNhMDIuLmVkNDE2OTNiNzJmMjBkZWJiZGQyZGJjNTZhY2RhMTVjYWMwMTdh
ZTggMTAwNzU1Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9QcmV0
dHlQYXRjaF90ZXN0LnJiCisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRj
aC9QcmV0dHlQYXRjaF90ZXN0LnJiCkBAIC0yNiw2ICsyNiw3IEBAIGNsYXNzIFByZXR0eVBhdGNo
X3Rlc3QgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgICAgICA4MDg1MiA9PiBbIkNoYW5nZXMg
b25lIGxpbmUgcGx1cyBDaGFuZ2VMb2ciLCAyLCAyLCAxLCA0XSwKICAgICAgICAgODMxMjcgPT4g
WyJPbmx5IGFkZCBzdHVmZiIsIDIsIDIsIDAsIDNdLAogICAgICAgICA4NTA3MSA9PiBbIkFkZHMg
YW5kIHJlbW92ZXMgZnJvbSBhIGZpbGUgcGx1cyBnaXQgc2lnbmF0dXJlIiwgMiwgNSwgMywgOV0s
CisgICAgICAgIDEwNjM2OCA9PiBbIkltYWdlcyB3aXRoIGdpdCBkZWx0YSBiaW5hcnkgcGF0Y2gi
LCA2OSwgOCwgMjMsIDEwXSwKICAgICB9CiAKICAgICBkZWYgZ2V0X3BhdGNoX3VyaShpZCkKQEAg
LTU3LDYgKzU4LDggQEAgY2xhc3MgUHJldHR5UGF0Y2hfdGVzdCA8IFRlc3Q6OlVuaXQ6OlRlc3RD
YXNlCiAgICAgICAgIGFzc2VydF9lcXVhbChpbmZvW0luZm86OkFERF0sICRsYXN0X3ByZXR0aWZ5
X3BhcnRfY291bnRbImFkZCJdLCAiV3JvbmcgbnVtYmVyIG9mICdhZGQnIHBhcnRzIGluICIgKyBk
ZXNjcmlwdGlvbikKICAgICAgICAgYXNzZXJ0X2VxdWFsKGluZm9bSW5mbzo6UkVNT1ZFXSwgJGxh
c3RfcHJldHRpZnlfcGFydF9jb3VudFsicmVtb3ZlIl0sICJXcm9uZyBudW1iZXIgb2YgJ3JlbW92
ZScgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9uKQogICAgICAgICBhc3NlcnRfZXF1YWwoaW5mb1tJ
bmZvOjpTSEFSRURdLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJzaGFyZWQiXSwgIldyb25n
IG51bWJlciBvZiAnc2hhcmVkJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCisgICAgICAgIGFz
c2VydF9lcXVhbCgwLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJiaW5hcnkiXSwgIldyb25n
IG51bWJlciBvZiAnYmluYXJ5JyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCisgICAgICAgIGFz
c2VydF9lcXVhbCgwLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJleHRyYWN0LWVycm9yIl0s
ICJXcm9uZyBudW1iZXIgb2YgJ2V4dHJhY3QtZXJyb3InIHBhcnRzIGluICIgKyBkZXNjcmlwdGlv
bikKICAgICBlbmQKIAogICAgIGRlZiB0ZXN0X3BhdGNoZXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106845</attachid>
            <date>2011-09-09 00:21:14 -0700</date>
            <delta_ts>2011-09-11 18:34:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110909172112.patch</filename>
            <type>text/plain</type>
            <size>12509</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4MjYKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDMzMDA3YjA5MzIxOTYzZTAzYjg3MTBjZGQ0Y2EwYWVkYTQwNmE3NDQuLjUyY2M4M2NlNWFh
NWEzNjMyNTQzN2FmMGE3N2RhZjdiOGIxZmVkM2YgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTA2ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIFNlZSB0aGlzIGVtYWlsIGZyb20gdGhlIGdpdCBtYWlsaW5nIGxpc3QgYXJj
aGl2ZSBmb3IgaW5mbworICAgICAgICBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExNDY4MjQx
NzExMzMxNSZ3PTIKKworICAgICAgICBXaGVuIGRldGVybWluaW5nIGlmIGEgYmluYXJ5IGZpbGUg
cGF0Y2ggaXMgYW4gaW1hZ2Ugb3Igbm90IHdlIHNob3VsZCBhY2NlcHQKKyAgICAgICAgYm90aCBs
aXRlcmFsIGFuZCBkZWx0YSBwYXRjaCBlbmNvZGluZ3MuCisKKyAgICAgICAgV2hlbiByZWNvbnN0
cnVjdGluZyB0aGUgaW1hZ2VzIGZyb20gdGhlIHBhdGNoZXMsIGlmIHdlIGhhdmUgYSBkZWx0YSBw
YXRjaAorICAgICAgICB3ZSBtYXkgZG93bmxvYWQgdGhlIHByZXZpb3VzIHJldmlzaW9uIGZyb20g
dHJhYyB0byBnZXQgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoKKyAgICAg
ICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA5LTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByOTQ1NTQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtp
dC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5v
cmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5
ZTcyNmUxMDAyMmFiNzMxMWU2OC4uYzNkOGM3MmUzM2I1NGRlYTg2YmI1MTIxMTNhMjk1ZTJjMzhk
ODQ0OSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1By
ZXR0eVBhdGNoLnJiCisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9Q
cmV0dHlQYXRjaC5yYgpAQCAtMSw2ICsxLDcgQEAKIHJlcXVpcmUgJ2NnaScKIHJlcXVpcmUgJ2Rp
ZmYnCiByZXF1aXJlICdvcGVuMycKK3JlcXVpcmUgJ29wZW4tdXJpJwogcmVxdWlyZSAncHAnCiBy
ZXF1aXJlICdzZXQnCiByZXF1aXJlICd0ZW1wZmlsZScKQEAgLTEzLDIyICsxNCwyNCBAQCBwdWJs
aWMKIAogICAgIGRlZiBzZWxmLnByZXR0aWZ5KHN0cmluZykKICAgICAgICAgJGxhc3RfcHJldHRp
ZnlfZmlsZV9jb3VudCA9IC0xCi0gICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7
ICJyZW1vdmUiID0+IDAsICJhZGQiID0+IDAsICJzaGFyZWQiID0+IDAgfQorICAgICAgICAkbGFz
dF9wcmV0dGlmeV9wYXJ0X2NvdW50ID0geyAicmVtb3ZlIiA9PiAwLCAiYWRkIiA9PiAwLCAic2hh
cmVkIiA9PiAwLCAiYmluYXJ5IiA9PiAwLCAiZXh0cmFjdC1lcnJvciIgPT4gMCB9CiAgICAgICAg
IHN0cmluZyA9IG5vcm1hbGl6ZV9saW5lX2VuZGluZyhzdHJpbmcpCi0gICAgICAgIGZpbGVEaWZm
cyA9IEZpbGVEaWZmLnBhcnNlKHN0cmluZykKLQogICAgICAgICBzdHIgPSBIRUFERVIgKyAiXG4i
CiAKICAgICAgICAgIyBKdXN0IGxvb2sgYXQgdGhlIGZpcnN0IGxpbmUgdG8gc2VlIGlmIGl0IGlz
IGFuIFNWTiByZXZpc2lvbiBudW1iZXIgYXMgYWRkZWQKICAgICAgICAgIyBieSB3ZWJraXQtcGF0
Y2ggZm9yIGdpdCBjaGVja291dHMuCisgICAgICAgICRnaXRfc3ZuX3JldmlzaW9uID0gMAogICAg
ICAgICBzdHJpbmcuZWFjaF9saW5lIGRvIHxsaW5lfAogICAgICAgICAgICAgbWF0Y2ggPSAvXlN1
YnZlcnNpb25cIFJldmlzaW9uOiAoXGQqKSQvLm1hdGNoKGxpbmUpCiAgICAgICAgICAgICB1bmxl
c3MgbWF0Y2gubmlsPwotICAgICAgICAgICAgICBzdHIgKz0gIjxzcGFuIGNsYXNzPSdyZXZpc2lv
bic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAgICAgICAgICBzdHIgKz0gIjxz
cGFuIGNsYXNzPSdyZXZpc2lvbic+IiArIG1hdGNoWzFdICsgIjwvc3Bhbj5cbiIKKyAgICAgICAg
ICAgICAgICAkZ2l0X3N2bl9yZXZpc2lvbiA9IG1hdGNoWzFdLnRvX2k7CiAgICAgICAgICAgICBl
bmQKICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGVuZAogCisgICAgICAgIGZpbGVEaWZmcyA9
IEZpbGVEaWZmLnBhcnNlKHN0cmluZykKKwogICAgICAgICAkbGFzdF9wcmV0dGlmeV9maWxlX2Nv
dW50ID0gZmlsZURpZmZzLmxlbmd0aAogICAgICAgICBzdHIgKz0gZmlsZURpZmZzLmNvbGxlY3R7
IHxkaWZmfCBkaWZmLnRvX2h0bWwgfS5qb2luCiAgICAgZW5kCkBAIC02NSw4ICs2OCwxMiBAQCBw
cml2YXRlCiAKICAgICBHSVRfQklOQVJZX0ZJTEVfTUFSS0VSX0ZPUk1BVCA9IC9eR0lUIGJpbmFy
eSBwYXRjaCQvCiAKKyAgICBHSVRfQklOQVJZX1BBVENIX0ZPUk1BVCA9IC9eKGxpdGVyYWx8ZGVs
dGEpIFxkKyQvCisKICAgICBHSVRfTElURVJBTF9GT1JNQVQgPSAvXmxpdGVyYWwgXGQrJC8KIAor
ICAgIEdJVF9ERUxUQV9GT1JNQVQgPSAvXmRlbHRhIFxkKyQvCisKICAgICBTVEFSVF9PRl9CSU5B
UllfREFUQV9GT1JNQVQgPSAvXlswLTlhLXpBLVpcK1wvPV17MjAsfS8gIyBBc3N1bWUgMjAgY2hh
cnMgd2l0aG91dCBhIHNwYWNlIGlzIGJhc2U2NCBiaW5hcnkgZGF0YS4KIAogICAgIFNUQVJUX09G
X1NFQ1RJT05fRk9STUFUID0gL15AQCAtKFxkKykoPzosKFxkKykpPyBcKyhcZCspKD86LChcZCsp
KT8gQEBccyooLiopLwpAQCAtNTA4LDcgKzUxNSw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAg
ICBAZ2l0X2luZGV4ZXMgPSBbJDEsICQyXQogICAgICAgICAgICAgICAgIHdoZW4gR0lUX0JJTkFS
WV9GSUxFX01BUktFUl9GT1JNQVQKICAgICAgICAgICAgICAgICAgICAgQGJpbmFyeSA9IHRydWUK
LSAgICAgICAgICAgICAgICAgICAgaWYgKEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChsaW5lc1tp
ICsgMV0pIGFuZCBQcmV0dHlQYXRjaC5oYXNfaW1hZ2Vfc3VmZml4KEBmaWxlbmFtZSkpIHRoZW4K
KyAgICAgICAgICAgICAgICAgICAgaWYgKEdJVF9CSU5BUllfUEFUQ0hfRk9STUFULm1hdGNoKGxp
bmVzW2kgKyAxXSkgYW5kIFByZXR0eVBhdGNoLmhhc19pbWFnZV9zdWZmaXgoQGZpbGVuYW1lKSkg
dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgQGdpdF9pbWFnZSA9IHRydWUKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXJ0T2ZTZWN0aW9ucyA9IGkgKyAxCiAgICAgICAgICAgICAgICAg
ICAgIGVuZApAQCAtNTM0LDE0ICs1NDEsMjAgQEAgRU9GCiAKICAgICAgICAgICAgICAgICAgICAg
cmFpc2UgIm5vIGJpbmFyeSBjaHVua3MiIHVubGVzcyBjaHVua3MKIAotICAgICAgICAgICAgICAg
ICAgICBiaW5hcnlfY29udGVudHMgPSBjaHVua3MuemlwKEBnaXRfaW5kZXhlcykuY29sbGVjdCBk
byB8Y2h1bmssIGdpdF9pbmRleHwKLSAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWZmLmV4
dHJhY3RfY29udGVudHNfZnJvbV9naXRfYmluYXJ5X2NodW5rKGNodW5rLCBnaXRfaW5kZXgpCi0g
ICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBmcm9tX2ZpbGVwYXRo
ID0gRmlsZURpZmYuZXh0cmFjdF9jb250ZW50c19vZl9mcm9tX3JldmlzaW9uKEBmaWxlbmFtZSwg
Y2h1bmtzWzBdLCBAZ2l0X2luZGV4ZXNbMF0pCisgICAgICAgICAgICAgICAgICAgIHRvX2ZpbGVw
YXRoID0gRmlsZURpZmYuZXh0cmFjdF9jb250ZW50c19vZl90b19yZXZpc2lvbihAZmlsZW5hbWUs
IGNodW5rc1sxXSwgQGdpdF9pbmRleGVzWzFdLCBmcm9tX2ZpbGVwYXRoLCBAZ2l0X2luZGV4ZXNb
MF0pCisgICAgICAgICAgICAgICAgICAgIGZpbGVwYXRocyA9IGZyb21fZmlsZXBhdGgsIHRvX2Zp
bGVwYXRoCisKKyAgICAgICAgICAgICAgICAgICAgYmluYXJ5X2NvbnRlbnRzID0gZmlsZXBhdGhz
LmNvbGxlY3QgeyB8ZmlsZXBhdGh8IEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkgPyBGaWxlLnJlYWQo
ZmlsZXBhdGgpIDogbmlsIH0KIAotICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfdXJscyA9IGJp
bmFyeV9jb250ZW50cy5jb2xsZWN0IHsgfGNvbnRlbnR8IGNvbnRlbnQgPyAiZGF0YTppbWFnZS9w
bmc7YmFzZTY0LCIgKyBbY29udGVudF0ucGFjaygibSIpIDogbmlsIH0KKyAgICAgICAgICAgICAg
ICAgICAgQGltYWdlX3VybHMgPSBiaW5hcnlfY29udGVudHMuY29sbGVjdCB7IHxjb250ZW50fCAo
Y29udGVudCBhbmQgbm90IGNvbnRlbnQuZW1wdHk/KSA/ICJkYXRhOmltYWdlL3BuZztiYXNlNjQs
IiArIFtjb250ZW50XS5wYWNrKCJtIikgOiBuaWwgfQogICAgICAgICAgICAgICAgICAgICBAaW1h
Z2VfY2hlY2tzdW1zID0gYmluYXJ5X2NvbnRlbnRzLmNvbGxlY3QgeyB8Y29udGVudHwgRmlsZURp
ZmYucmVhZF9jaGVja3N1bV9mcm9tX3BuZyhjb250ZW50KSB9CiAgICAgICAgICAgICAgICAgcmVz
Y3VlCisgICAgICAgICAgICAgICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImV4dHJh
Y3QtZXJyb3IiXSArPSAxCiAgICAgICAgICAgICAgICAgICAgIEBpbWFnZV9lcnJvciA9ICJFeGNl
cHRpb24gcmFpc2VkIGR1cmluZyBkZWNvZGluZyBnaXQgYmluYXJ5IHBhdGNoOjxwcmU+I3tDR0ku
ZXNjYXBlSFRNTCgkIS50b19zICsgIlxuIiArICQhLmJhY2t0cmFjZS5qb2luKCJcbiIpKX08L3By
ZT4iCisgICAgICAgICAgICAgICAgZW5zdXJlCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5s
aW5rKGZyb21fZmlsZXBhdGgpIGlmIChmcm9tX2ZpbGVwYXRoIGFuZCBGaWxlLmV4aXN0cz8oZnJv
bV9maWxlcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIEZpbGUudW5saW5rKHRvX2ZpbGVwYXRo
KSBpZiAodG9fZmlsZXBhdGggYW5kIEZpbGUuZXhpc3RzPyh0b19maWxlcGF0aCkpCiAgICAgICAg
ICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIG5pbApAQCAtNTg1LDYg
KzU5OCw3IEBAIEVPRgogICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBl
bmQKICAgICAgICAgICAgIGVsc2lmIEBiaW5hcnkgdGhlbgorICAgICAgICAgICAgICAgICRsYXN0
X3ByZXR0aWZ5X3BhcnRfY291bnRbImJpbmFyeSJdICs9IDEKICAgICAgICAgICAgICAgICBzdHIg
Kz0gIjxzcGFuIGNsYXNzPSd0ZXh0Jz5CaW5hcnkgZmlsZSwgbm90aGluZyB0byBzZWUgaGVyZTwv
c3Bhbj4iCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc3RyICs9IEBzZWN0aW9u
cy5jb2xsZWN0eyB8c2VjdGlvbnwgc2VjdGlvbi50b19odG1sIH0uam9pbigiPGJyPlxuIikgdW5s
ZXNzIEBzZWN0aW9ucy5uaWw/CkBAIC02MzEsMzcgKzY0NSw5NyBAQCBIY21WP2QwMDAwMQogRU5E
CiAgICAgICAgIGVuZAogCi0gICAgICAgIGRlZiBzZWxmLmV4dHJhY3RfY29udGVudHNfZnJvbV9n
aXRfYmluYXJ5X2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKLSAgICAgICAgICAgICMg
V2UgdXNlIFRlbXBmaWxlIHdlIG5lZWQgYSB1bmlxdWUgZmlsZSBhbW9uZyBwcm9jZXNzZXMuCisg
ICAgICAgIGRlZiBzZWxmLmdpdF9jaGFuZ2VkX2ZpbGVfYmluYXJ5X3BhdGNoKHRvX2ZpbGVuYW1l
LCBlbmNvZGVkX2NodW5rLCB0b19naXRfaW5kZXgsIGZyb21fZ2l0X2luZGV4KQorICAgICAgICAg
ICAgcmV0dXJuIDw8RU5ECitkaWZmIC0tZ2l0IGEvI3t0b19maWxlbmFtZX0gYi8je3RvX2ZpbGVu
YW1lfQoraW5kZXggI3tmcm9tX2dpdF9pbmRleH0uLiN7dG9fZ2l0X2luZGV4fSAxMDA2NDQKK0dJ
VCBiaW5hcnkgcGF0Y2gKKyN7ZW5jb2RlZF9jaHVuay5qb2luKCIiKX1saXRlcmFsIDAKK0hjbVY/
ZDAwMDAxCisKK0VORAorICAgICAgICBlbmQKKworICAgICAgICBkZWYgc2VsZi5nZXRfc3ZuX3Vy
aShyZXBvc2l0b3J5X3BhdGgpCisgICAgICAgICAgICAiaHR0cDovL3N2bi53ZWJraXQub3JnL3Jl
cG9zaXRvcnkvd2Via2l0LyFzdm4vYmMvIiArICRnaXRfc3ZuX3JldmlzaW9uLnRvX3MgKyAiL3Ry
dW5rLyIgKyAocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICBlbmQKKworICAgICAgICBkZWYgc2Vs
Zi5nZXRfbmV3X3RlbXBfZmlsZXBhdGhfYW5kX25hbWUKICAgICAgICAgICAgIHRlbXBmaWxlID0g
VGVtcGZpbGUubmV3KCJQcmV0dHlQYXRjaCIpCi0gICAgICAgICAgICAjIFdlIG5lZWQgYSBmaWxl
bmFtZSB3aGljaCBkb2Vzbid0IGV4aXN0IHRvIGFwcGx5IGEgcGF0Y2gKLSAgICAgICAgICAgICMg
d2hpY2ggY3JlYXRlcyBhIG5ldyBmaWxlLiBBcHBlbmQgYSBzdWZmaXggc28gZmlsZW5hbWUKLSAg
ICAgICAgICAgICMgZG9lc24ndCBleGlzdC4KICAgICAgICAgICAgIGZpbGVwYXRoID0gdGVtcGZp
bGUucGF0aCArICcuYmluJwogICAgICAgICAgICAgZmlsZW5hbWUgPSBGaWxlLmJhc2VuYW1lKGZp
bGVwYXRoKQorICAgICAgICAgICAgcmV0dXJuIGZpbGVwYXRoLCBmaWxlbmFtZQorICAgICAgICBl
bmQKIAotICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5naXRfbmV3X2ZpbGVfYmluYXJ5X3Bh
dGNoKGZpbGVuYW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgIGRlZiBzZWxm
LmNvcHlfY29udGVudHNfaW50b19maWxlcGF0aCh0b19wYXRoLCBmcm9tX3BhdGgpCisgICAgICAg
ICAgICBvcGVuKHRvX3BhdGgsICd3YicpIGRvIHx0b19maWxlfAorICAgICAgICAgICAgICAgIHRv
X2ZpbGUgPDwgb3Blbihmcm9tX3BhdGgpIHsgfGZyb21fZmlsZXwgZnJvbV9maWxlLnJlYWR9Cisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCiAKKyAgICAgICAgZGVmIHNlbGYuZG93bmxvYWRf
ZnJvbV9yZXZpc2lvbl9mcm9tX3N2bihyZXBvc2l0b3J5X3BhdGgpCisgICAgICAgICAgICBmaWxl
cGF0aCwgZmlsZW5hbWUgPSBnZXRfbmV3X3RlbXBfZmlsZXBhdGhfYW5kX25hbWUKKyAgICAgICAg
ICAgIHN2bl91cmkgPSAgZ2V0X3N2bl91cmkocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAg
Y29weV9jb250ZW50c19pbnRvX2ZpbGVwYXRoKGZpbGVwYXRoLCBzdm5fdXJpKQorICAgICAgICAg
ICAgcmV0dXJuIGZpbGVwYXRoCisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxmLnJ1bl9n
aXRfYXBwbHlfb25fcGF0Y2gob3V0cHV0X2ZpbGVwYXRoLCBwYXRjaCkKICAgICAgICAgICAgICMg
QXBwbHkgdGhlIGdpdCBiaW5hcnkgcGF0Y2ggdXNpbmcgZ2l0LWFwcGx5LgotICAgICAgICAgICAg
Y21kID0gR0lUX1BBVEggKyAiIGFwcGx5IC0tZGlyZWN0b3J5PSIgKyBGaWxlLmRpcm5hbWUoZmls
ZXBhdGgpCisgICAgICAgICAgICBjbWQgPSBHSVRfUEFUSCArICIgYXBwbHkgLS1kaXJlY3Rvcnk9
IiArIEZpbGUuZGlybmFtZShvdXRwdXRfZmlsZXBhdGgpCiAgICAgICAgICAgICBzdGRpbiwgc3Rk
b3V0LCBzdGRlcnIgPSAqT3BlbjMucG9wZW4zKGNtZCkKICAgICAgICAgICAgIGJlZ2luCiAgICAg
ICAgICAgICAgICAgc3RkaW4ucHV0cyhwYXRjaCkKICAgICAgICAgICAgICAgICBzdGRpbi5jbG9z
ZQogCiAgICAgICAgICAgICAgICAgZXJyb3IgPSBzdGRlcnIucmVhZAorICAgICAgICAgICAgICAg
IGlmIChlcnJvciAhPSAiIikKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiRXJyb3IgcnVu
bmluZyAiICsgY21kICsgIlxuIiArICJ3aXRoIHBhdGNoOlxuIiArIHBhdGNoWzAuLjUwMF0gKyAi
Li4uXG4iICsgZXJyb3IKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICByYWlz
ZSBlcnJvciBpZiBlcnJvciAhPSAiIgotCi0gICAgICAgICAgICAgICAgY29udGVudHMgPSBGaWxl
LnJlYWQoZmlsZXBhdGgpCiAgICAgICAgICAgICBlbnN1cmUKICAgICAgICAgICAgICAgICBzdGRp
bi5jbG9zZSB1bmxlc3Mgc3RkaW4uY2xvc2VkPwogICAgICAgICAgICAgICAgIHN0ZG91dC5jbG9z
ZQogICAgICAgICAgICAgICAgIHN0ZGVyci5jbG9zZQotICAgICAgICAgICAgICAgIEZpbGUudW5s
aW5rKGZpbGVuYW1lKSBpZiBGaWxlLmV4aXN0cz8oZmlsZW5hbWUpCiAgICAgICAgICAgICBlbmQK
KyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZXh0cmFjdF9jb250ZW50c19mcm9tX2dp
dF9iaW5hcnlfbGl0ZXJhbF9jaHVuayhlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAg
ICAgICBmaWxlcGF0aCwgZmlsZW5hbWUgPSBnZXRfbmV3X3RlbXBfZmlsZXBhdGhfYW5kX25hbWUK
KyAgICAgICAgICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X25ld19maWxlX2JpbmFyeV9wYXRjaChm
aWxlbmFtZSwgZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAgICAgICAgcnVuX2dpdF9h
cHBseV9vbl9wYXRjaChmaWxlcGF0aCwgcGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gZmlsZXBh
dGgKKyAgICAgICAgZW5kCiAKLSAgICAgICAgICAgIHJldHVybiBuaWwgaWYgY29udGVudHMuZW1w
dHk/Ci0gICAgICAgICAgICByZXR1cm4gY29udGVudHMKKyAgICAgICAgZGVmIHNlbGYuZXh0cmFj
dF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfZGVsdGFfY2h1bmsoZnJvbV9maWxlcGF0aCwgZnJv
bV9naXRfaW5kZXgsIGVuY29kZWRfY2h1bmssIHRvX2dpdF9pbmRleCkKKyAgICAgICAgICAgIHRv
X2ZpbGVwYXRoLCB0b19maWxlbmFtZSA9IGdldF9uZXdfdGVtcF9maWxlcGF0aF9hbmRfbmFtZQor
ICAgICAgICAgICAgY29weV9jb250ZW50c19pbnRvX2ZpbGVwYXRoKHRvX2ZpbGVwYXRoLCBmcm9t
X2ZpbGVwYXRoKQorICAgICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5naXRfY2hhbmdlZF9maWxl
X2JpbmFyeV9wYXRjaCh0b19maWxlbmFtZSwgZW5jb2RlZF9jaHVuaywgdG9fZ2l0X2luZGV4LCBm
cm9tX2dpdF9pbmRleCkKKyAgICAgICAgICAgIHJ1bl9naXRfYXBwbHlfb25fcGF0Y2godG9fZmls
ZXBhdGgsIHBhdGNoKQorICAgICAgICAgICAgcmV0dXJuIHRvX2ZpbGVwYXRoCisgICAgICAgIGVu
ZAorCisgICAgICAgIGRlZiBzZWxmLmV4dHJhY3RfY29udGVudHNfb2ZfZnJvbV9yZXZpc2lvbihy
ZXBvc2l0b3J5X3BhdGgsIGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAgICMg
Rm9yIGxpdGVyYWwgZW5jb2RlZCwgc2ltcGx5IHJlY29uc3RydWN0LiBGb3IgZGVsdGEgZW5jb2Rl
ZCwgZG93bmxvYWQgZnJvbSBzdm4KKyAgICAgICAgICAgIGlmIChHSVRfTElURVJBTF9GT1JNQVQu
bWF0Y2goZW5jb2RlZF9jaHVua1swXSkpIHRoZW4KKyAgICAgICAgICAgICAgICByZXR1cm4gZXh0
cmFjdF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfbGl0ZXJhbF9jaHVuayhlbmNvZGVkX2NodW5r
LCBnaXRfaW5kZXgpCisgICAgICAgICAgICBlbHNpZiAoR0lUX0RFTFRBX0ZPUk1BVC5tYXRjaChl
bmNvZGVkX2NodW5rWzBdKSkgdGhlbgorICAgICAgICAgICAgICAgIHJldHVybiBkb3dubG9hZF9m
cm9tX3JldmlzaW9uX2Zyb21fc3ZuKHJlcG9zaXRvcnlfcGF0aCkKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICByYWlzZSAiRXJyb3I6IHVua25vd24gZ2l0IHBhdGNoIGVuY29kaW5n
IgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorCisgICAgICAgIGRlZiBzZWxmLmV4dHJh
Y3RfY29udGVudHNfb2ZfdG9fcmV2aXNpb24ocmVwb3NpdG9yeV9wYXRoLCBlbmNvZGVkX2NodW5r
LCBnaXRfaW5kZXgsIGZyb21fZmlsZXBhdGgsIGZyb21fZ2l0X2luZGV4KQorICAgICAgICAgICAg
IyBGb3IgbGl0ZXJhbCBlbmNvZGVkLCBzaW1wbHkgcmVjb25zdHJ1Y3QuIEZvciBkZWx0YSBlbmNv
ZGVkLCByZWNvbnN0cnVjdCB1c2luZyBkZWx0YSBhbmQgcHJldmlvdXNseQorICAgICAgICAgICAg
IyBjb25zdHJ1Y3RlZCAnZnJvbScgcmV2aXNpb24KKyAgICAgICAgICAgIGlmIChHSVRfTElURVJB
TF9GT1JNQVQubWF0Y2goZW5jb2RlZF9jaHVua1swXSkpIHRoZW4KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZXh0cmFjdF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfbGl0ZXJhbF9jaHVuayhlbmNv
ZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgICAgICBlbHNpZiAoR0lUX0RFTFRBX0ZPUk1B
VC5tYXRjaChlbmNvZGVkX2NodW5rWzBdKSkgdGhlbgorICAgICAgICAgICAgICAgIHJldHVybiBl
eHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9kZWx0YV9jaHVuayhmcm9tX2ZpbGVwYXRo
LCBmcm9tX2dpdF9pbmRleCwgZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlICJFcnJvcjogdW5rbm93biBnaXQgcGF0Y2ggZW5j
b2RpbmciCisgICAgICAgICAgICBlbmQKICAgICAgICAgZW5kCiAgICAgZW5kCiAKQEAgLTgwNCw3
ICs4NzgsNyBAQCBFTkQKICAgICAgICAgICAgIHN0ciArPSBAYmxvY2tzLmNvbGxlY3R7IHxibG9j
a3wgYmxvY2sudG9faHRtbCB9LmpvaW4KICAgICAgICAgICAgIHN0ciArPSAiPC9kaXY+XG4iCiAg
ICAgICAgIGVuZAotICAgICAgICAKKwogICAgICAgICBkZWYgc2VsZi5wYXJzZShsaW5lcykKICAg
ICAgICAgICAgIGxpbmVzRm9yU2VjdGlvbnMgPSBsaW5lcy5pbmplY3QoW1tdXSkgZG8gfHNlY3Rp
b25zLCBsaW5lfAogICAgICAgICAgICAgICAgIHNlY3Rpb25zIDw8IFtdIGlmIGxpbmUgPX4gL15A
QC8KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9QcmV0
dHlQYXRjaF90ZXN0LnJiIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1By
ZXR0eVBhdGNoX3Rlc3QucmIKaW5kZXggOGI3MTRjYjgxOGVlZDk1Yjg5ZDg5ODkxYWZmMDY1OWIw
MWMxM2EwMi4uZWQ0MTY5M2I3MmYyMGRlYmJkZDJkYmM1NmFjZGExNWNhYzAxN2FlOCAxMDA3NTUK
LS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBhdGNoX3Rl
c3QucmIKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBh
dGNoX3Rlc3QucmIKQEAgLTI2LDYgKzI2LDcgQEAgY2xhc3MgUHJldHR5UGF0Y2hfdGVzdCA8IFRl
c3Q6OlVuaXQ6OlRlc3RDYXNlCiAgICAgICAgIDgwODUyID0+IFsiQ2hhbmdlcyBvbmUgbGluZSBw
bHVzIENoYW5nZUxvZyIsIDIsIDIsIDEsIDRdLAogICAgICAgICA4MzEyNyA9PiBbIk9ubHkgYWRk
IHN0dWZmIiwgMiwgMiwgMCwgM10sCiAgICAgICAgIDg1MDcxID0+IFsiQWRkcyBhbmQgcmVtb3Zl
cyBmcm9tIGEgZmlsZSBwbHVzIGdpdCBzaWduYXR1cmUiLCAyLCA1LCAzLCA5XSwKKyAgICAgICAg
MTA2MzY4ID0+IFsiSW1hZ2VzIHdpdGggZ2l0IGRlbHRhIGJpbmFyeSBwYXRjaCIsIDY5LCA4LCAy
MywgMTBdLAogICAgIH0KIAogICAgIGRlZiBnZXRfcGF0Y2hfdXJpKGlkKQpAQCAtNTcsNiArNTgs
OCBAQCBjbGFzcyBQcmV0dHlQYXRjaF90ZXN0IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICAgICAg
ICAgYXNzZXJ0X2VxdWFsKGluZm9bSW5mbzo6QUREXSwgJGxhc3RfcHJldHRpZnlfcGFydF9jb3Vu
dFsiYWRkIl0sICJXcm9uZyBudW1iZXIgb2YgJ2FkZCcgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9u
KQogICAgICAgICBhc3NlcnRfZXF1YWwoaW5mb1tJbmZvOjpSRU1PVkVdLCAkbGFzdF9wcmV0dGlm
eV9wYXJ0X2NvdW50WyJyZW1vdmUiXSwgIldyb25nIG51bWJlciBvZiAncmVtb3ZlJyBwYXJ0cyBp
biAiICsgZGVzY3JpcHRpb24pCiAgICAgICAgIGFzc2VydF9lcXVhbChpbmZvW0luZm86OlNIQVJF
RF0sICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbInNoYXJlZCJdLCAiV3JvbmcgbnVtYmVyIG9m
ICdzaGFyZWQnIHBhcnRzIGluICIgKyBkZXNjcmlwdGlvbikKKyAgICAgICAgYXNzZXJ0X2VxdWFs
KDAsICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImJpbmFyeSJdLCAiV3JvbmcgbnVtYmVyIG9m
ICdiaW5hcnknIHBhcnRzIGluICIgKyBkZXNjcmlwdGlvbikKKyAgICAgICAgYXNzZXJ0X2VxdWFs
KDAsICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnRbImV4dHJhY3QtZXJyb3IiXSwgIldyb25nIG51
bWJlciBvZiAnZXh0cmFjdC1lcnJvcicgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9uKQogICAgIGVu
ZAogCiAgICAgZGVmIHRlc3RfcGF0Y2hlcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107012</attachid>
            <date>2011-09-11 18:34:26 -0700</date>
            <delta_ts>2011-09-14 21:07:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67628-20110912113424.patch</filename>
            <type>text/plain</type>
            <size>12448</size>
            <attacher name="Ben Wells">benwells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4MjYKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmlu
ZGV4IDMzMDA3YjA5MzIxOTYzZTAzYjg3MTBjZGQ0Y2EwYWVkYTQwNmE3NDQuLjJmNjlkZDA3OTIy
Yjc3YjU0ZTEzMDk3ZDVhZWZiYmVkZGRjOWYxNjcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL2J1Z3Mu
d2Via2l0Lm9yZy9DaGFuZ2VMb2cKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTA2ICBCZW4gV2VsbHMgIDxiZW53ZWxsc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJldHR5UGF0Y2ggc2hvdWxkIGhhbmRsZSAiZGVsdGEi
IHBhdGNoIG1lY2hhbmlzbSBpbiBnaXQgYmluYXJ5IHBhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI4CisKKyAgICAgICAgR2l0IHBhdGNo
ZXMgYXJlIGVuY29kZWQgdXNpbmcgdHdvIG1lY2hhbmlzbXMgLSAibGl0ZXJhbCIgYW5kICJkZWx0
YSIuCisgICAgICAgIEZvciBkZXRhaWxzIG9mIHRoZXNlIG1lY2hhbmlzbXMsIHNlZSB0aGUgZnVu
Y3Rpb24gZW1pdF9iaW5hcnlfZGlmZl9ib2R5CisgICAgICAgIGluIHRoZSBnaXQgc291cmNlIGZp
bGUgZGlmZi5jIChodHRwczovL2dpdGh1Yi5jb20vZ2l0L2dpdC9ibG9iL21hc3Rlci9kaWZmLmMp
LgorCisgICAgICAgIFdoZW4gZGV0ZXJtaW5pbmcgaWYgYSBiaW5hcnkgZmlsZSBwYXRjaCBpcyBh
biBpbWFnZSBvciBub3Qgd2Ugc2hvdWxkIGFjY2VwdAorICAgICAgICBib3RoIGxpdGVyYWwgYW5k
IGRlbHRhIHBhdGNoIGVuY29kaW5ncy4KKworICAgICAgICBXaGVuIHJlY29uc3RydWN0aW5nIHRo
ZSBpbWFnZXMgZnJvbSB0aGUgcGF0Y2hlcywgaWYgd2UgaGF2ZSBhIGRlbHRhIHBhdGNoCisgICAg
ICAgIHdlIG1heSBkb3dubG9hZCB0aGUgcHJldmlvdXMgcmV2aXNpb24gZnJvbSBzdm4ud2Via2l0
Lm9yZyB0byBnZXQgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaC5yYjoKKyAgICAg
ICAgKiBQcmV0dHlQYXRjaC9QcmV0dHlQYXRjaF90ZXN0LnJiOgorCiAyMDExLTA5LTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByOTQ1NTQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtp
dC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5v
cmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2gucmIKaW5kZXggNDY1MjU1MWNhNDFkM2FjNzZmOTA5
ZTcyNmUxMDAyMmFiNzMxMWU2OC4uODZiMTQ0YTVjMzZiMDkxNDMzYzViYjNiY2I0NTIxYTcxNjk5
YmNhMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1By
ZXR0eVBhdGNoLnJiCisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9QcmV0dHlQYXRjaC9Q
cmV0dHlQYXRjaC5yYgpAQCAtMSw2ICsxLDcgQEAKIHJlcXVpcmUgJ2NnaScKIHJlcXVpcmUgJ2Rp
ZmYnCiByZXF1aXJlICdvcGVuMycKK3JlcXVpcmUgJ29wZW4tdXJpJwogcmVxdWlyZSAncHAnCiBy
ZXF1aXJlICdzZXQnCiByZXF1aXJlICd0ZW1wZmlsZScKQEAgLTEzLDIyICsxNCwyNCBAQCBwdWJs
aWMKIAogICAgIGRlZiBzZWxmLnByZXR0aWZ5KHN0cmluZykKICAgICAgICAgJGxhc3RfcHJldHRp
ZnlfZmlsZV9jb3VudCA9IC0xCi0gICAgICAgICRsYXN0X3ByZXR0aWZ5X3BhcnRfY291bnQgPSB7
ICJyZW1vdmUiID0+IDAsICJhZGQiID0+IDAsICJzaGFyZWQiID0+IDAgfQorICAgICAgICAkbGFz
dF9wcmV0dGlmeV9wYXJ0X2NvdW50ID0geyAicmVtb3ZlIiA9PiAwLCAiYWRkIiA9PiAwLCAic2hh
cmVkIiA9PiAwLCAiYmluYXJ5IiA9PiAwLCAiZXh0cmFjdC1lcnJvciIgPT4gMCB9CiAgICAgICAg
IHN0cmluZyA9IG5vcm1hbGl6ZV9saW5lX2VuZGluZyhzdHJpbmcpCi0gICAgICAgIGZpbGVEaWZm
cyA9IEZpbGVEaWZmLnBhcnNlKHN0cmluZykKLQogICAgICAgICBzdHIgPSBIRUFERVIgKyAiXG4i
CiAKICAgICAgICAgIyBKdXN0IGxvb2sgYXQgdGhlIGZpcnN0IGxpbmUgdG8gc2VlIGlmIGl0IGlz
IGFuIFNWTiByZXZpc2lvbiBudW1iZXIgYXMgYWRkZWQKICAgICAgICAgIyBieSB3ZWJraXQtcGF0
Y2ggZm9yIGdpdCBjaGVja291dHMuCisgICAgICAgICRzdm5fcmV2aXNpb24gPSAwCiAgICAgICAg
IHN0cmluZy5lYWNoX2xpbmUgZG8gfGxpbmV8CiAgICAgICAgICAgICBtYXRjaCA9IC9eU3VidmVy
c2lvblwgUmV2aXNpb246IChcZCopJC8ubWF0Y2gobGluZSkKICAgICAgICAgICAgIHVubGVzcyBt
YXRjaC5uaWw/Ci0gICAgICAgICAgICAgIHN0ciArPSAiPHNwYW4gY2xhc3M9J3JldmlzaW9uJz4i
ICsgbWF0Y2hbMV0gKyAiPC9zcGFuPlxuIgorICAgICAgICAgICAgICAgIHN0ciArPSAiPHNwYW4g
Y2xhc3M9J3JldmlzaW9uJz4iICsgbWF0Y2hbMV0gKyAiPC9zcGFuPlxuIgorICAgICAgICAgICAg
ICAgICRzdm5fcmV2aXNpb24gPSBtYXRjaFsxXS50b19pOwogICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBicmVhawogICAgICAgICBlbmQKIAorICAgICAgICBmaWxlRGlmZnMgPSBGaWxlRGlm
Zi5wYXJzZShzdHJpbmcpCisKICAgICAgICAgJGxhc3RfcHJldHRpZnlfZmlsZV9jb3VudCA9IGZp
bGVEaWZmcy5sZW5ndGgKICAgICAgICAgc3RyICs9IGZpbGVEaWZmcy5jb2xsZWN0eyB8ZGlmZnwg
ZGlmZi50b19odG1sIH0uam9pbgogICAgIGVuZApAQCAtNjUsOCArNjgsMTIgQEAgcHJpdmF0ZQog
CiAgICAgR0lUX0JJTkFSWV9GSUxFX01BUktFUl9GT1JNQVQgPSAvXkdJVCBiaW5hcnkgcGF0Y2gk
LwogCisgICAgR0lUX0JJTkFSWV9QQVRDSF9GT1JNQVQgPSAvXihsaXRlcmFsfGRlbHRhKSBcZCsk
LworCiAgICAgR0lUX0xJVEVSQUxfRk9STUFUID0gL15saXRlcmFsIFxkKyQvCiAKKyAgICBHSVRf
REVMVEFfRk9STUFUID0gL15kZWx0YSBcZCskLworCiAgICAgU1RBUlRfT0ZfQklOQVJZX0RBVEFf
Rk9STUFUID0gL15bMC05YS16QS1aXCtcLz1dezIwLH0vICMgQXNzdW1lIDIwIGNoYXJzIHdpdGhv
dXQgYSBzcGFjZSBpcyBiYXNlNjQgYmluYXJ5IGRhdGEuCiAKICAgICBTVEFSVF9PRl9TRUNUSU9O
X0ZPUk1BVCA9IC9eQEAgLShcZCspKD86LChcZCspKT8gXCsoXGQrKSg/OiwoXGQrKSk/IEBAXHMq
KC4qKS8KQEAgLTUwOCw3ICs1MTUsNyBAQCBFT0YKICAgICAgICAgICAgICAgICAgICAgQGdpdF9p
bmRleGVzID0gWyQxLCAkMl0KICAgICAgICAgICAgICAgICB3aGVuIEdJVF9CSU5BUllfRklMRV9N
QVJLRVJfRk9STUFUCiAgICAgICAgICAgICAgICAgICAgIEBiaW5hcnkgPSB0cnVlCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChHSVRfTElURVJBTF9GT1JNQVQubWF0Y2gobGluZXNbaSArIDFdKSBh
bmQgUHJldHR5UGF0Y2guaGFzX2ltYWdlX3N1ZmZpeChAZmlsZW5hbWUpKSB0aGVuCisgICAgICAg
ICAgICAgICAgICAgIGlmIChHSVRfQklOQVJZX1BBVENIX0ZPUk1BVC5tYXRjaChsaW5lc1tpICsg
MV0pIGFuZCBQcmV0dHlQYXRjaC5oYXNfaW1hZ2Vfc3VmZml4KEBmaWxlbmFtZSkpIHRoZW4KICAg
ICAgICAgICAgICAgICAgICAgICAgIEBnaXRfaW1hZ2UgPSB0cnVlCiAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydE9mU2VjdGlvbnMgPSBpICsgMQogICAgICAgICAgICAgICAgICAgICBlbmQK
QEAgLTUzNCwxNCArNTQxLDIwIEBAIEVPRgogCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJu
byBiaW5hcnkgY2h1bmtzIiB1bmxlc3MgY2h1bmtzCiAKLSAgICAgICAgICAgICAgICAgICAgYmlu
YXJ5X2NvbnRlbnRzID0gY2h1bmtzLnppcChAZ2l0X2luZGV4ZXMpLmNvbGxlY3QgZG8gfGNodW5r
LCBnaXRfaW5kZXh8Ci0gICAgICAgICAgICAgICAgICAgICAgICBGaWxlRGlmZi5leHRyYWN0X2Nv
bnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9jaHVuayhjaHVuaywgZ2l0X2luZGV4KQotICAgICAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgZnJvbV9maWxlcGF0aCA9IEZpbGVE
aWZmLmV4dHJhY3RfY29udGVudHNfb2ZfZnJvbV9yZXZpc2lvbihAZmlsZW5hbWUsIGNodW5rc1sw
XSwgQGdpdF9pbmRleGVzWzBdKQorICAgICAgICAgICAgICAgICAgICB0b19maWxlcGF0aCA9IEZp
bGVEaWZmLmV4dHJhY3RfY29udGVudHNfb2ZfdG9fcmV2aXNpb24oQGZpbGVuYW1lLCBjaHVua3Nb
MV0sIEBnaXRfaW5kZXhlc1sxXSwgZnJvbV9maWxlcGF0aCwgQGdpdF9pbmRleGVzWzBdKQorICAg
ICAgICAgICAgICAgICAgICBmaWxlcGF0aHMgPSBmcm9tX2ZpbGVwYXRoLCB0b19maWxlcGF0aAor
CisgICAgICAgICAgICAgICAgICAgIGJpbmFyeV9jb250ZW50cyA9IGZpbGVwYXRocy5jb2xsZWN0
IHsgfGZpbGVwYXRofCBGaWxlLmV4aXN0cz8oZmlsZXBhdGgpID8gRmlsZS5yZWFkKGZpbGVwYXRo
KSA6IG5pbCB9CiAKLSAgICAgICAgICAgICAgICAgICAgQGltYWdlX3VybHMgPSBiaW5hcnlfY29u
dGVudHMuY29sbGVjdCB7IHxjb250ZW50fCBjb250ZW50ID8gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2
NCwiICsgW2NvbnRlbnRdLnBhY2soIm0iKSA6IG5pbCB9CisgICAgICAgICAgICAgICAgICAgIEBp
bWFnZV91cmxzID0gYmluYXJ5X2NvbnRlbnRzLmNvbGxlY3QgeyB8Y29udGVudHwgKGNvbnRlbnQg
YW5kIG5vdCBjb250ZW50LmVtcHR5PykgPyAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LCIgKyBbY29u
dGVudF0ucGFjaygibSIpIDogbmlsIH0KICAgICAgICAgICAgICAgICAgICAgQGltYWdlX2NoZWNr
c3VtcyA9IGJpbmFyeV9jb250ZW50cy5jb2xsZWN0IHsgfGNvbnRlbnR8IEZpbGVEaWZmLnJlYWRf
Y2hlY2tzdW1fZnJvbV9wbmcoY29udGVudCkgfQogICAgICAgICAgICAgICAgIHJlc2N1ZQorICAg
ICAgICAgICAgICAgICAgICAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJleHRyYWN0LWVycm9y
Il0gKz0gMQogICAgICAgICAgICAgICAgICAgICBAaW1hZ2VfZXJyb3IgPSAiRXhjZXB0aW9uIHJh
aXNlZCBkdXJpbmcgZGVjb2RpbmcgZ2l0IGJpbmFyeSBwYXRjaDo8cHJlPiN7Q0dJLmVzY2FwZUhU
TUwoJCEudG9fcyArICJcbiIgKyAkIS5iYWNrdHJhY2Uuam9pbigiXG4iKSl9PC9wcmU+IgorICAg
ICAgICAgICAgICAgIGVuc3VyZQorICAgICAgICAgICAgICAgICAgICBGaWxlLnVubGluayhmcm9t
X2ZpbGVwYXRoKSBpZiAoZnJvbV9maWxlcGF0aCBhbmQgRmlsZS5leGlzdHM/KGZyb21fZmlsZXBh
dGgpKQorICAgICAgICAgICAgICAgICAgICBGaWxlLnVubGluayh0b19maWxlcGF0aCkgaWYgKHRv
X2ZpbGVwYXRoIGFuZCBGaWxlLmV4aXN0cz8odG9fZmlsZXBhdGgpKQogICAgICAgICAgICAgICAg
IGVuZAogICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBuaWwKQEAgLTU4NSw2ICs1OTgsNyBA
QCBFT0YKICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgZW5kCiAgICAg
ICAgICAgICBlbHNpZiBAYmluYXJ5IHRoZW4KKyAgICAgICAgICAgICAgICAkbGFzdF9wcmV0dGlm
eV9wYXJ0X2NvdW50WyJiaW5hcnkiXSArPSAxCiAgICAgICAgICAgICAgICAgc3RyICs9ICI8c3Bh
biBjbGFzcz0ndGV4dCc+QmluYXJ5IGZpbGUsIG5vdGhpbmcgdG8gc2VlIGhlcmU8L3NwYW4+Igog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHN0ciArPSBAc2VjdGlvbnMuY29sbGVj
dHsgfHNlY3Rpb258IHNlY3Rpb24udG9faHRtbCB9LmpvaW4oIjxicj5cbiIpIHVubGVzcyBAc2Vj
dGlvbnMubmlsPwpAQCAtNjMxLDM3ICs2NDUsOTYgQEAgSGNtVj9kMDAwMDEKIEVORAogICAgICAg
ICBlbmQKIAotICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFy
eV9jaHVuayhlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCi0gICAgICAgICAgICAjIFdlIHVzZSBU
ZW1wZmlsZSB3ZSBuZWVkIGEgdW5pcXVlIGZpbGUgYW1vbmcgcHJvY2Vzc2VzLgorICAgICAgICBk
ZWYgc2VsZi5naXRfY2hhbmdlZF9maWxlX2JpbmFyeV9wYXRjaCh0b19maWxlbmFtZSwgZnJvbV9m
aWxlbmFtZSwgZW5jb2RlZF9jaHVuaywgdG9fZ2l0X2luZGV4LCBmcm9tX2dpdF9pbmRleCkKKyAg
ICAgICAgICAgIHJldHVybiA8PEVORAorZGlmZiAtLWdpdCBhLyN7ZnJvbV9maWxlbmFtZX0gYi8j
e3RvX2ZpbGVuYW1lfQorY29weSBmcm9tICN7ZnJvbV9maWxlbmFtZX0KKysrKyBiLyN7dG9fZmls
ZW5hbWV9CitpbmRleCAje2Zyb21fZ2l0X2luZGV4fS4uI3t0b19naXRfaW5kZXh9CitHSVQgYmlu
YXJ5IHBhdGNoCisje2VuY29kZWRfY2h1bmsuam9pbigiIil9bGl0ZXJhbCAwCitIY21WP2QwMDAw
MQorCitFTkQKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZ2V0X3N2bl91cmkocmVw
b3NpdG9yeV9wYXRoKQorICAgICAgICAgICAgImh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0
b3J5L3dlYmtpdC8hc3ZuL2JjLyIgKyAkc3ZuX3JldmlzaW9uLnRvX3MgKyAiL3RydW5rLyIgKyAo
cmVwb3NpdG9yeV9wYXRoKQorICAgICAgICBlbmQKKworICAgICAgICBkZWYgc2VsZi5nZXRfbmV3
X3RlbXBfZmlsZXBhdGhfYW5kX25hbWUKICAgICAgICAgICAgIHRlbXBmaWxlID0gVGVtcGZpbGUu
bmV3KCJQcmV0dHlQYXRjaCIpCi0gICAgICAgICAgICAjIFdlIG5lZWQgYSBmaWxlbmFtZSB3aGlj
aCBkb2Vzbid0IGV4aXN0IHRvIGFwcGx5IGEgcGF0Y2gKLSAgICAgICAgICAgICMgd2hpY2ggY3Jl
YXRlcyBhIG5ldyBmaWxlLiBBcHBlbmQgYSBzdWZmaXggc28gZmlsZW5hbWUKLSAgICAgICAgICAg
ICMgZG9lc24ndCBleGlzdC4KICAgICAgICAgICAgIGZpbGVwYXRoID0gdGVtcGZpbGUucGF0aCAr
ICcuYmluJwogICAgICAgICAgICAgZmlsZW5hbWUgPSBGaWxlLmJhc2VuYW1lKGZpbGVwYXRoKQor
ICAgICAgICAgICAgcmV0dXJuIGZpbGVwYXRoLCBmaWxlbmFtZQorICAgICAgICBlbmQKIAotICAg
ICAgICAgICAgcGF0Y2ggPSBGaWxlRGlmZi5naXRfbmV3X2ZpbGVfYmluYXJ5X3BhdGNoKGZpbGVu
YW1lLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAgIGRlZiBzZWxmLmRvd25sb2Fk
X2Zyb21fcmV2aXNpb25fZnJvbV9zdm4ocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAgZmls
ZXBhdGgsIGZpbGVuYW1lID0gZ2V0X25ld190ZW1wX2ZpbGVwYXRoX2FuZF9uYW1lCisgICAgICAg
ICAgICBzdm5fdXJpID0gZ2V0X3N2bl91cmkocmVwb3NpdG9yeV9wYXRoKQorICAgICAgICAgICAg
b3BlbihmaWxlcGF0aCwgJ3diJykgZG8gfHRvX2ZpbGV8CisgICAgICAgICAgICAgICAgdG9fZmls
ZSA8PCBvcGVuKHN2bl91cmkpIHsgfGZyb21fZmlsZXwgZnJvbV9maWxlLnJlYWQgfQorICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICByZXR1cm4gZmlsZXBhdGgKKyAgICAgICAgZW5kCiAKKyAg
ICAgICAgZGVmIHNlbGYucnVuX2dpdF9hcHBseV9vbl9wYXRjaChvdXRwdXRfZmlsZXBhdGgsIHBh
dGNoKQogICAgICAgICAgICAgIyBBcHBseSB0aGUgZ2l0IGJpbmFyeSBwYXRjaCB1c2luZyBnaXQt
YXBwbHkuCi0gICAgICAgICAgICBjbWQgPSBHSVRfUEFUSCArICIgYXBwbHkgLS1kaXJlY3Rvcnk9
IiArIEZpbGUuZGlybmFtZShmaWxlcGF0aCkKKyAgICAgICAgICAgIGNtZCA9IEdJVF9QQVRIICsg
IiBhcHBseSAtLWRpcmVjdG9yeT0iICsgRmlsZS5kaXJuYW1lKG91dHB1dF9maWxlcGF0aCkKICAg
ICAgICAgICAgIHN0ZGluLCBzdGRvdXQsIHN0ZGVyciA9ICpPcGVuMy5wb3BlbjMoY21kKQogICAg
ICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICBzdGRpbi5wdXRzKHBhdGNoKQogICAgICAg
ICAgICAgICAgIHN0ZGluLmNsb3NlCiAKICAgICAgICAgICAgICAgICBlcnJvciA9IHN0ZGVyci5y
ZWFkCisgICAgICAgICAgICAgICAgaWYgZXJyb3IgIT0gIiIKKyAgICAgICAgICAgICAgICAgICAg
ZXJyb3IgPSAiRXJyb3IgcnVubmluZyAiICsgY21kICsgIlxuIiArICJ3aXRoIHBhdGNoOlxuIiAr
IHBhdGNoWzAuLjUwMF0gKyAiLi4uXG4iICsgZXJyb3IKKyAgICAgICAgICAgICAgICBlbmQKICAg
ICAgICAgICAgICAgICByYWlzZSBlcnJvciBpZiBlcnJvciAhPSAiIgotCi0gICAgICAgICAgICAg
ICAgY29udGVudHMgPSBGaWxlLnJlYWQoZmlsZXBhdGgpCiAgICAgICAgICAgICBlbnN1cmUKICAg
ICAgICAgICAgICAgICBzdGRpbi5jbG9zZSB1bmxlc3Mgc3RkaW4uY2xvc2VkPwogICAgICAgICAg
ICAgICAgIHN0ZG91dC5jbG9zZQogICAgICAgICAgICAgICAgIHN0ZGVyci5jbG9zZQotICAgICAg
ICAgICAgICAgIEZpbGUudW5saW5rKGZpbGVuYW1lKSBpZiBGaWxlLmV4aXN0cz8oZmlsZW5hbWUp
CiAgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZXh0cmFj
dF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfbGl0ZXJhbF9jaHVuayhlbmNvZGVkX2NodW5rLCBn
aXRfaW5kZXgpCisgICAgICAgICAgICBmaWxlcGF0aCwgZmlsZW5hbWUgPSBnZXRfbmV3X3RlbXBf
ZmlsZXBhdGhfYW5kX25hbWUKKyAgICAgICAgICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X25ld19m
aWxlX2JpbmFyeV9wYXRjaChmaWxlbmFtZSwgZW5jb2RlZF9jaHVuaywgZ2l0X2luZGV4KQorICAg
ICAgICAgICAgcnVuX2dpdF9hcHBseV9vbl9wYXRjaChmaWxlcGF0aCwgcGF0Y2gpCisgICAgICAg
ICAgICByZXR1cm4gZmlsZXBhdGgKKyAgICAgICAgZW5kCisKKyAgICAgICAgZGVmIHNlbGYuZXh0
cmFjdF9jb250ZW50c19mcm9tX2dpdF9iaW5hcnlfZGVsdGFfY2h1bmsoZnJvbV9maWxlcGF0aCwg
ZnJvbV9naXRfaW5kZXgsIGVuY29kZWRfY2h1bmssIHRvX2dpdF9pbmRleCkKKyAgICAgICAgICAg
IHRvX2ZpbGVwYXRoLCB0b19maWxlbmFtZSA9IGdldF9uZXdfdGVtcF9maWxlcGF0aF9hbmRfbmFt
ZQorICAgICAgICAgICAgZnJvbV9maWxlbmFtZSA9IEZpbGUuYmFzZW5hbWUoZnJvbV9maWxlcGF0
aCkKKyAgICAgICAgICAgIHBhdGNoID0gRmlsZURpZmYuZ2l0X2NoYW5nZWRfZmlsZV9iaW5hcnlf
cGF0Y2godG9fZmlsZW5hbWUsIGZyb21fZmlsZW5hbWUsIGVuY29kZWRfY2h1bmssIHRvX2dpdF9p
bmRleCwgZnJvbV9naXRfaW5kZXgpCisgICAgICAgICAgICBydW5fZ2l0X2FwcGx5X29uX3BhdGNo
KHRvX2ZpbGVwYXRoLCBwYXRjaCkKKyAgICAgICAgICAgIHJldHVybiB0b19maWxlcGF0aAorICAg
ICAgICBlbmQKKworICAgICAgICBkZWYgc2VsZi5leHRyYWN0X2NvbnRlbnRzX29mX2Zyb21fcmV2
aXNpb24ocmVwb3NpdG9yeV9wYXRoLCBlbmNvZGVkX2NodW5rLCBnaXRfaW5kZXgpCisgICAgICAg
ICAgICAjIEZvciBsaXRlcmFsIGVuY29kZWQsIHNpbXBseSByZWNvbnN0cnVjdC4KKyAgICAgICAg
ICAgIGlmIEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChlbmNvZGVkX2NodW5rWzBdKQorICAgICAg
ICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9saXRlcmFs
X2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgIyAgRm9yIGRlbHRhIGVuY29kZWQsIGRvd25sb2FkIGZyb20gc3ZuLgorICAgICAgICAg
ICAgaWYgR0lUX0RFTFRBX0ZPUk1BVC5tYXRjaChlbmNvZGVkX2NodW5rWzBdKQorICAgICAgICAg
ICAgICAgIHJldHVybiBkb3dubG9hZF9mcm9tX3JldmlzaW9uX2Zyb21fc3ZuKHJlcG9zaXRvcnlf
cGF0aCkKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgcmFpc2UgIkVycm9yOiB1bmtub3du
IGdpdCBwYXRjaCBlbmNvZGluZyIKKyAgICAgICAgZW5kCiAKLSAgICAgICAgICAgIHJldHVybiBu
aWwgaWYgY29udGVudHMuZW1wdHk/Ci0gICAgICAgICAgICByZXR1cm4gY29udGVudHMKKyAgICAg
ICAgZGVmIHNlbGYuZXh0cmFjdF9jb250ZW50c19vZl90b19yZXZpc2lvbihyZXBvc2l0b3J5X3Bh
dGgsIGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCwgZnJvbV9maWxlcGF0aCwgZnJvbV9naXRfaW5k
ZXgpCisgICAgICAgICAgICAjIEZvciBsaXRlcmFsIGVuY29kZWQsIHNpbXBseSByZWNvbnN0cnVj
dC4KKyAgICAgICAgICAgIGlmIEdJVF9MSVRFUkFMX0ZPUk1BVC5tYXRjaChlbmNvZGVkX2NodW5r
WzBdKQorICAgICAgICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2Jp
bmFyeV9saXRlcmFsX2NodW5rKGVuY29kZWRfY2h1bmssIGdpdF9pbmRleCkKKyAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgIyBGb3IgZGVsdGEgZW5jb2RlZCwgcmVjb25zdHJ1Y3QgdXNpbmcg
ZGVsdGEgYW5kIHByZXZpb3VzbHkgY29uc3RydWN0ZWQgJ2Zyb20nIHJldmlzaW9uLgorICAgICAg
ICAgICAgaWYgR0lUX0RFTFRBX0ZPUk1BVC5tYXRjaChlbmNvZGVkX2NodW5rWzBdKQorICAgICAg
ICAgICAgICAgIHJldHVybiBleHRyYWN0X2NvbnRlbnRzX2Zyb21fZ2l0X2JpbmFyeV9kZWx0YV9j
aHVuayhmcm9tX2ZpbGVwYXRoLCBmcm9tX2dpdF9pbmRleCwgZW5jb2RlZF9jaHVuaywgZ2l0X2lu
ZGV4KQorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICByYWlzZSAiRXJyb3I6IHVua25vd24g
Z2l0IHBhdGNoIGVuY29kaW5nIgogICAgICAgICBlbmQKICAgICBlbmQKIApAQCAtODA0LDcgKzg3
Nyw3IEBAIEVORAogICAgICAgICAgICAgc3RyICs9IEBibG9ja3MuY29sbGVjdHsgfGJsb2NrfCBi
bG9jay50b19odG1sIH0uam9pbgogICAgICAgICAgICAgc3RyICs9ICI8L2Rpdj5cbiIKICAgICAg
ICAgZW5kCi0gICAgICAgIAorCiAgICAgICAgIGRlZiBzZWxmLnBhcnNlKGxpbmVzKQogICAgICAg
ICAgICAgbGluZXNGb3JTZWN0aW9ucyA9IGxpbmVzLmluamVjdChbW11dKSBkbyB8c2VjdGlvbnMs
IGxpbmV8CiAgICAgICAgICAgICAgICAgc2VjdGlvbnMgPDwgW10gaWYgbGluZSA9fiAvXkBALwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eVBhdGNoL1ByZXR0eVBh
dGNoX3Rlc3QucmIgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5
UGF0Y2hfdGVzdC5yYgppbmRleCA4YjcxNGNiODE4ZWVkOTViODlkODk4OTFhZmYwNjU5YjAxYzEz
YTAyLi5lZDQxNjkzYjcyZjIwZGViYmRkMmRiYzU2YWNkYTE1Y2FjMDE3YWU4IDEwMDc1NQotLS0g
YS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hfdGVzdC5y
YgorKysgYi9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvUHJldHR5UGF0Y2hf
dGVzdC5yYgpAQCAtMjYsNiArMjYsNyBAQCBjbGFzcyBQcmV0dHlQYXRjaF90ZXN0IDwgVGVzdDo6
VW5pdDo6VGVzdENhc2UKICAgICAgICAgODA4NTIgPT4gWyJDaGFuZ2VzIG9uZSBsaW5lIHBsdXMg
Q2hhbmdlTG9nIiwgMiwgMiwgMSwgNF0sCiAgICAgICAgIDgzMTI3ID0+IFsiT25seSBhZGQgc3R1
ZmYiLCAyLCAyLCAwLCAzXSwKICAgICAgICAgODUwNzEgPT4gWyJBZGRzIGFuZCByZW1vdmVzIGZy
b20gYSBmaWxlIHBsdXMgZ2l0IHNpZ25hdHVyZSIsIDIsIDUsIDMsIDldLAorICAgICAgICAxMDYz
NjggPT4gWyJJbWFnZXMgd2l0aCBnaXQgZGVsdGEgYmluYXJ5IHBhdGNoIiwgNjksIDgsIDIzLCAx
MF0sCiAgICAgfQogCiAgICAgZGVmIGdldF9wYXRjaF91cmkoaWQpCkBAIC01Nyw2ICs1OCw4IEBA
IGNsYXNzIFByZXR0eVBhdGNoX3Rlc3QgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgICAgICBh
c3NlcnRfZXF1YWwoaW5mb1tJbmZvOjpBRERdLCAkbGFzdF9wcmV0dGlmeV9wYXJ0X2NvdW50WyJh
ZGQiXSwgIldyb25nIG51bWJlciBvZiAnYWRkJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAg
ICAgICAgIGFzc2VydF9lcXVhbChpbmZvW0luZm86OlJFTU9WRV0sICRsYXN0X3ByZXR0aWZ5X3Bh
cnRfY291bnRbInJlbW92ZSJdLCAiV3JvbmcgbnVtYmVyIG9mICdyZW1vdmUnIHBhcnRzIGluICIg
KyBkZXNjcmlwdGlvbikKICAgICAgICAgYXNzZXJ0X2VxdWFsKGluZm9bSW5mbzo6U0hBUkVEXSwg
JGxhc3RfcHJldHRpZnlfcGFydF9jb3VudFsic2hhcmVkIl0sICJXcm9uZyBudW1iZXIgb2YgJ3No
YXJlZCcgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwg
JGxhc3RfcHJldHRpZnlfcGFydF9jb3VudFsiYmluYXJ5Il0sICJXcm9uZyBudW1iZXIgb2YgJ2Jp
bmFyeScgcGFydHMgaW4gIiArIGRlc2NyaXB0aW9uKQorICAgICAgICBhc3NlcnRfZXF1YWwoMCwg
JGxhc3RfcHJldHRpZnlfcGFydF9jb3VudFsiZXh0cmFjdC1lcnJvciJdLCAiV3JvbmcgbnVtYmVy
IG9mICdleHRyYWN0LWVycm9yJyBwYXJ0cyBpbiAiICsgZGVzY3JpcHRpb24pCiAgICAgZW5kCiAK
ICAgICBkZWYgdGVzdF9wYXRjaGVzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>