<?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>98945</bug_id>
          
          <creation_ts>2012-10-10 12:28:50 -0700</creation_ts>
          <short_desc>Web Inspector: Whitelist safe styles for &apos;console.log(&apos;%c...&apos;, ...)&apos;.</short_desc>
          <delta_ts>2012-10-16 06:13:08 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>69401</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739213</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 12:28:50 -0700</bug_when>
    <thetext>69401 just landed, bringing with it support for styling console messages via &apos;%c&apos; in the same way as Firebug. We probably don&apos;t want to let _all_ style through, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739287</commentid>
    <comment_count>1</comment_count>
      <attachid>168070</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 14:09:33 -0700</bug_when>
    <thetext>Created attachment 168070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739289</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 14:12:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=168070) [details]
&gt; Patch

As a first pass at a reasonable whitelist, this patch allows &apos;color&apos; and &apos;font&apos;, as well as &apos;background[-*]&apos;, &apos;border[-*]&apos;, &apos;font[-*]&apos;, &apos;margin[-*]&apos;, &apos;padding[-*]&apos;, &apos;text[-*]&apos;, &apos;-webkit-background[-*]&apos;, &apos;-webkit-border[-*]&apos;, &apos;-webkit-font[-*]&apos;, &apos;-webkit-margin[-*]&apos;, &apos;-webkit-padding[-*]&apos;, and &apos;-webkit-text[-*]&apos;. We might want to adjust those.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739811</commentid>
    <comment_count>3</comment_count>
      <attachid>168070</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-11 04:34:16 -0700</bug_when>
    <thetext>Comment on attachment 168070
Patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:455
&gt; +                if (buffer.style.hasOwnProperty(x) &amp;&amp; isWhitelistedStyle(x))

You will get hundreds of them, it is better to iterate the whitelist instead.

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:460
&gt; +        function isWhitelistedStyle(s) {

{ on the next line

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:464
&gt; +          var prefixes = [&quot;background&quot;, &quot;border&quot;, &quot;font&quot;, &quot;margin&quot;, &quot;padding&quot;, &quot;text&quot;, &quot;webkitBackground&quot;, &quot;webkitBorder&quot;, &quot;webkitFont&quot;, &quot;webkitMargin&quot;, &quot;webkitPadding&quot;, &quot;webkitText&quot;];

You don&apos;t need to check the prefixes - getting the shorthand &quot;border&quot; should generate proper value for you.

&gt; LayoutTests/inspector/console/console-format-style-whitelist.html:2
&gt; +    &lt;head&gt;

We never indent in the inspector tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739833</commentid>
    <comment_count>4</comment_count>
      <attachid>168197</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 05:16:19 -0700</bug_when>
    <thetext>Created attachment 168197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739836</commentid>
    <comment_count>5</comment_count>
      <attachid>168199</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 05:18:44 -0700</bug_when>
    <thetext>Created attachment 168199
Indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739837</commentid>
    <comment_count>6</comment_count>
      <attachid>168070</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 05:19:57 -0700</bug_when>
    <thetext>Comment on attachment 168070
Patch

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

Thanks for taking a look. Comments inline.

&gt;&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:455
&gt;&gt; +                if (buffer.style.hasOwnProperty(x) &amp;&amp; isWhitelistedStyle(x))
&gt; 
&gt; You will get hundreds of them, it is better to iterate the whitelist instead.

How about iterating the set items? I&apos;ll upload a new patch for you to take a look at.

&gt;&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:464
&gt;&gt; +          var prefixes = [&quot;background&quot;, &quot;border&quot;, &quot;font&quot;, &quot;margin&quot;, &quot;padding&quot;, &quot;text&quot;, &quot;webkitBackground&quot;, &quot;webkitBorder&quot;, &quot;webkitFont&quot;, &quot;webkitMargin&quot;, &quot;webkitPadding&quot;, &quot;webkitText&quot;];
&gt; 
&gt; You don&apos;t need to check the prefixes - getting the shorthand &quot;border&quot; should generate proper value for you.

I don&apos;t think this is enough. Based on some quick experimentation, it doesn&apos;t look like &apos;-webkit-font-feature-settings&apos;, for example, shows up in the &apos;font&apos; property&apos;s value. Neither does &apos;text-rendering: optimizeLegibility;&apos; show up in &apos;text&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739908</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-11 06:35:41 -0700</bug_when>
    <thetext>&gt; I don&apos;t think this is enough. Based on some quick experimentation, it doesn&apos;t look like &apos;-webkit-font-feature-settings&apos;, for example, shows up in the &apos;font&apos; property&apos;s value. Neither does &apos;text-rendering: optimizeLegibility;&apos; show up in &apos;text&apos;.

This makes me think &quot;don&apos;t use these properties&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739917</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 06:40:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; I don&apos;t think this is enough. Based on some quick experimentation, it doesn&apos;t look like &apos;-webkit-font-feature-settings&apos;, for example, shows up in the &apos;font&apos; property&apos;s value. Neither does &apos;text-rendering: optimizeLegibility;&apos; show up in &apos;text&apos;.
&gt; 
&gt; This makes me think &quot;don&apos;t use these properties&quot; :)

*shrug* I&apos;m not saying they&apos;re totally essential, they&apos;re not. Still, &apos;display&apos; and &apos;position&apos; (and probably &apos;overflow&apos; and &apos;word-wrap&apos; and others I can&apos;t think of) could actually break the layout. These couldn&apos;t. I&apos;d rather expose as many properties as possible if we don&apos;t have a good reason not to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740018</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-11 09:00:41 -0700</bug_when>
    <thetext>&gt; These couldn&apos;t. I&apos;d rather expose as many properties as possible if we don&apos;t have a good reason not to.

They surely could: box properties (border, padding, margin) can significantly affect the layout. I don&apos;t think we need to be creative here, we just need to provide a way to log colorful / bold / underlined messages for the user&apos;s convenience.

We don&apos;t want pages to abuse this API and log(&quot;%cFoo&quot;, &quot;font-size:1000px&quot;) in order to effectively block user interaction by means on console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740033</commentid>
    <comment_count>10</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 09:19:49 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; These couldn&apos;t. I&apos;d rather expose as many properties as possible if we don&apos;t have a good reason not to.
&gt; 
&gt; They surely could: box properties (border, padding, margin) can significantly affect the layout. I don&apos;t think we need to be creative here, we just need to provide a way to log colorful / bold / underlined messages for the user&apos;s convenience.
&gt; 
&gt; We don&apos;t want pages to abuse this API and log(&quot;%cFoo&quot;, &quot;font-size:1000px&quot;) in order to effectively block user interaction by means on console.

Well, a malicious page can spam the console right now by looping calls to console.log(). I don&apos;t think this patch makes it much easier to make it tough for a developer to work. :)

In any event, it sounds like you&apos;re suggesting simply walking over [background, border, color, font, margin, padding] (and maybe &apos;text-decoration&apos;?), which I think is a fine compromise. If developers would like other properties, adding them to the whitelist would be trivial.

I&apos;ll spin a new patch for you tonightish. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740098</commentid>
    <comment_count>11</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-11 10:20:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I&apos;ll spin a new patch for you tonightish. Thanks!

Actually, now that I&apos;m looking at it again, it doesn&apos;t look like other properties fold together either. For example, given:

    var x = document.createElement(&apos;span&apos;);
    x.setAttribute(&apos;style&apos;, &apos;margin-left: 10px;&apos;);

The value of &apos;x.style.margin&apos; is &apos;&apos;. It does work well in the other direction, however: setting &apos;margin: 10px;&apos; expands out into &apos;x.style.marginLeft&apos; and so on.

It&apos;s still probably more performant to list out all the attributes we care about and iterate over them, it&apos;s just going to be a larger list than expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741579</commentid>
    <comment_count>12</comment_count>
      <attachid>168586</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-14 11:43:49 -0700</bug_when>
    <thetext>Created attachment 168586
Enumerated whitelist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741898</commentid>
    <comment_count>13</comment_count>
      <attachid>168586</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-15 03:08:24 -0700</bug_when>
    <thetext>Comment on attachment 168586
Enumerated whitelist.

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

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:548
&gt; +            for (var i = 0; i &lt; buffer.style.length; i++) {

Nice, so you now only walk through a handful of defined properties. Can you use border-, text-, stroke-, etc masks then?

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:550
&gt; +                if (styleWhitelist[property] === true)

if (styleWhitelist[property])</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741917</commentid>
    <comment_count>14</comment_count>
      <attachid>168669</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-15 03:42:22 -0700</bug_when>
    <thetext>Created attachment 168669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742982</commentid>
    <comment_count>15</comment_count>
      <attachid>168669</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-16 02:10:19 -0700</bug_when>
    <thetext>Comment on attachment 168669
Patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:463
&gt; +            if (property === &quot;color&quot; || property === &quot;font&quot;)

No need to special case these: font will match below, color could be also added below - it&apos;ll break when there is a new color-* something introduced :)

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:468
&gt; +                if (property.substr(0, prefixes[i].length) == prefixes[i])

property.startsWith(prefixes[i])</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743076</commentid>
    <comment_count>16</comment_count>
      <attachid>168926</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-16 05:13:24 -0700</bug_when>
    <thetext>Created attachment 168926
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743101</commentid>
    <comment_count>17</comment_count>
      <attachid>168926</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 06:13:04 -0700</bug_when>
    <thetext>Comment on attachment 168926
Patch for landing.

Clearing flags on attachment: 168926

Committed r131448: &lt;http://trac.webkit.org/changeset/131448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743102</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 06:13:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168070</attachid>
            <date>2012-10-10 14:09:33 -0700</date>
            <delta_ts>2012-10-11 05:19:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98945-20121010230832.patch</filename>
            <type>text/plain</type>
            <size>8965</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZjNzBmZmEzMTEwMTVl
OTYwNmYwNmVmMTg4NDgzMjI3NTA1YTc2NS4uMTI1MTY1NDJjODJhODE2N2IwOTNhNDQwNGE1YmFi
MmUwZjc0YTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTEwICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIHN0
eWxpbmcgY29uc29sZSBtZXNzYWdlcyB2aWEgJyVjJyBsYW5kZWQgd2l0aG91dCBhbnkKKyAgICAg
ICAgcGFyc2luZyBvZiB0aGUgc3R5bGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIFRoaXMgbWVhbnMg
dGhhdCBpdCdzIGZhaXJseQorICAgICAgICBzaW1wbGUgdG8gYWNjaWRlbnRhbGx5IG9yIG1hbGlj
aW91c2x5IGJyZWFrIHRoZSBjb25zb2xlIHdpdGggY2xldmVybHkKKyAgICAgICAgc3R5bGVkIG1l
c3NhZ2VzLiBUbyBtaXRpZ2F0ZSB0aGlzIHJpc2ssIHdoaXRlbGlzdGluZyBhIHNhZmUgc3Vic2V0
IG9mCisgICAgICAgIENTUyBzZWVtcyBhcHByb3ByaWF0ZS4KKworICAgICAgICBBcyBhIGZpcnN0
IHBhc3MgYXQgYSByZWFzb25hYmxlIHdoaXRlbGlzdCwgdGhpcyBwYXRjaCBhbGxvd3MgJ2NvbG9y
JworICAgICAgICBhbmQgJ2ZvbnQnLCBhcyB3ZWxsIGFzICdiYWNrZ3JvdW5kWy0qXScsICdib3Jk
ZXJbLSpdJywgJ2ZvbnRbLSpdJywKKyAgICAgICAgJ21hcmdpblstKl0nLCAncGFkZGluZ1stKl0n
LCAndGV4dFstKl0nLCAnLXdlYmtpdC1iYWNrZ3JvdW5kWy0qXScsCisgICAgICAgICctd2Via2l0
LWJvcmRlclstKl0nLCAnLXdlYmtpdC1mb250Wy0qXScsICctd2Via2l0LW1hcmdpblstKl0nLAor
ICAgICAgICAnLXdlYmtpdC1wYWRkaW5nWy0qXScsIGFuZCAnLXdlYmtpdC10ZXh0Wy0qXScuIFdl
IG1pZ2h0IHdhbnQgdG8gYWRqdXN0CisgICAgICAgIHRob3NlIGluIHRoZSBmdXR1cmUuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5f
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5zdHlsZUZvcm1hdHRlcik6CisgICAgICAgICAg
ICBDcmVhdGUgYSBidWZmZXIgZWxlbWVudCBvbnRvIHdoaWNoIHRoZSB1c2VyLXByb3ZpZGVkIHN0
eWxlcyBhcmUKKyAgICAgICAgICAgIGFwcGxpZWQuIFdoaXRlbGlzdGVkIHN0eWxlcyBhcmUgdHJh
bnNmZXJlZCBmcm9tIHRoZSBidWZmZXIgb250bworICAgICAgICAgICAgdGhlIGFjdHVhbCBjb25z
b2xlIG1lc3NhZ2UuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5pc1doaXRlbGlzdGVkU3R5bGUp
OgorICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpYyBzdHlsZSBpcyB3aGl0
ZWxpc3RlZC4gRXhwZWN0cyBzdHlsZXMKKyAgICAgICAgICAgIGluIHRoZSBDU1NPTSBmb3JtICh0
aGF0IGlzLCAnd2Via2l0UGFkZGluZ1N0YXJ0JyByYXRoZXIgdGhhbgorICAgICAgICAgICAgJy13
ZWJraXQtcGFkZGluZy1zdGFydCcpLgorCisyMDEyLTEwLTEwICBNaWtlIFdlc3QgIDxta3dzdEBj
aHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIHN1cHBvcnQgZm9yICVj
IChzdHlsZSkgaW4gY29uc29sZSBBUEkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5NDAxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IGFkOTdlMmM5Yzc4YmE3ZmFhOGU3
MDA0MDg2MjA5ZmZkYmJlYjA1NDkuLjkwNjM3OTVmZDM2YjJiNzAxYWRjNDM4ZTBhMTA1NWNhZWMz
Y2RhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlTWVzc2FnZS5qcwpAQCAtNDQ5LDcgKzQ0OSwyNSBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBzdHlsZUZvcm1h
dHRlcihvYmopCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5zZXRBdHRy
aWJ1dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIHZhciBidWZmZXIg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICBidWZmZXIuc2V0
QXR0cmlidXRlKCJzdHlsZSIsIG9iai5kZXNjcmlwdGlvbik7CisgICAgICAgICAgICBmb3IgKHgg
aW4gYnVmZmVyLnN0eWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlci5zdHlsZS5oYXNP
d25Qcm9wZXJ0eSh4KSAmJiBpc1doaXRlbGlzdGVkU3R5bGUoeCkpCisgICAgICAgICAgICAgICAg
ICAgIGZvcm1hdHRlZFJlc3VsdC5zdHlsZVt4XSA9IGJ1ZmZlci5zdHlsZVt4XTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlzV2hpdGVsaXN0ZWRTdHlsZShz
KSB7CisgICAgICAgICAgaWYgKHMgPT09ICJjb2xvciIgfHwgcyA9PT0gImZvbnQiKQorICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgIHZhciBwcmVmaXhlcyA9IFsiYmFja2dy
b3VuZCIsICJib3JkZXIiLCAiZm9udCIsICJtYXJnaW4iLCAicGFkZGluZyIsICJ0ZXh0IiwgIndl
YmtpdEJhY2tncm91bmQiLCAid2Via2l0Qm9yZGVyIiwgIndlYmtpdEZvbnQiLCAid2Via2l0TWFy
Z2luIiwgIndlYmtpdFBhZGRpbmciLCAid2Via2l0VGV4dCJdOworICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgaWYgKHMu
c3Vic3RyKDAsIHByZWZpeGVzW2ldLmxlbmd0aCkgPT0gcHJlZml4ZXNbaV0pCisgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJW8gZm9yIGZvcm1hdHRp
bmcgb2JqZWN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxN2Q3MzU0NTBkYTcyMWM4MWU5NjZjOWNiMzZjZDBhNjU5OGRj
MTRhLi45M2EwMGFiNTQxZDVmMTc0NWRhZjJlMDg5Y2M5NTdhYjQ2MTFjMzRiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTItMTAtMTAgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBXaGl0ZWxpc3Qgc2FmZSBzdHlsZXMgZm9yICdjb25z
b2xlLmxvZygnJWMuLi4nLCAuLi4pJy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanM6Cisg
ICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lkluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlc1dpdGhTdHlsZXMpOgorICAgICAgICAgICAgVXNlIHRoZSAnY3NzVGV4dCcgcHJvcGVy
dHkgb2YgYW4gZWxlbWVudCwgcmF0aGVyIHRoYW4gcmVhZGluZyBmcm9tCisgICAgICAgICAgICBp
dHMgJ3N0eWxlJyBhdHRyaWJ1dGUuIEFsc28sIGdyYWNlZnVsbHkgaGFuZGxlIHVuc3R5bGVkIGVs
ZW1lbnRzCisgICAgICAgICAgICBieSBleHBsaWNpdGx5IG5vdGluZyB0aGVpciBlbXB0eW5lc3Mu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTEwICBK
dWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgQ2hyb21pdW0gZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY29uc29sZS10ZXN0LmpzCmluZGV4IGZhMWQ5ZWMyNmRjY2ZlYTIwNzVmMzI4ZWNi
MGJjM2EwNjVjMjMwZjAuLmI1YzQ2MjdlNmQ0NzBhNTY3ZDljNWIxMGIxZTNmYTczZDE1ZmQ1MDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVz
dC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3Qu
anMKQEAgLTI4LDcgKzI4LDggQEAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0
aFN0eWxlcyA9IGZ1bmN0aW9uKHNvcnRNZXNzYWdlcykKICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNb
aV0udG9NZXNzYWdlRWxlbWVudCgpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChl
bGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGU6ICIgKyBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5j
b25zb2xlLW1lc3NhZ2UtdGV4dCBzcGFuIikuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKTsKKyAgICAg
ICAgdmFyIGNzc1RleHQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2Ut
dGV4dCBzcGFuIikuc3R5bGUuY3NzVGV4dCB8fCAiTk8gU1RZTEVTIERFRklORUQuIjsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN0eWxlOiAiICsgY3NzVGV4dCk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC1zdHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZTYzZTBhMWYyODY1MDRkZWY4MGM5YWI3NTM5NTYyNzkzNmM2NDY0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQt
c3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgODogJWNDb2xvcnMgYXJlIGF3ZXNvbWUuCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgOTogJWNTbyBhcmUgZm9udHMhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6ICVjQW5kIGJv
cmRlcnMgYW5kIG1hcmdpbnMgYW5kIHBhZGRpbmdzIQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEx
OiAlY3RleHQtKiBpcyBmaW5lIGJ5IHVzIQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiAlY0Fz
IHdlbGwgYXMgc29tZSAtd2Via2l0LSogcHJvcGVydGllcy4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNDogJWNEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTU6ICVjQW5kIHBvc2l0aW9uIHRvby4KK1Rlc3RzIHRoYXQgY29uc29s
ZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQgdGhlIHdo
b2xlIG1lc3NhZ2UgZ2V0cyB0aGUgc2FtZSBzdHlsZSwgcmVnYXJkbGVzcyBvZiBtdWx0aXBsZSAl
YyBzZXR0aW5ncy4KKworQ29sb3JzIGFyZSBhd2Vzb21lLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13
aGl0ZWxpc3QuaHRtbDo4CitTdHlsZTogY29sb3I6IGJsdWU7CitTbyBhcmUgZm9udHMhIGNvbnNv
bGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjkKK1N0eWxlOiBmb250LXN0eWxlOiBub3Jt
YWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6
IDFlbTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsKK0FuZCBi
b3JkZXJzIGFuZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEgY29uc29sZS1mb3JtYXQtc3R5bGUtd2hp
dGVsaXN0Lmh0bWw6MTAKK1N0eWxlOiBib3JkZXI6IDFweCBzb2xpZCByZWQ7IG1hcmdpbjogMjBw
eDsgcGFkZGluZzogMTBweDsKK3RleHQtKiBpcyBmaW5lIGJ5IHVzISBjb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QuaHRtbDoxMQorU3R5bGU6IHRleHQtZGVjb3JhdGlvbjogaW5pdGlhbDsK
K0FzIHdlbGwgYXMgc29tZSAtd2Via2l0LSogcHJvcGVydGllcy4gY29uc29sZS1mb3JtYXQtc3R5
bGUtd2hpdGVsaXN0Lmh0bWw6MTIKK1N0eWxlOiAtd2Via2l0LXBhZGRpbmctc3RhcnQ6IDEwcHg7
CitEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuIGNvbnNvbGUtZm9ybWF0
LXN0eWxlLXdoaXRlbGlzdC5odG1sOjE0CitTdHlsZTogTk8gU1RZTEVTIERFRklORUQuCitBbmQg
cG9zaXRpb24gdG9vLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxNQorU3R5
bGU6IE5PIFNUWUxFUyBERUZJTkVELgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU1YjllNzg0MDJhOWY2ZGE4NzAzNmRjZTJmYzNjMTRmMzQ2MTg0MzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWQoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY0NvbG9ycyBhcmUgYXdlc29tZS4nLCAnY29sb3I6
IGJsdWU7Jyk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjU28gYXJlIGZvbnRzIScs
ICdmb250OiAxZW0gSGVsdmV0aWNhOycpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCcl
Y0FuZCBib3JkZXJzIGFuZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEnLCAnYm9yZGVyOiAxcHggc29s
aWQgcmVkOyBtYXJnaW46IDIwcHg7IHBhZGRpbmc6IDEwcHg7Jyk7CisgICAgICAgICAgICAgICAg
Y29uc29sZS5sb2coJyVjdGV4dC0qIGlzIGZpbmUgYnkgdXMhJywgJ3RleHQtZGVjb3JhdGlvbjog
bm9uZTsnKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWNBcyB3ZWxsIGFzIHNvbWUg
LXdlYmtpdC0qIHByb3BlcnRpZXMuJywgJy13ZWJraXQtcGFkZGluZy1zdGFydDogMTBweDsnKTsK
KworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBo
YW5kLCBpcyBiYWQgbmV3cy4nLCAnZGlzcGxheTogbm9uZTsnKTsKKyAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZygnJWNBbmQgcG9zaXRpb24gdG9vLicsICdwb3NpdGlvbjogYWJzb2x1dGU7Jyk7
CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKyAgICAg
IDxwPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNz
YWdlcywgYW5kIHRoYXQKKyAgICAgIHRoZSB3aG9sZSBtZXNzYWdlIGdldHMgdGhlIHNhbWUgc3R5
bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMKKyAgICAgIHNldHRpbmdzLjwvcD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168197</attachid>
            <date>2012-10-11 05:16:19 -0700</date>
            <delta_ts>2012-10-11 05:18:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98945-20121011141516.patch</filename>
            <type>text/plain</type>
            <size>9000</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc0MGI5NTNjOTVmMWVk
MmIwNzU0N2U3NTkzMjljMDc2YWU4NjcxNi4uNmQwNTE1ZjFkZGY2NGQ2ODExNjc2ZWE2NjczMTAx
ZDhjN2QxZjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTExICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIHN0
eWxpbmcgY29uc29sZSBtZXNzYWdlcyB2aWEgJyVjJyBsYW5kZWQgd2l0aG91dCBhbnkKKyAgICAg
ICAgcGFyc2luZyBvZiB0aGUgc3R5bGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIFRoaXMgbWVhbnMg
dGhhdCBpdCdzIGZhaXJseQorICAgICAgICBzaW1wbGUgdG8gYWNjaWRlbnRhbGx5IG9yIG1hbGlj
aW91c2x5IGJyZWFrIHRoZSBjb25zb2xlIHdpdGggY2xldmVybHkKKyAgICAgICAgc3R5bGVkIG1l
c3NhZ2VzLiBUbyBtaXRpZ2F0ZSB0aGlzIHJpc2ssIHdoaXRlbGlzdGluZyBhIHNhZmUgc3Vic2V0
IG9mCisgICAgICAgIENTUyBzZWVtcyBhcHByb3ByaWF0ZS4KKworICAgICAgICBBcyBhIGZpcnN0
IHBhc3MgYXQgYSByZWFzb25hYmxlIHdoaXRlbGlzdCwgdGhpcyBwYXRjaCBhbGxvd3MgJ2NvbG9y
JworICAgICAgICBhbmQgJ2ZvbnQnLCBhcyB3ZWxsIGFzICdiYWNrZ3JvdW5kWy0qXScsICdib3Jk
ZXJbLSpdJywgJ2ZvbnRbLSpdJywKKyAgICAgICAgJ21hcmdpblstKl0nLCAncGFkZGluZ1stKl0n
LCAndGV4dFstKl0nLCAnLXdlYmtpdC1iYWNrZ3JvdW5kWy0qXScsCisgICAgICAgICctd2Via2l0
LWJvcmRlclstKl0nLCAnLXdlYmtpdC1mb250Wy0qXScsICctd2Via2l0LW1hcmdpblstKl0nLAor
ICAgICAgICAnLXdlYmtpdC1wYWRkaW5nWy0qXScsIGFuZCAnLXdlYmtpdC10ZXh0Wy0qXScuIFdl
IG1pZ2h0IHdhbnQgdG8gYWRqdXN0CisgICAgICAgIHRob3NlIGluIHRoZSBmdXR1cmUuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5f
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5zdHlsZUZvcm1hdHRlcik6CisgICAgICAgICAg
ICBDcmVhdGUgYSBidWZmZXIgZWxlbWVudCBvbnRvIHdoaWNoIHRoZSB1c2VyLXByb3ZpZGVkIHN0
eWxlcyBhcmUKKyAgICAgICAgICAgIGFwcGxpZWQuIFdoaXRlbGlzdGVkIHN0eWxlcyBhcmUgdHJh
bnNmZXJlZCBmcm9tIHRoZSBidWZmZXIgb250bworICAgICAgICAgICAgdGhlIGFjdHVhbCBjb25z
b2xlIG1lc3NhZ2UuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5pc1doaXRlbGlzdGVkU3R5bGUp
OgorICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpYyBzdHlsZSBpcyB3aGl0
ZWxpc3RlZC4gRXhwZWN0cyBzdHlsZXMKKyAgICAgICAgICAgIGluIHRoZSBoeXBoZW5hdGVkIGZv
cm0gKHRoYXQgaXMsICctd2Via2l0LXBhZGRpbmctc3RhcnQnIHJhdGhlciB0aGFuCisgICAgICAg
ICAgICBDU1NPTSdzICd3ZWJraXRQYWRkaW5nU3RhcnQnKS4KKwogMjAxMi0xMC0xMCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhbGxvdyBmdWxsIHNjcmVl
biBtb2RlIGtleWJvYXJkIGFjY2VzcyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggYWQ5N2UyYzlj
NzhiYTdmYWE4ZTcwMDQwODYyMDlmZmRiYmViMDU0OS4uOTE3YWI1MjMxNGZlNWM2MTM3MmUxYTRk
NDhkZmYwMDE3NzFiNzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NDksNyArNDQ5LDI3IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9u
IHN0eWxlRm9ybWF0dGVyKG9iaikKICAgICAgICAgewotICAgICAgICAgICAgZm9ybWF0dGVkUmVz
dWx0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBvYmouZGVzY3JpcHRpb24pOworICAgICAgICAgICAg
dmFyIGJ1ZmZlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAg
IGJ1ZmZlci5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyLnN0eWxlLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gYnVmZmVyLnN0eWxlW2ldOworICAgICAgICAgICAg
ICAgIGlmIChpc1doaXRlbGlzdGVkUHJvcGVydHkocHJvcGVydHkpKQorICAgICAgICAgICAgICAg
ICAgICBmb3JtYXR0ZWRSZXN1bHQuc3R5bGVbcHJvcGVydHldID0gYnVmZmVyLnN0eWxlW3Byb3Bl
cnR5XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlzV2hp
dGVsaXN0ZWRQcm9wZXJ0eShzKQorICAgICAgICB7CisgICAgICAgICAgaWYgKHMgPT09ICJjb2xv
ciIgfHwgcyA9PT0gImZvbnQiKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg
ICAgIHZhciBwcmVmaXhlcyA9IFsiYmFja2dyb3VuZCIsICJib3JkZXIiLCAiZm9udCIsICJtYXJn
aW4iLCAicGFkZGluZyIsICJ0ZXh0IiwgIi13ZWJraXQtYmFja2dyb3VuZCIsICItd2Via2l0LWJv
cmRlciIsICItd2Via2l0LWZvbnQiLCAiLXdlYmtpdC1tYXJnaW4iLCAiLXdlYmtpdC1wYWRkaW5n
IiwgIi13ZWJraXQtdGV4dCJdOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4
ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgaWYgKHMuc3Vic3RyKDAsIHByZWZpeGVz
W2ldLmxlbmd0aCkgPT0gcHJlZml4ZXNbaV0pCisgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJW8gZm9yIGZvcm1hdHRpbmcgb2JqZWN0cy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBhYmMxYjExMGYzZmUyNDViYjZhOGMwODM2MDUxZjM1Yzk1ZmNhNDhiLi42OThjN2FiZGZjYjE5
N2IyZmEwYWU2MzE5ODQyZWYzODdjZjZmNTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MTAtMTEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBXaGl0ZWxpc3Qgc2FmZSBzdHlsZXMgZm9yICdjb25zb2xlLmxvZygnJWMuLi4nLCAu
Li4pJy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXpl
X0NvbnNvbGVUZXN0Lkluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMp
OgorICAgICAgICAgICAgVXNlIHRoZSAnY3NzVGV4dCcgcHJvcGVydHkgb2YgYW4gZWxlbWVudCwg
cmF0aGVyIHRoYW4gcmVhZGluZyBmcm9tCisgICAgICAgICAgICBpdHMgJ3N0eWxlJyBhdHRyaWJ1
dGUuIEFsc28sIGdyYWNlZnVsbHkgaGFuZGxlIHVuc3R5bGVkIGVsZW1lbnRzCisgICAgICAgICAg
ICBieSBleHBsaWNpdGx5IG5vdGluZyB0aGVpciBlbXB0eW5lc3MuCisgICAgICAgICogaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUt
d2hpdGVsaXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTEwICBJbHlhIFRpa2hvbm92c2t5ICA8
bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgaW5zdHJ1
bWVudCBIVE1MQ2FudmFzIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXRlc3QuanMKaW5kZXggZmExZDllYzI2ZGNjZmVhMjA3NWYzMjhlY2Iw
YmMzYTA2NWMyMzBmMC4uYjVjNDYyN2U2ZDQ3MGE1NjdkOWM1YjEwYjFlM2ZhNzNkMTVmZDUwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5q
cwpAQCAtMjgsNyArMjgsOCBAQCBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRo
U3R5bGVzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKQogICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tp
XS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVs
ZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZTogIiArIGVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNv
bnNvbGUtbWVzc2FnZS10ZXh0IHNwYW4iKS5nZXRBdHRyaWJ1dGUoInN0eWxlIikpOworICAgICAg
ICB2YXIgY3NzVGV4dCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNvbnNvbGUtbWVzc2FnZS10
ZXh0IHNwYW4iKS5zdHlsZS5jc3NUZXh0IHx8ICJOTyBTVFlMRVMgREVGSU5FRC4iOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGU6ICIgKyBjc3NUZXh0KTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRkOTIxYTRlNWRjODc3ZDA2ZTQ5NDVkMTg2ZmM3N2MyZGI0NWU3MjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA4OiAlY0NvbG9ycyBhcmUgYXdlc29tZS4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA5OiAlY1NvIGFyZSBmb250cyEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogJWNBbmQgYm9y
ZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6
ICVjdGV4dC0qIGlzIGZpbmUgYnkgdXMhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6ICVjQXMg
d2VsbCBhcyBzb21lIC13ZWJraXQtKiBwcm9wZXJ0aWVzLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE0OiAlY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBiYWQgbmV3cy4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTogJWNBbmQgcG9zaXRpb24gdG9vLgorVGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVkIG1lc3NhZ2VzLCBhbmQgdGhhdCB0aGUgd2hv
bGUgbWVzc2FnZSBnZXRzIHRoZSBzYW1lIHN0eWxlLCByZWdhcmRsZXNzIG9mIG11bHRpcGxlICVj
IHNldHRpbmdzLgorCitDb2xvcnMgYXJlIGF3ZXNvbWUuIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdo
aXRlbGlzdC5odG1sOjgKK1N0eWxlOiBjb2xvcjogYmx1ZTsKK1NvIGFyZSBmb250cyEgY29uc29s
ZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6OQorU3R5bGU6IGZvbnQtc3R5bGU6IG5vcm1h
bDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTog
MWVtOyBmb250LWZhbWlseTogSGVsdmV0aWNhOworQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5k
IHBhZGRpbmdzISBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMAorU3R5bGU6
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OwordGV4
dC0qIGlzIGZpbmUgYnkgdXMhIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjEx
CitTdHlsZTogdGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsOworQXMgd2VsbCBhcyBzb21lIC13ZWJr
aXQtKiBwcm9wZXJ0aWVzLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMgor
U3R5bGU6IC13ZWJraXQtcGFkZGluZy1zdGFydDogMTBweDsKK0Rpc3BsYXksIG9uIHRoZSBvdGhl
ciBoYW5kLCBpcyBiYWQgbmV3cy4gY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6
MTQKK1N0eWxlOiBOTyBTVFlMRVMgREVGSU5FRC4KK0FuZCBwb3NpdGlvbiB0b28uIGNvbnNvbGUt
Zm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjE1CitTdHlsZTogTk8gU1RZTEVTIERFRklORUQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTViOWU3ODQw
MmE5ZjZkYTg3MDM2ZGNlMmZjM2MxNGYzNDYxODQzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5o
dG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1
bmN0aW9uIG9ubG9hZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZS5s
b2coJyVjQ29sb3JzIGFyZSBhd2Vzb21lLicsICdjb2xvcjogYmx1ZTsnKTsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlLmxvZygnJWNTbyBhcmUgZm9udHMhJywgJ2ZvbnQ6IDFlbSBIZWx2ZXRpY2E7
Jyk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjQW5kIGJvcmRlcnMgYW5kIG1hcmdp
bnMgYW5kIHBhZGRpbmdzIScsICdib3JkZXI6IDFweCBzb2xpZCByZWQ7IG1hcmdpbjogMjBweDsg
cGFkZGluZzogMTBweDsnKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWN0ZXh0LSog
aXMgZmluZSBieSB1cyEnLCAndGV4dC1kZWNvcmF0aW9uOiBub25lOycpOworICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCclY0FzIHdlbGwgYXMgc29tZSAtd2Via2l0LSogcHJvcGVydGllcy4n
LCAnLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiAxMHB4OycpOworCisgICAgICAgICAgICAgICAgY29u
c29sZS5sb2coJyVjRGlzcGxheSwgb24gdGhlIG90aGVyIGhhbmQsIGlzIGJhZCBuZXdzLicsICdk
aXNwbGF5OiBub25lOycpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY0FuZCBwb3Np
dGlvbiB0b28uJywgJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsnKTsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQ29uc29sZU1l
c3NhZ2VzKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzV2l0aFN0eWxlcygpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKwor
ICAgIDxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorICAgICAgPHA+VGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVkIG1lc3NhZ2VzLCBhbmQgdGhhdAorICAgICAg
dGhlIHdob2xlIG1lc3NhZ2UgZ2V0cyB0aGUgc2FtZSBzdHlsZSwgcmVnYXJkbGVzcyBvZiBtdWx0
aXBsZSAlYworICAgICAgc2V0dGluZ3MuPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168199</attachid>
            <date>2012-10-11 05:18:44 -0700</date>
            <delta_ts>2012-10-14 11:43:43 -0700</delta_ts>
            <desc>Indentation.</desc>
            <filename>bug-98945-20121011141742.patch</filename>
            <type>text/plain</type>
            <size>8730</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc0MGI5NTNjOTVmMWVk
MmIwNzU0N2U3NTkzMjljMDc2YWU4NjcxNi4uNmQwNTE1ZjFkZGY2NGQ2ODExNjc2ZWE2NjczMTAx
ZDhjN2QxZjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTExICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIHN0
eWxpbmcgY29uc29sZSBtZXNzYWdlcyB2aWEgJyVjJyBsYW5kZWQgd2l0aG91dCBhbnkKKyAgICAg
ICAgcGFyc2luZyBvZiB0aGUgc3R5bGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIFRoaXMgbWVhbnMg
dGhhdCBpdCdzIGZhaXJseQorICAgICAgICBzaW1wbGUgdG8gYWNjaWRlbnRhbGx5IG9yIG1hbGlj
aW91c2x5IGJyZWFrIHRoZSBjb25zb2xlIHdpdGggY2xldmVybHkKKyAgICAgICAgc3R5bGVkIG1l
c3NhZ2VzLiBUbyBtaXRpZ2F0ZSB0aGlzIHJpc2ssIHdoaXRlbGlzdGluZyBhIHNhZmUgc3Vic2V0
IG9mCisgICAgICAgIENTUyBzZWVtcyBhcHByb3ByaWF0ZS4KKworICAgICAgICBBcyBhIGZpcnN0
IHBhc3MgYXQgYSByZWFzb25hYmxlIHdoaXRlbGlzdCwgdGhpcyBwYXRjaCBhbGxvd3MgJ2NvbG9y
JworICAgICAgICBhbmQgJ2ZvbnQnLCBhcyB3ZWxsIGFzICdiYWNrZ3JvdW5kWy0qXScsICdib3Jk
ZXJbLSpdJywgJ2ZvbnRbLSpdJywKKyAgICAgICAgJ21hcmdpblstKl0nLCAncGFkZGluZ1stKl0n
LCAndGV4dFstKl0nLCAnLXdlYmtpdC1iYWNrZ3JvdW5kWy0qXScsCisgICAgICAgICctd2Via2l0
LWJvcmRlclstKl0nLCAnLXdlYmtpdC1mb250Wy0qXScsICctd2Via2l0LW1hcmdpblstKl0nLAor
ICAgICAgICAnLXdlYmtpdC1wYWRkaW5nWy0qXScsIGFuZCAnLXdlYmtpdC10ZXh0Wy0qXScuIFdl
IG1pZ2h0IHdhbnQgdG8gYWRqdXN0CisgICAgICAgIHRob3NlIGluIHRoZSBmdXR1cmUuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5f
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5zdHlsZUZvcm1hdHRlcik6CisgICAgICAgICAg
ICBDcmVhdGUgYSBidWZmZXIgZWxlbWVudCBvbnRvIHdoaWNoIHRoZSB1c2VyLXByb3ZpZGVkIHN0
eWxlcyBhcmUKKyAgICAgICAgICAgIGFwcGxpZWQuIFdoaXRlbGlzdGVkIHN0eWxlcyBhcmUgdHJh
bnNmZXJlZCBmcm9tIHRoZSBidWZmZXIgb250bworICAgICAgICAgICAgdGhlIGFjdHVhbCBjb25z
b2xlIG1lc3NhZ2UuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5pc1doaXRlbGlzdGVkU3R5bGUp
OgorICAgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpYyBzdHlsZSBpcyB3aGl0
ZWxpc3RlZC4gRXhwZWN0cyBzdHlsZXMKKyAgICAgICAgICAgIGluIHRoZSBoeXBoZW5hdGVkIGZv
cm0gKHRoYXQgaXMsICctd2Via2l0LXBhZGRpbmctc3RhcnQnIHJhdGhlciB0aGFuCisgICAgICAg
ICAgICBDU1NPTSdzICd3ZWJraXRQYWRkaW5nU3RhcnQnKS4KKwogMjAxMi0xMC0xMCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhbGxvdyBmdWxsIHNjcmVl
biBtb2RlIGtleWJvYXJkIGFjY2VzcyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggYWQ5N2UyYzlj
NzhiYTdmYWE4ZTcwMDQwODYyMDlmZmRiYmViMDU0OS4uOTE3YWI1MjMxNGZlNWM2MTM3MmUxYTRk
NDhkZmYwMDE3NzFiNzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NDksNyArNDQ5LDI3IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9u
IHN0eWxlRm9ybWF0dGVyKG9iaikKICAgICAgICAgewotICAgICAgICAgICAgZm9ybWF0dGVkUmVz
dWx0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBvYmouZGVzY3JpcHRpb24pOworICAgICAgICAgICAg
dmFyIGJ1ZmZlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAg
IGJ1ZmZlci5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyLnN0eWxlLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gYnVmZmVyLnN0eWxlW2ldOworICAgICAgICAgICAg
ICAgIGlmIChpc1doaXRlbGlzdGVkUHJvcGVydHkocHJvcGVydHkpKQorICAgICAgICAgICAgICAg
ICAgICBmb3JtYXR0ZWRSZXN1bHQuc3R5bGVbcHJvcGVydHldID0gYnVmZmVyLnN0eWxlW3Byb3Bl
cnR5XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlzV2hp
dGVsaXN0ZWRQcm9wZXJ0eShzKQorICAgICAgICB7CisgICAgICAgICAgaWYgKHMgPT09ICJjb2xv
ciIgfHwgcyA9PT0gImZvbnQiKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg
ICAgIHZhciBwcmVmaXhlcyA9IFsiYmFja2dyb3VuZCIsICJib3JkZXIiLCAiZm9udCIsICJtYXJn
aW4iLCAicGFkZGluZyIsICJ0ZXh0IiwgIi13ZWJraXQtYmFja2dyb3VuZCIsICItd2Via2l0LWJv
cmRlciIsICItd2Via2l0LWZvbnQiLCAiLXdlYmtpdC1tYXJnaW4iLCAiLXdlYmtpdC1wYWRkaW5n
IiwgIi13ZWJraXQtdGV4dCJdOworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4
ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgaWYgKHMuc3Vic3RyKDAsIHByZWZpeGVz
W2ldLmxlbmd0aCkgPT0gcHJlZml4ZXNbaV0pCisgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJW8gZm9yIGZvcm1hdHRpbmcgb2JqZWN0cy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBhYmMxYjExMGYzZmUyNDViYjZhOGMwODM2MDUxZjM1Yzk1ZmNhNDhiLi42OThjN2FiZGZjYjE5
N2IyZmEwYWU2MzE5ODQyZWYzODdjZjZmNTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MTAtMTEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBXaGl0ZWxpc3Qgc2FmZSBzdHlsZXMgZm9yICdjb25zb2xlLmxvZygnJWMuLi4nLCAu
Li4pJy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXpl
X0NvbnNvbGVUZXN0Lkluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMp
OgorICAgICAgICAgICAgVXNlIHRoZSAnY3NzVGV4dCcgcHJvcGVydHkgb2YgYW4gZWxlbWVudCwg
cmF0aGVyIHRoYW4gcmVhZGluZyBmcm9tCisgICAgICAgICAgICBpdHMgJ3N0eWxlJyBhdHRyaWJ1
dGUuIEFsc28sIGdyYWNlZnVsbHkgaGFuZGxlIHVuc3R5bGVkIGVsZW1lbnRzCisgICAgICAgICAg
ICBieSBleHBsaWNpdGx5IG5vdGluZyB0aGVpciBlbXB0eW5lc3MuCisgICAgICAgICogaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUt
d2hpdGVsaXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTEwICBJbHlhIFRpa2hvbm92c2t5ICA8
bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgaW5zdHJ1
bWVudCBIVE1MQ2FudmFzIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXRlc3QuanMKaW5kZXggZmExZDllYzI2ZGNjZmVhMjA3NWYzMjhlY2Iw
YmMzYTA2NWMyMzBmMC4uYjVjNDYyN2U2ZDQ3MGE1NjdkOWM1YjEwYjFlM2ZhNzNkMTVmZDUwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5q
cwpAQCAtMjgsNyArMjgsOCBAQCBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRo
U3R5bGVzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKQogICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tp
XS50b01lc3NhZ2VFbGVtZW50KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVs
ZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2csICIiKSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZTogIiArIGVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNv
bnNvbGUtbWVzc2FnZS10ZXh0IHNwYW4iKS5nZXRBdHRyaWJ1dGUoInN0eWxlIikpOworICAgICAg
ICB2YXIgY3NzVGV4dCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNvbnNvbGUtbWVzc2FnZS10
ZXh0IHNwYW4iKS5zdHlsZS5jc3NUZXh0IHx8ICJOTyBTVFlMRVMgREVGSU5FRC4iOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGU6ICIgKyBjc3NUZXh0KTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRkOTIxYTRlNWRjODc3ZDA2ZTQ5NDVkMTg2ZmM3N2MyZGI0NWU3MjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA4OiAlY0NvbG9ycyBhcmUgYXdlc29tZS4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA5OiAlY1NvIGFyZSBmb250cyEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogJWNBbmQgYm9y
ZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6
ICVjdGV4dC0qIGlzIGZpbmUgYnkgdXMhCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6ICVjQXMg
d2VsbCBhcyBzb21lIC13ZWJraXQtKiBwcm9wZXJ0aWVzLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE0OiAlY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBiYWQgbmV3cy4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTogJWNBbmQgcG9zaXRpb24gdG9vLgorVGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVkIG1lc3NhZ2VzLCBhbmQgdGhhdCB0aGUgd2hv
bGUgbWVzc2FnZSBnZXRzIHRoZSBzYW1lIHN0eWxlLCByZWdhcmRsZXNzIG9mIG11bHRpcGxlICVj
IHNldHRpbmdzLgorCitDb2xvcnMgYXJlIGF3ZXNvbWUuIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdo
aXRlbGlzdC5odG1sOjgKK1N0eWxlOiBjb2xvcjogYmx1ZTsKK1NvIGFyZSBmb250cyEgY29uc29s
ZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6OQorU3R5bGU6IGZvbnQtc3R5bGU6IG5vcm1h
bDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTog
MWVtOyBmb250LWZhbWlseTogSGVsdmV0aWNhOworQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5k
IHBhZGRpbmdzISBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMAorU3R5bGU6
IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OwordGV4
dC0qIGlzIGZpbmUgYnkgdXMhIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjEx
CitTdHlsZTogdGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsOworQXMgd2VsbCBhcyBzb21lIC13ZWJr
aXQtKiBwcm9wZXJ0aWVzLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMgor
U3R5bGU6IC13ZWJraXQtcGFkZGluZy1zdGFydDogMTBweDsKK0Rpc3BsYXksIG9uIHRoZSBvdGhl
ciBoYW5kLCBpcyBiYWQgbmV3cy4gY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6
MTQKK1N0eWxlOiBOTyBTVFlMRVMgREVGSU5FRC4KK0FuZCBwb3NpdGlvbiB0b28uIGNvbnNvbGUt
Zm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjE1CitTdHlsZTogTk8gU1RZTEVTIERFRklORUQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUzNTQ2ZWQw
OWRmNDdhNjIxMThiNzJkNWMyMWIyYmQ0MGQ3OGFhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5o
dG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gb25sb2FkKCkKK3sKKyAgICBjb25zb2xlLmxvZygnJWND
b2xvcnMgYXJlIGF3ZXNvbWUuJywgJ2NvbG9yOiBibHVlOycpOworICAgIGNvbnNvbGUubG9nKCcl
Y1NvIGFyZSBmb250cyEnLCAnZm9udDogMWVtIEhlbHZldGljYTsnKTsKKyAgICBjb25zb2xlLmxv
ZygnJWNBbmQgYm9yZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhJywgJ2JvcmRlcjogMXB4
IHNvbGlkIHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OycpOworICAgIGNvbnNvbGUu
bG9nKCclY3RleHQtKiBpcyBmaW5lIGJ5IHVzIScsICd0ZXh0LWRlY29yYXRpb246IG5vbmU7Jyk7
CisgICAgY29uc29sZS5sb2coJyVjQXMgd2VsbCBhcyBzb21lIC13ZWJraXQtKiBwcm9wZXJ0aWVz
LicsICctd2Via2l0LXBhZGRpbmctc3RhcnQ6IDEwcHg7Jyk7CisKKyAgICBjb25zb2xlLmxvZygn
JWNEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuJywgJ2Rpc3BsYXk6IG5v
bmU7Jyk7CisgICAgY29uc29sZS5sb2coJyVjQW5kIHBvc2l0aW9uIHRvby4nLCAncG9zaXRpb246
IGFic29sdXRlOycpOworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKKyAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRoU3R5bGVzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9u
bG9hZCgpIj4KKzxwPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0
eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQKK3RoZSB3aG9sZSBtZXNzYWdlIGdldHMgdGhlIHNhbWUg
c3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMKK3NldHRpbmdzLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168586</attachid>
            <date>2012-10-14 11:43:49 -0700</date>
            <delta_ts>2012-10-15 03:42:18 -0700</delta_ts>
            <desc>Enumerated whitelist.</desc>
            <filename>bug-98945-20121014204240.patch</filename>
            <type>text/plain</type>
            <size>10995</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjM2MxNzY5ZGE4NmU4
N2NjN2YzMmNkYjJkYTIwYjc4ZTMzNDE0NC4uOWM4NDc5ZDZmZDY1MzA0NzU0OGEyZjRiNmQ1NjAy
NzA1ODU1NGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIHN0
eWxpbmcgY29uc29sZSBtZXNzYWdlcyB2aWEgJyVjJyBsYW5kZWQgd2l0aG91dCBhbnkKKyAgICAg
ICAgcGFyc2luZyBvZiB0aGUgc3R5bGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIFRoaXMgbWVhbnMg
dGhhdCBpdCdzIGZhaXJseQorICAgICAgICBzaW1wbGUgdG8gYWNjaWRlbnRhbGx5IG9yIG1hbGlj
aW91c2x5IGJyZWFrIHRoZSBjb25zb2xlIHdpdGggY2xldmVybHkKKyAgICAgICAgc3R5bGVkIG1l
c3NhZ2VzLiBUbyBtaXRpZ2F0ZSB0aGlzIHJpc2ssIHdoaXRlbGlzdGluZyBhIHNhZmUgc3Vic2V0
IG9mCisgICAgICAgIENTUyBzZWVtcyBhcHByb3ByaWF0ZS4KKworICAgICAgICBBcyBhIGZpcnN0
IHBhc3MgYXQgYSByZWFzb25hYmxlIHdoaXRlbGlzdCwgdGhpcyBwYXRjaCBhbGxvd3MgJ2NvbG9y
JworICAgICAgICBhbmQgJ2ZvbnQnLCBhcyB3ZWxsIGFzICdiYWNrZ3JvdW5kWy0qXScsICdib3Jk
ZXJbLSpdJywgJ2ZvbnRbLSpdJywKKyAgICAgICAgJ21hcmdpblstKl0nLCAncGFkZGluZ1stKl0n
LCAndGV4dFstKl0nIGFuZCBhIGZldyBvdGhlciBhc3NvcnRlZAorICAgICAgICBwcm9wZXJ0aWVz
IGxpa2UgJ2JveC1zaGFkb3cnLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmcuc3R5
bGVGb3JtYXR0ZXIpOgorICAgICAgICAgICAgQ3JlYXRlIGEgYnVmZmVyIGVsZW1lbnQgb250byB3
aGljaCB0aGUgdXNlci1wcm92aWRlZCBzdHlsZXMgYXJlCisgICAgICAgICAgICBhcHBsaWVkLiBX
aGl0ZWxpc3RlZCBzdHlsZXMgYXJlIHRyYW5zZmVyZWQgZnJvbSB0aGUgYnVmZmVyIG9udG8KKyAg
ICAgICAgICAgIHRoZSBhY3R1YWwgY29uc29sZSBtZXNzYWdlLgorCiAyMDEyLTEwLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgSW5zcGVjdG9yUGFnZUFn
ZW50IHNob3VsZCBleHBvc2UgYSBtZXRob2QgdG8gY29udHJvbCB0aGUgY29tcG9zaXRpbmcgZGVi
dWcgc2V0dGluZ3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCBkZjMzNTVhMGVmYmRmNjJjMzE3MmY5YjAyZTkzMDVi
YTgwMjcyYThkLi44NjEzYjM5ZWE0YjExMjQyYjAzMjA4YmI0M2NlNzQzYWViNDY2M2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3Nh
Z2UuanMKQEAgLTQ0Nyw5ICs0NDcsMTA5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIG9iai5kZXNjcmlwdGlvbjsKICAg
ICAgICAgfQogCisgICAgICAgIHZhciBzdHlsZVdoaXRlbGlzdCA9IHsKKyAgICAgICAgICAgICJi
b3JkZXIiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci1ib3R0b20iOiB0cnVlLAorICAgICAg
ICAgICAgImJvcmRlci1ib3R0b20tY29sb3IiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci1i
b3R0b20tbGVmdC1yYWRpdXMiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzIjogdHJ1ZSwKKyAgICAgICAgICAgICJib3JkZXItYm90dG9tLXN0eWxlIjogdHJ1
ZSwKKyAgICAgICAgICAgICJib3JkZXItYm90dG9tLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgICAg
ICJib3JkZXItY29sbGFwc2UiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci1jb2xvciI6IHRy
dWUsCisgICAgICAgICAgICAiYm9yZGVyLWltYWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJib3Jk
ZXItaW1hZ2Utb3V0c2V0IjogdHJ1ZSwKKyAgICAgICAgICAgICJib3JkZXItaW1hZ2UtcmVwZWF0
IjogdHJ1ZSwKKyAgICAgICAgICAgICJib3JkZXItaW1hZ2Utc2xpY2UiOiB0cnVlLAorICAgICAg
ICAgICAgImJvcmRlci1pbWFnZS1zb3VyY2UiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci1p
bWFnZS13aWR0aCI6IHRydWUsCisgICAgICAgICAgICAiYm9yZGVyLWxlZnQiOiB0cnVlLAorICAg
ICAgICAgICAgImJvcmRlci1sZWZ0LWNvbG9yIjogdHJ1ZSwKKyAgICAgICAgICAgICJib3JkZXIt
bGVmdC1zdHlsZSI6IHRydWUsCisgICAgICAgICAgICAiYm9yZGVyLWxlZnQtd2lkdGgiOiB0cnVl
LAorICAgICAgICAgICAgImJvcmRlci1yYWRpdXMiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRl
ci1yaWdodCI6IHRydWUsCisgICAgICAgICAgICAiYm9yZGVyLXJpZ2h0LWNvbG9yIjogdHJ1ZSwK
KyAgICAgICAgICAgICJib3JkZXItcmlnaHQtc3R5bGUiOiB0cnVlLAorICAgICAgICAgICAgImJv
cmRlci1yaWdodC13aWR0aCI6IHRydWUsCisgICAgICAgICAgICAiYm9yZGVyLXNwYWNpbmciOiB0
cnVlLAorICAgICAgICAgICAgImJvcmRlci1zdHlsZSI6IHRydWUsCisgICAgICAgICAgICAiYm9y
ZGVyLXRvcCI6IHRydWUsCisgICAgICAgICAgICAiYm9yZGVyLXRvcC1jb2xvciI6IHRydWUsCisg
ICAgICAgICAgICAiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyI6IHRydWUsCisgICAgICAgICAgICAi
Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXMiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci10b3At
c3R5bGUiOiB0cnVlLAorICAgICAgICAgICAgImJvcmRlci10b3Atd2lkdGgiOiB0cnVlLAorICAg
ICAgICAgICAgImJvcmRlci13aWR0aCI6IHRydWUsCisgICAgICAgICAgICAiYm94LXNoYWRvdyI6
IHRydWUsCisgICAgICAgICAgICAiY29sb3IiOiB0cnVlLAorICAgICAgICAgICAgImZvbnQiOiB0
cnVlLAorICAgICAgICAgICAgImZvbnQtZmFtaWx5IjogdHJ1ZSwKKyAgICAgICAgICAgICJmb250
LXNpemUiOiB0cnVlLAorICAgICAgICAgICAgImZvbnQtc3RyZXRjaCI6IHRydWUsCisgICAgICAg
ICAgICAiZm9udC1zdHlsZSI6IHRydWUsCisgICAgICAgICAgICAiZm9udC12YXJpYW50IjogdHJ1
ZSwKKyAgICAgICAgICAgICJmb250LXdlaWdodCI6IHRydWUsCisgICAgICAgICAgICAibGV0dGVy
LXNwYWNpbmciOiB0cnVlLAorICAgICAgICAgICAgImxpbmUtaGVpZ2h0IjogdHJ1ZSwKKyAgICAg
ICAgICAgICJtYXJnaW4iOiB0cnVlLAorICAgICAgICAgICAgIm1hcmdpbi1ib3R0b20iOiB0cnVl
LAorICAgICAgICAgICAgIm1hcmdpbi1sZWZ0IjogdHJ1ZSwKKyAgICAgICAgICAgICJtYXJnaW4t
cmlnaHQiOiB0cnVlLAorICAgICAgICAgICAgIm1hcmdpbi10b3AiOiB0cnVlLAorICAgICAgICAg
ICAgIm91dGxpbmUiOiB0cnVlLAorICAgICAgICAgICAgIm91dGxpbmUtY29sb3IiOiB0cnVlLAor
ICAgICAgICAgICAgIm91dGxpbmUtb2Zmc2V0IjogdHJ1ZSwKKyAgICAgICAgICAgICJvdXRsaW5l
LXN0eWxlIjogdHJ1ZSwKKyAgICAgICAgICAgICJvdXRsaW5lLXdpZHRoIjogdHJ1ZSwKKyAgICAg
ICAgICAgICJwYWRkaW5nIjogdHJ1ZSwKKyAgICAgICAgICAgICJwYWRkaW5nLWJvdHRvbSI6IHRy
dWUsCisgICAgICAgICAgICAicGFkZGluZy1sZWZ0IjogdHJ1ZSwKKyAgICAgICAgICAgICJwYWRk
aW5nLXJpZ2h0IjogdHJ1ZSwKKyAgICAgICAgICAgICJwYWRkaW5nLXRvcCI6IHRydWUsCisgICAg
ICAgICAgICAic3Ryb2tlIjogdHJ1ZSwKKyAgICAgICAgICAgICJzdHJva2UtZGFzaGFycmF5Ijog
dHJ1ZSwKKyAgICAgICAgICAgICJzdHJva2UtZGFzaG9mZnNldCI6IHRydWUsCisgICAgICAgICAg
ICAic3Ryb2tlLWxpbmVjYXAiOiB0cnVlLAorICAgICAgICAgICAgInN0cm9rZS1saW5lam9pbiI6
IHRydWUsCisgICAgICAgICAgICAic3Ryb2tlLW1pdGVybGltaXQiOiB0cnVlLAorICAgICAgICAg
ICAgInN0cm9rZS1vcGFjaXR5IjogdHJ1ZSwKKyAgICAgICAgICAgICJzdHJva2Utd2lkdGgiOiB0
cnVlLAorICAgICAgICAgICAgInRleHQiOiB0cnVlLAorICAgICAgICAgICAgInRleHQtYWxpZ24i
OiB0cnVlLAorICAgICAgICAgICAgInRleHQtYW5jaG9yIjogdHJ1ZSwKKyAgICAgICAgICAgICJ0
ZXh0LWRlY29yYXRpb24iOiB0cnVlLAorICAgICAgICAgICAgInRleHQtaW5kZW50IjogdHJ1ZSwK
KyAgICAgICAgICAgICJ0ZXh0LWxpbmUtdGhyb3VnaCI6IHRydWUsCisgICAgICAgICAgICAidGV4
dC1saW5lLXRocm91Z2gtY29sb3IiOiB0cnVlLAorICAgICAgICAgICAgInRleHQtbGluZS10aHJv
dWdoLW1vZGUiOiB0cnVlLAorICAgICAgICAgICAgInRleHQtbGluZS10aHJvdWdoLXN0eWxlIjog
dHJ1ZSwKKyAgICAgICAgICAgICJ0ZXh0LWxpbmUtdGhyb3VnaC13aWR0aCI6IHRydWUsCisgICAg
ICAgICAgICAidGV4dC1vdmVyZmxvdyI6IHRydWUsCisgICAgICAgICAgICAidGV4dC1vdmVybGlu
ZSI6IHRydWUsCisgICAgICAgICAgICAidGV4dC1vdmVybGluZS1jb2xvciI6IHRydWUsCisgICAg
ICAgICAgICAidGV4dC1vdmVybGluZS1tb2RlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ0ZXh0LW92
ZXJsaW5lLXN0eWxlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ0ZXh0LW92ZXJsaW5lLXdpZHRoIjog
dHJ1ZSwKKyAgICAgICAgICAgICJ0ZXh0LXJlbmRlcmluZyI6IHRydWUsCisgICAgICAgICAgICAi
dGV4dC1zaGFkb3ciOiB0cnVlLAorICAgICAgICAgICAgInRleHQtdHJhbnNmb3JtIjogdHJ1ZSwK
KyAgICAgICAgICAgICJ0ZXh0LXVuZGVybGluZSI6IHRydWUsCisgICAgICAgICAgICAidGV4dC11
bmRlcmxpbmUtY29sb3IiOiB0cnVlLAorICAgICAgICAgICAgInRleHQtdW5kZXJsaW5lLW1vZGUi
OiB0cnVlLAorICAgICAgICAgICAgInRleHQtdW5kZXJsaW5lLXN0eWxlIjogdHJ1ZSwKKyAgICAg
ICAgICAgICJ0ZXh0LXVuZGVybGluZS13aWR0aCI6IHRydWUKKyAgICAgICAgfTsKKwogICAgICAg
ICBmdW5jdGlvbiBzdHlsZUZvcm1hdHRlcihvYmopCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZv
cm1hdHRlZFJlc3VsdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0aW9uKTsKKyAg
ICAgICAgICAgIHZhciBidWZmZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Cisg
ICAgICAgICAgICBidWZmZXIuc2V0QXR0cmlidXRlKCJzdHlsZSIsIG9iai5kZXNjcmlwdGlvbik7
CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5zdHlsZS5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IGJ1ZmZlci5zdHlsZVtpXTsKKyAg
ICAgICAgICAgICAgICBpZiAoc3R5bGVXaGl0ZWxpc3RbcHJvcGVydHldID09PSB0cnVlKQorICAg
ICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuc3R5bGVbcHJvcGVydHldID0gYnVmZmVy
LnN0eWxlW3Byb3BlcnR5XTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8v
IEZpcmVidWcgdXNlcyAlbyBmb3IgZm9ybWF0dGluZyBvYmplY3RzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YmQyNTY3
MGZjMmIyM2U3YmNmZDM0ZDQ5ZTc3ODY1MzA1ZjJiOGQuLjFlYjJlMDkxZDM3MjFjNjNkYzBhYTA3
MzVmZTQ2MTZhY2U1MGUyOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0xNCAgTWlr
ZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdo
aXRlbGlzdCBzYWZlIHN0eWxlcyBmb3IgJ2NvbnNvbGUubG9nKCclYy4uLicsIC4uLiknLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfQ29uc29sZVRl
c3QuSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0eWxlcyk6CisgICAgICAg
ICAgICBVc2UgdGhlICdjc3NUZXh0JyBwcm9wZXJ0eSBvZiBhbiBlbGVtZW50LCByYXRoZXIgdGhh
biByZWFkaW5nIGZyb20KKyAgICAgICAgICAgIGl0cyAnc3R5bGUnIGF0dHJpYnV0ZS4gQWxzbywg
Z3JhY2VmdWxseSBoYW5kbGUgdW5zdHlsZWQgZWxlbWVudHMKKyAgICAgICAgICAgIGJ5IGV4cGxp
Y2l0bHkgbm90aW5nIHRoZWlyIGVtcHR5bmVzcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3Qu
aHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcwppbmRleCBmYTFkOWVjMjZkY2NmZWEy
MDc1ZjMyOGVjYjBiYzNhMDY1YzIzMGYwLi5iNWM0NjI3ZTZkNDcwYTU2N2Q5YzViMTBiMWUzZmE3
M2QxNWZkNTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS10ZXN0LmpzCkBAIC0yOCw3ICsyOCw4IEBAIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlc1dpdGhTdHlsZXMgPSBmdW5jdGlvbihzb3J0TWVzc2FnZXMpCiAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewogICAgICAgICB2YXIgZWxlbWVudCA9
IG1lc3NhZ2VzW2ldLnRvTWVzc2FnZUVsZW1lbnQoKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoZWxlbWVudC50ZXh0Q29udGVudC5yZXBsYWNlKC9cdTIwMGIvZywgIiIpKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN0eWxlOiAiICsgZWxlbWVudC5xdWVyeVNl
bGVjdG9yKCIuY29uc29sZS1tZXNzYWdlLXRleHQgc3BhbiIpLmdldEF0dHJpYnV0ZSgic3R5bGUi
KSk7CisgICAgICAgIHZhciBjc3NUZXh0ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuY29uc29s
ZS1tZXNzYWdlLXRleHQgc3BhbiIpLnN0eWxlLmNzc1RleHQgfHwgIk5PIFNUWUxFUyBERUZJTkVE
LiI7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZTogIiArIGNzc1RleHQp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzA4M2VmMTMxNTMwM2EyMzhmZDk0ZTJiZDhkYzYzN2U1MDBjZDJm
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDg6ICVjQ29sb3JzIGFyZSBhd2Vzb21lLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDk6ICVjU28gYXJlIGZvbnRzIQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
OiAlY0FuZCBib3JkZXJzIGFuZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMTogJWN0ZXh0LSogaXMgZmluZSBieSB1cyEKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMzogJWNEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTQ6ICVjQW5kIHBvc2l0aW9uIHRvby4KK1Rlc3RzIHRoYXQgY29uc29s
ZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQgdGhlIHdo
b2xlIG1lc3NhZ2UgZ2V0cyB0aGUgc2FtZSBzdHlsZSwgcmVnYXJkbGVzcyBvZiBtdWx0aXBsZSAl
YyBzZXR0aW5ncy4KKworQ29sb3JzIGFyZSBhd2Vzb21lLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13
aGl0ZWxpc3QuaHRtbDo4CitTdHlsZTogY29sb3I6IGJsdWU7CitTbyBhcmUgZm9udHMhIGNvbnNv
bGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjkKK1N0eWxlOiBmb250LXN0eWxlOiBub3Jt
YWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6
IDFlbTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsKK0FuZCBi
b3JkZXJzIGFuZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEgY29uc29sZS1mb3JtYXQtc3R5bGUtd2hp
dGVsaXN0Lmh0bWw6MTAKK1N0eWxlOiBib3JkZXI6IDFweCBzb2xpZCByZWQ7IG1hcmdpbjogMjBw
eDsgcGFkZGluZzogMTBweDsKK3RleHQtKiBpcyBmaW5lIGJ5IHVzISBjb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QuaHRtbDoxMQorU3R5bGU6IHRleHQtZGVjb3JhdGlvbjogaW5pdGlhbDsK
K0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBiYWQgbmV3cy4gY29uc29sZS1mb3JtYXQt
c3R5bGUtd2hpdGVsaXN0Lmh0bWw6MTMKK1N0eWxlOiBOTyBTVFlMRVMgREVGSU5FRC4KK0FuZCBw
b3NpdGlvbiB0b28uIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjE0CitTdHls
ZTogTk8gU1RZTEVTIERFRklORUQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmFhMzZkNDljOTgzNGU0N2ZmOWM0MjljNDllYjUxZmYxNWQ4YjNkMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gb25sb2FkKCkKK3sK
KyAgICBjb25zb2xlLmxvZygnJWNDb2xvcnMgYXJlIGF3ZXNvbWUuJywgJ2NvbG9yOiBibHVlOycp
OworICAgIGNvbnNvbGUubG9nKCclY1NvIGFyZSBmb250cyEnLCAnZm9udDogMWVtIEhlbHZldGlj
YTsnKTsKKyAgICBjb25zb2xlLmxvZygnJWNBbmQgYm9yZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFk
ZGluZ3MhJywgJ2JvcmRlcjogMXB4IHNvbGlkIHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAx
MHB4OycpOworICAgIGNvbnNvbGUubG9nKCclY3RleHQtKiBpcyBmaW5lIGJ5IHVzIScsICd0ZXh0
LWRlY29yYXRpb246IG5vbmU7Jyk7CisKKyAgICBjb25zb2xlLmxvZygnJWNEaXNwbGF5LCBvbiB0
aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuJywgJ2Rpc3BsYXk6IG5vbmU7Jyk7CisgICAgY29u
c29sZS5sb2coJyVjQW5kIHBvc2l0aW9uIHRvby4nLCAncG9zaXRpb246IGFic29sdXRlOycpOwor
ICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xl
TWVzc2FnZXNXaXRoU3R5bGVzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxwPlRl
c3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcywg
YW5kIHRoYXQKK3RoZSB3aG9sZSBtZXNzYWdlIGdldHMgdGhlIHNhbWUgc3R5bGUsIHJlZ2FyZGxl
c3Mgb2YgbXVsdGlwbGUgJWMKK3NldHRpbmdzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168669</attachid>
            <date>2012-10-15 03:42:22 -0700</date>
            <delta_ts>2012-10-16 05:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98945-20121015124113.patch</filename>
            <type>text/plain</type>
            <size>8570</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyN2MzNWI4NTgxYTlh
MWFkZmFhOGRmOTU1YTE4ZDc1YWRkY2QzYS4uNDI1NmNlZmIzYzM4YThlZDBiMDJiMWM3MzRkNmQx
MTE3MDhkN2FkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTE1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIHN0
eWxpbmcgY29uc29sZSBtZXNzYWdlcyB2aWEgJyVjJyBsYW5kZWQgd2l0aG91dCBhbnkKKyAgICAg
ICAgcGFyc2luZyBvZiB0aGUgc3R5bGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIFRoaXMgbWVhbnMg
dGhhdCBpdCdzIGZhaXJseQorICAgICAgICBzaW1wbGUgdG8gYWNjaWRlbnRhbGx5IG9yIG1hbGlj
aW91c2x5IGJyZWFrIHRoZSBjb25zb2xlIHdpdGggY2xldmVybHkKKyAgICAgICAgc3R5bGVkIG1l
c3NhZ2VzLiBUbyBtaXRpZ2F0ZSB0aGlzIHJpc2ssIHdoaXRlbGlzdGluZyBhIHNhZmUgc3Vic2V0
IG9mCisgICAgICAgIENTUyBzZWVtcyBhcHByb3ByaWF0ZS4KKworICAgICAgICBBcyBhIGZpcnN0
IHBhc3MgYXQgYSByZWFzb25hYmxlIHdoaXRlbGlzdCwgdGhpcyBwYXRjaCBhbGxvd3MgJ2NvbG9y
JworICAgICAgICBhbmQgJ2ZvbnQnLCBhcyB3ZWxsIGFzICdiYWNrZ3JvdW5kWy0qXScsICdib3Jk
ZXJbLSpdJywgJ2ZvbnRbLSpdJywKKyAgICAgICAgJ21hcmdpblstKl0nLCAncGFkZGluZ1stKl0n
LCAndGV4dFstKl0nLCAnLXdlYmtpdC1iYWNrZ3JvdW5kWy0qXScsCisgICAgICAgICctd2Via2l0
LWJvcmRlclstKl0nLCAnLXdlYmtpdC1mb250Wy0qXScsICctd2Via2l0LW1hcmdpblstKl0nLAor
ICAgICAgICAnLXdlYmtpdC1wYWRkaW5nWy0qXScsIGFuZCAnLXdlYmtpdC10ZXh0Wy0qXScuIFdl
IG1pZ2h0IHdhbnQgdG8gYWRqdXN0CisgICAgICAgIHRob3NlIGluIHRoZSBmdXR1cmUuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5f
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5zdHlsZUZvcm1hdHRlcik6CisgICAgICAgICAg
ICBDcmVhdGUgYSBidWZmZXIgZWxlbWVudCBvbnRvIHdoaWNoIHRoZSB1c2VyLXByb3ZpZGVkIHN0
eWxlcyBhcmUKKyAgICAgICAgICAgIGFwcGxpZWQuIFdoaXRlbGlzdGVkIHN0eWxlcyBhcmUgdHJh
bnNmZXJlZCBmcm9tIHRoZSBidWZmZXIgb250bworICAgICAgICAgICAgdGhlIGFjdHVhbCBjb25z
b2xlIG1lc3NhZ2UuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5pc1doaXRlbGlzdGVkUHJvcGVy
dHkpOgorICAgICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWMgc3R5bGUgaXMg
d2hpdGVsaXN0ZWQuIEV4cGVjdHMgc3R5bGVzCisgICAgICAgICAgICAgaW4gdGhlIGh5cGhlbmF0
ZWQgZm9ybSAodGhhdCBpcywgJy13ZWJraXQtcGFkZGluZy1zdGFydCcgcmF0aGVyIHRoYW4KKyAg
ICAgICAgICAgICBDU1NPTSdzICd3ZWJraXRQYWRkaW5nU3RhcnQnKS4KKwogMjAxMi0xMC0xMiAg
SWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogTk1JIHJlbW92ZSBoYW5kIG1hZGUgb2JqZWN0IGJ1aWxkZXJzIHdpdGggYXV0b21h
dGljIGJ1aWxkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCBkZjMzNTVhMGVmYmRmNjJjMzE3MmY5YjAyZTkzMDVi
YTgwMjcyYThkLi5jNTZjOGI5MDcxZmYxZmNhMTU2MjM2NDFiM2UxZWYwNjEyNmEyN2NiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3Nh
Z2UuanMKQEAgLTQ0OSw3ICs0NDksMjYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1w
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gc3R5bGVGb3JtYXR0ZXIob2JqKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuc2V0QXR0cmlidXRlKCJzdHls
ZSIsIG9iai5kZXNjcmlwdGlvbik7CisgICAgICAgICAgICB2YXIgYnVmZmVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgYnVmZmVyLnNldEF0dHJpYnV0ZSgi
c3R5bGUiLCBvYmouZGVzY3JpcHRpb24pOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBidWZmZXIuc3R5bGUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIgcHJvcGVy
dHkgPSBidWZmZXIuc3R5bGVbaV07CisgICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVsaXN0ZWRQ
cm9wZXJ0eShwcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5z
dHlsZVtwcm9wZXJ0eV0gPSBidWZmZXIuc3R5bGVbcHJvcGVydHldOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaXNXaGl0ZWxpc3RlZFByb3BlcnR5KHByb3Bl
cnR5KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJvcGVydHkgPT09ICJjb2xvciIgfHwg
cHJvcGVydHkgPT09ICJmb250IikKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICAgICAgdmFyIHByZWZpeGVzID0gWyJiYWNrZ3JvdW5kIiwgImJvcmRlciIsICJmb250Iiwg
ImxpbmUiLCAibWFyZ2luIiwgInBhZGRpbmciLCAidGV4dCIsICItd2Via2l0LWJhY2tncm91bmQi
LCAiLXdlYmtpdC1ib3JkZXIiLCAiLXdlYmtpdC1mb250IiwgIi13ZWJraXQtbWFyZ2luIiwgIi13
ZWJraXQtcGFkZGluZyIsICItd2Via2l0LXRleHQiXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAocHJv
cGVydHkuc3Vic3RyKDAsIHByZWZpeGVzW2ldLmxlbmd0aCkgPT0gcHJlZml4ZXNbaV0pCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gRmlyZWJ1ZyB1c2VzICVvIGZv
ciBmb3JtYXR0aW5nIG9iamVjdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTc4Y2E5ZDhlNTg4MDE5ZGU5ZDMzYjkyMTBm
OTY0YTRiMzNlYTQ3ZS4uZmY4OGU1YjVkZGVlODg4OGM1MDlmYTk4YmU3YjFiMDk2MGUxYTA2NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTE1ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hpdGVsaXN0IHNhZmUgc3R5bGVz
IGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10
ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9Db25zb2xlVGVzdC5JbnNwZWN0b3JUZXN0LmR1
bXBDb25zb2xlTWVzc2FnZXNXaXRoU3R5bGVzKToKKyAgICAgICAgICAgIFVzZSB0aGUgJ2Nzc1Rl
eHQnIHByb3BlcnR5IG9mIGFuIGVsZW1lbnQsIHJhdGhlciB0aGFuIHJlYWRpbmcgZnJvbQorICAg
ICAgICAgICAgaXRzICdzdHlsZScgYXR0cmlidXRlLiBBbHNvLCBncmFjZWZ1bGx5IGhhbmRsZSB1
bnN0eWxlZCBlbGVtZW50cworICAgICAgICAgICAgYnkgZXhwbGljaXRseSBub3RpbmcgdGhlaXIg
ZW1wdHluZXNzLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0
eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0xMC0xNCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZywgVGVzdEV4cGVjdGF0aW9ucyB1cGRh
dGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0
LmpzCmluZGV4IGZhMWQ5ZWMyNmRjY2ZlYTIwNzVmMzI4ZWNiMGJjM2EwNjVjMjMwZjAuLmI1YzQ2
MjdlNmQ0NzBhNTY3ZDljNWIxMGIxZTNmYTczZDE1ZmQ1MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKQEAgLTI4LDcgKzI4LDggQEAg
SW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0eWxlcyA9IGZ1bmN0aW9uKHNv
cnRNZXNzYWdlcykKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgp
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50LnJl
cGxhY2UoL1x1MjAwYi9nLCAiIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U3R5bGU6ICIgKyBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdGV4dCBz
cGFuIikuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKTsKKyAgICAgICAgdmFyIGNzc1RleHQgPSBlbGVt
ZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdGV4dCBzcGFuIikuc3R5bGUuY3Nz
VGV4dCB8fCAiTk8gU1RZTEVTIERFRklORUQuIjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlN0eWxlOiAiICsgY3NzVGV4dCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3Jt
YXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDgzZWYxMzE1MzAz
YTIzOGZkOTRlMmJkOGRjNjM3ZTUwMGNkMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogJWNDb2xv
cnMgYXJlIGF3ZXNvbWUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogJWNTbyBhcmUgZm9udHMh
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6ICVjQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5k
IHBhZGRpbmdzIQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiAlY3RleHQtKiBpcyBmaW5lIGJ5
IHVzIQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiAlY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBo
YW5kLCBpcyBiYWQgbmV3cy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogJWNBbmQgcG9zaXRp
b24gdG9vLgorVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVk
IG1lc3NhZ2VzLCBhbmQgdGhhdCB0aGUgd2hvbGUgbWVzc2FnZSBnZXRzIHRoZSBzYW1lIHN0eWxl
LCByZWdhcmRsZXNzIG9mIG11bHRpcGxlICVjIHNldHRpbmdzLgorCitDb2xvcnMgYXJlIGF3ZXNv
bWUuIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjgKK1N0eWxlOiBjb2xvcjog
Ymx1ZTsKK1NvIGFyZSBmb250cyEgY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6
OQorU3R5bGU6IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQt
d2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogMWVtOyBsaW5lLWhlaWdodDogbm9ybWFsOyBmb250
LWZhbWlseTogSGVsdmV0aWNhOworQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5kIHBhZGRpbmdz
ISBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMAorU3R5bGU6IGJvcmRlcjog
MXB4IHNvbGlkIHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OwordGV4dC0qIGlzIGZp
bmUgYnkgdXMhIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjExCitTdHlsZTog
dGV4dC1kZWNvcmF0aW9uOiBpbml0aWFsOworRGlzcGxheSwgb24gdGhlIG90aGVyIGhhbmQsIGlz
IGJhZCBuZXdzLiBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMworU3R5bGU6
IE5PIFNUWUxFUyBERUZJTkVELgorQW5kIHBvc2l0aW9uIHRvby4gY29uc29sZS1mb3JtYXQtc3R5
bGUtd2hpdGVsaXN0Lmh0bWw6MTQKK1N0eWxlOiBOTyBTVFlMRVMgREVGSU5FRC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUt
d2hpdGVsaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWEzNmQ0OWM5ODM0ZTQ3ZmY5
YzQyOWM0OWViNTFmZjE1ZDhiM2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWwKQEAgLTAs
MCArMSwzMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBvbmxvYWQoKQoreworICAgIGNvbnNvbGUubG9nKCclY0NvbG9ycyBhcmUg
YXdlc29tZS4nLCAnY29sb3I6IGJsdWU7Jyk7CisgICAgY29uc29sZS5sb2coJyVjU28gYXJlIGZv
bnRzIScsICdmb250OiAxZW0gSGVsdmV0aWNhOycpOworICAgIGNvbnNvbGUubG9nKCclY0FuZCBi
b3JkZXJzIGFuZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEnLCAnYm9yZGVyOiAxcHggc29saWQgcmVk
OyBtYXJnaW46IDIwcHg7IHBhZGRpbmc6IDEwcHg7Jyk7CisgICAgY29uc29sZS5sb2coJyVjdGV4
dC0qIGlzIGZpbmUgYnkgdXMhJywgJ3RleHQtZGVjb3JhdGlvbjogbm9uZTsnKTsKKworICAgIGNv
bnNvbGUubG9nKCclY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBiYWQgbmV3cy4nLCAn
ZGlzcGxheTogbm9uZTsnKTsKKyAgICBjb25zb2xlLmxvZygnJWNBbmQgcG9zaXRpb24gdG9vLics
ICdwb3NpdGlvbjogYWJzb2x1dGU7Jyk7CisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOworICAg
IEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+VGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMg
cHJvcGVybHkgc3R5bGVkIG1lc3NhZ2VzLCBhbmQgdGhhdAordGhlIHdob2xlIG1lc3NhZ2UgZ2V0
cyB0aGUgc2FtZSBzdHlsZSwgcmVnYXJkbGVzcyBvZiBtdWx0aXBsZSAlYworc2V0dGluZ3MuPC9w
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168926</attachid>
            <date>2012-10-16 05:13:24 -0700</date>
            <delta_ts>2012-10-16 06:13:04 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-98945-20121016141212.patch</filename>
            <type>text/plain</type>
            <size>8390</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyN2MzNWI4NTgxYTlh
MWFkZmFhOGRmOTU1YTE4ZDc1YWRkY2QzYS4uNTMzOTkyNmZmZTcyZGYwZDMxYmU1YzNhNmE3ZTc4
ODY4NTdiZDEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTEwLTE1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2hp
dGVsaXN0IHNhZmUgc3R5bGVzIGZvciAnY29uc29sZS5sb2coJyVjLi4uJywgLi4uKScuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgU3VwcG9ydCBmb3Igc3R5
bGluZyBjb25zb2xlIG1lc3NhZ2VzIHZpYSAnJWMnIGxhbmRlZCB3aXRob3V0IGFueQorICAgICAg
ICBwYXJzaW5nIG9mIHRoZSBzdHlsZSBpbmZvcm1hdGlvbiBwcm92aWRlZC4gVGhpcyBtZWFucyB0
aGF0IGl0J3MgZmFpcmx5CisgICAgICAgIHNpbXBsZSB0byBhY2NpZGVudGFsbHkgb3IgbWFsaWNp
b3VzbHkgYnJlYWsgdGhlIGNvbnNvbGUgd2l0aCBjbGV2ZXJseQorICAgICAgICBzdHlsZWQgbWVz
c2FnZXMuIFRvIG1pdGlnYXRlIHRoaXMgcmlzaywgd2hpdGVsaXN0aW5nIGEgc2FmZSBzdWJzZXQg
b2YKKyAgICAgICAgQ1NTIHNlZW1zIGFwcHJvcHJpYXRlLgorCisgICAgICAgIEFzIGEgZmlyc3Qg
cGFzcyBhdCBhIHJlYXNvbmFibGUgd2hpdGVsaXN0LCB0aGlzIHBhdGNoIGFsbG93cworICAgICAg
ICAnYmFja2dyb3VuZFstKl0nLCAnYm9yZGVyWy0qXScsICdjb2xvclstKl0nLCAnZm9udFstKl0n
LAorICAgICAgICAnbWFyZ2luWy0qXScsICdwYWRkaW5nWy0qXScsICd0ZXh0Wy0qXScsICctd2Vi
a2l0LWJhY2tncm91bmRbLSpdJywKKyAgICAgICAgJy13ZWJraXQtYm9yZGVyWy0qXScsICctd2Vi
a2l0LWZvbnRbLSpdJywgJy13ZWJraXQtbWFyZ2luWy0qXScsCisgICAgICAgICctd2Via2l0LXBh
ZGRpbmdbLSpdJywgYW5kICctd2Via2l0LXRleHRbLSpdJy4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbAorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3Rp
dHV0aW9uU3RyaW5nLnN0eWxlRm9ybWF0dGVyKToKKyAgICAgICAgICAgIENyZWF0ZSBhIGJ1ZmZl
ciBlbGVtZW50IG9udG8gd2hpY2ggdGhlIHVzZXItcHJvdmlkZWQgc3R5bGVzIGFyZQorICAgICAg
ICAgICAgYXBwbGllZC4gV2hpdGVsaXN0ZWQgc3R5bGVzIGFyZSB0cmFuc2ZlcmVkIGZyb20gdGhl
IGJ1ZmZlciBvbnRvCisgICAgICAgICAgICB0aGUgYWN0dWFsIGNvbnNvbGUgbWVzc2FnZS4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRX
aXRoU3Vic3RpdHV0aW9uU3RyaW5nLmlzV2hpdGVsaXN0ZWRQcm9wZXJ0eSk6CisgICAgICAgICAg
ICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpYyBzdHlsZSBpcyB3aGl0ZWxpc3RlZC4gRXhw
ZWN0cyBzdHlsZXMKKyAgICAgICAgICAgICBpbiB0aGUgaHlwaGVuYXRlZCBmb3JtICh0aGF0IGlz
LCAnLXdlYmtpdC1wYWRkaW5nLXN0YXJ0JyByYXRoZXIgdGhhbgorICAgICAgICAgICAgIENTU09N
J3MgJ3dlYmtpdFBhZGRpbmdTdGFydCcpLgorCiAyMDEyLTEwLTEyICBJbHlhIFRpa2hvbm92c2t5
ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgcmVt
b3ZlIGhhbmQgbWFkZSBvYmplY3QgYnVpbGRlcnMgd2l0aCBhdXRvbWF0aWMgYnVpbGRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3Nh
Z2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzCmluZGV4IGRmMzM1NWEwZWZiZGY2MmMzMTcyZjliMDJlOTMwNWJhODAyNzJhOGQuLjViMTI2
M2ZkYTMwNjE1NTM1ZDk0OWZhYmE1NTUwNjc5ZjBhNGU3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtNDQ5LDcg
KzQ0OSwyMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICBmdW5jdGlvbiBzdHlsZUZvcm1hdHRlcihvYmopCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGZvcm1hdHRlZFJlc3VsdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0
aW9uKTsKKyAgICAgICAgICAgIHZhciBidWZmZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CisgICAgICAgICAgICBidWZmZXIuc2V0QXR0cmlidXRlKCJzdHlsZSIsIG9iai5kZXNj
cmlwdGlvbik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5zdHlsZS5s
ZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IGJ1ZmZlci5zdHls
ZVtpXTsKKyAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZWxpc3RlZFByb3BlcnR5KHByb3BlcnR5
KSkKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LnN0eWxlW3Byb3BlcnR5XSA9
IGJ1ZmZlci5zdHlsZVtwcm9wZXJ0eV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBpc1doaXRlbGlzdGVkUHJvcGVydHkocHJvcGVydHkpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBwcmVmaXhlcyA9IFsiYmFja2dyb3VuZCIsICJib3JkZXIiLCAiY29s
b3IiLCAiZm9udCIsICJsaW5lIiwgIm1hcmdpbiIsICJwYWRkaW5nIiwgInRleHQiLCAiLXdlYmtp
dC1iYWNrZ3JvdW5kIiwgIi13ZWJraXQtYm9yZGVyIiwgIi13ZWJraXQtZm9udCIsICItd2Via2l0
LW1hcmdpbiIsICItd2Via2l0LXBhZGRpbmciLCAiLXdlYmtpdC10ZXh0Il07CisgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHByb3BlcnR5LnN0YXJ0c1dpdGgocHJlZml4ZXNbaV0pKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZpcmVidWcgdXNlcyAlbyBmb3IgZm9ybWF0
dGluZyBvYmplY3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3OGNhOWQ4ZTU4ODAxOWRlOWQzM2I5MjEwZjk2NGE0YjMz
ZWE0N2UuLjc0MmJkMTk2ZmNkOGVkOThiN2EzZGI0ZmQzODg0YTdkNGY5NWU4ZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMi0xMC0xNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdoaXRlbGlzdCBzYWZlIHN0eWxlcyBmb3IgJ2Nv
bnNvbGUubG9nKCclYy4uLicsIC4uLiknLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9Db25zb2xlVGVzdC5JbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xl
TWVzc2FnZXNXaXRoU3R5bGVzKToKKyAgICAgICAgICAgIFVzZSB0aGUgJ2Nzc1RleHQnIHByb3Bl
cnR5IG9mIGFuIGVsZW1lbnQsIHJhdGhlciB0aGFuIHJlYWRpbmcgZnJvbQorICAgICAgICAgICAg
aXRzICdzdHlsZScgYXR0cmlidXRlLiBBbHNvLCBncmFjZWZ1bGx5IGhhbmRsZSB1bnN0eWxlZCBl
bGVtZW50cworICAgICAgICAgICAgYnkgZXhwbGljaXRseSBub3RpbmcgdGhlaXIgZW1wdHluZXNz
LgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRl
bGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0xNCAg
U2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBVbnJldmlld2VkIGdhcmRlbmluZywgVGVzdEV4cGVjdGF0aW9ucyB1cGRhdGVkLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzCmluZGV4
IGZhMWQ5ZWMyNmRjY2ZlYTIwNzVmMzI4ZWNiMGJjM2EwNjVjMjMwZjAuLmI1YzQ2MjdlNmQ0NzBh
NTY3ZDljNWIxMGIxZTNmYTczZDE1ZmQ1MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKQEAgLTI4LDcgKzI4LDggQEAgSW5zcGVjdG9y
VGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0eWxlcyA9IGZ1bmN0aW9uKHNvcnRNZXNzYWdl
cykKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwogICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1
MjAwYi9nLCAiIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGU6ICIg
KyBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdGV4dCBzcGFuIikuZ2V0
QXR0cmlidXRlKCJzdHlsZSIpKTsKKyAgICAgICAgdmFyIGNzc1RleHQgPSBlbGVtZW50LnF1ZXJ5
U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdGV4dCBzcGFuIikuc3R5bGUuY3NzVGV4dCB8fCAi
Tk8gU1RZTEVTIERFRklORUQuIjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN0
eWxlOiAiICsgY3NzVGV4dCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUt
d2hpdGVsaXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDgzZWYxMzE1MzAzYTIzOGZkOTRl
MmJkOGRjNjM3ZTUwMGNkMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIxIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogJWNDb2xvcnMgYXJlIGF3
ZXNvbWUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogJWNTbyBhcmUgZm9udHMhCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6ICVjQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5kIHBhZGRpbmdz
IQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiAlY3RleHQtKiBpcyBmaW5lIGJ5IHVzIQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEzOiAlY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBi
YWQgbmV3cy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogJWNBbmQgcG9zaXRpb24gdG9vLgor
VGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVkIG1lc3NhZ2Vz
LCBhbmQgdGhhdCB0aGUgd2hvbGUgbWVzc2FnZSBnZXRzIHRoZSBzYW1lIHN0eWxlLCByZWdhcmRs
ZXNzIG9mIG11bHRpcGxlICVjIHNldHRpbmdzLgorCitDb2xvcnMgYXJlIGF3ZXNvbWUuIGNvbnNv
bGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjgKK1N0eWxlOiBjb2xvcjogYmx1ZTsKK1Nv
IGFyZSBmb250cyEgY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6OQorU3R5bGU6
IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBu
b3JtYWw7IGZvbnQtc2l6ZTogMWVtOyBsaW5lLWhlaWdodDogbm9ybWFsOyBmb250LWZhbWlseTog
SGVsdmV0aWNhOworQW5kIGJvcmRlcnMgYW5kIG1hcmdpbnMgYW5kIHBhZGRpbmdzISBjb25zb2xl
LWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMAorU3R5bGU6IGJvcmRlcjogMXB4IHNvbGlk
IHJlZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OwordGV4dC0qIGlzIGZpbmUgYnkgdXMh
IGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjExCitTdHlsZTogdGV4dC1kZWNv
cmF0aW9uOiBpbml0aWFsOworRGlzcGxheSwgb24gdGhlIG90aGVyIGhhbmQsIGlzIGJhZCBuZXdz
LiBjb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbDoxMworU3R5bGU6IE5PIFNUWUxF
UyBERUZJTkVELgorQW5kIHBvc2l0aW9uIHRvby4gY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVs
aXN0Lmh0bWw6MTQKK1N0eWxlOiBOTyBTVFlMRVMgREVGSU5FRC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHls
ZS13aGl0ZWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWEzNmQ0OWM5ODM0ZTQ3ZmY5YzQyOWM0OWVi
NTFmZjE1ZDhiM2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWwKQEAgLTAsMCArMSwzMiBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBvbmxvYWQoKQoreworICAgIGNvbnNvbGUubG9nKCclY0NvbG9ycyBhcmUgYXdlc29tZS4n
LCAnY29sb3I6IGJsdWU7Jyk7CisgICAgY29uc29sZS5sb2coJyVjU28gYXJlIGZvbnRzIScsICdm
b250OiAxZW0gSGVsdmV0aWNhOycpOworICAgIGNvbnNvbGUubG9nKCclY0FuZCBib3JkZXJzIGFu
ZCBtYXJnaW5zIGFuZCBwYWRkaW5ncyEnLCAnYm9yZGVyOiAxcHggc29saWQgcmVkOyBtYXJnaW46
IDIwcHg7IHBhZGRpbmc6IDEwcHg7Jyk7CisgICAgY29uc29sZS5sb2coJyVjdGV4dC0qIGlzIGZp
bmUgYnkgdXMhJywgJ3RleHQtZGVjb3JhdGlvbjogbm9uZTsnKTsKKworICAgIGNvbnNvbGUubG9n
KCclY0Rpc3BsYXksIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBiYWQgbmV3cy4nLCAnZGlzcGxheTog
bm9uZTsnKTsKKyAgICBjb25zb2xlLmxvZygnJWNBbmQgcG9zaXRpb24gdG9vLicsICdwb3NpdGlv
bjogYWJzb2x1dGU7Jyk7CisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOworICAgIEluc3BlY3Rv
clRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0i
b25sb2FkKCkiPgorPHA+VGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkg
c3R5bGVkIG1lc3NhZ2VzLCBhbmQgdGhhdAordGhlIHdob2xlIG1lc3NhZ2UgZ2V0cyB0aGUgc2Ft
ZSBzdHlsZSwgcmVnYXJkbGVzcyBvZiBtdWx0aXBsZSAlYworc2V0dGluZ3MuPC9wPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>