<?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>38093</bug_id>
          
          <creation_ts>2010-04-25 05:23:23 -0700</creation_ts>
          <short_desc>svn-apply: Remove unnecessary dividing line (i.e. &quot;====...&quot;) logic</short_desc>
          <delta_ts>2010-04-28 19:33:21 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>38094</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>216811</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-25 05:23:23 -0700</bug_when>
    <thetext>This report is to simplify the code called by svn-apply and svn-unapply in the following way:

The code for parsing git-formatted patches contains logic for adding a dividing line (i.e. &quot;====...&quot;) to make the patch look more SVN-like:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/VCSUtils.pm?rev=57453#L374

This code is cosmetic and isn&apos;t really necessary.  In fact, it doesn&apos;t do what it purports to do because it doesn&apos;t handle lines lacking the 6-character file mode string or lines containing more than 7 characters of the git hash.

Removing this code will simplify the code somewhat and make some subsequent changes somewhat easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216812</commentid>
    <comment_count>1</comment_count>
      <attachid>54236</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-25 05:47:36 -0700</bug_when>
    <thetext>Created attachment 54236
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216813</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-25 05:49:19 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=54236) [details]
&gt; Proposed patch

By the way, I ran &quot;test-webkitpy --all&quot; and the svn-apply unit tests there checked out okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216816</commentid>
    <comment_count>3</comment_count>
      <attachid>54238</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-25 06:37:21 -0700</bug_when>
    <thetext>Created attachment 54238
Proposed patch 2

Added the same correction to parseDiff.pl that I made to parseDiffHeader.pl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216817</commentid>
    <comment_count>4</comment_count>
      <attachid>54239</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-25 06:42:17 -0700</bug_when>
    <thetext>Created attachment 54239
Proposed patch 3

Fixed typo in ChangeLog (somwhat).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217223</commentid>
    <comment_count>5</comment_count>
      <attachid>54239</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-26 12:36:00 -0700</bug_when>
    <thetext>Comment on attachment 54239
Proposed patch 3

&gt; diff --git a/WebKitTools/Scripts/VCSUtils.pm b/WebKitTools/Scripts/VCSUtils.pm
&gt; index 25a319b..7e09839 100644
&gt; --- a/WebKitTools/Scripts/VCSUtils.pm
&gt; +++ b/WebKitTools/Scripts/VCSUtils.pm
&gt; @@ -371,10 +371,6 @@ sub gitdiff2svndiff($)
&gt;      if (m#^diff --git \w/(.+) \w/([^\r\n]+)#) {
&gt;          return &quot;Index: $1$POSTMATCH&quot;;
&gt;      }
&gt; -    if (m#^index [0-9a-f]{7}\.\.[0-9a-f]{7} [0-9]{6}#) {
&gt; -        # FIXME: No need to return dividing line once parseDiffHeader() is used.
&gt; -        return &quot;===================================================================$POSTMATCH&quot;;
&gt; -    }

I agree, this doesn&apos;t seem needed. Moreover, as we discussed in person, by keeping this Git diff extension we can error check file mode changes.

&gt; -            $_ = &quot;=&quot; x 67 . &quot;$eol$_&quot;; # Prepend dividing line ===....

(*)

&gt;          } elsif (s/^\+\+\+ \S+/+++ $indexPath/) {
&gt;              # +++
&gt;              $foundHeaderEnding = 1;
&gt; -        } else {
&gt; -            # Skip unrecognized lines.
&gt; -            next;
&gt;          }

Now that we do not remove the git diff extension of the form &quot;index [0-9a-f]{7}\.\.[0-9a-f]{7} [0-9]{6}&quot;, these lines (as well as other unrecognized lines such Git file mode changes) can appear in the SVN converted text. So, the SVN converted text may not correspond to a properly formatted SVN patch. If we want to keep a SVN converted form of the patch around then I would suggest that the converted text reflect a properly formatted SVN patch. Or at least, we should change the comments about svnConvertedText to reflect the fact that it represents a reasonable conversion.

Some additional notes...
From testing, the patch command does not seem to mind if extra lines appear in the diff header, so long as the ---/+++ lines exist. Notice, if we keep the &quot;else&quot; statement and (*) then the SVN converted text will reflect a properly formatted SVN patch, as produced by svn diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217233</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-26 13:11:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 54239 [details])

Thanks for the comments on the patch, Daniel.  As you probably noticed, I need to make this change and the change in bug 38094 before landing bug 34033.

&gt; &gt;          } elsif (s/^\+\+\+ \S+/+++ $indexPath/) {
&gt; &gt;              # +++
&gt; &gt;              $foundHeaderEnding = 1;
&gt; &gt; -        } else {
&gt; &gt; -            # Skip unrecognized lines.
&gt; &gt; -            next;
&gt; &gt;          }

&gt; Now that we do not remove the git diff extension of the form &quot;index
&gt; [0-9a-f]{7}\.\.[0-9a-f]{7} [0-9]{6}&quot;, these lines (as well as other
&gt; unrecognized lines such Git file mode changes) can appear in the SVN converted
&gt; text. So, the SVN converted text may not correspond to a properly formatted SVN
&gt; patch.

It turns out that the current code already allows some &quot;non-SVN&quot; lines to pass through in certain cases.  That&apos;s what I meant in comment 0 when I said that the line in gitdiff2svndiff() &quot;doesn&apos;t do what it purports to do...&quot;.

For example, some git diffs leave out the 6-character file mode string (I think for new files, for example), and other git diffs include full git hashes and not just 7 characters.  The current code -- which doesn&apos;t use parseDiffHeader() -- allows those lines to pass through.

Maybe I&apos;ll dig up a couple examples from bugs.webkit.org and post links to them here.

&gt; If we want to keep a SVN converted form of the patch around then I would
&gt; suggest that the converted text reflect a properly formatted SVN patch. Or at
&gt; least, we should change the comments about svnConvertedText to reflect the fact
&gt; that it represents a reasonable conversion.

The latter is probably better since it might not make sense to speak of converting a git header into an SVN header in all cases (since they store different information).

Note that your point can also be made of gitdiff2svndiff() since it allows any lines to pass through that don&apos;t match any of the if-block regular expressions:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/VCSUtils.pm?rev=57453#L365

Really, what it&apos;s doing is converting a *subset* of the git diff lines to lines recognizable by the SVN-parsing code.  It just happens to look like it&apos;s converting the header into a properly formatted SVN header because that&apos;s what it does for the most common case.

&gt; Some additional notes...
&gt; From testing, the patch command does not seem to mind if extra lines appear in
&gt; the diff header, so long as the ---/+++ lines exist.

Yes, that&apos;s what I&apos;ve found, too.

In the long-term, it may make sense just to get rid of the svnConvertedText property altogether.  Whatever information is needed from the header we can store in a structured way as properties of the object, so we don&apos;t lose any information.  That way the calling code doesn&apos;t have to reparse the lines, and we won&apos;t be storing the same information in multiple spots (the data in the object will be more &quot;normalized&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217237</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-26 13:16:26 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Maybe I&apos;ll dig up a couple examples from bugs.webkit.org and post links to them
&gt; here.

A couple examples can be seen in this attachment:

https://bug-38099-attachments.webkit.org/attachment.cgi?id=54257

Here the 6-character file mode does not appear in the index line:

diff --git a/LayoutTests/platform/chromium-linux/fast/css-generated-content/after-duplicated-after-split-expected.checksum b/LayoutTests/platform/chromium-linux/fast/css-generated-content/after-duplicated-after-split-expected.checksum
new file mode 100644
index 0000000..273b433
--- /dev/null
+++ b/LayoutTests/platform/chromium-linux/fast/css-generated-content/after-duplicated-after-split-expected.checksum
@@ -0,0 +1 @@


And here, full git hashes are being used:

diff --git a/LayoutTests/platform/chromium-linux/fast/css-generated-content/after-duplicated-after-split-expected.png b/LayoutTests/platform/chromium-linux/fast/css-generated-content/after-duplicated-after-split-expected.png
new file mode 100644
index 0000000000000000000000000000000000000000..809d7df4235478cc35d5378fb2b181997a06e356
GIT binary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217261</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-26 14:03:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 54239 [details] [details])
&gt; 
&gt; Thanks for the comments on the patch, Daniel.  As you probably noticed, I need
&gt; to make this change and the change in bug 38094 before landing bug 34033.
&gt; 
&gt; &gt; &gt;          } elsif (s/^\+\+\+ \S+/+++ $indexPath/) {
&gt; &gt; &gt;              # +++
&gt; &gt; &gt;              $foundHeaderEnding = 1;
&gt; &gt; &gt; -        } else {
&gt; &gt; &gt; -            # Skip unrecognized lines.
&gt; &gt; &gt; -            next;
&gt; &gt; &gt;          }
&gt; 
&gt; &gt; Now that we do not remove the git diff extension of the form &quot;index
&gt; &gt; [0-9a-f]{7}\.\.[0-9a-f]{7} [0-9]{6}&quot;, these lines (as well as other
&gt; &gt; unrecognized lines such Git file mode changes) can appear in the SVN converted
&gt; &gt; text. So, the SVN converted text may not correspond to a properly formatted SVN
&gt; &gt; patch.
&gt; 
&gt; It turns out that the current code already allows some &quot;non-SVN&quot; lines to pass
&gt; through in certain cases.  That&apos;s what I meant in comment 0 when I said that
&gt; the line in gitdiff2svndiff() &quot;doesn&apos;t do what it purports to do...&quot;.

Correct, and as you pointed out, gitdiff2svndiff only recognizes and translates some subset of git diff extensions to the equivalent SVN diff extensions. Shouldn&apos;t we skip unrecognized lines then (i.e. keep the &quot;else {... next; }&quot; clause (*) in parseDiffHeader())? Then svnConvertedText represents a properly formatted SVN diff header.

&gt; For example, some git diffs leave out the 6-character file mode string (I think
&gt; for new files, for example), and other git diffs include full git hashes and
&gt; not just 7 characters.  The current code -- which doesn&apos;t use parseDiffHeader()
&gt; -- allows those lines to pass through.

Right. When we switch over to using the parsePatch()/parseDiffHeader() code path and if we keep (*) then such lines would not be part of  svnConvertedText.

&gt; In the long-term, it may make sense just to get rid of the svnConvertedText
&gt; property altogether.  Whatever information is needed from the header we can
&gt; store in a structured way as properties of the object, so we don&apos;t lose any
&gt; information.  That way the calling code doesn&apos;t have to reparse the lines, and
&gt; we won&apos;t be storing the same information in multiple spots (the data in the
&gt; object will be more &quot;normalized&quot;).

Right. We seem to only keep it around as a by-product of using gitdiff2svndiff and for unit testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217302</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-26 14:58:41 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; Correct, and as you pointed out, gitdiff2svndiff only recognizes and translates
&gt; some subset of git diff extensions to the equivalent SVN diff extensions.
&gt; Shouldn&apos;t we skip unrecognized lines then (i.e. keep the &quot;else {... next; }&quot;
&gt; clause (*) in parseDiffHeader())? Then svnConvertedText represents a properly
&gt; formatted SVN diff header.

For the benefit of others reading the thread, Daniel and I discussed this on IRC.  One of the reasons that parseDiffHeader() needs to preserve unrecognized lines (at least in some cases) is that svn-apply has code which relies on certain Git-specific lines being present in the lines &quot;converted&quot; by gitdiff2svndiff(), e.g.

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/svn-apply?rev=57455#L347

Eventually, we should probably refactor that parsing code into parseDiffHeader() so that svn-apply doesn&apos;t need to do any parsing itself.

I included this as a FIXME in the patches for bug 34033.  See line 321 of the svn-apply portion of this patch, for instance:

https://bugs.webkit.org/attachment.cgi?id=54016&amp;action=prettypatch

That is the reason why, for simplicity, I thought it would be best to preserve the existing behavior for now and allow all lines to pass through (even the unrecognized Git-specific ones).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217537</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-26 23:27:45 -0700</bug_when>
    <thetext>&gt; --- a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
&gt; +++ b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
&gt; [...]
&gt; @@ -288,19 +288,19 @@ sub testParseDiffAssertionArgs($)
&gt;      my $testNameStart = &quot;parseDiff(): [$testCaseHashRef-&gt;{diffName}] &quot;;
&gt;  
&gt;      my @assertionArgsArrayRefs; # Return value
&gt; -    my @assertionArgs;
&gt; +
&gt;      foreach my $diffHashRefKey (@diffHashRefKeys) {
&gt;          my $testName = &quot;${testNameStart}key=\&quot;$diffHashRefKey\&quot;&quot;;
&gt; -        @assertionArgs = ($diffHashRef-&gt;{$diffHashRefKey}, $testCaseHashRef-&gt;{$diffHashRefKey}, $testName);
&gt; -        push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +        my @assertionArgs1 = ($diffHashRef-&gt;{$diffHashRefKey}, $testCaseHashRef-&gt;{$diffHashRefKey}, $testName);
&gt; +        push(@assertionArgsArrayRefs, \@assertionArgs1);
&gt;      }
&gt;  
&gt; -    @assertionArgs = ($lastReadLine, $testCaseHashRef-&gt;{lastReadLine}, &quot;${testNameStart}lastReadLine&quot;);
&gt; -    push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +    my @assertionArgs2 = ($lastReadLine, $testCaseHashRef-&gt;{lastReadLine}, &quot;${testNameStart}lastReadLine&quot;);
&gt; +    push(@assertionArgsArrayRefs, \@assertionArgs2);
&gt;  
&gt;      my $nextLine = &lt;$fileHandle&gt;;
&gt; -    @assertionArgs = ($nextLine, $testCaseHashRef-&gt;{nextLine}, &quot;${testNameStart}nextLine&quot;);
&gt; -    push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +    my @assertionArgs3 = ($nextLine, $testCaseHashRef-&gt;{nextLine}, &quot;${testNameStart}nextLine&quot;);
&gt; +    push(@assertionArgsArrayRefs, \@assertionArgs3);
&gt;  

From my understanding of (2) of section Making References of PerlRef &lt;http://perldoc.perl.org/perlref.html&gt;, we do not actually have to define new variables @assertionArgs1, @assertionArgs2, @assertionArgs3. Instead, we can write this portion of the patch using square-bracket notation (which returns a reference to an anonymous array) as follows:

...
my $assertion;

foreach my $diffHashRefKey (@diffHashRefKeys) {
    my $testName = &quot;${testNameStart}key=\&quot;$diffHashRefKey\&quot;&quot;;
    $assertion = [$diffHashRef-&gt;{$diffHashRefKey}, $testCaseHashRef-&gt;{$diffHashRefKey}, $testName];
    push(@assertionArgsArrayRefs, $assertion);
}

$assertion = [$lastReadLine, $testCaseHashRef-&gt;{lastReadLine}, &quot;${testNameStart}lastReadLine&quot;];
push(@assertionArgsArrayRefs, $assertion);

my $nextLine = &lt;$fileHandle&gt;;
$assertion = [$nextLine, $testCaseHashRef-&gt;{nextLine}, &quot;${testNameStart}nextLine&quot;];
push(@assertionArgsArrayRefs, $assertion);

&gt;      return @assertionArgsArrayRefs;
&gt;  }
&gt; diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl
&gt; index a7a3c26..a828800 100644
&gt; --- a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl
&gt; +++ b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl
&gt; [...]
&gt; @@ -247,19 +248,19 @@ sub testParseDiffHeaderAssertionArgs($)
&gt;      my $testNameStart = &quot;parseDiffHeader(): [$testCaseHashRef-&gt;{diffName}] &quot;;
&gt;  
&gt;      my @assertionArgsArrayRefs; # Return value
&gt; -    my @assertionArgs;
&gt; +
&gt;      foreach my $diffHeaderHashRefKey (@diffHeaderHashRefKeys) {
&gt;          my $testName = &quot;${testNameStart}key=\&quot;$diffHeaderHashRefKey\&quot;&quot;;
&gt; -        @assertionArgs = ($headerHashRef-&gt;{$diffHeaderHashRefKey}, $testCaseHashRef-&gt;{$diffHeaderHashRefKey}, $testName);
&gt; -        push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +        my @assertionArgs1 = ($headerHashRef-&gt;{$diffHeaderHashRefKey}, $testCaseHashRef-&gt;{$diffHeaderHashRefKey}, $testName);
&gt; +        push(@assertionArgsArrayRefs, \@assertionArgs1);
&gt;      }
&gt;  
&gt; -    @assertionArgs = ($lastReadLine, $testCaseHashRef-&gt;{lastReadLine}, &quot;${testNameStart}lastReadLine&quot;);
&gt; -    push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +    my @assertionArgs2 = ($lastReadLine, $testCaseHashRef-&gt;{lastReadLine}, &quot;${testNameStart}lastReadLine&quot;);
&gt; +    push(@assertionArgsArrayRefs, \@assertionArgs2);
&gt;  
&gt;      my $nextLine = &lt;$fileHandle&gt;;
&gt; -    @assertionArgs = ($nextLine, $testCaseHashRef-&gt;{nextLine}, &quot;${testNameStart}nextLine&quot;);
&gt; -    push(@assertionArgsArrayRefs, \@assertionArgs);
&gt; +    my @assertionArgs3 = ($nextLine, $testCaseHashRef-&gt;{nextLine}, &quot;${testNameStart}nextLine&quot;);
&gt; +    push(@assertionArgsArrayRefs, \@assertionArgs3);

Similarly, we can write this portion of the patch using the square-bracket notation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218361</commentid>
    <comment_count>11</comment_count>
      <attachid>54558</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 06:18:37 -0700</bug_when>
    <thetext>Created attachment 54558
Proposed patch 4

Incorporated Daniel&apos;s suggestion to create references to anonymous arrays instead of creating arrays.  (Great suggestion, Daniel!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218362</commentid>
    <comment_count>12</comment_count>
      <attachid>54559</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 06:25:06 -0700</bug_when>
    <thetext>Created attachment 54559
Proposed patch 5

Renamed $assertionArgs variables to $assertionArgsRef since they now represent references to arrays rather than arrays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218431</commentid>
    <comment_count>13</comment_count>
      <attachid>54559</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-04-28 09:34:52 -0700</bug_when>
    <thetext>Comment on attachment 54559
Proposed patch 5

Thanks Chris! I didn&apos;t see the changes that we discussed about updating the svnConvertedText comments to reflect the fact that this variable does not correspond to a properly formatted SVN diff.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218443</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 09:50:50 -0700</bug_when>
    <thetext>(In reply to comment #13)

Thanks for the review, Daniel!

&gt; (From update of attachment 54559 [details])
&gt; Thanks Chris! I didn&apos;t see the changes that we discussed about updating the
&gt; svnConvertedText comments to reflect the fact that this variable does not
&gt; correspond to a properly formatted SVN diff.

You&apos;re right.  I overlooked that.  I&apos;ll be sure to update the code comment prior to landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218769</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 19:33:21 -0700</bug_when>
    <thetext>Committed:

http://trac.webkit.org/changeset/58464</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54236</attachid>
            <date>2010-04-25 05:47:36 -0700</date>
            <delta_ts>2010-04-25 06:37:21 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-38093-1.diff</filename>
            <type>text/plain</type>
            <size>6032</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Njc5ZjMyLi44Mzc2MGE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDQt
MjUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBkaXZpZGluZyBs
aW5lIChpLmUuICI9PT09Li4uIikgbG9naWMgZnJvbSB0aGUgY29kZQorICAgICAgICBjYWxsZWQg
Ynkgc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgwOTMKKworICAgICAgICBUaGUgZGl2aWRpbmcgbGlu
ZSBsb2dpYyBpcyB1bm5lY2Vzc2FyeS4gIFJlbW92aW5nIGl0IHdpbGwgc2ltcGxpZnkKKyAgICAg
ICAgdGhlIGNvZGUgYW5kIG1ha2Ugc29tZSBzdWJzZXF1ZW50IGNoYW5nZXMgc29td2hhdCBlYXNp
ZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAgIC0gUmVtb3Zl
ZCB0aGUgbG9naWMgaW4gZ2l0ZGlmZjJzdm5kaWZmKCkgdG8gY29udmVydCB0aGUgZ2l0CisgICAg
ICAgICAgICAiaW5kZXgiIGxpbmUgdG8gYW4gU1ZOIGRpdmlkaW5nIGxpbmUuCisgICAgICAgICAg
LSBBZGp1c3RlZCB0aGUgbG9naWMgc2ltaWxhcmx5IGluIHBhcnNlRGlmZkhlYWRlcigpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3Zu
ZGlmZi5wbDoKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZkhlYWRlci5wbDoKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVj
ZXNzYXJ5LgorICAgICAgICAgIC0gQWxzbyBjb3JyZWN0ZWQgYW4gZXJyb3IgaW4gdGhlIHVuaXQg
dGVzdHMgd2hlcmVieSBhbGwgZWxlbWVudHMKKyAgICAgICAgICAgIG9mIGFuIGFycmF5IHdlcmUg
cmVmZXJlbmNpbmcgdGhlIHNhbWUgZWxlbWVudCByYXRoZXIgdGhhbgorICAgICAgICAgICAgZGlz
dGluY3QgZWxlbWVudHMgLS0gY2F1c2luZyB1bml0IHRlc3QgZmFpbHVyZXMgdG8gYmUgbWFza2Vk
LgorCiAyMDEwLTA0LTIwICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHMucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCmlu
ZGV4IDI1YTMxOWIuLjdlMDk4MzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNT
VXRpbHMucG0KKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQpAQCAtMzcxLDEw
ICszNzEsNiBAQCBzdWIgZ2l0ZGlmZjJzdm5kaWZmKCQpCiAgICAgaWYgKG0jXmRpZmYgLS1naXQg
XHcvKC4rKSBcdy8oW15cclxuXSspIykgewogICAgICAgICByZXR1cm4gIkluZGV4OiAkMSRQT1NU
TUFUQ0giOwogICAgIH0KLSAgICBpZiAobSNeaW5kZXggWzAtOWEtZl17N31cLlwuWzAtOWEtZl17
N30gWzAtOV17Nn0jKSB7Ci0gICAgICAgICMgRklYTUU6IE5vIG5lZWQgdG8gcmV0dXJuIGRpdmlk
aW5nIGxpbmUgb25jZSBwYXJzZURpZmZIZWFkZXIoKSBpcyB1c2VkLgotICAgICAgICByZXR1cm4g
Ij09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0kUE9TVE1BVENIIjsKLSAgICB9CiAgICAgaWYgKG0jXi0tLSBcdy8oW15cclxu
XSspIykgewogICAgICAgICByZXR1cm4gIi0tLSAkMSRQT1NUTUFUQ0giOwogICAgIH0KQEAgLTQ1
NSwxMyArNDUxLDkgQEAgc3ViIHBhcnNlRGlmZkhlYWRlcigkJCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICJzb3VyY2UgcmV2aXNpb24gbnVtYmVyIFwiJHNvdXJjZVJldmlzaW9uXCIuIikgaWYg
KCQyICE9ICRzb3VyY2VSZXZpc2lvbik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQotICAgICAgICAgICAgJF8gPSAiPSIgeCA2NyAuICIkZW9sJF8iOyAjIFByZXBlbmQgZGl2aWRp
bmcgbGluZSA9PT0uLi4uCiAgICAgICAgIH0gZWxzaWYgKHMvXlwrXCtcKyBcUysvKysrICRpbmRl
eFBhdGgvKSB7CiAgICAgICAgICAgICAjICsrKwogICAgICAgICAgICAgJGZvdW5kSGVhZGVyRW5k
aW5nID0gMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMgU2tpcCB1bnJlY29nbml6
ZWQgbGluZXMuCi0gICAgICAgICAgICBuZXh0OwogICAgICAgICB9CiAKICAgICAgICAgJHN2bkNv
bnZlcnRlZFRleHQgLj0gIiRfJGVvbCI7ICMgQWxzbyByZXN0b3JlIGVuZC1vZi1saW5lIGNoYXJh
Y3RlcnMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRp
bHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbAppbmRleCA5MzcwOGQ2
Li5lNmYyZGI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNT
VXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsCisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9naXRkaWZmMnN2bmRpZmYucGwKQEAgLTYw
LDcgKzYwLDcgQEAgRU5ECiAKIG15ICRzdm5fcGF0Y2ggPSA8PEVORDsKIEluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCi09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitpbmRl
eCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlRmxleGlibGVCb3hEYXRhLmgKICsrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZs
ZXhpYmxlQm94RGF0YS5oCiBAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZm
SGVhZGVyLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0
ZXN0L3BhcnNlRGlmZkhlYWRlci5wbAppbmRleCBhN2EzYzI2Li5hODI4ODAwIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VE
aWZmSGVhZGVyLnBsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGls
c191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGwKQEAgLTE4Myw3ICsxODMsNyBAQCBFTkQKICAg
ICAjIEhlYWRlciBrZXlzIHRvIGNoZWNrCiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQn
LAogSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgK
LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KK2luZGV4IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiAtLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAogKysrIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKIEVORApAQCAtMTk2LDcgKzE5Niw3IEBA
IEVORAogfSwKIHsKICAgICAjIE5ldyB0ZXN0Ci0gICAgZGlmZk5hbWUgPT4gIkdpdDogdW5yZWNv
Z25pemVkIGxpbmVzIiwKKyAgICBkaWZmTmFtZSA9PiAiR2l0OiBuZXcgZmlsZSIsCiAgICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCiBkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xvc3VyZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xvc3VyZS5odG1sCiBu
ZXcgZmlsZSBtb2RlIDEwMDY0NApAQCAtMjA5LDcgKzIwOSw4IEBAIEVORAogICAgICMgSGVhZGVy
IGtleXMgdG8gY2hlY2sKICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCiBJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xv
c3VyZS5odG1sCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw
MC4uM2M5ZjExNAogLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIv
eHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbAogKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbGlzdGVuZXIveHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbAogRU5ECkBAIC0yNDcsMTkg
KzI0OCwxOSBAQCBzdWIgdGVzdFBhcnNlRGlmZkhlYWRlckFzc2VydGlvbkFyZ3MoJCkKICAgICBt
eSAkdGVzdE5hbWVTdGFydCA9ICJwYXJzZURpZmZIZWFkZXIoKTogWyR0ZXN0Q2FzZUhhc2hSZWYt
PntkaWZmTmFtZX1dICI7CiAKICAgICBteSBAYXNzZXJ0aW9uQXJnc0FycmF5UmVmczsgIyBSZXR1
cm4gdmFsdWUKLSAgICBteSBAYXNzZXJ0aW9uQXJnczsKKwogICAgIGZvcmVhY2ggbXkgJGRpZmZI
ZWFkZXJIYXNoUmVmS2V5IChAZGlmZkhlYWRlckhhc2hSZWZLZXlzKSB7CiAgICAgICAgIG15ICR0
ZXN0TmFtZSA9ICIke3Rlc3ROYW1lU3RhcnR9a2V5PVwiJGRpZmZIZWFkZXJIYXNoUmVmS2V5XCIi
OwotICAgICAgICBAYXNzZXJ0aW9uQXJncyA9ICgkaGVhZGVySGFzaFJlZi0+eyRkaWZmSGVhZGVy
SGFzaFJlZktleX0sICR0ZXN0Q2FzZUhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAk
dGVzdE5hbWUpOwotICAgICAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2Vy
dGlvbkFyZ3MpOworICAgICAgICBteSBAYXNzZXJ0aW9uQXJnczEgPSAoJGhlYWRlckhhc2hSZWYt
PnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVzdENhc2VIYXNoUmVmLT57JGRpZmZIZWFkZXJI
YXNoUmVmS2V5fSwgJHRlc3ROYW1lKTsKKyAgICAgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5
UmVmcywgXEBhc3NlcnRpb25BcmdzMSk7CiAgICAgfQogCi0gICAgQGFzc2VydGlvbkFyZ3MgPSAo
JGxhc3RSZWFkTGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3Rlc3RO
YW1lU3RhcnR9bGFzdFJlYWRMaW5lIik7Ci0gICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVm
cywgXEBhc3NlcnRpb25BcmdzKTsKKyAgICBteSBAYXNzZXJ0aW9uQXJnczIgPSAoJGxhc3RSZWFk
TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3Rlc3ROYW1lU3RhcnR9
bGFzdFJlYWRMaW5lIik7CisgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3Nl
cnRpb25BcmdzMik7CiAKICAgICBteSAkbmV4dExpbmUgPSA8JGZpbGVIYW5kbGU+OwotICAgIEBh
c3NlcnRpb25BcmdzID0gKCRuZXh0TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e25leHRMaW5lfSwg
IiR7dGVzdE5hbWVTdGFydH1uZXh0TGluZSIpOwotICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJh
eVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgbXkgQGFzc2VydGlvbkFyZ3MzID0gKCRuZXh0
TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e25leHRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1uZXh0
TGluZSIpOworICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJn
czMpOwogCiAgICAgcmV0dXJuIEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOwogfQo=
</data>
<flag name="commit-queue"
          id="38150"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54238</attachid>
            <date>2010-04-25 06:37:21 -0700</date>
            <delta_ts>2010-04-25 06:42:17 -0700</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-38093-2.diff</filename>
            <type>text/plain</type>
            <size>8401</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Njc5ZjMyLi41MGU4ZmIzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDQt
MjUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBkaXZpZGluZyBs
aW5lIChpLmUuICI9PT09Li4uIikgbG9naWMgZnJvbSB0aGUgY29kZQorICAgICAgICBjYWxsZWQg
Ynkgc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgwOTMKKworICAgICAgICBUaGUgZGl2aWRpbmcgbGlu
ZSBsb2dpYyBpcyB1bm5lY2Vzc2FyeS4gIFJlbW92aW5nIGl0IHdpbGwgc2ltcGxpZnkKKyAgICAg
ICAgdGhlIGNvZGUgYW5kIG1ha2Ugc29tZSBzdWJzZXF1ZW50IGNoYW5nZXMgc29td2hhdCBlYXNp
ZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAgIC0gUmVtb3Zl
ZCB0aGUgbG9naWMgaW4gZ2l0ZGlmZjJzdm5kaWZmKCkgdG8gY29udmVydCB0aGUgZ2l0CisgICAg
ICAgICAgICAiaW5kZXgiIGxpbmUgdG8gYW4gU1ZOIGRpdmlkaW5nIGxpbmUuCisgICAgICAgICAg
LSBBZGp1c3RlZCB0aGUgbG9naWMgc2ltaWxhcmx5IGluIHBhcnNlRGlmZkhlYWRlcigpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3Zu
ZGlmZi5wbDoKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZi5wbDoKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5
LgorICAgICAgICAgIC0gQ29ycmVjdGVkIGFuIGVycm9yIGluIHRoZSB1bml0IHRlc3RzIHdoZXJl
YnkgYWxsIGVsZW1lbnRzCisgICAgICAgICAgICBvZiBhbiBhcnJheSB3ZXJlIHJlZmVyZW5jaW5n
IHRoZSBzYW1lIGVsZW1lbnQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGRpc3RpbmN0IGVsZW1l
bnRzIC0tIGNhdXNpbmcgdW5pdCB0ZXN0IGZhaWx1cmVzIHRvIGJlIG1hc2tlZC4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIu
cGw6CisgICAgICAgICAgLSBVcGRhdGVkIHRoZSB1bml0IHRlc3RzIGFzIG5lY2Vzc2FyeS4KKyAg
ICAgICAgICAtIE1hZGUgdGhlIHNhbWUgdW5pdCB0ZXN0IGNvcnJlY3Rpb24gYXMgYWJvdmUgZm9y
IHBhcnNlRGlmZi5wbC4KKwogMjAxMC0wNC0yMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9W
Q1NVdGlscy5wbQppbmRleCAyNWEzMTliLi43ZTA5ODM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL1ZDU1V0aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMu
cG0KQEAgLTM3MSwxMCArMzcxLDYgQEAgc3ViIGdpdGRpZmYyc3ZuZGlmZigkKQogICAgIGlmICht
I15kaWZmIC0tZ2l0IFx3LyguKykgXHcvKFteXHJcbl0rKSMpIHsKICAgICAgICAgcmV0dXJuICJJ
bmRleDogJDEkUE9TVE1BVENIIjsKICAgICB9Ci0gICAgaWYgKG0jXmluZGV4IFswLTlhLWZdezd9
XC5cLlswLTlhLWZdezd9IFswLTldezZ9IykgewotICAgICAgICAjIEZJWE1FOiBObyBuZWVkIHRv
IHJldHVybiBkaXZpZGluZyBsaW5lIG9uY2UgcGFyc2VEaWZmSGVhZGVyKCkgaXMgdXNlZC4KLSAg
ICAgICAgcmV0dXJuICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09JFBPU1RNQVRDSCI7Ci0gICAgfQogICAgIGlmIChtI14t
LS0gXHcvKFteXHJcbl0rKSMpIHsKICAgICAgICAgcmV0dXJuICItLS0gJDEkUE9TVE1BVENIIjsK
ICAgICB9CkBAIC00NTUsMTMgKzQ1MSw5IEBAIHN1YiBwYXJzZURpZmZIZWFkZXIoJCQpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAic291cmNlIHJldmlzaW9uIG51bWJlciBcIiRzb3VyY2VSZXZp
c2lvblwiLiIpIGlmICgkMiAhPSAkc291cmNlUmV2aXNpb24pOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRfID0gIj0iIHggNjcgLiAiJGVvbCRfIjsgIyBQ
cmVwZW5kIGRpdmlkaW5nIGxpbmUgPT09Li4uLgogICAgICAgICB9IGVsc2lmIChzL15cK1wrXCsg
XFMrLysrKyAkaW5kZXhQYXRoLykgewogICAgICAgICAgICAgIyArKysKICAgICAgICAgICAgICRm
b3VuZEhlYWRlckVuZGluZyA9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAjIFNr
aXAgdW5yZWNvZ25pemVkIGxpbmVzLgotICAgICAgICAgICAgbmV4dDsKICAgICAgICAgfQogCiAg
ICAgICAgICRzdm5Db252ZXJ0ZWRUZXh0IC49ICIkXyRlb2wiOyAjIEFsc28gcmVzdG9yZSBlbmQt
b2YtbGluZSBjaGFyYWN0ZXJzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbCBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9naXRkaWZmMnN2bmRpZmYucGwK
aW5kZXggOTM3MDhkNi4uZTZmMmRiNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbAorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5k
aWZmLnBsCkBAIC02MCw3ICs2MCw3IEBAIEVORAogCiBteSAkc3ZuX3BhdGNoID0gPDxFTkQ7CiBJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQoraW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKIC0tLSBXZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCiArKysgV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAogQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0
ZXN0L3BhcnNlRGlmZi5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGls
c191bml0dGVzdC9wYXJzZURpZmYucGwKaW5kZXggMjUwN2QyZC4uODlhMjg1MiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZi5wbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5p
dHRlc3QvcGFyc2VEaWZmLnBsCkBAIC0yMTgsNyArMjE4LDcgQEAgRU5ECiAgICAgIyBIZWFkZXIg
a2V5cyB0byBjaGVjawogICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gIDw8J0VORCcsCiBJbmRleDog
TWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KK2luZGV4IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiAtLS0g
TWFrZWZpbGUKICsrKyBNYWtlZmlsZQogQEAgLTEsMSAxLDEgQEAgcHVibGljOgpAQCAtMjQ2LDcg
KzI0Niw3IEBAIEVORAogICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sKICAgICBzdm5Db252ZXJ0
ZWRUZXh0ID0+ICA8PCdFTkQnLAogSW5kZXg6IE1ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitpbmRleCBm
NWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIE1ha2VmaWxlCiArKysgTWFrZWZpbGUKIEBAIC0x
LDEgMSwxIEBAIHB1YmxpYzoKQEAgLTI4OCwxOSArMjg4LDE5IEBAIHN1YiB0ZXN0UGFyc2VEaWZm
QXNzZXJ0aW9uQXJncygkKQogICAgIG15ICR0ZXN0TmFtZVN0YXJ0ID0gInBhcnNlRGlmZigpOiBb
JHRlc3RDYXNlSGFzaFJlZi0+e2RpZmZOYW1lfV0gIjsKIAogICAgIG15IEBhc3NlcnRpb25Bcmdz
QXJyYXlSZWZzOyAjIFJldHVybiB2YWx1ZQotICAgIG15IEBhc3NlcnRpb25BcmdzOworCiAgICAg
Zm9yZWFjaCBteSAkZGlmZkhhc2hSZWZLZXkgKEBkaWZmSGFzaFJlZktleXMpIHsKICAgICAgICAg
bXkgJHRlc3ROYW1lID0gIiR7dGVzdE5hbWVTdGFydH1rZXk9XCIkZGlmZkhhc2hSZWZLZXlcIiI7
Ci0gICAgICAgIEBhc3NlcnRpb25BcmdzID0gKCRkaWZmSGFzaFJlZi0+eyRkaWZmSGFzaFJlZktl
eX0sICR0ZXN0Q2FzZUhhc2hSZWYtPnskZGlmZkhhc2hSZWZLZXl9LCAkdGVzdE5hbWUpOwotICAg
ICAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAg
ICAgICBteSBAYXNzZXJ0aW9uQXJnczEgPSAoJGRpZmZIYXNoUmVmLT57JGRpZmZIYXNoUmVmS2V5
fSwgJHRlc3RDYXNlSGFzaFJlZi0+eyRkaWZmSGFzaFJlZktleX0sICR0ZXN0TmFtZSk7CisgICAg
ICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJnczEpOwogICAg
IH0KIAotICAgIEBhc3NlcnRpb25BcmdzID0gKCRsYXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hS
ZWYtPntsYXN0UmVhZExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fWxhc3RSZWFkTGluZSIpOwotICAg
IHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgbXkg
QGFzc2VydGlvbkFyZ3MyID0gKCRsYXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntsYXN0
UmVhZExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fWxhc3RSZWFkTGluZSIpOworICAgIHB1c2goQGFz
c2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJnczIpOwogCiAgICAgbXkgJG5leHRM
aW5lID0gPCRmaWxlSGFuZGxlPjsKLSAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbmV4dExpbmUsICR0
ZXN0Q2FzZUhhc2hSZWYtPntuZXh0TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsK
LSAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAg
IG15IEBhc3NlcnRpb25BcmdzMyA9ICgkbmV4dExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntuZXh0
TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsKKyAgICBwdXNoKEBhc3NlcnRpb25B
cmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MzKTsKIAogICAgIHJldHVybiBAYXNzZXJ0aW9u
QXJnc0FycmF5UmVmczsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGwgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZmSGVhZGVyLnBsCmlu
ZGV4IGE3YTNjMjYuLmE4Mjg4MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGwKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZkhlYWRl
ci5wbApAQCAtMTgzLDcgKzE4Myw3IEBAIEVORAogICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sK
ICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCiBJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoraW5kZXggZjVkNWU3
NC4uM2I2YWE5MiAxMDA2NDQKIC0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhp
YmxlQm94RGF0YS5oCiArKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJv
eERhdGEuaAogRU5ECkBAIC0xOTYsNyArMTk2LDcgQEAgRU5ECiB9LAogewogICAgICMgTmV3IHRl
c3QKLSAgICBkaWZmTmFtZSA9PiAiR2l0OiB1bnJlY29nbml6ZWQgbGluZXMiLAorICAgIGRpZmZO
YW1lID0+ICJHaXQ6IG5ldyBmaWxlIiwKICAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKIGRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1pbmFj
dGl2ZS1jbG9zdXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3Rl
bmVyL3hzcy1pbmFjdGl2ZS1jbG9zdXJlLmh0bWwKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CkBAIC0y
MDksNyArMjA5LDggQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjawogICAgIHN2bkNv
bnZlcnRlZFRleHQgPT4gPDwnRU5EJywKIEluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xpc3RlbmVyL3hzcy1pbmFjdGl2ZS1jbG9zdXJlLmh0bWwKLT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK25l
dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4zYzlmMTE0CiAtLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xvc3VyZS5odG1s
CiArKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3Rp
dmUtY2xvc3VyZS5odG1sCiBFTkQKQEAgLTI0NywxOSArMjQ4LDE5IEBAIHN1YiB0ZXN0UGFyc2VE
aWZmSGVhZGVyQXNzZXJ0aW9uQXJncygkKQogICAgIG15ICR0ZXN0TmFtZVN0YXJ0ID0gInBhcnNl
RGlmZkhlYWRlcigpOiBbJHRlc3RDYXNlSGFzaFJlZi0+e2RpZmZOYW1lfV0gIjsKIAogICAgIG15
IEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOyAjIFJldHVybiB2YWx1ZQotICAgIG15IEBhc3NlcnRp
b25BcmdzOworCiAgICAgZm9yZWFjaCBteSAkZGlmZkhlYWRlckhhc2hSZWZLZXkgKEBkaWZmSGVh
ZGVySGFzaFJlZktleXMpIHsKICAgICAgICAgbXkgJHRlc3ROYW1lID0gIiR7dGVzdE5hbWVTdGFy
dH1rZXk9XCIkZGlmZkhlYWRlckhhc2hSZWZLZXlcIiI7Ci0gICAgICAgIEBhc3NlcnRpb25Bcmdz
ID0gKCRoZWFkZXJIYXNoUmVmLT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5fSwgJHRlc3RDYXNlSGFz
aFJlZi0+eyRkaWZmSGVhZGVySGFzaFJlZktleX0sICR0ZXN0TmFtZSk7Ci0gICAgICAgIHB1c2go
QGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgICAgIG15IEBh
c3NlcnRpb25BcmdzMSA9ICgkaGVhZGVySGFzaFJlZi0+eyRkaWZmSGVhZGVySGFzaFJlZktleX0s
ICR0ZXN0Q2FzZUhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVzdE5hbWUpOwor
ICAgICAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MxKTsK
ICAgICB9CiAKLSAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VI
YXNoUmVmLT57bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsK
LSAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAg
IG15IEBhc3NlcnRpb25BcmdzMiA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57
bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsKKyAgICBwdXNo
KEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MyKTsKIAogICAgIG15ICRu
ZXh0TGluZSA9IDwkZmlsZUhhbmRsZT47Ci0gICAgQGFzc2VydGlvbkFyZ3MgPSAoJG5leHRMaW5l
LCAkdGVzdENhc2VIYXNoUmVmLT57bmV4dExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5l
Iik7Ci0gICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzKTsK
KyAgICBteSBAYXNzZXJ0aW9uQXJnczMgPSAoJG5leHRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57
bmV4dExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5lIik7CisgICAgcHVzaChAYXNzZXJ0
aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzMyk7CiAKICAgICByZXR1cm4gQGFzc2Vy
dGlvbkFyZ3NBcnJheVJlZnM7CiB9Cg==
</data>
<flag name="commit-queue"
          id="38154"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54239</attachid>
            <date>2010-04-25 06:42:17 -0700</date>
            <delta_ts>2010-04-28 06:18:37 -0700</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>_patch-38093-3.diff</filename>
            <type>text/plain</type>
            <size>8392</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Njc5ZjMyLi5mYTA0NGVlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDQt
MjUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0aGUgZGl2aWRpbmcg
bGluZSAoaS5lLiAiPT09PS4uLiIpIGxvZ2ljIGZyb20gdGhlIGNvZGUKKyAgICAgICAgY2FsbGVk
IGJ5IHN2bi1hcHBseSBhbmQgc3ZuLXVuYXBwbHkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MDkzCisKKyAgICAgICAgVGhlIGRpdmlkaW5nIGxp
bmUgbG9naWMgaXMgdW5uZWNlc3NhcnkuICBSZW1vdmluZyBpdCBzaW1wbGlmaWVzIHRoZQorICAg
ICAgICBjb2RlIGFuZCBtYWtlcyBzb21lIHN1YnNlcXVlbnQgY2hhbmdlcyBlYXNpZXIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAgIC0gUmVtb3ZlZCB0aGUgbG9n
aWMgaW4gZ2l0ZGlmZjJzdm5kaWZmKCkgdG8gY29udmVydCB0aGUgZ2l0CisgICAgICAgICAgICAi
aW5kZXgiIGxpbmUgdG8gYW4gU1ZOIGRpdmlkaW5nIGxpbmUuCisgICAgICAgICAgLSBBZGp1c3Rl
ZCB0aGUgbG9naWMgc2ltaWxhcmx5IGluIHBhcnNlRGlmZkhlYWRlcigpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorICAgICAg
ICAgIC0gQ29ycmVjdGVkIGFuIGVycm9yIGluIHRoZSB1bml0IHRlc3RzIHdoZXJlYnkgYWxsIGVs
ZW1lbnRzCisgICAgICAgICAgICBvZiBhbiBhcnJheSB3ZXJlIHJlZmVyZW5jaW5nIHRoZSBzYW1l
IGVsZW1lbnQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGRpc3RpbmN0IGVsZW1lbnRzIC0tIGNh
dXNpbmcgdW5pdCB0ZXN0IGZhaWx1cmVzIHRvIGJlIG1hc2tlZC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGw6CisgICAg
ICAgICAgLSBVcGRhdGVkIHRoZSB1bml0IHRlc3RzIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAt
IE1hZGUgdGhlIHNhbWUgdW5pdCB0ZXN0IGNvcnJlY3Rpb24gYXMgYWJvdmUgZm9yIHBhcnNlRGlm
Zi5wbC4KKwogMjAxMC0wNC0yMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5w
bQppbmRleCAyNWEzMTliLi43ZTA5ODM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L1ZDU1V0aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KQEAgLTM3
MSwxMCArMzcxLDYgQEAgc3ViIGdpdGRpZmYyc3ZuZGlmZigkKQogICAgIGlmIChtI15kaWZmIC0t
Z2l0IFx3LyguKykgXHcvKFteXHJcbl0rKSMpIHsKICAgICAgICAgcmV0dXJuICJJbmRleDogJDEk
UE9TVE1BVENIIjsKICAgICB9Ci0gICAgaWYgKG0jXmluZGV4IFswLTlhLWZdezd9XC5cLlswLTlh
LWZdezd9IFswLTldezZ9IykgewotICAgICAgICAjIEZJWE1FOiBObyBuZWVkIHRvIHJldHVybiBk
aXZpZGluZyBsaW5lIG9uY2UgcGFyc2VEaWZmSGVhZGVyKCkgaXMgdXNlZC4KLSAgICAgICAgcmV0
dXJuICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09JFBPU1RNQVRDSCI7Ci0gICAgfQogICAgIGlmIChtI14tLS0gXHcvKFte
XHJcbl0rKSMpIHsKICAgICAgICAgcmV0dXJuICItLS0gJDEkUE9TVE1BVENIIjsKICAgICB9CkBA
IC00NTUsMTMgKzQ1MSw5IEBAIHN1YiBwYXJzZURpZmZIZWFkZXIoJCQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAic291cmNlIHJldmlzaW9uIG51bWJlciBcIiRzb3VyY2VSZXZpc2lvblwiLiIp
IGlmICgkMiAhPSAkc291cmNlUmV2aXNpb24pOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICRfID0gIj0iIHggNjcgLiAiJGVvbCRfIjsgIyBQcmVwZW5kIGRp
dmlkaW5nIGxpbmUgPT09Li4uLgogICAgICAgICB9IGVsc2lmIChzL15cK1wrXCsgXFMrLysrKyAk
aW5kZXhQYXRoLykgewogICAgICAgICAgICAgIyArKysKICAgICAgICAgICAgICRmb3VuZEhlYWRl
ckVuZGluZyA9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAjIFNraXAgdW5yZWNv
Z25pemVkIGxpbmVzLgotICAgICAgICAgICAgbmV4dDsKICAgICAgICAgfQogCiAgICAgICAgICRz
dm5Db252ZXJ0ZWRUZXh0IC49ICIkXyRlb2wiOyAjIEFsc28gcmVzdG9yZSBlbmQtb2YtbGluZSBj
aGFyYWN0ZXJzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZD
U1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9naXRkaWZmMnN2bmRpZmYucGwKaW5kZXggOTM3
MDhkNi4uZTZmMmRiNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbAorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsCkBA
IC02MCw3ICs2MCw3IEBAIEVORAogCiBteSAkc3ZuX3BhdGNoID0gPDxFTkQ7CiBJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAotPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
aW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKIC0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCiArKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVGbGV4aWJsZUJveERhdGEuaAogQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZi5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVz
dC9wYXJzZURpZmYucGwKaW5kZXggMjUwN2QyZC4uODlhMjg1MiAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZi5wbAor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFy
c2VEaWZmLnBsCkBAIC0yMTgsNyArMjE4LDcgQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBj
aGVjawogICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gIDw8J0VORCcsCiBJbmRleDogTWFrZWZpbGUK
LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KK2luZGV4IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiAtLS0gTWFrZWZpbGUK
ICsrKyBNYWtlZmlsZQogQEAgLTEsMSAxLDEgQEAgcHVibGljOgpAQCAtMjQ2LDcgKzI0Niw3IEBA
IEVORAogICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sKICAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+
ICA8PCdFTkQnLAogSW5kZXg6IE1ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitpbmRleCBmNWQ1ZTc0Li4z
YjZhYTkyIDEwMDY0NAogLS0tIE1ha2VmaWxlCiArKysgTWFrZWZpbGUKIEBAIC0xLDEgMSwxIEBA
IHB1YmxpYzoKQEAgLTI4OCwxOSArMjg4LDE5IEBAIHN1YiB0ZXN0UGFyc2VEaWZmQXNzZXJ0aW9u
QXJncygkKQogICAgIG15ICR0ZXN0TmFtZVN0YXJ0ID0gInBhcnNlRGlmZigpOiBbJHRlc3RDYXNl
SGFzaFJlZi0+e2RpZmZOYW1lfV0gIjsKIAogICAgIG15IEBhc3NlcnRpb25BcmdzQXJyYXlSZWZz
OyAjIFJldHVybiB2YWx1ZQotICAgIG15IEBhc3NlcnRpb25BcmdzOworCiAgICAgZm9yZWFjaCBt
eSAkZGlmZkhhc2hSZWZLZXkgKEBkaWZmSGFzaFJlZktleXMpIHsKICAgICAgICAgbXkgJHRlc3RO
YW1lID0gIiR7dGVzdE5hbWVTdGFydH1rZXk9XCIkZGlmZkhhc2hSZWZLZXlcIiI7Ci0gICAgICAg
IEBhc3NlcnRpb25BcmdzID0gKCRkaWZmSGFzaFJlZi0+eyRkaWZmSGFzaFJlZktleX0sICR0ZXN0
Q2FzZUhhc2hSZWYtPnskZGlmZkhhc2hSZWZLZXl9LCAkdGVzdE5hbWUpOwotICAgICAgICBwdXNo
KEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAgICAgICBteSBA
YXNzZXJ0aW9uQXJnczEgPSAoJGRpZmZIYXNoUmVmLT57JGRpZmZIYXNoUmVmS2V5fSwgJHRlc3RD
YXNlSGFzaFJlZi0+eyRkaWZmSGFzaFJlZktleX0sICR0ZXN0TmFtZSk7CisgICAgICAgIHB1c2go
QGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJnczEpOwogICAgIH0KIAotICAg
IEBhc3NlcnRpb25BcmdzID0gKCRsYXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntsYXN0
UmVhZExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fWxhc3RSZWFkTGluZSIpOwotICAgIHB1c2goQGFz
c2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgbXkgQGFzc2VydGlv
bkFyZ3MyID0gKCRsYXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntsYXN0UmVhZExpbmV9
LCAiJHt0ZXN0TmFtZVN0YXJ0fWxhc3RSZWFkTGluZSIpOworICAgIHB1c2goQGFzc2VydGlvbkFy
Z3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJnczIpOwogCiAgICAgbXkgJG5leHRMaW5lID0gPCRm
aWxlSGFuZGxlPjsKLSAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbmV4dExpbmUsICR0ZXN0Q2FzZUhh
c2hSZWYtPntuZXh0TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsKLSAgICBwdXNo
KEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAgIG15IEBhc3Nl
cnRpb25BcmdzMyA9ICgkbmV4dExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntuZXh0TGluZX0sICIk
e3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsKKyAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlS
ZWZzLCBcQGFzc2VydGlvbkFyZ3MzKTsKIAogICAgIHJldHVybiBAYXNzZXJ0aW9uQXJnc0FycmF5
UmVmczsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NV
dGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZmSGVhZGVyLnBsCmluZGV4IGE3YTNj
MjYuLmE4Mjg4MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9W
Q1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGwKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZkhlYWRlci5wbApAQCAt
MTgzLDcgKzE4Myw3IEBAIEVORAogICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sKICAgICBzdm5D
b252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCiBJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVGbGV4aWJsZUJveERhdGEuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoraW5kZXggZjVkNWU3NC4uM2I2YWE5
MiAxMDA2NDQKIC0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0
YS5oCiArKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaAog
RU5ECkBAIC0xOTYsNyArMTk2LDcgQEAgRU5ECiB9LAogewogICAgICMgTmV3IHRlc3QKLSAgICBk
aWZmTmFtZSA9PiAiR2l0OiB1bnJlY29nbml6ZWQgbGluZXMiLAorICAgIGRpZmZOYW1lID0+ICJH
aXQ6IG5ldyBmaWxlIiwKICAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKIGRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1pbmFjdGl2ZS1jbG9z
dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1p
bmFjdGl2ZS1jbG9zdXJlLmh0bWwKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CkBAIC0yMDksNyArMjA5
LDggQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjawogICAgIHN2bkNvbnZlcnRlZFRl
eHQgPT4gPDwnRU5EJywKIEluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xp
c3RlbmVyL3hzcy1pbmFjdGl2ZS1jbG9zdXJlLmh0bWwKLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK25ldyBmaWxlIG1v
ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4zYzlmMTE0CiAtLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xvc3VyZS5odG1sCiArKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtaW5hY3RpdmUtY2xvc3Vy
ZS5odG1sCiBFTkQKQEAgLTI0NywxOSArMjQ4LDE5IEBAIHN1YiB0ZXN0UGFyc2VEaWZmSGVhZGVy
QXNzZXJ0aW9uQXJncygkKQogICAgIG15ICR0ZXN0TmFtZVN0YXJ0ID0gInBhcnNlRGlmZkhlYWRl
cigpOiBbJHRlc3RDYXNlSGFzaFJlZi0+e2RpZmZOYW1lfV0gIjsKIAogICAgIG15IEBhc3NlcnRp
b25BcmdzQXJyYXlSZWZzOyAjIFJldHVybiB2YWx1ZQotICAgIG15IEBhc3NlcnRpb25BcmdzOwor
CiAgICAgZm9yZWFjaCBteSAkZGlmZkhlYWRlckhhc2hSZWZLZXkgKEBkaWZmSGVhZGVySGFzaFJl
ZktleXMpIHsKICAgICAgICAgbXkgJHRlc3ROYW1lID0gIiR7dGVzdE5hbWVTdGFydH1rZXk9XCIk
ZGlmZkhlYWRlckhhc2hSZWZLZXlcIiI7Ci0gICAgICAgIEBhc3NlcnRpb25BcmdzID0gKCRoZWFk
ZXJIYXNoUmVmLT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5fSwgJHRlc3RDYXNlSGFzaFJlZi0+eyRk
aWZmSGVhZGVySGFzaFJlZktleX0sICR0ZXN0TmFtZSk7Ci0gICAgICAgIHB1c2goQGFzc2VydGlv
bkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgICAgIG15IEBhc3NlcnRpb25B
cmdzMSA9ICgkaGVhZGVySGFzaFJlZi0+eyRkaWZmSGVhZGVySGFzaFJlZktleX0sICR0ZXN0Q2Fz
ZUhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVzdE5hbWUpOworICAgICAgICBw
dXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MxKTsKICAgICB9CiAK
LSAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57
bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsKLSAgICBwdXNo
KEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAgIG15IEBhc3Nl
cnRpb25BcmdzMiA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57bGFzdFJlYWRM
aW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsKKyAgICBwdXNoKEBhc3NlcnRp
b25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MyKTsKIAogICAgIG15ICRuZXh0TGluZSA9
IDwkZmlsZUhhbmRsZT47Ci0gICAgQGFzc2VydGlvbkFyZ3MgPSAoJG5leHRMaW5lLCAkdGVzdENh
c2VIYXNoUmVmLT57bmV4dExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5lIik7Ci0gICAg
cHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzKTsKKyAgICBteSBA
YXNzZXJ0aW9uQXJnczMgPSAoJG5leHRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57bmV4dExpbmV9
LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5lIik7CisgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0Fy
cmF5UmVmcywgXEBhc3NlcnRpb25BcmdzMyk7CiAKICAgICByZXR1cm4gQGFzc2VydGlvbkFyZ3NB
cnJheVJlZnM7CiB9Cg==
</data>
<flag name="commit-queue"
          id="38156"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54558</attachid>
            <date>2010-04-28 06:18:37 -0700</date>
            <delta_ts>2010-04-28 06:25:06 -0700</delta_ts>
            <desc>Proposed patch 4</desc>
            <filename>_patch-38093-4.diff</filename>
            <type>text/plain</type>
            <size>8412</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZGQ5ZDhkLi4zZmM5NGI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDQt
MjUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0aGUgZGl2aWRpbmcg
bGluZSAoaS5lLiAiPT09PS4uLiIpIGxvZ2ljIGZyb20gdGhlIGNvZGUKKyAgICAgICAgY2FsbGVk
IGJ5IHN2bi1hcHBseSBhbmQgc3ZuLXVuYXBwbHkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MDkzCisKKyAgICAgICAgVGhlIGRpdmlkaW5nIGxp
bmUgbG9naWMgaXMgdW5uZWNlc3NhcnkuICBSZW1vdmluZyBpdCBzaW1wbGlmaWVzIHRoZQorICAg
ICAgICBjb2RlIGFuZCBtYWtlcyBzb21lIHN1YnNlcXVlbnQgY2hhbmdlcyBlYXNpZXIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAgIC0gUmVtb3ZlZCB0aGUgbG9n
aWMgaW4gZ2l0ZGlmZjJzdm5kaWZmKCkgdG8gY29udmVydCB0aGUgZ2l0CisgICAgICAgICAgICAi
aW5kZXgiIGxpbmUgdG8gYW4gU1ZOIGRpdmlkaW5nIGxpbmUuCisgICAgICAgICAgLSBBZGp1c3Rl
ZCB0aGUgbG9naWMgc2ltaWxhcmx5IGluIHBhcnNlRGlmZkhlYWRlcigpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorICAgICAg
ICAgIC0gQ29ycmVjdGVkIGFuIGVycm9yIGluIHRoZSB1bml0IHRlc3RzIHdoZXJlYnkgYWxsIGVs
ZW1lbnRzCisgICAgICAgICAgICBvZiBhbiBhcnJheSB3ZXJlIHJlZmVyZW5jaW5nIHRoZSBzYW1l
IGVsZW1lbnQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGRpc3RpbmN0IGVsZW1lbnRzIC0tIGNh
dXNpbmcgdW5pdCB0ZXN0IGZhaWx1cmVzIHRvIGJlIG1hc2tlZC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGw6CisgICAg
ICAgICAgLSBVcGRhdGVkIHRoZSB1bml0IHRlc3RzIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAt
IE1hZGUgdGhlIHNhbWUgdW5pdCB0ZXN0IGNvcnJlY3Rpb24gYXMgYWJvdmUgZm9yIHBhcnNlRGlm
Zi5wbC4KKwogMjAxMC0wNC0yOCAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL1ZD
U1V0aWxzLnBtCmluZGV4IDI1YTMxOWIuLjdlMDk4MzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHMucG0KKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5w
bQpAQCAtMzcxLDEwICszNzEsNiBAQCBzdWIgZ2l0ZGlmZjJzdm5kaWZmKCQpCiAgICAgaWYgKG0j
XmRpZmYgLS1naXQgXHcvKC4rKSBcdy8oW15cclxuXSspIykgewogICAgICAgICByZXR1cm4gIklu
ZGV4OiAkMSRQT1NUTUFUQ0giOwogICAgIH0KLSAgICBpZiAobSNeaW5kZXggWzAtOWEtZl17N31c
LlwuWzAtOWEtZl17N30gWzAtOV17Nn0jKSB7Ci0gICAgICAgICMgRklYTUU6IE5vIG5lZWQgdG8g
cmV0dXJuIGRpdmlkaW5nIGxpbmUgb25jZSBwYXJzZURpZmZIZWFkZXIoKSBpcyB1c2VkLgotICAg
ICAgICByZXR1cm4gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0kUE9TVE1BVENIIjsKLSAgICB9CiAgICAgaWYgKG0jXi0t
LSBcdy8oW15cclxuXSspIykgewogICAgICAgICByZXR1cm4gIi0tLSAkMSRQT1NUTUFUQ0giOwog
ICAgIH0KQEAgLTQ1NSwxMyArNDUxLDkgQEAgc3ViIHBhcnNlRGlmZkhlYWRlcigkJCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICJzb3VyY2UgcmV2aXNpb24gbnVtYmVyIFwiJHNvdXJjZVJldmlz
aW9uXCIuIikgaWYgKCQyICE9ICRzb3VyY2VSZXZpc2lvbik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgJF8gPSAiPSIgeCA2NyAuICIkZW9sJF8iOyAjIFBy
ZXBlbmQgZGl2aWRpbmcgbGluZSA9PT0uLi4uCiAgICAgICAgIH0gZWxzaWYgKHMvXlwrXCtcKyBc
UysvKysrICRpbmRleFBhdGgvKSB7CiAgICAgICAgICAgICAjICsrKwogICAgICAgICAgICAgJGZv
dW5kSGVhZGVyRW5kaW5nID0gMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMgU2tp
cCB1bnJlY29nbml6ZWQgbGluZXMuCi0gICAgICAgICAgICBuZXh0OwogICAgICAgICB9CiAKICAg
ICAgICAgJHN2bkNvbnZlcnRlZFRleHQgLj0gIiRfJGVvbCI7ICMgQWxzbyByZXN0b3JlIGVuZC1v
Zi1saW5lIGNoYXJhY3RlcnMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbApp
bmRleCA5MzcwOGQ2Li5lNmYyZGI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9naXRkaWZmMnN2bmRp
ZmYucGwKQEAgLTYwLDcgKzYwLDcgQEAgRU5ECiAKIG15ICRzdm5fcGF0Y2ggPSA8PEVORDsKIElu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCi09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKICsrKyBXZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCiBAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRl
c3QvcGFyc2VEaWZmLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxz
X3VuaXR0ZXN0L3BhcnNlRGlmZi5wbAppbmRleCAyNTA3ZDJkLi44Mzk2MzhmIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VE
aWZmLnBsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0
dGVzdC9wYXJzZURpZmYucGwKQEAgLTIxOCw3ICsyMTgsNyBAQCBFTkQKICAgICAjIEhlYWRlciBr
ZXlzIHRvIGNoZWNrCiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywKIEluZGV4OiBN
YWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQoraW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKIC0tLSBN
YWtlZmlsZQogKysrIE1ha2VmaWxlCiBAQCAtMSwxIDEsMSBAQCBwdWJsaWM6CkBAIC0yNDYsNyAr
MjQ2LDcgQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjawogICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gIDw8J0VORCcsCiBJbmRleDogTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2luZGV4IGY1
ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiAtLS0gTWFrZWZpbGUKICsrKyBNYWtlZmlsZQogQEAgLTEs
MSAxLDEgQEAgcHVibGljOgpAQCAtMjg4LDE5ICsyODgsMjAgQEAgc3ViIHRlc3RQYXJzZURpZmZB
c3NlcnRpb25BcmdzKCQpCiAgICAgbXkgJHRlc3ROYW1lU3RhcnQgPSAicGFyc2VEaWZmKCk6IFsk
dGVzdENhc2VIYXNoUmVmLT57ZGlmZk5hbWV9XSAiOwogCiAgICAgbXkgQGFzc2VydGlvbkFyZ3NB
cnJheVJlZnM7ICMgUmV0dXJuIHZhbHVlCi0gICAgbXkgQGFzc2VydGlvbkFyZ3M7CisgICAgbXkg
JGFzc2VydGlvbkFyZ3M7CisKICAgICBmb3JlYWNoIG15ICRkaWZmSGFzaFJlZktleSAoQGRpZmZI
YXNoUmVmS2V5cykgewogICAgICAgICBteSAkdGVzdE5hbWUgPSAiJHt0ZXN0TmFtZVN0YXJ0fWtl
eT1cIiRkaWZmSGFzaFJlZktleVwiIjsKLSAgICAgICAgQGFzc2VydGlvbkFyZ3MgPSAoJGRpZmZI
YXNoUmVmLT57JGRpZmZIYXNoUmVmS2V5fSwgJHRlc3RDYXNlSGFzaFJlZi0+eyRkaWZmSGFzaFJl
ZktleX0sICR0ZXN0TmFtZSk7Ci0gICAgICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMs
IFxAYXNzZXJ0aW9uQXJncyk7CisgICAgICAgICRhc3NlcnRpb25BcmdzID0gWyRkaWZmSGFzaFJl
Zi0+eyRkaWZmSGFzaFJlZktleX0sICR0ZXN0Q2FzZUhhc2hSZWYtPnskZGlmZkhhc2hSZWZLZXl9
LCAkdGVzdE5hbWVdOworICAgICAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCAkYXNz
ZXJ0aW9uQXJncyk7CiAgICAgfQogCi0gICAgQGFzc2VydGlvbkFyZ3MgPSAoJGxhc3RSZWFkTGlu
ZSwgJHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bGFz
dFJlYWRMaW5lIik7Ci0gICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRp
b25BcmdzKTsKKyAgICAkYXNzZXJ0aW9uQXJncyA9IFskbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VI
YXNoUmVmLT57bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiXTsK
KyAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCAkYXNzZXJ0aW9uQXJncyk7CiAKICAg
ICBteSAkbmV4dExpbmUgPSA8JGZpbGVIYW5kbGU+OwotICAgIEBhc3NlcnRpb25BcmdzID0gKCRu
ZXh0TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e25leHRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1u
ZXh0TGluZSIpOwotICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9u
QXJncyk7CisgICAgJGFzc2VydGlvbkFyZ3MgPSBbJG5leHRMaW5lLCAkdGVzdENhc2VIYXNoUmVm
LT57bmV4dExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5lIl07CisgICAgcHVzaChAYXNz
ZXJ0aW9uQXJnc0FycmF5UmVmcywgJGFzc2VydGlvbkFyZ3MpOwogCiAgICAgcmV0dXJuIEBhc3Nl
cnRpb25BcmdzQXJyYXlSZWZzOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZkhlYWRlci5wbCBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIu
cGwKaW5kZXggYTdhM2MyNi4uODM0OTQ4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZkhlYWRlci5wbAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZm
SGVhZGVyLnBsCkBAIC0xODMsNyArMTgzLDcgQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBj
aGVjawogICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKIEluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitpbmRleCBm
NWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RmxleGlibGVCb3hEYXRhLmgKICsrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhp
YmxlQm94RGF0YS5oCiBFTkQKQEAgLTE5Niw3ICsxOTYsNyBAQCBFTkQKIH0sCiB7CiAgICAgIyBO
ZXcgdGVzdAotICAgIGRpZmZOYW1lID0+ICJHaXQ6IHVucmVjb2duaXplZCBsaW5lcyIsCisgICAg
ZGlmZk5hbWUgPT4gIkdpdDogbmV3IGZpbGUiLAogICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAog
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIveHNz
LWluYWN0aXZlLWNsb3N1cmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bGlzdGVuZXIveHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbAogbmV3IGZpbGUgbW9kZSAxMDA2NDQK
QEAgLTIwOSw3ICsyMDksOCBAQCBFTkQKICAgICAjIEhlYWRlciBrZXlzIHRvIGNoZWNrCiAgICAg
c3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAogSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbGlzdGVuZXIveHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbAotPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjNjOWYxMTQKIC0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1pbmFjdGl2ZS1jbG9zdXJl
Lmh0bWwKICsrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy1p
bmFjdGl2ZS1jbG9zdXJlLmh0bWwKIEVORApAQCAtMjQ3LDE5ICsyNDgsMjAgQEAgc3ViIHRlc3RQ
YXJzZURpZmZIZWFkZXJBc3NlcnRpb25BcmdzKCQpCiAgICAgbXkgJHRlc3ROYW1lU3RhcnQgPSAi
cGFyc2VEaWZmSGVhZGVyKCk6IFskdGVzdENhc2VIYXNoUmVmLT57ZGlmZk5hbWV9XSAiOwogCiAg
ICAgbXkgQGFzc2VydGlvbkFyZ3NBcnJheVJlZnM7ICMgUmV0dXJuIHZhbHVlCi0gICAgbXkgQGFz
c2VydGlvbkFyZ3M7CisgICAgbXkgJGFzc2VydGlvbkFyZ3M7CisKICAgICBmb3JlYWNoIG15ICRk
aWZmSGVhZGVySGFzaFJlZktleSAoQGRpZmZIZWFkZXJIYXNoUmVmS2V5cykgewogICAgICAgICBt
eSAkdGVzdE5hbWUgPSAiJHt0ZXN0TmFtZVN0YXJ0fWtleT1cIiRkaWZmSGVhZGVySGFzaFJlZktl
eVwiIjsKLSAgICAgICAgQGFzc2VydGlvbkFyZ3MgPSAoJGhlYWRlckhhc2hSZWYtPnskZGlmZkhl
YWRlckhhc2hSZWZLZXl9LCAkdGVzdENhc2VIYXNoUmVmLT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5
fSwgJHRlc3ROYW1lKTsKLSAgICAgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBh
c3NlcnRpb25BcmdzKTsKKyAgICAgICAgJGFzc2VydGlvbkFyZ3MgPSBbJGhlYWRlckhhc2hSZWYt
PnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVzdENhc2VIYXNoUmVmLT57JGRpZmZIZWFkZXJI
YXNoUmVmS2V5fSwgJHRlc3ROYW1lXTsKKyAgICAgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5
UmVmcywgJGFzc2VydGlvbkFyZ3MpOwogICAgIH0KIAotICAgIEBhc3NlcnRpb25BcmdzID0gKCRs
YXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntsYXN0UmVhZExpbmV9LCAiJHt0ZXN0TmFt
ZVN0YXJ0fWxhc3RSZWFkTGluZSIpOwotICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMs
IFxAYXNzZXJ0aW9uQXJncyk7CisgICAgJGFzc2VydGlvbkFyZ3MgPSBbJGxhc3RSZWFkTGluZSwg
JHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bGFzdFJl
YWRMaW5lIl07CisgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgJGFzc2VydGlvbkFy
Z3MpOwogCiAgICAgbXkgJG5leHRMaW5lID0gPCRmaWxlSGFuZGxlPjsKLSAgICBAYXNzZXJ0aW9u
QXJncyA9ICgkbmV4dExpbmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntuZXh0TGluZX0sICIke3Rlc3RO
YW1lU3RhcnR9bmV4dExpbmUiKTsKLSAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBc
QGFzc2VydGlvbkFyZ3MpOworICAgICRhc3NlcnRpb25BcmdzID0gWyRuZXh0TGluZSwgJHRlc3RD
YXNlSGFzaFJlZi0+e25leHRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1uZXh0TGluZSJdOworICAg
IHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsICRhc3NlcnRpb25BcmdzKTsKIAogICAgIHJl
dHVybiBAYXNzZXJ0aW9uQXJnc0FycmF5UmVmczsKIH0K
</data>
<flag name="commit-queue"
          id="38567"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54559</attachid>
            <date>2010-04-28 06:25:06 -0700</date>
            <delta_ts>2010-04-28 09:34:52 -0700</delta_ts>
            <desc>Proposed patch 5</desc>
            <filename>_patch-38093-5.diff</filename>
            <type>text/plain</type>
            <size>8454</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZGQ5ZDhkLi4zZmM5NGI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDQt
MjUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0aGUgZGl2aWRpbmcg
bGluZSAoaS5lLiAiPT09PS4uLiIpIGxvZ2ljIGZyb20gdGhlIGNvZGUKKyAgICAgICAgY2FsbGVk
IGJ5IHN2bi1hcHBseSBhbmQgc3ZuLXVuYXBwbHkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MDkzCisKKyAgICAgICAgVGhlIGRpdmlkaW5nIGxp
bmUgbG9naWMgaXMgdW5uZWNlc3NhcnkuICBSZW1vdmluZyBpdCBzaW1wbGlmaWVzIHRoZQorICAg
ICAgICBjb2RlIGFuZCBtYWtlcyBzb21lIHN1YnNlcXVlbnQgY2hhbmdlcyBlYXNpZXIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAgIC0gUmVtb3ZlZCB0aGUgbG9n
aWMgaW4gZ2l0ZGlmZjJzdm5kaWZmKCkgdG8gY29udmVydCB0aGUgZ2l0CisgICAgICAgICAgICAi
aW5kZXgiIGxpbmUgdG8gYW4gU1ZOIGRpdmlkaW5nIGxpbmUuCisgICAgICAgICAgLSBBZGp1c3Rl
ZCB0aGUgbG9naWMgc2ltaWxhcmx5IGluIHBhcnNlRGlmZkhlYWRlcigpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZi5wbDoK
KyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5LgorICAgICAg
ICAgIC0gQ29ycmVjdGVkIGFuIGVycm9yIGluIHRoZSB1bml0IHRlc3RzIHdoZXJlYnkgYWxsIGVs
ZW1lbnRzCisgICAgICAgICAgICBvZiBhbiBhcnJheSB3ZXJlIHJlZmVyZW5jaW5nIHRoZSBzYW1l
IGVsZW1lbnQgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgIGRpc3RpbmN0IGVsZW1lbnRzIC0tIGNh
dXNpbmcgdW5pdCB0ZXN0IGZhaWx1cmVzIHRvIGJlIG1hc2tlZC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZURpZmZIZWFkZXIucGw6CisgICAg
ICAgICAgLSBVcGRhdGVkIHRoZSB1bml0IHRlc3RzIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAt
IE1hZGUgdGhlIHNhbWUgdW5pdCB0ZXN0IGNvcnJlY3Rpb24gYXMgYWJvdmUgZm9yIHBhcnNlRGlm
Zi5wbC4KKwogMjAxMC0wNC0yOCAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL1ZD
U1V0aWxzLnBtCmluZGV4IDI1YTMxOWIuLjdlMDk4MzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHMucG0KKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5w
bQpAQCAtMzcxLDEwICszNzEsNiBAQCBzdWIgZ2l0ZGlmZjJzdm5kaWZmKCQpCiAgICAgaWYgKG0j
XmRpZmYgLS1naXQgXHcvKC4rKSBcdy8oW15cclxuXSspIykgewogICAgICAgICByZXR1cm4gIklu
ZGV4OiAkMSRQT1NUTUFUQ0giOwogICAgIH0KLSAgICBpZiAobSNeaW5kZXggWzAtOWEtZl17N31c
LlwuWzAtOWEtZl17N30gWzAtOV17Nn0jKSB7Ci0gICAgICAgICMgRklYTUU6IE5vIG5lZWQgdG8g
cmV0dXJuIGRpdmlkaW5nIGxpbmUgb25jZSBwYXJzZURpZmZIZWFkZXIoKSBpcyB1c2VkLgotICAg
ICAgICByZXR1cm4gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0kUE9TVE1BVENIIjsKLSAgICB9CiAgICAgaWYgKG0jXi0t
LSBcdy8oW15cclxuXSspIykgewogICAgICAgICByZXR1cm4gIi0tLSAkMSRQT1NUTUFUQ0giOwog
ICAgIH0KQEAgLTQ1NSwxMyArNDUxLDkgQEAgc3ViIHBhcnNlRGlmZkhlYWRlcigkJCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICJzb3VyY2UgcmV2aXNpb24gbnVtYmVyIFwiJHNvdXJjZVJldmlz
aW9uXCIuIikgaWYgKCQyICE9ICRzb3VyY2VSZXZpc2lvbik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgJF8gPSAiPSIgeCA2NyAuICIkZW9sJF8iOyAjIFBy
ZXBlbmQgZGl2aWRpbmcgbGluZSA9PT0uLi4uCiAgICAgICAgIH0gZWxzaWYgKHMvXlwrXCtcKyBc
UysvKysrICRpbmRleFBhdGgvKSB7CiAgICAgICAgICAgICAjICsrKwogICAgICAgICAgICAgJGZv
dW5kSGVhZGVyRW5kaW5nID0gMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMgU2tp
cCB1bnJlY29nbml6ZWQgbGluZXMuCi0gICAgICAgICAgICBuZXh0OwogICAgICAgICB9CiAKICAg
ICAgICAgJHN2bkNvbnZlcnRlZFRleHQgLj0gIiRfJGVvbCI7ICMgQWxzbyByZXN0b3JlIGVuZC1v
Zi1saW5lIGNoYXJhY3RlcnMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2dpdGRpZmYyc3ZuZGlmZi5wbApp
bmRleCA5MzcwOGQ2Li5lNmYyZGI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZ2l0ZGlmZjJzdm5kaWZmLnBsCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9naXRkaWZmMnN2bmRp
ZmYucGwKQEAgLTYwLDcgKzYwLDcgQEAgRU5ECiAKIG15ICRzdm5fcGF0Y2ggPSA8PEVORDsKIElu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCi09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKICsrKyBXZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCiBAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRl
c3QvcGFyc2VEaWZmLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxz
X3VuaXR0ZXN0L3BhcnNlRGlmZi5wbAppbmRleCAyNTA3ZDJkLi5lNTUzZDk2IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VE
aWZmLnBsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0
dGVzdC9wYXJzZURpZmYucGwKQEAgLTIxOCw3ICsyMTgsNyBAQCBFTkQKICAgICAjIEhlYWRlciBr
ZXlzIHRvIGNoZWNrCiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywKIEluZGV4OiBN
YWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQoraW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKIC0tLSBN
YWtlZmlsZQogKysrIE1ha2VmaWxlCiBAQCAtMSwxIDEsMSBAQCBwdWJsaWM6CkBAIC0yNDYsNyAr
MjQ2LDcgQEAgRU5ECiAgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjawogICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gIDw8J0VORCcsCiBJbmRleDogTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2luZGV4IGY1
ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CiAtLS0gTWFrZWZpbGUKICsrKyBNYWtlZmlsZQogQEAgLTEs
MSAxLDEgQEAgcHVibGljOgpAQCAtMjg4LDE5ICsyODgsMjAgQEAgc3ViIHRlc3RQYXJzZURpZmZB
c3NlcnRpb25BcmdzKCQpCiAgICAgbXkgJHRlc3ROYW1lU3RhcnQgPSAicGFyc2VEaWZmKCk6IFsk
dGVzdENhc2VIYXNoUmVmLT57ZGlmZk5hbWV9XSAiOwogCiAgICAgbXkgQGFzc2VydGlvbkFyZ3NB
cnJheVJlZnM7ICMgUmV0dXJuIHZhbHVlCi0gICAgbXkgQGFzc2VydGlvbkFyZ3M7CisgICAgbXkg
JGFzc2VydGlvbkFyZ3NSZWY7CisKICAgICBmb3JlYWNoIG15ICRkaWZmSGFzaFJlZktleSAoQGRp
ZmZIYXNoUmVmS2V5cykgewogICAgICAgICBteSAkdGVzdE5hbWUgPSAiJHt0ZXN0TmFtZVN0YXJ0
fWtleT1cIiRkaWZmSGFzaFJlZktleVwiIjsKLSAgICAgICAgQGFzc2VydGlvbkFyZ3MgPSAoJGRp
ZmZIYXNoUmVmLT57JGRpZmZIYXNoUmVmS2V5fSwgJHRlc3RDYXNlSGFzaFJlZi0+eyRkaWZmSGFz
aFJlZktleX0sICR0ZXN0TmFtZSk7Ci0gICAgICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJl
ZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgICAgICRhc3NlcnRpb25BcmdzUmVmID0gWyRkaWZm
SGFzaFJlZi0+eyRkaWZmSGFzaFJlZktleX0sICR0ZXN0Q2FzZUhhc2hSZWYtPnskZGlmZkhhc2hS
ZWZLZXl9LCAkdGVzdE5hbWVdOworICAgICAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZz
LCAkYXNzZXJ0aW9uQXJnc1JlZik7CiAgICAgfQogCi0gICAgQGFzc2VydGlvbkFyZ3MgPSAoJGxh
c3RSZWFkTGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3Rlc3ROYW1l
U3RhcnR9bGFzdFJlYWRMaW5lIik7Ci0gICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywg
XEBhc3NlcnRpb25BcmdzKTsKKyAgICAkYXNzZXJ0aW9uQXJnc1JlZiA9IFskbGFzdFJlYWRMaW5l
LCAkdGVzdENhc2VIYXNoUmVmLT57bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0
UmVhZExpbmUiXTsKKyAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCAkYXNzZXJ0aW9u
QXJnc1JlZik7CiAKICAgICBteSAkbmV4dExpbmUgPSA8JGZpbGVIYW5kbGU+OwotICAgIEBhc3Nl
cnRpb25BcmdzID0gKCRuZXh0TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e25leHRMaW5lfSwgIiR7
dGVzdE5hbWVTdGFydH1uZXh0TGluZSIpOwotICAgIHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJl
ZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgJGFzc2VydGlvbkFyZ3NSZWYgPSBbJG5leHRMaW5l
LCAkdGVzdENhc2VIYXNoUmVmLT57bmV4dExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fW5leHRMaW5l
Il07CisgICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgJGFzc2VydGlvbkFyZ3NSZWYp
OwogCiAgICAgcmV0dXJuIEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOwogfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlm
ZkhlYWRlci5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0
dGVzdC9wYXJzZURpZmZIZWFkZXIucGwKaW5kZXggYTdhM2MyNi4uMGM3OGRhYyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZkhlYWRlci5wbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRp
bHNfdW5pdHRlc3QvcGFyc2VEaWZmSGVhZGVyLnBsCkBAIC0xODMsNyArMTgzLDcgQEAgRU5ECiAg
ICAgIyBIZWFkZXIga2V5cyB0byBjaGVjawogICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5E
JywKIEluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5o
Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAogLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKICsrKyBXZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCiBFTkQKQEAgLTE5Niw3ICsxOTYsNyBA
QCBFTkQKIH0sCiB7CiAgICAgIyBOZXcgdGVzdAotICAgIGRpZmZOYW1lID0+ICJHaXQ6IHVucmVj
b2duaXplZCBsaW5lcyIsCisgICAgZGlmZk5hbWUgPT4gIkdpdDogbmV3IGZpbGUiLAogICAgIGlu
cHV0VGV4dCA9PiA8PCdFTkQnLAogZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbGlzdGVuZXIveHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIveHNzLWluYWN0aXZlLWNsb3N1cmUuaHRtbAog
bmV3IGZpbGUgbW9kZSAxMDA2NDQKQEAgLTIwOSw3ICsyMDksOCBAQCBFTkQKICAgICAjIEhlYWRl
ciBrZXlzIHRvIGNoZWNrCiAgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAogSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIveHNzLWluYWN0aXZlLWNs
b3N1cmUuaHRtbAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw
MDAuLjNjOWYxMTQKIC0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVy
L3hzcy1pbmFjdGl2ZS1jbG9zdXJlLmh0bWwKICsrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xpc3RlbmVyL3hzcy1pbmFjdGl2ZS1jbG9zdXJlLmh0bWwKIEVORApAQCAtMjQ3LDE5
ICsyNDgsMjAgQEAgc3ViIHRlc3RQYXJzZURpZmZIZWFkZXJBc3NlcnRpb25BcmdzKCQpCiAgICAg
bXkgJHRlc3ROYW1lU3RhcnQgPSAicGFyc2VEaWZmSGVhZGVyKCk6IFskdGVzdENhc2VIYXNoUmVm
LT57ZGlmZk5hbWV9XSAiOwogCiAgICAgbXkgQGFzc2VydGlvbkFyZ3NBcnJheVJlZnM7ICMgUmV0
dXJuIHZhbHVlCi0gICAgbXkgQGFzc2VydGlvbkFyZ3M7CisgICAgbXkgJGFzc2VydGlvbkFyZ3NS
ZWY7CisKICAgICBmb3JlYWNoIG15ICRkaWZmSGVhZGVySGFzaFJlZktleSAoQGRpZmZIZWFkZXJI
YXNoUmVmS2V5cykgewogICAgICAgICBteSAkdGVzdE5hbWUgPSAiJHt0ZXN0TmFtZVN0YXJ0fWtl
eT1cIiRkaWZmSGVhZGVySGFzaFJlZktleVwiIjsKLSAgICAgICAgQGFzc2VydGlvbkFyZ3MgPSAo
JGhlYWRlckhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVzdENhc2VIYXNoUmVm
LT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5fSwgJHRlc3ROYW1lKTsKLSAgICAgICAgcHVzaChAYXNz
ZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzKTsKKyAgICAgICAgJGFzc2VydGlv
bkFyZ3NSZWYgPSBbJGhlYWRlckhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVz
dENhc2VIYXNoUmVmLT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5fSwgJHRlc3ROYW1lXTsKKyAgICAg
ICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgJGFzc2VydGlvbkFyZ3NSZWYpOwogICAg
IH0KIAotICAgIEBhc3NlcnRpb25BcmdzID0gKCRsYXN0UmVhZExpbmUsICR0ZXN0Q2FzZUhhc2hS
ZWYtPntsYXN0UmVhZExpbmV9LCAiJHt0ZXN0TmFtZVN0YXJ0fWxhc3RSZWFkTGluZSIpOwotICAg
IHB1c2goQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMsIFxAYXNzZXJ0aW9uQXJncyk7CisgICAgJGFz
c2VydGlvbkFyZ3NSZWYgPSBbJGxhc3RSZWFkTGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e2xhc3RS
ZWFkTGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bGFzdFJlYWRMaW5lIl07CisgICAgcHVzaChAYXNz
ZXJ0aW9uQXJnc0FycmF5UmVmcywgJGFzc2VydGlvbkFyZ3NSZWYpOwogCiAgICAgbXkgJG5leHRM
aW5lID0gPCRmaWxlSGFuZGxlPjsKLSAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbmV4dExpbmUsICR0
ZXN0Q2FzZUhhc2hSZWYtPntuZXh0TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsK
LSAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworICAg
ICRhc3NlcnRpb25BcmdzUmVmID0gWyRuZXh0TGluZSwgJHRlc3RDYXNlSGFzaFJlZi0+e25leHRM
aW5lfSwgIiR7dGVzdE5hbWVTdGFydH1uZXh0TGluZSJdOworICAgIHB1c2goQGFzc2VydGlvbkFy
Z3NBcnJheVJlZnMsICRhc3NlcnRpb25BcmdzUmVmKTsKIAogICAgIHJldHVybiBAYXNzZXJ0aW9u
QXJnc0FycmF5UmVmczsKIH0K
</data>
<flag name="review"
          id="38568"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="38569"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>