<?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>66227</bug_id>
          
          <creation_ts>2011-08-15 08:03:29 -0700</creation_ts>
          <short_desc>REGRESSION (NRWT): build.webkit.org doesn&apos;t show the total number of leaks found during a test run on the Leaks bot</short_desc>
          <delta_ts>2011-10-27 14:38:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>http://build.webkit.org/builders/SnowLeopard%20Intel%20Leaks</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71059</dependson>
          <blocked>34984</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451069</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-15 08:03:29 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://build.webkit.org/builders/SnowLeopard%20Intel%20Leaks

Each build says something like this:

Failed leaks found for a total of 196,240 bytes! 1 unique leaks found!

With ORWT, it used to say something like this:

Failed 1400 total leaks found!

Not having the total number of leaks printed makes it hard to see at a glance whether the number of leaks is increasing or decreasing. I suspect it also breaks Leaks Viewer&apos;s recent-leaky-builds list, which can be seen by going to &lt;http://build.webkit.org/LeaksViewer/&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451099</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-15 10:02:30 -0700</bug_when>
    <thetext>We could get this number from re-parsing the files.  But ORWT&apos;s design of having a single global variable as a counter cannot work.

I&apos;m happy to move --leaks processing back to ORWT until these two bugs are fixed.  That&apos;s probably simplest given that I have to do some non-NRWT work this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451111</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-15 10:22:10 -0700</bug_when>
    <thetext>I&apos;ve reverted back to ORWT for the Leaks bot for now: http://trac.webkit.org/changeset/93046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458350</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-29 12:18:42 -0700</bug_when>
    <thetext>Is this a blocking issue, or just a polish issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458355</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-29 12:22:20 -0700</bug_when>
    <thetext>Well, it breaks one of our main tools for analyzing the results of the Leaks bot. So I guess you could consider it &quot;blocking&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458390</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-29 13:00:20 -0700</bug_when>
    <thetext>OK.  So what specifically do you need to unbreak the tool?

You need a total count of all leaks found? (which I can get by re-processing all of the *-leaks.txt files at the end).  It seems that since LeaksViewer is already processing all the *-leaks.txt files, it would just count them up itself.

The individual count per-file is printed out in the log as we go.  We just don&apos;t print a total summary (except the summarized unique leaks) now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458413</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-29 13:25:10 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; OK.  So what specifically do you need to unbreak the tool?
&gt; 
&gt; You need a total count of all leaks found? (which I can get by re-processing all of the *-leaks.txt files at the end).

Right.

&gt; It seems that since LeaksViewer is already processing all the *-leaks.txt files, it would just count them up itself.

That would dramatically increase the amount of time it takes for Leaks Viewer&apos;s &quot;recent builds&quot; list to appear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477096</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-10-03 11:25:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/10224916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489432</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-24 10:41:20 -0700</bug_when>
    <thetext>It looks like the leaks bot got switched back to ORWT.  I&apos;m investigating switching it to NRWT again today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491888</commentid>
    <comment_count>9</comment_count>
      <attachid>112741</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 13:43:40 -0700</bug_when>
    <thetext>Created attachment 112741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491905</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 13:53:03 -0700</bug_when>
    <thetext>I believe this change works.  I can&apos;t do a full system test (without fixing bug 71059 first), since it seems run-leaks doesn&apos;t work on lion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491937</commentid>
    <comment_count>11</comment_count>
      <attachid>112741</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-27 14:13:04 -0700</bug_when>
    <thetext>Comment on attachment 112741
Patch

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

&gt; Tools/ChangeLog:12
&gt; +        * Scripts/webkitpy/layout_tests/port/leakdetector.py:
&gt; +        * Scripts/webkitpy/layout_tests/port/leakdetector_unittest.py:
&gt; +        * Scripts/webkitpy/layout_tests/port/mac.py:

Can you add some function-level comments? That would make this patch a lot easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491945</commentid>
    <comment_count>12</comment_count>
      <attachid>112750</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 14:20:04 -0700</bug_when>
    <thetext>Created attachment 112750
hopefully this is easier to review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491948</commentid>
    <comment_count>13</comment_count>
      <attachid>112751</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 14:22:35 -0700</bug_when>
    <thetext>Created attachment 112751
include code to turn on NRWT for leaks bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491949</commentid>
    <comment_count>14</comment_count>
      <attachid>112750</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-27 14:24:08 -0700</bug_when>
    <thetext>Comment on attachment 112750
hopefully this is easier to review

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:142
&gt; +        total_bytes_string, unique_leaks = self._leak_detector.count_unique_leaks(leaks_files)

It&apos;s a little weird that count_unique_leaks returns more than just a count of unique leaks. I don&apos;t have any great naming suggestions.

&gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:143
&gt; +        total_leaks = self._leak_detector.count_total_leaks(leaks_files)

Would it be more efficient to count total and unique leaks in a single function (so you could pass through the leaks files just once)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491953</commentid>
    <comment_count>15</comment_count>
      <attachid>112751</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-27 14:25:43 -0700</bug_when>
    <thetext>Comment on attachment 112751
include code to turn on NRWT for leaks bot

The run-webkit-tests changes are missing from your ChangeLog. But they should probably be done separately anyway. r=me on that bit. See my comments on the old patch for the Python changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491957</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 14:27:11 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 112750 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112750&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:142
&gt; &gt; +        total_bytes_string, unique_leaks = self._leak_detector.count_unique_leaks(leaks_files)
&gt; 
&gt; It&apos;s a little weird that count_unique_leaks returns more than just a count of unique leaks. I don&apos;t have any great naming suggestions.

Sure will make it count_total_bytes_and_unique_leaks.  :)

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:143
&gt; &gt; +        total_leaks = self._leak_detector.count_total_leaks(leaks_files)
&gt; 
&gt; Would it be more efficient to count total and unique leaks in a single function (so you could pass through the leaks files just once)?

Doesn&apos;t really matter.  Thats what I had originally, but I figured this might be slightly cleaner.  The unique_leaks function has to call out to parse-malloc-history which has to read the files itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491959</commentid>
    <comment_count>17</comment_count>
      <attachid>112750</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-10-27 14:29:25 -0700</bug_when>
    <thetext>Comment on attachment 112750
hopefully this is easier to review

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/mac.py:143
&gt;&gt;&gt; +        total_leaks = self._leak_detector.count_total_leaks(leaks_files)
&gt;&gt; 
&gt;&gt; Would it be more efficient to count total and unique leaks in a single function (so you could pass through the leaks files just once)?
&gt; 
&gt; Doesn&apos;t really matter.  Thats what I had originally, but I figured this might be slightly cleaner.  The unique_leaks function has to call out to parse-malloc-history which has to read the files itself.

Gotcha. The current separation seems fine then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491963</commentid>
    <comment_count>18</comment_count>
      <attachid>112754</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 14:36:04 -0700</bug_when>
    <thetext>Created attachment 112754
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491967</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-27 14:38:52 -0700</bug_when>
    <thetext>This landed, svn was just hanging webkit-patch. :(  http://trac.webkit.org/changeset/98639</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112741</attachid>
            <date>2011-10-27 13:43:40 -0700</date>
            <delta_ts>2011-10-27 14:19:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66227-20111027134339.patch</filename>
            <type>text/plain</type>
            <size>7858</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MTIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YTY1OWFmYzRkNzk4MGMzODkwYmQ4OWRkZTk2M2M5MGFl
MTY2Zjc2Li5jZTAwYThmN2ZkZWJkZDlmZGVkYTVjZmQ3MDMzOGI2MTc2ZjJkMTNkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTEtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04gKE5SV1QpOiBidWlsZC53ZWJraXQub3JnIGRvZXNuJ3Qgc2hvdyB0aGUgdG90
YWwgbnVtYmVyIG9mIGxlYWtzIGZvdW5kIGR1cmluZyBhIHRlc3QgcnVuIG9uIHRoZSBMZWFrcyBi
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBiZWxp
ZXZlIHRoaXMgc2hvdWxkIGZpeCB0aGUgYnVnLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHk6CisKIDIwMTEt
MTAtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QgV0tC
dW5kbGVQYWdlR2V0QmFja2luZ1NjYWxlRmFjdG9yCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yLnB5CmluZGV4IDg2YWRm
MzRhODg4ZTBiZDIyZDA0YTcxNDcyYWZjYjk0ZDdiYjk4ZTguLjA5NWQ3NjUwYjEyNTFkMmVhMDlm
NzIwYzQzZWI4ZDBkOTc3ODc5MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yLnB5CkBAIC04NCw5ICs4NCw5IEBA
IGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICBsZWFrc19hcmdzLmFwcGVuZChw
aWQpCiAgICAgICAgIHJldHVybiBsZWFrc19hcmdzCiAKLSAgICBkZWYgX3BhcnNlX2xlYWtzX291
dHB1dChzZWxmLCBsZWFrc19vdXRwdXQsIHByb2Nlc3NfcGlkKToKLSAgICAgICAgY291bnQsIGJ5
dGVzID0gcmUuc2VhcmNoKHInUHJvY2VzcyAlczogKFxkKykgbGVha3M/IGZvciAoXGQrKSB0b3Rh
bCcgJSBwcm9jZXNzX3BpZCwgbGVha3Nfb3V0cHV0KS5ncm91cHMoKQotICAgICAgICBleGNsdWRl
ZF9tYXRjaCA9IHJlLnNlYXJjaChyJyhcZCspIGxlYWtzPyBleGNsdWRlZCcsIGxlYWtzX291dHB1
dCkKKyAgICBkZWYgX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLCBsZWFrc19vdXRwdXQpOgorICAg
ICAgICBfLCBjb3VudCwgYnl0ZXMgPSByZS5zZWFyY2gocidQcm9jZXNzICg/UDxwaWQ+XGQrKTog
KD9QPGNvdW50PlxkKykgbGVha3M/IGZvciAoP1A8Ynl0ZXM+XGQrKSB0b3RhbCcsIGxlYWtzX291
dHB1dCkuZ3JvdXBzKCkKKyAgICAgICAgZXhjbHVkZWRfbWF0Y2ggPSByZS5zZWFyY2gocicoP1A8
ZXhjbHVkZWQ+XGQrKSBsZWFrcz8gZXhjbHVkZWQnLCBsZWFrc19vdXRwdXQpCiAgICAgICAgIGV4
Y2x1ZGVkID0gZXhjbHVkZWRfbWF0Y2guZ3JvdXAoMCkgaWYgZXhjbHVkZWRfbWF0Y2ggZWxzZSAw
CiAgICAgICAgIHJldHVybiBpbnQoY291bnQpLCBpbnQoZXhjbHVkZWQpLCBpbnQoYnl0ZXMpCiAK
QEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgTGVha0RldGVjdG9yKG9iamVjdCk6CiAgICAgICAgICMg
V2UgaW5jbHVkZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHRoaXMgd29ya2VyIGhhcyBhbHJlYWR5IHdy
aXR0ZW4gaW4gdGhlIG5hbWUgdG8gcHJldmVudCBvdmVyd3JpdHRpbmcgcHJldmlvdXMgbGVhayBy
ZXN1bHRzLi4KICAgICAgICAgcmV0dXJuICIlcy0lcy1sZWFrcy50eHQiICUgKHByb2Nlc3NfbmFt
ZSwgcHJvY2Vzc19waWQpCiAKLSAgICBkZWYgcGFyc2VfbGVha19maWxlcyhzZWxmLCBsZWFrX2Zp
bGVzKToKKyAgICBkZWYgY291bnRfdW5pcXVlX2xlYWtzKHNlbGYsIGxlYWtfZmlsZXMpOgogICAg
ICAgICBtZXJnZV9kZXB0aCA9IDUgICMgT1JXVCBoYWQgYSAtLW1lcmdlLWxlYWstZGVwdGggYXJn
dW1lbnQsIGJ1dCB0aGF0IHNlZW1zIG91dCBvZiBzY29wZSBmb3IgdGhlIHJ1bi13ZWJraXQtdGVz
dHMgdG9vbC4KICAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICctLW1lcmdlLWRlcHRoJywK
QEAgLTExNCw2ICsxMTQsMTQgQEAgY2xhc3MgTGVha0RldGVjdG9yKG9iamVjdCk6CiAgICAgICAg
IHRvdGFsX2J5dGVzX3N0cmluZyA9IHJlLnNlYXJjaChyJ150b3RhbFw6XHMoLispXHNcKCcsIHBh
cnNlX21hbGxvY19oaXN0b3J5X291dHB1dCwgcmUuTVVMVElMSU5FKS5ncm91cCgxKQogICAgICAg
ICByZXR1cm4gKHRvdGFsX2J5dGVzX3N0cmluZywgdW5pcXVlX2xlYWtfY291bnQpCiAKKyAgICBk
ZWYgY291bnRfdG90YWxfbGVha3Moc2VsZiwgbGVha19maWxlX3BhdGhzKToKKyAgICAgICAgdG90
YWxfbGVha3MgPSAwCisgICAgICAgIGZvciBsZWFrX2ZpbGVfcGF0aCBpbiBsZWFrX2ZpbGVfcGF0
aHM6CisgICAgICAgICAgICBsZWFrc19vdXRwdXQgPSBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4
dF9maWxlKGxlYWtfZmlsZV9wYXRoKQorICAgICAgICAgICAgY291bnQsIF8sIF8gPSBzZWxmLl9w
YXJzZV9sZWFrc19vdXRwdXQobGVha3Nfb3V0cHV0KQorICAgICAgICAgICAgdG90YWxfbGVha3Mg
Kz0gY291bnQKKyAgICAgICAgcmV0dXJuIHRvdGFsX2xlYWtzCisKICAgICBkZWYgY2hlY2tfZm9y
X2xlYWtzKHNlbGYsIHByb2Nlc3NfbmFtZSwgcHJvY2Vzc19waWQpOgogICAgICAgICBfbG9nLmRl
YnVnKCJDaGVja2luZyBmb3IgbGVha3MgaW4gJXMiICUgcHJvY2Vzc19uYW1lKQogICAgICAgICB0
cnk6CkBAIC0xMjUsOCArMTMzLDggQEAgY2xhc3MgTGVha0RldGVjdG9yKG9iamVjdCk6CiAgICAg
ICAgICAgICBfbG9nLndhcm4oIkZhaWxlZCB0byBydW4gbGVha3MgdG9vbDogJXMiICUgZS5tZXNz
YWdlX3dpdGhfb3V0cHV0KCkpCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICAjIEZJWE1F
OiBXZSBzaG91bGQgY29uc2lkZXIgbW92aW5nIGxlYWtzIHBhcnNpbmcgdG8gdGhlIGVuZCB3aGVu
IHN1bW1hcml6aW5nIGlzIGRvbmUuCi0gICAgICAgIGNvdW50LCBleGNsdWRlZCwgYnl0ZXMgPSBz
ZWxmLl9wYXJzZV9sZWFrc19vdXRwdXQobGVha3Nfb3V0cHV0LCBwcm9jZXNzX3BpZCkKKyAgICAg
ICAgIyBGSVhNRTogV2UgZW5kIHVwIHBhcnNpbmcgdGhpcyBvdXRwdXQgMyB0aW1lcy4gIE9uY2Ug
aGVyZSBhbmQgdHdpY2UgZm9yIHN1bW1hcml6aW5nLgorICAgICAgICBjb3VudCwgZXhjbHVkZWQs
IGJ5dGVzID0gc2VsZi5fcGFyc2VfbGVha3Nfb3V0cHV0KGxlYWtzX291dHB1dCkKICAgICAgICAg
YWRqdXN0ZWRfY291bnQgPSBjb3VudCAtIGV4Y2x1ZGVkCiAgICAgICAgIGlmIG5vdCBhZGp1c3Rl
ZF9jb3VudDoKICAgICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvcl91bml0dGVz
dC5weQppbmRleCBlNWM0NjBlNTU3OTM5YzEzMTY2NDhhZTFlZmYwMGM4Y2Y1NzM5N2UyLi5kMTc2
MWZhMDBiNGFjZjQ0OTA0MjczMmIwNzA5MWUyMmY2OTVjZDAyIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvcl91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRl
Y3Rvcl91bml0dGVzdC5weQpAQCAtNzksNyArNzksNyBAQCBMZWFrOiAweDI1MTAyZmUwICBzaXpl
PTE3NiAgem9uZTogRGVmYXVsdE1hbGxvY1pvbmVfMHgxZDk0MDAwICAgc3RyaW5nICdOU0V4Y2Vw
dAogIiIiCiAKICAgICBkZWYgdGVzdF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZik6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX21ha2VfZGV0ZWN0b3IoKS5fcGFyc2VfbGVha3Nfb3V0
cHV0KHNlbGYuZXhhbXBsZV9sZWFrc19vdXRwdXQsIDUxMjIpLCAoMzM3MzAxLCAwLCA2NTI1MjE2
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fbWFrZV9kZXRlY3RvcigpLl9wYXJz
ZV9sZWFrc19vdXRwdXQoc2VsZi5leGFtcGxlX2xlYWtzX291dHB1dCksICgzMzczMDEsIDAsIDY1
MjUyMTYpKQogCiAgICAgZGVmIHRlc3RfbGVha3NfZmlsZXNfaW5fZGlyZWN0b3J5KHNlbGYpOgog
ICAgICAgICBkZXRlY3RvciA9IHNlbGYuX21ha2VfZGV0ZWN0b3IoKQpAQCAtOTEsNyArOTEsNyBA
QCBMZWFrOiAweDI1MTAyZmUwICBzaXplPTE3NiAgem9uZTogRGVmYXVsdE1hbGxvY1pvbmVfMHgx
ZDk0MDAwICAgc3RyaW5nICdOU0V4Y2VwdAogICAgICAgICB9KQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhsZW4oZGV0ZWN0b3IubGVha3NfZmlsZXNfaW5fZGlyZWN0b3J5KCcvbW9jay1yZXN1
bHRzJykpLCAzKQogCi0gICAgZGVmIHRlc3RfcGFyc2VfbGVha19maWxlcyhzZWxmKToKKyAgICBk
ZWYgdGVzdF9jb3VudF91bmlxdWVfbGVha3Moc2VsZik6CiAgICAgICAgIGRldGVjdG9yID0gc2Vs
Zi5fbWFrZV9kZXRlY3RvcigpCiAKICAgICAgICAgZGVmIG1vY2tfcnVuX3NjcmlwdChuYW1lLCBh
cmdzLCBpbmNsdWRlX2NvbmZpZ3VyYXRpb25fYXJndW1lbnRzPUZhbHNlKToKQEAgLTEwMyw1ICsx
MDMsMTUgQEAgdG90YWw6IDUsODg4IGJ5dGVzICgwIGJ5dGVzIGV4Y2x1ZGVkKS4iIiIKIAogICAg
ICAgICBsZWFrX2ZpbGVzID0gWycvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzQtbGVh
a3MudHh0JywgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNS1sZWFrcy50eHQnXQog
ICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiTU9DSyBfcnVuX3NjcmlwdDogcGFyc2UtbWFsbG9j
LWhpc3RvcnkgWyctLW1lcmdlLWRlcHRoJywgNSwgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRy
ZWUtMTIzNC1sZWFrcy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM1LWxl
YWtzLnR4dCddXG4iCi0gICAgICAgIHJlc3VsdHNfdHVwbGUgPSBPdXRwdXRDYXB0dXJlKCkuYXNz
ZXJ0X291dHB1dHMoc2VsZiwgZGV0ZWN0b3IucGFyc2VfbGVha19maWxlcywgW2xlYWtfZmlsZXNd
LCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQorICAgICAgICByZXN1bHRzX3R1cGxl
ID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGRldGVjdG9yLmNvdW50X3Vu
aXF1ZV9sZWFrcywgW2xlYWtfZmlsZXNdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRzX3R1cGxlLCAoIjUsODg4IGJ5dGVz
IiwgMSkpCisKKyAgICBkZWYgdGVzdF9jb3VudF90b3RhbF9sZWFrcyhzZWxmKToKKyAgICAgICAg
ZGV0ZWN0b3IgPSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKKyAgICAgICAgZGV0ZWN0b3IuX2ZpbGVz
eXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSh7CisgICAgICAgICAgICAnL21vY2stcmVzdWx0cy9EdW1w
UmVuZGVyVHJlZS0xMjM0LWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzQ6IDEyIGxlYWtzIGZvciA0
MCB0b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAorICAgICAgICAgICAgJy9tb2NrLXJlc3VsdHMvRHVt
cFJlbmRlclRyZWUtMjM0MjMtbGVha3MudHh0JzogJ1Byb2Nlc3MgMTIzNTogMTIzNDEgbGVha3Mg
Zm9yIDI3OTM0IHRvdGFsIGxlYWtlZCBieXRlcy5cbicsCisgICAgICAgICAgICAnL21vY2stcmVz
dWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0JzogJ1Byb2Nlc3MgMTIzNTY6IDIzNDEy
IGxlYWtzIGZvciAxOCB0b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAorICAgICAgICB9KQorICAgICAg
ICBsZWFrX2ZpbGVfcGF0aHMgPSBbJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNC1s
ZWFrcy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0yMzQyMy1sZWFrcy50eHQn
LCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0J10KKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoZGV0ZWN0b3IuY291bnRfdG90YWxfbGVha3MobGVha19maWxlX3Bh
dGhzKSwgMzU3NjUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21hYy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvbWFjLnB5CmluZGV4IGQxNTM1Mzk3MGJhMDNlZDc2MjU5NWNjMTc5NmI2ZmE1ZDhiY2E2NTgu
LjliZjYzZTZkZTEyYjc2ZDg0ZDRhNjdiNTE1ZDI4YjQ4YTRkNmRiZTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5CkBAIC0xMzksMTIgKzEz
OSw5IEBAIGNsYXNzIE1hY1BvcnQoQXBwbGVQb3J0KToKICAgICAgICAgbGVha3NfZmlsZXMgPSBz
ZWxmLl9sZWFrX2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmLnJlc3VsdHNf
ZGlyZWN0b3J5KCkpCiAgICAgICAgIGlmIG5vdCBsZWFrc19maWxlczoKICAgICAgICAgICAgIHJl
dHVybgotICAgICAgICB0b3RhbF9ieXRlc19zdHJpbmcsIHVuaXF1ZV9sZWFrcyA9IHNlbGYuX2xl
YWtfZGV0ZWN0b3IucGFyc2VfbGVha19maWxlcyhsZWFrc19maWxlcykKLSAgICAgICAgIyBvbGQt
cnVuLXdlYmtpdC10ZXN0cyB1c2VkIHRvIHByaW50IHRoZSAidG90YWwgbGVha3MiIGNvdW50LCBi
dXQgdGhhdCB3b3VsZAotICAgICAgICAjIHJlcXVpcmUgcmUtcGFyc2luZyBlYWNoIG9mIHRoZSBs
ZWFrcyBmaWxlcyAod2hpY2ggd2UgY291bGQgZG8gYXQgc29tZSBsYXRlciBwb2ludCBpZiB0aGF0
IHdvdWxkIGJlIHVzZWZ1bC4pCi0gICAgICAgICMgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZyBncmVwcyBmb3IgImxlYWtzIGZvdW5kIi4K
LSAgICAgICAgIyBtYXN0ZXIuY2ZnIHdpbGwgbmVlZCBhbiB1cGRhdGUgaWYgdGhlc2Ugc3RyaW5n
cyBjaGFuZ2UuCi0gICAgICAgIF9sb2cuaW5mbygibGVha3MgZm91bmQgZm9yIGEgdG90YWwgb2Yg
JXMhIiAlIHRvdGFsX2J5dGVzX3N0cmluZykKKyAgICAgICAgdG90YWxfYnl0ZXNfc3RyaW5nLCB1
bmlxdWVfbGVha3MgPSBzZWxmLl9sZWFrX2RldGVjdG9yLmNvdW50X3VuaXF1ZV9sZWFrcyhsZWFr
c19maWxlcykKKyAgICAgICAgdG90YWxfbGVha3MgPSBzZWxmLl9sZWFrX2RldGVjdG9yLmNvdW50
X3RvdGFsX2xlYWtzKGxlYWtzX2ZpbGVzKQorICAgICAgICBfbG9nLmluZm8oIiVzIHRvdGFsIGxl
YWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICVzISIgJSAodG90YWxfbGVha3MsIHRvdGFsX2J5dGVz
X3N0cmluZykpCiAgICAgICAgIF9sb2cuaW5mbygiJXMgdW5pcXVlIGxlYWtzIGZvdW5kISIgJSB1
bmlxdWVfbGVha3MpCiAKICAgICBkZWYgX2NoZWNrX3BvcnRfYnVpbGQoc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112750</attachid>
            <date>2011-10-27 14:20:04 -0700</date>
            <delta_ts>2011-10-27 14:29:25 -0700</delta_ts>
            <desc>hopefully this is easier to review</desc>
            <filename>bug-66227-20111027142002.patch</filename>
            <type>text/plain</type>
            <size>8474</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYzJhYzE4Mjk4YThlNGUxNjNjMzdjMWQwODY3ZmZmYTNl
MTNlMDdiLi42YTNkNDg3NThiYzdhMjJkMTk5ZmY0M2Q1OGI2YzljYWNkN2NiMDdlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04gKE5SV1QpOiBidWlsZC53ZWJraXQub3JnIGRvZXNuJ3Qgc2hvdyB0aGUgdG90
YWwgbnVtYmVyIG9mIGxlYWtzIGZvdW5kIGR1cmluZyBhIHRlc3QgcnVuIG9uIHRoZSBMZWFrcyBi
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBiZWxp
ZXZlIHRoaXMgc2hvdWxkIGZpeCB0aGUgYnVnLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHk6CisgICAgICAgIChMZWFrRGV0ZWN0
b3IuX3BhcnNlX2xlYWtzX291dHB1dCk6IHJlbW92ZWQgdGhlICh1bm5lZWRlZCkgcHJvY2Vzc19w
aWQgYXJndW1lbnQsIGFuZCBtYWRlIHRoZSByZWdleHAgdXNlIG5hbWVkIGdyb3VwcyAoZXZlbiB0
aG91Z2ggd2UgZG9uJ3QgZXZlciBncmFiIHRoZW0gYnkgbmFtZSkKKyAgICAgICAgKExlYWtEZXRl
Y3Rvci5jb3VudF91bmlxdWVfbGVha3MpOiByZW5hbWVkIGZyb20gcGFyc2VfbGVha19maWxlcwor
ICAgICAgICAoTGVha0RldGVjdG9yLmNvdW50X3RvdGFsX2xlYWtzKTogbmV3IGZpbGUgKHRoZSBn
dXRzIG9mIHRoaXMgY2hhbmdlKSB3aGljaCBpcyB1c2VkIHRvIHJlLXBhcnNlIHRoZSBsZWFrcyBv
dXRwdXQgZHVyaW5nIHRoZSBzdW1tYXJpemUgbGVha3MgcGhhc2UuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHk6Cisg
ICAgICAgIENoYW5nZXMgdG8gcmVmbGVjdCB0aGUgcmVuYW1lIG9mIGNvdW50X3VuaXF1ZV9sZWFr
cyBhbmQgYSBuZXcgdGVzdCBmb3IgY291bnRfdG90YWxfbGVha3MuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHk6CisgICAgICAgIFVzZSBjb3VudF90
b3RhbF9sZWFrcyB0byBzcGl0IG91dCB0aGUgdG90YWwgbGVhayBjb3VudCBsaWtlIE9SV1QgZGlk
LCBhbmQgcmVtb3ZlIHRoZSBGSVhNRSBvbiB0aGUgc3ViamVjdC4KKwogMjAxMS0xMC0yNyAgU3Rl
cGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gTmVlZCBzZXRQcmludGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvci5weQppbmRleCA4NmFkZjM0YTg4OGUwYmQy
MmQwNGE3MTQ3MmFmY2I5NGQ3YmI5OGU4Li4wOTVkNzY1MGIxMjUxZDJlYTA5ZjcyMGM0M2ViOGQw
ZDk3Nzg3OTE2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2xlYWtkZXRlY3Rvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvci5weQpAQCAtODQsOSArODQsOSBAQCBjbGFzcyBMZWFr
RGV0ZWN0b3Iob2JqZWN0KToKICAgICAgICAgbGVha3NfYXJncy5hcHBlbmQocGlkKQogICAgICAg
ICByZXR1cm4gbGVha3NfYXJncwogCi0gICAgZGVmIF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZiwg
bGVha3Nfb3V0cHV0LCBwcm9jZXNzX3BpZCk6Ci0gICAgICAgIGNvdW50LCBieXRlcyA9IHJlLnNl
YXJjaChyJ1Byb2Nlc3MgJXM6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwnICUgcHJvY2Vz
c19waWQsIGxlYWtzX291dHB1dCkuZ3JvdXBzKCkKLSAgICAgICAgZXhjbHVkZWRfbWF0Y2ggPSBy
ZS5zZWFyY2gocicoXGQrKSBsZWFrcz8gZXhjbHVkZWQnLCBsZWFrc19vdXRwdXQpCisgICAgZGVm
IF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZiwgbGVha3Nfb3V0cHV0KToKKyAgICAgICAgXywgY291
bnQsIGJ5dGVzID0gcmUuc2VhcmNoKHInUHJvY2VzcyAoP1A8cGlkPlxkKyk6ICg/UDxjb3VudD5c
ZCspIGxlYWtzPyBmb3IgKD9QPGJ5dGVzPlxkKykgdG90YWwnLCBsZWFrc19vdXRwdXQpLmdyb3Vw
cygpCisgICAgICAgIGV4Y2x1ZGVkX21hdGNoID0gcmUuc2VhcmNoKHInKD9QPGV4Y2x1ZGVkPlxk
KykgbGVha3M/IGV4Y2x1ZGVkJywgbGVha3Nfb3V0cHV0KQogICAgICAgICBleGNsdWRlZCA9IGV4
Y2x1ZGVkX21hdGNoLmdyb3VwKDApIGlmIGV4Y2x1ZGVkX21hdGNoIGVsc2UgMAogICAgICAgICBy
ZXR1cm4gaW50KGNvdW50KSwgaW50KGV4Y2x1ZGVkKSwgaW50KGJ5dGVzKQogCkBAIC05Nyw3ICs5
Nyw3IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICAjIFdlIGluY2x1ZGUg
dGhlIG51bWJlciBvZiBmaWxlcyB0aGlzIHdvcmtlciBoYXMgYWxyZWFkeSB3cml0dGVuIGluIHRo
ZSBuYW1lIHRvIHByZXZlbnQgb3ZlcndyaXR0aW5nIHByZXZpb3VzIGxlYWsgcmVzdWx0cy4uCiAg
ICAgICAgIHJldHVybiAiJXMtJXMtbGVha3MudHh0IiAlIChwcm9jZXNzX25hbWUsIHByb2Nlc3Nf
cGlkKQogCi0gICAgZGVmIHBhcnNlX2xlYWtfZmlsZXMoc2VsZiwgbGVha19maWxlcyk6CisgICAg
ZGVmIGNvdW50X3VuaXF1ZV9sZWFrcyhzZWxmLCBsZWFrX2ZpbGVzKToKICAgICAgICAgbWVyZ2Vf
ZGVwdGggPSA1ICAjIE9SV1QgaGFkIGEgLS1tZXJnZS1sZWFrLWRlcHRoIGFyZ3VtZW50LCBidXQg
dGhhdCBzZWVtcyBvdXQgb2Ygc2NvcGUgZm9yIHRoZSBydW4td2Via2l0LXRlc3RzIHRvb2wuCiAg
ICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAnLS1tZXJnZS1kZXB0aCcsCkBAIC0xMTQsNiAr
MTE0LDE0IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICB0b3RhbF9ieXRl
c19zdHJpbmcgPSByZS5zZWFyY2gocidedG90YWxcOlxzKC4rKVxzXCgnLCBwYXJzZV9tYWxsb2Nf
aGlzdG9yeV9vdXRwdXQsIHJlLk1VTFRJTElORSkuZ3JvdXAoMSkKICAgICAgICAgcmV0dXJuICh0
b3RhbF9ieXRlc19zdHJpbmcsIHVuaXF1ZV9sZWFrX2NvdW50KQogCisgICAgZGVmIGNvdW50X3Rv
dGFsX2xlYWtzKHNlbGYsIGxlYWtfZmlsZV9wYXRocyk6CisgICAgICAgIHRvdGFsX2xlYWtzID0g
MAorICAgICAgICBmb3IgbGVha19maWxlX3BhdGggaW4gbGVha19maWxlX3BhdGhzOgorICAgICAg
ICAgICAgbGVha3Nfb3V0cHV0ID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShsZWFr
X2ZpbGVfcGF0aCkKKyAgICAgICAgICAgIGNvdW50LCBfLCBfID0gc2VsZi5fcGFyc2VfbGVha3Nf
b3V0cHV0KGxlYWtzX291dHB1dCkKKyAgICAgICAgICAgIHRvdGFsX2xlYWtzICs9IGNvdW50Cisg
ICAgICAgIHJldHVybiB0b3RhbF9sZWFrcworCiAgICAgZGVmIGNoZWNrX2Zvcl9sZWFrcyhzZWxm
LCBwcm9jZXNzX25hbWUsIHByb2Nlc3NfcGlkKToKICAgICAgICAgX2xvZy5kZWJ1ZygiQ2hlY2tp
bmcgZm9yIGxlYWtzIGluICVzIiAlIHByb2Nlc3NfbmFtZSkKICAgICAgICAgdHJ5OgpAQCAtMTI1
LDggKzEzMyw4IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICAgICAgX2xv
Zy53YXJuKCJGYWlsZWQgdG8gcnVuIGxlYWtzIHRvb2w6ICVzIiAlIGUubWVzc2FnZV93aXRoX291
dHB1dCgpKQogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxk
IGNvbnNpZGVyIG1vdmluZyBsZWFrcyBwYXJzaW5nIHRvIHRoZSBlbmQgd2hlbiBzdW1tYXJpemlu
ZyBpcyBkb25lLgotICAgICAgICBjb3VudCwgZXhjbHVkZWQsIGJ5dGVzID0gc2VsZi5fcGFyc2Vf
bGVha3Nfb3V0cHV0KGxlYWtzX291dHB1dCwgcHJvY2Vzc19waWQpCisgICAgICAgICMgRklYTUU6
IFdlIGVuZCB1cCBwYXJzaW5nIHRoaXMgb3V0cHV0IDMgdGltZXMuICBPbmNlIGhlcmUgYW5kIHR3
aWNlIGZvciBzdW1tYXJpemluZy4KKyAgICAgICAgY291bnQsIGV4Y2x1ZGVkLCBieXRlcyA9IHNl
bGYuX3BhcnNlX2xlYWtzX291dHB1dChsZWFrc19vdXRwdXQpCiAgICAgICAgIGFkanVzdGVkX2Nv
dW50ID0gY291bnQgLSBleGNsdWRlZAogICAgICAgICBpZiBub3QgYWRqdXN0ZWRfY291bnQ6CiAg
ICAgICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKaW5kZXgg
ZTVjNDYwZTU1NzkzOWMxMzE2NjQ4YWUxZWZmMDBjOGNmNTczOTdlMi4uZDE3NjFmYTAwYjRhY2Y0
NDkwNDI3MzJiMDcwOTFlMjJmNjk1Y2QwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRl
c3QucHkKQEAgLTc5LDcgKzc5LDcgQEAgTGVhazogMHgyNTEwMmZlMCAgc2l6ZT0xNzYgIHpvbmU6
IERlZmF1bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0cmluZyAnTlNFeGNlcHQKICIiIgogCiAg
ICAgZGVmIHRlc3RfcGFyc2VfbGVha3Nfb3V0cHV0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWxmLl9tYWtlX2RldGVjdG9yKCkuX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLmV4
YW1wbGVfbGVha3Nfb3V0cHV0LCA1MTIyKSwgKDMzNzMwMSwgMCwgNjUyNTIxNikpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX21ha2VfZGV0ZWN0b3IoKS5fcGFyc2VfbGVha3Nfb3V0
cHV0KHNlbGYuZXhhbXBsZV9sZWFrc19vdXRwdXQpLCAoMzM3MzAxLCAwLCA2NTI1MjE2KSkKIAog
ICAgIGRlZiB0ZXN0X2xlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgZGV0
ZWN0b3IgPSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKQEAgLTkxLDcgKzkxLDcgQEAgTGVhazogMHgy
NTEwMmZlMCAgc2l6ZT0xNzYgIHpvbmU6IERlZmF1bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0
cmluZyAnTlNFeGNlcHQKICAgICAgICAgfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVu
KGRldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSgnL21vY2stcmVzdWx0cycpKSwgMykK
IAotICAgIGRlZiB0ZXN0X3BhcnNlX2xlYWtfZmlsZXMoc2VsZik6CisgICAgZGVmIHRlc3RfY291
bnRfdW5pcXVlX2xlYWtzKHNlbGYpOgogICAgICAgICBkZXRlY3RvciA9IHNlbGYuX21ha2VfZGV0
ZWN0b3IoKQogCiAgICAgICAgIGRlZiBtb2NrX3J1bl9zY3JpcHQobmFtZSwgYXJncywgaW5jbHVk
ZV9jb25maWd1cmF0aW9uX2FyZ3VtZW50cz1GYWxzZSk6CkBAIC0xMDMsNSArMTAzLDE1IEBAIHRv
dGFsOiA1LDg4OCBieXRlcyAoMCBieXRlcyBleGNsdWRlZCkuIiIiCiAKICAgICAgICAgbGVha19m
aWxlcyA9IFsnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM0LWxlYWtzLnR4dCcsICcv
bW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzUtbGVha3MudHh0J10KICAgICAgICAgZXhw
ZWN0ZWRfc3Rkb3V0ID0gIk1PQ0sgX3J1bl9zY3JpcHQ6IHBhcnNlLW1hbGxvYy1oaXN0b3J5IFsn
LS1tZXJnZS1kZXB0aCcsIDUsICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzQtbGVh
a3MudHh0JywgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNS1sZWFrcy50eHQnXVxu
IgotICAgICAgICByZXN1bHRzX3R1cGxlID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRz
KHNlbGYsIGRldGVjdG9yLnBhcnNlX2xlYWtfZmlsZXMsIFtsZWFrX2ZpbGVzXSwgZXhwZWN0ZWRf
c3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKKyAgICAgICAgcmVzdWx0c190dXBsZSA9IE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBkZXRlY3Rvci5jb3VudF91bmlxdWVfbGVha3Ms
IFtsZWFrX2ZpbGVzXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0c190dXBsZSwgKCI1LDg4OCBieXRlcyIsIDEpKQorCisg
ICAgZGVmIHRlc3RfY291bnRfdG90YWxfbGVha3Moc2VsZik6CisgICAgICAgIGRldGVjdG9yID0g
c2VsZi5fbWFrZV9kZXRlY3RvcigpCisgICAgICAgIGRldGVjdG9yLl9maWxlc3lzdGVtID0gTW9j
a0ZpbGVTeXN0ZW0oeworICAgICAgICAgICAgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUt
MTIzNC1sZWFrcy50eHQnOiAnUHJvY2VzcyAxMjM0OiAxMiBsZWFrcyBmb3IgNDAgdG90YWwgbGVh
a2VkIGJ5dGVzLlxuJywKKyAgICAgICAgICAgICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVl
LTIzNDIzLWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzU6IDEyMzQxIGxlYWtzIGZvciAyNzkzNCB0
b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAorICAgICAgICAgICAgJy9tb2NrLXJlc3VsdHMvRHVtcFJl
bmRlclRyZWUtODIzLWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzU2OiAyMzQxMiBsZWFrcyBmb3Ig
MTggdG90YWwgbGVha2VkIGJ5dGVzLlxuJywKKyAgICAgICAgfSkKKyAgICAgICAgbGVha19maWxl
X3BhdGhzID0gWycvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzQtbGVha3MudHh0Jywg
Jy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMjM0MjMtbGVha3MudHh0JywgJy9tb2NrLXJl
c3VsdHMvRHVtcFJlbmRlclRyZWUtODIzLWxlYWtzLnR4dCddCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGRldGVjdG9yLmNvdW50X3RvdGFsX2xlYWtzKGxlYWtfZmlsZV9wYXRocyksIDM1NzY1
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9t
YWMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpp
bmRleCBkMTUzNTM5NzBiYTAzZWQ3NjI1OTVjYzE3OTZiNmZhNWQ4YmNhNjU4Li45YmY2M2U2ZGUx
MmI3NmQ4NGQ0YTY3YjUxNWQyOGI0OGE0ZDZkYmU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtMTM5LDEyICsxMzksOSBAQCBjbGFz
cyBNYWNQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgIGxlYWtzX2ZpbGVzID0gc2VsZi5fbGVha19k
ZXRlY3Rvci5sZWFrc19maWxlc19pbl9kaXJlY3Rvcnkoc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgp
KQogICAgICAgICBpZiBub3QgbGVha3NfZmlsZXM6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgdG90YWxfYnl0ZXNfc3RyaW5nLCB1bmlxdWVfbGVha3MgPSBzZWxmLl9sZWFrX2RldGVjdG9y
LnBhcnNlX2xlYWtfZmlsZXMobGVha3NfZmlsZXMpCi0gICAgICAgICMgb2xkLXJ1bi13ZWJraXQt
dGVzdHMgdXNlZCB0byBwcmludCB0aGUgInRvdGFsIGxlYWtzIiBjb3VudCwgYnV0IHRoYXQgd291
bGQKLSAgICAgICAgIyByZXF1aXJlIHJlLXBhcnNpbmcgZWFjaCBvZiB0aGUgbGVha3MgZmlsZXMg
KHdoaWNoIHdlIGNvdWxkIGRvIGF0IHNvbWUgbGF0ZXIgcG9pbnQgaWYgdGhhdCB3b3VsZCBiZSB1
c2VmdWwuKQotICAgICAgICAjIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL21hc3Rlci5jZmcgZ3JlcHMgZm9yICJsZWFrcyBmb3VuZCIuCi0gICAgICAgICMg
bWFzdGVyLmNmZyB3aWxsIG5lZWQgYW4gdXBkYXRlIGlmIHRoZXNlIHN0cmluZ3MgY2hhbmdlLgot
ICAgICAgICBfbG9nLmluZm8oImxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICVzISIgJSB0b3Rh
bF9ieXRlc19zdHJpbmcpCisgICAgICAgIHRvdGFsX2J5dGVzX3N0cmluZywgdW5pcXVlX2xlYWtz
ID0gc2VsZi5fbGVha19kZXRlY3Rvci5jb3VudF91bmlxdWVfbGVha3MobGVha3NfZmlsZXMpCisg
ICAgICAgIHRvdGFsX2xlYWtzID0gc2VsZi5fbGVha19kZXRlY3Rvci5jb3VudF90b3RhbF9sZWFr
cyhsZWFrc19maWxlcykKKyAgICAgICAgX2xvZy5pbmZvKCIlcyB0b3RhbCBsZWFrcyBmb3VuZCBm
b3IgYSB0b3RhbCBvZiAlcyEiICUgKHRvdGFsX2xlYWtzLCB0b3RhbF9ieXRlc19zdHJpbmcpKQog
ICAgICAgICBfbG9nLmluZm8oIiVzIHVuaXF1ZSBsZWFrcyBmb3VuZCEiICUgdW5pcXVlX2xlYWtz
KQogCiAgICAgZGVmIF9jaGVja19wb3J0X2J1aWxkKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112751</attachid>
            <date>2011-10-27 14:22:35 -0700</date>
            <delta_ts>2011-10-27 14:35:58 -0700</delta_ts>
            <desc>include code to turn on NRWT for leaks bot</desc>
            <filename>bug-66227-20111027142234.patch</filename>
            <type>text/plain</type>
            <size>9896</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYzJhYzE4Mjk4YThlNGUxNjNjMzdjMWQwODY3ZmZmYTNl
MTNlMDdiLi42YTNkNDg3NThiYzdhMjJkMTk5ZmY0M2Q1OGI2YzljYWNkN2NiMDdlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04gKE5SV1QpOiBidWlsZC53ZWJraXQub3JnIGRvZXNuJ3Qgc2hvdyB0aGUgdG90
YWwgbnVtYmVyIG9mIGxlYWtzIGZvdW5kIGR1cmluZyBhIHRlc3QgcnVuIG9uIHRoZSBMZWFrcyBi
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBiZWxp
ZXZlIHRoaXMgc2hvdWxkIGZpeCB0aGUgYnVnLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHk6CisgICAgICAgIChMZWFrRGV0ZWN0
b3IuX3BhcnNlX2xlYWtzX291dHB1dCk6IHJlbW92ZWQgdGhlICh1bm5lZWRlZCkgcHJvY2Vzc19w
aWQgYXJndW1lbnQsIGFuZCBtYWRlIHRoZSByZWdleHAgdXNlIG5hbWVkIGdyb3VwcyAoZXZlbiB0
aG91Z2ggd2UgZG9uJ3QgZXZlciBncmFiIHRoZW0gYnkgbmFtZSkKKyAgICAgICAgKExlYWtEZXRl
Y3Rvci5jb3VudF91bmlxdWVfbGVha3MpOiByZW5hbWVkIGZyb20gcGFyc2VfbGVha19maWxlcwor
ICAgICAgICAoTGVha0RldGVjdG9yLmNvdW50X3RvdGFsX2xlYWtzKTogbmV3IGZpbGUgKHRoZSBn
dXRzIG9mIHRoaXMgY2hhbmdlKSB3aGljaCBpcyB1c2VkIHRvIHJlLXBhcnNlIHRoZSBsZWFrcyBv
dXRwdXQgZHVyaW5nIHRoZSBzdW1tYXJpemUgbGVha3MgcGhhc2UuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHk6Cisg
ICAgICAgIENoYW5nZXMgdG8gcmVmbGVjdCB0aGUgcmVuYW1lIG9mIGNvdW50X3VuaXF1ZV9sZWFr
cyBhbmQgYSBuZXcgdGVzdCBmb3IgY291bnRfdG90YWxfbGVha3MuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHk6CisgICAgICAgIFVzZSBjb3VudF90
b3RhbF9sZWFrcyB0byBzcGl0IG91dCB0aGUgdG90YWwgbGVhayBjb3VudCBsaWtlIE9SV1QgZGlk
LCBhbmQgcmVtb3ZlIHRoZSBGSVhNRSBvbiB0aGUgc3ViamVjdC4KKwogMjAxMS0xMC0yNyAgU3Rl
cGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gTmVlZCBzZXRQcmludGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCmluZGV4IGY0NzZjY2RlY2M5
NzJhYTk2MDBjYWVmOWE0MDE2ZTk0Y2ZhOGI4MzcuLjIwYmEyM2I5NjI3ZGQ4YzdiY2FkOWI1OWQ1
NDYyYjEwZThlOTFmZDMgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0
cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKQEAgLTU1LDE0ICs1NSw2IEBA
IHN1YiBydW5uaW5nT25CdWlsZEJvdCgpCiAgICAgcmV0dXJuICRpc0J1aWxkQm90VXNlcnskRU5W
eyJVU0VSIn19OwogfQogCi1zdWIgdXNpbmdMZWFrcygpCi17Ci0gICAgIyBMZWFrc1ZpZXdlciBn
ZXRzIGNvbmZ1c2VkIGJ5IE5SV1QncyAtLWxlYWtzIG91dHB1dCwgc2VlIGJ1Z3M6Ci0gICAgIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjcKLSAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyOAotICAgIHJldHVybiBncmVw
KC8tLWxlYWtzLywgQEFSR1YpOwotfQotCiBzdWIgdXNlTmV3UnVuV2ViS2l0VGVzdHMoKQogewog
ICAgICMgQ2hhbmdlIHRoaXMgY2hlY2sgdG8gY29udHJvbCB3aGljaCBwbGF0Zm9ybXMgdXNlIG5l
dy1ydW4td2Via2l0LXRlc3RzIGJ5IGRlZmF1bHQuCkBAIC03NSwxMiArNjcsMTIgQEAgc3ViIHVz
ZU5ld1J1bldlYktpdFRlc3RzKCkKIAogICAgICMgTlJXVCBXaW5kb3dzIHN1cHBvcnQgc3RpbGwg
bmVlZHMgd29yazogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzU2
CiAKLSAgICAjIE5SV1QgZG9lc24ndCBzdXBwb3J0IHF0LW1hYywgcXQtYXJtIGFuZCBxdC00Ljgg
cGxhdGZvcm1zIG5vdzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0
MDcxIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwODYKKyAg
ICAjIE5SV1QgZG9lc24ndCBzdXBwb3J0IHF0LWFybSBhbmQgcXQtNC44IHBsYXRmb3JtcyBub3c6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3MSBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDg2CiAgICAgaWYgKGlzUXQoKSkg
ewogICAgICAgICByZXR1cm4gKCFpc0FSTSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gKChpc0xl
b3BhcmQoKSBvciBpc1Nub3dMZW9wYXJkKCkgb3IgaXNMaW9uKCkgb3IgaXNHdGsoKSkgYW5kICF1
c2luZ0xlYWtzKCkpOworICAgIHJldHVybiAoaXNMZW9wYXJkKCkgb3IgaXNTbm93TGVvcGFyZCgp
IG9yIGlzTGlvbigpIG9yIGlzR3RrKCkpOwogfQogCiBteSAkaGFybmVzc05hbWUgPSAib2xkLXJ1
bi13ZWJraXQtdGVzdHMiOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvci5weQppbmRleCA4NmFkZjM0YTg4OGUwYmQyMmQw
NGE3MTQ3MmFmY2I5NGQ3YmI5OGU4Li4wOTVkNzY1MGIxMjUxZDJlYTA5ZjcyMGM0M2ViOGQwZDk3
Nzg3OTE2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2xlYWtkZXRlY3Rvci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2xlYWtkZXRlY3Rvci5weQpAQCAtODQsOSArODQsOSBAQCBjbGFzcyBMZWFrRGV0
ZWN0b3Iob2JqZWN0KToKICAgICAgICAgbGVha3NfYXJncy5hcHBlbmQocGlkKQogICAgICAgICBy
ZXR1cm4gbGVha3NfYXJncwogCi0gICAgZGVmIF9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZiwgbGVh
a3Nfb3V0cHV0LCBwcm9jZXNzX3BpZCk6Ci0gICAgICAgIGNvdW50LCBieXRlcyA9IHJlLnNlYXJj
aChyJ1Byb2Nlc3MgJXM6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwnICUgcHJvY2Vzc19w
aWQsIGxlYWtzX291dHB1dCkuZ3JvdXBzKCkKLSAgICAgICAgZXhjbHVkZWRfbWF0Y2ggPSByZS5z
ZWFyY2gocicoXGQrKSBsZWFrcz8gZXhjbHVkZWQnLCBsZWFrc19vdXRwdXQpCisgICAgZGVmIF9w
YXJzZV9sZWFrc19vdXRwdXQoc2VsZiwgbGVha3Nfb3V0cHV0KToKKyAgICAgICAgXywgY291bnQs
IGJ5dGVzID0gcmUuc2VhcmNoKHInUHJvY2VzcyAoP1A8cGlkPlxkKyk6ICg/UDxjb3VudD5cZCsp
IGxlYWtzPyBmb3IgKD9QPGJ5dGVzPlxkKykgdG90YWwnLCBsZWFrc19vdXRwdXQpLmdyb3Vwcygp
CisgICAgICAgIGV4Y2x1ZGVkX21hdGNoID0gcmUuc2VhcmNoKHInKD9QPGV4Y2x1ZGVkPlxkKykg
bGVha3M/IGV4Y2x1ZGVkJywgbGVha3Nfb3V0cHV0KQogICAgICAgICBleGNsdWRlZCA9IGV4Y2x1
ZGVkX21hdGNoLmdyb3VwKDApIGlmIGV4Y2x1ZGVkX21hdGNoIGVsc2UgMAogICAgICAgICByZXR1
cm4gaW50KGNvdW50KSwgaW50KGV4Y2x1ZGVkKSwgaW50KGJ5dGVzKQogCkBAIC05Nyw3ICs5Nyw3
IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICAjIFdlIGluY2x1ZGUgdGhl
IG51bWJlciBvZiBmaWxlcyB0aGlzIHdvcmtlciBoYXMgYWxyZWFkeSB3cml0dGVuIGluIHRoZSBu
YW1lIHRvIHByZXZlbnQgb3ZlcndyaXR0aW5nIHByZXZpb3VzIGxlYWsgcmVzdWx0cy4uCiAgICAg
ICAgIHJldHVybiAiJXMtJXMtbGVha3MudHh0IiAlIChwcm9jZXNzX25hbWUsIHByb2Nlc3NfcGlk
KQogCi0gICAgZGVmIHBhcnNlX2xlYWtfZmlsZXMoc2VsZiwgbGVha19maWxlcyk6CisgICAgZGVm
IGNvdW50X3VuaXF1ZV9sZWFrcyhzZWxmLCBsZWFrX2ZpbGVzKToKICAgICAgICAgbWVyZ2VfZGVw
dGggPSA1ICAjIE9SV1QgaGFkIGEgLS1tZXJnZS1sZWFrLWRlcHRoIGFyZ3VtZW50LCBidXQgdGhh
dCBzZWVtcyBvdXQgb2Ygc2NvcGUgZm9yIHRoZSBydW4td2Via2l0LXRlc3RzIHRvb2wuCiAgICAg
ICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAnLS1tZXJnZS1kZXB0aCcsCkBAIC0xMTQsNiArMTE0
LDE0IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICB0b3RhbF9ieXRlc19z
dHJpbmcgPSByZS5zZWFyY2gocidedG90YWxcOlxzKC4rKVxzXCgnLCBwYXJzZV9tYWxsb2NfaGlz
dG9yeV9vdXRwdXQsIHJlLk1VTFRJTElORSkuZ3JvdXAoMSkKICAgICAgICAgcmV0dXJuICh0b3Rh
bF9ieXRlc19zdHJpbmcsIHVuaXF1ZV9sZWFrX2NvdW50KQogCisgICAgZGVmIGNvdW50X3RvdGFs
X2xlYWtzKHNlbGYsIGxlYWtfZmlsZV9wYXRocyk6CisgICAgICAgIHRvdGFsX2xlYWtzID0gMAor
ICAgICAgICBmb3IgbGVha19maWxlX3BhdGggaW4gbGVha19maWxlX3BhdGhzOgorICAgICAgICAg
ICAgbGVha3Nfb3V0cHV0ID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShsZWFrX2Zp
bGVfcGF0aCkKKyAgICAgICAgICAgIGNvdW50LCBfLCBfID0gc2VsZi5fcGFyc2VfbGVha3Nfb3V0
cHV0KGxlYWtzX291dHB1dCkKKyAgICAgICAgICAgIHRvdGFsX2xlYWtzICs9IGNvdW50CisgICAg
ICAgIHJldHVybiB0b3RhbF9sZWFrcworCiAgICAgZGVmIGNoZWNrX2Zvcl9sZWFrcyhzZWxmLCBw
cm9jZXNzX25hbWUsIHByb2Nlc3NfcGlkKToKICAgICAgICAgX2xvZy5kZWJ1ZygiQ2hlY2tpbmcg
Zm9yIGxlYWtzIGluICVzIiAlIHByb2Nlc3NfbmFtZSkKICAgICAgICAgdHJ5OgpAQCAtMTI1LDgg
KzEzMyw4IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICAgICAgX2xvZy53
YXJuKCJGYWlsZWQgdG8gcnVuIGxlYWtzIHRvb2w6ICVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1
dCgpKQogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGNv
bnNpZGVyIG1vdmluZyBsZWFrcyBwYXJzaW5nIHRvIHRoZSBlbmQgd2hlbiBzdW1tYXJpemluZyBp
cyBkb25lLgotICAgICAgICBjb3VudCwgZXhjbHVkZWQsIGJ5dGVzID0gc2VsZi5fcGFyc2VfbGVh
a3Nfb3V0cHV0KGxlYWtzX291dHB1dCwgcHJvY2Vzc19waWQpCisgICAgICAgICMgRklYTUU6IFdl
IGVuZCB1cCBwYXJzaW5nIHRoaXMgb3V0cHV0IDMgdGltZXMuICBPbmNlIGhlcmUgYW5kIHR3aWNl
IGZvciBzdW1tYXJpemluZy4KKyAgICAgICAgY291bnQsIGV4Y2x1ZGVkLCBieXRlcyA9IHNlbGYu
X3BhcnNlX2xlYWtzX291dHB1dChsZWFrc19vdXRwdXQpCiAgICAgICAgIGFkanVzdGVkX2NvdW50
ID0gY291bnQgLSBleGNsdWRlZAogICAgICAgICBpZiBub3QgYWRqdXN0ZWRfY291bnQ6CiAgICAg
ICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKaW5kZXggZTVj
NDYwZTU1NzkzOWMxMzE2NjQ4YWUxZWZmMDBjOGNmNTczOTdlMi4uZDE3NjFmYTAwYjRhY2Y0NDkw
NDI3MzJiMDcwOTFlMjJmNjk1Y2QwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3Qu
cHkKQEAgLTc5LDcgKzc5LDcgQEAgTGVhazogMHgyNTEwMmZlMCAgc2l6ZT0xNzYgIHpvbmU6IERl
ZmF1bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0cmluZyAnTlNFeGNlcHQKICIiIgogCiAgICAg
ZGVmIHRlc3RfcGFyc2VfbGVha3Nfb3V0cHV0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLl9tYWtlX2RldGVjdG9yKCkuX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLmV4YW1w
bGVfbGVha3Nfb3V0cHV0LCA1MTIyKSwgKDMzNzMwMSwgMCwgNjUyNTIxNikpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHNlbGYuX21ha2VfZGV0ZWN0b3IoKS5fcGFyc2VfbGVha3Nfb3V0cHV0
KHNlbGYuZXhhbXBsZV9sZWFrc19vdXRwdXQpLCAoMzM3MzAxLCAwLCA2NTI1MjE2KSkKIAogICAg
IGRlZiB0ZXN0X2xlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgZGV0ZWN0
b3IgPSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKQEAgLTkxLDcgKzkxLDcgQEAgTGVhazogMHgyNTEw
MmZlMCAgc2l6ZT0xNzYgIHpvbmU6IERlZmF1bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0cmlu
ZyAnTlNFeGNlcHQKICAgICAgICAgfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGRl
dGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSgnL21vY2stcmVzdWx0cycpKSwgMykKIAot
ICAgIGRlZiB0ZXN0X3BhcnNlX2xlYWtfZmlsZXMoc2VsZik6CisgICAgZGVmIHRlc3RfY291bnRf
dW5pcXVlX2xlYWtzKHNlbGYpOgogICAgICAgICBkZXRlY3RvciA9IHNlbGYuX21ha2VfZGV0ZWN0
b3IoKQogCiAgICAgICAgIGRlZiBtb2NrX3J1bl9zY3JpcHQobmFtZSwgYXJncywgaW5jbHVkZV9j
b25maWd1cmF0aW9uX2FyZ3VtZW50cz1GYWxzZSk6CkBAIC0xMDMsNSArMTAzLDE1IEBAIHRvdGFs
OiA1LDg4OCBieXRlcyAoMCBieXRlcyBleGNsdWRlZCkuIiIiCiAKICAgICAgICAgbGVha19maWxl
cyA9IFsnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM0LWxlYWtzLnR4dCcsICcvbW9j
ay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzUtbGVha3MudHh0J10KICAgICAgICAgZXhwZWN0
ZWRfc3Rkb3V0ID0gIk1PQ0sgX3J1bl9zY3JpcHQ6IHBhcnNlLW1hbGxvYy1oaXN0b3J5IFsnLS1t
ZXJnZS1kZXB0aCcsIDUsICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzQtbGVha3Mu
dHh0JywgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNS1sZWFrcy50eHQnXVxuIgot
ICAgICAgICByZXN1bHRzX3R1cGxlID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNl
bGYsIGRldGVjdG9yLnBhcnNlX2xlYWtfZmlsZXMsIFtsZWFrX2ZpbGVzXSwgZXhwZWN0ZWRfc3Rk
b3V0PWV4cGVjdGVkX3N0ZG91dCkKKyAgICAgICAgcmVzdWx0c190dXBsZSA9IE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBkZXRlY3Rvci5jb3VudF91bmlxdWVfbGVha3MsIFts
ZWFrX2ZpbGVzXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMocmVzdWx0c190dXBsZSwgKCI1LDg4OCBieXRlcyIsIDEpKQorCisgICAg
ZGVmIHRlc3RfY291bnRfdG90YWxfbGVha3Moc2VsZik6CisgICAgICAgIGRldGVjdG9yID0gc2Vs
Zi5fbWFrZV9kZXRlY3RvcigpCisgICAgICAgIGRldGVjdG9yLl9maWxlc3lzdGVtID0gTW9ja0Zp
bGVTeXN0ZW0oeworICAgICAgICAgICAgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIz
NC1sZWFrcy50eHQnOiAnUHJvY2VzcyAxMjM0OiAxMiBsZWFrcyBmb3IgNDAgdG90YWwgbGVha2Vk
IGJ5dGVzLlxuJywKKyAgICAgICAgICAgICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTIz
NDIzLWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzU6IDEyMzQxIGxlYWtzIGZvciAyNzkzNCB0b3Rh
bCBsZWFrZWQgYnl0ZXMuXG4nLAorICAgICAgICAgICAgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRl
clRyZWUtODIzLWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzU2OiAyMzQxMiBsZWFrcyBmb3IgMTgg
dG90YWwgbGVha2VkIGJ5dGVzLlxuJywKKyAgICAgICAgfSkKKyAgICAgICAgbGVha19maWxlX3Bh
dGhzID0gWycvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzQtbGVha3MudHh0JywgJy9t
b2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMjM0MjMtbGVha3MudHh0JywgJy9tb2NrLXJlc3Vs
dHMvRHVtcFJlbmRlclRyZWUtODIzLWxlYWtzLnR4dCddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGRldGVjdG9yLmNvdW50X3RvdGFsX2xlYWtzKGxlYWtfZmlsZV9wYXRocyksIDM1NzY1KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQppbmRl
eCBkMTUzNTM5NzBiYTAzZWQ3NjI1OTVjYzE3OTZiNmZhNWQ4YmNhNjU4Li45YmY2M2U2ZGUxMmI3
NmQ4NGQ0YTY3YjUxNWQyOGI0OGE0ZDZkYmU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtMTM5LDEyICsxMzksOSBAQCBjbGFzcyBN
YWNQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgIGxlYWtzX2ZpbGVzID0gc2VsZi5fbGVha19kZXRl
Y3Rvci5sZWFrc19maWxlc19pbl9kaXJlY3Rvcnkoc2VsZi5yZXN1bHRzX2RpcmVjdG9yeSgpKQog
ICAgICAgICBpZiBub3QgbGVha3NfZmlsZXM6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
dG90YWxfYnl0ZXNfc3RyaW5nLCB1bmlxdWVfbGVha3MgPSBzZWxmLl9sZWFrX2RldGVjdG9yLnBh
cnNlX2xlYWtfZmlsZXMobGVha3NfZmlsZXMpCi0gICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVz
dHMgdXNlZCB0byBwcmludCB0aGUgInRvdGFsIGxlYWtzIiBjb3VudCwgYnV0IHRoYXQgd291bGQK
LSAgICAgICAgIyByZXF1aXJlIHJlLXBhcnNpbmcgZWFjaCBvZiB0aGUgbGVha3MgZmlsZXMgKHdo
aWNoIHdlIGNvdWxkIGRvIGF0IHNvbWUgbGF0ZXIgcG9pbnQgaWYgdGhhdCB3b3VsZCBiZSB1c2Vm
dWwuKQotICAgICAgICAjIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL21hc3Rlci5jZmcgZ3JlcHMgZm9yICJsZWFrcyBmb3VuZCIuCi0gICAgICAgICMgbWFz
dGVyLmNmZyB3aWxsIG5lZWQgYW4gdXBkYXRlIGlmIHRoZXNlIHN0cmluZ3MgY2hhbmdlLgotICAg
ICAgICBfbG9nLmluZm8oImxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICVzISIgJSB0b3RhbF9i
eXRlc19zdHJpbmcpCisgICAgICAgIHRvdGFsX2J5dGVzX3N0cmluZywgdW5pcXVlX2xlYWtzID0g
c2VsZi5fbGVha19kZXRlY3Rvci5jb3VudF91bmlxdWVfbGVha3MobGVha3NfZmlsZXMpCisgICAg
ICAgIHRvdGFsX2xlYWtzID0gc2VsZi5fbGVha19kZXRlY3Rvci5jb3VudF90b3RhbF9sZWFrcyhs
ZWFrc19maWxlcykKKyAgICAgICAgX2xvZy5pbmZvKCIlcyB0b3RhbCBsZWFrcyBmb3VuZCBmb3Ig
YSB0b3RhbCBvZiAlcyEiICUgKHRvdGFsX2xlYWtzLCB0b3RhbF9ieXRlc19zdHJpbmcpKQogICAg
ICAgICBfbG9nLmluZm8oIiVzIHVuaXF1ZSBsZWFrcyBmb3VuZCEiICUgdW5pcXVlX2xlYWtzKQog
CiAgICAgZGVmIF9jaGVja19wb3J0X2J1aWxkKHNlbGYpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112754</attachid>
            <date>2011-10-27 14:36:04 -0700</date>
            <delta_ts>2011-10-27 14:36:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-66227-20111027143601.patch</filename>
            <type>text/plain</type>
            <size>10055</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYzJhYzE4Mjk4YThlNGUxNjNjMzdjMWQwODY3ZmZmYTNl
MTNlMDdiLi5iODgwYzZhMzJlZWE3ZTkxZWQ2NDRiODNmMjQ1NDg4NmVmZDljYWFjIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04gKE5SV1QpOiBidWlsZC53ZWJraXQub3JnIGRvZXNuJ3Qgc2hvdyB0aGUgdG90
YWwgbnVtYmVyIG9mIGxlYWtzIGZvdW5kIGR1cmluZyBhIHRlc3QgcnVuIG9uIHRoZSBMZWFrcyBi
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KKworICAgICAgICBJIGJlbGlldmUg
dGhpcyBzaG91bGQgZml4IHRoZSBidWcuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHM6IG1ha2UgTlJXVCBkZWZhdWx0IGZvciAtLWxlYWtzCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3IucHk6CisgICAgICAgIChMZWFr
RGV0ZWN0b3IuX3BhcnNlX2xlYWtzX291dHB1dCk6IHJlbW92ZWQgdGhlICh1bm5lZWRlZCkgcHJv
Y2Vzc19waWQgYXJndW1lbnQsIGFuZCBtYWRlIHRoZSByZWdleHAgdXNlIG5hbWVkIGdyb3VwcyAo
ZXZlbiB0aG91Z2ggd2UgZG9uJ3QgZXZlciBncmFiIHRoZW0gYnkgbmFtZSkKKyAgICAgICAgKExl
YWtEZXRlY3Rvci5jb3VudF90b3RhbF9ieXRlc19hbmRfdW5pcXVlX2xlYWtzKTogcmVuYW1lZCBm
cm9tIHBhcnNlX2xlYWtfZmlsZXMKKyAgICAgICAgKExlYWtEZXRlY3Rvci5jb3VudF90b3RhbF9s
ZWFrcyk6IG5ldyBmaWxlICh0aGUgZ3V0cyBvZiB0aGlzIGNoYW5nZSkgd2hpY2ggaXMgdXNlZCB0
byByZS1wYXJzZSB0aGUgbGVha3Mgb3V0cHV0IGR1cmluZyB0aGUgc3VtbWFyaXplIGxlYWtzIHBo
YXNlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2Rl
dGVjdG9yX3VuaXR0ZXN0LnB5OgorICAgICAgICBDaGFuZ2VzIHRvIHJlZmxlY3QgdGhlIHJlbmFt
ZSBvZiBjb3VudF90b3RhbF9ieXRlc19hbmRfdW5pcXVlX2xlYWtzIGFuZCBhIG5ldyB0ZXN0IGZv
ciBjb3VudF90b3RhbF9sZWFrcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAgVXNlIGNvdW50X3RvdGFsX2xlYWtzIHRvIHNwaXQg
b3V0IHRoZSB0b3RhbCBsZWFrIGNvdW50IGxpa2UgT1JXVCBkaWQsIGFuZCByZW1vdmUgdGhlIEZJ
WE1FIG9uIHRoZSBzdWJqZWN0LgorCiAyMDExLTEwLTI3ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hl
bm5leUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBOZWVkIHNldFByaW50aW5n
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgYi9Ub29scy9TY3Jp
cHRzL3J1bi13ZWJraXQtdGVzdHMKaW5kZXggZjQ3NmNjZGVjYzk3MmFhOTYwMGNhZWY5YTQwMTZl
OTRjZmE4YjgzNy4uMjBiYTIzYjk2MjdkZDhjN2JjYWQ5YjU5ZDU0NjJiMTBlOGU5MWZkMyAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCisrKyBiL1Rvb2xzL1Njcmlw
dHMvcnVuLXdlYmtpdC10ZXN0cwpAQCAtNTUsMTQgKzU1LDYgQEAgc3ViIHJ1bm5pbmdPbkJ1aWxk
Qm90KCkKICAgICByZXR1cm4gJGlzQnVpbGRCb3RVc2VyeyRFTlZ7IlVTRVIifX07CiB9CiAKLXN1
YiB1c2luZ0xlYWtzKCkKLXsKLSAgICAjIExlYWtzVmlld2VyIGdldHMgY29uZnVzZWQgYnkgTlJX
VCdzIC0tbGVha3Mgb3V0cHV0LCBzZWUgYnVnczoKLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyNwotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY2MjI4Ci0gICAgcmV0dXJuIGdyZXAoLy0tbGVha3MvLCBAQVJHVik7
Ci19Ci0KIHN1YiB1c2VOZXdSdW5XZWJLaXRUZXN0cygpCiB7CiAgICAgIyBDaGFuZ2UgdGhpcyBj
aGVjayB0byBjb250cm9sIHdoaWNoIHBsYXRmb3JtcyB1c2UgbmV3LXJ1bi13ZWJraXQtdGVzdHMg
YnkgZGVmYXVsdC4KQEAgLTc1LDEyICs2NywxMiBAQCBzdWIgdXNlTmV3UnVuV2ViS2l0VGVzdHMo
KQogCiAgICAgIyBOUldUIFdpbmRvd3Mgc3VwcG9ydCBzdGlsbCBuZWVkcyB3b3JrOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3NTYKIAotICAgICMgTlJXVCBkb2Vz
bid0IHN1cHBvcnQgcXQtbWFjLCBxdC1hcm0gYW5kIHF0LTQuOCBwbGF0Zm9ybXMgbm93OiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzEgYW5kIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA4NgorICAgICMgTlJXVCBkb2Vzbid0IHN1
cHBvcnQgcXQtYXJtIGFuZCBxdC00LjggcGxhdGZvcm1zIG5vdzogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDcxIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjQwODYKICAgICBpZiAoaXNRdCgpKSB7CiAgICAgICAgIHJldHVybiAo
IWlzQVJNKCkpOwogICAgIH0KIAotICAgIHJldHVybiAoKGlzTGVvcGFyZCgpIG9yIGlzU25vd0xl
b3BhcmQoKSBvciBpc0xpb24oKSBvciBpc0d0aygpKSBhbmQgIXVzaW5nTGVha3MoKSk7CisgICAg
cmV0dXJuIChpc0xlb3BhcmQoKSBvciBpc1Nub3dMZW9wYXJkKCkgb3IgaXNMaW9uKCkgb3IgaXNH
dGsoKSk7CiB9CiAKIG15ICRoYXJuZXNzTmFtZSA9ICJvbGQtcnVuLXdlYmtpdC10ZXN0cyI7CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2xlYWtk
ZXRlY3Rvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVh
a2RldGVjdG9yLnB5CmluZGV4IDg2YWRmMzRhODg4ZTBiZDIyZDA0YTcxNDcyYWZjYjk0ZDdiYjk4
ZTguLjgxOWI3ZDZhYmJkNGMzNzlhZjFkYjhlZmEwNjg3ODk5YWY5Y2EzMmUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVj
dG9yLnB5CkBAIC04NCw5ICs4NCw5IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAg
ICAgICBsZWFrc19hcmdzLmFwcGVuZChwaWQpCiAgICAgICAgIHJldHVybiBsZWFrc19hcmdzCiAK
LSAgICBkZWYgX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLCBsZWFrc19vdXRwdXQsIHByb2Nlc3Nf
cGlkKToKLSAgICAgICAgY291bnQsIGJ5dGVzID0gcmUuc2VhcmNoKHInUHJvY2VzcyAlczogKFxk
KykgbGVha3M/IGZvciAoXGQrKSB0b3RhbCcgJSBwcm9jZXNzX3BpZCwgbGVha3Nfb3V0cHV0KS5n
cm91cHMoKQotICAgICAgICBleGNsdWRlZF9tYXRjaCA9IHJlLnNlYXJjaChyJyhcZCspIGxlYWtz
PyBleGNsdWRlZCcsIGxlYWtzX291dHB1dCkKKyAgICBkZWYgX3BhcnNlX2xlYWtzX291dHB1dChz
ZWxmLCBsZWFrc19vdXRwdXQpOgorICAgICAgICBfLCBjb3VudCwgYnl0ZXMgPSByZS5zZWFyY2go
cidQcm9jZXNzICg/UDxwaWQ+XGQrKTogKD9QPGNvdW50PlxkKykgbGVha3M/IGZvciAoP1A8Ynl0
ZXM+XGQrKSB0b3RhbCcsIGxlYWtzX291dHB1dCkuZ3JvdXBzKCkKKyAgICAgICAgZXhjbHVkZWRf
bWF0Y2ggPSByZS5zZWFyY2gocicoP1A8ZXhjbHVkZWQ+XGQrKSBsZWFrcz8gZXhjbHVkZWQnLCBs
ZWFrc19vdXRwdXQpCiAgICAgICAgIGV4Y2x1ZGVkID0gZXhjbHVkZWRfbWF0Y2guZ3JvdXAoMCkg
aWYgZXhjbHVkZWRfbWF0Y2ggZWxzZSAwCiAgICAgICAgIHJldHVybiBpbnQoY291bnQpLCBpbnQo
ZXhjbHVkZWQpLCBpbnQoYnl0ZXMpCiAKQEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgTGVha0RldGVj
dG9yKG9iamVjdCk6CiAgICAgICAgICMgV2UgaW5jbHVkZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHRo
aXMgd29ya2VyIGhhcyBhbHJlYWR5IHdyaXR0ZW4gaW4gdGhlIG5hbWUgdG8gcHJldmVudCBvdmVy
d3JpdHRpbmcgcHJldmlvdXMgbGVhayByZXN1bHRzLi4KICAgICAgICAgcmV0dXJuICIlcy0lcy1s
ZWFrcy50eHQiICUgKHByb2Nlc3NfbmFtZSwgcHJvY2Vzc19waWQpCiAKLSAgICBkZWYgcGFyc2Vf
bGVha19maWxlcyhzZWxmLCBsZWFrX2ZpbGVzKToKKyAgICBkZWYgY291bnRfdG90YWxfYnl0ZXNf
YW5kX3VuaXF1ZV9sZWFrcyhzZWxmLCBsZWFrX2ZpbGVzKToKICAgICAgICAgbWVyZ2VfZGVwdGgg
PSA1ICAjIE9SV1QgaGFkIGEgLS1tZXJnZS1sZWFrLWRlcHRoIGFyZ3VtZW50LCBidXQgdGhhdCBz
ZWVtcyBvdXQgb2Ygc2NvcGUgZm9yIHRoZSBydW4td2Via2l0LXRlc3RzIHRvb2wuCiAgICAgICAg
IGFyZ3MgPSBbCiAgICAgICAgICAgICAnLS1tZXJnZS1kZXB0aCcsCkBAIC0xMTQsNiArMTE0LDE0
IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICB0b3RhbF9ieXRlc19zdHJp
bmcgPSByZS5zZWFyY2gocidedG90YWxcOlxzKC4rKVxzXCgnLCBwYXJzZV9tYWxsb2NfaGlzdG9y
eV9vdXRwdXQsIHJlLk1VTFRJTElORSkuZ3JvdXAoMSkKICAgICAgICAgcmV0dXJuICh0b3RhbF9i
eXRlc19zdHJpbmcsIHVuaXF1ZV9sZWFrX2NvdW50KQogCisgICAgZGVmIGNvdW50X3RvdGFsX2xl
YWtzKHNlbGYsIGxlYWtfZmlsZV9wYXRocyk6CisgICAgICAgIHRvdGFsX2xlYWtzID0gMAorICAg
ICAgICBmb3IgbGVha19maWxlX3BhdGggaW4gbGVha19maWxlX3BhdGhzOgorICAgICAgICAgICAg
bGVha3Nfb3V0cHV0ID0gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShsZWFrX2ZpbGVf
cGF0aCkKKyAgICAgICAgICAgIGNvdW50LCBfLCBfID0gc2VsZi5fcGFyc2VfbGVha3Nfb3V0cHV0
KGxlYWtzX291dHB1dCkKKyAgICAgICAgICAgIHRvdGFsX2xlYWtzICs9IGNvdW50CisgICAgICAg
IHJldHVybiB0b3RhbF9sZWFrcworCiAgICAgZGVmIGNoZWNrX2Zvcl9sZWFrcyhzZWxmLCBwcm9j
ZXNzX25hbWUsIHByb2Nlc3NfcGlkKToKICAgICAgICAgX2xvZy5kZWJ1ZygiQ2hlY2tpbmcgZm9y
IGxlYWtzIGluICVzIiAlIHByb2Nlc3NfbmFtZSkKICAgICAgICAgdHJ5OgpAQCAtMTI1LDggKzEz
Myw4IEBAIGNsYXNzIExlYWtEZXRlY3RvcihvYmplY3QpOgogICAgICAgICAgICAgX2xvZy53YXJu
KCJGYWlsZWQgdG8gcnVuIGxlYWtzIHRvb2w6ICVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1dCgp
KQogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNp
ZGVyIG1vdmluZyBsZWFrcyBwYXJzaW5nIHRvIHRoZSBlbmQgd2hlbiBzdW1tYXJpemluZyBpcyBk
b25lLgotICAgICAgICBjb3VudCwgZXhjbHVkZWQsIGJ5dGVzID0gc2VsZi5fcGFyc2VfbGVha3Nf
b3V0cHV0KGxlYWtzX291dHB1dCwgcHJvY2Vzc19waWQpCisgICAgICAgICMgRklYTUU6IFdlIGVu
ZCB1cCBwYXJzaW5nIHRoaXMgb3V0cHV0IDMgdGltZXMuICBPbmNlIGhlcmUgYW5kIHR3aWNlIGZv
ciBzdW1tYXJpemluZy4KKyAgICAgICAgY291bnQsIGV4Y2x1ZGVkLCBieXRlcyA9IHNlbGYuX3Bh
cnNlX2xlYWtzX291dHB1dChsZWFrc19vdXRwdXQpCiAgICAgICAgIGFkanVzdGVkX2NvdW50ID0g
Y291bnQgLSBleGNsdWRlZAogICAgICAgICBpZiBub3QgYWRqdXN0ZWRfY291bnQ6CiAgICAgICAg
ICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKaW5kZXggZTVjNDYw
ZTU1NzkzOWMxMzE2NjQ4YWUxZWZmMDBjOGNmNTczOTdlMi4uYTY4NzRkMTBlMDI4MjJhMDQ5NWQx
Y2MwMjk0NjdhOTQ1NWNkNjNmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkK
QEAgLTc5LDcgKzc5LDcgQEAgTGVhazogMHgyNTEwMmZlMCAgc2l6ZT0xNzYgIHpvbmU6IERlZmF1
bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0cmluZyAnTlNFeGNlcHQKICIiIgogCiAgICAgZGVm
IHRlc3RfcGFyc2VfbGVha3Nfb3V0cHV0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLl9tYWtlX2RldGVjdG9yKCkuX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLmV4YW1wbGVf
bGVha3Nfb3V0cHV0LCA1MTIyKSwgKDMzNzMwMSwgMCwgNjUyNTIxNikpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNlbGYuX21ha2VfZGV0ZWN0b3IoKS5fcGFyc2VfbGVha3Nfb3V0cHV0KHNl
bGYuZXhhbXBsZV9sZWFrc19vdXRwdXQpLCAoMzM3MzAxLCAwLCA2NTI1MjE2KSkKIAogICAgIGRl
ZiB0ZXN0X2xlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgZGV0ZWN0b3Ig
PSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKQEAgLTkxLDcgKzkxLDcgQEAgTGVhazogMHgyNTEwMmZl
MCAgc2l6ZT0xNzYgIHpvbmU6IERlZmF1bHRNYWxsb2Nab25lXzB4MWQ5NDAwMCAgIHN0cmluZyAn
TlNFeGNlcHQKICAgICAgICAgfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGRldGVj
dG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSgnL21vY2stcmVzdWx0cycpKSwgMykKIAotICAg
IGRlZiB0ZXN0X3BhcnNlX2xlYWtfZmlsZXMoc2VsZik6CisgICAgZGVmIHRlc3RfY291bnRfdG90
YWxfYnl0ZXNfYW5kX3VuaXF1ZV9sZWFrcyhzZWxmKToKICAgICAgICAgZGV0ZWN0b3IgPSBzZWxm
Ll9tYWtlX2RldGVjdG9yKCkKIAogICAgICAgICBkZWYgbW9ja19ydW5fc2NyaXB0KG5hbWUsIGFy
Z3MsIGluY2x1ZGVfY29uZmlndXJhdGlvbl9hcmd1bWVudHM9RmFsc2UpOgpAQCAtMTAzLDUgKzEw
MywxNSBAQCB0b3RhbDogNSw4ODggYnl0ZXMgKDAgYnl0ZXMgZXhjbHVkZWQpLiIiIgogCiAgICAg
ICAgIGxlYWtfZmlsZXMgPSBbJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNC1sZWFr
cy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM1LWxlYWtzLnR4dCddCiAg
ICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJNT0NLIF9ydW5fc2NyaXB0OiBwYXJzZS1tYWxsb2Mt
aGlzdG9yeSBbJy0tbWVyZ2UtZGVwdGgnLCA1LCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJl
ZS0xMjM0LWxlYWtzLnR4dCcsICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzUtbGVh
a3MudHh0J11cbiIKLSAgICAgICAgcmVzdWx0c190dXBsZSA9IE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBkZXRlY3Rvci5wYXJzZV9sZWFrX2ZpbGVzLCBbbGVha19maWxlc10s
IGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCisgICAgICAgIHJlc3VsdHNfdHVwbGUg
PSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZGV0ZWN0b3IuY291bnRfdG90
YWxfYnl0ZXNfYW5kX3VuaXF1ZV9sZWFrcywgW2xlYWtfZmlsZXNdLCBleHBlY3RlZF9zdGRvdXQ9
ZXhwZWN0ZWRfc3Rkb3V0KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRzX3R1cGxl
LCAoIjUsODg4IGJ5dGVzIiwgMSkpCisKKyAgICBkZWYgdGVzdF9jb3VudF90b3RhbF9sZWFrcyhz
ZWxmKToKKyAgICAgICAgZGV0ZWN0b3IgPSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKKyAgICAgICAg
ZGV0ZWN0b3IuX2ZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSh7CisgICAgICAgICAgICAnL21v
Y2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM0LWxlYWtzLnR4dCc6ICdQcm9jZXNzIDEyMzQ6
IDEyIGxlYWtzIGZvciA0MCB0b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAorICAgICAgICAgICAgJy9t
b2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMjM0MjMtbGVha3MudHh0JzogJ1Byb2Nlc3MgMTIz
NTogMTIzNDEgbGVha3MgZm9yIDI3OTM0IHRvdGFsIGxlYWtlZCBieXRlcy5cbicsCisgICAgICAg
ICAgICAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0JzogJ1Byb2Nl
c3MgMTIzNTY6IDIzNDEyIGxlYWtzIGZvciAxOCB0b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAorICAg
ICAgICB9KQorICAgICAgICBsZWFrX2ZpbGVfcGF0aHMgPSBbJy9tb2NrLXJlc3VsdHMvRHVtcFJl
bmRlclRyZWUtMTIzNC1sZWFrcy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0y
MzQyMy1sZWFrcy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3Mu
dHh0J10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGV0ZWN0b3IuY291bnRfdG90YWxfbGVh
a3MobGVha19maWxlX3BhdGhzKSwgMzU3NjUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5CmluZGV4IGQxNTM1Mzk3MGJhMDNlZDc2MjU5NWNjMTc5
NmI2ZmE1ZDhiY2E2NTguLjU1YTA2YTY0ZmY5NTgwMTBlMDU1M2Y5N2Q0NzA1NjcxZDY0MTkxYmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFj
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjLnB5
CkBAIC0xMzksMTIgKzEzOSw5IEBAIGNsYXNzIE1hY1BvcnQoQXBwbGVQb3J0KToKICAgICAgICAg
bGVha3NfZmlsZXMgPSBzZWxmLl9sZWFrX2RldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9y
eShzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCkpCiAgICAgICAgIGlmIG5vdCBsZWFrc19maWxlczoK
ICAgICAgICAgICAgIHJldHVybgotICAgICAgICB0b3RhbF9ieXRlc19zdHJpbmcsIHVuaXF1ZV9s
ZWFrcyA9IHNlbGYuX2xlYWtfZGV0ZWN0b3IucGFyc2VfbGVha19maWxlcyhsZWFrc19maWxlcykK
LSAgICAgICAgIyBvbGQtcnVuLXdlYmtpdC10ZXN0cyB1c2VkIHRvIHByaW50IHRoZSAidG90YWwg
bGVha3MiIGNvdW50LCBidXQgdGhhdCB3b3VsZAotICAgICAgICAjIHJlcXVpcmUgcmUtcGFyc2lu
ZyBlYWNoIG9mIHRoZSBsZWFrcyBmaWxlcyAod2hpY2ggd2UgY291bGQgZG8gYXQgc29tZSBsYXRl
ciBwb2ludCBpZiB0aGF0IHdvdWxkIGJlIHVzZWZ1bC4pCi0gICAgICAgICMgVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyLmNmZyBncmVwcyBmb3Ig
ImxlYWtzIGZvdW5kIi4KLSAgICAgICAgIyBtYXN0ZXIuY2ZnIHdpbGwgbmVlZCBhbiB1cGRhdGUg
aWYgdGhlc2Ugc3RyaW5ncyBjaGFuZ2UuCi0gICAgICAgIF9sb2cuaW5mbygibGVha3MgZm91bmQg
Zm9yIGEgdG90YWwgb2YgJXMhIiAlIHRvdGFsX2J5dGVzX3N0cmluZykKKyAgICAgICAgdG90YWxf
Ynl0ZXNfc3RyaW5nLCB1bmlxdWVfbGVha3MgPSBzZWxmLl9sZWFrX2RldGVjdG9yLmNvdW50X3Rv
dGFsX2J5dGVzX2FuZF91bmlxdWVfbGVha3MobGVha3NfZmlsZXMpCisgICAgICAgIHRvdGFsX2xl
YWtzID0gc2VsZi5fbGVha19kZXRlY3Rvci5jb3VudF90b3RhbF9sZWFrcyhsZWFrc19maWxlcykK
KyAgICAgICAgX2xvZy5pbmZvKCIlcyB0b3RhbCBsZWFrcyBmb3VuZCBmb3IgYSB0b3RhbCBvZiAl
cyEiICUgKHRvdGFsX2xlYWtzLCB0b3RhbF9ieXRlc19zdHJpbmcpKQogICAgICAgICBfbG9nLmlu
Zm8oIiVzIHVuaXF1ZSBsZWFrcyBmb3VuZCEiICUgdW5pcXVlX2xlYWtzKQogCiAgICAgZGVmIF9j
aGVja19wb3J0X2J1aWxkKHNlbGYpOgo=
</data>
<flag name="commit-queue"
          id="110901"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>