<?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>86916</bug_id>
          
          <creation_ts>2012-05-18 15:52:26 -0700</creation_ts>
          <short_desc>garden-o-matic should not fetch from debug bots if it also knows about the release bots</short_desc>
          <delta_ts>2012-05-24 17:03:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>628193</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-18 15:52:26 -0700</bug_when>
    <thetext>i.e., if we have builders for Mac Lion Release and Mac Lion Debug, we should only fetch from the Release bot when rebaselining.

The reason is that we only check in one kind of baseline file, and if the two bots produce different results, one of them has to lose. Seems like it should be the Debug bot.

I suspect making this change would give us a 2x speed up in rebaselining :). Also, it&apos;s not clear if we have *just* a debug bot anywhere, so we could probably simplify this to just &quot;we should only rebaseline release bots&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628201</commentid>
    <comment_count>1</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-18 15:58:39 -0700</bug_when>
    <thetext>Seems fine to me. The release bots in general should be more likely to be caught up to tip of tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628203</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-18 15:59:39 -0700</bug_when>
    <thetext>Wait...do we currently grab baselines off both the release and debug bots for the same rebaseline? Sigh. Well...at least it&apos;s an easy perf improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628204</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-18 16:00:29 -0700</bug_when>
    <thetext>We should try to make the code that handles this robust though in case there is in the future a bot that only has a debug bot, e.g. for a while, I think we only had a debug mt lion bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628740</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-20 20:49:49 -0700</bug_when>
    <thetext>Probably the easiest thing to do is to run a filter over the list of bots we&apos;re going to try to rebaseline to remove redundant ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629568</commentid>
    <comment_count>5</comment_count>
      <attachid>143112</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-21 15:17:18 -0700</bug_when>
    <thetext>Created attachment 143112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629571</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-21 15:18:27 -0700</bug_when>
    <thetext>Work in progress ... thoughts? Should I finish removing dead tests, write new tests, and land-this as-is, and then optimize the backend in a separate patch? Or should I optimize the back-end to at least de-dup release and debug in this patch? Or take a different approach altogether?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629601</commentid>
    <comment_count>7</comment_count>
      <attachid>143112</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-21 15:31:43 -0700</bug_when>
    <thetext>Comment on attachment 143112
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:95
&gt; +        var tests = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.testName; }));
&gt; +        var builders = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.builderName; }));
&gt; +        var suffixes = base.uniquifyArray(base.flattenArray(

Doesn&apos;t this lose the association between tests, builders, and suffixes?  For example, what if I want to rebaseline PNG on Mac but TEXT on Win?

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:104
&gt; +        net.post(config.kLocalServerURL + &apos;/rebaselineall?&apos; + $.param({
&gt; +            &apos;builders&apos;: builders.join(&apos;,&apos;),
&gt; +            &apos;tests&apos;: tests.join(&apos;,&apos;),
&gt; +            &apos;suffixes&apos;: suffixes.join(&apos;,&apos;)

By the way, another option here is to send the information in the POST body.  That way we can send all the builder/test/suffix triples and we won&apos;t lose the association between them.  The server can sort out what to do with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629604</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-21 15:33:28 -0700</bug_when>
    <thetext>I think losing the association is problematic because it limits what we can do in the future in the UI.  It seems better to send the whole list of triples up to the server and then have it process them.  For the first patch, we might want to have the server run webkit-patch a bunch of times in a loop.  Once we&apos;ve changed the network protocol, we can optimize the server in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629616</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-21 15:38:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 143112 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143112&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:95
&gt; &gt; +        var tests = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.testName; }));
&gt; &gt; +        var builders = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.builderName; }));
&gt; &gt; +        var suffixes = base.uniquifyArray(base.flattenArray(
&gt; 
&gt; Doesn&apos;t this lose the association between tests, builders, and suffixes?  For example, what if I want to rebaseline PNG on Mac but TEXT on Win?
&gt; 

Yes; this was effectively being lost already on the client side, but you are absolutely correct that it&apos;s not as flexible as one could hope for. I was erring on the side of simplicity to start with.

I like the post-the-triples idea. I&apos;ll implement that and upload another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629621</commentid>
    <comment_count>10</comment_count>
      <attachid>143112</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-21 15:41:00 -0700</bug_when>
    <thetext>Comment on attachment 143112
Patch

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

I agree that this is the right architectural direction (i.e. having more of the logic on the python side).

&gt; Tools/ChangeLog:15
&gt; +        (.):

FYI: I usually delete this lines since they bloat the changelog description.

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:104
&gt;&gt; +            &apos;suffixes&apos;: suffixes.join(&apos;,&apos;)
&gt; 
&gt; By the way, another option here is to send the information in the POST body.  That way we can send all the builder/test/suffix triples and we won&apos;t lose the association between them.  The server can sort out what to do with them.

I think this is the right thing to do. Lets send this information in the POST body as JSON.

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:181
&gt; +    argument_names = &quot;TEST_NAMES...&quot;
&gt; +
&gt; +    def __init__(self):
&gt; +        options = [
&gt; +            optparse.make_option(&apos;--builders&apos;, action=&apos;store&apos;, default=None,
&gt; +                help=&apos;List of buildbots to pull from&apos;),
&gt; +            optparse.make_option(&apos;--platform-to-move-to&apos;, action=&apos;store&apos;, default=None,
&gt; +                help=&apos;New platform to move existing baselines to&apos;),
&gt; +            optparse.make_option(&apos;--suffixes&apos;, action=&apos;store&apos;, default=None,
&gt; +                help=&apos;List of output types to rebaseline (as file extension suffixes)&apos;),

As per the above, this would take JSON as it&apos;s only argument and --no-optimize as it&apos;s only flag. I suppose we could make a command that does the current behavior as well, but I don&apos;t really see a use-case for this command outside of supporting garden-o-matic directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629623</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-21 15:41:55 -0700</bug_when>
    <thetext>Lol...sorry for the barrage of redundant comments. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629754</commentid>
    <comment_count>12</comment_count>
      <attachid>143146</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-21 17:29:59 -0700</bug_when>
    <thetext>Created attachment 143146
post a block of json instead, add tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629756</commentid>
    <comment_count>13</comment_count>
      <attachid>143146</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-21 17:31:32 -0700</bug_when>
    <thetext>Comment on attachment 143146
post a block of json instead, add tests

I love it when deleting code gets you more functionality</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629766</commentid>
    <comment_count>14</comment_count>
      <attachid>143146</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-21 17:38:39 -0700</bug_when>
    <thetext>Comment on attachment 143146
post a block of json instead, add tests

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

Looks great.  One nit below.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:100
&gt; +        net.post(config.kLocalServerURL + &apos;/rebaselineall&apos;, JSON.stringify(tests), function() { callback() });

function() { callback() }   &lt;--- You can just pass callback directly without needing to create a thunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629845</commentid>
    <comment_count>15</comment_count>
      <attachid>143146</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-21 18:50:53 -0700</bug_when>
    <thetext>Comment on attachment 143146
post a block of json instead, add tests

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631984</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-23 13:34:57 -0700</bug_when>
    <thetext>Committed r118234: &lt;http://trac.webkit.org/changeset/118234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632133</commentid>
    <comment_count>17</comment_count>
      <attachid>143666</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-23 15:54:04 -0700</bug_when>
    <thetext>Created attachment 143666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633304</commentid>
    <comment_count>18</comment_count>
      <attachid>143666</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-24 15:36:37 -0700</bug_when>
    <thetext>Comment on attachment 143666
Patch

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

If this doesn&apos;t crash in your test case, please add more tests that would trigger the crash.

&gt; Tools/Scripts/webkitpy/tool/servers/gardeningserver.py:160
&gt; +        builders_to_ports = {}

This variable appears to be unused.

&gt; Tools/Scripts/webkitpy/tool/servers/gardeningserver.py:170
&gt; +            fallback_path = port.baseline_search_path()

Doesn&apos;t this crash?  port is local to the loop above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633314</commentid>
    <comment_count>19</comment_count>
      <attachid>143908</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-24 15:45:48 -0700</bug_when>
    <thetext>Created attachment 143908
fix w/ review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633315</commentid>
    <comment_count>20</comment_count>
      <attachid>143908</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-24 15:47:30 -0700</bug_when>
    <thetext>Comment on attachment 143908
fix w/ review feedback

Oh, much nicer.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633328</commentid>
    <comment_count>21</comment_count>
      <attachid>143908</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-24 16:00:51 -0700</bug_when>
    <thetext>Comment on attachment 143908
fix w/ review feedback

Yay! LGTM as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633387</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-24 17:03:23 -0700</bug_when>
    <thetext>Committed r118447: &lt;http://trac.webkit.org/changeset/118447&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143112</attachid>
            <date>2012-05-21 15:17:18 -0700</date>
            <delta_ts>2012-05-21 17:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86916-20120521151717.patch</filename>
            <type>text/plain</type>
            <size>8665</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODA1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOThhZWI4YjZhM2E1NGQzODIwMmE4Y2I3ZGJlYjYzMWFh
ZWJlNjE2My4uYjgzMTU1MWNkZmVkMWQ4NzE0NDFhYmVhMDUxYjg0MDQ0Y2NiZTE3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4
IEBACiAyMDEyLTA1LTIxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBib3RzIGlm
IGl0IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrLWluLXByb2dyZXNzIHBhdGNoLiBUaGlz
IGNoYW5nZSBwdXNoZXMgYWxsIG9mIHRoZSBsb2dpYyBmb3IKKyAgICAgICAgcmViYXNlbGluaW5n
IGEgY2x1c3RlciBvZiBmYWlsdXJlcyAoYSBsaXN0IG9mIHRlc3RzIGZhaWxpbmcgYQorICAgICAg
ICBsaXN0IG9mIHN1ZmZpeGVzIG9uIGEgbGlzdCBvZiBib3RzKSBvbnRvIHRoZSBzZXJ2ZXIsIHNv
IHRoZXJlIGlzCisgICAgICAgIGEgc2luZ2xlIGNhbGwgZnJvbSB0aGUgd2ViIHBhZ2U7IHdlIHdp
bGwgdGhlbiBiZSBhYmxlIHRvCisgICAgICAgIG9wdGltaXplIHRoZSBwZXJmb3JtYW5jZSBvZiB0
aGUgcmViYXNlbGluaW5nIGJldHRlci4KKworICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9zY3JpcHRzL2No
ZWNrb3V0LmpzOgorICAgICAgICAoLik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3JlYmFzZWxpbmUucHk6CisgICAgICAgIChSZWJhc2VsaW5lQWxsKToKKyAgICAg
ICAgKFJlYmFzZWxpbmVBbGwuX19pbml0X18pOgorICAgICAgICAoUmViYXNlbGluZUFsbC5fcnVu
X3dlYmtpdF9wYXRjaCk6CisgICAgICAgIChSZWJhc2VsaW5lQWxsLmV4ZWN1dGUpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weToKKyAg
ICAgICAgKEdhcmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlci5yZWJhc2VsaW5lYWxsKToKKworMjAx
Mi0wNS0yMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICB3
ZWJraXRweTogY2xlYW4gdXAgdGhlIFRlc3RFeHBlY3RhdGlvbnMgY29uc3RydWN0b3IKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2OTI2CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9zY3JpcHRzL2NoZWNrb3V0LmpzIGIvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1
cmVzL3NjcmlwdHMvY2hlY2tvdXQuanMKaW5kZXggMjRjMDNlNGU0MWJiYzM0Yjk3NDY3YWU2MDJh
MWIyN2E2MTNhOWM4NC4uMmU4NjJmYjMyZWUyNDUwYzU1MzFmNzgwZmMyMDk0YTFhMTU4ZmUzZiAx
MDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hlY2tvdXQuanMKKysrIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
VGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hlY2tvdXQuanMKQEAgLTc1LDE4ICs3NSw2IEBAIGNoZWNr
b3V0LnVwZGF0ZUV4cGVjdGF0aW9ucyA9IGZ1bmN0aW9uKGZhaWx1cmVJbmZvTGlzdCwgY2FsbGJh
Y2ssIGNoZWNrb3V0VW5hdmFpCiAgICAgfSwgY2hlY2tvdXRVbmF2YWlsYWJsZSk7CiB9OwogCi1j
aGVja291dC5vcHRpbWl6ZUJhc2VsaW5lcyA9IGZ1bmN0aW9uKHRlc3ROYW1lLCBzdWZmaXhlcywg
Y2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFpbGFibGUpCi17Ci0gICAgY2FsbElmQ2hlY2tvdXRBdmFp
bGFibGUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG5ldC5wb3N0KGNvbmZpZy5rTG9jYWxTZXJ2ZXJV
UkwgKyAnL29wdGltaXplYmFzZWxpbmVzPycgKyAkLnBhcmFtKHsKLSAgICAgICAgICAgICd0ZXN0
JzogdGVzdE5hbWUsCi0gICAgICAgICAgICAnc3VmZml4ZXMnOiBzdWZmaXhlcywKLSAgICAgICAg
fSksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgY2hlY2tvdXRVbmF2YWlsYWJsZSk7Ci19OwotCiBjaGVja291dC5yb2xsb3V0ID0gZnVu
Y3Rpb24ocmV2aXNpb24sIHJlYXNvbiwgY2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFpbGFibGUpCiB7
CiAgICAgY2FsbElmQ2hlY2tvdXRBdmFpbGFibGUoZnVuY3Rpb24oKSB7CkBAIC0xMDIsMjcgKzkw
LDE5IEBAIGNoZWNrb3V0LnJvbGxvdXQgPSBmdW5jdGlvbihyZXZpc2lvbiwgcmVhc29uLCBjYWxs
YmFjaywgY2hlY2tvdXRVbmF2YWlsYWJsZSkKIGNoZWNrb3V0LnJlYmFzZWxpbmUgPSBmdW5jdGlv
bihmYWlsdXJlSW5mb0xpc3QsIGNhbGxiYWNrLCBwcm9ncmVzc0NhbGxiYWNrLCBjaGVja291dFVu
YXZhaWxhYmxlKQogewogICAgIGNhbGxJZkNoZWNrb3V0QXZhaWxhYmxlKGZ1bmN0aW9uKCkgewot
ICAgICAgICBiYXNlLmNhbGxJblNlcXVlbmNlKGZ1bmN0aW9uKGZhaWx1cmVJbmZvLCBjYWxsYmFj
aykgewotICAgICAgICAgICAgdmFyIHN1ZmZpeGVzID0gYmFzZS51bmlxdWlmeUFycmF5KGJhc2Uu
ZmxhdHRlbkFycmF5KGZhaWx1cmVJbmZvLmZhaWx1cmVUeXBlTGlzdC5tYXAocmVzdWx0cy5mYWls
dXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCkpKS5qb2luKCcsJyk7CisgICAgICAgIHZhciB0ZXN0cyA9
IGJhc2UudW5pcXVpZnlBcnJheShmYWlsdXJlSW5mb0xpc3QubWFwKGZ1bmN0aW9uKGZhaWx1cmVJ
bmZvKSB7IHJldHVybiBmYWlsdXJlSW5mby50ZXN0TmFtZTsgfSkpOworICAgICAgICB2YXIgYnVp
bGRlcnMgPSBiYXNlLnVuaXF1aWZ5QXJyYXkoZmFpbHVyZUluZm9MaXN0Lm1hcChmdW5jdGlvbihm
YWlsdXJlSW5mbykgeyByZXR1cm4gZmFpbHVyZUluZm8uYnVpbGRlck5hbWU7IH0pKTsKKyAgICAg
ICAgdmFyIHN1ZmZpeGVzID0gYmFzZS51bmlxdWlmeUFycmF5KGJhc2UuZmxhdHRlbkFycmF5KAor
ICAgICAgICAgICAgZmFpbHVyZUluZm9MaXN0Lm1hcChmdW5jdGlvbihmYWlsdXJlSW5mbykgewor
ICAgICAgICAgICAgICAgIHJldHVybiBiYXNlLmZsYXR0ZW5BcnJheShmYWlsdXJlSW5mby5mYWls
dXJlVHlwZUxpc3QubWFwKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QpKTsKKyAg
ICAgICAgICAgIH0pKSk7CiAKLSAgICAgICAgICAgIG5ldC5wb3N0KGNvbmZpZy5rTG9jYWxTZXJ2
ZXJVUkwgKyAnL3JlYmFzZWxpbmU/JyArICQucGFyYW0oewotICAgICAgICAgICAgICAgICdidWls
ZGVyJzogZmFpbHVyZUluZm8uYnVpbGRlck5hbWUsCi0gICAgICAgICAgICAgICAgJ3Rlc3QnOiBm
YWlsdXJlSW5mby50ZXN0TmFtZSwKLSAgICAgICAgICAgICAgICAnc3VmZml4ZXMnOiBzdWZmaXhl
cywKLSAgICAgICAgICAgIH0pLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAocHJv
Z3Jlc3NDYWxsYmFjaykKLSAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NDYWxsYmFjayhmYWls
dXJlSW5mbyk7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9LCBmYWlsdXJlSW5mb0xpc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFy
IHRlc3ROYW1lTGlzdCA9IGJhc2UudW5pcXVpZnlBcnJheShmYWlsdXJlSW5mb0xpc3QubWFwKGZ1
bmN0aW9uKGZhaWx1cmVJbmZvKSB7IHJldHVybiBmYWlsdXJlSW5mby50ZXN0TmFtZTsgfSkpOwot
ICAgICAgICAgICAgdmFyIHN1ZmZpeGVzID0gYmFzZS51bmlxdWlmeUFycmF5KGJhc2UuZmxhdHRl
bkFycmF5KAotICAgICAgICAgICAgICAgIGZhaWx1cmVJbmZvTGlzdC5tYXAoZnVuY3Rpb24oZmFp
bHVyZUluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UuZmxhdHRlbkFycmF5
KGZhaWx1cmVJbmZvLmZhaWx1cmVUeXBlTGlzdC5tYXAocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0
ZW5zaW9uTGlzdCkpCi0gICAgICAgICAgICAgICAgfSkpKS5qb2luKCcsJyk7Ci0gICAgICAgICAg
ICBiYXNlLmNhbGxJblNlcXVlbmNlKGZ1bmN0aW9uKHRlc3ROYW1lLCBjYWxsYmFjaykgeyBjaGVj
a291dC5vcHRpbWl6ZUJhc2VsaW5lcyh0ZXN0TmFtZSwgc3VmZml4ZXMsIGNhbGxiYWNrKX0sIHRl
c3ROYW1lTGlzdCwgY2FsbGJhY2spOwotICAgICAgICB9KTsKLSAgICB9LCBjaGVja291dFVuYXZh
aWxhYmxlKTsKKyAgICAgICAgLyogRklYTUU6IFNob3VsZCB3ZSBza2lwIHRoZSBjYWxsIGFuZC9v
ciBlcnJvciBvdXQgaWYgc3VmZml4ZXMgaXMgZW1wdHk/ICovCisgICAgICAgIG5ldC5wb3N0KGNv
bmZpZy5rTG9jYWxTZXJ2ZXJVUkwgKyAnL3JlYmFzZWxpbmVhbGw/JyArICQucGFyYW0oeworICAg
ICAgICAgICAgJ2J1aWxkZXJzJzogYnVpbGRlcnMuam9pbignLCcpLAorICAgICAgICAgICAgJ3Rl
c3RzJzogdGVzdHMuam9pbignLCcpLAorICAgICAgICAgICAgJ3N1ZmZpeGVzJzogc3VmZml4ZXMu
am9pbignLCcpCisgICAgfSkpfSwgY2hlY2tvdXRVbmF2YWlsYWJsZSk7CiB9OwogCiB9KSgpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxp
bmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5w
eQppbmRleCAzMDQwOTc4M2Y3ZjA0NjI3NWRkYmIwNjM5ZWRjODg2NDhkNzNhMWUxLi5hNDVlNzAz
YjgxODcxYzE3MGY3OTM5Y2Q5OTI0OGUyNzMxYTEyNDZiIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQpAQCAtMTY2LDYgKzE2Niw0
NSBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdChBYnN0cmFjdFJlYmFzZWxpbmluZ0NvbW1hbmQpOgog
ICAgICAgICBzZWxmLl9yZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoYXJn
c1swXSwgYXJnc1sxXSwgcGxhdGZvcm1zX3RvX21vdmVfZXhpc3RpbmdfYmFzZWxpbmVzX3RvKQog
CiAKK2NsYXNzIFJlYmFzZWxpbmVBbGwoQWJzdHJhY3RSZWJhc2VsaW5pbmdDb21tYW5kKToKKyAg
ICBuYW1lID0gInJlYmFzZWxpbmUtYWxsIgorICAgIGhlbHBfdGV4dCA9ICJSZWJhc2VsaW5lcyB0
aGUgZ2l2ZW4gdGVzdHMuICAoQ3VycmVudGx5IHdvcmtzIG9ubHkgd2l0aCBidWlsZC5jaHJvbWl1
bS5vcmcgYnVpbGRib3RzLikiCisgICAgYXJndW1lbnRfbmFtZXMgPSAiVEVTVF9OQU1FUy4uLiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgb3B0aW9ucyA9IFsKKyAgICAgICAg
ICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWJ1aWxkZXJzJywgYWN0aW9uPSdzdG9yZScsIGRl
ZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICBoZWxwPSdMaXN0IG9mIGJ1aWxkYm90cyB0byBw
dWxsIGZyb20nKSwKKyAgICAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXBsYXRmb3Jt
LXRvLW1vdmUtdG8nLCBhY3Rpb249J3N0b3JlJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAg
ICAgIGhlbHA9J05ldyBwbGF0Zm9ybSB0byBtb3ZlIGV4aXN0aW5nIGJhc2VsaW5lcyB0bycpLAor
ICAgICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tc3VmZml4ZXMnLCBhY3Rpb249J3N0
b3JlJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgIGhlbHA9J0xpc3Qgb2Ygb3V0cHV0
IHR5cGVzIHRvIHJlYmFzZWxpbmUgKGFzIGZpbGUgZXh0ZW5zaW9uIHN1ZmZpeGVzKScpLAorICAg
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8tb3B0aW1pemUnLCBkZXN0PSdvcHRp
bWl6ZScsIGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAg
ICAgaGVscD0oJ0RvIG5vdCBvcHRpbWl6ZS9kZS1kdXAgdGhlIGV4cGVjdGF0aW9ucyBhZnRlciBy
ZWJhc2VsaW5pbmcgJworICAgICAgICAgICAgICAgICAgICAgICcoZGVmYXVsdCBpcyB0byBkZS1k
dXAgYXV0b21hdGljYWxseSkuICcKKyAgICAgICAgICAgICAgICAgICAgICAnWW91IGNhbiB1c2Ug
IndlYmtpdC1wYXRjaCBvcHRpbWl6ZS1iYXNlbGluZXMiIHRvIG9wdGltaXplIHNlcGFyYXRlbHku
JykpLAorICAgICAgICBdCisgICAgICAgIEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kLl9faW5p
dF9fKHNlbGYsIG9wdGlvbnM9b3B0aW9ucykKKworICAgIGRlZiBfcnVuX3dlYmtpdF9wYXRjaChz
ZWxmLCBhcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRp
dmUucnVuX2NvbW1hbmQoW3NlbGYuX3Rvb2wucGF0aCgpXSArIGFyZ3MsIGN3ZD1zZWxmLl90b29s
LnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRv
b2wpOgorICAgICAgICAjIEZJWE1FOiB0aGUgZGVmYXVsdCB2YWx1ZSBkb2Vzbid0IHJlYWxseSB3
b3JrIGFzIGl0IHB1bGxzIGJ1aWxkZXJzIGZyb20gbm9uLWNocm9taXVtIHBvcnRzIGFzIHdlbGwu
CisgICAgICAgIGJ1aWxkZXJzID0gb3B0aW9ucy5idWlsZGVycyBvciAnLCcuam9pbihidWlsZGVy
cy5hbGxfYnVpbGRlcl9uYW1lcygpKQorICAgICAgICBzdWZmaXhlcyA9IG9wdGlvbnMuc3VmZml4
ZXMgb3IgJywnLmpvaW4oX2Jhc2VsaW5lX3N1ZmZpeF9saXN0KQorICAgICAgICBwbGF0Zm9ybV90
b19tb3ZlX3RvID0gW29wdGlvbnMucGxhdGZvcm1fdG9fbW92ZV90b10gaWYgb3B0aW9ucy5wbGF0
Zm9ybV90b19tb3ZlX3RvIGVsc2UgW10KKyAgICAgICAgZm9yIHRlc3QgaW4gYXJnczoKKyAgICAg
ICAgICAgICMgRklYTUU6IG9wdGltaXplIHRoZXNlIHN0ZXBzIHRvIGRlLWR1cCByZWR1bmRhbnQg
YmFzZWxpbmVzLCBmZXRjaCBpbiBwYXJhbGxlbC4KKyAgICAgICAgICAgIGZvciBidWlsZGVyIGlu
IGJ1aWxkZXJzLnNwbGl0KCcsJyk6CisgICAgICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9w
YXRjaChbJ3JlYmFzZWxpbmUtdGVzdCcsICctLXN1ZmZpeGVzJywgc3VmZml4ZXMsIGJ1aWxkZXIs
IHRlc3RdICsgcGxhdGZvcm1fdG9fbW92ZV90bykKKyAgICAgICAgICAgIGlmIG9wdGlvbnMub3B0
aW1pemU6CisgICAgICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9wYXRjaChbJ29wdGltaXpl
LWJhc2VsaW5lcycsICctLXN1ZmZpeGVzJywgc3VmZml4ZXMsIHRlc3RdKQorCisKIGNsYXNzIE9w
dGltaXplQmFzZWxpbmVzKEFic3RyYWN0UmViYXNlbGluaW5nQ29tbWFuZCk6CiAgICAgbmFtZSA9
ICJvcHRpbWl6ZS1iYXNlbGluZXMiCiAgICAgaGVscF90ZXh0ID0gIlJlc2h1ZmZsZXMgdGhlIGJh
c2VsaW5lcyBmb3IgdGhlIGdpdmVuIHRlc3RzIHRvIHVzZSBhcyBsaXR0ZSBzcGFjZSBvbiBkaXNr
IGFzIHBvc3NpYmxlLiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weQppbmRleCA4OWZhZDhlMWVkMzYyMmY1MGQ5NTEzNGE4
OTVlZDQ3NjY4NWY0ZTRkLi44YWFhMjUyNjA4NTk1NmE1ZjBjMzU1ZDk1NDNlZGU2YmZjMmE5ZWNh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5p
bmdzZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2Fy
ZGVuaW5nc2VydmVyLnB5CkBAIC0xNTAsNiArMTUwLDEyIEBAIGNsYXNzIEdhcmRlbmluZ0hUVFBS
ZXF1ZXN0SGFuZGxlcihSZWZsZWN0aW9uSGFuZGxlcik6CiAgICAgICAgIHNlbGYuX3J1bl93ZWJr
aXRfcGF0Y2goY29tbWFuZCkKICAgICAgICAgc2VsZi5fc2VydmVfdGV4dCgnc3VjY2VzcycpCiAK
KyAgICBkZWYgcmViYXNlbGluZWFsbChzZWxmKToKKyAgICAgICAgY29tbWFuZCA9IFsncmViYXNl
bGluZS1hbGwnLCAnLS1idWlsZGVycycsIHNlbGYucXVlcnlbJ2J1aWxkZXJzJ11bMF0sCisgICAg
ICAgICAgICAgICAgICAgJy0tc3VmZml4ZXMnLCBzZWxmLnF1ZXJ5WydzdWZmaXhlcyddWzBdLCBz
ZWxmLnF1ZXJ5Wyd0ZXN0cyddWzBdLnNwbGl0KCcsJyldCisgICAgICAgIHNlbGYuX3J1bl93ZWJr
aXRfcGF0Y2goY29tbWFuZCkKKyAgICAgICAgc2VsZi5fc2VydmVfdGV4dCgnc3VjY2VzcycpCisK
ICAgICBkZWYgb3B0aW1pemViYXNlbGluZXMoc2VsZik6CiAgICAgICAgIHRlc3QgPSBzZWxmLnF1
ZXJ5Wyd0ZXN0J11bMF0KICAgICAgICAgY29tbWFuZCA9IFsgJ29wdGltaXplLWJhc2VsaW5lcydd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143146</attachid>
            <date>2012-05-21 17:29:59 -0700</date>
            <delta_ts>2012-05-23 15:53:56 -0700</delta_ts>
            <desc>post a block of json instead, add tests</desc>
            <filename>bug-86916-20120521172958.patch</filename>
            <type>text/plain</type>
            <size>11564</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOThhZWI4YjZhM2E1NGQzODIwMmE4Y2I3ZGJlYjYzMWFh
ZWJlNjE2My4uYWIyMjM0OTkwMzMzYmVjMjc5ZWNkN2QyM2I4ZDVlNDI2OTljOWZiNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3
IEBACiAyMDEyLTA1LTIxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBib3RzIGlm
IGl0IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBwdXNoZXMgYWxsIG9mIHRo
ZSBsb2dpYyBmb3IgcmViYXNlbGluaW5nIGEgY2x1c3RlcgorICAgICAgICBvZiBmYWlsdXJlcyAo
YSBsaXN0IG9mIHRlc3RzIGZhaWxpbmcgYSBsaXN0IG9mIHN1ZmZpeGVzIG9uIGEKKyAgICAgICAg
bGlzdCBvZiBib3RzKSBvbnRvIHRoZSBzZXJ2ZXIsIHNvIHRoZXJlIGlzIGEgc2luZ2xlIGNhbGwg
ZnJvbQorICAgICAgICB0aGUgd2ViIHBhZ2U7IHdlIHdpbGwgdGhlbiBiZSBhYmxlIHRvIG9wdGlt
aXplIHRoZSBwZXJmb3JtYW5jZQorICAgICAgICBvZiB0aGUgcmViYXNlbGluaW5nIGJldHRlci4K
KworICAgICAgICBBbHNvIHJlbW92ZSB0aGUgJ29wdGltaXplYmFzZWxpbmUnIGVudHJ5IHBvaW50
IG9uIGdhcmRlbi1vLW1hdGljCisgICAgICAgIChhbmQgdGhlIGNsaWVudC1zaWRlIGNhbGwpIHNp
bmNlIHdlIGRvbid0IG5lZWQgaXQgYW55IG1vcmUuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3Vw
cG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2Ny
aXB0cy9jaGVja291dC5qczoKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dF91
bml0dGVzdHMuanM6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2Fy
ZGVuaW5nc2VydmVyLnB5OgorICAgICAgICAoR2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5kbGVyLnJl
YmFzZWxpbmVhbGwpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dh
cmRlbmluZ3NlcnZlcl91bml0dGVzdC5weToKKworMjAxMi0wNS0yMSAgRGlyayBQcmFua2UgIDxk
cHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICB3ZWJraXRweTogY2xlYW4gdXAgdGhlIFRl
c3RFeHBlY3RhdGlvbnMgY29uc3RydWN0b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2OTI2CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9z
Y3JpcHRzL2NoZWNrb3V0LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hlY2tvdXQuanMK
aW5kZXggMjRjMDNlNGU0MWJiYzM0Yjk3NDY3YWU2MDJhMWIyN2E2MTNhOWM4NC4uNjFjMzEwMzk3
Mjg0NmM3YTk5MjExOTY5YjA0MzhhZDZjYjRhNTk5NSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1
cmVzL3NjcmlwdHMvY2hlY2tvdXQuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hl
Y2tvdXQuanMKQEAgLTc1LDE4ICs3NSw2IEBAIGNoZWNrb3V0LnVwZGF0ZUV4cGVjdGF0aW9ucyA9
IGZ1bmN0aW9uKGZhaWx1cmVJbmZvTGlzdCwgY2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFpCiAgICAg
fSwgY2hlY2tvdXRVbmF2YWlsYWJsZSk7CiB9OwogCi1jaGVja291dC5vcHRpbWl6ZUJhc2VsaW5l
cyA9IGZ1bmN0aW9uKHRlc3ROYW1lLCBzdWZmaXhlcywgY2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFp
bGFibGUpCi17Ci0gICAgY2FsbElmQ2hlY2tvdXRBdmFpbGFibGUoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIG5ldC5wb3N0KGNvbmZpZy5rTG9jYWxTZXJ2ZXJVUkwgKyAnL29wdGltaXplYmFzZWxpbmVz
PycgKyAkLnBhcmFtKHsKLSAgICAgICAgICAgICd0ZXN0JzogdGVzdE5hbWUsCi0gICAgICAgICAg
ICAnc3VmZml4ZXMnOiBzdWZmaXhlcywKLSAgICAgICAgfSksIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgY2hlY2tvdXRVbmF2YWlsYWJs
ZSk7Ci19OwotCiBjaGVja291dC5yb2xsb3V0ID0gZnVuY3Rpb24ocmV2aXNpb24sIHJlYXNvbiwg
Y2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFpbGFibGUpCiB7CiAgICAgY2FsbElmQ2hlY2tvdXRBdmFp
bGFibGUoZnVuY3Rpb24oKSB7CkBAIC0xMDIsMjYgKzkwLDE0IEBAIGNoZWNrb3V0LnJvbGxvdXQg
PSBmdW5jdGlvbihyZXZpc2lvbiwgcmVhc29uLCBjYWxsYmFjaywgY2hlY2tvdXRVbmF2YWlsYWJs
ZSkKIGNoZWNrb3V0LnJlYmFzZWxpbmUgPSBmdW5jdGlvbihmYWlsdXJlSW5mb0xpc3QsIGNhbGxi
YWNrLCBwcm9ncmVzc0NhbGxiYWNrLCBjaGVja291dFVuYXZhaWxhYmxlKQogewogICAgIGNhbGxJ
ZkNoZWNrb3V0QXZhaWxhYmxlKGZ1bmN0aW9uKCkgewotICAgICAgICBiYXNlLmNhbGxJblNlcXVl
bmNlKGZ1bmN0aW9uKGZhaWx1cmVJbmZvLCBjYWxsYmFjaykgewotICAgICAgICAgICAgdmFyIHN1
ZmZpeGVzID0gYmFzZS51bmlxdWlmeUFycmF5KGJhc2UuZmxhdHRlbkFycmF5KGZhaWx1cmVJbmZv
LmZhaWx1cmVUeXBlTGlzdC5tYXAocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCkp
KS5qb2luKCcsJyk7Ci0KLSAgICAgICAgICAgIG5ldC5wb3N0KGNvbmZpZy5rTG9jYWxTZXJ2ZXJV
UkwgKyAnL3JlYmFzZWxpbmU/JyArICQucGFyYW0oewotICAgICAgICAgICAgICAgICdidWlsZGVy
JzogZmFpbHVyZUluZm8uYnVpbGRlck5hbWUsCi0gICAgICAgICAgICAgICAgJ3Rlc3QnOiBmYWls
dXJlSW5mby50ZXN0TmFtZSwKLSAgICAgICAgICAgICAgICAnc3VmZml4ZXMnOiBzdWZmaXhlcywK
LSAgICAgICAgICAgIH0pLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAocHJvZ3Jl
c3NDYWxsYmFjaykKLSAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NDYWxsYmFjayhmYWlsdXJl
SW5mbyk7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9LCBmYWlsdXJlSW5mb0xpc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIHRl
c3ROYW1lTGlzdCA9IGJhc2UudW5pcXVpZnlBcnJheShmYWlsdXJlSW5mb0xpc3QubWFwKGZ1bmN0
aW9uKGZhaWx1cmVJbmZvKSB7IHJldHVybiBmYWlsdXJlSW5mby50ZXN0TmFtZTsgfSkpOwotICAg
ICAgICAgICAgdmFyIHN1ZmZpeGVzID0gYmFzZS51bmlxdWlmeUFycmF5KGJhc2UuZmxhdHRlbkFy
cmF5KAotICAgICAgICAgICAgICAgIGZhaWx1cmVJbmZvTGlzdC5tYXAoZnVuY3Rpb24oZmFpbHVy
ZUluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UuZmxhdHRlbkFycmF5KGZh
aWx1cmVJbmZvLmZhaWx1cmVUeXBlTGlzdC5tYXAocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5z
aW9uTGlzdCkpCi0gICAgICAgICAgICAgICAgfSkpKS5qb2luKCcsJyk7Ci0gICAgICAgICAgICBi
YXNlLmNhbGxJblNlcXVlbmNlKGZ1bmN0aW9uKHRlc3ROYW1lLCBjYWxsYmFjaykgeyBjaGVja291
dC5vcHRpbWl6ZUJhc2VsaW5lcyh0ZXN0TmFtZSwgc3VmZml4ZXMsIGNhbGxiYWNrKX0sIHRlc3RO
YW1lTGlzdCwgY2FsbGJhY2spOwotICAgICAgICB9KTsKKyAgICAgICAgdmFyIHRlc3RzID0ge307
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmFpbHVyZUluZm9MaXN0Lmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICB2YXIgZmFpbHVyZUluZm8gPSBmYWlsdXJlSW5mb0xpc3RbaV07Cisg
ICAgICAgICAgICB0ZXN0c1tmYWlsdXJlSW5mby50ZXN0TmFtZV0gPSB0ZXN0c1tmYWlsdXJlSW5m
by50ZXN0TmFtZV0gfHwge307CisgICAgICAgICAgICB0ZXN0c1tmYWlsdXJlSW5mby50ZXN0TmFt
ZV1bZmFpbHVyZUluZm8uYnVpbGRlck5hbWVdID0gCisgICAgICAgICAgICAgICAgYmFzZS51bmlx
dWlmeUFycmF5KGJhc2UuZmxhdHRlbkFycmF5KGZhaWx1cmVJbmZvLmZhaWx1cmVUeXBlTGlzdC5t
YXAocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCkpKTsKKyAgICAgICAgfQorICAg
ICAgICBuZXQucG9zdChjb25maWcua0xvY2FsU2VydmVyVVJMICsgJy9yZWJhc2VsaW5lYWxsJywg
SlNPTi5zdHJpbmdpZnkodGVzdHMpLCBmdW5jdGlvbigpIHsgY2FsbGJhY2soKSB9KTsKICAgICB9
LCBjaGVja291dFVuYXZhaWxhYmxlKTsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJl
cy9zY3JpcHRzL2NoZWNrb3V0X3VuaXR0ZXN0cy5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9zY3JpcHRz
L2NoZWNrb3V0X3VuaXR0ZXN0cy5qcwppbmRleCAzMGVjYmYzMDM5NmIyN2Y4ODIxM2ViOGExMjA2
ZTc3NTdjOGM1MDMxLi5jY2E3Y2Y4ZDA3YTJkMTBiOWI0ZmRhOTZhYjc5NGFjNTI2ODM1YzEwIDEw
MDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dF91bml0dGVzdHMuanMK
KysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hlY2tvdXRfdW5pdHRlc3RzLmpzCkBAIC01
NiwyOCArNTYsMTMgQEAgdGVzdCgidXBkYXRlRXhwZWN0YXRpb25zIiwgNCwgZnVuY3Rpb24oKSB7
CiAgICAgfSk7CiB9KTsKIAotdGVzdCgib3B0aW1pemVCYXNlbGluZXMiLCAzLCBmdW5jdGlvbigp
IHsKLSAgICB2YXIgc2ltdWxhdG9yID0gbmV3IE5ldHdvcmtTaW11bGF0b3IoKTsKLSAgICBzaW11
bGF0b3IucG9zdCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBlcXVh
bHModXJsLCAnaHR0cDovLzEyNy4wLjAuMTo4MTI3L29wdGltaXplYmFzZWxpbmVzP3Rlc3Q9YW5v
dGhlciUyRnRlc3Quc3ZnJnN1ZmZpeGVzPXR4dCUyQ3BuZycpOwotICAgICAgICBzaW11bGF0b3Iu
c2NoZWR1bGVDYWxsYmFjayhjYWxsYmFjayk7Ci0gICAgfTsKLQotICAgIHNpbXVsYXRvci5ydW5U
ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICBjaGVja291dC5vcHRpbWl6ZUJhc2VsaW5lcygnYW5v
dGhlci90ZXN0LnN2ZycsICd0eHQscG5nJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBvayh0
cnVlKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotdGVzdCgicmViYXNlbGluZSIsIDYs
IGZ1bmN0aW9uKCkgewordGVzdCgicmViYXNlbGluZSIsIDQsIGZ1bmN0aW9uKCkgewogICAgIHZh
ciBzaW11bGF0b3IgPSBuZXcgTmV0d29ya1NpbXVsYXRvcigpOwogCi0gICAgdmFyIHJlcXVlc3Rl
ZFVSTHMgPSBbXTsKLSAgICBzaW11bGF0b3IucG9zdCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2sp
CisgICAgdmFyIHJlcXVlc3RzID0gW107CisgICAgc2ltdWxhdG9yLnBvc3QgPSBmdW5jdGlvbih1
cmwsIGJvZHksIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgcmVxdWVzdGVkVVJMcy5wdXNoKHVy
bCk7CisgICAgICAgIHJlcXVlc3RzLnB1c2goW3VybCwgYm9keV0pOwogICAgICAgICBzaW11bGF0
b3Iuc2NoZWR1bGVDYWxsYmFjayhjYWxsYmFjayk7CiAgICAgfTsKICAgICBzaW11bGF0b3IuYWph
eCA9IGZ1bmN0aW9uKG9wdGlvbnMpCkBAIC0xMTUsMTIgKzEwMCwxNSBAQCB0ZXN0KCJyZWJhc2Vs
aW5lIiwgNiwgZnVuY3Rpb24oKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgZGVlcEVx
dWFsKHJlcXVlc3RlZFVSTHMsIFsKLSAgICAgICAgImh0dHA6Ly8xMjcuMC4wLjE6ODEyNy9yZWJh
c2VsaW5lP2J1aWxkZXI9V2ViS2l0K0xpbnV4JnRlc3Q9YW5vdGhlciUyRnRlc3Quc3ZnJnN1ZmZp
eGVzPXBuZyIsCi0gICAgICAgICJodHRwOi8vMTI3LjAuMC4xOjgxMjcvcmViYXNlbGluZT9idWls
ZGVyPVdlYktpdCtNYWMxMC42JnRlc3Q9YW5vdGhlciUyRnRlc3Quc3ZnJnN1ZmZpeGVzPXBuZyUy
Q3R4dCIsCi0gICAgICAgICJodHRwOi8vMTI3LjAuMC4xOjgxMjcvcmViYXNlbGluZT9idWlsZGVy
PVdlYmtpdCtWaXN0YSZ0ZXN0PWZhc3QlMkZ0ZXN0Lmh0bWwmc3VmZml4ZXM9dHh0JTJDcG5nIiwK
LSAgICAgICAgImh0dHA6Ly8xMjcuMC4wLjE6ODEyNy9vcHRpbWl6ZWJhc2VsaW5lcz90ZXN0PWFu
b3RoZXIlMkZ0ZXN0LnN2ZyZzdWZmaXhlcz1wbmclMkN0eHQiLAotICAgICAgICAiaHR0cDovLzEy
Ny4wLjAuMTo4MTI3L29wdGltaXplYmFzZWxpbmVzP3Rlc3Q9ZmFzdCUyRnRlc3QuaHRtbCZzdWZm
aXhlcz1wbmclMkN0eHQiCisgICAgZGVlcEVxdWFsKHJlcXVlc3RzLCBbCisgICAgICAgIFsiaHR0
cDovLzEyNy4wLjAuMTo4MTI3L3JlYmFzZWxpbmVhbGwiLAorICAgICAgICAgSlNPTi5zdHJpbmdp
ZnkoeworICAgICAgICAgICAgICJhbm90aGVyL3Rlc3Quc3ZnIjogeworICAgICAgICAgICAgICAg
ICAiV2ViS2l0IExpbnV4IjogWyJwbmciXSwgCisgICAgICAgICAgICAgICAgICJXZWJLaXQgTWFj
MTAuNiI6IFsicG5nIiwidHh0Il19LAorICAgICAgICAgICAgICJmYXN0L3Rlc3QuaHRtbCI6IHsK
KyAgICAgICAgICAgICAgICAgIldlYmtpdCBWaXN0YSI6IFsidHh0IiwicG5nIl0KKyAgICAgICAg
ICAgICB9fSldCiAgICAgXSk7CiB9KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CmluZGV4IDg5ZmFkOGUxZWQzNjIy
ZjUwZDk1MTM0YTg5NWVkNDc2Njg1ZjRlNGQuLjc3MmM1M2EwMWZjZDczNjY3YTg0NTNjMDM5ZjQ3
YTc3Y2Q2OTc0OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2dhcmRlbmluZ3NlcnZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKQEAgLTE1MCwxNSArMTUwLDEzIEBAIGNsYXNzIEdh
cmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlcihSZWZsZWN0aW9uSGFuZGxlcik6CiAgICAgICAgIHNl
bGYuX3J1bl93ZWJraXRfcGF0Y2goY29tbWFuZCkKICAgICAgICAgc2VsZi5fc2VydmVfdGV4dCgn
c3VjY2VzcycpCiAKLSAgICBkZWYgb3B0aW1pemViYXNlbGluZXMoc2VsZik6Ci0gICAgICAgIHRl
c3QgPSBzZWxmLnF1ZXJ5Wyd0ZXN0J11bMF0KLSAgICAgICAgY29tbWFuZCA9IFsgJ29wdGltaXpl
LWJhc2VsaW5lcyddCi0KLSAgICAgICAgaWYgJ3N1ZmZpeGVzJyBpbiBzZWxmLnF1ZXJ5OgotICAg
ICAgICAgICAgY29tbWFuZC5hcHBlbmQoJy0tc3VmZml4ZXMnKQotICAgICAgICAgICAgY29tbWFu
ZC5hcHBlbmQoc2VsZi5xdWVyeVsnc3VmZml4ZXMnXVswXSkKLQotICAgICAgICBjb21tYW5kLmFw
cGVuZCh0ZXN0KQotICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3BhdGNoKGNvbW1hbmQpCi0KKyAg
ICBkZWYgcmViYXNlbGluZWFsbChzZWxmKToKKyAgICAgICAgIyBGSVhNRTogT3B0aW1pemUgdGhp
cyB0byBkZS1kdXAgYm90IHJlc3VsdHMsIHJ1biBpbiBwYXJhbGxlbCwgY2FjaGUgemlwcywgZXRj
LgorICAgICAgICB0ZXN0X2xpc3QgPSBzZWxmLl9yZWFkX2VudGl0eV9ib2R5X2FzX2pzb24oKQor
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xpc3Q6CisgICAgICAgICAgICBhbGxfc3VmZml4ZXMg
PSBzZXQoKQorICAgICAgICAgICAgZm9yIGJ1aWxkZXIsIHN1ZmZpeGVzIGluIHRlc3RfbGlzdFt0
ZXN0XS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICBhbGxfc3VmZml4ZXMudXBkYXRlKHNl
dChzdWZmaXhlcykpCisgICAgICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9wYXRjaChbJ3Jl
YmFzZWxpbmUtdGVzdCcsICctLXN1ZmZpeGVzJywgJywnLmpvaW4oc3VmZml4ZXMpLCBidWlsZGVy
LCB0ZXN0XSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfcGF0Y2goWydvcHRpbWl6ZS1i
YXNlbGluZXMnLCAnLS1zdWZmaXhlcycsICcsJy5qb2luKGFsbF9zdWZmaXhlcyksIHRlc3RdKQog
ICAgICAgICBzZWxmLl9zZXJ2ZV90ZXh0KCdzdWNjZXNzJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0
dGVzdC5weQppbmRleCBjOTZiNjYwMzQzYzY2MDA0OGQzZDE0ZGNiNGM5NzVhYzhhZmFjMmYyLi4w
ZDQ2NmQyNDY3ZWYzNjI0ZTI4MDZjZDFmYjliMzliNjM5YjZiNWM2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2Vy
dmVyX3VuaXR0ZXN0LnB5CkBAIC0xODEsMTEgKzE4MSwxMSBAQCBjbGFzcyBHYXJkZW5pbmdTZXJ2
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIj09
IEJlZ2luIFJlc3BvbnNlID09XG5zdWNjZXNzXG49PSBFbmQgUmVzcG9uc2UgPT1cbiIKICAgICAg
ICAgc2VsZi5fcG9zdF90b19wYXRoKCIvcm9sbG91dD9yZXZpc2lvbj0yMzE0JnJlYXNvbj1NT0NL
K3JvbGxvdXQrcmVhc29uIiwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0
ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKIAotICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmUoc2Vs
Zik6CisgICAgZGVmIHRlc3RfcmViYXNlbGluZWFsbChzZWxmKToKICAgICAgICAgYnVpbGRlcnMu
X2V4YWN0X21hdGNoZXMgPSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogIm1vY2stcG9y
dC1uYW1lIiwgInNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKX19Ci0gICAgICAg
IGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAncmViYXNlbGlu
ZS10ZXN0JywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICdNT0NLIGJ1aWxkZXInLCAndXNlci1z
Y3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ10sIGN3ZD0vbW9jay1jaGVja291dFxuIgorICAgICAg
ICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxp
bmUtdGVzdCcsICctLXN1ZmZpeGVzJywgdSd0eHQscG5nJywgdSdNT0NLIGJ1aWxkZXInLCB1J3Vz
ZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbk1PQ0sg
cnVuX2NvbW1hbmQ6IFsnZWNobycsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycs
IHUndHh0LHBuZycsIHUndXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ10sIGN3ZD0vbW9j
ay1jaGVja291dFxuIgogICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiPT0gQmVnaW4gUmVzcG9u
c2UgPT1cbnN1Y2Nlc3Ncbj09IEVuZCBSZXNwb25zZSA9PVxuIgotICAgICAgICBzZWxmLl9wb3N0
X3RvX3BhdGgoIi9yZWJhc2VsaW5lP2J1aWxkZXI9TU9DSytidWlsZGVyJnRlc3Q9dXNlci1zY3Jp
cHRzL2Fub3RoZXItdGVzdC5odG1sJnN1ZmZpeGVzPXR4dCxwbmciLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQorICAgICAg
ICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yZWJhc2VsaW5lYWxsIiwgYm9keT0neyJ1c2VyLXNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwiOnsiTU9DSyBidWlsZGVyIjogWyJ0eHQiLCJwbmciXX19Jywg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVk
X3N0ZG91dCkKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfbmV3X3BvcnQoc2VsZik6CiAgICAg
ICAgIGJ1aWxkZXJzLl9leGFjdF9tYXRjaGVzID0geyJNT0NLIGJ1aWxkZXIiOiB7InBvcnRfbmFt
ZSI6ICJtb2NrLXBvcnQtbmFtZSIsICJzcGVjaWZpZXJzIjogc2V0KFsibW9jay1zcGVjaWZpZXIi
XSksICJtb3ZlX292ZXJ3cml0dGVuX2Jhc2VsaW5lc190byI6IFsibW9jay1wb3J0LWZhbGxiYWNr
IiwgIm1vY2stcG9ydC1mYWxsYmFjazIiXX19CkBAIC0xOTMsMTEgKzE5Myw2IEBAIGNsYXNzIEdh
cmRlbmluZ1NlcnZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RlZF9z
dGRvdXQgPSAiPT0gQmVnaW4gUmVzcG9uc2UgPT1cbnN1Y2Nlc3Ncbj09IEVuZCBSZXNwb25zZSA9
PVxuIgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yZWJhc2VsaW5lP2J1aWxkZXI9TU9D
SytidWlsZGVyJnRlc3Q9dXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJnN1ZmZpeGVzPXR4
dCxwbmciLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9
ZXhwZWN0ZWRfc3Rkb3V0KQogCi0gICAgZGVmIHRlc3Rfb3B0aW1pemViYXNlbGluZXMoc2VsZik6
Ci0gICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAn
b3B0aW1pemUtYmFzZWxpbmVzJywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICd1c2VyLXNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCi0gICAgICAgIGV4
cGVjdGVkX3N0ZG91dCA9ICI9PSBCZWdpbiBSZXNwb25zZSA9PVxuc3VjY2Vzc1xuPT0gRW5kIFJl
c3BvbnNlID09XG4iCi0gICAgICAgIHNlbGYuX3Bvc3RfdG9fcGF0aCgiL29wdGltaXplYmFzZWxp
bmVzP3Rlc3Q9dXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJnN1ZmZpeGVzPXR4dCxwbmci
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0
ZWRfc3Rkb3V0KQotCiAgICAgZGVmIHRlc3RfdXBkYXRlZXhwZWN0YXRpb25zKHNlbGYpOgogICAg
ICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIgogICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiPT0g
QmVnaW4gUmVzcG9uc2UgPT1cbnN1Y2Nlc3Ncbj09IEVuZCBSZXNwb25zZSA9PVxuIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143666</attachid>
            <date>2012-05-23 15:54:04 -0700</date>
            <delta_ts>2012-05-24 15:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86916-20120523155403.patch</filename>
            <type>text/plain</type>
            <size>7736</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MjM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTg4MDQ3OTc1NWE5MDliODUwZTAxODY4ZTUzMDU4YTkz
Nzg2ODJiYS4uNGFhMjcxNmM0ZGRjMmYzNmQ1ZDJhMzQzM2ZjYjliYTZiZjgwZTU2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMyw2ICszLDI3
IEBACiAgICAgICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBi
b3RzIGlmIGl0IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKIAorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RlIHRoYXQgaWYgcmVsZWFzZSBh
bmQgZGVidWcgYXJlIGZhaWxpbmcgZGlmZmVyZW50bHksIGRlYnVnCisgICAgICAgIHdpbGwgYmUg
aWdub3JlZCAuLi4KKworICAgICAgICBOb3RlOiBhbHNvIGNoYW5nZSB0aGUgdXNlIG9mIGEgZmFr
ZSBwb3J0IG5hbWUgZnJvbQorICAgICAgICAibW9jay1wb3J0LW5hbWUiIHRvICJ0ZXN0LW1hYy1s
ZW9wYXJkIiB0byBtYWtlIGl0IG1vcmUgZnJpZW5kbHkKKyAgICAgICAgdG8gdGhlIHBvcnQgZmFj
dG9yeSAoIm1vY2siIGFjdHVhbGx5IGlzIGEgcmVhbCBwb3J0KS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weToKKyAgICAgICAgKEdh
cmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlci5fYnVpbGRlcnNfdG9fZmV0Y2hfZnJvbSk6CisgICAg
ICAgIChHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIucmViYXNlbGluZWFsbCk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoR2FyZGVuaW5nU2VydmVyVGVzdC50ZXN0X3JlYmFzZWxpbmVhbGwpOgor
ICAgICAgICAoR2FyZGVuaW5nU2VydmVyVGVzdC50ZXN0X3JlYmFzZWxpbmVfbmV3X3BvcnQpOgor
CisyMDEyLTA1LTIzICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBib3RzIGlmIGl0
IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKKwogICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgogCiAgICAgICAgIFRoaXMgY2hhbmdlIHB1c2hlcyBhbGwgb2YgdGhlIGxvZ2lj
IGZvciByZWJhc2VsaW5pbmcgYSBjbHVzdGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKaW5kZXggNzcyYzUzYTAxZmNk
NzM2NjdhODQ1M2MwMzlmNDdhNzdjZDY5NzQ4Yy4uOGE3YzYxZWQyYmViZDBmNTk1YWIxYTBkMGI2
YmQ5MGZkNWNiZmZlOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weQpAQCAtMTUwLDEzICsxNTAsNDEgQEAgY2xhc3Mg
R2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5kbGVyKFJlZmxlY3Rpb25IYW5kbGVyKToKICAgICAgICAg
c2VsZi5fcnVuX3dlYmtpdF9wYXRjaChjb21tYW5kKQogICAgICAgICBzZWxmLl9zZXJ2ZV90ZXh0
KCdzdWNjZXNzJykKIAorICAgIGRlZiBfYnVpbGRlcnNfdG9fZmV0Y2hfZnJvbShzZWxmLCBidWls
ZGVycyk6CisgICAgICAgICMgVGhpcyByb3V0aW5lIHJldHVybnMgdGhlIHN1YnNldCBvZiBidWls
ZGVycyB0aGF0IHdpbGwgY292ZXIgYWxsIG9mIHRoZSBiYXNlbGluZSBzZWFyY2ggcGF0aHMKKyAg
ICAgICAgIyB1c2VkIGluIHRoZSBpbnB1dCBsaXN0LiBJbiBwYXJ0aWN1bGFyLCBpZiB0aGUgaW5w
dXQgbGlzdCBjb250YWlucyBib3RoIFJlbGVhc2UgYW5kIERlYnVnCisgICAgICAgICMgdmVyc2lv
bnMgb2YgYSBjb25maWd1cmF0aW9uLCB3ZSAqb25seSogcmV0dXJuIHRoZSBSZWxlYXNlIHZlcnNp
b24gKHNpbmNlIHdlIGRvbid0IHNhdmUKKyAgICAgICAgIyBkZWJ1ZyB2ZXJzaW9ucyBvZiBiYXNl
bGluZXMpLgorICAgICAgICByZWxlYXNlX2J1aWxkZXJzID0gc2V0KCkKKyAgICAgICAgZGVidWdf
YnVpbGRlcnMgPSBzZXQoKQorICAgICAgICBidWlsZGVyc190b19wb3J0cyA9IHt9CisgICAgICAg
IGJ1aWxkZXJzX3RvX2ZhbGxiYWNrX3BhdGhzID0ge30KKyAgICAgICAgZm9yIGJ1aWxkZXIgaW4g
YnVpbGRlcnM6CisgICAgICAgICAgICBwb3J0ID0gc2VsZi5zZXJ2ZXIudG9vbC5wb3J0X2ZhY3Rv
cnkuZ2V0X2Zyb21fYnVpbGRlcl9uYW1lKGJ1aWxkZXIpCisgICAgICAgICAgICBidWlsZGVyc190
b19wb3J0c1tidWlsZGVyXSA9IHBvcnQKKyAgICAgICAgICAgIGlmIHBvcnQudGVzdF9jb25maWd1
cmF0aW9uKCkuYnVpbGRfdHlwZSA9PSAnUmVsZWFzZSc6CisgICAgICAgICAgICAgICAgcmVsZWFz
ZV9idWlsZGVycy5hZGQoYnVpbGRlcikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgZGVidWdfYnVpbGRlcnMuYWRkKGJ1aWxkZXIpCisgICAgICAgIGZvciBidWlsZGVyIGluIHJl
bGVhc2VfYnVpbGRlcnM6CisgICAgICAgICAgICBmYWxsYmFja19wYXRoID0gcG9ydC5iYXNlbGlu
ZV9zZWFyY2hfcGF0aCgpCisgICAgICAgICAgICBpZiBmYWxsYmFja19wYXRoIG5vdCBpbiBidWls
ZGVyc190b19mYWxsYmFja19wYXRocy52YWx1ZXMoKToKKyAgICAgICAgICAgICAgICBidWlsZGVy
c190b19mYWxsYmFja19wYXRoc1tidWlsZGVyXSA9IGZhbGxiYWNrX3BhdGgKKyAgICAgICAgZm9y
IGJ1aWxkZXIgaW4gZGVidWdfYnVpbGRlcnM6CisgICAgICAgICAgICBmYWxsYmFja19wYXRoID0g
cG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpCisgICAgICAgICAgICBpZiBmYWxsYmFja19wYXRo
IG5vdCBpbiBidWlsZGVyc190b19mYWxsYmFja19wYXRocy52YWx1ZXMoKToKKyAgICAgICAgICAg
ICAgICBidWlsZGVyc190b19mYWxsYmFja19wYXRoc1tidWlsZGVyXSA9IGZhbGxiYWNrX3BhdGgK
KyAgICAgICAgcmV0dXJuIGJ1aWxkZXJzX3RvX2ZhbGxiYWNrX3BhdGhzLmtleXMoKQorCiAgICAg
ZGVmIHJlYmFzZWxpbmVhbGwoc2VsZik6Ci0gICAgICAgICMgRklYTUU6IE9wdGltaXplIHRoaXMg
dG8gZGUtZHVwIGJvdCByZXN1bHRzLCBydW4gaW4gcGFyYWxsZWwsIGNhY2hlIHppcHMsIGV0Yy4K
KyAgICAgICAgIyBGSVhNRTogT3B0aW1pemUgdGhpcyB0byBydW4gaW4gcGFyYWxsZWwsIGNhY2hl
IHppcHMsIGV0Yy4KICAgICAgICAgdGVzdF9saXN0ID0gc2VsZi5fcmVhZF9lbnRpdHlfYm9keV9h
c19qc29uKCkKICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdF9saXN0OgogICAgICAgICAgICAgYWxs
X3N1ZmZpeGVzID0gc2V0KCkKLSAgICAgICAgICAgIGZvciBidWlsZGVyLCBzdWZmaXhlcyBpbiB0
ZXN0X2xpc3RbdGVzdF0uaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgYWxsX3N1ZmZpeGVz
LnVwZGF0ZShzZXQoc3VmZml4ZXMpKQorICAgICAgICAgICAgYnVpbGRlcnMgPSBzZWxmLl9idWls
ZGVyc190b19mZXRjaF9mcm9tKHRlc3RfbGlzdFt0ZXN0XSkKKyAgICAgICAgICAgIGZvciBidWls
ZGVyIGluIGJ1aWxkZXJzOgorICAgICAgICAgICAgICAgIHN1ZmZpeGVzID0gdGVzdF9saXN0W3Rl
c3RdW2J1aWxkZXJdCisgICAgICAgICAgICAgICAgYWxsX3N1ZmZpeGVzLnVwZGF0ZShzdWZmaXhl
cykKICAgICAgICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3BhdGNoKFsncmViYXNlbGluZS10
ZXN0JywgJy0tc3VmZml4ZXMnLCAnLCcuam9pbihzdWZmaXhlcyksIGJ1aWxkZXIsIHRlc3RdKQog
ICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9wYXRjaChbJ29wdGltaXplLWJhc2VsaW5lcycs
ICctLXN1ZmZpeGVzJywgJywnLmpvaW4oYWxsX3N1ZmZpeGVzKSwgdGVzdF0pCiAgICAgICAgIHNl
bGYuX3NlcnZlX3RleHQoJ3N1Y2Nlc3MnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDBkNDY2ZDI0NjdlZjM2MjRlMjgwNmNkMWZiOWIzOWI2MzliNmI1YzYuLmUxNzk4ZjY1ZWJi
MjY1MDRlZDdmNmJlZjY3NjNhNzExOTMyNmExZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRl
c3QucHkKQEAgLTE4MiwxMyArMTgyLDIwIEBAIGNsYXNzIEdhcmRlbmluZ1NlcnZlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yb2xsb3V0P3Jl
dmlzaW9uPTIzMTQmcmVhc29uPU1PQ0srcm9sbG91dCtyZWFzb24iLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAg
ZGVmIHRlc3RfcmViYXNlbGluZWFsbChzZWxmKToKLSAgICAgICAgYnVpbGRlcnMuX2V4YWN0X21h
dGNoZXMgPSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogIm1vY2stcG9ydC1uYW1lIiwg
InNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKX19Ci0gICAgICAgIGV4cGVjdGVk
X3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0Jywg
Jy0tc3VmZml4ZXMnLCB1J3R4dCxwbmcnLCB1J01PQ0sgYnVpbGRlcicsIHUndXNlci1zY3JpcHRz
L2Fub3RoZXItdGVzdC5odG1sJ10sIGN3ZD0vbW9jay1jaGVja291dFxuTU9DSyBydW5fY29tbWFu
ZDogWydlY2hvJywgJ29wdGltaXplLWJhc2VsaW5lcycsICctLXN1ZmZpeGVzJywgdSd0eHQscG5n
JywgdSd1c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
XG4iCisgICAgICAgIGJ1aWxkZXJzLl9leGFjdF9tYXRjaGVzID0geworICAgICAgICAgICAgIk1P
Q0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogInRlc3QtbWFjLWxlb3BhcmQiLCAic3BlY2lmaWVy
cyI6IHNldChbIm1vY2stc3BlY2lmaWVyIl0pfSwKKyAgICAgICAgICAgICJNT0NLIGJ1aWxkZXIg
KERlYnVnKSI6IHsicG9ydF9uYW1lIjogInRlc3QtbWFjLWxlb3BhcmQiLCAic3BlY2lmaWVycyI6
IHNldChbIm1vY2stc3BlY2lmaWVyIiwgImRlYnVnIl0pfSwKKyAgICAgICAgfQorICAgICAgICBl
eHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUt
dGVzdCcsICctLXN1ZmZpeGVzJywgdSclcycsIHUnJXMnLCB1J3VzZXItc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbk1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNo
bycsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycsIHUnJXMnLCB1J3VzZXItc2Ny
aXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbiIKICAgICAgICAg
ZXhwZWN0ZWRfc3Rkb3V0ID0gIj09IEJlZ2luIFJlc3BvbnNlID09XG5zdWNjZXNzXG49PSBFbmQg
UmVzcG9uc2UgPT1cbiIKLSAgICAgICAgc2VsZi5fcG9zdF90b19wYXRoKCIvcmViYXNlbGluZWFs
bCIsIGJvZHk9J3sidXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIjp7Ik1PQ0sgYnVpbGRl
ciI6IFsidHh0IiwicG5nIl19fScsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4
cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCisgICAgICAgIHNlbGYuX3Bvc3RfdG9fcGF0
aCgiL3JlYmFzZWxpbmVhbGwiLCBib2R5PSd7InVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRt
bCI6eyJNT0NLIGJ1aWxkZXIiOiBbInR4dCIsInBuZyJdfX0nLCBleHBlY3RlZF9zdGRlcnI9ZXhw
ZWN0ZWRfc3RkZXJyICUgKCd0eHQscG5nJywgJ01PQ0sgYnVpbGRlcicsICd0eHQscG5nJyksIGV4
cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCisKKyAgICAgICAgc2VsZi5fcG9zdF90b19w
YXRoKCIvcmViYXNlbGluZWFsbCIsIGJvZHk9J3sidXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIjp7Ik1PQ0sgYnVpbGRlciAoRGVidWcpIjogWyJ0eHQiLCJwbmciXX19JywgZXhwZWN0ZWRf
c3RkZXJyPWV4cGVjdGVkX3N0ZGVyciAlICgndHh0LHBuZycsICdNT0NLIGJ1aWxkZXIgKERlYnVn
KScsICd0eHQscG5nJyksIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCisKKyAgICAg
ICAgc2VsZi5fcG9zdF90b19wYXRoKCIvcmViYXNlbGluZWFsbCIsIGJvZHk9J3sidXNlci1zY3Jp
cHRzL2Fub3RoZXItdGVzdC5odG1sIjp7Ik1PQ0sgYnVpbGRlciAoRGVidWcpIjogWyJ0eHQiLCJw
bmciXSwgIk1PQ0sgYnVpbGRlciI6IFsidHh0Il19fScsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3Rl
ZF9zdGRlcnIgJSAoJ3R4dCcsICdNT0NLIGJ1aWxkZXInLCAndHh0JyksIGV4cGVjdGVkX3N0ZG91
dD1leHBlY3RlZF9zdGRvdXQpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX25ld19wb3J0KHNl
bGYpOgotICAgICAgICBidWlsZGVycy5fZXhhY3RfbWF0Y2hlcyA9IHsiTU9DSyBidWlsZGVyIjog
eyJwb3J0X25hbWUiOiAibW9jay1wb3J0LW5hbWUiLCAic3BlY2lmaWVycyI6IHNldChbIm1vY2st
c3BlY2lmaWVyIl0pLCAibW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8iOiBbIm1vY2stcG9y
dC1mYWxsYmFjayIsICJtb2NrLXBvcnQtZmFsbGJhY2syIl19fQorICAgICAgICBidWlsZGVycy5f
ZXhhY3RfbWF0Y2hlcyA9IHsiTU9DSyBidWlsZGVyIjogeyJwb3J0X25hbWUiOiAidGVzdC1tYWMt
bGVvcGFyZCIsICJzcGVjaWZpZXJzIjogc2V0KFsibW9jay1zcGVjaWZpZXIiXSksICJtb3ZlX292
ZXJ3cml0dGVuX2Jhc2VsaW5lc190byI6IFsibW9jay1wb3J0LWZhbGxiYWNrIiwgIm1vY2stcG9y
dC1mYWxsYmFjazIiXX19CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21t
YW5kOiBbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0JywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycs
ICdNT0NLIGJ1aWxkZXInLCAndXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJywgJ21vY2st
cG9ydC1mYWxsYmFjaycsICdtb2NrLXBvcnQtZmFsbGJhY2syJ10sIGN3ZD0vbW9jay1jaGVja291
dFxuIgogICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiPT0gQmVnaW4gUmVzcG9uc2UgPT1cbnN1
Y2Nlc3Ncbj09IEVuZCBSZXNwb25zZSA9PVxuIgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgo
Ii9yZWJhc2VsaW5lP2J1aWxkZXI9TU9DSytidWlsZGVyJnRlc3Q9dXNlci1zY3JpcHRzL2Fub3Ro
ZXItdGVzdC5odG1sJnN1ZmZpeGVzPXR4dCxwbmciLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRf
c3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143908</attachid>
            <date>2012-05-24 15:45:48 -0700</date>
            <delta_ts>2012-05-24 16:00:51 -0700</delta_ts>
            <desc>fix w/ review feedback</desc>
            <filename>bug-86916-20120524154547.patch</filename>
            <type>text/plain</type>
            <size>7527</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MjM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTg4MDQ3OTc1NWE5MDliODUwZTAxODY4ZTUzMDU4YTkz
Nzg2ODJiYS4uNGFhMjcxNmM0ZGRjMmYzNmQ1ZDJhMzQzM2ZjYjliYTZiZjgwZTU2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMyw2ICszLDI3
IEBACiAgICAgICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBi
b3RzIGlmIGl0IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKIAorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RlIHRoYXQgaWYgcmVsZWFzZSBh
bmQgZGVidWcgYXJlIGZhaWxpbmcgZGlmZmVyZW50bHksIGRlYnVnCisgICAgICAgIHdpbGwgYmUg
aWdub3JlZCAuLi4KKworICAgICAgICBOb3RlOiBhbHNvIGNoYW5nZSB0aGUgdXNlIG9mIGEgZmFr
ZSBwb3J0IG5hbWUgZnJvbQorICAgICAgICAibW9jay1wb3J0LW5hbWUiIHRvICJ0ZXN0LW1hYy1s
ZW9wYXJkIiB0byBtYWtlIGl0IG1vcmUgZnJpZW5kbHkKKyAgICAgICAgdG8gdGhlIHBvcnQgZmFj
dG9yeSAoIm1vY2siIGFjdHVhbGx5IGlzIGEgcmVhbCBwb3J0KS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weToKKyAgICAgICAgKEdh
cmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlci5fYnVpbGRlcnNfdG9fZmV0Y2hfZnJvbSk6CisgICAg
ICAgIChHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIucmViYXNlbGluZWFsbCk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoR2FyZGVuaW5nU2VydmVyVGVzdC50ZXN0X3JlYmFzZWxpbmVhbGwpOgor
ICAgICAgICAoR2FyZGVuaW5nU2VydmVyVGVzdC50ZXN0X3JlYmFzZWxpbmVfbmV3X3BvcnQpOgor
CisyMDEyLTA1LTIzICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBib3RzIGlmIGl0
IGFsc28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MTYKKwogICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgogCiAgICAgICAgIFRoaXMgY2hhbmdlIHB1c2hlcyBhbGwgb2YgdGhlIGxvZ2lj
IGZvciByZWJhc2VsaW5pbmcgYSBjbHVzdGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKaW5kZXggNzcyYzUzYTAxZmNk
NzM2NjdhODQ1M2MwMzlmNDdhNzdjZDY5NzQ4Yy4uMDk2NjBmNjA5NzdiYzVlMzJmZTlhODZlY2Q1
MTM2ODRlNjQ0YTMwZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weQpAQCAtMTUwLDEzICsxNTAsMzYgQEAgY2xhc3Mg
R2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5kbGVyKFJlZmxlY3Rpb25IYW5kbGVyKToKICAgICAgICAg
c2VsZi5fcnVuX3dlYmtpdF9wYXRjaChjb21tYW5kKQogICAgICAgICBzZWxmLl9zZXJ2ZV90ZXh0
KCdzdWNjZXNzJykKIAorICAgIGRlZiBfYnVpbGRlcnNfdG9fZmV0Y2hfZnJvbShzZWxmLCBidWls
ZGVycyk6CisgICAgICAgICMgVGhpcyByb3V0aW5lIHJldHVybnMgdGhlIHN1YnNldCBvZiBidWls
ZGVycyB0aGF0IHdpbGwgY292ZXIgYWxsIG9mIHRoZSBiYXNlbGluZSBzZWFyY2ggcGF0aHMKKyAg
ICAgICAgIyB1c2VkIGluIHRoZSBpbnB1dCBsaXN0LiBJbiBwYXJ0aWN1bGFyLCBpZiB0aGUgaW5w
dXQgbGlzdCBjb250YWlucyBib3RoIFJlbGVhc2UgYW5kIERlYnVnCisgICAgICAgICMgdmVyc2lv
bnMgb2YgYSBjb25maWd1cmF0aW9uLCB3ZSAqb25seSogcmV0dXJuIHRoZSBSZWxlYXNlIHZlcnNp
b24gKHNpbmNlIHdlIGRvbid0IHNhdmUKKyAgICAgICAgIyBkZWJ1ZyB2ZXJzaW9ucyBvZiBiYXNl
bGluZXMpLgorICAgICAgICByZWxlYXNlX2J1aWxkZXJzID0gc2V0KCkKKyAgICAgICAgZGVidWdf
YnVpbGRlcnMgPSBzZXQoKQorICAgICAgICBidWlsZGVyc190b19mYWxsYmFja19wYXRocyA9IHt9
CisgICAgICAgIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzOgorICAgICAgICAgICAgcG9ydCA9IHNl
bGYuc2VydmVyLnRvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxkZXJfbmFtZShidWlsZGVy
KQorICAgICAgICAgICAgaWYgcG9ydC50ZXN0X2NvbmZpZ3VyYXRpb24oKS5idWlsZF90eXBlID09
ICdSZWxlYXNlJzoKKyAgICAgICAgICAgICAgICByZWxlYXNlX2J1aWxkZXJzLmFkZChidWlsZGVy
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkZWJ1Z19idWlsZGVycy5hZGQo
YnVpbGRlcikKKyAgICAgICAgZm9yIGJ1aWxkZXIgaW4gbGlzdChyZWxlYXNlX2J1aWxkZXJzKSAr
IGxpc3QoZGVidWdfYnVpbGRlcnMpOgorICAgICAgICAgICAgcG9ydCA9IHNlbGYuc2VydmVyLnRv
b2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxkZXJfbmFtZShidWlsZGVyKQorICAgICAgICAg
ICAgZmFsbGJhY2tfcGF0aCA9IHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQorICAgICAgICAg
ICAgaWYgZmFsbGJhY2tfcGF0aCBub3QgaW4gYnVpbGRlcnNfdG9fZmFsbGJhY2tfcGF0aHMudmFs
dWVzKCk6CisgICAgICAgICAgICAgICAgYnVpbGRlcnNfdG9fZmFsbGJhY2tfcGF0aHNbYnVpbGRl
cl0gPSBmYWxsYmFja19wYXRoCisgICAgICAgIHJldHVybiBidWlsZGVyc190b19mYWxsYmFja19w
YXRocy5rZXlzKCkKKwogICAgIGRlZiByZWJhc2VsaW5lYWxsKHNlbGYpOgotICAgICAgICAjIEZJ
WE1FOiBPcHRpbWl6ZSB0aGlzIHRvIGRlLWR1cCBib3QgcmVzdWx0cywgcnVuIGluIHBhcmFsbGVs
LCBjYWNoZSB6aXBzLCBldGMuCisgICAgICAgICMgRklYTUU6IE9wdGltaXplIHRoaXMgdG8gcnVu
IGluIHBhcmFsbGVsLCBjYWNoZSB6aXBzLCBldGMuCiAgICAgICAgIHRlc3RfbGlzdCA9IHNlbGYu
X3JlYWRfZW50aXR5X2JvZHlfYXNfanNvbigpCiAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RfbGlz
dDoKICAgICAgICAgICAgIGFsbF9zdWZmaXhlcyA9IHNldCgpCi0gICAgICAgICAgICBmb3IgYnVp
bGRlciwgc3VmZml4ZXMgaW4gdGVzdF9saXN0W3Rlc3RdLml0ZXJpdGVtcygpOgotICAgICAgICAg
ICAgICAgIGFsbF9zdWZmaXhlcy51cGRhdGUoc2V0KHN1ZmZpeGVzKSkKKyAgICAgICAgICAgIGJ1
aWxkZXJzID0gc2VsZi5fYnVpbGRlcnNfdG9fZmV0Y2hfZnJvbSh0ZXN0X2xpc3RbdGVzdF0pCisg
ICAgICAgICAgICBmb3IgYnVpbGRlciBpbiBidWlsZGVyczoKKyAgICAgICAgICAgICAgICBzdWZm
aXhlcyA9IHRlc3RfbGlzdFt0ZXN0XVtidWlsZGVyXQorICAgICAgICAgICAgICAgIGFsbF9zdWZm
aXhlcy51cGRhdGUoc3VmZml4ZXMpCiAgICAgICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9w
YXRjaChbJ3JlYmFzZWxpbmUtdGVzdCcsICctLXN1ZmZpeGVzJywgJywnLmpvaW4oc3VmZml4ZXMp
LCBidWlsZGVyLCB0ZXN0XSkKICAgICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfcGF0Y2goWydv
cHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycsICcsJy5qb2luKGFsbF9zdWZmaXhlcyks
IHRlc3RdKQogICAgICAgICBzZWxmLl9zZXJ2ZV90ZXh0KCdzdWNjZXNzJykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3Nl
cnZlcl91bml0dGVzdC5weQppbmRleCAwZDQ2NmQyNDY3ZWYzNjI0ZTI4MDZjZDFmYjliMzliNjM5
YjZiNWM2Li5lMTc5OGY2NWViYjI2NTA0ZWQ3ZjZiZWY2NzYzYTcxMTkzMjZhMWVkIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2Fy
ZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5CkBAIC0xODIsMTMgKzE4MiwyMCBAQCBjbGFzcyBHYXJk
ZW5pbmdTZXJ2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fcG9zdF90
b19wYXRoKCIvcm9sbG91dD9yZXZpc2lvbj0yMzE0JnJlYXNvbj1NT0NLK3JvbGxvdXQrcmVhc29u
IiwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVj
dGVkX3N0ZG91dCkKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVhbGwoc2VsZik6Ci0gICAgICAg
IGJ1aWxkZXJzLl9leGFjdF9tYXRjaGVzID0geyJNT0NLIGJ1aWxkZXIiOiB7InBvcnRfbmFtZSI6
ICJtb2NrLXBvcnQtbmFtZSIsICJzcGVjaWZpZXJzIjogc2V0KFsibW9jay1zcGVjaWZpZXIiXSl9
fQotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywg
J3JlYmFzZWxpbmUtdGVzdCcsICctLXN1ZmZpeGVzJywgdSd0eHQscG5nJywgdSdNT0NLIGJ1aWxk
ZXInLCB1J3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tv
dXRcbk1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1z
dWZmaXhlcycsIHUndHh0LHBuZycsIHUndXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ10s
IGN3ZD0vbW9jay1jaGVja291dFxuIgorICAgICAgICBidWlsZGVycy5fZXhhY3RfbWF0Y2hlcyA9
IHsKKyAgICAgICAgICAgICJNT0NLIGJ1aWxkZXIiOiB7InBvcnRfbmFtZSI6ICJ0ZXN0LW1hYy1s
ZW9wYXJkIiwgInNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKX0sCisgICAgICAg
ICAgICAiTU9DSyBidWlsZGVyIChEZWJ1ZykiOiB7InBvcnRfbmFtZSI6ICJ0ZXN0LW1hYy1sZW9w
YXJkIiwgInNwZWNpZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciIsICJkZWJ1ZyJdKX0sCisg
ICAgICAgIH0KKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsn
ZWNobycsICdyZWJhc2VsaW5lLXRlc3QnLCAnLS1zdWZmaXhlcycsIHUnJXMnLCB1JyVzJywgdSd1
c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG5NT0NL
IHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAnb3B0aW1pemUtYmFzZWxpbmVzJywgJy0tc3VmZml4ZXMn
LCB1JyVzJywgdSd1c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0XG4iCiAgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICI9PSBCZWdpbiBSZXNwb25zZSA9
PVxuc3VjY2Vzc1xuPT0gRW5kIFJlc3BvbnNlID09XG4iCi0gICAgICAgIHNlbGYuX3Bvc3RfdG9f
cGF0aCgiL3JlYmFzZWxpbmVhbGwiLCBib2R5PSd7InVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3Qu
aHRtbCI6eyJNT0NLIGJ1aWxkZXIiOiBbInR4dCIsInBuZyJdfX0nLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQorICAgICAg
ICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yZWJhc2VsaW5lYWxsIiwgYm9keT0neyJ1c2VyLXNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwiOnsiTU9DSyBidWlsZGVyIjogWyJ0eHQiLCJwbmciXX19Jywg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciAlICgndHh0LHBuZycsICdNT0NLIGJ1aWxk
ZXInLCAndHh0LHBuZycpLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQorCisgICAg
ICAgIHNlbGYuX3Bvc3RfdG9fcGF0aCgiL3JlYmFzZWxpbmVhbGwiLCBib2R5PSd7InVzZXItc2Ny
aXB0cy9hbm90aGVyLXRlc3QuaHRtbCI6eyJNT0NLIGJ1aWxkZXIgKERlYnVnKSI6IFsidHh0Iiwi
cG5nIl19fScsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIgJSAoJ3R4dCxwbmcnLCAn
TU9DSyBidWlsZGVyIChEZWJ1ZyknLCAndHh0LHBuZycpLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0
ZWRfc3Rkb3V0KQorCisgICAgICAgIHNlbGYuX3Bvc3RfdG9fcGF0aCgiL3JlYmFzZWxpbmVhbGwi
LCBib2R5PSd7InVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCI6eyJNT0NLIGJ1aWxkZXIg
KERlYnVnKSI6IFsidHh0IiwicG5nIl0sICJNT0NLIGJ1aWxkZXIiOiBbInR4dCJdfX0nLCBleHBl
Y3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyICUgKCd0eHQnLCAnTU9DSyBidWlsZGVyJywgJ3R4
dCcpLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAgZGVmIHRlc3RfcmVi
YXNlbGluZV9uZXdfcG9ydChzZWxmKToKLSAgICAgICAgYnVpbGRlcnMuX2V4YWN0X21hdGNoZXMg
PSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogIm1vY2stcG9ydC1uYW1lIiwgInNwZWNp
ZmllcnMiOiBzZXQoWyJtb2NrLXNwZWNpZmllciJdKSwgIm1vdmVfb3ZlcndyaXR0ZW5fYmFzZWxp
bmVzX3RvIjogWyJtb2NrLXBvcnQtZmFsbGJhY2siLCAibW9jay1wb3J0LWZhbGxiYWNrMiJdfX0K
KyAgICAgICAgYnVpbGRlcnMuX2V4YWN0X21hdGNoZXMgPSB7Ik1PQ0sgYnVpbGRlciI6IHsicG9y
dF9uYW1lIjogInRlc3QtbWFjLWxlb3BhcmQiLCAic3BlY2lmaWVycyI6IHNldChbIm1vY2stc3Bl
Y2lmaWVyIl0pLCAibW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8iOiBbIm1vY2stcG9ydC1m
YWxsYmFjayIsICJtb2NrLXBvcnQtZmFsbGJhY2syIl19fQogICAgICAgICBleHBlY3RlZF9zdGRl
cnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVzdCcsICctLXN1
ZmZpeGVzJywgJ3R4dCxwbmcnLCAnTU9DSyBidWlsZGVyJywgJ3VzZXItc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCcsICdtb2NrLXBvcnQtZmFsbGJhY2snLCAnbW9jay1wb3J0LWZhbGxiYWNrMidd
LCBjd2Q9L21vY2stY2hlY2tvdXRcbiIKICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIj09IEJl
Z2luIFJlc3BvbnNlID09XG5zdWNjZXNzXG49PSBFbmQgUmVzcG9uc2UgPT1cbiIKICAgICAgICAg
c2VsZi5fcG9zdF90b19wYXRoKCIvcmViYXNlbGluZT9idWlsZGVyPU1PQ0srYnVpbGRlciZ0ZXN0
PXVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCZzdWZmaXhlcz10eHQscG5nIiwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91
dCkK
</data>
<flag name="review"
          id="150601"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>