<?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>98601</bug_id>
          
          <creation_ts>2012-10-06 09:02:16 -0700</creation_ts>
          <short_desc>[mac] WebKit clients cannot change the behavior of text-rendering: auto</short_desc>
          <delta_ts>2012-10-06 11:41:24 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736242</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-10-06 09:02:16 -0700</bug_when>
    <thetext>[mac] Kerning and ligatures are disabled by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736243</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-10-06 09:05:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/12446507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736245</commentid>
    <comment_count>2</comment_count>
      <attachid>167458</attachid>
    <who name="">mitz</who>
    <bug_when>2012-10-06 09:16:46 -0700</bug_when>
    <thetext>Created attachment 167458
Make the WebKitKerningAndLigaturesEnabledByDefault user defaults key control kerning and ligatures for text-rendering: auto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736250</commentid>
    <comment_count>3</comment_count>
      <attachid>167458</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-06 09:58:37 -0700</bug_when>
    <thetext>Comment on attachment 167458
Make the WebKitKerningAndLigaturesEnabledByDefault user defaults key control kerning and ligatures for text-rendering: auto

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

&gt; Source/WebCore/platform/graphics/Font.h:127
&gt; -        TypesettingFeatures features = textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures : 0;
&gt; +        TypesettingFeatures features = textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures : s_defaultTypesettingFeatures;

I think an or would be slightly better.

    TypesettingFeatures features = s_defaultTypesettingFeatures | (textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures);

The idea being that the text rendering mode turns on features rather than entirely overriding the default. I also think we should use a switch statement for the text rendering mode the way we do for the states in the font description below to make the code read more clearly.

    TypesettingFeatures features = s_defaultTypesettingFeatures;

    switch (textRenderingMode) {
    case GeometricPrecision:
    case OptimizeLegibility:
        features |= Kerning | Ligatures;
        break;
    /* list other cases here */
        break;
    }

&gt; Source/WebCore/platform/graphics/Font.h:239
&gt; +    static TypesettingFeatures s_defaultTypesettingFeatures;

Can this data member be private?

&gt; Source/WebKit2/UIProcess/mac/WebContextMac.mm:102
&gt; +    parameters.shouldEnableKerningAndLigaturesByDefault = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;WebKitKerningAndLigaturesEnabledByDefault&quot;];

It’s a little strange to have the phrase “by default” in the name of “a default”. I think you could just omit it, although I suppose it makes it a little more clear that if this is false you can still get kerning and ligatures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736251</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-10-06 10:03:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 167458 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167458&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Font.h:127
&gt; &gt; -        TypesettingFeatures features = textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures : 0;
&gt; &gt; +        TypesettingFeatures features = textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures : s_defaultTypesettingFeatures;
&gt; 
&gt; I think an or would be slightly better.
&gt; 
&gt;     TypesettingFeatures features = s_defaultTypesettingFeatures | (textRenderingMode == OptimizeLegibility || textRenderingMode == GeometricPrecision ? Kerning | Ligatures);
&gt; 
&gt; The idea being that the text rendering mode turns on features rather than entirely overriding the default. I also think we should use a switch statement for the text rendering mode the way we do for the states in the font description below to make the code read more clearly.
&gt; 
&gt;     TypesettingFeatures features = s_defaultTypesettingFeatures;
&gt; 
&gt;     switch (textRenderingMode) {
&gt;     case GeometricPrecision:
&gt;     case OptimizeLegibility:
&gt;         features |= Kerning | Ligatures;
&gt;         break;
&gt;     /* list other cases here */
&gt;         break;
&gt;     }

I’ll change to use a switch statement.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Font.h:239
&gt; &gt; +    static TypesettingFeatures s_defaultTypesettingFeatures;
&gt; 
&gt; Can this data member be private?

Yes, I’ll change it.

&gt; &gt; Source/WebKit2/UIProcess/mac/WebContextMac.mm:102
&gt; &gt; +    parameters.shouldEnableKerningAndLigaturesByDefault = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;WebKitKerningAndLigaturesEnabledByDefault&quot;];
&gt; 
&gt; It’s a little strange to have the phrase “by default” in the name of “a default”. I think you could just omit it, although I suppose it makes it a little more clear that if this is false you can still get kerning and ligatures.

Yes, I think it’s worth the clarity. It’s similar to the WebKitDefaultTextEncodingName default and a few other “default defaults” in WebKit.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736264</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-10-06 11:41:24 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r130585&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167458</attachid>
            <date>2012-10-06 09:16:46 -0700</date>
            <delta_ts>2012-10-06 09:58:36 -0700</delta_ts>
            <desc>Make the WebKitKerningAndLigaturesEnabledByDefault user defaults key control kerning and ligatures for text-rendering: auto</desc>
            <filename>bug-98601-20121006091555.patch</filename>
            <type>text/plain</type>
            <size>11280</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDU4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEwLTA2ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBwYXJ0IG9mIDxyZGFy
Oi8vcHJvYmxlbS8xMjQ0NjUwNz4gW21hY10gV2ViS2l0IGNsaWVudHMgY2Fubm90IGNoYW5nZSB0
aGUgYmVoYXZpb3Igb2YgdGV4dC1yZW5kZXJpbmc6IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0ZWQgRm9u
dDo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnNfZGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXMpOiBEZWZpbmVkIHRoaXMgc3RhdGljLgorICAgICAgICAoV2ViQ29yZTo6
Rm9udDo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOiBBZGRlZCB0aGlzIHNldHRlci4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKTogQWRk
ZWQgdGhpcyBnZXR0ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6dHlwZXNldHRpbmdGZWF0dXJlcyk6IENoYW5nZWQgdG8gdXNl
IHRoZSB2YWx1ZSBvZiB0aGUgbmV3IHN0YXRpYyBtZW1iZXIKKyAgICAgICAgc19kZWZhdWx0VHlw
ZXNldHRpbmdGZWF0dXJlcywgcmF0aGVyIHRoYW4gMCwgaWYgdGV4dC1yZWRlcmluZyBpcyBzZXQg
dG8gYXV0by4KKwogMjAxMi0xMC0wNiAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgRml4IGJ1aWxkIHdhcm5pbmcgOiAtV3VudXNlZC1wYXJhbWV0ZXIuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTMwNDUzKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY0Nyw2ICs2NDcsNyBAQCBfX1pO
N1dlYkNvcmU0N2F0dHJpYnV0ZWRTdHJpbmdCeVN0cmlwcGluCiBfX1pON1dlYkNvcmU0Rm9udDEx
c2V0Q29kZVBhdGhFTlMwXzhDb2RlUGF0aEUKIF9fWk43V2ViQ29yZTRGb250MThzaG91bGRVc2VT
bW9vdGhpbmdFdgogX19aTjdXZWJDb3JlNEZvbnQyMXNldFNob3VsZFVzZVNtb290aGluZ0ViCitf
X1pON1dlYkNvcmU0Rm9udDI5c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXNFagogX19aTjdX
ZWJDb3JlNEZvbnRDMUVSS05TXzE2Rm9udFBsYXRmb3JtRGF0YUViTlNfMTdGb250U21vb3RoaW5n
TW9kZUUKIF9fWk43V2ViQ29yZTRGb250QzFFdgogX19aTjdXZWJDb3JlNEZvbnRhU0VSS1MwXwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9u
IDEzMDQ1MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw4IEBAIGNvbnN0IHVpbnQ4X3QgRm9udDo6c19yb3Vu
ZGluZ0hhY2tDaGFyYWMKIAogRm9udDo6Q29kZVBhdGggRm9udDo6c19jb2RlUGF0aCA9IEF1dG87
CiAKK1R5cGVzZXR0aW5nRmVhdHVyZXMgRm9udDo6c19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cyA9IDA7CisKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBGb250
IEltcGxlbWVudGF0aW9uIChDcm9zcy1QbGF0Zm9ybSBQb3J0aW9uKQogLy8gPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI4OSw2ICsyOTEsMTYgQEAgRm9udDo6Q29kZVBh
dGggRm9udDo6Y29kZVBhdGgoKQogICAgIHJldHVybiBzX2NvZGVQYXRoOwogfQogCit2b2lkIEZv
bnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlw
ZXNldHRpbmdGZWF0dXJlcykKK3sKKyAgICBzX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID0g
dHlwZXNldHRpbmdGZWF0dXJlczsKK30KKworVHlwZXNldHRpbmdGZWF0dXJlcyBGb250OjpkZWZh
dWx0VHlwZXNldHRpbmdGZWF0dXJlcygpCit7CisgICAgcmV0dXJuIHNfZGVmYXVsdFR5cGVzZXR0
aW5nRmVhdHVyZXM7Cit9CisKIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRl
eHRSdW4mIHJ1bikgY29uc3QKIHsKICAgICBpZiAoc19jb2RlUGF0aCAhPSBBdXRvKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gMTMwNDUzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlw
ZXNldHRpbmdGZWF0dXJlcygpIGNvbnN0CiAgICAgewogICAgICAgICBUZXh0UmVuZGVyaW5nTW9k
ZSB0ZXh0UmVuZGVyaW5nTW9kZSA9IG1fZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2Rl
KCk7Ci0gICAgICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgZmVhdHVyZXMgPSB0ZXh0UmVuZGVyaW5n
TW9kZSA9PSBPcHRpbWl6ZUxlZ2liaWxpdHkgfHwgdGV4dFJlbmRlcmluZ01vZGUgPT0gR2VvbWV0
cmljUHJlY2lzaW9uID8gS2VybmluZyB8IExpZ2F0dXJlcyA6IDA7CisgICAgICAgIFR5cGVzZXR0
aW5nRmVhdHVyZXMgZmVhdHVyZXMgPSB0ZXh0UmVuZGVyaW5nTW9kZSA9PSBPcHRpbWl6ZUxlZ2li
aWxpdHkgfHwgdGV4dFJlbmRlcmluZ01vZGUgPT0gR2VvbWV0cmljUHJlY2lzaW9uID8gS2Vybmlu
ZyB8IExpZ2F0dXJlcyA6IHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7CiAKICAgICAgICAg
c3dpdGNoIChtX2ZvbnREZXNjcmlwdGlvbi5rZXJuaW5nKCkpIHsKICAgICAgICAgY2FzZSBGb250
RGVzY3JpcHRpb246Ok5vbmVLZXJuaW5nOgpAQCAtMjM0LDYgKzIzNCwxMCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIENvZGVQYXRoIGNvZGVQYXRoKCk7CiAgICAgc3RhdGljIENvZGVQYXRoIHNfY29k
ZVBhdGg7CiAKKyAgICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhU
eXBlc2V0dGluZ0ZlYXR1cmVzKTsKKyAgICBzdGF0aWMgVHlwZXNldHRpbmdGZWF0dXJlcyBkZWZh
dWx0VHlwZXNldHRpbmdGZWF0dXJlcygpOworICAgIHN0YXRpYyBUeXBlc2V0dGluZ0ZlYXR1cmVz
IHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7CisKICAgICBzdGF0aWMgY29uc3QgdWludDhf
dCBzX3JvdW5kaW5nSGFja0NoYXJhY3RlclRhYmxlWzI1Nl07CiAgICAgc3RhdGljIGJvb2wgaXNS
b3VuZGluZ0hhY2tDaGFyYWN0ZXIoVUNoYXIzMiBjKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEzMDU4MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTA2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViS2l0MiBwYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xMjQ0NjUw
Nz4gW21hY10gV2ViS2l0IGNsaWVudHMgY2Fubm90IGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGV4
dC1yZW5kZXJpbmc6IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4NjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMpOiBBZGRlZCBpbml0aWFsaXplciBmb3IKKyAgICAgICAgdG8gc2hvdWxk
RW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdC4gVGhlIGluaXRpYWwgdmFsdWUgaXMg
ZmFsc2UuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSk6IEFkZGVkIGVuY29kaW5nIG9mCisgICAgICAgIHNob3VsZEVuYWJsZUtlcm5pbmdBbmRM
aWdhdHVyZXNCeURlZmF1bHQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6IEFkZGVkIGRlY29kaW5nIG9mCisgICAgICAgIHNob3VsZEVuYWJs
ZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQuCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMpOiBBZGRlZCBzaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0IGJv
b2xlYW4KKyAgICAgICAgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyk6IENoYW5nZWQgdG8gc2V0CisgICAgICAgIHNob3VsZEVuYWJs
ZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQgaW4gdGhlIHByb2Nlc3MgY3JlYXRpb24gcGFy
YW1ldGVycyBhY2NvcmRpbmcgdG8KKyAgICAgICAgdGhlIHZhbHVlIG9mIHRoZSBXZWJLaXRLZXJu
aW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdCB1c2VyIGRlZmF1bHRzIGtleS4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKTogQWRkZWQgYSBjYWxsIHRv
CisgICAgICAgIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgdG8gZW5hYmxl
IGtlcm5pbmcgYW5kIGxpZ2F0dXJlcyBpZiByZXF1ZXN0ZWQgaW4gdGhlCisgICAgICAgIHByb2Nl
c3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKwogMjAxMi0xMC0wNSAgU3VkYXJzYW5hIE5hZ2luZW5p
ICA8c3VkYXJzYW5hLm5hZ2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXVFJdIFdl
YktpdFRlc3RSdW5uZXIgbmVlZHMgdGVzdFJ1bm5lci5zZXRTZXJpYWxpemVIVFRQTG9hZHMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDEzMDQ1MykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsNyBAQCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpXZWJQcm9jZXNzCiAgICAg
LCBuc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkoMCkKICAgICAsIG5zVVJMQ2FjaGVEaXNrQ2FwYWNp
dHkoMCkKICAgICAsIHNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbihmYWxzZSkKKyAg
ICAsIHNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQoZmFsc2UpCiAjZWxp
ZiBQTEFURk9STShXSU4pCiAgICAgLCBzaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGZhbHNlKQog
I2VuZGlmCkBAIC05MCw2ICs5MSw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2QKICAgICBlbmNvZGVyLT5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRo
KTsKICAgICBlbmNvZGVyLT5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5z
aW9uSGFuZGxlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vi
c3RpdHV0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkRW5hYmxlS2VybmluZ0FuZExp
Z2F0dXJlc0J5RGVmYXVsdCk7CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgZW5jb2Rlci0+ZW5j
b2RlKHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwogICAgIGVuY29kZXItPmVuY29kZShjZlVS
TENhY2hlUGF0aCk7CkBAIC0xOTMsNiArMTk1LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24pKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVy
cy5zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkUGFpbnROYXRpdmVDb250cm9scykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMTMwNDUzKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDYgKzExMiw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0
ZW5zaW9uSGFuZGxlOwogCiAgICAgYm9vbCBzaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRp
b247CisgICAgYm9vbCBzaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0Owog
I2VsaWYgUExBVEZPUk0oV0lOKQogICAgIFN0cmluZyBjZlVSTENhY2hlUGF0aDsKICAgICB1aW50
NjRfdCBjZlVSTENhY2hlRGlza0NhcGFjaXR5OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQkocmV2aXNpb24gMTMwNDUzKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC05OSw2ICs5OSw3IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIK
IAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogICAgIHBhcmFt
ZXRlcnMuc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uID0gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIk5TRm9udERlZmF1bHRTY3JlZW5G
b250U3Vic3RpdHV0aW9uRW5hYmxlZCJdOworICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlS2Vy
bmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJXZWJLaXRLZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5
RGVmYXVsdCJdOwogI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCShyZXZpc2lvbiAxMzA0NTMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZvbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KQEAgLTI3Miw2ICsyNzMsNyBAQCB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgfQogCiAgICAgbV9zaG91bGRG
b3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24gPSBwYXJhbWV0ZXJzLnNob3VsZEZvcmNlU2NyZWVu
Rm9udFN1YnN0aXR1dGlvbjsKKyAgICBGb250OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cyhwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQgPyBL
ZXJuaW5nIHwgTGlnYXR1cmVzIDogMCk7CiAKICAgICBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVy
UG9ydCA9IHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQucG9ydCgpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzA1ODIpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMC0wNiAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdC9tYWMgcGFy
dCBvZiA8cmRhcjovL3Byb2JsZW0vMTI0NDY1MDc+IFttYWNdIFdlYktpdCBjbGllbnRzIGNhbm5v
dCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRleHQtcmVuZGVyaW5nOiBhdXRvCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODYwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKTogQWRkZWQgYSBjYWxsIHRvIEZvbnQ6
OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgdG8gZW5hYmxlCisgICAgICAgIGtlcm5p
bmcgYW5kIGxpZ2F0dXJlcyBpZiB0aGUgV2ViS2l0S2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRC
eURlZmF1bHQgdXNlciBkZWZhdWx0IGtleSBoYXMKKyAgICAgICAgdGhlIHZhbHVlIFlFUy4KKwog
MjAxMi0xMC0wNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMDU1NiBhbmQgcjEzMDU2NC4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDEzMDQ1MykKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzExNCw2ICszMTE0LDggQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgY29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
Ym9vbEZvcktleTpXZWJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdOwogICAgIGdyYW1t
YXJDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBib29sRm9yS2V5OldlYkdyYW1tYXJDaGVja2luZ0VuYWJsZWRdOwogCisgICAgRm9udDo6c2V0
RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gYm9vbEZvcktleTpAIldlYktpdEtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkQnlE
ZWZhdWx0Il0gPyBLZXJuaW5nIHwgTGlnYXR1cmVzIDogMCk7CisKICNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKICAgICBhdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlv
bkVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9y
S2V5OldlYkF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZF07CiAgICAgYXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBib29sRm9yS2V5OldlYkF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkXTsK
</data>
<flag name="review"
          id="180135"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>