<?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>114235</bug_id>
          
          <creation_ts>2013-04-08 20:39:56 -0700</creation_ts>
          <short_desc>JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly</short_desc>
          <delta_ts>2013-04-10 22:06:37 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>sanford-webkit-bugzilla</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>871406</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 20:39:56 -0700</bug_when>
    <thetext>Due to the way that numCacheableSlots is currently calculated, static properties on the prototype cause us not to cache any properties at all. We should cache as many properties as possible in the prototype chain until we encounter an object with static properties. This fix will undo a ~2% SunSpider regression caused by http://trac.webkit.org/changeset/147570.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871407</commentid>
    <comment_count>1</comment_count>
      <attachid>196986</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 20:42:33 -0700</bug_when>
    <thetext>Created attachment 196986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871408</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 20:43:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/13603937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871411</commentid>
    <comment_count>3</comment_count>
      <attachid>196989</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 20:47:03 -0700</bug_when>
    <thetext>Created attachment 196989
Benchmark results

~2% progression, ~41% progression on string-fasta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871414</commentid>
    <comment_count>4</comment_count>
      <attachid>196986</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-08 21:04:30 -0700</bug_when>
    <thetext>Comment on attachment 196986
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1539
&gt; +    size_t preStaticPropertyCacheableSlotsCount = propertyNames.numCacheableSlots();
&gt;      getClassPropertyNames(exec, object-&gt;classInfo(), propertyNames, mode, object-&gt;staticFunctionsReified());
&gt; -    size_t preStructurePropertyNamesCount = propertyNames.size();
&gt; +    size_t preStructurePropertyNamesCount = propertyNames.size() - preStaticPropertyCacheableSlotsCount;
&gt;      object-&gt;structure()-&gt;getPropertyNamesFromStructure(exec-&gt;globalData(), propertyNames, mode);
&gt; -    size_t numCacheableSlots = preStructurePropertyNamesCount ? 0 : propertyNames.size();
&gt; +    size_t numCacheableSlots = preStructurePropertyNamesCount ? preStaticPropertyCacheableSlotsCount : propertyNames.size();
&gt;      propertyNames.setNumCacheableSlots(numCacheableSlots);

I buy this but I find it hard to follow.  I don&apos;t have suggestions for how to clean this logic up, and have no objection to you landing it as-is.  But if you could find somewhat of simplifying these conditionals and this arithmetic, it would be super coool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871416</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 21:14:08 -0700</bug_when>
    <thetext>&gt; I buy this but I find it hard to follow.  I don&apos;t have suggestions for how to clean this logic up, and have no objection to you landing it as-is.  But if you could find somewhat of simplifying these conditionals and this arithmetic, it would be super coool.

Yeah, I thought it might be a little convoluted. I&apos;ll work on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871417</commentid>
    <comment_count>6</comment_count>
      <attachid>196986</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-08 21:14:47 -0700</bug_when>
    <thetext>Comment on attachment 196986
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Due to the way that numCacheableSlots is currently calculated, static properties on the prototype cause us not 

You must be talking about static *enumerable* properties, right? Under what conditions is this a problem?

For example, all properties on the object prototype are not enumerable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871435</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 21:52:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 196986 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=196986&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        Due to the way that numCacheableSlots is currently calculated, static properties on the prototype cause us not 
&gt; 
&gt; You must be talking about static *enumerable* properties, right? Under what conditions is this a problem?
&gt; 
&gt; For example, all properties on the object prototype are not enumerable.

Actually, my statement is wrong. It was the fact that we were trying to enumerate properties on the prototype *at all* that was causing us to incorrectly reset numCacheableSlots to 0. Calling getOwnNonIndexPropertyNames on an object would correctly set numCacheableSlots, and then when it was also called on the object&apos;s prototype, we would see that we already had a non-empty list of property names and incorrectly reset numCacheableProperties to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871440</commentid>
    <comment_count>8</comment_count>
      <attachid>196995</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 22:01:27 -0700</bug_when>
    <thetext>Created attachment 196995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871442</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-08 22:02:38 -0700</bug_when>
    <thetext>Here&apos;s a cleaned up version that explains what&apos;s going on a little better. I double-checked performance and verified that this change doesn&apos;t break the test I added in the original patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871496</commentid>
    <comment_count>10</comment_count>
      <attachid>196995</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-08 23:50:51 -0700</bug_when>
    <thetext>Comment on attachment 196995
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1537
&gt; +    size_t numCacheableSlotsBeforeStaticProperties = propertyNames.numCacheableSlots();
&gt;      getClassPropertyNames(exec, object-&gt;classInfo(), propertyNames, mode, object-&gt;staticFunctionsReified());
&gt; -    size_t preStructurePropertyNamesCount = propertyNames.size();
&gt; +
&gt; +    bool canCachePropertiesFromStructure = propertyNames.size() == numCacheableSlotsBeforeStaticProperties;

I think it would be simpler, and slightly more correct, just to test !propertyNames.size() at this point. The assumption behind cacheable slots is that they start indexing from zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872014</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-09 12:14:51 -0700</bug_when>
    <thetext>Committed r148036: &lt;http://trac.webkit.org/changeset/148036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872802</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 08:33:23 -0700</bug_when>
    <thetext>Reopening for a follow up fix. If the object doesn&apos;t have any properties but the prototype does, we&apos;ll assume those prototype properties are accessible in the base object&apos;s backing store, which is bad. (&lt;rdar://problem/13613932&gt;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873088</commentid>
    <comment_count>13</comment_count>
      <attachid>197357</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 12:25:33 -0700</bug_when>
    <thetext>Created attachment 197357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873097</commentid>
    <comment_count>14</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 12:27:46 -0700</bug_when>
    <thetext>I&apos;ve been unable to reproduce this with a reduced test case, although the site on which the bug manifests (chase.com) no longer crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873185</commentid>
    <comment_count>15</comment_count>
      <attachid>197393</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 13:16:33 -0700</bug_when>
    <thetext>Created attachment 197393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873242</commentid>
    <comment_count>16</comment_count>
      <attachid>197405</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 14:22:35 -0700</bug_when>
    <thetext>Created attachment 197405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873266</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-10 15:24:11 -0700</bug_when>
    <thetext>Committed r148142: &lt;http://trac.webkit.org/changeset/148142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873546</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-04-10 22:06:37 -0700</bug_when>
    <thetext>*** Bug 114360 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196986</attachid>
            <date>2013-04-08 20:42:33 -0700</date>
            <delta_ts>2013-04-08 22:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114235-20130408204216.patch</filename>
            <type>text/plain</type>
            <size>2232</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3OTc5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEzLTA0LTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgY2FsY3VsYXRlcyBudW1DYWNoZWFibGVTbG90cyBp
bmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE0MjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRHVlIHRvIHRoZSB3YXkgdGhhdCBudW1DYWNoZWFibGVTbG90cyBpcyBjdXJyZW50bHkgY2Fs
Y3VsYXRlZCwgc3RhdGljIHByb3BlcnRpZXMgb24gdGhlIHByb3RvdHlwZSBjYXVzZSB1cyBub3Qg
CisgICAgICAgIHRvIGNhY2hlIGFueSBwcm9wZXJ0aWVzIGF0IGFsbC4gV2Ugc2hvdWxkIGNhY2hl
IGFzIG1hbnkgcHJvcGVydGllcyBhcyBwb3NzaWJsZSBpbiB0aGUgcHJvdG90eXBlIGNoYWluIHVu
dGlsIHdlIAorICAgICAgICBlbmNvdW50ZXIgYW4gb2JqZWN0IHdpdGggc3RhdGljIHByb3BlcnRp
ZXMuIFRoaXMgZml4IHdpbGwgdW5kbyBhIH4yJSBTdW5TcGlkZXIgcmVncmVzc2lvbiBjYXVzZWQg
YnkgCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0NzU3MC4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKToKKwogMjAxMy0wNC0wOCAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEhUTUwgTm90aWZp
Y2F0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNDc5NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzEsMTAgKzE1MzEsMTEgQEAgdm9pZCBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iagogCiB2b2lkIEpTT2JqZWN0OjpnZXRPd25O
b25JbmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
CisgICAgc2l6ZV90IHByZVN0YXRpY1Byb3BlcnR5Q2FjaGVhYmxlU2xvdHNDb3VudCA9IHByb3Bl
cnR5TmFtZXMubnVtQ2FjaGVhYmxlU2xvdHMoKTsKICAgICBnZXRDbGFzc1Byb3BlcnR5TmFtZXMo
ZXhlYywgb2JqZWN0LT5jbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lcywgbW9kZSwgb2JqZWN0LT5z
dGF0aWNGdW5jdGlvbnNSZWlmaWVkKCkpOwotICAgIHNpemVfdCBwcmVTdHJ1Y3R1cmVQcm9wZXJ0
eU5hbWVzQ291bnQgPSBwcm9wZXJ0eU5hbWVzLnNpemUoKTsKKyAgICBzaXplX3QgcHJlU3RydWN0
dXJlUHJvcGVydHlOYW1lc0NvdW50ID0gcHJvcGVydHlOYW1lcy5zaXplKCkgLSBwcmVTdGF0aWNQ
cm9wZXJ0eUNhY2hlYWJsZVNsb3RzQ291bnQ7CiAgICAgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+Z2V0
UHJvcGVydHlOYW1lc0Zyb21TdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKLSAgICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMgPSBwcmVTdHJ1Y3R1cmVQ
cm9wZXJ0eU5hbWVzQ291bnQgPyAwIDogcHJvcGVydHlOYW1lcy5zaXplKCk7CisgICAgc2l6ZV90
IG51bUNhY2hlYWJsZVNsb3RzID0gcHJlU3RydWN0dXJlUHJvcGVydHlOYW1lc0NvdW50ID8gcHJl
U3RhdGljUHJvcGVydHlDYWNoZWFibGVTbG90c0NvdW50IDogcHJvcGVydHlOYW1lcy5zaXplKCk7
CiAgICAgcHJvcGVydHlOYW1lcy5zZXROdW1DYWNoZWFibGVTbG90cyhudW1DYWNoZWFibGVTbG90
cyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>196989</attachid>
            <date>2013-04-08 20:47:03 -0700</date>
            <delta_ts>2013-04-08 20:47:03 -0700</delta_ts>
            <desc>Benchmark results</desc>
            <filename>ToT_Fix_SunSpider_Marks-MacBook-Air_20130408_2035_report.txt</filename>
            <type>text/plain</type>
            <size>3664</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyIG9uIE1hcmtzLU1hY0Jvb2stQWlyIChNYWNC
b29rQWlyNSwyKS4KClZNcyB0ZXN0ZWQ6CiJUb1QiIGF0IC9Vc2Vycy9taGFobmVuYmVyZy9Db2Rl
L1dlYktpdC1zdm4tMDIvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL2pzYyAocjE0Nzk3
OSkKIkZpeCIgYXQgL1VzZXJzL21oYWhuZW5iZXJnL0NvZGUvV2ViS2l0LXN2bi1jbGVhbi9PcGVu
U291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMTQ3OTc5KQoKQ29sbGVjdGVkIDY0IHNh
bXBsZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCA4IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1h
cmsuIEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkgYmV0d2VlbgpzYW1wbGUgbWVhc3VyZW1lbnRzLiBV
c2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4g
VXNlZCB0aGUganNjLXNwZWNpZmljCnByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jv
c2Vjb25kLWxldmVsIHRpbWluZy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24gdGltZXMg
d2l0aCA5NSUKY29uZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVCAgICAgICAgICAgICAgICAgICAgICAgRml4
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKM2QtY3ViZSAgICAgICAg
ICAgICAgICAgICAgICAgICA3LjI4NTYrLTAuMjI5NCAgICAgICAgICAgIDcuMDQ0NistMC4xNTc3
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0MnggZmFzdGVyCjNkLW1vcnBoICAgICAgICAgICAgICAg
ICAgICAgICAgNi42NjQ5Ky0wLjIwODUgICAgID8gICAgICA2Ljg1MTMrLTAuMzM4OCAgICAgICAg
PyBtaWdodCBiZSAxLjAyODB4IHNsb3dlcgozZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAg
IDguMzE3NystMC4xNTk1ICAgICAgICAgICAgOC4xNDI4Ky0wLjEyMzMgICAgICAgICAgbWlnaHQg
YmUgMS4wMjE1eCBmYXN0ZXIKYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAxLjU1OTIr
LTAuMDU5MiAgICAgPyAgICAgIDEuNTc1NistMC4wNTc3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEw
NXggc2xvd2VyCmFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAgICAgNS44OTUxKy0wLjA5NDMg
ICAgID8gICAgICA2LjA3OTIrLTAuMTM3NSAgICAgICAgPyBtaWdodCBiZSAxLjAzMTJ4IHNsb3dl
cgphY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgIDMuMzIyNistMC4wOTA4ICAgICA/ICAg
ICAgMy40NDYxKy0wLjEwNjUgICAgICAgID8gbWlnaHQgYmUgMS4wMzcyeCBzbG93ZXIKYWNjZXNz
LW5zaWV2ZSAgICAgICAgICAgICAgICAgICAzLjEzNTgrLTAuMDQ1MCAgICAgISAgICAgIDMuMzU1
NistMC4wODY5ICAgICAgICAhIGRlZmluaXRlbHkgMS4wNzAxeCBzbG93ZXIKYml0b3BzLTNiaXQt
Yml0cy1pbi1ieXRlICAgICAgICAxLjUyMDMrLTAuMDI4NyAgICAgPyAgICAgIDEuNTI5MSstMC4w
MzIzICAgICAgICA/CmJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgMi4wNzA1Ky0wLjA0
MjcgICAgICEgICAgICAyLjE2OTArLTAuMDU1NSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDQ3NXgg
c2xvd2VyCmJpdG9wcy1iaXR3aXNlLWFuZCAgICAgICAgICAgICAgMS45ODA0Ky0wLjAzMjkgICAg
ID8gICAgICAxLjk4NDArLTAuMDI0NyAgICAgICAgPwpiaXRvcHMtbnNpZXZlLWJpdHMgICAgICAg
ICAgICAgIDMuMTQwNSstMC4xMDA1ICAgICAgICAgICAgMy4wNzIwKy0wLjEwOTkgICAgICAgICAg
bWlnaHQgYmUgMS4wMjIzeCBmYXN0ZXIKY29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAy
LjEwNTQrLTAuMDY3MiAgICAgICAgICAgIDIuMDUyOSstMC4wNjg2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDI1NnggZmFzdGVyCmNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgNi40MDYyKy0w
LjIwNzAgICAgICAgICAgICA2LjM4MzYrLTAuMTQwMiAgICAgICAgCmNyeXB0by1tZDUgICAgICAg
ICAgICAgICAgICAgICAgMy4xNjk1Ky0wLjA2ODAgICAgICEgICAgICAzLjUxOTArLTAuMTc1OSAg
ICAgICAgISBkZWZpbml0ZWx5IDEuMTEwM3ggc2xvd2VyCmNyeXB0by1zaGExICAgICAgICAgICAg
ICAgICAgICAgMi43MTQ1Ky0wLjA5MTggICAgICAgICAgICAyLjU4MDkrLTAuMDczMSAgICAgICAg
ICBtaWdodCBiZSAxLjA1MTh4IGZhc3RlcgpkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAg
IDkuNzg5OSstMC4yNDIyICAgICA/ICAgICAgOS45NTk5Ky0wLjMxMjcgICAgICAgID8gbWlnaHQg
YmUgMS4wMTc0eCBzbG93ZXIKZGF0ZS1mb3JtYXQteHBhcmIgICAgICAgICAgICAgICA3Ljk5ODAr
LTAuMjMyNCAgICAgPyAgICAgIDguNDIyOCstMC40NDk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUz
MXggc2xvd2VyCm1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgMy4zNzY5Ky0wLjEzNjgg
ICAgICAgICAgICAzLjI1NjQrLTAuMDk3OSAgICAgICAgICBtaWdodCBiZSAxLjAzNzB4IGZhc3Rl
cgptYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgIDcuMzQ4NCstMC4xNzY2ICAgICAgICAg
ICAgNy4zNDQyKy0wLjE1OTcgICAgICAgIAptYXRoLXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAg
IDIuMjA2NSstMC4wNzEyICAgICAgICAgICAgMi4yMDEyKy0wLjA2MzkgICAgICAgIApyZWdleHAt
ZG5hICAgICAgICAgICAgICAgICAgICAgIDguMTI2MSstMC4xNDI5ICAgICAgICAgICAgOC4wMjMw
Ky0wLjA5MDkgICAgICAgICAgbWlnaHQgYmUgMS4wMTI4eCBmYXN0ZXIKc3RyaW5nLWJhc2U2NCAg
ICAgICAgICAgICAgICAgICAzLjc2NzMrLTAuMTA4MyAgICAgPyAgICAgIDMuODIzNistMC4xMzQ3
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MHggc2xvd2VyCnN0cmluZy1mYXN0YSAgICAgICAgICAg
ICAgICAgICAxMS4zNDUzKy0wLjIxNjkgICAgIF4gICAgICA4LjA1MTMrLTAuMjQ5NCAgICAgICAg
XiBkZWZpbml0ZWx5IDEuNDA5MXggZmFzdGVyCnN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAg
ICAxMC42Njg3Ky0wLjI4ODkgICAgICAgICAgIDEwLjU2ODIrLTAuNDEwMiAgICAgICAgCnN0cmlu
Zy11bnBhY2stY29kZSAgICAgICAgICAgICAyMC42OTM5Ky0wLjM1MDEgICAgICAgICAgIDIwLjQ4
NzArLTAuMzIzMiAgICAgICAgICBtaWdodCBiZSAxLjAxMDF4IGZhc3RlcgpzdHJpbmctdmFsaWRh
dGUtaW5wdXQgICAgICAgICAgIDUuNzM1MystMC4xNTkzICAgICAgICAgICAgNS41NTA2Ky0wLjE1
MDggICAgICAgICAgbWlnaHQgYmUgMS4wMzMzeCBmYXN0ZXIKCjxhcml0aG1ldGljPiAqICAgICAg
ICAgICAgICAgICAgNS43ODI1Ky0wLjAzNzIgICAgIF4gICAgICA1LjY3MjErLTAuMDM2OCAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDE5NXggZmFzdGVyCjxnZW9tZXRyaWM+ICAgICAgICAgICAgICAg
ICAgICAgNC41NzI1Ky0wLjAyMTYgICAgICAgICAgICA0LjUzMzgrLTAuMDI1NyAgICAgICAgICBt
aWdodCBiZSAxLjAwODV4IGZhc3Rlcgo8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgIDMu
NjY1OSstMC4wMTc1ICAgICA/ICAgICAgMy42Njg5Ky0wLjAyNDcgICAgICAgID8gbWlnaHQgYmUg
MS4wMDA4eCBzbG93ZXIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196995</attachid>
            <date>2013-04-08 22:01:27 -0700</date>
            <delta_ts>2013-04-10 12:25:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114235-20130408220110.patch</filename>
            <type>text/plain</type>
            <size>2318</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3OTgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEzLTA0LTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyBjYWxjdWxhdGVz
IG51bUNhY2hlYWJsZVNsb3RzIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEdWUgdG8gdGhlIHdheSB0aGF0IG51bUNhY2hlYWJsZVNs
b3RzIGlzIGN1cnJlbnRseSBjYWxjdWxhdGVkLCBjaGVja2luZyBhbiBvYmplY3QncyBwcm90b3R5
cGUgZm9yIGVudW1lcmFibGUgCisgICAgICAgIHByb3BlcnRpZXMgY2F1c2VzIHVzIG5vdCB0byBj
YWNoZSBhbnkgcHJvcGVydGllcyBhdCBhbGwuIFdlIHNob3VsZCBjYWNoZSBhcyBtYW55IHByb3Bl
cnRpZXMgYXMgcG9zc2libGUgaW4gdGhlIAorICAgICAgICBwcm90b3R5cGUgY2hhaW4gdW50aWwg
d2UgZW5jb3VudGVyIGFuIG9iamVjdCB3aXRoIHN0YXRpYyBwcm9wZXJ0aWVzLiBUaGlzIGZpeCB3
aWxsIHVuZG8gYSB+MiUgU3VuU3BpZGVyIAorICAgICAgICByZWdyZXNzaW9uIGNhdXNlZCBieSBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNDc1NzAuCisKKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93bk5vbkluZGV4
UHJvcGVydHlOYW1lcyk6CisKIDIwMTMtMDQtMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBIVE1MIE5vdGlmaWNhdGlvbgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMTQ3
OTc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTMxLDExICsxNTMxLDE0IEBAIHZvaWQgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmoKIAogdm9pZCBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogeworICAgIHNpemVfdCBu
dW1DYWNoZWFibGVTbG90c0JlZm9yZVN0YXRpY1Byb3BlcnRpZXMgPSBwcm9wZXJ0eU5hbWVzLm51
bUNhY2hlYWJsZVNsb3RzKCk7CiAgICAgZ2V0Q2xhc3NQcm9wZXJ0eU5hbWVzKGV4ZWMsIG9iamVj
dC0+Y2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZXMsIG1vZGUsIG9iamVjdC0+c3RhdGljRnVuY3Rp
b25zUmVpZmllZCgpKTsKLSAgICBzaXplX3QgcHJlU3RydWN0dXJlUHJvcGVydHlOYW1lc0NvdW50
ID0gcHJvcGVydHlOYW1lcy5zaXplKCk7CisKKyAgICBib29sIGNhbkNhY2hlUHJvcGVydGllc0Zy
b21TdHJ1Y3R1cmUgPSBwcm9wZXJ0eU5hbWVzLnNpemUoKSA9PSBudW1DYWNoZWFibGVTbG90c0Jl
Zm9yZVN0YXRpY1Byb3BlcnRpZXM7CiAgICAgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+Z2V0UHJvcGVy
dHlOYW1lc0Zyb21TdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKLSAgICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMgPSBwcmVTdHJ1Y3R1cmVQcm9wZXJ0
eU5hbWVzQ291bnQgPyAwIDogcHJvcGVydHlOYW1lcy5zaXplKCk7Ci0gICAgcHJvcGVydHlOYW1l
cy5zZXROdW1DYWNoZWFibGVTbG90cyhudW1DYWNoZWFibGVTbG90cyk7CisKKyAgICBpZiAoY2Fu
Q2FjaGVQcm9wZXJ0aWVzRnJvbVN0cnVjdHVyZSkKKyAgICAgICAgcHJvcGVydHlOYW1lcy5zZXRO
dW1DYWNoZWFibGVTbG90cyhwcm9wZXJ0eU5hbWVzLnNpemUoKSk7CiB9CiAKIGRvdWJsZSBKU09i
amVjdDo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197357</attachid>
            <date>2013-04-10 12:25:33 -0700</date>
            <delta_ts>2013-04-10 13:16:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114235-20130410122514.patch</filename>
            <type>text/plain</type>
            <size>3591</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTA0LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyBjYWxjdWxhdGVz
IG51bUNhY2hlYWJsZVNsb3RzIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgaGF2ZSBhbnkgcHJv
cGVydGllcyBidXQgdGhlIHByb3RvdHlwZSBkb2VzLCB3ZSdsbCBhc3N1bWUgdGhvc2UgcHJvdG90
eXBlIHByb3BlcnRpZXMgYXJlIAorICAgICAgICBhY2Nlc3NpYmxlIGluIHRoZSBiYXNlIG9iamVj
dCdzIGJhY2tpbmcgc3RvcmUsIHdoaWNoIGlzIGJhZC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAg
IChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjpQcm9wZXJ0eU5hbWVBcnJheSk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjpzZXROdW1DYWNoZWFibGVTbG90cyk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjpoYXNTZXROdW1DYWNoZWFibGVTbG90cyk6CisgICAgICAg
IChQcm9wZXJ0eU5hbWVBcnJheSk6CisKIDIwMTMtMDQtMDggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgaGVhZGVycyBmcm9t
IEZyYW1lTG9hZGVyLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAJKHJldmlzaW9uIDE0ODA5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzNiw4ICsxNTM2LDE0IEBAIHZv
aWQgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW0KICAgICBib29sIGNhbkNhY2hl
UHJvcGVydGllc0Zyb21TdHJ1Y3R1cmUgPSAhcHJvcGVydHlOYW1lcy5zaXplKCk7CiAgICAgb2Jq
ZWN0LT5zdHJ1Y3R1cmUoKS0+Z2V0UHJvcGVydHlOYW1lc0Zyb21TdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIAotICAgIGlmIChjYW5DYWNoZVByb3Bl
cnRpZXNGcm9tU3RydWN0dXJlKQorICAgIGlmIChwcm9wZXJ0eU5hbWVzLmhhc1NldE51bUNhY2hl
YWJsZVNsb3RzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjYW5DYWNoZVByb3BlcnRp
ZXNGcm9tU3RydWN0dXJlKSB7CiAgICAgICAgIHByb3BlcnR5TmFtZXMuc2V0TnVtQ2FjaGVhYmxl
U2xvdHMocHJvcGVydHlOYW1lcy5zaXplKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IHByb3BlcnR5TmFtZXMuc2V0TnVtQ2FjaGVhYmxlU2xvdHMoMCk7CiB9CiAKIGRvdWJsZSBKU09i
amVjdDo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCShyZXZpc2lvbiAx
NDgwOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJh
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgOiBtX2RhdGEoUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpjcmVhdGUoKSkKICAgICAg
ICAgICAgICwgbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCiAgICAgICAgICAgICAsIG1fbnVtQ2Fj
aGVhYmxlU2xvdHMoMCkKKyAgICAgICAgICAgICwgbV9oYXNTZXROdW1DYWNoZWFibGVTbG90cyhm
YWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTYzLDYgKzY0LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICA6IG1fZGF0YShQcm9wZXJ0eU5hbWVBcnJheURhdGE6OmNyZWF0
ZSgpKQogICAgICAgICAgICAgLCBtX2dsb2JhbERhdGEoJmV4ZWMtPmdsb2JhbERhdGEoKSkKICAg
ICAgICAgICAgICwgbV9udW1DYWNoZWFibGVTbG90cygwKQorICAgICAgICAgICAgLCBtX2hhc1Nl
dE51bUNhY2hlYWJsZVNsb3RzKGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtODYs
NyArODgsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCkuZW5kKCk7IH0KIAog
ICAgICAgICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMoKSBjb25zdCB7IHJldHVybiBtX251bUNh
Y2hlYWJsZVNsb3RzOyB9Ci0gICAgICAgIHZvaWQgc2V0TnVtQ2FjaGVhYmxlU2xvdHMoc2l6ZV90
IG51bUNhY2hlYWJsZVNsb3RzKSB7IG1fbnVtQ2FjaGVhYmxlU2xvdHMgPSBudW1DYWNoZWFibGVT
bG90czsgfQorICAgICAgICB2b2lkIHNldE51bUNhY2hlYWJsZVNsb3RzKHNpemVfdCBudW1DYWNo
ZWFibGVTbG90cykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFtX2hhc1NldE51bUNh
Y2hlYWJsZVNsb3RzKTsKKyAgICAgICAgICAgIG1fbnVtQ2FjaGVhYmxlU2xvdHMgPSBudW1DYWNo
ZWFibGVTbG90czsKKyAgICAgICAgICAgIG1faGFzU2V0TnVtQ2FjaGVhYmxlU2xvdHMgPSB0cnVl
OworICAgICAgICB9CisgICAgICAgIGJvb2wgaGFzU2V0TnVtQ2FjaGVhYmxlU2xvdHMoKSBjb25z
dCB7IHJldHVybiBtX2hhc1NldE51bUNhY2hlYWJsZVNsb3RzOyB9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nSW1wbCosIFB0ckhhc2g8U3RyaW5nSW1wbCo+
ID4gSWRlbnRpZmllclNldDsKQEAgLTk1LDYgKzEwMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBJZGVudGlmaWVyU2V0IG1fc2V0OwogICAgICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFs
RGF0YTsKICAgICAgICAgc2l6ZV90IG1fbnVtQ2FjaGVhYmxlU2xvdHM7CisgICAgICAgIGJvb2wg
bV9oYXNTZXROdW1DYWNoZWFibGVTbG90czsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197393</attachid>
            <date>2013-04-10 13:16:33 -0700</date>
            <delta_ts>2013-04-10 14:22:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114235-20130410131614.patch</filename>
            <type>text/plain</type>
            <size>7346</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MTMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTA0LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyBjYWxjdWxhdGVz
IG51bUNhY2hlYWJsZVNsb3RzIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgaGF2ZSBhbnkgcHJv
cGVydGllcyBidXQgdGhlIHByb3RvdHlwZSBkb2VzLCB3ZSdsbCBhc3N1bWUgdGhvc2UgcHJvdG90
eXBlIHByb3BlcnRpZXMgYXJlIAorICAgICAgICBhY2Nlc3NpYmxlIGluIHRoZSBiYXNlIG9iamVj
dCdzIGJhY2tpbmcgc3RvcmUsIHdoaWNoIGlzIGJhZC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAg
IChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjpQcm9wZXJ0eU5hbWVBcnJheSk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjpzZXROdW1DYWNoZWFibGVTbG90cyk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjpoYXNTZXROdW1DYWNoZWFibGVTbG90cyk6CisgICAgICAg
IChQcm9wZXJ0eU5hbWVBcnJheSk6CisKIDIwMTMtMDQtMTAgIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgREZHOiBOZWdhdGl2ZSBzaXplIGZvciBuZXcgQXJy
YXkoKSBpbnRlcnByZXRlZCBhcyBsYXJnZSB1bnNpZ25lZCBpbnQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDE0ODA5NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTUzNiw4ICsxNTM2LDE0IEBAIHZvaWQgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVy
dHlOYW0KICAgICBib29sIGNhbkNhY2hlUHJvcGVydGllc0Zyb21TdHJ1Y3R1cmUgPSAhcHJvcGVy
dHlOYW1lcy5zaXplKCk7CiAgICAgb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+Z2V0UHJvcGVydHlOYW1l
c0Zyb21TdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
IAotICAgIGlmIChjYW5DYWNoZVByb3BlcnRpZXNGcm9tU3RydWN0dXJlKQorICAgIGlmIChwcm9w
ZXJ0eU5hbWVzLmhhc1NldE51bUNhY2hlYWJsZVNsb3RzKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChjYW5DYWNoZVByb3BlcnRpZXNGcm9tU3RydWN0dXJlKSB7CiAgICAgICAgIHByb3Bl
cnR5TmFtZXMuc2V0TnVtQ2FjaGVhYmxlU2xvdHMocHJvcGVydHlOYW1lcy5zaXplKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHByb3BlcnR5TmFtZXMuc2V0TnVtQ2FjaGVhYmxlU2xv
dHMoMCk7CiB9CiAKIGRvdWJsZSBKU09iamVjdDo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBj
b25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJy
YXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU5hbWVBcnJheS5oCShyZXZpc2lvbiAxNDgwOTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgOiBtX2RhdGEoUHJvcGVydHlOYW1lQXJy
YXlEYXRhOjpjcmVhdGUoKSkKICAgICAgICAgICAgICwgbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEp
CiAgICAgICAgICAgICAsIG1fbnVtQ2FjaGVhYmxlU2xvdHMoMCkKKyAgICAgICAgICAgICwgbV9o
YXNTZXROdW1DYWNoZWFibGVTbG90cyhmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAKQEAg
LTYzLDYgKzY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICA6IG1fZGF0YShQcm9w
ZXJ0eU5hbWVBcnJheURhdGE6OmNyZWF0ZSgpKQogICAgICAgICAgICAgLCBtX2dsb2JhbERhdGEo
JmV4ZWMtPmdsb2JhbERhdGEoKSkKICAgICAgICAgICAgICwgbV9udW1DYWNoZWFibGVTbG90cygw
KQorICAgICAgICAgICAgLCBtX2hhc1NldE51bUNhY2hlYWJsZVNsb3RzKGZhbHNlKQogICAgICAg
ICB7CiAgICAgICAgIH0KIApAQCAtODYsNyArODgsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+cHJvcGVydHlO
YW1lVmVjdG9yKCkuZW5kKCk7IH0KIAogICAgICAgICBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdHMo
KSBjb25zdCB7IHJldHVybiBtX251bUNhY2hlYWJsZVNsb3RzOyB9Ci0gICAgICAgIHZvaWQgc2V0
TnVtQ2FjaGVhYmxlU2xvdHMoc2l6ZV90IG51bUNhY2hlYWJsZVNsb3RzKSB7IG1fbnVtQ2FjaGVh
YmxlU2xvdHMgPSBudW1DYWNoZWFibGVTbG90czsgfQorICAgICAgICB2b2lkIHNldE51bUNhY2hl
YWJsZVNsb3RzKHNpemVfdCBudW1DYWNoZWFibGVTbG90cykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKCFtX2hhc1NldE51bUNhY2hlYWJsZVNsb3RzKTsKKyAgICAgICAgICAgIG1fbnVt
Q2FjaGVhYmxlU2xvdHMgPSBudW1DYWNoZWFibGVTbG90czsKKyAgICAgICAgICAgIG1faGFzU2V0
TnVtQ2FjaGVhYmxlU2xvdHMgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGJvb2wgaGFzU2V0
TnVtQ2FjaGVhYmxlU2xvdHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NldE51bUNhY2hlYWJsZVNs
b3RzOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nSW1w
bCosIFB0ckhhc2g8U3RyaW5nSW1wbCo+ID4gSWRlbnRpZmllclNldDsKQEAgLTk1LDYgKzEwMyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJZGVudGlmaWVyU2V0IG1fc2V0OwogICAgICAg
ICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFsRGF0YTsKICAgICAgICAgc2l6ZV90IG1fbnVtQ2FjaGVh
YmxlU2xvdHM7CisgICAgICAgIGJvb2wgbV9oYXNTZXROdW1DYWNoZWFibGVTbG90czsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODEzMikKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEz
LTA0LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyBjYWxjdWxhdGVzIG51bUNh
Y2hlYWJsZVNsb3RzIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTQyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgaGF2ZSBhbnkgcHJvcGVydGll
cyBidXQgdGhlIHByb3RvdHlwZSBkb2VzLCB3ZSdsbCBhc3N1bWUgdGhvc2UgcHJvdG90eXBlIHBy
b3BlcnRpZXMgYXJlIAorICAgICAgICBhY2Nlc3NpYmxlIGluIHRoZSBiYXNlIG9iamVjdCdzIGJh
Y2tpbmcgc3RvcmUsIHdoaWNoIGlzIGJhZC4KKworICAgICAgICAqIGZhc3QvanMvZ2V0LWJ5LXBu
YW1lLW9ubHktcHJvdG90eXBlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2pzL2dldC1ieS1wbmFtZS1vbmx5LXByb3RvdHlwZS1wcm9wZXJ0aWVzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2dldC1ieS1wbmFtZS1vbmx5
LXByb3RvdHlwZS1wcm9wZXJ0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTMt
MDQtMTAgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBDbGlja2luZyBvbiB0aGUgdm9sdW1lIHNsaWRlciBvZiBIVE1MNSBlbGVtZW50cyBp
cyBwYXVzaW5nIHNvbWV0aW1lcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9nZXQtYnktcG5h
bWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGll
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2dldC1i
eS1wbmFtZS1vbmx5LXByb3RvdHlwZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdHMgdGhhdCBnZXRfYnlfcG5hbWUgZG9lc24n
dCBpbmNvcnJlY3RseSB0aGluayB0aGF0IGFuIGVtcHR5IG9iamVjdCBjYW4gY2FjaGUgaXRzIHBy
b3RvdHlwZSdzIHByb3BlcnRpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGll
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZ2V0LWJ5LXBuYW1lLW9u
bHktcHJvdG90eXBlLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvanMvZ2V0LWJ5LXBuYW1lLW9ubHktcHJvdG90eXBlLXByb3BlcnRpZXMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktcG5hbWUtb25s
eS1wcm90b3R5cGUtcHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5
cGUtcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dldC1ieS1wbmFtZS1v
bmx5LXByb3RvdHlwZS1wcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQg
QEAKK2Rlc2NyaXB0aW9uKAorIlRoaXMgdGVzdHMgdGhhdCBnZXRfYnlfcG5hbWUgZG9lc24ndCBp
bmNvcnJlY3RseSB0aGluayB0aGF0IGFuIGVtcHR5IG9iamVjdCBjYW4gY2FjaGUgaXRzIHByb3Rv
dHlwZSdzIHByb3BlcnRpZXMuIgorKTsKKwordmFyIGZvbyA9IGZ1bmN0aW9uIChDLCBBKSB7Cisg
ICAgZm9yKHZhciBCIGluIChBfHx7fSkpIHsKKyAgICAgICAgQ1tCXT1BW0JdOworICAgIH0KKyAg
ICByZXR1cm4gQzsKK30KKwordmFyIHByb3RvcyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCAy
NTY7IGkrKykgeworICAgIHZhciBwcm90byA9IE9iamVjdC5jcmVhdGUobnVsbCk7CisgICAgcHJv
dG9zLnB1c2gocHJvdG8pOworICAgIHByb3RvLmFhID0gMTsKKyAgICBwcm90by5hYiA9IDE7Cisg
ICAgcHJvdG8uYWMgPSAxOworICAgIHByb3RvLmFkID0gMTsKKyAgICBwcm90by5hZSA9IDE7Cisg
ICAgcHJvdG8uYWYgPSAxOworICAgIHByb3RvLmFnID0gMTsKKyAgICBwcm90by5haCA9IDE7Cisg
ICAgcHJvdG8uYWkgPSAxOworICAgIHByb3RvLmFqID0gMTsKKyAgICBwcm90by5hayA9IDE7Cisg
ICAgcHJvdG8uYWwgPSAxOworICAgIHByb3RvLmFtID0gMTsKKyAgICBwcm90by5hbiA9IDE7Cisg
ICAgcHJvdG8uYW8gPSAxOworICAgIHByb3RvLmFwID0gMTsKKyAgICBwcm90by5hcSA9IDE7Cisg
ICAgcHJvdG8uYXIgPSAxOworICAgIHByb3RvLmFzID0gMTsKKyAgICBwcm90by5hdCA9IDE7Cisg
ICAgcHJvdG8uYXUgPSAxOworICAgIHByb3RvLmF2ID0gMTsKKyAgICBwcm90by5hdyA9IDE7Cisg
ICAgcHJvdG8uYXggPSAxOworICAgIHByb3RvLmF5ID0gMTsKKyAgICBwcm90by5heiA9IDE7Cisg
ICAgcHJvdG8uYmEgPSAxOworICAgIHByb3RvLmJiID0gMTsKKyAgICBwcm90by5iYyA9IDE7Cisg
ICAgcHJvdG8uYmQgPSAxOworICAgIHByb3RvLmJlID0gMTsKKyAgICBwcm90by5iZiA9IDE7Cisg
ICAgdmFyIHdlaXJkT2JqZWN0ID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyh7fSwgd2VpcmRPYmplY3QpOworICAgIGZvciAodmFyIHAgaW4gcmVzdWx0KSB7Cisg
ICAgICAgIGlmIChyZXN1bHRbcF0gIT09IHJlc3VsdFsiIiArIHBdKQorICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdFtwXSIsICJyZXN1bHRbXCJcIiArIHBdIik7CisgICAgfQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197405</attachid>
            <date>2013-04-10 14:22:35 -0700</date>
            <delta_ts>2013-04-10 15:07:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114235-20130410142216.patch</filename>
            <type>text/plain</type>
            <size>7613</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MTM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEzLTA0LTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyBjYWxjdWxhdGVz
IG51bUNhY2hlYWJsZVNsb3RzIGluY29ycmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQyMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgaGF2ZSBhbnkgcHJv
cGVydGllcyBidXQgdGhlIHByb3RvdHlwZSBkb2VzLCB3ZSdsbCBhc3N1bWUgdGhvc2UgcHJvdG90
eXBlIHByb3BlcnRpZXMgYXJlIAorICAgICAgICBhY2Nlc3NpYmxlIGluIHRoZSBiYXNlIG9iamVj
dCdzIGJhY2tpbmcgc3RvcmUsIHdoaWNoIGlzIGJhZC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyk6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXk6OlByb3BlcnR5TmFtZUFycmF5KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlO
YW1lQXJyYXk6OnNldE51bUNhY2hlYWJsZVNsb3RzRm9yT2JqZWN0KToKKyAgICAgICAgKEpTQzo6
UHJvcGVydHlOYW1lQXJyYXk6OnNldEJhc2VPYmplY3QpOgorICAgICAgICAoUHJvcGVydHlOYW1l
QXJyYXkpOgorCiAyMDEzLTA0LTEwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSBjb2RlIGR1cGxpY2F0ZXMgZnJvbSBNYWNyb0Fzc2VtYmxl
ckFSTQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAko
cmV2aXNpb24gMTQ4MDk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQyLDYgKzE0NDIsNyBAQCBib29sIEpTT2JqZWN0
OjpnZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoCiAKIHZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5
TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CisgICAgcHJvcGVydHlO
YW1lcy5zZXRCYXNlT2JqZWN0KG9iamVjdCk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5n
ZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiAK
ICAgICBpZiAob2JqZWN0LT5wcm90b3R5cGUoKS5pc051bGwoKSkKQEAgLTE1MzcsNyArMTUzOCw3
IEBAIHZvaWQgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW0KICAgICBvYmplY3Qt
PnN0cnVjdHVyZSgpLT5nZXRQcm9wZXJ0eU5hbWVzRnJvbVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogCiAgICAgaWYgKGNhbkNhY2hlUHJvcGVydGll
c0Zyb21TdHJ1Y3R1cmUpCi0gICAgICAgIHByb3BlcnR5TmFtZXMuc2V0TnVtQ2FjaGVhYmxlU2xv
dHMocHJvcGVydHlOYW1lcy5zaXplKCkpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLnNldE51bUNh
Y2hlYWJsZVNsb3RzRm9yT2JqZWN0KG9iamVjdCwgcHJvcGVydHlOYW1lcy5zaXplKCkpOwogfQog
CiBkb3VibGUgSlNPYmplY3Q6OnRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXku
aAkocmV2aXNpb24gMTQ4MDk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlOYW1lQXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIDogbV9kYXRhKFByb3BlcnR5TmFtZUFycmF5RGF0YTo6Y3Jl
YXRlKCkpCiAgICAgICAgICAgICAsIG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQogICAgICAgICAg
ICAgLCBtX251bUNhY2hlYWJsZVNsb3RzKDApCisgICAgICAgICAgICAsIG1fYmFzZU9iamVjdCgw
KQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNjMsNiArNjQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIDogbV9kYXRhKFByb3BlcnR5TmFtZUFycmF5RGF0YTo6Y3JlYXRlKCkp
CiAgICAgICAgICAgICAsIG1fZ2xvYmFsRGF0YSgmZXhlYy0+Z2xvYmFsRGF0YSgpKQogICAgICAg
ICAgICAgLCBtX251bUNhY2hlYWJsZVNsb3RzKDApCisgICAgICAgICAgICAsIG1fYmFzZU9iamVj
dCgwKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtODYsNyArODgsMTggQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YS0+cHJvcGVydHlOYW1lVmVjdG9yKCkuZW5kKCk7IH0KIAogICAgICAgICBzaXplX3QgbnVtQ2Fj
aGVhYmxlU2xvdHMoKSBjb25zdCB7IHJldHVybiBtX251bUNhY2hlYWJsZVNsb3RzOyB9Ci0gICAg
ICAgIHZvaWQgc2V0TnVtQ2FjaGVhYmxlU2xvdHMoc2l6ZV90IG51bUNhY2hlYWJsZVNsb3RzKSB7
IG1fbnVtQ2FjaGVhYmxlU2xvdHMgPSBudW1DYWNoZWFibGVTbG90czsgfQorICAgICAgICB2b2lk
IHNldE51bUNhY2hlYWJsZVNsb3RzRm9yT2JqZWN0KEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBu
dW1DYWNoZWFibGVTbG90cykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG9iamVjdCAhPSBt
X2Jhc2VPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9udW1D
YWNoZWFibGVTbG90cyA9IG51bUNhY2hlYWJsZVNsb3RzOworICAgICAgICB9CisgICAgICAgIHZv
aWQgc2V0QmFzZU9iamVjdChKU09iamVjdCogb2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobV9iYXNlT2JqZWN0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IG1fYmFzZU9iamVjdCA9IG9iamVjdDsKKyAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZ0ltcGwqLCBQdHJIYXNoPFN0cmluZ0ltcGwqPiA+IElk
ZW50aWZpZXJTZXQ7CkBAIC05NSw2ICsxMDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
SWRlbnRpZmllclNldCBtX3NldDsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7
CiAgICAgICAgIHNpemVfdCBtX251bUNhY2hlYWJsZVNsb3RzOworICAgICAgICBKU09iamVjdCog
bV9iYXNlT2JqZWN0OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTQ4MTM4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTMtMDQtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KKworICAgICAgICBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5h
bWVzIGNhbGN1bGF0ZXMgbnVtQ2FjaGVhYmxlU2xvdHMgaW5jb3JyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBvYmplY3QgZG9lc24n
dCBoYXZlIGFueSBwcm9wZXJ0aWVzIGJ1dCB0aGUgcHJvdG90eXBlIGRvZXMsIHdlJ2xsIGFzc3Vt
ZSB0aG9zZSBwcm90b3R5cGUgcHJvcGVydGllcyBhcmUgCisgICAgICAgIGFjY2Vzc2libGUgaW4g
dGhlIGJhc2Ugb2JqZWN0J3MgYmFja2luZyBzdG9yZSwgd2hpY2ggaXMgYmFkLgorCisgICAgICAg
ICogZmFzdC9qcy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZ2V0LWJ5LXBuYW1lLW9ubHktcHJvdG90
eXBlLXByb3BlcnRpZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXBuYW1lLW9ubHktcHJvdG90eXBlLXByb3BlcnRpZXMuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKwogMjAxMy0wNC0xMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBw
bGUuY29tPgogCiAgICAgICAgIHdoZW4gQVJJQSBidXR0b24gY29udGFpbnMgYSBsaW5rLCBsYWJl
bCB0ZXh0IGlzIGlnbm9yZWQgKGFmZmVjdHMgbWFpbiBidXR0b25zIG9uIG0uZmFjZWJvb2suY29t
KQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUt
cHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2dldC1ieS1wbmFtZS1vbmx5LXByb3Rv
dHlwZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkg
QEAKK1RoaXMgdGVzdHMgdGhhdCBnZXRfYnlfcG5hbWUgZG9lc24ndCBpbmNvcnJlY3RseSB0aGlu
ayB0aGF0IGFuIGVtcHR5IG9iamVjdCBjYW4gY2FjaGUgaXRzIHByb3RvdHlwZSdzIHByb3BlcnRp
ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvanMvZ2V0LWJ5LXBuYW1lLW9ubHktcHJvdG90eXBlLXByb3Bl
cnRpZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZ2V0LWJ5LXBu
YW1lLW9ubHktcHJvdG90eXBlLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVy
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9nZXQtYnktcG5hbWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nZXQtYnktcG5h
bWUtb25seS1wcm90b3R5cGUtcHJvcGVydGllcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dldC1ieS1wbmFtZS1vbmx5LXByb3RvdHlwZS1wcm9w
ZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKK2Rlc2NyaXB0aW9uKAor
IlRoaXMgdGVzdHMgdGhhdCBnZXRfYnlfcG5hbWUgZG9lc24ndCBpbmNvcnJlY3RseSB0aGluayB0
aGF0IGFuIGVtcHR5IG9iamVjdCBjYW4gY2FjaGUgaXRzIHByb3RvdHlwZSdzIHByb3BlcnRpZXMu
IgorKTsKKwordmFyIGZvbyA9IGZ1bmN0aW9uIChDLCBBKSB7CisgICAgZm9yKHZhciBCIGluIChB
fHx7fSkpIHsKKyAgICAgICAgQ1tCXT1BW0JdOworICAgIH0KKyAgICByZXR1cm4gQzsKK30KKwor
dmFyIHByb3RvcyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykgeworICAgIHZh
ciBwcm90byA9IE9iamVjdC5jcmVhdGUobnVsbCk7CisgICAgcHJvdG9zLnB1c2gocHJvdG8pOwor
ICAgIHByb3RvLmFhID0gMTsKKyAgICBwcm90by5hYiA9IDE7CisgICAgcHJvdG8uYWMgPSAxOwor
ICAgIHByb3RvLmFkID0gMTsKKyAgICBwcm90by5hZSA9IDE7CisgICAgcHJvdG8uYWYgPSAxOwor
ICAgIHByb3RvLmFnID0gMTsKKyAgICBwcm90by5haCA9IDE7CisgICAgcHJvdG8uYWkgPSAxOwor
ICAgIHByb3RvLmFqID0gMTsKKyAgICBwcm90by5hayA9IDE7CisgICAgcHJvdG8uYWwgPSAxOwor
ICAgIHByb3RvLmFtID0gMTsKKyAgICBwcm90by5hbiA9IDE7CisgICAgcHJvdG8uYW8gPSAxOwor
ICAgIHByb3RvLmFwID0gMTsKKyAgICBwcm90by5hcSA9IDE7CisgICAgcHJvdG8uYXIgPSAxOwor
ICAgIHByb3RvLmFzID0gMTsKKyAgICBwcm90by5hdCA9IDE7CisgICAgcHJvdG8uYXUgPSAxOwor
ICAgIHByb3RvLmF2ID0gMTsKKyAgICBwcm90by5hdyA9IDE7CisgICAgcHJvdG8uYXggPSAxOwor
ICAgIHByb3RvLmF5ID0gMTsKKyAgICBwcm90by5heiA9IDE7CisgICAgcHJvdG8uYmEgPSAxOwor
ICAgIHByb3RvLmJiID0gMTsKKyAgICBwcm90by5iYyA9IDE7CisgICAgcHJvdG8uYmQgPSAxOwor
ICAgIHByb3RvLmJlID0gMTsKKyAgICBwcm90by5iZiA9IDE7CisgICAgdmFyIHdlaXJkT2JqZWN0
ID0gT2JqZWN0LmNyZWF0ZShwcm90byk7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7fSwgd2VpcmRP
YmplY3QpOworICAgIGZvciAodmFyIHAgaW4gcmVzdWx0KSB7CisgICAgICAgIGlmIChyZXN1bHRb
cF0gIT09IHJlc3VsdFsiIiArIHBdKQorICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdFtwXSIs
ICJyZXN1bHRbXCJcIiArIHBdIik7CisgICAgfQorfQo=
</data>
<flag name="review"
          id="219416"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>