<?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>38718</bug_id>
          
          <creation_ts>2010-05-06 21:24:42 -0700</creation_ts>
          <short_desc>test-webkitpy fails under cygwin</short_desc>
          <delta_ts>2010-05-10 06:30:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Windows XP</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="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>222147</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 21:24:42 -0700</bug_when>
    <thetext>test-webkitpy fails under cygwin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222150</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-06 21:26:03 -0700</bug_when>
    <thetext>*** Bug 38716 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222152</commentid>
    <comment_count>2</comment_count>
      <attachid>55337</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 21:37:39 -0700</bug_when>
    <thetext>Created attachment 55337
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222199</commentid>
    <comment_count>3</comment_count>
      <attachid>55341</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-06 23:31:05 -0700</bug_when>
    <thetext>Created attachment 55341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222215</commentid>
    <comment_count>4</comment_count>
      <attachid>55346</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 00:29:31 -0700</bug_when>
    <thetext>Created attachment 55346
Fix default_configuration for Windows (and Qt)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222229</commentid>
    <comment_count>5</comment_count>
      <attachid>55346</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-07 00:48:27 -0700</bug_when>
    <thetext>Comment on attachment 55346
Fix default_configuration for Windows (and Qt)

WebKitTools/Scripts/webkitpy/common/system/executive.py:204
 +          if not extension:
foo.bar.exe probably fails here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222231</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 00:51:34 -0700</bug_when>
    <thetext>You mean that we should be adding .exe to &quot;foo.bar&quot; and wouldn&apos;t?  I&apos;m not sure that&apos;s a case I care to support. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222239</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-07 01:25:36 -0700</bug_when>
    <thetext>Yes.  I don&apos;t know what you mean by &quot;care to support&quot; but it&apos;s going to be a strange bug that bites us later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222406</commentid>
    <comment_count>8</comment_count>
      <attachid>55346</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 08:56:40 -0700</bug_when>
    <thetext>Comment on attachment 55346
Fix default_configuration for Windows (and Qt)

Will post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222411</commentid>
    <comment_count>9</comment_count>
      <attachid>55381</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 09:07:39 -0700</bug_when>
    <thetext>Created attachment 55381
Updated patch for testing on windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222430</commentid>
    <comment_count>10</comment_count>
      <attachid>55386</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 09:36:21 -0700</bug_when>
    <thetext>Created attachment 55386
Updated patch for testing on windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222440</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-07 09:46:52 -0700</bug_when>
    <thetext>&gt; +++ b/WebKitTools/Scripts/webkitpy/common/system/executive.py
&gt; @@ -33,6 +33,7 @@ try:
&gt; +    # Executive unit tests uses this information to validate that
&gt; +    # kill_process/kill_all work as expected an cause the expected exit codes.
&gt; +    # We store this information in this file to keep it next to the platform ifs.
&gt; +    # taskkill.exe causes processes to exit 0, otherwise processes exit -SIGNAL
&gt; +    _KILL_PROCESS_KILLED_PROCESS_EXIT_CODE = 0 if sys.platform == &quot;windows&quot; else -signal.SIGKILL
&gt; +    _KILL_ALL_KILLED_PROCESS_EXIT_CODE = 0 if sys.platform in (&quot;windows&quot;, &quot;cygwin&quot;) else -signal.SIGTERM

I don&apos;t really buy that it makes sense to put these here. This is just test data really. Anyone messing with this code will need to look at the tests as well. Anyways, not a big deal if you feel strongly.

&gt; +        while retries_left:
&gt; +            try:
&gt; +                retries_left -= 1
&gt; +                os.kill(pid, signal.SIGKILL)
&gt; +            except OSError, e:
&gt; +                if e.errno == errno.EAGAIN:
&gt; +                    continue

Maybe we should raise if we get here and retries_left is 0? We should at least log something.

&gt; +                if e.errno == errno.ESRCH:  # The process does not exist.
&gt; +                    # FIXME: We should make non-silent failure an option.
&gt; +                    return

I&apos;m missing something, why can&apos;t we just log here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222447</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 09:59:41 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I don&apos;t really buy that it makes sense to put these here. This is just test
&gt; data really. Anyone messing with this code will need to look at the tests as
&gt; well. Anyways, not a big deal if you feel strongly.

I don&apos;t feel strongly.  But it&apos;s difficult to test those constants because they require testing on multiple platforms.  So I felt like putting them closer to the implementation might make them less likely to be changed to be wrong.

&gt; &gt; +        while retries_left:
&gt; &gt; +            try:
&gt; &gt; +                retries_left -= 1
&gt; &gt; +                os.kill(pid, signal.SIGKILL)
&gt; &gt; +            except OSError, e:
&gt; &gt; +                if e.errno == errno.EAGAIN:
&gt; &gt; +                    continue
&gt; 
&gt; Maybe we should raise if we get here and retries_left is 0? We should at least
&gt; log something.

To prevent us from infinite looping you mean?  I can make it while retries_left &gt; 0.

&gt; &gt; +                if e.errno == errno.ESRCH:  # The process does not exist.
&gt; &gt; +                    # FIXME: We should make non-silent failure an option.
&gt; &gt; +                    return

Sure, we could log.  The code which this function was based on assumed it was silent, but not in a &quot;break it if it isn&apos;t silent&quot; kind of way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222454</commentid>
    <comment_count>13</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-07 10:06:29 -0700</bug_when>
    <thetext>&gt; &gt; &gt; +        while retries_left:
&gt; &gt; &gt; +            try:
&gt; &gt; &gt; +                retries_left -= 1
&gt; &gt; &gt; +                os.kill(pid, signal.SIGKILL)
&gt; &gt; &gt; +            except OSError, e:
&gt; &gt; &gt; +                if e.errno == errno.EAGAIN:
&gt; &gt; &gt; +                    continue
&gt; &gt; 
&gt; &gt; Maybe we should raise if we get here and retries_left is 0? We should at least
&gt; &gt; log something.
&gt; 
&gt; To prevent us from infinite looping you mean?  I can make it while retries_left
&gt; &gt; 0.

No. Does this mean something went wrong? I&apos;m just saying we should log this as it ought to be useful debugging when stuff goes wrong.

&gt; &gt; &gt; +                if e.errno == errno.ESRCH:  # The process does not exist.
&gt; &gt; &gt; +                    # FIXME: We should make non-silent failure an option.
&gt; &gt; &gt; +                    return
&gt; 
&gt; Sure, we could log.  The code which this function was based on assumed it was
&gt; silent, but not in a &quot;break it if it isn&apos;t silent&quot; kind of way.

Yeah, seems like we should log in cases where things go wrong. This is an unexpected case, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222455</commentid>
    <comment_count>14</comment_count>
      <attachid>55392</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 10:07:36 -0700</bug_when>
    <thetext>Created attachment 55392
Final patch, addresses Ojan&apos;s comments and fixes everything except NRWT --platform dryrun on win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222460</commentid>
    <comment_count>15</comment_count>
      <attachid>55393</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 10:12:42 -0700</bug_when>
    <thetext>Created attachment 55393
Final patch, addresses Ojan&apos;s comments and fixes everything except NRWT --platform dryrun on win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222467</commentid>
    <comment_count>16</comment_count>
      <attachid>55393</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-07 10:35:59 -0700</bug_when>
    <thetext>Comment on attachment 55393
Final patch, addresses Ojan&apos;s comments and fixes everything except NRWT --platform dryrun on win

WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py:301
 +      # Easy override for unit tests
Did you intend to write tests here? If not, I don&apos;t see the benefit of having this in a separate method.

WebKitTools/Scripts/webkitpy/layout_tests/port/win.py:51
 +              self._webkit_baseline_path(&quot;mac-snowleopard&quot;),
It&apos;s weird that the win port checks mac-snowleopard but not mac-leopard/mac-tiger. I&apos;d expect all of those or none of them. Anyways, this does match old-run-webkit tests. For consistency, do you mind making the same change to port/chromium_win.py? Or just file a bug. It&apos;s missing this one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222747</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 18:35:16 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 55393 [details])
&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py:301
&gt;  +      # Easy override for unit tests
&gt; Did you intend to write tests here? If not, I don&apos;t see the benefit of having
&gt; this in a separate method.

It&apos;s used by every unit test. :)

        port._open_configuration_file = lambda: WithAwareStringIO(file_contents)


&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/win.py:51
&gt;  +              self._webkit_baseline_path(&quot;mac-snowleopard&quot;),
&gt; It&apos;s weird that the win port checks mac-snowleopard but not
&gt; mac-leopard/mac-tiger. I&apos;d expect all of those or none of them. Anyways, this
&gt; does match old-run-webkit tests. For consistency, do you mind making the same
&gt; change to port/chromium_win.py? Or just file a bug. It&apos;s missing this one line.

OK, I can add a FIXME.  I don&apos;t dare change chromium_win, as it might cause all sorts of failures with different fallback results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222750</commentid>
    <comment_count>18</comment_count>
      <attachid>55447</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 18:42:14 -0700</bug_when>
    <thetext>Created attachment 55447
Final patch, address Ojan&apos;s last two comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222758</commentid>
    <comment_count>19</comment_count>
      <attachid>55447</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 19:15:16 -0700</bug_when>
    <thetext>Comment on attachment 55447
Final patch, address Ojan&apos;s last two comments.

WebKitTools/Scripts/webkitpy/common/system/executive.py:184
 +              command = [&quot;taskkill.exe&quot;, &quot;/f&quot;, &quot;/pid&quot;, pid]
This comment seems to conflict with the code 

WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:60
 +          # FIMXE: This should include mac-snowleopard like win.py does.
No, I don&apos;t think it should, although it probably shouldn&apos;t fall back to win or mac at all, really. We should check to see if those directories are actually used.

Looks more-or-less right otherwise, although I can&apos;t swear to the windows-isms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222761</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 19:22:09 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 55447 [details])
&gt; WebKitTools/Scripts/webkitpy/common/system/executive.py:184
&gt;  +              command = [&quot;taskkill.exe&quot;, &quot;/f&quot;, &quot;/pid&quot;, pid]
&gt; This comment seems to conflict with the code 

I assume you mean this comment?
        if sys.platform == &quot;windows&quot;:
            # We can&apos;t (easily) use taskkill.exe on cygwin because
            # subprocess.pid is a cygwin pid and taskkill expects a windows pid.
            # Thankfully os.kill on cygwin handles either pid type.

I was trying to explain why that wasn&apos;t &quot;sys.platform in (&quot;windows&quot;, &quot;cygwin&quot;)&quot; like how kill_all is done.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:60
&gt;  +          # FIMXE: This should include mac-snowleopard like win.py does.
&gt; No, I don&apos;t think it should, although it probably shouldn&apos;t fall back to win or
&gt; mac at all, really. We should check to see if those directories are actually
&gt; used.

I leave you and Ojan to duke it out.  I&apos;m happy to keep or remove the FIXME.  I&apos;ll land it either way and someone later can fix/remove.

@abarth, @davelevin or @cjerdonek: care to review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222769</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-05-07 19:56:48 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (From update of attachment 55447 [details] [details])
&gt; &gt; WebKitTools/Scripts/webkitpy/common/system/executive.py:184
&gt; &gt;  +              command = [&quot;taskkill.exe&quot;, &quot;/f&quot;, &quot;/pid&quot;, pid]
&gt; &gt; This comment seems to conflict with the code 
&gt; 
&gt; I assume you mean this comment?
&gt;         if sys.platform == &quot;windows&quot;:
&gt;             # We can&apos;t (easily) use taskkill.exe on cygwin because
&gt;             # subprocess.pid is a cygwin pid and taskkill expects a windows
&gt; pid.
&gt;             # Thankfully os.kill on cygwin handles either pid type.
&gt; 
&gt; I was trying to explain why that wasn&apos;t &quot;sys.platform in (&quot;windows&quot;, &quot;cygwin&quot;)&quot;
&gt; like how kill_all is done.
&gt; 

Yeah, I was confused by the fact that &quot;windows&quot; and &quot;cygwin&quot; are not the same thing and was thinking that you meant to be calling os.kill() instead of taskkill.exe. Maybe there&apos;s some way you can&apos; rewrite this to say something like &quot;we can only use taskkill.exe on windows and not cygwin&quot;, to make it clear that you&apos;re talking about the branch you took, and not the branch you didn&apos;t take.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222795</commentid>
    <comment_count>22</comment_count>
      <attachid>55459</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 22:09:35 -0700</bug_when>
    <thetext>Created attachment 55459
Fix comment for Dirk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222796</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 22:11:50 -0700</bug_when>
    <thetext>This should be a pretty much no-brainer r+ that this point. :)  Anybody?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222812</commentid>
    <comment_count>24</comment_count>
      <attachid>55459</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-07 23:00:13 -0700</bug_when>
    <thetext>Comment on attachment 55459
Fix comment for Dirk

&gt; +    # Executive unit tests uses this information to validate that
&gt; +    # kill_process/kill_all work as expected an cause the expected exit codes.

Typo, &quot;an&quot; should be &quot;and&quot;.

&gt; +    # FIXME: This list may be incomplete as Apple has some sekret configs.

Looks like you intentionally misspelled &quot;sekret&quot; :-P.

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222821</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-07 23:11:44 -0700</bug_when>
    <thetext>Committed r59000: &lt;http://trac.webkit.org/changeset/59000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222842</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-08 00:25:13 -0700</bug_when>
    <thetext>Committed r59006: &lt;http://trac.webkit.org/changeset/59006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222880</commentid>
    <comment_count>27</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-08 07:30:47 -0700</bug_when>
    <thetext>&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_win.py:60
&gt; &gt;  +          # FIMXE: This should include mac-snowleopard like win.py does.
&gt; &gt; No, I don&apos;t think it should, although it probably shouldn&apos;t fall back to win or
&gt; &gt; mac at all, really. We should check to see if those directories are actually
&gt; &gt; used.
&gt; 
&gt; I leave you and Ojan to duke it out.  I&apos;m happy to keep or remove the FIXME. 
&gt; I&apos;ll land it either way and someone later can fix/remove.

chromium-win and webkit-win should use the same fallback directories. Hopefully we agree on that. :) It&apos;s confusing to me that webkit-win checks the mac-snowleopard directory, but given that it does, chromium-win should as well.

A change needs to be made to either chromium-win or webkit-win.

aroben, you have an opinion about the appropriate fallback directories for windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223280</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-05-10 06:30:18 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; aroben, you have an opinion about the appropriate fallback directories for windows?

Apple&apos;s Windows port looks in mac-snowleopard because the versions of CG/CF/CFNetwork etc. that we use are based on the versions in SnowLeopard, and so we expect them to have (most of) the same SnowLeopard-specific quirks that they do on Mac.

I&apos;m not sure what the right thing for Chromium is here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55337</attachid>
            <date>2010-05-06 21:37:39 -0700</date>
            <delta_ts>2010-05-06 23:30:58 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-38718-20100507053737.patch</filename>
            <type>text/plain</type>
            <size>4702</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU4OTMzKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMgdW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5OgorCiAyMDEwLTA1
LTA2ICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CShyZXZpc2lvbiA1ODkwOCkK
KysrIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTE2NSwxNiArMTY1LDE4IEBAIGNsYXNzIEV4ZWN1dGl2ZShv
YmplY3QpOgogICAgIGRlZiBraWxsX3Byb2Nlc3Moc2VsZiwgcGlkKToKICAgICAgICAgIiIiQXR0
ZW1wdHMgdG8ga2lsbCB0aGUgZ2l2ZW4gcGlkLgogICAgICAgICBXaWxsIGZhaWwgc2lsZW50bHkg
aWYgcGlkIGRvZXMgbm90IGV4aXN0IG9yIGluc3VmZmljaWVudCBwZXJtaXNzc2lvbnMuIiIiCi0g
ICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMg
QWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9vcy5odG1sCi0gICAg
ICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuICBIb3dldmVyLCB3
aGVuIEkgdHJpZWQgaXQKLSAgICAgICAgICAgICMgdXNpbmcgQ3lnd2luLCBpdCB3b3JrZWQgZmlu
ZS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyCi0gICAgICAgICAgICAjIHdlIG5lZWQg
dGhpcyBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGhlcmUuCisgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSBpbiAoJ3dpbmRvd3MnKToKKyAgICAgICAgICAgICMgV2UgY2FuJ3QgZWFzaWx5IHVzZSB0YXNr
a2lsbC5leGUgb24gY3lnd2luIGJlY2F1c2UKKyAgICAgICAgICAgICMgc3VicHJvY2Vzcy5waWQg
aXMgYSBjeWd3aW4gcGlkIGFuZCB0YXNra2lsbCBleHBlY3RzIGEgd2luZG93cyBwaWQuCiAgICAg
ICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL3BpZCIsIHN0cihwaWQp
XQogICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlz
IG5vdCBmb3VuZC4KLSAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJyb3Jf
aGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKKyAgICAgICAgICAgIHJldHVybl9jb2RlID0gc2Vs
Zi5ydW5fY29tbWFuZChjb21tYW5kLCByZXR1cm5fZXhpdF9jb2RlPVRydWUpCisgICAgICAgICAg
ICBwcmludCAiJXMgJXMiICUgKGNvbW1hbmQsIHJldHVybl9jb2RlKQogICAgICAgICAgICAgcmV0
dXJuCiAgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2Nz
LnB5dGhvbi5vcmcvbGlicmFyeS9vcy5odG1sCisgICAgICAgICAgICAjIG9zLmtpbGwgaXNuJ3Qg
YXZhaWxhYmxlIG9uIFdpbmRvd3MuCisgICAgICAgICAgICAjIG9zLmtpbGwgYXBwZWFycyB0byB3
b3JrIGluIGN5Z3dpbiwgYnV0IGl0IG9jY2FzaW9uYWxseSByYWlzZXMgRUFHQUlOLgogICAgICAg
ICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQogICAgICAgICBleGNlcHQgT1NFcnJv
ciwgZToKICAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBtYWtlIG5vbi1zaWxlbnQgZmFp
bHVyZSBhbiBvcHRpb24uCkBAIC0xODMsMTEgKzE4NSwxNiBAQCBjbGFzcyBFeGVjdXRpdmUob2Jq
ZWN0KToKICAgICBkZWYga2lsbF9hbGwoc2VsZiwgcHJvY2Vzc19uYW1lKToKICAgICAgICAgIiIi
QXR0ZW1wdHMgdG8ga2lsbCBwcm9jZXNzZXMgbWF0Y2hpbmcgcHJvY2Vzc19uYW1lLgogICAgICAg
ICBXaWxsIGZhaWwgc2lsZW50bHkgaWYgbm8gcHJvY2VzcyBhcmUgZm91bmQuIiIiCi0gICAgICAg
IGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgV2UgbWln
aHQgd2FudCB0byBhdXRvbWF0aWNhbGx5IGFwcGVuZCAuZXhlPworICAgICAgICBpZiBzeXMucGxh
dGZvcm0gaW4gKCd3aW5kb3dzJywgJ2N5Z3dpbicpOgorICAgICAgICAgICAgbmFtZSwgZXh0ZW5z
aW9uID0gb3MucGF0aC5zcGxpdGV4dChwcm9jZXNzX25hbWUpCisgICAgICAgICAgICBpZiBub3Qg
ZXh0ZW5zaW9uOgorICAgICAgICAgICAgICAgICMgdGFza2tpbGwgZXhwZWN0cyBwcm9jZXNzZXMg
dG8gZW5kIGluIC5leGUKKyAgICAgICAgICAgICAgICAjIElmIG5lY2Vzc2FyeSB3ZSBjYW4gYWRk
IGEgZmxhZyB0byBkaXNhYmxlIHRoaXMgbmFtZSBtdXRhdGlvbi4KKyAgICAgICAgICAgICAgICBw
cm9jZXNzX25hbWUgPSAiJXMuZXhlIiAlIG5hbWUKICAgICAgICAgICAgIGNvbW1hbmQgPSBbInRh
c2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBwcm9jZXNzX25hbWVdCiAgICAgICAgICAgICAjIHRh
c2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLgotICAgICAg
ICAgICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3Jl
X2Vycm9yKQorICAgICAgICAgICAgcmV0dXJuX2NvZGUgPSBzZWxmLnJ1bl9jb21tYW5kKGNvbW1h
bmQsIHJldHVybl9leGl0X2NvZGU9VHJ1ZSkKKyAgICAgICAgICAgIHByaW50ICIlcyAlcyIgJSAo
Y29tbWFuZCwgcmV0dXJuX2NvZGUpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAjIEZJ
WE1FOiBUaGlzIGlzIGluY29uc2lzdGVudCB0aGF0IGtpbGxfYWxsIHVzZXMgVEVSTSBhbmQga2ls
bF9wcm9jZXNzCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkJKHJldmlzaW9u
IDU4OTA4KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsOCBAQCBjbGFz
cyBFeGVjdXRpdmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1
YnByb2Nlc3MuUG9wZW4oWyJ5ZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5u
aW5nCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIC1zaWduYWwuU0lHS0lMTCkKKyAgICAg
ICAgZXhpdF9jb2RlID0gLXNpZ25hbC5TSUdLSUxMIGlmIHN5cy5wbGF0Zm9ybSAhPSAnd2luZG93
cycgZWxzZSAwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4aXRf
Y29kZSkKICAgICAgICAgIyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAg
ICAgICBleGVjdXRpdmUua2lsbF9wcm9jZXNzKHByb2Nlc3MucGlkKQogCkBAIC04OCw2ICs4OSw3
IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBwcm9j
ZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAgIyBQcm9jZXNz
IGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfYWxsKCJ5ZXMiKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR1RFUk0pCisgICAgICAg
IGV4aXRfY29kZSA9IC1zaWduYWwuU0lHVEVSTSBpZiBzeXMucGxhdGZvcm0gIT0gJ2N5Z3dpbicg
ZWxzZSAwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4aXRfY29k
ZSkKICAgICAgICAgIyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAgICAg
ICBleGVjdXRpdmUua2lsbF9hbGwoInllcyIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55341</attachid>
            <date>2010-05-06 23:31:05 -0700</date>
            <delta_ts>2010-05-07 00:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38718-20100506233102.patch</filename>
            <type>text/plain</type>
            <size>8623</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li5hZTc3ZTg5
ZTkzMWMyMDZhNjJhMmEzYzljOWQwNzliOGQ4MmE5Mzc2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorCiAyMDEwLTA1LTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNTg5MzMuCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZS5weQppbmRleCAxMWViMDUxNjVmY2ZjMDFkYzU5NTA1NTQ1ZWI2NzM1MzU4MTcxY2UwLi4w
ZTc4Y2Q3M2M4MmRmODQ5MzQzNDRlYzBlZTlkNDUxNTg5ZDg0NGNhIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkK
QEAgLTMzLDYgKzMzLDcgQEAgdHJ5OgogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIG11bHRpcHJv
Y2Vzc2luZyA9IE5vbmUKIAoraW1wb3J0IGVycm5vCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9y
bQogaW1wb3J0IFN0cmluZ0lPCkBAIC0xNjIsMzAgKzE2Myw2MyBAQCBjbGFzcyBFeGVjdXRpdmUo
b2JqZWN0KToKICAgICAgICAgIyBtYWNoaW5lcy4KICAgICAgICAgcmV0dXJuIDIKIAorICAgICMg
RXhlY3V0aXZlIHVuaXQgdGVzdHMgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHRvIHZhbGlkYXRlIHRo
YXQKKyAgICAjIGtpbGxfcHJvY2Vzcy9raWxsX2FsbCB3b3JrIGFzIGV4cGVjdGVkIGFuIGNhdXNl
IHRoZSBleHBlY3RlZCBleGl0IGNvZGVzLgorICAgICMgV2Ugc3RvcmUgdGhpcyBpbmZvcm1hdGlv
biBpbiB0aGlzIGZpbGUgdG8ga2VlcCBpdCBuZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAg
IyB0YXNra2lsbC5leGUgY2F1c2VzIHByb2Nlc3NlcyB0byBleGl0IDAsIG90aGVyd2lzZSBwcm9j
ZXNzZXMgZXhpdCAtU0lHTkFMCisgICAgX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VTU19FWElU
X0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyIgZWxzZSAtc2lnbmFsLlNJR0tJ
TEwKKyAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFID0gMCBpZiBzeXMucGxh
dGZvcm0gaW4gKCJ3aW5kb3dzIiwgImN5Z3dpbiIpIGVsc2UgLXNpZ25hbC5TSUdURVJNCisKICAg
ICBkZWYga2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6CiAgICAgICAgICIiIkF0dGVtcHRzIHRvIGtp
bGwgdGhlIGdpdmVuIHBpZC4KICAgICAgICAgV2lsbCBmYWlsIHNpbGVudGx5IGlmIHBpZCBkb2Vz
IG5vdCBleGlzdCBvciBpbnN1ZmZpY2llbnQgcGVybWlzc3Npb25zLiIiIgotICAgICAgICBpZiBw
bGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6Ci0gICAgICAgICAgICAjIEFjY29yZGluZyB0
byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAotICAgICAgICAgICAgIyBv
cy5raWxsIGlzbid0IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiAgSG93ZXZlciwgd2hlbiBJIHRyaWVk
IGl0Ci0gICAgICAgICAgICAjIHVzaW5nIEN5Z3dpbiwgaXQgd29ya2VkIGZpbmUuICBXZSBzaG91
bGQgaW52ZXN0aWdhdGUgd2hldGhlcgotICAgICAgICAgICAgIyB3ZSBuZWVkIHRoaXMgcGxhdGZv
cm0gc3BlY2lmaWMgY29kZSBoZXJlLgotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tpbGwu
ZXhlIiwgIi9mIiwgIi9waWQiLCBzdHIocGlkKV0KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09
ICJ3aW5kb3dzIjoKKyAgICAgICAgICAgICMgV2UgY2FuJ3QgKGVhc2lseSkgdXNlIHRhc2traWxs
LmV4ZSBvbiBjeWd3aW4gYmVjYXVzZQorICAgICAgICAgICAgIyBzdWJwcm9jZXNzLnBpZCBpcyBh
IGN5Z3dpbiBwaWQgYW5kIHRhc2traWxsIGV4cGVjdHMgYSB3aW5kb3dzIHBpZC4KKyAgICAgICAg
ICAgICMgVGhhbmtmdWxseSBvcy5raWxsIG9uIGN5Z3dpbiBoYW5kbGVzIGVpdGhlciBwaWQgdHlw
ZS4KKyAgICAgICAgICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvcGlkIiwg
cGlkXQogICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNz
IGlzIG5vdCBmb3VuZC4KICAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJy
b3JfaGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKICAgICAgICAgICAgIHJldHVybgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCi0gICAgICAg
IGV4Y2VwdCBPU0Vycm9yLCBlOgotICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG1ha2Ug
bm9uLXNpbGVudCBmYWlsdXJlIGFuIG9wdGlvbi4KLSAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICAjIEFjY29yZGluZyB0byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAor
ICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuIHB5dGhvbiAyLjUu
NSBvcy5raWxsIGFwcGVhcnMKKyAgICAgICAgIyB0byB3b3JrIGluIGN5Z3dpbiwgaG93ZXZlciBp
dCBvY2Nhc2lvbmFsbHkgcmFpc2VzIEVBR0FJTi4KKyAgICAgICAgcmV0cmllc19sZWZ0ID0gMyBp
ZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiIgZWxzZSAxCisgICAgICAgIHdoaWxlIHJldHJpZXNf
bGVmdDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXRyaWVzX2xlZnQgLT0g
MQorICAgICAgICAgICAgICAgIG9zLmtpbGwocGlkLCBzaWduYWwuU0lHS0lMTCkKKyAgICAgICAg
ICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJy
bm8uRUFHQUlOOgorICAgICAgICAgICAgICAgICAgICByZXRyaWVzX2xlZnQgPSAwCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJu
by5FU1JDSDogICMgVGhlIHByb2Nlc3MgZG9lcyBub3QgZXhpc3QuCisgICAgICAgICAgICAgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZCBtYWtlIG5vbi1zaWxlbnQgZmFpbHVyZSBhbiBvcHRpb24u
CisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAg
ICBkZWYgX3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmLCBwcm9jZXNzX25hbWUpOgorICAgICAgICBu
YW1lLCBleHRlbnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KHByb2Nlc3NfbmFtZSkKKyAgICAgICAg
aWYgbm90IGV4dGVuc2lvbjoKKyAgICAgICAgICAgICMgdGFza2tpbGwgZXhwZWN0cyBwcm9jZXNz
ZXMgdG8gZW5kIGluIC5leGUKKyAgICAgICAgICAgICMgSWYgbmVjZXNzYXJ5IHdlIGNvdWxkIGFk
ZCBhIGZsYWcgdG8gZGlzYWJsZSBhcHBlbmRpbmcgLmV4ZS4KKyAgICAgICAgICAgIHByb2Nlc3Nf
bmFtZSA9ICIlcy5leGUiICUgbmFtZQorICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1lCisKKyAg
ICBkZWYgX2tpbGxfYWxsX2tpbGxlZF9wcm9jZXNzX2V4aXRfY29kZShzZWxmKToKKyAgICAgICAg
IiIiRXhlY3V0aXZlIHVuaXQgdGVzdHMgdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gdmFsaWRhdGUK
KyAgICAgICAgdGhhdCBraWxsX2FsbCB3b3JrZWQgYXMgZXhwZWN0ZWQgY2F1c2VkIHRoZSBleHBl
Y3RlZCBleGl0IGNvZGUuIiIiCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3Mi
LCAiY3lnd2luIik6CisgICAgICAgICAgICByZXR1cm4gX1RBU0tLSUxMX0tJTExFRF9QUk9DRVNT
X0VYSVRfQ09ERQorICAgICAgICByZXR1cm4gLXNpZ25hbC5TSUdURVJNCiAKICAgICBkZWYga2ls
bF9hbGwoc2VsZiwgcHJvY2Vzc19uYW1lKToKICAgICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCBw
cm9jZXNzZXMgbWF0Y2hpbmcgcHJvY2Vzc19uYW1lLgogICAgICAgICBXaWxsIGZhaWwgc2lsZW50
bHkgaWYgbm8gcHJvY2VzcyBhcmUgZm91bmQuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3Rl
bSgpID09ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgV2UgbWlnaHQgd2FudCB0byBhdXRvbWF0
aWNhbGx5IGFwcGVuZCAuZXhlPwotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tpbGwuZXhl
IiwgIi9mIiwgIi9pbSIsIHByb2Nlc3NfbmFtZV0KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGlu
ICgid2luZG93cyIsICJjeWd3aW4iKToKKyAgICAgICAgICAgIGltYWdlX25hbWUgPSBzZWxmLl93
aW5kb3dzX2ltYWdlX25hbWUocHJvY2Vzc19uYW1lKQorICAgICAgICAgICAgY29tbWFuZCA9IFsi
dGFza2tpbGwuZXhlIiwgIi9mIiwgIi9pbSIsIGltYWdlX25hbWVdCiAgICAgICAgICAgICAjIHRh
c2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLgogICAgICAg
ICAgICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3Jl
X2Vycm9yKQogICAgICAgICAgICAgcmV0dXJuCkBAIC0xOTUsNiArMjI5LDggQEAgY2xhc3MgRXhl
Y3V0aXZlKG9iamVjdCk6CiAgICAgICAgICMgV2Ugc2hvdWxkIHBpY2sgb25lIG1vZGUsIG9yIGFk
ZCBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0aGVtLgogICAgICAgICAjIE5vdGU6IE1h
YyBPUyBYIDEwLjYgcmVxdWlyZXMgLVNJR05BTE5BTUUgYmVmb3JlIC11IFVTRVIKICAgICAgICAg
Y29tbWFuZCA9IFsia2lsbGFsbCIsICItVEVSTSIsICItdSIsIG9zLmdldGVudigiVVNFUiIpLCBw
cm9jZXNzX25hbWVdCisgICAgICAgICMga2lsbGFsbCByZXR1cm5zIDEgaWYgbm8gcHJvY2VzcyBj
YW4gYmUgZm91bmQgYW5kIDIgb24gY29tbWFuZCBlcnJvci4KKyAgICAgICAgIyBGSVhNRTogV2Ug
c2hvdWxkIHBhc3MgYSBjdXN0b20gZXJyb3JfaGFuZGxlciB0byBhbGxvdyBvbmx5IGV4aXRfY29k
ZSAxLgogICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1hbmQsIGVycm9yX2hhbmRsZXI9c2Vs
Zi5pZ25vcmVfZXJyb3IpCiAKICAgICAjIEVycm9yIGhhbmRsZXJzIGRvIG5vdCBuZWVkIHRvIGJl
IHN0YXRpYyBtZXRob2RzIG9uY2UgYWxsIGNhbGxlcnMgYXJlCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91
bml0dGVzdC5weQppbmRleCBjZTkxMjY5YzE2ZDA1NzdiYjQyZGExMTkzNjZmNWU0NTAyMDE3ZDM1
Li40ZWFmYjYxNWUyNDY1ZWIzZmJlYmIwMWJjYmQ2ZGE1NmFlMmRmYzhjIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0
ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmVfdW5pdHRlc3QucHkKQEAgLTc3LDEwICs3NywyMCBAQCBjbGFzcyBFeGVjdXRpdmVU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9w
ZW4oWyJ5ZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwcm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAg
IGV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocHJvY2Vzcy53YWl0KCksIC1zaWduYWwuU0lHS0lMTCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwcm9jZXNzLndhaXQoKSwgZXhlY3V0aXZlLl9LSUxMX1BST0NFU1NfS0lMTEVEX1BS
T0NFU1NfRVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdhaW4gc2hvdWxkIGZhaWwgc2ls
ZW50bHkuCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCiAKKyAg
ICBkZWYgX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZiwgbmFtZSwgZXhwZWN0ZWRfd2lu
ZG93c19uYW1lKToKKyAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgd2lu
ZG93c19uYW1lID0gZXhlY3V0aXZlLl93aW5kb3dzX2ltYWdlX25hbWUobmFtZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh3aW5kb3dzX25hbWUsIGV4cGVjdGVkX3dpbmRvd3NfbmFtZSkKKwor
ICAgIGRlZiB0ZXN0X3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5fYXNz
ZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vIiwgImZvby5leGUiKQorICAgICAgICBzZWxmLl9h
c3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uZXhlIiwgImZvby5leGUiKQorICAgICAgICBz
ZWxmLl9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uY29tIiwgImZvby5jb20iKQorCiAg
ICAgZGVmIHRlc3Rfa2lsbF9hbGwoc2VsZik6CiAgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2
ZSgpCiAgICAgICAgICMgRklYTUU6IFRoaXMgbWF5IG5lZWQgZWRpdHMgdG8gd29yayByaWdodCBv
biB3aW5kb3dzLgpAQCAtODgsNiArOTgsNiBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJ5ZXMiXSwg
c3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNz
LnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAgIGV4ZWN1dGl2ZS5r
aWxsX2FsbCgieWVzIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndhaXQoKSwg
LXNpZ25hbC5TSUdURVJNKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgp
LCBleGVjdXRpdmUuX0tJTExfQUxMX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSkKICAgICAgICAg
IyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAgICAgICBleGVjdXRpdmUu
a2lsbF9hbGwoInllcyIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55346</attachid>
            <date>2010-05-07 00:29:31 -0700</date>
            <delta_ts>2010-05-07 09:07:13 -0700</delta_ts>
            <desc>Fix default_configuration for Windows (and Qt)</desc>
            <filename>bug-38718-20100507002928.patch</filename>
            <type>text/plain</type>
            <size>10662</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li4yMzYxYjhh
NzNjMmY1ZGJkY2RmODcyNzg2NmE5YzNmYTMzMWY3NzE4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAgLSBNYWtlIGRlZmF1bHRfY29uZmlndXJhdGlvbiBhY3R1YWxseSBy
ZWFkIGZyb20gdGhlIENvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAg
ICAtIFRlc3QgZGVmYXVsdF9jb25maWd1cmF0aW9uCisKIDIwMTAtMDUtMDYgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI1ODkzMy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CmluZGV4IDExZWIwNTE2NWZjZmMwMWRjNTk1
MDU1NDVlYjY3MzUzNTgxNzFjZTAuLmYxZTNiZTk4N2M2NWZkODMxMmNjZGZiMzQyNWZiMzMyMWE2
N2Q4OWQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9leGVjdXRpdmUucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtMzMsNiArMzMsNyBAQCB0cnk6CiBleGNlcHQgSW1w
b3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNzaW5nID0gTm9uZQogCitpbXBvcnQgZXJybm8KIGlt
cG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgU3RyaW5nSU8KQEAgLTE2MiwzMCArMTYz
LDU2IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIG1hY2hpbmVzLgogICAg
ICAgICByZXR1cm4gMgogCisgICAgIyBFeGVjdXRpdmUgdW5pdCB0ZXN0cyB1c2VzIHRoaXMgaW5m
b3JtYXRpb24gdG8gdmFsaWRhdGUgdGhhdAorICAgICMga2lsbF9wcm9jZXNzL2tpbGxfYWxsIHdv
cmsgYXMgZXhwZWN0ZWQgYW4gY2F1c2UgdGhlIGV4cGVjdGVkIGV4aXQgY29kZXMuCisgICAgIyBX
ZSBzdG9yZSB0aGlzIGluZm9ybWF0aW9uIGluIHRoaXMgZmlsZSB0byBrZWVwIGl0IG5leHQgdG8g
dGhlIHBsYXRmb3JtIGlmcy4KKyAgICAjIHRhc2traWxsLmV4ZSBjYXVzZXMgcHJvY2Vzc2VzIHRv
IGV4aXQgMCwgb3RoZXJ3aXNlIHByb2Nlc3NlcyBleGl0IC1TSUdOQUwKKyAgICBfS0lMTF9QUk9D
RVNTX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSA9IDAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW5k
b3dzIiBlbHNlIC1zaWduYWwuU0lHS0lMTAorICAgIF9LSUxMX0FMTF9LSUxMRURfUFJPQ0VTU19F
WElUX0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3MiLCAiY3lnd2luIikgZWxz
ZSAtc2lnbmFsLlNJR1RFUk0KKwogICAgIGRlZiBraWxsX3Byb2Nlc3Moc2VsZiwgcGlkKToKICAg
ICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCB0aGUgZ2l2ZW4gcGlkLgogICAgICAgICBXaWxsIGZh
aWwgc2lsZW50bHkgaWYgcGlkIGRvZXMgbm90IGV4aXN0IG9yIGluc3VmZmljaWVudCBwZXJtaXNz
c2lvbnMuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIjoKLSAg
ICAgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9v
cy5odG1sCi0gICAgICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3Mu
ICBIb3dldmVyLCB3aGVuIEkgdHJpZWQgaXQKLSAgICAgICAgICAgICMgdXNpbmcgQ3lnd2luLCBp
dCB3b3JrZWQgZmluZS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyCi0gICAgICAgICAg
ICAjIHdlIG5lZWQgdGhpcyBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGhlcmUuCi0gICAgICAgICAg
ICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL3BpZCIsIHN0cihwaWQpXQorICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbmRvd3MiOgorICAgICAgICAgICAgIyBXZSBjYW4n
dCAoZWFzaWx5KSB1c2UgdGFza2tpbGwuZXhlIG9uIGN5Z3dpbiBiZWNhdXNlCisgICAgICAgICAg
ICAjIHN1YnByb2Nlc3MucGlkIGlzIGEgY3lnd2luIHBpZCBhbmQgdGFza2tpbGwgZXhwZWN0cyBh
IHdpbmRvd3MgcGlkLgorICAgICAgICAgICAgIyBUaGFua2Z1bGx5IG9zLmtpbGwgb24gY3lnd2lu
IGhhbmRsZXMgZWl0aGVyIHBpZCB0eXBlLgorICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tp
bGwuZXhlIiwgIi9mIiwgIi9waWQiLCBwaWRdCiAgICAgICAgICAgICAjIHRhc2traWxsIHdpbGwg
ZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLgogICAgICAgICAgICAgc2VsZi5y
dW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3JlX2Vycm9yKQogICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLmtpbGwocGlkLCBz
aWduYWwuU0lHS0lMTCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6Ci0gICAgICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGQgbWFrZSBub24tc2lsZW50IGZhaWx1cmUgYW4gb3B0aW9uLgotICAg
ICAgICAgICAgcGFzcworCisgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhv
bi5vcmcvbGlicmFyeS9vcy5odG1sCisgICAgICAgICMgb3Mua2lsbCBpc24ndCBhdmFpbGFibGUg
b24gV2luZG93cy4gcHl0aG9uIDIuNS41IG9zLmtpbGwgYXBwZWFycworICAgICAgICAjIHRvIHdv
cmsgaW4gY3lnd2luLCBob3dldmVyIGl0IG9jY2FzaW9uYWxseSByYWlzZXMgRUFHQUlOLgorICAg
ICAgICByZXRyaWVzX2xlZnQgPSAzIGlmIHN5cy5wbGF0Zm9ybSA9PSAiY3lnd2luIiBlbHNlIDEK
KyAgICAgICAgd2hpbGUgcmV0cmllc19sZWZ0OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHJldHJpZXNfbGVmdCAtPSAxCisgICAgICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNp
Z25hbC5TSUdLSUxMKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6CisgICAgICAgICAg
ICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQUdBSU46CisgICAgICAgICAgICAgICAgICAgIHJl
dHJpZXNfbGVmdCA9IDAKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
ICAgICBpZiBlLmVycm5vID09IGVycm5vLkVTUkNIOiAgIyBUaGUgcHJvY2VzcyBkb2VzIG5vdCBl
eGlzdC4KKyAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG1ha2Ugbm9uLXNp
bGVudCBmYWlsdXJlIGFuIG9wdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiBfd2luZG93c19pbWFnZV9uYW1lKHNlbGYsIHBy
b2Nlc3NfbmFtZSk6CisgICAgICAgIG5hbWUsIGV4dGVuc2lvbiA9IG9zLnBhdGguc3BsaXRleHQo
cHJvY2Vzc19uYW1lKQorICAgICAgICBpZiBub3QgZXh0ZW5zaW9uOgorICAgICAgICAgICAgIyB0
YXNra2lsbCBleHBlY3RzIHByb2Nlc3NlcyB0byBlbmQgaW4gLmV4ZQorICAgICAgICAgICAgIyBJ
ZiBuZWNlc3Nhcnkgd2UgY291bGQgYWRkIGEgZmxhZyB0byBkaXNhYmxlIGFwcGVuZGluZyAuZXhl
LgorICAgICAgICAgICAgcHJvY2Vzc19uYW1lID0gIiVzLmV4ZSIgJSBuYW1lCisgICAgICAgIHJl
dHVybiBwcm9jZXNzX25hbWUKIAogICAgIGRlZiBraWxsX2FsbChzZWxmLCBwcm9jZXNzX25hbWUp
OgogICAgICAgICAiIiJBdHRlbXB0cyB0byBraWxsIHByb2Nlc3NlcyBtYXRjaGluZyBwcm9jZXNz
X25hbWUuCiAgICAgICAgIFdpbGwgZmFpbCBzaWxlbnRseSBpZiBubyBwcm9jZXNzIGFyZSBmb3Vu
ZC4iIiIKLSAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRvd3MiOgotICAgICAg
ICAgICAgIyBXZSBtaWdodCB3YW50IHRvIGF1dG9tYXRpY2FsbHkgYXBwZW5kIC5leGU/Ci0gICAg
ICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL2ltIiwgcHJvY2Vzc19u
YW1lXQorICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCJ3aW5kb3dzIiwgImN5Z3dpbiIpOgor
ICAgICAgICAgICAgaW1hZ2VfbmFtZSA9IHNlbGYuX3dpbmRvd3NfaW1hZ2VfbmFtZShwcm9jZXNz
X25hbWUpCisgICAgICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL2lt
IiwgaW1hZ2VfbmFtZV0KICAgICAgICAgICAgICMgdGFza2tpbGwgd2lsbCBleGl0IDEyOCBpZiB0
aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuCiAgICAgICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNv
bW1hbmQsIGVycm9yX2hhbmRsZXI9c2VsZi5pZ25vcmVfZXJyb3IpCiAgICAgICAgICAgICByZXR1
cm4KQEAgLTE5NSw2ICsyMjIsOCBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAg
IyBXZSBzaG91bGQgcGljayBvbmUgbW9kZSwgb3IgYWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBi
ZXR3ZWVuIHRoZW0uCiAgICAgICAgICMgTm90ZTogTWFjIE9TIFggMTAuNiByZXF1aXJlcyAtU0lH
TkFMTkFNRSBiZWZvcmUgLXUgVVNFUgogICAgICAgICBjb21tYW5kID0gWyJraWxsYWxsIiwgIi1U
RVJNIiwgIi11Iiwgb3MuZ2V0ZW52KCJVU0VSIiksIHByb2Nlc3NfbmFtZV0KKyAgICAgICAgIyBr
aWxsYWxsIHJldHVybnMgMSBpZiBubyBwcm9jZXNzIGNhbiBiZSBmb3VuZCBhbmQgMiBvbiBjb21t
YW5kIGVycm9yLgorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgcGFzcyBhIGN1c3RvbSBlcnJv
cl9oYW5kbGVyIHRvIGFsbG93IG9ubHkgZXhpdF9jb2RlIDEuCiAgICAgICAgIHNlbGYucnVuX2Nv
bW1hbmQoY29tbWFuZCwgZXJyb3JfaGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKIAogICAgICMg
RXJyb3IgaGFuZGxlcnMgZG8gbm90IG5lZWQgdG8gYmUgc3RhdGljIG1ldGhvZHMgb25jZSBhbGwg
Y2FsbGVycyBhcmUKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CmluZGV4IGNlOTEyNjlj
MTZkMDU3N2JiNDJkYTExOTM2NmY1ZTQ1MDIwMTdkMzUuLjRlYWZiNjE1ZTI0NjVlYjNmYmViYjAx
YmNiZDZkYTU2YWUyZGZjOGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weQpAQCAt
NzcsMTAgKzc3LDIwIEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJv
Y2Vzcy5QSVBFKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25l
KSAgIyBQcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfcHJvY2Vzcyhw
cm9jZXNzLnBpZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndhaXQoKSwgLXNp
Z25hbC5TSUdLSUxMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBl
eGVjdXRpdmUuX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VTU19FWElUX0NPREUpCiAgICAgICAg
ICMgS2lsbGluZyBhZ2FpbiBzaG91bGQgZmFpbCBzaWxlbnRseS4KICAgICAgICAgZXhlY3V0aXZl
LmtpbGxfcHJvY2Vzcyhwcm9jZXNzLnBpZCkKIAorICAgIGRlZiBfYXNzZXJ0X3dpbmRvd3NfaW1h
Z2VfbmFtZShzZWxmLCBuYW1lLCBleHBlY3RlZF93aW5kb3dzX25hbWUpOgorICAgICAgICBleGVj
dXRpdmUgPSBFeGVjdXRpdmUoKQorICAgICAgICB3aW5kb3dzX25hbWUgPSBleGVjdXRpdmUuX3dp
bmRvd3NfaW1hZ2VfbmFtZShuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdpbmRvd3Nf
bmFtZSwgZXhwZWN0ZWRfd2luZG93c19uYW1lKQorCisgICAgZGVmIHRlc3Rfd2luZG93c19pbWFn
ZV9uYW1lKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJm
b28iLCAiZm9vLmV4ZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUo
ImZvby5leGUiLCAiZm9vLmV4ZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdl
X25hbWUoImZvby5jb20iLCAiZm9vLmNvbSIpCisKICAgICBkZWYgdGVzdF9raWxsX2FsbChzZWxm
KToKICAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKICAgICAgICAgIyBGSVhNRTogVGhp
cyBtYXkgbmVlZCBlZGl0cyB0byB3b3JrIHJpZ2h0IG9uIHdpbmRvd3MuCkBAIC04OCw2ICs5OCw2
IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBwcm9j
ZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAgIyBQcm9jZXNz
IGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfYWxsKCJ5ZXMiKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR1RFUk0pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4ZWN1dGl2ZS5fS0lMTF9BTExfS0lM
TEVEX1BST0NFU1NfRVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdhaW4gc2hvdWxkIGZh
aWwgc2lsZW50bHkuCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX2FsbCgieWVzIikKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJr
aXQucHkKaW5kZXggYWRhODNjZTQ3ZDBmYmViNGQ5MjI5ZWNlZmMzMWIxNGIxOWU4MzgwZi4uODI0
NDliNzE3YWFlYzNlZmQ0YTY5Njk0YzdiYTczYWE5Y2JlNzZlNyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkK
QEAgLTI5NCwxMyArMjk0LDMzIEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToKICAgICAg
ICAgcmV0dXJuIHNlbGYudGVzdF9iYXNlX3BsYXRmb3JtX25hbWVzKCkgKyAoCiAgICAgICAgICAg
ICAnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcpCiAKKyAgICBk
ZWYgX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKHNlbGYpOgorICAgICAgICBidWlsZF9yb290ID0g
c2VsZi5fd2Via2l0X2J1aWxkX2RpcmVjdG9yeShbIi0tdG9wLWxldmVsIl0pCisgICAgICAgIHJl
dHVybiBvcy5wYXRoLmpvaW4oYnVpbGRfcm9vdCwgIkNvbmZpZ3VyYXRpb24iKQorCisgICAgIyBF
YXN5IG92ZXJyaWRlIGZvciB1bml0IHRlc3RzCisgICAgZGVmIF9vcGVuX2NvbmZpZ3VyYXRpb25f
ZmlsZShzZWxmKToKKyAgICAgICAgY29uZmlndXJhdGlvbl9wYXRoID0gc2VsZi5fY29uZmlndXJh
dGlvbl9maWxlX3BhdGgoKQorICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4oY29uZmlndXJhdGlv
bl9wYXRoLCAiciIsICJ1dGYtOCIpCisKKyAgICBkZWYgX3JlYWRfY29uZmlndXJhdGlvbihzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBzZWxmLl9vcGVuX2NvbmZpZ3VyYXRp
b25fZmlsZSgpIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGUucmVhZGxpbmUo
KS5yc3RyaXAoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisKKyAgICAjIEZJWE1FOiBUaGlzIGxpc3QgbWF5IGJlIGluY29tcGxldGUgYXMgQXBw
bGUgaGFzIHNvbWUgc2VrcmV0IGNvbmZpZ3MuCisgICAgX1JFQ09HTklaRURfQ09ORklHVVJBVElP
TlMgPSAoIkRlYnVnIiwgIlJlbGVhc2UiKQorCiAgICAgZGVmIGRlZmF1bHRfY29uZmlndXJhdGlv
bihzZWxmKToKLSAgICAgICAgIyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay4gVGhpcyBzdGF0ZSBl
eGlzdHMgaW4gYSBtdWNoIG5pY2VyIGZvcm0gaW4KLSAgICAgICAgIyBwZXJsLWxhbmQuCi0gICAg
ICAgIGNvbmZpZ3VyYXRpb24gPSBvc3BhdGgucmVscGF0aCgKLSAgICAgICAgICAgIHNlbGYuX3dl
YmtpdF9idWlsZF9kaXJlY3RvcnkoWyItLWNvbmZpZ3VyYXRpb24iXSksCi0gICAgICAgICAgICBz
ZWxmLl93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KFsiLS10b3AtbGV2ZWwiXSkpCi0gICAgICAgIGFz
c2VydChjb25maWd1cmF0aW9uID09ICJEZWJ1ZyIgb3IgY29uZmlndXJhdGlvbiA9PSAiUmVsZWFz
ZSIpCisgICAgICAgICMgRklYTUU6IFVuaWZ5IHRoaXMgd2l0aCB3ZWJraXRkaXIucG0gY29uZmln
dXJhdGlvbiByZWFkaW5nIGNvZGUuCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBzZWxmLl9yZWFk
X2NvbmZpZ3VyYXRpb24oKQorICAgICAgICBpZiBjb25maWd1cmF0aW9uIG5vdCBpbiBzZWxmLl9S
RUNPR05JWkVEX0NPTkZJR1VSQVRJT05TOgorICAgICAgICAgICAgX2xvZy53YXJuKCJDb25maWd1
cmF0aW9uIFwiJXNcIiBmb3VuZCBpbiAlcyBpcyBub3QgYSByZWNvZ25pemVkIHZhbHVlLlxuIgor
ICAgICAgICAgICAgICAgICAgICAgICJTY3JpcHRzIG1heSBmYWlsLiAgU2VlICdzZXQtd2Via2l0
LWNvbmZpZ3VyYXRpb24gLS1oZWxwJy4iKQorICAgICAgICBpZiBub3QgY29uZmlndXJhdGlvbjoK
KyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKICAgICAgICAgcmV0dXJuIGNv
bmZpZ3VyYXRpb24KIAogICAgIGRlZiBfd2Via2l0X2J1aWxkX2RpcmVjdG9yeShzZWxmLCBhcmdz
KToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55381</attachid>
            <date>2010-05-07 09:07:39 -0700</date>
            <delta_ts>2010-05-07 09:35:54 -0700</delta_ts>
            <desc>Updated patch for testing on windows</desc>
            <filename>bug-38718-20100507090734.patch</filename>
            <type>text/plain</type>
            <size>10951</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li4yMzYxYjhh
NzNjMmY1ZGJkY2RmODcyNzg2NmE5YzNmYTMzMWY3NzE4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAgLSBNYWtlIGRlZmF1bHRfY29uZmlndXJhdGlvbiBhY3R1YWxseSBy
ZWFkIGZyb20gdGhlIENvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAg
ICAtIFRlc3QgZGVmYXVsdF9jb25maWd1cmF0aW9uCisKIDIwMTAtMDUtMDYgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI1ODkzMy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CmluZGV4IDExZWIwNTE2NWZjZmMwMWRjNTk1
MDU1NDVlYjY3MzUzNTgxNzFjZTAuLjY4NmRlZDVmZGI3YThlZjM3YTgzYmU2MjYzZTE1NzU4MTAx
NGRjZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9leGVjdXRpdmUucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtMzMsNiArMzMsNyBAQCB0cnk6CiBleGNlcHQgSW1w
b3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNzaW5nID0gTm9uZQogCitpbXBvcnQgZXJybm8KIGlt
cG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgU3RyaW5nSU8KQEAgLTE2MiwzMCArMTYz
LDU1IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIG1hY2hpbmVzLgogICAg
ICAgICByZXR1cm4gMgogCisgICAgIyBFeGVjdXRpdmUgdW5pdCB0ZXN0cyB1c2VzIHRoaXMgaW5m
b3JtYXRpb24gdG8gdmFsaWRhdGUgdGhhdAorICAgICMga2lsbF9wcm9jZXNzL2tpbGxfYWxsIHdv
cmsgYXMgZXhwZWN0ZWQgYW4gY2F1c2UgdGhlIGV4cGVjdGVkIGV4aXQgY29kZXMuCisgICAgIyBX
ZSBzdG9yZSB0aGlzIGluZm9ybWF0aW9uIGluIHRoaXMgZmlsZSB0byBrZWVwIGl0IG5leHQgdG8g
dGhlIHBsYXRmb3JtIGlmcy4KKyAgICAjIHRhc2traWxsLmV4ZSBjYXVzZXMgcHJvY2Vzc2VzIHRv
IGV4aXQgMCwgb3RoZXJ3aXNlIHByb2Nlc3NlcyBleGl0IC1TSUdOQUwKKyAgICBfS0lMTF9QUk9D
RVNTX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSA9IDAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW5k
b3dzIiBlbHNlIC1zaWduYWwuU0lHS0lMTAorICAgIF9LSUxMX0FMTF9LSUxMRURfUFJPQ0VTU19F
WElUX0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3MiLCAiY3lnd2luIikgZWxz
ZSAtc2lnbmFsLlNJR1RFUk0KKwogICAgIGRlZiBraWxsX3Byb2Nlc3Moc2VsZiwgcGlkKToKICAg
ICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCB0aGUgZ2l2ZW4gcGlkLgogICAgICAgICBXaWxsIGZh
aWwgc2lsZW50bHkgaWYgcGlkIGRvZXMgbm90IGV4aXN0IG9yIGluc3VmZmljaWVudCBwZXJtaXNz
c2lvbnMuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIjoKLSAg
ICAgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9v
cy5odG1sCi0gICAgICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3Mu
ICBIb3dldmVyLCB3aGVuIEkgdHJpZWQgaXQKLSAgICAgICAgICAgICMgdXNpbmcgQ3lnd2luLCBp
dCB3b3JrZWQgZmluZS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyCi0gICAgICAgICAg
ICAjIHdlIG5lZWQgdGhpcyBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGhlcmUuCi0gICAgICAgICAg
ICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL3BpZCIsIHN0cihwaWQpXQorICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbmRvd3MiOgorICAgICAgICAgICAgIyBXZSBjYW4n
dCAoZWFzaWx5KSB1c2UgdGFza2tpbGwuZXhlIG9uIGN5Z3dpbiBiZWNhdXNlCisgICAgICAgICAg
ICAjIHN1YnByb2Nlc3MucGlkIGlzIGEgY3lnd2luIHBpZCBhbmQgdGFza2tpbGwgZXhwZWN0cyBh
IHdpbmRvd3MgcGlkLgorICAgICAgICAgICAgIyBUaGFua2Z1bGx5IG9zLmtpbGwgb24gY3lnd2lu
IGhhbmRsZXMgZWl0aGVyIHBpZCB0eXBlLgorICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tp
bGwuZXhlIiwgIi9mIiwgIi9waWQiLCBwaWRdCiAgICAgICAgICAgICAjIHRhc2traWxsIHdpbGwg
ZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLgogICAgICAgICAgICAgc2VsZi5y
dW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3JlX2Vycm9yKQogICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLmtpbGwocGlkLCBz
aWduYWwuU0lHS0lMTCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6Ci0gICAgICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGQgbWFrZSBub24tc2lsZW50IGZhaWx1cmUgYW4gb3B0aW9uLgotICAg
ICAgICAgICAgcGFzcworCisgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhv
bi5vcmcvbGlicmFyeS9vcy5odG1sCisgICAgICAgICMgb3Mua2lsbCBpc24ndCBhdmFpbGFibGUg
b24gV2luZG93cy4gcHl0aG9uIDIuNS41IG9zLmtpbGwgYXBwZWFycworICAgICAgICAjIHRvIHdv
cmsgaW4gY3lnd2luLCBob3dldmVyIGl0IG9jY2FzaW9uYWxseSByYWlzZXMgRUFHQUlOLgorICAg
ICAgICByZXRyaWVzX2xlZnQgPSAzIGlmIHN5cy5wbGF0Zm9ybSA9PSAiY3lnd2luIiBlbHNlIDEK
KyAgICAgICAgd2hpbGUgcmV0cmllc19sZWZ0OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHJldHJpZXNfbGVmdCAtPSAxCisgICAgICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNp
Z25hbC5TSUdLSUxMKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6CisgICAgICAgICAg
ICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FQUdBSU46CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FU1JDSDogICMgVGhl
IHByb2Nlc3MgZG9lcyBub3QgZXhpc3QuCisgICAgICAgICAgICAgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBtYWtlIG5vbi1zaWxlbnQgZmFpbHVyZSBhbiBvcHRpb24uCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgX3dpbmRvd3Nf
aW1hZ2VfbmFtZShzZWxmLCBwcm9jZXNzX25hbWUpOgorICAgICAgICBuYW1lLCBleHRlbnNpb24g
PSBvcy5wYXRoLnNwbGl0ZXh0KHByb2Nlc3NfbmFtZSkKKyAgICAgICAgaWYgbm90IGV4dGVuc2lv
bjoKKyAgICAgICAgICAgICMgdGFza2tpbGwgZXhwZWN0cyBwcm9jZXNzZXMgdG8gZW5kIGluIC5l
eGUKKyAgICAgICAgICAgICMgSWYgbmVjZXNzYXJ5IHdlIGNvdWxkIGFkZCBhIGZsYWcgdG8gZGlz
YWJsZSBhcHBlbmRpbmcgLmV4ZS4KKyAgICAgICAgICAgIHByb2Nlc3NfbmFtZSA9ICIlcy5leGUi
ICUgbmFtZQorICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1lCiAKICAgICBkZWYga2lsbF9hbGwo
c2VsZiwgcHJvY2Vzc19uYW1lKToKICAgICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCBwcm9jZXNz
ZXMgbWF0Y2hpbmcgcHJvY2Vzc19uYW1lLgogICAgICAgICBXaWxsIGZhaWwgc2lsZW50bHkgaWYg
bm8gcHJvY2VzcyBhcmUgZm91bmQuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09
ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgV2UgbWlnaHQgd2FudCB0byBhdXRvbWF0aWNhbGx5
IGFwcGVuZCAuZXhlPwotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tpbGwuZXhlIiwgIi9m
IiwgIi9pbSIsIHByb2Nlc3NfbmFtZV0KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgid2lu
ZG93cyIsICJjeWd3aW4iKToKKyAgICAgICAgICAgIGltYWdlX25hbWUgPSBzZWxmLl93aW5kb3dz
X2ltYWdlX25hbWUocHJvY2Vzc19uYW1lKQorICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tp
bGwuZXhlIiwgIi9mIiwgIi9pbSIsIGltYWdlX25hbWVdCiAgICAgICAgICAgICAjIHRhc2traWxs
IHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLgogICAgICAgICAgICAg
c2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3JlX2Vycm9y
KQogICAgICAgICAgICAgcmV0dXJuCkBAIC0xOTUsNiArMjIxLDggQEAgY2xhc3MgRXhlY3V0aXZl
KG9iamVjdCk6CiAgICAgICAgICMgV2Ugc2hvdWxkIHBpY2sgb25lIG1vZGUsIG9yIGFkZCBzdXBw
b3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0aGVtLgogICAgICAgICAjIE5vdGU6IE1hYyBPUyBY
IDEwLjYgcmVxdWlyZXMgLVNJR05BTE5BTUUgYmVmb3JlIC11IFVTRVIKICAgICAgICAgY29tbWFu
ZCA9IFsia2lsbGFsbCIsICItVEVSTSIsICItdSIsIG9zLmdldGVudigiVVNFUiIpLCBwcm9jZXNz
X25hbWVdCisgICAgICAgICMga2lsbGFsbCByZXR1cm5zIDEgaWYgbm8gcHJvY2VzcyBjYW4gYmUg
Zm91bmQgYW5kIDIgb24gY29tbWFuZCBlcnJvci4KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxk
IHBhc3MgYSBjdXN0b20gZXJyb3JfaGFuZGxlciB0byBhbGxvdyBvbmx5IGV4aXRfY29kZSAxLgog
ICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1hbmQsIGVycm9yX2hhbmRsZXI9c2VsZi5pZ25v
cmVfZXJyb3IpCiAKICAgICAjIEVycm9yIGhhbmRsZXJzIGRvIG5vdCBuZWVkIHRvIGJlIHN0YXRp
YyBtZXRob2RzIG9uY2UgYWxsIGNhbGxlcnMgYXJlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVz
dC5weQppbmRleCBjZTkxMjY5YzE2ZDA1NzdiYjQyZGExMTkzNjZmNWU0NTAyMDE3ZDM1Li4wYzU4
YTgwMTEzNmFkODBhZTM3NTlmNGNhMmRmOWVmYzljY2RhMTRmIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRp
dmVfdW5pdHRlc3QucHkKQEAgLTc3LDEwICs3NywyNCBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJ5
ZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
cm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAgIGV4ZWN1
dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cHJvY2Vzcy53YWl0KCksIC1zaWduYWwuU0lHS0lMTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwcm9jZXNzLndhaXQoKSwgZXhlY3V0aXZlLl9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdhaW4gc2hvdWxkIGZhaWwgc2lsZW50bHku
CiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCiAKKyAgICBkZWYg
X2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZiwgbmFtZSwgZXhwZWN0ZWRfd2luZG93c19u
YW1lKToKKyAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgd2luZG93c19u
YW1lID0gZXhlY3V0aXZlLl93aW5kb3dzX2ltYWdlX25hbWUobmFtZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh3aW5kb3dzX25hbWUsIGV4cGVjdGVkX3dpbmRvd3NfbmFtZSkKKworICAgIGRl
ZiB0ZXN0X3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3dp
bmRvd3NfaW1hZ2VfbmFtZSgiZm9vIiwgImZvby5leGUiKQorICAgICAgICBzZWxmLl9hc3NlcnRf
d2luZG93c19pbWFnZV9uYW1lKCJmb28uZXhlIiwgImZvby5leGUiKQorICAgICAgICBzZWxmLl9h
c3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uY29tIiwgImZvby5jb20iKQorICAgICAgICAj
IElmIHRoZSBuYW1lIGxvb2tzIGxpa2UgYW4gZXh0ZW5zaW9uLCBldmVuIGlmIGl0IGlzbid0Cisg
ICAgICAgICMgc3VwcG9zZWQgdG8sIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byByZXR1cm4gdGhl
IG9yaWdpbmFsIG5hbWUuCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUo
ImZvby5iYXoiLCAiZm9vLmJheiIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdl
X25hbWUoImZvby5iYXouZXhlIiwgImZvby5iYXouZXhlIikKKwogICAgIGRlZiB0ZXN0X2tpbGxf
YWxsKHNlbGYpOgogICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUoKQogICAgICAgICAjIEZJ
WE1FOiBUaGlzIG1heSBuZWVkIGVkaXRzIHRvIHdvcmsgcmlnaHQgb24gd2luZG93cy4KQEAgLTg4
LDYgKzEwMiw2IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJvY2Vz
cy5QSVBFKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAg
IyBQcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfYWxsKCJ5ZXMiKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR1RFUk0p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4ZWN1dGl2ZS5fS0lM
TF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdhaW4g
c2hvdWxkIGZhaWwgc2lsZW50bHkuCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX2FsbCgieWVzIikK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHkKaW5kZXggYWRhODNjZTQ3ZDBmYmViNGQ5MjI5ZWNlZmMzMWIxNGIxOWU4
MzgwZi4uMjA5N2NlNzllMDA5MjQ2ZjQwNzk4ZWJjZjcwYjgzNmMzYTAyNzNiZSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHkKQEAgLTI5NCwxMyArMjk0LDMzIEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgcmV0dXJuIHNlbGYudGVzdF9iYXNlX3BsYXRmb3JtX25hbWVzKCkgKyAoCiAg
ICAgICAgICAgICAnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcp
CiAKKyAgICBkZWYgX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKHNlbGYpOgorICAgICAgICBidWls
ZF9yb290ID0gc2VsZi5fd2Via2l0X2J1aWxkX2RpcmVjdG9yeShbIi0tdG9wLWxldmVsIl0pCisg
ICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oYnVpbGRfcm9vdCwgIkNvbmZpZ3VyYXRpb24iKQor
CisgICAgIyBFYXN5IG92ZXJyaWRlIGZvciB1bml0IHRlc3RzCisgICAgZGVmIF9vcGVuX2NvbmZp
Z3VyYXRpb25fZmlsZShzZWxmKToKKyAgICAgICAgY29uZmlndXJhdGlvbl9wYXRoID0gc2VsZi5f
Y29uZmlndXJhdGlvbl9maWxlX3BhdGgoKQorICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4oY29u
ZmlndXJhdGlvbl9wYXRoLCAiciIsICJ1dGYtOCIpCisKKyAgICBkZWYgX3JlYWRfY29uZmlndXJh
dGlvbihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBzZWxmLl9vcGVuX2Nv
bmZpZ3VyYXRpb25fZmlsZSgpIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGUu
cmVhZGxpbmUoKS5yc3RyaXAoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICAjIEZJWE1FOiBUaGlzIGxpc3QgbWF5IGJlIGluY29tcGxl
dGUgYXMgQXBwbGUgaGFzIHNvbWUgc2VrcmV0IGNvbmZpZ3MuCisgICAgX1JFQ09HTklaRURfQ09O
RklHVVJBVElPTlMgPSAoIkRlYnVnIiwgIlJlbGVhc2UiKQorCiAgICAgZGVmIGRlZmF1bHRfY29u
ZmlndXJhdGlvbihzZWxmKToKLSAgICAgICAgIyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay4gVGhp
cyBzdGF0ZSBleGlzdHMgaW4gYSBtdWNoIG5pY2VyIGZvcm0gaW4KLSAgICAgICAgIyBwZXJsLWxh
bmQuCi0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBvc3BhdGgucmVscGF0aCgKLSAgICAgICAgICAg
IHNlbGYuX3dlYmtpdF9idWlsZF9kaXJlY3RvcnkoWyItLWNvbmZpZ3VyYXRpb24iXSksCi0gICAg
ICAgICAgICBzZWxmLl93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KFsiLS10b3AtbGV2ZWwiXSkpCi0g
ICAgICAgIGFzc2VydChjb25maWd1cmF0aW9uID09ICJEZWJ1ZyIgb3IgY29uZmlndXJhdGlvbiA9
PSAiUmVsZWFzZSIpCisgICAgICAgICMgRklYTUU6IFVuaWZ5IHRoaXMgd2l0aCB3ZWJraXRkaXIu
cG0gY29uZmlndXJhdGlvbiByZWFkaW5nIGNvZGUuCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBz
ZWxmLl9yZWFkX2NvbmZpZ3VyYXRpb24oKQorICAgICAgICBpZiBub3QgY29uZmlndXJhdGlvbjoK
KyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAgICAgaWYgY29uZmln
dXJhdGlvbiBub3QgaW4gc2VsZi5fUkVDT0dOSVpFRF9DT05GSUdVUkFUSU9OUzoKKyAgICAgICAg
ICAgIF9sb2cud2FybigiQ29uZmlndXJhdGlvbiBcIiVzXCIgZm91bmQgaW4gJXMgaXMgbm90IGEg
cmVjb2duaXplZCB2YWx1ZS5cbiIgJSAoY29uZmlndXJhdGlvbiwgc2VsZi5fY29uZmlndXJhdGlv
bl9maWxlX3BhdGgoKSkpCisgICAgICAgICAgICBfbG9nLndhcm4oIlNjcmlwdHMgbWF5IGZhaWwu
ICBTZWUgJ3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWhlbHAnLiIpCiAgICAgICAgIHJldHVy
biBjb25maWd1cmF0aW9uCiAKICAgICBkZWYgX3dlYmtpdF9idWlsZF9kaXJlY3Rvcnkoc2VsZiwg
YXJncyk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55386</attachid>
            <date>2010-05-07 09:36:21 -0700</date>
            <delta_ts>2010-05-07 10:07:13 -0700</delta_ts>
            <desc>Updated patch for testing on windows</desc>
            <filename>bug-38718-20100507093618.patch</filename>
            <type>text/plain</type>
            <size>12012</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li41OWU4MzAz
MTRhYjBhNWExNDY2MTRmYmVkMTUyMGY5OTZlY2RjZDljIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAgLSBNYWtlIGRlZmF1bHRfY29uZmlndXJhdGlvbiBhY3R1YWxseSBy
ZWFkIGZyb20gdGhlIENvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAg
ICAtIFRlc3QgZGVmYXVsdF9jb25maWd1cmF0aW9uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgICAtIE5lZWQgYSBiYXNpYyBi
YXNlbGluZV9zZWFyY2hfcGF0aCBpZiAtLXBsYXRmb3JtIGRyeXJ1biBpcyB0byB3b3JrLgorCiAy
MDEwLTA1LTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNTg5MzMuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQppbmRl
eCAxMWViMDUxNjVmY2ZjMDFkYzU5NTA1NTQ1ZWI2NzM1MzU4MTcxY2UwLi42ODZkZWQ1ZmRiN2E4
ZWYzN2E4M2JlNjI2M2UxNTc1ODEwMTRkY2ZiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKQEAgLTMzLDYgKzMz
LDcgQEAgdHJ5OgogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIG11bHRpcHJvY2Vzc2luZyA9IE5v
bmUKIAoraW1wb3J0IGVycm5vCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IFN0
cmluZ0lPCkBAIC0xNjIsMzAgKzE2Myw1NSBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAg
ICAgICAgIyBtYWNoaW5lcy4KICAgICAgICAgcmV0dXJuIDIKIAorICAgICMgRXhlY3V0aXZlIHVu
aXQgdGVzdHMgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHRvIHZhbGlkYXRlIHRoYXQKKyAgICAjIGtp
bGxfcHJvY2Vzcy9raWxsX2FsbCB3b3JrIGFzIGV4cGVjdGVkIGFuIGNhdXNlIHRoZSBleHBlY3Rl
ZCBleGl0IGNvZGVzLgorICAgICMgV2Ugc3RvcmUgdGhpcyBpbmZvcm1hdGlvbiBpbiB0aGlzIGZp
bGUgdG8ga2VlcCBpdCBuZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgIyB0YXNra2lsbC5l
eGUgY2F1c2VzIHByb2Nlc3NlcyB0byBleGl0IDAsIG90aGVyd2lzZSBwcm9jZXNzZXMgZXhpdCAt
U0lHTkFMCisgICAgX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VTU19FWElUX0NPREUgPSAwIGlm
IHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyIgZWxzZSAtc2lnbmFsLlNJR0tJTEwKKyAgICBfS0lM
TF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFID0gMCBpZiBzeXMucGxhdGZvcm0gaW4gKCJ3
aW5kb3dzIiwgImN5Z3dpbiIpIGVsc2UgLXNpZ25hbC5TSUdURVJNCisKICAgICBkZWYga2lsbF9w
cm9jZXNzKHNlbGYsIHBpZCk6CiAgICAgICAgICIiIkF0dGVtcHRzIHRvIGtpbGwgdGhlIGdpdmVu
IHBpZC4KICAgICAgICAgV2lsbCBmYWlsIHNpbGVudGx5IGlmIHBpZCBkb2VzIG5vdCBleGlzdCBv
ciBpbnN1ZmZpY2llbnQgcGVybWlzc3Npb25zLiIiIgotICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0
ZW0oKSA9PSAiV2luZG93cyI6Ci0gICAgICAgICAgICAjIEFjY29yZGluZyB0byBodHRwOi8vZG9j
cy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAotICAgICAgICAgICAgIyBvcy5raWxsIGlzbid0
IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiAgSG93ZXZlciwgd2hlbiBJIHRyaWVkIGl0Ci0gICAgICAg
ICAgICAjIHVzaW5nIEN5Z3dpbiwgaXQgd29ya2VkIGZpbmUuICBXZSBzaG91bGQgaW52ZXN0aWdh
dGUgd2hldGhlcgotICAgICAgICAgICAgIyB3ZSBuZWVkIHRoaXMgcGxhdGZvcm0gc3BlY2lmaWMg
Y29kZSBoZXJlLgotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tpbGwuZXhlIiwgIi9mIiwg
Ii9waWQiLCBzdHIocGlkKV0KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW5kb3dzIjoK
KyAgICAgICAgICAgICMgV2UgY2FuJ3QgKGVhc2lseSkgdXNlIHRhc2traWxsLmV4ZSBvbiBjeWd3
aW4gYmVjYXVzZQorICAgICAgICAgICAgIyBzdWJwcm9jZXNzLnBpZCBpcyBhIGN5Z3dpbiBwaWQg
YW5kIHRhc2traWxsIGV4cGVjdHMgYSB3aW5kb3dzIHBpZC4KKyAgICAgICAgICAgICMgVGhhbmtm
dWxseSBvcy5raWxsIG9uIGN5Z3dpbiBoYW5kbGVzIGVpdGhlciBwaWQgdHlwZS4KKyAgICAgICAg
ICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvcGlkIiwgcGlkXQogICAgICAg
ICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBmb3Vu
ZC4KICAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJyb3JfaGFuZGxlcj1z
ZWxmLmlnbm9yZV9lcnJvcikKICAgICAgICAgICAgIHJldHVybgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCi0gICAgICAgIGV4Y2VwdCBPU0Vy
cm9yLCBlOgotICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG1ha2Ugbm9uLXNpbGVudCBm
YWlsdXJlIGFuIG9wdGlvbi4KLSAgICAgICAgICAgIHBhc3MKKworICAgICAgICAjIEFjY29yZGlu
ZyB0byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAorICAgICAgICAjIG9z
LmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuIHB5dGhvbiAyLjUuNSBvcy5raWxsIGFw
cGVhcnMKKyAgICAgICAgIyB0byB3b3JrIGluIGN5Z3dpbiwgaG93ZXZlciBpdCBvY2Nhc2lvbmFs
bHkgcmFpc2VzIEVBR0FJTi4KKyAgICAgICAgcmV0cmllc19sZWZ0ID0gMyBpZiBzeXMucGxhdGZv
cm0gPT0gImN5Z3dpbiIgZWxzZSAxCisgICAgICAgIHdoaWxlIHJldHJpZXNfbGVmdDoKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXRyaWVzX2xlZnQgLT0gMQorICAgICAgICAg
ICAgICAgIG9zLmtpbGwocGlkLCBzaWduYWwuU0lHS0lMTCkKKyAgICAgICAgICAgIGV4Y2VwdCBP
U0Vycm9yLCBlOgorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFHQUlOOgor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8g
PT0gZXJybm8uRVNSQ0g6ICAjIFRoZSBwcm9jZXNzIGRvZXMgbm90IGV4aXN0LgorICAgICAgICAg
ICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgbWFrZSBub24tc2lsZW50IGZhaWx1cmUgYW4g
b3B0aW9uLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICByYWlz
ZQorCisgICAgZGVmIF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZiwgcHJvY2Vzc19uYW1lKToKKyAg
ICAgICAgbmFtZSwgZXh0ZW5zaW9uID0gb3MucGF0aC5zcGxpdGV4dChwcm9jZXNzX25hbWUpCisg
ICAgICAgIGlmIG5vdCBleHRlbnNpb246CisgICAgICAgICAgICAjIHRhc2traWxsIGV4cGVjdHMg
cHJvY2Vzc2VzIHRvIGVuZCBpbiAuZXhlCisgICAgICAgICAgICAjIElmIG5lY2Vzc2FyeSB3ZSBj
b3VsZCBhZGQgYSBmbGFnIHRvIGRpc2FibGUgYXBwZW5kaW5nIC5leGUuCisgICAgICAgICAgICBw
cm9jZXNzX25hbWUgPSAiJXMuZXhlIiAlIG5hbWUKKyAgICAgICAgcmV0dXJuIHByb2Nlc3NfbmFt
ZQogCiAgICAgZGVmIGtpbGxfYWxsKHNlbGYsIHByb2Nlc3NfbmFtZSk6CiAgICAgICAgICIiIkF0
dGVtcHRzIHRvIGtpbGwgcHJvY2Vzc2VzIG1hdGNoaW5nIHByb2Nlc3NfbmFtZS4KICAgICAgICAg
V2lsbCBmYWlsIHNpbGVudGx5IGlmIG5vIHByb2Nlc3MgYXJlIGZvdW5kLiIiIgotICAgICAgICBp
ZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6Ci0gICAgICAgICAgICAjIFdlIG1pZ2h0
IHdhbnQgdG8gYXV0b21hdGljYWxseSBhcHBlbmQgLmV4ZT8KLSAgICAgICAgICAgIGNvbW1hbmQg
PSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBwcm9jZXNzX25hbWVdCisgICAgICAgIGlm
IHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3MiLCAiY3lnd2luIik6CisgICAgICAgICAgICBpbWFn
ZV9uYW1lID0gc2VsZi5fd2luZG93c19pbWFnZV9uYW1lKHByb2Nlc3NfbmFtZSkKKyAgICAgICAg
ICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBpbWFnZV9uYW1lXQog
ICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlzIG5v
dCBmb3VuZC4KICAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJyb3JfaGFu
ZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKICAgICAgICAgICAgIHJldHVybgpAQCAtMTk1LDYgKzIy
MSw4IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIFdlIHNob3VsZCBwaWNr
IG9uZSBtb2RlLCBvciBhZGQgc3VwcG9ydCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGhlbS4KICAg
ICAgICAgIyBOb3RlOiBNYWMgT1MgWCAxMC42IHJlcXVpcmVzIC1TSUdOQUxOQU1FIGJlZm9yZSAt
dSBVU0VSCiAgICAgICAgIGNvbW1hbmQgPSBbImtpbGxhbGwiLCAiLVRFUk0iLCAiLXUiLCBvcy5n
ZXRlbnYoIlVTRVIiKSwgcHJvY2Vzc19uYW1lXQorICAgICAgICAjIGtpbGxhbGwgcmV0dXJucyAx
IGlmIG5vIHByb2Nlc3MgY2FuIGJlIGZvdW5kIGFuZCAyIG9uIGNvbW1hbmQgZXJyb3IuCisgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZCBwYXNzIGEgY3VzdG9tIGVycm9yX2hhbmRsZXIgdG8gYWxs
b3cgb25seSBleGl0X2NvZGUgMS4KICAgICAgICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBl
cnJvcl9oYW5kbGVyPXNlbGYuaWdub3JlX2Vycm9yKQogCiAgICAgIyBFcnJvciBoYW5kbGVycyBk
byBub3QgbmVlZCB0byBiZSBzdGF0aWMgbWV0aG9kcyBvbmNlIGFsbCBjYWxsZXJzIGFyZQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKaW5kZXggY2U5MTI2OWMxNmQwNTc3YmI0MmRhMTE5
MzY2ZjVlNDUwMjAxN2QzNS4uMGM1OGE4MDExMzZhZDgwYWUzNzU5ZjRjYTJkZjllZmM5Y2NkYTE0
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L2V4ZWN1dGl2ZV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CkBAIC03NywxMCArNzcsMjQgQEAg
Y2xhc3MgRXhlY3V0aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Nlc3Mg
PSBzdWJwcm9jZXNzLlBvcGVuKFsieWVzIl0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy5wb2xsKCksIE5vbmUpICAjIFByb2Nlc3MgaXMg
cnVubmluZwogICAgICAgICBleGVjdXRpdmUua2lsbF9wcm9jZXNzKHByb2Nlc3MucGlkKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR0tJTEwpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4ZWN1dGl2ZS5fS0lMTF9Q
Uk9DRVNTX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSkKICAgICAgICAgIyBLaWxsaW5nIGFnYWlu
IHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAgICAgICBleGVjdXRpdmUua2lsbF9wcm9jZXNzKHBy
b2Nlc3MucGlkKQogCisgICAgZGVmIF9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKHNlbGYsIG5h
bWUsIGV4cGVjdGVkX3dpbmRvd3NfbmFtZSk6CisgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2
ZSgpCisgICAgICAgIHdpbmRvd3NfbmFtZSA9IGV4ZWN1dGl2ZS5fd2luZG93c19pbWFnZV9uYW1l
KG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod2luZG93c19uYW1lLCBleHBlY3RlZF93
aW5kb3dzX25hbWUpCisKKyAgICBkZWYgdGVzdF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZik6Cisg
ICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoImZvbyIsICJmb28uZXhlIikK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmV4ZSIsICJmb28u
ZXhlIikKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmNvbSIs
ICJmb28uY29tIikKKyAgICAgICAgIyBJZiB0aGUgbmFtZSBsb29rcyBsaWtlIGFuIGV4dGVuc2lv
biwgZXZlbiBpZiBpdCBpc24ndAorICAgICAgICAjIHN1cHBvc2VkIHRvLCB3ZSBoYXZlIG5vIGNo
b2ljZSBidXQgdG8gcmV0dXJuIHRoZSBvcmlnaW5hbCBuYW1lLgorICAgICAgICBzZWxmLl9hc3Nl
cnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uYmF6IiwgImZvby5iYXoiKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uYmF6LmV4ZSIsICJmb28uYmF6LmV4ZSIp
CisKICAgICBkZWYgdGVzdF9raWxsX2FsbChzZWxmKToKICAgICAgICAgZXhlY3V0aXZlID0gRXhl
Y3V0aXZlKCkKICAgICAgICAgIyBGSVhNRTogVGhpcyBtYXkgbmVlZCBlZGl0cyB0byB3b3JrIHJp
Z2h0IG9uIHdpbmRvd3MuCkBAIC04OCw2ICsxMDIsNiBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJ5
ZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
cm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAgIGV4ZWN1
dGl2ZS5raWxsX2FsbCgieWVzIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndh
aXQoKSwgLXNpZ25hbC5TSUdURVJNKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mu
d2FpdCgpLCBleGVjdXRpdmUuX0tJTExfQUxMX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSkKICAg
ICAgICAgIyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAgICAgICBleGVj
dXRpdmUua2lsbF9hbGwoInllcyIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IGFkYTgzY2U0N2QwZmJl
YjRkOTIyOWVjZWZjMzFiMTRiMTllODM4MGYuLjIwOTdjZTc5ZTAwOTI0NmY0MDc5OGViY2Y3MGI4
MzZjM2EwMjczYmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC0yOTQsMTMgKzI5NCwzMyBAQCBjbGFz
cyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxmLnRlc3RfYmFzZV9w
bGF0Zm9ybV9uYW1lcygpICsgKAogICAgICAgICAgICAgJ21hYy10aWdlcicsICdtYWMtbGVvcGFy
ZCcsICdtYWMtc25vd2xlb3BhcmQnKQogCisgICAgZGVmIF9jb25maWd1cmF0aW9uX2ZpbGVfcGF0
aChzZWxmKToKKyAgICAgICAgYnVpbGRfcm9vdCA9IHNlbGYuX3dlYmtpdF9idWlsZF9kaXJlY3Rv
cnkoWyItLXRvcC1sZXZlbCJdKQorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKGJ1aWxkX3Jv
b3QsICJDb25maWd1cmF0aW9uIikKKworICAgICMgRWFzeSBvdmVycmlkZSBmb3IgdW5pdCB0ZXN0
cworICAgIGRlZiBfb3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoc2VsZik6CisgICAgICAgIGNvbmZp
Z3VyYXRpb25fcGF0aCA9IHNlbGYuX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKCkKKyAgICAgICAg
cmV0dXJuIGNvZGVjcy5vcGVuKGNvbmZpZ3VyYXRpb25fcGF0aCwgInIiLCAidXRmLTgiKQorCisg
ICAgZGVmIF9yZWFkX2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHdpdGggc2VsZi5fb3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoKSBhcyBmaWxlOgorICAgICAg
ICAgICAgICAgIHJldHVybiBmaWxlLnJlYWRsaW5lKCkucnN0cmlwKCkKKyAgICAgICAgZXhjZXB0
IElPRXJyb3IsIGU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIyBGSVhNRTogVGhp
cyBsaXN0IG1heSBiZSBpbmNvbXBsZXRlIGFzIEFwcGxlIGhhcyBzb21lIHNla3JldCBjb25maWdz
LgorICAgIF9SRUNPR05JWkVEX0NPTkZJR1VSQVRJT05TID0gKCJEZWJ1ZyIsICJSZWxlYXNlIikK
KwogICAgIGRlZiBkZWZhdWx0X2NvbmZpZ3VyYXRpb24oc2VsZik6Ci0gICAgICAgICMgVGhpcyBp
cyBhIGJpdCBvZiBhIGhhY2suIFRoaXMgc3RhdGUgZXhpc3RzIGluIGEgbXVjaCBuaWNlciBmb3Jt
IGluCi0gICAgICAgICMgcGVybC1sYW5kLgotICAgICAgICBjb25maWd1cmF0aW9uID0gb3NwYXRo
LnJlbHBhdGgoCi0gICAgICAgICAgICBzZWxmLl93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KFsiLS1j
b25maWd1cmF0aW9uIl0pLAotICAgICAgICAgICAgc2VsZi5fd2Via2l0X2J1aWxkX2RpcmVjdG9y
eShbIi0tdG9wLWxldmVsIl0pKQotICAgICAgICBhc3NlcnQoY29uZmlndXJhdGlvbiA9PSAiRGVi
dWciIG9yIGNvbmZpZ3VyYXRpb24gPT0gIlJlbGVhc2UiKQorICAgICAgICAjIEZJWE1FOiBVbmlm
eSB0aGlzIHdpdGggd2Via2l0ZGlyLnBtIGNvbmZpZ3VyYXRpb24gcmVhZGluZyBjb2RlLgorICAg
ICAgICBjb25maWd1cmF0aW9uID0gc2VsZi5fcmVhZF9jb25maWd1cmF0aW9uKCkKKyAgICAgICAg
aWYgbm90IGNvbmZpZ3VyYXRpb246CisgICAgICAgICAgICBjb25maWd1cmF0aW9uID0gIlJlbGVh
c2UiCisgICAgICAgIGlmIGNvbmZpZ3VyYXRpb24gbm90IGluIHNlbGYuX1JFQ09HTklaRURfQ09O
RklHVVJBVElPTlM6CisgICAgICAgICAgICBfbG9nLndhcm4oIkNvbmZpZ3VyYXRpb24gXCIlc1wi
IGZvdW5kIGluICVzIGlzIG5vdCBhIHJlY29nbml6ZWQgdmFsdWUuXG4iICUgKGNvbmZpZ3VyYXRp
b24sIHNlbGYuX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKCkpKQorICAgICAgICAgICAgX2xvZy53
YXJuKCJTY3JpcHRzIG1heSBmYWlsLiAgU2VlICdzZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1o
ZWxwJy4iKQogICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbgogCiAgICAgZGVmIF93ZWJraXRf
YnVpbGRfZGlyZWN0b3J5KHNlbGYsIGFyZ3MpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQppbmRleCAzYjdhODE3YTBhYmE0
NDY1MDI0MDkyYjBiMjQ1YTA3ZjE4ZWM5MjY1Li4wMjY3NjZkMDczMWNlZWQ1MGI3MGUwZTA4NGY1
OTBhOWJkMTYwZTk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQpAQCAtNDQsNiArNDQsMTQgQEAgY2xhc3MgV2luUG9y
dChXZWJLaXRQb3J0KToKICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICd3aW4nCiAgICAgICAgIFdl
YktpdFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lLCBvcHRpb25zKQogCisgICAgZGVmIGJh
c2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICAjIEJhc2VkIG9uIGNvZGUgZnJvbSBv
bGQtcnVuLXdlYmtpdC10ZXN0cyBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoKQorICAgICAgICBy
ZXR1cm4gWworICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFt
ZSksCisgICAgICAgICAgICBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjLWxlb3BhcmQn
KSwKKyAgICAgICAgICAgIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMnKSwKKyAgICAg
ICAgXQorCiAgICAgZGVmIF90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1zKHNlbGYpOgogICAgICAg
ICAjIEZJWE1FOiBUaGlzIGxpc3QgY291bGQgYmUgZHluYW1pYyBiYXNlZCBvbiBwbGF0Zm9ybSBu
YW1lIGFuZAogICAgICAgICAjIHB1c2hlZCBpbnRvIGJhc2UuUG9ydC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55392</attachid>
            <date>2010-05-07 10:07:36 -0700</date>
            <delta_ts>2010-05-07 10:12:15 -0700</delta_ts>
            <desc>Final patch, addresses Ojan&apos;s comments and fixes everything except NRWT --platform dryrun on win</desc>
            <filename>bug-38718-20100507100733.patch</filename>
            <type>text/plain</type>
            <size>12460</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li5hYTAzZmQy
MzIyNTQyOWFjMWE3MGRmNjYwNzQ2YTVhODY4OTFjMmFjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgdGVzdC13ZWJraXRweSBmYWlscyB1bmRl
ciBjeWd3aW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4NzE4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlLnB5OgorICAgICAgICAgLSBBZGQgX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VTU19FWElU
X0NPREUgYW5kCisgICAgICAgICAgIF9LSUxMX0FMTF9LSUxMRURfUFJPQ0VTU19FWElUX0NPREUg
dG8gc3RvcmUgdGhlIGV4cGVjdGVkCisgICAgICAgICAgIGV4aXQgY29kZXMgb2YgcHJvY2Vzc2Vz
IGtpbGxlZCBieSBraWxsX3Byb2Nlc3MgYW5kIGtpbGxfYWxsLgorICAgICAgICAgICBUaGVzZSB0
d28gY29uc3RhbnRzIGFyZSBvbmx5IHVzZWQgYnkgdGhlIHVuaXQgdGVzdHMgYnV0IGFyZQorICAg
ICAgICAgICBzdG9yZWQgaW4gZXhlY3V0aXZlLnB5IHNvIHRoZXkgY2FuIGJlIHJpZ2h0IG5leHQg
dG8gdGhlIHBsYXRmb3JtIGlmcy4KKyAgICAgICAgIC0gUmVtb3ZlIHVubmVjZXNzYXJ5IHN0cigp
IGNvbnZlcnNpb24sIHJ1bl9jb21tYW5kIGRvZXMgdGhhdCBmb3IgdXMuCisgICAgICAgICAtIE1h
a2Ugb3Mua2lsbCByZXRyeSBvbiBjeWd3aW4gb24gRUFHQUlOLiAgSXQncyB1bmNsZWFyIHdoeSBD
WUdXSU4KKyAgICAgICAgICAgdGhyb3dzIEVBR0FJTiwgYnV0IGl0IG9ubHkgZG9lcyBzbyBzb21l
dGltZXMuICAzIG1heSBub3QgYmUgZW5vdWdoCisgICAgICAgICAgIHJldHJpZXMsIGJ1dCB3ZSds
bCB0cnkgaXQgdG8gc3RhcnQgd2l0aC4KKyAgICAgICAgIC0gQWRkIF93aW5kb3dzX2ltYWdlX25h
bWUgdG8gYXV0b21hdGljYWxseSBjb252ZXJ0ICJ5ZXMiIHRvICJ5ZXMuZXhlIgorICAgICAgICAg
ICBmb3IgdXNlIHdpdGggdGFza2tpbGwuZXhlIC9pbS4gIFZhcmlvdXMgY2FsbGVycyB0byBraWxs
X2FsbCBjb3VsZAorICAgICAgICAgICBiZSB1cGRhdGVkIHRvIHJlbW92ZSB0aGUgLmV4ZSwgYnV0
IHRoYXQgY2FuIGJlIGRvbmUgaW4gYW5vdGhlciBwYXRjaC4KKyAgICAgICAgIC0gVXNlIHRhc2tr
aWxsLmV4ZSBmb3Iga2lsbGFsbCBvbiBjeWd3aW4uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weToKKyAgICAgICAgIC0gVXNlIHRo
ZSBuZXcgKl9LSUxMRURfUFJPQ0VTU19FWElUX0NPREUgY29uc3RhbnRzIHdoaWNoIGFyZSBjb3Jy
ZWN0bHkKKyAgICAgICAgICAgc2V0IHRvIDAgb24gd2luZG93cy9jeWd3aW4gc3lzdGVtcyB3aGVy
ZSB0YXNra2lsbC5leGUgaXMgdXNlZC4KKyAgICAgICAgIC0gVGVzdCBfd2luZG93c19pbWFnZV9u
YW1lCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQu
cHk6CisgICAgICAgICAtIE1ha2UgZGVmYXVsdF9jb25maWd1cmF0aW9uIGFjdHVhbGx5IHJlYWQg
ZnJvbSB0aGUgQ29uZmlndXJhdGlvbiBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgIC0g
VGVzdCBkZWZhdWx0X2NvbmZpZ3VyYXRpb24KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgIC0gTmVlZCBhIGJhc2ljIGJhc2Vs
aW5lX3NlYXJjaF9wYXRoIGlmIC0tcGxhdGZvcm0gZHJ5cnVuIGlzIHRvIHdvcmsuCisKIDIwMTAt
MDUtMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1ODkzMy4KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CmluZGV4IDEx
ZWIwNTE2NWZjZmMwMWRjNTk1MDU1NDVlYjY3MzUzNTgxNzFjZTAuLjBiZTNmNWIzYjU5NGY0OGVj
ZDE5NzAwM2ViNTNjZGMwZjQ4ZmNlMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtMzMsNiArMzMsOCBA
QCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNzaW5nID0gTm9uZQog
CitpbXBvcnQgZXJybm8KK2ltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9y
bQogaW1wb3J0IFN0cmluZ0lPCkBAIC00Myw2ICs0NSw5IEBAIGltcG9ydCBzeXMKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IHRlZQogCiAKK19s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkuY29tbW9uLnN5c3RlbSIpCisKKwogY2xh
c3MgU2NyaXB0RXJyb3IoRXhjZXB0aW9uKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLApAQCAt
MTYyLDMxICsxNjcsNTYgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICMgbWFj
aGluZXMuCiAgICAgICAgIHJldHVybiAyCiAKKyAgICAjIEV4ZWN1dGl2ZSB1bml0IHRlc3RzIHVz
ZXMgdGhpcyBpbmZvcm1hdGlvbiB0byB2YWxpZGF0ZSB0aGF0CisgICAgIyBraWxsX3Byb2Nlc3Mv
a2lsbF9hbGwgd29yayBhcyBleHBlY3RlZCBhbiBjYXVzZSB0aGUgZXhwZWN0ZWQgZXhpdCBjb2Rl
cy4KKyAgICAjIFdlIHN0b3JlIHRoaXMgaW5mb3JtYXRpb24gaW4gdGhpcyBmaWxlIHRvIGtlZXAg
aXQgbmV4dCB0byB0aGUgcGxhdGZvcm0gaWZzLgorICAgICMgdGFza2tpbGwuZXhlIGNhdXNlcyBw
cm9jZXNzZXMgdG8gZXhpdCAwLCBvdGhlcndpc2UgcHJvY2Vzc2VzIGV4aXQgLVNJR05BTAorICAg
IF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFID0gMCBpZiBzeXMucGxhdGZv
cm0gPT0gIndpbmRvd3MiIGVsc2UgLXNpZ25hbC5TSUdLSUxMCisgICAgX0tJTExfQUxMX0tJTExF
RF9QUk9DRVNTX0VYSVRfQ09ERSA9IDAgaWYgc3lzLnBsYXRmb3JtIGluICgid2luZG93cyIsICJj
eWd3aW4iKSBlbHNlIC1zaWduYWwuU0lHVEVSTQorCiAgICAgZGVmIGtpbGxfcHJvY2VzcyhzZWxm
LCBwaWQpOgogICAgICAgICAiIiJBdHRlbXB0cyB0byBraWxsIHRoZSBnaXZlbiBwaWQuCiAgICAg
ICAgIFdpbGwgZmFpbCBzaWxlbnRseSBpZiBwaWQgZG9lcyBub3QgZXhpc3Qgb3IgaW5zdWZmaWNp
ZW50IHBlcm1pc3NzaW9ucy4iIiIKLSAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldp
bmRvd3MiOgotICAgICAgICAgICAgIyBBY2NvcmRpbmcgdG8gaHR0cDovL2RvY3MucHl0aG9uLm9y
Zy9saWJyYXJ5L29zLmh0bWwKLSAgICAgICAgICAgICMgb3Mua2lsbCBpc24ndCBhdmFpbGFibGUg
b24gV2luZG93cy4gIEhvd2V2ZXIsIHdoZW4gSSB0cmllZCBpdAotICAgICAgICAgICAgIyB1c2lu
ZyBDeWd3aW4sIGl0IHdvcmtlZCBmaW5lLiAgV2Ugc2hvdWxkIGludmVzdGlnYXRlIHdoZXRoZXIK
LSAgICAgICAgICAgICMgd2UgbmVlZCB0aGlzIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgaGVyZS4K
LSAgICAgICAgICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvcGlkIiwgc3Ry
KHBpZCldCi0gICAgICAgICAgICAjIHRhc2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nl
c3MgaXMgbm90IGZvdW5kLgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbmRvd3MiOgor
ICAgICAgICAgICAgIyBXZSBjYW4ndCAoZWFzaWx5KSB1c2UgdGFza2tpbGwuZXhlIG9uIGN5Z3dp
biBiZWNhdXNlCisgICAgICAgICAgICAjIHN1YnByb2Nlc3MucGlkIGlzIGEgY3lnd2luIHBpZCBh
bmQgdGFza2tpbGwgZXhwZWN0cyBhIHdpbmRvd3MgcGlkLgorICAgICAgICAgICAgIyBUaGFua2Z1
bGx5IG9zLmtpbGwgb24gY3lnd2luIGhhbmRsZXMgZWl0aGVyIHBpZCB0eXBlLgorICAgICAgICAg
ICAgY29tbWFuZCA9IFsidGFza2tpbGwuZXhlIiwgIi9mIiwgIi9waWQiLCBwaWRdCisgICAgICAg
ICAgICAjIHRhc2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5k
LiAgV2Ugc2hvdWxkIGxvZy4KICAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwg
ZXJyb3JfaGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKICAgICAgICAgICAgIHJldHVybgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCi0gICAg
ICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgotICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG1h
a2Ugbm9uLXNpbGVudCBmYWlsdXJlIGFuIG9wdGlvbi4KLSAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICAjIEFjY29yZGluZyB0byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRt
bAorICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuIHB5dGhvbiAy
LjUuNSBvcy5raWxsIGFwcGVhcnMKKyAgICAgICAgIyB0byB3b3JrIGluIGN5Z3dpbiwgaG93ZXZl
ciBpdCBvY2Nhc2lvbmFsbHkgcmFpc2VzIEVBR0FJTi4KKyAgICAgICAgcmV0cmllc19sZWZ0ID0g
MyBpZiBzeXMucGxhdGZvcm0gPT0gImN5Z3dpbiIgZWxzZSAxCisgICAgICAgIHdoaWxlIHJldHJp
ZXNfbGVmdCA+IDA6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0cmllc19s
ZWZ0IC09IDEKKyAgICAgICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCisg
ICAgICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKKyAgICAgICAgICAgICAgICBpZiBlLmVycm5v
ID09IGVycm5vLkVBR0FJTjoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVTUkNIOiAgIyBUaGUgcHJvY2VzcyBkb2VzIG5v
dCBleGlzdC4KKyAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuKCJDYWxsZWQga2lsbF9wcm9j
ZXNzIHdpdGggYSBub24tZXhpc3RhbnQgcGlkICVzIiAlIHBpZCkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiBfd2luZG93c19pbWFn
ZV9uYW1lKHNlbGYsIHByb2Nlc3NfbmFtZSk6CisgICAgICAgIG5hbWUsIGV4dGVuc2lvbiA9IG9z
LnBhdGguc3BsaXRleHQocHJvY2Vzc19uYW1lKQorICAgICAgICBpZiBub3QgZXh0ZW5zaW9uOgor
ICAgICAgICAgICAgIyB0YXNra2lsbCBleHBlY3RzIHByb2Nlc3NlcyB0byBlbmQgaW4gLmV4ZQor
ICAgICAgICAgICAgIyBJZiBuZWNlc3Nhcnkgd2UgY291bGQgYWRkIGEgZmxhZyB0byBkaXNhYmxl
IGFwcGVuZGluZyAuZXhlLgorICAgICAgICAgICAgcHJvY2Vzc19uYW1lID0gIiVzLmV4ZSIgJSBu
YW1lCisgICAgICAgIHJldHVybiBwcm9jZXNzX25hbWUKIAogICAgIGRlZiBraWxsX2FsbChzZWxm
LCBwcm9jZXNzX25hbWUpOgogICAgICAgICAiIiJBdHRlbXB0cyB0byBraWxsIHByb2Nlc3NlcyBt
YXRjaGluZyBwcm9jZXNzX25hbWUuCiAgICAgICAgIFdpbGwgZmFpbCBzaWxlbnRseSBpZiBubyBw
cm9jZXNzIGFyZSBmb3VuZC4iIiIKLSAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldp
bmRvd3MiOgotICAgICAgICAgICAgIyBXZSBtaWdodCB3YW50IHRvIGF1dG9tYXRpY2FsbHkgYXBw
ZW5kIC5leGU/Ci0gICAgICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAi
L2ltIiwgcHJvY2Vzc19uYW1lXQotICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4
IGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGlu
ICgid2luZG93cyIsICJjeWd3aW4iKToKKyAgICAgICAgICAgIGltYWdlX25hbWUgPSBzZWxmLl93
aW5kb3dzX2ltYWdlX25hbWUocHJvY2Vzc19uYW1lKQorICAgICAgICAgICAgY29tbWFuZCA9IFsi
dGFza2tpbGwuZXhlIiwgIi9mIiwgIi9pbSIsIGltYWdlX25hbWVdCisgICAgICAgICAgICAjIHRh
c2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhlIHByb2Nlc3MgaXMgbm90IGZvdW5kLiAgV2Ugc2hv
dWxkIGxvZy4KICAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJyb3JfaGFu
ZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKICAgICAgICAgICAgIHJldHVybgogCkBAIC0xOTUsNiAr
MjI1LDkgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICMgV2Ugc2hvdWxkIHBp
Y2sgb25lIG1vZGUsIG9yIGFkZCBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB0aGVtLgog
ICAgICAgICAjIE5vdGU6IE1hYyBPUyBYIDEwLjYgcmVxdWlyZXMgLVNJR05BTE5BTUUgYmVmb3Jl
IC11IFVTRVIKICAgICAgICAgY29tbWFuZCA9IFsia2lsbGFsbCIsICItVEVSTSIsICItdSIsIG9z
LmdldGVudigiVVNFUiIpLCBwcm9jZXNzX25hbWVdCisgICAgICAgICMga2lsbGFsbCByZXR1cm5z
IDEgaWYgbm8gcHJvY2VzcyBjYW4gYmUgZm91bmQgYW5kIDIgb24gY29tbWFuZCBlcnJvci4KKyAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgYSBjdXN0b20gZXJyb3JfaGFuZGxlciB0byBh
bGxvdyBvbmx5IGV4aXRfY29kZSAxLgorICAgICAgICAjIFdlIHNob3VsZCBsb2cgaW4gZXhpdF9j
b2RlID09IDEKICAgICAgICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVy
PXNlbGYuaWdub3JlX2Vycm9yKQogCiAgICAgIyBFcnJvciBoYW5kbGVycyBkbyBub3QgbmVlZCB0
byBiZSBzdGF0aWMgbWV0aG9kcyBvbmNlIGFsbCBjYWxsZXJzIGFyZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRp
dmVfdW5pdHRlc3QucHkKaW5kZXggY2U5MTI2OWMxNmQwNTc3YmI0MmRhMTE5MzY2ZjVlNDUwMjAx
N2QzNS4uMGM1OGE4MDExMzZhZDgwYWUzNzU5ZjRjYTJkZjllZmM5Y2NkYTE0ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CkBAIC03NywxMCArNzcsMjQgQEAgY2xhc3MgRXhlY3V0
aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNz
LlBvcGVuKFsieWVzIl0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocHJvY2Vzcy5wb2xsKCksIE5vbmUpICAjIFByb2Nlc3MgaXMgcnVubmluZwogICAg
ICAgICBleGVjdXRpdmUua2lsbF9wcm9jZXNzKHByb2Nlc3MucGlkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR0tJTEwpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4ZWN1dGl2ZS5fS0lMTF9QUk9DRVNTX0tJTExF
RF9QUk9DRVNTX0VYSVRfQ09ERSkKICAgICAgICAgIyBLaWxsaW5nIGFnYWluIHNob3VsZCBmYWls
IHNpbGVudGx5LgogICAgICAgICBleGVjdXRpdmUua2lsbF9wcm9jZXNzKHByb2Nlc3MucGlkKQog
CisgICAgZGVmIF9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKHNlbGYsIG5hbWUsIGV4cGVjdGVk
X3dpbmRvd3NfbmFtZSk6CisgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCisgICAgICAg
IHdpbmRvd3NfbmFtZSA9IGV4ZWN1dGl2ZS5fd2luZG93c19pbWFnZV9uYW1lKG5hbWUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwod2luZG93c19uYW1lLCBleHBlY3RlZF93aW5kb3dzX25hbWUp
CisKKyAgICBkZWYgdGVzdF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZik6CisgICAgICAgIHNlbGYu
X2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoImZvbyIsICJmb28uZXhlIikKKyAgICAgICAgc2Vs
Zi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmV4ZSIsICJmb28uZXhlIikKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmNvbSIsICJmb28uY29tIikK
KyAgICAgICAgIyBJZiB0aGUgbmFtZSBsb29rcyBsaWtlIGFuIGV4dGVuc2lvbiwgZXZlbiBpZiBp
dCBpc24ndAorICAgICAgICAjIHN1cHBvc2VkIHRvLCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8g
cmV0dXJuIHRoZSBvcmlnaW5hbCBuYW1lLgorICAgICAgICBzZWxmLl9hc3NlcnRfd2luZG93c19p
bWFnZV9uYW1lKCJmb28uYmF6IiwgImZvby5iYXoiKQorICAgICAgICBzZWxmLl9hc3NlcnRfd2lu
ZG93c19pbWFnZV9uYW1lKCJmb28uYmF6LmV4ZSIsICJmb28uYmF6LmV4ZSIpCisKICAgICBkZWYg
dGVzdF9raWxsX2FsbChzZWxmKToKICAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKICAg
ICAgICAgIyBGSVhNRTogVGhpcyBtYXkgbmVlZCBlZGl0cyB0byB3b3JrIHJpZ2h0IG9uIHdpbmRv
d3MuCkBAIC04OCw2ICsxMDIsNiBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWyJ5ZXMiXSwgc3Rkb3V0
PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLnBvbGwo
KSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX2Fs
bCgieWVzIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndhaXQoKSwgLXNpZ25h
bC5TSUdURVJNKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBleGVj
dXRpdmUuX0tJTExfQUxMX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSkKICAgICAgICAgIyBLaWxs
aW5nIGFnYWluIHNob3VsZCBmYWlsIHNpbGVudGx5LgogICAgICAgICBleGVjdXRpdmUua2lsbF9h
bGwoInllcyIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IGFkYTgzY2U0N2QwZmJlYjRkOTIyOWVjZWZj
MzFiMTRiMTllODM4MGYuLjIwOTdjZTc5ZTAwOTI0NmY0MDc5OGViY2Y3MGI4MzZjM2EwMjczYmUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvd2Via2l0LnB5CkBAIC0yOTQsMTMgKzI5NCwzMyBAQCBjbGFzcyBXZWJLaXRQb3J0
KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxmLnRlc3RfYmFzZV9wbGF0Zm9ybV9uYW1l
cygpICsgKAogICAgICAgICAgICAgJ21hYy10aWdlcicsICdtYWMtbGVvcGFyZCcsICdtYWMtc25v
d2xlb3BhcmQnKQogCisgICAgZGVmIF9jb25maWd1cmF0aW9uX2ZpbGVfcGF0aChzZWxmKToKKyAg
ICAgICAgYnVpbGRfcm9vdCA9IHNlbGYuX3dlYmtpdF9idWlsZF9kaXJlY3RvcnkoWyItLXRvcC1s
ZXZlbCJdKQorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKGJ1aWxkX3Jvb3QsICJDb25maWd1
cmF0aW9uIikKKworICAgICMgRWFzeSBvdmVycmlkZSBmb3IgdW5pdCB0ZXN0cworICAgIGRlZiBf
b3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoc2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25fcGF0
aCA9IHNlbGYuX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKCkKKyAgICAgICAgcmV0dXJuIGNvZGVj
cy5vcGVuKGNvbmZpZ3VyYXRpb25fcGF0aCwgInIiLCAidXRmLTgiKQorCisgICAgZGVmIF9yZWFk
X2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggc2Vs
Zi5fb3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoKSBhcyBmaWxlOgorICAgICAgICAgICAgICAgIHJl
dHVybiBmaWxlLnJlYWRsaW5lKCkucnN0cmlwKCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIyBGSVhNRTogVGhpcyBsaXN0IG1heSBi
ZSBpbmNvbXBsZXRlIGFzIEFwcGxlIGhhcyBzb21lIHNla3JldCBjb25maWdzLgorICAgIF9SRUNP
R05JWkVEX0NPTkZJR1VSQVRJT05TID0gKCJEZWJ1ZyIsICJSZWxlYXNlIikKKwogICAgIGRlZiBk
ZWZhdWx0X2NvbmZpZ3VyYXRpb24oc2VsZik6Ci0gICAgICAgICMgVGhpcyBpcyBhIGJpdCBvZiBh
IGhhY2suIFRoaXMgc3RhdGUgZXhpc3RzIGluIGEgbXVjaCBuaWNlciBmb3JtIGluCi0gICAgICAg
ICMgcGVybC1sYW5kLgotICAgICAgICBjb25maWd1cmF0aW9uID0gb3NwYXRoLnJlbHBhdGgoCi0g
ICAgICAgICAgICBzZWxmLl93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KFsiLS1jb25maWd1cmF0aW9u
Il0pLAotICAgICAgICAgICAgc2VsZi5fd2Via2l0X2J1aWxkX2RpcmVjdG9yeShbIi0tdG9wLWxl
dmVsIl0pKQotICAgICAgICBhc3NlcnQoY29uZmlndXJhdGlvbiA9PSAiRGVidWciIG9yIGNvbmZp
Z3VyYXRpb24gPT0gIlJlbGVhc2UiKQorICAgICAgICAjIEZJWE1FOiBVbmlmeSB0aGlzIHdpdGgg
d2Via2l0ZGlyLnBtIGNvbmZpZ3VyYXRpb24gcmVhZGluZyBjb2RlLgorICAgICAgICBjb25maWd1
cmF0aW9uID0gc2VsZi5fcmVhZF9jb25maWd1cmF0aW9uKCkKKyAgICAgICAgaWYgbm90IGNvbmZp
Z3VyYXRpb246CisgICAgICAgICAgICBjb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICAg
IGlmIGNvbmZpZ3VyYXRpb24gbm90IGluIHNlbGYuX1JFQ09HTklaRURfQ09ORklHVVJBVElPTlM6
CisgICAgICAgICAgICBfbG9nLndhcm4oIkNvbmZpZ3VyYXRpb24gXCIlc1wiIGZvdW5kIGluICVz
IGlzIG5vdCBhIHJlY29nbml6ZWQgdmFsdWUuXG4iICUgKGNvbmZpZ3VyYXRpb24sIHNlbGYuX2Nv
bmZpZ3VyYXRpb25fZmlsZV9wYXRoKCkpKQorICAgICAgICAgICAgX2xvZy53YXJuKCJTY3JpcHRz
IG1heSBmYWlsLiAgU2VlICdzZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1oZWxwJy4iKQogICAg
ICAgICByZXR1cm4gY29uZmlndXJhdGlvbgogCiAgICAgZGVmIF93ZWJraXRfYnVpbGRfZGlyZWN0
b3J5KHNlbGYsIGFyZ3MpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQppbmRleCAzYjdhODE3YTBhYmE0NDY1MDI0MDkyYjBi
MjQ1YTA3ZjE4ZWM5MjY1Li5mNjczMDNmNTYwYWM0YjQ4MGIyZjZmMDliN2E1Yzk4ODZlNzJiMjFl
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dpbi5weQpAQCAtNDQsNiArNDQsMTQgQEAgY2xhc3MgV2luUG9ydChXZWJLaXRQb3J0
KToKICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICd3aW4nCiAgICAgICAgIFdlYktpdFBvcnQuX19p
bml0X18oc2VsZiwgcG9ydF9uYW1lLCBvcHRpb25zKQogCisgICAgZGVmIGJhc2VsaW5lX3NlYXJj
aF9wYXRoKHNlbGYpOgorICAgICAgICAjIEJhc2VkIG9uIGNvZGUgZnJvbSBvbGQtcnVuLXdlYmtp
dC10ZXN0cyBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoKQorICAgICAgICByZXR1cm4gWworICAg
ICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSksCisgICAgICAg
ICAgICBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgibWFjLXNub3dsZW9wYXJkIiksCisgICAg
ICAgICAgICBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgibWFjIiksCisgICAgICAgIF0KKwog
ICAgIGRlZiBfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgIyBGSVhN
RTogVGhpcyBsaXN0IGNvdWxkIGJlIGR5bmFtaWMgYmFzZWQgb24gcGxhdGZvcm0gbmFtZSBhbmQK
ICAgICAgICAgIyBwdXNoZWQgaW50byBiYXNlLlBvcnQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55393</attachid>
            <date>2010-05-07 10:12:42 -0700</date>
            <delta_ts>2010-05-07 18:41:47 -0700</delta_ts>
            <desc>Final patch, addresses Ojan&apos;s comments and fixes everything except NRWT --platform dryrun on win</desc>
            <filename>bug-38718-20100507101239.patch</filename>
            <type>text/plain</type>
            <size>12599</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li41OWU4MzAz
MTRhYjBhNWExNDY2MTRmYmVkMTUyMGY5OTZlY2RjZDljIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAgLSBNYWtlIGRlZmF1bHRfY29uZmlndXJhdGlvbiBhY3R1YWxseSBy
ZWFkIGZyb20gdGhlIENvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAg
ICAtIFRlc3QgZGVmYXVsdF9jb25maWd1cmF0aW9uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgICAtIE5lZWQgYSBiYXNpYyBi
YXNlbGluZV9zZWFyY2hfcGF0aCBpZiAtLXBsYXRmb3JtIGRyeXJ1biBpcyB0byB3b3JrLgorCiAy
MDEwLTA1LTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNTg5MzMuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQppbmRl
eCAxMWViMDUxNjVmY2ZjMDFkYzU5NTA1NTQ1ZWI2NzM1MzU4MTcxY2UwLi4zOGU1MDEzYjgwNDVl
MzU5MzEwNDcwNDRkZDk2Y2U3MjYwOGM3NzAyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKQEAgLTMzLDYgKzMz
LDggQEAgdHJ5OgogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIG11bHRpcHJvY2Vzc2luZyA9IE5v
bmUKIAoraW1wb3J0IGVycm5vCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcGxh
dGZvcm0KIGltcG9ydCBTdHJpbmdJTwpAQCAtNDMsNiArNDUsOSBAQCBpbXBvcnQgc3lzCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCB0ZWUKIAog
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmNvbW1vbi5zeXN0ZW0iKQorCisK
IGNsYXNzIFNjcmlwdEVycm9yKEV4Y2VwdGlvbik6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwK
QEAgLTE2MiwzMSArMTY3LDU4IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAj
IG1hY2hpbmVzLgogICAgICAgICByZXR1cm4gMgogCisgICAgIyBFeGVjdXRpdmUgdW5pdCB0ZXN0
cyB1c2VzIHRoaXMgaW5mb3JtYXRpb24gdG8gdmFsaWRhdGUgdGhhdAorICAgICMga2lsbF9wcm9j
ZXNzL2tpbGxfYWxsIHdvcmsgYXMgZXhwZWN0ZWQgYW4gY2F1c2UgdGhlIGV4cGVjdGVkIGV4aXQg
Y29kZXMuCisgICAgIyBXZSBzdG9yZSB0aGlzIGluZm9ybWF0aW9uIGluIHRoaXMgZmlsZSB0byBr
ZWVwIGl0IG5leHQgdG8gdGhlIHBsYXRmb3JtIGlmcy4KKyAgICAjIHRhc2traWxsLmV4ZSBjYXVz
ZXMgcHJvY2Vzc2VzIHRvIGV4aXQgMCwgb3RoZXJ3aXNlIHByb2Nlc3NlcyBleGl0IC1TSUdOQUwK
KyAgICBfS0lMTF9QUk9DRVNTX0tJTExFRF9QUk9DRVNTX0VYSVRfQ09ERSA9IDAgaWYgc3lzLnBs
YXRmb3JtID09ICJ3aW5kb3dzIiBlbHNlIC1zaWduYWwuU0lHS0lMTAorICAgIF9LSUxMX0FMTF9L
SUxMRURfUFJPQ0VTU19FWElUX0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3Mi
LCAiY3lnd2luIikgZWxzZSAtc2lnbmFsLlNJR1RFUk0KKwogICAgIGRlZiBraWxsX3Byb2Nlc3Mo
c2VsZiwgcGlkKToKICAgICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCB0aGUgZ2l2ZW4gcGlkLgog
ICAgICAgICBXaWxsIGZhaWwgc2lsZW50bHkgaWYgcGlkIGRvZXMgbm90IGV4aXN0IG9yIGluc3Vm
ZmljaWVudCBwZXJtaXNzc2lvbnMuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09
ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9kb2NzLnB5dGhv
bi5vcmcvbGlicmFyeS9vcy5odG1sCi0gICAgICAgICAgICAjIG9zLmtpbGwgaXNuJ3QgYXZhaWxh
YmxlIG9uIFdpbmRvd3MuICBIb3dldmVyLCB3aGVuIEkgdHJpZWQgaXQKLSAgICAgICAgICAgICMg
dXNpbmcgQ3lnd2luLCBpdCB3b3JrZWQgZmluZS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0
aGVyCi0gICAgICAgICAgICAjIHdlIG5lZWQgdGhpcyBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGhl
cmUuCi0gICAgICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUiLCAiL2YiLCAiL3BpZCIs
IHN0cihwaWQpXQotICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBw
cm9jZXNzIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW5kb3dz
IjoKKyAgICAgICAgICAgICMgV2UgY2FuJ3QgKGVhc2lseSkgdXNlIHRhc2traWxsLmV4ZSBvbiBj
eWd3aW4gYmVjYXVzZQorICAgICAgICAgICAgIyBzdWJwcm9jZXNzLnBpZCBpcyBhIGN5Z3dpbiBw
aWQgYW5kIHRhc2traWxsIGV4cGVjdHMgYSB3aW5kb3dzIHBpZC4KKyAgICAgICAgICAgICMgVGhh
bmtmdWxseSBvcy5raWxsIG9uIGN5Z3dpbiBoYW5kbGVzIGVpdGhlciBwaWQgdHlwZS4KKyAgICAg
ICAgICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvcGlkIiwgcGlkXQorICAg
ICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBm
b3VuZC4gIFdlIHNob3VsZCBsb2cuCiAgICAgICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1h
bmQsIGVycm9yX2hhbmRsZXI9c2VsZi5pZ25vcmVfZXJyb3IpCiAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQot
ICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKLSAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3Vs
ZCBtYWtlIG5vbi1zaWxlbnQgZmFpbHVyZSBhbiBvcHRpb24uCi0gICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgIyBBY2NvcmRpbmcgdG8gaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L29z
Lmh0bWwKKyAgICAgICAgIyBvcy5raWxsIGlzbid0IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiBweXRo
b24gMi41LjUgb3Mua2lsbCBhcHBlYXJzCisgICAgICAgICMgdG8gd29yayBpbiBjeWd3aW4sIGhv
d2V2ZXIgaXQgb2NjYXNpb25hbGx5IHJhaXNlcyBFQUdBSU4uCisgICAgICAgIHJldHJpZXNfbGVm
dCA9IDMgaWYgc3lzLnBsYXRmb3JtID09ICJjeWd3aW4iIGVsc2UgMQorICAgICAgICB3aGlsZSBy
ZXRyaWVzX2xlZnQgPiAwOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHJp
ZXNfbGVmdCAtPSAxCisgICAgICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxM
KQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgaWYgZS5l
cnJubyA9PSBlcnJuby5FQUdBSU46CisgICAgICAgICAgICAgICAgICAgIGlmIHJldHJpZXNfbGVm
dCA8PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8ga2ls
bCBwaWQgJXMuICBUb28gbWFueSBFQUdBSU4gZXJyb3JzLiIgJSBwaWQpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FU1JD
SDogICMgVGhlIHByb2Nlc3MgZG9lcyBub3QgZXhpc3QuCisgICAgICAgICAgICAgICAgICAgIF9s
b2cud2FybigiQ2FsbGVkIGtpbGxfcHJvY2VzcyB3aXRoIGEgbm9uLWV4aXN0YW50IHBpZCAlcyIg
JSBwaWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJhaXNl
CisKKyAgICBkZWYgX3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmLCBwcm9jZXNzX25hbWUpOgorICAg
ICAgICBuYW1lLCBleHRlbnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KHByb2Nlc3NfbmFtZSkKKyAg
ICAgICAgaWYgbm90IGV4dGVuc2lvbjoKKyAgICAgICAgICAgICMgdGFza2tpbGwgZXhwZWN0cyBw
cm9jZXNzZXMgdG8gZW5kIGluIC5leGUKKyAgICAgICAgICAgICMgSWYgbmVjZXNzYXJ5IHdlIGNv
dWxkIGFkZCBhIGZsYWcgdG8gZGlzYWJsZSBhcHBlbmRpbmcgLmV4ZS4KKyAgICAgICAgICAgIHBy
b2Nlc3NfbmFtZSA9ICIlcy5leGUiICUgbmFtZQorICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1l
CiAKICAgICBkZWYga2lsbF9hbGwoc2VsZiwgcHJvY2Vzc19uYW1lKToKICAgICAgICAgIiIiQXR0
ZW1wdHMgdG8ga2lsbCBwcm9jZXNzZXMgbWF0Y2hpbmcgcHJvY2Vzc19uYW1lLgogICAgICAgICBX
aWxsIGZhaWwgc2lsZW50bHkgaWYgbm8gcHJvY2VzcyBhcmUgZm91bmQuIiIiCi0gICAgICAgIGlm
IHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgV2UgbWlnaHQg
d2FudCB0byBhdXRvbWF0aWNhbGx5IGFwcGVuZCAuZXhlPwotICAgICAgICAgICAgY29tbWFuZCA9
IFsidGFza2tpbGwuZXhlIiwgIi9mIiwgIi9pbSIsIHByb2Nlc3NfbmFtZV0KLSAgICAgICAgICAg
ICMgdGFza2tpbGwgd2lsbCBleGl0IDEyOCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuCisg
ICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoIndpbmRvd3MiLCAiY3lnd2luIik6CisgICAgICAg
ICAgICBpbWFnZV9uYW1lID0gc2VsZi5fd2luZG93c19pbWFnZV9uYW1lKHByb2Nlc3NfbmFtZSkK
KyAgICAgICAgICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBpbWFn
ZV9uYW1lXQorICAgICAgICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9j
ZXNzIGlzIG5vdCBmb3VuZC4gIFdlIHNob3VsZCBsb2cuCiAgICAgICAgICAgICBzZWxmLnJ1bl9j
b21tYW5kKGNvbW1hbmQsIGVycm9yX2hhbmRsZXI9c2VsZi5pZ25vcmVfZXJyb3IpCiAgICAgICAg
ICAgICByZXR1cm4KIApAQCAtMTk1LDYgKzIyNyw5IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3Qp
OgogICAgICAgICAjIFdlIHNob3VsZCBwaWNrIG9uZSBtb2RlLCBvciBhZGQgc3VwcG9ydCBmb3Ig
c3dpdGNoaW5nIGJldHdlZW4gdGhlbS4KICAgICAgICAgIyBOb3RlOiBNYWMgT1MgWCAxMC42IHJl
cXVpcmVzIC1TSUdOQUxOQU1FIGJlZm9yZSAtdSBVU0VSCiAgICAgICAgIGNvbW1hbmQgPSBbImtp
bGxhbGwiLCAiLVRFUk0iLCAiLXUiLCBvcy5nZXRlbnYoIlVTRVIiKSwgcHJvY2Vzc19uYW1lXQor
ICAgICAgICAjIGtpbGxhbGwgcmV0dXJucyAxIGlmIG5vIHByb2Nlc3MgY2FuIGJlIGZvdW5kIGFu
ZCAyIG9uIGNvbW1hbmQgZXJyb3IuCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBwYXNzIGEg
Y3VzdG9tIGVycm9yX2hhbmRsZXIgdG8gYWxsb3cgb25seSBleGl0X2NvZGUgMS4KKyAgICAgICAg
IyBXZSBzaG91bGQgbG9nIGluIGV4aXRfY29kZSA9PSAxCiAgICAgICAgIHNlbGYucnVuX2NvbW1h
bmQoY29tbWFuZCwgZXJyb3JfaGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKIAogICAgICMgRXJy
b3IgaGFuZGxlcnMgZG8gbm90IG5lZWQgdG8gYmUgc3RhdGljIG1ldGhvZHMgb25jZSBhbGwgY2Fs
bGVycyBhcmUKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CmluZGV4IGNlOTEyNjljMTZk
MDU3N2JiNDJkYTExOTM2NmY1ZTQ1MDIwMTdkMzUuLjBjNThhODAxMTM2YWQ4MGFlMzc1OWY0Y2Ey
ZGY5ZWZjOWNjZGExNGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weQpAQCAtNzcs
MTAgKzc3LDI0IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJvY2Vz
cy5QSVBFKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAg
IyBQcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfcHJvY2Vzcyhwcm9j
ZXNzLnBpZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndhaXQoKSwgLXNpZ25h
bC5TSUdLSUxMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBleGVj
dXRpdmUuX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VTU19FWElUX0NPREUpCiAgICAgICAgICMg
S2lsbGluZyBhZ2FpbiBzaG91bGQgZmFpbCBzaWxlbnRseS4KICAgICAgICAgZXhlY3V0aXZlLmtp
bGxfcHJvY2Vzcyhwcm9jZXNzLnBpZCkKIAorICAgIGRlZiBfYXNzZXJ0X3dpbmRvd3NfaW1hZ2Vf
bmFtZShzZWxmLCBuYW1lLCBleHBlY3RlZF93aW5kb3dzX25hbWUpOgorICAgICAgICBleGVjdXRp
dmUgPSBFeGVjdXRpdmUoKQorICAgICAgICB3aW5kb3dzX25hbWUgPSBleGVjdXRpdmUuX3dpbmRv
d3NfaW1hZ2VfbmFtZShuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdpbmRvd3NfbmFt
ZSwgZXhwZWN0ZWRfd2luZG93c19uYW1lKQorCisgICAgZGVmIHRlc3Rfd2luZG93c19pbWFnZV9u
YW1lKHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28i
LCAiZm9vLmV4ZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoImZv
by5leGUiLCAiZm9vLmV4ZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25h
bWUoImZvby5jb20iLCAiZm9vLmNvbSIpCisgICAgICAgICMgSWYgdGhlIG5hbWUgbG9va3MgbGlr
ZSBhbiBleHRlbnNpb24sIGV2ZW4gaWYgaXQgaXNuJ3QKKyAgICAgICAgIyBzdXBwb3NlZCB0bywg
d2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIHJldHVybiB0aGUgb3JpZ2luYWwgbmFtZS4KKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmJheiIsICJmb28uYmF6IikK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmJhei5leGUiLCAi
Zm9vLmJhei5leGUiKQorCiAgICAgZGVmIHRlc3Rfa2lsbF9hbGwoc2VsZik6CiAgICAgICAgIGV4
ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCiAgICAgICAgICMgRklYTUU6IFRoaXMgbWF5IG5lZWQgZWRp
dHMgdG8gd29yayByaWdodCBvbiB3aW5kb3dzLgpAQCAtODgsNiArMTAyLDYgQEAgY2xhc3MgRXhl
Y3V0aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9j
ZXNzLlBvcGVuKFsieWVzIl0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocHJvY2Vzcy5wb2xsKCksIE5vbmUpICAjIFByb2Nlc3MgaXMgcnVubmluZwog
ICAgICAgICBleGVjdXRpdmUua2lsbF9hbGwoInllcyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocHJvY2Vzcy53YWl0KCksIC1zaWduYWwuU0lHVEVSTSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwcm9jZXNzLndhaXQoKSwgZXhlY3V0aXZlLl9LSUxMX0FMTF9LSUxMRURfUFJPQ0VTU19F
WElUX0NPREUpCiAgICAgICAgICMgS2lsbGluZyBhZ2FpbiBzaG91bGQgZmFpbCBzaWxlbnRseS4K
ICAgICAgICAgZXhlY3V0aXZlLmtpbGxfYWxsKCJ5ZXMiKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCBh
ZGE4M2NlNDdkMGZiZWI0ZDkyMjllY2VmYzMxYjE0YjE5ZTgzODBmLi4yMDk3Y2U3OWUwMDkyNDZm
NDA3OThlYmNmNzBiODM2YzNhMDI3M2JlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtMjk0LDEzICsy
OTQsMzMgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICByZXR1cm4gc2Vs
Zi50ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoKSArICgKICAgICAgICAgICAgICdtYWMtdGlnZXIn
LCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJykKIAorICAgIGRlZiBfY29uZmlndXJh
dGlvbl9maWxlX3BhdGgoc2VsZik6CisgICAgICAgIGJ1aWxkX3Jvb3QgPSBzZWxmLl93ZWJraXRf
YnVpbGRfZGlyZWN0b3J5KFsiLS10b3AtbGV2ZWwiXSkKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgu
am9pbihidWlsZF9yb290LCAiQ29uZmlndXJhdGlvbiIpCisKKyAgICAjIEVhc3kgb3ZlcnJpZGUg
Zm9yIHVuaXQgdGVzdHMKKyAgICBkZWYgX29wZW5fY29uZmlndXJhdGlvbl9maWxlKHNlbGYpOgor
ICAgICAgICBjb25maWd1cmF0aW9uX3BhdGggPSBzZWxmLl9jb25maWd1cmF0aW9uX2ZpbGVfcGF0
aCgpCisgICAgICAgIHJldHVybiBjb2RlY3Mub3Blbihjb25maWd1cmF0aW9uX3BhdGgsICJyIiwg
InV0Zi04IikKKworICAgIGRlZiBfcmVhZF9jb25maWd1cmF0aW9uKHNlbGYpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYuX29wZW5fY29uZmlndXJhdGlvbl9maWxlKCkgYXMg
ZmlsZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsZS5yZWFkbGluZSgpLnJzdHJpcCgpCisg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
ICMgRklYTUU6IFRoaXMgbGlzdCBtYXkgYmUgaW5jb21wbGV0ZSBhcyBBcHBsZSBoYXMgc29tZSBz
ZWtyZXQgY29uZmlncy4KKyAgICBfUkVDT0dOSVpFRF9DT05GSUdVUkFUSU9OUyA9ICgiRGVidWci
LCAiUmVsZWFzZSIpCisKICAgICBkZWYgZGVmYXVsdF9jb25maWd1cmF0aW9uKHNlbGYpOgotICAg
ICAgICAjIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrLiBUaGlzIHN0YXRlIGV4aXN0cyBpbiBhIG11
Y2ggbmljZXIgZm9ybSBpbgotICAgICAgICAjIHBlcmwtbGFuZC4KLSAgICAgICAgY29uZmlndXJh
dGlvbiA9IG9zcGF0aC5yZWxwYXRoKAotICAgICAgICAgICAgc2VsZi5fd2Via2l0X2J1aWxkX2Rp
cmVjdG9yeShbIi0tY29uZmlndXJhdGlvbiJdKSwKLSAgICAgICAgICAgIHNlbGYuX3dlYmtpdF9i
dWlsZF9kaXJlY3RvcnkoWyItLXRvcC1sZXZlbCJdKSkKLSAgICAgICAgYXNzZXJ0KGNvbmZpZ3Vy
YXRpb24gPT0gIkRlYnVnIiBvciBjb25maWd1cmF0aW9uID09ICJSZWxlYXNlIikKKyAgICAgICAg
IyBGSVhNRTogVW5pZnkgdGhpcyB3aXRoIHdlYmtpdGRpci5wbSBjb25maWd1cmF0aW9uIHJlYWRp
bmcgY29kZS4KKyAgICAgICAgY29uZmlndXJhdGlvbiA9IHNlbGYuX3JlYWRfY29uZmlndXJhdGlv
bigpCisgICAgICAgIGlmIG5vdCBjb25maWd1cmF0aW9uOgorICAgICAgICAgICAgY29uZmlndXJh
dGlvbiA9ICJSZWxlYXNlIgorICAgICAgICBpZiBjb25maWd1cmF0aW9uIG5vdCBpbiBzZWxmLl9S
RUNPR05JWkVEX0NPTkZJR1VSQVRJT05TOgorICAgICAgICAgICAgX2xvZy53YXJuKCJDb25maWd1
cmF0aW9uIFwiJXNcIiBmb3VuZCBpbiAlcyBpcyBub3QgYSByZWNvZ25pemVkIHZhbHVlLlxuIiAl
IChjb25maWd1cmF0aW9uLCBzZWxmLl9jb25maWd1cmF0aW9uX2ZpbGVfcGF0aCgpKSkKKyAgICAg
ICAgICAgIF9sb2cud2FybigiU2NyaXB0cyBtYXkgZmFpbC4gIFNlZSAnc2V0LXdlYmtpdC1jb25m
aWd1cmF0aW9uIC0taGVscCcuIikKICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24KIAogICAg
IGRlZiBfd2Via2l0X2J1aWxkX2RpcmVjdG9yeShzZWxmLCBhcmdzKToKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKaW5kZXgg
M2I3YTgxN2EwYWJhNDQ2NTAyNDA5MmIwYjI0NWEwN2YxOGVjOTI2NS4uZjY3MzAzZjU2MGFjNGI0
ODBiMmY2ZjA5YjdhNWM5ODg2ZTcyYjIxZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKQEAgLTQ0LDYgKzQ0LDE0IEBA
IGNsYXNzIFdpblBvcnQoV2ViS2l0UG9ydCk6CiAgICAgICAgICAgICBwb3J0X25hbWUgPSAnd2lu
JwogICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZSwgb3B0aW9ucykK
IAorICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKKyAgICAgICAgIyBCYXNlZCBv
biBjb2RlIGZyb20gb2xkLXJ1bi13ZWJraXQtdGVzdHMgZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0
KCkKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9w
YXRoKHNlbGYuX25hbWUpLAorICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgo
Im1hYy1zbm93bGVvcGFyZCIpLAorICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoIm1hYyIpLAorICAgICAgICBdCisKICAgICBkZWYgX3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9y
bXMoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgbGlzdCBjb3VsZCBiZSBkeW5hbWljIGJh
c2VkIG9uIHBsYXRmb3JtIG5hbWUgYW5kCiAgICAgICAgICMgcHVzaGVkIGludG8gYmFzZS5Qb3J0
Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55447</attachid>
            <date>2010-05-07 18:42:14 -0700</date>
            <delta_ts>2010-05-07 22:09:02 -0700</delta_ts>
            <desc>Final patch, address Ojan&apos;s last two comments.</desc>
            <filename>bug-38718-20100507184211.patch</filename>
            <type>text/plain</type>
            <size>13436</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmZjdiMjY0NTBjYmRlMGNkYjQ3ZTJiODY4NDU2MmQxZWUzNGJkZWQ0Li43Mjg2NDNh
NTU2YWQ4ODc3MmFjZTg1NGVlMzNjYmZkNzEwYjhlMGJlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luLnB5OgorICAgICAgICAgLSBBZGQgRklYTUUgYWJvdXQgaW5jbHVkaW5nIG1hYy1z
bm93bGVvcGFyZCBpbiBiYXNlbGluZV9zZWFyY2hfcGF0aC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgIC0gTWFrZSBkZWZh
dWx0X2NvbmZpZ3VyYXRpb24gYWN0dWFsbHkgcmVhZCBmcm9tIHRoZSBDb25maWd1cmF0aW9uIGZp
bGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRf
dW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAgLSBUZXN0IGRlZmF1bHRfY29uZmlndXJhdGlv
bgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5Ogor
ICAgICAgICAgLSBOZWVkIGEgYmFzaWMgYmFzZWxpbmVfc2VhcmNoX3BhdGggaWYgLS1wbGF0Zm9y
bSBkcnlydW4gaXMgdG8gd29yay4KKwogMjAxMC0wNS0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjU4OTMzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2V4ZWN1dGl2ZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9leGVjdXRpdmUucHkKaW5kZXggMTFlYjA1MTY1ZmNmYzAxZGM1OTUwNTU0NWViNjcz
NTM1ODE3MWNlMC4uMzhlNTAxM2I4MDQ1ZTM1OTMxMDQ3MDQ0ZGQ5NmNlNzI2MDhjNzcwMiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
ZXhlY3V0aXZlLnB5CkBAIC0zMyw2ICszMyw4IEBAIHRyeToKIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
ICAgICBtdWx0aXByb2Nlc3NpbmcgPSBOb25lCiAKK2ltcG9ydCBlcnJubworaW1wb3J0IGxvZ2dp
bmcKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgU3RyaW5nSU8KQEAgLTQzLDYg
KzQ1LDkgQEAgaW1wb3J0IHN5cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0
ZWRfbG9nZ2luZyBpbXBvcnQgdGVlCiAKIAorX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJr
aXRweS5jb21tb24uc3lzdGVtIikKKworCiBjbGFzcyBTY3JpcHRFcnJvcihFeGNlcHRpb24pOgog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsCkBAIC0xNjIsMzEgKzE2Nyw1OCBAQCBjbGFzcyBFeGVj
dXRpdmUob2JqZWN0KToKICAgICAgICAgIyBtYWNoaW5lcy4KICAgICAgICAgcmV0dXJuIDIKIAor
ICAgICMgRXhlY3V0aXZlIHVuaXQgdGVzdHMgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHRvIHZhbGlk
YXRlIHRoYXQKKyAgICAjIGtpbGxfcHJvY2Vzcy9raWxsX2FsbCB3b3JrIGFzIGV4cGVjdGVkIGFu
IGNhdXNlIHRoZSBleHBlY3RlZCBleGl0IGNvZGVzLgorICAgICMgV2Ugc3RvcmUgdGhpcyBpbmZv
cm1hdGlvbiBpbiB0aGlzIGZpbGUgdG8ga2VlcCBpdCBuZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMu
CisgICAgIyB0YXNra2lsbC5leGUgY2F1c2VzIHByb2Nlc3NlcyB0byBleGl0IDAsIG90aGVyd2lz
ZSBwcm9jZXNzZXMgZXhpdCAtU0lHTkFMCisgICAgX0tJTExfUFJPQ0VTU19LSUxMRURfUFJPQ0VT
U19FWElUX0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyIgZWxzZSAtc2lnbmFs
LlNJR0tJTEwKKyAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFID0gMCBpZiBz
eXMucGxhdGZvcm0gaW4gKCJ3aW5kb3dzIiwgImN5Z3dpbiIpIGVsc2UgLXNpZ25hbC5TSUdURVJN
CisKICAgICBkZWYga2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6CiAgICAgICAgICIiIkF0dGVtcHRz
IHRvIGtpbGwgdGhlIGdpdmVuIHBpZC4KICAgICAgICAgV2lsbCBmYWlsIHNpbGVudGx5IGlmIHBp
ZCBkb2VzIG5vdCBleGlzdCBvciBpbnN1ZmZpY2llbnQgcGVybWlzc3Npb25zLiIiIgotICAgICAg
ICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6Ci0gICAgICAgICAgICAjIEFjY29y
ZGluZyB0byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAotICAgICAgICAg
ICAgIyBvcy5raWxsIGlzbid0IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiAgSG93ZXZlciwgd2hlbiBJ
IHRyaWVkIGl0Ci0gICAgICAgICAgICAjIHVzaW5nIEN5Z3dpbiwgaXQgd29ya2VkIGZpbmUuICBX
ZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlcgotICAgICAgICAgICAgIyB3ZSBuZWVkIHRoaXMg
cGxhdGZvcm0gc3BlY2lmaWMgY29kZSBoZXJlLgotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFz
a2tpbGwuZXhlIiwgIi9mIiwgIi9waWQiLCBzdHIocGlkKV0KLSAgICAgICAgICAgICMgdGFza2tp
bGwgd2lsbCBleGl0IDEyOCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuCisgICAgICAgIGlm
IHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyI6CisgICAgICAgICAgICAjIFdlIGNhbid0IChlYXNp
bHkpIHVzZSB0YXNra2lsbC5leGUgb24gY3lnd2luIGJlY2F1c2UKKyAgICAgICAgICAgICMgc3Vi
cHJvY2Vzcy5waWQgaXMgYSBjeWd3aW4gcGlkIGFuZCB0YXNra2lsbCBleHBlY3RzIGEgd2luZG93
cyBwaWQuCisgICAgICAgICAgICAjIFRoYW5rZnVsbHkgb3Mua2lsbCBvbiBjeWd3aW4gaGFuZGxl
cyBlaXRoZXIgcGlkIHR5cGUuCisgICAgICAgICAgICBjb21tYW5kID0gWyJ0YXNra2lsbC5leGUi
LCAiL2YiLCAiL3BpZCIsIHBpZF0KKyAgICAgICAgICAgICMgdGFza2tpbGwgd2lsbCBleGl0IDEy
OCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuICBXZSBzaG91bGQgbG9nLgogICAgICAgICAg
ICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNlbGYuaWdub3JlX2Vy
cm9yKQogICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLmtp
bGwocGlkLCBzaWduYWwuU0lHS0lMTCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6Ci0gICAg
ICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgbWFrZSBub24tc2lsZW50IGZhaWx1cmUgYW4gb3B0
aW9uLgotICAgICAgICAgICAgcGFzcworCisgICAgICAgICMgQWNjb3JkaW5nIHRvIGh0dHA6Ly9k
b2NzLnB5dGhvbi5vcmcvbGlicmFyeS9vcy5odG1sCisgICAgICAgICMgb3Mua2lsbCBpc24ndCBh
dmFpbGFibGUgb24gV2luZG93cy4gcHl0aG9uIDIuNS41IG9zLmtpbGwgYXBwZWFycworICAgICAg
ICAjIHRvIHdvcmsgaW4gY3lnd2luLCBob3dldmVyIGl0IG9jY2FzaW9uYWxseSByYWlzZXMgRUFH
QUlOLgorICAgICAgICByZXRyaWVzX2xlZnQgPSAzIGlmIHN5cy5wbGF0Zm9ybSA9PSAiY3lnd2lu
IiBlbHNlIDEKKyAgICAgICAgd2hpbGUgcmV0cmllc19sZWZ0ID4gMDoKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICByZXRyaWVzX2xlZnQgLT0gMQorICAgICAgICAgICAgICAgIG9z
LmtpbGwocGlkLCBzaWduYWwuU0lHS0lMTCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yLCBl
OgorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFHQUlOOgorICAgICAgICAg
ICAgICAgICAgICBpZiByZXRyaWVzX2xlZnQgPD0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IF9sb2cud2FybigiRmFpbGVkIHRvIGtpbGwgcGlkICVzLiAgVG9vIG1hbnkgRUFHQUlOIGVycm9y
cy4iICUgcGlkKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAg
IGlmIGUuZXJybm8gPT0gZXJybm8uRVNSQ0g6ICAjIFRoZSBwcm9jZXNzIGRvZXMgbm90IGV4aXN0
LgorICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm4oIkNhbGxlZCBraWxsX3Byb2Nlc3Mgd2l0
aCBhIG5vbi1leGlzdGFudCBwaWQgJXMiICUgcGlkKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIF93aW5kb3dzX2ltYWdlX25hbWUo
c2VsZiwgcHJvY2Vzc19uYW1lKToKKyAgICAgICAgbmFtZSwgZXh0ZW5zaW9uID0gb3MucGF0aC5z
cGxpdGV4dChwcm9jZXNzX25hbWUpCisgICAgICAgIGlmIG5vdCBleHRlbnNpb246CisgICAgICAg
ICAgICAjIHRhc2traWxsIGV4cGVjdHMgcHJvY2Vzc2VzIHRvIGVuZCBpbiAuZXhlCisgICAgICAg
ICAgICAjIElmIG5lY2Vzc2FyeSB3ZSBjb3VsZCBhZGQgYSBmbGFnIHRvIGRpc2FibGUgYXBwZW5k
aW5nIC5leGUuCisgICAgICAgICAgICBwcm9jZXNzX25hbWUgPSAiJXMuZXhlIiAlIG5hbWUKKyAg
ICAgICAgcmV0dXJuIHByb2Nlc3NfbmFtZQogCiAgICAgZGVmIGtpbGxfYWxsKHNlbGYsIHByb2Nl
c3NfbmFtZSk6CiAgICAgICAgICIiIkF0dGVtcHRzIHRvIGtpbGwgcHJvY2Vzc2VzIG1hdGNoaW5n
IHByb2Nlc3NfbmFtZS4KICAgICAgICAgV2lsbCBmYWlsIHNpbGVudGx5IGlmIG5vIHByb2Nlc3Mg
YXJlIGZvdW5kLiIiIgotICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6
Ci0gICAgICAgICAgICAjIFdlIG1pZ2h0IHdhbnQgdG8gYXV0b21hdGljYWxseSBhcHBlbmQgLmV4
ZT8KLSAgICAgICAgICAgIGNvbW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBw
cm9jZXNzX25hbWVdCi0gICAgICAgICAgICAjIHRhc2traWxsIHdpbGwgZXhpdCAxMjggaWYgdGhl
IHByb2Nlc3MgaXMgbm90IGZvdW5kLgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCJ3aW5k
b3dzIiwgImN5Z3dpbiIpOgorICAgICAgICAgICAgaW1hZ2VfbmFtZSA9IHNlbGYuX3dpbmRvd3Nf
aW1hZ2VfbmFtZShwcm9jZXNzX25hbWUpCisgICAgICAgICAgICBjb21tYW5kID0gWyJ0YXNra2ls
bC5leGUiLCAiL2YiLCAiL2ltIiwgaW1hZ2VfbmFtZV0KKyAgICAgICAgICAgICMgdGFza2tpbGwg
d2lsbCBleGl0IDEyOCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuICBXZSBzaG91bGQgbG9n
LgogICAgICAgICAgICAgc2VsZi5ydW5fY29tbWFuZChjb21tYW5kLCBlcnJvcl9oYW5kbGVyPXNl
bGYuaWdub3JlX2Vycm9yKQogICAgICAgICAgICAgcmV0dXJuCiAKQEAgLTE5NSw2ICsyMjcsOSBA
QCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgIyBXZSBzaG91bGQgcGljayBvbmUg
bW9kZSwgb3IgYWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0uCiAgICAgICAg
ICMgTm90ZTogTWFjIE9TIFggMTAuNiByZXF1aXJlcyAtU0lHTkFMTkFNRSBiZWZvcmUgLXUgVVNF
UgogICAgICAgICBjb21tYW5kID0gWyJraWxsYWxsIiwgIi1URVJNIiwgIi11Iiwgb3MuZ2V0ZW52
KCJVU0VSIiksIHByb2Nlc3NfbmFtZV0KKyAgICAgICAgIyBraWxsYWxsIHJldHVybnMgMSBpZiBu
byBwcm9jZXNzIGNhbiBiZSBmb3VuZCBhbmQgMiBvbiBjb21tYW5kIGVycm9yLgorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGQgcGFzcyBhIGN1c3RvbSBlcnJvcl9oYW5kbGVyIHRvIGFsbG93IG9u
bHkgZXhpdF9jb2RlIDEuCisgICAgICAgICMgV2Ugc2hvdWxkIGxvZyBpbiBleGl0X2NvZGUgPT0g
MQogICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1hbmQsIGVycm9yX2hhbmRsZXI9c2VsZi5p
Z25vcmVfZXJyb3IpCiAKICAgICAjIEVycm9yIGhhbmRsZXJzIGRvIG5vdCBuZWVkIHRvIGJlIHN0
YXRpYyBtZXRob2RzIG9uY2UgYWxsIGNhbGxlcnMgYXJlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0
dGVzdC5weQppbmRleCBjZTkxMjY5YzE2ZDA1NzdiYjQyZGExMTkzNjZmNWU0NTAyMDE3ZDM1Li4w
YzU4YTgwMTEzNmFkODBhZTM3NTlmNGNhMmRmOWVmYzljY2RhMTRmIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVj
dXRpdmVfdW5pdHRlc3QucHkKQEAgLTc3LDEwICs3NywyNCBAQCBjbGFzcyBFeGVjdXRpdmVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4o
WyJ5ZXMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwcm9jZXNzLnBvbGwoKSwgTm9uZSkgICMgUHJvY2VzcyBpcyBydW5uaW5nCiAgICAgICAgIGV4
ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocHJvY2Vzcy53YWl0KCksIC1zaWduYWwuU0lHS0lMTCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwcm9jZXNzLndhaXQoKSwgZXhlY3V0aXZlLl9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NF
U1NfRVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdhaW4gc2hvdWxkIGZhaWwgc2lsZW50
bHkuCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MocHJvY2Vzcy5waWQpCiAKKyAgICBk
ZWYgX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoc2VsZiwgbmFtZSwgZXhwZWN0ZWRfd2luZG93
c19uYW1lKToKKyAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgd2luZG93
c19uYW1lID0gZXhlY3V0aXZlLl93aW5kb3dzX2ltYWdlX25hbWUobmFtZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh3aW5kb3dzX25hbWUsIGV4cGVjdGVkX3dpbmRvd3NfbmFtZSkKKworICAg
IGRlZiB0ZXN0X3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vIiwgImZvby5leGUiKQorICAgICAgICBzZWxmLl9hc3Nl
cnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uZXhlIiwgImZvby5leGUiKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28uY29tIiwgImZvby5jb20iKQorICAgICAg
ICAjIElmIHRoZSBuYW1lIGxvb2tzIGxpa2UgYW4gZXh0ZW5zaW9uLCBldmVuIGlmIGl0IGlzbid0
CisgICAgICAgICMgc3VwcG9zZWQgdG8sIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byByZXR1cm4g
dGhlIG9yaWdpbmFsIG5hbWUuCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25h
bWUoImZvby5iYXoiLCAiZm9vLmJheiIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2lt
YWdlX25hbWUoImZvby5iYXouZXhlIiwgImZvby5iYXouZXhlIikKKwogICAgIGRlZiB0ZXN0X2tp
bGxfYWxsKHNlbGYpOgogICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUoKQogICAgICAgICAj
IEZJWE1FOiBUaGlzIG1heSBuZWVkIGVkaXRzIHRvIHdvcmsgcmlnaHQgb24gd2luZG93cy4KQEAg
LTg4LDYgKzEwMiw2IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJv
Y2Vzcy5QSVBFKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25l
KSAgIyBQcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfYWxsKCJ5ZXMi
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCAtc2lnbmFsLlNJR1RF
Uk0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0KCksIGV4ZWN1dGl2ZS5f
S0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFKQogICAgICAgICAjIEtpbGxpbmcgYWdh
aW4gc2hvdWxkIGZhaWwgc2lsZW50bHkuCiAgICAgICAgIGV4ZWN1dGl2ZS5raWxsX2FsbCgieWVz
IikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXggMzAyYWY4NmI4MTY1YWYzZjAxYjcz
MGUwMTBlYmNkZDhlOTJlMjRmYS4uNTZkOGE0YmQzOTYwYmMwNDVmZmExYTgzMmFiMzhmMWMxMTYw
ZGM2YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTU3LDYgKzU3LDcgQEAgY2xh
c3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIGRpcnMu
YXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1bS13aW4nKSkKICAgICAg
ICAgZGlycy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtJykpCiAg
ICAgICAgIGRpcnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCd3aW4nKSkKKyAg
ICAgICAgIyBGSU1YRTogVGhpcyBzaG91bGQgaW5jbHVkZSBtYWMtc25vd2xlb3BhcmQgbGlrZSB3
aW4ucHkgZG9lcy4KICAgICAgICAgZGlycy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoJ21hYycpKQogICAgICAgICByZXR1cm4gZGlycwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IGFk
YTgzY2U0N2QwZmJlYjRkOTIyOWVjZWZjMzFiMTRiMTllODM4MGYuLjIwOTdjZTc5ZTAwOTI0NmY0
MDc5OGViY2Y3MGI4MzZjM2EwMjczYmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC0yOTQsMTMgKzI5
NCwzMyBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxm
LnRlc3RfYmFzZV9wbGF0Zm9ybV9uYW1lcygpICsgKAogICAgICAgICAgICAgJ21hYy10aWdlcics
ICdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnKQogCisgICAgZGVmIF9jb25maWd1cmF0
aW9uX2ZpbGVfcGF0aChzZWxmKToKKyAgICAgICAgYnVpbGRfcm9vdCA9IHNlbGYuX3dlYmtpdF9i
dWlsZF9kaXJlY3RvcnkoWyItLXRvcC1sZXZlbCJdKQorICAgICAgICByZXR1cm4gb3MucGF0aC5q
b2luKGJ1aWxkX3Jvb3QsICJDb25maWd1cmF0aW9uIikKKworICAgICMgRWFzeSBvdmVycmlkZSBm
b3IgdW5pdCB0ZXN0cworICAgIGRlZiBfb3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoc2VsZik6Cisg
ICAgICAgIGNvbmZpZ3VyYXRpb25fcGF0aCA9IHNlbGYuX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRo
KCkKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5vcGVuKGNvbmZpZ3VyYXRpb25fcGF0aCwgInIiLCAi
dXRmLTgiKQorCisgICAgZGVmIF9yZWFkX2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHdpdGggc2VsZi5fb3Blbl9jb25maWd1cmF0aW9uX2ZpbGUoKSBhcyBm
aWxlOgorICAgICAgICAgICAgICAgIHJldHVybiBmaWxlLnJlYWRsaW5lKCkucnN0cmlwKCkKKyAg
ICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
IyBGSVhNRTogVGhpcyBsaXN0IG1heSBiZSBpbmNvbXBsZXRlIGFzIEFwcGxlIGhhcyBzb21lIHNl
a3JldCBjb25maWdzLgorICAgIF9SRUNPR05JWkVEX0NPTkZJR1VSQVRJT05TID0gKCJEZWJ1ZyIs
ICJSZWxlYXNlIikKKwogICAgIGRlZiBkZWZhdWx0X2NvbmZpZ3VyYXRpb24oc2VsZik6Ci0gICAg
ICAgICMgVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2suIFRoaXMgc3RhdGUgZXhpc3RzIGluIGEgbXVj
aCBuaWNlciBmb3JtIGluCi0gICAgICAgICMgcGVybC1sYW5kLgotICAgICAgICBjb25maWd1cmF0
aW9uID0gb3NwYXRoLnJlbHBhdGgoCi0gICAgICAgICAgICBzZWxmLl93ZWJraXRfYnVpbGRfZGly
ZWN0b3J5KFsiLS1jb25maWd1cmF0aW9uIl0pLAotICAgICAgICAgICAgc2VsZi5fd2Via2l0X2J1
aWxkX2RpcmVjdG9yeShbIi0tdG9wLWxldmVsIl0pKQotICAgICAgICBhc3NlcnQoY29uZmlndXJh
dGlvbiA9PSAiRGVidWciIG9yIGNvbmZpZ3VyYXRpb24gPT0gIlJlbGVhc2UiKQorICAgICAgICAj
IEZJWE1FOiBVbmlmeSB0aGlzIHdpdGggd2Via2l0ZGlyLnBtIGNvbmZpZ3VyYXRpb24gcmVhZGlu
ZyBjb2RlLgorICAgICAgICBjb25maWd1cmF0aW9uID0gc2VsZi5fcmVhZF9jb25maWd1cmF0aW9u
KCkKKyAgICAgICAgaWYgbm90IGNvbmZpZ3VyYXRpb246CisgICAgICAgICAgICBjb25maWd1cmF0
aW9uID0gIlJlbGVhc2UiCisgICAgICAgIGlmIGNvbmZpZ3VyYXRpb24gbm90IGluIHNlbGYuX1JF
Q09HTklaRURfQ09ORklHVVJBVElPTlM6CisgICAgICAgICAgICBfbG9nLndhcm4oIkNvbmZpZ3Vy
YXRpb24gXCIlc1wiIGZvdW5kIGluICVzIGlzIG5vdCBhIHJlY29nbml6ZWQgdmFsdWUuXG4iICUg
KGNvbmZpZ3VyYXRpb24sIHNlbGYuX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKCkpKQorICAgICAg
ICAgICAgX2xvZy53YXJuKCJTY3JpcHRzIG1heSBmYWlsLiAgU2VlICdzZXQtd2Via2l0LWNvbmZp
Z3VyYXRpb24gLS1oZWxwJy4iKQogICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbgogCiAgICAg
ZGVmIF93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KHNlbGYsIGFyZ3MpOgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQppbmRleCAz
YjdhODE3YTBhYmE0NDY1MDI0MDkyYjBiMjQ1YTA3ZjE4ZWM5MjY1Li5lMDVhNjlkODFhYjc2NzA1
ZWUzYWYzODNlYTUyNWJkNTE5MjQyOWI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbi5weQpAQCAtNDQsNiArNDQsMTEgQEAg
Y2xhc3MgV2luUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICd3aW4n
CiAgICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lLCBvcHRpb25zKQog
CisgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICAjIEJhc2VkIG9u
IGNvZGUgZnJvbSBvbGQtcnVuLXdlYmtpdC10ZXN0cyBleHBlY3RlZERpcmVjdG9yeUZvclRlc3Qo
KQorICAgICAgICBwb3J0X25hbWVzID0gWyJ3aW4iLCAibWFjLXNub3dsZW9wYXJkIiwgIm1hYyJd
CisgICAgICAgIHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHBvcnRfbmFt
ZXMpCisKICAgICBkZWYgX3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAg
ICMgRklYTUU6IFRoaXMgbGlzdCBjb3VsZCBiZSBkeW5hbWljIGJhc2VkIG9uIHBsYXRmb3JtIG5h
bWUgYW5kCiAgICAgICAgICMgcHVzaGVkIGludG8gYmFzZS5Qb3J0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55459</attachid>
            <date>2010-05-07 22:09:35 -0700</date>
            <delta_ts>2010-05-08 00:22:15 -0700</delta_ts>
            <desc>Fix comment for Dirk</desc>
            <filename>bug-38718-20100507220932.patch</filename>
            <type>text/plain</type>
            <size>13453</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlYmY4ZjhhOTJmNGQxMjEzNTFkNTdjYWFkZWM3ZDgyMGMyZjcyMDkyLi5hZGVjZTNk
ZmQ5YWFjOGU0ZjI0Y2RlM2I0NWNlOTVmNDJkMDJiOGU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTAtMDUtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3Qtd2Via2l0cHkgZmFpbHMg
dW5kZXIgY3lnd2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODcxOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgIC0gQWRkIF9LSUxMX1BST0NFU1NfS0lMTEVEX1BST0NFU1Nf
RVhJVF9DT0RFIGFuZAorICAgICAgICAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9D
T0RFIHRvIHN0b3JlIHRoZSBleHBlY3RlZAorICAgICAgICAgICBleGl0IGNvZGVzIG9mIHByb2Nl
c3NlcyBraWxsZWQgYnkga2lsbF9wcm9jZXNzIGFuZCBraWxsX2FsbC4KKyAgICAgICAgICAgVGhl
c2UgdHdvIGNvbnN0YW50cyBhcmUgb25seSB1c2VkIGJ5IHRoZSB1bml0IHRlc3RzIGJ1dCBhcmUK
KyAgICAgICAgICAgc3RvcmVkIGluIGV4ZWN1dGl2ZS5weSBzbyB0aGV5IGNhbiBiZSByaWdodCBu
ZXh0IHRvIHRoZSBwbGF0Zm9ybSBpZnMuCisgICAgICAgICAtIFJlbW92ZSB1bm5lY2Vzc2FyeSBz
dHIoKSBjb252ZXJzaW9uLCBydW5fY29tbWFuZCBkb2VzIHRoYXQgZm9yIHVzLgorICAgICAgICAg
LSBNYWtlIG9zLmtpbGwgcmV0cnkgb24gY3lnd2luIG9uIEVBR0FJTi4gIEl0J3MgdW5jbGVhciB3
aHkgQ1lHV0lOCisgICAgICAgICAgIHRocm93cyBFQUdBSU4sIGJ1dCBpdCBvbmx5IGRvZXMgc28g
c29tZXRpbWVzLiAgMyBtYXkgbm90IGJlIGVub3VnaAorICAgICAgICAgICByZXRyaWVzLCBidXQg
d2UnbGwgdHJ5IGl0IHRvIHN0YXJ0IHdpdGguCisgICAgICAgICAtIEFkZCBfd2luZG93c19pbWFn
ZV9uYW1lIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCAieWVzIiB0byAieWVzLmV4ZSIKKyAgICAg
ICAgICAgZm9yIHVzZSB3aXRoIHRhc2traWxsLmV4ZSAvaW0uICBWYXJpb3VzIGNhbGxlcnMgdG8g
a2lsbF9hbGwgY291bGQKKyAgICAgICAgICAgYmUgdXBkYXRlZCB0byByZW1vdmUgdGhlIC5leGUs
IGJ1dCB0aGF0IGNhbiBiZSBkb25lIGluIGFub3RoZXIgcGF0Y2guCisgICAgICAgICAtIFVzZSB0
YXNra2lsbC5leGUgZm9yIGtpbGxhbGwgb24gY3lnd2luLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSB0aGUgbmV3ICpfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RFIGNvbnN0YW50cyB3aGljaCBhcmUg
Y29ycmVjdGx5CisgICAgICAgICAgIHNldCB0byAwIG9uIHdpbmRvd3MvY3lnd2luIHN5c3RlbXMg
d2hlcmUgdGFza2tpbGwuZXhlIGlzIHVzZWQuCisgICAgICAgICAtIFRlc3QgX3dpbmRvd3NfaW1h
Z2VfbmFtZQorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luLnB5OgorICAgICAgICAgLSBBZGQgRklYTUUgYWJvdXQgaW5jbHVkaW5nIG1hYy1z
bm93bGVvcGFyZCBpbiBiYXNlbGluZV9zZWFyY2hfcGF0aC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgIC0gTWFrZSBkZWZh
dWx0X2NvbmZpZ3VyYXRpb24gYWN0dWFsbHkgcmVhZCBmcm9tIHRoZSBDb25maWd1cmF0aW9uIGZp
bGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRf
dW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAgLSBUZXN0IGRlZmF1bHRfY29uZmlndXJhdGlv
bgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5Ogor
ICAgICAgICAgLSBOZWVkIGEgYmFzaWMgYmFzZWxpbmVfc2VhcmNoX3BhdGggaWYgLS1wbGF0Zm9y
bSBkcnlydW4gaXMgdG8gd29yay4KKwogMjAxMC0wNS0wNyAgRGFyaW4gRmlzaGVyICA8ZGFyaW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBidWlsZCBidXN0YWdlOiB0b0VsZW1lbnQ8VD4g
c2hvdWxkIGJlIHRvPFQ+LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKaW5kZXggMTFlYjA1MTY1ZmNmYzAxZGM1OTUw
NTU0NWViNjczNTM1ODE3MWNlMC4uMTE2Y2NjNWUyODk5MmRmNjViZmM5YzU1NDIyNDZhNjllY2Ix
MGYyZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2V4ZWN1dGl2ZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vZXhlY3V0aXZlLnB5CkBAIC0zMyw2ICszMyw4IEBAIHRyeToKIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKICAgICBtdWx0aXByb2Nlc3NpbmcgPSBOb25lCiAKK2ltcG9ydCBlcnJubworaW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgU3RyaW5nSU8K
QEAgLTQzLDYgKzQ1LDkgQEAgaW1wb3J0IHN5cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgdGVlCiAKIAorX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCJ3ZWJraXRweS5jb21tb24uc3lzdGVtIikKKworCiBjbGFzcyBTY3JpcHRFcnJvcihFeGNl
cHRpb24pOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsCkBAIC0xNjIsMzEgKzE2Nyw1OCBAQCBj
bGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgIyBtYWNoaW5lcy4KICAgICAgICAgcmV0
dXJuIDIKIAorICAgICMgRXhlY3V0aXZlIHVuaXQgdGVzdHMgdXNlcyB0aGlzIGluZm9ybWF0aW9u
IHRvIHZhbGlkYXRlIHRoYXQKKyAgICAjIGtpbGxfcHJvY2Vzcy9raWxsX2FsbCB3b3JrIGFzIGV4
cGVjdGVkIGFuIGNhdXNlIHRoZSBleHBlY3RlZCBleGl0IGNvZGVzLgorICAgICMgV2Ugc3RvcmUg
dGhpcyBpbmZvcm1hdGlvbiBpbiB0aGlzIGZpbGUgdG8ga2VlcCBpdCBuZXh0IHRvIHRoZSBwbGF0
Zm9ybSBpZnMuCisgICAgIyB0YXNra2lsbC5leGUgY2F1c2VzIHByb2Nlc3NlcyB0byBleGl0IDAs
IG90aGVyd2lzZSBwcm9jZXNzZXMgZXhpdCAtU0lHTkFMCisgICAgX0tJTExfUFJPQ0VTU19LSUxM
RURfUFJPQ0VTU19FWElUX0NPREUgPSAwIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyIgZWxz
ZSAtc2lnbmFsLlNJR0tJTEwKKyAgICBfS0lMTF9BTExfS0lMTEVEX1BST0NFU1NfRVhJVF9DT0RF
ID0gMCBpZiBzeXMucGxhdGZvcm0gaW4gKCJ3aW5kb3dzIiwgImN5Z3dpbiIpIGVsc2UgLXNpZ25h
bC5TSUdURVJNCisKICAgICBkZWYga2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6CiAgICAgICAgICIi
IkF0dGVtcHRzIHRvIGtpbGwgdGhlIGdpdmVuIHBpZC4KICAgICAgICAgV2lsbCBmYWlsIHNpbGVu
dGx5IGlmIHBpZCBkb2VzIG5vdCBleGlzdCBvciBpbnN1ZmZpY2llbnQgcGVybWlzc3Npb25zLiIi
IgotICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6Ci0gICAgICAgICAg
ICAjIEFjY29yZGluZyB0byBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvb3MuaHRtbAot
ICAgICAgICAgICAgIyBvcy5raWxsIGlzbid0IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiAgSG93ZXZl
ciwgd2hlbiBJIHRyaWVkIGl0Ci0gICAgICAgICAgICAjIHVzaW5nIEN5Z3dpbiwgaXQgd29ya2Vk
IGZpbmUuICBXZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlcgotICAgICAgICAgICAgIyB3ZSBu
ZWVkIHRoaXMgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSBoZXJlLgotICAgICAgICAgICAgY29tbWFu
ZCA9IFsidGFza2tpbGwuZXhlIiwgIi9mIiwgIi9waWQiLCBzdHIocGlkKV0KLSAgICAgICAgICAg
ICMgdGFza2tpbGwgd2lsbCBleGl0IDEyOCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuCisg
ICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luZG93cyI6CisgICAgICAgICAgICAjIFdlIG9u
bHkgdXNlIHRhc2traWxsLmV4ZSBvbiB3aW5kb3dzIChub3QgY3lnd2luKSBiZWNhdXNlIHN1YnBy
b2Nlc3MucGlkCisgICAgICAgICAgICAjIGlzIGEgQ1lHV0lOIHBpZCBhbmQgdGFza2tpbGwuZXhl
IGV4cGVjdHMgYSB3aW5kb3dzIHBpZC4KKyAgICAgICAgICAgICMgVGhhbmtmdWxseSBvcy5raWxs
IG9uIENZR1dJTiBoYW5kbGVzIGVpdGhlciBwaWQgdHlwZS4KKyAgICAgICAgICAgIGNvbW1hbmQg
PSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvcGlkIiwgcGlkXQorICAgICAgICAgICAgIyB0YXNr
a2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBmb3VuZC4gIFdlIHNob3Vs
ZCBsb2cuCiAgICAgICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1hbmQsIGVycm9yX2hhbmRs
ZXI9c2VsZi5pZ25vcmVfZXJyb3IpCiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQotICAgICAgICBleGNlcHQg
T1NFcnJvciwgZToKLSAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBtYWtlIG5vbi1zaWxl
bnQgZmFpbHVyZSBhbiBvcHRpb24uCi0gICAgICAgICAgICBwYXNzCisKKyAgICAgICAgIyBBY2Nv
cmRpbmcgdG8gaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L29zLmh0bWwKKyAgICAgICAg
IyBvcy5raWxsIGlzbid0IGF2YWlsYWJsZSBvbiBXaW5kb3dzLiBweXRob24gMi41LjUgb3Mua2ls
bCBhcHBlYXJzCisgICAgICAgICMgdG8gd29yayBpbiBjeWd3aW4sIGhvd2V2ZXIgaXQgb2NjYXNp
b25hbGx5IHJhaXNlcyBFQUdBSU4uCisgICAgICAgIHJldHJpZXNfbGVmdCA9IDMgaWYgc3lzLnBs
YXRmb3JtID09ICJjeWd3aW4iIGVsc2UgMQorICAgICAgICB3aGlsZSByZXRyaWVzX2xlZnQgPiAw
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHJpZXNfbGVmdCAtPSAxCisg
ICAgICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQorICAgICAgICAgICAg
ZXhjZXB0IE9TRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5F
QUdBSU46CisgICAgICAgICAgICAgICAgICAgIGlmIHJldHJpZXNfbGVmdCA8PSAwOgorICAgICAg
ICAgICAgICAgICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8ga2lsbCBwaWQgJXMuICBUb28g
bWFueSBFQUdBSU4gZXJyb3JzLiIgJSBwaWQpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FU1JDSDogICMgVGhlIHByb2Nl
c3MgZG9lcyBub3QgZXhpc3QuCisgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybigiQ2FsbGVk
IGtpbGxfcHJvY2VzcyB3aXRoIGEgbm9uLWV4aXN0YW50IHBpZCAlcyIgJSBwaWQpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgX3dp
bmRvd3NfaW1hZ2VfbmFtZShzZWxmLCBwcm9jZXNzX25hbWUpOgorICAgICAgICBuYW1lLCBleHRl
bnNpb24gPSBvcy5wYXRoLnNwbGl0ZXh0KHByb2Nlc3NfbmFtZSkKKyAgICAgICAgaWYgbm90IGV4
dGVuc2lvbjoKKyAgICAgICAgICAgICMgdGFza2tpbGwgZXhwZWN0cyBwcm9jZXNzZXMgdG8gZW5k
IGluIC5leGUKKyAgICAgICAgICAgICMgSWYgbmVjZXNzYXJ5IHdlIGNvdWxkIGFkZCBhIGZsYWcg
dG8gZGlzYWJsZSBhcHBlbmRpbmcgLmV4ZS4KKyAgICAgICAgICAgIHByb2Nlc3NfbmFtZSA9ICIl
cy5leGUiICUgbmFtZQorICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1lCiAKICAgICBkZWYga2ls
bF9hbGwoc2VsZiwgcHJvY2Vzc19uYW1lKToKICAgICAgICAgIiIiQXR0ZW1wdHMgdG8ga2lsbCBw
cm9jZXNzZXMgbWF0Y2hpbmcgcHJvY2Vzc19uYW1lLgogICAgICAgICBXaWxsIGZhaWwgc2lsZW50
bHkgaWYgbm8gcHJvY2VzcyBhcmUgZm91bmQuIiIiCi0gICAgICAgIGlmIHBsYXRmb3JtLnN5c3Rl
bSgpID09ICJXaW5kb3dzIjoKLSAgICAgICAgICAgICMgV2UgbWlnaHQgd2FudCB0byBhdXRvbWF0
aWNhbGx5IGFwcGVuZCAuZXhlPwotICAgICAgICAgICAgY29tbWFuZCA9IFsidGFza2tpbGwuZXhl
IiwgIi9mIiwgIi9pbSIsIHByb2Nlc3NfbmFtZV0KLSAgICAgICAgICAgICMgdGFza2tpbGwgd2ls
bCBleGl0IDEyOCBpZiB0aGUgcHJvY2VzcyBpcyBub3QgZm91bmQuCisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybSBpbiAoIndpbmRvd3MiLCAiY3lnd2luIik6CisgICAgICAgICAgICBpbWFnZV9uYW1l
ID0gc2VsZi5fd2luZG93c19pbWFnZV9uYW1lKHByb2Nlc3NfbmFtZSkKKyAgICAgICAgICAgIGNv
bW1hbmQgPSBbInRhc2traWxsLmV4ZSIsICIvZiIsICIvaW0iLCBpbWFnZV9uYW1lXQorICAgICAg
ICAgICAgIyB0YXNra2lsbCB3aWxsIGV4aXQgMTI4IGlmIHRoZSBwcm9jZXNzIGlzIG5vdCBmb3Vu
ZC4gIFdlIHNob3VsZCBsb2cuCiAgICAgICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGNvbW1hbmQs
IGVycm9yX2hhbmRsZXI9c2VsZi5pZ25vcmVfZXJyb3IpCiAgICAgICAgICAgICByZXR1cm4KIApA
QCAtMTk1LDYgKzIyNyw5IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIFdl
IHNob3VsZCBwaWNrIG9uZSBtb2RlLCBvciBhZGQgc3VwcG9ydCBmb3Igc3dpdGNoaW5nIGJldHdl
ZW4gdGhlbS4KICAgICAgICAgIyBOb3RlOiBNYWMgT1MgWCAxMC42IHJlcXVpcmVzIC1TSUdOQUxO
QU1FIGJlZm9yZSAtdSBVU0VSCiAgICAgICAgIGNvbW1hbmQgPSBbImtpbGxhbGwiLCAiLVRFUk0i
LCAiLXUiLCBvcy5nZXRlbnYoIlVTRVIiKSwgcHJvY2Vzc19uYW1lXQorICAgICAgICAjIGtpbGxh
bGwgcmV0dXJucyAxIGlmIG5vIHByb2Nlc3MgY2FuIGJlIGZvdW5kIGFuZCAyIG9uIGNvbW1hbmQg
ZXJyb3IuCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBwYXNzIGEgY3VzdG9tIGVycm9yX2hh
bmRsZXIgdG8gYWxsb3cgb25seSBleGl0X2NvZGUgMS4KKyAgICAgICAgIyBXZSBzaG91bGQgbG9n
IGluIGV4aXRfY29kZSA9PSAxCiAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoY29tbWFuZCwgZXJy
b3JfaGFuZGxlcj1zZWxmLmlnbm9yZV9lcnJvcikKIAogICAgICMgRXJyb3IgaGFuZGxlcnMgZG8g
bm90IG5lZWQgdG8gYmUgc3RhdGljIG1ldGhvZHMgb25jZSBhbGwgY2FsbGVycyBhcmUKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRp
dmVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5CmluZGV4IGNlOTEyNjljMTZkMDU3N2JiNDJkYTExOTM2
NmY1ZTQ1MDIwMTdkMzUuLjBjNThhODAxMTM2YWQ4MGFlMzc1OWY0Y2EyZGY5ZWZjOWNjZGExNGYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmVfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5weQpAQCAtNzcsMTAgKzc3LDI0IEBAIGNs
YXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBwcm9jZXNzID0g
c3VicHJvY2Vzcy5Qb3BlbihbInllcyJdLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3MucG9sbCgpLCBOb25lKSAgIyBQcm9jZXNzIGlzIHJ1
bm5pbmcKICAgICAgICAgZXhlY3V0aXZlLmtpbGxfcHJvY2Vzcyhwcm9jZXNzLnBpZCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndhaXQoKSwgLXNpZ25hbC5TSUdLSUxMKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2Nlc3Mud2FpdCgpLCBleGVjdXRpdmUuX0tJTExfUFJP
Q0VTU19LSUxMRURfUFJPQ0VTU19FWElUX0NPREUpCiAgICAgICAgICMgS2lsbGluZyBhZ2FpbiBz
aG91bGQgZmFpbCBzaWxlbnRseS4KICAgICAgICAgZXhlY3V0aXZlLmtpbGxfcHJvY2Vzcyhwcm9j
ZXNzLnBpZCkKIAorICAgIGRlZiBfYXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZShzZWxmLCBuYW1l
LCBleHBlY3RlZF93aW5kb3dzX25hbWUpOgorICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUo
KQorICAgICAgICB3aW5kb3dzX25hbWUgPSBleGVjdXRpdmUuX3dpbmRvd3NfaW1hZ2VfbmFtZShu
YW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdpbmRvd3NfbmFtZSwgZXhwZWN0ZWRfd2lu
ZG93c19uYW1lKQorCisgICAgZGVmIHRlc3Rfd2luZG93c19pbWFnZV9uYW1lKHNlbGYpOgorICAg
ICAgICBzZWxmLl9hc3NlcnRfd2luZG93c19pbWFnZV9uYW1lKCJmb28iLCAiZm9vLmV4ZSIpCisg
ICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoImZvby5leGUiLCAiZm9vLmV4
ZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF93aW5kb3dzX2ltYWdlX25hbWUoImZvby5jb20iLCAi
Zm9vLmNvbSIpCisgICAgICAgICMgSWYgdGhlIG5hbWUgbG9va3MgbGlrZSBhbiBleHRlbnNpb24s
IGV2ZW4gaWYgaXQgaXNuJ3QKKyAgICAgICAgIyBzdXBwb3NlZCB0bywgd2UgaGF2ZSBubyBjaG9p
Y2UgYnV0IHRvIHJldHVybiB0aGUgb3JpZ2luYWwgbmFtZS4KKyAgICAgICAgc2VsZi5fYXNzZXJ0
X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmJheiIsICJmb28uYmF6IikKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X3dpbmRvd3NfaW1hZ2VfbmFtZSgiZm9vLmJhei5leGUiLCAiZm9vLmJhei5leGUiKQor
CiAgICAgZGVmIHRlc3Rfa2lsbF9hbGwoc2VsZik6CiAgICAgICAgIGV4ZWN1dGl2ZSA9IEV4ZWN1
dGl2ZSgpCiAgICAgICAgICMgRklYTUU6IFRoaXMgbWF5IG5lZWQgZWRpdHMgdG8gd29yayByaWdo
dCBvbiB3aW5kb3dzLgpAQCAtODgsNiArMTAyLDYgQEAgY2xhc3MgRXhlY3V0aXZlVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKFsieWVz
Il0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJv
Y2Vzcy5wb2xsKCksIE5vbmUpICAjIFByb2Nlc3MgaXMgcnVubmluZwogICAgICAgICBleGVjdXRp
dmUua2lsbF9hbGwoInllcyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvY2Vzcy53YWl0
KCksIC1zaWduYWwuU0lHVEVSTSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzLndh
aXQoKSwgZXhlY3V0aXZlLl9LSUxMX0FMTF9LSUxMRURfUFJPQ0VTU19FWElUX0NPREUpCiAgICAg
ICAgICMgS2lsbGluZyBhZ2FpbiBzaG91bGQgZmFpbCBzaWxlbnRseS4KICAgICAgICAgZXhlY3V0
aXZlLmtpbGxfYWxsKCJ5ZXMiKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQppbmRleCAzMDJh
Zjg2YjgxNjVhZjNmMDFiNzMwZTAxMGViY2RkOGU5MmUyNGZhLi41NmQ4YTRiZDM5NjBiYzA0NWZm
YTFhODMyYWIzOGYxYzExNjBkYzZiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weQpAQCAt
NTcsNiArNTcsNyBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0
KToKICAgICAgICAgZGlycy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9t
aXVtLXdpbicpKQogICAgICAgICBkaXJzLmFwcGVuZChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0
aCgnY2hyb21pdW0nKSkKICAgICAgICAgZGlycy5hcHBlbmQoc2VsZi5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgoJ3dpbicpKQorICAgICAgICAjIEZJTVhFOiBUaGlzIHNob3VsZCBpbmNsdWRlIG1hYy1z
bm93bGVvcGFyZCBsaWtlIHdpbi5weSBkb2VzLgogICAgICAgICBkaXJzLmFwcGVuZChzZWxmLl93
ZWJraXRfYmFzZWxpbmVfcGF0aCgnbWFjJykpCiAgICAgICAgIHJldHVybiBkaXJzCiAKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHkKaW5kZXggYWRhODNjZTQ3ZDBmYmViNGQ5MjI5ZWNlZmMzMWIxNGIxOWU4MzgwZi4u
MjA5N2NlNzllMDA5MjQ2ZjQwNzk4ZWJjZjcwYjgzNmMzYTAyNzNiZSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQu
cHkKQEAgLTI5NCwxMyArMjk0LDMzIEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToKICAg
ICAgICAgcmV0dXJuIHNlbGYudGVzdF9iYXNlX3BsYXRmb3JtX25hbWVzKCkgKyAoCiAgICAgICAg
ICAgICAnbWFjLXRpZ2VyJywgJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcpCiAKKyAg
ICBkZWYgX2NvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKHNlbGYpOgorICAgICAgICBidWlsZF9yb290
ID0gc2VsZi5fd2Via2l0X2J1aWxkX2RpcmVjdG9yeShbIi0tdG9wLWxldmVsIl0pCisgICAgICAg
IHJldHVybiBvcy5wYXRoLmpvaW4oYnVpbGRfcm9vdCwgIkNvbmZpZ3VyYXRpb24iKQorCisgICAg
IyBFYXN5IG92ZXJyaWRlIGZvciB1bml0IHRlc3RzCisgICAgZGVmIF9vcGVuX2NvbmZpZ3VyYXRp
b25fZmlsZShzZWxmKToKKyAgICAgICAgY29uZmlndXJhdGlvbl9wYXRoID0gc2VsZi5fY29uZmln
dXJhdGlvbl9maWxlX3BhdGgoKQorICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4oY29uZmlndXJh
dGlvbl9wYXRoLCAiciIsICJ1dGYtOCIpCisKKyAgICBkZWYgX3JlYWRfY29uZmlndXJhdGlvbihz
ZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBzZWxmLl9vcGVuX2NvbmZpZ3Vy
YXRpb25fZmlsZSgpIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGUucmVhZGxp
bmUoKS5yc3RyaXAoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICAjIEZJWE1FOiBUaGlzIGxpc3QgbWF5IGJlIGluY29tcGxldGUgYXMg
QXBwbGUgaGFzIHNvbWUgc2VrcmV0IGNvbmZpZ3MuCisgICAgX1JFQ09HTklaRURfQ09ORklHVVJB
VElPTlMgPSAoIkRlYnVnIiwgIlJlbGVhc2UiKQorCiAgICAgZGVmIGRlZmF1bHRfY29uZmlndXJh
dGlvbihzZWxmKToKLSAgICAgICAgIyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay4gVGhpcyBzdGF0
ZSBleGlzdHMgaW4gYSBtdWNoIG5pY2VyIGZvcm0gaW4KLSAgICAgICAgIyBwZXJsLWxhbmQuCi0g
ICAgICAgIGNvbmZpZ3VyYXRpb24gPSBvc3BhdGgucmVscGF0aCgKLSAgICAgICAgICAgIHNlbGYu
X3dlYmtpdF9idWlsZF9kaXJlY3RvcnkoWyItLWNvbmZpZ3VyYXRpb24iXSksCi0gICAgICAgICAg
ICBzZWxmLl93ZWJraXRfYnVpbGRfZGlyZWN0b3J5KFsiLS10b3AtbGV2ZWwiXSkpCi0gICAgICAg
IGFzc2VydChjb25maWd1cmF0aW9uID09ICJEZWJ1ZyIgb3IgY29uZmlndXJhdGlvbiA9PSAiUmVs
ZWFzZSIpCisgICAgICAgICMgRklYTUU6IFVuaWZ5IHRoaXMgd2l0aCB3ZWJraXRkaXIucG0gY29u
ZmlndXJhdGlvbiByZWFkaW5nIGNvZGUuCisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBzZWxmLl9y
ZWFkX2NvbmZpZ3VyYXRpb24oKQorICAgICAgICBpZiBub3QgY29uZmlndXJhdGlvbjoKKyAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAgICAgaWYgY29uZmlndXJhdGlv
biBub3QgaW4gc2VsZi5fUkVDT0dOSVpFRF9DT05GSUdVUkFUSU9OUzoKKyAgICAgICAgICAgIF9s
b2cud2FybigiQ29uZmlndXJhdGlvbiBcIiVzXCIgZm91bmQgaW4gJXMgaXMgbm90IGEgcmVjb2du
aXplZCB2YWx1ZS5cbiIgJSAoY29uZmlndXJhdGlvbiwgc2VsZi5fY29uZmlndXJhdGlvbl9maWxl
X3BhdGgoKSkpCisgICAgICAgICAgICBfbG9nLndhcm4oIlNjcmlwdHMgbWF5IGZhaWwuICBTZWUg
J3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWhlbHAnLiIpCiAgICAgICAgIHJldHVybiBjb25m
aWd1cmF0aW9uCiAKICAgICBkZWYgX3dlYmtpdF9idWlsZF9kaXJlY3Rvcnkoc2VsZiwgYXJncyk6
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dpbi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2luLnB5CmluZGV4IDNiN2E4MTdhMGFiYTQ0NjUwMjQwOTJiMGIyNDVhMDdmMThlYzkyNjUu
LmUwNWE2OWQ4MWFiNzY3MDVlZTNhZjM4M2VhNTI1YmQ1MTkyNDI5YjcgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CkBA
IC00NCw2ICs0NCwxMSBAQCBjbGFzcyBXaW5Qb3J0KFdlYktpdFBvcnQpOgogICAgICAgICAgICAg
cG9ydF9uYW1lID0gJ3dpbicKICAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0
X25hbWUsIG9wdGlvbnMpCiAKKyAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Cisg
ICAgICAgICMgQmFzZWQgb24gY29kZSBmcm9tIG9sZC1ydW4td2Via2l0LXRlc3RzIGV4cGVjdGVk
RGlyZWN0b3J5Rm9yVGVzdCgpCisgICAgICAgIHBvcnRfbmFtZXMgPSBbIndpbiIsICJtYWMtc25v
d2xlb3BhcmQiLCAibWFjIl0KKyAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxp
bmVfcGF0aCwgcG9ydF9uYW1lcykKKwogICAgIGRlZiBfdGVzdHNfZm9yX290aGVyX3BsYXRmb3Jt
cyhzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBsaXN0IGNvdWxkIGJlIGR5bmFtaWMgYmFz
ZWQgb24gcGxhdGZvcm0gbmFtZSBhbmQKICAgICAgICAgIyBwdXNoZWQgaW50byBiYXNlLlBvcnQu
Cg==
</data>
<flag name="review"
          id="39648"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>