<?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>156910</bug_id>
          
          <creation_ts>2016-04-22 06:18:59 -0700</creation_ts>
          <short_desc>RenderMathMLOperator: add getBaseGlyph and avoid passing m_textContent as a parameter</short_desc>
          <delta_ts>2016-04-28 05:20:27 -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>MathML</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>157131</dependson>
          <blocked>152244</blocked>
    
    <blocked>156913</blocked>
    
    <blocked>156921</blocked>
    
    <blocked>156950</blocked>
    
    <blocked>157071</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbarton</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rego</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186236</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-22 06:18:59 -0700</bug_when>
    <thetext>Splitting another first step from bug 152244.

The RenderStyle parameter is not really needed yet until we move getBaseGlyph code, but I&apos;m adding it for consistency with the MathOperator class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186240</commentid>
    <comment_count>1</comment_count>
      <attachid>277058</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-22 06:26:41 -0700</bug_when>
    <thetext>Created attachment 277058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186242</commentid>
    <comment_count>2</comment_count>
      <attachid>277058</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-22 06:45:09 -0700</bug_when>
    <thetext>Comment on attachment 277058
Patch

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

LGTM. Nice refactoring.

&gt; Source/WebCore/rendering/mathml/RenderMathMLOperator.h:146
&gt; +    StretchyData getDisplayStyleLargeOperator() const;

Maybe we can take advantage to remove the &quot;get&quot; prefix and rename this to displayStyleLargeOperator().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186244</commentid>
    <comment_count>3</comment_count>
      <attachid>277058</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-22 06:51:23 -0700</bug_when>
    <thetext>Comment on attachment 277058
Patch

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

&gt;&gt; Source/WebCore/rendering/mathml/RenderMathMLOperator.h:146
&gt;&gt; +    StretchyData getDisplayStyleLargeOperator() const;
&gt; 
&gt; Maybe we can take advantage to remove the &quot;get&quot; prefix and rename this to displayStyleLargeOperator().

When this is moved to the MathOperator class it does not return a value but just finds such a large operator and set the MathOperator members immediately. And it actually get renamed findDisplayStyleLargeOperator. I plan to do this step in a next patch, so I don&apos;t think remove the get* prefix for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186878</commentid>
    <comment_count>4</comment_count>
      <attachid>277058</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-25 00:49:10 -0700</bug_when>
    <thetext>Comment on attachment 277058
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/mathml/RenderMathMLOperator.h:146
&gt;&gt;&gt; +    StretchyData getDisplayStyleLargeOperator() const;
&gt;&gt; 
&gt;&gt; Maybe we can take advantage to remove the &quot;get&quot; prefix and rename this to displayStyleLargeOperator().
&gt; 
&gt; When this is moved to the MathOperator class it does not return a value but just finds such a large operator and set the MathOperator members immediately. And it actually get renamed findDisplayStyleLargeOperator. I plan to do this step in a next patch, so I don&apos;t think remove the get* prefix for now.

The rename to findDisplayStyleLargeOperator and removal of return value is done on the patch for bug 156913.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187723</commentid>
    <comment_count>5</comment_count>
      <attachid>277469</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-27 05:55:18 -0700</bug_when>
    <thetext>Created attachment 277469
Patch

Minor change: we avoid passing m_textContent to findStretchyData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188197</commentid>
    <comment_count>6</comment_count>
      <attachid>277469</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-04-28 04:22:11 -0700</bug_when>
    <thetext>Comment on attachment 277469
Patch

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

LGTM

&gt; Source/WebCore/ChangeLog:12
&gt; +        (WebCore::RenderMathMLOperator::italicCorrection): We do not need to pass m_textContent to getDisplayStyleLargeOperator.
&gt; +        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We use getBaseGlyph and do not pass m_textContent to getDisplayStyleLargeOperator or findStretchyData.

Are these lines wrapped?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188204</commentid>
    <comment_count>7</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-28 05:09:15 -0700</bug_when>
    <thetext>Committed r200185: &lt;http://trac.webkit.org/changeset/200185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188207</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 05:14:21 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 157131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188212</commentid>
    <comment_count>9</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-04-28 05:20:27 -0700</bug_when>
    <thetext>Committed r200187: &lt;http://trac.webkit.org/changeset/200187&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277058</attachid>
            <date>2016-04-22 06:26:41 -0700</date>
            <delta_ts>2016-04-27 05:55:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156910-20160422152704.patch</filename>
            <type>text/plain</type>
            <size>9178</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY3MjUwNGJiODVjMmY1
YTBmZjRmMzQ5YjFhZTRkNGU2ZGQ0MDI1Ny4uNjBmOTU0ZTRmMDQwZTU4YWI1MGQ0YjU2N2JlYmE1
NDhmOWNlNzM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA0LTIyICBGcmVk
ZXJpYyBXYW5nICA8ZnJlZC53YW5nQGZyZWUuZnI+CisKKyAgICAgICAgUmVuZGVyTWF0aE1MT3Bl
cmF0b3IgcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBnZXRCYXNlR2x5cGggYW5kIHJlbW92ZSBwYXJh
bWV0ZXIgZnJvbSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoZSBiZWhhdmlv
ciBpcyBub3QgY2hhbmdlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MT3BlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6
Oml0YWxpY0NvcnJlY3Rpb24pOiBXZSBkbyBub3QgbmVlZCB0byBwYXNzIG1fdGV4dENvbnRlbnQg
dG8gZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IFdlIHVzZSBn
ZXRCYXNlR2x5cGggYW5kIGRvIG5vdCBwYXNzIG1fdGV4dENvbnRlbnQgdG8gZ2V0RGlzcGxheVN0
eWxlTGFyZ2VPcGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9y
OjpnZXRCYXNlR2x5cGgpOiBJbnRyb2R1Y2UgYSBoZWxwZXIgZnVuY3Rpb24gdG8gcmV0cmlldmUg
dGhlIGJhc2UgZ2x5cGggYW5kIGRvIHNvbWUgdmFsaWRpdHkgY2hlY2tzLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3Ip
OiBXZSByZW1vdmUgdGhlIGNoYXJhY3RlciBwYXJhbWV0ZXIgYXMgaXQgaXMgYWx3YXlzIG1fdGV4
dENvbnRlbnQuCisgICAgICAgIFdlIHVzZSBnZXRCYXNlR2x5cGggYW5kIHJlcGxhY2UgcHJpbWFy
eUZvbnQgd2l0aCBiYXNlR2x5cGguZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TE9wZXJhdG9yOjpmaW5kU3RyZXRjaHlEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlU3R5bGUpOiBXZSBkbyBub3QgcGFzcyBtX3RleHRD
b250ZW50IHRvIGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3IuCisgICAgICAgICogcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOiBEZWNsYXJlIGdldEJhc2VHbHlwaCBh
bmQgcmVtb3ZlIHRoZSBwYXJhbWV0ZXIgZnJvbSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9y
LgorCiAyMDE2LTA0LTIxICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBNb3JlIGltcHJvdmVtZW50cyBhbmQgZXhwbGFuYXRpb25zIHJlZ2FyZGluZyByZXNldHRp
bmcgQ1NTIHByb3BlcnRpZXMgb24gdGhlIDxtYXRoPiBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCmlu
ZGV4IDgzZGIzNTIzMjg4NjFjNzQwOGZkMzhmMDUxMDYyNjVlOTY1MzI5YmUuLjFhOWU2MDFjNGI0
ZTc1NjMwOTEwYTA4MTY4NzI0NTVhNzNmNmU1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0yMDcs
NyArMjA3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6aXRhbGljQ29ycmVj
dGlvbigpIGNvbnN0CiAgICAgaWYgKGlzTGFyZ2VPcGVyYXRvckluRGlzcGxheVN0eWxlKCkpIHsK
ICAgICAgICAgY29uc3QgYXV0byYgcHJpbWFyeUZvbnQgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCku
cHJpbWFyeUZvbnQoKTsKICAgICAgICAgaWYgKGF1dG8qIG1hdGhEYXRhID0gcHJpbWFyeUZvbnQu
bWF0aERhdGEoKSkgewotICAgICAgICAgICAgU3RyZXRjaHlEYXRhIGxhcmdlT3BlcmF0b3IgPSBn
ZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKG1fdGV4dENvbnRlbnQpOworICAgICAgICAgICAg
U3RyZXRjaHlEYXRhIGxhcmdlT3BlcmF0b3IgPSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9y
KCk7CiAgICAgICAgICAgICByZXR1cm4gbWF0aERhdGEtPmdldEl0YWxpY0NvcnJlY3Rpb24ocHJp
bWFyeUZvbnQsIGxhcmdlT3BlcmF0b3IudmFyaWFudCgpLmdseXBoKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTMwNiw4ICszMDYsOCBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBH
bHlwaERhdGEgZGF0YSA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5nbHlwaERhdGFGb3JDaGFyYWN0
ZXIobV90ZXh0Q29udGVudCwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKLSAg
ICBmbG9hdCBtYXhpbXVtR2x5cGhXaWR0aCA9IGFkdmFuY2VXaWR0aEZvckdseXBoKGRhdGEpOwor
ICAgIEdseXBoRGF0YSBiYXNlR2x5cGg7CisgICAgZmxvYXQgbWF4aW11bUdseXBoV2lkdGggPSBn
ZXRCYXNlR2x5cGgoc3R5bGUoKSwgYmFzZUdseXBoKSA/IGFkdmFuY2VXaWR0aEZvckdseXBoKGJh
c2VHbHlwaCkgOiAwOwogICAgIGlmICghbV9pc1ZlcnRpY2FsKSB7CiAgICAgICAgIGlmIChtYXhp
bXVtR2x5cGhXaWR0aCA8IHN0cmV0Y2hTaXplKCkpCiAgICAgICAgICAgICBtYXhpbXVtR2x5cGhX
aWR0aCA9IHN0cmV0Y2hTaXplKCk7CkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAgIH0KICAgICBp
ZiAoaXNMYXJnZU9wZXJhdG9ySW5EaXNwbGF5U3R5bGUoKSkgewogICAgICAgICAvLyBMYXJnZSBv
cGVyYXRvcnMgaW4gU1RJWCBXb3JkIGhhdmUgaW5jb3JyZWN0IGFkdmFuY2Ugd2lkdGgsIGNhdXNp
bmcgbWlzcGxhY2VtZW50IG9mIHN1cGVyc2NyaXB0LCBzbyB3ZSB1c2UgdGhlIGdseXBoIGJvdW5k
IGluc3RlYWQgKGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9zdGl4Zm9udHMvdHJhY2tpbmcvNDkv
KS4KLSAgICAgICAgU3RyZXRjaHlEYXRhIGxhcmdlT3BlcmF0b3IgPSBnZXREaXNwbGF5U3R5bGVM
YXJnZU9wZXJhdG9yKG1fdGV4dENvbnRlbnQpOworICAgICAgICBTdHJldGNoeURhdGEgbGFyZ2VP
cGVyYXRvciA9IGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3IoKTsKICAgICAgICAgaWYgKGxh
cmdlT3BlcmF0b3IubW9kZSgpID09IERyYXdTaXplVmFyaWFudCkKICAgICAgICAgICAgIG1heGlt
dW1HbHlwaFdpZHRoID0gYm91bmRzRm9yR2x5cGgobGFyZ2VPcGVyYXRvci52YXJpYW50KCkpLndp
ZHRoKCk7CiAgICAgfSBlbHNlIHsKQEAgLTM4Niw2ICszODYsMTIgQEAgdm9pZCBSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWwKICAgICB1cGRhdGVPcGVyYXRvclByb3BlcnRpZXMoKTsKIH0KIAorYm9vbCBSZW5k
ZXJNYXRoTUxPcGVyYXRvcjo6Z2V0QmFzZUdseXBoKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
R2x5cGhEYXRhJiBiYXNlR2x5cGgpIGNvbnN0Cit7CisgICAgYmFzZUdseXBoID0gc3R5bGUuZm9u
dENhc2NhZGUoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV90ZXh0Q29udGVudCwgIXN0eWxlLmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7CisgICAgcmV0dXJuIGJhc2VHbHlwaC5pc1ZhbGlkKCkg
JiYgYmFzZUdseXBoLmZvbnQgPT0gJnN0eWxlLmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKTsK
K30KKwogYm9vbCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6Z2V0R2x5cGhBc3NlbWJseUZhbGxCYWNr
KFZlY3RvcjxPcGVuVHlwZU1hdGhEYXRhOjpBc3NlbWJseVBhcnQ+IGFzc2VtYmx5UGFydHMsIFN0
cmV0Y2h5RGF0YSYgc3RyZXRjaHlEYXRhKSBjb25zdAogewogICAgIEdseXBoRGF0YSB0b3A7CkBA
IC00ODAsMzAgKzQ4NiwyOSBAQCBib29sIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpnZXRHbHlwaEFz
c2VtYmx5RmFsbEJhY2soVmVjdG9yPE9wZW5UeXBlTWF0aERhdGE6OkFzcwogICAgIHJldHVybiB0
cnVlOwogfQogCi1SZW5kZXJNYXRoTUxPcGVyYXRvcjo6U3RyZXRjaHlEYXRhIFJlbmRlck1hdGhN
TE9wZXJhdG9yOjpnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKFVDaGFyIGNoYXJhY3Rlcikg
Y29uc3QKK1JlbmRlck1hdGhNTE9wZXJhdG9yOjpTdHJldGNoeURhdGEgUmVuZGVyTWF0aE1MT3Bl
cmF0b3I6OmdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3IoKSBjb25zdAogewogICAgIFN0cmV0
Y2h5RGF0YSBkYXRhOwogCiAgICAgQVNTRVJUKG1faXNWZXJ0aWNhbCAmJiBpc0xhcmdlT3BlcmF0
b3JJbkRpc3BsYXlTdHlsZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIHByaW1hcnlGb250ID0gc3R5
bGUoKS5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCk7Ci0gICAgR2x5cGhEYXRhIGJhc2VHbHlw
aCA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVy
LCAhc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpOwotICAgIGlmICghcHJpbWFyeUZv
bnQubWF0aERhdGEoKSB8fCBiYXNlR2x5cGguZm9udCAhPSAmcHJpbWFyeUZvbnQgfHwgIWJhc2VH
bHlwaC5mb250IHx8ICFiYXNlR2x5cGguZ2x5cGgpCisgICAgR2x5cGhEYXRhIGJhc2VHbHlwaDsK
KyAgICBpZiAoIWdldEJhc2VHbHlwaChzdHlsZSgpLCBiYXNlR2x5cGgpIHx8ICFiYXNlR2x5cGgu
Zm9udC0+bWF0aERhdGEoKSkKICAgICAgICAgcmV0dXJuIGRhdGE7CiAKICAgICBWZWN0b3I8R2x5
cGg+IHNpemVWYXJpYW50czsKICAgICBWZWN0b3I8T3BlblR5cGVNYXRoRGF0YTo6QXNzZW1ibHlQ
YXJ0PiBhc3NlbWJseVBhcnRzOwogCiAgICAgLy8gVGhlIHZhbHVlIG9mIGRpc3BsYXlPcGVyYXRv
ck1pbkhlaWdodCBpcyBzb21ldGltZXMgdG9vIHNtYWxsLCBzbyB3ZSBlbnN1cmUgdGhhdCBpdCBp
cyBhdCBsZWFzdCBcc3FydHsyfSB0aW1lcyB0aGUgc2l6ZSBvZiB0aGUgYmFzZSBnbHlwaC4KLSAg
ICBmbG9hdCBkaXNwbGF5T3BlcmF0b3JNaW5IZWlnaHQgPSBzdGQ6Om1heChiYXNlR2x5cGguZm9u
dC0+Ym91bmRzRm9yR2x5cGgoYmFzZUdseXBoLmdseXBoKS5oZWlnaHQoKSAqIHNxcnRPZlR3b0Zs
b2F0LCBwcmltYXJ5Rm9udC5tYXRoRGF0YSgpLT5nZXRNYXRoQ29uc3RhbnQocHJpbWFyeUZvbnQs
IE9wZW5UeXBlTWF0aERhdGE6OkRpc3BsYXlPcGVyYXRvck1pbkhlaWdodCkpOworICAgIGZsb2F0
IGRpc3BsYXlPcGVyYXRvck1pbkhlaWdodCA9IHN0ZDo6bWF4KGJhc2VHbHlwaC5mb250LT5ib3Vu
ZHNGb3JHbHlwaChiYXNlR2x5cGguZ2x5cGgpLmhlaWdodCgpICogc3FydE9mVHdvRmxvYXQsIGJh
c2VHbHlwaC5mb250LT5tYXRoRGF0YSgpLT5nZXRNYXRoQ29uc3RhbnQoKmJhc2VHbHlwaC5mb250
LCBPcGVuVHlwZU1hdGhEYXRhOjpEaXNwbGF5T3BlcmF0b3JNaW5IZWlnaHQpKTsKIAotICAgIHBy
aW1hcnlGb250Lm1hdGhEYXRhKCktPmdldE1hdGhWYXJpYW50cyhiYXNlR2x5cGguZ2x5cGgsIHRy
dWUsIHNpemVWYXJpYW50cywgYXNzZW1ibHlQYXJ0cyk7CisgICAgYmFzZUdseXBoLmZvbnQtPm1h
dGhEYXRhKCktPmdldE1hdGhWYXJpYW50cyhiYXNlR2x5cGguZ2x5cGgsIHRydWUsIHNpemVWYXJp
YW50cywgYXNzZW1ibHlQYXJ0cyk7CiAKICAgICAvLyBXZSBjaG9vc2UgdGhlIGZpcnN0IHNpemUg
dmFyaWFudCB0aGF0IGlzIGxhcmdlciB0aGFuIHRoZSBleHBlY3RlZCBkaXNwbGF5T3BlcmF0b3JN
aW5IZWlnaHQgYW5kIG90aGVyd2lzZSBmYWxsYmFjayB0byB0aGUgbGFyZ2VzdCB2YXJpYW50Lgog
ICAgIGZvciAoYXV0byYgdmFyaWFudCA6IHNpemVWYXJpYW50cykgewogICAgICAgICBHbHlwaERh
dGEgc2l6ZVZhcmlhbnQ7CiAgICAgICAgIHNpemVWYXJpYW50LmdseXBoID0gdmFyaWFudDsKLSAg
ICAgICAgc2l6ZVZhcmlhbnQuZm9udCA9ICZwcmltYXJ5Rm9udDsKKyAgICAgICAgc2l6ZVZhcmlh
bnQuZm9udCA9IGJhc2VHbHlwaC5mb250OwogICAgICAgICBkYXRhLnNldFNpemVWYXJpYW50TW9k
ZShzaXplVmFyaWFudCk7CiAgICAgICAgIGlmIChib3VuZHNGb3JHbHlwaChzaXplVmFyaWFudCku
aGVpZ2h0KCkgPj0gZGlzcGxheU9wZXJhdG9yTWluSGVpZ2h0KQogICAgICAgICAgICAgcmV0dXJu
IGRhdGE7CkBAIC01MTgsMTggKzUyMywxOSBAQCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6U3RyZXRj
aHlEYXRhIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpmaW5kU3RyZXRjaHlEYXRhKFVDaGFyCiAgICAg
U3RyZXRjaHlEYXRhIGRhdGE7CiAgICAgU3RyZXRjaHlEYXRhIGFzc2VtYmx5RGF0YTsKIAotICAg
IGNvbnN0IGF1dG8mIHByaW1hcnlGb250ID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpLnByaW1hcnlG
b250KCk7Ci0gICAgR2x5cGhEYXRhIGJhc2VHbHlwaCA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5n
bHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCAhc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkpOworICAgIEdseXBoRGF0YSBiYXNlR2x5cGg7CisgICAgaWYgKCFnZXRCYXNlR2x5
cGgoc3R5bGUoKSwgYmFzZUdseXBoKSkKKyAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgCi0gICAg
aWYgKHByaW1hcnlGb250Lm1hdGhEYXRhKCkgJiYgYmFzZUdseXBoLmZvbnQgPT0gJnByaW1hcnlG
b250KSB7CisgICAgaWYgKGJhc2VHbHlwaC5mb250LT5tYXRoRGF0YSgpKSB7CiAgICAgICAgIFZl
Y3RvcjxHbHlwaD4gc2l6ZVZhcmlhbnRzOwogICAgICAgICBWZWN0b3I8T3BlblR5cGVNYXRoRGF0
YTo6QXNzZW1ibHlQYXJ0PiBhc3NlbWJseVBhcnRzOwotICAgICAgICBwcmltYXJ5Rm9udC5tYXRo
RGF0YSgpLT5nZXRNYXRoVmFyaWFudHMoYmFzZUdseXBoLmdseXBoLCBtX2lzVmVydGljYWwsIHNp
emVWYXJpYW50cywgYXNzZW1ibHlQYXJ0cyk7CisgICAgICAgIGJhc2VHbHlwaC5mb250LT5tYXRo
RGF0YSgpLT5nZXRNYXRoVmFyaWFudHMoYmFzZUdseXBoLmdseXBoLCBtX2lzVmVydGljYWwsIHNp
emVWYXJpYW50cywgYXNzZW1ibHlQYXJ0cyk7CiAgICAgICAgIC8vIFdlIHZlcmlmeSB0aGUgc2l6
ZSB2YXJpYW50cy4KICAgICAgICAgZm9yIChhdXRvJiB2YXJpYW50IDogc2l6ZVZhcmlhbnRzKSB7
CiAgICAgICAgICAgICBHbHlwaERhdGEgc2l6ZVZhcmlhbnQ7CiAgICAgICAgICAgICBzaXplVmFy
aWFudC5nbHlwaCA9IHZhcmlhbnQ7Ci0gICAgICAgICAgICBzaXplVmFyaWFudC5mb250ID0gJnBy
aW1hcnlGb250OworICAgICAgICAgICAgc2l6ZVZhcmlhbnQuZm9udCA9IGJhc2VHbHlwaC5mb250
OwogICAgICAgICAgICAgaWYgKG1heGltdW1HbHlwaFdpZHRoKQogICAgICAgICAgICAgICAgICpt
YXhpbXVtR2x5cGhXaWR0aCA9IHN0ZDo6bWF4KCptYXhpbXVtR2x5cGhXaWR0aCwgYWR2YW5jZVdp
ZHRoRm9yR2x5cGgoc2l6ZVZhcmlhbnQpKTsKICAgICAgICAgICAgIGVsc2UgewpAQCAtNjI1LDcg
KzYzMSw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZVN0eWxlKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKG1faXNWZXJ0aWNhbCAmJiBpc0xhcmdlT3BlcmF0b3JJbkRp
c3BsYXlTdHlsZSgpKQotICAgICAgICBtX3N0cmV0Y2h5RGF0YSA9IGdldERpc3BsYXlTdHlsZUxh
cmdlT3BlcmF0b3IobV90ZXh0Q29udGVudCk7CisgICAgICAgIG1fc3RyZXRjaHlEYXRhID0gZ2V0
RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvcigpOwogICAgIGVsc2UgewogICAgICAgICAvLyBXZSBk
byBub3Qgc3RyZXRjaCBpZiB0aGUgYmFzZSBnbHlwaCBpcyBsYXJnZSBlbm91Z2guCiAgICAgICAg
IEdseXBoRGF0YSBiYXNlR2x5cGggPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCkuZ2x5cGhEYXRhRm9y
Q2hhcmFjdGVyKG1fdGV4dENvbnRlbnQsICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTE9wZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTE9wZXJhdG9yLmgKaW5kZXggYWFlZTQ2YWQ1ODY0ODczNDkzMTRjNzFlZDdhZDI2OTNhN2Y5
MThmMS4uYmIzZjgxZjJmNTNlMWYzYjNmNDM1ZjgyYWU3M2I2ODkzMWI0NGZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0
b3IuaApAQCAtMTQxLDggKzE0MSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZEFsbG93
U3RyZXRjaGluZygpIGNvbnN0OwogCisgICAgYm9vbCBnZXRCYXNlR2x5cGgoY29uc3QgUmVuZGVy
U3R5bGUmLCBHbHlwaERhdGEmKSBjb25zdDsKICAgICBib29sIGdldEdseXBoQXNzZW1ibHlGYWxs
QmFjayhWZWN0b3I8T3BlblR5cGVNYXRoRGF0YTo6QXNzZW1ibHlQYXJ0PiwgU3RyZXRjaHlEYXRh
JikgY29uc3Q7Ci0gICAgU3RyZXRjaHlEYXRhIGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3Io
VUNoYXIpIGNvbnN0OworICAgIFN0cmV0Y2h5RGF0YSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJh
dG9yKCkgY29uc3Q7CiAgICAgU3RyZXRjaHlEYXRhIGZpbmRTdHJldGNoeURhdGEoVUNoYXIsIGZs
b2F0KiBtYXhpbXVtR2x5cGhXaWR0aCk7CiAKICAgICBlbnVtIEdseXBoUGFpbnRUcmltbWluZyB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277469</attachid>
            <date>2016-04-27 05:55:18 -0700</date>
            <delta_ts>2016-04-28 04:22:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GlyphBase.patch</filename>
            <type>text/plain</type>
            <size>11371</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBhMTJmMGY0NzQ0ZGM3YjAzZWE5YTdlMGY0ZTljNTE5MmVkMWQ4ZWU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogVHVlLCAyNiBBcHIgMjAxNiAwOTowMTowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTld
IEdseXBoQmFzZQoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE5ICsrKysrKysrKwogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MT3BlcmF0b3IuY3BwICAgICAgfCA0OCArKysrKysrKysrKystLS0tLS0tLS0tCiAuLi4vcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oICAgICAgICB8ICA1ICsrLQogMyBm
aWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzlmMTVjNi4uYmQ0YTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2
LTA0LTIyICBGcmVkZXJpYyBXYW5nICA8ZnJlZC53YW5nQGZyZWUuZnI+CisKKyAgICAgICAgUmVu
ZGVyTWF0aE1MT3BlcmF0b3IgcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBnZXRCYXNlR2x5cGggYW5k
IHJlbW92ZSBwYXJhbWV0ZXIgZnJvbSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IHRoZSBiZWhhdmlvciBpcyBub3QgY2hhbmdlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0
aE1MT3BlcmF0b3I6Oml0YWxpY0NvcnJlY3Rpb24pOiBXZSBkbyBub3QgbmVlZCB0byBwYXNzIG1f
dGV4dENvbnRlbnQgdG8gZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvci4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cyk6IFdlIHVzZSBnZXRCYXNlR2x5cGggYW5kIGRvIG5vdCBwYXNzIG1fdGV4dENvbnRlbnQgdG8g
Z2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvciBvciBmaW5kU3RyZXRjaHlEYXRhLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmdldEJhc2VHbHlwaCk6IEludHJvZHVj
ZSBhIGhlbHBlciBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgYmFzZSBnbHlwaCBhbmQgZG8gc29t
ZSB2YWxpZGl0eSBjaGVja3MuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVyYXRv
cjo6Z2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvcik6IFdlIHJlbW92ZSB0aGUgY2hhcmFjdGVy
IHBhcmFtZXRlciBhcyBpdCBpcyBhbHdheXMgbV90ZXh0Q29udGVudC4KKyAgICAgICAgV2UgdXNl
IGdldEJhc2VHbHlwaCBhbmQgcmVwbGFjZSBwcmltYXJ5Rm9udCB3aXRoIGJhc2VHbHlwaC5mb250
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmZpbmRTdHJldGNoeURh
dGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRh
dGVTdHlsZSk6IFdlIGRvIG5vdCBwYXNzIG1fdGV4dENvbnRlbnQgdG8gZ2V0RGlzcGxheVN0eWxl
TGFyZ2VPcGVyYXRvciBvciBmaW5kU3RyZXRjaHlEYXRhLgorICAgICAgICAqIHJlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaDogRGVjbGFyZSBnZXRCYXNlR2x5cGggYW5kIHJl
bW92ZSB0aGUgcGFyYW1ldGVyIGZyb20gZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvciBhbmQg
ZmluZFN0cmV0Y2h5RGF0YS4KKwogMjAxNi0wNC0yNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIGJ1aWxkIGZsYWcgZm9yIHRlbXBsYXRlIGVs
ZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE9wZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MT3BlcmF0b3IuY3BwCmluZGV4IDRmODYxM2IuLjg4NjdkMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0
b3IuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxPcGVyYXRv
cjo6aXRhbGljQ29ycmVjdGlvbigpIGNvbnN0CiAgICAgaWYgKGlzTGFyZ2VPcGVyYXRvckluRGlz
cGxheVN0eWxlKCkpIHsKICAgICAgICAgY29uc3QgYXV0byYgcHJpbWFyeUZvbnQgPSBzdHlsZSgp
LmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKTsKICAgICAgICAgaWYgKGF1dG8qIG1hdGhEYXRh
ID0gcHJpbWFyeUZvbnQubWF0aERhdGEoKSkgewotICAgICAgICAgICAgU3RyZXRjaHlEYXRhIGxh
cmdlT3BlcmF0b3IgPSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKG1fdGV4dENvbnRlbnQp
OworICAgICAgICAgICAgU3RyZXRjaHlEYXRhIGxhcmdlT3BlcmF0b3IgPSBnZXREaXNwbGF5U3R5
bGVMYXJnZU9wZXJhdG9yKCk7CiAgICAgICAgICAgICByZXR1cm4gbWF0aERhdGEtPmdldEl0YWxp
Y0NvcnJlY3Rpb24ocHJpbWFyeUZvbnQsIGxhcmdlT3BlcmF0b3IudmFyaWFudCgpLmdseXBoKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTMwNiw4ICszMDYsOCBAQCB2b2lkIFJlbmRlck1hdGhNTE9w
ZXJhdG9yOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBHbHlwaERhdGEgZGF0YSA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5nbHlw
aERhdGFGb3JDaGFyYWN0ZXIobV90ZXh0Q29udGVudCwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpKTsKLSAgICBmbG9hdCBtYXhpbXVtR2x5cGhXaWR0aCA9IGFkdmFuY2VXaWR0aEZv
ckdseXBoKGRhdGEpOworICAgIEdseXBoRGF0YSBiYXNlR2x5cGg7CisgICAgZmxvYXQgbWF4aW11
bUdseXBoV2lkdGggPSBnZXRCYXNlR2x5cGgoc3R5bGUoKSwgYmFzZUdseXBoKSA/IGFkdmFuY2VX
aWR0aEZvckdseXBoKGJhc2VHbHlwaCkgOiAwOwogICAgIGlmICghbV9pc1ZlcnRpY2FsKSB7CiAg
ICAgICAgIGlmIChtYXhpbXVtR2x5cGhXaWR0aCA8IHN0cmV0Y2hTaXplKCkpCiAgICAgICAgICAg
ICBtYXhpbXVtR2x5cGhXaWR0aCA9IHN0cmV0Y2hTaXplKCk7CkBAIC0zMTcsMTIgKzMxNywxMiBA
QCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCiAgICAgfQogICAgIGlmIChpc0xhcmdlT3BlcmF0b3JJbkRpc3BsYXlTdHlsZSgpKSB7CiAg
ICAgICAgIC8vIExhcmdlIG9wZXJhdG9ycyBpbiBTVElYIFdvcmQgaGF2ZSBpbmNvcnJlY3QgYWR2
YW5jZSB3aWR0aCwgY2F1c2luZyBtaXNwbGFjZW1lbnQgb2Ygc3VwZXJzY3JpcHQsIHNvIHdlIHVz
ZSB0aGUgZ2x5cGggYm91bmQgaW5zdGVhZCAoaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL3N0aXhm
b250cy90cmFja2luZy80OS8pLgotICAgICAgICBTdHJldGNoeURhdGEgbGFyZ2VPcGVyYXRvciA9
IGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3IobV90ZXh0Q29udGVudCk7CisgICAgICAgIFN0
cmV0Y2h5RGF0YSBsYXJnZU9wZXJhdG9yID0gZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvcigp
OwogICAgICAgICBpZiAobGFyZ2VPcGVyYXRvci5tb2RlKCkgPT0gRHJhd1NpemVWYXJpYW50KQog
ICAgICAgICAgICAgbWF4aW11bUdseXBoV2lkdGggPSBib3VuZHNGb3JHbHlwaChsYXJnZU9wZXJh
dG9yLnZhcmlhbnQoKSkud2lkdGgoKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBGSVhNRTog
c29tZSBnbHlwaHMgKGUuZy4gdGhlIG9uZSBmb3IgIkZSQUNUSU9OIFNMQVNIIiBpbiB0aGUgU1RJ
WCBNYXRoIGZvbnQgb3IgbGFyZ2Ugb3BlcmF0b3JzKSBoYXZlIGEgd2lkdGggdGhhdCBkZXBlbmRz
IG9uIHRoZSBoZWlnaHQsIHJlc3VsdGluZyBpbiBsYXJnZSBnYXBzIChodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzI2KS4KLSAgICAgICAgZmluZFN0cmV0Y2h5RGF0
YShtX3RleHRDb250ZW50LCAmbWF4aW11bUdseXBoV2lkdGgpOworICAgICAgICBmaW5kU3RyZXRj
aHlEYXRhKCZtYXhpbXVtR2x5cGhXaWR0aCk7CiAgICAgfQogICAgIG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoID0gbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX2xlYWRpbmdTcGFjZSAr
IG1heGltdW1HbHlwaFdpZHRoICsgbV90cmFpbGluZ1NwYWNlOwogfQpAQCAtMzg2LDYgKzM4Niwx
MiBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bAogICAgIHVwZGF0ZU9wZXJhdG9yUHJvcGVydGll
cygpOwogfQogCitib29sIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpnZXRCYXNlR2x5cGgoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBHbHlwaERhdGEmIGJhc2VHbHlwaCkgY29uc3QKK3sKKyAgICBi
YXNlR2x5cGggPSBzdHlsZS5mb250Q2FzY2FkZSgpLmdseXBoRGF0YUZvckNoYXJhY3RlcihtX3Rl
eHRDb250ZW50LCAhc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKKyAgICByZXR1cm4g
YmFzZUdseXBoLmlzVmFsaWQoKSAmJiBiYXNlR2x5cGguZm9udCA9PSAmc3R5bGUuZm9udENhc2Nh
ZGUoKS5wcmltYXJ5Rm9udCgpOworfQorCiBib29sIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpnZXRH
bHlwaEFzc2VtYmx5RmFsbEJhY2soVmVjdG9yPE9wZW5UeXBlTWF0aERhdGE6OkFzc2VtYmx5UGFy
dD4gYXNzZW1ibHlQYXJ0cywgU3RyZXRjaHlEYXRhJiBzdHJldGNoeURhdGEpIGNvbnN0CiB7CiAg
ICAgR2x5cGhEYXRhIHRvcDsKQEAgLTQ5NiwzMCArNTAyLDI5IEBAIGJvb2wgUmVuZGVyTWF0aE1M
T3BlcmF0b3I6OmdldEdseXBoQXNzZW1ibHlGYWxsQmFjayhWZWN0b3I8T3BlblR5cGVNYXRoRGF0
YTo6QXNzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlbmRlck1hdGhNTE9wZXJhdG9yOjpTdHJl
dGNoeURhdGEgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0
b3IoVUNoYXIgY2hhcmFjdGVyKSBjb25zdAorUmVuZGVyTWF0aE1MT3BlcmF0b3I6OlN0cmV0Y2h5
RGF0YSBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6Z2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvcigp
IGNvbnN0CiB7CiAgICAgU3RyZXRjaHlEYXRhIGRhdGE7CiAKICAgICBBU1NFUlQobV9pc1ZlcnRp
Y2FsICYmIGlzTGFyZ2VPcGVyYXRvckluRGlzcGxheVN0eWxlKCkpOwogCi0gICAgY29uc3QgYXV0
byYgcHJpbWFyeUZvbnQgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKTsKLSAg
ICBHbHlwaERhdGEgYmFzZUdseXBoID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpLmdseXBoRGF0YUZv
ckNoYXJhY3RlcihjaGFyYWN0ZXIsICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7
Ci0gICAgaWYgKCFwcmltYXJ5Rm9udC5tYXRoRGF0YSgpIHx8IGJhc2VHbHlwaC5mb250ICE9ICZw
cmltYXJ5Rm9udCB8fCAhYmFzZUdseXBoLmZvbnQgfHwgIWJhc2VHbHlwaC5nbHlwaCkKKyAgICBH
bHlwaERhdGEgYmFzZUdseXBoOworICAgIGlmICghZ2V0QmFzZUdseXBoKHN0eWxlKCksIGJhc2VH
bHlwaCkgfHwgIWJhc2VHbHlwaC5mb250LT5tYXRoRGF0YSgpKQogICAgICAgICByZXR1cm4gZGF0
YTsKIAogICAgIFZlY3RvcjxHbHlwaD4gc2l6ZVZhcmlhbnRzOwogICAgIFZlY3RvcjxPcGVuVHlw
ZU1hdGhEYXRhOjpBc3NlbWJseVBhcnQ+IGFzc2VtYmx5UGFydHM7CiAKICAgICAvLyBUaGUgdmFs
dWUgb2YgZGlzcGxheU9wZXJhdG9yTWluSGVpZ2h0IGlzIHNvbWV0aW1lcyB0b28gc21hbGwsIHNv
IHdlIGVuc3VyZSB0aGF0IGl0IGlzIGF0IGxlYXN0IFxzcXJ0ezJ9IHRpbWVzIHRoZSBzaXplIG9m
IHRoZSBiYXNlIGdseXBoLgotICAgIGZsb2F0IGRpc3BsYXlPcGVyYXRvck1pbkhlaWdodCA9IHN0
ZDo6bWF4KGJhc2VHbHlwaC5mb250LT5ib3VuZHNGb3JHbHlwaChiYXNlR2x5cGguZ2x5cGgpLmhl
aWdodCgpICogc3FydE9mVHdvRmxvYXQsIHByaW1hcnlGb250Lm1hdGhEYXRhKCktPmdldE1hdGhD
b25zdGFudChwcmltYXJ5Rm9udCwgT3BlblR5cGVNYXRoRGF0YTo6RGlzcGxheU9wZXJhdG9yTWlu
SGVpZ2h0KSk7CisgICAgZmxvYXQgZGlzcGxheU9wZXJhdG9yTWluSGVpZ2h0ID0gc3RkOjptYXgo
YmFzZUdseXBoLmZvbnQtPmJvdW5kc0ZvckdseXBoKGJhc2VHbHlwaC5nbHlwaCkuaGVpZ2h0KCkg
KiBzcXJ0T2ZUd29GbG9hdCwgYmFzZUdseXBoLmZvbnQtPm1hdGhEYXRhKCktPmdldE1hdGhDb25z
dGFudCgqYmFzZUdseXBoLmZvbnQsIE9wZW5UeXBlTWF0aERhdGE6OkRpc3BsYXlPcGVyYXRvck1p
bkhlaWdodCkpOwogCi0gICAgcHJpbWFyeUZvbnQubWF0aERhdGEoKS0+Z2V0TWF0aFZhcmlhbnRz
KGJhc2VHbHlwaC5nbHlwaCwgdHJ1ZSwgc2l6ZVZhcmlhbnRzLCBhc3NlbWJseVBhcnRzKTsKKyAg
ICBiYXNlR2x5cGguZm9udC0+bWF0aERhdGEoKS0+Z2V0TWF0aFZhcmlhbnRzKGJhc2VHbHlwaC5n
bHlwaCwgdHJ1ZSwgc2l6ZVZhcmlhbnRzLCBhc3NlbWJseVBhcnRzKTsKIAogICAgIC8vIFdlIGNo
b29zZSB0aGUgZmlyc3Qgc2l6ZSB2YXJpYW50IHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIGV4cGVj
dGVkIGRpc3BsYXlPcGVyYXRvck1pbkhlaWdodCBhbmQgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIHRo
ZSBsYXJnZXN0IHZhcmlhbnQuCiAgICAgZm9yIChhdXRvJiB2YXJpYW50IDogc2l6ZVZhcmlhbnRz
KSB7CiAgICAgICAgIEdseXBoRGF0YSBzaXplVmFyaWFudDsKICAgICAgICAgc2l6ZVZhcmlhbnQu
Z2x5cGggPSB2YXJpYW50OwotICAgICAgICBzaXplVmFyaWFudC5mb250ID0gJnByaW1hcnlGb250
OworICAgICAgICBzaXplVmFyaWFudC5mb250ID0gYmFzZUdseXBoLmZvbnQ7CiAgICAgICAgIGRh
dGEuc2V0U2l6ZVZhcmlhbnRNb2RlKHNpemVWYXJpYW50KTsKICAgICAgICAgaWYgKGJvdW5kc0Zv
ckdseXBoKHNpemVWYXJpYW50KS5oZWlnaHQoKSA+PSBkaXNwbGF5T3BlcmF0b3JNaW5IZWlnaHQp
CiAgICAgICAgICAgICByZXR1cm4gZGF0YTsKQEAgLTUyNywyNSArNTMyLDI2IEBAIFJlbmRlck1h
dGhNTE9wZXJhdG9yOjpTdHJldGNoeURhdGEgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmdldERpc3Bs
YXlTdHlsZUxhcmdlT3BlCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVJlbmRlck1hdGhNTE9wZXJh
dG9yOjpTdHJldGNoeURhdGEgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmZpbmRTdHJldGNoeURhdGEo
VUNoYXIgY2hhcmFjdGVyLCBmbG9hdCogbWF4aW11bUdseXBoV2lkdGgpCitSZW5kZXJNYXRoTUxP
cGVyYXRvcjo6U3RyZXRjaHlEYXRhIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpmaW5kU3RyZXRjaHlE
YXRhKGZsb2F0KiBtYXhpbXVtR2x5cGhXaWR0aCkKIHsKICAgICBBU1NFUlQoIW1heGltdW1HbHlw
aFdpZHRoIHx8IG1faXNWZXJ0aWNhbCk7CiAKICAgICBTdHJldGNoeURhdGEgZGF0YTsKICAgICBT
dHJldGNoeURhdGEgYXNzZW1ibHlEYXRhOwogCi0gICAgY29uc3QgYXV0byYgcHJpbWFyeUZvbnQg
PSBzdHlsZSgpLmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKTsKLSAgICBHbHlwaERhdGEgYmFz
ZUdseXBoID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpLmdseXBoRGF0YUZvckNoYXJhY3RlcihjaGFy
YWN0ZXIsICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7CisgICAgR2x5cGhEYXRh
IGJhc2VHbHlwaDsKKyAgICBpZiAoIWdldEJhc2VHbHlwaChzdHlsZSgpLCBiYXNlR2x5cGgpKQor
ICAgICAgICByZXR1cm4gZGF0YTsKICAgICAKLSAgICBpZiAocHJpbWFyeUZvbnQubWF0aERhdGEo
KSAmJiBiYXNlR2x5cGguZm9udCA9PSAmcHJpbWFyeUZvbnQpIHsKKyAgICBpZiAoYmFzZUdseXBo
LmZvbnQtPm1hdGhEYXRhKCkpIHsKICAgICAgICAgVmVjdG9yPEdseXBoPiBzaXplVmFyaWFudHM7
CiAgICAgICAgIFZlY3RvcjxPcGVuVHlwZU1hdGhEYXRhOjpBc3NlbWJseVBhcnQ+IGFzc2VtYmx5
UGFydHM7Ci0gICAgICAgIHByaW1hcnlGb250Lm1hdGhEYXRhKCktPmdldE1hdGhWYXJpYW50cyhi
YXNlR2x5cGguZ2x5cGgsIG1faXNWZXJ0aWNhbCwgc2l6ZVZhcmlhbnRzLCBhc3NlbWJseVBhcnRz
KTsKKyAgICAgICAgYmFzZUdseXBoLmZvbnQtPm1hdGhEYXRhKCktPmdldE1hdGhWYXJpYW50cyhi
YXNlR2x5cGguZ2x5cGgsIG1faXNWZXJ0aWNhbCwgc2l6ZVZhcmlhbnRzLCBhc3NlbWJseVBhcnRz
KTsKICAgICAgICAgLy8gV2UgdmVyaWZ5IHRoZSBzaXplIHZhcmlhbnRzLgogICAgICAgICBmb3Ig
KGF1dG8mIHZhcmlhbnQgOiBzaXplVmFyaWFudHMpIHsKICAgICAgICAgICAgIEdseXBoRGF0YSBz
aXplVmFyaWFudDsKICAgICAgICAgICAgIHNpemVWYXJpYW50LmdseXBoID0gdmFyaWFudDsKLSAg
ICAgICAgICAgIHNpemVWYXJpYW50LmZvbnQgPSAmcHJpbWFyeUZvbnQ7CisgICAgICAgICAgICBz
aXplVmFyaWFudC5mb250ID0gYmFzZUdseXBoLmZvbnQ7CiAgICAgICAgICAgICBpZiAobWF4aW11
bUdseXBoV2lkdGgpCiAgICAgICAgICAgICAgICAgKm1heGltdW1HbHlwaFdpZHRoID0gc3RkOjpt
YXgoKm1heGltdW1HbHlwaFdpZHRoLCBhZHZhbmNlV2lkdGhGb3JHbHlwaChzaXplVmFyaWFudCkp
OwogICAgICAgICAgICAgZWxzZSB7CkBAIC01NjcsNyArNTczLDcgQEAgUmVuZGVyTWF0aE1MT3Bl
cmF0b3I6OlN0cmV0Y2h5RGF0YSBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6ZmluZFN0cmV0Y2h5RGF0
YShVQ2hhcgogICAgICAgICBjb25zdCBTdHJldGNoeUNoYXJhY3Rlciogc3RyZXRjaHlDaGFyYWN0
ZXIgPSBudWxscHRyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBtYXhJbmRleCA9IFdURl9BUlJB
WV9MRU5HVEgoc3RyZXRjaHlDaGFyYWN0ZXJzKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRl
eCA9IDA7IGluZGV4IDwgbWF4SW5kZXg7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIGlmIChzdHJl
dGNoeUNoYXJhY3RlcnNbaW5kZXhdLmNoYXJhY3RlciA9PSBjaGFyYWN0ZXIpIHsKKyAgICAgICAg
ICAgIGlmIChzdHJldGNoeUNoYXJhY3RlcnNbaW5kZXhdLmNoYXJhY3RlciA9PSBtX3RleHRDb250
ZW50KSB7CiAgICAgICAgICAgICAgICAgc3RyZXRjaHlDaGFyYWN0ZXIgPSAmc3RyZXRjaHlDaGFy
YWN0ZXJzW2luZGV4XTsKICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlKCkuaXNMZWZ0VG9SaWdo
dERpcmVjdGlvbigpICYmIGluZGV4IDwgbGVmdFJpZ2h0UGFpcnNDb3VudCAqIDIpIHsKICAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGluIHJpZ2h0LXRvLWxlZnQgZGlyZWN0aW9uIHdl
IHNlbGVjdCB0aGUgbWlycm9yZWQgZm9ybSBieSBhZGRpbmcgLTEgb3IgKzEgYWNjb3JkaW5nIHRv
IHRoZSBwYXJpdHkgb2YgaW5kZXguCkBAIC02NDEsMTQgKzY0NywxNCBAQCB2b2lkIFJlbmRlck1h
dGhNTE9wZXJhdG9yOjp1cGRhdGVTdHlsZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICht
X2lzVmVydGljYWwgJiYgaXNMYXJnZU9wZXJhdG9ySW5EaXNwbGF5U3R5bGUoKSkKLSAgICAgICAg
bV9zdHJldGNoeURhdGEgPSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKG1fdGV4dENvbnRl
bnQpOworICAgICAgICBtX3N0cmV0Y2h5RGF0YSA9IGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0
b3IoKTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gV2UgZG8gbm90IHN0cmV0Y2ggaWYgdGhlIGJh
c2UgZ2x5cGggaXMgbGFyZ2UgZW5vdWdoLgogICAgICAgICBHbHlwaERhdGEgYmFzZUdseXBoID0g
c3R5bGUoKS5mb250Q2FzY2FkZSgpLmdseXBoRGF0YUZvckNoYXJhY3RlcihtX3RleHRDb250ZW50
LCAhc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpOwogICAgICAgICBmbG9hdCBiYXNl
U2l6ZSA9IG1faXNWZXJ0aWNhbCA/IGhlaWdodEZvckdseXBoKGJhc2VHbHlwaCkgOiBhZHZhbmNl
V2lkdGhGb3JHbHlwaChiYXNlR2x5cGgpOwogICAgICAgICBpZiAoc3RyZXRjaFNpemUoKSA8PSBi
YXNlU2l6ZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdHJldGNoeURhdGEgPSBm
aW5kU3RyZXRjaHlEYXRhKG1fdGV4dENvbnRlbnQsIG51bGxwdHIpOworICAgICAgICBtX3N0cmV0
Y2h5RGF0YSA9IGZpbmRTdHJldGNoeURhdGEobnVsbHB0cik7CiAgICAgfQogCiAgICAgaWYgKG1f
aXNWZXJ0aWNhbCAmJiBtX3N0cmV0Y2h5RGF0YS5tb2RlKCkgPT0gRHJhd1NpemVWYXJpYW50KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TE9wZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TE9wZXJhdG9yLmgKaW5kZXggYjQzZTQyNy4uMzJjMTFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaApAQCAtMTQx
LDkgKzE0MSwxMCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRBbGxvd1N0cmV0Y2hpbmco
KSBjb25zdDsKIAorICAgIGJvb2wgZ2V0QmFzZUdseXBoKGNvbnN0IFJlbmRlclN0eWxlJiwgR2x5
cGhEYXRhJikgY29uc3Q7CiAgICAgYm9vbCBnZXRHbHlwaEFzc2VtYmx5RmFsbEJhY2soVmVjdG9y
PE9wZW5UeXBlTWF0aERhdGE6OkFzc2VtYmx5UGFydD4sIFN0cmV0Y2h5RGF0YSYpIGNvbnN0Owot
ICAgIFN0cmV0Y2h5RGF0YSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKFVDaGFyKSBjb25z
dDsKLSAgICBTdHJldGNoeURhdGEgZmluZFN0cmV0Y2h5RGF0YShVQ2hhciwgZmxvYXQqIG1heGlt
dW1HbHlwaFdpZHRoKTsKKyAgICBTdHJldGNoeURhdGEgZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVy
YXRvcigpIGNvbnN0OworICAgIFN0cmV0Y2h5RGF0YSBmaW5kU3RyZXRjaHlEYXRhKGZsb2F0KiBt
YXhpbXVtR2x5cGhXaWR0aCk7CiAKICAgICBlbnVtIEdseXBoUGFpbnRUcmltbWluZyB7CiAgICAg
ICAgIFRyaW1Ub3AsCi0tIAoyLjguMC5yYzMKCg==
</data>
<flag name="review"
          id="301661"
          type_id="1"
          status="+"
          setter="alex"
    />
          </attachment>
      

    </bug>

</bugzilla>