<?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>123706</bug_id>
          
          <creation_ts>2013-11-03 10:10:12 -0800</creation_ts>
          <short_desc>Remove code duplications in createFontCustomPlatformData()</short_desc>
          <delta_ts>2013-11-04 17:29:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946449</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-03 10:10:12 -0800</bug_when>
    <thetext>Remove code duplications in createFontCustomPlatformData()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946883</commentid>
    <comment_count>1</comment_count>
      <attachid>215968</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-04 16:36:27 -0800</bug_when>
    <thetext>Created attachment 215968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946916</commentid>
    <comment_count>2</comment_count>
      <attachid>215968</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-04 17:24:51 -0800</bug_when>
    <thetext>Comment on attachment 215968
Patch

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

&gt; Source/WebCore/loader/cache/CachedFont.cpp:103
&gt; +        OpenTypeSanitizer sanitizer(buffer);
&gt; +        RefPtr&lt;SharedBuffer&gt; transcodeBuffer = sanitizer.sanitize();

I would like this better as a single line:

    RefPtr&lt;SharedBuffer&gt; sanitizedBuffer = OpenTypeSanitizer(buffer).sanitize();

&gt; Source/WebCore/loader/cache/CachedFont.cpp:117
&gt; +        m_fontData = buffer ? createFontCustomPlatformData(*buffer) : nullptr;

We could use an if statement instead of a ? : since we already know that m_fontData is null here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946922</commentid>
    <comment_count>3</comment_count>
      <attachid>215968</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:29:48 -0800</bug_when>
    <thetext>Comment on attachment 215968
Patch

Clearing flags on attachment: 215968

Committed r158623: &lt;http://trac.webkit.org/changeset/158623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946923</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:29:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215968</attachid>
            <date>2013-11-04 16:36:27 -0800</date>
            <delta_ts>2013-11-04 17:29:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123706-20131105013625.patch</filename>
            <type>text/plain</type>
            <size>18410</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM1NzBkMTVmOTUzMzEz
NTc0OTAwODFhMmE1ZmI4MDQxNDBhZjM1MC4uYzgwMWI3ZWZiOWQzN2MwYTA3ZmYzZWYwZGMxZjA4
MGQ4OTUyNjFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTExLTAzICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBjb2Rl
IGR1cGxpY2F0aW9ucyBpbiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzcwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgT3BlblR5cGVTYW5p
dGl6ZXIgYW5kIFdPRkYgaGFuZGxpbmcgZnJvbSB0aGUgcG9ydCBzcGVjaWZpYworICAgICAgICBp
bXBsZW1lbnRhdGlvbnMgaW4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpIGludG8gdGhl
IG9ubHkKKyAgICAgICAgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gQ2FjaGVkRm9udDo6ZW5zdXJl
Q3VzdG9tRm9udERhdGEoKS4KKyAgICAgICAgQWxzbyBjaGFuZ2UgdGhlIHBhcmFtZXRlciBwYXNz
aW5nIHRoZSBTaGFyZWRCdWZmZXIgZnJvbSBhCisgICAgICAgIHBvaW50ZXIgdG8gYSByZWZlcmVu
Y2Ugc2luY2UgaXQgaXMgbmV2ZXIgbnVsbC4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OmVuc3VyZUN1c3RvbUZv
bnREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9y
bURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRm
b3JtRGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oOgorCiAyMDEzLTExLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgaGVscGVycyBmb3IgcGFydGlhbCBkZXNjZW5kYW50IHRyYXZl
cnNhbCB0byBlbGVtZW50IGl0ZXJhdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEZvbnQuY3BwCmluZGV4IGUwNzAxMGE2ZTc0ZTVkODVmYjM0YmUxMzRjMzRlNTc0NzIwMzA0
MTAuLjEyMDU0YzhiMmQxMTYzNTdjMWJhMWE4NGU0Njk3MmE2OTM1MDhjYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTMzLDggKzMzLDExIEBACiAj
aW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9y
bURhdGEuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgorI2luY2x1ZGUgIk9wZW5UeXBlU2Fu
aXRpemVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisjaW5jbHVkZSAiV09G
RkZpbGVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUoU1ZH
X0ZPTlRTKQpAQCAtOTIsNyArOTUsMjYgQEAgdm9pZCBDYWNoZWRGb250OjpiZWdpbkxvYWRJZk5l
ZWRlZChDYWNoZWRSZXNvdXJjZUxvYWRlciogZGwpCiBib29sIENhY2hlZEZvbnQ6OmVuc3VyZUN1
c3RvbUZvbnREYXRhKCkKIHsKICAgICBpZiAoIW1fZm9udERhdGEgJiYgIWVycm9yT2NjdXJyZWQo
KSAmJiAhaXNMb2FkaW5nKCkgJiYgbV9kYXRhKSB7Ci0gICAgICAgIG1fZm9udERhdGEgPSBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKG1fZGF0YS5nZXQoKS0+c2hhcmVkQnVmZmVyKCkpOwor
ICAgICAgICBTaGFyZWRCdWZmZXIqIGJ1ZmZlciA9IG1fZGF0YS5nZXQoKS0+c2hhcmVkQnVmZmVy
KCk7CisgICAgICAgIEFTU0VSVChidWZmZXIpOworCisjaWYgVVNFKE9QRU5UWVBFX1NBTklUSVpF
UikKKyAgICAgICAgT3BlblR5cGVTYW5pdGl6ZXIgc2FuaXRpemVyKGJ1ZmZlcik7CisgICAgICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHRyYW5zY29kZUJ1ZmZlciA9IHNhbml0aXplci5zYW5pdGl6
ZSgpOworICAgICAgICBidWZmZXIgPSB0cmFuc2NvZGVCdWZmZXIuZ2V0KCk7CisjZWxzZQorICAg
ICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzZm50QnVmZmVyOworICAgICAgICBpZiAoaXNXT0ZG
KGJ1ZmZlcikpIHsKKyAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBzZm50OworICAgICAgICAgICAg
aWYgKGNvbnZlcnRXT0ZGVG9TZm50KGJ1ZmZlciwgc2ZudCkpIHsKKyAgICAgICAgICAgICAgICBz
Zm50QnVmZmVyID0gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihzZm50KTsKKyAgICAgICAgICAg
ICAgICBidWZmZXIgPSBzZm50QnVmZmVyLmdldCgpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAg
ICAgbV9mb250RGF0YSA9IGJ1ZmZlciA/IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKmJ1
ZmZlcikgOiBudWxscHRyOwogICAgICAgICBpZiAobV9mb250RGF0YSkKICAgICAgICAgICAgIG1f
aGFzQ3JlYXRlZEZvbnREYXRhID0gdHJ1ZTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaAppbmRleCBiNWM5ODU1ZjA5NGJmMmZkZGRhNWUxMmRmNjEy
MDhmNmNlNDViNWYzLi45MDA4ZDBjOGI2MzI0Y2JiZDE4Y2E5NDcxYTBkMWRiZjIzZGFjNmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtMzYsNyArMzYsNyBA
QCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7CiBwdWJsaWM6
Ci0gICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShGSUxFQ0hBUiogZm9udE5hbWUsIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPik7CisgICAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShGSUxFQ0hBUiog
Zm9udE5hbWUsIFNoYXJlZEJ1ZmZlciYpOwogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7
CiAKICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwsCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBtX2J1ZmZlcjsKIH07CiAKLXN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1E
YXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciopOworc3RkOjp1
bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9y
bURhdGEoU2hhcmVkQnVmZmVyJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFCbGFja0JlcnJ5LmNwcApp
bmRleCAyNGEwMmZiNjU5MTc1NjQ4OTMzZTk5NzAzNzJhZDJkZTE2MWJkYmVjLi5jOWY4YTI1YmFl
ODMwOWY3YjY1NjY2NDIzYTdlMmZhZmUyZmNiZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFCbGFj
a0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFCbGFja0JlcnJ5LmNwcApAQCAtMjEsNyArMjEsNiBA
QAogCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIklUeXBlVXRpbHMu
aCIKLSNpbmNsdWRlICJPcGVuVHlwZVNhbml0aXplci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Lmg+CkBA
IC0yOSw5ICsyOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShGSUxFQ0hBUiogZm9udE5hbWUsIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIpCitGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhKEZJTEVDSEFSKiBmb250TmFtZSwgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCiAgICAgOiBtX2ZvbnROYW1lKHN0cmR1cChmb250TmFtZSkpCi0gICAgLCBtX2J1ZmZlcihi
dWZmZXIpCisgICAgLCBtX2J1ZmZlcigmYnVmZmVyKQogewogfQogCkBAIC01NiwyMSArNTUsMTEg
QEAgYm9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJp
bmcmIGZvcm1hdCkKICAgICByZXR1cm4gaXNTdXBwb3J0ZWQ7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0
cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNo
YXJlZEJ1ZmZlciogYnVmZmVyKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7
Ci0gICAgQVNTRVJUX0FSRyhidWZmZXIsIGJ1ZmZlcik7Ci0KLSNpZiBVU0UoT1BFTlRZUEVfU0FO
SVRJWkVSKQotICAgIE9wZW5UeXBlU2FuaXRpemVyIHNhbml0aXplcihidWZmZXIpOwotICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IHRyYW5zY29kZUJ1ZmZlciA9IHNhbml0aXplci5zYW5pdGl6ZSgp
OwotICAgIGlmICghdHJhbnNjb2RlQnVmZmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsgLy8g
dmFsaWRhdGlvbiBmYWlsZWQuCi0gICAgYnVmZmVyID0gdHJhbnNjb2RlQnVmZmVyLmdldCgpOwot
I2VuZGlmCi0KICAgICBGSUxFQ0hBUiBuYW1lW01BWF9GT05UX05BTUVfTEVOKzFdOwogICAgIG1l
bXNldChuYW1lLCAwLCBNQVhfRk9OVF9OQU1FX0xFTisxKTsKLSAgICBpZiAoRlNfbG9hZF9mb250
KEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6Z2V0SVR5cGUoKSwgMCwgY29uc3RfY2Fz
dDxGU19CWVRFKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBGU19CWVRFKj4oYnVmZmVyLT5kYXRh
KCkpKSwgMCwgTUFYX0ZPTlRfTkFNRV9MRU4sIG5hbWUpICE9IFNVQ0NFU1MpCisgICAgaWYgKEZT
X2xvYWRfZm9udChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OmdldElUeXBlKCksIDAs
IGNvbnN0X2Nhc3Q8RlNfQllURSo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRlNfQllURSo+KGJ1
ZmZlci5kYXRhKCkpKSwgMCwgTUFYX0ZPTlRfTkFNRV9MRU4sIG5hbWUpICE9IFNVQ0NFU1MpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YT4obmFtZSwgYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAppbmRleCBmN2EwNTVhNWM4YzUzNTIyNzA0Y2Y1ZTU1NmM2YWU2OTc2Mjg5N2M2Li4x
NTE0NTI2YzJmOGMxMzAxNzM4OGRmNjIwNjM5NDZmMjYwMGM0M2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0
cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKTsKIHB1YmxpYzoKLSAgICBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhKEZUX0ZhY2UsIFNoYXJlZEJ1ZmZlciopOworICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
RlRfRmFjZSwgU2hhcmVkQnVmZmVyJik7CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
ICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBSZWd1bGFyV2lkdGgsIEZvbnRSZW5kZXJpbmdNb2RlID0gTm9ybWFsUmVuZGVyaW5n
TW9kZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CkBA
IC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgY2Fpcm9fZm9udF9mYWNlX3QqIG1fZm9udEZh
Y2U7CiB9OwogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRl
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqKTsKK3N0ZDo6dW5pcXVlX3B0cjxG
b250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJl
ZEJ1ZmZlciYpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhRnJlZVR5cGUuY3BwCmluZGV4IGUxMzlhYTU2NmQ4MDU5MjFhMDZlNWFiOTMxZDBlZDg2ZTM2
ZWFkYTQuLmYwMGM5MDNjMTA0MzY0N2FiY2IwMzMwMzk1ZDUxZDQ4ODA4YjlmOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtMjQs
NyArMjQsNiBAQAogCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIldPRkZGaWxlRm9ybWF0LmgiCiAjaW5jbHVkZSA8Y2Fp
cm8tZnQuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogCkBAIC0zNSwxNSArMzQsMTUgQEAgc3RhdGlj
IHZvaWQgcmVsZWFzZUN1c3RvbUZvbnREYXRhKHZvaWQqIGRhdGEpCiAgICAgc3RhdGljX2Nhc3Q8
U2hhcmVkQnVmZmVyKj4oZGF0YSktPmRlcmVmKCk7CiB9CiAKLUZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoRlRfRmFjZSBmcmVlVHlwZUZhY2UsIFNoYXJlZEJ1
ZmZlciogYnVmZmVyKQorRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShGVF9GYWNlIGZyZWVUeXBlRmFjZSwgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgOiBt
X2ZyZWVUeXBlRmFjZShmcmVlVHlwZUZhY2UpCiAgICAgLCBtX2ZvbnRGYWNlKGNhaXJvX2Z0X2Zv
bnRfZmFjZV9jcmVhdGVfZm9yX2Z0X2ZhY2UoZnJlZVR5cGVGYWNlLCAwKSkKIHsKICAgICAvLyBG
SVhNRSBTaG91bGQgd2UgYmUgc2V0dGluZyBzb21lIGhpbnRpbmcgb3B0aW9ucyBoZXJlPwogCi0g
ICAgYnVmZmVyLT5yZWYoKTsgLy8gVGhpcyBpcyBiYWxhbmNlZCBieSB0aGUgYnVmZmVyLT5kZXJl
ZigpIGluIHJlbGVhc2VDdXN0b21Gb250RGF0YS4KKyAgICBidWZmZXIucmVmKCk7IC8vIFRoaXMg
aXMgYmFsYW5jZWQgYnkgdGhlIGJ1ZmZlci0+ZGVyZWYoKSBpbiByZWxlYXNlQ3VzdG9tRm9udERh
dGEuCiAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7Ci0gICAgY2Fp
cm9fZm9udF9mYWNlX3NldF91c2VyX2RhdGEobV9mb250RmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVy
LAorICAgIGNhaXJvX2ZvbnRfZmFjZV9zZXRfdXNlcl9kYXRhKG1fZm9udEZhY2UsICZidWZmZXJL
ZXksICZidWZmZXIsCiAgICAgICAgICBzdGF0aWNfY2FzdDxjYWlyb19kZXN0cm95X2Z1bmNfdD4o
cmVsZWFzZUN1c3RvbUZvbnREYXRhKSk7CiAKICAgICAvLyBDYWlybyBkb2Vzbid0IGRvIEZyZWVU
eXBlIHJlZmVyZW5jZSBjb3VudGluZywgc28gd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3aGVuCkBA
IC02NCwyMCArNjMsOCBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoaW50IHNpemUsIGJvb2wgYm9sZCwgYgogICAgIHJldHVybiBGb250
UGxhdGZvcm1EYXRhKG1fZm9udEZhY2UsIHNpemUsIGJvbGQsIGl0YWxpYyk7CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZv
cm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCiB7Ci0gICAgQVNTRVJUX0FSRyhidWZmZXIsIGJ1ZmZlcik7Ci0KLSAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBzZm50QnVmZmVyOwotICAgIGlmIChpc1dPRkYoYnVmZmVyKSkgewotICAg
ICAgICBWZWN0b3I8Y2hhcj4gc2ZudDsKLSAgICAgICAgaWYgKCFjb252ZXJ0V09GRlRvU2ZudChi
dWZmZXIsIHNmbnQpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAgc2Zu
dEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3Ioc2ZudCk7Ci0gICAgICAgIGJ1ZmZl
ciA9IHNmbnRCdWZmZXIuZ2V0KCk7Ci0gICAgfQotCiAgICAgc3RhdGljIEZUX0xpYnJhcnkgbGli
cmFyeTsKICAgICBpZiAoIWxpYnJhcnkgJiYgRlRfSW5pdF9GcmVlVHlwZSgmbGlicmFyeSkpIHsK
ICAgICAgICAgbGlicmFyeSA9IG51bGxwdHI7CkBAIC04NSw3ICs3Miw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRh
KFNoYXJlZEJ1ZmZlCiAgICAgfQogCiAgICAgRlRfRmFjZSBmcmVlVHlwZUZhY2U7Ci0gICAgaWYg
KEZUX05ld19NZW1vcnlfRmFjZShsaWJyYXJ5LCByZWludGVycHJldF9jYXN0PGNvbnN0IEZUX0J5
dGUqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+c2l6ZSgpLCAwLCAmZnJlZVR5cGVGYWNlKSkK
KyAgICBpZiAoRlRfTmV3X01lbW9yeV9GYWNlKGxpYnJhcnksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgRlRfQnl0ZSo+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIuc2l6ZSgpLCAwLCAmZnJlZVR5cGVG
YWNlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZnJlZVR5cGVGYWNlLCBidWZmZXIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IDdiMWY4OThiYjE3MTI0YzM4YTg0MzM0ZDQ0
YTc5OGU1Y2ZiYmU3ZTcuLmZhMjM1NTdjZmY2NTZkMDA4OTc0NDkzNDg1ZTViM2FhYTk2M2JjNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTIyLDkgKzIyLDcgQEAKICNpbmNs
dWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKICNpbmNsdWRlICJGb250UGxhdGZvcm1E
YXRhLmgiCi0jaW5jbHVkZSAiT3BlblR5cGVTYW5pdGl6ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKLSNpbmNsdWRlICJXT0ZGRmlsZUZvcm1hdC5oIgogI2luY2x1ZGUgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zOCwzMSArMzYsMTEgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjpmb250UGxhdGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGIKICAgICByZXR1cm4g
Rm9udFBsYXRmb3JtRGF0YShtX2NnRm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmll
bnRhdGlvbiwgd2lkdGhWYXJpYW50KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBi
dWZmZXIpCitzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBBU1NFUlRf
QVJHKGJ1ZmZlciwgYnVmZmVyKTsKLQotI2lmIFVTRShPUEVOVFlQRV9TQU5JVElaRVIpCi0gICAg
T3BlblR5cGVTYW5pdGl6ZXIgc2FuaXRpemVyKGJ1ZmZlcik7Ci0gICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gdHJhbnNjb2RlQnVmZmVyID0gc2FuaXRpemVyLnNhbml0aXplKCk7Ci0gICAgaWYgKCF0
cmFuc2NvZGVCdWZmZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOyAvLyB2YWxpZGF0aW9uIGZh
aWxlZC4KLSAgICBidWZmZXIgPSB0cmFuc2NvZGVCdWZmZXIuZ2V0KCk7Ci0jZWxzZQotICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IHNmbnRCdWZmZXI7Ci0gICAgaWYgKGlzV09GRihidWZmZXIpKSB7
Ci0gICAgICAgIFZlY3RvcjxjaGFyPiBzZm50OwotICAgICAgICBpZiAoIWNvbnZlcnRXT0ZGVG9T
Zm50KGJ1ZmZlciwgc2ZudCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgICAg
ICBzZm50QnVmZmVyID0gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihzZm50KTsKLSAgICAgICAg
YnVmZmVyID0gc2ZudEJ1ZmZlci5nZXQoKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIEFUU0ZvbnRD
b250YWluZXJSZWYgY29udGFpbmVyUmVmID0gMDsKIAotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+
IGJ1ZmZlckRhdGEgPSBidWZmZXItPmNyZWF0ZUNGRGF0YSgpOworICAgIFJldGFpblB0cjxDRkRh
dGFSZWY+IGJ1ZmZlckRhdGEgPSBidWZmZXIuY3JlYXRlQ0ZEYXRhKCk7CiAgICAgUmV0YWluUHRy
PENHRGF0YVByb3ZpZGVyUmVmPiBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVy
Q3JlYXRlV2l0aENGRGF0YShidWZmZXJEYXRhLmdldCgpKSk7CiAKICAgICBSZXRhaW5QdHI8Q0dG
b250UmVmPiBjZ0ZvbnRSZWYgPSBhZG9wdENGKENHRm9udENyZWF0ZVdpdGhEYXRhUHJvdmlkZXIo
ZGF0YVByb3ZpZGVyLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAppbmRleCBjODdj
Y2Q4OTkwYjU5ZjZiMWE2YjM2OTdiYTY0YTNkZmQxMzYzYmE2Li5hMDc2NjE2MTc5OTlhNjQyMjli
YzdmMGZjNWUyNTBhMmM4N2Y5NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogICAgIFJldGFpblB0cjxDR0ZvbnRSZWY+IG1fY2dGb250Owog
fTsKIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CitzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZm
ZXImKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggNDZmMDBmYmFj
MWMwOTUxYTViMGU4ZDcxZTZjN2U0YzRhZWRlNTk0ZC4uMzlkMTEyMmZhMTQ4ZWYyYTVhNmExMWU5
ZTUzNWI4YTZkOTAzYmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtMjQs
NyArMjQsNiBAQAogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJPcGVu
VHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIldP
RkZGaWxlRm9ybWF0LmgiCiAjaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlv
blNlcnZpY2VzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTgxLDIzICs4MCwx
MSBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZVVuaXF1ZUZvbnROYW1lKCkKICAgICByZXR1cm4gZm9u
dE5hbWU7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQorc3RkOjp1bmlx
dWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7Ci0gICAgQVNTRVJUX0FSRyhidWZmZXIsIGJ1ZmZl
cik7Ci0KLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzZm50QnVmZmVyOwotICAgIGlmIChpc1dP
RkYoYnVmZmVyKSkgewotICAgICAgICBWZWN0b3I8Y2hhcj4gc2ZudDsKLSAgICAgICAgaWYgKCFj
b252ZXJ0V09GRlRvU2ZudChidWZmZXIsIHNmbnQpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KLSAgICAgICAgc2ZudEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3Ioc2Zu
dCk7Ci0gICAgICAgIGJ1ZmZlciA9IHNmbnRCdWZmZXIuZ2V0KCk7Ci0gICAgfQotCiAgICAgU3Ry
aW5nIGZvbnROYW1lID0gY3JlYXRlVW5pcXVlRm9udE5hbWUoKTsKICAgICBIQU5ETEUgZm9udFJl
ZmVyZW5jZTsKLSAgICBmb250UmVmZXJlbmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250KCpidWZm
ZXIsIGZvbnROYW1lKTsKKyAgICBmb250UmVmZXJlbmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250
KGJ1ZmZlciwgZm9udE5hbWUpOwogICAgIGlmICghZm9udFJlZmVyZW5jZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udEN1c3RvbVBsYXRm
b3JtRGF0YT4oZm9udFJlZmVyZW5jZSwgZm9udE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKaW5kZXggMjI4MDk0OTA4ODMzMWE1ODRkZjlhNGRkYmFmOTc5Yzc0NjUxNGYyZS4uYTI2ZjFi
NTAwZDA1YzJkZTkwZGJlMGM0YTUxMzNjMDUyZTIzOGJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbV9uYW1lOwogfTsK
IAotc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKik7CitzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIm
KTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCmluZGV4IGZm
OGQ0Mzk0MGE3MDk2NzgxZWI3ZmFlZGM3ZGJlMGU4ZWNmNzgyYjkuLjEzYWE0MWRhNTY3YjhlMWE2
MjFmNzhlNzlkMDBiZGYwOTUyNWI1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
Q2Fpcm8uY3BwCkBAIC04MCwxMiArODAsMTAgQEAgc3RhdGljIFN0cmluZyBjcmVhdGVVbmlxdWVG
b250TmFtZSgpCiAgICAgcmV0dXJuIGZvbnROYW1lOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRC
dWZmZXIqIGJ1ZmZlcikKK3N0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotICAg
IEFTU0VSVF9BUkcoYnVmZmVyLCBidWZmZXIpOwotCiAgICAgU3RyaW5nIGZvbnROYW1lID0gY3Jl
YXRlVW5pcXVlRm9udE5hbWUoKTsKLSAgICBIQU5ETEUgZm9udFJlZmVyZW5jZSA9IHJlbmFtZUFu
ZEFjdGl2YXRlRm9udCgqYnVmZmVyLCBmb250TmFtZSk7CisgICAgSEFORExFIGZvbnRSZWZlcmVu
Y2UgPSByZW5hbWVBbmRBY3RpdmF0ZUZvbnQoYnVmZmVyLCBmb250TmFtZSk7CiAKICAgICBpZiAo
IWZvbnRSZWZlcmVuY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAppbmRleCBmYjIxYjIxN2FlZTEzMTA1Y2QyMDY1MmI3ODBkMzA1ZTM2
Nzg3YjcwLi40Yjk0OGY4MGFlY2I3NmY5ZDFjOTlkMzBjMTY5YjJhOGRkYmEyMzI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtNjksMTQgKzY5LDEyIEBAIHN0YXRpYyBT
dHJpbmcgY3JlYXRlVW5pcXVlRm9udE5hbWUoKQogICAgIHJldHVybiBmb250TmFtZS5yZXBsYWNl
KCcvJywgJ18nKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+
IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoY29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIp
CitzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBBU1NFUlRfQVJHKGJ1
ZmZlciwgYnVmZmVyKTsKLQogICAgIFN0cmluZyBmb250TmFtZSA9IGNyZWF0ZVVuaXF1ZUZvbnRO
YW1lKCk7CiAKICAgICBWZWN0b3I8Y2hhcj4gcmV3cml0dGVuRm9udERhdGE7Ci0gICAgaWYgKCFy
ZW5hbWVGb250KCpidWZmZXIsIGZvbnROYW1lLCByZXdyaXR0ZW5Gb250RGF0YSkpCisgICAgaWYg
KCFyZW5hbWVGb250KGJ1ZmZlciwgZm9udE5hbWUsIHJld3JpdHRlbkZvbnREYXRhKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBsb2NhbEJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IocmV3cml0dGVuRm9udERhdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IDg0ZDVkNzM1ZTQxMzgwNzE0M2FlYjJjNzcyNzM1
NWE1MDQwZDllZTAuLjQ0MmQ3NDI3ZWQ3MjBhYWEyMGE3Y2IxNmQzZWFhYWJjMGU4NTU5M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgIH07CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShjb25zdCBTaGFyZWRCdWZmZXIqKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIm
KTsKICAgICB2b2lkIHNldEN1c3RvbUZvbnRDYWNoZShDdXN0b21Gb250Q2FjaGUqKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>