<?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>209591</bug_id>
          
          <creation_ts>2020-03-26 03:47:39 -0700</creation_ts>
          <short_desc>[HarfBuzz] Not all CSS font features are applied</short_desc>
          <delta_ts>2020-03-30 02:12:16 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206885</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>209593</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634264</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-26 03:47:39 -0700</bug_when>
    <thetext>We need to implement  https://www.w3.org/TR/css-fonts-3/#feature-precedence</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634266</commentid>
    <comment_count>1</comment_count>
      <attachid>394590</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-26 03:53:46 -0700</bug_when>
    <thetext>Created attachment 394590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634277</commentid>
    <comment_count>2</comment_count>
      <attachid>394590</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-03-26 04:54:33 -0700</bug_when>
    <thetext>Comment on attachment 394590
Patch

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

Logic looks good. There is one thing that I find hard to believe that it would
be working, please check below ⬇️

&gt; Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:570
&gt; +                char buffer[5];

If it was me, I would probably have done instead:

  const auto&amp; tag = fontFaceFeature.tag();
  const char buffer[] = { tag[0], tag[1], tag[2], tag[3], &apos;\0&apos; };
  FcPatternAddString(resultPattern.get(), FC_FONT_FEATURES, reinterpret_cast&lt;const FcChar*&gt;(buffer));

But in the end both are equivalent, so no big deal 😉️

&gt; Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:577
&gt; +                FcPatternAddString(resultPattern.get(), FC_FONT_FEATURES, reinterpret_cast&lt;const FcChar8*&gt;(&amp;buffer));

Due to array-to-pointer decay with “&amp;buffer” jere you are passing a “char**”
so I do not know how this can possibly work correctly. We need to plainly
pass “buffer” here.

Using “FcPatternAddString(..., buffer)” might render the cast as unneeded,
too (I don&apos;t remember whether “FcChar8” is exactly the same as “char”, though).

&gt; Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:94
&gt; +            FcPatternAddString(pattern.get(), FC_FONT_FEATURES, reinterpret_cast&lt;const FcChar8*&gt;(&amp;buffer));

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634281</commentid>
    <comment_count>3</comment_count>
      <attachid>394596</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-26 05:40:11 -0700</bug_when>
    <thetext>Created attachment 394596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635420</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-03-30 02:11:22 -0700</bug_when>
    <thetext>Committed r259188: &lt;https://trac.webkit.org/changeset/259188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635421</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 02:12:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61046669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394590</attachid>
            <date>2020-03-26 03:53:46 -0700</date>
            <delta_ts>2020-03-26 05:40:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-hb-font-features.diff</filename>
            <type>text/plain</type>
            <size>27741</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhN2YyNmU4ODlmOC4uNWUwMDdmNGU0ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wMy0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0hhcmZCdXp6XSBOb3QgYWxsIENTUyBmb250IGZlYXR1cmVzIGFyZSBhcHBsaWVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk1OTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
ZXhwZWN0YXRpb25zIGZvciB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAzLTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgYmVjdS5vcmc6IFBsYWNlaG9sZGVyIHRleHQgIlNlYXJjaCIgaXMg
Y3V0IG9mZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBh
YWEyMzA4NmNjOS4uZDUyYzE5MDRhZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC04NjQsNyArODY0LDYgQEAgd2Via2l0Lm9yZy9iLzE1MjYxOCBmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvbmF2aWdhdG9yLWxhbmd1YWdlL24K
IAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHNtYWxsLWNhcHMgc3ludGhlc2lzLgogd2Vi
a2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1hbGwuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1mb250LWZhY2Ut
b3ZlcnJpZGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1MjYyMCBj
c3MzL2ZvbnQtdmFyaWFudC1wZXRpdGUtY2Fwcy1zeW50aGVzaXMtY292ZXJhZ2UuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1w
ZXRpdGUtY2Fwcy1zeW50aGVzaXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFn
ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0zODU3LDcgKzM4NTYsNiBAQCB3ZWJraXQu
b3JnL2IvMTY4MTY0IGZhc3QvcGljdHVyZS92aWV3cG9ydC1yZXNpemUuaHRtbCBbIEZhaWx1cmUg
XQogCiB3ZWJraXQub3JnL2IvMTY4MTkxIGZhc3QvdGV4dC9zeXN0ZW0tZm9udC13ZWlnaHQuaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2ODE5MSBmYXN0L3RleHQvdHJhay1vcHRpbWl6
ZUxlZ2liaWxpdHkuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE2ODE5MSBjc3MzL2Zv
bnQtc3ludGhlc2lzLXNtYWxsLWNhcHMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJr
aXQub3JnL2IvMTY4MTkyIGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vz
c2liaWxpdHkuaHRtbCBbIFRpbWVvdXQgRmFpbHVyZSBDcmFzaCBdCiAKQEAgLTQ0ODcsMzcgKzQ0
ODUsNiBAQCB3ZWJraXQub3JnL2IvMjA2MjY0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYQogd2Via2l0Lm9yZy9iLzIwNjY5MiBmYXN0
L2NhbnZhcy9jYW52YXMtZmlsbFBhdGgtc2hhZG93Lmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0
Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dHMvZ2VuZXJpYy1mYW1pbHkta2V5d29yZHMtMDAxLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1kZXNjcmlwdG9yLTAxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1hbHRlcm5hdGVzLTAyLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTAyLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA0Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA2Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA3Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTAyLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTAzLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFu
LTA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0
LWFzaWFuLTA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFu
dC1lYXN0LWFzaWFuLTA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQt
dmFyaWFudC1lYXN0LWFzaWFuLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTEwLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMtMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0dXJlcy0wNC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbGlnYXR1cmVzLTA1Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMt
MDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0
dXJlcy0xMC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQt
bGlnYXR1cmVzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFu
dC1udW1lcmljLTAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4
ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFy
aWFudC1udW1lcmljLTAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQt
dmFyaWFudC1udW1lcmljLTA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2Zv
bnQtdmFyaWFudC1udW1lcmljLTA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtdmFyaWFudC1udW1lcmljLTA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZv
bnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1wb3NpdGlvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9xdW90ZWQtZ2VuZXJpYy1pZ25vcmVkLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3VzZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYjJjMTM0ZDUyNS4uOTliYzUw
ZjU3OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC02
MDEsMzcgKzYwMSw2IEBAIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQtCiB3ZWJraXQub3JnL2IvMjA2
ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9zdGFuZGFy
ZC1mb250LWZhbWlseS03Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQtZmFt
aWx5Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2dlbmVyaWMtZmFtaWx5LWtleXdvcmRzLTAwMS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LWZlYXR1cmUtc2V0dGluZ3MtZGVzY3JpcHRv
ci0wMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtYWx0
ZXJuYXRlcy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtZWFzdC1hc2lhbi0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250
LXZhcmlhbnQtZWFzdC1hc2lhbi0wMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNi5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wOC5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0w
OS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1h
c2lhbi0xMC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQt
bGlnYXR1cmVzLTAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4
ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFy
aWFudC1saWdhdHVyZXMtMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9u
dC12YXJpYW50LWxpZ2F0dXJlcy0wNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
cy9mb250LXZhcmlhbnQtbGlnYXR1cmVzLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMtMTAuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0dXJlcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wMy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNi5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wOC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0w
OS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJp
Yy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtcG9zaXRp
b24uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvcXVvdGVkLWdlbmVyaWMtaWdu
b3JlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgV1BUIGNzcy1mb250cyBmYWlsdXJl
cy9wYXNzZXMgdW5pcXVlIHRvIFdQRQpAQCAtMTkyMyw5ICsxODkyLDcgQEAgQnVnKFdQRSkgY3Nz
My92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmlld3BvcnQtcGVyY2VudGFnZS12ZXJ0aWNh
bC1hbGlnbi5odG0KIAogQnVnKFdQRSkgY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtZm9udC1m
YWNlLXJlbmRlcmluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBCdWcoV1BFKSBjc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
QnVnKFdQRSkgY3NzMy9mb250LXN5bnRoZXNpcy1zbWFsbC1jYXBzLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIEJ1ZyhXUEUpIGNzczMvZm9udC12YXJpYW50LWFsbC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi1CdWcoV1BFKSBjc3MzL2ZvbnQtdmFyaWFudC1mb250LWZhY2Utb3ZlcnJpZGUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogQnVnKFdQRSkgY3NzMy9mb250LXZhcmlhbnQtcGV0
aXRlLWNhcHMtc3ludGhlc2lzLWNvdmVyYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIEJ1
ZyhXUEUpIGNzczMvZm9udC12YXJpYW50LXBldGl0ZS1jYXBzLXN5bnRoZXNpcy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiBCdWcoV1BFKSBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5
bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmYwOTdkNDViYjguLjgxM2RiYTQ4MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIw
MjAtMDMtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtIYXJmQnV6el0gTm90IGFsbCBDU1MgZm9udCBmZWF0dXJlcyBhcmUgYXBwbGllZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NTkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IGZvbnQgZmVhdHVyZSBwcmVjZWRlbmNlIGFsZ29yaXRobSBmb3IgSGFyZkJ1enosIGluY2x1ZGlu
ZyBmZWF0dXJlcyBzcGVjaWZpZWQgaW4gZm9udC1mYWNlIHJ1bGUgYW5kCisgICAgICAgIGZvbnQt
dmFyaWFudCBzZXR0aW5ncyB0aGF0IHdlIHdlcmUgaWdub3JpbmcuCisKKyAgICAgICAgNy4yLiBG
ZWF0dXJlIHByZWNlZGVuY2UKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mb250
cy0zLyNmZWF0dXJlLXByZWNlZGVuY2UKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IEFkZCBmb250IGZlYXR1cmVzIHRvIGJlIGVuYW5s
ZWQgdG8gdGhlIGZvbnQgY29uZmlnIHBhdHRlcm4uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRy
b2xsZXJIYXJmQnV6ei5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRGZWF0dXJlU2V0dGluZ3NG
cm9tVmFyaWFudHMpOiBIZWxwZXIgdG8gYWRkIGZvbnQtdmFyaWFudCBzZXR0aW5ncy4KKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGZWF0dXJlcyk6IEltcGxlbWVudCBmb250IGZlYXR1cmUgcHJlY2Vk
ZW5jZSBhbGdvcml0aG0uCisgICAgICAgIChXZWJDb3JlOjpmaW5kU2NyaXB0Rm9yVmVydGljYWxH
bHlwaFN1YnN0aXR1dGlvbik6IFVzZSBIQl9UQUcgZGlyZWZ0bHkuCisgICAgICAgIChXZWJDb3Jl
OjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0
ZXJzKTogUGFzcyBGb250UGxhdGZvcm1EYXRhIHRvIGZvbnRGZWF0dXJlcygpLgorCiAyMDIwLTAz
LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNh
ZmFyaSBqZXRzYW1zIHdpdGggcmVwZWF0ZWQgZHJhd0ltYWdlL2dldEltYWdlRGF0YQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDQ1OTBlNjEzYmZjLi40MWE3NmE5MTc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENh
Y2hlRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtNTAwLDcgKzUwMCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0NvbW1vbmx5VXNlZEdlbmVyaWNGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1p
bHlOYW1lU3RyaW5nKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShm
YW1pbHlOYW1lU3RyaW5nLCAiY3Vyc2l2ZSIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udFBs
YXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0
aWVzKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
Y29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250
RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKQogewogICAg
IC8vIFRoZSBDU1MgZm9udCBtYXRjaGluZyBhbGdvcml0aG0gKGh0dHA6Ly93d3cudzMub3JnL1RS
L2NzczMtZm9udHMvI2ZvbnQtbWF0Y2hpbmctYWxnb3JpdGhtKQogICAgIC8vIHNheXMgdGhhdCB3
ZSBtdXN0IGZpbmQgYW4gZXhhY3QgbWF0Y2ggZm9yIGZvbnQgZmFtaWx5LCBzbGFudCAoaXRhbGlj
IG9yIG9ibGlxdWUgY2FuIGJlIHVzZWQpCkBAIC01NjQsNiArNTY0LDIxIEBAIHN0ZDo6dW5pcXVl
X3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlCiAgICAgYm9vbCBmaXhlZFdpZHRoLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNPYmxpcXVlOwogICAgIGdldEZvbnRQcm9wZXJ0aWVzRnJvbVBhdHRlcm4ocmVzdWx0UGF0dGVy
bi5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmaXhlZFdpZHRoLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlKTsKIAorICAgIGlmIChmb250RmFjZUZlYXR1cmVzKSB7CisgICAgICAgIGZv
ciAoYXV0byYgZm9udEZhY2VGZWF0dXJlIDogKmZvbnRGYWNlRmVhdHVyZXMpIHsKKyAgICAgICAg
ICAgIGlmIChmb250RmFjZUZlYXR1cmUuZW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgY2hh
ciBidWZmZXJbNV07CisgICAgICAgICAgICAgICAgYXV0byYgdGFnID0gZm9udEZhY2VGZWF0dXJl
LnRhZygpOworICAgICAgICAgICAgICAgIGJ1ZmZlclswXSA9IHRhZ1swXTsKKyAgICAgICAgICAg
ICAgICBidWZmZXJbMV0gPSB0YWdbMV07CisgICAgICAgICAgICAgICAgYnVmZmVyWzJdID0gdGFn
WzJdOworICAgICAgICAgICAgICAgIGJ1ZmZlclszXSA9IHRhZ1szXTsKKyAgICAgICAgICAgICAg
ICBidWZmZXJbNF0gPSAnXDAnOworICAgICAgICAgICAgICAgIEZjUGF0dGVybkFkZFN0cmluZyhy
ZXN1bHRQYXR0ZXJuLmdldCgpLCBGQ19GT05UX0ZFQVRVUkVTLCByZWludGVycHJldF9jYXN0PGNv
bnN0IEZjQ2hhcjgqPigmYnVmZmVyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKICAgICBSZWZQdHI8Y2Fpcm9fZm9udF9mYWNlX3Q+IGZvbnRGYWNlID0gYWRvcHRSZWYoY2Fp
cm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfcGF0dGVybihyZXN1bHRQYXR0ZXJuLmdldCgpKSk7
CiAjaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAvLyBDYWlybyBkb2Vzbid0IGhhdmUg
QVBJIHRvIGdldCB0aGUgRlRfRmFjZSBvZiBhbiB1bnNjYWxlZCBmb250LCBzbyB3ZSBuZWVkIHRv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApp
bmRleCAyOTdkMzI5ZGUwNC4uOTQwYzNhN2MxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtNzUsMTIgKzc1LDI2IEBAIHN0YXRp
YyBSZWZQdHI8RmNQYXR0ZXJuPiBkZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMoKQogICAgIHJldHVy
biBhZG9wdFJlZihGY1BhdHRlcm5EdXBsaWNhdGUocGF0dGVybikpOwogfQogCi1Gb250UGxhdGZv
cm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMp
CitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNl
bGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykKIHsKICAgICBhdXRvKiBmcmVlVHlwZUZhY2Ug
PSBzdGF0aWNfY2FzdDxGVF9GYWNlPihjYWlyb19mb250X2ZhY2VfZ2V0X3VzZXJfZGF0YShtX2Zv
bnRGYWNlLmdldCgpLCAmZnJlZVR5cGVGYWNlS2V5KSk7CiAgICAgQVNTRVJUKGZyZWVUeXBlRmFj
ZSk7CiAgICAgUmVmUHRyPEZjUGF0dGVybj4gcGF0dGVybiA9IGRlZmF1bHRGb250Y29uZmlnT3B0
aW9ucygpOwogICAgIEZjUGF0dGVybkFkZFN0cmluZyhwYXR0ZXJuLmdldCgpLCBGQ19GQU1JTFks
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KGZyZWVUeXBlRmFjZS0+ZmFtaWx5X25h
bWUpKTsKKworICAgIGZvciAoYXV0byYgZm9udEZhY2VGZWF0dXJlIDogZm9udEZhY2VGZWF0dXJl
cykgeworICAgICAgICBpZiAoZm9udEZhY2VGZWF0dXJlLmVuYWJsZWQoKSkgeworICAgICAgICAg
ICAgY2hhciBidWZmZXJbNV07CisgICAgICAgICAgICBhdXRvJiB0YWcgPSBmb250RmFjZUZlYXR1
cmUudGFnKCk7CisgICAgICAgICAgICBidWZmZXJbMF0gPSB0YWdbMF07CisgICAgICAgICAgICBi
dWZmZXJbMV0gPSB0YWdbMV07CisgICAgICAgICAgICBidWZmZXJbMl0gPSB0YWdbMl07CisgICAg
ICAgICAgICBidWZmZXJbM10gPSB0YWdbM107CisgICAgICAgICAgICBidWZmZXJbNF0gPSAnXDAn
OworICAgICAgICAgICAgRmNQYXR0ZXJuQWRkU3RyaW5nKHBhdHRlcm4uZ2V0KCksIEZDX0ZPTlRf
RkVBVFVSRVMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KCZidWZmZXIpKTsKKyAg
ICAgICAgfQorICAgIH0KKwogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgYXV0byB2
YXJpYW50cyA9IGJ1aWxkVmFyaWF0aW9uU2V0dGluZ3MoZnJlZVR5cGVGYWNlLCBkZXNjcmlwdGlv
bik7CiAgICAgaWYgKCF2YXJpYW50cy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhh
cmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0Nv
bXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAppbmRleCAyNTdlODlmM2ZhNS4uZjczMTdi
YTFjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6
ei5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJIYlVuaXF1ZVB0ci5oIgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvci5oIgogI2luY2x1ZGUgPGhiLWZ0Lmg+CkBAIC0xNzUsMjggKzE3NiwyMjYgQEAg
Q29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4oaGJf
YnVmZmVyX3QqIGJ1ZmZlciwgY29uc3QKICAgICBtX2luaXRpYWxBZHZhbmNlID0gdG9GbG9hdFNp
emUobV9nbHlwaE9yaWdpbnNbMF0pOwogfQogCi1zdGF0aWMgY29uc3QgaGJfdGFnX3Qgc192ZXJ0
VGFnID0gSEJfVEFHKCd2JywgJ2UnLCAncicsICd0Jyk7Ci1zdGF0aWMgY29uc3QgaGJfdGFnX3Qg
c192cnQyVGFnID0gSEJfVEFHKCd2JywgJ3InLCAndCcsICcyJyk7Ci1zdGF0aWMgY29uc3QgaGJf
dGFnX3Qgc19rZXJuVGFnID0gSEJfVEFHKCdrJywgJ2UnLCAncicsICduJyk7Ci1zdGF0aWMgY29u
c3QgdW5zaWduZWQgc19oYkVuZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPigtMSk7Cit1c2luZyBG
ZWF0dXJlc01hcCA9IEhhc2hNYXA8Rm9udFRhZywgaW50LCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwg
Rm91ckNoYXJhY3RlclRhZ0hhc2hUcmFpdHM+OwogCi1zdGF0aWMgVmVjdG9yPGhiX2ZlYXR1cmVf
dCwgND4gZm9udEZlYXR1cmVzKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBGb250T3JpZW50YXRp
b24gb3JpZW50YXRpb24pCitzdGF0aWMgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3NGcm9tVmFyaWFu
dHMoY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyYgdmFyaWFudFNldHRpbmdzLCBGZWF0dXJlc01h
cCYgZmVhdHVyZXMpCiB7Ci0gICAgVmVjdG9yPGhiX2ZlYXR1cmVfdCwgND4gZmVhdHVyZXM7Cisg
ICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MuY29tbW9uTGlnYXR1cmVzKSB7CisgICAgY2FzZSBG
b250VmFyaWFudExpZ2F0dXJlczo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZv
bnRWYXJpYW50TGlnYXR1cmVzOjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVy
ZVRhZygibGlnYSIpLCAxKTsKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJj
bGlnIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVz
OjpObzoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOwor
ICAgICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHN3aXRjaCAodmFyaWFudFNldHRpbmdzLmRpc2NyZXRpb25h
cnlMaWdhdHVyZXMpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpOb3JtYWw6Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRMaWdhdHVyZXM6OlllczoKKyAgICAg
ICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJkbGlnIiksIDEpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpObzoKKyAgICAgICAgZmVhdHVyZXMu
c2V0KGZvbnRGZWF0dXJlVGFnKCJkbGlnIiksIDApOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5oaXN0b3JpY2FsTGlnYXR1cmVzKSB7CisgICAg
Y2FzZSBGb250VmFyaWFudExpZ2F0dXJlczo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250
RmVhdHVyZVRhZygiaGxpZyIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFy
aWFudExpZ2F0dXJlczo6Tm86CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygi
aGxpZyIpLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50
U2V0dGluZ3MuY29udGV4dHVhbEFsdGVybmF0ZXMpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGln
YXR1cmVzOjpOb3JtYWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRMaWdh
dHVyZXM6OlllczoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJjYWx0Iiks
IDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpObzoK
KyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJjYWx0IiksIDApOworICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5wb3NpdGlvbikg
eworICAgIGNhc2UgRm9udFZhcmlhbnRQb3NpdGlvbjo6Tm9ybWFsOgorICAgICAgICBicmVhazsK
KyAgICBjYXNlIEZvbnRWYXJpYW50UG9zaXRpb246OlN1YnNjcmlwdDoKKyAgICAgICAgZmVhdHVy
ZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJzdWJzIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvbnRWYXJpYW50UG9zaXRpb246OlN1cGVyc2NyaXB0OgorICAgICAgICBmZWF0dXJlcy5z
ZXQoZm9udEZlYXR1cmVUYWcoInN1cHMiKSwgMSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHN3aXRjaCAodmFyaWFudFNldHRpbmdzLmNhcHMpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50
Q2Fwczo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6
QWxsU21hbGw6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiYzJzYyIpLCAx
KTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgY2FzZSBGb250VmFyaWFudENhcHM6OlNtYWxs
OgorICAgICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoInNtY3AiKSwgMSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxQZXRpdGU6CisgICAgICAg
IGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiYzJwYyIpLCAxKTsKKyAgICAgICAgRkFMTFRI
Uk9VR0g7CisgICAgY2FzZSBGb250VmFyaWFudENhcHM6OlBldGl0ZToKKyAgICAgICAgZmVhdHVy
ZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJwY2FwIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvbnRWYXJpYW50Q2Fwczo6VW5pY2FzZToKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRG
ZWF0dXJlVGFnKCJ1bmljIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJp
YW50Q2Fwczo6VGl0bGluZzoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJ0
aXRsIiksIDEpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRT
ZXR0aW5ncy5udW1lcmljRmlndXJlKSB7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNGaWd1
cmU6Ok5vcm1hbDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNG
aWd1cmU6OkxpbmluZ051bWJlcnM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRh
ZygibG51bSIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVy
aWNGaWd1cmU6Ok9sZFN0eWxlTnVtYmVyczoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0
dXJlVGFnKCJvbnVtIiksIDEpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2gg
KHZhcmlhbnRTZXR0aW5ncy5udW1lcmljU3BhY2luZykgeworICAgIGNhc2UgRm9udFZhcmlhbnRO
dW1lcmljU3BhY2luZzo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJp
YW50TnVtZXJpY1NwYWNpbmc6OlByb3BvcnRpb25hbE51bWJlcnM6CisgICAgICAgIGZlYXR1cmVz
LnNldChmb250RmVhdHVyZVRhZygicG51bSIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBGb250VmFyaWFudE51bWVyaWNTcGFjaW5nOjpUYWJ1bGFyTnVtYmVyczoKKyAgICAgICAgZmVh
dHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJ0bnVtIiksIDEpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5udW1lcmljRnJhY3Rpb24pIHsKKyAg
ICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY0ZyYWN0aW9uOjpOb3JtYWw6CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRm9udFZhcmlhbnROdW1lcmljRnJhY3Rpb246OkRpYWdvbmFsRnJhY3Rpb25z
OgorICAgICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImZyYWMiKSwgMSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnROdW1lcmljRnJhY3Rpb246OlN0YWNrZWRG
cmFjdGlvbnM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiYWZyYyIpLCAx
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3Mu
bnVtZXJpY09yZGluYWwpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY09yZGluYWw6Ok5v
cm1hbDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNPcmRpbmFs
OjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygib3JkbiIpLCAxKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MubnVt
ZXJpY1NsYXNoZWRaZXJvKSB7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNTbGFzaGVkWmVy
bzo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY1Ns
YXNoZWRaZXJvOjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiemVy
byIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0
dGluZ3MuYWx0ZXJuYXRlcykgeworICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpOb3Jt
YWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpIaXN0
b3JpY2FsRm9ybXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiaGlzdCIp
LCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgaWYgKG9yaWVudGF0aW9uID09IEZv
bnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKLSAgICAgICAgZmVhdHVyZXMuYXBwZW5kKHsgc192
ZXJ0VGFnLCAxLCAwLCBzX2hiRW5kIH0pOwotICAgICAgICBmZWF0dXJlcy5hcHBlbmQoeyBzX3Zy
dDJUYWcsIDEsIDAsIHNfaGJFbmQgfSk7CisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MuZWFz
dEFzaWFuVmFyaWFudCkgeworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJpYW50OjpO
b3JtYWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJp
YW50OjpKaXM3ODoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJqcDc4Iiks
IDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFu
dDo6SmlzODM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygianA4MyIpLCAx
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhblZhcmlhbnQ6
OkppczkwOgorICAgICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImpwOTAiKSwgMSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJpYW50OjpK
aXMwNDoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJqcDA0IiksIDEpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFudDo6U2lt
cGxpZmllZDoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJzbXBsIiksIDEp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFudDo6
VHJhZGl0aW9uYWw6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygidHJhZCIp
LCAxKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaGJfZmVhdHVyZV90IGtlcm5pbmcg
PSB7IHNfa2VyblRhZywgMCwgMCwgc19oYkVuZCB9OwotICAgIGlmIChmb250LmVuYWJsZUtlcm5p
bmcoKSkKLSAgICAgICAga2VybmluZy52YWx1ZSA9IDE7Ci0gICAgZmVhdHVyZXMuYXBwZW5kKFdU
Rk1vdmUoa2VybmluZykpOworICAgIHN3aXRjaCAodmFyaWFudFNldHRpbmdzLmVhc3RBc2lhbldp
ZHRoKSB7CisgICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhbldpZHRoOjpOb3JtYWw6CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5XaWR0aDo6RnVsbDoKKyAg
ICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJmd2lkIiksIDEpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuV2lkdGg6OlByb3BvcnRpb25hbDoK
KyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJwd2lkIiksIDEpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAKLSAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmb250LmZvbnREZXNj
cmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpKSB7Ci0gICAgICAgIGF1dG8mIHRhZyA9IGZlYXR1
cmUudGFnKCk7Ci0gICAgICAgIGZlYXR1cmVzLmFwcGVuZCh7IEhCX1RBRyh0YWdbMF0sIHRhZ1sx
XSwgdGFnWzJdLCB0YWdbM10pLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZmVhdHVyZS52YWx1ZSgp
KSwgMCwgc19oYkVuZCB9KTsKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5lYXN0QXNpYW5S
dWJ5KSB7CisgICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhblJ1Ynk6Ok5vcm1hbDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhblJ1Ynk6OlllczoKKyAgICAg
ICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJydWJ5IiksIDEpOworICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3N0YXRpYyBWZWN0b3I8aGJfZmVhdHVyZV90LCA0PiBmb250RmVhdHVy
ZXMoY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZvbnRQ
bGF0Zm9ybURhdGEpCit7CisgICAgRmVhdHVyZXNNYXAgZmVhdHVyZXNUb0JlQXBwbGllZDsKKwor
ICAgIC8vIDcuMi4gRmVhdHVyZSBwcmVjZWRlbmNlCisgICAgLy8gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL2Nzcy1mb250cy0zLyNmZWF0dXJlLXByZWNlZGVuY2UKKworICAgIC8vIDEuIEZvbnQgZmVh
dHVyZXMgZW5hYmxlZCBieSBkZWZhdWx0LCBpbmNsdWRpbmcgZmVhdHVyZXMgcmVxdWlyZWQgZm9y
IGEgZ2l2ZW4gc2NyaXB0LgorCisgICAgLy8gMi4gSWYgdGhlIGZvbnQgaXMgZGVmaW5lZCB2aWEg
YW4gQGZvbnQtZmFjZSBydWxlLCB0aGUgZm9udCBmZWF0dXJlcyBpbXBsaWVkIGJ5IHRoZQorICAg
IC8vICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBkZXNjcmlwdG9yIGluIHRoZSBAZm9udC1mYWNl
IHJ1bGUuCisgICAgYXV0byogZmNQYXR0ZXJuID0gZm9udFBsYXRmb3JtRGF0YS5mY1BhdHRlcm4o
KTsKKyAgICBGY0NoYXI4KiBmY0ZvbnRGZWF0dXJlOworICAgIGZvciAoaW50IGkgPSAwOyBGY1Bh
dHRlcm5HZXRTdHJpbmcoZmNQYXR0ZXJuLCBGQ19GT05UX0ZFQVRVUkVTLCBpLCAmZmNGb250RmVh
dHVyZSkgPT0gRmNSZXN1bHRNYXRjaDsgKytpKQorICAgICAgICBmZWF0dXJlc1RvQmVBcHBsaWVk
LnNldChmb250RmVhdHVyZVRhZyhyZWludGVycHJldF9jYXN0PGNoYXIqPihmY0ZvbnRGZWF0dXJl
KSksIDEpOworCisgICAgLy8gMy4gRm9udCBmZWF0dXJlcyBpbXBsaWVkIGJ5IHRoZSB2YWx1ZSBv
ZiB0aGUg4oCYZm9udC12YXJpYW504oCZIHByb3BlcnR5LCB0aGUgcmVsYXRlZCDigJhmb250LXZh
cmlhbnTigJkKKyAgICAvLyAgICBzdWJwcm9wZXJ0aWVzIGFuZCBhbnkgb3RoZXIgQ1NTIHByb3Bl
cnR5IHRoYXQgdXNlcyBPcGVuVHlwZSBmZWF0dXJlcy4KKyAgICBzZXRGZWF0dXJlU2V0dGluZ3NG
cm9tVmFyaWFudHMoZm9udC5mb250RGVzY3JpcHRpb24oKS52YXJpYW50U2V0dGluZ3MoKSwgZmVh
dHVyZXNUb0JlQXBwbGllZCk7CisgICAgZmVhdHVyZXNUb0JlQXBwbGllZC5zZXQoZm9udEZlYXR1
cmVUYWcoImtlcm4iKSwgZm9udC5lbmFibGVLZXJuaW5nKCkgPyAxIDogMCk7CisKKyAgICAvLyA0
LiBGZWF0dXJlIHNldHRpbmdzIGRldGVybWluZWQgYnkgcHJvcGVydGllcyBvdGhlciB0aGFuIOKA
mGZvbnQtdmFyaWFudOKAmSBvciDigJhmb250LWZlYXR1cmUtc2V0dGluZ3PigJkuCisgICAgaWYg
KGZvbnRQbGF0Zm9ybURhdGEub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRp
Y2FsKSB7CisgICAgICAgIGZlYXR1cmVzVG9CZUFwcGxpZWQuc2V0KGZvbnRGZWF0dXJlVGFnKCJ2
ZXJ0IiksIDEpOworICAgICAgICBmZWF0dXJlc1RvQmVBcHBsaWVkLnNldChmb250RmVhdHVyZVRh
ZygidnJ0MiIpLCAxKTsKKyAgICB9CisKKyAgICAvLyA1LiBGb250IGZlYXR1cmVzIGltcGxpZWQg
YnkgdGhlIHZhbHVlIG9mIOKAmGZvbnQtZmVhdHVyZS1zZXR0aW5nc+KAmSBwcm9wZXJ0eS4KKyAg
ICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0
aW5ncygpKQorICAgICAgICBmZWF0dXJlc1RvQmVBcHBsaWVkLnNldChmZWF0dXJlLnRhZygpLCBm
ZWF0dXJlLnZhbHVlKCkpOworCisgICAgVmVjdG9yPGhiX2ZlYXR1cmVfdCwgND4gZmVhdHVyZXM7
CisgICAgZmVhdHVyZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmZWF0dXJlc1RvQmVBcHBsaWVk
LnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBpdGVyIDogZmVhdHVyZXNUb0JlQXBwbGllZCkgewor
ICAgICAgICBhdXRvJiB0YWcgPSBpdGVyLmtleTsKKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKHsg
SEJfVEFHKHRhZ1swXSwgdGFnWzFdLCB0YWdbMl0sIHRhZ1szXSksIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihpdGVyLnZhbHVlKSwgMCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKSB9KTsKICAgICB9
CiAKICAgICByZXR1cm4gZmVhdHVyZXM7CkBAIC0yNzYsOCArNDc1LDggQEAgc3RhdGljIGhiX3Nj
cmlwdF90IGZpbmRTY3JpcHRGb3JWZXJ0aWNhbEdseXBoU3Vic3RpdHV0aW9uKGhiX2ZhY2VfdCog
ZmFjZSkKICAgICAgICAgaGJfb3RfbGF5b3V0X3NjcmlwdF9nZXRfbGFuZ3VhZ2VfdGFncyhmYWNl
LCBIQl9PVF9UQUdfR1NVQiwgc2NyaXB0SW5kZXgsIDAsICZsYW5ndWFnZUNvdW50LCBsYW5ndWFn
ZVRhZ3MpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGxhbmd1YWdlSW5kZXggPSAwOyBsYW5ndWFn
ZUluZGV4IDwgbGFuZ3VhZ2VDb3VudDsgKytsYW5ndWFnZUluZGV4KSB7CiAgICAgICAgICAgICB1
bnNpZ25lZCBmZWF0dXJlSW5kZXg7Ci0gICAgICAgICAgICBpZiAoaGJfb3RfbGF5b3V0X2xhbmd1
YWdlX2ZpbmRfZmVhdHVyZShmYWNlLCBIQl9PVF9UQUdfR1NVQiwgc2NyaXB0SW5kZXgsIGxhbmd1
YWdlSW5kZXgsIHNfdmVydFRhZywgJmZlYXR1cmVJbmRleCkKLSAgICAgICAgICAgICAgICB8fCBo
Yl9vdF9sYXlvdXRfbGFuZ3VhZ2VfZmluZF9mZWF0dXJlKGZhY2UsIEhCX09UX1RBR19HU1VCLCBz
Y3JpcHRJbmRleCwgbGFuZ3VhZ2VJbmRleCwgc192cnQyVGFnLCAmZmVhdHVyZUluZGV4KSkKKyAg
ICAgICAgICAgIGlmIChoYl9vdF9sYXlvdXRfbGFuZ3VhZ2VfZmluZF9mZWF0dXJlKGZhY2UsIEhC
X09UX1RBR19HU1VCLCBzY3JpcHRJbmRleCwgbGFuZ3VhZ2VJbmRleCwgSEJfVEFHKCd2JywgJ2Un
LCAncicsICd0JyksICZmZWF0dXJlSW5kZXgpCisgICAgICAgICAgICAgICAgfHwgaGJfb3RfbGF5
b3V0X2xhbmd1YWdlX2ZpbmRfZmVhdHVyZShmYWNlLCBIQl9PVF9UQUdfR1NVQiwgc2NyaXB0SW5k
ZXgsIGxhbmd1YWdlSW5kZXgsIEhCX1RBRygndicsICdyJywgJ3QnLCAnMicpLCAmZmVhdHVyZUlu
ZGV4KSkKICAgICAgICAgICAgICAgICByZXR1cm4gaGJfb3RfdGFnX3RvX3NjcmlwdChzY3JpcHRU
YWdzW3NjcmlwdEluZGV4XSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNDEsNyArNTQwLDcgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGEKIAogICAgIGhiX2ZvbnRfbWFrZV9pbW11dGFibGUoaGFy
ZkJ1enpGb250LmdldCgpKTsKIAotICAgIGF1dG8gZmVhdHVyZXMgPSBmb250RmVhdHVyZXMobV9m
b250LCBmb250UGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCkpOworICAgIGF1dG8gZmVhdHVyZXMg
PSBmb250RmVhdHVyZXMobV9mb250LCBmb250UGxhdGZvcm1EYXRhKTsKICAgICBIYlVuaXF1ZVB0
cjxoYl9idWZmZXJfdD4gYnVmZmVyKGhiX2J1ZmZlcl9jcmVhdGUoKSk7CiAgICAgaWYgKGZvbnRQ
bGF0Zm9ybURhdGEub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKQog
ICAgICAgICBoYl9idWZmZXJfc2V0X3NjcmlwdChidWZmZXIuZ2V0KCksIGZpbmRTY3JpcHRGb3JW
ZXJ0aWNhbEdseXBoU3Vic3RpdHV0aW9uKGZhY2UuZ2V0KCkpKTsK
</data>
<flag name="review"
          id="410016"
          type_id="1"
          status="-"
          setter="aperez"
    />
    <flag name="commit-queue"
          id="410022"
          type_id="3"
          status="-"
          setter="aperez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394596</attachid>
            <date>2020-03-26 05:40:11 -0700</date>
            <delta_ts>2020-03-26 06:57:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-hb-font-features.diff</filename>
            <type>text/plain</type>
            <size>27501</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhN2YyNmU4ODlmOC4uNWUwMDdmNGU0ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wMy0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0hhcmZCdXp6XSBOb3QgYWxsIENTUyBmb250IGZlYXR1cmVzIGFyZSBhcHBsaWVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk1OTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
ZXhwZWN0YXRpb25zIGZvciB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAzLTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgYmVjdS5vcmc6IFBsYWNlaG9sZGVyIHRleHQgIlNlYXJjaCIgaXMg
Y3V0IG9mZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBh
YWEyMzA4NmNjOS4uZDUyYzE5MDRhZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC04NjQsNyArODY0LDYgQEAgd2Via2l0Lm9yZy9iLzE1MjYxOCBmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvbmF2aWdhdG9yLWxhbmd1YWdlL24K
IAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHNtYWxsLWNhcHMgc3ludGhlc2lzLgogd2Vi
a2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1hbGwuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1mb250LWZhY2Ut
b3ZlcnJpZGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1MjYyMCBj
c3MzL2ZvbnQtdmFyaWFudC1wZXRpdGUtY2Fwcy1zeW50aGVzaXMtY292ZXJhZ2UuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1w
ZXRpdGUtY2Fwcy1zeW50aGVzaXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFn
ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0zODU3LDcgKzM4NTYsNiBAQCB3ZWJraXQu
b3JnL2IvMTY4MTY0IGZhc3QvcGljdHVyZS92aWV3cG9ydC1yZXNpemUuaHRtbCBbIEZhaWx1cmUg
XQogCiB3ZWJraXQub3JnL2IvMTY4MTkxIGZhc3QvdGV4dC9zeXN0ZW0tZm9udC13ZWlnaHQuaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2ODE5MSBmYXN0L3RleHQvdHJhay1vcHRpbWl6
ZUxlZ2liaWxpdHkuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE2ODE5MSBjc3MzL2Zv
bnQtc3ludGhlc2lzLXNtYWxsLWNhcHMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJr
aXQub3JnL2IvMTY4MTkyIGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vz
c2liaWxpdHkuaHRtbCBbIFRpbWVvdXQgRmFpbHVyZSBDcmFzaCBdCiAKQEAgLTQ0ODcsMzcgKzQ0
ODUsNiBAQCB3ZWJraXQub3JnL2IvMjA2MjY0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1nYQogd2Via2l0Lm9yZy9iLzIwNjY5MiBmYXN0
L2NhbnZhcy9jYW52YXMtZmlsbFBhdGgtc2hhZG93Lmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0
Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dHMvZ2VuZXJpYy1mYW1pbHkta2V5d29yZHMtMDAxLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1kZXNjcmlwdG9yLTAxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1hbHRlcm5hdGVzLTAyLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTAyLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA0Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA2Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1jYXBzLTA3Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTAyLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTAzLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFu
LTA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0
LWFzaWFuLTA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFu
dC1lYXN0LWFzaWFuLTA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQt
dmFyaWFudC1lYXN0LWFzaWFuLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuLTEwLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMtMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0dXJlcy0wNC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbGlnYXR1cmVzLTA1Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMt
MDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0
dXJlcy0xMC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQt
bGlnYXR1cmVzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFu
dC1udW1lcmljLTAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4
ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFy
aWFudC1udW1lcmljLTAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQt
dmFyaWFudC1udW1lcmljLTA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2Zv
bnQtdmFyaWFudC1udW1lcmljLTA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRz
L2ZvbnQtdmFyaWFudC1udW1lcmljLTA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZv
bnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLTA5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1udW1lcmljLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1wb3NpdGlvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9xdW90ZWQtZ2VuZXJpYy1pZ25vcmVkLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3VzZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYjJjMTM0ZDUyNS4uOTliYzUw
ZjU3OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC02
MDEsMzcgKzYwMSw2IEBAIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQtCiB3ZWJraXQub3JnL2IvMjA2
ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9zdGFuZGFy
ZC1mb250LWZhbWlseS03Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQtZmFt
aWx5Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2dlbmVyaWMtZmFtaWx5LWtleXdvcmRzLTAwMS5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LWZlYXR1cmUtc2V0dGluZ3MtZGVzY3JpcHRv
ci0wMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtYWx0
ZXJuYXRlcy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtY2Fwcy0wNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlh
bnQtZWFzdC1hc2lhbi0wMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250
LXZhcmlhbnQtZWFzdC1hc2lhbi0wMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNi5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wNy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0wOC5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1hc2lhbi0w
OS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtZWFzdC1h
c2lhbi0xMC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQt
bGlnYXR1cmVzLTAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMDY4
ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFy
aWFudC1saWdhdHVyZXMtMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9u
dC12YXJpYW50LWxpZ2F0dXJlcy0wNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
cy9mb250LXZhcmlhbnQtbGlnYXR1cmVzLTA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL2ZvbnQtdmFyaWFudC1saWdhdHVyZXMtMTAuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZm9udHMvZm9udC12YXJpYW50LWxpZ2F0dXJlcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wMy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNi5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wNy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0wOC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJpYy0w
OS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtbnVtZXJp
Yy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZhcmlhbnQtcG9zaXRp
b24uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvcXVvdGVkLWdlbmVyaWMtaWdu
b3JlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgV1BUIGNzcy1mb250cyBmYWlsdXJl
cy9wYXNzZXMgdW5pcXVlIHRvIFdQRQpAQCAtMTkyMyw5ICsxODkyLDcgQEAgQnVnKFdQRSkgY3Nz
My92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmlld3BvcnQtcGVyY2VudGFnZS12ZXJ0aWNh
bC1hbGlnbi5odG0KIAogQnVnKFdQRSkgY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtZm9udC1m
YWNlLXJlbmRlcmluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBCdWcoV1BFKSBjc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
QnVnKFdQRSkgY3NzMy9mb250LXN5bnRoZXNpcy1zbWFsbC1jYXBzLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIEJ1ZyhXUEUpIGNzczMvZm9udC12YXJpYW50LWFsbC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi1CdWcoV1BFKSBjc3MzL2ZvbnQtdmFyaWFudC1mb250LWZhY2Utb3ZlcnJpZGUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogQnVnKFdQRSkgY3NzMy9mb250LXZhcmlhbnQtcGV0
aXRlLWNhcHMtc3ludGhlc2lzLWNvdmVyYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIEJ1
ZyhXUEUpIGNzczMvZm9udC12YXJpYW50LXBldGl0ZS1jYXBzLXN5bnRoZXNpcy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiBCdWcoV1BFKSBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5
bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmYwOTdkNDViYjguLjgxM2RiYTQ4MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIw
MjAtMDMtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtIYXJmQnV6el0gTm90IGFsbCBDU1MgZm9udCBmZWF0dXJlcyBhcmUgYXBwbGllZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NTkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IGZvbnQgZmVhdHVyZSBwcmVjZWRlbmNlIGFsZ29yaXRobSBmb3IgSGFyZkJ1enosIGluY2x1ZGlu
ZyBmZWF0dXJlcyBzcGVjaWZpZWQgaW4gZm9udC1mYWNlIHJ1bGUgYW5kCisgICAgICAgIGZvbnQt
dmFyaWFudCBzZXR0aW5ncyB0aGF0IHdlIHdlcmUgaWdub3JpbmcuCisKKyAgICAgICAgNy4yLiBG
ZWF0dXJlIHByZWNlZGVuY2UKKyAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mb250
cy0zLyNmZWF0dXJlLXByZWNlZGVuY2UKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IEFkZCBmb250IGZlYXR1cmVzIHRvIGJlIGVuYW5s
ZWQgdG8gdGhlIGZvbnQgY29uZmlnIHBhdHRlcm4uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRy
b2xsZXJIYXJmQnV6ei5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRGZWF0dXJlU2V0dGluZ3NG
cm9tVmFyaWFudHMpOiBIZWxwZXIgdG8gYWRkIGZvbnQtdmFyaWFudCBzZXR0aW5ncy4KKyAgICAg
ICAgKFdlYkNvcmU6OmZvbnRGZWF0dXJlcyk6IEltcGxlbWVudCBmb250IGZlYXR1cmUgcHJlY2Vk
ZW5jZSBhbGdvcml0aG0uCisgICAgICAgIChXZWJDb3JlOjpmaW5kU2NyaXB0Rm9yVmVydGljYWxH
bHlwaFN1YnN0aXR1dGlvbik6IFVzZSBIQl9UQUcgZGlyZWZ0bHkuCisgICAgICAgIChXZWJDb3Jl
OjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0
ZXJzKTogUGFzcyBGb250UGxhdGZvcm1EYXRhIHRvIGZvbnRGZWF0dXJlcygpLgorCiAyMDIwLTAz
LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNh
ZmFyaSBqZXRzYW1zIHdpdGggcmVwZWF0ZWQgZHJhd0ltYWdlL2dldEltYWdlRGF0YQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDQ1OTBlNjEzYmZjLi43M2VhZGVkMjRlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENh
Y2hlRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtNTAwLDcgKzUwMCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0NvbW1vbmx5VXNlZEdlbmVyaWNGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1p
bHlOYW1lU3RyaW5nKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShm
YW1pbHlOYW1lU3RyaW5nLCAiY3Vyc2l2ZSIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udFBs
YXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0
aWVzKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
Y29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250
RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKQogewogICAg
IC8vIFRoZSBDU1MgZm9udCBtYXRjaGluZyBhbGdvcml0aG0gKGh0dHA6Ly93d3cudzMub3JnL1RS
L2NzczMtZm9udHMvI2ZvbnQtbWF0Y2hpbmctYWxnb3JpdGhtKQogICAgIC8vIHNheXMgdGhhdCB3
ZSBtdXN0IGZpbmQgYW4gZXhhY3QgbWF0Y2ggZm9yIGZvbnQgZmFtaWx5LCBzbGFudCAoaXRhbGlj
IG9yIG9ibGlxdWUgY2FuIGJlIHVzZWQpCkBAIC01NjQsNiArNTY0LDE2IEBAIHN0ZDo6dW5pcXVl
X3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlCiAgICAgYm9vbCBmaXhlZFdpZHRoLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNPYmxpcXVlOwogICAgIGdldEZvbnRQcm9wZXJ0aWVzRnJvbVBhdHRlcm4ocmVzdWx0UGF0dGVy
bi5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmaXhlZFdpZHRoLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlKTsKIAorICAgIGlmIChmb250RmFjZUZlYXR1cmVzKSB7CisgICAgICAgIGZv
ciAoYXV0byYgZm9udEZhY2VGZWF0dXJlIDogKmZvbnRGYWNlRmVhdHVyZXMpIHsKKyAgICAgICAg
ICAgIGlmIChmb250RmFjZUZlYXR1cmUuZW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgY29u
c3QgYXV0byYgdGFnID0gZm9udEZhY2VGZWF0dXJlLnRhZygpOworICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgYnVmZmVyW10gPSB7IHRhZ1swXSwgdGFnWzFdLCB0YWdbMl0sIHRhZ1szXSwgJ1ww
JyB9OworICAgICAgICAgICAgICAgIEZjUGF0dGVybkFkZFN0cmluZyhyZXN1bHRQYXR0ZXJuLmdl
dCgpLCBGQ19GT05UX0ZFQVRVUkVTLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihi
dWZmZXIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIFJlZlB0cjxj
YWlyb19mb250X2ZhY2VfdD4gZm9udEZhY2UgPSBhZG9wdFJlZihjYWlyb19mdF9mb250X2ZhY2Vf
Y3JlYXRlX2Zvcl9wYXR0ZXJuKHJlc3VsdFBhdHRlcm4uZ2V0KCkpKTsKICNpZiBFTkFCTEUoVkFS
SUFUSU9OX0ZPTlRTKQogICAgIC8vIENhaXJvIGRvZXNuJ3QgaGF2ZSBBUEkgdG8gZ2V0IHRoZSBG
VF9GYWNlIG9mIGFuIHVuc2NhbGVkIGZvbnQsIHNvIHdlIG5lZWQgdG8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVl
dHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmluZGV4IDI5N2QzMjlkZTA0
Li42ZWNmMjk4MTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhRnJlZVR5cGUuY3BwCkBAIC03NSwxMiArNzUsMjEgQEAgc3RhdGljIFJlZlB0cjxGY1BhdHRl
cm4+IGRlZmF1bHRGb250Y29uZmlnT3B0aW9ucygpCiAgICAgcmV0dXJuIGFkb3B0UmVmKEZjUGF0
dGVybkR1cGxpY2F0ZShwYXR0ZXJuKSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykKK0ZvbnRQbGF0Zm9ybURh
dGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVk
Q2FwYWJpbGl0aWVzKQogewogICAgIGF1dG8qIGZyZWVUeXBlRmFjZSA9IHN0YXRpY19jYXN0PEZU
X0ZhY2U+KGNhaXJvX2ZvbnRfZmFjZV9nZXRfdXNlcl9kYXRhKG1fZm9udEZhY2UuZ2V0KCksICZm
cmVlVHlwZUZhY2VLZXkpKTsKICAgICBBU1NFUlQoZnJlZVR5cGVGYWNlKTsKICAgICBSZWZQdHI8
RmNQYXR0ZXJuPiBwYXR0ZXJuID0gZGVmYXVsdEZvbnRjb25maWdPcHRpb25zKCk7CiAgICAgRmNQ
YXR0ZXJuQWRkU3RyaW5nKHBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBGY0NoYXI4Kj4oZnJlZVR5cGVGYWNlLT5mYW1pbHlfbmFtZSkpOworCisgICAgZm9y
IChhdXRvJiBmb250RmFjZUZlYXR1cmUgOiBmb250RmFjZUZlYXR1cmVzKSB7CisgICAgICAgIGlm
IChmb250RmFjZUZlYXR1cmUuZW5hYmxlZCgpKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiB0
YWcgPSBmb250RmFjZUZlYXR1cmUudGFnKCk7CisgICAgICAgICAgICBjb25zdCBjaGFyIGJ1ZmZl
cltdID0geyB0YWdbMF0sIHRhZ1sxXSwgdGFnWzJdLCB0YWdbM10sICdcMCcgfTsKKyAgICAgICAg
ICAgIEZjUGF0dGVybkFkZFN0cmluZyhwYXR0ZXJuLmdldCgpLCBGQ19GT05UX0ZFQVRVUkVTLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihidWZmZXIpKTsKKyAgICAgICAgfQorICAg
IH0KKwogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgYXV0byB2YXJpYW50cyA9IGJ1
aWxkVmFyaWF0aW9uU2V0dGluZ3MoZnJlZVR5cGVGYWNlLCBkZXNjcmlwdGlvbik7CiAgICAgaWYg
KCF2YXJpYW50cy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29u
dHJvbGxlckhhcmZCdXp6LmNwcAppbmRleCAyNTdlODlmM2ZhNS4uZjczMTdiYTFjMDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKKyNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKICNpbmNsdWRlICJI
YlVuaXF1ZVB0ci5oIgogI2luY2x1ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5o
IgogI2luY2x1ZGUgPGhiLWZ0Lmg+CkBAIC0xNzUsMjggKzE3NiwyMjYgQEAgQ29tcGxleFRleHRD
b250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4oaGJfYnVmZmVyX3QqIGJ1
ZmZlciwgY29uc3QKICAgICBtX2luaXRpYWxBZHZhbmNlID0gdG9GbG9hdFNpemUobV9nbHlwaE9y
aWdpbnNbMF0pOwogfQogCi1zdGF0aWMgY29uc3QgaGJfdGFnX3Qgc192ZXJ0VGFnID0gSEJfVEFH
KCd2JywgJ2UnLCAncicsICd0Jyk7Ci1zdGF0aWMgY29uc3QgaGJfdGFnX3Qgc192cnQyVGFnID0g
SEJfVEFHKCd2JywgJ3InLCAndCcsICcyJyk7Ci1zdGF0aWMgY29uc3QgaGJfdGFnX3Qgc19rZXJu
VGFnID0gSEJfVEFHKCdrJywgJ2UnLCAncicsICduJyk7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQg
c19oYkVuZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPigtMSk7Cit1c2luZyBGZWF0dXJlc01hcCA9
IEhhc2hNYXA8Rm9udFRhZywgaW50LCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwgRm91ckNoYXJhY3Rl
clRhZ0hhc2hUcmFpdHM+OwogCi1zdGF0aWMgVmVjdG9yPGhiX2ZlYXR1cmVfdCwgND4gZm9udEZl
YXR1cmVzKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBGb250T3JpZW50YXRpb24gb3JpZW50YXRp
b24pCitzdGF0aWMgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3NGcm9tVmFyaWFudHMoY29uc3QgRm9u
dFZhcmlhbnRTZXR0aW5ncyYgdmFyaWFudFNldHRpbmdzLCBGZWF0dXJlc01hcCYgZmVhdHVyZXMp
CiB7Ci0gICAgVmVjdG9yPGhiX2ZlYXR1cmVfdCwgND4gZmVhdHVyZXM7CisgICAgc3dpdGNoICh2
YXJpYW50U2V0dGluZ3MuY29tbW9uTGlnYXR1cmVzKSB7CisgICAgY2FzZSBGb250VmFyaWFudExp
Z2F0dXJlczo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGln
YXR1cmVzOjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygibGlnYSIp
LCAxKTsKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJjbGlnIiksIDEpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpObzoKKyAgICAg
ICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOworICAgICAgICBmZWF0
dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIHN3aXRjaCAodmFyaWFudFNldHRpbmdzLmRpc2NyZXRpb25hcnlMaWdhdHVyZXMp
IHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpOb3JtYWw6CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRm9udFZhcmlhbnRMaWdhdHVyZXM6OlllczoKKyAgICAgICAgZmVhdHVyZXMu
c2V0KGZvbnRGZWF0dXJlVGFnKCJkbGlnIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEZvbnRWYXJpYW50TGlnYXR1cmVzOjpObzoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0
dXJlVGFnKCJkbGlnIiksIDApOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2gg
KHZhcmlhbnRTZXR0aW5ncy5oaXN0b3JpY2FsTGlnYXR1cmVzKSB7CisgICAgY2FzZSBGb250VmFy
aWFudExpZ2F0dXJlczo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJp
YW50TGlnYXR1cmVzOjpZZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygi
aGxpZyIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudExpZ2F0dXJl
czo6Tm86CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiaGxpZyIpLCAwKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MuY29u
dGV4dHVhbEFsdGVybmF0ZXMpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpOb3Jt
YWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRMaWdhdHVyZXM6OlllczoK
KyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJjYWx0IiksIDEpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TGlnYXR1cmVzOjpObzoKKyAgICAgICAgZmVh
dHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJjYWx0IiksIDApOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5wb3NpdGlvbikgeworICAgIGNhc2Ug
Rm9udFZhcmlhbnRQb3NpdGlvbjo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZv
bnRWYXJpYW50UG9zaXRpb246OlN1YnNjcmlwdDoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRG
ZWF0dXJlVGFnKCJzdWJzIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJp
YW50UG9zaXRpb246OlN1cGVyc2NyaXB0OgorICAgICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1
cmVUYWcoInN1cHMiKSwgMSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHN3aXRjaCAo
dmFyaWFudFNldHRpbmdzLmNhcHMpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6Tm9ybWFs
OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6QWxsU21hbGw6Cisg
ICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiYzJzYyIpLCAxKTsKKyAgICAgICAg
RkFMTFRIUk9VR0g7CisgICAgY2FzZSBGb250VmFyaWFudENhcHM6OlNtYWxsOgorICAgICAgICBm
ZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoInNtY3AiKSwgMSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxQZXRpdGU6CisgICAgICAgIGZlYXR1cmVzLnNl
dChmb250RmVhdHVyZVRhZygiYzJwYyIpLCAxKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAg
Y2FzZSBGb250VmFyaWFudENhcHM6OlBldGl0ZToKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRG
ZWF0dXJlVGFnKCJwY2FwIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJp
YW50Q2Fwczo6VW5pY2FzZToKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJ1
bmljIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6VGl0
bGluZzoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJ0aXRsIiksIDEpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5udW1l
cmljRmlndXJlKSB7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNGaWd1cmU6Ok5vcm1hbDoK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNGaWd1cmU6Okxpbmlu
Z051bWJlcnM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygibG51bSIpLCAx
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNGaWd1cmU6Ok9s
ZFN0eWxlTnVtYmVyczoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJvbnVt
IiksIDEpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0
aW5ncy5udW1lcmljU3BhY2luZykgeworICAgIGNhc2UgRm9udFZhcmlhbnROdW1lcmljU3BhY2lu
Zzo6Tm9ybWFsOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY1Nw
YWNpbmc6OlByb3BvcnRpb25hbE51bWJlcnM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVh
dHVyZVRhZygicG51bSIpLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFu
dE51bWVyaWNTcGFjaW5nOjpUYWJ1bGFyTnVtYmVyczoKKyAgICAgICAgZmVhdHVyZXMuc2V0KGZv
bnRGZWF0dXJlVGFnKCJ0bnVtIiksIDEpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBz
d2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5udW1lcmljRnJhY3Rpb24pIHsKKyAgICBjYXNlIEZvbnRW
YXJpYW50TnVtZXJpY0ZyYWN0aW9uOjpOb3JtYWw6CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Rm9udFZhcmlhbnROdW1lcmljRnJhY3Rpb246OkRpYWdvbmFsRnJhY3Rpb25zOgorICAgICAgICBm
ZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImZyYWMiKSwgMSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRm9udFZhcmlhbnROdW1lcmljRnJhY3Rpb246OlN0YWNrZWRGcmFjdGlvbnM6Cisg
ICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiYWZyYyIpLCAxKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MubnVtZXJpY09yZGlu
YWwpIHsKKyAgICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY09yZGluYWw6Ok5vcm1hbDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNPcmRpbmFsOjpZZXM6CisgICAg
ICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygib3JkbiIpLCAxKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MubnVtZXJpY1NsYXNoZWRa
ZXJvKSB7CisgICAgY2FzZSBGb250VmFyaWFudE51bWVyaWNTbGFzaGVkWmVybzo6Tm9ybWFsOgor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50TnVtZXJpY1NsYXNoZWRaZXJvOjpZ
ZXM6CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiemVybyIpLCAxKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MuYWx0ZXJu
YXRlcykgeworICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpOb3JtYWw6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpIaXN0b3JpY2FsRm9ybXM6
CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygiaGlzdCIpLCAxKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQogCi0gICAgaWYgKG9yaWVudGF0aW9uID09IEZvbnRPcmllbnRhdGlv
bjo6VmVydGljYWwpIHsKLSAgICAgICAgZmVhdHVyZXMuYXBwZW5kKHsgc192ZXJ0VGFnLCAxLCAw
LCBzX2hiRW5kIH0pOwotICAgICAgICBmZWF0dXJlcy5hcHBlbmQoeyBzX3ZydDJUYWcsIDEsIDAs
IHNfaGJFbmQgfSk7CisgICAgc3dpdGNoICh2YXJpYW50U2V0dGluZ3MuZWFzdEFzaWFuVmFyaWFu
dCkgeworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJpYW50OjpOb3JtYWw6CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJpYW50OjpKaXM3ODoK
KyAgICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJqcDc4IiksIDEpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFudDo6SmlzODM6Cisg
ICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygianA4MyIpLCAxKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhblZhcmlhbnQ6OkppczkwOgorICAg
ICAgICBmZWF0dXJlcy5zZXQoZm9udEZlYXR1cmVUYWcoImpwOTAiKSwgMSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5WYXJpYW50OjpKaXMwNDoKKyAgICAg
ICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJqcDA0IiksIDEpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFudDo6U2ltcGxpZmllZDoKKyAg
ICAgICAgZmVhdHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJzbXBsIiksIDEpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuVmFyaWFudDo6VHJhZGl0aW9uYWw6
CisgICAgICAgIGZlYXR1cmVzLnNldChmb250RmVhdHVyZVRhZygidHJhZCIpLCAxKTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgaGJfZmVhdHVyZV90IGtlcm5pbmcgPSB7IHNfa2VyblRh
ZywgMCwgMCwgc19oYkVuZCB9OwotICAgIGlmIChmb250LmVuYWJsZUtlcm5pbmcoKSkKLSAgICAg
ICAga2VybmluZy52YWx1ZSA9IDE7Ci0gICAgZmVhdHVyZXMuYXBwZW5kKFdURk1vdmUoa2Vybmlu
ZykpOworICAgIHN3aXRjaCAodmFyaWFudFNldHRpbmdzLmVhc3RBc2lhbldpZHRoKSB7CisgICAg
Y2FzZSBGb250VmFyaWFudEVhc3RBc2lhbldpZHRoOjpOb3JtYWw6CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRm9udFZhcmlhbnRFYXN0QXNpYW5XaWR0aDo6RnVsbDoKKyAgICAgICAgZmVhdHVy
ZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJmd2lkIiksIDEpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvbnRWYXJpYW50RWFzdEFzaWFuV2lkdGg6OlByb3BvcnRpb25hbDoKKyAgICAgICAgZmVh
dHVyZXMuc2V0KGZvbnRGZWF0dXJlVGFnKCJwd2lkIiksIDEpOworICAgICAgICBicmVhazsKKyAg
ICB9CiAKLSAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmb250LmZvbnREZXNjcmlwdGlvbigpLmZl
YXR1cmVTZXR0aW5ncygpKSB7Ci0gICAgICAgIGF1dG8mIHRhZyA9IGZlYXR1cmUudGFnKCk7Ci0g
ICAgICAgIGZlYXR1cmVzLmFwcGVuZCh7IEhCX1RBRyh0YWdbMF0sIHRhZ1sxXSwgdGFnWzJdLCB0
YWdbM10pLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZmVhdHVyZS52YWx1ZSgpKSwgMCwgc19oYkVu
ZCB9KTsKKyAgICBzd2l0Y2ggKHZhcmlhbnRTZXR0aW5ncy5lYXN0QXNpYW5SdWJ5KSB7CisgICAg
Y2FzZSBGb250VmFyaWFudEVhc3RBc2lhblJ1Ynk6Ok5vcm1hbDoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBGb250VmFyaWFudEVhc3RBc2lhblJ1Ynk6OlllczoKKyAgICAgICAgZmVhdHVyZXMu
c2V0KGZvbnRGZWF0dXJlVGFnKCJydWJ5IiksIDEpOworICAgICAgICBicmVhazsKKyAgICB9Cit9
CisKK3N0YXRpYyBWZWN0b3I8aGJfZmVhdHVyZV90LCA0PiBmb250RmVhdHVyZXMoY29uc3QgRm9u
dENhc2NhZGUmIGZvbnQsIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZvbnRQbGF0Zm9ybURhdGEp
Cit7CisgICAgRmVhdHVyZXNNYXAgZmVhdHVyZXNUb0JlQXBwbGllZDsKKworICAgIC8vIDcuMi4g
RmVhdHVyZSBwcmVjZWRlbmNlCisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mb250
cy0zLyNmZWF0dXJlLXByZWNlZGVuY2UKKworICAgIC8vIDEuIEZvbnQgZmVhdHVyZXMgZW5hYmxl
ZCBieSBkZWZhdWx0LCBpbmNsdWRpbmcgZmVhdHVyZXMgcmVxdWlyZWQgZm9yIGEgZ2l2ZW4gc2Ny
aXB0LgorCisgICAgLy8gMi4gSWYgdGhlIGZvbnQgaXMgZGVmaW5lZCB2aWEgYW4gQGZvbnQtZmFj
ZSBydWxlLCB0aGUgZm9udCBmZWF0dXJlcyBpbXBsaWVkIGJ5IHRoZQorICAgIC8vICAgIGZvbnQt
ZmVhdHVyZS1zZXR0aW5ncyBkZXNjcmlwdG9yIGluIHRoZSBAZm9udC1mYWNlIHJ1bGUuCisgICAg
YXV0byogZmNQYXR0ZXJuID0gZm9udFBsYXRmb3JtRGF0YS5mY1BhdHRlcm4oKTsKKyAgICBGY0No
YXI4KiBmY0ZvbnRGZWF0dXJlOworICAgIGZvciAoaW50IGkgPSAwOyBGY1BhdHRlcm5HZXRTdHJp
bmcoZmNQYXR0ZXJuLCBGQ19GT05UX0ZFQVRVUkVTLCBpLCAmZmNGb250RmVhdHVyZSkgPT0gRmNS
ZXN1bHRNYXRjaDsgKytpKQorICAgICAgICBmZWF0dXJlc1RvQmVBcHBsaWVkLnNldChmb250RmVh
dHVyZVRhZyhyZWludGVycHJldF9jYXN0PGNoYXIqPihmY0ZvbnRGZWF0dXJlKSksIDEpOworCisg
ICAgLy8gMy4gRm9udCBmZWF0dXJlcyBpbXBsaWVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUg4oCYZm9u
dC12YXJpYW504oCZIHByb3BlcnR5LCB0aGUgcmVsYXRlZCDigJhmb250LXZhcmlhbnTigJkKKyAg
ICAvLyAgICBzdWJwcm9wZXJ0aWVzIGFuZCBhbnkgb3RoZXIgQ1NTIHByb3BlcnR5IHRoYXQgdXNl
cyBPcGVuVHlwZSBmZWF0dXJlcy4KKyAgICBzZXRGZWF0dXJlU2V0dGluZ3NGcm9tVmFyaWFudHMo
Zm9udC5mb250RGVzY3JpcHRpb24oKS52YXJpYW50U2V0dGluZ3MoKSwgZmVhdHVyZXNUb0JlQXBw
bGllZCk7CisgICAgZmVhdHVyZXNUb0JlQXBwbGllZC5zZXQoZm9udEZlYXR1cmVUYWcoImtlcm4i
KSwgZm9udC5lbmFibGVLZXJuaW5nKCkgPyAxIDogMCk7CisKKyAgICAvLyA0LiBGZWF0dXJlIHNl
dHRpbmdzIGRldGVybWluZWQgYnkgcHJvcGVydGllcyBvdGhlciB0aGFuIOKAmGZvbnQtdmFyaWFu
dOKAmSBvciDigJhmb250LWZlYXR1cmUtc2V0dGluZ3PigJkuCisgICAgaWYgKGZvbnRQbGF0Zm9y
bURhdGEub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKSB7CisgICAg
ICAgIGZlYXR1cmVzVG9CZUFwcGxpZWQuc2V0KGZvbnRGZWF0dXJlVGFnKCJ2ZXJ0IiksIDEpOwor
ICAgICAgICBmZWF0dXJlc1RvQmVBcHBsaWVkLnNldChmb250RmVhdHVyZVRhZygidnJ0MiIpLCAx
KTsKKyAgICB9CisKKyAgICAvLyA1LiBGb250IGZlYXR1cmVzIGltcGxpZWQgYnkgdGhlIHZhbHVl
IG9mIOKAmGZvbnQtZmVhdHVyZS1zZXR0aW5nc+KAmSBwcm9wZXJ0eS4KKyAgICBmb3IgKGF1dG8m
IGZlYXR1cmUgOiBmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpKQorICAg
ICAgICBmZWF0dXJlc1RvQmVBcHBsaWVkLnNldChmZWF0dXJlLnRhZygpLCBmZWF0dXJlLnZhbHVl
KCkpOworCisgICAgVmVjdG9yPGhiX2ZlYXR1cmVfdCwgND4gZmVhdHVyZXM7CisgICAgZmVhdHVy
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmZWF0dXJlc1RvQmVBcHBsaWVkLnNpemUoKSk7Cisg
ICAgZm9yIChhdXRvJiBpdGVyIDogZmVhdHVyZXNUb0JlQXBwbGllZCkgeworICAgICAgICBhdXRv
JiB0YWcgPSBpdGVyLmtleTsKKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKHsgSEJfVEFHKHRhZ1sw
XSwgdGFnWzFdLCB0YWdbMl0sIHRhZ1szXSksIHN0YXRpY19jYXN0PHVpbnQzMl90PihpdGVyLnZh
bHVlKSwgMCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKSB9KTsKICAgICB9CiAKICAgICByZXR1
cm4gZmVhdHVyZXM7CkBAIC0yNzYsOCArNDc1LDggQEAgc3RhdGljIGhiX3NjcmlwdF90IGZpbmRT
Y3JpcHRGb3JWZXJ0aWNhbEdseXBoU3Vic3RpdHV0aW9uKGhiX2ZhY2VfdCogZmFjZSkKICAgICAg
ICAgaGJfb3RfbGF5b3V0X3NjcmlwdF9nZXRfbGFuZ3VhZ2VfdGFncyhmYWNlLCBIQl9PVF9UQUdf
R1NVQiwgc2NyaXB0SW5kZXgsIDAsICZsYW5ndWFnZUNvdW50LCBsYW5ndWFnZVRhZ3MpOwogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGxhbmd1YWdlSW5kZXggPSAwOyBsYW5ndWFnZUluZGV4IDwgbGFu
Z3VhZ2VDb3VudDsgKytsYW5ndWFnZUluZGV4KSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBmZWF0
dXJlSW5kZXg7Ci0gICAgICAgICAgICBpZiAoaGJfb3RfbGF5b3V0X2xhbmd1YWdlX2ZpbmRfZmVh
dHVyZShmYWNlLCBIQl9PVF9UQUdfR1NVQiwgc2NyaXB0SW5kZXgsIGxhbmd1YWdlSW5kZXgsIHNf
dmVydFRhZywgJmZlYXR1cmVJbmRleCkKLSAgICAgICAgICAgICAgICB8fCBoYl9vdF9sYXlvdXRf
bGFuZ3VhZ2VfZmluZF9mZWF0dXJlKGZhY2UsIEhCX09UX1RBR19HU1VCLCBzY3JpcHRJbmRleCwg
bGFuZ3VhZ2VJbmRleCwgc192cnQyVGFnLCAmZmVhdHVyZUluZGV4KSkKKyAgICAgICAgICAgIGlm
IChoYl9vdF9sYXlvdXRfbGFuZ3VhZ2VfZmluZF9mZWF0dXJlKGZhY2UsIEhCX09UX1RBR19HU1VC
LCBzY3JpcHRJbmRleCwgbGFuZ3VhZ2VJbmRleCwgSEJfVEFHKCd2JywgJ2UnLCAncicsICd0Jyks
ICZmZWF0dXJlSW5kZXgpCisgICAgICAgICAgICAgICAgfHwgaGJfb3RfbGF5b3V0X2xhbmd1YWdl
X2ZpbmRfZmVhdHVyZShmYWNlLCBIQl9PVF9UQUdfR1NVQiwgc2NyaXB0SW5kZXgsIGxhbmd1YWdl
SW5kZXgsIEhCX1RBRygndicsICdyJywgJ3QnLCAnMicpLCAmZmVhdHVyZUluZGV4KSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gaGJfb3RfdGFnX3RvX3NjcmlwdChzY3JpcHRUYWdzW3NjcmlwdElu
ZGV4XSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNDEsNyArNTQwLDcgQEAgdm9pZCBDb21wbGV4
VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKGNvbnN0
IFVDaGFyKiBjaGEKIAogICAgIGhiX2ZvbnRfbWFrZV9pbW11dGFibGUoaGFyZkJ1enpGb250Lmdl
dCgpKTsKIAotICAgIGF1dG8gZmVhdHVyZXMgPSBmb250RmVhdHVyZXMobV9mb250LCBmb250UGxh
dGZvcm1EYXRhLm9yaWVudGF0aW9uKCkpOworICAgIGF1dG8gZmVhdHVyZXMgPSBmb250RmVhdHVy
ZXMobV9mb250LCBmb250UGxhdGZvcm1EYXRhKTsKICAgICBIYlVuaXF1ZVB0cjxoYl9idWZmZXJf
dD4gYnVmZmVyKGhiX2J1ZmZlcl9jcmVhdGUoKSk7CiAgICAgaWYgKGZvbnRQbGF0Zm9ybURhdGEu
b3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsKQogICAgICAgICBoYl9i
dWZmZXJfc2V0X3NjcmlwdChidWZmZXIuZ2V0KCksIGZpbmRTY3JpcHRGb3JWZXJ0aWNhbEdseXBo
U3Vic3RpdHV0aW9uKGZhY2UuZ2V0KCkpKTsK
</data>
<flag name="review"
          id="410023"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>