<?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>80484</bug_id>
          
          <creation_ts>2012-03-06 21:23:04 -0800</creation_ts>
          <short_desc>Remove CSSStyleSelector&apos;s convertToLength method and use CSSPrimitiveValue&apos;s version directly.</short_desc>
          <delta_ts>2012-03-12 14:54:57 -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>CSS</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="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mikelawther</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572507</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-06 21:23:04 -0800</bug_when>
    <thetext>Remove CSSStyleSelector&apos;s convertToLength method and use CSSPrimitiveValue&apos;s version directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572508</commentid>
    <comment_count>1</comment_count>
      <attachid>130537</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-06 21:26:37 -0800</bug_when>
    <thetext>Created attachment 130537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572516</commentid>
    <comment_count>2</comment_count>
      <attachid>130537</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-03-06 21:39:48 -0800</bug_when>
    <thetext>Comment on attachment 130537
Patch

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

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3713
&gt; +enum LengthConversion { InvalidConversion = 0, FixedIntegerConversion = 1, FixedFloatConversion = 2, AutoConversion = 4, PercentConversion = 8, FractionConversion = 16};

nit: as these are bitmasks, I&apos;d write them in hex as 0x00, 0x01, 0x02, 0x04, 0x08, 0x10 etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572536</commentid>
    <comment_count>3</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-06 22:18:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 130537 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130537&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3713
&gt; &gt; +enum LengthConversion { InvalidConversion = 0, FixedIntegerConversion = 1, FixedFloatConversion = 2, AutoConversion = 4, PercentConversion = 8, FractionConversion = 16};
&gt; 
&gt; nit: as these are bitmasks, I&apos;d write them in hex as 0x00, 0x01, 0x02, 0x04, 0x08, 0x10 etc.

Lots of precedent for doing it this way in the code-base. Eg:

Source/JavaScriptCore/parser/Nodes.h:        enum Type { Constant = 1, Getter = 2, Setter = 4 };
Source/JavaScriptCore/runtime/PropertyDescriptor.h:        enum { WritablePresent = 1, EnumerablePresent = 2, ConfigurablePresent = 4};
Source/WebCore/css/CSSParser.h:    enum FillPositionFlag { InvalidFillPosition = 0, AmbiguousFillPosition = 1, XFillPosition = 2, YFillPosition = 4 };
Source/WebCore/css/CSSPrimitiveValueMappings.h:enum LengthConversion { UnsupportedConversion = 0, FixedConversion = 1, AutoConversion = 2, PercentConversion = 4, FractionConversion = 8};
Source/WebCore/rendering/RenderBlock.h:        enum Type { FloatLeft = 1, FloatRight = 2, FloatLeftRight = 3, FloatPositioned = 4, FloatAll = 7 };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572690</commentid>
    <comment_count>4</comment_count>
      <attachid>130537</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 01:29:51 -0800</bug_when>
    <thetext>Comment on attachment 130537
Patch

Attachment 130537 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11837886

New failing tests:
transforms/cssmatrix-2d-interface.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573597</commentid>
    <comment_count>5</comment_count>
      <attachid>130768</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-07 22:06:47 -0800</bug_when>
    <thetext>Created attachment 130768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574480</commentid>
    <comment_count>6</comment_count>
      <attachid>130949</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-08 18:49:28 -0800</bug_when>
    <thetext>Created attachment 130949
Manual Merge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575256</commentid>
    <comment_count>7</comment_count>
      <attachid>130949</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-09 14:44:32 -0800</bug_when>
    <thetext>Comment on attachment 130949
Manual Merge

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

The change looks fine to me. One question though.

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3713
&gt; +enum LengthConversion { InvalidConversion = 0, FixedIntegerConversion = 1, FixedFloatConversion = 2, AutoConversion = 4, PercentConversion = 8, FractionConversion = 16};

I agree with Mike here and would rather see hexadecimal or right-shifted numbers used. Even if there is no real consensus on that, a quick grep showed me that the hexadecimal or right-shifted numbers outweigh the examples you showed (especially if there is a pattern like here). Also preferably with an enum split over different lines for readability.

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3716
&gt; +    if (((supported &amp; FixedIntegerConversion) || (supported &amp; FixedFloatConversion)) &amp;&amp; isFontRelativeLength() &amp;&amp; (!style || !rootStyle))

Is NULL-checking for rootStyle also needed here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575843</commentid>
    <comment_count>8</comment_count>
      <attachid>130949</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-11 15:35:33 -0700</bug_when>
    <thetext>Comment on attachment 130949
Manual Merge

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

&gt;&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3716
&gt;&gt; +    if (((supported &amp; FixedIntegerConversion) || (supported &amp; FixedFloatConversion)) &amp;&amp; isFontRelativeLength() &amp;&amp; (!style || !rootStyle))
&gt; 
&gt; Is NULL-checking for rootStyle also needed here?

Yes it is, and this patch does. (See the last statement of this line.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575908</commentid>
    <comment_count>9</comment_count>
      <attachid>131275</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-11 20:27:11 -0700</bug_when>
    <thetext>Created attachment 131275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576227</commentid>
    <comment_count>10</comment_count>
      <attachid>131275</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-12 10:13:28 -0700</bug_when>
    <thetext>Comment on attachment 131275
Patch

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

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3724
&gt; +    if (((supported &amp; FixedIntegerConversion) || (supported &amp; FixedFloatConversion)) &amp;&amp; isFontRelativeLength() &amp;&amp; (!style || !rootStyle))
&gt; +        return Length(Undefined);

&gt;&gt; Is NULL-checking for rootStyle also needed here?
&gt; Yes it is, and this patch does. (See the last statement of this line.)

I didn&apos;t ask the question properly: the previous code was not NULL checking |rootStyle| which is why I was asking if it was needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576527</commentid>
    <comment_count>11</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-03-12 14:27:48 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 131275 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131275&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:3724
&gt; &gt; +    if (((supported &amp; FixedIntegerConversion) || (supported &amp; FixedFloatConversion)) &amp;&amp; isFontRelativeLength() &amp;&amp; (!style || !rootStyle))
&gt; &gt; +        return Length(Undefined);
&gt; 
&gt; &gt;&gt; Is NULL-checking for rootStyle also needed here?
&gt; &gt; Yes it is, and this patch does. (See the last statement of this line.)
&gt; 
&gt; I didn&apos;t ask the question properly: the previous code was not NULL checking |rootStyle| which is why I was asking if it was needed.

Oh, right. The reason is that computeLength&lt;Length&gt; calls computeLengthDouble, which will dereference rootStyle without checking if the units are CSS_REMS, and style when units are CSS_EMS or CSS_EXS. Here I&apos;ve just grouped these unit types together under &quot;isFontRelativeLength&quot; and ensured that both style and rootStyle are non-null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576571</commentid>
    <comment_count>12</comment_count>
      <attachid>131275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 14:54:52 -0700</bug_when>
    <thetext>Comment on attachment 131275
Patch

Clearing flags on attachment: 131275

Committed r110484: &lt;http://trac.webkit.org/changeset/110484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576572</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 14:54:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130537</attachid>
            <date>2012-03-06 21:26:37 -0800</date>
            <delta_ts>2012-03-07 22:06:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80484-20120307162635.patch</filename>
            <type>text/plain</type>
            <size>6024</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDAxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTA2ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENT
U1N0eWxlU2VsZWN0b3IncyBjb252ZXJ0VG9MZW5ndGggbWV0aG9kIGFuZCB1c2UgQ1NTUHJpbWl0
aXZlVmFsdWUncyB2ZXJzaW9uIGRpcmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLyBjb2RlIGNsZWFudXAgb25seS4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3RoKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlDbGlwOjpjb252ZXJ0VG9MZW5ndGgpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisKIDIwMTItMDMtMDYgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXZWJTb2NrZXRdIEludHJvZHVjZSBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lvbiAxMDk5NjQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNzEwLDExICszNzEwLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGUKICAgICB9CiB9CiAKLWVudW0gTGVuZ3RoQ29udmVyc2lvbiB7IFVuc3VwcG9ydGVk
Q29udmVyc2lvbiA9IDAsIEZpeGVkQ29udmVyc2lvbiA9IDEsIEF1dG9Db252ZXJzaW9uID0gMiwg
UGVyY2VudENvbnZlcnNpb24gPSA0LCBGcmFjdGlvbkNvbnZlcnNpb24gPSA4fTsKK2VudW0gTGVu
Z3RoQ29udmVyc2lvbiB7IEludmFsaWRDb252ZXJzaW9uID0gMCwgRml4ZWRJbnRlZ2VyQ29udmVy
c2lvbiA9IDEsIEZpeGVkRmxvYXRDb252ZXJzaW9uID0gMiwgQXV0b0NvbnZlcnNpb24gPSA0LCBQ
ZXJjZW50Q29udmVyc2lvbiA9IDgsIEZyYWN0aW9uQ29udmVyc2lvbiA9IDE2fTsKIHRlbXBsYXRl
PGludCBzdXBwb3J0ZWQ+IExlbmd0aCBDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3Ro
KFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRp
cGxpZXIsIGJvb2wgY29tcHV0aW5nRm9udFNpemUpCiB7Ci0gICAgaWYgKChzdXBwb3J0ZWQgJiBG
aXhlZENvbnZlcnNpb24pICYmIGlzTGVuZ3RoKCkpCisgICAgaWYgKChzdXBwb3J0ZWQgJiBGaXhl
ZEludGVnZXJDb252ZXJzaW9uKSAmJiBpc0xlbmd0aCgpKQogICAgICAgICByZXR1cm4gY29tcHV0
ZUxlbmd0aDxMZW5ndGg+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIsIGNvbXB1dGluZ0Zv
bnRTaXplKTsKKyAgICBpZiAoKHN1cHBvcnRlZCAmIEZpeGVkRmxvYXRDb252ZXJzaW9uKSAmJiBp
c0xlbmd0aCgpKQorICAgICAgICByZXR1cm4gTGVuZ3RoKGNvbXB1dGVMZW5ndGg8ZG91YmxlPihz
dHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKSwgRml4ZWQpOwogICAgIGlmICgoc3VwcG9ydGVk
ICYgUGVyY2VudENvbnZlcnNpb24pICYmIGlzUGVyY2VudGFnZSgpKQogICAgICAgICByZXR1cm4g
TGVuZ3RoKGdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAgIGlmICgoc3VwcG9ydGVkICYg
RnJhY3Rpb25Db252ZXJzaW9uKSAmJiBpc051bWJlcigpKQpJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDEwOTk2NCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjAsNyArMjIwLDcgQEAgY2xhc3MgQXBwbHlQcm9wZXJ0eUNsaXAgewogcHJpdmF0ZToK
ICAgICBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0xlbmd0aChDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3RvciwgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHZh
bHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24g
fCBGcmFjdGlvbkNvbnZlcnNpb24gfCBBdXRvQ29udmVyc2lvbj4oc2VsZWN0b3ItPnN0eWxlKCks
IHNlbGVjdG9yLT5yb290RWxlbWVudFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3Rp
dmVab29tKCkpOworICAgICAgICByZXR1cm4gdmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZElu
dGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBGcmFjdGlvbkNvbnZlcnNpb24g
fCBBdXRvQ29udmVyc2lvbj4oc2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5yb290RWxlbWVu
dFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogICAgIH0KIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1ZShDU1NTdHlsZVNlbGVjdG9y
KiBzZWxlY3RvcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJ
KHJldmlzaW9uIDEwOTk2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUyMSw0MCArMjUyMSwxNCBAQCB2b2lkIFJ1bGVTZXQ6
OnNocmlua1RvRml0KCkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIHRoaXMg
aXMgbW9zdGx5IGJvcmluZyBzdHVmZiBvbiBob3cgdG8gYXBwbHkgYSBjZXJ0YWluIHJ1bGUgdG8g
dGhlIHJlbmRlcnN0eWxlLi4uCiAKLXN0YXRpYyBMZW5ndGggY29udmVydFRvTGVuZ3RoKENTU1By
aW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJT
dHlsZSogcm9vdFN0eWxlLCBib29sIHRvRmxvYXQsIGRvdWJsZSBtdWx0aXBsaWVyID0gMSkKLXsK
LSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHRvbGVyYW50IG9mIGEgbnVsbCBzdHlsZSB2YWx1ZS4g
VGhlIG9ubHkgcGxhY2Ugc3R5bGUgaXMgdXNlZCBpcyBpbgotICAgIC8vIGxlbmd0aCBtZWFzdXJl
bWVudHMsIGxpa2UgJ2VtcycgYW5kICdweCcuIEFuZCBpbiB0aG9zZSBjYXNlcyBzdHlsZSBpcyBv
bmx5IHVzZWQKLSAgICAvLyB3aGVuIHRoZSB1bml0cyBhcmUgRU1TIG9yIEVYUy4gU28gd2Ugd2ls
bCBqdXN0IGZhaWwgaW4gdGhvc2UgY2FzZXMuCi0gICAgTGVuZ3RoIGw7Ci0gICAgaWYgKCFwcmlt
aXRpdmVWYWx1ZSkgewotICAgICAgICBsID0gTGVuZ3RoKFVuZGVmaW5lZCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgaWYgKCFzdHlsZSAmJiBwcmltaXRpdmVWYWx1ZS0+aXNGb250UmVsYXRpdmVM
ZW5ndGgoKSkgewotICAgICAgICAgICAgbCA9IExlbmd0aChVbmRlZmluZWQpOwotICAgICAgICB9
IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAo
dG9GbG9hdCkKLSAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21w
dXRlTGVuZ3RoPGRvdWJsZT4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciksIEZpeGVkKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsID0gcHJpbWl0aXZlVmFsdWUtPmNv
bXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgICAg
ICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsK
LSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpCi0gICAgICAgICAg
ICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpICogMTAwLjAsIFBl
cmNlbnQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsID0gTGVuZ3RoKFVuZGVmaW5lZCk7
Ci0gICAgfQotICAgIHJldHVybiBsOwotfQotCiBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0ludExl
bmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRpcGxpZXIgPSAxKQogewotICAg
IHJldHVybiBjb252ZXJ0VG9MZW5ndGgocHJpbWl0aXZlVmFsdWUsIHN0eWxlLCByb290U3R5bGUs
IGZhbHNlLCBtdWx0aXBsaWVyKTsKKyAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRU
b0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBGcmFj
dGlvbkNvbnZlcnNpb24+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpOwogfQogCiBzdGF0
aWMgTGVuZ3RoIGNvbnZlcnRUb0Zsb2F0TGVuZ3RoKENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRp
dmVWYWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3Vi
bGUgbXVsdGlwbGllciA9IDEpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRUb0xlbmd0aChwcmltaXRp
dmVWYWx1ZSwgc3R5bGUsIHJvb3RTdHlsZSwgdHJ1ZSwgbXVsdGlwbGllcik7CisgICAgcmV0dXJu
IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRGbG9hdENvbnZlcnNpb24gfCBQ
ZXJjZW50Q29udmVyc2lvbiB8IEZyYWN0aW9uQ29udmVyc2lvbj4oc3R5bGUsIHJvb3RTdHlsZSwg
bXVsdGlwbGllcik7CiB9CiAKIHRlbXBsYXRlIDxib29sIGFwcGx5Rmlyc3Q+CkBAIC0zNDgwLDcg
KzM0NTQsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGggPSBjb252ZXJ0VG9JbnRMZW5ndGgocHJp
bWl0aXZlVmFsdWUsIHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgMSk7CisgICAgICAgICAg
ICBMZW5ndGggbWFycXVlZUxlbmd0aCA9IGNvbnZlcnRUb0ludExlbmd0aChwcmltaXRpdmVWYWx1
ZSwgc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlKTsKICAgICAgICAgICAgIGlmICghbWFycXVl
ZUxlbmd0aC5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1
ZWVJbmNyZW1lbnQobWFycXVlZUxlbmd0aCk7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130768</attachid>
            <date>2012-03-07 22:06:47 -0800</date>
            <delta_ts>2012-03-08 18:49:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80484-20120308170645.patch</filename>
            <type>text/plain</type>
            <size>6480</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDE0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTA3ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENT
U1N0eWxlU2VsZWN0b3IncyBjb252ZXJ0VG9MZW5ndGggbWV0aG9kIGFuZCB1c2UgQ1NTUHJpbWl0
aXZlVmFsdWUncyB2ZXJzaW9uIGRpcmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLyBjb2RlIGNsZWFudXAgb25seS4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3RoKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlDbGlwOjpjb252ZXJ0VG9MZW5ndGgpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisKIDIwMTItMDMtMDcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBDb250YWluZXJOb2RlOjp3aWxsUmVtb3ZlIHVzZXMgYSB3ZWFrIGl0
ZXJhdGlvbiBwYXR0ZXJuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDExMDE0MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MTAsMTgg
KzM3MTAsMjEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogICAg
IH0KIH0KIAotZW51bSBMZW5ndGhDb252ZXJzaW9uIHsgVW5zdXBwb3J0ZWRDb252ZXJzaW9uID0g
MCwgRml4ZWRDb252ZXJzaW9uID0gMSwgQXV0b0NvbnZlcnNpb24gPSAyLCBQZXJjZW50Q29udmVy
c2lvbiA9IDQsIEZyYWN0aW9uQ29udmVyc2lvbiA9IDh9OworZW51bSBMZW5ndGhDb252ZXJzaW9u
IHsgSW52YWxpZENvbnZlcnNpb24gPSAwLCBGaXhlZEludGVnZXJDb252ZXJzaW9uID0gMSwgRml4
ZWRGbG9hdENvbnZlcnNpb24gPSAyLCBBdXRvQ29udmVyc2lvbiA9IDQsIFBlcmNlbnRDb252ZXJz
aW9uID0gOCwgRnJhY3Rpb25Db252ZXJzaW9uID0gMTZ9OwogdGVtcGxhdGU8aW50IHN1cHBvcnRl
ZD4gTGVuZ3RoIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgoUmVuZGVyU3R5bGUq
IHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciwgYm9vbCBj
b21wdXRpbmdGb250U2l6ZSkKIHsKLSAgICBpZiAoKHN1cHBvcnRlZCAmIEZpeGVkQ29udmVyc2lv
bikgJiYgaXNMZW5ndGgoKSkKKyAgICBpZiAoKChzdXBwb3J0ZWQgJiBGaXhlZEludGVnZXJDb252
ZXJzaW9uKSB8fCAoc3VwcG9ydGVkICYgRml4ZWRGbG9hdENvbnZlcnNpb24pKSAmJiBpc0ZvbnRS
ZWxhdGl2ZUxlbmd0aCgpICYmICghc3R5bGUgfHwgIXJvb3RTdHlsZSkpCisgICAgICAgIHJldHVy
biBMZW5ndGgoVW5kZWZpbmVkKTsKKyAgICBpZiAoKHN1cHBvcnRlZCAmIEZpeGVkSW50ZWdlckNv
bnZlcnNpb24pICYmIGlzTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoPExl
bmd0aD4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0aW5nRm9udFNpemUpOwor
ICAgIGlmICgoc3VwcG9ydGVkICYgRml4ZWRGbG9hdENvbnZlcnNpb24pICYmIGlzTGVuZ3RoKCkp
CisgICAgICAgIHJldHVybiBMZW5ndGgoY29tcHV0ZUxlbmd0aDxkb3VibGU+KHN0eWxlLCByb290
U3R5bGUsIG11bHRpcGxpZXIpLCBGaXhlZCk7CiAgICAgaWYgKChzdXBwb3J0ZWQgJiBQZXJjZW50
Q29udmVyc2lvbikgJiYgaXNQZXJjZW50YWdlKCkpCiAgICAgICAgIHJldHVybiBMZW5ndGgoZ2V0
RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgaWYgKChzdXBwb3J0ZWQgJiBGcmFjdGlvbkNv
bnZlcnNpb24pICYmIGlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVybiBMZW5ndGgoZ2V0RG91Ymxl
VmFsdWUoKSAqIDEwMC4wLCBQZXJjZW50KTsKICAgICBpZiAoKHN1cHBvcnRlZCAmIEF1dG9Db252
ZXJzaW9uKSAmJiBnZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJuIExl
bmd0aChBdXRvKTsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTGVuZ3Ro
KFVuZGVmaW5lZCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5
UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFw
cGx5UHJvcGVydHkuY3BwCShyZXZpc2lvbiAxMTAxNDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIwLDcgKzIyMCw3
IEBAIGNsYXNzIEFwcGx5UHJvcGVydHlDbGlwIHsKIHByaXZhdGU6CiAgICAgc3RhdGljIExlbmd0
aCBjb252ZXJ0VG9MZW5ndGgoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIENTU1ByaW1pdGl2
ZVZhbHVlKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB2YWx1ZS0+Y29udmVydFRvTGVu
Z3RoPEZpeGVkQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJz
aW9uIHwgQXV0b0NvbnZlcnNpb24+KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVs
ZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8
IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJzaW9uIHwgQXV0b0NvbnZlcnNpb24+
KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rv
ci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKICAgICB9CiBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMTAxNDIp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1MjEsNDAgKzI1MjEsMTQgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyB0aGlzIGlzIG1vc3RseSBib3Jpbmcg
c3R1ZmYgb24gaG93IHRvIGFwcGx5IGEgY2VydGFpbiBydWxlIHRvIHRoZSByZW5kZXJzdHlsZS4u
LgogCi1zdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0xlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJp
bWl0aXZlVmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwg
Ym9vbCB0b0Zsb2F0LCBkb3VibGUgbXVsdGlwbGllciA9IDEpCi17Ci0gICAgLy8gVGhpcyBmdW5j
dGlvbiBpcyB0b2xlcmFudCBvZiBhIG51bGwgc3R5bGUgdmFsdWUuIFRoZSBvbmx5IHBsYWNlIHN0
eWxlIGlzIHVzZWQgaXMgaW4KLSAgICAvLyBsZW5ndGggbWVhc3VyZW1lbnRzLCBsaWtlICdlbXMn
IGFuZCAncHgnLiBBbmQgaW4gdGhvc2UgY2FzZXMgc3R5bGUgaXMgb25seSB1c2VkCi0gICAgLy8g
d2hlbiB0aGUgdW5pdHMgYXJlIEVNUyBvciBFWFMuIFNvIHdlIHdpbGwganVzdCBmYWlsIGluIHRo
b3NlIGNhc2VzLgotICAgIExlbmd0aCBsOwotICAgIGlmICghcHJpbWl0aXZlVmFsdWUpIHsKLSAg
ICAgICAgbCA9IExlbmd0aChVbmRlZmluZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICgh
c3R5bGUgJiYgcHJpbWl0aXZlVmFsdWUtPmlzRm9udFJlbGF0aXZlTGVuZ3RoKCkpIHsKLSAgICAg
ICAgICAgIGwgPSBMZW5ndGgoVW5kZWZpbmVkKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+aXNMZW5ndGgoKSkgewotICAgICAgICAgICAgaWYgKHRvRmxvYXQpCi0gICAgICAg
ICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxkb3VibGU+
KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpLCBGaXhlZCk7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgbCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0
aD4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcik7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmlt
aXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0gICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmlt
aXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSAqIDEwMC4wLCBQZXJjZW50KTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgbCA9IExlbmd0aChVbmRlZmluZWQpOwotICAgIH0KLSAgICByZXR1
cm4gbDsKLX0KLQogc3RhdGljIExlbmd0aCBjb252ZXJ0VG9JbnRMZW5ndGgoQ1NTUHJpbWl0aXZl
VmFsdWUqIHByaW1pdGl2ZVZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiBy
b290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyID0gMSkKIHsKLSAgICByZXR1cm4gY29udmVydFRv
TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLCBzdHlsZSwgcm9vdFN0eWxlLCBmYWxzZSwgbXVsdGlwbGll
cik7CisgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlID8gcHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRU
b0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBGcmFj
dGlvbkNvbnZlcnNpb24+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpIDogTGVuZ3RoKFVu
ZGVmaW5lZCk7CiB9CiAKIHN0YXRpYyBMZW5ndGggY29udmVydFRvRmxvYXRMZW5ndGgoQ1NTUHJp
bWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0
eWxlKiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyID0gMSkKIHsKLSAgICByZXR1cm4gY29u
dmVydFRvTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLCBzdHlsZSwgcm9vdFN0eWxlLCB0cnVlLCBtdWx0
aXBsaWVyKTsKKyAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUgPyBwcmltaXRpdmVWYWx1ZS0+Y29u
dmVydFRvTGVuZ3RoPEZpeGVkRmxvYXRDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBG
cmFjdGlvbkNvbnZlcnNpb24+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpIDogTGVuZ3Ro
KFVuZGVmaW5lZCk7CiB9CiAKIHRlbXBsYXRlIDxib29sIGFwcGx5Rmlyc3Q+CkBAIC0zNDgwLDcg
KzM0NTQsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGggPSBjb252ZXJ0VG9JbnRMZW5ndGgocHJp
bWl0aXZlVmFsdWUsIHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgMSk7CisgICAgICAgICAg
ICBMZW5ndGggbWFycXVlZUxlbmd0aCA9IGNvbnZlcnRUb0ludExlbmd0aChwcmltaXRpdmVWYWx1
ZSwgc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlKTsKICAgICAgICAgICAgIGlmICghbWFycXVl
ZUxlbmd0aC5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1
ZWVJbmNyZW1lbnQobWFycXVlZUxlbmd0aCk7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130949</attachid>
            <date>2012-03-08 18:49:28 -0800</date>
            <delta_ts>2012-03-11 20:27:00 -0700</delta_ts>
            <desc>Manual Merge</desc>
            <filename>bug-80484-20120309134925.patch</filename>
            <type>text/plain</type>
            <size>6473</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDI0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTA4ICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENT
U1N0eWxlU2VsZWN0b3IncyBjb252ZXJ0VG9MZW5ndGggbWV0aG9kIGFuZCB1c2UgQ1NTUHJpbWl0
aXZlVmFsdWUncyB2ZXJzaW9uIGRpcmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLyBjb2RlIGNsZWFudXAgb25seS4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3RoKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlDbGlwOjpjb252ZXJ0VG9MZW5ndGgpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisKIDIwMTItMDMtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFjIGJ1aWxkIGZpeCBmb3IgbWljcm8gZGF0YSBBUEkuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJl
dmlzaW9uIDExMDI0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MTAsMTggKzM3MTAsMjEgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogICAgIH0KIH0KIAotZW51bSBMZW5ndGhD
b252ZXJzaW9uIHsgVW5zdXBwb3J0ZWRDb252ZXJzaW9uID0gMCwgRml4ZWRDb252ZXJzaW9uID0g
MSwgQXV0b0NvbnZlcnNpb24gPSAyLCBQZXJjZW50Q29udmVyc2lvbiA9IDQsIEZyYWN0aW9uQ29u
dmVyc2lvbiA9IDh9OworZW51bSBMZW5ndGhDb252ZXJzaW9uIHsgSW52YWxpZENvbnZlcnNpb24g
PSAwLCBGaXhlZEludGVnZXJDb252ZXJzaW9uID0gMSwgRml4ZWRGbG9hdENvbnZlcnNpb24gPSAy
LCBBdXRvQ29udmVyc2lvbiA9IDQsIFBlcmNlbnRDb252ZXJzaW9uID0gOCwgRnJhY3Rpb25Db252
ZXJzaW9uID0gMTZ9OwogdGVtcGxhdGU8aW50IHN1cHBvcnRlZD4gTGVuZ3RoIENTU1ByaW1pdGl2
ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSog
cm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciwgYm9vbCBjb21wdXRpbmdGb250U2l6ZSkKIHsK
LSAgICBpZiAoKHN1cHBvcnRlZCAmIEZpeGVkQ29udmVyc2lvbikgJiYgaXNMZW5ndGgoKSkKKyAg
ICBpZiAoKChzdXBwb3J0ZWQgJiBGaXhlZEludGVnZXJDb252ZXJzaW9uKSB8fCAoc3VwcG9ydGVk
ICYgRml4ZWRGbG9hdENvbnZlcnNpb24pKSAmJiBpc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpICYmICgh
c3R5bGUgfHwgIXJvb3RTdHlsZSkpCisgICAgICAgIHJldHVybiBMZW5ndGgoVW5kZWZpbmVkKTsK
KyAgICBpZiAoKHN1cHBvcnRlZCAmIEZpeGVkSW50ZWdlckNvbnZlcnNpb24pICYmIGlzTGVuZ3Ro
KCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUsIHJvb3RTdHls
ZSwgbXVsdGlwbGllciwgY29tcHV0aW5nRm9udFNpemUpOworICAgIGlmICgoc3VwcG9ydGVkICYg
Rml4ZWRGbG9hdENvbnZlcnNpb24pICYmIGlzTGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBMZW5n
dGgoY29tcHV0ZUxlbmd0aDxkb3VibGU+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpLCBG
aXhlZCk7CiAgICAgaWYgKChzdXBwb3J0ZWQgJiBQZXJjZW50Q29udmVyc2lvbikgJiYgaXNQZXJj
ZW50YWdlKCkpCiAgICAgICAgIHJldHVybiBMZW5ndGgoZ2V0RG91YmxlVmFsdWUoKSwgUGVyY2Vu
dCk7CiAgICAgaWYgKChzdXBwb3J0ZWQgJiBGcmFjdGlvbkNvbnZlcnNpb24pICYmIGlzTnVtYmVy
KCkpCiAgICAgICAgIHJldHVybiBMZW5ndGgoZ2V0RG91YmxlVmFsdWUoKSAqIDEwMC4wLCBQZXJj
ZW50KTsKICAgICBpZiAoKHN1cHBvcnRlZCAmIEF1dG9Db252ZXJzaW9uKSAmJiBnZXRJZGVudCgp
ID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJuIExlbmd0aChBdXRvKTsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gTGVuZ3RoKFVuZGVmaW5lZCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCShyZXZp
c2lvbiAxMTAyNDEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIxLDcgKzIyMSw3IEBAIGNsYXNzIEFwcGx5UHJvcGVy
dHlDbGlwIHsKIHByaXZhdGU6CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0VG9MZW5ndGgoQ1NT
U3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiB2YWx1ZS0+Y29udmVydFRvTGVuZ3RoPEZpeGVkQ29udmVyc2lvbiB8
IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJzaW9uIHwgQXV0b0NvbnZlcnNpb24+
KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rv
ci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5jb252
ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwg
RnJhY3Rpb25Db252ZXJzaW9uIHwgQXV0b0NvbnZlcnNpb24+KHNlbGVjdG9yLT5zdHlsZSgpLCBz
ZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZl
Wm9vbSgpKTsKICAgICB9CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFs
dWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMTAyNDEpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MjgsNDAgKzI1Mjgs
MTQgQEAgdm9pZCBSdWxlU2V0OjpzaHJpbmtUb0ZpdCgpCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAvLyB0aGlzIGlzIG1vc3RseSBib3Jpbmcgc3R1ZmYgb24gaG93IHRvIGFwcGx5
IGEgY2VydGFpbiBydWxlIHRvIHRoZSByZW5kZXJzdHlsZS4uLgogCi1zdGF0aWMgTGVuZ3RoIGNv
bnZlcnRUb0xlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgYm9vbCB0b0Zsb2F0LCBkb3VibGUg
bXVsdGlwbGllciA9IDEpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB0b2xlcmFudCBvZiBh
IG51bGwgc3R5bGUgdmFsdWUuIFRoZSBvbmx5IHBsYWNlIHN0eWxlIGlzIHVzZWQgaXMgaW4KLSAg
ICAvLyBsZW5ndGggbWVhc3VyZW1lbnRzLCBsaWtlICdlbXMnIGFuZCAncHgnLiBBbmQgaW4gdGhv
c2UgY2FzZXMgc3R5bGUgaXMgb25seSB1c2VkCi0gICAgLy8gd2hlbiB0aGUgdW5pdHMgYXJlIEVN
UyBvciBFWFMuIFNvIHdlIHdpbGwganVzdCBmYWlsIGluIHRob3NlIGNhc2VzLgotICAgIExlbmd0
aCBsOwotICAgIGlmICghcHJpbWl0aXZlVmFsdWUpIHsKLSAgICAgICAgbCA9IExlbmd0aChVbmRl
ZmluZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghc3R5bGUgJiYgcHJpbWl0aXZlVmFs
dWUtPmlzRm9udFJlbGF0aXZlTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgoVW5k
ZWZpbmVkKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkg
ewotICAgICAgICAgICAgaWYgKHRvRmxvYXQpCi0gICAgICAgICAgICAgICAgbCA9IExlbmd0aChw
cmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxkb3VibGU+KHN0eWxlLCByb290U3R5bGUsIG11
bHRpcGxpZXIpLCBGaXhlZCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbCA9
IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUsIHJvb3RTdHlsZSwg
bXVsdGlwbGllcik7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2Vu
dGFnZSgpKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91Ymxl
VmFsdWUoKSwgUGVyY2VudCk7Ci0gICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051
bWJlcigpKQotICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91Ymxl
VmFsdWUoKSAqIDEwMC4wLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbCA9
IExlbmd0aChVbmRlZmluZWQpOwotICAgIH0KLSAgICByZXR1cm4gbDsKLX0KLQogTGVuZ3RoIENT
U1N0eWxlU2VsZWN0b3I6OmNvbnZlcnRUb0ludExlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJp
bWl0aXZlVmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwg
ZG91YmxlIG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRUb0xlbmd0aChwcmltaXRp
dmVWYWx1ZSwgc3R5bGUsIHJvb3RTdHlsZSwgZmFsc2UsIG11bHRpcGxpZXIpOworICAgIHJldHVy
biBwcmltaXRpdmVWYWx1ZSA/IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJ
bnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJzaW9u
PihzdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKSA6IExlbmd0aChVbmRlZmluZWQpOwogfQog
CiBMZW5ndGggQ1NTU3R5bGVTZWxlY3Rvcjo6Y29udmVydFRvRmxvYXRMZW5ndGgoQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxl
KiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyKQogewotICAgIHJldHVybiBjb252ZXJ0VG9M
ZW5ndGgocHJpbWl0aXZlVmFsdWUsIHN0eWxlLCByb290U3R5bGUsIHRydWUsIG11bHRpcGxpZXIp
OworICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZSA/IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9M
ZW5ndGg8Rml4ZWRGbG9hdENvbnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IEZyYWN0aW9u
Q29udmVyc2lvbj4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcikgOiBMZW5ndGgoVW5kZWZp
bmVkKTsKIH0KIAogdGVtcGxhdGUgPGJvb2wgYXBwbHlGaXJzdD4KQEAgLTM0OTAsNyArMzQ2NCw3
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBMZW5ndGggbWFycXVlZUxlbmd0aCA9IGNvbnZlcnRUb0ludExlbmd0aChwcmltaXRpdmVW
YWx1ZSwgc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCAxKTsKKyAgICAgICAgICAgIExlbmd0
aCBtYXJxdWVlTGVuZ3RoID0gY29udmVydFRvSW50TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLCBzdHls
ZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUpOwogICAgICAgICAgICAgaWYgKCFtYXJxdWVlTGVuZ3Ro
LmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUluY3Jl
bWVudChtYXJxdWVlTGVuZ3RoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131275</attachid>
            <date>2012-03-11 20:27:11 -0700</date>
            <delta_ts>2012-03-12 14:54:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80484-20120312142709.patch</filename>
            <type>text/plain</type>
            <size>6512</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDQwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTExICBMdWtlIE1h
Y3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIENT
U1N0eWxlU2VsZWN0b3IncyBjb252ZXJ0VG9MZW5ndGggbWV0aG9kIGFuZCB1c2UgQ1NTUHJpbWl0
aXZlVmFsdWUncyB2ZXJzaW9uIGRpcmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLyBjb2RlIGNsZWFudXAgb25seS4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3RoKToKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlDbGlwOjpjb252ZXJ0VG9MZW5ndGgpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisKIDIwMTItMDMtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTAz
NTkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgJKHJldmlzaW9uIDExMDQwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MTAsMTggKzM3MTAsMjggQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogICAgIH0KIH0KIAotZW51
bSBMZW5ndGhDb252ZXJzaW9uIHsgVW5zdXBwb3J0ZWRDb252ZXJzaW9uID0gMCwgRml4ZWRDb252
ZXJzaW9uID0gMSwgQXV0b0NvbnZlcnNpb24gPSAyLCBQZXJjZW50Q29udmVyc2lvbiA9IDQsIEZy
YWN0aW9uQ29udmVyc2lvbiA9IDh9OworZW51bSBMZW5ndGhDb252ZXJzaW9uIHsKKyAgICBGaXhl
ZEludGVnZXJDb252ZXJzaW9uID0gMSA8PCAwLAorICAgIEZpeGVkRmxvYXRDb252ZXJzaW9uID0g
MSA8PCAxLAorICAgIEF1dG9Db252ZXJzaW9uID0gMSA8PCAyLAorICAgIFBlcmNlbnRDb252ZXJz
aW9uID0gMSA8PCAzLAorICAgIEZyYWN0aW9uQ29udmVyc2lvbiA9IDEgPDwgNAorfTsKKwogdGVt
cGxhdGU8aW50IHN1cHBvcnRlZD4gTGVuZ3RoIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9M
ZW5ndGgoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3VibGUg
bXVsdGlwbGllciwgYm9vbCBjb21wdXRpbmdGb250U2l6ZSkKIHsKLSAgICBpZiAoKHN1cHBvcnRl
ZCAmIEZpeGVkQ29udmVyc2lvbikgJiYgaXNMZW5ndGgoKSkKKyAgICBpZiAoKChzdXBwb3J0ZWQg
JiBGaXhlZEludGVnZXJDb252ZXJzaW9uKSB8fCAoc3VwcG9ydGVkICYgRml4ZWRGbG9hdENvbnZl
cnNpb24pKSAmJiBpc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpICYmICghc3R5bGUgfHwgIXJvb3RTdHls
ZSkpCisgICAgICAgIHJldHVybiBMZW5ndGgoVW5kZWZpbmVkKTsKKyAgICBpZiAoKHN1cHBvcnRl
ZCAmIEZpeGVkSW50ZWdlckNvbnZlcnNpb24pICYmIGlzTGVuZ3RoKCkpCiAgICAgICAgIHJldHVy
biBjb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29t
cHV0aW5nRm9udFNpemUpOworICAgIGlmICgoc3VwcG9ydGVkICYgRml4ZWRGbG9hdENvbnZlcnNp
b24pICYmIGlzTGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBMZW5ndGgoY29tcHV0ZUxlbmd0aDxk
b3VibGU+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpLCBGaXhlZCk7CiAgICAgaWYgKChz
dXBwb3J0ZWQgJiBQZXJjZW50Q29udmVyc2lvbikgJiYgaXNQZXJjZW50YWdlKCkpCiAgICAgICAg
IHJldHVybiBMZW5ndGgoZ2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgaWYgKChzdXBw
b3J0ZWQgJiBGcmFjdGlvbkNvbnZlcnNpb24pICYmIGlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVy
biBMZW5ndGgoZ2V0RG91YmxlVmFsdWUoKSAqIDEwMC4wLCBQZXJjZW50KTsKICAgICBpZiAoKHN1
cHBvcnRlZCAmIEF1dG9Db252ZXJzaW9uKSAmJiBnZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykK
ICAgICAgICAgcmV0dXJuIExlbmd0aChBdXRvKTsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gTGVuZ3RoKFVuZGVmaW5lZCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCShyZXZpc2lvbiAxMTA0MDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjIxLDcgKzIyMSw3IEBAIGNsYXNzIEFwcGx5UHJvcGVydHlDbGlwIHsKIHByaXZhdGU6
CiAgICAgc3RhdGljIExlbmd0aCBjb252ZXJ0VG9MZW5ndGgoQ1NTU3R5bGVTZWxlY3Rvciogc2Vs
ZWN0b3IsIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiB2
YWx1ZS0+Y29udmVydFRvTGVuZ3RoPEZpeGVkQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9u
IHwgRnJhY3Rpb25Db252ZXJzaW9uIHwgQXV0b0NvbnZlcnNpb24+KHNlbGVjdG9yLT5zdHlsZSgp
LCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJ
bnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJzaW9u
IHwgQXV0b0NvbnZlcnNpb24+KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1l
bnRTdHlsZSgpLCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKICAgICB9CiBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoQ1NTU3R5bGVTZWxlY3Rv
ciogc2VsZWN0b3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CShyZXZpc2lvbiAxMTA0MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MjgsNDAgKzI1MjgsMTQgQEAgdm9pZCBSdWxlU2V0
OjpzaHJpbmtUb0ZpdCgpCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyB0aGlz
IGlzIG1vc3RseSBib3Jpbmcgc3R1ZmYgb24gaG93IHRvIGFwcGx5IGEgY2VydGFpbiBydWxlIHRv
IHRoZSByZW5kZXJzdHlsZS4uLgogCi1zdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0xlbmd0aChDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVy
U3R5bGUqIHJvb3RTdHlsZSwgYm9vbCB0b0Zsb2F0LCBkb3VibGUgbXVsdGlwbGllciA9IDEpCi17
Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB0b2xlcmFudCBvZiBhIG51bGwgc3R5bGUgdmFsdWUu
IFRoZSBvbmx5IHBsYWNlIHN0eWxlIGlzIHVzZWQgaXMgaW4KLSAgICAvLyBsZW5ndGggbWVhc3Vy
ZW1lbnRzLCBsaWtlICdlbXMnIGFuZCAncHgnLiBBbmQgaW4gdGhvc2UgY2FzZXMgc3R5bGUgaXMg
b25seSB1c2VkCi0gICAgLy8gd2hlbiB0aGUgdW5pdHMgYXJlIEVNUyBvciBFWFMuIFNvIHdlIHdp
bGwganVzdCBmYWlsIGluIHRob3NlIGNhc2VzLgotICAgIExlbmd0aCBsOwotICAgIGlmICghcHJp
bWl0aXZlVmFsdWUpIHsKLSAgICAgICAgbCA9IExlbmd0aChVbmRlZmluZWQpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGlmICghc3R5bGUgJiYgcHJpbWl0aXZlVmFsdWUtPmlzRm9udFJlbGF0aXZl
TGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGwgPSBMZW5ndGgoVW5kZWZpbmVkKTsKLSAgICAgICAg
fSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkgewotICAgICAgICAgICAgaWYg
KHRvRmxvYXQpCi0gICAgICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29t
cHV0ZUxlbmd0aDxkb3VibGU+KHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpLCBGaXhlZCk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbCA9IHByaW1pdGl2ZVZhbHVlLT5j
b21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcik7Ci0gICAg
ICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQotICAgICAgICAg
ICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7
Ci0gICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKQotICAgICAgICAg
ICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSAqIDEwMC4wLCBQ
ZXJjZW50KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbCA9IExlbmd0aChVbmRlZmluZWQp
OwotICAgIH0KLSAgICByZXR1cm4gbDsKLX0KLQogTGVuZ3RoIENTU1N0eWxlU2VsZWN0b3I6OmNv
bnZlcnRUb0ludExlbmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFJlbmRl
clN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRpcGxpZXIp
CiB7Ci0gICAgcmV0dXJuIGNvbnZlcnRUb0xlbmd0aChwcmltaXRpdmVWYWx1ZSwgc3R5bGUsIHJv
b3RTdHlsZSwgZmFsc2UsIG11bHRpcGxpZXIpOworICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZSA/
IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8
IFBlcmNlbnRDb252ZXJzaW9uIHwgRnJhY3Rpb25Db252ZXJzaW9uPihzdHlsZSwgcm9vdFN0eWxl
LCBtdWx0aXBsaWVyKSA6IExlbmd0aChVbmRlZmluZWQpOwogfQogCiBMZW5ndGggQ1NTU3R5bGVT
ZWxlY3Rvcjo6Y29udmVydFRvRmxvYXRMZW5ndGgoQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2
ZVZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUsIGRvdWJs
ZSBtdWx0aXBsaWVyKQogewotICAgIHJldHVybiBjb252ZXJ0VG9MZW5ndGgocHJpbWl0aXZlVmFs
dWUsIHN0eWxlLCByb290U3R5bGUsIHRydWUsIG11bHRpcGxpZXIpOworICAgIHJldHVybiBwcmlt
aXRpdmVWYWx1ZSA/IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRGbG9hdENv
bnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IEZyYWN0aW9uQ29udmVyc2lvbj4oc3R5bGUs
IHJvb3RTdHlsZSwgbXVsdGlwbGllcikgOiBMZW5ndGgoVW5kZWZpbmVkKTsKIH0KIAogdGVtcGxh
dGUgPGJvb2wgYXBwbHlGaXJzdD4KQEAgLTM0OTAsNyArMzQ2NCw3IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBMZW5ndGggbWFycXVl
ZUxlbmd0aCA9IGNvbnZlcnRUb0ludExlbmd0aChwcmltaXRpdmVWYWx1ZSwgc3R5bGUoKSwgbV9y
b290RWxlbWVudFN0eWxlLCAxKTsKKyAgICAgICAgICAgIExlbmd0aCBtYXJxdWVlTGVuZ3RoID0g
Y29udmVydFRvSW50TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLCBzdHlsZSgpLCBtX3Jvb3RFbGVtZW50
U3R5bGUpOwogICAgICAgICAgICAgaWYgKCFtYXJxdWVlTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCiAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUluY3JlbWVudChtYXJxdWVlTGVuZ3Ro
KTsKICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>