<?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>116823</bug_id>
          
          <creation_ts>2013-05-27 05:30:35 -0700</creation_ts>
          <short_desc>Tighten FontGlyphs::glyphDataAndPageForCharacter to take FontDescription</short_desc>
          <delta_ts>2013-05-27 09:01:44 -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>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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>rego+ews</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893989</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-05-27 05:30:35 -0700</bug_when>
    <thetext>FontGlyphs does not need to know about Font anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893993</commentid>
    <comment_count>1</comment_count>
      <attachid>202973</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-05-27 05:41:13 -0700</bug_when>
    <thetext>Created attachment 202973
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893997</commentid>
    <comment_count>2</comment_count>
      <attachid>202973</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-27 05:49:36 -0700</bug_when>
    <thetext>Comment on attachment 202973
patch

Attachment 202973 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/676432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893998</commentid>
    <comment_count>3</comment_count>
      <attachid>202973</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-27 05:51:30 -0700</bug_when>
    <thetext>Comment on attachment 202973
patch

Attachment 202973 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/705175</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893999</commentid>
    <comment_count>4</comment_count>
      <attachid>202973</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-27 05:53:30 -0700</bug_when>
    <thetext>Comment on attachment 202973
patch

Attachment 202973 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/674075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894002</commentid>
    <comment_count>5</comment_count>
      <attachid>202973</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-27 05:59:57 -0700</bug_when>
    <thetext>Comment on attachment 202973
patch

Attachment 202973 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/724039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894015</commentid>
    <comment_count>6</comment_count>
      <attachid>202980</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-05-27 06:58:24 -0700</bug_when>
    <thetext>Created attachment 202980
Another</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894067</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-05-27 09:01:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/150762</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202973</attachid>
            <date>2013-05-27 05:41:13 -0700</date>
            <delta_ts>2013-05-27 06:58:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>system-fallback-tighten.patch</filename>
            <type>text/plain</type>
            <size>20384</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDc0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTA1LTI3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIEZvbnRHbHlwaHM6
OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIgdG8gdGFrZSBGb250RGVzY3JpcHRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjgyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvbnRHbHlwaHMg
ZG9lcyBub3QgbmVlZCB0byBrbm93IGFib3V0IEZvbnQgYW55bW9yZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Rm9udCk6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpvcGVyYXRvcj0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmlzUGxhdGZvcm1Gb250
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIp
OgorICAgICAgICAoRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250R2x5cGhzOjpGb250R2x5cGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRHbHlwaHM6OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEdseXBoczo6Y3JlYXRlRm9yUGxhdGZvcm1Gb250KToK
KyAgICAgICAgCisgICAgICAgICAgICBUd2Vha2VkIHRoZSBuYW1lLgorCisgICAgICAgIChXZWJD
b3JlOjpGb250R2x5cGhzOjppc0ZvclBsYXRmb3JtRm9udCk6CisgICAgICAgIAorICAgICAgICAg
ICAgTW92ZSBrbm93bGVkZ2UgYWJvdXQgcGxhdGZvcm0gZm9udCB0byBGb250R2x5cGhzIGFzIGl0
IGlzIG5lZWRlZCBmb3IgcmVzb2x2aW5nIHN5c3RlbSBmYWxsYmFjayBvbiBNYWMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDYWNoZUJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3Rl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JD
aGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJh
Y3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q2FjaGVXaW5DRS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6
CisgICAgICAgIAorICAgICAgICAgICAgTW9yZSBkZXNjcmlwdGl2ZSBuYW1lIGFuZCB0aWdodGVy
IGludGVyZmFjZS4KKwogMjAxMy0wNS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgVGlnaHRlbiBGb250R2x5cGhzIGludGVyZmFjZXMgdG8gdGFrZSBGb250
RGVzY3JpcHRpb24gaW5zdGVhZCBvZiBGb250CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gMTUwNzMwKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDYg
QEAgVHlwZXNldHRpbmdGZWF0dXJlcyBGb250OjpzX2RlZmF1bHRUeXBlcwogRm9udDo6Rm9udCgp
CiAgICAgOiBtX2xldHRlclNwYWNpbmcoMCkKICAgICAsIG1fd29yZFNwYWNpbmcoMCkKLSAgICAs
IG1faXNQbGF0Zm9ybUZvbnQoZmFsc2UpCiAgICAgLCBtX25lZWRzVHJhbnNjb2RpbmcoZmFsc2Up
CiAgICAgLCBtX3R5cGVzZXR0aW5nRmVhdHVyZXMoMCkKIHsKQEAgLTgyLDE3ICs4MSwxNSBAQCBG
b250OjpGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZmQsIHNoCiAgICAgOiBtX2ZvbnREZXNj
cmlwdGlvbihmZCkKICAgICAsIG1fbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nKQogICAgICwg
bV93b3JkU3BhY2luZyh3b3JkU3BhY2luZykKLSAgICAsIG1faXNQbGF0Zm9ybUZvbnQoZmFsc2Up
CiAgICAgLCBtX25lZWRzVHJhbnNjb2RpbmcoZm9udFRyYW5zY29kZXIoKS5uZWVkc1RyYW5zY29k
aW5nKGZkKSkKICAgICAsIG1fdHlwZXNldHRpbmdGZWF0dXJlcyhjb21wdXRlVHlwZXNldHRpbmdG
ZWF0dXJlcygpKQogewogfQogCiBGb250OjpGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZv
bnREYXRhLCBib29sIGlzUHJpbnRlckZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIGZvbnRTbW9vdGhp
bmdNb2RlKQotICAgIDogbV9nbHlwaHMoRm9udEdseXBoczo6Y3JlYXRlRm9yUGxhdGZvcm1EYXRh
KGZvbnREYXRhKSkKKyAgICA6IG1fZ2x5cGhzKEZvbnRHbHlwaHM6OmNyZWF0ZUZvclBsYXRmb3Jt
Rm9udChmb250RGF0YSkpCiAgICAgLCBtX2xldHRlclNwYWNpbmcoMCkKICAgICAsIG1fd29yZFNw
YWNpbmcoMCkKLSAgICAsIG1faXNQbGF0Zm9ybUZvbnQodHJ1ZSkKICAgICAsIG1fdHlwZXNldHRp
bmdGZWF0dXJlcyhjb21wdXRlVHlwZXNldHRpbmdGZWF0dXJlcygpKQogewogICAgIG1fZm9udERl
c2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KGlzUHJpbnRlckZvbnQpOwpAQCAtMTA1LDcgKzEw
Miw2IEBAIEZvbnQ6OkZvbnQoY29uc3QgRm9udCYgb3RoZXIpCiAgICAgLCBtX2dseXBocyhvdGhl
ci5tX2dseXBocykKICAgICAsIG1fbGV0dGVyU3BhY2luZyhvdGhlci5tX2xldHRlclNwYWNpbmcp
CiAgICAgLCBtX3dvcmRTcGFjaW5nKG90aGVyLm1fd29yZFNwYWNpbmcpCi0gICAgLCBtX2lzUGxh
dGZvcm1Gb250KG90aGVyLm1faXNQbGF0Zm9ybUZvbnQpCiAgICAgLCBtX25lZWRzVHJhbnNjb2Rp
bmcob3RoZXIubV9uZWVkc1RyYW5zY29kaW5nKQogICAgICwgbV90eXBlc2V0dGluZ0ZlYXR1cmVz
KGNvbXB1dGVUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpCiB7CkBAIC0xMTcsNyArMTEzLDYgQEAgRm9u
dCYgRm9udDo6b3BlcmF0b3I9KGNvbnN0IEZvbnQmIG90aGVyKQogICAgIG1fZ2x5cGhzID0gb3Ro
ZXIubV9nbHlwaHM7CiAgICAgbV9sZXR0ZXJTcGFjaW5nID0gb3RoZXIubV9sZXR0ZXJTcGFjaW5n
OwogICAgIG1fd29yZFNwYWNpbmcgPSBvdGhlci5tX3dvcmRTcGFjaW5nOwotICAgIG1faXNQbGF0
Zm9ybUZvbnQgPSBvdGhlci5tX2lzUGxhdGZvcm1Gb250OwogICAgIG1fbmVlZHNUcmFuc2NvZGlu
ZyA9IG90aGVyLm1fbmVlZHNUcmFuc2NvZGluZzsKICAgICBtX3R5cGVzZXR0aW5nRmVhdHVyZXMg
PSBvdGhlci5tX3R5cGVzZXR0aW5nRmVhdHVyZXM7CiAgICAgcmV0dXJuICp0aGlzOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gMTUwNzQ3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIEZvbnRXZWlnaHQgd2VpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24ud2VpZ2h0KCk7IH0KICAgICBGb250V2lkdGhW
YXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLndp
ZHRoVmFyaWFudCgpOyB9CiAKLSAgICBib29sIGlzUGxhdGZvcm1Gb250KCkgY29uc3QgeyByZXR1
cm4gbV9pc1BsYXRmb3JtRm9udDsgfQorICAgIGJvb2wgaXNQbGF0Zm9ybUZvbnQoKSBjb25zdCB7
IHJldHVybiBtX2dseXBocy0+aXNGb3JQbGF0Zm9ybUZvbnQoKTsgfQogCiAgICAgY29uc3QgRm9u
dE1ldHJpY3MmIGZvbnRNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+Zm9u
dE1ldHJpY3MoKTsgfQogICAgIGZsb2F0IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBwcmlt
YXJ5Rm9udCgpLT5zcGFjZVdpZHRoKCkgKyBtX2xldHRlclNwYWNpbmc7IH0KQEAgLTE2MCw3ICsx
NjAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBh
Z2UqPiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3Is
IEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
Z2x5cGhzLT5nbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKCp0aGlzLCBjLCBtaXJyb3IsIHZh
cmlhbnQpOworICAgICAgICByZXR1cm4gbV9nbHlwaHMtPmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFy
YWN0ZXIobV9mb250RGVzY3JpcHRpb24sIGMsIG1pcnJvciwgdmFyaWFudCk7CiAgICAgfQogICAg
IGJvb2wgcHJpbWFyeUZvbnRIYXNHbHlwaEZvckNoYXJhY3RlcihVQ2hhcjMyKSBjb25zdDsKIApA
QCAtMzA5LDcgKzMwOSw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8Rm9udEdseXBo
cz4gbV9nbHlwaHM7CiAgICAgc2hvcnQgbV9sZXR0ZXJTcGFjaW5nOwogICAgIHNob3J0IG1fd29y
ZFNwYWNpbmc7Ci0gICAgYm9vbCBtX2lzUGxhdGZvcm1Gb250OwogICAgIGJvb2wgbV9uZWVkc1Ry
YW5zY29kaW5nOwogICAgIG11dGFibGUgVHlwZXNldHRpbmdGZWF0dXJlcyBtX3R5cGVzZXR0aW5n
RmVhdHVyZXM7IC8vIENhY2hlcyB2YWx1ZXMgY29tcHV0ZWQgZnJvbSBtX2ZvbnREZXNjcmlwdGlv
bi4KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuaAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVsZWFzZUZvbnREYXRhKGNvbnN0IFNpbXBsZUZvbnREYXRhKik7CiAKICAgICAv
LyBUaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBieSB0aGUgcGxhdGZvcm0uCi0gICAgUGFzc1Jl
ZlB0cjxTaW1wbGVGb250RGF0YT4gZ2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQm
LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCk7CisgICAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gc3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IEZvbnREYXRhKiBwcmltYXJ5Rm9udERhdGEsIGJvb2wgaXNQbGF0Zm9y
bUZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKTsKIAogICAgIC8vIEFs
c28gaW1wbGVtZW50ZWQgYnkgdGhlIHBsYXRmb3JtLgogICAgIHZvaWQgcGxhdGZvcm1Jbml0KCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFsbGJhY2tMaXN0LmNwcAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDYgKzQ1LDcgQEAgRm9udEdseXBoczo6Rm9udEdseXBocygpCiAgICAgLCBtX2dlbmVyYXRpb24o
Zm9udENhY2hlKCktPmdlbmVyYXRpb24oKSkKICAgICAsIG1fcGl0Y2goVW5rbm93blBpdGNoKQog
ICAgICwgbV9sb2FkaW5nQ3VzdG9tRm9udHMoZmFsc2UpCisgICAgLCBtX2lzRm9yUGxhdGZvcm1G
b250KGZhbHNlKQogewogfQogCkBAIC01Nyw2ICs1OCw3IEBAIEZvbnRHbHlwaHM6OkZvbnRHbHlw
aHMoY29uc3QgRm9udFBsYXRmb3IKICAgICAsIG1fZ2VuZXJhdGlvbihmb250Q2FjaGUoKS0+Z2Vu
ZXJhdGlvbigpKQogICAgICwgbV9waXRjaChVbmtub3duUGl0Y2gpCiAgICAgLCBtX2xvYWRpbmdD
dXN0b21Gb250cyhmYWxzZSkKKyAgICAsIG1faXNGb3JQbGF0Zm9ybUZvbnQodHJ1ZSkKIHsKICAg
ICBSZWZQdHI8Rm9udERhdGE+IGZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRE
YXRhKCZwbGF0Zm9ybURhdGEpOwogICAgIG1fcmVhbGl6ZWRGb250RGF0YS5hcHBlbmQoZm9udERh
dGEucmVsZWFzZSgpKTsKQEAgLTI0NywxMSArMjQ5LDEwIEBAIHN0YXRpYyBpbmxpbmUgc3RkOjpw
YWlyPEdseXBoRGF0YSwgR2x5cGgKICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoZGF0YSwgcGFn
ZSk7CiB9CiAKLXN0ZDo6cGFpcjxHbHlwaERhdGEsIEdseXBoUGFnZSo+IEZvbnRHbHlwaHM6Omds
eXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIoY29uc3QgRm9udCYgZm9udCwgVUNoYXIzMiBjLCBi
b29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQpIGNvbnN0CitzdGQ6OnBhaXI8R2x5
cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250R2x5cGhzOjpnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFj
dGVyKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIFVDaGFyMzIgYywgYm9vbCBt
aXJyb3IsIEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKLSAgICBjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uID0g
Zm9udC5mb250RGVzY3JpcHRpb24oKTsKICAgICBpZiAodmFyaWFudCA9PSBBdXRvVmFyaWFudCkg
ewogICAgICAgICBpZiAoZGVzY3JpcHRpb24uc21hbGxDYXBzKCkgJiYgIXByaW1hcnlTaW1wbGVG
b250RGF0YShkZXNjcmlwdGlvbiktPmlzU1ZHRm9udCgpKSB7CiAgICAgICAgICAgICBVQ2hhcjMy
IHVwcGVyQyA9IFdURjo6VW5pY29kZTo6dG9VcHBlcihjKTsKQEAgLTM2Niw3ICszNjcsOCBAQCBz
dGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250R2x5CiAgICAgICAgIGNvZGVVbml0
c1sxXSA9IFUxNl9UUkFJTChjKTsKICAgICAgICAgY29kZVVuaXRzTGVuZ3RoID0gMjsKICAgICB9
Ci0gICAgUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBjaGFyYWN0ZXJGb250RGF0YSA9IGZvbnRDYWNo
ZSgpLT5nZXRGb250RGF0YUZvckNoYXJhY3RlcnMoZm9udCwgY29kZVVuaXRzLCBjb2RlVW5pdHNM
ZW5ndGgpOworICAgIGNvbnN0IEZvbnREYXRhKiBwcmltYXJ5RGF0YSA9IHByaW1hcnlGb250RGF0
YShkZXNjcmlwdGlvbik7CisgICAgUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBjaGFyYWN0ZXJGb250
RGF0YSA9IGZvbnRDYWNoZSgpLT5zeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoZGVzY3JpcHRp
b24sIHByaW1hcnlEYXRhLCBtX2lzRm9yUGxhdGZvcm1Gb250LCBjb2RlVW5pdHMsIGNvZGVVbml0
c0xlbmd0aCk7CiAgICAgaWYgKGNoYXJhY3RlckZvbnREYXRhKSB7CiAgICAgICAgIGlmIChjaGFy
YWN0ZXJGb250RGF0YS0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCAm
JiAhY2hhcmFjdGVyRm9udERhdGEtPmhhc1ZlcnRpY2FsR2x5cGhzKCkgJiYgRm9udDo6aXNDSktJ
ZGVvZ3JhcGhPclN5bWJvbChjKSkKICAgICAgICAgICAgIHZhcmlhbnQgPSBCcm9rZW5JZGVvZ3Jh
cGhWYXJpYW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZh
bGxiYWNrTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGYWxsYmFja0xpc3QuaAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRm9udDsKIGNs
YXNzIEdseXBoUGFnZVRyZWVOb2RlOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50
UmVjdDsKQEAgLTY2LDEyICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZvbnRHbHlwaHM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250
R2x5cGhzKCkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEdseXBocz4gY3JlYXRlRm9y
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEZvbnRHbHlwaHMocGxhdGZvcm1EYXRhKSk7IH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGb250R2x5cGhzPiBjcmVhdGVGb3JQbGF0Zm9ybUZvbnQoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRm9udEdseXBo
cyhwbGF0Zm9ybURhdGEpKTsgfQogCiAgICAgfkZvbnRHbHlwaHMoKSB7IHJlbGVhc2VGb250RGF0
YSgpOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlKFBhc3NSZWZQdHI8Rm9udFNlbGVjdG9yPik7CiAK
LSAgICBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBnbHlwaERhdGFBbmRQYWdlRm9y
Q2hhcmFjdGVyKGNvbnN0IEZvbnQmLCBVQ2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJp
YW50KSBjb25zdDsKKyAgICBib29sIGlzRm9yUGxhdGZvcm1Gb250KCkgY29uc3QgeyByZXR1cm4g
bV9pc0ZvclBsYXRmb3JtRm9udDsgfQorCisgICAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQ
YWdlKj4gZ2x5cGhEYXRhQW5kUGFnZUZvckNoYXJhY3Rlcihjb25zdCBGb250RGVzY3JpcHRpb24m
LCBVQ2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50KSBjb25zdDsKICAgICAKICAg
ICBib29sIGlzRml4ZWRQaXRjaChjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICB2
b2lkIGRldGVybWluZVBpdGNoKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwpAQCAtMTA2
LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV9nZW5lcmF0aW9uOwog
ICAgIG11dGFibGUgdW5zaWduZWQgbV9waXRjaCA6IDM7IC8vIFBpdGNoCiAgICAgbXV0YWJsZSBi
b29sIG1fbG9hZGluZ0N1c3RvbUZvbnRzIDogMTsKKyAgICBib29sIG1faXNGb3JQbGF0Zm9ybUZv
bnQgOiAxOwogfTsKIAogaW5saW5lIGJvb2wgRm9udEdseXBoczo6aXNGaXhlZFBpdGNoKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDYWNoZUJsYWNrQmVycnkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkv
Rm9udENhY2hlQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDE1MDc0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvRm9udENhY2hlQmxhY2tCZXJyeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE0MSwxMSArMTQxLDExIEBAIHZvaWQgRm9udENhY2hlOjpnZXRG
b250RmFtaWx5Rm9yQ2hhcmFjdGUKICAgICBGY0ZvbnRTZXREZXN0cm95KGZvbnRTZXQpOwogfQog
Ci1QYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hh
cmFjdGVycyhjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxl
bmd0aCkKK1Bhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c3lzdGVtRmFsbGJh
Y2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdCBGb250RGF0YSosIGJvb2wsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3Ro
KQogewogICAgIGljdTo6TG9jYWxlIGxvY2FsZSA9IGljdTo6TG9jYWxlOjpnZXREZWZhdWx0KCk7
CiAgICAgRm9udENhY2hlOjpTaW1wbGVGb250RmFtaWx5IGZhbWlseTsKLSAgICBGb250Q2FjaGU6
OmdldEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnMsIGxlbmd0aCwgbG9jYWxlLmdl
dExhbmd1YWdlKCksIGZvbnQuZm9udERlc2NyaXB0aW9uKCksICZmYW1pbHkpOworICAgIEZvbnRD
YWNoZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY2hhcmFjdGVycywgbGVuZ3RoLCBsb2Nh
bGUuZ2V0TGFuZ3VhZ2UoKSwgZm9udERlc2NyaXB0aW9uLCAmZmFtaWx5KTsKICAgICBpZiAoZmFt
aWx5Lm5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTU1LDcgKzE1NSw3
IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2UKICAgICAvLyBvZiB0
aGUgZ2l2ZW4gY2hhcmFjdGVycy4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzIxMDkgZm9yIGRldGFp
bHMuCiAgICAgYm9vbCBzaG91bGRTZXRGYWtlQm9sZCA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxk
U2V0RmFrZUl0YWxpYyA9IGZhbHNlOwotICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbihm
b250LmZvbnREZXNjcmlwdGlvbigpKTsKKyAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb24o
Zm9udERlc2NyaXB0aW9uKTsKICAgICBpZiAoZmFtaWx5LmlzQm9sZCAmJiBkZXNjcmlwdGlvbi53
ZWlnaHQoKSA8IEZvbnRXZWlnaHRCb2xkKQogICAgICAgICBkZXNjcmlwdGlvbi5zZXRXZWlnaHQo
Rm9udFdlaWdodEJvbGQpOwogICAgIGlmICghZmFtaWx5LmlzQm9sZCAmJiBkZXNjcmlwdGlvbi53
ZWlnaHQoKSA+PSBGb250V2VpZ2h0Qm9sZCkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVU
eXBlLmNwcAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
MSwxNCArODEsMTQgQEAgRmNQYXR0ZXJuKiBmaW5kQmVzdEZvbnRHaXZlbkZhbGxiYWNrcyhjbwog
ICAgIHJldHVybiBGY0ZvbnRTZXRNYXRjaCgwLCBzZXRzLCAxLCBwYXR0ZXJuLCAmZm9udENvbmZp
Z1Jlc3VsdCk7CiB9CiAKLVBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0
Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCBpbnQgbGVuZ3RoKQorUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgY29uc3QgRm9udERhdGEqIHByaW1hcnlGb250RGF0YSwgYm9vbCwgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgUmVmUHRyPEZjUGF0dGVybj4gcGF0
dGVybiA9IGFkb3B0UmVmKGNyZWF0ZUZvbnRDb25maWdQYXR0ZXJuRm9yQ2hhcmFjdGVycyhjaGFy
YWN0ZXJzLCBsZW5ndGgpKTsKLSAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmb250RGF0YSA9
IGZvbnQucHJpbWFyeUZvbnQoKS0+cGxhdGZvcm1EYXRhKCk7CisgICAgY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgZm9udERhdGEgPSBwcmltYXJ5Rm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogCiAg
ICAgUmVmUHRyPEZjUGF0dGVybj4gZmFsbGJhY2tQYXR0ZXJuID0gYWRvcHRSZWYoZmluZEJlc3RG
b250R2l2ZW5GYWxsYmFja3MoZm9udERhdGEsIHBhdHRlcm4uZ2V0KCkpKTsKICAgICBpZiAoZmFs
bGJhY2tQYXR0ZXJuKSB7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udERh
dGEoZmFsbGJhY2tQYXR0ZXJuLmdldCgpLCBmb250LmZvbnREZXNjcmlwdGlvbigpKTsKKyAgICAg
ICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250RGF0YShmYWxsYmFja1BhdHRlcm4uZ2V0
KCksIGRlc2NyaXB0aW9uKTsKICAgICAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKCZhbHRl
cm5hdGVGb250RGF0YSwgRG9Ob3RSZXRhaW4pOwogICAgIH0KIApAQCAtOTYsNyArOTYsNyBAQCBQ
YXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdlCiAgICAgUmVmUHRyPEZjUGF0
dGVybj4gcmVzdWx0UGF0dGVybiA9IGFkb3B0UmVmKEZjRm9udE1hdGNoKDAsIHBhdHRlcm4uZ2V0
KCksICZmb250Q29uZmlnUmVzdWx0KSk7CiAgICAgaWYgKCFyZXN1bHRQYXR0ZXJuKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnREYXRhKHJlc3Vs
dFBhdHRlcm4uZ2V0KCksIGZvbnQuZm9udERlc2NyaXB0aW9uKCkpOworICAgIEZvbnRQbGF0Zm9y
bURhdGEgYWx0ZXJuYXRlRm9udERhdGEocmVzdWx0UGF0dGVybi5nZXQoKSwgZGVzY3JpcHRpb24p
OwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgmYWx0ZXJuYXRlRm9udERhdGEsIERvTm90
UmV0YWluKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDYWNoZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCShyZXZpc2lvbiAxNTA3NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC04NiwxMSArODYsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXBwS2l0Rm9udFdl
aWdodEJvbAogICAgIHJldHVybiBhcHBLaXRGb250V2VpZ2h0ID49IDc7CiB9CiAKLVBhc3NSZWZQ
dHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNv
bnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQorUGFz
c1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJh
Y3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgRm9udERhdGEq
IHByaW1hcnlGb250RGF0YSwgYm9vbCBpc1BsYXRmb3JtRm9udCwgY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgVUNoYXIzMiBjaGFyYWN0ZXI7CiAgICAgVTE2X0dF
VChjaGFyYWN0ZXJzLCAwLCAwLCBsZW5ndGgsIGNoYXJhY3Rlcik7Ci0gICAgY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhID0gZm9udC5mb250RGF0YUF0KDApLT5mb250RGF0YUZv
ckNoYXJhY3RlcihjaGFyYWN0ZXIpLT5wbGF0Zm9ybURhdGEoKTsKKyAgICBjb25zdCBGb250UGxh
dGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBwcmltYXJ5Rm9udERhdGEtPmZvbnREYXRhRm9yQ2hh
cmFjdGVyKGNoYXJhY3RlciktPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9udCAqbnNGb250ID0g
cGxhdGZvcm1EYXRhLmZvbnQoKTsKIAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNOb0NvcHk6Y29uc3RfY2FzdDxVQ2hhcio+KGNoYXJh
Y3RlcnMpIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5PXTsKQEAgLTEyNCw5ICsxMjQsOSBA
QCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdlCiAgICAgICAgIHNpemUg
PSBbbnNGb250IHBvaW50U2l6ZV07CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRm9yIGN1c3Rv
bSBmb250cyBuc0ZvbnQgaXMgbmlsLgotICAgICAgICB0cmFpdHMgPSBmb250Lml0YWxpYygpID8g
TlNGb250SXRhbGljVHJhaXQgOiAwOwotICAgICAgICB3ZWlnaHQgPSB0b0FwcEtpdEZvbnRXZWln
aHQoZm9udC53ZWlnaHQoKSk7Ci0gICAgICAgIHNpemUgPSBmb250LnBpeGVsU2l6ZSgpOworICAg
ICAgICB0cmFpdHMgPSBkZXNjcmlwdGlvbi5pdGFsaWMoKSA/IE5TRm9udEl0YWxpY1RyYWl0IDog
MDsKKyAgICAgICAgd2VpZ2h0ID0gdG9BcHBLaXRGb250V2VpZ2h0KGRlc2NyaXB0aW9uLndlaWdo
dCgpKTsKKyAgICAgICAgc2l6ZSA9IGRlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAg
ICAgfQogCiAgICAgTlNGb250VHJhaXRNYXNrIHN1YnN0aXR1dGVGb250VHJhaXRzID0gW2ZvbnRN
YW5hZ2VyIHRyYWl0c09mRm9udDpzdWJzdGl0dXRlRm9udF07CkBAIC0xNDAsMTQgKzE0MCwxNCBA
QCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdlCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBzdWJzdGl0dXRlRm9udCA9IGZvbnQuZm9udERlc2NyaXB0aW9uKCkudXNlUHJp
bnRlckZvbnQoKSA/IFtzdWJzdGl0dXRlRm9udCBwcmludGVyRm9udF0gOiBbc3Vic3RpdHV0ZUZv
bnQgc2NyZWVuRm9udF07CisgICAgc3Vic3RpdHV0ZUZvbnQgPSBkZXNjcmlwdGlvbi51c2VQcmlu
dGVyRm9udCgpID8gW3N1YnN0aXR1dGVGb250IHByaW50ZXJGb250XSA6IFtzdWJzdGl0dXRlRm9u
dCBzY3JlZW5Gb250XTsKIAogICAgIHN1YnN0aXR1dGVGb250VHJhaXRzID0gW2ZvbnRNYW5hZ2Vy
IHRyYWl0c09mRm9udDpzdWJzdGl0dXRlRm9udF07CiAgICAgc3Vic3RpdHV0ZUZvbnRXZWlnaHQg
PSBbZm9udE1hbmFnZXIgd2VpZ2h0T2ZGb250OnN1YnN0aXR1dGVGb250XTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udChzdWJzdGl0dXRlRm9udCwgcGxhdGZvcm1EYXRhLnNp
emUoKSwgcGxhdGZvcm1EYXRhLmlzUHJpbnRlckZvbnQoKSwKLSAgICAgICAgIWZvbnQuaXNQbGF0
Zm9ybUZvbnQoKSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHdlaWdodCkgJiYgIWlzQXBwS2l0
Rm9udFdlaWdodEJvbGQoc3Vic3RpdHV0ZUZvbnRXZWlnaHQpLAotICAgICAgICAhZm9udC5pc1Bs
YXRmb3JtRm9udCgpICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShzdWJzdGl0
dXRlRm9udFRyYWl0cyAmIE5TRm9udEl0YWxpY1RyYWl0KSwKKyAgICAgICAgIWlzUGxhdGZvcm1G
b250ICYmIGlzQXBwS2l0Rm9udFdlaWdodEJvbGQod2VpZ2h0KSAmJiAhaXNBcHBLaXRGb250V2Vp
Z2h0Qm9sZChzdWJzdGl0dXRlRm9udFdlaWdodCksCisgICAgICAgICFpc1BsYXRmb3JtRm9udCAm
JiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMg
JiBOU0ZvbnRJdGFsaWNUcmFpdCksCiAgICAgICAgIHBsYXRmb3JtRGF0YS5tX29yaWVudGF0aW9u
KTsKIAogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YSgmYWx0ZXJuYXRlRm9udCwgRG9Ob3RS
ZXRhaW4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udENh
Y2hlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRDYWNoZVF0LmNwcAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udENhY2hlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MywxMCArNjMsMTAgQEAgc3RhdGljIFFSYXdGb250IHJhd0ZvbnRGb3JDaGFyYWN0ZXJzKGNvbgog
ICAgIHJldHVybiBnbHlwaHMucmF3Rm9udCgpOwogfQogCi1QYXNzUmVmUHRyPFNpbXBsZUZvbnRE
YXRhPiBGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycyhjb25zdCBGb250JiBmb250
LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkKK1Bhc3NSZWZQdHI8U2ltcGxl
Rm9udERhdGE+IEZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYsIGNvbnN0IEZvbnREYXRhKiBwcmltYXJ5Rm9udERhdGEsIGJvb2wsIGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIFFTdHJpbmcgcXN0cmlu
ZyA9IFFTdHJpbmc6OmZyb21SYXdEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUUNoYXIqPihj
aGFyYWN0ZXJzKSwgbGVuZ3RoKTsKLSAgICBRUmF3Rm9udCBjb21wdXRlZEZvbnQgPSByYXdGb250
Rm9yQ2hhcmFjdGVycyhxc3RyaW5nLCBmb250LnJhd0ZvbnQoKSk7CisgICAgUVJhd0ZvbnQgY29t
cHV0ZWRGb250ID0gcmF3Rm9udEZvckNoYXJhY3RlcnMocXN0cmluZywgcHJpbWFyeUZvbnREYXRh
LT5nZXRRdFJhd0ZvbnQoKSk7CiAgICAgaWYgKCFjb21wdXRlZEZvbnQuaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoY29tcHV0
ZWRGb250KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCShyZXZpc2lvbiAxNTA3NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg2LDEyICsxODYsMTIgQEAgc3RhdGljIEhGT05UIGNyZWF0ZU1MYW5nRm9udChJTUxh
bmdGb250TAogICAgIHJldHVybiBoZm9udDsKIH0KIAotUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0
YT4gRm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCitQYXNzUmVmUHRyPFNpbXBsZUZv
bnREYXRhPiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBGb250RGF0YSogcHJpbWFyeUZvbnREYXRh
LCBib29sLCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkKIHsKICAgICBVQ2hh
ciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzWzBdOwogICAgIFJlZlB0cjxTaW1wbGVGb250RGF0YT4g
Zm9udERhdGE7CiAgICAgSFduZERDIGhkYygwKTsKLSAgICBIRk9OVCBwcmltYXJ5Rm9udCA9IGZv
bnQucHJpbWFyeUZvbnQoKS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyKS0+cGxhdGZv
cm1EYXRhKCkuaGZvbnQoKTsKKyAgICBIRk9OVCBwcmltYXJ5Rm9udCA9IHByaW1hcnlGb250RGF0
YS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyKS0+cGxhdGZvcm1EYXRhKCkuaGZvbnQo
KTsKICAgICBIR0RJT0JKIG9sZEZvbnQgPSBTZWxlY3RPYmplY3QoaGRjLCBwcmltYXJ5Rm9udCk7
CiAgICAgSEZPTlQgaGZvbnQgPSAwOwogCkBAIC0yODQsNyArMjg0LDcgQEAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZQogCiAgICAgaWYgKGhmb250KSB7CiAgICAgICAg
IGlmICghZmFtaWx5TmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEqIHJlc3VsdCA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udC5mb250RGVzY3JpcHRp
b24oKSwgZmFtaWx5TmFtZSk7CisgICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQg
PSBnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGRlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAg
ICAgICAgICAgIGlmIChyZXN1bHQpCiAgICAgICAgICAgICAgICAgZm9udERhdGEgPSBnZXRDYWNo
ZWRGb250RGF0YShyZXN1bHQsIERvTm90UmV0YWluKTsKICAgICAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udENhY2hlV2luQ0UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDYWNo
ZVdpbkNFLmNwcAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvRm9udENhY2hlV2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMs
MTMgKzIwMywxMyBAQCB2b2lkIEZvbnRDYWNoZTo6Y29tVW5pbml0aWFsaXplKCkKICAgICB9CiB9
CiAKLVBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0Rm9udERhdGFGb3JD
aGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQg
bGVuZ3RoKQorUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29u
c3QgRm9udERhdGEqIHByaW1hcnlGb250RGF0YSwgYm9vbCwgY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIGludCBsZW5ndGgpCiB7CiAgICAgU3RyaW5nIGZhbWlseU5hbWU7CiAgICAgV0NIQVIgbmFt
ZVtMRl9GQUNFU0laRV07CiAKICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzWzBdOwot
ICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9yaWdGb250ID0gZm9udC5wcmltYXJ5Rm9udCgp
LT5mb250RGF0YUZvckNoYXJhY3RlcihjaGFyYWN0ZXIpLT5wbGF0Zm9ybURhdGEoKTsKKyAgICBj
b25zdCBGb250UGxhdGZvcm1EYXRhJiBvcmlnRm9udCA9IHByaW1hcnlGb250RGF0YS0+Zm9udERh
dGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyKS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgdW5zaWduZWQg
dW5pY29kZVJhbmdlID0gZmluZENoYXJVbmljb2RlUmFuZ2UoY2hhcmFjdGVyKTsKIAogICAgIGlm
IChJTUxhbmdGb250TGlua1R5cGUqIGxhbmdGb250TGluayA9IGdldEZvbnRMaW5rSW50ZXJmYWNl
KCkpIHsKQEAgLTI2NSw3ICsyNjUsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250
Q2FjaGU6OmdlCiAKICAgICBpZiAoIWZhbWlseU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8v
IEZJWE1FOiB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgVGhhaSBmb250IHByb2JsZW0KLSAgICAg
ICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbihmb250LmZvbnREZXNjcmlwdGlvbigp
KTsKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7
CiAgICAgICAgIGlmICh1bmljb2RlUmFuZ2UgPT0gY1JhbmdlVGhhaSAmJiBmb250RGVzY3JpcHRp
b24ud2VpZ2h0KCkgPiBGb250V2VpZ2h0Tm9ybWFsKQogICAgICAgICAgICAgZm9udERlc2NyaXB0
aW9uLnNldFdlaWdodChGb250V2VpZ2h0Tm9ybWFsKTsKIAo=
</data>
<flag name="commit-queue"
          id="224416"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202980</attachid>
            <date>2013-05-27 06:58:24 -0700</date>
            <delta_ts>2013-05-27 08:17:17 -0700</delta_ts>
            <desc>Another</desc>
            <filename>system-fallback-tighten-2.patch</filename>
            <type>text/plain</type>
            <size>20379</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDc0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTA1LTI3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIEZvbnRHbHlwaHM6
OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIgdG8gdGFrZSBGb250RGVzY3JpcHRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjgyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvbnRHbHlwaHMg
ZG9lcyBub3QgbmVlZCB0byBrbm93IGFib3V0IEZvbnQgYW55bW9yZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Rm9udCk6
CisgICAgICAgIChXZWJDb3JlOjpGb250OjpvcGVyYXRvcj0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmlzUGxhdGZvcm1Gb250
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIp
OgorICAgICAgICAoRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250R2x5cGhzOjpGb250R2x5cGhzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRHbHlwaHM6OmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFyYWN0ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEdseXBoczo6Y3JlYXRlRm9yUGxhdGZvcm1Gb250KToK
KyAgICAgICAgCisgICAgICAgICAgICBUd2Vha2VkIHRoZSBuYW1lLgorCisgICAgICAgIChXZWJD
b3JlOjpGb250R2x5cGhzOjppc0ZvclBsYXRmb3JtRm9udCk6CisgICAgICAgIAorICAgICAgICAg
ICAgTW92ZSBrbm93bGVkZ2UgYWJvdXQgcGxhdGZvcm0gZm9udCB0byBGb250R2x5cGhzIGFzIGl0
IGlzIG5lZWRlZCBmb3IgcmVzb2x2aW5nIHN5c3RlbSBmYWxsYmFjayBvbiBNYWMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDYWNoZUJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3Rl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JD
aGFyYWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJh
Y3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q2FjaGVXaW5DRS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6
CisgICAgICAgIAorICAgICAgICAgICAgTW9yZSBkZXNjcmlwdGl2ZSBuYW1lIGFuZCB0aWdodGVy
IGludGVyZmFjZS4KKwogMjAxMy0wNS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgVGlnaHRlbiBGb250R2x5cGhzIGludGVyZmFjZXMgdG8gdGFrZSBGb250
RGVzY3JpcHRpb24gaW5zdGVhZCBvZiBGb250CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gMTUwNzMwKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDYg
QEAgVHlwZXNldHRpbmdGZWF0dXJlcyBGb250OjpzX2RlZmF1bHRUeXBlcwogRm9udDo6Rm9udCgp
CiAgICAgOiBtX2xldHRlclNwYWNpbmcoMCkKICAgICAsIG1fd29yZFNwYWNpbmcoMCkKLSAgICAs
IG1faXNQbGF0Zm9ybUZvbnQoZmFsc2UpCiAgICAgLCBtX25lZWRzVHJhbnNjb2RpbmcoZmFsc2Up
CiAgICAgLCBtX3R5cGVzZXR0aW5nRmVhdHVyZXMoMCkKIHsKQEAgLTgyLDE3ICs4MSwxNSBAQCBG
b250OjpGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZmQsIHNoCiAgICAgOiBtX2ZvbnREZXNj
cmlwdGlvbihmZCkKICAgICAsIG1fbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nKQogICAgICwg
bV93b3JkU3BhY2luZyh3b3JkU3BhY2luZykKLSAgICAsIG1faXNQbGF0Zm9ybUZvbnQoZmFsc2Up
CiAgICAgLCBtX25lZWRzVHJhbnNjb2RpbmcoZm9udFRyYW5zY29kZXIoKS5uZWVkc1RyYW5zY29k
aW5nKGZkKSkKICAgICAsIG1fdHlwZXNldHRpbmdGZWF0dXJlcyhjb21wdXRlVHlwZXNldHRpbmdG
ZWF0dXJlcygpKQogewogfQogCiBGb250OjpGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZv
bnREYXRhLCBib29sIGlzUHJpbnRlckZvbnQsIEZvbnRTbW9vdGhpbmdNb2RlIGZvbnRTbW9vdGhp
bmdNb2RlKQotICAgIDogbV9nbHlwaHMoRm9udEdseXBoczo6Y3JlYXRlRm9yUGxhdGZvcm1EYXRh
KGZvbnREYXRhKSkKKyAgICA6IG1fZ2x5cGhzKEZvbnRHbHlwaHM6OmNyZWF0ZUZvclBsYXRmb3Jt
Rm9udChmb250RGF0YSkpCiAgICAgLCBtX2xldHRlclNwYWNpbmcoMCkKICAgICAsIG1fd29yZFNw
YWNpbmcoMCkKLSAgICAsIG1faXNQbGF0Zm9ybUZvbnQodHJ1ZSkKICAgICAsIG1fdHlwZXNldHRp
bmdGZWF0dXJlcyhjb21wdXRlVHlwZXNldHRpbmdGZWF0dXJlcygpKQogewogICAgIG1fZm9udERl
c2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KGlzUHJpbnRlckZvbnQpOwpAQCAtMTA1LDcgKzEw
Miw2IEBAIEZvbnQ6OkZvbnQoY29uc3QgRm9udCYgb3RoZXIpCiAgICAgLCBtX2dseXBocyhvdGhl
ci5tX2dseXBocykKICAgICAsIG1fbGV0dGVyU3BhY2luZyhvdGhlci5tX2xldHRlclNwYWNpbmcp
CiAgICAgLCBtX3dvcmRTcGFjaW5nKG90aGVyLm1fd29yZFNwYWNpbmcpCi0gICAgLCBtX2lzUGxh
dGZvcm1Gb250KG90aGVyLm1faXNQbGF0Zm9ybUZvbnQpCiAgICAgLCBtX25lZWRzVHJhbnNjb2Rp
bmcob3RoZXIubV9uZWVkc1RyYW5zY29kaW5nKQogICAgICwgbV90eXBlc2V0dGluZ0ZlYXR1cmVz
KGNvbXB1dGVUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpCiB7CkBAIC0xMTcsNyArMTEzLDYgQEAgRm9u
dCYgRm9udDo6b3BlcmF0b3I9KGNvbnN0IEZvbnQmIG90aGVyKQogICAgIG1fZ2x5cGhzID0gb3Ro
ZXIubV9nbHlwaHM7CiAgICAgbV9sZXR0ZXJTcGFjaW5nID0gb3RoZXIubV9sZXR0ZXJTcGFjaW5n
OwogICAgIG1fd29yZFNwYWNpbmcgPSBvdGhlci5tX3dvcmRTcGFjaW5nOwotICAgIG1faXNQbGF0
Zm9ybUZvbnQgPSBvdGhlci5tX2lzUGxhdGZvcm1Gb250OwogICAgIG1fbmVlZHNUcmFuc2NvZGlu
ZyA9IG90aGVyLm1fbmVlZHNUcmFuc2NvZGluZzsKICAgICBtX3R5cGVzZXR0aW5nRmVhdHVyZXMg
PSBvdGhlci5tX3R5cGVzZXR0aW5nRmVhdHVyZXM7CiAgICAgcmV0dXJuICp0aGlzOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2aXNpb24gMTUwNzQ3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIEZvbnRXZWlnaHQgd2VpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24ud2VpZ2h0KCk7IH0KICAgICBGb250V2lkdGhW
YXJpYW50IHdpZHRoVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLndp
ZHRoVmFyaWFudCgpOyB9CiAKLSAgICBib29sIGlzUGxhdGZvcm1Gb250KCkgY29uc3QgeyByZXR1
cm4gbV9pc1BsYXRmb3JtRm9udDsgfQorICAgIGJvb2wgaXNQbGF0Zm9ybUZvbnQoKSBjb25zdCB7
IHJldHVybiBtX2dseXBocy0+aXNGb3JQbGF0Zm9ybUZvbnQoKTsgfQogCiAgICAgY29uc3QgRm9u
dE1ldHJpY3MmIGZvbnRNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+Zm9u
dE1ldHJpY3MoKTsgfQogICAgIGZsb2F0IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBwcmlt
YXJ5Rm9udCgpLT5zcGFjZVdpZHRoKCkgKyBtX2xldHRlclNwYWNpbmc7IH0KQEAgLTE2MCw3ICsx
NjAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBzdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBh
Z2UqPiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3Is
IEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
Z2x5cGhzLT5nbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKCp0aGlzLCBjLCBtaXJyb3IsIHZh
cmlhbnQpOworICAgICAgICByZXR1cm4gbV9nbHlwaHMtPmdseXBoRGF0YUFuZFBhZ2VGb3JDaGFy
YWN0ZXIobV9mb250RGVzY3JpcHRpb24sIGMsIG1pcnJvciwgdmFyaWFudCk7CiAgICAgfQogICAg
IGJvb2wgcHJpbWFyeUZvbnRIYXNHbHlwaEZvckNoYXJhY3RlcihVQ2hhcjMyKSBjb25zdDsKIApA
QCAtMzA5LDcgKzMwOSw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8Rm9udEdseXBo
cz4gbV9nbHlwaHM7CiAgICAgc2hvcnQgbV9sZXR0ZXJTcGFjaW5nOwogICAgIHNob3J0IG1fd29y
ZFNwYWNpbmc7Ci0gICAgYm9vbCBtX2lzUGxhdGZvcm1Gb250OwogICAgIGJvb2wgbV9uZWVkc1Ry
YW5zY29kaW5nOwogICAgIG11dGFibGUgVHlwZXNldHRpbmdGZWF0dXJlcyBtX3R5cGVzZXR0aW5n
RmVhdHVyZXM7IC8vIENhY2hlcyB2YWx1ZXMgY29tcHV0ZWQgZnJvbSBtX2ZvbnREZXNjcmlwdGlv
bi4KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuaAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVsZWFzZUZvbnREYXRhKGNvbnN0IFNpbXBsZUZvbnREYXRhKik7CiAKICAgICAv
LyBUaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBieSB0aGUgcGxhdGZvcm0uCi0gICAgUGFzc1Jl
ZlB0cjxTaW1wbGVGb250RGF0YT4gZ2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQm
LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCk7CisgICAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gc3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBvcmlnaW5hbEZvbnREYXRhLCBib29sIGlz
UGxhdGZvcm1Gb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCk7CiAKICAg
ICAvLyBBbHNvIGltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9ybS4KICAgICB2b2lkIHBsYXRmb3Jt
SW5pdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxi
YWNrTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbGxiYWNrTGlzdC5jcHAJKHJldmlzaW9uIDE1MDc0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw2ICs0NSw3IEBAIEZvbnRHbHlwaHM6OkZvbnRHbHlwaHMoKQogICAgICwgbV9nZW5l
cmF0aW9uKGZvbnRDYWNoZSgpLT5nZW5lcmF0aW9uKCkpCiAgICAgLCBtX3BpdGNoKFVua25vd25Q
aXRjaCkKICAgICAsIG1fbG9hZGluZ0N1c3RvbUZvbnRzKGZhbHNlKQorICAgICwgbV9pc0ZvclBs
YXRmb3JtRm9udChmYWxzZSkKIHsKIH0KIApAQCAtNTcsNiArNTgsNyBAQCBGb250R2x5cGhzOjpG
b250R2x5cGhzKGNvbnN0IEZvbnRQbGF0Zm9yCiAgICAgLCBtX2dlbmVyYXRpb24oZm9udENhY2hl
KCktPmdlbmVyYXRpb24oKSkKICAgICAsIG1fcGl0Y2goVW5rbm93blBpdGNoKQogICAgICwgbV9s
b2FkaW5nQ3VzdG9tRm9udHMoZmFsc2UpCisgICAgLCBtX2lzRm9yUGxhdGZvcm1Gb250KHRydWUp
CiB7CiAgICAgUmVmUHRyPEZvbnREYXRhPiBmb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRDYWNo
ZWRGb250RGF0YSgmcGxhdGZvcm1EYXRhKTsKICAgICBtX3JlYWxpemVkRm9udERhdGEuYXBwZW5k
KGZvbnREYXRhLnJlbGVhc2UoKSk7CkBAIC0yNDcsMTEgKzI0OSwxMCBAQCBzdGF0aWMgaW5saW5l
IHN0ZDo6cGFpcjxHbHlwaERhdGEsIEdseXBoCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGRh
dGEsIHBhZ2UpOwogfQogCi1zdGQ6OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBGb250R2x5
cGhzOjpnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVyKGNvbnN0IEZvbnQmIGZvbnQsIFVDaGFy
MzIgYywgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAorc3RkOjpw
YWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gRm9udEdseXBoczo6Z2x5cGhEYXRhQW5kUGFnZUZv
ckNoYXJhY3Rlcihjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBVQ2hhcjMyIGMs
IGJvb2wgbWlycm9yLCBGb250RGF0YVZhcmlhbnQgdmFyaWFudCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiA9IGZvbnQuZm9udERlc2NyaXB0aW9uKCk7CiAgICAgaWYgKHZhcmlhbnQgPT0gQXV0b1Zh
cmlhbnQpIHsKICAgICAgICAgaWYgKGRlc2NyaXB0aW9uLnNtYWxsQ2FwcygpICYmICFwcmltYXJ5
U2ltcGxlRm9udERhdGEoZGVzY3JpcHRpb24pLT5pc1NWR0ZvbnQoKSkgewogICAgICAgICAgICAg
VUNoYXIzMiB1cHBlckMgPSBXVEY6OlVuaWNvZGU6OnRvVXBwZXIoYyk7CkBAIC0zNjYsNyArMzY3
LDggQEAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gRm9udEdseQogICAgICAgICBj
b2RlVW5pdHNbMV0gPSBVMTZfVFJBSUwoYyk7CiAgICAgICAgIGNvZGVVbml0c0xlbmd0aCA9IDI7
CiAgICAgfQotICAgIFJlZlB0cjxTaW1wbGVGb250RGF0YT4gY2hhcmFjdGVyRm9udERhdGEgPSBm
b250Q2FjaGUoKS0+Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKGZvbnQsIGNvZGVVbml0cywgY29k
ZVVuaXRzTGVuZ3RoKTsKKyAgICBjb25zdCBTaW1wbGVGb250RGF0YSogb3JpZ2luYWxGb250RGF0
YSA9IHByaW1hcnlGb250RGF0YShkZXNjcmlwdGlvbiktPmZvbnREYXRhRm9yQ2hhcmFjdGVyKGMp
OworICAgIFJlZlB0cjxTaW1wbGVGb250RGF0YT4gY2hhcmFjdGVyRm9udERhdGEgPSBmb250Q2Fj
aGUoKS0+c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGRlc2NyaXB0aW9uLCBvcmlnaW5hbEZv
bnREYXRhLCBtX2lzRm9yUGxhdGZvcm1Gb250LCBjb2RlVW5pdHMsIGNvZGVVbml0c0xlbmd0aCk7
CiAgICAgaWYgKGNoYXJhY3RlckZvbnREYXRhKSB7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJGb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCAmJiAhY2hhcmFj
dGVyRm9udERhdGEtPmhhc1ZlcnRpY2FsR2x5cGhzKCkgJiYgRm9udDo6aXNDSktJZGVvZ3JhcGhP
clN5bWJvbChjKSkKICAgICAgICAgICAgIHZhcmlhbnQgPSBCcm9rZW5JZGVvZ3JhcGhWYXJpYW50
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
YWxsYmFja0xpc3QuaAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRm9udDsKIGNsYXNzIEdseXBo
UGFnZVRyZWVOb2RlOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UmVjdDsKQEAg
LTY2LDEyICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZvbnRHbHlwaHM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb250R2x5cGhzKCkp
OyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEdseXBocz4gY3JlYXRlRm9yUGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEZvbnRHbHlwaHMocGxhdGZvcm1EYXRhKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGb250R2x5cGhzPiBjcmVhdGVGb3JQbGF0Zm9ybUZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgcGxhdGZvcm1EYXRhKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRm9udEdseXBocyhwbGF0Zm9y
bURhdGEpKTsgfQogCiAgICAgfkZvbnRHbHlwaHMoKSB7IHJlbGVhc2VGb250RGF0YSgpOyB9CiAg
ICAgdm9pZCBpbnZhbGlkYXRlKFBhc3NSZWZQdHI8Rm9udFNlbGVjdG9yPik7CiAKLSAgICBzdGQ6
OnBhaXI8R2x5cGhEYXRhLCBHbHlwaFBhZ2UqPiBnbHlwaERhdGFBbmRQYWdlRm9yQ2hhcmFjdGVy
KGNvbnN0IEZvbnQmLCBVQ2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50KSBjb25z
dDsKKyAgICBib29sIGlzRm9yUGxhdGZvcm1Gb250KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvclBs
YXRmb3JtRm9udDsgfQorCisgICAgc3RkOjpwYWlyPEdseXBoRGF0YSwgR2x5cGhQYWdlKj4gZ2x5
cGhEYXRhQW5kUGFnZUZvckNoYXJhY3Rlcihjb25zdCBGb250RGVzY3JpcHRpb24mLCBVQ2hhcjMy
LCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50KSBjb25zdDsKICAgICAKICAgICBib29sIGlz
Rml4ZWRQaXRjaChjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICB2b2lkIGRldGVy
bWluZVBpdGNoKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwpAQCAtMTA2LDYgKzEwNyw3
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV9nZW5lcmF0aW9uOwogICAgIG11dGFi
bGUgdW5zaWduZWQgbV9waXRjaCA6IDM7IC8vIFBpdGNoCiAgICAgbXV0YWJsZSBib29sIG1fbG9h
ZGluZ0N1c3RvbUZvbnRzIDogMTsKKyAgICBib29sIG1faXNGb3JQbGF0Zm9ybUZvbnQgOiAxOwog
fTsKIAogaW5saW5lIGJvb2wgRm9udEdseXBoczo6aXNGaXhlZFBpdGNoKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24pIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDYWNoZUJsYWNrQmVycnkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvRm9udENhY2hl
QmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDE1MDc0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvRm9udENhY2hlQmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MSwxMSArMTQxLDExIEBAIHZvaWQgRm9udENhY2hlOjpnZXRGb250RmFtaWx5
Rm9yQ2hhcmFjdGUKICAgICBGY0ZvbnRTZXREZXN0cm95KGZvbnRTZXQpOwogfQogCi1QYXNzUmVm
UHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycyhj
b25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkKK1Bh
c3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBTaW1w
bGVGb250RGF0YSosIGJvb2wsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQog
ewogICAgIGljdTo6TG9jYWxlIGxvY2FsZSA9IGljdTo6TG9jYWxlOjpnZXREZWZhdWx0KCk7CiAg
ICAgRm9udENhY2hlOjpTaW1wbGVGb250RmFtaWx5IGZhbWlseTsKLSAgICBGb250Q2FjaGU6Omdl
dEZvbnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnMsIGxlbmd0aCwgbG9jYWxlLmdldExh
bmd1YWdlKCksIGZvbnQuZm9udERlc2NyaXB0aW9uKCksICZmYW1pbHkpOworICAgIEZvbnRDYWNo
ZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY2hhcmFjdGVycywgbGVuZ3RoLCBsb2NhbGUu
Z2V0TGFuZ3VhZ2UoKSwgZm9udERlc2NyaXB0aW9uLCAmZmFtaWx5KTsKICAgICBpZiAoZmFtaWx5
Lm5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTU1LDcgKzE1NSw3IEBA
IFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2UKICAgICAvLyBvZiB0aGUg
Z2l2ZW4gY2hhcmFjdGVycy4gU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMzIxMDkgZm9yIGRldGFpbHMu
CiAgICAgYm9vbCBzaG91bGRTZXRGYWtlQm9sZCA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxkU2V0
RmFrZUl0YWxpYyA9IGZhbHNlOwotICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbihmb250
LmZvbnREZXNjcmlwdGlvbigpKTsKKyAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb24oZm9u
dERlc2NyaXB0aW9uKTsKICAgICBpZiAoZmFtaWx5LmlzQm9sZCAmJiBkZXNjcmlwdGlvbi53ZWln
aHQoKSA8IEZvbnRXZWlnaHRCb2xkKQogICAgICAgICBkZXNjcmlwdGlvbi5zZXRXZWlnaHQoRm9u
dFdlaWdodEJvbGQpOwogICAgIGlmICghZmFtaWx5LmlzQm9sZCAmJiBkZXNjcmlwdGlvbi53ZWln
aHQoKSA+PSBGb250V2VpZ2h0Qm9sZCkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBl
LmNwcAkocmV2aXNpb24gMTUwNzQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSwx
NCArODEsMTQgQEAgRmNQYXR0ZXJuKiBmaW5kQmVzdEZvbnRHaXZlbkZhbGxiYWNrcyhjbwogICAg
IHJldHVybiBGY0ZvbnRTZXRNYXRjaCgwLCBzZXRzLCAxLCBwYXR0ZXJuLCAmZm9udENvbmZpZ1Jl
c3VsdCk7CiB9CiAKLVBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0Rm9u
dERhdGFGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzLCBpbnQgbGVuZ3RoKQorUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpz
eXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgY29uc3QgU2ltcGxlRm9udERhdGEqIG9yaWdpbmFsRm9udERhdGEsIGJvb2wsIGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIFJlZlB0cjxGY1BhdHRlcm4+
IHBhdHRlcm4gPSBhZG9wdFJlZihjcmVhdGVGb250Q29uZmlnUGF0dGVybkZvckNoYXJhY3RlcnMo
Y2hhcmFjdGVycywgbGVuZ3RoKSk7Ci0gICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZm9udERh
dGEgPSBmb250LnByaW1hcnlGb250KCktPnBsYXRmb3JtRGF0YSgpOworICAgIGNvbnN0IEZvbnRQ
bGF0Zm9ybURhdGEmIGZvbnREYXRhID0gb3JpZ2luYWxGb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7
CiAKICAgICBSZWZQdHI8RmNQYXR0ZXJuPiBmYWxsYmFja1BhdHRlcm4gPSBhZG9wdFJlZihmaW5k
QmVzdEZvbnRHaXZlbkZhbGxiYWNrcyhmb250RGF0YSwgcGF0dGVybi5nZXQoKSkpOwogICAgIGlm
IChmYWxsYmFja1BhdHRlcm4pIHsKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVG
b250RGF0YShmYWxsYmFja1BhdHRlcm4uZ2V0KCksIGZvbnQuZm9udERlc2NyaXB0aW9uKCkpOwor
ICAgICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnREYXRhKGZhbGxiYWNrUGF0dGVy
bi5nZXQoKSwgZGVzY3JpcHRpb24pOwogICAgICAgICByZXR1cm4gZ2V0Q2FjaGVkRm9udERhdGEo
JmFsdGVybmF0ZUZvbnREYXRhLCBEb05vdFJldGFpbik7CiAgICAgfQogCkBAIC05Niw3ICs5Niw3
IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2UKICAgICBSZWZQdHI8
RmNQYXR0ZXJuPiByZXN1bHRQYXR0ZXJuID0gYWRvcHRSZWYoRmNGb250TWF0Y2goMCwgcGF0dGVy
bi5nZXQoKSwgJmZvbnRDb25maWdSZXN1bHQpKTsKICAgICBpZiAoIXJlc3VsdFBhdHRlcm4pCiAg
ICAgICAgIHJldHVybiAwOwotICAgIEZvbnRQbGF0Zm9ybURhdGEgYWx0ZXJuYXRlRm9udERhdGEo
cmVzdWx0UGF0dGVybi5nZXQoKSwgZm9udC5mb250RGVzY3JpcHRpb24oKSk7CisgICAgRm9udFBs
YXRmb3JtRGF0YSBhbHRlcm5hdGVGb250RGF0YShyZXN1bHRQYXR0ZXJuLmdldCgpLCBkZXNjcmlw
dGlvbik7CiAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKCZhbHRlcm5hdGVGb250RGF0YSwg
RG9Ob3RSZXRhaW4pOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENhY2hlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHJldmlzaW9uIDE1MDc0NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTg2LDExICs4NiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBcHBLaXRG
b250V2VpZ2h0Qm9sCiAgICAgcmV0dXJuIGFwcEtpdEZvbnRXZWlnaHQgPj0gNzsKIH0KIAotUGFz
c1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3Rl
cnMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgp
CitQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9y
Q2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBTaW1w
bGVGb250RGF0YSogb3JpZ2luYWxGb250RGF0YSwgYm9vbCBpc1BsYXRmb3JtRm9udCwgY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgVUNoYXIzMiBjaGFyYWN0ZXI7
CiAgICAgVTE2X0dFVChjaGFyYWN0ZXJzLCAwLCAwLCBsZW5ndGgsIGNoYXJhY3Rlcik7Ci0gICAg
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhID0gZm9udC5mb250RGF0YUF0KDAp
LT5mb250RGF0YUZvckNoYXJhY3RlcihjaGFyYWN0ZXIpLT5wbGF0Zm9ybURhdGEoKTsKKyAgICBj
b25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBvcmlnaW5hbEZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKTsKICAgICBOU0ZvbnQgKm5zRm9udCA9IHBsYXRmb3JtRGF0YS5mb250KCk7
CiAKICAgICBOU1N0cmluZyAqc3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFy
YWN0ZXJzTm9Db3B5OmNvbnN0X2Nhc3Q8VUNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVuZ3Ro
IGZyZWVXaGVuRG9uZTpOT107CkBAIC0xMjQsOSArMTI0LDkgQEAgUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gRm9udENhY2hlOjpnZQogICAgICAgICBzaXplID0gW25zRm9udCBwb2ludFNpemVd
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZvciBjdXN0b20gZm9udHMgbnNGb250IGlzIG5p
bC4KLSAgICAgICAgdHJhaXRzID0gZm9udC5pdGFsaWMoKSA/IE5TRm9udEl0YWxpY1RyYWl0IDog
MDsKLSAgICAgICAgd2VpZ2h0ID0gdG9BcHBLaXRGb250V2VpZ2h0KGZvbnQud2VpZ2h0KCkpOwot
ICAgICAgICBzaXplID0gZm9udC5waXhlbFNpemUoKTsKKyAgICAgICAgdHJhaXRzID0gZGVzY3Jp
cHRpb24uaXRhbGljKCkgPyBOU0ZvbnRJdGFsaWNUcmFpdCA6IDA7CisgICAgICAgIHdlaWdodCA9
IHRvQXBwS2l0Rm9udFdlaWdodChkZXNjcmlwdGlvbi53ZWlnaHQoKSk7CisgICAgICAgIHNpemUg
PSBkZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogICAgIH0KIAogICAgIE5TRm9udFRy
YWl0TWFzayBzdWJzdGl0dXRlRm9udFRyYWl0cyA9IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6
c3Vic3RpdHV0ZUZvbnRdOwpAQCAtMTQwLDE0ICsxNDAsMTQgQEAgUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gRm9udENhY2hlOjpnZQogICAgICAgICB9CiAgICAgfQogCi0gICAgc3Vic3RpdHV0
ZUZvbnQgPSBmb250LmZvbnREZXNjcmlwdGlvbigpLnVzZVByaW50ZXJGb250KCkgPyBbc3Vic3Rp
dHV0ZUZvbnQgcHJpbnRlckZvbnRdIDogW3N1YnN0aXR1dGVGb250IHNjcmVlbkZvbnRdOworICAg
IHN1YnN0aXR1dGVGb250ID0gZGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSA/IFtzdWJzdGl0
dXRlRm9udCBwcmludGVyRm9udF0gOiBbc3Vic3RpdHV0ZUZvbnQgc2NyZWVuRm9udF07CiAKICAg
ICBzdWJzdGl0dXRlRm9udFRyYWl0cyA9IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6c3Vic3Rp
dHV0ZUZvbnRdOwogICAgIHN1YnN0aXR1dGVGb250V2VpZ2h0ID0gW2ZvbnRNYW5hZ2VyIHdlaWdo
dE9mRm9udDpzdWJzdGl0dXRlRm9udF07CiAKICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0
ZUZvbnQoc3Vic3RpdHV0ZUZvbnQsIHBsYXRmb3JtRGF0YS5zaXplKCksIHBsYXRmb3JtRGF0YS5p
c1ByaW50ZXJGb250KCksCi0gICAgICAgICFmb250LmlzUGxhdGZvcm1Gb250KCkgJiYgaXNBcHBL
aXRGb250V2VpZ2h0Qm9sZCh3ZWlnaHQpICYmICFpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHN1YnN0
aXR1dGVGb250V2VpZ2h0KSwKLSAgICAgICAgIWZvbnQuaXNQbGF0Zm9ybUZvbnQoKSAmJiAodHJh
aXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoc3Vic3RpdHV0ZUZvbnRUcmFpdHMgJiBOU0Zv
bnRJdGFsaWNUcmFpdCksCisgICAgICAgICFpc1BsYXRmb3JtRm9udCAmJiBpc0FwcEtpdEZvbnRX
ZWlnaHRCb2xkKHdlaWdodCkgJiYgIWlzQXBwS2l0Rm9udFdlaWdodEJvbGQoc3Vic3RpdHV0ZUZv
bnRXZWlnaHQpLAorICAgICAgICAhaXNQbGF0Zm9ybUZvbnQgJiYgKHRyYWl0cyAmIE5TRm9udEl0
YWxpY1RyYWl0KSAmJiAhKHN1YnN0aXR1dGVGb250VHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQp
LAogICAgICAgICBwbGF0Zm9ybURhdGEubV9vcmllbnRhdGlvbik7CiAKICAgICByZXR1cm4gZ2V0
Q2FjaGVkRm9udERhdGEoJmFsdGVybmF0ZUZvbnQsIERvTm90UmV0YWluKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q2FjaGVRdC5jcHAJ
KHJldmlzaW9uIDE1MDc0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ZvbnRDYWNoZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDEwIEBAIHN0YXRp
YyBRUmF3Rm9udCByYXdGb250Rm9yQ2hhcmFjdGVycyhjb24KICAgICByZXR1cm4gZ2x5cGhzLnJh
d0ZvbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRG
b250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpCitQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6
OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25z
dCBTaW1wbGVGb250RGF0YSogb3JpZ2luYWxGb250RGF0YSwgYm9vbCwgY29uc3QgVUNoYXIqIGNo
YXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgUVN0cmluZyBxc3RyaW5nID0gUVN0cmluZzo6
ZnJvbVJhd0RhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KGNoYXJhY3RlcnMpLCBs
ZW5ndGgpOwotICAgIFFSYXdGb250IGNvbXB1dGVkRm9udCA9IHJhd0ZvbnRGb3JDaGFyYWN0ZXJz
KHFzdHJpbmcsIGZvbnQucmF3Rm9udCgpKTsKKyAgICBRUmF3Rm9udCBjb21wdXRlZEZvbnQgPSBy
YXdGb250Rm9yQ2hhcmFjdGVycyhxc3RyaW5nLCBvcmlnaW5hbEZvbnREYXRhLT5nZXRRdFJhd0Zv
bnQoKSk7CiAgICAgaWYgKCFjb21wdXRlZEZvbnQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
MDsKICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoY29tcHV0ZWRGb250KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q2FjaGVXaW4uY3BwCShyZXZpc2lvbiAxNTA3NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDEy
ICsxODYsMTIgQEAgc3RhdGljIEhGT05UIGNyZWF0ZU1MYW5nRm9udChJTUxhbmdGb250TAogICAg
IHJldHVybiBoZm9udDsKIH0KIAotUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCitQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250
Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBjb25zdCBTaW1wbGVGb250RGF0YSogb3JpZ2luYWxGb250RGF0YSwgYm9v
bCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgVUNoYXIgY2hh
cmFjdGVyID0gY2hhcmFjdGVyc1swXTsKICAgICBSZWZQdHI8U2ltcGxlRm9udERhdGE+IGZvbnRE
YXRhOwogICAgIEhXbmREQyBoZGMoMCk7Ci0gICAgSEZPTlQgcHJpbWFyeUZvbnQgPSBmb250LnBy
aW1hcnlGb250KCktPmZvbnREYXRhRm9yQ2hhcmFjdGVyKGNoYXJhY3RlciktPnBsYXRmb3JtRGF0
YSgpLmhmb250KCk7CisgICAgSEZPTlQgcHJpbWFyeUZvbnQgPSBvcmlnaW5hbEZvbnREYXRhLT5w
bGF0Zm9ybURhdGEoKS5oZm9udCgpOwogICAgIEhHRElPQkogb2xkRm9udCA9IFNlbGVjdE9iamVj
dChoZGMsIHByaW1hcnlGb250KTsKICAgICBIRk9OVCBoZm9udCA9IDA7CiAKQEAgLTI4NCw3ICsy
ODQsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdlCiAKICAgICBp
ZiAoaGZvbnQpIHsKICAgICAgICAgaWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gZ2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0
YShmb250LmZvbnREZXNjcmlwdGlvbigpLCBmYW1pbHlOYW1lKTsKKyAgICAgICAgICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIHJlc3VsdCA9IGdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZGVzY3JpcHRp
b24sIGZhbWlseU5hbWUpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgICAgICAg
ICBmb250RGF0YSA9IGdldENhY2hlZEZvbnREYXRhKHJlc3VsdCwgRG9Ob3RSZXRhaW4pOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250
Q2FjaGVXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvRm9udENhY2hlV2luQ0UuY3BwCShyZXZpc2lvbiAxNTA3NDcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q2FjaGVXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIwMywxMyArMjAzLDEzIEBAIHZvaWQgRm9udENhY2hlOjpjb21Vbmlu
aXRpYWxpemUoKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENh
Y2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCitQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBG
b250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBjb25zdCBTaW1wbGVGb250RGF0YSogb3JpZ2luYWxGb250RGF0YSwg
Ym9vbCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgU3RyaW5n
IGZhbWlseU5hbWU7CiAgICAgV0NIQVIgbmFtZVtMRl9GQUNFU0laRV07CiAKICAgICBVQ2hhciBj
aGFyYWN0ZXIgPSBjaGFyYWN0ZXJzWzBdOwotICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG9y
aWdGb250ID0gZm9udC5wcmltYXJ5Rm9udCgpLT5mb250RGF0YUZvckNoYXJhY3RlcihjaGFyYWN0
ZXIpLT5wbGF0Zm9ybURhdGEoKTsKKyAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvcmlnRm9u
dCA9IG9yaWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIHVuc2lnbmVkIHVuaWNv
ZGVSYW5nZSA9IGZpbmRDaGFyVW5pY29kZVJhbmdlKGNoYXJhY3Rlcik7CiAKICAgICBpZiAoSU1M
YW5nRm9udExpbmtUeXBlKiBsYW5nRm9udExpbmsgPSBnZXRGb250TGlua0ludGVyZmFjZSgpKSB7
CkBAIC0yNjUsNyArMjY1LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hl
OjpnZQogCiAgICAgaWYgKCFmYW1pbHlOYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBGSVhN
RTogdGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIFRoYWkgZm9udCBwcm9ibGVtCi0gICAgICAgIEZv
bnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24oZm9udC5mb250RGVzY3JpcHRpb24oKSk7Cisg
ICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwogICAg
ICAgICBpZiAodW5pY29kZVJhbmdlID09IGNSYW5nZVRoYWkgJiYgZm9udERlc2NyaXB0aW9uLndl
aWdodCgpID4gRm9udFdlaWdodE5vcm1hbCkKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRXZWlnaHQoRm9udFdlaWdodE5vcm1hbCk7CiAK
</data>
<flag name="review"
          id="224422"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>