<?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>33045</bug_id>
          
          <creation_ts>2009-12-30 01:13:43 -0800</creation_ts>
          <short_desc>Add a script to test both the Python and Perl scripts</short_desc>
          <delta_ts>2010-01-03 22:32:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <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>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>175845</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-30 01:13:43 -0800</bug_when>
    <thetext>Now that we have test-webkit-perl, it seems appropriate to rename the executable that tests the Python code.

This idea was raised on webkit-dev:

https://lists.webkit.org/pipermail/webkit-dev/2009-December/011105.html

In a later patch we can create a &quot;test-webkit-scripts&quot; executable to run both the Python and Perl tests, as was discussed here:

https://lists.webkit.org/pipermail/webkit-dev/2009-December/011108.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175847</commentid>
    <comment_count>1</comment_count>
      <attachid>45646</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-30 01:16:57 -0800</bug_when>
    <thetext>Created attachment 45646
Proposed patch

Setting cq- since I&apos;m not sure that svn-apply will set the executable bit correctly when moving files:

https://bugs.webkit.org/show_bug.cgi?id=27204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175945</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-30 09:36:06 -0800</bug_when>
    <thetext>It will not, in fact. :(  However, sounds like a perfect bug for for your skills given your perl abilities! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175962</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-30 10:07:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; It will not, in fact. :(  However, sounds like a perfect bug for for your
&gt; skills given your perl abilities! :)

Thanks, Eric.  I had already signed on to it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176038</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-30 13:59:44 -0800</bug_when>
    <thetext>I thought the verdict from the thread was &quot;test-webkit-scripts&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176039</commentid>
    <comment_count>5</comment_count>
      <attachid>45646</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-30 14:00:26 -0800</bug_when>
    <thetext>Comment on attachment 45646
Proposed patch

no changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176041</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-30 14:03:29 -0800</bug_when>
    <thetext>Ah!  That&apos;s what I get for not reading the whole bug.  Yes, this change is fine, but we still need a ChangeLog.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176238</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 13:53:03 -0800</bug_when>
    <thetext>Thanks, Adam -- sorry about the missing ChangeLog!  I&apos;m expanding this slightly so we can do this all in one go.  I hope that&apos;s okay.  Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176239</commentid>
    <comment_count>8</comment_count>
      <attachid>45721</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 13:54:43 -0800</bug_when>
    <thetext>Created attachment 45721
Proposed patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176240</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-31 14:07:06 -0800</bug_when>
    <thetext>We seem to have lost the ability to pass --all through the wrapper script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176241</commentid>
    <comment_count>10</comment_count>
      <attachid>45722</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 14:07:45 -0800</bug_when>
    <thetext>Created attachment 45722
Proposed patch 3

Fixed patch to have properly rooted paths and added missing bug URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176242</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 14:19:02 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; We seem to have lost the ability to pass --all through the wrapper script.

I&apos;ll take that as an enhancement request. :) I can go ahead and add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176243</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-31 14:58:16 -0800</bug_when>
    <thetext>I personally do not like the names test-webkit-scripts, test-webkit-python, and test-webkit-perl, since they are not very descriptive. 

I do agree &quot;run-webkit-unittest&quot; is a bit of a misnomer (at this time) because we are only running unit tests against bugzilla-tool. So, I propose, if we want to rename run-webkit-unittests, it should imply that these unit tests are against bugzilla-tool, such as run-bugzilla-tool-unittests.

Moreover, for the renaming of these scripts, I think the prefix &quot;run&quot; is more descriptive than &quot;test&quot; since it describes the script we want to execute (i.e. the name that follows run-) whereas preceding a script with &quot;test&quot; begs the question what are we testing? For example, consider the name test-webkit-perl. Are we testing the actual script named &quot;webkit-perl&quot; or testing Perl support in WebKit? or testing unit tests written in Perl? or running unit tests written in Perl?. For comparison, say we had a script named &quot;test-support-for-CSS3-lists&quot;. Then the prefix &quot;test&quot; makes sense since it is obvious from the rest of the name what we are testing. That is, we are testing whether WebKit supports CSS3 lists.

By a similar argument, &quot;test-webkit-scripts&quot; and &quot;test-webkit-python&quot; are ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176244</commentid>
    <comment_count>13</comment_count>
      <attachid>45723</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 15:45:53 -0800</bug_when>
    <thetext>Created attachment 45723
Proposed patch 4

Added support for --all flag in test-webkit-scripts, as Adam requested.  I will respond to Daniel separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176249</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 18:04:45 -0800</bug_when>
    <thetext>(In reply to comment #12)

I was hoping to avoid a lengthy debate about this issue since it&apos;s so minor in the scheme of things.  But since my patch is up for review, I feel obligated to respond.  Since I&apos;m relatively new to the project, I&apos;m not sure how these things get decided. :)

Anyways, Daniel, I was simply suggesting that, going forward, we give new &quot;test suite&quot; scripts names of the form &quot;test-&lt;component&gt;&quot; instead of &quot;run-&lt;component&gt;-tests&quot;.

We can discuss separately what &lt;component&gt; should be in each case, because that needs to be decided either way.  Perhaps giving &lt;component&gt; a better name in each case will ease your objections.

The naming convention I&apos;m suggesting is that if a script begins with &quot;test&quot;, it is a script that tests part of the WebKit code base and reports on the results.

I&apos;m suggesting the prefix &quot;test&quot; instead of &quot;run&quot; because we currently have 15 scripts that begin with the word &quot;run&quot;.  That prefix is used about twice as often as any other prefix we have in the Scripts folder (&quot;update&quot; has 8).  As things grow, it sometimes makes sense to create new categories to make things easier to find.  My feeling is that using a different prefix like &quot;test&quot; will make it easier to distinguish the test scripts from the others.  The resulting names are also shorter and so are easier to type.

&gt; I personally do not like the names test-webkit-scripts, test-webkit-python, and
&gt; test-webkit-perl, since they are not very descriptive. 
&gt; 
&gt; I do agree &quot;run-webkit-unittest&quot; is a bit of a misnomer (at this time) because
&gt; we are only running unit tests against bugzilla-tool.

No, if you look at the code you will see that this script tests about 20 different Python modules.

&gt; So, I propose, if we want
&gt; to rename run-webkit-unittests, it should imply that these unit tests are
&gt; against bugzilla-tool, such as run-bugzilla-tool-unittests.

Ditto -- that&apos;s not what the script does.

&gt; Moreover, for the renaming of these scripts, I think the prefix &quot;run&quot; is more
&gt; descriptive than &quot;test&quot; since it describes the script we want to execute (i.e.
&gt; the name that follows run-)

The three test scripts in the patch don&apos;t just execute a script though.  There isn&apos;t a one-to-one correspondence.  As I said above, the Python test script tests about 20 modules.  The Perl test script tests just one Perl file, but that will change over time as we increase our code coverage of the Perl.  And test-webkit-scripts tests all of these.

Also, I&apos;m not sure I agree with the convention of using the &quot;run&quot; prefix for wrapper scripts that execute another script, as you suggest.  It seems like that&apos;s an implementation issue that the end-user shouldn&apos;t have to know about.  For example, &quot;check-webkit-style&quot; is essentially a wrapper for modules/style.py (soon to be modules/style/checker.py), but the script is not called &quot;run-style&quot;.  By not employing this convention, we avoid having to update the name of the wrapper script whenever the internal implementation changes, which is a good thing.  It also insulates the end-user from implementation changes.

However, it does seem reasonable to use &quot;run&quot; when the purpose of the script is to start some application running -- like &quot;run-safari&quot;.  As an aside, note that &quot;run-safari&quot; actually executes a script called &quot;gdb-safari&quot; (at least in some code paths).  But we don&apos;t call it &quot;run-gdb-safari&quot;.  I like &quot;run-safari&quot; more because it&apos;s a simpler name for the end user.  I&apos;m not sure what else we use the prefix &quot;run&quot; for in our scripts folder.  It would be useful to have a clear heuristic, because really, every script is &quot;running&quot; something. :)

&gt; whereas preceding a script with &quot;test&quot; begs the
&gt; question what are we testing? For example, consider the name test-webkit-perl.
&gt; Are we testing the actual script named &quot;webkit-perl&quot; or testing Perl support in
&gt; WebKit? or testing unit tests written in Perl? or running unit tests written in
&gt; Perl?.

This seems like more an objection to the &lt;component&gt; name rather than an objection to using the prefix &quot;test&quot;.  The reason is that all of the ambiguities you raise would carry over even if we were to use the &quot;run-webkit-perl-tests&quot; nomenclature instead.

To address this concern, I would probably be okay with using a name like one of the following in place of test-webkit-perl--

test-webkit-perl-code
test-webkit-perl-scripts
test-perl-scripts
test-perl-code

I don&apos;t know yet which I prefer.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176255</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-31 20:28:11 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I was hoping to avoid a lengthy debate about this issue since it&apos;s so minor in
&gt; the scheme of things.  But since my patch is up for review, I feel obligated to
&gt; respond.  Since I&apos;m relatively new to the project, I&apos;m not sure how these
&gt; things get decided. :)

Hey Daniel, I want to apologize in advance for my tone in this paragraph.  Your comments are fine and appreciated, and they&apos;re already looking to improve the patch.  I didn&apos;t mean to discourage any back and forth.  Nothing is too minor, and dialogue is what drives improvement and knowledge sharing.  I guess I wasn&apos;t looking forward to writing what I knew would be a long response on New Year&apos;s Eve.  I should have waited until tomorrow.  I hope you accept this apology.  Now off to celebrate...  Happy New Year!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176366</commentid>
    <comment_count>16</comment_count>
      <attachid>45723</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-02 12:51:04 -0800</bug_when>
    <thetext>Comment on attachment 45723
Proposed patch 4

Looks fine.

A few python comments:
1.  Should really use a class to encapsulate the logic.  Then your __main__ just calls the class Foo().main()
2.  OptionParser (from optparse) is probably easier to use than getopt.

I would have probably made:
os.path.join(scripts_directory, &apos;test-webkit-perl&apos;)
a function, even though you only use it twice.

def script_path(script):
  return os.path.join(scripts_directory, script)

So yeah, this python could probably be made slightly better, but looks OK over all.   Thank you for doing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176450</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-03 14:34:14 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 45723 [details])
&gt; Looks fine.
&gt; 
&gt; A few python comments:
&gt; 1.  Should really use a class to encapsulate the logic.  Then your __main__
&gt; just calls the class Foo().main()
&gt; 2.  OptionParser (from optparse) is probably easier to use than getopt.

Thanks, Eric.  Yeah, I discovered the OptionParser class shortly after submitting that latest patch.  Neat class!  check-webkit-style uses optparse, so I didn&apos;t think to look.

Anyways, sounds good.  I&apos;ll make your suggested changes in a subsequent patch (and separately, also update check-webkit-style to use OptionParser).

Could you or someone do me a favor and commit the change -- since it sets the executable bit?  Thanks a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176505</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-03 18:56:28 -0800</bug_when>
    <thetext>We really need to fix bug 27204. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176509</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-03 19:06:31 -0800</bug_when>
    <thetext>% bugzilla-tool apply-patches 33045
Cleaning working directory
Updating working directory
Fetching: https://bugs.webkit.org/show_bug.cgi?id=33045&amp;ctype=xml
1 reviewed patch found on bug 33045.
Processing 1 patch from 1 bug.
Processing patch 45723 from bug 33045.
Failed to run &quot;[&apos;/Projects/WebKit/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Eric Seidel&apos;]&quot; exit_code: 2
cp: Scripts/run-webkit-unittests: No such file or directory
Failed to copy Scripts/run-webkit-unittests WebKitTools/Scripts/test-webkit-python. at /Projects/WebKit/WebKitTools/Scripts/svn-apply line 455, &lt;&gt; line 288.

Failed to run &quot;[&apos;/Projects/WebKit/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Eric Seidel&apos;]&quot; exit_code: 2

Hmm...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176518</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-03 20:18:38 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; We really need to fix bug 27204. :)

Yeah...  If we want to fix it sooner, I can remove myself as the assignee.  I&apos;m on a path to fix it, but in a longer-term way.  I&apos;m refactoring it to share code between svn-apply and svn-unapply, and to be unit testable.  Since I&apos;m not using Git yet, I can&apos;t really test the code paths without unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176522</commentid>
    <comment_count>21</comment_count>
      <attachid>45765</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-03 20:31:30 -0800</bug_when>
    <thetext>Created attachment 45765
Proposed patch 5

Sorry about that, Eric.  This should work.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176525</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-03 20:34:08 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45765 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176529</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-03 22:32:00 -0800</bug_when>
    <thetext>Committed r52702: &lt;http://trac.webkit.org/changeset/52702&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45646</attachid>
            <date>2009-12-30 01:16:57 -0800</date>
            <delta_ts>2009-12-31 13:54:43 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch-tools4-1.txt</filename>
            <type>text/plain</type>
            <size>6138</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFNjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU2NyaXB0
cy9ydW4td2Via2l0LXVuaXR0ZXN0cwkocmV2aXNpb24gNTI2NDgpCisrKyBTY3JpcHRzL3J1bi13
ZWJraXQtdW5pdHRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLSMhL3Vzci9i
aW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIyAK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMgCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gbW9kdWxlcy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLmJ1aWxkYm90X3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuYnVpbGRzdGVw
c191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1w
b3J0ICoKLWZyb20gbW9kdWxlcy5jb21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSBtb2R1bGVzLmNvbW1hbmRzLmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0ZXN0IGltcG9y
dCAqCi1mcm9tIG1vZHVsZXMuY29tbWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9t
IG1vZHVsZXMuY29tbWFuZHMucXVlcmllc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVz
LmNvbW1hbmRzLnF1ZXVlc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1pdHRl
cnNfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy5jcmVkZW50aWFsc191bml0dGVzdCBp
bXBvcnQgKgotZnJvbSBtb2R1bGVzLmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLmRpZmZfcGFyc2VyX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuZXhlY3V0
aXZlX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMubG9nZ2luZ191bml0dGVzdCBpbXBv
cnQgKgotZnJvbSBtb2R1bGVzLm11bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QgaW1wb3J0ICoKLWZy
b20gbW9kdWxlcy5xdWV1ZWVuZ2luZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLnN0
eWxlX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMudGV4dF9zdHlsZV91bml0dGVzdCBp
bXBvcnQgKgotZnJvbSBtb2R1bGVzLndlYmtpdHBvcnRfdW5pdHRlc3QgaW1wb3J0ICoKLQotaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0
IEknbSB0aXJlZCBvZiBjb21tZW50aW5nIG91dCB0aGUgdGVzdC4KLSAgICAjICAgICAgICBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODE4Ci0gICAgaWYgbGVu
KHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09ICItLWFsbCI6Ci0gICAgICAgIHN5cy5h
cmd2LnJlbW92ZSgiLS1hbGwiKQotICAgICAgICBmcm9tIG1vZHVsZXMuc2NtX3VuaXR0ZXN0IGlt
cG9ydCAqCi0KLSAgICB1bml0dGVzdC5tYWluKCkKSW5kZXg6IFNjcmlwdHMvdGVzdC13ZWJraXQt
cHl0aG9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNjcmlwdHMvdGVzdC13ZWJraXQtcHl0aG9uCShyZXZpc2lv
biA1MjY0OCkJKGZyb20gU2NyaXB0cy9ydW4td2Via2l0LXVuaXR0ZXN0czo1MjY0OCkKKysrIFNj
cmlwdHMvdGVzdC13ZWJraXQtcHl0aG9uCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjEgQEAK
KyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIyAKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMgCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cwor
aW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gbW9kdWxlcy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQg
KgorZnJvbSBtb2R1bGVzLmJ1aWxkYm90X3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMu
YnVpbGRzdGVwc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5p
dHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBp
bXBvcnQgKgorZnJvbSBtb2R1bGVzLmNvbW1hbmRzLmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0
ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9y
dCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMucXVlcmllc191bml0dGVzdCBpbXBvcnQgKgorZnJv
bSBtb2R1bGVzLmNvbW1hbmRzLnF1ZXVlc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVz
LmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jcmVkZW50aWFsc191
bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQg
KgorZnJvbSBtb2R1bGVzLmRpZmZfcGFyc2VyX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVs
ZXMuZXhlY3V0aXZlX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMubG9nZ2luZ191bml0
dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLm11bHRpY29tbWFuZHRvb2xfdW5pdHRlc3QgaW1w
b3J0ICoKK2Zyb20gbW9kdWxlcy5xdWV1ZWVuZ2luZV91bml0dGVzdCBpbXBvcnQgKgorZnJvbSBt
b2R1bGVzLnN0eWxlX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMudGV4dF9zdHlsZV91
bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLndlYmtpdHBvcnRfdW5pdHRlc3QgaW1wb3J0
ICoKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICAjIEZJWE1FOiBUaGlzIGlzIGEg
aGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50aW5nIG91dCB0aGUgdGVzdC4KKyAgICAjICAg
ICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODE4Cisg
ICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09ICItLWFsbCI6CisgICAg
ICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQorICAgICAgICBmcm9tIG1vZHVsZXMuc2NtX3Vu
aXR0ZXN0IGltcG9ydCAqCisKKyAgICB1bml0dGVzdC5tYWluKCkK
</data>
<flag name="review"
          id="27741"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="27742"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45721</attachid>
            <date>2009-12-31 13:54:43 -0800</date>
            <delta_ts>2009-12-31 14:07:45 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>patch-tools6-2.txt</filename>
            <type>text/plain</type>
            <size>11160</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUyNjg1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTIt
MzEgIENocmlzIEplcmRvbmVrICA8Y2hyaXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNjcmlwdCB0byB0
ZXN0IGJvdGggUGVybCBhbmQgUHl0aG9uLCBhbmQgcmVuYW1lZAorICAgICAgICBydW4td2Via2l0
LXVuaXR0ZXN0cyB0byB0ZXN0LXdlYmtpdC1weXRob24uCisKKyAgICAgICAgKiBTY3JpcHRzL1ZD
U1V0aWxzX3VuaXR0ZXN0LnBsOgorICAgICAgICAgIC0gVHdlYWtlZCBzbyBpdCBjYW4gYmUgcnVu
IGZyb20gb3V0c2lkZSBTY3JpcHRzIGRpcmVjdG9yeS4KKworICAgICAgICAqIFNjcmlwdHMvcnVu
LXdlYmtpdC11bml0dGVzdHM6IFJlbW92ZWQuCisgICAgICAgICAgLSBSZW5hbWVkIHRvIHRlc3Qt
d2Via2l0LXB5dGhvbi4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtcGVybDoKKyAg
ICAgICAgICAtIFR3ZWFrZWQgc28gaXQgY2FuIGJlIHJ1biBmcm9tIG91dHNpZGUgU2NyaXB0cyBk
aXJlY3RvcnkuCisKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0LXB5dGhvbjogQ29waWVk
IGZyb20gU2NyaXB0cy9ydW4td2Via2l0LXVuaXR0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMv
dGVzdC13ZWJraXQtc2NyaXB0czogQWRkZWQuCisgICAgICAgICAgLSBSdW5zIGJvdGggdGVzdC13
ZWJraXQtcGVybCBhbmQgdGVzdC13ZWJraXQtcHl0aG9uLgorCiAyMDA5LTEyLTMxICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCkluZGV4OiBTY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNj
cmlwdHMvVkNTVXRpbHNfdW5pdHRlc3QucGwJKHJldmlzaW9uIDUyNjg1KQorKysgU2NyaXB0cy9W
Q1NVdGlsc191bml0dGVzdC5wbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOSBAQAogCiB1
c2UgVGVzdDo6U2ltcGxlIHRlc3RzID0+IDc7CiAKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmlu
ZEJpbjo6QmluOyAjIHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSBhbnkgZGlyZWN0b3J5
LgorCiB1c2UgVkNTVXRpbHM7CiAKICMgZml4Q2hhbmdlTG9nUGF0Y2gKSW5kZXg6IFNjcmlwdHMv
cnVuLXdlYmtpdC11bml0dGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU2NyaXB0cy9ydW4td2Via2l0LXVu
aXR0ZXN0cwkocmV2aXNpb24gNTI2ODUpCisrKyBTY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3Rz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20g
bW9kdWxlcy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmJ1aWxkYm90
X3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuYnVpbGRzdGVwc191bml0dGVzdCBpbXBv
cnQgKgotZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9k
dWxlcy5jb21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNv
bW1hbmRzLmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVs
ZXMuY29tbWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29tbWFu
ZHMucXVlcmllc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRzLnF1ZXVl
c191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1w
b3J0ICoKLWZyb20gbW9kdWxlcy5jcmVkZW50aWFsc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmRpZmZfcGFy
c2VyX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuZXhlY3V0aXZlX3VuaXR0ZXN0IGlt
cG9ydCAqCi1mcm9tIG1vZHVsZXMubXVsdGljb21tYW5kdG9vbF91bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSBtb2R1bGVzLnF1ZXVlZW5naW5lX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMu
c3R5bGVfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy50ZXh0X3N0eWxlX3VuaXR0ZXN0
IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMud2Via2l0X2xvZ2dpbmdfdW5pdHRlc3QgaW1wb3J0ICoK
LWZyb20gbW9kdWxlcy53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCi0KLWlmIF9fbmFtZV9f
ID09ICJfX21haW5fXyI6Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCBJJ20gdGly
ZWQgb2YgY29tbWVudGluZyBvdXQgdGhlIHRlc3QuCi0gICAgIyAgICAgICAgU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTgxOAotICAgIGlmIGxlbihzeXMuYXJn
dikgPiAxIGFuZCBzeXMuYXJndlsxXSA9PSAiLS1hbGwiOgotICAgICAgICBzeXMuYXJndi5yZW1v
dmUoIi0tYWxsIikKLSAgICAgICAgZnJvbSBtb2R1bGVzLnNjbV91bml0dGVzdCBpbXBvcnQgKgot
Ci0gICAgdW5pdHRlc3QubWFpbigpCkluZGV4OiBTY3JpcHRzL3Rlc3Qtd2Via2l0LXBlcmwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU2NyaXB0cy90ZXN0LXdlYmtpdC1wZXJsCShyZXZpc2lvbiA1MjY4NSkKKysr
IFNjcmlwdHMvdGVzdC13ZWJraXQtcGVybAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEg
QEAKIAogIyBSdW5zIHVuaXQgdGVzdHMgb2YgV2ViS2l0IFBlcmwgY29kZS4KIAordXNlIEZpbmRC
aW47CiB1c2UgVGVzdDo6SGFybmVzczsKIAotcnVudGVzdHMoIlZDU1V0aWxzX3VuaXR0ZXN0LnBs
Iik7CisjIFVzZSBhbiBhYnNvbHV0ZSBwYXRoIHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJv
bSBhbnkgZGlyZWN0b3J5LgorJHNjcmlwdHNEaXIgPSAkRmluZEJpbjo6QmluOworJHNjcmlwdHNE
aXIgPX4gc3wvKyR8fDsgIyBSZW1vdmUgdHJhaWxpbmcgJy8nCisKK3J1bnRlc3RzKCIkc2NyaXB0
c0Rpci9WQ1NVdGlsc191bml0dGVzdC5wbCIpOwpJbmRleDogU2NyaXB0cy90ZXN0LXdlYmtpdC1w
eXRob24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHJldmlzaW9u
IDUyNjgxKQkoZnJvbSBTY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzOjUyNjgxKQorKysgU2Ny
aXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAor
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitp
bXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2R1bGVzLmJ1Z3ppbGxhX3VuaXR0ZXN0IGltcG9ydCAq
Citmcm9tIG1vZHVsZXMuYnVpbGRib3RfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5i
dWlsZHN0ZXBzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY2hhbmdlbG9nc191bml0
dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNvbW1hbmRzLmRvd25sb2FkX3VuaXR0ZXN0IGlt
cG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMuZWFybHlfd2FybmluZ19zeXN0ZW1fdW5pdHRl
c3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy51cGxvYWRfdW5pdHRlc3QgaW1wb3J0
ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy5xdWVyaWVzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9t
IG1vZHVsZXMuY29tbWFuZHMucXVldWVzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMu
Y29tbWl0dGVyc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNyZWRlbnRpYWxzX3Vu
aXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY3BwX3N0eWxlX3VuaXR0ZXN0IGltcG9ydCAq
Citmcm9tIG1vZHVsZXMuZGlmZl9wYXJzZXJfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxl
cy5leGVjdXRpdmVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5tdWx0aWNvbW1hbmR0
b29sX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMucXVldWVlbmdpbmVfdW5pdHRlc3Qg
aW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5zdHlsZV91bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1
bGVzLnRleHRfc3R5bGVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy53ZWJraXRfbG9n
Z2luZ191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLndlYmtpdHBvcnRfdW5pdHRlc3Qg
aW1wb3J0ICoKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICAjIEZJWE1FOiBUaGlz
IGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50aW5nIG91dCB0aGUgdGVzdC4KKyAg
ICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
ODE4CisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09ICItLWFsbCI6
CisgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQorICAgICAgICBmcm9tIG1vZHVsZXMu
c2NtX3VuaXR0ZXN0IGltcG9ydCAqCisKKyAgICB1bml0dGVzdC5tYWluKCkKSW5kZXg6IFNjcmlw
dHMvdGVzdC13ZWJraXQtc2NyaXB0cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTY3JpcHRzL3Rlc3Qtd2Via2l0
LXNjcmlwdHMJKHJldmlzaW9uIDApCisrKyBTY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAwOSBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9uZWtAZ21haWwuY29tKQor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9u
LgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisjIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlRlc3RzIFdlYktpdCBQ
ZXJsIGFuZCBQeXRob24gc2NyaXB0cy4iIiIKKworaW1wb3J0IGdldG9wdAoraW1wb3J0IG9zCitp
bXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworCitkZWYgdGVzdF9zY3JpcHQoY29tbWFuZCwg
dGl0bGUpOgorICAgICIiIlJ1biB0aGUgZ2l2ZW4gdGVzdCBjb21tYW5kLiIiIgorICAgIHByaW50
KCdUZXN0aW5nICVzOicgJSB0aXRsZSkKKyAgICBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCkKKyAg
ICBwcmludCg3MCAqICIqIikgIyBkaXZpZGluZyBsaW5lCisKK2lmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6CisKKyAgICB0cnk6CisgICAgICAgIChvcHRzLCBmaWxlbmFtZXMpID0gZ2V0b3B0Lmdl
dG9wdChzeXMuYXJndlsxOl0sICcnLCBbJ2hlbHAnXSkKKyAgICBleGNlcHQgZ2V0b3B0LkdldG9w
dEVycm9yOgorICAgICAgICBwcmludChfX2RvY19fKQorICAgICAgICBzeXMuZXhpdCgnRXJyb3I6
IHRoZSBvbmx5IHZhbGlkIG9wdGlvbiBpcyAtLWhlbHAuJykKKworICAgIGZvciAob3B0LCB2YWwp
IGluIG9wdHM6CisgICAgICAgIGlmIG9wdCA9PSAnLS1oZWxwJzoKKyAgICAgICAgICAgIHByaW50
KF9fZG9jX18pCisgICAgICAgICAgICBzeXMuZXhpdCgpCisKKyAgICAjIFVzZSBhYnNvbHV0ZSBw
YXRocyBzbyB0aGlzIHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gYW55IGRpcmVjdG9yeS4KKyAgICBz
Y3JpcHRzX2RpcmVjdG9yeSA9IHN5cy5wYXRoWzBdCisKKyAgICB0ZXN0X3NjcmlwdChvcy5wYXRo
LmpvaW4oc2NyaXB0c19kaXJlY3RvcnksICd0ZXN0LXdlYmtpdC1wZXJsJyksICdQZXJsIHNjcmlw
dHMnKQorICAgIHRlc3Rfc2NyaXB0KG9zLnBhdGguam9pbihzY3JpcHRzX2RpcmVjdG9yeSwgJ3Rl
c3Qtd2Via2l0LXB5dGhvbicpLCAnUHl0aG9uIHNjcmlwdHMnKQorCisgICAgIyBGSVhNRTogRGlz
cGxheSBhIGN1bXVsYXRpdmUgaW5kaWNhdGlvbiBvZiBzdWNjZXNzIG9yIGZhaWx1cmUuCisgICAg
IyAgICAgICAgSW4gYWRkaXRpb24sIGNhbGwgc3lzLmV4aXQoKSB3aXRoIDAgb3IgMSBkZXBlbmRp
bmcgb24gdGhhdAorICAgICMgICAgICAgIGN1bXVsYXRpdmUgc3VjY2VzcyBvciBmYWlsdXJlLgor
ICAgIHByaW50KCdOb3RlOiBQZXJsIGFuZCBQeXRob24gcmVzdWx0cyBhcHBlYXIgc2VwYXJhdGVs
eSBhYm92ZS4nKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU2NyaXB0cy90ZXN0LXdlYmtpdC1zY3Jp
cHRzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="commit-queue"
          id="27827"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45722</attachid>
            <date>2009-12-31 14:07:45 -0800</date>
            <delta_ts>2009-12-31 15:45:53 -0800</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>patch-tools6-3.txt</filename>
            <type>text/plain</type>
            <size>11445</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMzEgIENocmlzIEplcmRvbmVrICA8
Y2hyaXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHNjcmlwdCB0byB0ZXN0IGJvdGggUGVybCBhbmQgUHl0
aG9uLCBhbmQgcmVuYW1lZAorICAgICAgICBydW4td2Via2l0LXVuaXR0ZXN0cyB0byB0ZXN0LXdl
YmtpdC1weXRob24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzMDQ1CisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsOgor
ICAgICAgICAgIC0gVHdlYWtlZCBzbyBpdCBjYW4gYmUgcnVuIGZyb20gb3V0c2lkZSBTY3JpcHRz
IGRpcmVjdG9yeS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHM6IFJl
bW92ZWQuCisgICAgICAgICAgLSBSZW5hbWVkIHRvIHRlc3Qtd2Via2l0LXB5dGhvbi4KKworICAg
ICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtcGVybDoKKyAgICAgICAgICAtIFR3ZWFrZWQgc28g
aXQgY2FuIGJlIHJ1biBmcm9tIG91dHNpZGUgU2NyaXB0cyBkaXJlY3RvcnkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3Qtd2Via2l0LXB5dGhvbjogQ29waWVkIGZyb20gU2NyaXB0cy9ydW4td2Vi
a2l0LXVuaXR0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0czog
QWRkZWQuCisgICAgICAgICAgLSBSdW5zIGJvdGggdGVzdC13ZWJraXQtcGVybCBhbmQgdGVzdC13
ZWJraXQtcHl0aG9uLgorCiAyMDA5LTEyLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHNfdW5pdHRlc3QucGwJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy9WQ1NVdGlsc191bml0dGVzdC5wbAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsOSBAQAogCiB1c2UgVGVzdDo6U2ltcGxlIHRlc3RzID0+IDc7CiAKK3VzZSBGaW5kQmlu
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOyAjIHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJv
bSBhbnkgZGlyZWN0b3J5LgorCiB1c2UgVkNTVXRpbHM7CiAKICMgZml4Q2hhbmdlTG9nUGF0Y2gK
SW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXVuaXR0ZXN0cwkocmV2aXNpb24g
NTI2ODUpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5
cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gbW9kdWxl
cy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmJ1aWxkYm90X3VuaXR0
ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuYnVpbGRzdGVwc191bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy5j
b21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRz
LmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29t
bWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29tbWFuZHMucXVl
cmllc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRzLnF1ZXVlc191bml0
dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoK
LWZyb20gbW9kdWxlcy5jcmVkZW50aWFsc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVz
LmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmRpZmZfcGFyc2VyX3Vu
aXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuZXhlY3V0aXZlX3VuaXR0ZXN0IGltcG9ydCAq
Ci1mcm9tIG1vZHVsZXMubXVsdGljb21tYW5kdG9vbF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLnF1ZXVlZW5naW5lX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuc3R5bGVf
dW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy50ZXh0X3N0eWxlX3VuaXR0ZXN0IGltcG9y
dCAqCi1mcm9tIG1vZHVsZXMud2Via2l0X2xvZ2dpbmdfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20g
bW9kdWxlcy53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCi0KLWlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCBJJ20gdGlyZWQgb2Yg
Y29tbWVudGluZyBvdXQgdGhlIHRlc3QuCi0gICAgIyAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTgxOAotICAgIGlmIGxlbihzeXMuYXJndikgPiAx
IGFuZCBzeXMuYXJndlsxXSA9PSAiLS1hbGwiOgotICAgICAgICBzeXMuYXJndi5yZW1vdmUoIi0t
YWxsIikKLSAgICAgICAgZnJvbSBtb2R1bGVzLnNjbV91bml0dGVzdCBpbXBvcnQgKgotCi0gICAg
dW5pdHRlc3QubWFpbigpCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXBl
cmwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1wZXJsCShy
ZXZpc2lvbiA1MjY4NSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtcGVybAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAKIAogIyBSdW5zIHVuaXQgdGVzdHMgb2Yg
V2ViS2l0IFBlcmwgY29kZS4KIAordXNlIEZpbmRCaW47CiB1c2UgVGVzdDo6SGFybmVzczsKIAot
cnVudGVzdHMoIlZDU1V0aWxzX3VuaXR0ZXN0LnBsIik7CisjIFVzZSBhbiBhYnNvbHV0ZSBwYXRo
IHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSBhbnkgZGlyZWN0b3J5LgorJHNjcmlwdHNE
aXIgPSAkRmluZEJpbjo6QmluOworJHNjcmlwdHNEaXIgPX4gc3wvKyR8fDsgIyBSZW1vdmUgdHJh
aWxpbmcgJy8nCisKK3J1bnRlc3RzKCIkc2NyaXB0c0Rpci9WQ1NVdGlsc191bml0dGVzdC5wbCIp
OwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHJldmlzaW9uIDUy
NjgxKQkoZnJvbSBTY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzOjUyNjgxKQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2R1bGVzLmJ1Z3ppbGxhX3VuaXR0ZXN0
IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuYnVpbGRib3RfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20g
bW9kdWxlcy5idWlsZHN0ZXBzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY2hhbmdl
bG9nc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNvbW1hbmRzLmRvd25sb2FkX3Vu
aXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMuZWFybHlfd2FybmluZ19zeXN0
ZW1fdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy51cGxvYWRfdW5pdHRl
c3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy5xdWVyaWVzX3VuaXR0ZXN0IGltcG9y
dCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMucXVldWVzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9t
IG1vZHVsZXMuY29tbWl0dGVyc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNyZWRl
bnRpYWxzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY3BwX3N0eWxlX3VuaXR0ZXN0
IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuZGlmZl9wYXJzZXJfdW5pdHRlc3QgaW1wb3J0ICoKK2Zy
b20gbW9kdWxlcy5leGVjdXRpdmVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5tdWx0
aWNvbW1hbmR0b29sX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMucXVldWVlbmdpbmVf
dW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5zdHlsZV91bml0dGVzdCBpbXBvcnQgKgor
ZnJvbSBtb2R1bGVzLnRleHRfc3R5bGVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy53
ZWJraXRfbG9nZ2luZ191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLndlYmtpdHBvcnRf
dW5pdHRlc3QgaW1wb3J0ICoKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICAjIEZJ
WE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50aW5nIG91dCB0aGUg
dGVzdC4KKyAgICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMxODE4CisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09
ICItLWFsbCI6CisgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQorICAgICAgICBmcm9t
IG1vZHVsZXMuc2NtX3VuaXR0ZXN0IGltcG9ydCAqCisKKyAgICB1bml0dGVzdC5tYWluKCkKSW5k
ZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0cwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJldmlzaW9uIDApCisr
KyBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNjYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAw
OSBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9uZWtAZ21haWwuY29tKQorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisjIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlRlc3RzIFdlYktpdCBQZXJsIGFuZCBQeXRo
b24gc2NyaXB0cy4iIiIKKworaW1wb3J0IGdldG9wdAoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJv
Y2VzcworaW1wb3J0IHN5cworCitkZWYgdGVzdF9zY3JpcHQoY29tbWFuZCwgdGl0bGUpOgorICAg
ICIiIlJ1biB0aGUgZ2l2ZW4gdGVzdCBjb21tYW5kLiIiIgorICAgIHByaW50KCdUZXN0aW5nICVz
OicgJSB0aXRsZSkKKyAgICBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCkKKyAgICBwcmludCg3MCAq
ICIqIikgIyBkaXZpZGluZyBsaW5lCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisKKyAg
ICB0cnk6CisgICAgICAgIChvcHRzLCBmaWxlbmFtZXMpID0gZ2V0b3B0LmdldG9wdChzeXMuYXJn
dlsxOl0sICcnLCBbJ2hlbHAnXSkKKyAgICBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yOgorICAg
ICAgICBwcmludChfX2RvY19fKQorICAgICAgICBzeXMuZXhpdCgnRXJyb3I6IHRoZSBvbmx5IHZh
bGlkIG9wdGlvbiBpcyAtLWhlbHAuJykKKworICAgIGZvciAob3B0LCB2YWwpIGluIG9wdHM6Cisg
ICAgICAgIGlmIG9wdCA9PSAnLS1oZWxwJzoKKyAgICAgICAgICAgIHByaW50KF9fZG9jX18pCisg
ICAgICAgICAgICBzeXMuZXhpdCgpCisKKyAgICAjIFVzZSBhYnNvbHV0ZSBwYXRocyBzbyB0aGlz
IHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gYW55IGRpcmVjdG9yeS4KKyAgICBzY3JpcHRzX2RpcmVj
dG9yeSA9IHN5cy5wYXRoWzBdCisKKyAgICB0ZXN0X3NjcmlwdChvcy5wYXRoLmpvaW4oc2NyaXB0
c19kaXJlY3RvcnksICd0ZXN0LXdlYmtpdC1wZXJsJyksICdQZXJsIHNjcmlwdHMnKQorICAgIHRl
c3Rfc2NyaXB0KG9zLnBhdGguam9pbihzY3JpcHRzX2RpcmVjdG9yeSwgJ3Rlc3Qtd2Via2l0LXB5
dGhvbicpLCAnUHl0aG9uIHNjcmlwdHMnKQorCisgICAgIyBGSVhNRTogRGlzcGxheSBhIGN1bXVs
YXRpdmUgaW5kaWNhdGlvbiBvZiBzdWNjZXNzIG9yIGZhaWx1cmUuCisgICAgIyAgICAgICAgSW4g
YWRkaXRpb24sIGNhbGwgc3lzLmV4aXQoKSB3aXRoIDAgb3IgMSBkZXBlbmRpbmcgb24gdGhhdAor
ICAgICMgICAgICAgIGN1bXVsYXRpdmUgc3VjY2VzcyBvciBmYWlsdXJlLgorICAgIHByaW50KCdO
b3RlOiBQZXJsIGFuZCBQeXRob24gcmVzdWx0cyBhcHBlYXIgc2VwYXJhdGVseSBhYm92ZS4nKQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1zY3Jp
cHRzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="commit-queue"
          id="27829"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45723</attachid>
            <date>2009-12-31 15:45:53 -0800</date>
            <delta_ts>2010-01-03 20:31:30 -0800</delta_ts>
            <desc>Proposed patch 4</desc>
            <filename>patch-tools6-4.txt</filename>
            <type>text/plain</type>
            <size>11861</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMzEgIENocmlzIEplcmRvbmVrICA8
Y2hyaXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHNjcmlwdCB0byB0ZXN0IGJvdGggUGVybCBhbmQgUHl0
aG9uLCBhbmQgcmVuYW1lZAorICAgICAgICBydW4td2Via2l0LXVuaXR0ZXN0cyB0byB0ZXN0LXdl
YmtpdC1weXRob24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzMDQ1CisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsOgor
ICAgICAgICAgIC0gVHdlYWtlZCBzbyBpdCBjYW4gYmUgcnVuIGZyb20gb3V0c2lkZSBTY3JpcHRz
IGRpcmVjdG9yeS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHM6IFJl
bW92ZWQuCisgICAgICAgICAgLSBSZW5hbWVkIHRvIHRlc3Qtd2Via2l0LXB5dGhvbi4KKworICAg
ICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtcGVybDoKKyAgICAgICAgICAtIFR3ZWFrZWQgc28g
aXQgY2FuIGJlIHJ1biBmcm9tIG91dHNpZGUgU2NyaXB0cyBkaXJlY3RvcnkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3Qtd2Via2l0LXB5dGhvbjogQ29waWVkIGZyb20gU2NyaXB0cy9ydW4td2Vi
a2l0LXVuaXR0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0czog
QWRkZWQuCisgICAgICAgICAgLSBSdW5zIGJvdGggdGVzdC13ZWJraXQtcGVybCBhbmQgdGVzdC13
ZWJraXQtcHl0aG9uLgorCiAyMDA5LTEyLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHNfdW5pdHRlc3QucGwJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy9WQ1NVdGlsc191bml0dGVzdC5wbAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsOSBAQAogCiB1c2UgVGVzdDo6U2ltcGxlIHRlc3RzID0+IDc7CiAKK3VzZSBGaW5kQmlu
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOyAjIHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJv
bSBhbnkgZGlyZWN0b3J5LgorCiB1c2UgVkNTVXRpbHM7CiAKICMgZml4Q2hhbmdlTG9nUGF0Y2gK
SW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXVuaXR0ZXN0cwkocmV2aXNpb24g
NTI2ODUpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5
cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gbW9kdWxl
cy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmJ1aWxkYm90X3VuaXR0
ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuYnVpbGRzdGVwc191bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy5j
b21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRz
LmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29t
bWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29tbWFuZHMucXVl
cmllc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRzLnF1ZXVlc191bml0
dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoK
LWZyb20gbW9kdWxlcy5jcmVkZW50aWFsc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVz
LmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmRpZmZfcGFyc2VyX3Vu
aXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuZXhlY3V0aXZlX3VuaXR0ZXN0IGltcG9ydCAq
Ci1mcm9tIG1vZHVsZXMubXVsdGljb21tYW5kdG9vbF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLnF1ZXVlZW5naW5lX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuc3R5bGVf
dW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy50ZXh0X3N0eWxlX3VuaXR0ZXN0IGltcG9y
dCAqCi1mcm9tIG1vZHVsZXMud2Via2l0X2xvZ2dpbmdfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20g
bW9kdWxlcy53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCi0KLWlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCBJJ20gdGlyZWQgb2Yg
Y29tbWVudGluZyBvdXQgdGhlIHRlc3QuCi0gICAgIyAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTgxOAotICAgIGlmIGxlbihzeXMuYXJndikgPiAx
IGFuZCBzeXMuYXJndlsxXSA9PSAiLS1hbGwiOgotICAgICAgICBzeXMuYXJndi5yZW1vdmUoIi0t
YWxsIikKLSAgICAgICAgZnJvbSBtb2R1bGVzLnNjbV91bml0dGVzdCBpbXBvcnQgKgotCi0gICAg
dW5pdHRlc3QubWFpbigpCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXBl
cmwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1wZXJsCShy
ZXZpc2lvbiA1MjY4NSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtcGVybAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAKIAogIyBSdW5zIHVuaXQgdGVzdHMgb2Yg
V2ViS2l0IFBlcmwgY29kZS4KIAordXNlIEZpbmRCaW47CiB1c2UgVGVzdDo6SGFybmVzczsKIAot
cnVudGVzdHMoIlZDU1V0aWxzX3VuaXR0ZXN0LnBsIik7CisjIFVzZSBhbiBhYnNvbHV0ZSBwYXRo
IHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSBhbnkgZGlyZWN0b3J5LgorJHNjcmlwdHNE
aXIgPSAkRmluZEJpbjo6QmluOworJHNjcmlwdHNEaXIgPX4gc3wvKyR8fDsgIyBSZW1vdmUgdHJh
aWxpbmcgJy8nCisKK3J1bnRlc3RzKCIkc2NyaXB0c0Rpci9WQ1NVdGlsc191bml0dGVzdC5wbCIp
OwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHJldmlzaW9uIDUy
NjgxKQkoZnJvbSBTY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzOjUyNjgxKQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2R1bGVzLmJ1Z3ppbGxhX3VuaXR0ZXN0
IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuYnVpbGRib3RfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20g
bW9kdWxlcy5idWlsZHN0ZXBzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY2hhbmdl
bG9nc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNvbW1hbmRzLmRvd25sb2FkX3Vu
aXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMuZWFybHlfd2FybmluZ19zeXN0
ZW1fdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy51cGxvYWRfdW5pdHRl
c3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy5xdWVyaWVzX3VuaXR0ZXN0IGltcG9y
dCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMucXVldWVzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9t
IG1vZHVsZXMuY29tbWl0dGVyc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNyZWRl
bnRpYWxzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY3BwX3N0eWxlX3VuaXR0ZXN0
IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuZGlmZl9wYXJzZXJfdW5pdHRlc3QgaW1wb3J0ICoKK2Zy
b20gbW9kdWxlcy5leGVjdXRpdmVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5tdWx0
aWNvbW1hbmR0b29sX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMucXVldWVlbmdpbmVf
dW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5zdHlsZV91bml0dGVzdCBpbXBvcnQgKgor
ZnJvbSBtb2R1bGVzLnRleHRfc3R5bGVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy53
ZWJraXRfbG9nZ2luZ191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLndlYmtpdHBvcnRf
dW5pdHRlc3QgaW1wb3J0ICoKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICAjIEZJ
WE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50aW5nIG91dCB0aGUg
dGVzdC4KKyAgICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMxODE4CisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09
ICItLWFsbCI6CisgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQorICAgICAgICBmcm9t
IG1vZHVsZXMuc2NtX3VuaXR0ZXN0IGltcG9ydCAqCisKKyAgICB1bml0dGVzdC5tYWluKCkKSW5k
ZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0cwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJldmlzaW9uIDApCisr
KyBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsODMgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAw
OSBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9uZWtAZ21haWwuY29tKQorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisjIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlRlc3RzIFdlYktpdCBQZXJsIGFuZCBQeXRo
b24gc2NyaXB0cy4KKworU3ludGF4OiB0ZXN0LXdlYmtpdC1zY3JpcHRzIFstLWFsbF0KKworICAg
IC0tYWxsICAgIFJ1bnMgYWxsIGF2YWlsYWJsZSB0ZXN0cywgaW5jbHVkaW5nIHRob3NlIHN1cHBy
ZXNzZWQKKyAgICAgICAgICAgICBieSBkZWZhdWx0LgorIiIiCisKK2ltcG9ydCBnZXRvcHQKK2lt
cG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworZGVmIHRlc3Rfc2NyaXB0
KHRpdGxlLCBzY3JpcHRfcGF0aCwgYXJncz1Ob25lKToKKyAgICAiIiJSdW4gdGhlIGdpdmVuIHRl
c3QgY29tbWFuZC4iIiIKKyAgICBwcmludCgnVGVzdGluZyAlczonICUgdGl0bGUpCisKKyAgICBj
YWxsX2FyZ3MgPSBbc2NyaXB0X3BhdGhdCisgICAgaWYgYXJncyBpcyBub3QgTm9uZToKKyAgICAg
ICAgY2FsbF9hcmdzLmV4dGVuZChhcmdzKQorICAgIHN1YnByb2Nlc3MuY2FsbChjYWxsX2FyZ3Mp
CisgICAgcHJpbnQoNzAgKiAiKiIpICMgZGl2aWRpbmcgbGluZQorCitpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgorCisgICAgdHJ5OgorICAgICAgICAob3B0cywgZmlsZW5hbWVzKSA9IGdldG9w
dC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAnJywgWydoZWxwJywgJ2FsbCddKQorICAgIGV4Y2VwdCBn
ZXRvcHQuR2V0b3B0RXJyb3I6CisgICAgICAgIHByaW50KF9fZG9jX18pCisgICAgICAgIHN5cy5l
eGl0KCdFcnJvcjogaW52YWxpZCBvcHRpb24uJykKKworICAgIHNob3VsZF9pbmNsdWRlX2FsbCA9
IEZhbHNlCisKKyAgICBmb3IgKG9wdCwgdmFsKSBpbiBvcHRzOgorICAgICAgICBpZiBvcHQgPT0g
Jy0taGVscCc6CisgICAgICAgICAgICBwcmludChfX2RvY19fKQorICAgICAgICAgICAgc3lzLmV4
aXQoKQorICAgICAgICBlbGlmIG9wdCA9PSAnLS1hbGwnOgorICAgICAgICAgICAgc2hvdWxkX2lu
Y2x1ZGVfYWxsID0gVHJ1ZQorCisgICAgIyBVc2UgYWJzb2x1dGUgcGF0aHMgc28gdGhpcyBzY3Jp
cHQgY2FuIGJlIHJ1biBmcm9tIGFueSBkaXJlY3RvcnkuCisgICAgc2NyaXB0c19kaXJlY3Rvcnkg
PSBzeXMucGF0aFswXQorCisgICAgdGVzdF9zY3JpcHQoJ1Blcmwgc2NyaXB0cycsIG9zLnBhdGgu
am9pbihzY3JpcHRzX2RpcmVjdG9yeSwgJ3Rlc3Qtd2Via2l0LXBlcmwnKSkKKworICAgIHRlc3Rf
c2NyaXB0KCdQeXRob24gc2NyaXB0cycsCisgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHNj
cmlwdHNfZGlyZWN0b3J5LCAndGVzdC13ZWJraXQtcHl0aG9uJyksCisgICAgICAgICAgICAgICAg
WyctLWFsbCddIGlmIHNob3VsZF9pbmNsdWRlX2FsbCBlbHNlIE5vbmUpCisKKyAgICAjIEZJWE1F
OiBEaXNwbGF5IGEgY3VtdWxhdGl2ZSBpbmRpY2F0aW9uIG9mIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4K
KyAgICAjICAgICAgICBJbiBhZGRpdGlvbiwgY2FsbCBzeXMuZXhpdCgpIHdpdGggMCBvciAxIGRl
cGVuZGluZyBvbiB0aGF0CisgICAgIyAgICAgICAgY3VtdWxhdGl2ZSBzdWNjZXNzIG9yIGZhaWx1
cmUuCisgICAgcHJpbnQoJ05vdGU6IFBlcmwgYW5kIFB5dGhvbiByZXN1bHRzIGFwcGVhciBzZXBh
cmF0ZWx5IGFib3ZlLicpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXRUb29scy9TY3JpcHRz
L3Rlc3Qtd2Via2l0LXNjcmlwdHMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCgo=
</data>
<flag name="review"
          id="27830"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="27831"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45765</attachid>
            <date>2010-01-03 20:31:30 -0800</date>
            <delta_ts>2010-01-03 22:23:38 -0800</delta_ts>
            <desc>Proposed patch 5</desc>
            <filename>patch-tools6-5.txt</filename>
            <type>text/plain</type>
            <size>11873</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMzEgIENocmlzIEplcmRvbmVrICA8
Y2hyaXMuamVyZG9uZWtAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHNjcmlwdCB0byB0ZXN0IGJvdGggUGVybCBhbmQgUHl0
aG9uLCBhbmQgcmVuYW1lZAorICAgICAgICBydW4td2Via2l0LXVuaXR0ZXN0cyB0byB0ZXN0LXdl
YmtpdC1weXRob24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzMDQ1CisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsOgor
ICAgICAgICAgIC0gVHdlYWtlZCBzbyBpdCBjYW4gYmUgcnVuIGZyb20gb3V0c2lkZSBTY3JpcHRz
IGRpcmVjdG9yeS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHM6IFJl
bW92ZWQuCisgICAgICAgICAgLSBSZW5hbWVkIHRvIHRlc3Qtd2Via2l0LXB5dGhvbi4KKworICAg
ICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtcGVybDoKKyAgICAgICAgICAtIFR3ZWFrZWQgc28g
aXQgY2FuIGJlIHJ1biBmcm9tIG91dHNpZGUgU2NyaXB0cyBkaXJlY3RvcnkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3Rlc3Qtd2Via2l0LXB5dGhvbjogQ29waWVkIGZyb20gU2NyaXB0cy9ydW4td2Vi
a2l0LXVuaXR0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0czog
QWRkZWQuCisgICAgICAgICAgLSBSdW5zIGJvdGggdGVzdC13ZWJraXQtcGVybCBhbmQgdGVzdC13
ZWJraXQtcHl0aG9uLgorCiAyMDA5LTEyLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL1ZDU1V0aWxzX3VuaXR0ZXN0LnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1NjcmlwdHMvVkNTVXRpbHNfdW5pdHRlc3QucGwJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViS2l0
VG9vbHMvU2NyaXB0cy9WQ1NVdGlsc191bml0dGVzdC5wbAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsOSBAQAogCiB1c2UgVGVzdDo6U2ltcGxlIHRlc3RzID0+IDc7CiAKK3VzZSBGaW5kQmlu
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOyAjIHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJv
bSBhbnkgZGlyZWN0b3J5LgorCiB1c2UgVkNTVXRpbHM7CiAKICMgZml4Q2hhbmdlTG9nUGF0Y2gK
SW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC11bml0dGVzdHMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXVuaXR0ZXN0cwkocmV2aXNpb24g
NTI2ODUpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5
cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gbW9kdWxl
cy5idWd6aWxsYV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmJ1aWxkYm90X3VuaXR0
ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuYnVpbGRzdGVwc191bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSBtb2R1bGVzLmNoYW5nZWxvZ3NfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy5j
b21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRz
LmVhcmx5X3dhcm5pbmdfc3lzdGVtX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29t
bWFuZHMudXBsb2FkX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuY29tbWFuZHMucXVl
cmllc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1hbmRzLnF1ZXVlc191bml0
dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoK
LWZyb20gbW9kdWxlcy5jcmVkZW50aWFsc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVz
LmNwcF9zdHlsZV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBtb2R1bGVzLmRpZmZfcGFyc2VyX3Vu
aXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuZXhlY3V0aXZlX3VuaXR0ZXN0IGltcG9ydCAq
Ci1mcm9tIG1vZHVsZXMubXVsdGljb21tYW5kdG9vbF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSBt
b2R1bGVzLnF1ZXVlZW5naW5lX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIG1vZHVsZXMuc3R5bGVf
dW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gbW9kdWxlcy50ZXh0X3N0eWxlX3VuaXR0ZXN0IGltcG9y
dCAqCi1mcm9tIG1vZHVsZXMud2Via2l0X2xvZ2dpbmdfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20g
bW9kdWxlcy53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCi0KLWlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCBJJ20gdGlyZWQgb2Yg
Y29tbWVudGluZyBvdXQgdGhlIHRlc3QuCi0gICAgIyAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTgxOAotICAgIGlmIGxlbihzeXMuYXJndikgPiAx
IGFuZCBzeXMuYXJndlsxXSA9PSAiLS1hbGwiOgotICAgICAgICBzeXMuYXJndi5yZW1vdmUoIi0t
YWxsIikKLSAgICAgICAgZnJvbSBtb2R1bGVzLnNjbV91bml0dGVzdCBpbXBvcnQgKgotCi0gICAg
dW5pdHRlc3QubWFpbigpCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXBl
cmwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1wZXJsCShy
ZXZpc2lvbiA1MjY4NSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtcGVybAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAKIAogIyBSdW5zIHVuaXQgdGVzdHMgb2Yg
V2ViS2l0IFBlcmwgY29kZS4KIAordXNlIEZpbmRCaW47CiB1c2UgVGVzdDo6SGFybmVzczsKIAot
cnVudGVzdHMoIlZDU1V0aWxzX3VuaXR0ZXN0LnBsIik7CisjIFVzZSBhbiBhYnNvbHV0ZSBwYXRo
IHNvIHRoaXMgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSBhbnkgZGlyZWN0b3J5LgorJHNjcmlwdHNE
aXIgPSAkRmluZEJpbjo6QmluOworJHNjcmlwdHNEaXIgPX4gc3wvKyR8fDsgIyBSZW1vdmUgdHJh
aWxpbmcgJy8nCisKK3J1bnRlc3RzKCIkc2NyaXB0c0Rpci9WQ1NVdGlsc191bml0dGVzdC5wbCIp
OwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHJldmlzaW9uIDUy
NjgxKQkoZnJvbSBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdW5pdHRlc3RzOjUyNjgx
KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdC1weXRob24JKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw2MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAo
YykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2R1bGVzLmJ1Z3pp
bGxhX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuYnVpbGRib3RfdW5pdHRlc3QgaW1w
b3J0ICoKK2Zyb20gbW9kdWxlcy5idWlsZHN0ZXBzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1v
ZHVsZXMuY2hhbmdlbG9nc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLmNvbW1hbmRz
LmRvd25sb2FkX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMuZWFybHlf
d2FybmluZ19zeXN0ZW1fdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy51
cGxvYWRfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5jb21tYW5kcy5xdWVyaWVzX3Vu
aXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWFuZHMucXVldWVzX3VuaXR0ZXN0IGlt
cG9ydCAqCitmcm9tIG1vZHVsZXMuY29tbWl0dGVyc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBt
b2R1bGVzLmNyZWRlbnRpYWxzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuY3BwX3N0
eWxlX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMuZGlmZl9wYXJzZXJfdW5pdHRlc3Qg
aW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5leGVjdXRpdmVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20g
bW9kdWxlcy5tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIG1vZHVsZXMu
cXVldWVlbmdpbmVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gbW9kdWxlcy5zdHlsZV91bml0dGVz
dCBpbXBvcnQgKgorZnJvbSBtb2R1bGVzLnRleHRfc3R5bGVfdW5pdHRlc3QgaW1wb3J0ICoKK2Zy
b20gbW9kdWxlcy53ZWJraXRfbG9nZ2luZ191bml0dGVzdCBpbXBvcnQgKgorZnJvbSBtb2R1bGVz
LndlYmtpdHBvcnRfdW5pdHRlc3QgaW1wb3J0ICoKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f
IjoKKyAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50
aW5nIG91dCB0aGUgdGVzdC4KKyAgICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxODE4CisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5
cy5hcmd2WzFdID09ICItLWFsbCI6CisgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQor
ICAgICAgICBmcm9tIG1vZHVsZXMuc2NtX3VuaXR0ZXN0IGltcG9ydCAqCisKKyAgICB1bml0dGVz
dC5tYWluKCkKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXQtc2NyaXB0cwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsODMgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAwOSBDaHJpcyBKZXJkb25layAoY2hyaXMuamVyZG9uZWtAZ21haWwuY29tKQor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9u
LgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisjIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlRlc3RzIFdlYktpdCBQ
ZXJsIGFuZCBQeXRob24gc2NyaXB0cy4KKworU3ludGF4OiB0ZXN0LXdlYmtpdC1zY3JpcHRzIFst
LWFsbF0KKworICAgIC0tYWxsICAgIFJ1bnMgYWxsIGF2YWlsYWJsZSB0ZXN0cywgaW5jbHVkaW5n
IHRob3NlIHN1cHByZXNzZWQKKyAgICAgICAgICAgICBieSBkZWZhdWx0LgorIiIiCisKK2ltcG9y
dCBnZXRvcHQKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworZGVm
IHRlc3Rfc2NyaXB0KHRpdGxlLCBzY3JpcHRfcGF0aCwgYXJncz1Ob25lKToKKyAgICAiIiJSdW4g
dGhlIGdpdmVuIHRlc3QgY29tbWFuZC4iIiIKKyAgICBwcmludCgnVGVzdGluZyAlczonICUgdGl0
bGUpCisKKyAgICBjYWxsX2FyZ3MgPSBbc2NyaXB0X3BhdGhdCisgICAgaWYgYXJncyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgY2FsbF9hcmdzLmV4dGVuZChhcmdzKQorICAgIHN1YnByb2Nlc3MuY2Fs
bChjYWxsX2FyZ3MpCisgICAgcHJpbnQoNzAgKiAiKiIpICMgZGl2aWRpbmcgbGluZQorCitpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgorCisgICAgdHJ5OgorICAgICAgICAob3B0cywgZmlsZW5h
bWVzKSA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAnJywgWydoZWxwJywgJ2FsbCddKQor
ICAgIGV4Y2VwdCBnZXRvcHQuR2V0b3B0RXJyb3I6CisgICAgICAgIHByaW50KF9fZG9jX18pCisg
ICAgICAgIHN5cy5leGl0KCdFcnJvcjogaW52YWxpZCBvcHRpb24uJykKKworICAgIHNob3VsZF9p
bmNsdWRlX2FsbCA9IEZhbHNlCisKKyAgICBmb3IgKG9wdCwgdmFsKSBpbiBvcHRzOgorICAgICAg
ICBpZiBvcHQgPT0gJy0taGVscCc6CisgICAgICAgICAgICBwcmludChfX2RvY19fKQorICAgICAg
ICAgICAgc3lzLmV4aXQoKQorICAgICAgICBlbGlmIG9wdCA9PSAnLS1hbGwnOgorICAgICAgICAg
ICAgc2hvdWxkX2luY2x1ZGVfYWxsID0gVHJ1ZQorCisgICAgIyBVc2UgYWJzb2x1dGUgcGF0aHMg
c28gdGhpcyBzY3JpcHQgY2FuIGJlIHJ1biBmcm9tIGFueSBkaXJlY3RvcnkuCisgICAgc2NyaXB0
c19kaXJlY3RvcnkgPSBzeXMucGF0aFswXQorCisgICAgdGVzdF9zY3JpcHQoJ1Blcmwgc2NyaXB0
cycsIG9zLnBhdGguam9pbihzY3JpcHRzX2RpcmVjdG9yeSwgJ3Rlc3Qtd2Via2l0LXBlcmwnKSkK
KworICAgIHRlc3Rfc2NyaXB0KCdQeXRob24gc2NyaXB0cycsCisgICAgICAgICAgICAgICAgb3Mu
cGF0aC5qb2luKHNjcmlwdHNfZGlyZWN0b3J5LCAndGVzdC13ZWJraXQtcHl0aG9uJyksCisgICAg
ICAgICAgICAgICAgWyctLWFsbCddIGlmIHNob3VsZF9pbmNsdWRlX2FsbCBlbHNlIE5vbmUpCisK
KyAgICAjIEZJWE1FOiBEaXNwbGF5IGEgY3VtdWxhdGl2ZSBpbmRpY2F0aW9uIG9mIHN1Y2Nlc3Mg
b3IgZmFpbHVyZS4KKyAgICAjICAgICAgICBJbiBhZGRpdGlvbiwgY2FsbCBzeXMuZXhpdCgpIHdp
dGggMCBvciAxIGRlcGVuZGluZyBvbiB0aGF0CisgICAgIyAgICAgICAgY3VtdWxhdGl2ZSBzdWNj
ZXNzIG9yIGZhaWx1cmUuCisgICAgcHJpbnQoJ05vdGU6IFBlcmwgYW5kIFB5dGhvbiByZXN1bHRz
IGFwcGVhciBzZXBhcmF0ZWx5IGFib3ZlLicpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXRU
b29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0LXNjcmlwdHMKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgo=
</data>
<flag name="review"
          id="27885"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="27886"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>