<?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>148217</bug_id>
          
          <creation_ts>2015-08-20 01:31:10 -0700</creation_ts>
          <short_desc>[Cocoa] Unify two more Font functions</short_desc>
          <delta_ts>2015-08-21 16:28:18 -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>New Bugs</component>
          <version>WebKit 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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119224</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-20 01:31:10 -0700</bug_when>
    <thetext>[Cocoa] Unify two more Font functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119225</commentid>
    <comment_count>1</comment_count>
      <attachid>259459</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-20 01:34:03 -0700</bug_when>
    <thetext>Created attachment 259459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119616</commentid>
    <comment_count>2</comment_count>
      <attachid>259573</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-20 20:12:04 -0700</bug_when>
    <thetext>Created attachment 259573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119898</commentid>
    <comment_count>3</comment_count>
      <attachid>259573</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-21 13:41:04 -0700</bug_when>
    <thetext>Comment on attachment 259573
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119985</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-21 16:28:18 -0700</bug_when>
    <thetext>Committed r188795: &lt;http://trac.webkit.org/changeset/188795&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259459</attachid>
            <date>2015-08-20 01:34:03 -0700</date>
            <delta_ts>2015-08-20 20:12:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148217-20150820013359.patch</filename>
            <type>text/plain</type>
            <size>15593</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4YjRkMjRlYzljN2Ix
YTg3NDY4ZjI0MzZlNzRlNTRhM2U2MDUxNS4uOWU0NjQ0Zjc1YjUzNWFkYTVmYzVkZWVjYjFlNmIy
OGU2ZDM3YzZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA4LTIwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBV
bmlmeSB0d28gbW9yZSBGb250Q2FjaGUgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGR1cGxpY2F0ZWQgY29kZSBmcm9tIEZvbnRD
YWNoZU1hYyBhbmQgRm9udENhY2hlSU9TIGludG8KKyAgICAgICAgRm9udENhY2hlQ29yZVRleHQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hh
bmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9UcmFpdHNNYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzRm9udFdlaWdodEJvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1p
bGFyRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldFRyYWl0c0luRmFtaWx5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjp0b1RyYWl0c01hc2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhY2hlOjpnZXRUcmFpdHNJbkZhbWlseSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvVHJhaXRz
TWFzayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VHJhaXRzSW5GYW1p
bHkpOiBEZWxldGVkLgorCiAyMDE1LTA4LTE5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxODg2
NjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggNzI2OTc0ZjFiN2IwMjQ4ZDg4MjMyNmQ2
NzQ1MTc4OTdiODU5NzdjZC4uYmFkYWFkNjcyNDMxNWU4NTNlNDg2ZTI0ZjY3ZWY4YzU2NzI5NzFh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtMTYxLDQgKzE2MSw4NyBAQCBSZXRhaW5Q
dHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQs
IFRleHRSZW5kZXJpbmdNbwogICAgIHJldHVybiBhZG9wdENGKENURm9udENyZWF0ZUNvcHlXaXRo
QXR0cmlidXRlcyhvcmlnaW5hbEZvbnQsIENURm9udEdldFNpemUob3JpZ2luYWxGb250KSwgbnVs
bHB0ciwgZGVzY3JpcHRvci5nZXQoKSkpOwogfQogCitzdGF0aWMgaW5saW5lIEZvbnRUcmFpdHNN
YXNrIHRvVHJhaXRzTWFzayhDVEZvbnRTeW1ib2xpY1RyYWl0cyBjdEZvbnRUcmFpdHMpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPigoKGN0Rm9udFRyYWl0cyAmIGtD
VEZvbnRUcmFpdEl0YWxpYykgPyBGb250U3R5bGVJdGFsaWNNYXNrIDogRm9udFN0eWxlTm9ybWFs
TWFzaykKKyAgICAgICAgfCBGb250VmFyaWFudE5vcm1hbE1hc2sKKyAgICAgICAgLy8gRm9udFdl
aWdodDYwMCBvciBoaWdoZXIgaXMgYm9sZCBmb3IgQ1RGb250cywgc28gY2hvb3NlIG1pZGRsZSB2
YWx1ZXMgZm9yCisgICAgICAgIC8vIGJvbGQgKDYwMC05MDApIGFuZCBub24tYm9sZCAoMTAwLTUw
MCkKKyAgICAgICAgfCAoKGN0Rm9udFRyYWl0cyAmIGtDVEZvbnRUcmFpdEJvbGQpID8gRm9udFdl
aWdodDcwME1hc2sgOiBGb250V2VpZ2h0MzAwTWFzaykpOworfQorCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNGb250V2VpZ2h0Qm9sZChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCit7CisgICAgcmV0dXJu
IGZvbnRXZWlnaHQgPj0gRm9udFdlaWdodDYwMDsKK30KKworUmVmUHRyPEZvbnQ+IEZvbnRDYWNo
ZTo6c2ltaWxhckZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAg
ICAvLyBBdHRlbXB0IHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUgZm9udCB1c2luZyBhIG1hdGNoIGJh
c2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBrZXl3b3JkcyBpbgorICAgIC8vIHRoZSByZXF1ZXN0ZWQg
bmFtZXMuIEZvciBleGFtcGxlLCB3ZSdsbCBtYXRjaCBhbnkgbmFtZSB0aGF0IGNvbnRhaW5zICJB
cmFiaWMiIHRvIEdlZXphIFByby4KKyAgICBSZWZQdHI8Rm9udD4gZm9udDsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZGVzY3JpcHRpb24uZmFtaWx5Q291bnQoKTsgKytpKSB7CisgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5ID0gZGVzY3JpcHRpb24uZmFtaWx5QXQoaSk7
CisgICAgICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIC8vIFN1YnN0aXR1dGUgdGhlIGRlZmF1bHQgbW9u
b3NwYWNlIGZvbnQgZm9yIHdlbGwta25vd24gbW9ub3NwYWNlIGZvbnRzLgorICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBtb25hY28oIm1vbmFjbyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbWljU3RyaW5nPiBtZW5sbygibWVubG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4g
Y291cmllcigiY291cmllciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFtaWx5LCBtb25hY28pIHx8IGVxdWFsSWdu
b3JpbmdDYXNlKGZhbWlseSwgbWVubG8pKSB7CisgICAgICAgICAgICBmb250ID0gZm9udEZvckZh
bWlseShkZXNjcmlwdGlvbiwgY291cmllcik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIFN1YnN0aXR1dGUgVmVyZGFuYSBmb3IgTHVjaWRhIEdyYW5kZS4K
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbHVjaWRhR3JhbmRl
KCJsdWNpZGEgZ3JhbmRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZlcmRhbmEoInZlcmRh
bmEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKGZhbWlseSwgbHVjaWRhR3JhbmRlKSkgeworICAgICAgICAgICAgZm9u
dCA9IGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIHZlcmRhbmEpOworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IGFyYWJpYyhBU0NJSUxpdGVyYWwoIkFyYWJpYyIpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcGFzaHRvKEFTQ0lJTGl0ZXJhbCgiUGFzaHRvIikpOwor
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1cmR1KEFTQ0lJTGl0ZXJhbCgi
VXJkdSIpKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hXb3Jkc1szXSA9IHsgJmFyYWJp
Yy5nZXQoKSwgJnBhc2h0by5nZXQoKSwgJnVyZHUuZ2V0KCkgfTsKKyAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZ2VlemFQbGFpbigiR2VlemFQcm8iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIGZvciAoU3RyaW5nKiBtYXRjaFdvcmQg
OiBtYXRjaFdvcmRzKSB7CisgICAgICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zKCptYXRjaFdv
cmQsIGZhbHNlKSkKKyAgICAgICAgICAgICAgICBmb250ID0gZm9udEZvckZhbWlseShkZXNjcmlw
dGlvbiwgaXNGb250V2VpZ2h0Qm9sZChkZXNjcmlwdGlvbi53ZWlnaHQoKSkgPyBnZWV6YUJvbGQg
OiBnZWV6YVBsYWluKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmb250LnJlbGVh
c2UoKTsKK30KKwordm9pZCBGb250Q2FjaGU6OmdldFRyYWl0c0luRmFtaWx5KGNvbnN0IEF0b21p
Y1N0cmluZyYgZmFtaWx5TmFtZSwgVmVjdG9yPHVuc2lnbmVkPiYgdHJhaXRzTWFza3MpCit7Cisg
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmYW1pbHlOYW1lU3RyID0gZmFtaWx5TmFtZS5zdHJp
bmcoKS5jcmVhdGVDRlN0cmluZygpOworICAgIENGU3RyaW5nUmVmIGZhbWlseU5hbWVTdHJQdHIg
PSBmYW1pbHlOYW1lU3RyLmdldCgpOworICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0
dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwgKGNvbnN0IHZvaWQq
KikmZmFtaWx5TmFtZVN0clB0ciwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIFJldGFpblB0cjxDVEZvbnRE
ZXNjcmlwdG9yUmVmPiBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNy
ZWF0ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gbWF0Y2hlZERlc2NyaXB0b3JzID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3Jl
YXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcnMoZm9udERlc2NyaXB0b3IuZ2V0KCksIG51bGxwdHIp
KTsKKyAgICBpZiAoIW1hdGNoZWREZXNjcmlwdG9ycykKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q0ZJbmRleCBudW1NYXRjaGVzID0gQ0ZBcnJheUdldENvdW50KG1hdGNoZWREZXNjcmlwdG9ycy5n
ZXQoKSk7CisgICAgaWYgKCFudW1NYXRjaGVzKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3Ig
KENGSW5kZXggaSA9IDA7IGkgPCBudW1NYXRjaGVzOyArK2kpIHsKKyAgICAgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gdHJhaXRzID0gYWRvcHRDRigoQ0ZEaWN0aW9uYXJ5UmVmKUNURm9u
dERlc2NyaXB0b3JDb3B5QXR0cmlidXRlKChDVEZvbnREZXNjcmlwdG9yUmVmKUNGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgobWF0Y2hlZERlc2NyaXB0b3JzLmdldCgpLCBpKSwga0NURm9udFRyYWl0c0F0
dHJpYnV0ZSkpOworICAgICAgICBDRk51bWJlclJlZiByZXN1bHRSZWYgPSAoQ0ZOdW1iZXJSZWYp
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUodHJhaXRzLmdldCgpLCBrQ1RGb250U3ltYm9saWNUcmFpdCk7
CisgICAgICAgIGlmIChyZXN1bHRSZWYpIHsKKyAgICAgICAgICAgIENURm9udFN5bWJvbGljVHJh
aXRzIHN5bWJvbGljVHJhaXRzOworICAgICAgICAgICAgQ0ZOdW1iZXJHZXRWYWx1ZShyZXN1bHRS
ZWYsIGtDRk51bWJlckludFR5cGUsICZzeW1ib2xpY1RyYWl0cyk7CisgICAgICAgICAgICB0cmFp
dHNNYXNrcy5hcHBlbmQodG9UcmFpdHNNYXNrKHN5bWJvbGljVHJhaXRzKSk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IGZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdkZjkx
ZmQzODQ1MDZlZWYuLmQ2NmY4ODY2OGExOGJlMjAxMDFhZGFhYjM4NTBmZDI5N2FiMjA4MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNo
ZUlPUy5tbQpAQCAtNDk1LDQ4ICs0OTUsNiBAQCBWZWN0b3I8U3RyaW5nPiBGb250Q2FjaGU6OnN5
c3RlbUZvbnRGYW1pbGllcygpCiAgICAgcmV0dXJuIGZvbnRGYW1pbGllczsKIH0KIAotUmVmUHRy
PEZvbnQ+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbikKLXsKLSAgICAvLyBBdHRlbXB0IHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUgZm9udCB1
c2luZyBhIG1hdGNoIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBrZXl3b3JkcyBpbgotICAgIC8v
IHRoZSByZXF1ZXN0ZWQgbmFtZXMuIEZvciBleGFtcGxlLCB3ZSdsbCBtYXRjaCBhbnkgbmFtZSB0
aGF0IGNvbnRhaW5zICJBcmFiaWMiIHRvIEdlZXphIFByby4KLSAgICBSZWZQdHI8Rm9udD4gZm9u
dDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVzY3JpcHRpb24uZmFtaWx5Q291bnQo
KTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5ID0gZGVzY3JpcHRp
b24uZmFtaWx5QXQoaSk7Ci0gICAgICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gU3Vic3RpdHV0ZSB0aGUgZGVmYXVsdCBtb25vc3Bh
Y2UgZm9udCBmb3Igd2VsbC1rbm93biBtb25vc3BhY2UgZm9udHMuCi0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG1vbmFjbygibW9uYWNvIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IG1lbmxvKCJtZW5sbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBjb3Vy
aWVyKCJjb3VyaWVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShmYW1pbHksIG1vbmFjbykgfHwgZXF1YWxJZ25vcmlu
Z0Nhc2UoZmFtaWx5LCBtZW5sbykpIHsKLSAgICAgICAgICAgIGZvbnQgPSBmb250Rm9yRmFtaWx5
KGRlc2NyaXB0aW9uLCBjb3VyaWVyKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0KLSAgICAgICAgLy8gU3Vic3RpdHV0ZSBWZXJkYW5hIGZvciBMdWNpZGEgR3JhbmRlLgotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBsdWNpZGFHcmFuZGUoImx1
Y2lkYSBncmFuZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gdmVyZGFuYSgidmVyZGFuYSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UoZmFtaWx5LCBsdWNpZGFHcmFuZGUpKSB7Ci0gICAgICAgICAgICBmb250ID0g
Zm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwgdmVyZGFuYSk7Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGFy
YWJpYyhBU0NJSUxpdGVyYWwoIkFyYWJpYyIpKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gcGFzaHRvKEFTQ0lJTGl0ZXJhbCgiUGFzaHRvIikpOwotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1cmR1KEFTQ0lJTGl0ZXJhbCgiVXJkdSIpKTsKLSAg
ICAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hXb3Jkc1szXSA9IHsgJmFyYWJpYy5nZXQoKSwgJnBh
c2h0by5nZXQoKSwgJnVyZHUuZ2V0KCkgfTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gZ2VlemFQbGFpbigiR2VlemFQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0
cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCAzICYmICFmb250
OyArK2opIHsKLSAgICAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnMoKm1hdGNoV29yZHNbal0s
IGZhbHNlKSkKLSAgICAgICAgICAgICAgICBmb250ID0gZm9udEZvckZhbWlseShkZXNjcmlwdGlv
biwgaXNGb250V2VpZ2h0Qm9sZChkZXNjcmlwdGlvbi53ZWlnaHQoKSkgPyBnZWV6YUJvbGQgOiBn
ZWV6YVBsYWluKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBmb250LnJlbGVhc2Uo
KTsKLX0KLQogUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBmYWxsYmFja0ZvbnRGYW1pbHkoIi5QaG9uZUZhbGxiYWNr
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC01NzIsMzcgKzUzMCw2
IEBAIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KGNv
bnN0IFVJbnQzMiBjLCBjb25zdCBGb250RGVzCiAgICAgcmV0dXJuIGdldENhY2hlZEZvbnRQbGF0
Zm9ybURhdGEoZGVzY3JpcHRpb24sICpmYW1pbHkpOwogfQogCi1zdGF0aWMgaW5saW5lIEZvbnRU
cmFpdHNNYXNrIHRvVHJhaXRzTWFzayhDVEZvbnRTeW1ib2xpY1RyYWl0cyBjdEZvbnRUcmFpdHMp
Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPigoKGN0Rm9udFRyYWl0
cyAmIGtDVEZvbnRUcmFpdEl0YWxpYykgPyBGb250U3R5bGVJdGFsaWNNYXNrIDogRm9udFN0eWxl
Tm9ybWFsTWFzaykKLSAgICAgICAgfCBGb250VmFyaWFudE5vcm1hbE1hc2sKLSAgICAgICAgLy8g
Rm9udFdlaWdodDYwMCBvciBoaWdoZXIgaXMgYm9sZCBmb3IgQ1RGb250cywgc28gY2hvb3NlIG1p
ZGRsZSB2YWx1ZXMgZm9yCi0gICAgICAgIC8vIGJvbGQgKDYwMC05MDApIGFuZCBub24tYm9sZCAo
MTAwLTUwMCkKLSAgICAgICAgfCAoKGN0Rm9udFRyYWl0cyAmIGtDVEZvbnRUcmFpdEJvbGQpID8g
Rm9udFdlaWdodDcwME1hc2sgOiBGb250V2VpZ2h0MzAwTWFzaykpOwotfQotCi12b2lkIEZvbnRD
YWNoZTo6Z2V0VHJhaXRzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLCBW
ZWN0b3I8dW5zaWduZWQ+JiB0cmFpdHNNYXNrcykKLXsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGZhbWlseU5hbWVTdHIgPSBmYW1pbHlOYW1lLnN0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCk7
Ci0gICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gQHsgKGlkKWtDVEZvbnRGYW1pbHlOYW1l
QXR0cmlidXRlOiAoTlNTdHJpbmcqKWZhbWlseU5hbWVTdHIuZ2V0KCkgfTsKLSAgICBSZXRhaW5Q
dHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERl
c2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcygoQ0ZEaWN0aW9uYXJ5UmVmKWF0dHJpYnV0ZXMp
KTsKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gbWF0Y2hlZERlc2NyaXB0b3JzID0gYWRvcHROUygo
TlNBcnJheSAqKUNURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9ycyhm
b250RGVzY3JpcHRvci5nZXQoKSwgbnVsbHB0cikpOwotCi0gICAgTlNJbnRlZ2VyIG51bU1hdGNo
ZXMgPSBbbWF0Y2hlZERlc2NyaXB0b3JzLmdldCgpIGNvdW50XTsKLSAgICBpZiAoIW1hdGNoZWRE
ZXNjcmlwdG9ycyB8fCAhbnVtTWF0Y2hlcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChO
U0ludGVnZXIgaSA9IDA7IGkgPCBudW1NYXRjaGVzOyArK2kpIHsKLSAgICAgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gdHJhaXRzID0gYWRvcHRDRigoQ0ZEaWN0aW9uYXJ5UmVmKUNURm9u
dERlc2NyaXB0b3JDb3B5QXR0cmlidXRlKChDVEZvbnREZXNjcmlwdG9yUmVmKVttYXRjaGVkRGVz
Y3JpcHRvcnMuZ2V0KCkgb2JqZWN0QXRJbmRleDppXSwga0NURm9udFRyYWl0c0F0dHJpYnV0ZSkp
OwotICAgICAgICBDRk51bWJlclJlZiByZXN1bHRSZWYgPSAoQ0ZOdW1iZXJSZWYpQ0ZEaWN0aW9u
YXJ5R2V0VmFsdWUodHJhaXRzLmdldCgpLCBrQ1RGb250U3ltYm9saWNUcmFpdCk7Ci0gICAgICAg
IGlmIChyZXN1bHRSZWYpIHsKLSAgICAgICAgICAgIENURm9udFN5bWJvbGljVHJhaXRzIHN5bWJv
bGljVHJhaXRzOwotICAgICAgICAgICAgQ0ZOdW1iZXJHZXRWYWx1ZShyZXN1bHRSZWYsIGtDRk51
bWJlckludFR5cGUsICZzeW1ib2xpY1RyYWl0cyk7Ci0gICAgICAgICAgICB0cmFpdHNNYXNrcy5h
cHBlbmQodG9UcmFpdHNNYXNrKHN5bWJvbGljVHJhaXRzKSk7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KIGZsb2F0IEZvbnRDYWNoZTo6d2VpZ2h0T2ZDVEZvbnQoQ1RGb250UmVmIGZvbnQpCiB7CiAg
ICAgZmxvYXQgcmVzdWx0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDQyZTFiMDY0MzM4N2M4MDIzMzE1ZmNj
ZTg1MjliMjViMzg3ZTkwMzEuLjI5N2ZkYjMxY2IxNzE3YWNkYTNjYjljNTcxMDlkYWM5ZjNkYWI1
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQpAQCAtMTE0LDIxICsxMTQsNiBAQCBzdGF0aWMgYm9vbCBiZXR0ZXJDaG9p
Y2UoTlNGb250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIGludCBkZXNpcmVkV2VpZ2h0LCBOU0Zv
bgogCiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBGb250VHJhaXRzTWFzayB0b1RyYWl0c01hc2so
TlNGb250VHJhaXRNYXNrIGFwcEtpdFRyYWl0cywgTlNJbnRlZ2VyIGFwcEtpdFdlaWdodCkKLXsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KCgoYXBwS2l0VHJhaXRzICYg
TlNGb250SXRhbGljVHJhaXQpID8gRm9udFN0eWxlSXRhbGljTWFzayA6IEZvbnRTdHlsZU5vcm1h
bE1hc2spCi0gICAgICAgIHwgRm9udFZhcmlhbnROb3JtYWxNYXNrCi0gICAgICAgIHwgKGFwcEtp
dFdlaWdodCA9PSAxID8gRm9udFdlaWdodDEwME1hc2sgOgotICAgICAgICAgICAgYXBwS2l0V2Vp
Z2h0ID09IDIgPyBGb250V2VpZ2h0MjAwTWFzayA6Ci0gICAgICAgICAgICBhcHBLaXRXZWlnaHQg
PD0gNCA/IEZvbnRXZWlnaHQzMDBNYXNrIDoKLSAgICAgICAgICAgIGFwcEtpdFdlaWdodCA9PSA1
ID8gRm9udFdlaWdodDQwME1hc2sgOgotICAgICAgICAgICAgYXBwS2l0V2VpZ2h0ID09IDYgPyBG
b250V2VpZ2h0NTAwTWFzayA6Ci0gICAgICAgICAgICBhcHBLaXRXZWlnaHQgPD0gOCA/IEZvbnRX
ZWlnaHQ2MDBNYXNrIDoKLSAgICAgICAgICAgIGFwcEtpdFdlaWdodCA9PSA5ID8gRm9udFdlaWdo
dDcwME1hc2sgOgotICAgICAgICAgICAgYXBwS2l0V2VpZ2h0IDw9IDExID8gRm9udFdlaWdodDgw
ME1hc2sgOgotICAgICAgICAgICAgICAgIEZvbnRXZWlnaHQ5MDBNYXNrKSk7Ci19Ci0KICNpZiAh
RU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQogLy8gS2VlcCBhIGNhY2hlIGZvciBtYXBwaW5n
IGRlc2lyZWQgZm9udCBmYW1pbGllcyB0byBmb250IGZhbWlsaWVzIGFjdHVhbGx5IGF2YWlsYWJs
ZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KIHVzaW5nIEF2YWlsYWJsZUZhbWlseU1h
cCA9IEhhc2hNYXA8c3RkOjpwYWlyPEF0b21pY1N0cmluZywgTlNGb250VHJhaXRNYXNrPiwgQXRv
bWljU3RyaW5nPjsKQEAgLTYwNCwyNiArNTg5LDYgQEAgVmVjdG9yPFN0cmluZz4gRm9udENhY2hl
OjpzeXN0ZW1Gb250RmFtaWxpZXMoKQogICAgIHJldHVybiBmb250RmFtaWxpZXM7CiB9CiAKLVJl
ZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24pCi17Ci0gICAgLy8gQXR0ZW1wdCB0byBmaW5kIGFuIGFwcHJvcHJpYXRlIGZv
bnQgdXNpbmcgYSBtYXRjaCBiYXNlZCBvbiAKLSAgICAvLyB0aGUgcHJlc2VuY2Ugb2Yga2V5d29y
ZHMgaW4gdGhlIHRoZSByZXF1ZXN0ZWQgbmFtZXMuICBGb3IgZXhhbXBsZSwgd2UnbGwKLSAgICAv
LyBtYXRjaCBhbnkgbmFtZSB0aGF0IGNvbnRhaW5zICJBcmFiaWMiIHRvIEdlZXphIFByby4KLSAg
ICBSZWZQdHI8Rm9udD4gZm9udDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVzY3Jp
cHRpb24uZmFtaWx5Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
ZmFtaWx5ID0gZGVzY3JpcHRpb24uZmFtaWx5QXQoaSk7Ci0gICAgICAgIGlmIChmYW1pbHkuaXNF
bXB0eSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHN0YXRpYyBTdHJpbmcqIG1h
dGNoV29yZHNbM10gPSB7IG5ldyBTdHJpbmcoIkFyYWJpYyIpLCBuZXcgU3RyaW5nKCJQYXNodG8i
KSwgbmV3IFN0cmluZygiVXJkdSIpIH07Ci0gICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGdlZXphU3RyLCAoIkdlZXphIFBybyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsg
aiA8IDMgJiYgIWZvbnQ7ICsraikgewotICAgICAgICAgICAgaWYgKGZhbWlseS5jb250YWlucygq
bWF0Y2hXb3Jkc1tqXSwgZmFsc2UpKQotICAgICAgICAgICAgICAgIGZvbnQgPSBmb250Rm9yRmFt
aWx5KGRlc2NyaXB0aW9uLCBnZWV6YVN0cik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IGZvbnQucmVsZWFzZSgpOwotfQotCiBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFs
bGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQogewogICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHRpbWVzU3RyLCAo
IlRpbWVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpAQCAtNjQyLDM5
ICs2MDcsNiBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aQogICAgIHJldHVybiAqZm9udEZvckZh
bWlseShmb250RGVzY3JpcHRpb24sIGx1Y2lkYUdyYW5kZVN0ciwgZmFsc2UpOwogfQogCi12b2lk
IEZvbnRDYWNoZTo6Z2V0VHJhaXRzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlO
YW1lLCBWZWN0b3I8dW5zaWduZWQ+JiB0cmFpdHNNYXNrcykKLXsKLSAgICBOU0ZvbnRNYW5hZ2Vy
ICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKLQotICAg
IE5TU3RyaW5nICphdmFpbGFibGVGYW1pbHk7Ci0gICAgZm9yIChhdmFpbGFibGVGYW1pbHkgaW4g
W2ZvbnRNYW5hZ2VyIGF2YWlsYWJsZUZvbnRGYW1pbGllc10pIHsKLSAgICAgICAgaWYgKFtmYW1p
bHlOYW1lIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6YXZhaWxhYmxlRmFtaWx5XSA9PSBOU09yZGVy
ZWRTYW1lKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKCFhdmFpbGFibGVG
YW1pbHkpIHsKLSAgICAgICAgLy8gTWF0Y2ggYnkgUG9zdFNjcmlwdCBuYW1lLgotICAgICAgICBm
b3IgKE5TU3RyaW5nICphdmFpbGFibGVGb250IGluIFtmb250TWFuYWdlciBhdmFpbGFibGVGb250
c10pIHsKLSAgICAgICAgICAgIGlmIChbZmFtaWx5TmFtZSBjYXNlSW5zZW5zaXRpdmVDb21wYXJl
OmF2YWlsYWJsZUZvbnRdID09IE5TT3JkZXJlZFNhbWUpIHsKLSAgICAgICAgICAgICAgICBOU0Zv
bnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTphdmFpbGFibGVGb250IHNpemU6MTBdOwot
ICAgICAgICAgICAgICAgIE5TSW50ZWdlciB3ZWlnaHQgPSBbZm9udE1hbmFnZXIgd2VpZ2h0T2ZG
b250OmZvbnRdOwotICAgICAgICAgICAgICAgIHRyYWl0c01hc2tzLmFwcGVuZCh0b1RyYWl0c01h
c2soW2ZvbnRNYW5hZ2VyIHRyYWl0c09mRm9udDpmb250XSwgd2VpZ2h0KSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIE5TQXJyYXkgKmZvbnRzID0gW2ZvbnRNYW5hZ2VyIGF2YWlsYWJsZU1lbWJl
cnNPZkZvbnRGYW1pbHk6YXZhaWxhYmxlRmFtaWx5XTsKLSAgICB0cmFpdHNNYXNrcy5yZXNlcnZl
Q2FwYWNpdHkoW2ZvbnRzIGNvdW50XSk7Ci0gICAgZm9yIChOU0FycmF5ICpmb250SW5mbyBpbiBm
b250cykgewotICAgICAgICAvLyBBcnJheSBpbmRpY2VzIG11c3QgYmUgaGFyZCBjb2RlZCBiZWNh
dXNlIG9mIGxhbWUgQXBwS2l0IEFQSS4KLSAgICAgICAgTlNJbnRlZ2VyIGZvbnRXZWlnaHQgPSBb
W2ZvbnRJbmZvIG9iamVjdEF0SW5kZXg6Ml0gaW50VmFsdWVdOwotICAgICAgICBOU0ZvbnRUcmFp
dE1hc2sgZm9udFRyYWl0cyA9IFtbZm9udEluZm8gb2JqZWN0QXRJbmRleDozXSB1bnNpZ25lZElu
dFZhbHVlXTsKLSAgICAgICAgdHJhaXRzTWFza3MudW5jaGVja2VkQXBwZW5kKHRvVHJhaXRzTWFz
ayhmb250VHJhaXRzLCBmb250V2VpZ2h0KSk7Ci0gICAgfQotfQotCiBzdGQ6OnVuaXF1ZV9wdHI8
Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseSkKIHsKICAgICBOU0ZvbnRUcmFpdE1hc2sgdHJhaXRzID0gZm9udERlc2NyaXB0aW9uLml0
YWxpYygpID8gTlNGb250SXRhbGljVHJhaXQgOiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259573</attachid>
            <date>2015-08-20 20:12:04 -0700</date>
            <delta_ts>2015-08-21 13:41:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148217-20150820201159.patch</filename>
            <type>text/plain</type>
            <size>15807</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVkMWZiNjQwZjJlODVi
YTBjZDVjYTJmOGE3Nzc4ZjM2ZTdhYzE5Mi4uN2Y1OTg4MDM3NGM2MzdjNjY5ODU5YTgwZjRkNGZk
ODg4Mzg2MjNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE1LTA4LTIwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBV
bmlmeSB0d28gbW9yZSBGb250Q2FjaGUgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGR1cGxpY2F0ZWQgY29kZSBmcm9tIEZvbnRD
YWNoZU1hYyBhbmQgRm9udENhY2hlSU9TIGludG8KKyAgICAgICAgRm9udENhY2hlQ29yZVRleHQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hh
bmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9UcmFpdHNNYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzRm9udFdlaWdodEJvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1p
bGFyRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldFRyYWl0c0luRmFtaWx5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjp0b1RyYWl0c01hc2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhY2hlOjpnZXRUcmFpdHNJbkZhbWlseSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRvVHJhaXRz
TWFzayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnNpbWlsYXJGb250
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VHJhaXRzSW5GYW1p
bHkpOiBEZWxldGVkLgorCisyMDE1LTA4LTIwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKICAgICAgICAgW09TIFhdIENsZWF1cCBhZnRlciByMTg4NTkxCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgyMTkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDcyNjk3NGYxYjdiMDI0OGQ4ODIzMjZkNjc0NTE3ODk3
Yjg1OTc3Y2QuLjI1YzZkM2M4OGNjZDRjOTFiZjNlNDkzZDg3NTcxMTZjYTFkNmQ4MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJGb250Q2Fj
aGUuaCIKIAogI2luY2x1ZGUgIkNvcmVUZXh0U1BJLmgiCisjaW5jbHVkZSAiRm9udC5oIgorCiAj
aW5jbHVkZSA8Q29yZVRleHQvU0ZOVExheW91dFR5cGVzLmg+CiAKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KQEAgLTE2MSw0ICsxNjMsODcgQEAgUmV0YWluUHRyPENURm9udFJlZj4g
cHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBUZXh0UmVuZGVyaW5n
TW8KICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMob3Jp
Z2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9udCksIG51bGxwdHIsIGRlc2NyaXB0
b3IuZ2V0KCkpKTsKIH0KIAorc3RhdGljIGlubGluZSBGb250VHJhaXRzTWFzayB0b1RyYWl0c01h
c2soQ1RGb250U3ltYm9saWNUcmFpdHMgY3RGb250VHJhaXRzKQoreworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxGb250VHJhaXRzTWFzaz4oKChjdEZvbnRUcmFpdHMgJiBrQ1RGb250VHJhaXRJdGFs
aWMpID8gRm9udFN0eWxlSXRhbGljTWFzayA6IEZvbnRTdHlsZU5vcm1hbE1hc2spCisgICAgICAg
IHwgRm9udFZhcmlhbnROb3JtYWxNYXNrCisgICAgICAgIC8vIEZvbnRXZWlnaHQ2MDAgb3IgaGln
aGVyIGlzIGJvbGQgZm9yIENURm9udHMsIHNvIGNob29zZSBtaWRkbGUgdmFsdWVzIGZvcgorICAg
ICAgICAvLyBib2xkICg2MDAtOTAwKSBhbmQgbm9uLWJvbGQgKDEwMC01MDApCisgICAgICAgIHwg
KChjdEZvbnRUcmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKSA/IEZvbnRXZWlnaHQ3MDBNYXNrIDog
Rm9udFdlaWdodDMwME1hc2spKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzRm9udFdlaWdo
dEJvbGQoRm9udFdlaWdodCBmb250V2VpZ2h0KQoreworICAgIHJldHVybiBmb250V2VpZ2h0ID49
IEZvbnRXZWlnaHQ2MDA7Cit9CisKK1JlZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgLy8gQXR0ZW1wdCB0
byBmaW5kIGFuIGFwcHJvcHJpYXRlIGZvbnQgdXNpbmcgYSBtYXRjaCBiYXNlZCBvbiB0aGUgcHJl
c2VuY2Ugb2Yga2V5d29yZHMgaW4KKyAgICAvLyB0aGUgcmVxdWVzdGVkIG5hbWVzLiBGb3IgZXhh
bXBsZSwgd2UnbGwgbWF0Y2ggYW55IG5hbWUgdGhhdCBjb250YWlucyAiQXJhYmljIiB0byBHZWV6
YSBQcm8uCisgICAgUmVmUHRyPEZvbnQ+IGZvbnQ7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGRlc2NyaXB0aW9uLmZhbWlseUNvdW50KCk7ICsraSkgeworICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseSA9IGRlc2NyaXB0aW9uLmZhbWlseUF0KGkpOworICAgICAgICBpZiAo
ZmFtaWx5LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisjaWYgUExBVEZPUk0o
SU9TKQorICAgICAgICAvLyBTdWJzdGl0dXRlIHRoZSBkZWZhdWx0IG1vbm9zcGFjZSBmb250IGZv
ciB3ZWxsLWtub3duIG1vbm9zcGFjZSBmb250cy4KKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21pY1N0cmluZz4gbW9uYWNvKCJtb25hY28iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmlu
Zz4gbWVubG8oIm1lbmxvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvdXJpZXIoImNvdXJp
ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKGZhbWlseSwgbW9uYWNvKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShmYW1p
bHksIG1lbmxvKSkgeworICAgICAgICAgICAgZm9udCA9IGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRp
b24sIGNvdXJpZXIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBTdWJzdGl0dXRlIFZlcmRhbmEgZm9yIEx1Y2lkYSBHcmFuZGUuCisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGx1Y2lkYUdyYW5kZSgibHVjaWRhIGdyYW5k
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB2ZXJkYW5hKCJ2ZXJkYW5hIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShmYW1pbHksIGx1Y2lkYUdyYW5kZSkpIHsKKyAgICAgICAgICAgIGZvbnQgPSBmb250Rm9yRmFt
aWx5KGRlc2NyaXB0aW9uLCB2ZXJkYW5hKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisjZW5kaWYKKworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhcmFi
aWMoQVNDSUlMaXRlcmFsKCJBcmFiaWMiKSk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHBhc2h0byhBU0NJSUxpdGVyYWwoIlBhc2h0byIpKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdXJkdShBU0NJSUxpdGVyYWwoIlVyZHUiKSk7CisgICAg
ICAgIHN0YXRpYyBTdHJpbmcqIG1hdGNoV29yZHNbM10gPSB7ICZhcmFiaWMuZ2V0KCksICZwYXNo
dG8uZ2V0KCksICZ1cmR1LmdldCgpIH07CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJp
bmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBmb3IgKFN0cmluZyogbWF0Y2hXb3JkIDogbWF0Y2hXb3Jkcykg
eworICAgICAgICAgICAgaWYgKGZhbWlseS5jb250YWlucygqbWF0Y2hXb3JkLCBmYWxzZSkpCisg
ICAgICAgICAgICAgICAgZm9udCA9IGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGlzRm9udFdl
aWdodEJvbGQoZGVzY3JpcHRpb24ud2VpZ2h0KCkpID8gZ2VlemFCb2xkIDogZ2VlemFQbGFpbik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZm9udC5yZWxlYXNlKCk7Cit9CisKK3Zv
aWQgRm9udENhY2hlOjpnZXRUcmFpdHNJbkZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eU5hbWUsIFZlY3Rvcjx1bnNpZ25lZD4mIHRyYWl0c01hc2tzKQoreworICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gZmFtaWx5TmFtZVN0ciA9IGZhbWlseU5hbWUuc3RyaW5nKCkuY3JlYXRlQ0ZT
dHJpbmcoKTsKKyAgICBDRlN0cmluZ1JlZiBmYW1pbHlOYW1lU3RyUHRyID0gZmFtaWx5TmFtZVN0
ci5nZXQoKTsKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQq
Kikma0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIChjb25zdCB2b2lkKiopJmZhbWlseU5hbWVT
dHJQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4g
Zm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmli
dXRlcyhhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IG1hdGNo
ZWREZXNjcmlwdG9ycyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9u
dERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yLmdldCgpLCBudWxscHRyKSk7CisgICAgaWYgKCFt
YXRjaGVkRGVzY3JpcHRvcnMpCisgICAgICAgIHJldHVybjsKKworICAgIENGSW5kZXggbnVtTWF0
Y2hlcyA9IENGQXJyYXlHZXRDb3VudChtYXRjaGVkRGVzY3JpcHRvcnMuZ2V0KCkpOworICAgIGlm
ICghbnVtTWF0Y2hlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgbnVtTWF0Y2hlczsgKytpKSB7CisgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IHRyYWl0cyA9IGFkb3B0Q0YoKENGRGljdGlvbmFyeVJlZilDVEZvbnREZXNjcmlwdG9yQ29w
eUF0dHJpYnV0ZSgoQ1RGb250RGVzY3JpcHRvclJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KG1h
dGNoZWREZXNjcmlwdG9ycy5nZXQoKSwgaSksIGtDVEZvbnRUcmFpdHNBdHRyaWJ1dGUpKTsKKyAg
ICAgICAgQ0ZOdW1iZXJSZWYgcmVzdWx0UmVmID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdl
dFZhbHVlKHRyYWl0cy5nZXQoKSwga0NURm9udFN5bWJvbGljVHJhaXQpOworICAgICAgICBpZiAo
cmVzdWx0UmVmKSB7CisgICAgICAgICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBzeW1ib2xpY1Ry
YWl0czsKKyAgICAgICAgICAgIENGTnVtYmVyR2V0VmFsdWUocmVzdWx0UmVmLCBrQ0ZOdW1iZXJJ
bnRUeXBlLCAmc3ltYm9saWNUcmFpdHMpOworICAgICAgICAgICAgdHJhaXRzTWFza3MuYXBwZW5k
KHRvVHJhaXRzTWFzayhzeW1ib2xpY1RyYWl0cykpOworICAgICAgICB9CisgICAgfQorfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENh
Y2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNo
ZUlPUy5tbQppbmRleCA5ODQ5MTJlZDZjNDNiNmNjMmVhYjNhYWY0ZGIyMjFmMThkMDAzODUxLi41
ODQ4NTkyMzI0YjgxZWY5MTRkMjY5OWJiMWM0NTAxMDRhZWViOWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTE1
MCw0OCArMTUwLDYgQEAgVmVjdG9yPFN0cmluZz4gRm9udENhY2hlOjpzeXN0ZW1Gb250RmFtaWxp
ZXMoKQogICAgIHJldHVybiBmb250RmFtaWxpZXM7CiB9CiAKLVJlZlB0cjxGb250PiBGb250Q2Fj
aGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCi17Ci0g
ICAgLy8gQXR0ZW1wdCB0byBmaW5kIGFuIGFwcHJvcHJpYXRlIGZvbnQgdXNpbmcgYSBtYXRjaCBi
YXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2Yga2V5d29yZHMgaW4KLSAgICAvLyB0aGUgcmVxdWVzdGVk
IG5hbWVzLiBGb3IgZXhhbXBsZSwgd2UnbGwgbWF0Y2ggYW55IG5hbWUgdGhhdCBjb250YWlucyAi
QXJhYmljIiB0byBHZWV6YSBQcm8uCi0gICAgUmVmUHRyPEZvbnQ+IGZvbnQ7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGRlc2NyaXB0aW9uLmZhbWlseUNvdW50KCk7ICsraSkgewotICAg
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSA9IGRlc2NyaXB0aW9uLmZhbWlseUF0KGkp
OwotICAgICAgICBpZiAoZmFtaWx5LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgIC8vIFN1YnN0aXR1dGUgdGhlIGRlZmF1bHQgbW9ub3NwYWNlIGZvbnQgZm9yIHdl
bGwta25vd24gbW9ub3NwYWNlIGZvbnRzLgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBtb25hY28oIm1vbmFjbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBt
ZW5sbygibWVubG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gY291cmllcigiY291cmllciIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UoZmFtaWx5LCBtb25hY28pIHx8IGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseSwg
bWVubG8pKSB7Ci0gICAgICAgICAgICBmb250ID0gZm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwg
Y291cmllcik7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IFN1YnN0aXR1dGUgVmVyZGFuYSBmb3IgTHVjaWRhIEdyYW5kZS4KLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbHVjaWRhR3JhbmRlKCJsdWNpZGEgZ3JhbmRlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHZlcmRhbmEoInZlcmRhbmEiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZh
bWlseSwgbHVjaWRhR3JhbmRlKSkgewotICAgICAgICAgICAgZm9udCA9IGZvbnRGb3JGYW1pbHko
ZGVzY3JpcHRpb24sIHZlcmRhbmEpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LQotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBhcmFiaWMoQVNDSUlMaXRl
cmFsKCJBcmFiaWMiKSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBh
c2h0byhBU0NJSUxpdGVyYWwoIlBhc2h0byIpKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdXJkdShBU0NJSUxpdGVyYWwoIlVyZHUiKSk7Ci0gICAgICAgIHN0YXRpYyBT
dHJpbmcqIG1hdGNoV29yZHNbM10gPSB7ICZhcmFiaWMuZ2V0KCksICZwYXNodG8uZ2V0KCksICZ1
cmR1LmdldCgpIH07Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGdlZXphQm9s
ZCgiR2VlemFQcm8tQm9sZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgMyAmJiAhZm9udDsgKytqKSB7Ci0gICAg
ICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zKCptYXRjaFdvcmRzW2pdLCBmYWxzZSkpCi0gICAg
ICAgICAgICAgICAgZm9udCA9IGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGlzRm9udFdlaWdo
dEJvbGQoZGVzY3JpcHRpb24ud2VpZ2h0KCkpID8gZ2VlemFCb2xkIDogZ2VlemFQbGFpbik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZm9udC5yZWxlYXNlKCk7Ci19Ci0KIFJlZjxG
b250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24pCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gZmFsbGJhY2tGb250RmFtaWx5KCIuUGhvbmVGYWxsYmFjayIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtMjI3LDM3ICsxODUsNiBAQCBGb250UGxhdGZv
cm1EYXRhKiBGb250Q2FjaGU6OmdldEN1c3RvbUZhbGxiYWNrRm9udChjb25zdCBVSW50MzIgYywg
Y29uc3QgRm9udERlcwogICAgIHJldHVybiBnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGRlc2Ny
aXB0aW9uLCAqZmFtaWx5KTsKIH0KIAotc3RhdGljIGlubGluZSBGb250VHJhaXRzTWFzayB0b1Ry
YWl0c01hc2soQ1RGb250U3ltYm9saWNUcmFpdHMgY3RGb250VHJhaXRzKQotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4oKChjdEZvbnRUcmFpdHMgJiBrQ1RGb250VHJh
aXRJdGFsaWMpID8gRm9udFN0eWxlSXRhbGljTWFzayA6IEZvbnRTdHlsZU5vcm1hbE1hc2spCi0g
ICAgICAgIHwgRm9udFZhcmlhbnROb3JtYWxNYXNrCi0gICAgICAgIC8vIEZvbnRXZWlnaHQ2MDAg
b3IgaGlnaGVyIGlzIGJvbGQgZm9yIENURm9udHMsIHNvIGNob29zZSBtaWRkbGUgdmFsdWVzIGZv
cgotICAgICAgICAvLyBib2xkICg2MDAtOTAwKSBhbmQgbm9uLWJvbGQgKDEwMC01MDApCi0gICAg
ICAgIHwgKChjdEZvbnRUcmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKSA/IEZvbnRXZWlnaHQ3MDBN
YXNrIDogRm9udFdlaWdodDMwME1hc2spKTsKLX0KLQotdm9pZCBGb250Q2FjaGU6OmdldFRyYWl0
c0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgVmVjdG9yPHVuc2lnbmVk
PiYgdHJhaXRzTWFza3MpCi17Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmYW1pbHlOYW1l
U3RyID0gZmFtaWx5TmFtZS5zdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpOwotICAgIE5TRGljdGlv
bmFyeSAqYXR0cmlidXRlcyA9IEB7IChpZClrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZTogKE5T
U3RyaW5nKilmYW1pbHlOYW1lU3RyLmdldCgpIH07Ci0gICAgUmV0YWluUHRyPENURm9udERlc2Ny
aXB0b3JSZWY+IGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRl
V2l0aEF0dHJpYnV0ZXMoKENGRGljdGlvbmFyeVJlZilhdHRyaWJ1dGVzKSk7Ci0gICAgUmV0YWlu
UHRyPE5TQXJyYXk+IG1hdGNoZWREZXNjcmlwdG9ycyA9IGFkb3B0TlMoKE5TQXJyYXkgKilDVEZv
bnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcnMoZm9udERlc2NyaXB0b3Iu
Z2V0KCksIG51bGxwdHIpKTsKLQotICAgIE5TSW50ZWdlciBudW1NYXRjaGVzID0gW21hdGNoZWRE
ZXNjcmlwdG9ycy5nZXQoKSBjb3VudF07Ci0gICAgaWYgKCFtYXRjaGVkRGVzY3JpcHRvcnMgfHwg
IW51bU1hdGNoZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoTlNJbnRlZ2VyIGkgPSAw
OyBpIDwgbnVtTWF0Y2hlczsgKytpKSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IHRyYWl0cyA9IGFkb3B0Q0YoKENGRGljdGlvbmFyeVJlZilDVEZvbnREZXNjcmlwdG9yQ29w
eUF0dHJpYnV0ZSgoQ1RGb250RGVzY3JpcHRvclJlZilbbWF0Y2hlZERlc2NyaXB0b3JzLmdldCgp
IG9iamVjdEF0SW5kZXg6aV0sIGtDVEZvbnRUcmFpdHNBdHRyaWJ1dGUpKTsKLSAgICAgICAgQ0ZO
dW1iZXJSZWYgcmVzdWx0UmVmID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHRy
YWl0cy5nZXQoKSwga0NURm9udFN5bWJvbGljVHJhaXQpOwotICAgICAgICBpZiAocmVzdWx0UmVm
KSB7Ci0gICAgICAgICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBzeW1ib2xpY1RyYWl0czsKLSAg
ICAgICAgICAgIENGTnVtYmVyR2V0VmFsdWUocmVzdWx0UmVmLCBrQ0ZOdW1iZXJJbnRUeXBlLCAm
c3ltYm9saWNUcmFpdHMpOwotICAgICAgICAgICAgdHJhaXRzTWFza3MuYXBwZW5kKHRvVHJhaXRz
TWFzayhzeW1ib2xpY1RyYWl0cykpOwotICAgICAgICB9Ci0gICAgfQotfQotCiBmbG9hdCBGb250
Q2FjaGU6OndlaWdodE9mQ1RGb250KENURm9udFJlZiBmb250KQogewogICAgIGZsb2F0IHJlc3Vs
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQppbmRleCBkYmI2NmYyZDBhYjQ1NjY4OTVkNjQ2MjM1OTM5ODE0MzhhNWYw
NTdkLi45ZDdmYTJkZmRlOTU1YjRiYWMyYTU0ZjBlNzhiZTE3MGQ2YWZjZjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0K
QEAgLTExNCwyMSArMTE0LDYgQEAgc3RhdGljIGJvb2wgYmV0dGVyQ2hvaWNlKE5TRm9udFRyYWl0
TWFzayBkZXNpcmVkVHJhaXRzLCBpbnQgZGVzaXJlZFdlaWdodCwgTlNGb24KIAogI2VuZGlmCiAK
LXN0YXRpYyBpbmxpbmUgRm9udFRyYWl0c01hc2sgdG9UcmFpdHNNYXNrKE5TRm9udFRyYWl0TWFz
ayBhcHBLaXRUcmFpdHMsIE5TSW50ZWdlciBhcHBLaXRXZWlnaHQpCi17Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPigoKGFwcEtpdFRyYWl0cyAmIE5TRm9udEl0YWxpY1Ry
YWl0KSA/IEZvbnRTdHlsZUl0YWxpY01hc2sgOiBGb250U3R5bGVOb3JtYWxNYXNrKQotICAgICAg
ICB8IEZvbnRWYXJpYW50Tm9ybWFsTWFzawotICAgICAgICB8IChhcHBLaXRXZWlnaHQgPT0gMSA/
IEZvbnRXZWlnaHQxMDBNYXNrIDoKLSAgICAgICAgICAgIGFwcEtpdFdlaWdodCA9PSAyID8gRm9u
dFdlaWdodDIwME1hc2sgOgotICAgICAgICAgICAgYXBwS2l0V2VpZ2h0IDw9IDQgPyBGb250V2Vp
Z2h0MzAwTWFzayA6Ci0gICAgICAgICAgICBhcHBLaXRXZWlnaHQgPT0gNSA/IEZvbnRXZWlnaHQ0
MDBNYXNrIDoKLSAgICAgICAgICAgIGFwcEtpdFdlaWdodCA9PSA2ID8gRm9udFdlaWdodDUwME1h
c2sgOgotICAgICAgICAgICAgYXBwS2l0V2VpZ2h0IDw9IDggPyBGb250V2VpZ2h0NjAwTWFzayA6
Ci0gICAgICAgICAgICBhcHBLaXRXZWlnaHQgPT0gOSA/IEZvbnRXZWlnaHQ3MDBNYXNrIDoKLSAg
ICAgICAgICAgIGFwcEtpdFdlaWdodCA8PSAxMSA/IEZvbnRXZWlnaHQ4MDBNYXNrIDoKLSAgICAg
ICAgICAgICAgICBGb250V2VpZ2h0OTAwTWFzaykpOwotfQotCiAjaWYgIUVOQUJMRShQTEFURk9S
TV9GT05UX0xPT0tVUCkKIC8vIEtlZXAgYSBjYWNoZSBmb3IgbWFwcGluZyBkZXNpcmVkIGZvbnQg
ZmFtaWxpZXMgdG8gZm9udCBmYW1pbGllcyBhY3R1YWxseSBhdmFpbGFibGUgb24gdGhlIHN5c3Rl
bSBmb3IgcGVyZm9ybWFuY2UuCiB1c2luZyBBdmFpbGFibGVGYW1pbHlNYXAgPSBIYXNoTWFwPHN0
ZDo6cGFpcjxBdG9taWNTdHJpbmcsIE5TRm9udFRyYWl0TWFzaz4sIEF0b21pY1N0cmluZz47CkBA
IC02MDQsMjYgKzU4OSw2IEBAIFZlY3RvcjxTdHJpbmc+IEZvbnRDYWNoZTo6c3lzdGVtRm9udEZh
bWlsaWVzKCkKICAgICByZXR1cm4gZm9udEZhbWlsaWVzOwogfQogCi1SZWZQdHI8Rm9udD4gRm9u
dENhY2hlOjpzaW1pbGFyRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQot
ewotICAgIC8vIEF0dGVtcHQgdG8gZmluZCBhbiBhcHByb3ByaWF0ZSBmb250IHVzaW5nIGEgbWF0
Y2ggYmFzZWQgb24gCi0gICAgLy8gdGhlIHByZXNlbmNlIG9mIGtleXdvcmRzIGluIHRoZSB0aGUg
cmVxdWVzdGVkIG5hbWVzLiAgRm9yIGV4YW1wbGUsIHdlJ2xsCi0gICAgLy8gbWF0Y2ggYW55IG5h
bWUgdGhhdCBjb250YWlucyAiQXJhYmljIiB0byBHZWV6YSBQcm8uCi0gICAgUmVmUHRyPEZvbnQ+
IGZvbnQ7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlc2NyaXB0aW9uLmZhbWlseUNv
dW50KCk7ICsraSkgewotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSA9IGRlc2Ny
aXB0aW9uLmZhbWlseUF0KGkpOwotICAgICAgICBpZiAoZmFtaWx5LmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBzdGF0aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0g
eyBuZXcgU3RyaW5nKCJBcmFiaWMiKSwgbmV3IFN0cmluZygiUGFzaHRvIiksIG5ldyBTdHJpbmco
IlVyZHUiKSB9OwotICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCAzICYmICFmb250
OyArK2opIHsKLSAgICAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnMoKm1hdGNoV29yZHNbal0s
IGZhbHNlKSkKLSAgICAgICAgICAgICAgICBmb250ID0gZm9udEZvckZhbWlseShkZXNjcmlwdGlv
biwgZ2VlemFTdHIpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmb250LnJlbGVhc2Uo
KTsKLX0KLQogUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKIHsKICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0aW1lc1N0ciwgKCJUaW1lcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTY0MiwzOSArNjA3LDYgQEAgUmVm
PEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGkKICAgICByZXR1cm4gKmZvbnRGb3JGYW1pbHkoZm9udERlc2Ny
aXB0aW9uLCBsdWNpZGFHcmFuZGVTdHIsIGZhbHNlKTsKIH0KIAotdm9pZCBGb250Q2FjaGU6Omdl
dFRyYWl0c0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgVmVjdG9yPHVu
c2lnbmVkPiYgdHJhaXRzTWFza3MpCi17Ci0gICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIg
PSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07Ci0KLSAgICBOU1N0cmluZyAqYXZh
aWxhYmxlRmFtaWx5OwotICAgIGZvciAoYXZhaWxhYmxlRmFtaWx5IGluIFtmb250TWFuYWdlciBh
dmFpbGFibGVGb250RmFtaWxpZXNdKSB7Ci0gICAgICAgIGlmIChbZmFtaWx5TmFtZSBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOmF2YWlsYWJsZUZhbWlseV0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmICghYXZhaWxhYmxlRmFtaWx5KSB7Ci0gICAg
ICAgIC8vIE1hdGNoIGJ5IFBvc3RTY3JpcHQgbmFtZS4KLSAgICAgICAgZm9yIChOU1N0cmluZyAq
YXZhaWxhYmxlRm9udCBpbiBbZm9udE1hbmFnZXIgYXZhaWxhYmxlRm9udHNdKSB7Ci0gICAgICAg
ICAgICBpZiAoW2ZhbWlseU5hbWUgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTphdmFpbGFibGVGb250
XSA9PSBOU09yZGVyZWRTYW1lKSB7Ci0gICAgICAgICAgICAgICAgTlNGb250ICpmb250ID0gW05T
Rm9udCBmb250V2l0aE5hbWU6YXZhaWxhYmxlRm9udCBzaXplOjEwXTsKLSAgICAgICAgICAgICAg
ICBOU0ludGVnZXIgd2VpZ2h0ID0gW2ZvbnRNYW5hZ2VyIHdlaWdodE9mRm9udDpmb250XTsKLSAg
ICAgICAgICAgICAgICB0cmFpdHNNYXNrcy5hcHBlbmQodG9UcmFpdHNNYXNrKFtmb250TWFuYWdl
ciB0cmFpdHNPZkZvbnQ6Zm9udF0sIHdlaWdodCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBO
U0FycmF5ICpmb250cyA9IFtmb250TWFuYWdlciBhdmFpbGFibGVNZW1iZXJzT2ZGb250RmFtaWx5
OmF2YWlsYWJsZUZhbWlseV07Ci0gICAgdHJhaXRzTWFza3MucmVzZXJ2ZUNhcGFjaXR5KFtmb250
cyBjb3VudF0pOwotICAgIGZvciAoTlNBcnJheSAqZm9udEluZm8gaW4gZm9udHMpIHsKLSAgICAg
ICAgLy8gQXJyYXkgaW5kaWNlcyBtdXN0IGJlIGhhcmQgY29kZWQgYmVjYXVzZSBvZiBsYW1lIEFw
cEtpdCBBUEkuCi0gICAgICAgIE5TSW50ZWdlciBmb250V2VpZ2h0ID0gW1tmb250SW5mbyBvYmpl
Y3RBdEluZGV4OjJdIGludFZhbHVlXTsKLSAgICAgICAgTlNGb250VHJhaXRNYXNrIGZvbnRUcmFp
dHMgPSBbW2ZvbnRJbmZvIG9iamVjdEF0SW5kZXg6M10gdW5zaWduZWRJbnRWYWx1ZV07Ci0gICAg
ICAgIHRyYWl0c01hc2tzLnVuY2hlY2tlZEFwcGVuZCh0b1RyYWl0c01hc2soZm9udFRyYWl0cywg
Zm9udFdlaWdodCkpOwotICAgIH0KLX0KLQogc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURh
dGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpCiB7CiAgICAg
TlNGb250VHJhaXRNYXNrIHRyYWl0cyA9IGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSA/IE5TRm9u
dEl0YWxpY1RyYWl0IDogMDsK
</data>
<flag name="review"
          id="284767"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>