<?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>139864</bug_id>
          
          <creation_ts>2014-12-22 09:21:42 -0800</creation_ts>
          <short_desc>Generic font code should not know about SVG font missing glyph</short_desc>
          <delta_ts>2014-12-23 09:11:42 -0800</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>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>
          <dependson>139905</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ossy</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1057387</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-22 09:21:42 -0800</bug_when>
    <thetext>It is an SVG font concept and should be handled in SVG code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057391</commentid>
    <comment_count>1</comment_count>
      <attachid>243625</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-22 09:53:16 -0800</bug_when>
    <thetext>Created attachment 243625
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057401</commentid>
    <comment_count>2</comment_count>
      <attachid>243625</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-22 10:54:07 -0800</bug_when>
    <thetext>Comment on attachment 243625
patch

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

r=me

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:295
&gt; +    const SimpleFontData* primaryFontData = font.primaryFont();

This logic seems completely busted (of always pulling out the primary font). Luckily SVG fonts as a whole are going away...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057402</commentid>
    <comment_count>3</comment_count>
      <attachid>243625</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-22 10:55:41 -0800</bug_when>
    <thetext>Comment on attachment 243625
patch

I trust Myles on this. r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057403</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-12-22 10:57:34 -0800</bug_when>
    <thetext>Seems like this means that we&apos;ll never show the SVG font&apos;s missing-glyph. I think that&apos;s okay, but other people on the team might have opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057408</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-22 11:09:47 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Seems like this means that we&apos;ll never show the SVG font&apos;s missing-glyph. I
&gt; think that&apos;s okay, but other people on the team might have opinions.

There shouldn&apos;t be any behavior change, the missing glyphs work as before (and there are tests). They are just resolved bit differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057410</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-22 11:16:00 -0800</bug_when>
    <thetext>https://trac.webkit.org/r177637</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057423</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-12-22 12:05:41 -0800</bug_when>
    <thetext>This breaks the Windows build:

         UniscribeController.cpp
     1&gt;..\platform\graphics\win\SimpleFontDataCGWin.cpp(91): error C2027: use of undefined type &apos;WebCore::GlyphPageTreeNode&apos;
                 c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\platform\graphics\GlyphPage.h(43) : see declaration of &apos;WebCore::GlyphPageTreeNode&apos;
     1&gt;..\platform\graphics\win\SimpleFontDataCGWin.cpp(91): error C2227: left of &apos;-&gt;page&apos; must point to class/struct/union/generic type
                 type is &apos;unknown-type&apos;
     1&gt;..\platform\graphics\win\SimpleFontDataCGWin.cpp(91): error C3861: &apos;getRootChild&apos;: identifier not found
         ScrollbarThemeMock.cpp
         FormData.cpp

I think we&apos;re just missing a #include in the win/SimpleFontDataCGWin.cpp. I&apos;m testing this now and will check in a fix shortly if it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057424</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-12-22 12:10:31 -0800</bug_when>
    <thetext>Build fix (Windows);

https://trac.webkit.org/r177644.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057426</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-22 12:11:19 -0800</bug_when>
    <thetext>Build fix was https://trac.webkit.org/r177642</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057598</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-12-23 09:11:42 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; https://trac.webkit.org/r177637

It made 3 tests crash on EFL and GTK, here is the new bug report:
https://bugs.webkit.org/show_bug.cgi?id=139905</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243625</attachid>
            <date>2014-12-22 09:53:16 -0800</date>
            <delta_ts>2014-12-22 10:55:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>missing-glyph-4.patch</filename>
            <type>text/plain</type>
            <size>15644</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzYzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTEyLTIyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmljIGZvbnQgY29kZSBz
aG91bGQgbm90IGtub3cgYWJvdXQgU1ZHIGZvbnQgbWlzc2luZyBnbHlwaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGRlZmluZWQgbWlzc2luZyBn
bHlwaCBpcyBhbiBTVkcgZm9udCBjb25jZXB0IGFuZCBzaG91bGQgYmUgaGFuZGxlZCBpbiBTVkcg
Y29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHbHlwaHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEdseXBoczo6Z2x5cGhEYXRhRm9yU3lzdGVtRmFsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udEdseXBoczo6Z2x5cGhEYXRhRm9yVmFyaWFudCk6CisKKyAg
ICAgICAgICAgIFJldHVybiBudWxsIGdseXBoIGluc3RlYWQgb2YgdGhlIG1pc3NpbmcgZ2x5cGgg
KHRoZSBtaXNzaW5nIGdseXBoIHdhcyBhbHJlYWR5IGEgbnVsbCBnbHlwaCBpbiBhbGwgbm9uLXN2
Zy1mb250IGNhc2VzKS4KKyAgICAgICAgICAgIFVzZSBlYXJseSByZXR1cm4gc3R5bGUuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250R2x5cGhzLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9udERhdGEuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybUdseXBoSW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2lt
cGxlRm9udERhdGEuaDoKKworICAgICAgICAgICAgUmVtb3ZlIHRoZSBtaXNzaW5nR2x5cGggbWVt
YmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOgorCisgICAg
ICAgICAgICBFeHBsaWNpdGx5IHNraXAgb3ZlciBudWxsIGdseXBocy4gQmVmb3JlIHRoZXkgaGFk
IG5vbi1udWxsIGZvbnREYXRhIGFuZCB3b3VsZCBnZXQgc2tpcHBlZCBpbXBsaWNpdGx5LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bWlzc2luZ0dseXBoRm9yRm9udCk6CisKKyAgICAgICAgICAgIEdldCB0
aGUgbWlzc2luZyBnbHlwaCBmcm9tIHRoZSBTVkcgZm9udCBlbGVtZW50LgorCisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KToKKworICAgICAgICAgICAgUmV0dXJuIHRoZSBtaXNzaW5nIGdseXBoIGlmIHRoZSBub3JtYWwg
bG9va3VwIGRpZG4ndCBwcm9kdWNlIHJlc3VsdHMuCisKKyAgICAgICAgKiBzdmcvU1ZHRm9udERh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udERhdGE6OmluaXRpYWxpemVGb250RGF0
YSk6CisKIDIwMTQtMTItMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlICJBdXRvIiBDU1MgcHJvcGVydGllcyB0byB0aGUgbmV3IFN0eWxlQnVpbGRlcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdseXBocy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdseXBocy5j
cHAJKHJldmlzaW9uIDE3NzU3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRHbHlwaHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNs
dWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiR2x5cGhQYWdl
VHJlZU5vZGUuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRGb250RGF0YS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0yNzcsMzIgKzI3OCwyNiBAQCBHbHlwaERhdGEgRm9udEdseXBoczo6Z2x5
cGhEYXRhRm9yU3lzdGVtCiAgICAgfQogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBvcmlnaW5h
bEZvbnREYXRhID0gcHJpbWFyeUZvbnREYXRhKGRlc2NyaXB0aW9uKS0+Zm9udERhdGFGb3JDaGFy
YWN0ZXIoYyk7CiAgICAgUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBjaGFyYWN0ZXJGb250RGF0YSA9
IGZvbnRDYWNoZSgpLnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhkZXNjcmlwdGlvbiwgb3Jp
Z2luYWxGb250RGF0YSwgbV9pc0ZvclBsYXRmb3JtRm9udCwgY29kZVVuaXRzLCBjb2RlVW5pdHNM
ZW5ndGgpOwotICAgIGlmIChjaGFyYWN0ZXJGb250RGF0YSkgewotICAgICAgICBpZiAoY2hhcmFj
dGVyRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWwgJiYg
IWNoYXJhY3RlckZvbnREYXRhLT5oYXNWZXJ0aWNhbEdseXBocygpICYmIEZvbnQ6OmlzQ0pLSWRl
b2dyYXBoT3JTeW1ib2woYykpCi0gICAgICAgICAgICB2YXJpYW50ID0gQnJva2VuSWRlb2dyYXBo
VmFyaWFudDsKLSAgICAgICAgaWYgKHZhcmlhbnQgIT0gTm9ybWFsVmFyaWFudCkKLSAgICAgICAg
ICAgIGNoYXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9udERhdGEtPnZhcmlhbnRGb250RGF0
YShkZXNjcmlwdGlvbiwgdmFyaWFudCk7Ci0gICAgfQotICAgIGlmIChjaGFyYWN0ZXJGb250RGF0
YSkgewotICAgICAgICAvLyBHb3QgdGhlIGZhbGxiYWNrIGdseXBoIGFuZCBmb250LgotICAgICAg
ICBHbHlwaFBhZ2UqIGZhbGxiYWNrUGFnZSA9IEdseXBoUGFnZVRyZWVOb2RlOjpnZXRSb290Q2hp
bGQoY2hhcmFjdGVyRm9udERhdGEuZ2V0KCksIHBhZ2VOdW1iZXIpLT5wYWdlKCk7Ci0gICAgICAg
IEdseXBoRGF0YSBkYXRhID0gZmFsbGJhY2tQYWdlICYmIGZhbGxiYWNrUGFnZS0+Zm9udERhdGFG
b3JDaGFyYWN0ZXIoYykgPyBmYWxsYmFja1BhZ2UtPmdseXBoRGF0YUZvckNoYXJhY3RlcihjKSA6
IGNoYXJhY3RlckZvbnREYXRhLT5taXNzaW5nR2x5cGhEYXRhKCk7Ci0gICAgICAgIC8vIENhY2hl
IGl0IHNvIHdlIGRvbid0IGhhdmUgdG8gZG8gc3lzdGVtIGZhbGxiYWNrIGFnYWluIG5leHQgdGlt
ZS4KLSAgICAgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewotICAgICAgICAgICAg
bm9kZS5wYWdlKCktPnNldEdseXBoRGF0YUZvckNoYXJhY3RlcihjLCBkYXRhLmdseXBoLCBkYXRh
LmZvbnREYXRhKTsKLSAgICAgICAgICAgIGRhdGEuZm9udERhdGEtPnNldE1heEdseXBoUGFnZVRy
ZWVMZXZlbChzdGQ6Om1heChkYXRhLmZvbnREYXRhLT5tYXhHbHlwaFBhZ2VUcmVlTGV2ZWwoKSwg
bm9kZS5sZXZlbCgpKSk7Ci0gICAgICAgICAgICBpZiAoIUZvbnQ6OmlzQ0pLSWRlb2dyYXBoT3JT
eW1ib2woYykgJiYgZGF0YS5mb250RGF0YS0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSAh
PSBIb3Jpem9udGFsICYmICFkYXRhLmZvbnREYXRhLT5pc1RleHRPcmllbnRhdGlvbkZhbGxiYWNr
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGdseXBoRGF0YUZvck5vbkNKS0NoYXJhY3Rlcldp
dGhHbHlwaE9yaWVudGF0aW9uKGMsIGRlc2NyaXB0aW9uLm5vbkNKS0dseXBoT3JpZW50YXRpb24o
KSwgZGF0YSwgcGFnZU51bWJlcik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0g
ICAgfQorICAgIGlmICghY2hhcmFjdGVyRm9udERhdGEpCisgICAgICAgIHJldHVybiBHbHlwaERh
dGEoKTsKIAotICAgIC8vIEV2ZW4gc3lzdGVtIGZhbGxiYWNrIGNhbiBmYWlsOyB1c2UgdGhlIG1p
c3NpbmcgZ2x5cGggaW4gdGhhdCBjYXNlLgotICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNl
ciB0byB1c2UgdGhlIG1pc3NpbmcgZ2x5cGggZnJvbSB0aGUgbGFzdCByZXNvcnQgZm9udCBpbnN0
ZWFkLgotICAgIEdseXBoRGF0YSBkYXRhID0gcHJpbWFyeVNpbXBsZUZvbnREYXRhKGRlc2NyaXB0
aW9uKS0+bWlzc2luZ0dseXBoRGF0YSgpOwotICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlh
bnQpIHsKKyAgICBpZiAoY2hhcmFjdGVyRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm9yaWVudGF0
aW9uKCkgPT0gVmVydGljYWwgJiYgIWNoYXJhY3RlckZvbnREYXRhLT5oYXNWZXJ0aWNhbEdseXBo
cygpICYmIEZvbnQ6OmlzQ0pLSWRlb2dyYXBoT3JTeW1ib2woYykpCisgICAgICAgIHZhcmlhbnQg
PSBCcm9rZW5JZGVvZ3JhcGhWYXJpYW50OworICAgIGlmICh2YXJpYW50ICE9IE5vcm1hbFZhcmlh
bnQpIHsKKyAgICAgICAgY2hhcmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0YS0+dmFy
aWFudEZvbnREYXRhKGRlc2NyaXB0aW9uLCB2YXJpYW50KTsKKyAgICAgICAgQVNTRVJUKGNoYXJh
Y3RlckZvbnREYXRhKTsKKyAgICB9CisKKyAgICBHbHlwaERhdGEgZGF0YTsKKyAgICBpZiAoR2x5
cGhQYWdlKiBmYWxsYmFja1BhZ2UgPSBHbHlwaFBhZ2VUcmVlTm9kZTo6Z2V0Um9vdENoaWxkKGNo
YXJhY3RlckZvbnREYXRhLmdldCgpLCBwYWdlTnVtYmVyKS0+cGFnZSgpKQorICAgICAgICBkYXRh
ID0gZmFsbGJhY2tQYWdlLT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoYyk7CisKKyAgICAvLyBDYWNo
ZSBpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHN5c3RlbSBmYWxsYmFjayBhZ2FpbiBuZXh0IHRp
bWUuCisgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCAmJiBkYXRhLmdseXBoKSB7CiAg
ICAgICAgIG5vZGUucGFnZSgpLT5zZXRHbHlwaERhdGFGb3JDaGFyYWN0ZXIoYywgZGF0YS5nbHlw
aCwgZGF0YS5mb250RGF0YSk7CiAgICAgICAgIGRhdGEuZm9udERhdGEtPnNldE1heEdseXBoUGFn
ZVRyZWVMZXZlbChzdGQ6Om1heChkYXRhLmZvbnREYXRhLT5tYXhHbHlwaFBhZ2VUcmVlTGV2ZWwo
KSwgbm9kZS5sZXZlbCgpKSk7CisgICAgICAgIGlmICghRm9udDo6aXNDSktJZGVvZ3JhcGhPclN5
bWJvbChjKSAmJiBkYXRhLmZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpICE9
IEhvcml6b250YWwgJiYgIWRhdGEuZm9udERhdGEtPmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2so
KSkKKyAgICAgICAgICAgIHJldHVybiBnbHlwaERhdGFGb3JOb25DSktDaGFyYWN0ZXJXaXRoR2x5
cGhPcmllbnRhdGlvbihjLCBkZXNjcmlwdGlvbi5ub25DSktHbHlwaE9yaWVudGF0aW9uKCksIGRh
dGEsIHBhZ2VOdW1iZXIpOwogICAgIH0KICAgICByZXR1cm4gZGF0YTsKIH0KQEAgLTMyMSwxNSAr
MzE2LDEyIEBAIEdseXBoRGF0YSBGb250R2x5cGhzOjpnbHlwaERhdGFGb3JWYXJpYW4KIAogICAg
ICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlKiB2YXJpYW50Tm9kZSA9IEdseXBoUGFnZVRy
ZWVOb2RlOjpnZXRSb290Q2hpbGQodmFyaWFudEZvbnREYXRhLmdldCgpLCBwYWdlTnVtYmVyKTsK
ICAgICAgICAgICAgICAgICBHbHlwaFBhZ2UqIHZhcmlhbnRQYWdlID0gdmFyaWFudE5vZGUtPnBh
Z2UoKTsKLSAgICAgICAgICAgICAgICBpZiAodmFyaWFudFBhZ2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgR2x5cGhEYXRhIGRhdGEgPSB2YXJpYW50UGFnZS0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KGMpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5mb250RGF0YSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBkYXRhOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAodmFyaWFudFBhZ2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50
UGFnZS0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMpOwogCiAgICAgICAgICAgICAgICAgLy8gRG8g
bm90IGF0dGVtcHQgc3lzdGVtIGZhbGxiYWNrIG9mZiB0aGUgdmFyaWFudEZvbnREYXRhLiBUaGlz
IGlzIHRoZSB2ZXJ5IHVubGlrZWx5IGNhc2UgdGhhdAogICAgICAgICAgICAgICAgIC8vIGEgZm9u
dCBoYXMgdGhlIGxvd2VyY2FzZSBjaGFyYWN0ZXIgYnV0IHRoZSBzbWFsbCBjYXBzIGZvbnQgZG9l
cyBub3QgaGF2ZSBpdHMgdXBwZXJjYXNlIHZlcnNpb24uCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHZhcmlhbnRGb250RGF0YS0+bWlzc2luZ0dseXBoRGF0YSgpOworICAgICAgICAgICAgICAgIHJl
dHVybiBHbHlwaERhdGEoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5vZGUt
PmlzU3lzdGVtRmFsbGJhY2soKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRHbHlwaHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250R2x5cGhzLmgJKHJldmlzaW9uIDE3NzU3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRHbHlwaHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiAr
MjIsNyBAQAogI2RlZmluZSBGb250R2x5cGhzX2gKIAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5o
IgorI2luY2x1ZGUgIkdseXBoUGFnZS5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAj
aW5jbHVkZSAiV2lkdGhDYWNoZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TZWdtZW50ZWRGb250RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2VnbWVudGVkRm9u
dERhdGEuY3BwCShyZXZpc2lvbiAxNzc1NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TZWdtZW50ZWRGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRGb250RGF0YS5o
IgogCisjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKICNpbmNsdWRlICJTaW1wbGVGb250
RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCShyZXZpc2lvbiAxNzc1NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJG
b250Q2FjaGUuaCIKKyNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgogI2luY2x1ZGUgIk9w
ZW5UeXBlTWF0aERhdGEuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC0xMjQs
OCArMTI1LDYgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1HbHlwaEluaXQoKQogICAg
ICAgICBtX2FkanVzdGVkU3BhY2VXaWR0aCA9IDA7CiAgICAgICAgIGRldGVybWluZVBpdGNoKCk7
CiAgICAgICAgIG1femVyb1dpZHRoU3BhY2VHbHlwaCA9IDA7Ci0gICAgICAgIG1fbWlzc2luZ0ds
eXBoRGF0YS5mb250RGF0YSA9IHRoaXM7Ci0gICAgICAgIG1fbWlzc2luZ0dseXBoRGF0YS5nbHlw
aCA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0OSw5ICsxNDgsNiBAQCB2b2lk
IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUdseXBoSW5pdCgpCiAgICAgLy8gU2VlIDxodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE3OD4gYW5kIFNpbXBsZUZvbnREYXRh
Ojppc1plcm9XaWR0aFNwYWNlR2x5cGgoKQogICAgIGlmIChtX3plcm9XaWR0aFNwYWNlR2x5cGgg
PT0gbV9zcGFjZUdseXBoKQogICAgICAgICBtX3plcm9XaWR0aFNwYWNlR2x5cGggPSAwOwotCi0g
ICAgbV9taXNzaW5nR2x5cGhEYXRhLmZvbnREYXRhID0gdGhpczsKLSAgICBtX21pc3NpbmdHbHlw
aERhdGEuZ2x5cGggPSAwOwogfQogCiBTaW1wbGVGb250RGF0YTo6flNpbXBsZUZvbnREYXRhKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuaAkocmV2aXNpb24gMTc3NTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiR2x5cGhNZXRyaWNzTWFwLmgiCi0jaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKICNp
bmNsdWRlICJPcGVuVHlwZU1hdGhEYXRhLmgiCiAjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FM
KQogI2luY2x1ZGUgIk9wZW5UeXBlVmVydGljYWxEYXRhLmgiCkBAIC02MCw4ICs1OSwxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEdseXBoUGFnZTsKIGNsYXNzIEZvbnREZXNj
cmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKK3N0cnVjdCBHbHlwaERhdGE7CiBzdHJ1Y3Qg
V2lkdGhJdGVyYXRvcjsKIAogZW51bSBGb250RGF0YVZhcmlhbnQgeyBBdXRvVmFyaWFudCwgTm9y
bWFsVmFyaWFudCwgU21hbGxDYXBzVmFyaWFudCwgRW1waGFzaXNNYXJrVmFyaWFudCwgQnJva2Vu
SWRlb2dyYXBoVmFyaWFudCB9OwpAQCAtMTgwLDkgKzE4MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc0xvYWRpbmc7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWdtZW50ZWQoKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IGNvbnN0IEdseXBoRGF0YSYgbWlzc2luZ0dseXBoRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWlz
c2luZ0dseXBoRGF0YTsgfQotICAgIHZvaWQgc2V0TWlzc2luZ0dseXBoRGF0YShjb25zdCBHbHlw
aERhdGEmIGdseXBoRGF0YSkgeyBtX21pc3NpbmdHbHlwaERhdGEgPSBnbHlwaERhdGE7IH0KLQog
I2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogI2VuZGlmCkBAIC0yNzIsOCArMjcwLDYgQEAgcHJpdmF0ZToKIAogICAgIEdseXBo
IG1femVyb1dpZHRoU3BhY2VHbHlwaDsKIAotICAgIEdseXBoRGF0YSBtX21pc3NpbmdHbHlwaERh
dGE7Ci0KICAgICBzdHJ1Y3QgRGVyaXZlZEZvbnREYXRhIHsKICAgICAgICAgZXhwbGljaXQgRGVy
aXZlZEZvbnREYXRhKGJvb2wgY3VzdG9tKQogICAgICAgICAgICAgOiBmb3JDdXN0b21Gb250KGN1
c3RvbSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dp
ZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxNzc1NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDgg
KzE3OSwxMSBAQCBpbmxpbmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUluCiAgICAg
ICAgIGludCBjdXJyZW50Q2hhcmFjdGVyID0gdGV4dEl0ZXJhdG9yLmN1cnJlbnRDaGFyYWN0ZXIo
KTsKICAgICAgICAgY29uc3QgR2x5cGhEYXRhJiBnbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoY2hhcmFjdGVyLCBydGwsIGN1cnJlbnRDaGFyYWN0ZXIsIGFkdmFuY2VMZW5ndGgsIG5v
cm1hbGl6ZWRTcGFjZXNTdHJpbmdDYWNoZSk7CiAgICAgICAgIEdseXBoIGdseXBoID0gZ2x5cGhE
YXRhLmdseXBoOworICAgICAgICBpZiAoIWdseXBoKSB7CisgICAgICAgICAgICB0ZXh0SXRlcmF0
b3IuYWR2YW5jZShhZHZhbmNlTGVuZ3RoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CiAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSA9IGdseXBoRGF0YS5m
b250RGF0YTsKLQogICAgICAgICBBU1NFUlQoZm9udERhdGEpOwogCiAgICAgICAgIC8vIE5vdyB0
aGF0IHdlIGhhdmUgYSBnbHlwaCBhbmQgZm9udCBkYXRhLCBnZXQgaXRzIHdpZHRoLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1w
bGVGb250RGF0YU1hYy5tbQkocmV2aXNpb24gMTc3NTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJGb250LmgiCiAjaW1wb3J0ICJGb250Q2FjaGUuaCIK
ICNpbXBvcnQgIkZvbnREZXNjcmlwdGlvbi5oIgorI2ltcG9ydCAiR2x5cGhQYWdlVHJlZU5vZGUu
aCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oIgogI2lmIFVTRShBUFBLSVQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2
aXNpb24gMTc3NTcxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVu
UmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCwzNiArMjkwLDQwIEBA
IHZvaWQgU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmRyYXdTVkcKICAgICB9CiB9CiAKLUds
eXBoRGF0YSBTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KGNvbnN0IEZvbnQmIGZvbnQsIFdpZHRoSXRlcmF0b3ImIGl0ZXJhdG9yLCBVQ2hhcjMyIGNoYXJh
Y3RlciwgYm9vbCBtaXJyb3IsIGludCBjdXJyZW50Q2hhcmFjdGVyLCB1bnNpZ25lZCYgYWR2YW5j
ZUxlbmd0aCwgU3RyaW5nJiBub3JtYWxpemVkU3BhY2VzU3RyaW5nQ2FjaGUpCitzdGF0aWMgR2x5
cGhEYXRhIG1pc3NpbmdHbHlwaEZvckZvbnQoY29uc3QgRm9udCYgZm9udCkKIHsKLSAgICBjb25z
dCBTaW1wbGVGb250RGF0YSogcHJpbWFyeUZvbnQgPSBmb250LnByaW1hcnlGb250KCk7Ci0gICAg
QVNTRVJUKHByaW1hcnlGb250KTsKKyAgICBjb25zdCBTaW1wbGVGb250RGF0YSogcHJpbWFyeUZv
bnREYXRhID0gZm9udC5wcmltYXJ5Rm9udCgpOworICAgIGlmICghcHJpbWFyeUZvbnREYXRhLT5p
c1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0dXJuIEdseXBoRGF0YSgpOworICAgIFNWR0ZvbnRFbGVt
ZW50KiBmb250RWxlbWVudDsKKyAgICBTVkdGb250RmFjZUVsZW1lbnQqIGZvbnRGYWNlRWxlbWVu
dDsKKyAgICBzdmdGb250QW5kRm9udEZhY2VFbGVtZW50Rm9yRm9udERhdGEocHJpbWFyeUZvbnRE
YXRhLCBmb250RmFjZUVsZW1lbnQsIGZvbnRFbGVtZW50KTsKKyAgICByZXR1cm4gR2x5cGhEYXRh
KGZvbnRFbGVtZW50LT5taXNzaW5nR2x5cGgoKSwgcHJpbWFyeUZvbnREYXRhKTsKK30KIAorR2x5
cGhEYXRhIFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIo
Y29uc3QgRm9udCYgZm9udCwgV2lkdGhJdGVyYXRvciYgaXRlcmF0b3IsIFVDaGFyMzIgY2hhcmFj
dGVyLCBib29sIG1pcnJvciwgaW50IGN1cnJlbnRDaGFyYWN0ZXIsIHVuc2lnbmVkJiBhZHZhbmNl
TGVuZ3RoLCBTdHJpbmcmIG5vcm1hbGl6ZWRTcGFjZXNTdHJpbmdDYWNoZSkKK3sKICAgICBHbHlw
aERhdGEgZ2x5cGhEYXRhID0gZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBt
aXJyb3IsIEF1dG9WYXJpYW50KTsKKyAgICBpZiAoIWdseXBoRGF0YS5nbHlwaCkKKyAgICAgICAg
cmV0dXJuIG1pc3NpbmdHbHlwaEZvckZvbnQoZm9udCk7CiAKLSAgICAvLyBDaGVjayBpZiB3ZSBo
YXZlIHRoZSBtaXNzaW5nIGdseXBoIGRhdGEsIGluIHdoaWNoIGNhc2Ugd2UgY2FuIGp1c3QgcmV0
dXJuLgotICAgIEdseXBoRGF0YSBtaXNzaW5nR2x5cGhEYXRhID0gcHJpbWFyeUZvbnQtPm1pc3Np
bmdHbHlwaERhdGEoKTsKLSAgICBpZiAoZ2x5cGhEYXRhLmdseXBoID09IG1pc3NpbmdHbHlwaERh
dGEuZ2x5cGggJiYgZ2x5cGhEYXRhLmZvbnREYXRhID09IG1pc3NpbmdHbHlwaERhdGEuZm9udERh
dGEpIHsKLSAgICAgICAgQVNTRVJUKGdseXBoRGF0YS5mb250RGF0YSk7Ci0gICAgICAgIHJldHVy
biBnbHlwaERhdGE7Ci0gICAgfQorICAgIEFTU0VSVChnbHlwaERhdGEuZm9udERhdGEpOwogCiAg
ICAgLy8gQ2hhcmFjdGVycyBlbmNsb3NlZCBieSBhbiA8YWx0R2x5cGg+IGVsZW1lbnQsIG1heSBu
b3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgR2x5cGhQYWdlLgotICAgIGlmIChnbHlwaERhdGEuZm9u
dERhdGEgJiYgIWdseXBoRGF0YS5mb250RGF0YS0+aXNTVkdGb250KCkpIHsKKyAgICBpZiAoIWds
eXBoRGF0YS5mb250RGF0YS0+aXNTVkdGb250KCkpIHsKICAgICAgICAgYXV0byYgZWxlbWVudFJl
bmRlcmVyID0gaXM8UmVuZGVyRWxlbWVudD4ocmVuZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJF
bGVtZW50PihyZW5kZXJlcigpKSA6ICpyZW5kZXJlcigpLnBhcmVudCgpOwogICAgICAgICBpZiAo
RWxlbWVudCogcGFyZW50UmVuZGVyZXJFbGVtZW50ID0gZWxlbWVudFJlbmRlcmVyLmVsZW1lbnQo
KSkgewogICAgICAgICAgICAgaWYgKGlzPFNWR0FsdEdseXBoRWxlbWVudD4oKnBhcmVudFJlbmRl
cmVyRWxlbWVudCkpCi0gICAgICAgICAgICAgICAgZ2x5cGhEYXRhLmZvbnREYXRhID0gcHJpbWFy
eUZvbnQ7CisgICAgICAgICAgICAgICAgZ2x5cGhEYXRhLmZvbnREYXRhID0gZm9udC5wcmltYXJ5
Rm9udCgpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgY29uc3QgU2ltcGxlRm9udERhdGEqIGZv
bnREYXRhID0gZ2x5cGhEYXRhLmZvbnREYXRhOwotICAgIGlmICghZm9udERhdGEgfHwgIWZvbnRE
YXRhLT5pc1NWR0ZvbnQoKSkKKyAgICBpZiAoIWdseXBoRGF0YS5mb250RGF0YS0+aXNTVkdGb250
KCkpCiAgICAgICAgIHJldHVybiBnbHlwaERhdGE7CiAKICAgICBTVkdGb250RWxlbWVudCogZm9u
dEVsZW1lbnQgPSBudWxscHRyOwogICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2VFbGVt
ZW50ID0gbnVsbHB0cjsKLSAgICBjb25zdCBTVkdGb250RGF0YSogc3ZnRm9udERhdGEgPSBzdmdG
b250QW5kRm9udEZhY2VFbGVtZW50Rm9yRm9udERhdGEoZm9udERhdGEsIGZvbnRGYWNlRWxlbWVu
dCwgZm9udEVsZW1lbnQpOworICAgIGNvbnN0IFNWR0ZvbnREYXRhKiBzdmdGb250RGF0YSA9IHN2
Z0ZvbnRBbmRGb250RmFjZUVsZW1lbnRGb3JGb250RGF0YShnbHlwaERhdGEuZm9udERhdGEsIGZv
bnRGYWNlRWxlbWVudCwgZm9udEVsZW1lbnQpOwogICAgIGlmICghc3ZnRm9udERhdGEpCiAgICAg
ICAgIHJldHVybiBnbHlwaERhdGE7CiAKQEAgLTMyOSw2ICszMzMsOCBAQCBHbHlwaERhdGEgU1ZH
VGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmdsCiAgICAgLy8gYXJhYmljLWZvcm0vb3JpZW50YXRp
b24vLi4uIG1heSBub3QgbWF0Y2gsIHdlIGhhdmUgdG8gYXBwbHkgU1ZHIEdseXBoIHNlbGVjdGlv
biB0byBkaXNjb3ZlciB0aGF0LgogICAgIGlmIChzdmdGb250RGF0YS0+YXBwbHlTVkdHbHlwaFNl
bGVjdGlvbihpdGVyYXRvciwgZ2x5cGhEYXRhLCBtaXJyb3IsIGN1cnJlbnRDaGFyYWN0ZXIsIGFk
dmFuY2VMZW5ndGgsIG5vcm1hbGl6ZWRTcGFjZXNTdHJpbmdDYWNoZSkpCiAgICAgICAgIHJldHVy
biBnbHlwaERhdGE7CisKKyAgICBHbHlwaERhdGEgbWlzc2luZ0dseXBoRGF0YSA9IG1pc3NpbmdH
bHlwaEZvckZvbnQoZm9udCk7CiAgICAgaWYgKG1pc3NpbmdHbHlwaERhdGEuZ2x5cGgpCiAgICAg
ICAgIHJldHVybiBtaXNzaW5nR2x5cGhEYXRhOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RGF0YS5jcHAJKHJldmlzaW9uIDE3NzU3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpZiBFTkFCTEUoU1ZH
X0ZPTlRTKQogI2luY2x1ZGUgIlNWR0ZvbnREYXRhLmgiCiAKKyNpbmNsdWRlICJHbHlwaFBhZ2VU
cmVlTm9kZS5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbHRH
bHlwaEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RWxlbWVudC5oIgpAQCAtNjMsMTMgKzY0
LDYgQEAgdm9pZCBTVkdGb250RGF0YTo6aW5pdGlhbGl6ZUZvbnREYXRhKFNpbQogICAgIFNWR0Zv
bnRGYWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gdGhpcy0+c3ZnRm9udEZhY2VFbGVt
ZW50KCk7CiAgICAgQVNTRVJUKHN2Z0ZvbnRGYWNlRWxlbWVudCk7CiAKLSAgICBTVkdGb250RWxl
bWVudCogc3ZnRm9udEVsZW1lbnQgPSBzdmdGb250RmFjZUVsZW1lbnQtPmFzc29jaWF0ZWRGb250
RWxlbWVudCgpOwotICAgIEFTU0VSVChzdmdGb250RWxlbWVudCk7Ci0gICAgR2x5cGhEYXRhIG1p
c3NpbmdHbHlwaERhdGE7Ci0gICAgbWlzc2luZ0dseXBoRGF0YS5mb250RGF0YSA9IGZvbnREYXRh
OwotICAgIG1pc3NpbmdHbHlwaERhdGEuZ2x5cGggPSBzdmdGb250RWxlbWVudC0+bWlzc2luZ0ds
eXBoKCk7Ci0gICAgZm9udERhdGEtPnNldE1pc3NpbmdHbHlwaERhdGEobWlzc2luZ0dseXBoRGF0
YSk7Ci0KICAgICBmb250RGF0YS0+c2V0WmVyb1dpZHRoU3BhY2VHbHlwaCgwKTsKICAgICBmb250
RGF0YS0+ZGV0ZXJtaW5lUGl0Y2goKTsKIAo=
</data>
<flag name="review"
          id="268530"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>