<?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>206118</bug_id>
          
          <creation_ts>2020-01-10 18:36:13 -0800</creation_ts>
          <short_desc>[GPU Process] Support drawing text in 2D canvas with font features</short_desc>
          <delta_ts>2021-04-09 13:10:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>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=219672</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217220</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605455</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-10 18:36:13 -0800</bug_when>
    <thetext>E.g.:

&lt;style&gt;
@font-face {
    font-family: &quot;SpecialFont&quot;;
    src: url(&quot;resources/FontWithFeatures.ttf&quot;) format(&quot;truetype&quot;);
    font-feature-settings: &quot;titl&quot; 1;
}
&lt;/style&gt;

…

const context = document.querySelector(&quot;canvas&quot;).getContext(&quot;2d&quot;);
context.font = &quot;80px SpecialFont&quot;;
context.fillText(&quot;bbb&quot;, 100, 100);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605460</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-10 18:48:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/58498572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605473</commentid>
    <comment_count>2</comment_count>
      <attachid>387415</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-10 19:48:02 -0800</bug_when>
    <thetext>Created attachment 387415
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605502</commentid>
    <comment_count>3</comment_count>
      <attachid>387427</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-10 22:30:04 -0800</bug_when>
    <thetext>Created attachment 387427
WIP (fix GTK/WPE)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605568</commentid>
    <comment_count>4</comment_count>
      <attachid>387447</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-11 14:43:32 -0800</bug_when>
    <thetext>Created attachment 387447
Adjust Win TestExpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608357</commentid>
    <comment_count>5</comment_count>
      <attachid>387447</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-01-17 19:27:18 -0800</bug_when>
    <thetext>Comment on attachment 387447
Adjust Win TestExpectations

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Augments and refactors some existing logic for propagating font information to the GPU process when painting
&gt; +        glyphs using display lists, such that we preserve font feature settings. See below for more details.

I&apos;d appreciate a little explanation about why FontCreationParameters, Font, FontHandle (and possibly FontDescription) are different classes. What is the purpose each one needs to serve?

&gt; Source/WebCore/loader/cache/CachedFont.cpp:131
&gt; +        font-&gt;setFontCreationParameters({ *m_data, fontDescription, remoteURI, syntheticBold, syntheticItalic, fontFaceFeatures, fontFaceCapabilities });

Please consider putting all this data inside FontPlatformData instead of Font. That way this code wouldn&apos;t have to specify it twice.

The existing code maintains the invariant that Font isn&apos;t allowed to have any members that aren&apos;t derivable from the FontPlatformData. So, if this stuff were retained inside the FontPlatformData, Font could just reach inside whenever it needs it.

This seems like a fairly arbitrary place to pack/unpack a FontCreationParameters. I&apos;d recommend either making FontCreationMembers a member field of FontPlatformData, or doing the packing/unpacking as late as possible inside code that knows about the GPU Process (and just packs the data as late as possible, just to send across the wire to the other process)

&gt; Source/WebCore/platform/graphics/Font.cpp:720
&gt; +    auto customFontData = CachedFont::createCustomFontData(parameters.data, { }, wrapping);
&gt; +    font = Font::create(CachedFont::platformDataFromCustomData(*customFontData, parameters.description, parameters.syntheticBold, parameters.syntheticItalic, parameters.features, parameters.capabilities), Font::Origin::Remote);

Is this code only used for web fonts? If so, can we move it closer to FontCustomPlatformData? If not, shouldn&apos;t serializing an installed font use the same infrastructure as serializing a web font?

&gt; Source/WebCore/platform/graphics/Font.h:222
&gt; +    bool hasFontCreationParameters() const { return m_fontCreationParameters.hasValue(); }

Installed fonts need these creation parameters, too. Shouldn&apos;t all Fonts get these creation parameters? Why are they optional?

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1156
&gt; +        return FontHandle();

I don&apos;t understand. Under which situation would we receive a FontHandle but want it to be internally null?

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:3143
&gt; +    decoder &gt;&gt; description;

This just works??? What information from the FontDescription actually gets serialized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608359</commentid>
    <comment_count>6</comment_count>
      <attachid>387447</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-17 20:03:14 -0800</bug_when>
    <thetext>Comment on attachment 387447
Adjust Win TestExpectations

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        glyphs using display lists, such that we preserve font feature settings. See below for more details.
&gt; 
&gt; I&apos;d appreciate a little explanation about why FontCreationParameters, Font, FontHandle (and possibly FontDescription) are different classes. What is the purpose each one needs to serve?

Okay! I&apos;ll add some more words to the ChangeLog. Here&apos;s my take:
- Font is the information used by (among other things) graphics code to paint glyphs.
- FontHandle is a convenience wrapper for serializing and deserializing a Font (so if I have a Ref&lt;Font&gt; or RefPtr&lt;Font&gt;, it should be easy to serialize, e.g. over IPC).
- As explained below, FontCreationParameters encapsulates the information needed to construct a Font (which mostly ends up being information needed to construct a FontPlatformData).

&gt;&gt; Source/WebCore/loader/cache/CachedFont.cpp:131
&gt;&gt; +        font-&gt;setFontCreationParameters({ *m_data, fontDescription, remoteURI, syntheticBold, syntheticItalic, fontFaceFeatures, fontFaceCapabilities });
&gt; 
&gt; Please consider putting all this data inside FontPlatformData instead of Font. That way this code wouldn&apos;t have to specify it twice.
&gt; 
&gt; The existing code maintains the invariant that Font isn&apos;t allowed to have any members that aren&apos;t derivable from the FontPlatformData. So, if this stuff were retained inside the FontPlatformData, Font could just reach inside whenever it needs it.
&gt; 
&gt; This seems like a fairly arbitrary place to pack/unpack a FontCreationParameters. I&apos;d recommend either making FontCreationMembers a member field of FontPlatformData, or doing the packing/unpacking as late as possible inside code that knows about the GPU Process (and just packs the data as late as possible, just to send across the wire to the other process)

Now that you pointed it out, it does seem like what I really wanted to serialize was the FontPlatformData itself. This would mean I wouldn&apos;t need a separate FontCreationParameters/FontCreationMembers class, and I think it would work for installed fonts too. I&apos;ll try this approach out and see, thanks!

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:720
&gt;&gt; +    font = Font::create(CachedFont::platformDataFromCustomData(*customFontData, parameters.description, parameters.syntheticBold, parameters.syntheticItalic, parameters.features, parameters.capabilities), Font::Origin::Remote);
&gt; 
&gt; Is this code only used for web fonts? If so, can we move it closer to FontCustomPlatformData? If not, shouldn&apos;t serializing an installed font use the same infrastructure as serializing a web font?

Yes, it&apos;s only for web fonts; I will move it over to FontCustomPlatformData.

&gt;&gt; Source/WebCore/platform/graphics/Font.h:222
&gt;&gt; +    bool hasFontCreationParameters() const { return m_fontCreationParameters.hasValue(); }
&gt; 
&gt; Installed fonts need these creation parameters, too. Shouldn&apos;t all Fonts get these creation parameters? Why are they optional?

Ok — I&apos;ll look into plumbing this information for installed fonts. For installed fonts, we currently just use the serialized platform font descriptor to send the information across, but it seems this is not enough.

&gt;&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1156
&gt;&gt; +        return FontHandle();
&gt; 
&gt; I don&apos;t understand. Under which situation would we receive a FontHandle but want it to be internally null?

FontHandle is an encodable wrapper around a nullable Font; that said, there&apos;s no situation currently where a FontHandle should contain a null font, so it&apos;s purely for convenience.

The alternative would be defining functions like void encode(Encoder&amp;, Font*) and Optional&lt;RefPtr&lt;Font&gt;&gt; decode(Decoder&amp;).

&gt;&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:3143
&gt;&gt; +    decoder &gt;&gt; description;
&gt; 
&gt; This just works??? What information from the FontDescription actually gets serialized?

All of the information in FontDescription gets serialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692853</commentid>
    <comment_count>7</comment_count>
      <attachid>409971</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-29 01:13:38 -0700</bug_when>
    <thetext>Created attachment 409971
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692855</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-29 01:18:21 -0700</bug_when>
    <thetext>This patch isn&apos;t quite sufficient. We need to add CreationParameters to the FontPlatformData in more places (e.g. CachedSVGFont).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693309</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-29 22:09:44 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #8)
&gt; This patch isn&apos;t quite sufficient. We need to add CreationParameters to the
&gt; FontPlatformData in more places (e.g. CachedSVGFont).

Turns out it looks like all the calls get filtered through createFontCustomPlatformData(), which means it actually is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693310</commentid>
    <comment_count>10</comment_count>
      <attachid>410094</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-29 22:11:41 -0700</bug_when>
    <thetext>Created attachment 410094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693629</commentid>
    <comment_count>11</comment_count>
      <attachid>410193</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-30 19:44:59 -0700</bug_when>
    <thetext>Created attachment 410193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693874</commentid>
    <comment_count>12</comment_count>
      <attachid>410269</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-01 14:15:50 -0700</bug_when>
    <thetext>Created attachment 410269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693880</commentid>
    <comment_count>13</comment_count>
      <attachid>410269</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-01 14:41:03 -0700</bug_when>
    <thetext>Comment on attachment 410269
Patch

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

&gt; Source/WebCore/platform/graphics/mac/FontCustomPlatformData.h:31
&gt; +

Nit - stray whitespace.

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1185
&gt; +    encoder &lt;&lt; static_cast&lt;uint8_t&gt;(font-&gt;origin());

Nit - do we need all these static casts? IIRC for enums that have an explicit bit width, our Encoder/Decoders should know how to encode/decode them, so on the decoding side we can just have `Optional&lt;Origin&gt;`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693897</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-01 15:24:35 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #13)
&gt; Comment on attachment 410269 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410269&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1185
&gt; &gt; +    encoder &lt;&lt; static_cast&lt;uint8_t&gt;(font-&gt;origin());
&gt; 
&gt; Nit - do we need all these static casts? IIRC for enums that have an
&gt; explicit bit width, our Encoder/Decoders should know how to encode/decode
&gt; them, so on the decoding side we can just have `Optional&lt;Origin&gt;`.

I tried the naive thing, but it resulted in a compile error. You must be right, though - there&apos;s gotta be a way that does proper bounds checking on enums. I&apos;ll see if I can figure it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693940</commentid>
    <comment_count>15</comment_count>
      <attachid>410287</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-01 17:25:39 -0700</bug_when>
    <thetext>Created attachment 410287
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693941</commentid>
    <comment_count>16</comment_count>
      <attachid>410288</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-01 17:29:10 -0700</bug_when>
    <thetext>Created attachment 410288
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693958</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-01 18:16:09 -0700</bug_when>
    <thetext>Committed r267864: &lt;https://trac.webkit.org/changeset/267864&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410288.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694053</commentid>
    <comment_count>18</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-02 05:23:16 -0700</bug_when>
    <thetext>(In reply to EWS from comment #17)
&gt; Committed r267864: &lt;https://trac.webkit.org/changeset/267864&gt;
This commit added two broken tests:
- fast/canvas/fill-text-with-font-variations.html broken on iOS and windows
- fast/canvas/fill-text-with-font-features.html broken on windows

EWS indicates similar failures on previous versions of patches on this bug. Should have waited for EWS to complete before marking cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694055</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-02 05:23:59 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 217220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694152</commentid>
    <comment_count>20</comment_count>
      <attachid>410339</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-02 11:02:40 -0700</bug_when>
    <thetext>Created attachment 410339
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694263</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-02 15:35:29 -0700</bug_when>
    <thetext>Windows failure is caused by https://bugs.webkit.org/show_bug.cgi?id=160512</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694264</commentid>
    <comment_count>22</comment_count>
      <attachid>410381</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-10-02 15:35:50 -0700</bug_when>
    <thetext>Created attachment 410381
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694428</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-03 10:31:35 -0700</bug_when>
    <thetext>Committed r267930: &lt;https://trac.webkit.org/changeset/267930&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410381.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748836</commentid>
    <comment_count>24</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-09 13:10:00 -0700</bug_when>
    <thetext>*** Bug 208878 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387415</attachid>
            <date>2020-01-10 19:48:02 -0800</date>
            <delta_ts>2020-01-10 22:30:03 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-206118-20200110194802.patch</filename>
            <type>text/plain</type>
            <size>37980</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4ZjljMTNlYWRlYjI1
NTEzNmE3NDg5OWU2YWJhMTI1MGY3N2EzMy4uZjZlZDZiOTAxYjhiNjZiM2NlMWUxZjE4OTUwM2I3
YmNiZGUyOGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTAxLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vz
c10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODQ5ODU3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50cyBhbmQgcmVmYWN0b3JzIHNvbWUgZXhp
c3RpbmcgbG9naWMgZm9yIHByb3BhZ2F0aW5nIGZvbnQgaW5mb3JtYXRpb24gdG8gdGhlIEdQVSBw
cm9jZXNzIHdoZW4gcGFpbnRpbmcKKyAgICAgICAgZ2x5cGhzIHVzaW5nIGRpc3BsYXkgbGlzdHMs
IHN1Y2ggdGhhdCB3ZSBwcmVzZXJ2ZSBmb250IGZlYXR1cmUgc2V0dGluZ3MuIFNlZSBiZWxvdyBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtZmVhdHVyZXMuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKworICAg
ICAgICBBZGQgRm9udENyZWF0aW9uUGFyYW1ldGVycy5oLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6
Y3JlYXRlRm9udCk6CisKKyAgICAgICAgTW92ZSBsb2dpYyB0aGF0IHNldHMgdGhlIGZvbnQgZmFj
ZSBkYXRhIChub3cgZm9udCBjcmVhdGlvbiBwYXJhbWV0ZXJzKSBvdXQgb2YgYENTU0ZvbnRGYWNl
Ojpmb250YCwgYW5kIGludG8KKyAgICAgICAgYENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnRgLiBUaGlz
IGFsc28gYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUgbm93LXVudXNlZCBjYWNoZWRGb250KCkgZ2V0
dGVyIGluIENTU0ZvbnRGYWNlU291cmNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpzZXRGb250Q3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRIYW5kbGU6OkZvbnRIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpoYXNGb250
Q3JlYXRpb25QYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZvbnRD
cmVhdGlvblBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZh
Y2VEYXRhIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBSZWZhY3RvciB0aGlzLCBzbyB0aGF0
IGZvbnRGYWNlRGF0YSAoYSBgUmVmUHRyPFNoYXJlZEJ1ZmZlcj5gKSBpcyByZXBsYWNlZCBieSBG
b250Q3JlYXRpb25QYXJhbWV0ZXJzLCB3aGljaAorICAgICAgICBjb250YWluIHRoZSBgUmVmPFNo
YXJlZEJ1ZmZlcj5gIGFsb25nIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBuZWVkZWQgdG8g
cmVjb25zdHJ1Y3QgdGhlIEZvbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisKKyAgICAgICAgSW50cm9kdWNlIEZvbnRD
cmVhdGlvblBhcmFtZXRlcnMsIHdoaWNoIGVuY2Fwc3VsYXRlcyB0aGUgcGllY2VzIG9mIGluZm9y
bWF0aW9uIHRoYXQgZ28gaW50byBjcmVhdGluZyBhCisgICAgICAgIFdlYkNvcmU6OkZvbnQgYmFj
a2VkIGJ5IHBsYXRmb3JtIGZvbnQgZGF0YS4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91
dCBmb250IGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMsCisgICAgICAgIHN5bnRoZXRpYyBib2xk
IGFuZCBpdGFsaWMsIGFzIHdlbGwgYXMgdGhlIGZvbnQgZGVzY3JpcHRpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENyZWF0aW9uUGFyYW1ldGVyczo6b3BlcmF0b3I9KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmg6IEFk
ZGVkLgorCisgICAgICAgIERlY2xhcmUgc2V2ZXJhbCBjb25zdHJ1Y3RvcnMgYW5kIGFzc2lnbm1l
bnQgb3BlcmF0b3JzIGluIHRoZSBoZWFkZXIsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIGhhdmluZyB0
byAjaW5jbHVkZQorICAgICAgICBTaGFyZWRCdWZmZXIuaCBpbiB0aGlzIGhlYWRlciAoYW5kIGlu
c3RlYWQsIGp1c3QgdXNlIGEgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBTaGFyZWRCdWZmZXIpLgor
CiAyMDIwLTAxLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCBlbmNvZGVycyBhbmQgZGVjb2RlcnMgZm9yIG1vcmUgZm9udC1yZWxh
dGVkIGVudGl0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwYjA1ODZhNjQwNDgxNWU3MTUwYzFmMTM5MzhjYTI4
N2Q0ZjQxMDUuLjhiMGQ3YmFiMzc1MGEwNmQ5NzA2NTIyMjg3NDJkZDU3MmQ0YzEzODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMDEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcg
dGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU4NDk4NTcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZHMgc3VwcG9ydCBmb3IgZW5jb2RpbmcgRm9udENyZWF0aW9uUGFyYW1ldGVycywg
YW5kIGFjY291bnQgZm9yIHRoZXNlIGZvbnQgY3JlYXRpb24gcGFyYW1ldGVycyB3aGVuCisgICAg
ICAgIGVuY29kaW5nIGFuZCBkZWNvZGluZyBhIEZvbnRIYW5kbGUuIFNlZSBXZWJDb3JlIENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVB
cmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRI
YW5kbGU+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorCisgICAgICAgIEFkZGl0aW9uYWxs
eSBjaGFuZ2UgdGhlIGRlY29kZXIgdG8gcmV0dXJuIGFuIGBPcHRpb25hbDxGb250SGFuZGxlPmAs
IHJhdGhlciB0aGFuIGEgYGJvb2xgICh3aXRoIHRoZQorICAgICAgICBgRm9udEhhbmRsZSZgIHBh
c3NlZCBpbiBhcyBhbiBhcmd1bWVudCkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250Q3JlYXRpb25QYXJhbWV0
ZXJzPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisKIDIwMjAtMDEtMDkgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qgc2hvdWxkIHVzZSBBY2Nlc3Np
YmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCAyOTZkZWE3ODMxYmVlNDljZjAwNGE2ODJkZDI1ZTg5M2I5OTY0ZTc3Li4xMDJjOGY2ZjgyNGQz
NGNlMjBlYTllNjc4ZGNmYmFhMjFiYjJkYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNDEs
NiArMTA0MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhc2NhZGVEZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGVG
b250cy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0aW9uUGFyYW1ldGVycy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRNZXRyaWNzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNDExMjE1NTdhZTZmMzVkYjlhZDVmNGMx
ZThhY2NjYTA4NjYzZTZmYi4uNzYyZjI5NDEyZThhZWFjM2UzMDM1YTQ0MTE1NGM3ODRlMTAzYjgy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4NDYsNiArMTg0Niw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlRm9udHMuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZhbWlseVNwZWNpZmljYXRpb25OdWxsLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFNlbGVjdGlvbkFsZ29yaXRobS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZTI4YjU3ZGM3NDRjOTgyZWFl
NzEwMWE2MjJiYjE3OTBiYzlmYjcyLi4zODg3ZDRjM2I2ZWZlNDVjODVkN2UyMDdhMzJmZmU0OTNi
OTQ0MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC00OTY3LDYgKzQ5NjcsNyBAQAogCQlGNEQ0M0Q2NjIxODgwMzhCMDBFQ0VD
QUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2VyaWFs
aXplZEF0dGFjaG1lbnREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRjRFNTdFREMyMTNGM0Y1RjAwNEVBOThFIC8qIEZvbnRBdHRyaWJ1dGVD
aGFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEU1N0VEQTIxM0YzRjVGMDA0RUE5OEUgLyogRm9udEF0dHJpYnV0ZUNoYW5nZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEU1N0VFMTIxM0Y0
MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTU3RURGMjEzRjQzNEEwMDRFQTk4
RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY0RUM3NDBEMjNDNThENjUwMDBBNDhBMiAvKiBG
b250Q3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEVDNzQwQzIzQzU4RDY1MDAwQTQ4QTIgLyogRm9udENyZWF0aW9uUGFy
YW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0RkIzNEZDMjM1MEM4NUQwMEYwMDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGQjM0RkEyMzUw
Qzg1RDAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU0NjYsNiArMTU0
NjcsOCBAQAogCQlGNEU1N0VEQTIxM0YzRjVGMDA0RUE5OEUgLyogRm9udEF0dHJpYnV0ZUNoYW5n
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEF0dHJpYnV0ZUNoYW5nZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFREYyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0Zv
bnRNYW5hZ2VyRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0
cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RUUwMjEzRjQzNEEwMDRF
QTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNEVDNzQwQzIzQzU4RDY1MDAwQTQ4QTIgLyogRm9udENyZWF0aW9uUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY0RUM3NDBGMjNDNjQ0NkYwMDBBNDhBMiAvKiBGb250Q3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEZCMzRGQTIzNTBDODVEMDBG
MDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2Fy
ZEN1c3RvbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGQjM0RkIyMzUw
Qzg1RDAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBhc3RlYm9hcmRDdXN0b21EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRGQjM1MDAyMzUwQzk2MjAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwMjcsNiArMjUwMzAsOCBAQAogCQkJCUU0
RThCNEYyMjE2QjhCNjAwMEI4ODM0RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggKi8sCiAJ
CQkJQjJDM0RBNTYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuY3BwICovLAog
CQkJCUIyQzNEQTU3MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggKi8sCisJ
CQkJRjRFQzc0MEYyM0M2NDQ2RjAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICovLAorCQkJCUY0RUM3NDBDMjNDNThENjUwMDBBNDhBMiAvKiBGb250Q3JlYXRpb25QYXJhbWV0
ZXJzLmggKi8sCiAJCQkJMzdBQ0NFNjIwREEyQUE5NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlv
bi5jcHAgKi8sCiAJCQkJQjJDM0RBNTUwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNjcmlwdGlv
bi5oICovLAogCQkJCUMyODBCM0ZEMUVGNDYwODkwMEQzNTEzNSAvKiBGb250RmFtaWx5U3BlY2lm
aWNhdGlvbk51bGwuY3BwICovLApAQCAtMjk5NTUsNiArMjk5NjAsNyBAQAogCQkJCUIyQzNEQTYx
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRF
OEI0RjUyMTZCOTU2NTAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEVDNzQwRDIzQzU4RDY1MDAwQTQ4QTIgLyogRm9udENy
ZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAw
MzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTY2MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDNjYyNjExMUM2RTdDQTYwMEFCNTI3QyAvKiBGb250RmFjZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAwODkxZGI0ZTAzMWRiZGIwZDlm
YmJkNDNiNjk3NTkxZDZkZGRkZDcxLi5lNmNhMjJiOGZkMDc1NGYzZjE2YjcyYWE2NWRmNTRhOGM4
MjZlZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTY3NSwxMSArNjc1LDgg
QEAgUmVmUHRyPEZvbnQ+IENTU0ZvbnRGYWNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBib29sIHN5bnQKICAgICAgICAgICAgIHJldHVybiBGb250OjpjcmVh
dGUoRm9udENhY2hlOjpzaW5nbGV0b24oKS5sYXN0UmVzb3J0RmFsbGJhY2tGb250KGZvbnREZXNj
cmlwdGlvbiktPnBsYXRmb3JtRGF0YSgpLCBGb250OjpPcmlnaW46OkxvY2FsLCBGb250OjpJbnRl
cnN0aXRpYWw6OlllcywgdmlzaWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NG
b250RmFjZVNvdXJjZTo6U3RhdHVzOjpTdWNjZXNzOgotICAgICAgICAgICAgaWYgKGF1dG8gcmVz
dWx0ID0gc291cmNlLT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhl
dGljSXRhbGljLCBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVz
KSkgewotICAgICAgICAgICAgICAgIGF1dG8qIGNhY2hlZEZvbnQgPSBzb3VyY2UtPmNhY2hlZEZv
bnQoKTsKLSAgICAgICAgICAgICAgICByZXN1bHQtPnNldEZvbnRGYWNlRGF0YShjYWNoZWRGb250
ID8gY2FjaGVkRm9udC0+cmVzb3VyY2VCdWZmZXIoKSA6IG51bGxwdHIpOworICAgICAgICAgICAg
aWYgKGF1dG8gcmVzdWx0ID0gc291cmNlLT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljLCBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9u
Q2FwYWJpbGl0aWVzKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6
OlN0YXR1czo6RmFpbHVyZToKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuaAppbmRleCBkOGE2MmI3YTRjNWE2NzI1YzkxODIzYzBlOWQ3N2RlMDc0
Yzc4ZTRlLi5lNGEyZWQ5Njg2MjIxNzhhODk5MjdhM2UyZWMzYjk5NWM2OGYyOTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaApAQCAtNzIsNyArNzIsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsb2FkKENTU0ZvbnRTZWxlY3RvciopOwogICAgIFJlZlB0cjxGb250PiBmb250
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lm
aWVkQ2FwYWJpbGl0aWVzKTsKIAotICAgIENhY2hlZEZvbnQqIGNhY2hlZEZvbnQoKSBjb25zdCB7
IHJldHVybiBtX2ZvbnQuZ2V0KCk7IH0KICAgICBib29sIHJlcXVpcmVzRXh0ZXJuYWxSZXNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAppbmRleCAzZjQ2OTljZjgz
Mjk4ZjA0ZTI3NGFlMDBlZjk1YTU1NDc1YTY1ZjNkLi43YzBlNjlkMzRlNjhmZTE0ODg4ZTNmNGY5
ZjA1NzY5NmJkODc1ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuY3BwCkBAIC0xMjQsOSArMTI0LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxh
dGZvcm1EYXRhPiBDYWNoZWRGb250OjpjcmVhdGVDdXN0b21Gb250RGF0YShTaGFyZWRCCiAgICAg
cmV0dXJuIGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoYnl0ZXMsIGl0ZW1JbkNvbGxlY3Rp
b24pOwogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGlu
Z3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMg
Zm9udEZhY2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmlu
ZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBj
b25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQogewotICAgIHJldHVy
biBGb250OjpjcmVhdGUocGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2NyaXB0aW9u
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRG
YWNlQ2FwYWJpbGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUpOworICAgIGF1dG8gZm9udCA9
IEZvbnQ6OmNyZWF0ZShwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24s
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZh
Y2VDYXBhYmlsaXRpZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CisgICAgaWYgKG1fZGF0YSkK
KyAgICAgICAgZm9udC0+c2V0Rm9udENyZWF0aW9uUGFyYW1ldGVycyh7ICptX2RhdGEsIGZvbnRE
ZXNjcmlwdGlvbiwgcmVtb3RlVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZv
bnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzIH0pOworICAgIHJldHVybiBmb250
OwogfQogCiBGb250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0
b21EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVz
LCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA4OTc5YjI1
OGE3MTE4NTU1MzczMzIzMDhmOTAyOWVhNjNmYWNmMWM4Li40MjM2MmJmYTdhZGFmMTRkYzU1N2Ew
ZWJlNmY4NzMwNDRlMzE2MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcApAQCAtNzA4LDE4ICs3MDgsMTYgQEAgY29uc3QgUGF0aCYgRm9udDo6cGF0aEZvckds
eXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIHJldHVybiAqbV9nbHlwaFBhdGhNYXAuZXhpc3Rp
bmdNZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOwogfQogCi12b2lkIEZvbnQ6OnNldEZvbnRGYWNlRGF0
YShSZWZQdHI8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSkKK3ZvaWQgRm9udDo6c2V0Rm9u
dENyZWF0aW9uUGFyYW1ldGVycyhGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
IHsKLSAgICBtX2ZvbnRGYWNlRGF0YSA9IFdURk1vdmUoZm9udEZhY2VEYXRhKTsKKyAgICBtX2Zv
bnRDcmVhdGlvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpOwogfQogCi1Gb250SGFu
ZGxlOjpGb250SGFuZGxlKFJlZjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhLCBGb250OjpP
cmlnaW4gb3JpZ2luLCBmbG9hdCBmb250U2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY0l0YWxpYykKK0ZvbnRIYW5kbGU6OkZvbnRIYW5kbGUoRm9udENyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYm9vbCB3cmFwcGluZzsKLSAgICBhdXRvIGN1c3Rv
bUZvbnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoZm9udEZhY2VEYXRh
LmdldCgpLCB7IH0sIHdyYXBwaW5nKTsKLSAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb247
Ci0gICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLSAgICBmb250ID0g
Rm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCpjdXN0
b21Gb250RGF0YSwgZGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywg
eyB9LCB7IH0pLCBvcmlnaW4pOworICAgIGF1dG8gY3VzdG9tRm9udERhdGEgPSBDYWNoZWRGb250
OjpjcmVhdGVDdXN0b21Gb250RGF0YShwYXJhbWV0ZXJzLmRhdGEsIHsgfSwgd3JhcHBpbmcpOwor
ICAgIGZvbnQgPSBGb250OjpjcmVhdGUoQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoKmN1c3RvbUZvbnREYXRhLCBwYXJhbWV0ZXJzLmRlc2NyaXB0aW9uLCBwYXJhbWV0ZXJz
LnN5bnRoZXRpY0JvbGQsIHBhcmFtZXRlcnMuc3ludGhldGljSXRhbGljLCBwYXJhbWV0ZXJzLmZl
YXR1cmVzLCBwYXJhbWV0ZXJzLmNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCmluZGV4IDBjOTUyNTlmNzI0M2IxMzM0NzMwNjU0NTc4MGJhODc5MjBiZGFkOGYu
LjM3YTcxMjBlYzc2ZTYyZTMyNzQyNWEzOTUxZTA1MzUwYjcxMWM4ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTI1LDYgKzI1LDcgQEAKICNkZWZpbmUgRm9u
dF9oCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25QYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiRm9udE1ldHJpY3MuaCIKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJPcGVuVHlwZVZlcnRpY2FsRGF0YS5oIgogI2VuZGlmCiAjaW5jbHVkZSA8d3RmL0Jp
dFZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC01NCw3ICs1Niw2
IEBAIGludGVyZmFjZSBJRFdyaXRlR2RpSW50ZXJvcDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgR2x5cGhQYWdlOwotY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU2hhcmVkQnVm
ZmVyOwogc3RydWN0IEdseXBoRGF0YTsKIHN0cnVjdCBXaWR0aEl0ZXJhdG9yOwpAQCAtMjE4LDgg
KzIxOSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50Q29uc2lkZXJpbmdNYWNB
c2NlbnRIYWNrKGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50KTsKICNl
bmRpZgogCi0gICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBjb25zdCB7IHJldHVybiBt
X2ZvbnRGYWNlRGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxT
aGFyZWRCdWZmZXI+JiYpOworICAgIGJvb2wgaGFzRm9udENyZWF0aW9uUGFyYW1ldGVycygpIGNv
bnN0IHsgcmV0dXJuIG1fZm9udENyZWF0aW9uUGFyYW1ldGVycy5oYXNWYWx1ZSgpOyB9CisgICAg
Y29uc3QgRm9udENyZWF0aW9uUGFyYW1ldGVycyYgZm9udENyZWF0aW9uUGFyYW1ldGVycygpIGNv
bnN0IHsgcmV0dXJuICptX2ZvbnRDcmVhdGlvblBhcmFtZXRlcnM7IH0KKyAgICB2b2lkIHNldEZv
bnRDcmVhdGlvblBhcmFtZXRlcnMoRm9udENyZWF0aW9uUGFyYW1ldGVycyYmKTsKIAogcHJpdmF0
ZToKICAgICBXRUJDT1JFX0VYUE9SVCBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmLCBPcmln
aW4sIEludGVyc3RpdGlhbCwgVmlzaWJpbGl0eSwgT3JpZW50YXRpb25GYWxsYmFjayk7CkBAIC0y
OTQsNyArMjk2LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFNDUklQVF9GT05UUFJPUEVSVElF
UyogbV9zY3JpcHRGb250UHJvcGVydGllczsKICNlbmRpZgogCi0gICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gbV9mb250RmFjZURhdGE7CisgICAgT3B0aW9uYWw8Rm9udENyZWF0aW9uUGFyYW1ldGVy
cz4gbV9mb250Q3JlYXRpb25QYXJhbWV0ZXJzOwogCiAgICAgR2x5cGggbV9zcGFjZUdseXBoIHsg
MCB9OwogICAgIEdseXBoIG1femVyb0dseXBoIHsgMCB9OwpAQCAtMzI5LDcgKzMzMSw3IEBAIHBy
aXZhdGU6CiBjbGFzcyBGb250SGFuZGxlIHsKIHB1YmxpYzoKICAgICBGb250SGFuZGxlKCkgPSBk
ZWZhdWx0OwotICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRIYW5kbGUoUmVmPFNoYXJlZEJ1ZmZlcj4m
JiBmb250RmFjZURhdGEsIEZvbnQ6Ok9yaWdpbiwgZmxvYXQgZm9udFNpemUsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpOworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRI
YW5kbGUoRm9udENyZWF0aW9uUGFyYW1ldGVycyYmKTsKIAogICAgIFJlZlB0cjxGb250PiBmb250
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENyZWF0aW9uUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkYTUyZWE0ZjA2YTQ3NGMx
ZGEyNTVlNTVjZWYzYWFmYTI0NDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udENy
ZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworRm9udENyZWF0aW9uUGFyYW1ldGVyczo6Rm9udENyZWF0aW9uUGFy
YW1ldGVycyhSZWY8U2hhcmVkQnVmZmVyPiYmIGZvbnREYXRhLCBjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYgdXJpLCBib29sIGJvbGQsIGJv
b2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmVhdHVyZXMsIGNvbnN0
IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmIGZvbnRDYXBhYmlsaXRpZXMpCisg
ICAgOiBkYXRhKFdURk1vdmUoZm9udERhdGEpKQorICAgICwgZGVzY3JpcHRpb24oZm9udERlc2Ny
aXB0aW9uKQorICAgICwgcmVtb3RlVVJJKHVyaSkKKyAgICAsIHN5bnRoZXRpY0JvbGQoYm9sZCkK
KyAgICAsIHN5bnRoZXRpY0l0YWxpYyhpdGFsaWMpCisgICAgLCBmZWF0dXJlcyhmb250RmVhdHVy
ZXMpCisgICAgLCBjYXBhYmlsaXRpZXMoZm9udENhcGFiaWxpdGllcykKK3sKK30KKworRm9udENy
ZWF0aW9uUGFyYW1ldGVyczo6Rm9udENyZWF0aW9uUGFyYW1ldGVycyhjb25zdCBGb250Q3JlYXRp
b25QYXJhbWV0ZXJzJiBvdGhlcikKKyAgICA6IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMob3RoZXIu
ZGF0YS5jb3B5UmVmKCksIG90aGVyLmRlc2NyaXB0aW9uLCBvdGhlci5yZW1vdGVVUkksIG90aGVy
LnN5bnRoZXRpY0JvbGQsIG90aGVyLnN5bnRoZXRpY0l0YWxpYywgb3RoZXIuZmVhdHVyZXMsIG90
aGVyLmNhcGFiaWxpdGllcykKK3sKK30KKworRm9udENyZWF0aW9uUGFyYW1ldGVycyYgRm9udENy
ZWF0aW9uUGFyYW1ldGVyczo6b3BlcmF0b3I9KGNvbnN0IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMm
IG90aGVyKQoreworICAgIGRhdGEgPSBvdGhlci5kYXRhLmNvcHlSZWYoKTsKKyAgICBkZXNjcmlw
dGlvbiA9IG90aGVyLmRlc2NyaXB0aW9uOworICAgIHJlbW90ZVVSSSA9IG90aGVyLnJlbW90ZVVS
STsKKyAgICBzeW50aGV0aWNCb2xkID0gb3RoZXIuc3ludGhldGljQm9sZDsKKyAgICBzeW50aGV0
aWNJdGFsaWMgPSBvdGhlci5zeW50aGV0aWNJdGFsaWM7CisgICAgZmVhdHVyZXMgPSBvdGhlci5m
ZWF0dXJlczsKKyAgICBjYXBhYmlsaXRpZXMgPSBvdGhlci5jYXBhYmlsaXRpZXM7CisgICAgcmV0
dXJuICp0aGlzOworfQorCitGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiBGb250Q3JlYXRpb25QYXJh
bWV0ZXJzOjpvcGVyYXRvcj0oRm9udENyZWF0aW9uUGFyYW1ldGVycyYmKSA9IGRlZmF1bHQ7CitG
b250Q3JlYXRpb25QYXJhbWV0ZXJzOjpGb250Q3JlYXRpb25QYXJhbWV0ZXJzKEZvbnRDcmVhdGlv
blBhcmFtZXRlcnMmJikgPSBkZWZhdWx0OworRm9udENyZWF0aW9uUGFyYW1ldGVyczo6fkZvbnRD
cmVhdGlvblBhcmFtZXRlcnMoKSA9IGRlZmF1bHQ7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0
aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENy
ZWF0aW9uUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzZDczMDY3OGMyNmIzY2JmMWUxOGEwNWRm
ODQyZWM1NTE1Mjc2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK3N0cnVjdCBGb250
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250Q3JlYXRpb25QYXJh
bWV0ZXJzKFJlZjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0
IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBj
b25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENh
cGFiaWxpdGllcyYpOworICAgIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMoY29uc3QgRm9udENyZWF0
aW9uUGFyYW1ldGVycyYpOworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRDcmVhdGlvblBhcmFtZXRl
cnMoRm9udENyZWF0aW9uUGFyYW1ldGVycyYmKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIH5Gb250
Q3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICBGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiBvcGVy
YXRvcj0oY29uc3QgRm9udENyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIFdFQkNPUkVfRVhQT1JU
IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmIG9wZXJhdG9yPShGb250Q3JlYXRpb25QYXJhbWV0ZXJz
JiYpOworCisgICAgUmVmPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKKyAgICBGb250RGVzY3JpcHRpb24g
ZGVzY3JpcHRpb247CisgICAgQXRvbVN0cmluZyByZW1vdGVVUkk7CisgICAgYm9vbCBzeW50aGV0
aWNCb2xkOworICAgIGJvb2wgc3ludGhldGljSXRhbGljOworICAgIEZvbnRGZWF0dXJlU2V0dGlu
Z3MgZmVhdHVyZXM7CisgICAgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBjYXBh
YmlsaXRpZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmlu
ZGV4IDFjMTVhMjFiZjc0MzQwYWM0MmE1NmJhZTViYWQxOWYyZDM5N2M0YjcuLjhhYmY4ZDJiMTFj
OTlmNThlYzBiNDE0OGE3ZjA0MDAxOTUyNDkzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC00ODEs
MjcgKzQ4MSwyOCBAQCBPcHRpb25hbDxGb250QXR0cmlidXRlcz4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGb250QXR0cmlidXRlcz46OmRlY29kZVBsYXRmb3JtRAogCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8Rm9udEhhbmRsZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBGb250SGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgYXV0byBjdEZvbnQgPSBoYW5kbGUuZm9udCAm
JiAhaGFuZGxlLmZvbnQtPmZvbnRGYWNlRGF0YSgpID8gaGFuZGxlLmZvbnQtPmdldENURm9udCgp
IDogbmlsOworICAgIGF1dG8gY3RGb250ID0gaGFuZGxlLmZvbnQgPyBoYW5kbGUuZm9udC0+Z2V0
Q1RGb250KCkgOiBuaWw7CiAgICAgZW5jb2RlciA8PCAhIWN0Rm9udDsKICAgICBpZiAoY3RGb250
KQogICAgICAgICBlbmNvZGVyIDw8IChfX2JyaWRnZSBDb2NvYUZvbnQgKiljdEZvbnQ7CiB9CiAK
LWJvb2wgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29k
ZXImIGRlY29kZXIsIEZvbnRIYW5kbGUmIGhhbmRsZSkKK09wdGlvbmFsPEZvbnRIYW5kbGU+IEFy
Z3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIGJvb2wgaGFzUGxhdGZvcm1Gb250OwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzUGxhdGZvcm1Gb250KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKCFoYXNQbGF0Zm9ybUZvbnQpCi0gICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICByZXR1cm4gRm9udEhhbmRsZSgpOwogCiAgICAgUmV0YWluUHRy
PENvY29hRm9udD4gZm9udDsKICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGZvbnQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAg
ICBoYW5kbGUuZm9udCA9IEZvbnQ6OmNyZWF0ZSh7IChfX2JyaWRnZSBDVEZvbnRSZWYpZm9udC5n
ZXQoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KFtmb250IHBvaW50U2l6ZV0pIH0pOwotICAgIHJldHVy
biB0cnVlOworICAgIEZvbnRIYW5kbGUgcmVzdWx0OworICAgIHJlc3VsdC5mb250ID0gRm9udDo6
Y3JlYXRlKHsgKF9fYnJpZGdlIENURm9udFJlZilmb250LmdldCgpLCBzdGF0aWNfY2FzdDxmbG9h
dD4oW2ZvbnQgcG9pbnRTaXplXSkgfSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCA4ZTA4YTMzZGRkMWVlNDRiOTIzNjdiY2RkOWQxMjFmZmMwNmFkNTU3Li42
OTVlZjhiNzI0OTM4Yzc5ZTQ0MTNmOWUzMTE4M2ZhZmJhZGVjOTUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZvbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lEQkdldFJlc3VsdC5oPgpAQCAtMTEyOCw2NyArMTEyOSw0NSBAQCBib29s
IEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgTmF0aXZlSW1hZ2VIYW5kbAogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGb250SGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAg
ZW5jb2RlciA8PCAhIWhhbmRsZS5mb250OwotICAgIGlmICghaGFuZGxlLmZvbnQpCisgICAgYXV0
byYgZm9udCA9IGhhbmRsZS5mb250OworICAgIGVuY29kZXIgPDwgISFmb250OworICAgIGlmICgh
Zm9udCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogZm9udEZhY2VEYXRhID0gaGFuZGxl
LmZvbnQtPmZvbnRGYWNlRGF0YSgpOwotICAgIGVuY29kZXIgPDwgISFmb250RmFjZURhdGE7Ci0g
ICAgaWYgKGZvbnRGYWNlRGF0YSkgewotICAgICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2Rl
ciwgZm9udEZhY2VEYXRhKTsKLSAgICAgICAgYXV0byYgZGF0YSA9IGhhbmRsZS5mb250LT5wbGF0
Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAgZW5j
b2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnN5
bnRoZXRpY09ibGlxdWUoKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPmhhc0ZvbnRDcmVhdGlvblBh
cmFtZXRlcnMoKTsKKyAgICBpZiAoZm9udC0+aGFzRm9udENyZWF0aW9uUGFyYW1ldGVycygpKSB7
CisgICAgICAgIGVuY29kZXIgPDwgZm9udC0+Zm9udENyZWF0aW9uUGFyYW1ldGVycygpOworICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIGhh
bmRsZSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIEZvbnRIYW5kbGUmIGhhbmRsZSkKK09wdGlvbmFsPEZvbnRIYW5kbGU+IEFy
Z3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IE9wdGlvbmFsPGJvb2w+IGhhc0ZvbnQ7CiAgICAgZGVjb2RlciA+PiBoYXNGb250OwogICAgIGlm
ICghaGFzRm9udC5oYXNWYWx1ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBpZiAoIWhhc0ZvbnQudmFsdWUoKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBPcHRpb25hbDxib29sPiBoYXNGb250RmFjZURhdGE7Ci0gICAg
ZGVjb2RlciA+PiBoYXNGb250RmFjZURhdGE7Ci0gICAgaWYgKCFoYXNGb250RmFjZURhdGEuaGFz
VmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGhhc0ZvbnRGYWNlRGF0
YS52YWx1ZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZvbnRGYWNlRGF0YTsK
LSAgICAgICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgZm9udEZhY2VEYXRhKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoIWZvbnRGYWNlRGF0YSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gZm9u
dFNpemU7Ci0gICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7Ci0gICAgICAgIGlmICghZm9udFNp
emUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBGb250SGFuZGxl
KCk7CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKLSAgICAgICAgZGVj
b2RlciA+PiBzeW50aGV0aWNCb2xkOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udENyZWF0aW9u
UGFyYW1ldGVyczsKKyAgICBkZWNvZGVyID4+IGhhc0ZvbnRDcmVhdGlvblBhcmFtZXRlcnM7Cisg
ICAgaWYgKCFoYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmhhc1ZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljSXRh
bGljOwotICAgICAgICBkZWNvZGVyID4+IHN5bnRoZXRpY0l0YWxpYzsKLSAgICAgICAgaWYgKCFz
eW50aGV0aWNJdGFsaWMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc0Zv
bnRDcmVhdGlvblBhcmFtZXRlcnMudmFsdWUoKSkgeworICAgICAgICBPcHRpb25hbDxGb250Q3Jl
YXRpb25QYXJhbWV0ZXJzPiBmb250Q3JlYXRpb25QYXJhbWV0ZXJzOworICAgICAgICBkZWNvZGVy
ID4+IGZvbnRDcmVhdGlvblBhcmFtZXRlcnM7CisgICAgICAgIGlmICghZm9udENyZWF0aW9uUGFy
YW1ldGVycykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgRm9u
dERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uOwotICAgICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRl
ZFNpemUoKmZvbnRTaXplKTsKLSAgICAgICAgaGFuZGxlID0geyBmb250RmFjZURhdGEucmVsZWFz
ZU5vbk51bGwoKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUsICpmb250U2l6ZSwgKnN5bnRoZXRpY0Jv
bGQsICpzeW50aGV0aWNJdGFsaWMgfTsKKyAgICAgICAgcmV0dXJuIHt7IFdURk1vdmUoKmZvbnRD
cmVhdGlvblBhcmFtZXRlcnMpIH19OwogICAgIH0KIAotICAgIHJldHVybiBkZWNvZGVQbGF0Zm9y
bURhdGEoZGVjb2RlciwgaGFuZGxlKTsKKyAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRl
Y29kZXIpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEN1cnNvciYgY3Vyc29yKQpAQCAtMzE0MSw2ICszMTIwLDU2IEBAIE9w
dGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVudENvZGVyPEZvbnRBdHRyaWJ1dGVzPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiB9CiAKK3ZvaWQg
QXJndW1lbnRDb2RlcjxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAg
ZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIsIHBhcmFtZXRlcnMuZGF0YS5wdHIoKSk7CisgICAg
ZW5jb2RlciA8PCBwYXJhbWV0ZXJzLmRlc2NyaXB0aW9uOworICAgIGVuY29kZXIgPDwgcGFyYW1l
dGVycy5yZW1vdGVVUkk7CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLnN5bnRoZXRpY0JvbGQ7
CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLnN5bnRoZXRpY0l0YWxpYzsKKyAgICBlbmNvZGVy
IDw8IHBhcmFtZXRlcnMuZmVhdHVyZXM7CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLmNhcGFi
aWxpdGllczsKK30KKworT3B0aW9uYWw8Rm9udENyZWF0aW9uUGFyYW1ldGVycz4gQXJndW1lbnRD
b2RlcjxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKKyAgICBpZiAoIWRlY29kZVNoYXJlZEJ1
ZmZlcihkZWNvZGVyLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPEZvbnREZXNjcmlwdGlvbj4gZGVzY3JpcHRpb247CisgICAgZGVjb2RlciA+PiBk
ZXNjcmlwdGlvbjsKKyAgICBpZiAoIWRlc2NyaXB0aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8QXRvbVN0cmluZz4gcmVtb3RlVVJJOworICAgIGRlY29k
ZXIgPj4gcmVtb3RlVVJJOworICAgIGlmICghcmVtb3RlVVJJKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKKyAgICBkZWNv
ZGVyID4+IHN5bnRoZXRpY0JvbGQ7CisgICAgaWYgKCFzeW50aGV0aWNCb2xkKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljSXRhbGlj
OworICAgIGRlY29kZXIgPj4gc3ludGhldGljSXRhbGljOworICAgIGlmICghc3ludGhldGljSXRh
bGljKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Rm9udEZl
YXR1cmVTZXR0aW5ncz4gZmVhdHVyZXM7CisgICAgZGVjb2RlciA+PiBmZWF0dXJlczsKKyAgICBp
ZiAoIWZlYXR1cmVzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8Rm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzOworICAg
IGRlY29kZXIgPj4gY2FwYWJpbGl0aWVzOworICAgIGlmICghY2FwYWJpbGl0aWVzKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IGRhdGEucmVsZWFzZU5vbk51
bGwoKSwgKmRlc2NyaXB0aW9uLCAqcmVtb3RlVVJJLCAqc3ludGhldGljQm9sZCwgKnN5bnRoZXRp
Y0l0YWxpYywgKmZlYXR1cmVzLCAqY2FwYWJpbGl0aWVzIH19OworfQorCiAjaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKIAogdm9pZCBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YT46OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNl
cmlhbGl6ZWRBdHRhY2htZW50RGF0YSYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMzQ4MmQwNTBlNGJlZmMxMDJlMzE2ZDAxOThiMDA0
ZWY2MDg0NTFiZS4uMmE5NTRhOTdmYTAyMzQ0MDA1MTlhYzk0YmRiM2FiNDJkOGM4NmJjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTExMyw2
ICsxMTMsNyBAQCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFdmVudFRyYWNr
aW5nUmVnaW9uczsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZvbnRBdHRyaWJ1
dGVzOworc3RydWN0IEZvbnRDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgRmlsZUNob29zZXJT
ZXR0aW5nczsKIHN0cnVjdCBTaGFyZURhdGE7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVS
TDsKQEAgLTM4Miw5ICszODMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDdXJzb3I+IHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGb250SGFuZGxlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpGb250SGFuZGxlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpGb250SGFuZGxlJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkZv
bnRIYW5kbGU+IGRlY29kZShEZWNvZGVyJik7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlUGxhdGZv
cm1EYXRhKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGb250SGFuZGxlJik7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpGb250SGFuZGxlJik7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkZvbnRIYW5kbGU+IGRlY29kZVBsYXRmb3Jt
RGF0YShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnM+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBz
dGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Rm9udENyZWF0aW9uUGFyYW1ldGVycz4gZGVjb2RlKERl
Y29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
SW1hZ2VIYW5kbGU+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYTg2MzE2ODk1NGIxYjhlYTgyZjQ4ODZhODkyODc0MjA2
MTE3MDZiLi40YzM2MmQyOTZkNjFhMmU4OGI3MTA5YmNlODg5MTE0NGQwMDUwNGMzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMjAtMDEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBp
biAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4
NDk4NTcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBuZXcgbGF5b3V0IHRlc3QgdGhhdCB1c2VzIGEgZm9udCBmYWNlIHdpdGggYGZvbnQt
ZmVhdHVyZS1zZXR0aW5nczogInRpdGwiIDFgIHRvIHBhaW50IHRleHQgb250byBhIGNhbnZhcy4K
KyAgICAgICAgV2hpbGUgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlIHdpdGggdGhpcyBwYXRj
aCAoc2luY2UgdGhlIGxvZ2ljIHRvIGFjdHVhbGx5IHVzZSB0aGUgR1BVIHByb2Nlc3MgdG8gcGFp
bnQKKyAgICAgICAgdGhlIGNhbnZhcyBlbGVtZW50IGhhc24ndCBiZWVuIGFkZGVkIHlldCksIHdl
IHNob3VsZCBiZSBhYmxlIHRvIHVuc2tpcCB0aGlzIG5ldyB0ZXN0IGluIHRoZSBmdXR1cmUgd2hl
biBydW5uaW5nCisgICAgICAgIGxheW91dCB0ZXN0cyB3aXRoIHRoZSBHUFUgcHJvY2VzcyBlbmFi
bGVkLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJl
cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQt
d2l0aC1mb250LWZlYXR1cmVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3Jl
c291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZjogQWRkZWQuCisKIDIwMjAtMDEtMDkgIFBhYmxv
IFNhYXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgQmFkIGJhc2VsaW5l
IGZvciBDYXRhbGluYSBvbiB4aHIgd2ViLXBsYXRmb3JtLXRlc3RzIGltcG9ydGVkIGluIHIyNTQx
NTQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZv
bnQtZmVhdHVyZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwt
dGV4dC13aXRoLWZvbnQtZmVhdHVyZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDNkNzM0
ZDA4MThlYzZhOWI1MzA5NTUzN2Q4ZGNmM2Y4YzMwZTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOwor
ICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYiKSBmb3JtYXQoInRy
dWV0eXBlIik7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIHNl
ZSBhIHJvdyBvZiAzIGNoZWNrIG1hcmtzIGZvbGxvd2VkIGJ5IGEgcm93IG9mIDMgY3Jvc3NlcyBi
ZWxvdy48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICBhd2FpdCBkb2N1bWVudC5mb250cy5sb2FkKCI4MHB4IFNwZWNpYWxGb250Iik7CisgICAgY29u
c3QgY29udGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpLmdldENvbnRleHQo
IjJkIik7CisgICAgY29udGV4dC5mb250ID0gIjgwcHggU3BlY2lhbEZvbnQiOworICAgIGNvbnRl
eHQuZmlsbFRleHQoImJiYiIsIDEwMCwgMTAwKTsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEi
LCAxMDAsIDIwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZDhj
NWRkMmU3ZTViNzQ5YjkzZjQ4N2RiODE2MWE3OTdhZGJhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWwK
QEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9udCI7CisgICAgc3Jj
OiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUi
KTsKKyAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJ0aXRsIiAxOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHA+WW91IHNob3VsZCBzZWUgYSByb3cgb2YgMyBjaGVjayBtYXJrcyBm
b2xsb3dlZCBieSBhIHJvdyBvZiAzIGNyb3NzZXMgYmVsb3cuPC9wPgorPGNhbnZhcyB3aWR0aD0i
NDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9h
ZCgiODBweCBTcGVjaWFsRm9udCIpOworICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9
ICI4MHB4IFNwZWNpYWxGb250IjsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAsIDEw
MCk7CisgICAgY29udGV4dC5maWxsVGV4dCgiY2NjIiwgMTAwLCAyMDApOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9Gb250V2l0aEZlYXR1
cmVzLnR0ZiBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9Gb250V2l0aEZlYXR1
cmVzLnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MmMzMzJhMTNjYzEwMjkzOTU2Yjk4ODY2ZjcyMzBiZTdiNWRm
OTFlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjMyNAp6Y21lSE5VMShnIzc1LS1id0pTQHF7
JXAmI3lwfDxkUz0qQWxtU3ghJSFnZHRuI0JPOVByREBhQnZYKWtvPnlAPlkKelduemFzcSE3fGxg
aztyPG1lUGhpMVg1WmBPOSYyeHdpSHI9VDFwN2lYYE5EdnB8bnV3TG0lOGlnUkFYIz1GWTcpCnor
TDNjZERIT2B5PD9RYHQ/d0s+Xm9IPUxpP3p3a3FAcD5NJGNuKUVsOUd+ZFZwMXUzJk84fGFGbngy
fV43NGNyXgp6aGt6UGpgd0tKcSsqMChfaSQlNy1PKUFWNVpxQlVxelZ7WG9QNT0hcGJOU3FLekgj
aUlLdlNDaEx2IXAlJTtHNTkKenBKS2FmWmhxOztaS1BnY2AmcVZjN1ojPitQflNmV0crJHUqJlYy
NGg1bSQpTigjeDsoe0tEZG0jNG1RN1g4U0JxCnpkLTdeLUtMN3Nue3I3LTlVamdjI0VpUFBKcVRX
MFBCRXBZUTFuTTU1KCZLaGFvOyZAZGozfHtUTk1WTGhsXlg4SAp6cjYmWHRQVSZIVU9DPShpUUsr
NVlpc3Z6JmxlJTVZWiROYUhCU2JueWRXc31gSW5wenZvZk8hXmJCdCQydUJZJmYKem1Ve31oUW1P
UjIoI3g4ZzRFa0lyZlFMZDJ6aDVVJT0rZCg5NUdPZ2FzQ1Z9e3M0ZUskZGl7LWZEYHlaTD8tTXI+
CnpRNVRnVS1objJLODtJTXtCME9xNEBvczcoeFFsbyVRV181cz8/YXR2cCstbXQmPHVKK29uKEpN
U35ic1NpSTM2fgp6IVpTeFlmc2hLSlFQRWNfZitpSjNNOHl6UWFXdHowVDJ1fHNlZEo1Z2o5Tl5v
SWBZPk9IO3tpbitsfEM2P0F1MSUKek94I01tb3d5QmtZQTRVVEQ2Zk8oR19VUVVvS0U1ezslPyN8
OyRIR1UjQ0M+ITJpWUVBYHcoU2sqKj1WdjhzeFBqCno8UT9MKlZQZUxmSSE+TXVUQ2pxWmE1fGg4
ZT0wZkhmZS1gdFUqRS13SXJFQlV5QX1FfDlwPHJWI3c8UWklZ0M7ZAp6dUhJJEBXPWs9KFR6WTQ5
bHM7MylBeylMSHpRcnVfMldhdDEtUDEjZ256Z3VFRVdNK2FTQnVFMTx4byMkcFR9RGoKelNNXjty
UH1WWX5uaVZEPXlpO3tZc2N4VVZlXmolZ25pY1o8cXh6JHd7OHY+cUUyPiNoJjVISGdMTnpPQFN5
OWMzCno0WUduMjZqbkJie2BBey0tfXJwfSRscFVPWXVKdjZGMmhKb00zMnpsUWJeRlhCejl7Mjtl
a2lrd18rJkVeWnh9SQp6NlppNFYoZ3xLQXtleTBKZyFDZm1rMVZOVk5uYXdwJVFEKC0ocEF6PT1w
b2llQkErM0JrSGl7Y15lcEtjcSg4RyUKeiMrcHMrZEQ1P2VjcWkkTHFATXdhZGVZfWVLT28lKVlS
LXxxTWZ3WW45NDM5NF5jeF8+YGNQXyNeY0wlZ2ppZW11CnpNPG13c3dtZVN5NChZRn5EVmB2R21H
bk1QJnBLWkgpMTxlaHd5OVYzMjx2bkRrUSFScUxHNFRyWWdfc2xHZCtzcQp6Z2pkTmhJcVIkNVMz
NkghY0pfSWRLKjRteWV8WEFlUC1oMWpRZGpoamF2M0B7MU0zbUIlNGwtWkJXOUpNWjRSdFEKeisk
dXdBeXVwMiV1Knp0NWwySyFvKGMmWntYX2V1bzJQPnpYUTt4TkA/YjdZd3s7MExlNVZecitZfCUx
ZyUkZ29hCnpPZ1lLV3dQbWUpeGVUe19WZjkhYF9ePSpzd2xyOH14YUdATWkkQSZAe2xWJllnKVFC
bCtgIyRMV1I+Q09RJiEkKAp6OVo3NUohc0AjODE9aHBjRn55djY4RSkmK1lPJHJxYVg7Tj11X2Yk
aSVYVyglVkxsbWdAeThCfTkhLXZWdnwwM00Kel42bnZsKkpZPGdqfX1LZ156JEJCK09vQ3YpO29C
Nz82VE0qeVF6eSRKMW4tdTlCdFdjKFpqb00xLUIoX21FbVR+Cno5KlpxME1fVzJBZFpabGxXdl45
K1RpKWBDb0w8VERfXjVNP1E/dV87JmY1T2I/QzZna2l5cUM2e0A3PWc7ZFhFNgp6d2FTUCUjWDZz
QVJgfDQ7UGlrSEFDMWFLMHd6bTdOR0RObERgNjVxNiR4bThhK2c4VzVKIXNMeHlJJXk/cXQ3YkMK
eiY2YStQakNSS3U4XytVTmhkVmc2ang3Q3RmUUxpR14wdDhWaGwkUGBFYmtDMzhYVjw2aDtKR2tX
QipHWT05QjRtCnp7TV9JVzI2NU5tRmg9LXZVQ1pSKComIXV3VXI7YHUpe20rZTQzMSR5YEQ1ZEpz
JmRjdENvbUUrYHRXSn5YeX1zWgp6P18+WVYxfUJqWHtvZGRkTSNGTmE2IzJDezg4LVUhWkd9d3VZ
b0A9Ql8/RSUtPW5DSTh4Qio+fWh7NX5POFIwKU4KekVvVXAqQmFhIX1oKWlWMDsxJiE7bUpReTk7
bUYkdEg8NXFVO0FVaV5aM2VldUNefX5GYl9fQDU/RmBYIzJSZnAhCno4UWV5R3shYFdjZH4rbEVm
eCskUWpRVFFuQXJuaVJ7dG9vVWVCRX1WQldCaH1yT0QmI3dnPWhSbn0peFduRXlQcgp6e0pyUmtu
OzF9QyRpej5aeyUjRCUza0xVS0YjZHxjYF9MWjBWe2s5fHtXVz9CZzklP3doV01pNEllLUhSZXwt
LVUKemAhQEVZQy1EY3ZHa3tFdUBBRT8jdGRXMVQ7KiVffnp0KUZ8emkjPm1pR09NRTVnZjFhZUtM
ZCpgM0o3WTl6e0MyCnpXYmlPRCRybFlpaFE4IWE0TCopKygpWXMmdzU1RmdONj9jUiN1K1QmRHdn
bWhGN3RiaT9MNlA3UztCU1pLcHhqSAp6JDxMWXAwb05oKVZJYmhWU0QzcShGfXFJaG48JnpQRHxu
YXwmaHNPN1JgUUxyY1k9SGMoaUg3cHB4eGRXQGskO3kKenZAZGVKP2xTZzReVWJod3dmUHpDcWM3
NVNTK0Fmdks4Vzh3ISYhUnhuKEB6TmRka0hrTEM2MDBYT157SnptQks0CnptYT8qb3lkc2hBTVJ8
RiYxUWApTFpmeF83R1hgdT9ASlglTDVgRkQ/X3lZQzZyWmUtaHdxejJYcDN+JTtxNHc5Ywp6RWw8
I3I+KlVMMCs3ZWxoXjZIRzFEPjQ/elJ+ZGExOTUzMGokaGtKKzhSeWskVUtnKHd0V3dUJT85KkR4
IXtpWnQKekhsdUgpbG5HfDkldm9TQT1jdVI2ZzMzYEJJS095T1IoUnVhUGYoc2BgTno/QFFjNGg9
REBPJj5gTWtFd2l7Wl57CnomM2gxY3goV0t7Q093PFNJUT0wMGw4bGprLSN5WU13WUxqOE1ySSUy
XlQhISZeU0ghMDdkNipyQmM7LVI8JnVMJQp6JHchU1N6ZGtfXjwoUWUwMUdBZyomOz9xJktxLT1B
ek9OOyslVik5YXtSekQpdktNJDdOVHo/KG1AfU0xd0Rzck4Keis/dE5qKzhuS3dzMVF2bnJCPzFI
PnZ5cHJXNHc0PDs3cD0qay10UF80fTMpNWYyQyhsZHhfYkM/d01sKlA0Z3taCnppSzdMXnVsLUl3
TV8lNighWnxfTkdRO0x9cl5vT3BCXjwmcnpJe0UrPXZePH13dDghMGhIPTw9JXJYOEJhK3hQZgp6
e3NIRTh1clUrI15FfHlGU3Z4fSNqfExrI3NsNig5MVY2JGdLN3grKmVwITl8akl3M01CKDBGJlpJ
ekxeUVR9Wl8KZTt2KUJ8T1dYXzNGPWl3S3tDKThYKT9jeTNBQWpGSj09ZUE5QVkrZEoKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387427</attachid>
            <date>2020-01-10 22:30:04 -0800</date>
            <delta_ts>2020-01-11 14:43:30 -0800</delta_ts>
            <desc>WIP (fix GTK/WPE)</desc>
            <filename>bug-206118-20200110223003.patch</filename>
            <type>text/plain</type>
            <size>39743</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4ZjljMTNlYWRlYjI1
NTEzNmE3NDg5OWU2YWJhMTI1MGY3N2EzMy4uZjZlZDZiOTAxYjhiNjZiM2NlMWUxZjE4OTUwM2I3
YmNiZGUyOGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTAxLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vz
c10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODQ5ODU3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50cyBhbmQgcmVmYWN0b3JzIHNvbWUgZXhp
c3RpbmcgbG9naWMgZm9yIHByb3BhZ2F0aW5nIGZvbnQgaW5mb3JtYXRpb24gdG8gdGhlIEdQVSBw
cm9jZXNzIHdoZW4gcGFpbnRpbmcKKyAgICAgICAgZ2x5cGhzIHVzaW5nIGRpc3BsYXkgbGlzdHMs
IHN1Y2ggdGhhdCB3ZSBwcmVzZXJ2ZSBmb250IGZlYXR1cmUgc2V0dGluZ3MuIFNlZSBiZWxvdyBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtZmVhdHVyZXMuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKworICAg
ICAgICBBZGQgRm9udENyZWF0aW9uUGFyYW1ldGVycy5oLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6
Y3JlYXRlRm9udCk6CisKKyAgICAgICAgTW92ZSBsb2dpYyB0aGF0IHNldHMgdGhlIGZvbnQgZmFj
ZSBkYXRhIChub3cgZm9udCBjcmVhdGlvbiBwYXJhbWV0ZXJzKSBvdXQgb2YgYENTU0ZvbnRGYWNl
Ojpmb250YCwgYW5kIGludG8KKyAgICAgICAgYENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnRgLiBUaGlz
IGFsc28gYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUgbm93LXVudXNlZCBjYWNoZWRGb250KCkgZ2V0
dGVyIGluIENTU0ZvbnRGYWNlU291cmNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpzZXRGb250Q3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRIYW5kbGU6OkZvbnRIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpoYXNGb250
Q3JlYXRpb25QYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZvbnRD
cmVhdGlvblBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZh
Y2VEYXRhIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBSZWZhY3RvciB0aGlzLCBzbyB0aGF0
IGZvbnRGYWNlRGF0YSAoYSBgUmVmUHRyPFNoYXJlZEJ1ZmZlcj5gKSBpcyByZXBsYWNlZCBieSBG
b250Q3JlYXRpb25QYXJhbWV0ZXJzLCB3aGljaAorICAgICAgICBjb250YWluIHRoZSBgUmVmPFNo
YXJlZEJ1ZmZlcj5gIGFsb25nIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBuZWVkZWQgdG8g
cmVjb25zdHJ1Y3QgdGhlIEZvbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisKKyAgICAgICAgSW50cm9kdWNlIEZvbnRD
cmVhdGlvblBhcmFtZXRlcnMsIHdoaWNoIGVuY2Fwc3VsYXRlcyB0aGUgcGllY2VzIG9mIGluZm9y
bWF0aW9uIHRoYXQgZ28gaW50byBjcmVhdGluZyBhCisgICAgICAgIFdlYkNvcmU6OkZvbnQgYmFj
a2VkIGJ5IHBsYXRmb3JtIGZvbnQgZGF0YS4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91
dCBmb250IGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMsCisgICAgICAgIHN5bnRoZXRpYyBib2xk
IGFuZCBpdGFsaWMsIGFzIHdlbGwgYXMgdGhlIGZvbnQgZGVzY3JpcHRpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENyZWF0aW9uUGFyYW1ldGVyczo6b3BlcmF0b3I9KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmg6IEFk
ZGVkLgorCisgICAgICAgIERlY2xhcmUgc2V2ZXJhbCBjb25zdHJ1Y3RvcnMgYW5kIGFzc2lnbm1l
bnQgb3BlcmF0b3JzIGluIHRoZSBoZWFkZXIsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIGhhdmluZyB0
byAjaW5jbHVkZQorICAgICAgICBTaGFyZWRCdWZmZXIuaCBpbiB0aGlzIGhlYWRlciAoYW5kIGlu
c3RlYWQsIGp1c3QgdXNlIGEgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBTaGFyZWRCdWZmZXIpLgor
CiAyMDIwLTAxLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCBlbmNvZGVycyBhbmQgZGVjb2RlcnMgZm9yIG1vcmUgZm9udC1yZWxh
dGVkIGVudGl0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwYjA1ODZhNjQwNDgxNWU3MTUwYzFmMTM5MzhjYTI4
N2Q0ZjQxMDUuLjgxZDUwYTY0MDdmMGJkMTlkMjljODM2ZDUwZWNmZjE4M2MwYmQ2NTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcg
dGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU4NDk4NTcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZHMgc3VwcG9ydCBmb3IgZW5jb2RpbmcgRm9udENyZWF0aW9uUGFyYW1ldGVycywg
YW5kIGFjY291bnQgZm9yIHRoZXNlIGZvbnQgY3JlYXRpb24gcGFyYW1ldGVycyB3aGVuCisgICAg
ICAgIGVuY29kaW5nIGFuZCBkZWNvZGluZyBhIEZvbnRIYW5kbGUuIFNlZSBXZWJDb3JlIENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVB
cmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRI
YW5kbGU+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorCisgICAgICAgIEFkZGl0aW9uYWxs
eSBjaGFuZ2UgdGhlIGRlY29kZXIgdG8gcmV0dXJuIGFuIGBPcHRpb25hbDxGb250SGFuZGxlPmAs
IHJhdGhlciB0aGFuIGEgYGJvb2xgICh3aXRoIHRoZQorICAgICAgICBgRm9udEhhbmRsZSZgIHBh
c3NlZCBpbiBhcyBhbiBhcmd1bWVudCkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250Q3JlYXRpb25QYXJhbWV0
ZXJzPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHA6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0
YSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3Jt
RGF0YSk6CisKKyAgICAgICAgVXBkYXRlIHNvbWUgbWV0aG9kIHNpZ25hdHVyZXMgdG8gcmV0dXJu
IGBPcHRpb25hbDxGb250SGFuZGxlPmBzIGluc3RlYWQgb2YgYGJvb2xgcy4KKwogMjAyMC0wMS0w
OSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBzaG91bGQgdXNlIEFjY2Vzc2liaWxpdHk6OnJldHJp
ZXZlVmFsdWVGcm9tTWFpblRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDI5NmRlYTc4MzFi
ZWU0OWNmMDA0YTY4MmRkMjVlODkzYjk5NjRlNzcuLjEwMmM4ZjZmODI0ZDM0Y2UyMGVhOWU2Nzhk
Y2ZiYWEyMWJiMmRhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTA0MSw2ICsxMDQxLDcgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2Ny
aXB0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZUZvbnRzLmgKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYW1p
bHlTcGVjaWZpY2F0aW9uTnVsbC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udE1ldHJpY3Mu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA0MTEyMTU1N2FlNmYzNWRiOWFkNWY0YzFlOGFjY2NhMDg2NjNl
NmZiLi43NjJmMjk0MTJlOGFlYWMzZTMwMzVhNDQxMTU0Yzc4NGUxMDNiODJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg0Niw2ICsxODQ2LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGVG
b250cy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250U2Vs
ZWN0aW9uQWxnb3JpdGhtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlMjhiNTdkYzc0NGM5ODJlYWU3MTAxYTYyMmJiMTc5
MGJjOWZiNzIuLjM4ODdkNGMzYjZlZmU0NWM4NWQ3ZTIwN2EzMmZmZTQ5M2I5NDQzMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQ5NjcsNiArNDk2Nyw3IEBACiAJCUY0RDQzRDY2MjE4ODAzOEIwMEVDRUNBQyAvKiBTZXJpYWxp
emVkQXR0YWNobWVudERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0RDQzRDY0MjE4ODAyRTYwMEVDRUNBQyAvKiBTZXJpYWxpemVkQXR0YWNobWVu
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGNEU1N0VEQzIxM0YzRjVGMDA0RUE5OEUgLyogRm9udEF0dHJpYnV0ZUNoYW5nZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTU3RURBMjEzRjNG
NUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0RTU3RUUxMjEzRjQzNEEwMDRFQTk4RSAv
KiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFNTdFREYyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVO
U0ZvbnRNYW5hZ2VyRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRjRFQzc0MEQyM0M1OEQ2NTAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0RUM3NDBDMjNDNThENjUwMDBBNDhBMiAvKiBGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRGQjM0RkMy
MzUwQzg1RDAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEZCMzRGQTIzNTBDODVEMDBGMDA5NEEg
LyogUGFzdGVib2FyZEN1c3RvbURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEz
QTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTQ2Niw2ICsxNTQ2Nyw4IEBACiAJCUY0
RTU3RURBMjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRy
YXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNv
cmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5T
Rm9udE1hbmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RUM3
NDBDMjNDNThENjUwMDBBNDhBMiAvKiBGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjRFQzc0MEYyM0M2NDQ2RjAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udENyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RkIzNEZBMjM1MEM4NUQwMEYwMDk0QSAvKiBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEZCMzRGQjIzNTBDODVEMDBGMDA5NEEg
LyogUGFzdGVib2FyZEN1c3RvbURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVib2Fy
ZEN1c3RvbURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEZCMzUwMDIz
NTBDOTYyMDBGMDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNTAyNyw2ICsyNTAzMCw4IEBACiAJCQkJRTRFOEI0RjIyMTZCOEI2
MDAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaCAqLywKIAkJCQlCMkMzREE1NjBE
MDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5jcHAgKi8sCiAJCQkJQjJDM0RBNTcw
RDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuaCAqLywKKwkJCQlGNEVDNzQwRjIz
QzY0NDZGMDAwQTQ4QTIgLyogRm9udENyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCisJCQkJRjRF
Qzc0MEMyM0M1OEQ2NTAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJ
CQkzN0FDQ0U2MjBEQTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLywKIAkJ
CQlCMkMzREE1NTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi8sCiAJCQkJ
QzI4MEIzRkQxRUY0NjA4OTAwRDM1MTM1IC8qIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbC5j
cHAgKi8sCkBAIC0yOTk1NSw2ICsyOTk2MCw3IEBACiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2
RjI2IC8qIEZvbnRDYXNjYWRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4QjRGNTIxNkI5NTY1
MDBCODgzNEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY0RUM3NDBEMjNDNThENjUwMDBBNDhBMiAvKiBGb250Q3JlYXRpb25QYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNE
NjAwRUY2RjI2IC8qIEZvbnREZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2NjI2
MTExQzZFN0NBNjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwCmluZGV4IDA4OTFkYjRlMDMxZGJkYjBkOWZiYmQ0M2I2OTc1OTFk
NmRkZGRkNzEuLmU2Y2EyMmI4ZmQwNzU0ZjNmMTZiNzJhYTY1ZGY1NGE4YzgyNmVkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcApAQCAtNjc1LDExICs2NzUsOCBAQCBSZWZQdHI8Rm9u
dD4gQ1NTRm9udEZhY2U6OmZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sIGJvb2wgc3ludAogICAgICAgICAgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShGb250Q2FjaGU6
OnNpbmdsZXRvbigpLmxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoZm9udERlc2NyaXB0aW9uKS0+cGxh
dGZvcm1EYXRhKCksIEZvbnQ6Ok9yaWdpbjo6TG9jYWwsIEZvbnQ6OkludGVyc3RpdGlhbDo6WWVz
LCB2aXNpYmlsaXR5KTsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNl
OjpTdGF0dXM6OlN1Y2Nlc3M6Ci0gICAgICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBzb3VyY2Ut
PmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIG1f
ZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMpKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byogY2FjaGVkRm9udCA9IHNvdXJjZS0+Y2FjaGVkRm9udCgpOwotICAgICAg
ICAgICAgICAgIHJlc3VsdC0+c2V0Rm9udEZhY2VEYXRhKGNhY2hlZEZvbnQgPyBjYWNoZWRGb250
LT5yZXNvdXJjZUJ1ZmZlcigpIDogbnVsbHB0cik7CisgICAgICAgICAgICBpZiAoYXV0byByZXN1
bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMp
KQogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NGb250RmFjZVNvdXJjZTo6U3RhdHVzOjpGYWls
dXJlOgogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCmluZGV4IGQ4YTYyYjdhNGM1YTY3MjVjOTE4MjNjMGU5ZDc3ZGUwNzRjNzhlNGUuLmU0YTJl
ZDk2ODYyMjE3OGE4OTkyN2EzZTJlYzNiOTk1YzY4ZjI5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNvdXJjZS5oCkBAIC03Miw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxv
YWQoQ1NTRm9udFNlbGVjdG9yKik7CiAgICAgUmVmUHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29u
c3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMpOwogCi0gICAgQ2FjaGVkRm9udCogY2FjaGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9u
dC5nZXQoKTsgfQogICAgIGJvb2wgcmVxdWlyZXNFeHRlcm5hbFJlc291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb250OyB9CiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IDNmNDY5OWNmODMyOThmMDRlMjc0YWUw
MGVmOTVhNTU0NzVhNjVmM2QuLjdjMGU2OWQzNGU2OGZlMTQ4ODhlM2Y0ZjlmMDU3Njk2YmQ4NzVk
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTEy
NCw5ICsxMjQsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IENh
Y2hlZEZvbnQ6OmNyZWF0ZUN1c3RvbUZvbnREYXRhKFNoYXJlZEIKICAgICByZXR1cm4gY3JlYXRl
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShieXRlcywgaXRlbUluQ29sbGVjdGlvbik7CiB9CiAKLVJl
ZlB0cjxGb250PiBDYWNoZWRGb250OjpjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBi
b29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcykKK1JlZlB0cjxGb250PiBDYWNoZWRGb250OjpjcmVhdGVGb250KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkks
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0
dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBh
YmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCiB7Ci0gICAgcmV0dXJuIEZvbnQ6OmNyZWF0
ZShwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRp
ZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CisgICAgYXV0byBmb250ID0gRm9udDo6Y3JlYXRl
KHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9s
ZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGll
cyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBmb250
LT5zZXRGb250Q3JlYXRpb25QYXJhbWV0ZXJzKHsgKm1fZGF0YSwgZm9udERlc2NyaXB0aW9uLCBy
ZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJl
cywgZm9udEZhY2VDYXBhYmlsaXRpZXMgfSk7CisgICAgcmV0dXJuIGZvbnQ7CiB9CiAKIEZvbnRQ
bGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rp
b25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDg5NzliMjU4YTcxMTg1NTUzNzMz
MjMwOGY5MDI5ZWE2M2ZhY2YxYzguLjQyMzYyYmZhN2FkYWYxNGRjNTU3YTBlYmU2Zjg3MzA0NGUz
MTYzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC03
MDgsMTggKzcwOCwxNiBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRoRm9yR2x5cGgoR2x5cGggZ2x5
cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5leGlzdGluZ01ldHJpY3NGb3JH
bHlwaChnbHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFy
ZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQordm9pZCBGb250OjpzZXRGb250Q3JlYXRpb25QYXJh
bWV0ZXJzKEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIG1fZm9u
dEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOworICAgIG1fZm9udENyZWF0aW9uUGFy
YW1ldGVycyA9IFdURk1vdmUocGFyYW1ldGVycyk7CiB9CiAKLUZvbnRIYW5kbGU6OkZvbnRIYW5k
bGUoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBmb250RmFjZURhdGEsIEZvbnQ6Ok9yaWdpbiBvcmlnaW4s
IGZsb2F0IGZvbnRTaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
KQorRm9udEhhbmRsZTo6Rm9udEhhbmRsZShGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKIHsKICAgICBib29sIHdyYXBwaW5nOwotICAgIGF1dG8gY3VzdG9tRm9udERhdGEgPSBD
YWNoZWRGb250OjpjcmVhdGVDdXN0b21Gb250RGF0YShmb250RmFjZURhdGEuZ2V0KCksIHsgfSwg
d3JhcHBpbmcpOwotICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKLSAgICBkZXNjcmlw
dGlvbi5zZXRDb21wdXRlZFNpemUoZm9udFNpemUpOwotICAgIGZvbnQgPSBGb250OjpjcmVhdGUo
Q2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBk
ZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0sIHsgfSksIG9y
aWdpbik7CisgICAgYXV0byBjdXN0b21Gb250RGF0YSA9IENhY2hlZEZvbnQ6OmNyZWF0ZUN1c3Rv
bUZvbnREYXRhKHBhcmFtZXRlcnMuZGF0YSwgeyB9LCB3cmFwcGluZyk7CisgICAgZm9udCA9IEZv
bnQ6OmNyZWF0ZShDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSgqY3VzdG9t
Rm9udERhdGEsIHBhcmFtZXRlcnMuZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMuc3ludGhldGljQm9s
ZCwgcGFyYW1ldGVycy5zeW50aGV0aWNJdGFsaWMsIHBhcmFtZXRlcnMuZmVhdHVyZXMsIHBhcmFt
ZXRlcnMuY2FwYWJpbGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5k
ZXggMGM5NTI1OWY3MjQzYjEzMzQ3MzA2NTQ1NzgwYmE4NzkyMGJkYWQ4Zi4uMzdhNzEyMGVjNzZl
NjJlMzI3NDI1YTM5NTFlMDUzNTBiNzExYzhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuaApAQCAtMjUsNiArMjUsNyBAQAogI2RlZmluZSBGb250X2gKIAogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJGb250TWV0cmljcy5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNp
bmNsdWRlICJHbHlwaEJ1ZmZlci5oIgpAQCAtMzUsNiArMzYsNyBAQAogI2luY2x1ZGUgIk9wZW5U
eXBlVmVydGljYWxEYXRhLmgiCiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvQml0VmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTU0LDcgKzU2LDYgQEAgaW50ZXJmYWNl
IElEV3JpdGVHZGlJbnRlcm9wOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHbHlwaFBh
Z2U7Ci1jbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3Qg
R2x5cGhEYXRhOwogc3RydWN0IFdpZHRoSXRlcmF0b3I7CkBAIC0yMTgsOCArMjE5LDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBmbG9hdCBhc2NlbnRDb25zaWRlcmluZ01hY0FzY2VudEhhY2soY29u
c3QgV0NIQVIqLCBmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQpOwogI2VuZGlmCiAKLSAgICBT
aGFyZWRCdWZmZXIqIGZvbnRGYWNlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udEZhY2VEYXRh
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRGb250RmFjZURhdGEoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
Jik7CisgICAgYm9vbCBoYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9mb250Q3JlYXRpb25QYXJhbWV0ZXJzLmhhc1ZhbHVlKCk7IH0KKyAgICBjb25zdCBGb250Q3Jl
YXRpb25QYXJhbWV0ZXJzJiBmb250Q3JlYXRpb25QYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4g
Km1fZm9udENyZWF0aW9uUGFyYW1ldGVyczsgfQorICAgIHZvaWQgc2V0Rm9udENyZWF0aW9uUGFy
YW1ldGVycyhGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCiBwcml2YXRlOgogICAgIFdFQkNP
UkVfRVhQT1JUIEZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0
aWFsLCBWaXNpYmlsaXR5LCBPcmllbnRhdGlvbkZhbGxiYWNrKTsKQEAgLTI5NCw3ICsyOTYsNyBA
QCBwcml2YXRlOgogICAgIG11dGFibGUgU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBtX3NjcmlwdEZv
bnRQcm9wZXJ0aWVzOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2ZvbnRG
YWNlRGF0YTsKKyAgICBPcHRpb25hbDxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPiBtX2ZvbnRDcmVh
dGlvblBhcmFtZXRlcnM7CiAKICAgICBHbHlwaCBtX3NwYWNlR2x5cGggeyAwIH07CiAgICAgR2x5
cGggbV96ZXJvR2x5cGggeyAwIH07CkBAIC0zMjksNyArMzMxLDcgQEAgcHJpdmF0ZToKIGNsYXNz
IEZvbnRIYW5kbGUgewogcHVibGljOgogICAgIEZvbnRIYW5kbGUoKSA9IGRlZmF1bHQ7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgRm9udEhhbmRsZShSZWY8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0
YSwgRm9udDo6T3JpZ2luLCBmbG9hdCBmb250U2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY0l0YWxpYyk7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udEhhbmRsZShGb250Q3Jl
YXRpb25QYXJhbWV0ZXJzJiYpOwogCiAgICAgUmVmUHRyPEZvbnQ+IGZvbnQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0aW9uUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWRhNTJlYTRmMDZhNDc0YzFkYTI1NWU1NWNlZjNh
YWZhMjQ0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25QYXJhbWV0
ZXJzLmgiCisKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitGb250Q3JlYXRpb25QYXJhbWV0ZXJzOjpGb250Q3JlYXRpb25QYXJhbWV0ZXJzKFJlZjxT
aGFyZWRCdWZmZXI+JiYgZm9udERhdGEsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiB1cmksIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlv
blNwZWNpZmllZENhcGFiaWxpdGllcyYgZm9udENhcGFiaWxpdGllcykKKyAgICA6IGRhdGEoV1RG
TW92ZShmb250RGF0YSkpCisgICAgLCBkZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pCisgICAg
LCByZW1vdGVVUkkodXJpKQorICAgICwgc3ludGhldGljQm9sZChib2xkKQorICAgICwgc3ludGhl
dGljSXRhbGljKGl0YWxpYykKKyAgICAsIGZlYXR1cmVzKGZvbnRGZWF0dXJlcykKKyAgICAsIGNh
cGFiaWxpdGllcyhmb250Q2FwYWJpbGl0aWVzKQoreworfQorCitGb250Q3JlYXRpb25QYXJhbWV0
ZXJzOjpGb250Q3JlYXRpb25QYXJhbWV0ZXJzKGNvbnN0IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMm
IG90aGVyKQorICAgIDogRm9udENyZWF0aW9uUGFyYW1ldGVycyhvdGhlci5kYXRhLmNvcHlSZWYo
KSwgb3RoZXIuZGVzY3JpcHRpb24sIG90aGVyLnJlbW90ZVVSSSwgb3RoZXIuc3ludGhldGljQm9s
ZCwgb3RoZXIuc3ludGhldGljSXRhbGljLCBvdGhlci5mZWF0dXJlcywgb3RoZXIuY2FwYWJpbGl0
aWVzKQoreworfQorCitGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiBGb250Q3JlYXRpb25QYXJhbWV0
ZXJzOjpvcGVyYXRvcj0oY29uc3QgRm9udENyZWF0aW9uUGFyYW1ldGVycyYgb3RoZXIpCit7Cisg
ICAgZGF0YSA9IG90aGVyLmRhdGEuY29weVJlZigpOworICAgIGRlc2NyaXB0aW9uID0gb3RoZXIu
ZGVzY3JpcHRpb247CisgICAgcmVtb3RlVVJJID0gb3RoZXIucmVtb3RlVVJJOworICAgIHN5bnRo
ZXRpY0JvbGQgPSBvdGhlci5zeW50aGV0aWNCb2xkOworICAgIHN5bnRoZXRpY0l0YWxpYyA9IG90
aGVyLnN5bnRoZXRpY0l0YWxpYzsKKyAgICBmZWF0dXJlcyA9IG90aGVyLmZlYXR1cmVzOworICAg
IGNhcGFiaWxpdGllcyA9IG90aGVyLmNhcGFiaWxpdGllczsKKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKK0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMmIEZvbnRDcmVhdGlvblBhcmFtZXRlcnM6Om9wZXJh
dG9yPShGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiYpID0gZGVmYXVsdDsKK0ZvbnRDcmVhdGlvblBh
cmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMoRm9udENyZWF0aW9uUGFyYW1ldGVycyYm
KSA9IGRlZmF1bHQ7CitGb250Q3JlYXRpb25QYXJhbWV0ZXJzOjp+Rm9udENyZWF0aW9uUGFyYW1l
dGVycygpID0gZGVmYXVsdDsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0
ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTNkNzMwNjc4YzI2YjNjYmYxZTE4YTA1ZGY4NDJlYzU1MTUyNzZk
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworc3RydWN0IEZvbnRDcmVhdGlvblBhcmFt
ZXRlcnMgeworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMoUmVmPFNo
YXJlZEJ1ZmZlcj4mJiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0
dXJlU2V0dGluZ3MmLCBjb25zdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJik7
CisgICAgRm9udENyZWF0aW9uUGFyYW1ldGVycyhjb25zdCBGb250Q3JlYXRpb25QYXJhbWV0ZXJz
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udENyZWF0aW9uUGFyYW1ldGVycyhGb250Q3JlYXRp
b25QYXJhbWV0ZXJzJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDcmVhdGlvblBhcmFt
ZXRlcnMoKTsKKworICAgIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmIG9wZXJhdG9yPShjb25zdCBG
b250Q3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udENyZWF0aW9u
UGFyYW1ldGVycyYgb3BlcmF0b3I9KEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmJik7CisKKyAgICBS
ZWY8U2hhcmVkQnVmZmVyPiBkYXRhOworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsK
KyAgICBBdG9tU3RyaW5nIHJlbW90ZVVSSTsKKyAgICBib29sIHN5bnRoZXRpY0JvbGQ7CisgICAg
Ym9vbCBzeW50aGV0aWNJdGFsaWM7CisgICAgRm9udEZlYXR1cmVTZXR0aW5ncyBmZWF0dXJlczsK
KyAgICBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggMWMxNWEyMWJm
NzQzNDBhYzQyYTU2YmFlNWJhZDE5ZjJkMzk3YzRiNy4uOGFiZjhkMmIxMWM5OWY1OGVjMGI0MTQ4
YTdmMDQwMDE5NTI0OTMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTQ4MSwyNyArNDgxLDI4IEBA
IE9wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZvbnRBdHRy
aWJ1dGVzPjo6ZGVjb2RlUGxhdGZvcm1ECiAKIHZvaWQgQXJndW1lbnRDb2RlcjxGb250SGFuZGxl
Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZvbnRIYW5kbGUm
IGhhbmRsZSkKIHsKLSAgICBhdXRvIGN0Rm9udCA9IGhhbmRsZS5mb250ICYmICFoYW5kbGUuZm9u
dC0+Zm9udEZhY2VEYXRhKCkgPyBoYW5kbGUuZm9udC0+Z2V0Q1RGb250KCkgOiBuaWw7CisgICAg
YXV0byBjdEZvbnQgPSBoYW5kbGUuZm9udCA/IGhhbmRsZS5mb250LT5nZXRDVEZvbnQoKSA6IG5p
bDsKICAgICBlbmNvZGVyIDw8ICEhY3RGb250OwogICAgIGlmIChjdEZvbnQpCiAgICAgICAgIGVu
Y29kZXIgPDwgKF9fYnJpZGdlIENvY29hRm9udCAqKWN0Rm9udDsKIH0KIAotYm9vbCBBcmd1bWVu
dENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2Rlciwg
Rm9udEhhbmRsZSYgaGFuZGxlKQorT3B0aW9uYWw8Rm9udEhhbmRsZT4gQXJndW1lbnRDb2RlcjxG
b250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
Ym9vbCBoYXNQbGF0Zm9ybUZvbnQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNQbGF0Zm9y
bUZvbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKICAgICBpZiAoIWhhc1BsYXRmb3JtRm9udCkKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHJldHVybiBGb250SGFuZGxlKCk7CiAKICAgICBSZXRhaW5QdHI8Q29jb2FGb250PiBm
b250OwogICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZm9udCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIGhhbmRsZS5mb250
ID0gRm9udDo6Y3JlYXRlKHsgKF9fYnJpZGdlIENURm9udFJlZilmb250LmdldCgpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oW2ZvbnQgcG9pbnRTaXplXSkgfSk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAg
Rm9udEhhbmRsZSByZXN1bHQ7CisgICAgcmVzdWx0LmZvbnQgPSBGb250OjpjcmVhdGUoeyAoX19i
cmlkZ2UgQ1RGb250UmVmKWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2lu
dFNpemVdKSB9KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDhlMDhhMzNkZGQxZWU0NGI5MjM2N2JjZGQ5ZDEyMWZmYzA2YWQ1NTcuLjY5NWVmOGI3MjQ5Mzhj
NzllNDQxM2Y5ZTMxMTgzZmFmYmFkZWM5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsdGVyT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRD
cmVhdGlvblBhcmFtZXRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SURCR2V0UmVzdWx0Lmg+CkBAIC0xMTI4LDY3ICsxMTI5LDQ1IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxOYXRpdmVJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRpdmVJbWFn
ZUhhbmRsCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZvbnRIYW5kbGUmIGhhbmRsZSkKIHsKLSAgICBlbmNvZGVyIDw8ICEh
aGFuZGxlLmZvbnQ7Ci0gICAgaWYgKCFoYW5kbGUuZm9udCkKKyAgICBhdXRvJiBmb250ID0gaGFu
ZGxlLmZvbnQ7CisgICAgZW5jb2RlciA8PCAhIWZvbnQ7CisgICAgaWYgKCFmb250KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhdXRvKiBmb250RmFjZURhdGEgPSBoYW5kbGUuZm9udC0+Zm9udEZh
Y2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCAhIWZvbnRGYWNlRGF0YTsKLSAgICBpZiAoZm9udEZh
Y2VEYXRhKSB7Ci0gICAgICAgIGVuY29kZVNoYXJlZEJ1ZmZlcihlbmNvZGVyLCBmb250RmFjZURh
dGEpOwotICAgICAgICBhdXRvJiBkYXRhID0gaGFuZGxlLmZvbnQtPnBsYXRmb3JtRGF0YSgpOwot
ICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc2l6ZSgpOwotICAgICAgICBlbmNvZGVyIDw8IGRhdGEu
c3ludGhldGljQm9sZCgpOwotICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc3ludGhldGljT2JsaXF1
ZSgpOworICAgIGVuY29kZXIgPDwgZm9udC0+aGFzRm9udENyZWF0aW9uUGFyYW1ldGVycygpOwor
ICAgIGlmIChmb250LT5oYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJzKCkpIHsKKyAgICAgICAgZW5j
b2RlciA8PCBmb250LT5mb250Q3JlYXRpb25QYXJhbWV0ZXJzKCk7CisgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgaGFuZGxlKTsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
Rm9udEhhbmRsZSYgaGFuZGxlKQorT3B0aW9uYWw8Rm9udEhhbmRsZT4gQXJndW1lbnRDb2RlcjxG
b250SGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgT3B0aW9uYWw8Ym9v
bD4gaGFzRm9udDsKICAgICBkZWNvZGVyID4+IGhhc0ZvbnQ7CiAgICAgaWYgKCFoYXNGb250Lmhh
c1ZhbHVlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAogICAgIGlmICghaGFzRm9udC52YWx1ZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIE9wdGlvbmFsPGJvb2w+IGhhc0ZvbnRGYWNlRGF0YTsKLSAgICBkZWNvZGVyID4+IGhh
c0ZvbnRGYWNlRGF0YTsKLSAgICBpZiAoIWhhc0ZvbnRGYWNlRGF0YS5oYXNWYWx1ZSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoaGFzRm9udEZhY2VEYXRhLnZhbHVlKCkpIHsK
LSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRhOwotICAgICAgICBpZiAo
IWRlY29kZVNoYXJlZEJ1ZmZlcihkZWNvZGVyLCBmb250RmFjZURhdGEpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmICghZm9udEZhY2VEYXRhKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIE9wdGlvbmFsPGZsb2F0PiBmb250U2l6ZTsKLSAgICAg
ICAgZGVjb2RlciA+PiBmb250U2l6ZTsKLSAgICAgICAgaWYgKCFmb250U2l6ZSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIEZvbnRIYW5kbGUoKTsKIAotICAgICAg
ICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNCb2xkOwotICAgICAgICBkZWNvZGVyID4+IHN5bnRo
ZXRpY0JvbGQ7Ci0gICAgICAgIGlmICghc3ludGhldGljQm9sZCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBPcHRpb25hbDxib29sPiBoYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJzOwor
ICAgIGRlY29kZXIgPj4gaGFzRm9udENyZWF0aW9uUGFyYW1ldGVyczsKKyAgICBpZiAoIWhhc0Zv
bnRDcmVhdGlvblBhcmFtZXRlcnMuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIAotICAgICAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAg
IGRlY29kZXIgPj4gc3ludGhldGljSXRhbGljOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0l0YWxp
YykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaGFzRm9udENyZWF0aW9uUGFy
YW1ldGVycy52YWx1ZSgpKSB7CisgICAgICAgIE9wdGlvbmFsPEZvbnRDcmVhdGlvblBhcmFtZXRl
cnM+IGZvbnRDcmVhdGlvblBhcmFtZXRlcnM7CisgICAgICAgIGRlY29kZXIgPj4gZm9udENyZWF0
aW9uUGFyYW1ldGVyczsKKyAgICAgICAgaWYgKCFmb250Q3JlYXRpb25QYXJhbWV0ZXJzKQorICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVzY3JpcHRpb24g
ZGVzY3JpcHRpb247Ci0gICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgqZm9udFNp
emUpOwotICAgICAgICBoYW5kbGUgPSB7IGZvbnRGYWNlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCBG
b250OjpPcmlnaW46OlJlbW90ZSwgKmZvbnRTaXplLCAqc3ludGhldGljQm9sZCwgKnN5bnRoZXRp
Y0l0YWxpYyB9OworICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSgqZm9udENyZWF0aW9uUGFyYW1l
dGVycykgfX07CiAgICAgfQogCi0gICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0YShkZWNvZGVy
LCBoYW5kbGUpOworICAgIHJldHVybiBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2Rlcik7CiB9CiAK
IHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQ3Vyc29yJiBjdXJzb3IpCkBAIC0zMTQxLDYgKzMxMjAsNTYgQEAgT3B0aW9uYWw8Rm9udEF0
dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8Rm9udEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICByZXR1cm4gYXR0cmlidXRlczsKIH0KIAordm9pZCBBcmd1bWVudENvZGVy
PEZvbnRDcmVhdGlvblBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Rm9udENyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBlbmNvZGVTaGFyZWRC
dWZmZXIoZW5jb2RlciwgcGFyYW1ldGVycy5kYXRhLnB0cigpKTsKKyAgICBlbmNvZGVyIDw8IHBh
cmFtZXRlcnMuZGVzY3JpcHRpb247CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLnJlbW90ZVVS
STsKKyAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMuc3ludGhldGljQm9sZDsKKyAgICBlbmNvZGVy
IDw8IHBhcmFtZXRlcnMuc3ludGhldGljSXRhbGljOworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy5mZWF0dXJlczsKKyAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMuY2FwYWJpbGl0aWVzOworfQor
CitPcHRpb25hbDxGb250Q3JlYXRpb25QYXJhbWV0ZXJzPiBBcmd1bWVudENvZGVyPEZvbnRDcmVh
dGlvblBhcmFtZXRlcnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhOworICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIs
IGRhdGEpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Rm9u
dERlc2NyaXB0aW9uPiBkZXNjcmlwdGlvbjsKKyAgICBkZWNvZGVyID4+IGRlc2NyaXB0aW9uOwor
ICAgIGlmICghZGVzY3JpcHRpb24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxBdG9tU3RyaW5nPiByZW1vdGVVUkk7CisgICAgZGVjb2RlciA+PiByZW1vdGVV
Ukk7CisgICAgaWYgKCFyZW1vdGVVUkkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhl
dGljQm9sZDsKKyAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7CisgICAgZGVjb2Rl
ciA+PiBzeW50aGV0aWNJdGFsaWM7CisgICAgaWYgKCFzeW50aGV0aWNJdGFsaWMpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGb250RmVhdHVyZVNldHRpbmdz
PiBmZWF0dXJlczsKKyAgICBkZWNvZGVyID4+IGZlYXR1cmVzOworICAgIGlmICghZmVhdHVyZXMp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxGb250U2VsZWN0
aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXM7CisgICAgZGVjb2RlciA+PiBj
YXBhYmlsaXRpZXM7CisgICAgaWYgKCFjYXBhYmlsaXRpZXMpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgZGF0YS5yZWxlYXNlTm9uTnVsbCgpLCAqZGVzY3Jp
cHRpb24sICpyZW1vdGVVUkksICpzeW50aGV0aWNCb2xkLCAqc3ludGhldGljSXRhbGljLCAqZmVh
dHVyZXMsICpjYXBhYmlsaXRpZXMgfX07Cit9CisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPjo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6U2VyaWFsaXplZEF0dGFj
aG1lbnREYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCAzNDgyZDA1MGU0YmVmYzEwMmUzMTZkMDE5OGIwMDRlZjYwODQ1MWJlLi4y
YTk1NGE5N2ZhMDIzNDQwMDUxOWFjOTRiZGIzYWI0MmQ4Yzg2YmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTEzLDYgKzExMyw3IEBAIHN0
cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zOwog
c3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3QgRm9udEF0dHJpYnV0ZXM7CitzdHJ1Y3Qg
Rm9udENyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3Ry
dWN0IFNoYXJlRGF0YTsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwpAQCAtMzgyLDkg
KzM4MywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1cnNv
cj4gewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZvbnRIYW5k
bGU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZv
bnRIYW5kbGUmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZv
bnRIYW5kbGUmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Rm9udEhhbmRsZT4gZGVj
b2RlKERlY29kZXImKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZvbnRIYW5kbGUmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYsIFdlYkNvcmU6OkZvbnRIYW5kbGUmKTsKKyAgICBzdGF0aWMg
T3B0aW9uYWw8V2ViQ29yZTo6Rm9udEhhbmRsZT4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
KTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udENy
ZWF0aW9uUGFyYW1ldGVycz4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6Rm9udENyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpGb250Q3JlYXRpb25QYXJhbWV0ZXJzPiBkZWNvZGUoRGVjb2RlciYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ3VybC5jcHAKaW5kZXggODUyZGYzMWRiOThjYzg2YjZiMzM5MTM3YTdjMTdhOGMzOWE5
MDMxYS4uMDZhMDU5NzliNmI5ZWUyNTAwN2FhMmNlZWE5ODZhZDk3OTRiOWRhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1
cmwuY3BwCkBAIC0yNDAsMTAgKzI0MCwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRs
ZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgRm9udEhhbmRsZSYpCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxGb250SGFuZGxl
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBGb250SGFuZGxlJikKK09wdGlvbmFsPEZv
bnRIYW5kbGU+IEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXggZTY3
ZjBlZDYyZmRhODJkNTRlYzllMjM4MzRkNGM4NzEwNjgyMzVkMi4uMjljODg1YmJmYzgyZjlkMzQy
YmU5ODUwMWQ3ZTdmMTZjNjMwOTA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
c291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCkBAIC0yNTcsMTAgKzI1Nywx
MCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiwgY29uc3QgRm9udEhhbmRsZSYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y29kZXImLCBGb250SGFuZGxlJikKK09wdGlvbmFsPEZvbnRIYW5kbGU+IEFyZ3VtZW50Q29kZXI8
Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJikKIHsKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGJhODYzMTY4OTU0YjFiOGVhODJmNDg4NmE4OTI4NzQyMDYxMTcw
NmIuLjRjMzYyZDI5NmQ2MWEyZTg4YjcxMDliY2U4ODkxMTQ0ZDAwNTA0YzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wMS0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFN1cHBvcnQgZHJhd2luZyB0ZXh0IGluIDJE
IGNhbnZhcyB3aXRoIGZvbnQgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjExOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0OTg1
NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIG5ldyBsYXlvdXQgdGVzdCB0aGF0IHVzZXMgYSBmb250IGZhY2Ugd2l0aCBgZm9udC1mZWF0
dXJlLXNldHRpbmdzOiAidGl0bCIgMWAgdG8gcGFpbnQgdGV4dCBvbnRvIGEgY2FudmFzLgorICAg
ICAgICBXaGlsZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2Ugd2l0aCB0aGlzIHBhdGNoIChz
aW5jZSB0aGUgbG9naWMgdG8gYWN0dWFsbHkgdXNlIHRoZSBHUFUgcHJvY2VzcyB0byBwYWludAor
ICAgICAgICB0aGUgY2FudmFzIGVsZW1lbnQgaGFzbid0IGJlZW4gYWRkZWQgeWV0KSwgd2Ugc2hv
dWxkIGJlIGFibGUgdG8gdW5za2lwIHRoaXMgbmV3IHRlc3QgaW4gdGhlIGZ1dHVyZSB3aGVuIHJ1
bm5pbmcKKyAgICAgICAgbGF5b3V0IHRlc3RzIHdpdGggdGhlIEdQVSBwcm9jZXNzIGVuYWJsZWQu
CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRo
LWZvbnQtZmVhdHVyZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3Vy
Y2VzL0ZvbnRXaXRoRmVhdHVyZXMudHRmOiBBZGRlZC4KKwogMjAyMC0wMS0wOSAgUGFibG8gU2Fh
dmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBCYWQgYmFzZWxpbmUgZm9y
IENhdGFsaW5hIG9uIHhociB3ZWItcGxhdGZvcm0tdGVzdHMgaW1wb3J0ZWQgaW4gcjI1NDE1NApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1m
ZWF0dXJlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0
LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwM2Q3MzRkMDgx
OGVjNmE5YjUzMDk1NTM3ZDhkY2YzZjhjMzBlNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9udCI7CisgICAg
c3JjOiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5
cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEg
cm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2VzIGJlbG93
LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3
YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAgICBjb25zdCBj
b250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQi
KTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAgY29udGV4dC5m
aWxsVGV4dCgiYmJiIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQoImFhYSIsIDEw
MCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9m
aWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRkOGM1ZGQy
ZTdlNWI3NDliOTNmNDg3ZGI4MTYxYTc5N2FkYmExYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitA
Zm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIlNwZWNpYWxGb250IjsKKyAgICBzcmM6IHVy
bCgicmVzb3VyY2VzL0ZvbnRXaXRoRmVhdHVyZXMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOwor
ICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogInRpdGwiIDE7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIHJvdyBvZiAzIGNoZWNrIG1hcmtzIGZvbGxv
d2VkIGJ5IGEgcm93IG9mIDMgY3Jvc3NlcyBiZWxvdy48L3A+Cis8Y2FudmFzIHdpZHRoPSI0MDAi
IGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICBhd2FpdCBkb2N1bWVudC5mb250cy5sb2FkKCI4
MHB4IFNwZWNpYWxGb250Iik7CisgICAgY29uc3QgY29udGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7CisgICAgY29udGV4dC5mb250ID0gIjgw
cHggU3BlY2lhbEZvbnQiOworICAgIGNvbnRleHQuZmlsbFRleHQoImFhYSIsIDEwMCwgMTAwKTsK
KyAgICBjb250ZXh0LmZpbGxUZXh0KCJjY2MiLCAxMDAsIDIwMCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30pOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL0ZvbnRXaXRoRmVhdHVyZXMu
dHRmIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL0ZvbnRXaXRoRmVhdHVyZXMu
dHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQyYzMzMmExM2NjMTAyOTM5NTZiOTg4NjZmNzIzMGJlN2I1ZGY5MWUK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMzI0CnpjbWVITlUxKGcjNzUtLWJ3SlNAcXslcCYj
eXB8PGRTPSpBbG1TeCElIWdkdG4jQk85UHJEQGFCdlgpa28+eUA+WQp6V256YXNxITd8bGBrO3I8
bWVQaGkxWDVaYE85JjJ4d2lIcj1UMXA3aVhgTkR2cHxudXdMbSU4aWdSQVgjPUZZNykKeitMM2Nk
REhPYHk8P1FgdD93Sz5eb0g9TGk/endrcUBwPk0kY24pRWw5R35kVnAxdTMmTzh8YUZueDJ9Xjc0
Y3JeCnpoa3pQamB3S0pxKyowKF9pJCU3LU8pQVY1WnFCVXF6VntYb1A1PSFwYk5TcUt6SCNpSUt2
U0NoTHYhcCUlO0c1OQp6cEpLYWZaaHE7O1pLUGdjYCZxVmM3WiM+K1B+U2ZXRyskdSomVjI0aDVt
JClOKCN4Oyh7S0RkbSM0bVE3WDhTQnEKemQtN14tS0w3c257cjctOVVqZ2MjRWlQUEpxVFcwUEJF
cFlRMW5NNTUoJktoYW87JkBkajN8e1ROTVZMaGxeWDhICnpyNiZYdFBVJkhVT0M9KGlRSys1WWlz
dnombGUlNVlaJE5hSEJTYm55ZFdzfWBJbnB6dm9mTyFeYkJ0JDJ1QlkmZgp6bVV7fWhRbU9SMigj
eDhnNEVrSXJmUUxkMnpoNVUlPStkKDk1R09nYXNDVn17czRlSyRkaXstZkRgeVpMPy1Ncj4KelE1
VGdVLWhuMks4O0lNe0IwT3E0QG9zNyh4UWxvJVFXXzVzPz9hdHZwKy1tdCY8dUorb24oSk1TfmJz
U2lJMzZ+CnohWlN4WWZzaEtKUVBFY19mK2lKM004eXpRYVd0ejBUMnV8c2VkSjVnajlOXm9JYFk+
T0g7e2luK2x8QzY/QXUxJQp6T3gjTW1vd3lCa1lBNFVURDZmTyhHX1VRVW9LRTV7OyU/I3w7JEhH
VSNDQz4hMmlZRUFgdyhTayoqPVZ2OHN4UGoKejxRP0wqVlBlTGZJIT5NdVRDanFaYTV8aDhlPTBm
SGZlLWB0VSpFLXdJckVCVXlBfUV8OXA8clYjdzxRaSVnQztkCnp1SEkkQFc9az0oVHpZNDlsczsz
KUF7KUxIelFydV8yV2F0MS1QMSNnbnpndUVFV00rYVNCdUUxPHhvIyRwVH1Eagp6U01eO3JQfVZZ
fm5pVkQ9eWk7e1lzY3hVVmVeaiVnbmljWjxxeHokd3s4dj5xRTI+I2gmNUhIZ0xOek9AU3k5YzMK
ejRZR24yNmpuQmJ7YEF7LS19cnB9JGxwVU9ZdUp2NkYyaEpvTTMyemxRYl5GWEJ6OXsyO2VraWt3
XysmRV5aeH1JCno2Wmk0VihnfEtBe2V5MEpnIUNmbWsxVk5WTm5hd3AlUUQoLShwQXo9PXBvaWVC
QSszQmtIaXtjXmVwS2NxKDhHJQp6IytwcytkRDU/ZWNxaSRMcUBNd2FkZVl9ZUtPbyUpWVItfHFN
ZndZbjk0Mzk0XmN4Xz5gY1BfI15jTCVnamllbXUKek08bXdzd21lU3k0KFlGfkRWYHZHbUduTVAm
cEtaSCkxPGVod3k5VjMyPHZuRGtRIVJxTEc0VHJZZ19zbEdkK3NxCnpnamROaElxUiQ1UzM2SCFj
Sl9JZEsqNG15ZXxYQWVQLWgxalFkamhqYXYzQHsxTTNtQiU0bC1aQlc5Sk1aNFJ0UQp6KyR1d0F5
dXAyJXUqenQ1bDJLIW8oYyZae1hfZXVvMlA+elhRO3hOQD9iN1l3ezswTGU1Vl5yK1l8JTFnJSRn
b2EKek9nWUtXd1BtZSl4ZVR7X1ZmOSFgX149KnN3bHI4fXhhR0BNaSRBJkB7bFYmWWcpUUJsK2Aj
JExXUj5DT1EmISQoCno5Wjc1SiFzQCM4MT1ocGNGfnl2NjhFKSYrWU8kcnFhWDtOPXVfZiRpJVhX
KCVWTGxtZ0B5OEJ9OSEtdlZ2fDAzTQp6XjZudmwqSlk8Z2p9fUtnXnokQkIrT29Ddik7b0I3PzZU
TSp5UXp5JEoxbi11OUJ0V2MoWmpvTTEtQihfbUVtVH4KejkqWnEwTV9XMkFkWlpsbFd2XjkrVGkp
YENvTDxURF9eNU0/UT91XzsmZjVPYj9DNmdraXlxQzZ7QDc9ZztkWEU2Cnp3YVNQJSNYNnNBUmB8
NDtQaWtIQUMxYUswd3ptN05HRE5sRGA2NXE2JHhtOGErZzhXNUohc0x4eUkleT9xdDdiQwp6JjZh
K1BqQ1JLdThfK1VOaGRWZzZqeDdDdGZRTGlHXjB0OFZobCRQYEVia0MzOFhWPDZoO0pHa1dCKkdZ
PTlCNG0KentNX0lXMjY1Tm1GaD0tdlVDWlIoKiYhdXdVcjtgdSl7bStlNDMxJHlgRDVkSnMmZGN0
Q29tRStgdFdKflh5fXNaCno/Xz5ZVjF9QmpYe29kZGRNI0ZOYTYjMkN7ODgtVSFaR313dVlvQD1C
Xz9FJS09bkNJOHhCKj59aHs1fk84UjApTgp6RW9VcCpCYWEhfWgpaVYwOzEmITttSlF5OTttRiR0
SDw1cVU7QVVpXlozZWV1Q159fkZiX19ANT9GYFgjMlJmcCEKejhRZXlHeyFgV2NkfitsRWZ4KyRR
alFUUW5Bcm5pUnt0b29VZUJFfVZCV0JofXJPRCYjd2c9aFJufSl4V25FeVByCnp7SnJSa247MX1D
JGl6Plp7JSNEJTNrTFVLRiNkfGNgX0xaMFZ7azl8e1dXP0JnOSU/d2hXTWk0SWUtSFJlfC0tVQp6
YCFARVlDLURjdkdre0V1QEFFPyN0ZFcxVDsqJV9+enQpRnx6aSM+bWlHT01FNWdmMWFlS0xkKmAz
SjdZOXp7QzIKeldiaU9EJHJsWWloUTghYTRMKikrKClZcyZ3NTVGZ042P2NSI3UrVCZEd2dtaEY3
dGJpP0w2UDdTO0JTWktweGpICnokPExZcDBvTmgpVkliaFZTRDNxKEZ9cUlobjwmelBEfG5hfCZo
c083UmBRTHJjWT1IYyhpSDdwcHh4ZFdAayQ7eQp6dkBkZUo/bFNnNF5VYmh3d2ZQekNxYzc1U1Mr
QWZ2SzhXOHchJiFSeG4oQHpOZGRrSGtMQzYwMFhPXntKem1CSzQKem1hPypveWRzaEFNUnxGJjFR
YClMWmZ4XzdHWGB1P0BKWCVMNWBGRD9feVlDNnJaZS1od3F6MlhwM34lO3E0dzljCnpFbDwjcj4q
VUwwKzdlbGheNkhHMUQ+ND96Un5kYTE5NTMwaiRoa0orOFJ5ayRVS2cod3RXd1QlPzkqRHghe2la
dAp6SGx1SClsbkd8OSV2b1NBPWN1UjZnMzNgQklLT3lPUihSdWFQZihzYGBOej9AUWM0aD1EQE8m
PmBNa0V3aXtaXnsKeiYzaDFjeChXS3tDT3c8U0lRPTAwbDhsamstI3lZTXdZTGo4TXJJJTJeVCEh
Jl5TSCEwN2Q2KnJCYzstUjwmdUwlCnokdyFTU3pka19ePChRZTAxR0FnKiY7P3EmS3EtPUF6T047
KyVWKTlhe1J6RCl2S00kN05Uej8obUB9TTF3RHNyTgp6Kz90TmorOG5Ld3MxUXZuckI/MUg+dnlw
clc0dzQ8OzdwPSprLXRQXzR9Myk1ZjJDKGxkeF9iQz93TWwqUDRne1oKemlLN0xedWwtSXdNXyU2
KCFafF9OR1E7TH1yXm9PcEJePCZyekl7RSs9dl48fXd0OCEwaEg9PD0lclg4QmEreFBmCnp7c0hF
OHVyVSsjXkV8eUZTdnh9I2p8TGsjc2w2KDkxVjYkZ0s3eCsqZXAhOXxqSXczTUIoMEYmWkl6TF5R
VH1aXwplO3YpQnxPV1hfM0Y9aXdLe0MpOFgpP2N5M0FBakZKPT1lQTlBWStkSgoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387447</attachid>
            <date>2020-01-11 14:43:32 -0800</date>
            <delta_ts>2020-09-29 01:13:38 -0700</delta_ts>
            <desc>Adjust Win TestExpectations</desc>
            <filename>bug-206118-20200111144331.patch</filename>
            <type>text/plain</type>
            <size>41286</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjODhkNTMzMjYzODMw
NGU4ZjdiN2IzMWE5MDIwMDU2YzU1Zjc0MC4uZDZmYzc5YzY1YjAxNmFkMTQ5MTc1NmMyMGNkNDdl
ZjhiYTlkZjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTAxLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vz
c10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODQ5ODU3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50cyBhbmQgcmVmYWN0b3JzIHNvbWUgZXhp
c3RpbmcgbG9naWMgZm9yIHByb3BhZ2F0aW5nIGZvbnQgaW5mb3JtYXRpb24gdG8gdGhlIEdQVSBw
cm9jZXNzIHdoZW4gcGFpbnRpbmcKKyAgICAgICAgZ2x5cGhzIHVzaW5nIGRpc3BsYXkgbGlzdHMs
IHN1Y2ggdGhhdCB3ZSBwcmVzZXJ2ZSBmb250IGZlYXR1cmUgc2V0dGluZ3MuIFNlZSBiZWxvdyBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtZmVhdHVyZXMuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKworICAg
ICAgICBBZGQgRm9udENyZWF0aW9uUGFyYW1ldGVycy5oLgorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6
Y3JlYXRlRm9udCk6CisKKyAgICAgICAgTW92ZSBsb2dpYyB0aGF0IHNldHMgdGhlIGZvbnQgZmFj
ZSBkYXRhIChub3cgZm9udCBjcmVhdGlvbiBwYXJhbWV0ZXJzKSBvdXQgb2YgYENTU0ZvbnRGYWNl
Ojpmb250YCwgYW5kIGludG8KKyAgICAgICAgYENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnRgLiBUaGlz
IGFsc28gYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUgbm93LXVudXNlZCBjYWNoZWRGb250KCkgZ2V0
dGVyIGluIENTU0ZvbnRGYWNlU291cmNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpzZXRGb250Q3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRIYW5kbGU6OkZvbnRIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpoYXNGb250
Q3JlYXRpb25QYXJhbWV0ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmZvbnRD
cmVhdGlvblBhcmFtZXRlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZh
Y2VEYXRhIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBSZWZhY3RvciB0aGlzLCBzbyB0aGF0
IGZvbnRGYWNlRGF0YSAoYSBgUmVmUHRyPFNoYXJlZEJ1ZmZlcj5gKSBpcyByZXBsYWNlZCBieSBG
b250Q3JlYXRpb25QYXJhbWV0ZXJzLCB3aGljaAorICAgICAgICBjb250YWluIHRoZSBgUmVmPFNo
YXJlZEJ1ZmZlcj5gIGFsb25nIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBuZWVkZWQgdG8g
cmVjb25zdHJ1Y3QgdGhlIEZvbnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisKKyAgICAgICAgSW50cm9kdWNlIEZvbnRD
cmVhdGlvblBhcmFtZXRlcnMsIHdoaWNoIGVuY2Fwc3VsYXRlcyB0aGUgcGllY2VzIG9mIGluZm9y
bWF0aW9uIHRoYXQgZ28gaW50byBjcmVhdGluZyBhCisgICAgICAgIFdlYkNvcmU6OkZvbnQgYmFj
a2VkIGJ5IHBsYXRmb3JtIGZvbnQgZGF0YS4gVGhpcyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91
dCBmb250IGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMsCisgICAgICAgIHN5bnRoZXRpYyBib2xk
IGFuZCBpdGFsaWMsIGFzIHdlbGwgYXMgdGhlIGZvbnQgZGVzY3JpcHRpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENyZWF0aW9uUGFyYW1ldGVyczo6b3BlcmF0b3I9KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmg6IEFk
ZGVkLgorCisgICAgICAgIERlY2xhcmUgc2V2ZXJhbCBjb25zdHJ1Y3RvcnMgYW5kIGFzc2lnbm1l
bnQgb3BlcmF0b3JzIGluIHRoZSBoZWFkZXIsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIGhhdmluZyB0
byAjaW5jbHVkZQorICAgICAgICBTaGFyZWRCdWZmZXIuaCBpbiB0aGlzIGhlYWRlciAoYW5kIGlu
c3RlYWQsIGp1c3QgdXNlIGEgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBTaGFyZWRCdWZmZXIpLgor
CiAyMDIwLTAxLTEwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViR0xdIENsYXJpZnkgVVNFX09QRU5HTF9FU18zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjMzBmMTdhMjI0YmZi
ZWM3NzY4ZmVmNDczNTRkODcwOWIwZjYyZDQuLjU2NjcwMWRmOTk2YzZlNjM5YWU4ZTFiNDhkZTU2
MjI3YmJiMTRhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDEtMTAgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNz
XSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4NDk4NTcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgc3VwcG9ydCBmb3IgZW5jb2RpbmcgRm9udENy
ZWF0aW9uUGFyYW1ldGVycywgYW5kIGFjY291bnQgZm9yIHRoZXNlIGZvbnQgY3JlYXRpb24gcGFy
YW1ldGVycyB3aGVuCisgICAgICAgIGVuY29kaW5nIGFuZCBkZWNvZGluZyBhIEZvbnRIYW5kbGUu
IFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSBjaGFuZ2UgdGhlIGRlY29kZXIgdG8gcmV0dXJuIGFuIGBPcHRp
b25hbDxGb250SGFuZGxlPmAsIHJhdGhlciB0aGFuIGEgYGJvb2xgICh3aXRoIHRoZQorICAgICAg
ICBgRm9udEhhbmRsZSZgIHBhc3NlZCBpbiBhcyBhbiBhcmd1bWVudCkuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxG
b250SGFuZGxlPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGb250Q3Jl
YXRpb25QYXJhbWV0ZXJzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxG
b250Q3JlYXRpb25QYXJhbWV0ZXJzPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46
OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhhbmRs
ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisKKyAgICAgICAgVXBkYXRlIHNvbWUgbWV0aG9kIHNp
Z25hdHVyZXMgdG8gcmV0dXJuIGBPcHRpb25hbDxGb250SGFuZGxlPmBzIGluc3RlYWQgb2YgYGJv
b2xgcy4KKwogMjAyMC0wMS0xMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgY29ycmVjdCBncmFuZGZhdGhlcmluZyBmdW5jdGlvbmFsaXR5
IHRvIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMjk2ZGVh
NzgzMWJlZTQ5Y2YwMDRhNjgyZGQyNWU4OTNiOTk2NGU3Ny4uMTAyYzhmNmY4MjRkMzRjZTIwZWE5
ZTY3OGRjZmJhYTIxYmIyZGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMDQxLDYgKzEwNDEs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
RGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlRm9udHMuaAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhbWlseVNwZWNpZmljYXRpb25OdWxsLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250TWV0
cmljcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQxMTIxNTU3YWU2ZjM1ZGI5YWQ1ZjRjMWU4YWNjY2Ew
ODY2M2U2ZmIuLjc2MmYyOTQxMmU4YWVhYzNlMzAzNWE0NDExNTRjNzg0ZTEwM2I4MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xODQ2LDYgKzE4NDYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZUZvbnRzLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0aW9uUGFyYW1ldGVycy5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRTZWxlY3Rpb25BbGdvcml0aG0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJiODQzMTQ1MzlhZDA5NTE0NjMxYjIxMzA2
MTZhZjYwYmE5YTFjMy4uNzVjODc0MjZhZjJkNTg3NWQxOGFjNTdiNmI4ZDYyNWVhZGQ2ZWU5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk2OCw2ICs0OTY4LDcgQEAKIAkJRjRENDNENjYyMTg4MDM4QjAwRUNFQ0FDIC8qIFNl
cmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRENDNENjQyMTg4MDJFNjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRh
Y2htZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUY0RTU3RURDMjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFNTdFREEy
MTNGM0Y1RjAwNEVBOThFIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRFNTdFRTEyMTNGNDM0QTAwNEVB
OThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2Vi
Q29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlGNEVDNzQwRDIzQzU4RDY1MDAwQTQ4QTIgLyogRm9udENyZWF0
aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRFQzc0MEMyM0M1OEQ2NTAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEZC
MzRGQzIzNTBDODVEMDBGMDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RkIzNEZBMjM1MEM4NUQwMEYw
MDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJ
CUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZG
NDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1NDY4LDYgKzE1NDY5LDggQEAK
IAkJRjRFNTdFREEyMTNGM0Y1RjAwNEVBOThFIC8qIEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRBdHRyaWJ1dGVDaGFuZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RTU3RURGMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdl
ckV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJhcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VFMDIxM0Y0MzRBMDA0RUE5OEUgLyog
V2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b3JlTlNGb250TWFuYWdlckV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjRFQzc0MEMyM0M1OEQ2NTAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9udENyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNEVDNzQwRjIzQzY0NDZGMDAwQTQ4QTIgLyogRm9udENyZWF0aW9uUGFyYW1l
dGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGQjM0RkEyMzUwQzg1RDAwRjAwOTRBIC8q
IFBhc3RlYm9hcmRDdXN0b21EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRDdXN0b21E
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RkIzNEZCMjM1MEM4NUQwMEYw
MDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RkIz
NTAwMjM1MEM5NjIwMEYwMDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MDI5LDYgKzI1MDMyLDggQEAKIAkJCQlFNEU4QjRGMjIx
NkI4QjYwMDBCODgzNEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oICovLAogCQkJCUIyQzNE
QTU2MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmNwcCAqLywKIAkJCQlCMkMz
REE1NzBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oICovLAorCQkJCUY0RUM3
NDBGMjNDNjQ0NkYwMDBBNDhBMiAvKiBGb250Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKKwkJ
CQlGNEVDNzQwQzIzQzU4RDY1MDAwQTQ4QTIgLyogRm9udENyZWF0aW9uUGFyYW1ldGVycy5oICov
LAogCQkJCTM3QUNDRTYyMERBMkFBOTYwMDg5RTYwMiAvKiBGb250RGVzY3JpcHRpb24uY3BwICov
LAogCQkJCUIyQzNEQTU1MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RGVzY3JpcHRpb24uaCAqLywK
IAkJCQlDMjgwQjNGRDFFRjQ2MDg5MDBEMzUxMzUgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25O
dWxsLmNwcCAqLywKQEAgLTI5OTU5LDYgKzI5OTY0LDcgQEAKIAkJCQlCMkMzREE2MTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udENhc2NhZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RThCNEY1MjE2
Qjk1NjUwMEI4ODM0RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjRFQzc0MEQyM0M1OEQ2NTAwMEE0OEEyIC8qIEZvbnRDcmVhdGlvblBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzdFMEQwMEE1QzEwMDMwMDc0RCAv
KiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2NjBE
MDA2Q0Q2MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QzY2MjYxMTFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggMDg5MWRiNGUwMzFkYmRiMGQ5ZmJiZDQzYjY5
NzU5MWQ2ZGRkZGQ3MS4uZTZjYTIyYjhmZDA3NTRmM2YxNmI3MmFhNjVkZjU0YThjODI2ZWQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC02NzUsMTEgKzY3NSw4IEBAIFJlZlB0
cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKEZvbnRD
YWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRpb24p
LT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2luOjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0aWFs
OjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VT
b3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNv
dXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpIHsKLSAg
ICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250ID0gc291cmNlLT5jYWNoZWRGb250KCk7Ci0g
ICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250RmFjZURhdGEoY2FjaGVkRm9udCA/IGNhY2hl
ZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChhdXRv
IHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxp
dGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6
OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U291cmNlLmgKaW5kZXggZDhhNjJiN2E0YzVhNjcyNWM5MTgyM2MwZTlkNzdkZTA3NGM3OGU0ZS4u
ZTRhMmVkOTY4NjIyMTc4YTg5OTI3YTNlMmVjM2I5OTVjNjhmMjk1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKQEAgLTcyLDcgKzcyLDYgQEAgcHVibGljOgogICAgIHZv
aWQgbG9hZChDU1NGb250U2VsZWN0b3IqKTsKICAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBG
b250RGVzY3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFi
aWxpdGllcyk7CiAKLSAgICBDYWNoZWRGb250KiBjYWNoZWRGb250KCkgY29uc3QgeyByZXR1cm4g
bV9mb250LmdldCgpOyB9CiAgICAgYm9vbCByZXF1aXJlc0V4dGVybmFsUmVzb3VyY2UoKSBjb25z
dCB7IHJldHVybiBtX2ZvbnQ7IH0KIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKaW5kZXggM2Y0Njk5Y2Y4MzI5OGYwNGUy
NzRhZTAwZWY5NWE1NTQ3NWE2NWYzZC4uN2MwZTY5ZDM0ZTY4ZmUxNDg4OGUzZjRmOWYwNTc2OTZi
ZDg3NWRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApA
QCAtMTI0LDkgKzEyNCwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0
YT4gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoU2hhcmVkQgogICAgIHJldHVybiBj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGJ5dGVzLCBpdGVtSW5Db2xsZWN0aW9uKTsKIH0K
IAotUmVmUHRyPEZvbnQ+IENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250
RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNl
Q2FwYWJpbGl0aWVzKQorUmVmUHRyPEZvbnQ+IENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90
ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9u
dEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmll
ZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKIHsKLSAgICByZXR1cm4gRm9udDo6
Y3JlYXRlKHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhl
dGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFi
aWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKKyAgICBhdXRvIGZvbnQgPSBGb250Ojpj
cmVhdGUocGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0
aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUpOworICAgIGlmIChtX2RhdGEpCisgICAgICAg
IGZvbnQtPnNldEZvbnRDcmVhdGlvblBhcmFtZXRlcnMoeyAqbV9kYXRhLCBmb250RGVzY3JpcHRp
b24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZl
YXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyB9KTsKKyAgICByZXR1cm4gZm9udDsKIH0KIAog
Rm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNl
bGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggODk3OWIyNThhNzExODU1
NTM3MzMyMzA4ZjkwMjllYTYzZmFjZjFjOC4uNDIzNjJiZmE3YWRhZjE0ZGM1NTdhMGViZTZmODcz
MDQ0ZTMxNjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
QEAgLTcwOCwxOCArNzA4LDE2IEBAIGNvbnN0IFBhdGgmIEZvbnQ6OnBhdGhGb3JHbHlwaChHbHlw
aCBnbHlwaCkgY29uc3QKICAgICByZXR1cm4gKm1fZ2x5cGhQYXRoTWFwLmV4aXN0aW5nTWV0cmlj
c0ZvckdseXBoKGdseXBoKTsKIH0KIAotdm9pZCBGb250OjpzZXRGb250RmFjZURhdGEoUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4mJiBmb250RmFjZURhdGEpCit2b2lkIEZvbnQ6OnNldEZvbnRDcmVhdGlv
blBhcmFtZXRlcnMoRm9udENyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7Ci0gICAg
bV9mb250RmFjZURhdGEgPSBXVEZNb3ZlKGZvbnRGYWNlRGF0YSk7CisgICAgbV9mb250Q3JlYXRp
b25QYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKTsKIH0KIAotRm9udEhhbmRsZTo6Rm9u
dEhhbmRsZShSZWY8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwgRm9udDo6T3JpZ2luIG9y
aWdpbiwgZmxvYXQgZm9udFNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJ
dGFsaWMpCitGb250SGFuZGxlOjpGb250SGFuZGxlKEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogewogICAgIGJvb2wgd3JhcHBpbmc7Ci0gICAgYXV0byBjdXN0b21Gb250RGF0
YSA9IENhY2hlZEZvbnQ6OmNyZWF0ZUN1c3RvbUZvbnREYXRhKGZvbnRGYWNlRGF0YS5nZXQoKSwg
eyB9LCB3cmFwcGluZyk7Ci0gICAgRm9udERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uOwotICAgIGRl
c2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250U2l6ZSk7Ci0gICAgZm9udCA9IEZvbnQ6OmNy
ZWF0ZShDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSgqY3VzdG9tRm9udERh
dGEsIGRlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIHsgfSwgeyB9
KSwgb3JpZ2luKTsKKyAgICBhdXRvIGN1c3RvbUZvbnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRl
Q3VzdG9tRm9udERhdGEocGFyYW1ldGVycy5kYXRhLCB7IH0sIHdyYXBwaW5nKTsKKyAgICBmb250
ID0gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCpj
dXN0b21Gb250RGF0YSwgcGFyYW1ldGVycy5kZXNjcmlwdGlvbiwgcGFyYW1ldGVycy5zeW50aGV0
aWNCb2xkLCBwYXJhbWV0ZXJzLnN5bnRoZXRpY0l0YWxpYywgcGFyYW1ldGVycy5mZWF0dXJlcywg
cGFyYW1ldGVycy5jYXBhYmlsaXRpZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
aAppbmRleCAwYzk1MjU5ZjcyNDNiMTMzNDczMDY1NDU3ODBiYTg3OTIwYmRhZDhmLi4zN2E3MTIw
ZWM3NmU2MmUzMjc0MjVhMzk1MWUwNTM1MGI3MTFjOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5lIEZvbnRfaAogCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRm9udENyZWF0aW9uUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgIkZvbnRNZXRyaWNzLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5o
IgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSAi
T3BlblR5cGVWZXJ0aWNhbERhdGEuaCIKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9CaXRWZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtNTQsNyArNTYsNiBAQCBpbnRl
cmZhY2UgSURXcml0ZUdkaUludGVyb3A7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEds
eXBoUGFnZTsKLWNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0
cnVjdCBHbHlwaERhdGE7CiBzdHJ1Y3QgV2lkdGhJdGVyYXRvcjsKQEAgLTIxOCw4ICsyMTksOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGZsb2F0IGFzY2VudENvbnNpZGVyaW5nTWFjQXNjZW50SGFj
ayhjb25zdCBXQ0hBUiosIGZsb2F0IGFzY2VudCwgZmxvYXQgZGVzY2VudCk7CiAjZW5kaWYKIAot
ICAgIFNoYXJlZEJ1ZmZlciogZm9udEZhY2VEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250RmFj
ZURhdGEuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEZvbnRGYWNlRGF0YShSZWZQdHI8U2hhcmVkQnVm
ZmVyPiYmKTsKKyAgICBib29sIGhhc0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMoKSBjb25zdCB7IHJl
dHVybiBtX2ZvbnRDcmVhdGlvblBhcmFtZXRlcnMuaGFzVmFsdWUoKTsgfQorICAgIGNvbnN0IEZv
bnRDcmVhdGlvblBhcmFtZXRlcnMmIGZvbnRDcmVhdGlvblBhcmFtZXRlcnMoKSBjb25zdCB7IHJl
dHVybiAqbV9mb250Q3JlYXRpb25QYXJhbWV0ZXJzOyB9CisgICAgdm9pZCBzZXRGb250Q3JlYXRp
b25QYXJhbWV0ZXJzKEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKIHByaXZhdGU6CiAgICAg
V0VCQ09SRV9FWFBPUlQgRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRhJiwgT3JpZ2luLCBJbnRl
cnN0aXRpYWwsIFZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2spOwpAQCAtMjk0LDcgKzI5
Niw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2Ny
aXB0Rm9udFByb3BlcnRpZXM7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1f
Zm9udEZhY2VEYXRhOworICAgIE9wdGlvbmFsPEZvbnRDcmVhdGlvblBhcmFtZXRlcnM+IG1fZm9u
dENyZWF0aW9uUGFyYW1ldGVyczsKIAogICAgIEdseXBoIG1fc3BhY2VHbHlwaCB7IDAgfTsKICAg
ICBHbHlwaCBtX3plcm9HbHlwaCB7IDAgfTsKQEAgLTMyOSw3ICszMzEsNyBAQCBwcml2YXRlOgog
Y2xhc3MgRm9udEhhbmRsZSB7CiBwdWJsaWM6CiAgICAgRm9udEhhbmRsZSgpID0gZGVmYXVsdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBGb250SGFuZGxlKFJlZjxTaGFyZWRCdWZmZXI+JiYgZm9udEZh
Y2VEYXRhLCBGb250OjpPcmlnaW4sIGZsb2F0IGZvbnRTaXplLCBib29sIHN5bnRoZXRpY0JvbGQs
IGJvb2wgc3ludGhldGljSXRhbGljKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250SGFuZGxlKEZv
bnRDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKICAgICBSZWZQdHI8Rm9udD4gZm9udDsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhZGE1MmVhNGYwNmE0NzRjMWRhMjU1ZTU1
Y2VmM2FhZmEyNDQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvblBh
cmFtZXRlcnMuaCIKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0ZvbnRDcmVhdGlvblBhcmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMo
UmVmPFNoYXJlZEJ1ZmZlcj4mJiBmb250RGF0YSwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHVyaSwgYm9vbCBib2xkLCBib29sIGl0YWxp
YywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZlYXR1cmVzLCBjb25zdCBGb250U2Vs
ZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiBmb250Q2FwYWJpbGl0aWVzKQorICAgIDogZGF0
YShXVEZNb3ZlKGZvbnREYXRhKSkKKyAgICAsIGRlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbikK
KyAgICAsIHJlbW90ZVVSSSh1cmkpCisgICAgLCBzeW50aGV0aWNCb2xkKGJvbGQpCisgICAgLCBz
eW50aGV0aWNJdGFsaWMoaXRhbGljKQorICAgICwgZmVhdHVyZXMoZm9udEZlYXR1cmVzKQorICAg
ICwgY2FwYWJpbGl0aWVzKGZvbnRDYXBhYmlsaXRpZXMpCit7Cit9CisKK0ZvbnRDcmVhdGlvblBh
cmFtZXRlcnM6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnMoY29uc3QgRm9udENyZWF0aW9uUGFyYW1l
dGVycyYgb3RoZXIpCisgICAgOiBGb250Q3JlYXRpb25QYXJhbWV0ZXJzKG90aGVyLmRhdGEuY29w
eVJlZigpLCBvdGhlci5kZXNjcmlwdGlvbiwgb3RoZXIucmVtb3RlVVJJLCBvdGhlci5zeW50aGV0
aWNCb2xkLCBvdGhlci5zeW50aGV0aWNJdGFsaWMsIG90aGVyLmZlYXR1cmVzLCBvdGhlci5jYXBh
YmlsaXRpZXMpCit7Cit9CisKK0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMmIEZvbnRDcmVhdGlvblBh
cmFtZXRlcnM6Om9wZXJhdG9yPShjb25zdCBGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiBvdGhlcikK
K3sKKyAgICBkYXRhID0gb3RoZXIuZGF0YS5jb3B5UmVmKCk7CisgICAgZGVzY3JpcHRpb24gPSBv
dGhlci5kZXNjcmlwdGlvbjsKKyAgICByZW1vdGVVUkkgPSBvdGhlci5yZW1vdGVVUkk7CisgICAg
c3ludGhldGljQm9sZCA9IG90aGVyLnN5bnRoZXRpY0JvbGQ7CisgICAgc3ludGhldGljSXRhbGlj
ID0gb3RoZXIuc3ludGhldGljSXRhbGljOworICAgIGZlYXR1cmVzID0gb3RoZXIuZmVhdHVyZXM7
CisgICAgY2FwYWJpbGl0aWVzID0gb3RoZXIuY2FwYWJpbGl0aWVzOworICAgIHJldHVybiAqdGhp
czsKK30KKworRm9udENyZWF0aW9uUGFyYW1ldGVycyYgRm9udENyZWF0aW9uUGFyYW1ldGVyczo6
b3BlcmF0b3I9KEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmJikgPSBkZWZhdWx0OworRm9udENyZWF0
aW9uUGFyYW1ldGVyczo6Rm9udENyZWF0aW9uUGFyYW1ldGVycyhGb250Q3JlYXRpb25QYXJhbWV0
ZXJzJiYpID0gZGVmYXVsdDsKK0ZvbnRDcmVhdGlvblBhcmFtZXRlcnM6On5Gb250Q3JlYXRpb25Q
YXJhbWV0ZXJzKCkgPSBkZWZhdWx0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvblBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvblBh
cmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2Q3MzA2NzhjMjZiM2NiZjFlMThhMDVkZjg0MmVjNTUx
NTI3NmQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU2hhcmVkQnVmZmVyOworCitzdHJ1Y3QgRm9udENyZWF0aW9u
UGFyYW1ldGVycyB7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udENyZWF0aW9uUGFyYW1ldGVycyhS
ZWY8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9tU3Ry
aW5nJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9u
dEZlYXR1cmVTZXR0aW5ncyYsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMmKTsKKyAgICBGb250Q3JlYXRpb25QYXJhbWV0ZXJzKGNvbnN0IEZvbnRDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250Q3JlYXRpb25QYXJhbWV0ZXJzKEZvbnRD
cmVhdGlvblBhcmFtZXRlcnMmJik7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9udENyZWF0aW9u
UGFyYW1ldGVycygpOworCisgICAgRm9udENyZWF0aW9uUGFyYW1ldGVycyYgb3BlcmF0b3I9KGNv
bnN0IEZvbnRDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250Q3Jl
YXRpb25QYXJhbWV0ZXJzJiBvcGVyYXRvcj0oRm9udENyZWF0aW9uUGFyYW1ldGVycyYmKTsKKwor
ICAgIFJlZjxTaGFyZWRCdWZmZXI+IGRhdGE7CisgICAgRm9udERlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uOworICAgIEF0b21TdHJpbmcgcmVtb3RlVVJJOworICAgIGJvb2wgc3ludGhldGljQm9sZDsK
KyAgICBib29sIHN5bnRoZXRpY0l0YWxpYzsKKyAgICBGb250RmVhdHVyZVNldHRpbmdzIGZlYXR1
cmVzOworICAgIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCAxYzE1
YTIxYmY3NDM0MGFjNDJhNTZiYWU1YmFkMTlmMmQzOTdjNGI3Li44YWJmOGQyYjExYzk5ZjU4ZWMw
YjQxNDhhN2YwNDAwMTk1MjQ5MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtNDgxLDI3ICs0ODEs
MjggQEAgT3B0aW9uYWw8Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9u
dEF0dHJpYnV0ZXM+OjpkZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBBcmd1bWVudENvZGVyPEZvbnRI
YW5kbGU+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRm9udEhh
bmRsZSYgaGFuZGxlKQogewotICAgIGF1dG8gY3RGb250ID0gaGFuZGxlLmZvbnQgJiYgIWhhbmRs
ZS5mb250LT5mb250RmFjZURhdGEoKSA/IGhhbmRsZS5mb250LT5nZXRDVEZvbnQoKSA6IG5pbDsK
KyAgICBhdXRvIGN0Rm9udCA9IGhhbmRsZS5mb250ID8gaGFuZGxlLmZvbnQtPmdldENURm9udCgp
IDogbmlsOwogICAgIGVuY29kZXIgPDwgISFjdEZvbnQ7CiAgICAgaWYgKGN0Rm9udCkKICAgICAg
ICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FGb250ICopY3RGb250OwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNv
ZGVyLCBGb250SGFuZGxlJiBoYW5kbGUpCitPcHRpb25hbDxGb250SGFuZGxlPiBBcmd1bWVudENv
ZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlcikKIHsK
ICAgICBib29sIGhhc1BsYXRmb3JtRm9udDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1Bs
YXRmb3JtRm9udCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAogICAgIGlmICghaGFzUGxhdGZvcm1Gb250KQotICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgcmV0dXJuIEZvbnRIYW5kbGUoKTsKIAogICAgIFJldGFpblB0cjxDb2NvYUZv
bnQ+IGZvbnQ7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBmb250KSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgaGFuZGxl
LmZvbnQgPSBGb250OjpjcmVhdGUoeyAoX19icmlkZ2UgQ1RGb250UmVmKWZvbnQuZ2V0KCksIHN0
YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2ludFNpemVdKSB9KTsKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICBGb250SGFuZGxlIHJlc3VsdDsKKyAgICByZXN1bHQuZm9udCA9IEZvbnQ6OmNyZWF0ZSh7
IChfX2JyaWRnZSBDVEZvbnRSZWYpZm9udC5nZXQoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KFtmb250
IHBvaW50U2l6ZV0pIH0pOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggN2MxZWY3Nzg3YTdlYmE5YmEyN2VjYTY3ZjRiNWM0ZDg2NjQxYjY5Yy4uNDgzM2MwMDkz
N2NlMDk2OWJmMDNjYTc2NmExNmM5NThlMjU5Y2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9GaWx0ZXJPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Rm9udENyZWF0aW9uUGFyYW1ldGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JREJHZXRSZXN1bHQuaD4KQEAgLTExMzAsNjcgKzExMzEsNDUgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2
ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRm9udEhhbmRsZSYgaGFuZGxlKQogewotICAgIGVuY29kZXIg
PDwgISFoYW5kbGUuZm9udDsKLSAgICBpZiAoIWhhbmRsZS5mb250KQorICAgIGF1dG8mIGZvbnQg
PSBoYW5kbGUuZm9udDsKKyAgICBlbmNvZGVyIDw8ICEhZm9udDsKKyAgICBpZiAoIWZvbnQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIGZvbnRGYWNlRGF0YSA9IGhhbmRsZS5mb250LT5m
b250RmFjZURhdGEoKTsKLSAgICBlbmNvZGVyIDw8ICEhZm9udEZhY2VEYXRhOwotICAgIGlmIChm
b250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIsIGZvbnRG
YWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBoYW5kbGUuZm9udC0+cGxhdGZvcm1EYXRh
KCk7Ci0gICAgICAgIGVuY29kZXIgPDwgZGF0YS5zaXplKCk7Ci0gICAgICAgIGVuY29kZXIgPDwg
ZGF0YS5zeW50aGV0aWNCb2xkKCk7Ci0gICAgICAgIGVuY29kZXIgPDwgZGF0YS5zeW50aGV0aWNP
YmxpcXVlKCk7CisgICAgZW5jb2RlciA8PCBmb250LT5oYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJz
KCk7CisgICAgaWYgKGZvbnQtPmhhc0ZvbnRDcmVhdGlvblBhcmFtZXRlcnMoKSkgeworICAgICAg
ICBlbmNvZGVyIDw8IGZvbnQtPmZvbnRDcmVhdGlvblBhcmFtZXRlcnMoKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVyLCBoYW5kbGUpOwog
fQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBGb250SGFuZGxlJiBoYW5kbGUpCitPcHRpb25hbDxGb250SGFuZGxlPiBBcmd1bWVudENv
ZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBPcHRpb25h
bDxib29sPiBoYXNGb250OwogICAgIGRlY29kZXIgPj4gaGFzRm9udDsKICAgICBpZiAoIWhhc0Zv
bnQuaGFzVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCiAgICAgaWYgKCFoYXNGb250LnZhbHVlKCkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udEZhY2VEYXRhOwotICAgIGRlY29kZXIg
Pj4gaGFzRm9udEZhY2VEYXRhOwotICAgIGlmICghaGFzRm9udEZhY2VEYXRhLmhhc1ZhbHVlKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChoYXNGb250RmFjZURhdGEudmFsdWUo
KSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBmb250RmFjZURhdGE7Ci0gICAgICAg
IGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0YSkpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCFmb250RmFjZURhdGEpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IGZvbnRTaXplOwot
ICAgICAgICBkZWNvZGVyID4+IGZvbnRTaXplOwotICAgICAgICBpZiAoIWZvbnRTaXplKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gRm9udEhhbmRsZSgpOwogCi0g
ICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0JvbGQ7Ci0gICAgICAgIGRlY29kZXIgPj4g
c3ludGhldGljQm9sZDsKLSAgICAgICAgaWYgKCFzeW50aGV0aWNCb2xkKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIE9wdGlvbmFsPGJvb2w+IGhhc0ZvbnRDcmVhdGlvblBhcmFtZXRl
cnM7CisgICAgZGVjb2RlciA+PiBoYXNGb250Q3JlYXRpb25QYXJhbWV0ZXJzOworICAgIGlmICgh
aGFzRm9udENyZWF0aW9uUGFyYW1ldGVycy5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKLSAg
ICAgICAgZGVjb2RlciA+PiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlmICghc3ludGhldGlj
SXRhbGljKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNGb250Q3JlYXRp
b25QYXJhbWV0ZXJzLnZhbHVlKCkpIHsKKyAgICAgICAgT3B0aW9uYWw8Rm9udENyZWF0aW9uUGFy
YW1ldGVycz4gZm9udENyZWF0aW9uUGFyYW1ldGVyczsKKyAgICAgICAgZGVjb2RlciA+PiBmb250
Q3JlYXRpb25QYXJhbWV0ZXJzOworICAgICAgICBpZiAoIWZvbnRDcmVhdGlvblBhcmFtZXRlcnMp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIEZvbnREZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbjsKLSAgICAgICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKCpm
b250U2l6ZSk7Ci0gICAgICAgIGhhbmRsZSA9IHsgZm9udEZhY2VEYXRhLnJlbGVhc2VOb25OdWxs
KCksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50aGV0aWNCb2xkLCAqc3lu
dGhldGljSXRhbGljIH07CisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKCpmb250Q3JlYXRpb25Q
YXJhbWV0ZXJzKSB9fTsKICAgICB9CiAKLSAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRl
Y29kZXIsIGhhbmRsZSk7CisgICAgcmV0dXJuIGRlY29kZVBsYXRmb3JtRGF0YShkZWNvZGVyKTsK
IH0KIAogdm9pZCBBcmd1bWVudENvZGVyPEN1cnNvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBDdXJzb3ImIGN1cnNvcikKQEAgLTMxNDMsNiArMzEyMiw1NiBAQCBPcHRpb25hbDxG
b250QXR0cmlidXRlcz4gQXJndW1lbnRDb2RlcjxGb250QXR0cmlidXRlcz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogICAgIHJldHVybiBhdHRyaWJ1dGVzOwogfQogCit2b2lkIEFyZ3VtZW50
Q29kZXI8Rm9udENyZWF0aW9uUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBGb250Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIGVuY29kZVNo
YXJlZEJ1ZmZlcihlbmNvZGVyLCBwYXJhbWV0ZXJzLmRhdGEucHRyKCkpOworICAgIGVuY29kZXIg
PDwgcGFyYW1ldGVycy5kZXNjcmlwdGlvbjsKKyAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMucmVt
b3RlVVJJOworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVycy5zeW50aGV0aWNCb2xkOworICAgIGVu
Y29kZXIgPDwgcGFyYW1ldGVycy5zeW50aGV0aWNJdGFsaWM7CisgICAgZW5jb2RlciA8PCBwYXJh
bWV0ZXJzLmZlYXR1cmVzOworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVycy5jYXBhYmlsaXRpZXM7
Cit9CisKK09wdGlvbmFsPEZvbnRDcmVhdGlvblBhcmFtZXRlcnM+IEFyZ3VtZW50Q29kZXI8Rm9u
dENyZWF0aW9uUGFyYW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7CisgICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVj
b2RlciwgZGF0YSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxGb250RGVzY3JpcHRpb24+IGRlc2NyaXB0aW9uOworICAgIGRlY29kZXIgPj4gZGVzY3JpcHRp
b247CisgICAgaWYgKCFkZXNjcmlwdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPEF0b21TdHJpbmc+IHJlbW90ZVVSSTsKKyAgICBkZWNvZGVyID4+IHJl
bW90ZVVSSTsKKyAgICBpZiAoIXJlbW90ZVVSSSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0JvbGQ7CisgICAgZGVjb2RlciA+PiBz
eW50aGV0aWNCb2xkOworICAgIGlmICghc3ludGhldGljQm9sZCkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKKyAgICBk
ZWNvZGVyID4+IHN5bnRoZXRpY0l0YWxpYzsKKyAgICBpZiAoIXN5bnRoZXRpY0l0YWxpYykKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZvbnRGZWF0dXJlU2V0
dGluZ3M+IGZlYXR1cmVzOworICAgIGRlY29kZXIgPj4gZmVhdHVyZXM7CisgICAgaWYgKCFmZWF0
dXJlcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllczsKKyAgICBkZWNvZGVy
ID4+IGNhcGFiaWxpdGllczsKKyAgICBpZiAoIWNhcGFiaWxpdGllcykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBkYXRhLnJlbGVhc2VOb25OdWxsKCksICpk
ZXNjcmlwdGlvbiwgKnJlbW90ZVVSSSwgKnN5bnRoZXRpY0JvbGQsICpzeW50aGV0aWNJdGFsaWMs
ICpmZWF0dXJlcywgKmNhcGFiaWxpdGllcyB9fTsKK30KKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkQXR0YWNobWVudERhdGE+
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVk
QXR0YWNobWVudERhdGEmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IDg0ZDQzOWM1MDU0MDRiN2U1OTA1YjM2ZTdkZWM3Njg5ZGRmYTk0
NTQuLjcwODI1MTI0Mjc3YjZiZmU0Mzk0NDlhM2Y3MzUwOTI4ZDhiNGE3OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xMTMsNiArMTEzLDcg
QEAgc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lv
bnM7CiBzdHJ1Y3QgRXhjZXB0aW9uRGV0YWlsczsKIHN0cnVjdCBGb250QXR0cmlidXRlczsKK3N0
cnVjdCBGb250Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7
CiBzdHJ1Y3QgU2hhcmVEYXRhOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CkBAIC0z
ODgsOSArMzg5LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Q3Vyc29yPiB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9u
dEhhbmRsZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6Rm9udEhhbmRsZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6Rm9udEhhbmRsZSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250SGFuZGxl
PiBkZWNvZGUoRGVjb2RlciYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rm9udEhhbmRsZSYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6Rm9udEhhbmRsZSYpOworICAgIHN0
YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250SGFuZGxlPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
b250Q3JlYXRpb25QYXJhbWV0ZXJzPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpGb250Q3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OkZvbnRDcmVhdGlvblBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFu
ZGxlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1
bWVudENvZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNDdXJsLmNwcAppbmRleCA4NTJkZjMxZGI5OGNjODZiNmIzMzkxMzdhN2MxN2E4
YzM5YTkwMzFhLi4wNmEwNTk3OWI2YjllZTI1MDA3YWEyY2VlYTk4NmFkOTc5NGI5ZGE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzQ3VybC5jcHAKQEAgLTI0MCwxMCArMjQwLDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxGb250
SGFuZGxlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBGb250SGFuZGxlJikK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZvbnRI
YW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIEZvbnRIYW5kbGUmKQorT3B0aW9u
YWw8Rm9udEhhbmRsZT4gQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1E
YXRhKERlY29kZXImKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRl
eCBlNjdmMGVkNjJmZGE4MmQ1NGVjOWUyMzgzNGQ0Yzg3MTA2ODIzNWQyLi4yOWM4ODViYmZjODJm
OWQzNDJiZTk4NTAxZDdlN2YxNmM2MzA5MDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTI1NywxMCAr
MjU3LDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlUGxhdGZvcm1E
YXRhKEVuY29kZXImLCBjb25zdCBGb250SGFuZGxlJikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYsIEZvbnRIYW5kbGUmKQorT3B0aW9uYWw8Rm9udEhhbmRsZT4gQXJndW1lbnRD
b2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQogewogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzJjNzY5N2NjMjQ5YWFlZmM5MDEwODg0YTNmMTFjZDNl
ZWRkMmZkMS4uZjIwODEyNmM3YzkyN2FhMDYyZTc4MjEwMmZlMGM3YTEwYTI2NGY0YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIwLTAxLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRleHQg
aW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
ODQ5ODU3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRzIGEgbmV3IGxheW91dCB0ZXN0IHRoYXQgdXNlcyBhIGZvbnQgZmFjZSB3aXRoIGBmb250
LWZlYXR1cmUtc2V0dGluZ3M6ICJ0aXRsIiAxYCB0byBwYWludCB0ZXh0IG9udG8gYSBjYW52YXMu
CisgICAgICAgIFdoaWxlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZSB3aXRoIHRoaXMgcGF0
Y2ggKHNpbmNlIHRoZSBsb2dpYyB0byBhY3R1YWxseSB1c2UgdGhlIEdQVSBwcm9jZXNzIHRvIHBh
aW50CisgICAgICAgIHRoZSBjYW52YXMgZWxlbWVudCBoYXNuJ3QgYmVlbiBhZGRlZCB5ZXQpLCB3
ZSBzaG91bGQgYmUgYWJsZSB0byB1bnNraXAgdGhpcyBuZXcgdGVzdCBpbiB0aGUgZnV0dXJlIHdo
ZW4gcnVubmluZworICAgICAgICBsYXlvdXQgdGVzdHMgd2l0aCB0aGUgR1BVIHByb2Nlc3MgZW5h
YmxlZC4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVy
ZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvZmlsbC10ZXh0
LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9y
ZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGY6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjAtMDEtMTEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEltcG9ydCBXUFQgdGVzdCBjYXNlcyBmb3IgMmRjb250ZXh0L2lt
YWdlYml0bWFwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQt
d2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTAzZDczNGQwODE4ZWM2YTliNTMwOTU1MzdkOGRjZjNmOGMzMGU1MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIlNwZWNpYWxG
b250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0ZvbnRXaXRoRmVhdHVyZXMudHRmIikgZm9y
bWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+WW91IHNo
b3VsZCBzZWUgYSByb3cgb2YgMyBjaGVjayBtYXJrcyBmb2xsb3dlZCBieSBhIHJvdyBvZiAzIGNy
b3NzZXMgYmVsb3cuPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52
YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9hZCgiODBweCBTcGVjaWFsRm9udCIpOwor
ICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKS5nZXRD
b250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IFNwZWNpYWxGb250IjsKKyAg
ICBjb250ZXh0LmZpbGxUZXh0KCJiYmIiLCAxMDAsIDEwMCk7CisgICAgY29udGV4dC5maWxsVGV4
dCgiYWFhIiwgMTAwLCAyMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZGQ4YzVkZDJlN2U1Yjc0OWI5M2Y0ODdkYjgxNjFhNzk3YWRiYTFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJl
cy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOwor
ICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYiKSBmb3JtYXQoInRy
dWV0eXBlIik7CisgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAidGl0bCIgMTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sg
bWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMg
d2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRM
aXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZv
bnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0
LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwg
MTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQoImNjYyIsIDEwMCwgMjAwKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdp
dGhGZWF0dXJlcy50dGYgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdp
dGhGZWF0dXJlcy50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJjMzMyYTEzY2MxMDI5Mzk1NmI5ODg2NmY3MjMw
YmU3YjVkZjkxZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIzMjQKemNtZUhOVTEoZyM3NS0t
YndKU0BxeyVwJiN5cHw8ZFM9KkFsbVN4ISUhZ2R0biNCTzlQckRAYUJ2WClrbz55QD5ZCnpXbnph
c3EhN3xsYGs7cjxtZVBoaTFYNVpgTzkmMnh3aUhyPVQxcDdpWGBORHZwfG51d0xtJThpZ1JBWCM9
Rlk3KQp6K0wzY2RESE9geTw/UWB0P3dLPl5vSD1MaT96d2txQHA+TSRjbilFbDlHfmRWcDF1MyZP
OHxhRm54Mn1eNzRjcl4KemhrelBqYHdLSnErKjAoX2kkJTctTylBVjVacUJVcXpWe1hvUDU9IXBi
TlNxS3pII2lJS3ZTQ2hMdiFwJSU7RzU5CnpwSkthZlpocTs7WktQZ2NgJnFWYzdaIz4rUH5TZldH
KyR1KiZWMjRoNW0kKU4oI3g7KHtLRGRtIzRtUTdYOFNCcQp6ZC03Xi1LTDdzbntyNy05VWpnYyNF
aVBQSnFUVzBQQkVwWVExbk01NSgmS2hhbzsmQGRqM3x7VE5NVkxobF5YOEgKenI2Jlh0UFUmSFVP
Qz0oaVFLKzVZaXN2eiZsZSU1WVokTmFIQlNibnlkV3N9YElucHp2b2ZPIV5iQnQkMnVCWSZmCnpt
VXt9aFFtT1IyKCN4OGc0RWtJcmZRTGQyemg1VSU9K2QoOTVHT2dhc0NWfXtzNGVLJGRpey1mRGB5
Wkw/LU1yPgp6UTVUZ1UtaG4ySzg7SU17QjBPcTRAb3M3KHhRbG8lUVdfNXM/P2F0dnArLW10Jjx1
SitvbihKTVN+YnNTaUkzNn4KeiFaU3hZZnNoS0pRUEVjX2YraUozTTh5elFhV3R6MFQydXxzZWRK
NWdqOU5eb0lgWT5PSDt7aW4rbHxDNj9BdTElCnpPeCNNbW93eUJrWUE0VVRENmZPKEdfVVFVb0tF
NXs7JT8jfDskSEdVI0NDPiEyaVlFQWB3KFNrKio9VnY4c3hQagp6PFE/TCpWUGVMZkkhPk11VENq
cVphNXxoOGU9MGZIZmUtYHRVKkUtd0lyRUJVeUF9RXw5cDxyViN3PFFpJWdDO2QKenVISSRAVz1r
PShUelk0OWxzOzMpQXspTEh6UXJ1XzJXYXQxLVAxI2duemd1RUVXTSthU0J1RTE8eG8jJHBUfURq
CnpTTV47clB9Vll+bmlWRD15aTt7WXNjeFVWZV5qJWduaWNaPHF4eiR3ezh2PnFFMj4jaCY1SEhn
TE56T0BTeTljMwp6NFlHbjI2am5CYntgQXstLX1ycH0kbHBVT1l1SnY2RjJoSm9NMzJ6bFFiXkZY
Qno5ezI7ZWtpa3dfKyZFXlp4fUkKejZaaTRWKGd8S0F7ZXkwSmchQ2ZtazFWTlZObmF3cCVRRCgt
KHBBej09cG9pZUJBKzNCa0hpe2NeZXBLY3EoOEclCnojK3BzK2RENT9lY3FpJExxQE13YWRlWX1l
S09vJSlZUi18cU1md1luOTQzOTReY3hfPmBjUF8jXmNMJWdqaWVtdQp6TTxtd3N3bWVTeTQoWUZ+
RFZgdkdtR25NUCZwS1pIKTE8ZWh3eTlWMzI8dm5Ea1EhUnFMRzRUcllnX3NsR2Qrc3EKemdqZE5o
SXFSJDVTMzZIIWNKX0lkSyo0bXllfFhBZVAtaDFqUWRqaGphdjNAezFNM21CJTRsLVpCVzlKTVo0
UnRRCnorJHV3QXl1cDIldSp6dDVsMkshbyhjJlp7WF9ldW8yUD56WFE7eE5AP2I3WXd7OzBMZTVW
XnIrWXwlMWclJGdvYQp6T2dZS1d3UG1lKXhlVHtfVmY5IWBfXj0qc3dscjh9eGFHQE1pJEEmQHts
ViZZZylRQmwrYCMkTFdSPkNPUSYhJCgKejlaNzVKIXNAIzgxPWhwY0Z+eXY2OEUpJitZTyRycWFY
O049dV9mJGklWFcoJVZMbG1nQHk4Qn05IS12VnZ8MDNNCnpeNm52bCpKWTxnan19S2deeiRCQitP
b0N2KTtvQjc/NlRNKnlRenkkSjFuLXU5QnRXYyhaam9NMS1CKF9tRW1Ufgp6OSpacTBNX1cyQWRa
WmxsV3ZeOStUaSlgQ29MPFREX141TT9RP3VfOyZmNU9iP0M2Z2tpeXFDNntANz1nO2RYRTYKendh
U1AlI1g2c0FSYHw0O1Bpa0hBQzFhSzB3em03TkdETmxEYDY1cTYkeG04YStnOFc1SiFzTHh5SSV5
P3F0N2JDCnomNmErUGpDUkt1OF8rVU5oZFZnNmp4N0N0ZlFMaUdeMHQ4VmhsJFBgRWJrQzM4WFY8
Nmg7SkdrV0IqR1k9OUI0bQp6e01fSVcyNjVObUZoPS12VUNaUigqJiF1d1VyO2B1KXttK2U0MzEk
eWBENWRKcyZkY3RDb21FK2B0V0p+WHl9c1oKej9fPllWMX1Calh7b2RkZE0jRk5hNiMyQ3s4OC1V
IVpHfXd1WW9APUJfP0UlLT1uQ0k4eEIqPn1oezV+TzhSMClOCnpFb1VwKkJhYSF9aClpVjA7MSYh
O21KUXk5O21GJHRIPDVxVTtBVWleWjNlZXVDXn1+RmJfX0A1P0ZgWCMyUmZwIQp6OFFleUd7IWBX
Y2R+K2xFZngrJFFqUVRRbkFybmlSe3Rvb1VlQkV9VkJXQmh9ck9EJiN3Zz1oUm59KXhXbkV5UHIK
entKclJrbjsxfUMkaXo+WnslI0QlM2tMVUtGI2R8Y2BfTFowVntrOXx7V1c/Qmc5JT93aFdNaTRJ
ZS1IUmV8LS1VCnpgIUBFWUMtRGN2R2t7RXVAQUU/I3RkVzFUOyolX356dClGfHppIz5taUdPTUU1
Z2YxYWVLTGQqYDNKN1k5entDMgp6V2JpT0QkcmxZaWhROCFhNEwqKSsoKVlzJnc1NUZnTjY/Y1Ij
dStUJkR3Z21oRjd0Ymk/TDZQN1M7QlNaS3B4akgKeiQ8TFlwMG9OaClWSWJoVlNEM3EoRn1xSWhu
PCZ6UER8bmF8JmhzTzdSYFFMcmNZPUhjKGlIN3BweHhkV0BrJDt5Cnp2QGRlSj9sU2c0XlViaHd3
ZlB6Q3FjNzVTUytBZnZLOFc4dyEmIVJ4bihAek5kZGtIa0xDNjAwWE9ee0p6bUJLNAp6bWE/Km95
ZHNoQU1SfEYmMVFgKUxaZnhfN0dYYHU/QEpYJUw1YEZEP195WUM2clplLWh3cXoyWHAzfiU7cTR3
OWMKekVsPCNyPipVTDArN2VsaF42SEcxRD40P3pSfmRhMTk1MzBqJGhrSis4UnlrJFVLZyh3dFd3
VCU/OSpEeCF7aVp0CnpIbHVIKWxuR3w5JXZvU0E9Y3VSNmczM2BCSUtPeU9SKFJ1YVBmKHNgYE56
P0BRYzRoPURATyY+YE1rRXdpe1peewp6JjNoMWN4KFdLe0NPdzxTSVE9MDBsOGxqay0jeVlNd1lM
ajhNckklMl5UISEmXlNIITA3ZDYqckJjOy1SPCZ1TCUKeiR3IVNTemRrX148KFFlMDFHQWcqJjs/
cSZLcS09QXpPTjsrJVYpOWF7UnpEKXZLTSQ3TlR6PyhtQH1NMXdEc3JOCnorP3ROais4bkt3czFR
dm5yQj8xSD52eXByVzR3NDw7N3A9KmstdFBfNH0zKTVmMkMobGR4X2JDP3dNbCpQNGd7Wgp6aUs3
TF51bC1Jd01fJTYoIVp8X05HUTtMfXJeb09wQl48JnJ6SXtFKz12Xjx9d3Q4ITBoSD08PSVyWDhC
YSt4UGYKentzSEU4dXJVKyNeRXx5RlN2eH0janxMayNzbDYoOTFWNiRnSzd4KyplcCE5fGpJdzNN
QigwRiZaSXpMXlFUfVpfCmU7dilCfE9XWF8zRj1pd0t7Qyk4WCk/Y3kzQUFqRko9PWVBOUFZK2RK
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDk0OWUxZGE3ZWZjZDM2NDc0MGI3NGQ5MTRkN2Y0MmZlMmZmZGZlMjku
LjFmYjBiY2UzYWEyZDQ1ODVkNjFjNGJlNmU0NjdjMGI2NWFkZmI0MTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC01MzAsNiArNTMwLDcgQEAgZmFzdC9j
c3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbCBbIFNraXAgXQogCiAjIEZvbnQgZmVhdHVy
ZSBzZXR0aW5ncyBpcyBub3QgaW1wbGVtZW50ZWQuCiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmcuaHRtbCBbIFNraXAgXQorZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9u
dC1mZWF0dXJlcy5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk3NzEgY3NzMy9mb250
LWZlYXR1cmUtc2V0dGluZ3MtZm9udC1mYWNlLXJlbmRlcmluZy5odG1sIFsgU2tpcCBdICMgV29u
dEZpeAogd2Via2l0Lm9yZy9iLzE0OTc3MSBjc3MzL2ZvbnQtdmFyaWFudC1mb250LWZhY2Utb3Zl
cnJpZGUuaHRtbCBbIFNraXAgXSAjIFdvbnRGaXgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRkNzdjNGNiOThkOGEwZjU3YmUyNmViYjMw
NGYxN2UwYmIwYTg3MTkuLjNiNzY3NmUyZTJlNmNhZTI3N2I4NzhlM2JmNGNhYTA0NmEwNDA4Mjgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTE4MCw2ICsxMTgwLDcgQEAgd2Via2l0Lm9yZy9iLzE0OTc3NCBjc3MzL2ZvbnQtdmFyaWFu
dC1wZXRpdGUtY2Fwcy1zeW50aGVzaXMtY292ZXJhZ2UuaHRtbCBbIFNraXAKIHdlYmtpdC5vcmcv
Yi8xNDk3NzQgY3NzMy9mb250LXZhcmlhbnQtcGV0aXRlLWNhcHMtc3ludGhlc2lzLmh0bWwgWyBT
a2lwIF0KIHdlYmtpdC5vcmcvYi8xNDk3NzQgY3NzMy9mb250LXZhcmlhbnQtc21hbGwtY2Fwcy1z
eW50aGVzaXMtY292ZXJhZ2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0OTc3NCBjc3Mz
L2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5bnRoZXNpcy5odG1sIFsgU2tpcCBdCitmYXN0L2Nh
bnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWwgWyBTa2lwIF0KIAogIyBJbmNv
cnJlY3QgdXBzdHJlYW0sIGJ1dCBzZWVtIHRvIHBhc3Mgb24gdGhlIGJvdHMsIHBvc3NpYmx5IHdp
dGggYSBicm9rZW4gYmFzZWxpbmUuCiBjc3MyLjEvMjAxMTAzMjMvcmVwbGFjZWQtaW50cmluc2lj
LTAwMS5odG0gWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409971</attachid>
            <date>2020-09-29 01:13:38 -0700</date>
            <delta_ts>2020-09-29 22:11:41 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23884</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3NWY5ZDU1OGE2MjMuLmYyOTMxNmU5YWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY0Nyw3ICszNjQ3LDcgQEAK
IAkJQjJBMUYyQUIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBMjBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCAqLzsgfTsKIAkJQjJBMUYyQUUwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJBMUYyQTUwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVu
dC5oICovOyB9OwogCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsg
fTsKLQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87IH07CisJCUIy
QUZGQzdFMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NjBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQjFGNzE3MEQwMENBQTgwMDRBRUE2NCAv
KiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQjFGNzE1MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZlbnRz
SGl0UnVsZXMuaCAqLzsgfTsKIAkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlDb250
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMz
RDlGMzBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMkMzREEyNTBEMDA2QzFEMDBFRjZGMjYg
LyogQmlkaVJlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkMzRDlGNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaVJlc29sdmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2UuY3BwCmluZGV4IDYyZWJkNzI2YWE1MC4uZDI2YmQyMjhkNjQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTY3OCwxMSArNjc4LDggQEAgUmVmUHRyPEZvbnQ+IENT
U0ZvbnRGYWNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBi
b29sIHN5bnQKICAgICAgICAgICAgIHJldHVybiBGb250OjpjcmVhdGUoRm9udENhY2hlOjpzaW5n
bGV0b24oKS5sYXN0UmVzb3J0RmFsbGJhY2tGb250KGZvbnREZXNjcmlwdGlvbiktPnBsYXRmb3Jt
RGF0YSgpLCBGb250OjpPcmlnaW46OkxvY2FsLCBGb250OjpJbnRlcnN0aXRpYWw6Olllcywgdmlz
aWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NGb250RmFjZVNvdXJjZTo6U3Rh
dHVzOjpTdWNjZXNzOgotICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gc291cmNlLT5mb250
KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBtX2ZlYXR1
cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkgewotICAgICAgICAgICAg
ICAgIGF1dG8qIGNhY2hlZEZvbnQgPSBzb3VyY2UtPmNhY2hlZEZvbnQoKTsKLSAgICAgICAgICAg
ICAgICByZXN1bHQtPnNldEZvbnRGYWNlRGF0YShjYWNoZWRGb250ID8gY2FjaGVkRm9udC0+cmVz
b3VyY2VCdWZmZXIoKSA6IG51bGxwdHIpOworICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0g
c291cmNlLT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToK
ICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcAppbmRleCBiOGZkZTU3Y2JjYTkuLjU0YjliNzVlZjcxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5ICs3MTUsNCBAQCBjb25zdCBQYXRo
JiBGb250OjpwYXRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2ds
eXBoUGF0aE1hcC5leGlzdGluZ01ldHJpY3NGb3JHbHlwaChnbHlwaCk7CiB9CiAKLXZvaWQgRm9u
dDo6c2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQot
ewotICAgIG1fZm9udEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgK
aW5kZXggOTBlN2JjMDc5MGFkLi5hNGI4ZmQ3Njc0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmgKQEAgLTIyMyw5ICsyMjMsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGZsb2F0IGFzY2VudENvbnNpZGVyaW5nTWFjQXNjZW50SGFjayhjb25zdCBXQ0hBUiosIGZsb2F0
IGFzY2VudCwgZmxvYXQgZGVzY2VudCk7CiAjZW5kaWYKIAotICAgIFNoYXJlZEJ1ZmZlciogZm9u
dEZhY2VEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250RmFjZURhdGEuZ2V0KCk7IH0KLSAgICB2
b2lkIHNldEZvbnRGYWNlRGF0YShSZWZQdHI8U2hhcmVkQnVmZmVyPiYmKTsKLQogcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmLCBPcmlnaW4s
IEludGVyc3RpdGlhbCwgVmlzaWJpbGl0eSwgT3JpZW50YXRpb25GYWxsYmFjayk7CiAKQEAgLTI5
Nyw4ICsyOTQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgU0NSSVBUX0ZPTlRQUk9QRVJUSUVT
KiBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBtX2ZvbnRGYWNlRGF0YTsKLQogICAgIEdseXBoIG1fc3BhY2VHbHlwaCB7IDAgfTsKICAg
ICBHbHlwaCBtX3plcm9HbHlwaCB7IDAgfTsKICAgICBHbHlwaCBtX3plcm9XaWR0aFNwYWNlR2x5
cGggeyAwIH07CkBAIC0zMjcsNiArMzIyLDggQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIHVuc2lnbmVkIG1fc2hvdWxkTm90QmVVc2VkRm9yQXJhYmljIDogMTsKICNl
bmRpZgorCisgICAgLy8gQWRkaW5nIGFueSBub24tZGVyaXZlZCBpbmZvcm1hdGlvbiB0byBGb250
IG5lZWRzIGEgcGFyYWxsZWwgY2hhbmdlIGluIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAuCiB9
OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMGFhNTE3NWVlMDVh
Li5mMGFlZGExYjY0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEZvbnRQbGF0Zm9y
bURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoKQogewogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKK0ZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5k
ZXJpbmdNb2RlLCBDcmVhdGlvbkRhdGEqIGNyZWF0aW9uRGF0YSkKICAgICA6IG1fc2l6ZShzaXpl
KQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKICAgICAsIG1fd2lkdGhWYXJpYW50
KHdpZHRoVmFyaWFudCkKQEAgLTU0LDYgKzU0LDggQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGkK
ICAgICAsIG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNP
YmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCiB7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkKKyAgICAg
ICAgbV9jcmVhdGlvbkRhdGEgPSAqY3JlYXRpb25EYXRhOwogfQogCiAjaWYgIVVTRShGUkVFVFlQ
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9y
bURhdGEuaAppbmRleCAxOGYyMzFhZWMzMDEuLmQ3NDBiM2YwYjlmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAtMjQs
MTEgKzI0LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLQogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlICJD
T01QdHIuaCIKICNpbmNsdWRlICJTaGFyZWRHRElPYmplY3QuaCIKQEAgLTc3LDEzICs3NywxNSBA
QCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdHJ1Y3QgQ3JlYXRpb25EYXRhOwor
CiAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpOwog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IEZv
bnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01vZGUgPSBUZXh0UmVu
ZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcpOworICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRP
cmllbnRhdGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFu
dCA9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01vZGUgPSBU
ZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcsIENyZWF0aW9uRGF0YSogPSBudWxs
cHRyKTsKIAogI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRm
b3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9y
aWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFu
dDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpB
dXRvVGV4dFJlbmRlcmluZyk7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRmb3JtRGF0YShD
VEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9u
OjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxh
cldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJl
bmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShXSU4pCkBAIC0xOTksNiArMjAxLDE2IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZXNjcmlw
dGlvbigpIGNvbnN0OwogCisgICAgc3RydWN0IENyZWF0aW9uRGF0YSB7CisgICAgICAgIFJlZjxT
aGFyZWRCdWZmZXI+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgU3RyaW5nIGl0ZW1JbkNvbGxlY3Rp
b247CisgICAgfTsKKworICAgIGNvbnN0IE9wdGlvbmFsPENyZWF0aW9uRGF0YT4mIGNyZWF0aW9u
RGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9jcmVhdGlvbkRhdGE7CisgICAg
fQorCiBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc0VxdWFsKGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmKSBjb25zdDsKIApAQCAtMjQ1LDYgKzI1Nyw4IEBAIHByaXZhdGU6CiAgICAgRm9udFdp
ZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudCB7IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0
aCB9OwogICAgIFRleHRSZW5kZXJpbmdNb2RlIG1fdGV4dFJlbmRlcmluZ01vZGUgeyBUZXh0UmVu
ZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcgfTsKIAorICAgIE9wdGlvbmFsPENyZWF0aW9u
RGF0YT4gbV9jcmVhdGlvbkRhdGE7CisKICAgICBib29sIG1fc3ludGhldGljQm9sZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c0NvbG9yQml0bWFwRm9udCB7IGZhbHNlIH07CkBAIC0yNjQsNiArMjc4LDggQEAgcHJpdmF0ZToK
ICNpZiBVU0UoRlJFRVRZUEUpCiAgICAgYm9vbCBtX2ZpeGVkV2lkdGggeyBmYWxzZSB9OwogI2Vu
ZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGluZm9ybWF0aW9uIHRvIEZvbnRQ
bGF0Zm9ybURhdGEgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzQ29jb2EuY3BwLgogfTsKIAogI2lmIFVTRShDT1JFX1RFWFQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29y
ZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAppbmRleCBkY2M3OWFkOGNhODUuLjI2MmU5M2NhYTVm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQv
Rm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwCkBAIC0zNSw4
ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5k
ZXJpbmdNb2RlKQotICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5n
TW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZvbnQs
IGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBG
b250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50
LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSwgQ3JlYXRpb25EYXRhKiBjcmVh
dGlvbkRhdGEpCisgICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdN
b2RlLCBjcmVhdGlvbkRhdGEpCiB7CiAgICAgQVNTRVJUX0FSRyhmb250LCBmb250KTsKICNpZiBQ
TEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggYTIyZTgyMjY5
ZGJkLi5kNDMxYjJjMDgyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYKIHsKICAgICBhdXRvIGF0dHJpYnV0
ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlW
YWx1ZUNhbGxCYWNrcykpOwogICAgIGFkZEF0dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRyaWJ1dGVz
LmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7
Ci0gICAgYXV0byBtb2RpZmllZEZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlw
dG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVzKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJp
YnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIG1vZGlmaWVkRm9udERlc2NyaXB0b3IgPSBhZG9wdENG
KENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3Iu
Z2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICBBU1NFUlQobW9kaWZpZWRGb250RGVzY3Jp
cHRvcik7CiAKICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6
ZSgpOwpAQCAtNDgsNyArNDgsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJgogICAgIGF1dG8g
Zm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9u
dERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBs
YXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyk7CiAgICAgQVNTRVJUKGZvbnQpOwotICAgIHJldHVybiBG
b250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRp
b24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOwor
ICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxp
Yywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJp
bmdNb2RlKCksICZjcmVhdGlvbkRhdGEpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIm
IGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVtSW5Db2xsZWN0aW9uKQpAQCAtODUsNyArODUsOCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRp
ZgogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZm9udERl
c2NyaXB0b3IuZ2V0KCkpOworICAgIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVh
dGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUluQ29sbGVjdGlvbiB9OworICAgIHJldHVybiBtYWtl
VW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+KGZvbnREZXNjcmlwdG9yLmdldCgpLCBXVEZN
b3ZlKGNyZWF0aW9uRGF0YSkpOwogfQogCiBib29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1
cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKaW5kZXggNjA3OGUyNWZhMWQ4Li5kN2I2NDI0ZTg0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaApAQCAtMjEsMTkgKzIxLDIwIEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRQ
bGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDxDb3JlRm91
bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorCiB0eXBlZGVm
IHN0cnVjdCBDR0ZvbnQqIENHRm9udFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RGb250
RGVzY3JpcHRvciogQ1RGb250RGVzY3JpcHRvclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGb250RGVzY3JpcHRpb247Ci1jbGFzcyBGb250UGxhdGZvcm1EYXRhOwogc3RydWN0
IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXM7CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CiAKQEAgLTQzLDIxICs0NCwyMyBAQCB0eXBlZGVmIEZvbnRUYWdnZWRTZXR0aW5nczxpbnQ+IEZv
bnRGZWF0dXJlU2V0dGluZ3M7CiBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3JtRGF0YSB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvcikKLSAgICAgICAgOiBtX2ZvbnRE
ZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yKQorICAgIGV4cGxpY2l0IEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvciwgRm9udFBsYXRmb3JtRGF0
YTo6Q3JlYXRpb25EYXRhJiYgY3JlYXRpb25EYXRhKQorICAgICAgICA6IGZvbnREZXNjcmlwdG9y
KGZvbnREZXNjcmlwdG9yKQorICAgICAgICAsIGNyZWF0aW9uRGF0YShXVEZNb3ZlKGNyZWF0aW9u
RGF0YSkpCiAgICAgewogICAgIH0KIAotICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZl
YXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYp
OwogCi0gICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IG1fZm9udERlc2NyaXB0b3I7
CisgICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZvbnREZXNjcmlwdG9yOworICAg
IEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGE7CiB9OwogCi1zdGQ6
OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQT1JUIHN0
ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOwogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW0KaW5kZXggNmRlNWRjYzE0NjY0Li42MTQyYmM1YTNiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1t
CkBAIC0yNiwxMiArMjYsMTggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKICNpbXBv
cnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKLSNpbXBvcnQgIkNvY29hRm9udC5oIgorI2ltcG9y
dCA8Q29yZVRleHQvQ29yZVRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXR0cmlidXRlZFN0cmlu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZvbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oPgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNpbXBvcnQgPFVJS2l0L1VJRm9udC5oPgorI2VuZGlmCiAKICNpZiBFTkFCTEUo
QVBQTEVfUEFZKQogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgpAQCAtMzksMTAgKzQ1LDYgQEAK
ICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSNpbXBvcnQgPFVJS2l0L1VJRm9udC5oPgotI2VuZGlmCi0KIG5h
bWVzcGFjZSBJUEMgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTUwOSwyNiArNTEx
LDExMyBAQCBPcHRpb25hbDxGb250QXR0cmlidXRlcz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
b250QXR0cmlidXRlcz46OmRlY29kZVBsYXRmb3JtRAogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVm
PEZvbnQ+Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxX
ZWJDb3JlOjpGb250PiYgZm9udCkKIHsKLSAgICBhdXRvIGN0Rm9udCA9ICFmb250LT5mb250RmFj
ZURhdGEoKSA/IGZvbnQtPmdldENURm9udCgpIDogbmlsOwotICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8Ym9vbD4oY3RGb250KTsKLSAgICBpZiAoY3RGb250KQotICAgICAgICBlbmNvZGVyIDw8
IChfX2JyaWRnZSBDb2NvYUZvbnQgKiljdEZvbnQ7CisgICAgY29uc3QgYXV0byYgcGxhdGZvcm1E
YXRhID0gZm9udC0+cGxhdGZvcm1EYXRhKCk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50OF90PihwbGF0Zm9ybURhdGEub3JpZW50YXRpb24oKSk7CisgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50OF90PihwbGF0Zm9ybURhdGEud2lkdGhWYXJpYW50KCkpOworICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDhfdD4ocGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2Rl
KCkpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICBlbmNvZGVyIDw8
IHBsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURh
dGEuc3ludGhldGljT2JsaXF1ZSgpOworCisgICAgYXV0byBjdEZvbnQgPSBwbGF0Zm9ybURhdGEu
Zm9udCgpOworICAgIGF1dG8gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udENvcHlGb250
RGVzY3JpcHRvcihjdEZvbnQpKTsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENURm9u
dERlc2NyaXB0b3JDb3B5QXR0cmlidXRlcyhmb250RGVzY3JpcHRvci5nZXQoKSkpOworICAgIElQ
Qzo6ZW5jb2RlKGVuY29kZXIsIGF0dHJpYnV0ZXMuZ2V0KCkpOworCisgICAgY29uc3QgYXV0byYg
Y3JlYXRpb25EYXRhID0gcGxhdGZvcm1EYXRhLmNyZWF0aW9uRGF0YSgpOworICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Ym9vbD4oY3JlYXRpb25EYXRhKTsKKyAgICBpZiAoY3JlYXRpb25EYXRh
KSB7CisgICAgICAgIGVuY29kZXIgPDwgY3JlYXRpb25EYXRhLT5mb250RmFjZURhdGE7CisgICAg
ICAgIGVuY29kZXIgPDwgY3JlYXRpb25EYXRhLT5pdGVtSW5Db2xsZWN0aW9uOworICAgIH0KIH0K
IAotT3B0aW9uYWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBs
YXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+
JiYgZXhpc3RpbmdGb250KQorT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2Rl
cjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAg
ICBib29sIGhhc1BsYXRmb3JtRm9udDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRm
b3JtRm9udCkpCisgICAgT3B0aW9uYWw8dWludDhfdD4gb3JpZW50YXRpb247CisgICAgZGVjb2Rl
ciA+PiBvcmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9uLmhhc1ZhbHVlKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDx1aW50OF90PiB3aWR0aFZh
cmlhbnQ7CisgICAgZGVjb2RlciA+PiB3aWR0aFZhcmlhbnQ7CisgICAgaWYgKCF3aWR0aFZhcmlh
bnQuaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIGlmICgh
aGFzUGxhdGZvcm1Gb250KQotICAgICAgICByZXR1cm4gV1RGTW92ZShleGlzdGluZ0ZvbnQpOwor
ICAgIE9wdGlvbmFsPHVpbnQ4X3Q+IHRleHRSZW5kZXJpbmdNb2RlOworICAgIGRlY29kZXIgPj4g
dGV4dFJlbmRlcmluZ01vZGU7CisgICAgaWYgKCF0ZXh0UmVuZGVyaW5nTW9kZS5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8ZmxvYXQ+IHNp
emU7CisgICAgZGVjb2RlciA+PiBzaXplOworICAgIGlmICghc2l6ZS5oYXNWYWx1ZSgpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGlj
Qm9sZDsKKyAgICBkZWNvZGVyID4+IHN5bnRoZXRpY0JvbGQ7CisgICAgaWYgKCFzeW50aGV0aWNC
b2xkLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxib29sPiBzeW50aGV0aWNPYmxpcXVlOworICAgIGRlY29kZXIgPj4gc3ludGhldGljT2Js
aXF1ZTsKKyAgICBpZiAoIXN5bnRoZXRpY09ibGlxdWUuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0dHJp
YnV0ZXM7CisgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBhdHRyaWJ1dGVzKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGluY2x1ZGVzQ3Jl
YXRpb25EYXRhOworICAgIGRlY29kZXIgPj4gaW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgaWYg
KCFpbmNsdWRlc0NyZWF0aW9uRGF0YS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCi0gICAgUmV0YWluUHRyPENvY29hRm9udD4gZm9udDsKLSAgICBpZiAoIUlQQzo6
ZGVjb2RlKGRlY29kZXIsIGZvbnQpKQorICAgIGlmIChpbmNsdWRlc0NyZWF0aW9uRGF0YS52YWx1
ZSgpKSB7CisgICAgICAgIE9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiBmb250RmFjZURhdGE7
CisgICAgICAgIGRlY29kZXIgPj4gZm9udEZhY2VEYXRhOworICAgICAgICBpZiAoIWZvbnRGYWNl
RGF0YS5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
ICAgICBPcHRpb25hbDxTdHJpbmc+IGl0ZW1JbkNvbGxlY3Rpb247CisgICAgICAgIGRlY29kZXIg
Pj4gaXRlbUluQ29sbGVjdGlvbjsKKyAgICAgICAgaWYgKCFpdGVtSW5Db2xsZWN0aW9uLmhhc1Zh
bHVlKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIGF1dG8g
Zm9udEN1c3RvbVBsYXRmb3JtRGF0YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoZm9u
dEZhY2VEYXRhLnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSk7CisgICAgICAgIGlm
ICghZm9udEN1c3RvbVBsYXRmb3JtRGF0YSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIGF1dG8gYmFzZUZvbnREZXNjcmlwdG9yID0gZm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS0+Zm9udERlc2NyaXB0b3IuZ2V0KCk7CisgICAgICAgIGlmICghYmFzZUZvbnREZXNjcmlw
dG9yKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBmb250
RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmli
dXRlcyhiYXNlRm9udERlc2NyaXB0b3IsIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICAgICAgYXV0
byBjdEZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihmb250RGVz
Y3JpcHRvci5nZXQoKSwgc2l6ZS52YWx1ZSgpLCBudWxscHRyKSk7CisKKyAgICAgICAgYXV0byBj
cmVhdGlvbkRhdGEgPSBGb250UGxhdGZvcm1EYXRhOjpDcmVhdGlvbkRhdGEgeyBmb250RmFjZURh
dGEudmFsdWUoKSwgaXRlbUluQ29sbGVjdGlvbi52YWx1ZSgpIH07CisgICAgICAgIHJldHVybiBG
b250UGxhdGZvcm1EYXRhKAorICAgICAgICAgICAgY3RGb250LmdldCgpLAorICAgICAgICAgICAg
c2l6ZS52YWx1ZSgpLAorICAgICAgICAgICAgc3ludGhldGljQm9sZC52YWx1ZSgpLAorICAgICAg
ICAgICAgc3ludGhldGljT2JsaXF1ZS52YWx1ZSgpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
Rm9udE9yaWVudGF0aW9uPihvcmllbnRhdGlvbi52YWx1ZSgpKSwKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEZvbnRXaWR0aFZhcmlhbnQ+KHdpZHRoVmFyaWFudC52YWx1ZSgpKSwKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFRleHRSZW5kZXJpbmdNb2RlPih0ZXh0UmVuZGVyaW5nTW9kZS52YWx1
ZSgpKSwKKyAgICAgICAgICAgICZjcmVhdGlvbkRhdGEpOworICAgIH0KKworICAgIGF1dG8gZm9u
dERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRl
cyhhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgaWYgKCFmb250RGVzY3JpcHRvcikKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBGb250OjpjcmVhdGUoeyAoX19icmlk
Z2UgQ1RGb250UmVmKWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2ludFNp
emVdKSB9KTsKKyAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnRE
ZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgKKyAgICAgICAgY3RGb250LmdldCgpLAorICAg
ICAgICBzaXplLnZhbHVlKCksCisgICAgICAgIHN5bnRoZXRpY0JvbGQudmFsdWUoKSwKKyAgICAg
ICAgc3ludGhldGljT2JsaXF1ZS52YWx1ZSgpLAorICAgICAgICBzdGF0aWNfY2FzdDxGb250T3Jp
ZW50YXRpb24+KG9yaWVudGF0aW9uLnZhbHVlKCkpLAorICAgICAgICBzdGF0aWNfY2FzdDxGb250
V2lkdGhWYXJpYW50Pih3aWR0aFZhcmlhbnQudmFsdWUoKSksCisgICAgICAgIHN0YXRpY19jYXN0
PFRleHRSZW5kZXJpbmdNb2RlPih0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgpKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKaW5kZXggMzI0NmQyODc0YmEyLi40MTMzMmY5ZDNkODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTE4Miw1NiAr
MTE4Miw0NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VIYW5kbAogCiB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVmPEZvbnQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZjxXZWJDb3JlOjpG
b250PiYgZm9udCkKIHsKLSAgICBhdXRvKiBmb250RmFjZURhdGEgPSBmb250LT5mb250RmFjZURh
dGEoKTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGZvbnRGYWNlRGF0YSk7Ci0g
ICAgaWYgKGZvbnRGYWNlRGF0YSkgewotICAgICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2Rl
ciwgZm9udEZhY2VEYXRhKTsKLSAgICAgICAgYXV0byYgZGF0YSA9IGZvbnQtPnBsYXRmb3JtRGF0
YSgpOwotICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc2l6ZSgpOwotICAgICAgICBlbmNvZGVyIDw8
IGRhdGEuc3ludGhldGljQm9sZCgpOwotICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc3ludGhldGlj
T2JsaXF1ZSgpOwotICAgIH0KKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGZv
bnQtPm9yaWdpbigpKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPmlzSW50ZXJzdGl0aWFsKCk7Cisg
ICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50OF90Pihmb250LT52aXNpYmlsaXR5KCkpOwor
ICAgIGVuY29kZXIgPDwgZm9udC0+aXNUZXh0T3JpZW50YXRpb25GYWxsYmFjaygpOworICAgIC8v
IEludGVudGlvbmFsbHkgZG9uJ3QgZW5jb2RlIG1faXNCcm9rZW5JZGVvZ3JhcGhGYWxsYmFjayBi
ZWNhdXNlIGl0IGRvZXNuJ3QgYWZmZWN0IGRyYXdHbHlwaHMoKS4KIAogICAgIGVuY29kZVBsYXRm
b3JtRGF0YShlbmNvZGVyLCBmb250KTsKIH0KIAogT3B0aW9uYWw8UmVmPEZvbnQ+PiBBcmd1bWVu
dENvZGVyPFJlZjxGb250Pj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIE9wdGlv
bmFsPGJvb2w+IGhhc0ZvbnRGYWNlRGF0YTsKLSAgICBkZWNvZGVyID4+IGhhc0ZvbnRGYWNlRGF0
YTsKLSAgICBpZiAoIWhhc0ZvbnRGYWNlRGF0YS5oYXNWYWx1ZSgpKQorICAgIE9wdGlvbmFsPHVp
bnQ4X3Q+IG9yaWdpbjsKKyAgICBkZWNvZGVyID4+IG9yaWdpbjsKKyAgICBpZiAoIW9yaWdpbi5o
YXNWYWx1ZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8
UmVmPFdlYkNvcmU6OkZvbnQ+PiByZXN1bHQ7Ci0gICAgaWYgKGhhc0ZvbnRGYWNlRGF0YS52YWx1
ZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZvbnRGYWNlRGF0YTsKLSAgICAg
ICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgZm9udEZhY2VEYXRhKSkKLSAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgaWYgKCFmb250RmFjZURhdGEp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIE9wdGlvbmFsPGZs
b2F0PiBmb250U2l6ZTsKLSAgICAgICAgZGVjb2RlciA+PiBmb250U2l6ZTsKLSAgICAgICAgaWYg
KCFmb250U2l6ZSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9u
YWw8Ym9vbD4gaXNJbnRlcnN0aXRpYWw7CisgICAgZGVjb2RlciA+PiBpc0ludGVyc3RpdGlhbDsK
KyAgICBpZiAoIWlzSW50ZXJzdGl0aWFsLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKLSAgICAg
ICAgZGVjb2RlciA+PiBzeW50aGV0aWNCb2xkOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQp
Ci0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPHVpbnQ4X3Q+
IHZpc2liaWxpdHk7CisgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgIGlmICghdmlzaWJp
bGl0eS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAg
IE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50
aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlmICghc3ludGhldGljSXRhbGljKQotICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxib29sPiBpc1RleHRPcmllbnRhdGlv
bkZhbGxiYWNrOworICAgIGRlY29kZXIgPj4gaXNUZXh0T3JpZW50YXRpb25GYWxsYmFjazsKKyAg
ICBpZiAoIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2suaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb247
Ci0gICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgqZm9udFNpemUpOwotICAgICAg
ICByZXN1bHQgPSBGb250OjpjcmVhdGUoZm9udEZhY2VEYXRhLnJlbGVhc2VOb25OdWxsKCksIEZv
bnQ6Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50aGV0aWNCb2xkLCAqc3ludGhldGlj
SXRhbGljKTsKLSAgICB9CisgICAgYXV0byBwbGF0Zm9ybURhdGEgPSBkZWNvZGVQbGF0Zm9ybURh
dGEoZGVjb2Rlcik7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEuaGFzVmFsdWUoKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBkZWNvZGVQbGF0Zm9ybURhdGEoZGVj
b2RlciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKAorICAgICAg
ICBwbGF0Zm9ybURhdGEudmFsdWUoKSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8Rm9udDo6T3JpZ2lu
PihvcmlnaW4udmFsdWUoKSksCisgICAgICAgIGlzSW50ZXJzdGl0aWFsLnZhbHVlKCkgPyBGb250
OjpJbnRlcnN0aXRpYWw6OlllcyA6IEZvbnQ6OkludGVyc3RpdGlhbDo6Tm8sCisgICAgICAgIHN0
YXRpY19jYXN0PEZvbnQ6OlZpc2liaWxpdHk+KHZpc2liaWxpdHkudmFsdWUoKSksCisgICAgICAg
IGlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2sudmFsdWUoKSA/IEZvbnQ6Ok9yaWVudGF0aW9uRmFs
bGJhY2s6OlllcyA6IEZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2s6Ok5vKTsKIH0KIAogdm9pZCBB
cmd1bWVudENvZGVyPEN1cnNvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJz
b3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKaW5kZXggMjg2MjE5YzA2NWQ3Li5kMDdkNGFlM2EzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC05NSw2ICs5NSw3IEBAIGNsYXNzIEZs
b2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0aW9uVmll
d3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CitjbGFzcyBGb250UGxhdGZvcm1EYXRhOwog
Y2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEltYWdlSGFuZGxlOwogY2xhc3MgSW50UG9pbnQ7
CkBAIC00MTEsNyArNDEyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8
V2ViQ29yZTo6Rm9udD4+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFJlZjxXZWJDb3JlOjpGb250PiYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxSZWY8V2ViQ29yZTo6
Rm9udD4+IGRlY29kZShEZWNvZGVyJik7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlUGxhdGZvcm1E
YXRhKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKLSAgICBzdGF0aWMgT3B0
aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIE9w
dGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNv
cmU6OkZvbnRQbGF0Zm9ybURhdGE+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxlPiB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410094</attachid>
            <date>2020-09-29 22:11:41 -0700</date>
            <delta_ts>2020-09-30 19:44:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>24578</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3NWY5ZDU1OGE2MjMuLmYyOTMxNmU5YWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY0Nyw3ICszNjQ3LDcgQEAK
IAkJQjJBMUYyQUIwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBMjBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCAqLzsgfTsKIAkJQjJBMUYyQUUwQ0VGMEFCRjAwNDQy
RjZBIC8qIFNWR0dseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjJBMUYyQTUwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVu
dC5oICovOyB9OwogCQlCMkExRjJCMTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCAqLzsg
fTsKLQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87IH07CisJCUIy
QUZGQzdFMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkFGRkM3NjBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQjFGNzE3MEQwMENBQTgwMDRBRUE2NCAv
KiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQjFGNzE1MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZlbnRz
SGl0UnVsZXMuaCAqLzsgfTsKIAkJQjJDM0RBMjQwRDAwNkMxRDAwRUY2RjI2IC8qIEJpZGlDb250
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkMz
RDlGMzBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMkMzREEyNTBEMDA2QzFEMDBFRjZGMjYg
LyogQmlkaVJlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkMzRDlGNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaVJlc29sdmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2UuY3BwCmluZGV4IDYyZWJkNzI2YWE1MC4uZDI2YmQyMjhkNjQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTY3OCwxMSArNjc4LDggQEAgUmVmUHRyPEZvbnQ+IENT
U0ZvbnRGYWNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBi
b29sIHN5bnQKICAgICAgICAgICAgIHJldHVybiBGb250OjpjcmVhdGUoRm9udENhY2hlOjpzaW5n
bGV0b24oKS5sYXN0UmVzb3J0RmFsbGJhY2tGb250KGZvbnREZXNjcmlwdGlvbiktPnBsYXRmb3Jt
RGF0YSgpLCBGb250OjpPcmlnaW46OkxvY2FsLCBGb250OjpJbnRlcnN0aXRpYWw6Olllcywgdmlz
aWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NGb250RmFjZVNvdXJjZTo6U3Rh
dHVzOjpTdWNjZXNzOgotICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gc291cmNlLT5mb250
KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBtX2ZlYXR1
cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkgewotICAgICAgICAgICAg
ICAgIGF1dG8qIGNhY2hlZEZvbnQgPSBzb3VyY2UtPmNhY2hlZEZvbnQoKTsKLSAgICAgICAgICAg
ICAgICByZXN1bHQtPnNldEZvbnRGYWNlRGF0YShjYWNoZWRGb250ID8gY2FjaGVkRm9udC0+cmVz
b3VyY2VCdWZmZXIoKSA6IG51bGxwdHIpOworICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0g
c291cmNlLT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToK
ICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5j
cHAKaW5kZXggMjExYjYwOGZlYmYyLi5lNmVhMTgxNmZmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmNwcApAQCAtMjEyLDkgKzIxMiw2IEBAIFJlZlB0cjxGb250PiBD
U1NGb250RmFjZVNvdXJjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgYm9vCiAgICAgaWYgKCFtX2luRG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50
Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3lu
dGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKLQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIENTU0ZvbnRGYWNlU291cmNl
Ojppc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKaW5kZXggYjhmZGU1N2NiY2E5Li41NGI5Yjc1ZWY3MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC03MTUsOSArNzE1LDQgQEAg
Y29uc3QgUGF0aCYgRm9udDo6cGF0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIHJl
dHVybiAqbV9nbHlwaFBhdGhNYXAuZXhpc3RpbmdNZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOwogfQog
Ci12b2lkIEZvbnQ6OnNldEZvbnRGYWNlRGF0YShSZWZQdHI8U2hhcmVkQnVmZmVyPiYmIGZvbnRG
YWNlRGF0YSkKLXsKLSAgICBtX2ZvbnRGYWNlRGF0YSA9IFdURk1vdmUoZm9udEZhY2VEYXRhKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCmluZGV4IDkwZTdiYzA3OTBhZC4uYTRiOGZkNzY3NDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCkBAIC0yMjMsOSArMjIzLDYgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBmbG9hdCBhc2NlbnRDb25zaWRlcmluZ01hY0FzY2VudEhhY2soY29uc3QgV0NI
QVIqLCBmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQpOwogI2VuZGlmCiAKLSAgICBTaGFyZWRC
dWZmZXIqIGZvbnRGYWNlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udEZhY2VEYXRhLmdldCgp
OyB9Ci0gICAgdm9pZCBzZXRGb250RmFjZURhdGEoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJik7Ci0K
IHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRh
JiwgT3JpZ2luLCBJbnRlcnN0aXRpYWwsIFZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2sp
OwogCkBAIC0yOTcsOCArMjk0LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFNDUklQVF9GT05U
UFJPUEVSVElFUyogbV9zY3JpcHRGb250UHJvcGVydGllczsKICNlbmRpZgogCi0gICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gbV9mb250RmFjZURhdGE7Ci0KICAgICBHbHlwaCBtX3NwYWNlR2x5cGgg
eyAwIH07CiAgICAgR2x5cGggbV96ZXJvR2x5cGggeyAwIH07CiAgICAgR2x5cGggbV96ZXJvV2lk
dGhTcGFjZUdseXBoIHsgMCB9OwpAQCAtMzI3LDYgKzMyMiw4IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICB1bnNpZ25lZCBtX3Nob3VsZE5vdEJlVXNlZEZvckFyYWJp
YyA6IDE7CiAjZW5kaWYKKworICAgIC8vIEFkZGluZyBhbnkgbm9uLWRlcml2ZWQgaW5mb3JtYXRp
b24gdG8gRm9udCBuZWVkcyBhIHBhcmFsbGVsIGNoYW5nZSBpbiBXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwLgogfTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDBh
YTUxNzVlZTA1YS4uZjBhZWRhMWI2NDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNDYsNyArNDYsNyBAQCBG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lk
dGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01v
ZGUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9k
ZSB0ZXh0UmVuZGVyaW5nTW9kZSwgQ3JlYXRpb25EYXRhKiBjcmVhdGlvbkRhdGEpCiAgICAgOiBt
X3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3dp
ZHRoVmFyaWFudCh3aWR0aFZhcmlhbnQpCkBAIC01NCw2ICs1NCw4IEBAIEZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1f
c3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQogeworICAgIGlmIChjcmVhdGlvbkRh
dGEpCisgICAgICAgIG1fY3JlYXRpb25EYXRhID0gKmNyZWF0aW9uRGF0YTsKIH0KIAogI2lmICFV
U0UoRlJFRVRZUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKaW5kZXggMThmMjMxYWVjMzAxLi5kNzQwYjNmMGI5ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRh
LmgKQEAgLTI0LDExICsyNCwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi0KICNpZiBQTEFURk9STShXSU4pCiAj
aW5jbHVkZSAiQ09NUHRyLmgiCiAjaW5jbHVkZSAiU2hhcmVkR0RJT2JqZWN0LmgiCkBAIC03Nywx
MyArNzcsMTUgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RydWN0IENyZWF0
aW9uRGF0YTsKKwogICAgIEZvbnRQbGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFs
dWVUeXBlKTsKICAgICBGb250UGxhdGZvcm1EYXRhKCk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRh
KGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBG
b250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2Rl
ID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nKTsKKyAgICBGb250UGxhdGZv
cm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxp
cXVlLCBGb250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRX
aWR0aFZhcmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJp
bmdNb2RlID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nLCBDcmVhdGlvbkRh
dGEqID0gbnVsbHB0cik7CiAKICNpZiBVU0UoQ09SRV9URVhUKQotICAgIFdFQkNPUkVfRVhQT1JU
IEZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0Jv
bGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlv
biA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IEZvbnRX
aWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01vZGUgPSBUZXh0UmVuZGVy
aW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcpOworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0
Zm9ybURhdGEoQ1RGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxz
ZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEZvbnRP
cmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IEZvbnRXaWR0aFZhcmlh
bnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01vZGUgPSBUZXh0UmVuZGVyaW5nTW9kZTo6
QXV0b1RleHRSZW5kZXJpbmcsIENyZWF0aW9uRGF0YSogPSBudWxscHRyKTsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oV0lOKQpAQCAtMTk5LDYgKzIwMSwxNiBAQCBwdWJsaWM6CiAKICAgICBTdHJp
bmcgZGVzY3JpcHRpb24oKSBjb25zdDsKIAorICAgIHN0cnVjdCBDcmVhdGlvbkRhdGEgeworICAg
ICAgICBSZWY8U2hhcmVkQnVmZmVyPiBmb250RmFjZURhdGE7CisgICAgICAgIFN0cmluZyBpdGVt
SW5Db2xsZWN0aW9uOworICAgIH07CisKKyAgICBjb25zdCBPcHRpb25hbDxDcmVhdGlvbkRhdGE+
JiBjcmVhdGlvbkRhdGEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3JlYXRpb25E
YXRhOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIHBsYXRmb3JtSXNFcXVhbChjb25zdCBG
b250UGxhdGZvcm1EYXRhJikgY29uc3Q7CiAKQEAgLTI0NSw2ICsyNTcsOCBAQCBwcml2YXRlOgog
ICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlhbnQgeyBGb250V2lkdGhWYXJpYW50OjpS
ZWd1bGFyV2lkdGggfTsKICAgICBUZXh0UmVuZGVyaW5nTW9kZSBtX3RleHRSZW5kZXJpbmdNb2Rl
IHsgVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nIH07CiAKKyAgICBPcHRpb25h
bDxDcmVhdGlvbkRhdGE+IG1fY3JlYXRpb25EYXRhOworCiAgICAgYm9vbCBtX3N5bnRoZXRpY0Jv
bGQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDb2xvckJpdG1hcEZvbnQgeyBmYWxzZSB9OwpAQCAtMjY0LDYgKzI3OCw4IEBA
IHByaXZhdGU6CiAjaWYgVVNFKEZSRUVUWVBFKQogICAgIGJvb2wgbV9maXhlZFdpZHRoIHsgZmFs
c2UgfTsKICNlbmRpZgorCisgICAgLy8gQWRkaW5nIGFueSBub24tZGVyaXZlZCBpbmZvcm1hdGlv
biB0byBGb250UGxhdGZvcm1EYXRhIG5lZWRzIGEgcGFyYWxsZWwgY2hhbmdlIGluIFdlYkNvcmVB
cmd1bWVudENvZGVyc0NvY29hLmNwcC4KIH07CiAKICNpZiBVU0UoQ09SRV9URVhUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRm
b3JtRGF0YUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
cmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKaW5kZXggZGNjNzlhZDhjYTg1Li4y
NjJlOTNjYWE1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNw
cApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZvbnRQbGF0Zm9y
bURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZvbnQsIGZsb2F0IHNpemUsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9k
ZSB0ZXh0UmVuZGVyaW5nTW9kZSkKLSAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgc3ludGhl
dGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgdGV4
dFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9u
dFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUsIENyZWF0aW9u
RGF0YSogY3JlYXRpb25EYXRhKQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0
aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0
UmVuZGVyaW5nTW9kZSwgY3JlYXRpb25EYXRhKQogewogICAgIEFTU0VSVF9BUkcoZm9udCwgZm9u
dCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4
IGEyMmU4MjI2OWRiZC4uZDQzMWIyYzA4MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiB7CiAgICAgYXV0
byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRyaWJ1dGVzRm9yV2ViRm9udHMo
YXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKCkpOwotICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlwdG9yLmdl
dCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgYXV0byBtb2RpZmllZEZvbnREZXNjcmlwdG9y
ID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVzKGZvbnRE
ZXNjcmlwdG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CiAgICAgQVNTRVJUKG1vZGlmaWVk
Rm9udERlc2NyaXB0b3IpOwogCiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0
ZWRQaXhlbFNpemUoKTsKQEAgLTQ4LDcgKzQ4LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYK
ICAgICBhdXRvIGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvciht
b2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9
IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAmZm9udEZh
Y2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwogICAgIEFTU0VSVChmb250KTsKLSAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBpdGFsaWMs
IG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5n
TW9kZSgpKTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBi
b2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50
ZXh0UmVuZGVyaW5nTW9kZSgpLCAmY3JlYXRpb25EYXRhKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hh
cmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IFN0cmluZyYgaXRlbUluQ29sbGVjdGlvbikKQEAgLTg1
LDcgKzg1LDggQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0
ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmUKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAjZW5kaWYKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnREZXNjcmlwdG9yLmdldCgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhOjpDcmVhdGlv
bkRhdGEgY3JlYXRpb25EYXRhID0geyBidWZmZXIsIGl0ZW1JbkNvbGxlY3Rpb24gfTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihmb250RGVzY3JpcHRvci5n
ZXQoKSwgV1RGTW92ZShjcmVhdGlvbkRhdGEpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCmluZGV4IDYwNzhlMjVmYTFkOC4uZDdiNjQyNGU4NDk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgKQEAgLTIxLDE5ICsyMSwyMCBAQAogI2lmbmRlZiBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udEN1c3RvbVBsYXRmb3JtRGF0YV9oCiAKKyNpbmNs
dWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVk
ZSA8Q29yZUZvdW5kYXRpb24vQ0ZCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
KwogdHlwZWRlZiBzdHJ1Y3QgQ0dGb250KiBDR0ZvbnRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0NURm9udERlc2NyaXB0b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRm9udERlc2NyaXB0aW9uOwotY2xhc3MgRm9udFBsYXRmb3JtRGF0
YTsKIHN0cnVjdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzOwogY2xhc3MgU2hh
cmVkQnVmZmVyOwogCkBAIC00MywyMSArNDQsMjMgQEAgdHlwZWRlZiBGb250VGFnZ2VkU2V0dGlu
Z3M8aW50PiBGb250RmVhdHVyZVNldHRpbmdzOwogc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhKENURm9udERlc2NyaXB0b3JSZWYgZm9udERlc2NyaXB0b3IpCi0gICAgICAg
IDogbV9mb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvcikKKyAgICBleHBsaWNpdCBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhKENURm9udERlc2NyaXB0b3JSZWYgZm9udERlc2NyaXB0b3IsIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSYmIGNyZWF0aW9uRGF0YSkKKyAgICAgICAgOiBmb250
RGVzY3JpcHRvcihmb250RGVzY3JpcHRvcikKKyAgICAgICAgLCBjcmVhdGlvbkRhdGEoV1RGTW92
ZShjcmVhdGlvbkRhdGEpKQogICAgIHsKICAgICB9CiAKLSAgICB+Rm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSgpOworICAgIFdFQkNPUkVfRVhQT1JUIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYg
Zm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250
RmFjZUNhcGFiaWxpdGllcyk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25z
dCBTdHJpbmcmKTsKIAotICAgIFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVmPiBtX2ZvbnRE
ZXNjcmlwdG9yOworICAgIFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVmPiBmb250RGVzY3Jp
cHRvcjsKKyAgICBGb250UGxhdGZvcm1EYXRhOjpDcmVhdGlvbkRhdGEgY3JlYXRpb25EYXRhOwog
fTsKIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJik7CitXRUJDT1JF
X0VYUE9SVCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmKTsKIAogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVu
dENvZGVyc0NvY29hLm1tCmluZGV4IDZkZTVkY2MxNDY2NC4uNjE0MmJjNWEzYmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNDb2NvYS5tbQpAQCAtMjYsMTIgKzI2LDE4IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NG
LmgiCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCi0jaW1wb3J0ICJDb2NvYUZvbnQu
aCIKKyNpbXBvcnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJp
YnV0ZWRTdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaD4KKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KKyNlbmRpZgogCiAj
aWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTM5LDEw
ICs0NSw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KLSNl
bmRpZgotCiBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01
MDksMjYgKzUxMSwxMTMgQEAgT3B0aW9uYWw8Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+OjpkZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBBcmd1bWVu
dENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byBjdEZvbnQgPSAhZm9u
dC0+Zm9udEZhY2VEYXRhKCkgPyBmb250LT5nZXRDVEZvbnQoKSA6IG5pbDsKLSAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGJvb2w+KGN0Rm9udCk7Ci0gICAgaWYgKGN0Rm9udCkKLSAgICAgICAg
ZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FGb250ICopY3RGb250OworICAgIGNvbnN0IGF1dG8m
IHBsYXRmb3JtRGF0YSA9IGZvbnQtPnBsYXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8dWludDhfdD4ocGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCkpOworICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDhfdD4ocGxhdGZvcm1EYXRhLndpZHRoVmFyaWFudCgpKTsK
KyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHBsYXRmb3JtRGF0YS50ZXh0UmVu
ZGVyaW5nTW9kZSgpKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS5zaXplKCk7CisgICAg
ZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpOworICAgIGVuY29kZXIgPDwg
cGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsKKworICAgIGF1dG8gY3RGb250ID0gcGxh
dGZvcm1EYXRhLmZvbnQoKTsKKyAgICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZv
bnRDb3B5Rm9udERlc2NyaXB0b3IoY3RGb250KSk7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCkp
KTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBhdHRyaWJ1dGVzLmdldCgpKTsKKworICAgIGNv
bnN0IGF1dG8mIGNyZWF0aW9uRGF0YSA9IHBsYXRmb3JtRGF0YS5jcmVhdGlvbkRhdGEoKTsKKyAg
ICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGNyZWF0aW9uRGF0YSk7CisgICAgaWYgKGNy
ZWF0aW9uRGF0YSkgeworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9uRGF0YS0+Zm9udEZhY2VE
YXRhOworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9uRGF0YS0+aXRlbUluQ29sbGVjdGlvbjsK
KyAgICB9CiB9CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uYWw8UmVmPFdlYkNv
cmU6OkZvbnQ+PiYmIGV4aXN0aW5nRm9udCkKK09wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29k
ZXIpCiB7Ci0gICAgYm9vbCBoYXNQbGF0Zm9ybUZvbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShoYXNQbGF0Zm9ybUZvbnQpKQorICAgIE9wdGlvbmFsPHVpbnQ4X3Q+IG9yaWVudGF0aW9uOwor
ICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmllbnRhdGlvbi5oYXNWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8dWludDhf
dD4gd2lkdGhWYXJpYW50OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAgIGlmICgh
d2lkdGhWYXJpYW50Lmhhc1ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
LSAgICBpZiAoIWhhc1BsYXRmb3JtRm9udCkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhpc3Rp
bmdGb250KTsKKyAgICBPcHRpb25hbDx1aW50OF90PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBk
ZWNvZGVyID4+IHRleHRSZW5kZXJpbmdNb2RlOworICAgIGlmICghdGV4dFJlbmRlcmluZ01vZGUu
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PGZsb2F0PiBzaXplOworICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICBpZiAoIXNpemUuaGFzVmFs
dWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+
IHN5bnRoZXRpY0JvbGQ7CisgICAgZGVjb2RlciA+PiBzeW50aGV0aWNCb2xkOworICAgIGlmICgh
c3ludGhldGljQm9sZC5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljT2JsaXF1ZTsKKyAgICBkZWNvZGVyID4+IHN5
bnRoZXRpY09ibGlxdWU7CisgICAgaWYgKCFzeW50aGV0aWNPYmxpcXVlLmhhc1ZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiBhdHRyaWJ1dGVzOworICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgYXR0cmlidXRl
cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBp
bmNsdWRlc0NyZWF0aW9uRGF0YTsKKyAgICBkZWNvZGVyID4+IGluY2x1ZGVzQ3JlYXRpb25EYXRh
OworICAgIGlmICghaW5jbHVkZXNDcmVhdGlvbkRhdGEuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIFJldGFpblB0cjxDb2NvYUZvbnQ+IGZvbnQ7Ci0gICAg
aWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBmb250KSkKKyAgICBpZiAoaW5jbHVkZXNDcmVhdGlv
bkRhdGEudmFsdWUoKSkgeworICAgICAgICBPcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4gZm9u
dEZhY2VEYXRhOworICAgICAgICBkZWNvZGVyID4+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgaWYg
KCFmb250RmFjZURhdGEuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAg
ICBkZWNvZGVyID4+IGl0ZW1JbkNvbGxlY3Rpb247CisgICAgICAgIGlmICghaXRlbUluQ29sbGVj
dGlvbi5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
ICAgICBhdXRvIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZv
cm1EYXRhKGZvbnRGYWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkpOwor
ICAgICAgICBpZiAoIWZvbnRDdXN0b21QbGF0Zm9ybURhdGEpCisgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgICAgICBhdXRvIGJhc2VGb250RGVzY3JpcHRvciA9IGZvbnRDdXN0
b21QbGF0Zm9ybURhdGEtPmZvbnREZXNjcmlwdG9yLmdldCgpOworICAgICAgICBpZiAoIWJhc2VG
b250RGVzY3JpcHRvcikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
IGF1dG8gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5
V2l0aEF0dHJpYnV0ZXMoYmFzZUZvbnREZXNjcmlwdG9yLCBhdHRyaWJ1dGVzLmdldCgpKSk7Cisg
ICAgICAgIGF1dG8gY3RGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0
b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUudmFsdWUoKSwgbnVsbHB0cikpOworCisgICAg
ICAgIGF1dG8gY3JlYXRpb25EYXRhID0gRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIHsg
Zm9udEZhY2VEYXRhLnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSB9OworICAgICAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YSgKKyAgICAgICAgICAgIGN0Rm9udC5nZXQoKSwKKyAg
ICAgICAgICAgIHNpemUudmFsdWUoKSwKKyAgICAgICAgICAgIHN5bnRoZXRpY0JvbGQudmFsdWUo
KSwKKyAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUudmFsdWUoKSwKKyAgICAgICAgICAgIHN0
YXRpY19jYXN0PEZvbnRPcmllbnRhdGlvbj4ob3JpZW50YXRpb24udmFsdWUoKSksCisgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxGb250V2lkdGhWYXJpYW50Pih3aWR0aFZhcmlhbnQudmFsdWUoKSks
CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxUZXh0UmVuZGVyaW5nTW9kZT4odGV4dFJlbmRlcmlu
Z01vZGUudmFsdWUoKSksCisgICAgICAgICAgICAmY3JlYXRpb25EYXRhKTsKKyAgICB9CisKKyAg
ICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0
aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOworICAgIGlmICghZm9udERlc2NyaXB0b3Ip
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gRm9udDo6Y3JlYXRl
KHsgKF9fYnJpZGdlIENURm9udFJlZilmb250LmdldCgpLCBzdGF0aWNfY2FzdDxmbG9hdD4oW2Zv
bnQgcG9pbnRTaXplXSkgfSk7CisgICAgYXV0byBjdEZvbnQgPSBhZG9wdENGKENURm9udENyZWF0
ZVdpdGhGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZS52YWx1ZSgpLCBu
dWxscHRyKSk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoCisgICAgICAgIGN0Rm9udC5n
ZXQoKSwKKyAgICAgICAgc2l6ZS52YWx1ZSgpLAorICAgICAgICBzeW50aGV0aWNCb2xkLnZhbHVl
KCksCisgICAgICAgIHN5bnRoZXRpY09ibGlxdWUudmFsdWUoKSwKKyAgICAgICAgc3RhdGljX2Nh
c3Q8Rm9udE9yaWVudGF0aW9uPihvcmllbnRhdGlvbi52YWx1ZSgpKSwKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8Rm9udFdpZHRoVmFyaWFudD4od2lkdGhWYXJpYW50LnZhbHVlKCkpLAorICAgICAgICBz
dGF0aWNfY2FzdDxUZXh0UmVuZGVyaW5nTW9kZT4odGV4dFJlbmRlcmluZ01vZGUudmFsdWUoKSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDMyNDZkMjg3NGJhMi4uNDEzMzJmOWQzZDg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTExODIsNTYgKzExODIsNDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8
V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9udC0+
Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250RmFj
ZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVm
ZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250LT5w
bGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAg
ZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRh
LnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50OF90Pihmb250LT5vcmlnaW4oKSk7CisgICAgZW5jb2RlciA8PCBmb250LT5pc0ludGVyc3Rp
dGlhbCgpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDhfdD4oZm9udC0+dmlzaWJp
bGl0eSgpKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2so
KTsKKyAgICAvLyBJbnRlbnRpb25hbGx5IGRvbid0IGVuY29kZSBtX2lzQnJva2VuSWRlb2dyYXBo
RmFsbGJhY2sgYmVjYXVzZSBpdCBkb2Vzbid0IGFmZmVjdCBkcmF3R2x5cGhzKCkuCiAKICAgICBl
bmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgZm9udCk7CiB9CiAKIE9wdGlvbmFsPFJlZjxGb250
Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBPcHRpb25hbDxib29sPiBoYXNGb250RmFjZURhdGE7Ci0gICAgZGVjb2RlciA+PiBoYXNG
b250RmFjZURhdGE7Ci0gICAgaWYgKCFoYXNGb250RmFjZURhdGEuaGFzVmFsdWUoKSkKKyAgICBP
cHRpb25hbDx1aW50OF90PiBvcmlnaW47CisgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAgaWYg
KCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAg
IE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVzdWx0OwotICAgIGlmIChoYXNGb250RmFj
ZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBmb250RmFjZURh
dGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0
YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmICghZm9u
dEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBP
cHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7Ci0g
ICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIE9wdGlvbmFsPGJvb2w+IGlzSW50ZXJzdGl0aWFsOworICAgIGRlY29kZXIgPj4gaXNJbnRl
cnN0aXRpYWw7CisgICAgaWYgKCFpc0ludGVyc3RpdGlhbC5oYXNWYWx1ZSgpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0Jv
bGQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKLSAgICAgICAgaWYgKCFzeW50
aGV0aWNCb2xkKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25h
bDx1aW50OF90PiB2aXNpYmlsaXR5OworICAgIGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAgICBp
ZiAoIXZpc2liaWxpdHkuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAotICAgICAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAgIGRlY29k
ZXIgPj4gc3ludGhldGljSXRhbGljOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0l0YWxpYykKLSAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gaXNUZXh0
T3JpZW50YXRpb25GYWxsYmFjazsKKyAgICBkZWNvZGVyID4+IGlzVGV4dE9yaWVudGF0aW9uRmFs
bGJhY2s7CisgICAgaWYgKCFpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLmhhc1ZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgRm9udERlc2NyaXB0aW9uIGRl
c2NyaXB0aW9uOwotICAgICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoKmZvbnRTaXpl
KTsKLSAgICAgICAgcmVzdWx0ID0gRm9udDo6Y3JlYXRlKGZvbnRGYWNlRGF0YS5yZWxlYXNlTm9u
TnVsbCgpLCBGb250OjpPcmlnaW46OlJlbW90ZSwgKmZvbnRTaXplLCAqc3ludGhldGljQm9sZCwg
KnN5bnRoZXRpY0l0YWxpYyk7Ci0gICAgfQorICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gZGVjb2Rl
UGxhdGZvcm1EYXRhKGRlY29kZXIpOworICAgIGlmICghcGxhdGZvcm1EYXRhLmhhc1ZhbHVlKCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gZGVjb2RlUGxhdGZv
cm1EYXRhKGRlY29kZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgcmV0dXJuIEZvbnQ6OmNyZWF0
ZSgKKyAgICAgICAgcGxhdGZvcm1EYXRhLnZhbHVlKCksCisgICAgICAgIHN0YXRpY19jYXN0PEZv
bnQ6Ok9yaWdpbj4ob3JpZ2luLnZhbHVlKCkpLAorICAgICAgICBpc0ludGVyc3RpdGlhbC52YWx1
ZSgpID8gRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5vLAor
ICAgICAgICBzdGF0aWNfY2FzdDxGb250OjpWaXNpYmlsaXR5Pih2aXNpYmlsaXR5LnZhbHVlKCkp
LAorICAgICAgICBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLnZhbHVlKCkgPyBGb250OjpPcmll
bnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpObyk7CiB9
CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IDI4NjIxOWMwNjVkNy4uZDA3ZDRhZTNhM2Q2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTUsNiArOTUsNyBA
QCBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQ
b3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250OworY2xhc3MgRm9udFBsYXRm
b3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbWFnZUhhbmRsZTsKIGNsYXNz
IEludFBvaW50OwpAQCAtNDExLDcgKzQxMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8UmVm
PFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGUoRGVjb2RlciYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+Jik7Ci0gICAg
c3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y29kZXImLCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2Rl
ciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFn
ZUhhbmRsZT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410193</attachid>
            <date>2020-09-30 19:44:59 -0700</date>
            <delta_ts>2020-10-01 14:15:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206118-20200930194458.patch</filename>
            <type>text/plain</type>
            <size>37170</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNzkzNGNmOGVjYTQ4
OWQ5MDAwM2FjYzc2NDlhNTJkNGNjNDlhMi4uNzBlMTcwNmRjNzEwNjg4NGIxMjljNWVkZGM1NTBl
MDUyZDE2YjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHNpbXBseSBzZXJpYWxpemVzIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBGb250IGFu
ZCBGb250UGxhdGZvcm1EYXRhLgorCisgICAgICAgIFNlcmlhbGl6aW5nIGEgQ1RGb250IGludm9s
dmVzIHNlcmlhbGl6aW5nIGl0cyBmb250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzLiBIb3dldmVy
LAorICAgICAgICB0aGVyZSdzIGFuIGV4dHJhIHN0ZXAgZm9yIHdlYiBmb250cywgc2luY2UgdGhl
IGZvbnQgZGVzY3JpcHRvcidzIGF0dHJpYnV0ZXMgZG9uJ3QgaW5jbHVkZQorICAgICAgICB0aGUg
cmF3IGJ5dGVzIG9mIHRoZSBmb250IGZpbGUuIFRoaXMgd2FzIHByZXZpb3VzbHkgYmVpbmcgc2F2
ZWQgaW4gRm9udCwgYnV0IHRoaXMgcGF0Y2gKKyAgICAgICAgbW92ZXMgdGhhdCBpbnRvIEZvbnRQ
bGF0Zm9ybURhdGEgYmVjYXVzZSBvZiBsYXllcmluZywgYW5kIGFkZHMgdGhlIFNoYXJlZEJ1ZmZl
ciB0byB0aGUKKyAgICAgICAgc2VyaWFsaXphdGlvbiByb3V0aW5lIGZvciB3ZWIgZm9udHMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5o
dG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
Ojpmb250KTogRm9udHMgYW5kIEZvbnRQbGF0Zm9ybURhdGFzIGFyZSBzdXBwb3NlZCB0byBiZSBp
bW11dGFibGUsIHNvCisgICAgICAgIGhhdmluZyBhIHNldHRlciBmb3IgdGhlIEZvbnRGYWNlRGF0
YSBpcyBpbmNvcnJlY3QuIFRoaXMgb2JqZWN0IGlzIG1vdmVkIGludG8gdGhlIGNvbnN0cnVjdG9y
CisgICAgICAgIGluc3RlYWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjpmb250KTogRGVsZXRpbmcgZGVh
ZCBjb2RlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpmb250RmFjZURh
dGEgY29uc3QpOiBEZWxldGVkLiBNb3ZlZCB0byBGb250UGxhdGZvcm1EYXRhCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpjcmVhdGlvbkRhdGEgY29uc3QpOiBNb3ZlZCBmcm9tIEZvbnQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIGlzIGEgc3RydWN0LCBzbworICAgICAg
ICB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoZSBtXyBwcmVmaXhlcy4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogRGl0dG8uCisKIDIw
MjAtMDktMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCBmb3IgbXVsdGlwbGUgbGF5b3V0IHRlc3RzIGluIGFjY2Vzc2liaWxpdHkgaXNvbGF0
ZWQgdHJlZSBtb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTVmZGQwMzAxOGZhYWZmMmM3ZTVkYzZjNTVlNzVl
ODM5YmVlMmVmLi42Mjc3YjkwZWVlMjMzZjk4MDEzNWExZWRlZjMyNzA4NWRlNDgwZWM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdp
bmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgc2VyaWFsaXplIGFuZCBkZXNl
cmlhbGl6ZSBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQgUGxhdGZvcm1Gb250
RGF0YS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0
Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKwogMjAyMC0wOS0zMCAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleGVtcHQgQVBJ
OjpTaGFyZWRKU0NvbnRleHQgZnJvbSByZW1vdGUgaW5zcGVjdGlvbiBhbmQgYXV0b21hdGljIGlu
c3BlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNDY1N2IwN2EzNjVmMGUzMzNlOTAzYzRmZTEwYjI5YTNiZGZiZDM0Li4w
Mzg5OWRjZDJlY2I1MzdjZTY4NGZiZWNmMmZjMWZjMmFiNDljZjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjU2LDcgKzM2
NTYsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENF
RjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5
cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFGMkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsg
fTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAw
NEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJCMUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50
ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9OwogCQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyog
QmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQw
MEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTc1
OTcsNiArMTc1OTcsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKKwkJCQk2RkUxOTgxMzIxNzgz
OTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAorCQkJCTZGRTE5ODE1
MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZGN0NB
M0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgg
Ki8sCiAJCQkJNkYzNUVGQUYyMTg3Q0JENTAwNDRFMEY0IC8qIElubGluZUZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwICovLApAQCAtMTc2MDksOCArMTc2MTEsNiBAQAogCQkJCTZGMENENjk0
MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi8sCiAJCQkJNkY2OUE3OTkyNEQ2RkFC
ODAwRTZCODVEIC8qIElubGluZUxpbmVCb3guY3BwICovLAogCQkJCTZGQjI0MDAzMjNERkYxMjcw
MDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCi0JCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2
RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKLQkJCQk2RkUxOTgxNTIxNzgzOTdD
MDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjI1QjIwMDIyMEE4
NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJCTZGMjZFQjQ2MjM0
MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJCTZGOTE0MjBGMjUx
NTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLywKQEAgLTMxODQ5LDYgKzMx
ODQ5LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGlu
ZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElu
bGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5N0Mw
MDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU3
Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4NTcsNyArMzE4NTgsNiBAQAogCQkJCUJD
RTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggaW4g
SGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVu
dEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAv
KiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1MjEz
ODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZD
M0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggNjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3
NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNkYzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC02NzgsMTEgKzY3OCw4IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKEZv
bnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRp
b24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2luOjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0
aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTRm9udEZh
Y2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9
IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0
YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpIHsK
LSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250ID0gc291cmNlLT5jYWNoZWRGb250KCk7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250RmFjZURhdGEoY2FjaGVkRm9udCA/IGNh
Y2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFi
aWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0
dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJmMmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4
OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRhNzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcApAQCAtMjEyLDkgKzIxMiw2IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFtX2luRG9jdW1lbnRDdXN0b21QbGF0Zm9y
bURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBGb250OjpjcmVhdGUo
bV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKLQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIENTU0Zv
bnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggYjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3
YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYyYjk4YWZkZjU4YjEwMzg0MGRhZmY0N2Nm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5
ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5leGlzdGluZ01ldHJpY3NGb3JHbHlwaChn
bHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9udEZhY2VEYXRhID0gV1RGTW92ZShmb250
RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2JjMDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0
MzUyYmYwYzU0MS4uYTRiOGZkNzY3NDJmZTUyM2U3M2QwNzFlYjNjNDE5NzM0MmIyMzIzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMjIzLDkgKzIyMyw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNr
KGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50KTsKICNlbmRpZgogCi0g
ICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRGYWNl
RGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnQoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFsLCBWaXNpYmlsaXR5LCBPcmllbnRhdGlv
bkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBT
Q1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiAjZW5kaWYKIAot
ICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZhY2VEYXRhOwotCiAgICAgR2x5cGggbV9z
cGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb0dseXBoIHsgMCB9OwogICAgIEdseXBo
IG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAgLTMyNyw2ICszMjIsOCBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdW5zaWduZWQgbV9zaG91bGROb3RCZVVz
ZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVk
IGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNw
cAppbmRleCAwYWE1MTc1ZWUwNWE2YTQxYWRjNGMyZjMxNjAyNzk5ZGZmYTY2ZDA2Li5mMGFlZGEx
YjY0MGM0ZTU1NTNlMGJkNTA2YTlkYzkzNmZlYWQ1NGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNDYsNyAr
NDYsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVu
ZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSwgQ3JlYXRpb25EYXRhKiBjcmVhdGlvbkRhdGEp
CiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAg
ICAgLCBtX3dpZHRoVmFyaWFudCh3aWR0aFZhcmlhbnQpCkBAIC01NCw2ICs1NCw4IEBAIEZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkK
ICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQogeworICAgIGlmIChj
cmVhdGlvbkRhdGEpCisgICAgICAgIG1fY3JlYXRpb25EYXRhID0gKmNyZWF0aW9uRGF0YTsKIH0K
IAogI2lmICFVU0UoRlJFRVRZUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggMThmMjMxYWVjMzAxNmRkY2ZjZWJmOWM0
ZTcwNjIxZTdjNzc4N2IzYy4uZDc0MGIzZjBiOWZhZDU4MmVlZjExNzcxOGVjYzk0MGJiN2ViZjZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaApAQCAtMjQsMTEgKzI0LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLQogI2lmIFBMQVRGT1JN
KFdJTikKICNpbmNsdWRlICJDT01QdHIuaCIKICNpbmNsdWRlICJTaGFyZWRHRElPYmplY3QuaCIK
QEAgLTc3LDEzICs3NywxNSBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBGb250UGxhdGZv
cm1EYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdHJ1
Y3QgQ3JlYXRpb25EYXRhOworCiAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVR5cGUpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09i
bGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9u
dFdpZHRoVmFyaWFudCA9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRl
cmluZ01vZGUgPSBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcpOworICAgIEZv
bnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRh
bCwgRm9udFdpZHRoVmFyaWFudCA9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4
dFJlbmRlcmluZ01vZGUgPSBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcsIENy
ZWF0aW9uRGF0YSogPSBudWxscHRyKTsKIAogI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgV0VCQ09S
RV9FWFBPUlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3lu
dGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9y
aWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50
ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRl
eHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZyk7CisgICAgV0VCQ09SRV9FWFBPUlQg
Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9s
ZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9u
ID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdp
ZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJp
bmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShXSU4pCkBAIC0xOTksNiArMjAxLDE2IEBAIHB1YmxpYzoKIAog
ICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCisgICAgc3RydWN0IENyZWF0aW9uRGF0
YSB7CisgICAgICAgIFJlZjxTaGFyZWRCdWZmZXI+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgU3Ry
aW5nIGl0ZW1JbkNvbGxlY3Rpb247CisgICAgfTsKKworICAgIGNvbnN0IE9wdGlvbmFsPENyZWF0
aW9uRGF0YT4mIGNyZWF0aW9uRGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9j
cmVhdGlvbkRhdGE7CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc0VxdWFs
KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKSBjb25zdDsKIApAQCAtMjQ1LDYgKzI1Nyw4IEBAIHBy
aXZhdGU6CiAgICAgRm9udFdpZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudCB7IEZvbnRXaWR0aFZh
cmlhbnQ6OlJlZ3VsYXJXaWR0aCB9OwogICAgIFRleHRSZW5kZXJpbmdNb2RlIG1fdGV4dFJlbmRl
cmluZ01vZGUgeyBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcgfTsKIAorICAg
IE9wdGlvbmFsPENyZWF0aW9uRGF0YT4gbV9jcmVhdGlvbkRhdGE7CisKICAgICBib29sIG1fc3lu
dGhldGljQm9sZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc0NvbG9yQml0bWFwRm9udCB7IGZhbHNlIH07CkBAIC0yNjQsNiAr
Mjc4LDggQEAgcHJpdmF0ZToKICNpZiBVU0UoRlJFRVRZUEUpCiAgICAgYm9vbCBtX2ZpeGVkV2lk
dGggeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGlu
Zm9ybWF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGEgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4g
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EuY3BwLgogfTsKIAogI2lmIFVTRShDT1JFX1RFWFQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9G
b250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAppbmRleCBkY2M3OWFk
OGNhODVmNGY3NDI4M2JiYWZmMWQ1OTM3ZTUyNDYwN2FiLi4yNjJlOTNjYWE1ZmMxZGMzNDIxM2Y1
YjNkYmY5ZDQxMGQwYmQwOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3Jl
VGV4dC5jcHAKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Gb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXpl
LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0
aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRl
cmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCi0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUs
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlh
bnQsIHRleHRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFy
aWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBD
cmVhdGlvbkRhdGEqIGNyZWF0aW9uRGF0YSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwg
c3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgdGV4dFJlbmRlcmluZ01vZGUsIGNyZWF0aW9uRGF0YSkKIHsKICAgICBBU1NFUlRfQVJHKGZv
bnQsIGZvbnQpOwogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAppbmRleCBhMjJlODIyNjlkYmQ0YzAzMzVlNWVmYjMzZjc5MzUzMjFkZWQyMjRhLi5kNDMxYjJj
MDgyMzEzN2YwN2ZhNTZlNmJkYWZmMTkzMzIxY2U2ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiB7CiAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRyaWJ1dGVzRm9yV2Vi
Rm9udHMoYXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKCkpOwotICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0
Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlw
dG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgYXV0byBtb2RpZmllZEZvbnREZXNj
cmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVz
KGZvbnREZXNjcmlwdG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CiAgICAgQVNTRVJUKG1v
ZGlmaWVkRm9udERlc2NyaXB0b3IpOwogCiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24u
Y29tcHV0ZWRQaXhlbFNpemUoKTsKQEAgLTQ4LDcgKzQ4LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYKICAgICBhdXRvIGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3Jp
cHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAg
Zm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAm
Zm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwogICAgIEFTU0VSVChmb250
KTsKLSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBp
dGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVu
ZGVyaW5nTW9kZSgpKTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBz
aXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlw
dGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpLCAmY3JlYXRpb25EYXRhKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IFN0cmluZyYgaXRlbUluQ29sbGVjdGlvbikK
QEAgLTg1LDcgKzg1LDggQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+
IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmUKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0
Zm9ybURhdGE+KGZvbnREZXNjcmlwdG9yLmdldCgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhOjpD
cmVhdGlvbkRhdGEgY3JlYXRpb25EYXRhID0geyBidWZmZXIsIGl0ZW1JbkNvbGxlY3Rpb24gfTsK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihmb250RGVzY3Jp
cHRvci5nZXQoKSwgV1RGTW92ZShjcmVhdGlvbkRhdGEpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IDYwNzhlMjVmYTFkODJiY2VjOWI0Y2M3YmM3MmU1ZTdm
MjhlYTcwYWUuLmQ3YjY0MjRlODQ5OWUxMjU3NzY3NDMwYTE0MzY4ZjllZjAwNjVlNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtMjEsMTkgKzIxLDIwIEBACiAjaWZuZGVmIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAor
I2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KIAorCiB0eXBlZGVmIHN0cnVjdCBDR0ZvbnQqIENHRm9udFJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9fQ1RGb250RGVzY3JpcHRvciogQ1RGb250RGVzY3JpcHRvclJlZjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250RGVzY3JpcHRpb247Ci1jbGFzcyBGb250UGxhdGZv
cm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXM7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7CiAKQEAgLTQzLDIxICs0NCwyMyBAQCB0eXBlZGVmIEZvbnRUYWdnZWRT
ZXR0aW5nczxpbnQ+IEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udEN1c3RvbVBsYXRmb3JtRGF0
YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvcikKLSAg
ICAgICAgOiBtX2ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yKQorICAgIGV4cGxpY2l0IEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvciwg
Rm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhJiYgY3JlYXRpb25EYXRhKQorICAgICAgICA6
IGZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yKQorICAgICAgICAsIGNyZWF0aW9uRGF0YShX
VEZNb3ZlKGNyZWF0aW9uRGF0YSkpCiAgICAgewogICAgIH0KIAotICAgIH5Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVz
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IG1f
Zm9udERlc2NyaXB0b3I7CisgICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZvbnRE
ZXNjcmlwdG9yOworICAgIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRh
dGE7CiB9OwogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRl
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmKTsKK1dF
QkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOwog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1
bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggNmRlNWRjYzE0NjY0YzFkZTYyNjM3YzZmN2QxNzZi
YTgxMjA2MjZkOS4uNjE0MmJjNWEzYmY1NGZjNTRiNjNmN2YwYTEzNDQ3M2EwNGYxMGY1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ29jb2EubW0KQEAgLTI2LDEyICsyNiwxOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAorI2ltcG9ydCAiQXJndW1lbnRDb2Rl
cnNDRi5oIgogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgotI2ltcG9ydCAiQ29jb2FG
b250LmgiCisjaW1wb3J0IDxDb3JlVGV4dC9Db3JlVGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
dHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8u
aD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmli
dXRlcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg+CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCA8VUlLaXQvVUlGb250Lmg+CisjZW5kaWYK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCkBAIC0z
OSwxMCArNDUsNiBAQAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2ltcG9ydCA8VUlLaXQvVUlGb250Lmg+
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNTA5LDI2ICs1MTEsMTEzIEBAIE9wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzPjo6ZGVjb2RlUGxhdGZvcm1ECiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+JiBmb250KQogewotICAgIGF1dG8gY3RGb250ID0g
IWZvbnQtPmZvbnRGYWNlRGF0YSgpID8gZm9udC0+Z2V0Q1RGb250KCkgOiBuaWw7Ci0gICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihjdEZvbnQpOwotICAgIGlmIChjdEZvbnQpCi0gICAg
ICAgIGVuY29kZXIgPDwgKF9fYnJpZGdlIENvY29hRm9udCAqKWN0Rm9udDsKKyAgICBjb25zdCBh
dXRvJiBwbGF0Zm9ybURhdGEgPSBmb250LT5wbGF0Zm9ybURhdGEoKTsKKyAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHBsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpKTsKKyAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHBsYXRmb3JtRGF0YS53aWR0aFZhcmlhbnQo
KSk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50OF90PihwbGF0Zm9ybURhdGEudGV4
dFJlbmRlcmluZ01vZGUoKSk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc2l6ZSgpOwor
ICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKTsKKyAgICBlbmNvZGVy
IDw8IHBsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCk7CisKKyAgICBhdXRvIGN0Rm9udCA9
IHBsYXRmb3JtRGF0YS5mb250KCk7CisgICAgYXV0byBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0Yo
Q1RGb250Q29weUZvbnREZXNjcmlwdG9yKGN0Rm9udCkpOworICAgIGF1dG8gYXR0cmlidXRlcyA9
IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGVzKGZvbnREZXNjcmlwdG9yLmdl
dCgpKSk7CisgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgYXR0cmlidXRlcy5nZXQoKSk7CisKKyAg
ICBjb25zdCBhdXRvJiBjcmVhdGlvbkRhdGEgPSBwbGF0Zm9ybURhdGEuY3JlYXRpb25EYXRhKCk7
CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihjcmVhdGlvbkRhdGEpOworICAgIGlm
IChjcmVhdGlvbkRhdGEpIHsKKyAgICAgICAgZW5jb2RlciA8PCBjcmVhdGlvbkRhdGEtPmZvbnRG
YWNlRGF0YTsKKyAgICAgICAgZW5jb2RlciA8PCBjcmVhdGlvbkRhdGEtPml0ZW1JbkNvbGxlY3Rp
b247CisgICAgfQogfQogCi1PcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZv
bnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIE9wdGlvbmFsPFJlZjxX
ZWJDb3JlOjpGb250Pj4mJiBleGlzdGluZ0ZvbnQpCitPcHRpb25hbDxGb250UGxhdGZvcm1EYXRh
PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBk
ZWNvZGVyKQogewotICAgIGJvb2wgaGFzUGxhdGZvcm1Gb250OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFzUGxhdGZvcm1Gb250KSkKKyAgICBPcHRpb25hbDx1aW50OF90PiBvcmllbnRhdGlv
bjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICghb3JpZW50YXRpb24uaGFz
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVp
bnQ4X3Q+IHdpZHRoVmFyaWFudDsKKyAgICBkZWNvZGVyID4+IHdpZHRoVmFyaWFudDsKKyAgICBp
ZiAoIXdpZHRoVmFyaWFudC5oYXNWYWx1ZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogCi0gICAgaWYgKCFoYXNQbGF0Zm9ybUZvbnQpCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGV4
aXN0aW5nRm9udCk7CisgICAgT3B0aW9uYWw8dWludDhfdD4gdGV4dFJlbmRlcmluZ01vZGU7Cisg
ICAgZGVjb2RlciA+PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdN
b2RlLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhh
c1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBp
ZiAoIXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+
PiBzeW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlv
bmFyeVJlZj4gYXR0cmlidXRlczsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJp
YnV0ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9v
bD4gaW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9u
RGF0YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3JlYXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBSZXRhaW5QdHI8Q29jb2FGb250PiBmb250Owot
ICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZm9udCkpCisgICAgaWYgKGluY2x1ZGVzQ3Jl
YXRpb25EYXRhLnZhbHVlKCkpIHsKKyAgICAgICAgT3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+
IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgZGVjb2RlciA+PiBmb250RmFjZURhdGE7CisgICAgICAg
IGlmICghZm9udEZhY2VEYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gaXRlbUluQ29sbGVjdGlvbjsKKyAg
ICAgICAgZGVjb2RlciA+PiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAgICBpZiAoIWl0ZW1JbkNv
bGxlY3Rpb24uaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgYXV0byBmb250Q3VzdG9tUGxhdGZvcm1EYXRhID0gY3JlYXRlRm9udEN1c3RvbVBs
YXRmb3JtRGF0YShmb250RmFjZURhdGEudmFsdWUoKSwgaXRlbUluQ29sbGVjdGlvbi52YWx1ZSgp
KTsKKyAgICAgICAgaWYgKCFmb250Q3VzdG9tUGxhdGZvcm1EYXRhKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBiYXNlRm9udERlc2NyaXB0b3IgPSBmb250
Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250RGVzY3JpcHRvci5nZXQoKTsKKyAgICAgICAgaWYgKCFi
YXNlRm9udERlc2NyaXB0b3IpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
ICAgICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRl
Q29weVdpdGhBdHRyaWJ1dGVzKGJhc2VGb250RGVzY3JpcHRvciwgYXR0cmlidXRlcy5nZXQoKSkp
OworICAgICAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNj
cmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51bGxwdHIpKTsKKwor
ICAgICAgICBhdXRvIGNyZWF0aW9uRGF0YSA9IEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0
YSB7IGZvbnRGYWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkgfTsKKyAg
ICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoCisgICAgICAgICAgICBjdEZvbnQuZ2V0KCks
CisgICAgICAgICAgICBzaXplLnZhbHVlKCksCisgICAgICAgICAgICBzeW50aGV0aWNCb2xkLnZh
bHVlKCksCisgICAgICAgICAgICBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksCisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxGb250T3JpZW50YXRpb24+KG9yaWVudGF0aW9uLnZhbHVlKCkpLAorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8Rm9udFdpZHRoVmFyaWFudD4od2lkdGhWYXJpYW50LnZhbHVl
KCkpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VGV4dFJlbmRlcmluZ01vZGU+KHRleHRSZW5k
ZXJpbmdNb2RlLnZhbHVlKCkpLAorICAgICAgICAgICAgJmNyZWF0aW9uRGF0YSk7CisgICAgfQor
CisgICAgYXV0byBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0
ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBpZiAoIWZvbnREZXNjcmlw
dG9yKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZSh7IChfX2JyaWRnZSBDVEZvbnRSZWYpZm9udC5nZXQoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KFtmb250IHBvaW50U2l6ZV0pIH0pOworICAgIGF1dG8gY3RGb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUudmFsdWUo
KSwgbnVsbHB0cikpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKAorICAgICAgICBjdEZv
bnQuZ2V0KCksCisgICAgICAgIHNpemUudmFsdWUoKSwKKyAgICAgICAgc3ludGhldGljQm9sZC52
YWx1ZSgpLAorICAgICAgICBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksCisgICAgICAgIHN0YXRp
Y19jYXN0PEZvbnRPcmllbnRhdGlvbj4ob3JpZW50YXRpb24udmFsdWUoKSksCisgICAgICAgIHN0
YXRpY19jYXN0PEZvbnRXaWR0aFZhcmlhbnQ+KHdpZHRoVmFyaWFudC52YWx1ZSgpKSwKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8VGV4dFJlbmRlcmluZ01vZGU+KHRleHRSZW5kZXJpbmdNb2RlLnZhbHVl
KCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzMjQ2ZDI4NzRiYTI5OTE2NjU0ZGE4YmU4
OWMzM2M1NTU5YWYwNzQ1Li40MTMzMmY5ZDNkODkyNjM3ZDZhODZmZjBjMWJjMjQxZTQyNjAxYTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
QEAgLTExODIsNTYgKzExODIsNDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFu
ZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBB
cmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9u
dC0+Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250
RmFjZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVk
QnVmZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250
LT5wbGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAg
ICAgZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBk
YXRhLnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDx1aW50OF90Pihmb250LT5vcmlnaW4oKSk7CisgICAgZW5jb2RlciA8PCBmb250LT5pc0ludGVy
c3RpdGlhbCgpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDhfdD4oZm9udC0+dmlz
aWJpbGl0eSgpKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPmlzVGV4dE9yaWVudGF0aW9uRmFsbGJh
Y2soKTsKKyAgICAvLyBJbnRlbnRpb25hbGx5IGRvbid0IGVuY29kZSBtX2lzQnJva2VuSWRlb2dy
YXBoRmFsbGJhY2sgYmVjYXVzZSBpdCBkb2Vzbid0IGFmZmVjdCBkcmF3R2x5cGhzKCkuCiAKICAg
ICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgZm9udCk7CiB9CiAKIE9wdGlvbmFsPFJlZjxG
b250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBPcHRpb25hbDxib29sPiBoYXNGb250RmFjZURhdGE7Ci0gICAgZGVjb2RlciA+PiBo
YXNGb250RmFjZURhdGE7Ci0gICAgaWYgKCFoYXNGb250RmFjZURhdGEuaGFzVmFsdWUoKSkKKyAg
ICBPcHRpb25hbDx1aW50OF90PiBvcmlnaW47CisgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAg
aWYgKCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVzdWx0OwotICAgIGlmIChoYXNGb250
RmFjZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBmb250RmFj
ZURhdGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGZvbnRGYWNl
RGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmICgh
Zm9udEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAg
ICBPcHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7
Ci0gICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIE9wdGlvbmFsPGJvb2w+IGlzSW50ZXJzdGl0aWFsOworICAgIGRlY29kZXIgPj4gaXNJ
bnRlcnN0aXRpYWw7CisgICAgaWYgKCFpc0ludGVyc3RpdGlhbC5oYXNWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRp
Y0JvbGQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKLSAgICAgICAgaWYgKCFz
eW50aGV0aWNCb2xkKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRp
b25hbDx1aW50OF90PiB2aXNpYmlsaXR5OworICAgIGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAg
ICBpZiAoIXZpc2liaWxpdHkuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgICAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAgIGRl
Y29kZXIgPj4gc3ludGhldGljSXRhbGljOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0l0YWxpYykK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gaXNU
ZXh0T3JpZW50YXRpb25GYWxsYmFjazsKKyAgICBkZWNvZGVyID4+IGlzVGV4dE9yaWVudGF0aW9u
RmFsbGJhY2s7CisgICAgaWYgKCFpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLmhhc1ZhbHVlKCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgRm9udERlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uOwotICAgICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoKmZvbnRT
aXplKTsKLSAgICAgICAgcmVzdWx0ID0gRm9udDo6Y3JlYXRlKGZvbnRGYWNlRGF0YS5yZWxlYXNl
Tm9uTnVsbCgpLCBGb250OjpPcmlnaW46OlJlbW90ZSwgKmZvbnRTaXplLCAqc3ludGhldGljQm9s
ZCwgKnN5bnRoZXRpY0l0YWxpYyk7Ci0gICAgfQorICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gZGVj
b2RlUGxhdGZvcm1EYXRhKGRlY29kZXIpOworICAgIGlmICghcGxhdGZvcm1EYXRhLmhhc1ZhbHVl
KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gZGVjb2RlUGxh
dGZvcm1EYXRhKGRlY29kZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZSgKKyAgICAgICAgcGxhdGZvcm1EYXRhLnZhbHVlKCksCisgICAgICAgIHN0YXRpY19jYXN0
PEZvbnQ6Ok9yaWdpbj4ob3JpZ2luLnZhbHVlKCkpLAorICAgICAgICBpc0ludGVyc3RpdGlhbC52
YWx1ZSgpID8gRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5v
LAorICAgICAgICBzdGF0aWNfY2FzdDxGb250OjpWaXNpYmlsaXR5Pih2aXNpYmlsaXR5LnZhbHVl
KCkpLAorICAgICAgICBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLnZhbHVlKCkgPyBGb250OjpP
cmllbnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpObyk7
CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDI4NjIxOWMwNjVkN2ZmOWZhMDQzZmFhZjFjMmU3MzdiNGE2
YTE0NzAuLmQwN2Q0YWUzYTNkNjY4NDdiYWEwODczMDE1NDZmNWNkNDM0OGRkZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC05NSw2ICs5NSw3
IEBAIGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhl
ZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CitjbGFzcyBGb250UGxh
dGZvcm1EYXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEltYWdlSGFuZGxlOwogY2xh
c3MgSW50UG9pbnQ7CkBAIC00MTEsNyArNDEyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxSZWY8V2ViQ29yZTo6Rm9udD4+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxS
ZWY8V2ViQ29yZTo6Rm9udD4+IGRlY29kZShEZWNvZGVyJik7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKLSAg
ICBzdGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGVQbGF0Zm9ybURhdGEo
RGVjb2RlciYsIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJik7CisgICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNv
ZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Oklt
YWdlSGFuZGxlPiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGJmMmYxY2ZlZTMwZTg2YmIwNGRmMjlhZmQ0MTM4YjZhNGMz
ZTFhZC4uYTZmZTc4ZDIyNDc1MjZmYzQwNzk2ODU0NjcyMjg1MTEwNWI1YzA2ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBp
biAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQt
ZmVhdHVyZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvZmls
bC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGY6IEFkZGVkLgorCiAyMDIwLTA5LTMw
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1hbGlnbiBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCwgR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwg
YW5kIFdpbmRvd0V2ZW50SGFuZGxlcnMuaWRsIHdpdGggdGhlIEhUTUwgc3BlYwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9u
dC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlZDBmMjY5OWRkZDM1ZDcxY2Qz
NTFiMjA4MGU0ZTgzNzQ1MDk3ODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZv
bnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9udCI7CisgICAgc3JjOiB1cmwo
InJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgcm93IG9mIDMg
Y2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2VzIGJlbG93LjwvcD4KKzxj
YW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3Vt
ZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBj
b250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAgY29udGV4dC5maWxsVGV4dCgi
YmJiIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQoImFhYSIsIDEwMCwgMjAwKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lOTEwN2IyMjliYzVhOWJhNDQzYzUxM2E2YWE5ZWE3ZmRlZjU4MDc4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9u
dC1mZWF0dXJlcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lh
bEZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYiKSBm
b3JtYXQoInRydWV0eXBlIik7CisgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAidGl0bCIgMTsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgcm93IG9m
IDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2VzIGJlbG93LjwvcD4K
KzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IGRv
Y3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAgICBjb25zdCBjb250ZXh0
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAgY29udGV4dC5maWxsVGV4
dCgiYWFhIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQoImNjYyIsIDEwMCwgMjAw
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MmMzMzJhMTNjYzEwMjkzOTU2Yjk4ODY2ZjcyMzBiZTdiNWRmOTFlCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxMjMyNAp6Y21lSE5VMShnIzc1LS1id0pTQHF7JXAmI3lwfDxkUz0q
QWxtU3ghJSFnZHRuI0JPOVByREBhQnZYKWtvPnlAPlkKelduemFzcSE3fGxgaztyPG1lUGhpMVg1
WmBPOSYyeHdpSHI9VDFwN2lYYE5EdnB8bnV3TG0lOGlnUkFYIz1GWTcpCnorTDNjZERIT2B5PD9R
YHQ/d0s+Xm9IPUxpP3p3a3FAcD5NJGNuKUVsOUd+ZFZwMXUzJk84fGFGbngyfV43NGNyXgp6aGt6
UGpgd0tKcSsqMChfaSQlNy1PKUFWNVpxQlVxelZ7WG9QNT0hcGJOU3FLekgjaUlLdlNDaEx2IXAl
JTtHNTkKenBKS2FmWmhxOztaS1BnY2AmcVZjN1ojPitQflNmV0crJHUqJlYyNGg1bSQpTigjeDso
e0tEZG0jNG1RN1g4U0JxCnpkLTdeLUtMN3Nue3I3LTlVamdjI0VpUFBKcVRXMFBCRXBZUTFuTTU1
KCZLaGFvOyZAZGozfHtUTk1WTGhsXlg4SAp6cjYmWHRQVSZIVU9DPShpUUsrNVlpc3Z6JmxlJTVZ
WiROYUhCU2JueWRXc31gSW5wenZvZk8hXmJCdCQydUJZJmYKem1Ve31oUW1PUjIoI3g4ZzRFa0ly
ZlFMZDJ6aDVVJT0rZCg5NUdPZ2FzQ1Z9e3M0ZUskZGl7LWZEYHlaTD8tTXI+CnpRNVRnVS1objJL
ODtJTXtCME9xNEBvczcoeFFsbyVRV181cz8/YXR2cCstbXQmPHVKK29uKEpNU35ic1NpSTM2fgp6
IVpTeFlmc2hLSlFQRWNfZitpSjNNOHl6UWFXdHowVDJ1fHNlZEo1Z2o5Tl5vSWBZPk9IO3tpbits
fEM2P0F1MSUKek94I01tb3d5QmtZQTRVVEQ2Zk8oR19VUVVvS0U1ezslPyN8OyRIR1UjQ0M+ITJp
WUVBYHcoU2sqKj1WdjhzeFBqCno8UT9MKlZQZUxmSSE+TXVUQ2pxWmE1fGg4ZT0wZkhmZS1gdFUq
RS13SXJFQlV5QX1FfDlwPHJWI3c8UWklZ0M7ZAp6dUhJJEBXPWs9KFR6WTQ5bHM7MylBeylMSHpR
cnVfMldhdDEtUDEjZ256Z3VFRVdNK2FTQnVFMTx4byMkcFR9RGoKelNNXjtyUH1WWX5uaVZEPXlp
O3tZc2N4VVZlXmolZ25pY1o8cXh6JHd7OHY+cUUyPiNoJjVISGdMTnpPQFN5OWMzCno0WUduMjZq
bkJie2BBey0tfXJwfSRscFVPWXVKdjZGMmhKb00zMnpsUWJeRlhCejl7Mjtla2lrd18rJkVeWnh9
SQp6NlppNFYoZ3xLQXtleTBKZyFDZm1rMVZOVk5uYXdwJVFEKC0ocEF6PT1wb2llQkErM0JrSGl7
Y15lcEtjcSg4RyUKeiMrcHMrZEQ1P2VjcWkkTHFATXdhZGVZfWVLT28lKVlSLXxxTWZ3WW45NDM5
NF5jeF8+YGNQXyNeY0wlZ2ppZW11CnpNPG13c3dtZVN5NChZRn5EVmB2R21Hbk1QJnBLWkgpMTxl
aHd5OVYzMjx2bkRrUSFScUxHNFRyWWdfc2xHZCtzcQp6Z2pkTmhJcVIkNVMzNkghY0pfSWRLKjRt
eWV8WEFlUC1oMWpRZGpoamF2M0B7MU0zbUIlNGwtWkJXOUpNWjRSdFEKeiskdXdBeXVwMiV1Knp0
NWwySyFvKGMmWntYX2V1bzJQPnpYUTt4TkA/YjdZd3s7MExlNVZecitZfCUxZyUkZ29hCnpPZ1lL
V3dQbWUpeGVUe19WZjkhYF9ePSpzd2xyOH14YUdATWkkQSZAe2xWJllnKVFCbCtgIyRMV1I+Q09R
JiEkKAp6OVo3NUohc0AjODE9aHBjRn55djY4RSkmK1lPJHJxYVg7Tj11X2YkaSVYVyglVkxsbWdA
eThCfTkhLXZWdnwwM00Kel42bnZsKkpZPGdqfX1LZ156JEJCK09vQ3YpO29CNz82VE0qeVF6eSRK
MW4tdTlCdFdjKFpqb00xLUIoX21FbVR+Cno5KlpxME1fVzJBZFpabGxXdl45K1RpKWBDb0w8VERf
XjVNP1E/dV87JmY1T2I/QzZna2l5cUM2e0A3PWc7ZFhFNgp6d2FTUCUjWDZzQVJgfDQ7UGlrSEFD
MWFLMHd6bTdOR0RObERgNjVxNiR4bThhK2c4VzVKIXNMeHlJJXk/cXQ3YkMKeiY2YStQakNSS3U4
XytVTmhkVmc2ang3Q3RmUUxpR14wdDhWaGwkUGBFYmtDMzhYVjw2aDtKR2tXQipHWT05QjRtCnp7
TV9JVzI2NU5tRmg9LXZVQ1pSKComIXV3VXI7YHUpe20rZTQzMSR5YEQ1ZEpzJmRjdENvbUUrYHRX
Sn5YeX1zWgp6P18+WVYxfUJqWHtvZGRkTSNGTmE2IzJDezg4LVUhWkd9d3VZb0A9Ql8/RSUtPW5D
STh4Qio+fWh7NX5POFIwKU4KekVvVXAqQmFhIX1oKWlWMDsxJiE7bUpReTk7bUYkdEg8NXFVO0FV
aV5aM2VldUNefX5GYl9fQDU/RmBYIzJSZnAhCno4UWV5R3shYFdjZH4rbEVmeCskUWpRVFFuQXJu
aVJ7dG9vVWVCRX1WQldCaH1yT0QmI3dnPWhSbn0peFduRXlQcgp6e0pyUmtuOzF9QyRpej5aeyUj
RCUza0xVS0YjZHxjYF9MWjBWe2s5fHtXVz9CZzklP3doV01pNEllLUhSZXwtLVUKemAhQEVZQy1E
Y3ZHa3tFdUBBRT8jdGRXMVQ7KiVffnp0KUZ8emkjPm1pR09NRTVnZjFhZUtMZCpgM0o3WTl6e0My
CnpXYmlPRCRybFlpaFE4IWE0TCopKygpWXMmdzU1RmdONj9jUiN1K1QmRHdnbWhGN3RiaT9MNlA3
UztCU1pLcHhqSAp6JDxMWXAwb05oKVZJYmhWU0QzcShGfXFJaG48JnpQRHxuYXwmaHNPN1JgUUxy
Y1k9SGMoaUg3cHB4eGRXQGskO3kKenZAZGVKP2xTZzReVWJod3dmUHpDcWM3NVNTK0Fmdks4Vzh3
ISYhUnhuKEB6TmRka0hrTEM2MDBYT157SnptQks0CnptYT8qb3lkc2hBTVJ8RiYxUWApTFpmeF83
R1hgdT9ASlglTDVgRkQ/X3lZQzZyWmUtaHdxejJYcDN+JTtxNHc5Ywp6RWw8I3I+KlVMMCs3ZWxo
XjZIRzFEPjQ/elJ+ZGExOTUzMGokaGtKKzhSeWskVUtnKHd0V3dUJT85KkR4IXtpWnQKekhsdUgp
bG5HfDkldm9TQT1jdVI2ZzMzYEJJS095T1IoUnVhUGYoc2BgTno/QFFjNGg9REBPJj5gTWtFd2l7
Wl57CnomM2gxY3goV0t7Q093PFNJUT0wMGw4bGprLSN5WU13WUxqOE1ySSUyXlQhISZeU0ghMDdk
NipyQmM7LVI8JnVMJQp6JHchU1N6ZGtfXjwoUWUwMUdBZyomOz9xJktxLT1Bek9OOyslVik5YXtS
ekQpdktNJDdOVHo/KG1AfU0xd0Rzck4Keis/dE5qKzhuS3dzMVF2bnJCPzFIPnZ5cHJXNHc0PDs3
cD0qay10UF80fTMpNWYyQyhsZHhfYkM/d01sKlA0Z3taCnppSzdMXnVsLUl3TV8lNighWnxfTkdR
O0x9cl5vT3BCXjwmcnpJe0UrPXZePH13dDghMGhIPTw9JXJYOEJhK3hQZgp6e3NIRTh1clUrI15F
fHlGU3Z4fSNqfExrI3NsNig5MVY2JGdLN3grKmVwITl8akl3M01CKDBGJlpJekxeUVR9Wl8KZTt2
KUJ8T1dYXzNGPWl3S3tDKThYKT9jeTNBQWpGSj09ZUE5QVkrZEoKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410269</attachid>
            <date>2020-10-01 14:15:50 -0700</date>
            <delta_ts>2020-10-01 16:42:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206118-20201001141549.patch</filename>
            <type>text/plain</type>
            <size>38618</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNzkzNGNmOGVjYTQ4
OWQ5MDAwM2FjYzc2NDlhNTJkNGNjNDlhMi4uNzBlMTcwNmRjNzEwNjg4NGIxMjljNWVkZGM1NTBl
MDUyZDE2YjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHNpbXBseSBzZXJpYWxpemVzIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBGb250IGFu
ZCBGb250UGxhdGZvcm1EYXRhLgorCisgICAgICAgIFNlcmlhbGl6aW5nIGEgQ1RGb250IGludm9s
dmVzIHNlcmlhbGl6aW5nIGl0cyBmb250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzLiBIb3dldmVy
LAorICAgICAgICB0aGVyZSdzIGFuIGV4dHJhIHN0ZXAgZm9yIHdlYiBmb250cywgc2luY2UgdGhl
IGZvbnQgZGVzY3JpcHRvcidzIGF0dHJpYnV0ZXMgZG9uJ3QgaW5jbHVkZQorICAgICAgICB0aGUg
cmF3IGJ5dGVzIG9mIHRoZSBmb250IGZpbGUuIFRoaXMgd2FzIHByZXZpb3VzbHkgYmVpbmcgc2F2
ZWQgaW4gRm9udCwgYnV0IHRoaXMgcGF0Y2gKKyAgICAgICAgbW92ZXMgdGhhdCBpbnRvIEZvbnRQ
bGF0Zm9ybURhdGEgYmVjYXVzZSBvZiBsYXllcmluZywgYW5kIGFkZHMgdGhlIFNoYXJlZEJ1ZmZl
ciB0byB0aGUKKyAgICAgICAgc2VyaWFsaXphdGlvbiByb3V0aW5lIGZvciB3ZWIgZm9udHMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5o
dG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
Ojpmb250KTogRm9udHMgYW5kIEZvbnRQbGF0Zm9ybURhdGFzIGFyZSBzdXBwb3NlZCB0byBiZSBp
bW11dGFibGUsIHNvCisgICAgICAgIGhhdmluZyBhIHNldHRlciBmb3IgdGhlIEZvbnRGYWNlRGF0
YSBpcyBpbmNvcnJlY3QuIFRoaXMgb2JqZWN0IGlzIG1vdmVkIGludG8gdGhlIGNvbnN0cnVjdG9y
CisgICAgICAgIGluc3RlYWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjpmb250KTogRGVsZXRpbmcgZGVh
ZCBjb2RlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpmb250RmFjZURh
dGEgY29uc3QpOiBEZWxldGVkLiBNb3ZlZCB0byBGb250UGxhdGZvcm1EYXRhCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpjcmVhdGlvbkRhdGEgY29uc3QpOiBNb3ZlZCBmcm9tIEZvbnQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIGlzIGEgc3RydWN0LCBzbworICAgICAg
ICB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoZSBtXyBwcmVmaXhlcy4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogRGl0dG8uCisKIDIw
MjAtMDktMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCBmb3IgbXVsdGlwbGUgbGF5b3V0IHRlc3RzIGluIGFjY2Vzc2liaWxpdHkgaXNvbGF0
ZWQgdHJlZSBtb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTVmZGQwMzAxOGZhYWZmMmM3ZTVkYzZjNTVlNzVl
ODM5YmVlMmVmLi42Mjc3YjkwZWVlMjMzZjk4MDEzNWExZWRlZjMyNzA4NWRlNDgwZWM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdp
bmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgc2VyaWFsaXplIGFuZCBkZXNl
cmlhbGl6ZSBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQgUGxhdGZvcm1Gb250
RGF0YS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0
Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKwogMjAyMC0wOS0zMCAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleGVtcHQgQVBJ
OjpTaGFyZWRKU0NvbnRleHQgZnJvbSByZW1vdGUgaW5zcGVjdGlvbiBhbmQgYXV0b21hdGljIGlu
c3BlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNDY1N2IwN2EzNjVmMGUzMzNlOTAzYzRmZTEwYjI5YTNiZGZiZDM0Li4w
Mzg5OWRjZDJlY2I1MzdjZTY4NGZiZWNmMmZjMWZjMmFiNDljZjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjU2LDcgKzM2
NTYsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENF
RjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5
cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFGMkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsg
fTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAw
NEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJCMUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50
ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9OwogCQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyog
QmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQw
MEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTc1
OTcsNiArMTc1OTcsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKKwkJCQk2RkUxOTgxMzIxNzgz
OTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAorCQkJCTZGRTE5ODE1
MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZGN0NB
M0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgg
Ki8sCiAJCQkJNkYzNUVGQUYyMTg3Q0JENTAwNDRFMEY0IC8qIElubGluZUZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwICovLApAQCAtMTc2MDksOCArMTc2MTEsNiBAQAogCQkJCTZGMENENjk0
MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi8sCiAJCQkJNkY2OUE3OTkyNEQ2RkFC
ODAwRTZCODVEIC8qIElubGluZUxpbmVCb3guY3BwICovLAogCQkJCTZGQjI0MDAzMjNERkYxMjcw
MDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCi0JCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2
RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKLQkJCQk2RkUxOTgxNTIxNzgzOTdD
MDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjI1QjIwMDIyMEE4
NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJCTZGMjZFQjQ2MjM0
MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJCTZGOTE0MjBGMjUx
NTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLywKQEAgLTMxODQ5LDYgKzMx
ODQ5LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGlu
ZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElu
bGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5N0Mw
MDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU3
Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4NTcsNyArMzE4NTgsNiBAQAogCQkJCUJD
RTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggaW4g
SGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVu
dEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAv
KiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1MjEz
ODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZD
M0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggNjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3
NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNkYzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC02NzgsMTEgKzY3OCw4IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKEZv
bnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRp
b24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2luOjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0
aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTRm9udEZh
Y2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9
IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0
YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpIHsK
LSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250ID0gc291cmNlLT5jYWNoZWRGb250KCk7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250RmFjZURhdGEoY2FjaGVkRm9udCA/IGNh
Y2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFi
aWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0
dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJmMmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4
OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRhNzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcApAQCAtMjEyLDkgKzIxMiw2IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFtX2luRG9jdW1lbnRDdXN0b21QbGF0Zm9y
bURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBGb250OjpjcmVhdGUo
bV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKLQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIENTU0Zv
bnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggYjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3
YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYyYjk4YWZkZjU4YjEwMzg0MGRhZmY0N2Nm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5
ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5leGlzdGluZ01ldHJpY3NGb3JHbHlwaChn
bHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9udEZhY2VEYXRhID0gV1RGTW92ZShmb250
RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2JjMDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0
MzUyYmYwYzU0MS4uYTRiOGZkNzY3NDJmZTUyM2U3M2QwNzFlYjNjNDE5NzM0MmIyMzIzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMjIzLDkgKzIyMyw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNr
KGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50KTsKICNlbmRpZgogCi0g
ICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRGYWNl
RGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnQoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFsLCBWaXNpYmlsaXR5LCBPcmllbnRhdGlv
bkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBT
Q1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiAjZW5kaWYKIAot
ICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZhY2VEYXRhOwotCiAgICAgR2x5cGggbV9z
cGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb0dseXBoIHsgMCB9OwogICAgIEdseXBo
IG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAgLTMyNyw2ICszMjIsOCBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdW5zaWduZWQgbV9zaG91bGROb3RCZVVz
ZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVk
IGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNw
cAppbmRleCAwYWE1MTc1ZWUwNWE2YTQxYWRjNGMyZjMxNjAyNzk5ZGZmYTY2ZDA2Li5mMGFlZGEx
YjY0MGM0ZTU1NTNlMGJkNTA2YTlkYzkzNmZlYWQ1NGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNDYsNyAr
NDYsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVu
ZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSwgQ3JlYXRpb25EYXRhKiBjcmVhdGlvbkRhdGEp
CiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAg
ICAgLCBtX3dpZHRoVmFyaWFudCh3aWR0aFZhcmlhbnQpCkBAIC01NCw2ICs1NCw4IEBAIEZvbnRQ
bGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkK
ICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShzeW50aGV0aWNPYmxpcXVlKQogeworICAgIGlmIChj
cmVhdGlvbkRhdGEpCisgICAgICAgIG1fY3JlYXRpb25EYXRhID0gKmNyZWF0aW9uRGF0YTsKIH0K
IAogI2lmICFVU0UoRlJFRVRZUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggMThmMjMxYWVjMzAxNmRkY2ZjZWJmOWM0
ZTcwNjIxZTdjNzc4N2IzYy4uZDc0MGIzZjBiOWZhZDU4MmVlZjExNzcxOGVjYzk0MGJiN2ViZjZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaApAQCAtMjQsMTEgKzI0LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLQogI2lmIFBMQVRGT1JN
KFdJTikKICNpbmNsdWRlICJDT01QdHIuaCIKICNpbmNsdWRlICJTaGFyZWRHRElPYmplY3QuaCIK
QEAgLTc3LDEzICs3NywxNSBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBGb250UGxhdGZv
cm1EYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdHJ1
Y3QgQ3JlYXRpb25EYXRhOworCiAgICAgRm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVR5cGUpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09i
bGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRhbCwgRm9u
dFdpZHRoVmFyaWFudCA9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRl
cmluZ01vZGUgPSBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcpOworICAgIEZv
bnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEZvbnRPcmllbnRhdGlvbjo6SG9yaXpvbnRh
bCwgRm9udFdpZHRoVmFyaWFudCA9IEZvbnRXaWR0aFZhcmlhbnQ6OlJlZ3VsYXJXaWR0aCwgVGV4
dFJlbmRlcmluZ01vZGUgPSBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcsIENy
ZWF0aW9uRGF0YSogPSBudWxscHRyKTsKIAogI2lmIFVTRShDT1JFX1RFWFQpCi0gICAgV0VCQ09S
RV9FWFBPUlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3lu
dGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9y
aWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50
ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRl
eHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZyk7CisgICAgV0VCQ09SRV9FWFBPUlQg
Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9s
ZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9u
ID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdp
ZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJp
bmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShXSU4pCkBAIC0xOTksNiArMjAxLDE2IEBAIHB1YmxpYzoKIAog
ICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCisgICAgc3RydWN0IENyZWF0aW9uRGF0
YSB7CisgICAgICAgIFJlZjxTaGFyZWRCdWZmZXI+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgU3Ry
aW5nIGl0ZW1JbkNvbGxlY3Rpb247CisgICAgfTsKKworICAgIGNvbnN0IE9wdGlvbmFsPENyZWF0
aW9uRGF0YT4mIGNyZWF0aW9uRGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9j
cmVhdGlvbkRhdGE7CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc0VxdWFs
KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKSBjb25zdDsKIApAQCAtMjQ1LDYgKzI1Nyw4IEBAIHBy
aXZhdGU6CiAgICAgRm9udFdpZHRoVmFyaWFudCBtX3dpZHRoVmFyaWFudCB7IEZvbnRXaWR0aFZh
cmlhbnQ6OlJlZ3VsYXJXaWR0aCB9OwogICAgIFRleHRSZW5kZXJpbmdNb2RlIG1fdGV4dFJlbmRl
cmluZ01vZGUgeyBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmcgfTsKIAorICAg
IE9wdGlvbmFsPENyZWF0aW9uRGF0YT4gbV9jcmVhdGlvbkRhdGE7CisKICAgICBib29sIG1fc3lu
dGhldGljQm9sZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N5bnRoZXRpY09ibGlxdWUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc0NvbG9yQml0bWFwRm9udCB7IGZhbHNlIH07CkBAIC0yNjQsNiAr
Mjc4LDggQEAgcHJpdmF0ZToKICNpZiBVU0UoRlJFRVRZUEUpCiAgICAgYm9vbCBtX2ZpeGVkV2lk
dGggeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGlu
Zm9ybWF0aW9uIHRvIEZvbnRQbGF0Zm9ybURhdGEgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4g
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EuY3BwLgogfTsKIAogI2lmIFVTRShDT1JFX1RFWFQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9G
b250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAppbmRleCBkY2M3OWFk
OGNhODVmNGY3NDI4M2JiYWZmMWQ1OTM3ZTUyNDYwN2FiLi4yNjJlOTNjYWE1ZmMxZGMzNDIxM2Y1
YjNkYmY5ZDQxMGQwYmQwOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3Jl
VGV4dC5jcHAKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Gb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXpl
LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0
aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRl
cmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCi0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUs
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlh
bnQsIHRleHRSZW5kZXJpbmdNb2RlKQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0
YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFy
aWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBD
cmVhdGlvbkRhdGEqIGNyZWF0aW9uRGF0YSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwg
c3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgdGV4dFJlbmRlcmluZ01vZGUsIGNyZWF0aW9uRGF0YSkKIHsKICAgICBBU1NFUlRfQVJHKGZv
bnQsIGZvbnQpOwogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAppbmRleCBhMjJlODIyNjlkYmQ0YzAzMzVlNWVmYjMzZjc5MzUzMjFkZWQyMjRhLi5kNDMxYjJj
MDgyMzEzN2YwN2ZhNTZlNmJkYWZmMTkzMzIxY2U2ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiB7CiAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRyaWJ1dGVzRm9yV2Vi
Rm9udHMoYXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKCkpOwotICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0
Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlw
dG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgYXV0byBtb2RpZmllZEZvbnREZXNj
cmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVz
KGZvbnREZXNjcmlwdG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CiAgICAgQVNTRVJUKG1v
ZGlmaWVkRm9udERlc2NyaXB0b3IpOwogCiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24u
Y29tcHV0ZWRQaXhlbFNpemUoKTsKQEAgLTQ4LDcgKzQ4LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYKICAgICBhdXRvIGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3Jp
cHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAg
Zm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAm
Zm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwogICAgIEFTU0VSVChmb250
KTsKLSAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBp
dGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVu
ZGVyaW5nTW9kZSgpKTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBz
aXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlw
dGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpLCAmY3JlYXRpb25EYXRhKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoU2hhcmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IFN0cmluZyYgaXRlbUluQ29sbGVjdGlvbikK
QEAgLTg1LDcgKzg1LDggQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+
IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmUKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0
Zm9ybURhdGE+KGZvbnREZXNjcmlwdG9yLmdldCgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhOjpD
cmVhdGlvbkRhdGEgY3JlYXRpb25EYXRhID0geyBidWZmZXIsIGl0ZW1JbkNvbGxlY3Rpb24gfTsK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihmb250RGVzY3Jp
cHRvci5nZXQoKSwgV1RGTW92ZShjcmVhdGlvbkRhdGEpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IDYwNzhlMjVmYTFkODJiY2VjOWI0Y2M3YmM3MmU1ZTdm
MjhlYTcwYWUuLmQ3YjY0MjRlODQ5OWUxMjU3NzY3NDMwYTE0MzY4ZjllZjAwNjVlNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtMjEsMTkgKzIxLDIwIEBACiAjaWZuZGVmIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAor
I2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KIAorCiB0eXBlZGVmIHN0cnVjdCBDR0ZvbnQqIENHRm9udFJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IF9fQ1RGb250RGVzY3JpcHRvciogQ1RGb250RGVzY3JpcHRvclJlZjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250RGVzY3JpcHRpb247Ci1jbGFzcyBGb250UGxhdGZv
cm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXM7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7CiAKQEAgLTQzLDIxICs0NCwyMyBAQCB0eXBlZGVmIEZvbnRUYWdnZWRT
ZXR0aW5nczxpbnQ+IEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udEN1c3RvbVBsYXRmb3JtRGF0
YSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvcikKLSAg
ICAgICAgOiBtX2ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yKQorICAgIGV4cGxpY2l0IEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoQ1RGb250RGVzY3JpcHRvclJlZiBmb250RGVzY3JpcHRvciwg
Rm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhJiYgY3JlYXRpb25EYXRhKQorICAgICAgICA6
IGZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yKQorICAgICAgICAsIGNyZWF0aW9uRGF0YShX
VEZNb3ZlKGNyZWF0aW9uRGF0YSkpCiAgICAgewogICAgIH0KIAotICAgIH5Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVz
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IG1f
Zm9udERlc2NyaXB0b3I7CisgICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZvbnRE
ZXNjcmlwdG9yOworICAgIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRh
dGE7CiB9OwogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRl
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmKTsKK1dF
QkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVh
dGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOwog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1
bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggNmRlNWRjYzE0NjY0YzFkZTYyNjM3YzZmN2QxNzZi
YTgxMjA2MjZkOS4uNjE0MmJjNWEzYmY1NGZjNTRiNjNmN2YwYTEzNDQ3M2EwNGYxMGY1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ29jb2EubW0KQEAgLTI2LDEyICsyNiwxOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAorI2ltcG9ydCAiQXJndW1lbnRDb2Rl
cnNDRi5oIgogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgotI2ltcG9ydCAiQ29jb2FG
b250LmgiCisjaW1wb3J0IDxDb3JlVGV4dC9Db3JlVGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
dHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8u
aD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmli
dXRlcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg+CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCA8VUlLaXQvVUlGb250Lmg+CisjZW5kaWYK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCkBAIC0z
OSwxMCArNDUsNiBAQAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2ltcG9ydCA8VUlLaXQvVUlGb250Lmg+
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNTA5LDI2ICs1MTEsMTEzIEBAIE9wdGlvbmFsPEZvbnRBdHRyaWJ1dGVzPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzPjo6ZGVjb2RlUGxhdGZvcm1ECiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+JiBmb250KQogewotICAgIGF1dG8gY3RGb250ID0g
IWZvbnQtPmZvbnRGYWNlRGF0YSgpID8gZm9udC0+Z2V0Q1RGb250KCkgOiBuaWw7Ci0gICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihjdEZvbnQpOwotICAgIGlmIChjdEZvbnQpCi0gICAg
ICAgIGVuY29kZXIgPDwgKF9fYnJpZGdlIENvY29hRm9udCAqKWN0Rm9udDsKKyAgICBjb25zdCBh
dXRvJiBwbGF0Zm9ybURhdGEgPSBmb250LT5wbGF0Zm9ybURhdGEoKTsKKyAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHBsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpKTsKKyAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHBsYXRmb3JtRGF0YS53aWR0aFZhcmlhbnQo
KSk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50OF90PihwbGF0Zm9ybURhdGEudGV4
dFJlbmRlcmluZ01vZGUoKSk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc2l6ZSgpOwor
ICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKTsKKyAgICBlbmNvZGVy
IDw8IHBsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCk7CisKKyAgICBhdXRvIGN0Rm9udCA9
IHBsYXRmb3JtRGF0YS5mb250KCk7CisgICAgYXV0byBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0Yo
Q1RGb250Q29weUZvbnREZXNjcmlwdG9yKGN0Rm9udCkpOworICAgIGF1dG8gYXR0cmlidXRlcyA9
IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGVzKGZvbnREZXNjcmlwdG9yLmdl
dCgpKSk7CisgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgYXR0cmlidXRlcy5nZXQoKSk7CisKKyAg
ICBjb25zdCBhdXRvJiBjcmVhdGlvbkRhdGEgPSBwbGF0Zm9ybURhdGEuY3JlYXRpb25EYXRhKCk7
CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihjcmVhdGlvbkRhdGEpOworICAgIGlm
IChjcmVhdGlvbkRhdGEpIHsKKyAgICAgICAgZW5jb2RlciA8PCBjcmVhdGlvbkRhdGEtPmZvbnRG
YWNlRGF0YTsKKyAgICAgICAgZW5jb2RlciA8PCBjcmVhdGlvbkRhdGEtPml0ZW1JbkNvbGxlY3Rp
b247CisgICAgfQogfQogCi1PcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZv
bnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIE9wdGlvbmFsPFJlZjxX
ZWJDb3JlOjpGb250Pj4mJiBleGlzdGluZ0ZvbnQpCitPcHRpb25hbDxGb250UGxhdGZvcm1EYXRh
PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBk
ZWNvZGVyKQogewotICAgIGJvb2wgaGFzUGxhdGZvcm1Gb250OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFzUGxhdGZvcm1Gb250KSkKKyAgICBPcHRpb25hbDx1aW50OF90PiBvcmllbnRhdGlv
bjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICghb3JpZW50YXRpb24uaGFz
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPHVp
bnQ4X3Q+IHdpZHRoVmFyaWFudDsKKyAgICBkZWNvZGVyID4+IHdpZHRoVmFyaWFudDsKKyAgICBp
ZiAoIXdpZHRoVmFyaWFudC5oYXNWYWx1ZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogCi0gICAgaWYgKCFoYXNQbGF0Zm9ybUZvbnQpCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGV4
aXN0aW5nRm9udCk7CisgICAgT3B0aW9uYWw8dWludDhfdD4gdGV4dFJlbmRlcmluZ01vZGU7Cisg
ICAgZGVjb2RlciA+PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdN
b2RlLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhh
c1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBp
ZiAoIXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+
PiBzeW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlv
bmFyeVJlZj4gYXR0cmlidXRlczsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJp
YnV0ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9v
bD4gaW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9u
RGF0YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3JlYXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBSZXRhaW5QdHI8Q29jb2FGb250PiBmb250Owot
ICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZm9udCkpCisgICAgaWYgKGluY2x1ZGVzQ3Jl
YXRpb25EYXRhLnZhbHVlKCkpIHsKKyAgICAgICAgT3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+
IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgZGVjb2RlciA+PiBmb250RmFjZURhdGE7CisgICAgICAg
IGlmICghZm9udEZhY2VEYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4gaXRlbUluQ29sbGVjdGlvbjsKKyAg
ICAgICAgZGVjb2RlciA+PiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAgICBpZiAoIWl0ZW1JbkNv
bGxlY3Rpb24uaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgYXV0byBmb250Q3VzdG9tUGxhdGZvcm1EYXRhID0gY3JlYXRlRm9udEN1c3RvbVBs
YXRmb3JtRGF0YShmb250RmFjZURhdGEudmFsdWUoKSwgaXRlbUluQ29sbGVjdGlvbi52YWx1ZSgp
KTsKKyAgICAgICAgaWYgKCFmb250Q3VzdG9tUGxhdGZvcm1EYXRhKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBiYXNlRm9udERlc2NyaXB0b3IgPSBmb250
Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250RGVzY3JpcHRvci5nZXQoKTsKKyAgICAgICAgaWYgKCFi
YXNlRm9udERlc2NyaXB0b3IpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
ICAgICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRl
Q29weVdpdGhBdHRyaWJ1dGVzKGJhc2VGb250RGVzY3JpcHRvciwgYXR0cmlidXRlcy5nZXQoKSkp
OworICAgICAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNj
cmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51bGxwdHIpKTsKKwor
ICAgICAgICBhdXRvIGNyZWF0aW9uRGF0YSA9IEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0
YSB7IGZvbnRGYWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkgfTsKKyAg
ICAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoCisgICAgICAgICAgICBjdEZvbnQuZ2V0KCks
CisgICAgICAgICAgICBzaXplLnZhbHVlKCksCisgICAgICAgICAgICBzeW50aGV0aWNCb2xkLnZh
bHVlKCksCisgICAgICAgICAgICBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksCisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxGb250T3JpZW50YXRpb24+KG9yaWVudGF0aW9uLnZhbHVlKCkpLAorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8Rm9udFdpZHRoVmFyaWFudD4od2lkdGhWYXJpYW50LnZhbHVl
KCkpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VGV4dFJlbmRlcmluZ01vZGU+KHRleHRSZW5k
ZXJpbmdNb2RlLnZhbHVlKCkpLAorICAgICAgICAgICAgJmNyZWF0aW9uRGF0YSk7CisgICAgfQor
CisgICAgYXV0byBmb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0
ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBpZiAoIWZvbnREZXNjcmlw
dG9yKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZSh7IChfX2JyaWRnZSBDVEZvbnRSZWYpZm9udC5nZXQoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KFtmb250IHBvaW50U2l6ZV0pIH0pOworICAgIGF1dG8gY3RGb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUudmFsdWUo
KSwgbnVsbHB0cikpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKAorICAgICAgICBjdEZv
bnQuZ2V0KCksCisgICAgICAgIHNpemUudmFsdWUoKSwKKyAgICAgICAgc3ludGhldGljQm9sZC52
YWx1ZSgpLAorICAgICAgICBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksCisgICAgICAgIHN0YXRp
Y19jYXN0PEZvbnRPcmllbnRhdGlvbj4ob3JpZW50YXRpb24udmFsdWUoKSksCisgICAgICAgIHN0
YXRpY19jYXN0PEZvbnRXaWR0aFZhcmlhbnQ+KHdpZHRoVmFyaWFudC52YWx1ZSgpKSwKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8VGV4dFJlbmRlcmluZ01vZGU+KHRleHRSZW5kZXJpbmdNb2RlLnZhbHVl
KCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzMjQ2ZDI4NzRiYTI5OTE2NjU0ZGE4YmU4
OWMzM2M1NTU5YWYwNzQ1Li40MTMzMmY5ZDNkODkyNjM3ZDZhODZmZjBjMWJjMjQxZTQyNjAxYTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
QEAgLTExODIsNTYgKzExODIsNDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFu
ZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBB
cmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9u
dC0+Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250
RmFjZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVk
QnVmZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250
LT5wbGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAg
ICAgZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBk
YXRhLnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDx1aW50OF90Pihmb250LT5vcmlnaW4oKSk7CisgICAgZW5jb2RlciA8PCBmb250LT5pc0ludGVy
c3RpdGlhbCgpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDhfdD4oZm9udC0+dmlz
aWJpbGl0eSgpKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPmlzVGV4dE9yaWVudGF0aW9uRmFsbGJh
Y2soKTsKKyAgICAvLyBJbnRlbnRpb25hbGx5IGRvbid0IGVuY29kZSBtX2lzQnJva2VuSWRlb2dy
YXBoRmFsbGJhY2sgYmVjYXVzZSBpdCBkb2Vzbid0IGFmZmVjdCBkcmF3R2x5cGhzKCkuCiAKICAg
ICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgZm9udCk7CiB9CiAKIE9wdGlvbmFsPFJlZjxG
b250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBPcHRpb25hbDxib29sPiBoYXNGb250RmFjZURhdGE7Ci0gICAgZGVjb2RlciA+PiBo
YXNGb250RmFjZURhdGE7Ci0gICAgaWYgKCFoYXNGb250RmFjZURhdGEuaGFzVmFsdWUoKSkKKyAg
ICBPcHRpb25hbDx1aW50OF90PiBvcmlnaW47CisgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAg
aWYgKCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVzdWx0OwotICAgIGlmIChoYXNGb250
RmFjZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBmb250RmFj
ZURhdGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGZvbnRGYWNl
RGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmICgh
Zm9udEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAg
ICBPcHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7
Ci0gICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIE9wdGlvbmFsPGJvb2w+IGlzSW50ZXJzdGl0aWFsOworICAgIGRlY29kZXIgPj4gaXNJ
bnRlcnN0aXRpYWw7CisgICAgaWYgKCFpc0ludGVyc3RpdGlhbC5oYXNWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRp
Y0JvbGQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKLSAgICAgICAgaWYgKCFz
eW50aGV0aWNCb2xkKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRp
b25hbDx1aW50OF90PiB2aXNpYmlsaXR5OworICAgIGRlY29kZXIgPj4gdmlzaWJpbGl0eTsKKyAg
ICBpZiAoIXZpc2liaWxpdHkuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgICAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAgIGRl
Y29kZXIgPj4gc3ludGhldGljSXRhbGljOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0l0YWxpYykK
LSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gaXNU
ZXh0T3JpZW50YXRpb25GYWxsYmFjazsKKyAgICBkZWNvZGVyID4+IGlzVGV4dE9yaWVudGF0aW9u
RmFsbGJhY2s7CisgICAgaWYgKCFpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLmhhc1ZhbHVlKCkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgRm9udERlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uOwotICAgICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoKmZvbnRT
aXplKTsKLSAgICAgICAgcmVzdWx0ID0gRm9udDo6Y3JlYXRlKGZvbnRGYWNlRGF0YS5yZWxlYXNl
Tm9uTnVsbCgpLCBGb250OjpPcmlnaW46OlJlbW90ZSwgKmZvbnRTaXplLCAqc3ludGhldGljQm9s
ZCwgKnN5bnRoZXRpY0l0YWxpYyk7Ci0gICAgfQorICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gZGVj
b2RlUGxhdGZvcm1EYXRhKGRlY29kZXIpOworICAgIGlmICghcGxhdGZvcm1EYXRhLmhhc1ZhbHVl
KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gZGVjb2RlUGxh
dGZvcm1EYXRhKGRlY29kZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZSgKKyAgICAgICAgcGxhdGZvcm1EYXRhLnZhbHVlKCksCisgICAgICAgIHN0YXRpY19jYXN0
PEZvbnQ6Ok9yaWdpbj4ob3JpZ2luLnZhbHVlKCkpLAorICAgICAgICBpc0ludGVyc3RpdGlhbC52
YWx1ZSgpID8gRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5v
LAorICAgICAgICBzdGF0aWNfY2FzdDxGb250OjpWaXNpYmlsaXR5Pih2aXNpYmlsaXR5LnZhbHVl
KCkpLAorICAgICAgICBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLnZhbHVlKCkgPyBGb250OjpP
cmllbnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpObyk7
CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDI4NjIxOWMwNjVkN2ZmOWZhMDQzZmFhZjFjMmU3MzdiNGE2
YTE0NzAuLmQwN2Q0YWUzYTNkNjY4NDdiYWEwODczMDE1NDZmNWNkNDM0OGRkZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC05NSw2ICs5NSw3
IEBAIGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhl
ZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CitjbGFzcyBGb250UGxh
dGZvcm1EYXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEltYWdlSGFuZGxlOwogY2xh
c3MgSW50UG9pbnQ7CkBAIC00MTEsNyArNDEyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxSZWY8V2ViQ29yZTo6Rm9udD4+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFJlZjxXZWJDb3JlOjpGb250PiYpOwogICAgIHN0YXRpYyBPcHRpb25hbDxS
ZWY8V2ViQ29yZTo6Rm9udD4+IGRlY29kZShEZWNvZGVyJik7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKLSAg
ICBzdGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGVQbGF0Zm9ybURhdGEo
RGVjb2RlciYsIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJik7CisgICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE+IGRlY29kZVBsYXRmb3JtRGF0YShEZWNv
ZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Oklt
YWdlSGFuZGxlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNv
cmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAppbmRleCBlYmI5ZGJhYjM4YWZkMGRkY2YzNjU1YWNi
OTgzZGQxYTc1Yjk2ZDJjLi5kODE3YTc4ZDRmOWY3NmFiN2RlN2M1MTg0ZmIzYWQ3MzU0ZmZmMGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVmPEZvbnQ+Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBSZWY8Rm9udD4m
KQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1PcHRpb25hbDxSZWY8Rm9udD4+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBPcHRp
b25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYpCitPcHRpb25hbDxGb250UGxhdGZvcm1EYXRhPiBB
cmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJikKIHsK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
U291cC5jcHAKaW5kZXggMmQyNmQzZjUyOTQ4N2EwMDdjZGY2NDkxMTliODQ5ZjY1NTgyNTE0MC4u
MWQ4NGUyZmUyNjhmMzQ2MGViMjk3NWM0MmJhOTVkMTRmMWQyMzVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3Bw
CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29k
ZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPEZvbnQ+JikKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KIAotT3B0aW9uYWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxG
b250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6
OkZvbnQ+PiYmKQorT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8
Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YmYyZjFjZmVlMzBl
ODZiYjA0ZGYyOWFmZDQxMzhiNmE0YzNlMWFkLi5hNmZlNzhkMjI0NzUyNmZjNDA3OTY4NTQ2NzIy
ODUxMTA1YjVjMDZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMzAgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IFN1cHBvcnQgZHJhd2luZyB0ZXh0IGluIDJEIGNhbnZhcyB3aXRoIGZvbnQgZmVhdHVyZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjExOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52
YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3Jlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0
ZjogQWRkZWQuCisKIDIwMjAtMDktMzAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlLWFsaWduIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsLCBH
bG9iYWxFdmVudEhhbmRsZXJzLmlkbCBhbmQgV2luZG93RXZlbnRIYW5kbGVycy5pZGwgd2l0aCB0
aGUgSFRNTCBzcGVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRl
eHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2VkMGYyNjk5ZGRkMzVkNzFjZDM1MWIyMDgwZTRlODM3NDUwOTc4MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVy
ZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogIlNwZWNp
YWxGb250IjsKKyAgICBzcmM6IHVybCgicmVzb3VyY2VzL0ZvbnRXaXRoRmVhdHVyZXMudHRmIikg
Zm9ybWF0KCJ0cnVldHlwZSIpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+WW91
IHNob3VsZCBzZWUgYSByb3cgb2YgMyBjaGVjayBtYXJrcyBmb2xsb3dlZCBieSBhIHJvdyBvZiAz
IGNyb3NzZXMgYmVsb3cuPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9j
YW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9hZCgiODBweCBTcGVjaWFsRm9udCIp
OworICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKS5n
ZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IFNwZWNpYWxGb250IjsK
KyAgICBjb250ZXh0LmZpbGxUZXh0KCJiYmIiLCAxMDAsIDEwMCk7CisgICAgY29udGV4dC5maWxs
VGV4dCgiYWFhIiwgMTAwLCAyMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgt
Zm9udC1mZWF0dXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdp
dGgtZm9udC1mZWF0dXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MTA3YjIyOWJjNWE5YmE0NDNjNTEz
YTZhYTllYTdmZGVmNTgwNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9G
b250V2l0aEZlYXR1cmVzLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKKyAgICBmb250LWZlYXR1
cmUtc2V0dGluZ3M6ICJ0aXRsIiAxOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+
WW91IHNob3VsZCBzZWUgYSByb3cgb2YgMyBjaGVjayBtYXJrcyBmb2xsb3dlZCBieSBhIHJvdyBv
ZiAzIGNyb3NzZXMgYmVsb3cuPC9wPgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+
PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9hZCgiODBweCBTcGVjaWFsRm9u
dCIpOworICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMi
KS5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IFNwZWNpYWxGb250
IjsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAsIDEwMCk7CisgICAgY29udGV4dC5m
aWxsVGV4dCgiY2NjIiwgMTAwLCAyMDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL0Zv
bnRXaXRoRmVhdHVyZXMudHRmIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL0Zv
bnRXaXRoRmVhdHVyZXMudHRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyYzMzMmExM2NjMTAyOTM5NTZiOTg4NjZm
NzIzMGJlN2I1ZGY5MWUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMzI0CnpjbWVITlUxKGcj
NzUtLWJ3SlNAcXslcCYjeXB8PGRTPSpBbG1TeCElIWdkdG4jQk85UHJEQGFCdlgpa28+eUA+WQp6
V256YXNxITd8bGBrO3I8bWVQaGkxWDVaYE85JjJ4d2lIcj1UMXA3aVhgTkR2cHxudXdMbSU4aWdS
QVgjPUZZNykKeitMM2NkREhPYHk8P1FgdD93Sz5eb0g9TGk/endrcUBwPk0kY24pRWw5R35kVnAx
dTMmTzh8YUZueDJ9Xjc0Y3JeCnpoa3pQamB3S0pxKyowKF9pJCU3LU8pQVY1WnFCVXF6VntYb1A1
PSFwYk5TcUt6SCNpSUt2U0NoTHYhcCUlO0c1OQp6cEpLYWZaaHE7O1pLUGdjYCZxVmM3WiM+K1B+
U2ZXRyskdSomVjI0aDVtJClOKCN4Oyh7S0RkbSM0bVE3WDhTQnEKemQtN14tS0w3c257cjctOVVq
Z2MjRWlQUEpxVFcwUEJFcFlRMW5NNTUoJktoYW87JkBkajN8e1ROTVZMaGxeWDhICnpyNiZYdFBV
JkhVT0M9KGlRSys1WWlzdnombGUlNVlaJE5hSEJTYm55ZFdzfWBJbnB6dm9mTyFeYkJ0JDJ1Qlkm
Zgp6bVV7fWhRbU9SMigjeDhnNEVrSXJmUUxkMnpoNVUlPStkKDk1R09nYXNDVn17czRlSyRkaXst
ZkRgeVpMPy1Ncj4KelE1VGdVLWhuMks4O0lNe0IwT3E0QG9zNyh4UWxvJVFXXzVzPz9hdHZwKy1t
dCY8dUorb24oSk1TfmJzU2lJMzZ+CnohWlN4WWZzaEtKUVBFY19mK2lKM004eXpRYVd0ejBUMnV8
c2VkSjVnajlOXm9JYFk+T0g7e2luK2x8QzY/QXUxJQp6T3gjTW1vd3lCa1lBNFVURDZmTyhHX1VR
VW9LRTV7OyU/I3w7JEhHVSNDQz4hMmlZRUFgdyhTayoqPVZ2OHN4UGoKejxRP0wqVlBlTGZJIT5N
dVRDanFaYTV8aDhlPTBmSGZlLWB0VSpFLXdJckVCVXlBfUV8OXA8clYjdzxRaSVnQztkCnp1SEkk
QFc9az0oVHpZNDlsczszKUF7KUxIelFydV8yV2F0MS1QMSNnbnpndUVFV00rYVNCdUUxPHhvIyRw
VH1Eagp6U01eO3JQfVZZfm5pVkQ9eWk7e1lzY3hVVmVeaiVnbmljWjxxeHokd3s4dj5xRTI+I2gm
NUhIZ0xOek9AU3k5YzMKejRZR24yNmpuQmJ7YEF7LS19cnB9JGxwVU9ZdUp2NkYyaEpvTTMyemxR
Yl5GWEJ6OXsyO2VraWt3XysmRV5aeH1JCno2Wmk0VihnfEtBe2V5MEpnIUNmbWsxVk5WTm5hd3Al
UUQoLShwQXo9PXBvaWVCQSszQmtIaXtjXmVwS2NxKDhHJQp6IytwcytkRDU/ZWNxaSRMcUBNd2Fk
ZVl9ZUtPbyUpWVItfHFNZndZbjk0Mzk0XmN4Xz5gY1BfI15jTCVnamllbXUKek08bXdzd21lU3k0
KFlGfkRWYHZHbUduTVAmcEtaSCkxPGVod3k5VjMyPHZuRGtRIVJxTEc0VHJZZ19zbEdkK3NxCnpn
amROaElxUiQ1UzM2SCFjSl9JZEsqNG15ZXxYQWVQLWgxalFkamhqYXYzQHsxTTNtQiU0bC1aQlc5
Sk1aNFJ0UQp6KyR1d0F5dXAyJXUqenQ1bDJLIW8oYyZae1hfZXVvMlA+elhRO3hOQD9iN1l3ezsw
TGU1Vl5yK1l8JTFnJSRnb2EKek9nWUtXd1BtZSl4ZVR7X1ZmOSFgX149KnN3bHI4fXhhR0BNaSRB
JkB7bFYmWWcpUUJsK2AjJExXUj5DT1EmISQoCno5Wjc1SiFzQCM4MT1ocGNGfnl2NjhFKSYrWU8k
cnFhWDtOPXVfZiRpJVhXKCVWTGxtZ0B5OEJ9OSEtdlZ2fDAzTQp6XjZudmwqSlk8Z2p9fUtnXnok
QkIrT29Ddik7b0I3PzZUTSp5UXp5JEoxbi11OUJ0V2MoWmpvTTEtQihfbUVtVH4KejkqWnEwTV9X
MkFkWlpsbFd2XjkrVGkpYENvTDxURF9eNU0/UT91XzsmZjVPYj9DNmdraXlxQzZ7QDc9ZztkWEU2
Cnp3YVNQJSNYNnNBUmB8NDtQaWtIQUMxYUswd3ptN05HRE5sRGA2NXE2JHhtOGErZzhXNUohc0x4
eUkleT9xdDdiQwp6JjZhK1BqQ1JLdThfK1VOaGRWZzZqeDdDdGZRTGlHXjB0OFZobCRQYEVia0Mz
OFhWPDZoO0pHa1dCKkdZPTlCNG0KentNX0lXMjY1Tm1GaD0tdlVDWlIoKiYhdXdVcjtgdSl7bStl
NDMxJHlgRDVkSnMmZGN0Q29tRStgdFdKflh5fXNaCno/Xz5ZVjF9QmpYe29kZGRNI0ZOYTYjMkN7
ODgtVSFaR313dVlvQD1CXz9FJS09bkNJOHhCKj59aHs1fk84UjApTgp6RW9VcCpCYWEhfWgpaVYw
OzEmITttSlF5OTttRiR0SDw1cVU7QVVpXlozZWV1Q159fkZiX19ANT9GYFgjMlJmcCEKejhRZXlH
eyFgV2NkfitsRWZ4KyRRalFUUW5Bcm5pUnt0b29VZUJFfVZCV0JofXJPRCYjd2c9aFJufSl4V25F
eVByCnp7SnJSa247MX1DJGl6Plp7JSNEJTNrTFVLRiNkfGNgX0xaMFZ7azl8e1dXP0JnOSU/d2hX
TWk0SWUtSFJlfC0tVQp6YCFARVlDLURjdkdre0V1QEFFPyN0ZFcxVDsqJV9+enQpRnx6aSM+bWlH
T01FNWdmMWFlS0xkKmAzSjdZOXp7QzIKeldiaU9EJHJsWWloUTghYTRMKikrKClZcyZ3NTVGZ042
P2NSI3UrVCZEd2dtaEY3dGJpP0w2UDdTO0JTWktweGpICnokPExZcDBvTmgpVkliaFZTRDNxKEZ9
cUlobjwmelBEfG5hfCZoc083UmBRTHJjWT1IYyhpSDdwcHh4ZFdAayQ7eQp6dkBkZUo/bFNnNF5V
Ymh3d2ZQekNxYzc1U1MrQWZ2SzhXOHchJiFSeG4oQHpOZGRrSGtMQzYwMFhPXntKem1CSzQKem1h
PypveWRzaEFNUnxGJjFRYClMWmZ4XzdHWGB1P0BKWCVMNWBGRD9feVlDNnJaZS1od3F6MlhwM34l
O3E0dzljCnpFbDwjcj4qVUwwKzdlbGheNkhHMUQ+ND96Un5kYTE5NTMwaiRoa0orOFJ5ayRVS2co
d3RXd1QlPzkqRHghe2ladAp6SGx1SClsbkd8OSV2b1NBPWN1UjZnMzNgQklLT3lPUihSdWFQZihz
YGBOej9AUWM0aD1EQE8mPmBNa0V3aXtaXnsKeiYzaDFjeChXS3tDT3c8U0lRPTAwbDhsamstI3lZ
TXdZTGo4TXJJJTJeVCEhJl5TSCEwN2Q2KnJCYzstUjwmdUwlCnokdyFTU3pka19ePChRZTAxR0Fn
KiY7P3EmS3EtPUF6T047KyVWKTlhe1J6RCl2S00kN05Uej8obUB9TTF3RHNyTgp6Kz90TmorOG5L
d3MxUXZuckI/MUg+dnlwclc0dzQ8OzdwPSprLXRQXzR9Myk1ZjJDKGxkeF9iQz93TWwqUDRne1oK
emlLN0xedWwtSXdNXyU2KCFafF9OR1E7TH1yXm9PcEJePCZyekl7RSs9dl48fXd0OCEwaEg9PD0l
clg4QmEreFBmCnp7c0hFOHVyVSsjXkV8eUZTdnh9I2p8TGsjc2w2KDkxVjYkZ0s3eCsqZXAhOXxq
SXczTUIoMEYmWkl6TF5RVH1aXwplO3YpQnxPV1hfM0Y9aXdLe0MpOFgpP2N5M0FBakZKPT1lQTlB
WStkSgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>
<flag name="review"
          id="426171"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="426186"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410287</attachid>
            <date>2020-10-01 17:25:39 -0700</date>
            <delta_ts>2020-10-01 17:26:21 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-206118-20201001172538.patch</filename>
            <type>text/plain</type>
            <size>43030</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNzkzNGNmOGVjYTQ4
OWQ5MDAwM2FjYzc2NDlhNTJkNGNjNDlhMi4uNzBlMTcwNmRjNzEwNjg4NGIxMjljNWVkZGM1NTBl
MDUyZDE2YjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHNpbXBseSBzZXJpYWxpemVzIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBGb250IGFu
ZCBGb250UGxhdGZvcm1EYXRhLgorCisgICAgICAgIFNlcmlhbGl6aW5nIGEgQ1RGb250IGludm9s
dmVzIHNlcmlhbGl6aW5nIGl0cyBmb250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzLiBIb3dldmVy
LAorICAgICAgICB0aGVyZSdzIGFuIGV4dHJhIHN0ZXAgZm9yIHdlYiBmb250cywgc2luY2UgdGhl
IGZvbnQgZGVzY3JpcHRvcidzIGF0dHJpYnV0ZXMgZG9uJ3QgaW5jbHVkZQorICAgICAgICB0aGUg
cmF3IGJ5dGVzIG9mIHRoZSBmb250IGZpbGUuIFRoaXMgd2FzIHByZXZpb3VzbHkgYmVpbmcgc2F2
ZWQgaW4gRm9udCwgYnV0IHRoaXMgcGF0Y2gKKyAgICAgICAgbW92ZXMgdGhhdCBpbnRvIEZvbnRQ
bGF0Zm9ybURhdGEgYmVjYXVzZSBvZiBsYXllcmluZywgYW5kIGFkZHMgdGhlIFNoYXJlZEJ1ZmZl
ciB0byB0aGUKKyAgICAgICAgc2VyaWFsaXphdGlvbiByb3V0aW5lIGZvciB3ZWIgZm9udHMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5o
dG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
Ojpmb250KTogRm9udHMgYW5kIEZvbnRQbGF0Zm9ybURhdGFzIGFyZSBzdXBwb3NlZCB0byBiZSBp
bW11dGFibGUsIHNvCisgICAgICAgIGhhdmluZyBhIHNldHRlciBmb3IgdGhlIEZvbnRGYWNlRGF0
YSBpcyBpbmNvcnJlY3QuIFRoaXMgb2JqZWN0IGlzIG1vdmVkIGludG8gdGhlIGNvbnN0cnVjdG9y
CisgICAgICAgIGluc3RlYWQuCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjpmb250KTogRGVsZXRpbmcgZGVh
ZCBjb2RlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpmb250RmFjZURh
dGEgY29uc3QpOiBEZWxldGVkLiBNb3ZlZCB0byBGb250UGxhdGZvcm1EYXRhCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxh
dGZvcm1EYXRhOjpjcmVhdGlvbkRhdGEgY29uc3QpOiBNb3ZlZCBmcm9tIEZvbnQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEpOiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIGlzIGEgc3RydWN0LCBzbworICAgICAg
ICB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoZSBtXyBwcmVmaXhlcy4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTogRGl0dG8uCisKIDIw
MjAtMDktMzAgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCBmb3IgbXVsdGlwbGUgbGF5b3V0IHRlc3RzIGluIGFjY2Vzc2liaWxpdHkgaXNvbGF0
ZWQgdHJlZSBtb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZTVmZGQwMzAxOGZhYWZmMmM3ZTVkYzZjNTVlNzVl
ODM5YmVlMmVmLi42Mjc3YjkwZWVlMjMzZjk4MDEzNWExZWRlZjMyNzA4NWRlNDgwZWM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdp
bmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgc2VyaWFsaXplIGFuZCBkZXNl
cmlhbGl6ZSBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQgUGxhdGZvcm1Gb250
RGF0YS4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0
Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKwogMjAyMC0wOS0zMCAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleGVtcHQgQVBJ
OjpTaGFyZWRKU0NvbnRleHQgZnJvbSByZW1vdGUgaW5zcGVjdGlvbiBhbmQgYXV0b21hdGljIGlu
c3BlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNDY1N2IwN2EzNjVmMGUzMzNlOTAzYzRmZTEwYjI5YTNiZGZiZDM0Li4w
Mzg5OWRjZDJlY2I1MzdjZTY4NGZiZWNmMmZjMWZjMmFiNDljZjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjU2LDcgKzM2
NTYsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENF
RjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5
cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFGMkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRm
b3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsg
fTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2
MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAw
NEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJCMUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50
ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9OwogCQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyog
QmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQw
MEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTc1
OTcsNiArMTc1OTcsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKKwkJCQk2RkUxOTgxMzIxNzgz
OTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovLAorCQkJCTZGRTE5ODE1
MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovLAogCQkJCTZGN0NB
M0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJ
CQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0Lmgg
Ki8sCiAJCQkJNkYzNUVGQUYyMTg3Q0JENTAwNDRFMEY0IC8qIElubGluZUZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwICovLApAQCAtMTc2MDksOCArMTc2MTEsNiBAQAogCQkJCTZGMENENjk0
MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmggKi8sCiAJCQkJNkY2OUE3OTkyNEQ2RkFC
ODAwRTZCODVEIC8qIElubGluZUxpbmVCb3guY3BwICovLAogCQkJCTZGQjI0MDAzMjNERkYxMjcw
MDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCi0JCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2
RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLywKLQkJCQk2RkUxOTgxNTIxNzgzOTdD
MDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLywKIAkJCQk2RjI1QjIwMDIyMEE4
NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJCTZGMjZFQjQ2MjM0
MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAogCQkJCTZGOTE0MjBGMjUx
NTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLywKQEAgLTMxODQ5LDYgKzMx
ODQ5LDcgQEAKIAkJCQlDRDA2M0Y4MzFFMjNGQTg5MDA4MTJCRTMgLyogSW5pdERhdGFSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGlu
ZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElu
bGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTE5ODE3MjE3ODM5N0Mw
MDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU3
Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4Q0ZGNUUzMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RjdDQTNDQTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4NTcsNyArMzE4NTgsNiBAQAogCQkJCUJD
RTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAvKiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkYwQ0Q2OTUyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxpbmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggaW4g
SGVhZGVycyAqLywKLQkJCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVu
dEJyZWFrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAv
KiBJbmxpbmVMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY5MTQyMTEyNTE1MjEz
ODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZD
M0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggNjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3
NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNkYzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC02NzgsMTEgKzY3OCw4IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKEZv
bnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRp
b24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2luOjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0
aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTRm9udEZh
Y2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9
IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0
YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpIHsK
LSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250ID0gc291cmNlLT5jYWNoZWRGb250KCk7
Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250RmFjZURhdGEoY2FjaGVkRm9udCA/IGNh
Y2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChh
dXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFi
aWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0
dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJmMmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4
OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRhNzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcApAQCAtMjEyLDkgKzIxMiw2IEBAIFJl
ZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFtX2luRG9jdW1lbnRDdXN0b21QbGF0Zm9y
bURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBGb250OjpjcmVhdGUo
bV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKLQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIENTU0Zv
bnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggYjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3
YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYyYjk4YWZkZjU4YjEwMzg0MGRhZmY0N2Nm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5
ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNv
bnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5leGlzdGluZ01ldHJpY3NGb3JHbHlwaChn
bHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9udEZhY2VEYXRhID0gV1RGTW92ZShmb250
RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2JjMDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0
MzUyYmYwYzU0MS4uZWFmNzc2MDI3NzRjMTM0YzFlYzY4ODcyYjYxYmM0ZTZmNTIwYjEwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMjIzLDkgKzIyMyw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNr
KGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50KTsKICNlbmRpZgogCi0g
ICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRGYWNl
RGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZm
ZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnQoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFsLCBWaXNpYmlsaXR5LCBPcmllbnRhdGlv
bkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBT
Q1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiAjZW5kaWYKIAot
ICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZhY2VEYXRhOwotCiAgICAgR2x5cGggbV9z
cGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb0dseXBoIHsgMCB9OwogICAgIEdseXBo
IG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAgLTMyNyw2ICszMjIsOCBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdW5zaWduZWQgbV9zaG91bGROb3RCZVVz
ZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAvLyBBZGRpbmcgYW55IG5vbi1kZXJpdmVk
IGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJhbGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMzgy
LDQgKzM3OSwzNyBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0IEZvbnQ6OndpZHRoRm9yR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udDo6T3JpZ2lu
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Rm9u
dDo6T3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGb250OjpPcmlnaW46OlJlbW90ZSwKKyAgICAg
ICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luOjpMb2NhbAorICAgID47Cit9OwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWw+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGb250OjpJbnRlcnN0aXRp
YWwsCisgICAgICAgIFdlYkNvcmU6OkZvbnQ6OkludGVyc3RpdGlhbDo6WWVzLAorICAgICAgICBX
ZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWw6Ok5vCisgICAgPjsKK307Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnQ6OlZpc2liaWxpdHk+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5LAor
ICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5OjpWaXNpYmxlLAorICAgICAgICBXZWJD
b3JlOjpGb250OjpWaXNpYmlsaXR5OjpJbnZpc2libGUKKyAgICA+OworfTsKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udDo6T3JpZW50YXRpb25GYWxsYmFjaz4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZvbnQ6Ok9y
aWVudGF0aW9uRmFsbGJhY2ssCisgICAgICAgIFdlYkNvcmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFs
bGJhY2s6OlllcywKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZW50YXRpb25GYWxsYmFjazo6
Tm8KKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8gRm9udF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCmluZGV4IDBh
YTUxNzVlZTA1YTZhNDFhZGM0YzJmMzE2MDI3OTlkZmZhNjZkMDYuLmYwYWVkYTFiNjQwYzRlNTU1
M2UwYmQ1MDZhOWRjOTM2ZmVhZDU0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoKQogewogfQogCi1Gb250UGxhdGZvcm1E
YXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0
aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9k
ZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2Rl
IHRleHRSZW5kZXJpbmdNb2RlLCBDcmVhdGlvbkRhdGEqIGNyZWF0aW9uRGF0YSkKICAgICA6IG1f
c2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKICAgICAsIG1fd2lk
dGhWYXJpYW50KHdpZHRoVmFyaWFudCkKQEAgLTU0LDYgKzU0LDggQEAgRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wg
c3ludGhldGkKICAgICAsIG1fc3ludGhldGljQm9sZChzeW50aGV0aWNCb2xkKQogICAgICwgbV9z
eW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUpCiB7CisgICAgaWYgKGNyZWF0aW9uRGF0
YSkKKyAgICAgICAgbV9jcmVhdGlvbkRhdGEgPSAqY3JlYXRpb25EYXRhOwogfQogCiAjaWYgIVVT
RShGUkVFVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQbGF0Zm9ybURhdGEuaAppbmRleCAxOGYyMzFhZWMzMDE2ZGRjZmNlYmY5YzRlNzA2MjFlN2M3
Nzg3YjNjLi5kNzQwYjNmMGI5ZmFkNTgyZWVmMTE3NzE4ZWNjOTQwYmI3ZWJmNmVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
CkBAIC0yNCwxMSArMjQsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotCiAjaWYgUExBVEZPUk0oV0lOKQogI2lu
Y2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1ZGUgIlNoYXJlZEdESU9iamVjdC5oIgpAQCAtNzcsMTMg
Kzc3LDE1IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGEgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0cnVjdCBDcmVhdGlv
bkRhdGE7CisKICAgICBGb250UGxhdGZvcm1EYXRhKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
VHlwZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9u
dE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJp
YW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9
IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZyk7CisgICAgRm9udFBsYXRmb3Jt
RGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lk
dGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoLCBUZXh0UmVuZGVyaW5n
TW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZywgQ3JlYXRpb25EYXRh
KiA9IG51bGxwdHIpOwogCiAjaWYgVVNFKENPUkVfVEVYVCkKLSAgICBXRUJDT1JFX0VYUE9SVCBG
b250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xk
ID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24g
PSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBGb250V2lk
dGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gVGV4dFJlbmRlcmlu
Z01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250UGxhdGZv
cm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2Us
IGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBGb250T3Jp
ZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBGb250V2lkdGhWYXJpYW50
OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1
dG9UZXh0UmVuZGVyaW5nLCBDcmVhdGlvbkRhdGEqID0gbnVsbHB0cik7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKFdJTikKQEAgLTE5OSw2ICsyMDEsMTYgQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAKKyAgICBzdHJ1Y3QgQ3JlYXRpb25EYXRhIHsKKyAgICAg
ICAgUmVmPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRhOworICAgICAgICBTdHJpbmcgaXRlbUlu
Q29sbGVjdGlvbjsKKyAgICB9OworCisgICAgY29uc3QgT3B0aW9uYWw8Q3JlYXRpb25EYXRhPiYg
Y3JlYXRpb25EYXRhKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NyZWF0aW9uRGF0
YTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYpIGNvbnN0OwogCkBAIC0yNDUsNiArMjU3LDggQEAgcHJpdmF0ZToKICAg
ICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50IHsgRm9udFdpZHRoVmFyaWFudDo6UmVn
dWxhcldpZHRoIH07CiAgICAgVGV4dFJlbmRlcmluZ01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7
IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZyB9OwogCisgICAgT3B0aW9uYWw8
Q3JlYXRpb25EYXRhPiBtX2NyZWF0aW9uRGF0YTsKKwogICAgIGJvb2wgbV9zeW50aGV0aWNCb2xk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2UgfTsKQEAgLTI2NCw2ICsyNzgsOCBAQCBw
cml2YXRlOgogI2lmIFVTRShGUkVFVFlQRSkKICAgICBib29sIG1fZml4ZWRXaWR0aCB7IGZhbHNl
IH07CiAjZW5kaWYKKworICAgIC8vIEFkZGluZyBhbnkgbm9uLWRlcml2ZWQgaW5mb3JtYXRpb24g
dG8gRm9udFBsYXRmb3JtRGF0YSBuZWVkcyBhIHBhcmFsbGVsIGNoYW5nZSBpbiBXZWJDb3JlQXJn
dW1lbnRDb2RlcnNDb2NvYS5jcHAuCiB9OwogCiAjaWYgVVNFKENPUkVfVEVYVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9y
bURhdGFDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
dGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3BwCmluZGV4IGRjYzc5YWQ4Y2E4NWY0Zjc0
MjgzYmJhZmYxZDU5MzdlNTI0NjA3YWIuLjI2MmU5M2NhYTVmYzFkYzM0MjEzZjViM2RiZjlkNDEw
ZDBiZDA5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
cmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcApA
QCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZvbnRQbGF0Zm9ybURh
dGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50
YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0
ZXh0UmVuZGVyaW5nTW9kZSkKLSAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgdGV4dFJl
bmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJl
ZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2Js
aXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRo
VmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUsIENyZWF0aW9uRGF0
YSogY3JlYXRpb25EYXRhKQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0UmVu
ZGVyaW5nTW9kZSwgY3JlYXRpb25EYXRhKQogewogICAgIEFTU0VSVF9BUkcoZm9udCwgZm9udCk7
CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGEy
MmU4MjI2OWRiZDRjMDMzNWU1ZWZiMzNmNzkzNTMyMWRlZDIyNGEuLmQ0MzFiMmMwODIzMTM3ZjA3
ZmE1NmU2YmRhZmYxOTMzMjFjZTZmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYKIHsKICAgICBhdXRvIGF0
dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIGFkZEF0dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRy
aWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMoKSk7Ci0gICAgYXV0byBtb2RpZmllZEZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVzKG1fZm9udERlc2NyaXB0b3IuZ2V0KCks
IGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIG1vZGlmaWVkRm9udERlc2NyaXB0b3IgPSBh
ZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoZm9udERlc2Ny
aXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICBBU1NFUlQobW9kaWZpZWRGb250
RGVzY3JpcHRvcik7CiAKICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBp
eGVsU2l6ZSgpOwpAQCAtNDgsNyArNDgsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJgogICAg
IGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1vZGlm
aWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKICAgICBmb250ID0gcHJl
cGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sICZmb250RmFjZUZl
YXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CiAgICAgQVNTRVJUKGZvbnQpOwotICAgIHJl
dHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3Jp
ZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2Rl
KCkpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQs
IGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRS
ZW5kZXJpbmdNb2RlKCksICZjcmVhdGlvbkRhdGEpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRC
dWZmZXImIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVtSW5Db2xsZWN0aW9uKQpAQCAtODUsNyAr
ODUsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICNlbmRpZgogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4o
Zm9udERlc2NyaXB0b3IuZ2V0KCkpOworICAgIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0
YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUluQ29sbGVjdGlvbiB9OworICAgIHJldHVy
biBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+KGZvbnREZXNjcmlwdG9yLmdldCgp
LCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOwogfQogCiBib29sIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OnN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmgKaW5kZXggNjA3OGUyNWZhMWQ4MmJjZWM5YjRjYzdiYzcyZTVlN2YyOGVhNzBhZS4u
ZmZiOWE5NzQ0NGNhMzQ5ZmNhMTdhMzBjNTJkMGI4M2U0ODM1ZDdhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhX2gKIAorI2luY2x1ZGUgIkZv
bnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlIDxDb3Jl
Rm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzMsNyAr
MzQsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udERlc2NyaXB0b3IqIENURm9udERl
c2NyaXB0b3JSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlv
bjsKLWNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNpZmll
ZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIApAQCAtNDMsMjEgKzQzLDIzIEBA
IHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4gRm9udEZlYXR1cmVTZXR0aW5nczsKIHN0
cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShDVEZvbnREZXNjcmlwdG9yUmVm
IGZvbnREZXNjcmlwdG9yKQotICAgICAgICA6IG1fZm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0
b3IpCisgICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3JtRGF0YShDVEZvbnREZXNjcmlwdG9y
UmVmIGZvbnREZXNjcmlwdG9yLCBGb250UGxhdGZvcm1EYXRhOjpDcmVhdGlvbkRhdGEmJiBjcmVh
dGlvbkRhdGEpCisgICAgICAgIDogZm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IpCisgICAg
ICAgICwgY3JlYXRpb25EYXRhKFdURk1vdmUoY3JlYXRpb25EYXRhKSkKICAgICB7CiAgICAgfQog
Ci0gICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCiAgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25T
cGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwogCiAgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBSZXRhaW5QdHI8Q1RG
b250RGVzY3JpcHRvclJlZj4gbV9mb250RGVzY3JpcHRvcjsKKyAgICBSZXRhaW5QdHI8Q1RGb250
RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3I7CisgICAgRm9udFBsYXRmb3JtRGF0YTo6Q3Jl
YXRpb25EYXRhIGNyZWF0aW9uRGF0YTsKIH07CiAKLXN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9t
UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYs
IGNvbnN0IFN0cmluZyYpOworV0VCQ09SRV9FWFBPUlQgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVy
JiwgY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCA2ZGU1ZGNjMTQ2
NjRjMWRlNjI2MzdjNmY3ZDE3NmJhODEyMDYyNmQ5Li4yODE0ZThiNWVmMzJkNTAyNjU4YmFiNWFl
ZjcxM2NmNjE0NzAyYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtMjYsMTIgKzI2LDE5IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCisj
aW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29h
LmgiCi0jaW1wb3J0ICJDb2NvYUZvbnQuaCIKKyNpbXBvcnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KKyNlbmRp
ZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAg
LTM5LDEwICs0Niw2IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1wb3J0IDxVSUtpdC9VSUZvbnQu
aD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC01MDksMjYgKzUxMiwxMzUgQEAgT3B0aW9uYWw8Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+OjpkZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBB
cmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byBjdEZvbnQg
PSAhZm9udC0+Zm9udEZhY2VEYXRhKCkgPyBmb250LT5nZXRDVEZvbnQoKSA6IG5pbDsKLSAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGN0Rm9udCk7Ci0gICAgaWYgKGN0Rm9udCkKLSAg
ICAgICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FGb250ICopY3RGb250OwotfQorICAgIGNv
bnN0IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQtPnBsYXRmb3JtRGF0YSgpOworICAgIGVuY29k
ZXIgPDwgcGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9y
bURhdGEud2lkdGhWYXJpYW50KCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEudGV4dFJl
bmRlcmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IHBsYXRmb3JtRGF0YS5zaXplKCk7CisgICAg
ZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpOworICAgIGVuY29kZXIgPDwg
cGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsKKworICAgIGF1dG8gY3RGb250ID0gcGxh
dGZvcm1EYXRhLmZvbnQoKTsKKyAgICBhdXRvIGZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZv
bnRDb3B5Rm9udERlc2NyaXB0b3IoY3RGb250KSk7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCkp
KTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBhdHRyaWJ1dGVzLmdldCgpKTsKKworICAgIGNv
bnN0IGF1dG8mIGNyZWF0aW9uRGF0YSA9IHBsYXRmb3JtRGF0YS5jcmVhdGlvbkRhdGEoKTsKKyAg
ICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGNyZWF0aW9uRGF0YSk7CisgICAgaWYgKGNy
ZWF0aW9uRGF0YSkgeworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9uRGF0YS0+Zm9udEZhY2VE
YXRhOworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9uRGF0YS0+aXRlbUluQ29sbGVjdGlvbjsK
KyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIHJlZmVyZW5jZVVSTCA9IGFkb3B0Q0Yoc3RhdGlj
X2Nhc3Q8Q0ZVUkxSZWY+KENURm9udENvcHlBdHRyaWJ1dGUoY3RGb250LCBrQ1RGb250UmVmZXJl
bmNlVVJMQXR0cmlidXRlKSkpOworICAgICAgICBhdXRvIHN0cmluZyA9IENGVVJMR2V0U3RyaW5n
KHJlZmVyZW5jZVVSTC5nZXQoKSk7CisgICAgICAgIGVuY29kZXIgPDwgU3RyaW5nKHN0cmluZyk7
CisgICAgICAgIGVuY29kZXIgPDwgU3RyaW5nKGFkb3B0Q0YoQ1RGb250Q29weVBvc3RTY3JpcHRO
YW1lKGN0Rm9udCkpLmdldCgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250
RGVzY3JpcHRvclJlZj4gZmluZEZvbnREZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgcmVmZXJlbmNl
VVJMLCBjb25zdCBTdHJpbmcmIHBvc3RTY3JpcHROYW1lKQoreworICAgIGF1dG8gdXJsID0gYWRv
cHRDRihDRlVSTENyZWF0ZVdpdGhTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVmZXJlbmNl
VVJMLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBpZiAoIXVybCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBmb250RGVzY3JpcHRvcnMgPSBhZG9wdENG
KENURm9udE1hbmFnZXJDcmVhdGVGb250RGVzY3JpcHRvcnNGcm9tVVJMKHVybC5nZXQoKSkpOwor
ICAgIGlmICghZm9udERlc2NyaXB0b3JzIHx8ICFDRkFycmF5R2V0Q291bnQoZm9udERlc2NyaXB0
b3JzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKENGQXJyYXlHZXRD
b3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpID09IDEpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDVEZvbnREZXNjcmlwdG9yUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGZvbnREZXNj
cmlwdG9ycy5nZXQoKSwgMCkpOworCisgICAgLy8gVGhlcmUncyBzdXBwb3NlZCB0byBvbmx5IGJl
IGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5LCBidXQgd2UgY2FuIGJlIGRlZmVuc2l2ZSBoZXJl
LgorICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChmb250RGVzY3Jp
cHRvcnMuZ2V0KCkpOyArK2kpIHsKKyAgICAgICAgYXV0byBmb250RGVzY3JpcHRvciA9IHN0YXRp
Y19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZm9udERl
c2NyaXB0b3JzLmdldCgpLCBpKSk7CisgICAgICAgIGF1dG8gY3VycmVudFBvc3RTY3JpcHROYW1l
ID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ1RGb250RGVzY3JpcHRvckNvcHlB
dHRyaWJ1dGUoZm9udERlc2NyaXB0b3IsIGtDVEZvbnROYW1lQXR0cmlidXRlKSkpOworICAgICAg
ICBpZiAoU3RyaW5nKGN1cnJlbnRQb3N0U2NyaXB0TmFtZS5nZXQoKSkgPT0gcG9zdFNjcmlwdE5h
bWUpCisgICAgICAgICAgICByZXR1cm4gZm9udERlc2NyaXB0b3I7CisgICAgfQorICAgIHJldHVy
biBudWxscHRyOworfQorCitPcHRpb25hbDxGb250UGxhdGZvcm1EYXRhPiBBcmd1bWVudENvZGVy
PFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IE9wdGlvbmFsPEZvbnRPcmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBv
cmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9uLmhhc1ZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJndW1lbnRDb2RlcjxS
ZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uYWw8
UmVmPFdlYkNvcmU6OkZvbnQ+PiYmIGV4aXN0aW5nRm9udCkKLXsKLSAgICBib29sIGhhc1BsYXRm
b3JtRm9udDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRm9udCkpCisgICAg
T3B0aW9uYWw8Rm9udFdpZHRoVmFyaWFudD4gd2lkdGhWYXJpYW50OworICAgIGRlY29kZXIgPj4g
d2lkdGhWYXJpYW50OworICAgIGlmICghd2lkdGhWYXJpYW50Lmhhc1ZhbHVlKCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxUZXh0UmVuZGVyaW5nTW9kZT4g
dGV4dFJlbmRlcmluZ01vZGU7CisgICAgZGVjb2RlciA+PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAg
ICBpZiAoIXRleHRSZW5kZXJpbmdNb2RlLmhhc1ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICBpZiAoIWhhc1BsYXRmb3JtRm9udCkKLSAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoZXhpc3RpbmdGb250KTsKKyAgICBPcHRpb25hbDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNv
ZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBzeW50aGV0aWNCb2xkOworICAgIGRl
Y29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBpZiAoIXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUo
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5
bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+PiBzeW50aGV0aWNPYmxpcXVlOworICAgIGlm
ICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gYXR0cmlidXRlczsKKyAgICBp
ZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJpYnV0ZXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gaW5jbHVkZXNDcmVhdGlvbkRhdGE7Cisg
ICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9uRGF0YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3Jl
YXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoaW5jbHVkZXNDcmVhdGlvbkRhdGEudmFsdWUoKSkgeworICAgICAgICBPcHRpb25hbDxS
ZWY8U2hhcmVkQnVmZmVyPj4gZm9udEZhY2VEYXRhOworICAgICAgICBkZWNvZGVyID4+IGZvbnRG
YWNlRGF0YTsKKyAgICAgICAgaWYgKCFmb250RmFjZURhdGEuaGFzVmFsdWUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBpdGVt
SW5Db2xsZWN0aW9uOworICAgICAgICBkZWNvZGVyID4+IGl0ZW1JbkNvbGxlY3Rpb247CisgICAg
ICAgIGlmICghaXRlbUluQ29sbGVjdGlvbi5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEgPSBj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRGYWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5D
b2xsZWN0aW9uLnZhbHVlKCkpOworICAgICAgICBpZiAoIWZvbnRDdXN0b21QbGF0Zm9ybURhdGEp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICBhdXRvIGJhc2VGb250
RGVzY3JpcHRvciA9IGZvbnRDdXN0b21QbGF0Zm9ybURhdGEtPmZvbnREZXNjcmlwdG9yLmdldCgp
OworICAgICAgICBpZiAoIWJhc2VGb250RGVzY3JpcHRvcikKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9u
dERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoYmFzZUZvbnREZXNjcmlwdG9yLCBh
dHRyaWJ1dGVzLmdldCgpKSk7CisgICAgICAgIGF1dG8gY3RGb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUudmFsdWUo
KSwgbnVsbHB0cikpOworCisgICAgICAgIGF1dG8gY3JlYXRpb25EYXRhID0gRm9udFBsYXRmb3Jt
RGF0YTo6Q3JlYXRpb25EYXRhIHsgZm9udEZhY2VEYXRhLnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rp
b24udmFsdWUoKSB9OworICAgICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0
KCksIHNpemUudmFsdWUoKSwgc3ludGhldGljQm9sZC52YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVl
LnZhbHVlKCksIG9yaWVudGF0aW9uLnZhbHVlKCksIHdpZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0
UmVuZGVyaW5nTW9kZS52YWx1ZSgpLCAmY3JlYXRpb25EYXRhKTsKKyAgICB9CisKKyAgICBPcHRp
b25hbDxTdHJpbmc+IHJlZmVyZW5jZVVSTDsKKyAgICBkZWNvZGVyID4+IHJlZmVyZW5jZVVSTDsK
KyAgICBpZiAoIXJlZmVyZW5jZVVSTC5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBwb3N0U2NyaXB0TmFtZTsKKyAgICBkZWNv
ZGVyID4+IHBvc3RTY3JpcHROYW1lOworICAgIGlmICghcG9zdFNjcmlwdE5hbWUuaGFzVmFsdWUo
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIFJldGFpblB0cjxDb2NvYUZv
bnQ+IGZvbnQ7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBmb250KSkKKyAgICBSZXRh
aW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3IgPSBmaW5kRm9udERlc2Ny
aXB0b3IocmVmZXJlbmNlVVJMLnZhbHVlKCksIHBvc3RTY3JpcHROYW1lLnZhbHVlKCkpOworICAg
IGlmICghZm9udERlc2NyaXB0b3IpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAg
Zm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0
dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBh
dXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKGZvbnRE
ZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51bGxwdHIpKTsKIAotICAgIHJldHVybiBG
b250OjpjcmVhdGUoeyAoX19icmlkZ2UgQ1RGb250UmVmKWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0
PGZsb2F0PihbZm9udCBwb2ludFNpemVdKSB9KTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0
YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3ludGhldGljQm9sZC52YWx1ZSgpLCBzeW50
aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9uLnZhbHVlKCksIHdpZHRoVmFyaWFudC52
YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCAzMjQ2ZDI4NzRiYTI5OTE2NjU0ZGE4YmU4OWMzM2M1NTU5YWYwNzQ1Li5hYmE2ZTA3OWZk
ZjQ3NTBhYTc5YjEwZTRiOWMzMTU3NjZlZjFiNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTExODIsNTYgKzExODIsNDIgQEAgYm9v
bCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7
Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9udC0+Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250RmFjZURhdGEpOwotICAgIGlmIChmb250RmFj
ZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0
YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250LT5wbGF0Zm9ybURhdGEoKTsKLSAgICAgICAg
ZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRp
Y0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsKLSAg
ICB9CisgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4oKTsKKyAgICBlbmNvZGVyIDw8IChmb250
LT5pc0ludGVyc3RpdGlhbCgpID8gRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMgOiBGb250OjpJbnRl
cnN0aXRpYWw6Ok5vKTsKKyAgICBlbmNvZGVyIDw8IGZvbnQtPnZpc2liaWxpdHkoKTsKKyAgICBl
bmNvZGVyIDw8IChmb250LT5pc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrKCkgPyBGb250OjpPcmll
bnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpObyk7Cisg
ICAgLy8gSW50ZW50aW9uYWxseSBkb24ndCBlbmNvZGUgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxi
YWNrIGJlY2F1c2UgaXQgZG9lc24ndCBhZmZlY3QgZHJhd0dseXBocygpLgogCiAgICAgZW5jb2Rl
UGxhdGZvcm1EYXRhKGVuY29kZXIsIGZvbnQpOwogfQogCiBPcHRpb25hbDxSZWY8Rm9udD4+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAg
T3B0aW9uYWw8Ym9vbD4gaGFzRm9udEZhY2VEYXRhOwotICAgIGRlY29kZXIgPj4gaGFzRm9udEZh
Y2VEYXRhOwotICAgIGlmICghaGFzRm9udEZhY2VEYXRhLmhhc1ZhbHVlKCkpCisgICAgT3B0aW9u
YWw8Rm9udDo6T3JpZ2luPiBvcmlnaW47CisgICAgZGVjb2RlciA+PiBvcmlnaW47CisgICAgaWYg
KCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAg
IE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVzdWx0OwotICAgIGlmIChoYXNGb250RmFj
ZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBmb250RmFjZURh
dGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVmZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0
YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAgIGlmICghZm9u
dEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAgICBP
cHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7Ci0g
ICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIE9wdGlvbmFsPEZvbnQ6OkludGVyc3RpdGlhbD4gaXNJbnRlcnN0aXRpYWw7CisgICAgZGVj
b2RlciA+PiBpc0ludGVyc3RpdGlhbDsKKyAgICBpZiAoIWlzSW50ZXJzdGl0aWFsLmhhc1ZhbHVl
KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9v
bD4gc3ludGhldGljQm9sZDsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50aGV0aWNCb2xkOwotICAg
ICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIE9wdGlvbmFsPEZvbnQ6OlZpc2liaWxpdHk+IHZpc2liaWxpdHk7CisgICAgZGVjb2Rl
ciA+PiB2aXNpYmlsaXR5OworICAgIGlmICghdmlzaWJpbGl0eS5oYXNWYWx1ZSgpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRp
Y0l0YWxpYzsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlm
ICghc3ludGhldGljSXRhbGljKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICBPcHRpb25hbDxGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrPiBpc1RleHRPcmllbnRhdGlvbkZh
bGxiYWNrOworICAgIGRlY29kZXIgPj4gaXNUZXh0T3JpZW50YXRpb25GYWxsYmFjazsKKyAgICBp
ZiAoIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2suaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb247Ci0g
ICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgqZm9udFNpemUpOwotICAgICAgICBy
ZXN1bHQgPSBGb250OjpjcmVhdGUoZm9udEZhY2VEYXRhLnJlbGVhc2VOb25OdWxsKCksIEZvbnQ6
Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50aGV0aWNCb2xkLCAqc3ludGhldGljSXRh
bGljKTsKLSAgICB9CisgICAgYXV0byBwbGF0Zm9ybURhdGEgPSBkZWNvZGVQbGF0Zm9ybURhdGEo
ZGVjb2Rlcik7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2Rl
ciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKHBsYXRmb3JtRGF0
YS52YWx1ZSgpLCBvcmlnaW4udmFsdWUoKSwgaXNJbnRlcnN0aXRpYWwudmFsdWUoKSwgdmlzaWJp
bGl0eS52YWx1ZSgpLCBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrLnZhbHVlKCkpOwogfQogCiB2
b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCAyODYyMTljMDY1ZDdmZjlmYTA0M2ZhYWYxYzJlNzM3YjRhNmExNDcwLi5k
MDdkNGFlM2EzZDY2ODQ3YmFhMDg3MzAxNTQ2ZjVjZDQzNDhkZGVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTUsNiArOTUsNyBAQCBjbGFz
cyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQb3NpdGlv
blZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250OworY2xhc3MgRm9udFBsYXRmb3JtRGF0
YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbWFnZUhhbmRsZTsKIGNsYXNzIEludFBv
aW50OwpAQCAtNDExLDcgKzQxMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNv
cmU6OkZvbnQ+PiBkZWNvZGUoRGVjb2RlciYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNvcmU6OkZvbnQ+Jik7Ci0gICAgc3RhdGlj
IE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXIm
LCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYpOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRs
ZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZWJiOWRiYWIzOGFmZDBkZGNmMzY1NWFjYjk4M2RkMWE3
NWI5NmQyYy4uZDgxN2E3OGQ0ZjlmNzZhYjdkZTdjNTE4NGZiM2FkNzM1NGZmZjBmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250
Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPEZvbnQ+JikKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotT3B0aW9uYWw8UmVmPEZvbnQ+PiBBcmd1bWVudENv
ZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgT3B0aW9uYWw8UmVm
PFdlYkNvcmU6OkZvbnQ+PiYmKQorT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRD
b2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYpCiB7CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3Bw
CmluZGV4IDJkMjZkM2Y1Mjk0ODdhMDA3Y2RmNjQ5MTE5Yjg0OWY2NTU4MjUxNDAuLjFkODRlMmZl
MjY4ZjM0NjBlYjI5NzVjNDJiYTk1ZDE0ZjFkMjM1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMjU3
LDcgKzI1Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9y
bURhdGEoRW5jb2RlciYsIGNvbnN0IFJlZjxGb250PiYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4m
JikKK09wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGJmMmYxY2ZlZTMwZTg2YmIwNGRm
MjlhZmQ0MTM4YjZhNGMzZTFhZC4uYTZmZTc4ZDIyNDc1MjZmYzQwNzk2ODU0NjcyMjg1MTEwNWI1
YzA2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTMwICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0
IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwt
dGV4dC13aXRoLWZvbnQtZmVhdHVyZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGY6IEFkZGVk
LgorCiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZS1hbGlnbiBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCwgR2xvYmFsRXZl
bnRIYW5kbGVycy5pZGwgYW5kIFdpbmRvd0V2ZW50SGFuZGxlcnMuaWRsIHdpdGggdGhlIEhUTUwg
c3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgt
Zm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmls
bC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhY2Q0
MzczZjAyYTk0MjczOGEzYmRkOTYyNGZmYWE5NTVjYzQ0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9udCI7
CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIpIGZvcm1hdCgi
dHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQg
c2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2Vz
IGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgewor
ICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAgICBj
b25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4
dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAgY29u
dGV4dC5maWxsVGV4dCgiQUFBIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQoIkJC
QiIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVh
dHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQt
ZmVhdHVyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTEwN2IyMjliYzVhOWJhNDQzYzUxM2E2YWE5ZWE3
ZmRlZjU4MDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmls
bC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQt
ZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvRm9udFdpdGhG
ZWF0dXJlcy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7CisgICAgZm9udC1mZWF0dXJlLXNldHRp
bmdzOiAidGl0bCIgMTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91
bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9z
c2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFz
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKTsKKyAg
ICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29u
dGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7CisgICAg
Y29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmlsbFRleHQo
ImNjYyIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQt
dmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDYxMzRkN2Q1ZjkxMzcyNDNjYmMxMTI2Yzg5NDg3NTNhZGI1NGE2YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZv
bnQtdmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogbG9jYWwoIlNraWEiKTsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0
MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lh
bEZvbnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2Fu
dmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFs
Rm9udCI7CisgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LXZhcmlhdGlvbnMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZjhiOWQ5YmMzOTQ2MjQ4OGMyOGEwMDM4MWFhNzcxZmZhZDBkNDUzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJp
YXRpb25zLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVjaWFsRm9u
dCI7CisgICAgc3JjOiBsb2NhbCgiU2tpYSIpOworICAgIGZvbnQtd2VpZ2h0OiA3MDAgODAwOwor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyB3aWR0aD0iNDAwIiBoZWlnaHQ9
IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5
bmMgZnVuY3Rpb24oKSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9hZCgiODBweCBTcGVj
aWFsRm9udCIpOworICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJj
YW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IFNwZWNp
YWxGb250IjsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAsIDEwMCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJj
MzMyYTEzY2MxMDI5Mzk1NmI5ODg2NmY3MjMwYmU3YjVkZjkxZQpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMTIzMjQKemNtZUhOVTEoZyM3NS0tYndKU0BxeyVwJiN5cHw8ZFM9KkFsbVN4ISUhZ2R0
biNCTzlQckRAYUJ2WClrbz55QD5ZCnpXbnphc3EhN3xsYGs7cjxtZVBoaTFYNVpgTzkmMnh3aUhy
PVQxcDdpWGBORHZwfG51d0xtJThpZ1JBWCM9Rlk3KQp6K0wzY2RESE9geTw/UWB0P3dLPl5vSD1M
aT96d2txQHA+TSRjbilFbDlHfmRWcDF1MyZPOHxhRm54Mn1eNzRjcl4KemhrelBqYHdLSnErKjAo
X2kkJTctTylBVjVacUJVcXpWe1hvUDU9IXBiTlNxS3pII2lJS3ZTQ2hMdiFwJSU7RzU5CnpwSkth
ZlpocTs7WktQZ2NgJnFWYzdaIz4rUH5TZldHKyR1KiZWMjRoNW0kKU4oI3g7KHtLRGRtIzRtUTdY
OFNCcQp6ZC03Xi1LTDdzbntyNy05VWpnYyNFaVBQSnFUVzBQQkVwWVExbk01NSgmS2hhbzsmQGRq
M3x7VE5NVkxobF5YOEgKenI2Jlh0UFUmSFVPQz0oaVFLKzVZaXN2eiZsZSU1WVokTmFIQlNibnlk
V3N9YElucHp2b2ZPIV5iQnQkMnVCWSZmCnptVXt9aFFtT1IyKCN4OGc0RWtJcmZRTGQyemg1VSU9
K2QoOTVHT2dhc0NWfXtzNGVLJGRpey1mRGB5Wkw/LU1yPgp6UTVUZ1UtaG4ySzg7SU17QjBPcTRA
b3M3KHhRbG8lUVdfNXM/P2F0dnArLW10Jjx1SitvbihKTVN+YnNTaUkzNn4KeiFaU3hZZnNoS0pR
UEVjX2YraUozTTh5elFhV3R6MFQydXxzZWRKNWdqOU5eb0lgWT5PSDt7aW4rbHxDNj9BdTElCnpP
eCNNbW93eUJrWUE0VVRENmZPKEdfVVFVb0tFNXs7JT8jfDskSEdVI0NDPiEyaVlFQWB3KFNrKio9
VnY4c3hQagp6PFE/TCpWUGVMZkkhPk11VENqcVphNXxoOGU9MGZIZmUtYHRVKkUtd0lyRUJVeUF9
RXw5cDxyViN3PFFpJWdDO2QKenVISSRAVz1rPShUelk0OWxzOzMpQXspTEh6UXJ1XzJXYXQxLVAx
I2duemd1RUVXTSthU0J1RTE8eG8jJHBUfURqCnpTTV47clB9Vll+bmlWRD15aTt7WXNjeFVWZV5q
JWduaWNaPHF4eiR3ezh2PnFFMj4jaCY1SEhnTE56T0BTeTljMwp6NFlHbjI2am5CYntgQXstLX1y
cH0kbHBVT1l1SnY2RjJoSm9NMzJ6bFFiXkZYQno5ezI7ZWtpa3dfKyZFXlp4fUkKejZaaTRWKGd8
S0F7ZXkwSmchQ2ZtazFWTlZObmF3cCVRRCgtKHBBej09cG9pZUJBKzNCa0hpe2NeZXBLY3EoOEcl
CnojK3BzK2RENT9lY3FpJExxQE13YWRlWX1lS09vJSlZUi18cU1md1luOTQzOTReY3hfPmBjUF8j
XmNMJWdqaWVtdQp6TTxtd3N3bWVTeTQoWUZ+RFZgdkdtR25NUCZwS1pIKTE8ZWh3eTlWMzI8dm5E
a1EhUnFMRzRUcllnX3NsR2Qrc3EKemdqZE5oSXFSJDVTMzZIIWNKX0lkSyo0bXllfFhBZVAtaDFq
UWRqaGphdjNAezFNM21CJTRsLVpCVzlKTVo0UnRRCnorJHV3QXl1cDIldSp6dDVsMkshbyhjJlp7
WF9ldW8yUD56WFE7eE5AP2I3WXd7OzBMZTVWXnIrWXwlMWclJGdvYQp6T2dZS1d3UG1lKXhlVHtf
VmY5IWBfXj0qc3dscjh9eGFHQE1pJEEmQHtsViZZZylRQmwrYCMkTFdSPkNPUSYhJCgKejlaNzVK
IXNAIzgxPWhwY0Z+eXY2OEUpJitZTyRycWFYO049dV9mJGklWFcoJVZMbG1nQHk4Qn05IS12VnZ8
MDNNCnpeNm52bCpKWTxnan19S2deeiRCQitPb0N2KTtvQjc/NlRNKnlRenkkSjFuLXU5QnRXYyha
am9NMS1CKF9tRW1Ufgp6OSpacTBNX1cyQWRaWmxsV3ZeOStUaSlgQ29MPFREX141TT9RP3VfOyZm
NU9iP0M2Z2tpeXFDNntANz1nO2RYRTYKendhU1AlI1g2c0FSYHw0O1Bpa0hBQzFhSzB3em03TkdE
TmxEYDY1cTYkeG04YStnOFc1SiFzTHh5SSV5P3F0N2JDCnomNmErUGpDUkt1OF8rVU5oZFZnNmp4
N0N0ZlFMaUdeMHQ4VmhsJFBgRWJrQzM4WFY8Nmg7SkdrV0IqR1k9OUI0bQp6e01fSVcyNjVObUZo
PS12VUNaUigqJiF1d1VyO2B1KXttK2U0MzEkeWBENWRKcyZkY3RDb21FK2B0V0p+WHl9c1oKej9f
PllWMX1Calh7b2RkZE0jRk5hNiMyQ3s4OC1VIVpHfXd1WW9APUJfP0UlLT1uQ0k4eEIqPn1oezV+
TzhSMClOCnpFb1VwKkJhYSF9aClpVjA7MSYhO21KUXk5O21GJHRIPDVxVTtBVWleWjNlZXVDXn1+
RmJfX0A1P0ZgWCMyUmZwIQp6OFFleUd7IWBXY2R+K2xFZngrJFFqUVRRbkFybmlSe3Rvb1VlQkV9
VkJXQmh9ck9EJiN3Zz1oUm59KXhXbkV5UHIKentKclJrbjsxfUMkaXo+WnslI0QlM2tMVUtGI2R8
Y2BfTFowVntrOXx7V1c/Qmc5JT93aFdNaTRJZS1IUmV8LS1VCnpgIUBFWUMtRGN2R2t7RXVAQUU/
I3RkVzFUOyolX356dClGfHppIz5taUdPTUU1Z2YxYWVLTGQqYDNKN1k5entDMgp6V2JpT0QkcmxZ
aWhROCFhNEwqKSsoKVlzJnc1NUZnTjY/Y1IjdStUJkR3Z21oRjd0Ymk/TDZQN1M7QlNaS3B4akgK
eiQ8TFlwMG9OaClWSWJoVlNEM3EoRn1xSWhuPCZ6UER8bmF8JmhzTzdSYFFMcmNZPUhjKGlIN3Bw
eHhkV0BrJDt5Cnp2QGRlSj9sU2c0XlViaHd3ZlB6Q3FjNzVTUytBZnZLOFc4dyEmIVJ4bihAek5k
ZGtIa0xDNjAwWE9ee0p6bUJLNAp6bWE/Km95ZHNoQU1SfEYmMVFgKUxaZnhfN0dYYHU/QEpYJUw1
YEZEP195WUM2clplLWh3cXoyWHAzfiU7cTR3OWMKekVsPCNyPipVTDArN2VsaF42SEcxRD40P3pS
fmRhMTk1MzBqJGhrSis4UnlrJFVLZyh3dFd3VCU/OSpEeCF7aVp0CnpIbHVIKWxuR3w5JXZvU0E9
Y3VSNmczM2BCSUtPeU9SKFJ1YVBmKHNgYE56P0BRYzRoPURATyY+YE1rRXdpe1peewp6JjNoMWN4
KFdLe0NPdzxTSVE9MDBsOGxqay0jeVlNd1lMajhNckklMl5UISEmXlNIITA3ZDYqckJjOy1SPCZ1
TCUKeiR3IVNTemRrX148KFFlMDFHQWcqJjs/cSZLcS09QXpPTjsrJVYpOWF7UnpEKXZLTSQ3TlR6
PyhtQH1NMXdEc3JOCnorP3ROais4bkt3czFRdm5yQj8xSD52eXByVzR3NDw7N3A9KmstdFBfNH0z
KTVmMkMobGR4X2JDP3dNbCpQNGd7Wgp6aUs3TF51bC1Jd01fJTYoIVp8X05HUTtMfXJeb09wQl48
JnJ6SXtFKz12Xjx9d3Q4ITBoSD08PSVyWDhCYSt4UGYKentzSEU4dXJVKyNeRXx5RlN2eH0janxM
ayNzbDYoOTFWNiRnSzd4KyplcCE5fGpJdzNNQigwRiZaSXpMXlFUfVpfCmU7dilCfE9XWF8zRj1p
d0t7Qyk4WCk/Y3kzQUFqRko9PWVBOUFZK2RKCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410288</attachid>
            <date>2020-10-01 17:29:10 -0700</date>
            <delta_ts>2020-10-02 11:02:46 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-206118-20201001172909.patch</filename>
            <type>text/plain</type>
            <size>41044</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZjMmYyZmRhNjE4ZTc5
NTBiYWQ3ZTBhMjk0Y2I4NTFkMzBiODRjYS4uYjUyNDJiYzAxMjg5MTEwZjE0ZmNkNWY2ZjM2NGNm
MDk3MDYwNjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRj
aCBzaW1wbHkgc2VyaWFsaXplcyBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQg
Rm9udFBsYXRmb3JtRGF0YS4KKworICAgICAgICBTZXJpYWxpemluZyBhIENURm9udCBpbnZvbHZl
cyBzZXJpYWxpemluZyBpdHMgZm9udCBkZXNjcmlwdG9yJ3MgYXR0cmlidXRlcy4gSG93ZXZlciwK
KyAgICAgICAgdGhlcmUncyBhbiBleHRyYSBzdGVwIGZvciB3ZWIgZm9udHMsIHNpbmNlIHRoZSBm
b250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzIGRvbid0IGluY2x1ZGUKKyAgICAgICAgdGhlIHJh
dyBieXRlcyBvZiB0aGUgZm9udCBmaWxlLiBUaGlzIHdhcyBwcmV2aW91c2x5IGJlaW5nIHNhdmVk
IGluIEZvbnQsIGJ1dCB0aGlzIHBhdGNoCisgICAgICAgIG1vdmVzIHRoYXQgaW50byBGb250UGxh
dGZvcm1EYXRhIGJlY2F1c2Ugb2YgbGF5ZXJpbmcsIGFuZCBhZGRzIHRoZSBTaGFyZWRCdWZmZXIg
dG8gdGhlCisgICAgICAgIHNlcmlhbGl6YXRpb24gcm91dGluZSBmb3Igd2ViIGZvbnRzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRt
bAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6IEZvbnRzIGFuZCBGb250UGxhdGZvcm1EYXRhcyBhcmUgc3VwcG9zZWQgdG8gYmUgaW1t
dXRhYmxlLCBzbworICAgICAgICBoYXZpbmcgYSBzZXR0ZXIgZm9yIHRoZSBGb250RmFjZURhdGEg
aXMgaW5jb3JyZWN0LiBUaGlzIG9iamVjdCBpcyBtb3ZlZCBpbnRvIHRoZSBjb25zdHJ1Y3Rvcgor
ICAgICAgICBpbnN0ZWFkLgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6Zm9udCk6IERlbGV0aW5nIGRlYWQg
Y29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OnNldEZvbnRGYWNlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZhY2VEYXRh
IGNvbnN0KTogRGVsZXRlZC4gTW92ZWQgdG8gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6Y3JlYXRpb25EYXRhIGNvbnN0KTogTW92ZWQgZnJvbSBGb250LgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKTogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBpcyBhIHN0cnVjdCwgc28KKyAgICAgICAg
dGhlcmUncyBubyBuZWVkIGZvciB0aGUgbV8gcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6IERpdHRvLgorCiAyMDIw
LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjhiNTc4YmU3
MTllOWQzNDNhMjM5YjIyNTY5NjQ3MWFhYWZhOTM2ZS4uM2Y1MWZlMjRlMjUzYjJmMGY5NTJmZDY3
N2FiNzRkODBiNTA3NDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOS0zMCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2
MTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFNpbXBs
eSBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBG
b250IGFuZCBQbGF0Zm9ybUZvbnREYXRhLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJl
ZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8
Rm9udD4+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAy
MDIwLTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYTAwZjllMGEyNmJm
MjFhOGJjYzlmZjU1MTAyMmY3NDc5ODEyMGRkLi42ZDM5N2VkZDM2ZmFiYTkzYzI4ZTViM2NmMzU0
MjIwMjllY2ZlNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNjY0LDcgKzM2NjQsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxl
bWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEx
RjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFG
MkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsgfTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAw
NzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRS
dWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJC
MUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9Owog
CQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYy
NiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQw
MDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXgg
NjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNk
YzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3Bw
CkBAIC02NzgsMTEgKzY3OCw4IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKEZvbnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZh
bGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2lu
OjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAg
ICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNl
bGVjdGlvbkNhcGFiaWxpdGllcykpIHsKLSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250
ID0gc291cmNlLT5jYWNoZWRGb250KCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250
RmFjZURhdGEoY2FjaGVkRm9udCA/IGNhY2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxs
cHRyKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVz
Y3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGlu
Z3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJm
MmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRh
NzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNw
cApAQCAtMjEyLDkgKzIxMiw2IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFt
X2luRG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5m
b250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
SXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9y
aWdpbjo6UmVtb3RlKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBib29sIENTU0ZvbnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXgg
YjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYy
Yjk4YWZkZjU4YjEwMzg0MGRhZmY0N2NmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5l
eGlzdGluZ01ldHJpY3NGb3JHbHlwaChnbHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9u
dEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2Jj
MDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0MzUyYmYwYzU0MS4uZWFmNzc2MDI3NzRjMTM0YzFlYzY4
ODcyYjYxYmM0ZTZmNTIwYjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaApAQCAtMjIzLDkgKzIyMyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50
Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9h
dCBkZXNjZW50KTsKICNlbmRpZgogCi0gICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRGYWNlRGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIEZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFs
LCBWaXNpYmlsaXR5LCBPcmllbnRhdGlvbkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9u
dFByb3BlcnRpZXM7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZh
Y2VEYXRhOwotCiAgICAgR2x5cGggbV9zcGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVy
b0dseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAg
LTMyNyw2ICszMjIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
dW5zaWduZWQgbV9zaG91bGROb3RCZVVzZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAv
LyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJh
bGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMzgyLDQgKzM3OSwzNyBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0
IEZvbnQ6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6Rm9udDo6T3JpZ2luPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGb250
OjpPcmlnaW46OlJlbW90ZSwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luOjpMb2NhbAor
ICAgID47Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250OjpJ
bnRlcnN0aXRpYWw+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWwsCisgICAgICAgIFdlYkNvcmU6OkZvbnQ6OkludGVy
c3RpdGlhbDo6WWVzLAorICAgICAgICBXZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWw6Ok5vCisg
ICAgPjsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnQ6OlZp
c2liaWxpdHk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpGb250OjpWaXNpYmlsaXR5LAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5
OjpWaXNpYmxlLAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5OjpJbnZpc2libGUK
KyAgICA+OworfTsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udDo6
T3JpZW50YXRpb25GYWxsYmFjaz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2ssCisgICAgICAgIFdlYkNv
cmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2s6OlllcywKKyAgICAgICAgV2ViQ29yZTo6Rm9u
dDo6T3JpZW50YXRpb25GYWxsYmFjazo6Tm8KKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8g
Rm9udF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCmluZGV4IDBhYTUxNzVlZTA1YTZhNDFhZGM0YzJmMzE2MDI3OTlkZmZh
NjZkMDYuLmYwYWVkYTFiNjQwYzRlNTU1M2UwYmQ1MDZhOWRjOTM2ZmVhZDU0ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
Y3BwCkBAIC00Niw3ICs0Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
KQogewogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRp
b24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVy
aW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZh
cmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBDcmVhdGlvbkRhdGEq
IGNyZWF0aW9uRGF0YSkKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihv
cmllbnRhdGlvbikKICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKQEAgLTU0LDYg
KzU0LDggQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGkKICAgICAsIG1fc3ludGhldGljQm9sZChz
eW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUp
CiB7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkKKyAgICAgICAgbV9jcmVhdGlvbkRhdGEgPSAqY3Jl
YXRpb25EYXRhOwogfQogCiAjaWYgIVVTRShGUkVFVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCAxOGYyMzFhZWMz
MDE2ZGRjZmNlYmY5YzRlNzA2MjFlN2M3Nzg3YjNjLi5kNzQwYjNmMGI5ZmFkNTgyZWVmMTE3NzE4
ZWNjOTQwYmI3ZWJmNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0yNCwxMSArMjQsMTEgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAot
CiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1ZGUgIlNoYXJl
ZEdESU9iamVjdC5oIgpAQCAtNzcsMTMgKzc3LDE1IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNs
YXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIHN0cnVjdCBDcmVhdGlvbkRhdGE7CisKICAgICBGb250UGxhdGZvcm1EYXRhKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwog
Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpI
b3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldp
ZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0
aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVn
dWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4
dFJlbmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogCiAjaWYgVVNFKENPUkVfVEVY
VCkKLSAgICBXRUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9
IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZv
bnRXaWR0aFZhcmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5k
ZXJpbmdNb2RlID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9v
bCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBG
b250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2Rl
ID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nLCBDcmVhdGlvbkRhdGEqID0g
bnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE5OSw2ICsyMDEsMTYg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAKKyAgICBzdHJ1
Y3QgQ3JlYXRpb25EYXRhIHsKKyAgICAgICAgUmVmPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRh
OworICAgICAgICBTdHJpbmcgaXRlbUluQ29sbGVjdGlvbjsKKyAgICB9OworCisgICAgY29uc3Qg
T3B0aW9uYWw8Q3JlYXRpb25EYXRhPiYgY3JlYXRpb25EYXRhKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2NyZWF0aW9uRGF0YTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBw
bGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpIGNvbnN0OwogCkBAIC0yNDUs
NiArMjU3LDggQEAgcHJpdmF0ZToKICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50
IHsgRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoIH07CiAgICAgVGV4dFJlbmRlcmluZ01v
ZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyB9OwogCisgICAgT3B0aW9uYWw8Q3JlYXRpb25EYXRhPiBtX2NyZWF0aW9uRGF0YTsKKwog
ICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3ludGhldGlj
T2JsaXF1ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2Ug
fTsKQEAgLTI2NCw2ICsyNzgsOCBAQCBwcml2YXRlOgogI2lmIFVTRShGUkVFVFlQRSkKICAgICBi
b29sIG1fZml4ZWRXaWR0aCB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIC8vIEFkZGluZyBhbnkg
bm9uLWRlcml2ZWQgaW5mb3JtYXRpb24gdG8gRm9udFBsYXRmb3JtRGF0YSBuZWVkcyBhIHBhcmFs
bGVsIGNoYW5nZSBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5jcHAuCiB9OwogCiAjaWYg
VVNFKENPUkVfVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3Bw
CmluZGV4IGRjYzc5YWQ4Y2E4NWY0Zjc0MjgzYmJhZmYxZDU5MzdlNTI0NjA3YWIuLjI2MmU5M2Nh
YTVmYzFkYzM0MjEzZjViM2RiZjlkNDEwZDBiZDA5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBs
YXRmb3JtRGF0YUNvcmVUZXh0LmNwcApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZv
bnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVl
LCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJp
YW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKLSAgICA6IEZvbnRQbGF0
Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRp
b24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUsIENyZWF0aW9uRGF0YSogY3JlYXRpb25EYXRhKQorICAgIDogRm9udFBsYXRm
b3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlv
biwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5nTW9kZSwgY3JlYXRpb25EYXRhKQogewogICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCmluZGV4IGEyMmU4MjI2OWRiZDRjMDMzNWU1ZWZiMzNmNzkzNTMyMWRl
ZDIyNGEuLmQ0MzFiMmMwODIzMTM3ZjA3ZmE1NmU2YmRhZmYxOTMzMjFjZTZmZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYKIHsKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNy
ZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIGFkZEF0
dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7Ci0gICAgYXV0byBtb2RpZmllZEZvbnREZXNj
cmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVz
KG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIG1v
ZGlmaWVkRm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5
V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsK
ICAgICBBU1NFUlQobW9kaWZpZWRGb250RGVzY3JpcHRvcik7CiAKICAgICBpbnQgc2l6ZSA9IGZv
bnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwpAQCAtNDgsNyArNDgsNyBAQCBGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJgogICAgIGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51
bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250
RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CiAg
ICAgQVNTRVJUKGZvbnQpOwotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCks
IHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRh
KGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksICZjcmVhdGlvbkRhdGEpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVt
SW5Db2xsZWN0aW9uKQpAQCAtODUsNyArODUsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZm9udERlc2NyaXB0b3IuZ2V0KCkpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUlu
Q29sbGVjdGlvbiB9OworICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnREZXNjcmlwdG9yLmdldCgpLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOwogfQogCiBi
b29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYg
Zm9ybWF0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKaW5kZXggNjA3OGUyNWZhMWQ4MmJjZWM5
YjRjYzdiYzcyZTVlN2YyOGVhNzBhZS4uZmZiOWE5NzQ0NGNhMzQ5ZmNhMTdhMzBjNTJkMGI4M2U0
ODM1ZDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAj
aWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0
RmxhZ3MuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtMzMsNyArMzQsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NU
Rm9udERlc2NyaXB0b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKLWNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBzdHJ1
Y3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIApAQCAtNDMsMjEgKzQzLDIzIEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4g
Rm9udEZlYXR1cmVTZXR0aW5nczsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yKQotICAgICAgICA6IG1fZm9u
dERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IpCisgICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yLCBGb250UGxhdGZvcm1E
YXRhOjpDcmVhdGlvbkRhdGEmJiBjcmVhdGlvbkRhdGEpCisgICAgICAgIDogZm9udERlc2NyaXB0
b3IoZm9udERlc2NyaXB0b3IpCisgICAgICAgICwgY3JlYXRpb25EYXRhKFdURk1vdmUoY3JlYXRp
b25EYXRhKSkKICAgICB7CiAgICAgfQogCi0gICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCiAgICAgRm9u
dFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNl
RmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gbV9mb250RGVzY3JpcHRv
cjsKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3I7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIGNyZWF0aW9uRGF0YTsKIH07CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOworV0VCQ09SRV9FWFBPUlQg
c3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnND
b2NvYS5tbQppbmRleCA2ZGU1ZGNjMTQ2NjRjMWRlNjI2MzdjNmY3ZDE3NmJhODEyMDYyNmQ5Li4y
ODE0ZThiNWVmMzJkNTAyNjU4YmFiNWFlZjcxM2NmNjE0NzAyYjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQpAQCAtMjYsMTIgKzI2LDE5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1w
b3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCi0jaW1wb3J0ICJDb2NvYUZvbnQuaCIKKyNpbXBv
cnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0
IDxVSUtpdC9VSUZvbnQuaD4KKyNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbXBv
cnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTM5LDEwICs0Niw2IEBACiAjaW1wb3J0IDxwYWwvY29j
b2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSVBDIHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MDksMjYgKzUxMiwxMzUgQEAgT3B0aW9uYWw8
Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+Ojpk
ZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZv
bnQpCiB7Ci0gICAgYXV0byBjdEZvbnQgPSAhZm9udC0+Zm9udEZhY2VEYXRhKCkgPyBmb250LT5n
ZXRDVEZvbnQoKSA6IG5pbDsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGN0Rm9u
dCk7Ci0gICAgaWYgKGN0Rm9udCkKLSAgICAgICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FG
b250ICopY3RGb250OwotfQorICAgIGNvbnN0IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQtPnBs
YXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCk7
CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEud2lkdGhWYXJpYW50KCk7CisgICAgZW5jb2Rl
ciA8PCBwbGF0Zm9ybURhdGEudGV4dFJlbmRlcmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IHBs
YXRmb3JtRGF0YS5zaXplKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsK
KworICAgIGF1dG8gY3RGb250ID0gcGxhdGZvcm1EYXRhLmZvbnQoKTsKKyAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRDb3B5Rm9udERlc2NyaXB0b3IoY3RGb250KSk7Cisg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0
ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCkpKTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBhdHRy
aWJ1dGVzLmdldCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGNyZWF0aW9uRGF0YSA9IHBsYXRmb3Jt
RGF0YS5jcmVhdGlvbkRhdGEoKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGNy
ZWF0aW9uRGF0YSk7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkgeworICAgICAgICBlbmNvZGVyIDw8
IGNyZWF0aW9uRGF0YS0+Zm9udEZhY2VEYXRhOworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9u
RGF0YS0+aXRlbUluQ29sbGVjdGlvbjsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIHJlZmVy
ZW5jZVVSTCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q0ZVUkxSZWY+KENURm9udENvcHlBdHRyaWJ1
dGUoY3RGb250LCBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlKSkpOworICAgICAgICBhdXRv
IHN0cmluZyA9IENGVVJMR2V0U3RyaW5nKHJlZmVyZW5jZVVSTC5nZXQoKSk7CisgICAgICAgIGVu
Y29kZXIgPDwgU3RyaW5nKHN0cmluZyk7CisgICAgICAgIGVuY29kZXIgPDwgU3RyaW5nKGFkb3B0
Q0YoQ1RGb250Q29weVBvc3RTY3JpcHROYW1lKGN0Rm9udCkpLmdldCgpKTsKKyAgICB9Cit9CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZmluZEZvbnREZXNjcmlwdG9y
KGNvbnN0IFN0cmluZyYgcmVmZXJlbmNlVVJMLCBjb25zdCBTdHJpbmcmIHBvc3RTY3JpcHROYW1l
KQoreworICAgIGF1dG8gdXJsID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgcmVmZXJlbmNlVVJMLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxw
dHIpKTsKKyAgICBpZiAoIXVybCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBm
b250RGVzY3JpcHRvcnMgPSBhZG9wdENGKENURm9udE1hbmFnZXJDcmVhdGVGb250RGVzY3JpcHRv
cnNGcm9tVVJMKHVybC5nZXQoKSkpOworICAgIGlmICghZm9udERlc2NyaXB0b3JzIHx8ICFDRkFy
cmF5R2V0Q291bnQoZm9udERlc2NyaXB0b3JzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKENGQXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpID09IDEp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDVEZvbnREZXNjcmlwdG9yUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGZvbnREZXNjcmlwdG9ycy5nZXQoKSwgMCkpOworCisgICAgLy8gVGhl
cmUncyBzdXBwb3NlZCB0byBvbmx5IGJlIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5LCBidXQg
d2UgY2FuIGJlIGRlZmVuc2l2ZSBoZXJlLgorICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpOyArK2kpIHsKKyAgICAgICAgYXV0
byBmb250RGVzY3JpcHRvciA9IHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgoZm9udERlc2NyaXB0b3JzLmdldCgpLCBpKSk7CisgICAgICAgIGF1
dG8gY3VycmVudFBvc3RTY3JpcHROYW1lID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0cmluZ1Jl
Zj4oQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGUoZm9udERlc2NyaXB0b3IsIGtDVEZvbnRO
YW1lQXR0cmlidXRlKSkpOworICAgICAgICBpZiAoU3RyaW5nKGN1cnJlbnRQb3N0U2NyaXB0TmFt
ZS5nZXQoKSkgPT0gcG9zdFNjcmlwdE5hbWUpCisgICAgICAgICAgICByZXR1cm4gZm9udERlc2Ny
aXB0b3I7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitPcHRpb25hbDxGb250UGxh
dGZvcm1EYXRhPiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPEZvbnRPcmllbnRhdGlvbj4gb3JpZW50
YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9u
Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPFJl
ZjxGb250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYgZGVjb2RlciwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmIGV4aXN0aW5nRm9u
dCkKLXsKLSAgICBib29sIGhhc1BsYXRmb3JtRm9udDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc1BsYXRmb3JtRm9udCkpCisgICAgT3B0aW9uYWw8Rm9udFdpZHRoVmFyaWFudD4gd2lkdGhW
YXJpYW50OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAgIGlmICghd2lkdGhWYXJp
YW50Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxUZXh0UmVuZGVyaW5nTW9kZT4gdGV4dFJlbmRlcmluZ01vZGU7CisgICAgZGVjb2RlciA+
PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdNb2RlLmhhc1ZhbHVl
KCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoIWhhc1BsYXRmb3Jt
Rm9udCkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhpc3RpbmdGb250KTsKKyAgICBPcHRpb25h
bDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhhc1Zh
bHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29s
PiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBpZiAo
IXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+PiBz
eW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gYXR0cmlidXRlczsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJpYnV0
ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4g
aW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9uRGF0
YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3JlYXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaW5jbHVkZXNDcmVhdGlvbkRhdGEudmFsdWUo
KSkgeworICAgICAgICBPcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4gZm9udEZhY2VEYXRhOwor
ICAgICAgICBkZWNvZGVyID4+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgaWYgKCFmb250RmFjZURh
dGEuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAgICBkZWNvZGVyID4+
IGl0ZW1JbkNvbGxlY3Rpb247CisgICAgICAgIGlmICghaXRlbUluQ29sbGVjdGlvbi5oYXNWYWx1
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIGZv
bnRDdXN0b21QbGF0Zm9ybURhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRG
YWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkpOworICAgICAgICBpZiAo
IWZvbnRDdXN0b21QbGF0Zm9ybURhdGEpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICBhdXRvIGJhc2VGb250RGVzY3JpcHRvciA9IGZvbnRDdXN0b21QbGF0Zm9ybURh
dGEtPmZvbnREZXNjcmlwdG9yLmdldCgpOworICAgICAgICBpZiAoIWJhc2VGb250RGVzY3JpcHRv
cikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gZm9udERl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0
ZXMoYmFzZUZvbnREZXNjcmlwdG9yLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgICAgIGF1dG8g
Y3RGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2Ny
aXB0b3IuZ2V0KCksIHNpemUudmFsdWUoKSwgbnVsbHB0cikpOworCisgICAgICAgIGF1dG8gY3Jl
YXRpb25EYXRhID0gRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIHsgZm9udEZhY2VEYXRh
LnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSB9OworICAgICAgICByZXR1cm4gRm9u
dFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3ludGhldGljQm9sZC52
YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9uLnZhbHVlKCksIHdp
ZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgpLCAmY3JlYXRpb25E
YXRhKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHJlZmVyZW5jZVVSTDsKKyAgICBk
ZWNvZGVyID4+IHJlZmVyZW5jZVVSTDsKKyAgICBpZiAoIXJlZmVyZW5jZVVSTC5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBw
b3N0U2NyaXB0TmFtZTsKKyAgICBkZWNvZGVyID4+IHBvc3RTY3JpcHROYW1lOworICAgIGlmICgh
cG9zdFNjcmlwdE5hbWUuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAotICAgIFJldGFpblB0cjxDb2NvYUZvbnQ+IGZvbnQ7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShk
ZWNvZGVyLCBmb250KSkKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERl
c2NyaXB0b3IgPSBmaW5kRm9udERlc2NyaXB0b3IocmVmZXJlbmNlVVJMLnZhbHVlKCksIHBvc3RT
Y3JpcHROYW1lLnZhbHVlKCkpOworICAgIGlmICghZm9udERlc2NyaXB0b3IpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERl
c2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0
dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51
bGxwdHIpKTsKIAotICAgIHJldHVybiBGb250OjpjcmVhdGUoeyAoX19icmlkZ2UgQ1RGb250UmVm
KWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2ludFNpemVdKSB9KTsKKyAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3lu
dGhldGljQm9sZC52YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9u
LnZhbHVlKCksIHdpZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjMzUzMmUwNDNlM2M4M2ZkN2I0NWMxYjdiMWIx
ZjFkMjQ4NDA4YmIyLi5lMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZkNTRlZWJiODkwMzY0NDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTExNzgsNTYgKzExNzgsNDIgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8
V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9udC0+
Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250RmFj
ZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVm
ZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250LT5w
bGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAg
ZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRh
LnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4o
KTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc0ludGVyc3RpdGlhbCgpID8gRm9udDo6SW50ZXJz
dGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5vKTsKKyAgICBlbmNvZGVyIDw8IGZv
bnQtPnZpc2liaWxpdHkoKTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc1RleHRPcmllbnRhdGlv
bkZhbGxiYWNrKCkgPyBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmll
bnRhdGlvbkZhbGxiYWNrOjpObyk7CisgICAgLy8gSW50ZW50aW9uYWxseSBkb24ndCBlbmNvZGUg
bV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrIGJlY2F1c2UgaXQgZG9lc24ndCBhZmZlY3QgZHJh
d0dseXBocygpLgogCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIGZvbnQpOwogfQog
CiBPcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udEZhY2VEYXRhOwot
ICAgIGRlY29kZXIgPj4gaGFzRm9udEZhY2VEYXRhOwotICAgIGlmICghaGFzRm9udEZhY2VEYXRh
Lmhhc1ZhbHVlKCkpCisgICAgT3B0aW9uYWw8Rm9udDo6T3JpZ2luPiBvcmlnaW47CisgICAgZGVj
b2RlciA+PiBvcmlnaW47CisgICAgaWYgKCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVz
dWx0OwotICAgIGlmIChoYXNGb250RmFjZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBmb250RmFjZURhdGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVm
ZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgIGlmICghZm9udEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAg
IGRlY29kZXIgPj4gZm9udFNpemU7Ci0gICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OkludGVyc3RpdGlhbD4g
aXNJbnRlcnN0aXRpYWw7CisgICAgZGVjb2RlciA+PiBpc0ludGVyc3RpdGlhbDsKKyAgICBpZiAo
IWlzSW50ZXJzdGl0aWFsLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzeW50aGV0aWNCb2xkOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OlZpc2liaWxpdHk+
IHZpc2liaWxpdHk7CisgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgIGlmICghdmlzaWJp
bGl0eS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAg
IE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50
aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlmICghc3ludGhldGljSXRhbGljKQotICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGb250OjpPcmllbnRhdGlvbkZhbGxi
YWNrPiBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrOworICAgIGRlY29kZXIgPj4gaXNUZXh0T3Jp
ZW50YXRpb25GYWxsYmFjazsKKyAgICBpZiAoIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2suaGFz
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVz
Y3JpcHRpb24gZGVzY3JpcHRpb247Ci0gICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6
ZSgqZm9udFNpemUpOwotICAgICAgICByZXN1bHQgPSBGb250OjpjcmVhdGUoZm9udEZhY2VEYXRh
LnJlbGVhc2VOb25OdWxsKCksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50
aGV0aWNCb2xkLCAqc3ludGhldGljSXRhbGljKTsKLSAgICB9CisgICAgYXV0byBwbGF0Zm9ybURh
dGEgPSBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2Rlcik7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEu
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBk
ZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4g
Rm9udDo6Y3JlYXRlKHBsYXRmb3JtRGF0YS52YWx1ZSgpLCBvcmlnaW4udmFsdWUoKSwgaXNJbnRl
cnN0aXRpYWwudmFsdWUoKSwgdmlzaWJpbGl0eS52YWx1ZSgpLCBpc1RleHRPcmllbnRhdGlvbkZh
bGxiYWNrLnZhbHVlKCkpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3Y2U1ZWQ0MmVmNTU1NDFlZmFk
YjJhMjFiNzVmNDdlMmE3Y2MwNjMzLi4wNWQwMzU1NGI5ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0NDM0
Y2U2ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtOTUsNiArOTUsNyBAQCBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRT
aXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250
OworY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJ
bWFnZUhhbmRsZTsKIGNsYXNzIEludFBvaW50OwpAQCAtNDA3LDcgKzQwOCw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKICAgICBz
dGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGUoRGVjb2RlciYpOwogICAg
IHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNv
cmU6OkZvbnQ+Jik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gZGVj
b2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYp
OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZWJiOWRiYWIz
OGFmZDBkZGNmMzY1NWFjYjk4M2RkMWE3NWI5NmQyYy4uZDgxN2E3OGQ0ZjlmNzZhYjdkZTdjNTE4
NGZiM2FkNzM1NGZmZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
dXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwg
Y29uc3QgUmVmPEZvbnQ+JikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotT3B0aW9u
YWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0
YShEZWNvZGVyJiwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmKQorT3B0aW9uYWw8Rm9u
dFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDJkMjZkM2Y1Mjk0ODdhMDA3Y2RmNjQ5MTE5
Yjg0OWY2NTU4MjUxNDAuLjFkODRlMmZlMjY4ZjM0NjBlYjI5NzVjNDJiYTk1ZDE0ZjFkMjM1Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFJlZjxGb250PiYp
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIE9wdGlv
bmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJikKK09wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQogewog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjFiMzA0OGJlMmJhNjI3YTYzZTAzYjYwNjAwYTZkZmEzYTI2YzZlYi4uMWFhNGU1ODRmNjZh
MThiNWExYzMwZDNlN2UzMDhlNTBlNTVjZmQ2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBm
b250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVh
dHVyZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL0ZvbnRX
aXRoRmVhdHVyZXMudHRmOiBBZGRlZC4KKwogMjAyMC0xMC0wMSAgS2FybCBSYWNrbGVyICA8cmFj
a2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzgxNCk6IFsgTW9qYXZl
KyByZWxlYXNlIHdrMiBdIGluc3BlY3Rvci9jb25zb2xlL3F1ZXJ5SG9sZGVycy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10
ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlhY2Q0MzczZjAyYTk0MjczOGEzYmRkOTYyNGZmYWE5NTVjYzQ0ZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1
cmVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVj
aWFsRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIp
IGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllv
dSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2Yg
MyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwv
Y2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQi
KTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIiku
Z2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7
CisgICAgY29udGV4dC5maWxsVGV4dCgiQUFBIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmls
bFRleHQoIkJCQiIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRo
LWZvbnQtZmVhdHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTEwN2IyMjliYzVhOWJhNDQzYzUx
M2E2YWE5ZWE3ZmRlZjU4MDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMv
Rm9udFdpdGhGZWF0dXJlcy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7CisgICAgZm9udC1mZWF0
dXJlLXNldHRpbmdzOiAidGl0bCIgMTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PllvdSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cg
b2YgMyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAi
PjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZv
bnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFz
IikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9u
dCI7CisgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQu
ZmlsbFRleHQoImNjYyIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtdmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYxMzRkN2Q1ZjkxMzcyNDNjYmMxMTI2Yzg5NDg3NTNhZGI1
NGE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4
dC13aXRoLWZvbnQtdmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZh
Y2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogbG9jYWwoIlNr
aWEiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgd2lkdGg9IjQwMCIg
aGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgw
cHggU3BlY2lhbEZvbnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBw
eCBTcGVjaWFsRm9udCI7CisgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LXZhcmlhdGlvbnMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZjhiOWQ5YmMzOTQ2MjQ4OGMyOGEwMDM4MWFhNzcxZmZhZDBkNDUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgt
Zm9udC12YXJpYXRpb25zLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJT
cGVjaWFsRm9udCI7CisgICAgc3JjOiBsb2NhbCgiU2tpYSIpOworICAgIGZvbnQtd2VpZ2h0OiA3
MDAgODAwOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyB3aWR0aD0iNDAw
IiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCithZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgYXdhaXQgZG9jdW1lbnQuZm9udHMubG9hZCgi
ODBweCBTcGVjaWFsRm9udCIpOworICAgIGNvbnN0IGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworICAgIGNvbnRleHQuZm9udCA9ICI4
MHB4IFNwZWNpYWxGb250IjsKKyAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAsIDEwMCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDJjMzMyYTEzY2MxMDI5Mzk1NmI5ODg2NmY3MjMwYmU3YjVkZjkxZQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTIzMjQKemNtZUhOVTEoZyM3NS0tYndKU0BxeyVwJiN5cHw8ZFM9KkFs
bVN4ISUhZ2R0biNCTzlQckRAYUJ2WClrbz55QD5ZCnpXbnphc3EhN3xsYGs7cjxtZVBoaTFYNVpg
TzkmMnh3aUhyPVQxcDdpWGBORHZwfG51d0xtJThpZ1JBWCM9Rlk3KQp6K0wzY2RESE9geTw/UWB0
P3dLPl5vSD1MaT96d2txQHA+TSRjbilFbDlHfmRWcDF1MyZPOHxhRm54Mn1eNzRjcl4KemhrelBq
YHdLSnErKjAoX2kkJTctTylBVjVacUJVcXpWe1hvUDU9IXBiTlNxS3pII2lJS3ZTQ2hMdiFwJSU7
RzU5CnpwSkthZlpocTs7WktQZ2NgJnFWYzdaIz4rUH5TZldHKyR1KiZWMjRoNW0kKU4oI3g7KHtL
RGRtIzRtUTdYOFNCcQp6ZC03Xi1LTDdzbntyNy05VWpnYyNFaVBQSnFUVzBQQkVwWVExbk01NSgm
S2hhbzsmQGRqM3x7VE5NVkxobF5YOEgKenI2Jlh0UFUmSFVPQz0oaVFLKzVZaXN2eiZsZSU1WVok
TmFIQlNibnlkV3N9YElucHp2b2ZPIV5iQnQkMnVCWSZmCnptVXt9aFFtT1IyKCN4OGc0RWtJcmZR
TGQyemg1VSU9K2QoOTVHT2dhc0NWfXtzNGVLJGRpey1mRGB5Wkw/LU1yPgp6UTVUZ1UtaG4ySzg7
SU17QjBPcTRAb3M3KHhRbG8lUVdfNXM/P2F0dnArLW10Jjx1SitvbihKTVN+YnNTaUkzNn4KeiFa
U3hZZnNoS0pRUEVjX2YraUozTTh5elFhV3R6MFQydXxzZWRKNWdqOU5eb0lgWT5PSDt7aW4rbHxD
Nj9BdTElCnpPeCNNbW93eUJrWUE0VVRENmZPKEdfVVFVb0tFNXs7JT8jfDskSEdVI0NDPiEyaVlF
QWB3KFNrKio9VnY4c3hQagp6PFE/TCpWUGVMZkkhPk11VENqcVphNXxoOGU9MGZIZmUtYHRVKkUt
d0lyRUJVeUF9RXw5cDxyViN3PFFpJWdDO2QKenVISSRAVz1rPShUelk0OWxzOzMpQXspTEh6UXJ1
XzJXYXQxLVAxI2duemd1RUVXTSthU0J1RTE8eG8jJHBUfURqCnpTTV47clB9Vll+bmlWRD15aTt7
WXNjeFVWZV5qJWduaWNaPHF4eiR3ezh2PnFFMj4jaCY1SEhnTE56T0BTeTljMwp6NFlHbjI2am5C
YntgQXstLX1ycH0kbHBVT1l1SnY2RjJoSm9NMzJ6bFFiXkZYQno5ezI7ZWtpa3dfKyZFXlp4fUkK
ejZaaTRWKGd8S0F7ZXkwSmchQ2ZtazFWTlZObmF3cCVRRCgtKHBBej09cG9pZUJBKzNCa0hpe2Ne
ZXBLY3EoOEclCnojK3BzK2RENT9lY3FpJExxQE13YWRlWX1lS09vJSlZUi18cU1md1luOTQzOTRe
Y3hfPmBjUF8jXmNMJWdqaWVtdQp6TTxtd3N3bWVTeTQoWUZ+RFZgdkdtR25NUCZwS1pIKTE8ZWh3
eTlWMzI8dm5Ea1EhUnFMRzRUcllnX3NsR2Qrc3EKemdqZE5oSXFSJDVTMzZIIWNKX0lkSyo0bXll
fFhBZVAtaDFqUWRqaGphdjNAezFNM21CJTRsLVpCVzlKTVo0UnRRCnorJHV3QXl1cDIldSp6dDVs
MkshbyhjJlp7WF9ldW8yUD56WFE7eE5AP2I3WXd7OzBMZTVWXnIrWXwlMWclJGdvYQp6T2dZS1d3
UG1lKXhlVHtfVmY5IWBfXj0qc3dscjh9eGFHQE1pJEEmQHtsViZZZylRQmwrYCMkTFdSPkNPUSYh
JCgKejlaNzVKIXNAIzgxPWhwY0Z+eXY2OEUpJitZTyRycWFYO049dV9mJGklWFcoJVZMbG1nQHk4
Qn05IS12VnZ8MDNNCnpeNm52bCpKWTxnan19S2deeiRCQitPb0N2KTtvQjc/NlRNKnlRenkkSjFu
LXU5QnRXYyhaam9NMS1CKF9tRW1Ufgp6OSpacTBNX1cyQWRaWmxsV3ZeOStUaSlgQ29MPFREX141
TT9RP3VfOyZmNU9iP0M2Z2tpeXFDNntANz1nO2RYRTYKendhU1AlI1g2c0FSYHw0O1Bpa0hBQzFh
SzB3em03TkdETmxEYDY1cTYkeG04YStnOFc1SiFzTHh5SSV5P3F0N2JDCnomNmErUGpDUkt1OF8r
VU5oZFZnNmp4N0N0ZlFMaUdeMHQ4VmhsJFBgRWJrQzM4WFY8Nmg7SkdrV0IqR1k9OUI0bQp6e01f
SVcyNjVObUZoPS12VUNaUigqJiF1d1VyO2B1KXttK2U0MzEkeWBENWRKcyZkY3RDb21FK2B0V0p+
WHl9c1oKej9fPllWMX1Calh7b2RkZE0jRk5hNiMyQ3s4OC1VIVpHfXd1WW9APUJfP0UlLT1uQ0k4
eEIqPn1oezV+TzhSMClOCnpFb1VwKkJhYSF9aClpVjA7MSYhO21KUXk5O21GJHRIPDVxVTtBVWle
WjNlZXVDXn1+RmJfX0A1P0ZgWCMyUmZwIQp6OFFleUd7IWBXY2R+K2xFZngrJFFqUVRRbkFybmlS
e3Rvb1VlQkV9VkJXQmh9ck9EJiN3Zz1oUm59KXhXbkV5UHIKentKclJrbjsxfUMkaXo+WnslI0Ql
M2tMVUtGI2R8Y2BfTFowVntrOXx7V1c/Qmc5JT93aFdNaTRJZS1IUmV8LS1VCnpgIUBFWUMtRGN2
R2t7RXVAQUU/I3RkVzFUOyolX356dClGfHppIz5taUdPTUU1Z2YxYWVLTGQqYDNKN1k5entDMgp6
V2JpT0QkcmxZaWhROCFhNEwqKSsoKVlzJnc1NUZnTjY/Y1IjdStUJkR3Z21oRjd0Ymk/TDZQN1M7
QlNaS3B4akgKeiQ8TFlwMG9OaClWSWJoVlNEM3EoRn1xSWhuPCZ6UER8bmF8JmhzTzdSYFFMcmNZ
PUhjKGlIN3BweHhkV0BrJDt5Cnp2QGRlSj9sU2c0XlViaHd3ZlB6Q3FjNzVTUytBZnZLOFc4dyEm
IVJ4bihAek5kZGtIa0xDNjAwWE9ee0p6bUJLNAp6bWE/Km95ZHNoQU1SfEYmMVFgKUxaZnhfN0dY
YHU/QEpYJUw1YEZEP195WUM2clplLWh3cXoyWHAzfiU7cTR3OWMKekVsPCNyPipVTDArN2VsaF42
SEcxRD40P3pSfmRhMTk1MzBqJGhrSis4UnlrJFVLZyh3dFd3VCU/OSpEeCF7aVp0CnpIbHVIKWxu
R3w5JXZvU0E9Y3VSNmczM2BCSUtPeU9SKFJ1YVBmKHNgYE56P0BRYzRoPURATyY+YE1rRXdpe1pe
ewp6JjNoMWN4KFdLe0NPdzxTSVE9MDBsOGxqay0jeVlNd1lMajhNckklMl5UISEmXlNIITA3ZDYq
ckJjOy1SPCZ1TCUKeiR3IVNTemRrX148KFFlMDFHQWcqJjs/cSZLcS09QXpPTjsrJVYpOWF7UnpE
KXZLTSQ3TlR6PyhtQH1NMXdEc3JOCnorP3ROais4bkt3czFRdm5yQj8xSD52eXByVzR3NDw7N3A9
KmstdFBfNH0zKTVmMkMobGR4X2JDP3dNbCpQNGd7Wgp6aUs3TF51bC1Jd01fJTYoIVp8X05HUTtM
fXJeb09wQl48JnJ6SXtFKz12Xjx9d3Q4ITBoSD08PSVyWDhCYSt4UGYKentzSEU4dXJVKyNeRXx5
RlN2eH0janxMayNzbDYoOTFWNiRnSzd4KyplcCE5fGpJdzNNQigwRiZaSXpMXlFUfVpfCmU7dilC
fE9XWF8zRj1pd0t7Qyk4WCk/Y3kzQUFqRko9PWVBOUFZK2RKCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCg==
</data>
<flag name="commit-queue"
          id="426202"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410339</attachid>
            <date>2020-10-02 11:02:40 -0700</date>
            <delta_ts>2020-10-02 15:36:38 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-206118-20201002110239.patch</filename>
            <type>text/plain</type>
            <size>41455</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZjMmYyZmRhNjE4ZTc5
NTBiYWQ3ZTBhMjk0Y2I4NTFkMzBiODRjYS4uYjUyNDJiYzAxMjg5MTEwZjE0ZmNkNWY2ZjM2NGNm
MDk3MDYwNjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRj
aCBzaW1wbHkgc2VyaWFsaXplcyBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQg
Rm9udFBsYXRmb3JtRGF0YS4KKworICAgICAgICBTZXJpYWxpemluZyBhIENURm9udCBpbnZvbHZl
cyBzZXJpYWxpemluZyBpdHMgZm9udCBkZXNjcmlwdG9yJ3MgYXR0cmlidXRlcy4gSG93ZXZlciwK
KyAgICAgICAgdGhlcmUncyBhbiBleHRyYSBzdGVwIGZvciB3ZWIgZm9udHMsIHNpbmNlIHRoZSBm
b250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzIGRvbid0IGluY2x1ZGUKKyAgICAgICAgdGhlIHJh
dyBieXRlcyBvZiB0aGUgZm9udCBmaWxlLiBUaGlzIHdhcyBwcmV2aW91c2x5IGJlaW5nIHNhdmVk
IGluIEZvbnQsIGJ1dCB0aGlzIHBhdGNoCisgICAgICAgIG1vdmVzIHRoYXQgaW50byBGb250UGxh
dGZvcm1EYXRhIGJlY2F1c2Ugb2YgbGF5ZXJpbmcsIGFuZCBhZGRzIHRoZSBTaGFyZWRCdWZmZXIg
dG8gdGhlCisgICAgICAgIHNlcmlhbGl6YXRpb24gcm91dGluZSBmb3Igd2ViIGZvbnRzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRt
bAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6IEZvbnRzIGFuZCBGb250UGxhdGZvcm1EYXRhcyBhcmUgc3VwcG9zZWQgdG8gYmUgaW1t
dXRhYmxlLCBzbworICAgICAgICBoYXZpbmcgYSBzZXR0ZXIgZm9yIHRoZSBGb250RmFjZURhdGEg
aXMgaW5jb3JyZWN0LiBUaGlzIG9iamVjdCBpcyBtb3ZlZCBpbnRvIHRoZSBjb25zdHJ1Y3Rvcgor
ICAgICAgICBpbnN0ZWFkLgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6Zm9udCk6IERlbGV0aW5nIGRlYWQg
Y29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OnNldEZvbnRGYWNlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZhY2VEYXRh
IGNvbnN0KTogRGVsZXRlZC4gTW92ZWQgdG8gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6Y3JlYXRpb25EYXRhIGNvbnN0KTogTW92ZWQgZnJvbSBGb250LgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKTogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBpcyBhIHN0cnVjdCwgc28KKyAgICAgICAg
dGhlcmUncyBubyBuZWVkIGZvciB0aGUgbV8gcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6IERpdHRvLgorCiAyMDIw
LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjhiNTc4YmU3
MTllOWQzNDNhMjM5YjIyNTY5NjQ3MWFhYWZhOTM2ZS4uM2Y1MWZlMjRlMjUzYjJmMGY5NTJmZDY3
N2FiNzRkODBiNTA3NDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOS0zMCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2
MTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFNpbXBs
eSBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBG
b250IGFuZCBQbGF0Zm9ybUZvbnREYXRhLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJl
ZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8
Rm9udD4+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAy
MDIwLTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYTAwZjllMGEyNmJm
MjFhOGJjYzlmZjU1MTAyMmY3NDc5ODEyMGRkLi42ZDM5N2VkZDM2ZmFiYTkzYzI4ZTViM2NmMzU0
MjIwMjllY2ZlNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNjY0LDcgKzM2NjQsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxl
bWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEx
RjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFG
MkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsgfTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAw
NzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRS
dWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJC
MUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9Owog
CQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYy
NiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQw
MDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXgg
NjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNk
YzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3Bw
CkBAIC02NzgsMTEgKzY3OCw4IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKEZvbnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZh
bGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2lu
OjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAg
ICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNl
bGVjdGlvbkNhcGFiaWxpdGllcykpIHsKLSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250
ID0gc291cmNlLT5jYWNoZWRGb250KCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250
RmFjZURhdGEoY2FjaGVkRm9udCA/IGNhY2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxs
cHRyKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVz
Y3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGlu
Z3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJm
MmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRh
NzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNw
cApAQCAtMjEyLDkgKzIxMiw2IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFt
X2luRG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5m
b250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
SXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9y
aWdpbjo6UmVtb3RlKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBib29sIENTU0ZvbnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXgg
YjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYy
Yjk4YWZkZjU4YjEwMzg0MGRhZmY0N2NmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5l
eGlzdGluZ01ldHJpY3NGb3JHbHlwaChnbHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9u
dEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2Jj
MDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0MzUyYmYwYzU0MS4uZWFmNzc2MDI3NzRjMTM0YzFlYzY4
ODcyYjYxYmM0ZTZmNTIwYjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaApAQCAtMjIzLDkgKzIyMyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50
Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9h
dCBkZXNjZW50KTsKICNlbmRpZgogCi0gICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRGYWNlRGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIEZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFs
LCBWaXNpYmlsaXR5LCBPcmllbnRhdGlvbkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9u
dFByb3BlcnRpZXM7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZh
Y2VEYXRhOwotCiAgICAgR2x5cGggbV9zcGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVy
b0dseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAg
LTMyNyw2ICszMjIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
dW5zaWduZWQgbV9zaG91bGROb3RCZVVzZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAv
LyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJh
bGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMzgyLDQgKzM3OSwzNyBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0
IEZvbnQ6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6Rm9udDo6T3JpZ2luPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGb250
OjpPcmlnaW46OlJlbW90ZSwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luOjpMb2NhbAor
ICAgID47Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250OjpJ
bnRlcnN0aXRpYWw+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWwsCisgICAgICAgIFdlYkNvcmU6OkZvbnQ6OkludGVy
c3RpdGlhbDo6WWVzLAorICAgICAgICBXZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWw6Ok5vCisg
ICAgPjsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnQ6OlZp
c2liaWxpdHk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpGb250OjpWaXNpYmlsaXR5LAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5
OjpWaXNpYmxlLAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5OjpJbnZpc2libGUK
KyAgICA+OworfTsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udDo6
T3JpZW50YXRpb25GYWxsYmFjaz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2ssCisgICAgICAgIFdlYkNv
cmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2s6OlllcywKKyAgICAgICAgV2ViQ29yZTo6Rm9u
dDo6T3JpZW50YXRpb25GYWxsYmFjazo6Tm8KKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8g
Rm9udF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCmluZGV4IDBhYTUxNzVlZTA1YTZhNDFhZGM0YzJmMzE2MDI3OTlkZmZh
NjZkMDYuLmYwYWVkYTFiNjQwYzRlNTU1M2UwYmQ1MDZhOWRjOTM2ZmVhZDU0ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
Y3BwCkBAIC00Niw3ICs0Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
KQogewogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRp
b24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVy
aW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZh
cmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBDcmVhdGlvbkRhdGEq
IGNyZWF0aW9uRGF0YSkKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihv
cmllbnRhdGlvbikKICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKQEAgLTU0LDYg
KzU0LDggQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGkKICAgICAsIG1fc3ludGhldGljQm9sZChz
eW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUp
CiB7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkKKyAgICAgICAgbV9jcmVhdGlvbkRhdGEgPSAqY3Jl
YXRpb25EYXRhOwogfQogCiAjaWYgIVVTRShGUkVFVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCAxOGYyMzFhZWMz
MDE2ZGRjZmNlYmY5YzRlNzA2MjFlN2M3Nzg3YjNjLi5kNzQwYjNmMGI5ZmFkNTgyZWVmMTE3NzE4
ZWNjOTQwYmI3ZWJmNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0yNCwxMSArMjQsMTEgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAot
CiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1ZGUgIlNoYXJl
ZEdESU9iamVjdC5oIgpAQCAtNzcsMTMgKzc3LDE1IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNs
YXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIHN0cnVjdCBDcmVhdGlvbkRhdGE7CisKICAgICBGb250UGxhdGZvcm1EYXRhKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwog
Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpI
b3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldp
ZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0
aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVn
dWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4
dFJlbmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogCiAjaWYgVVNFKENPUkVfVEVY
VCkKLSAgICBXRUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9
IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZv
bnRXaWR0aFZhcmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5k
ZXJpbmdNb2RlID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9v
bCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBG
b250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2Rl
ID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nLCBDcmVhdGlvbkRhdGEqID0g
bnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE5OSw2ICsyMDEsMTYg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAKKyAgICBzdHJ1
Y3QgQ3JlYXRpb25EYXRhIHsKKyAgICAgICAgUmVmPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRh
OworICAgICAgICBTdHJpbmcgaXRlbUluQ29sbGVjdGlvbjsKKyAgICB9OworCisgICAgY29uc3Qg
T3B0aW9uYWw8Q3JlYXRpb25EYXRhPiYgY3JlYXRpb25EYXRhKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2NyZWF0aW9uRGF0YTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBw
bGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpIGNvbnN0OwogCkBAIC0yNDUs
NiArMjU3LDggQEAgcHJpdmF0ZToKICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50
IHsgRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoIH07CiAgICAgVGV4dFJlbmRlcmluZ01v
ZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyB9OwogCisgICAgT3B0aW9uYWw8Q3JlYXRpb25EYXRhPiBtX2NyZWF0aW9uRGF0YTsKKwog
ICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3ludGhldGlj
T2JsaXF1ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2Ug
fTsKQEAgLTI2NCw2ICsyNzgsOCBAQCBwcml2YXRlOgogI2lmIFVTRShGUkVFVFlQRSkKICAgICBi
b29sIG1fZml4ZWRXaWR0aCB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIC8vIEFkZGluZyBhbnkg
bm9uLWRlcml2ZWQgaW5mb3JtYXRpb24gdG8gRm9udFBsYXRmb3JtRGF0YSBuZWVkcyBhIHBhcmFs
bGVsIGNoYW5nZSBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5jcHAuCiB9OwogCiAjaWYg
VVNFKENPUkVfVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3Bw
CmluZGV4IGRjYzc5YWQ4Y2E4NWY0Zjc0MjgzYmJhZmYxZDU5MzdlNTI0NjA3YWIuLjI2MmU5M2Nh
YTVmYzFkYzM0MjEzZjViM2RiZjlkNDEwZDBiZDA5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBs
YXRmb3JtRGF0YUNvcmVUZXh0LmNwcApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZv
bnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVl
LCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJp
YW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKLSAgICA6IEZvbnRQbGF0
Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRp
b24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUsIENyZWF0aW9uRGF0YSogY3JlYXRpb25EYXRhKQorICAgIDogRm9udFBsYXRm
b3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlv
biwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5nTW9kZSwgY3JlYXRpb25EYXRhKQogewogICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCmluZGV4IGEyMmU4MjI2OWRiZDRjMDMzNWU1ZWZiMzNmNzkzNTMyMWRl
ZDIyNGEuLmQ0MzFiMmMwODIzMTM3ZjA3ZmE1NmU2YmRhZmYxOTMzMjFjZTZmZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYKIHsKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNy
ZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIGFkZEF0
dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7Ci0gICAgYXV0byBtb2RpZmllZEZvbnREZXNj
cmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVz
KG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIG1v
ZGlmaWVkRm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5
V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsK
ICAgICBBU1NFUlQobW9kaWZpZWRGb250RGVzY3JpcHRvcik7CiAKICAgICBpbnQgc2l6ZSA9IGZv
bnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwpAQCAtNDgsNyArNDgsNyBAQCBGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJgogICAgIGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51
bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250
RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CiAg
ICAgQVNTRVJUKGZvbnQpOwotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCks
IHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRh
KGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksICZjcmVhdGlvbkRhdGEpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVt
SW5Db2xsZWN0aW9uKQpAQCAtODUsNyArODUsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZm9udERlc2NyaXB0b3IuZ2V0KCkpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUlu
Q29sbGVjdGlvbiB9OworICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnREZXNjcmlwdG9yLmdldCgpLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOwogfQogCiBi
b29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYg
Zm9ybWF0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKaW5kZXggNjA3OGUyNWZhMWQ4MmJjZWM5
YjRjYzdiYzcyZTVlN2YyOGVhNzBhZS4uZmZiOWE5NzQ0NGNhMzQ5ZmNhMTdhMzBjNTJkMGI4M2U0
ODM1ZDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAj
aWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0
RmxhZ3MuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtMzMsNyArMzQsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NU
Rm9udERlc2NyaXB0b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKLWNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBzdHJ1
Y3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIApAQCAtNDMsMjEgKzQzLDIzIEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4g
Rm9udEZlYXR1cmVTZXR0aW5nczsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yKQotICAgICAgICA6IG1fZm9u
dERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IpCisgICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yLCBGb250UGxhdGZvcm1E
YXRhOjpDcmVhdGlvbkRhdGEmJiBjcmVhdGlvbkRhdGEpCisgICAgICAgIDogZm9udERlc2NyaXB0
b3IoZm9udERlc2NyaXB0b3IpCisgICAgICAgICwgY3JlYXRpb25EYXRhKFdURk1vdmUoY3JlYXRp
b25EYXRhKSkKICAgICB7CiAgICAgfQogCi0gICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCiAgICAgRm9u
dFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNl
RmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gbV9mb250RGVzY3JpcHRv
cjsKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3I7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIGNyZWF0aW9uRGF0YTsKIH07CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOworV0VCQ09SRV9FWFBPUlQg
c3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnND
b2NvYS5tbQppbmRleCA2ZGU1ZGNjMTQ2NjRjMWRlNjI2MzdjNmY3ZDE3NmJhODEyMDYyNmQ5Li4y
ODE0ZThiNWVmMzJkNTAyNjU4YmFiNWFlZjcxM2NmNjE0NzAyYjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQpAQCAtMjYsMTIgKzI2LDE5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1w
b3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCi0jaW1wb3J0ICJDb2NvYUZvbnQuaCIKKyNpbXBv
cnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0
IDxVSUtpdC9VSUZvbnQuaD4KKyNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbXBv
cnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTM5LDEwICs0Niw2IEBACiAjaW1wb3J0IDxwYWwvY29j
b2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSVBDIHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MDksMjYgKzUxMiwxMzUgQEAgT3B0aW9uYWw8
Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+Ojpk
ZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZv
bnQpCiB7Ci0gICAgYXV0byBjdEZvbnQgPSAhZm9udC0+Zm9udEZhY2VEYXRhKCkgPyBmb250LT5n
ZXRDVEZvbnQoKSA6IG5pbDsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGN0Rm9u
dCk7Ci0gICAgaWYgKGN0Rm9udCkKLSAgICAgICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FG
b250ICopY3RGb250OwotfQorICAgIGNvbnN0IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQtPnBs
YXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCk7
CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEud2lkdGhWYXJpYW50KCk7CisgICAgZW5jb2Rl
ciA8PCBwbGF0Zm9ybURhdGEudGV4dFJlbmRlcmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IHBs
YXRmb3JtRGF0YS5zaXplKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsK
KworICAgIGF1dG8gY3RGb250ID0gcGxhdGZvcm1EYXRhLmZvbnQoKTsKKyAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRDb3B5Rm9udERlc2NyaXB0b3IoY3RGb250KSk7Cisg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0
ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCkpKTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBhdHRy
aWJ1dGVzLmdldCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGNyZWF0aW9uRGF0YSA9IHBsYXRmb3Jt
RGF0YS5jcmVhdGlvbkRhdGEoKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGNy
ZWF0aW9uRGF0YSk7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkgeworICAgICAgICBlbmNvZGVyIDw8
IGNyZWF0aW9uRGF0YS0+Zm9udEZhY2VEYXRhOworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9u
RGF0YS0+aXRlbUluQ29sbGVjdGlvbjsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIHJlZmVy
ZW5jZVVSTCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q0ZVUkxSZWY+KENURm9udENvcHlBdHRyaWJ1
dGUoY3RGb250LCBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlKSkpOworICAgICAgICBhdXRv
IHN0cmluZyA9IENGVVJMR2V0U3RyaW5nKHJlZmVyZW5jZVVSTC5nZXQoKSk7CisgICAgICAgIGVu
Y29kZXIgPDwgU3RyaW5nKHN0cmluZyk7CisgICAgICAgIGVuY29kZXIgPDwgU3RyaW5nKGFkb3B0
Q0YoQ1RGb250Q29weVBvc3RTY3JpcHROYW1lKGN0Rm9udCkpLmdldCgpKTsKKyAgICB9Cit9CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZmluZEZvbnREZXNjcmlwdG9y
KGNvbnN0IFN0cmluZyYgcmVmZXJlbmNlVVJMLCBjb25zdCBTdHJpbmcmIHBvc3RTY3JpcHROYW1l
KQoreworICAgIGF1dG8gdXJsID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgcmVmZXJlbmNlVVJMLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxw
dHIpKTsKKyAgICBpZiAoIXVybCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBm
b250RGVzY3JpcHRvcnMgPSBhZG9wdENGKENURm9udE1hbmFnZXJDcmVhdGVGb250RGVzY3JpcHRv
cnNGcm9tVVJMKHVybC5nZXQoKSkpOworICAgIGlmICghZm9udERlc2NyaXB0b3JzIHx8ICFDRkFy
cmF5R2V0Q291bnQoZm9udERlc2NyaXB0b3JzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKENGQXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpID09IDEp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDVEZvbnREZXNjcmlwdG9yUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGZvbnREZXNjcmlwdG9ycy5nZXQoKSwgMCkpOworCisgICAgLy8gVGhl
cmUncyBzdXBwb3NlZCB0byBvbmx5IGJlIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5LCBidXQg
d2UgY2FuIGJlIGRlZmVuc2l2ZSBoZXJlLgorICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpOyArK2kpIHsKKyAgICAgICAgYXV0
byBmb250RGVzY3JpcHRvciA9IHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgoZm9udERlc2NyaXB0b3JzLmdldCgpLCBpKSk7CisgICAgICAgIGF1
dG8gY3VycmVudFBvc3RTY3JpcHROYW1lID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0cmluZ1Jl
Zj4oQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGUoZm9udERlc2NyaXB0b3IsIGtDVEZvbnRO
YW1lQXR0cmlidXRlKSkpOworICAgICAgICBpZiAoU3RyaW5nKGN1cnJlbnRQb3N0U2NyaXB0TmFt
ZS5nZXQoKSkgPT0gcG9zdFNjcmlwdE5hbWUpCisgICAgICAgICAgICByZXR1cm4gZm9udERlc2Ny
aXB0b3I7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitPcHRpb25hbDxGb250UGxh
dGZvcm1EYXRhPiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPEZvbnRPcmllbnRhdGlvbj4gb3JpZW50
YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9u
Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPFJl
ZjxGb250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYgZGVjb2RlciwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmIGV4aXN0aW5nRm9u
dCkKLXsKLSAgICBib29sIGhhc1BsYXRmb3JtRm9udDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc1BsYXRmb3JtRm9udCkpCisgICAgT3B0aW9uYWw8Rm9udFdpZHRoVmFyaWFudD4gd2lkdGhW
YXJpYW50OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAgIGlmICghd2lkdGhWYXJp
YW50Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxUZXh0UmVuZGVyaW5nTW9kZT4gdGV4dFJlbmRlcmluZ01vZGU7CisgICAgZGVjb2RlciA+
PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdNb2RlLmhhc1ZhbHVl
KCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoIWhhc1BsYXRmb3Jt
Rm9udCkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhpc3RpbmdGb250KTsKKyAgICBPcHRpb25h
bDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhhc1Zh
bHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29s
PiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBpZiAo
IXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+PiBz
eW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gYXR0cmlidXRlczsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJpYnV0
ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4g
aW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9uRGF0
YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3JlYXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaW5jbHVkZXNDcmVhdGlvbkRhdGEudmFsdWUo
KSkgeworICAgICAgICBPcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4gZm9udEZhY2VEYXRhOwor
ICAgICAgICBkZWNvZGVyID4+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgaWYgKCFmb250RmFjZURh
dGEuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAgICBkZWNvZGVyID4+
IGl0ZW1JbkNvbGxlY3Rpb247CisgICAgICAgIGlmICghaXRlbUluQ29sbGVjdGlvbi5oYXNWYWx1
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIGZv
bnRDdXN0b21QbGF0Zm9ybURhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRG
YWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkpOworICAgICAgICBpZiAo
IWZvbnRDdXN0b21QbGF0Zm9ybURhdGEpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICBhdXRvIGJhc2VGb250RGVzY3JpcHRvciA9IGZvbnRDdXN0b21QbGF0Zm9ybURh
dGEtPmZvbnREZXNjcmlwdG9yLmdldCgpOworICAgICAgICBpZiAoIWJhc2VGb250RGVzY3JpcHRv
cikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gZm9udERl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0
ZXMoYmFzZUZvbnREZXNjcmlwdG9yLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgICAgIGF1dG8g
Y3RGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2Ny
aXB0b3IuZ2V0KCksIHNpemUudmFsdWUoKSwgbnVsbHB0cikpOworCisgICAgICAgIGF1dG8gY3Jl
YXRpb25EYXRhID0gRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIHsgZm9udEZhY2VEYXRh
LnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSB9OworICAgICAgICByZXR1cm4gRm9u
dFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3ludGhldGljQm9sZC52
YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9uLnZhbHVlKCksIHdp
ZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgpLCAmY3JlYXRpb25E
YXRhKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHJlZmVyZW5jZVVSTDsKKyAgICBk
ZWNvZGVyID4+IHJlZmVyZW5jZVVSTDsKKyAgICBpZiAoIXJlZmVyZW5jZVVSTC5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBw
b3N0U2NyaXB0TmFtZTsKKyAgICBkZWNvZGVyID4+IHBvc3RTY3JpcHROYW1lOworICAgIGlmICgh
cG9zdFNjcmlwdE5hbWUuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAotICAgIFJldGFpblB0cjxDb2NvYUZvbnQ+IGZvbnQ7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShk
ZWNvZGVyLCBmb250KSkKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERl
c2NyaXB0b3IgPSBmaW5kRm9udERlc2NyaXB0b3IocmVmZXJlbmNlVVJMLnZhbHVlKCksIHBvc3RT
Y3JpcHROYW1lLnZhbHVlKCkpOworICAgIGlmICghZm9udERlc2NyaXB0b3IpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERl
c2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0
dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51
bGxwdHIpKTsKIAotICAgIHJldHVybiBGb250OjpjcmVhdGUoeyAoX19icmlkZ2UgQ1RGb250UmVm
KWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2ludFNpemVdKSB9KTsKKyAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3lu
dGhldGljQm9sZC52YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9u
LnZhbHVlKCksIHdpZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjMzUzMmUwNDNlM2M4M2ZkN2I0NWMxYjdiMWIx
ZjFkMjQ4NDA4YmIyLi5lMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZkNTRlZWJiODkwMzY0NDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTExNzgsNTYgKzExNzgsNDIgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8
V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9udC0+
Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250RmFj
ZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVm
ZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250LT5w
bGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAg
ZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRh
LnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4o
KTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc0ludGVyc3RpdGlhbCgpID8gRm9udDo6SW50ZXJz
dGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5vKTsKKyAgICBlbmNvZGVyIDw8IGZv
bnQtPnZpc2liaWxpdHkoKTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc1RleHRPcmllbnRhdGlv
bkZhbGxiYWNrKCkgPyBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmll
bnRhdGlvbkZhbGxiYWNrOjpObyk7CisgICAgLy8gSW50ZW50aW9uYWxseSBkb24ndCBlbmNvZGUg
bV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrIGJlY2F1c2UgaXQgZG9lc24ndCBhZmZlY3QgZHJh
d0dseXBocygpLgogCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIGZvbnQpOwogfQog
CiBPcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udEZhY2VEYXRhOwot
ICAgIGRlY29kZXIgPj4gaGFzRm9udEZhY2VEYXRhOwotICAgIGlmICghaGFzRm9udEZhY2VEYXRh
Lmhhc1ZhbHVlKCkpCisgICAgT3B0aW9uYWw8Rm9udDo6T3JpZ2luPiBvcmlnaW47CisgICAgZGVj
b2RlciA+PiBvcmlnaW47CisgICAgaWYgKCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVz
dWx0OwotICAgIGlmIChoYXNGb250RmFjZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBmb250RmFjZURhdGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVm
ZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgIGlmICghZm9udEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAg
IGRlY29kZXIgPj4gZm9udFNpemU7Ci0gICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OkludGVyc3RpdGlhbD4g
aXNJbnRlcnN0aXRpYWw7CisgICAgZGVjb2RlciA+PiBpc0ludGVyc3RpdGlhbDsKKyAgICBpZiAo
IWlzSW50ZXJzdGl0aWFsLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzeW50aGV0aWNCb2xkOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OlZpc2liaWxpdHk+
IHZpc2liaWxpdHk7CisgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgIGlmICghdmlzaWJp
bGl0eS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAg
IE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50
aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlmICghc3ludGhldGljSXRhbGljKQotICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGb250OjpPcmllbnRhdGlvbkZhbGxi
YWNrPiBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrOworICAgIGRlY29kZXIgPj4gaXNUZXh0T3Jp
ZW50YXRpb25GYWxsYmFjazsKKyAgICBpZiAoIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2suaGFz
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVz
Y3JpcHRpb24gZGVzY3JpcHRpb247Ci0gICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6
ZSgqZm9udFNpemUpOwotICAgICAgICByZXN1bHQgPSBGb250OjpjcmVhdGUoZm9udEZhY2VEYXRh
LnJlbGVhc2VOb25OdWxsKCksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50
aGV0aWNCb2xkLCAqc3ludGhldGljSXRhbGljKTsKLSAgICB9CisgICAgYXV0byBwbGF0Zm9ybURh
dGEgPSBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2Rlcik7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEu
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBk
ZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4g
Rm9udDo6Y3JlYXRlKHBsYXRmb3JtRGF0YS52YWx1ZSgpLCBvcmlnaW4udmFsdWUoKSwgaXNJbnRl
cnN0aXRpYWwudmFsdWUoKSwgdmlzaWJpbGl0eS52YWx1ZSgpLCBpc1RleHRPcmllbnRhdGlvbkZh
bGxiYWNrLnZhbHVlKCkpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3Y2U1ZWQ0MmVmNTU1NDFlZmFk
YjJhMjFiNzVmNDdlMmE3Y2MwNjMzLi4wNWQwMzU1NGI5ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0NDM0
Y2U2ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtOTUsNiArOTUsNyBAQCBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRT
aXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250
OworY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJ
bWFnZUhhbmRsZTsKIGNsYXNzIEludFBvaW50OwpAQCAtNDA3LDcgKzQwOCw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKICAgICBz
dGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGUoRGVjb2RlciYpOwogICAg
IHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNv
cmU6OkZvbnQ+Jik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gZGVj
b2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYp
OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZWJiOWRiYWIz
OGFmZDBkZGNmMzY1NWFjYjk4M2RkMWE3NWI5NmQyYy4uZDgxN2E3OGQ0ZjlmNzZhYjdkZTdjNTE4
NGZiM2FkNzM1NGZmZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
dXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwg
Y29uc3QgUmVmPEZvbnQ+JikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotT3B0aW9u
YWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0
YShEZWNvZGVyJiwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmKQorT3B0aW9uYWw8Rm9u
dFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDJkMjZkM2Y1Mjk0ODdhMDA3Y2RmNjQ5MTE5
Yjg0OWY2NTU4MjUxNDAuLjFkODRlMmZlMjY4ZjM0NjBlYjI5NzVjNDJiYTk1ZDE0ZjFkMjM1Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFJlZjxGb250PiYp
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIE9wdGlv
bmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJikKK09wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQogewog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjFiMzA0OGJlMmJhNjI3YTYzZTAzYjYwNjAwYTZkZmEzYTI2YzZlYi4uMWFhNGU1ODRmNjZh
MThiNWExYzMwZDNlN2UzMDhlNTBlNTVjZmQ2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBm
b250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVh
dHVyZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL0ZvbnRX
aXRoRmVhdHVyZXMudHRmOiBBZGRlZC4KKwogMjAyMC0xMC0wMSAgS2FybCBSYWNrbGVyICA8cmFj
a2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzgxNCk6IFsgTW9qYXZl
KyByZWxlYXNlIHdrMiBdIGluc3BlY3Rvci9jb25zb2xlL3F1ZXJ5SG9sZGVycy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10
ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlhY2Q0MzczZjAyYTk0MjczOGEzYmRkOTYyNGZmYWE5NTVjYzQ0ZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1
cmVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVj
aWFsRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIp
IGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllv
dSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2Yg
MyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwv
Y2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQi
KTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIiku
Z2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9udCI7
CisgICAgY29udGV4dC5maWxsVGV4dCgiQUFBIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQuZmls
bFRleHQoIkJCQiIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRo
LWZvbnQtZmVhdHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTEwN2IyMjliYzVhOWJhNDQzYzUx
M2E2YWE5ZWE3ZmRlZjU4MDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMv
Rm9udFdpdGhGZWF0dXJlcy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7CisgICAgZm9udC1mZWF0
dXJlLXNldHRpbmdzOiAidGl0bCIgMTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PllvdSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cg
b2YgMyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAi
PjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZv
bnQiKTsKKyAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFz
IikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmZvbnQgPSAiODBweCBTcGVjaWFsRm9u
dCI7CisgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOworICAgIGNvbnRleHQu
ZmlsbFRleHQoImNjYyIsIDEwMCwgMjAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13
aXRoLWZvbnQtdmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM0YjM0OWM4NDc0YzFkNzA5OTQ3MmIzOTlhNGQwMzBmYmE0
N2JlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4
dC13aXRoLWZvbnQtdmFyaWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZh
Y2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogbG9jYWwoIlNr
aWEiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgd2lkdGg9IjQwMCIg
aGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3Bl
Y2lhbEZvbnQiKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAg
Y29udGV4dC5mb250ID0gIjgwcHggU3BlY2lhbEZvbnQiOworICAgICAgICBjb250ZXh0LmZpbGxU
ZXh0KCJhYWEiLCAxMDAsIDEwMCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LXZh
cmlhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZv
bnQtdmFyaWF0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NDBhNjc1MDZmOTI2YzBlMWMzNjZkYzRk
MWFkMWU1ODAxNjY2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9maWxsLXRleHQtd2l0aC1mb250LXZhcmlhdGlvbnMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAg
ICBmb250LWZhbWlseTogIlNwZWNpYWxGb250IjsKKyAgICBzcmM6IGxvY2FsKCJTa2lhIik7Cisg
ICAgZm9udC13ZWlnaHQ6IDcwMCA4MDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xl
dCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKQorYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQo
IjgwcHggU3BlY2lhbEZvbnQiKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250
ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAgIGNvbnRleHQuZm9udCA9ICI4
MHB4IFNwZWNpYWxGb250IjsKKyAgICAgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAx
MDApOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IHRleHRO
b2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlNraWEgZG9lcyBub3QgZXhpc3QuIik7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRleHROb2RlLCBjYW52YXMpOworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJl
cy50dGYgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJl
cy50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDJjMzMyYTEzY2MxMDI5Mzk1NmI5ODg2NmY3MjMwYmU3YjVkZjkx
ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTIzMjQKemNtZUhOVTEoZyM3NS0tYndKU0BxeyVw
JiN5cHw8ZFM9KkFsbVN4ISUhZ2R0biNCTzlQckRAYUJ2WClrbz55QD5ZCnpXbnphc3EhN3xsYGs7
cjxtZVBoaTFYNVpgTzkmMnh3aUhyPVQxcDdpWGBORHZwfG51d0xtJThpZ1JBWCM9Rlk3KQp6K0wz
Y2RESE9geTw/UWB0P3dLPl5vSD1MaT96d2txQHA+TSRjbilFbDlHfmRWcDF1MyZPOHxhRm54Mn1e
NzRjcl4KemhrelBqYHdLSnErKjAoX2kkJTctTylBVjVacUJVcXpWe1hvUDU9IXBiTlNxS3pII2lJ
S3ZTQ2hMdiFwJSU7RzU5CnpwSkthZlpocTs7WktQZ2NgJnFWYzdaIz4rUH5TZldHKyR1KiZWMjRo
NW0kKU4oI3g7KHtLRGRtIzRtUTdYOFNCcQp6ZC03Xi1LTDdzbntyNy05VWpnYyNFaVBQSnFUVzBQ
QkVwWVExbk01NSgmS2hhbzsmQGRqM3x7VE5NVkxobF5YOEgKenI2Jlh0UFUmSFVPQz0oaVFLKzVZ
aXN2eiZsZSU1WVokTmFIQlNibnlkV3N9YElucHp2b2ZPIV5iQnQkMnVCWSZmCnptVXt9aFFtT1Iy
KCN4OGc0RWtJcmZRTGQyemg1VSU9K2QoOTVHT2dhc0NWfXtzNGVLJGRpey1mRGB5Wkw/LU1yPgp6
UTVUZ1UtaG4ySzg7SU17QjBPcTRAb3M3KHhRbG8lUVdfNXM/P2F0dnArLW10Jjx1SitvbihKTVN+
YnNTaUkzNn4KeiFaU3hZZnNoS0pRUEVjX2YraUozTTh5elFhV3R6MFQydXxzZWRKNWdqOU5eb0lg
WT5PSDt7aW4rbHxDNj9BdTElCnpPeCNNbW93eUJrWUE0VVRENmZPKEdfVVFVb0tFNXs7JT8jfDsk
SEdVI0NDPiEyaVlFQWB3KFNrKio9VnY4c3hQagp6PFE/TCpWUGVMZkkhPk11VENqcVphNXxoOGU9
MGZIZmUtYHRVKkUtd0lyRUJVeUF9RXw5cDxyViN3PFFpJWdDO2QKenVISSRAVz1rPShUelk0OWxz
OzMpQXspTEh6UXJ1XzJXYXQxLVAxI2duemd1RUVXTSthU0J1RTE8eG8jJHBUfURqCnpTTV47clB9
Vll+bmlWRD15aTt7WXNjeFVWZV5qJWduaWNaPHF4eiR3ezh2PnFFMj4jaCY1SEhnTE56T0BTeTlj
Mwp6NFlHbjI2am5CYntgQXstLX1ycH0kbHBVT1l1SnY2RjJoSm9NMzJ6bFFiXkZYQno5ezI7ZWtp
a3dfKyZFXlp4fUkKejZaaTRWKGd8S0F7ZXkwSmchQ2ZtazFWTlZObmF3cCVRRCgtKHBBej09cG9p
ZUJBKzNCa0hpe2NeZXBLY3EoOEclCnojK3BzK2RENT9lY3FpJExxQE13YWRlWX1lS09vJSlZUi18
cU1md1luOTQzOTReY3hfPmBjUF8jXmNMJWdqaWVtdQp6TTxtd3N3bWVTeTQoWUZ+RFZgdkdtR25N
UCZwS1pIKTE8ZWh3eTlWMzI8dm5Ea1EhUnFMRzRUcllnX3NsR2Qrc3EKemdqZE5oSXFSJDVTMzZI
IWNKX0lkSyo0bXllfFhBZVAtaDFqUWRqaGphdjNAezFNM21CJTRsLVpCVzlKTVo0UnRRCnorJHV3
QXl1cDIldSp6dDVsMkshbyhjJlp7WF9ldW8yUD56WFE7eE5AP2I3WXd7OzBMZTVWXnIrWXwlMWcl
JGdvYQp6T2dZS1d3UG1lKXhlVHtfVmY5IWBfXj0qc3dscjh9eGFHQE1pJEEmQHtsViZZZylRQmwr
YCMkTFdSPkNPUSYhJCgKejlaNzVKIXNAIzgxPWhwY0Z+eXY2OEUpJitZTyRycWFYO049dV9mJGkl
WFcoJVZMbG1nQHk4Qn05IS12VnZ8MDNNCnpeNm52bCpKWTxnan19S2deeiRCQitPb0N2KTtvQjc/
NlRNKnlRenkkSjFuLXU5QnRXYyhaam9NMS1CKF9tRW1Ufgp6OSpacTBNX1cyQWRaWmxsV3ZeOStU
aSlgQ29MPFREX141TT9RP3VfOyZmNU9iP0M2Z2tpeXFDNntANz1nO2RYRTYKendhU1AlI1g2c0FS
YHw0O1Bpa0hBQzFhSzB3em03TkdETmxEYDY1cTYkeG04YStnOFc1SiFzTHh5SSV5P3F0N2JDCnom
NmErUGpDUkt1OF8rVU5oZFZnNmp4N0N0ZlFMaUdeMHQ4VmhsJFBgRWJrQzM4WFY8Nmg7SkdrV0Iq
R1k9OUI0bQp6e01fSVcyNjVObUZoPS12VUNaUigqJiF1d1VyO2B1KXttK2U0MzEkeWBENWRKcyZk
Y3RDb21FK2B0V0p+WHl9c1oKej9fPllWMX1Calh7b2RkZE0jRk5hNiMyQ3s4OC1VIVpHfXd1WW9A
PUJfP0UlLT1uQ0k4eEIqPn1oezV+TzhSMClOCnpFb1VwKkJhYSF9aClpVjA7MSYhO21KUXk5O21G
JHRIPDVxVTtBVWleWjNlZXVDXn1+RmJfX0A1P0ZgWCMyUmZwIQp6OFFleUd7IWBXY2R+K2xFZngr
JFFqUVRRbkFybmlSe3Rvb1VlQkV9VkJXQmh9ck9EJiN3Zz1oUm59KXhXbkV5UHIKentKclJrbjsx
fUMkaXo+WnslI0QlM2tMVUtGI2R8Y2BfTFowVntrOXx7V1c/Qmc5JT93aFdNaTRJZS1IUmV8LS1V
CnpgIUBFWUMtRGN2R2t7RXVAQUU/I3RkVzFUOyolX356dClGfHppIz5taUdPTUU1Z2YxYWVLTGQq
YDNKN1k5entDMgp6V2JpT0QkcmxZaWhROCFhNEwqKSsoKVlzJnc1NUZnTjY/Y1IjdStUJkR3Z21o
Rjd0Ymk/TDZQN1M7QlNaS3B4akgKeiQ8TFlwMG9OaClWSWJoVlNEM3EoRn1xSWhuPCZ6UER8bmF8
JmhzTzdSYFFMcmNZPUhjKGlIN3BweHhkV0BrJDt5Cnp2QGRlSj9sU2c0XlViaHd3ZlB6Q3FjNzVT
UytBZnZLOFc4dyEmIVJ4bihAek5kZGtIa0xDNjAwWE9ee0p6bUJLNAp6bWE/Km95ZHNoQU1SfEYm
MVFgKUxaZnhfN0dYYHU/QEpYJUw1YEZEP195WUM2clplLWh3cXoyWHAzfiU7cTR3OWMKekVsPCNy
PipVTDArN2VsaF42SEcxRD40P3pSfmRhMTk1MzBqJGhrSis4UnlrJFVLZyh3dFd3VCU/OSpEeCF7
aVp0CnpIbHVIKWxuR3w5JXZvU0E9Y3VSNmczM2BCSUtPeU9SKFJ1YVBmKHNgYE56P0BRYzRoPURA
TyY+YE1rRXdpe1peewp6JjNoMWN4KFdLe0NPdzxTSVE9MDBsOGxqay0jeVlNd1lMajhNckklMl5U
ISEmXlNIITA3ZDYqckJjOy1SPCZ1TCUKeiR3IVNTemRrX148KFFlMDFHQWcqJjs/cSZLcS09QXpP
TjsrJVYpOWF7UnpEKXZLTSQ3TlR6PyhtQH1NMXdEc3JOCnorP3ROais4bkt3czFRdm5yQj8xSD52
eXByVzR3NDw7N3A9KmstdFBfNH0zKTVmMkMobGR4X2JDP3dNbCpQNGd7Wgp6aUs3TF51bC1Jd01f
JTYoIVp8X05HUTtMfXJeb09wQl48JnJ6SXtFKz12Xjx9d3Q4ITBoSD08PSVyWDhCYSt4UGYKentz
SEU4dXJVKyNeRXx5RlN2eH0janxMayNzbDYoOTFWNiRnSzd4KyplcCE5fGpJdzNNQigwRiZaSXpM
XlFUfVpfCmU7dilCfE9XWF8zRj1pd0t7Qyk4WCk/Y3kzQUFqRko9PWVBOUFZK2RKCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="commit-queue"
          id="426276"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410381</attachid>
            <date>2020-10-02 15:35:50 -0700</date>
            <delta_ts>2020-10-03 10:31:36 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-206118-20201002153549.patch</filename>
            <type>text/plain</type>
            <size>41725</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZjMmYyZmRhNjE4ZTc5
NTBiYWQ3ZTBhMjk0Y2I4NTFkMzBiODRjYS4uYjUyNDJiYzAxMjg5MTEwZjE0ZmNkNWY2ZjM2NGNm
MDk3MDYwNjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBmb250IGZlYXR1cmVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMTgK
KworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRj
aCBzaW1wbHkgc2VyaWFsaXplcyBhbGwgdGhlIG5vbi1kZXJpdmVkIGRhdGEgaW4gRm9udCBhbmQg
Rm9udFBsYXRmb3JtRGF0YS4KKworICAgICAgICBTZXJpYWxpemluZyBhIENURm9udCBpbnZvbHZl
cyBzZXJpYWxpemluZyBpdHMgZm9udCBkZXNjcmlwdG9yJ3MgYXR0cmlidXRlcy4gSG93ZXZlciwK
KyAgICAgICAgdGhlcmUncyBhbiBleHRyYSBzdGVwIGZvciB3ZWIgZm9udHMsIHNpbmNlIHRoZSBm
b250IGRlc2NyaXB0b3IncyBhdHRyaWJ1dGVzIGRvbid0IGluY2x1ZGUKKyAgICAgICAgdGhlIHJh
dyBieXRlcyBvZiB0aGUgZm9udCBmaWxlLiBUaGlzIHdhcyBwcmV2aW91c2x5IGJlaW5nIHNhdmVk
IGluIEZvbnQsIGJ1dCB0aGlzIHBhdGNoCisgICAgICAgIG1vdmVzIHRoYXQgaW50byBGb250UGxh
dGZvcm1EYXRhIGJlY2F1c2Ugb2YgbGF5ZXJpbmcsIGFuZCBhZGRzIHRoZSBTaGFyZWRCdWZmZXIg
dG8gdGhlCisgICAgICAgIHNlcmlhbGl6YXRpb24gcm91dGluZSBmb3Igd2ViIGZvbnRzLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRt
bAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udCk6IEZvbnRzIGFuZCBGb250UGxhdGZvcm1EYXRhcyBhcmUgc3VwcG9zZWQgdG8gYmUgaW1t
dXRhYmxlLCBzbworICAgICAgICBoYXZpbmcgYSBzZXR0ZXIgZm9yIHRoZSBGb250RmFjZURhdGEg
aXMgaW5jb3JyZWN0LiBUaGlzIG9iamVjdCBpcyBtb3ZlZCBpbnRvIHRoZSBjb25zdHJ1Y3Rvcgor
ICAgICAgICBpbnN0ZWFkLgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNvdXJjZTo6Zm9udCk6IERlbGV0aW5nIGRlYWQg
Y29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OnNldEZvbnRGYWNlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Zm9udEZhY2VEYXRh
IGNvbnN0KTogRGVsZXRlZC4gTW92ZWQgdG8gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRm
b3JtRGF0YTo6Y3JlYXRpb25EYXRhIGNvbnN0KTogTW92ZWQgZnJvbSBGb250LgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKTogRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBpcyBhIHN0cnVjdCwgc28KKyAgICAgICAg
dGhlcmUncyBubyBuZWVkIGZvciB0aGUgbV8gcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6IERpdHRvLgorCiAyMDIw
LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJh
c2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjhiNTc4YmU3
MTllOWQzNDNhMjM5YjIyNTY5NjQ3MWFhYWZhOTM2ZS4uM2Y1MWZlMjRlMjUzYjJmMGY5NTJmZDY3
N2FiNzRkODBiNTA3NDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOS0zMCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUg
UHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0
dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2
MTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFNpbXBs
eSBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIGFsbCB0aGUgbm9uLWRlcml2ZWQgZGF0YSBpbiBG
b250IGFuZCBQbGF0Zm9ybUZvbnREYXRhLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJl
ZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8
Rm9udD4+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZjxGb250Pj46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAy
MDIwLTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGJhc2ljIGluZnJhc3RydWN0dXJlIGZvciBBdWRpb1dvcmtsZXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYTAwZjllMGEyNmJm
MjFhOGJjYzlmZjU1MTAyMmY3NDc5ODEyMGRkLi42ZDM5N2VkZDM2ZmFiYTkzYzI4ZTViM2NmMzU0
MjIwMjllY2ZlNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNjY0LDcgKzM2NjQsNyBAQAogCQlCMkExRjJBQjBDRUYwQUJG
MDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxl
bWVudC5oICovOyB9OwogCQlCMkExRjJBRTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkEx
RjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyQTFG
MkIxMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkExRjJBODBDRUYwQUJGMDA0
NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oICovOyB9OwotCQlCMkFGRkM3RTBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJBRkZDNzYwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLzsgfTsKKwkJQjJBRkZDN0UwRDAwQTVDMTAwMzAw
NzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQUZGQzc2MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjJCMUY3MTcwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRS
dWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJC
MUY3MTUwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oICovOyB9Owog
CQlCMkMzREEyNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUYzMEQwMDZDMUQwMEVGNkYy
NiAvKiBCaWRpQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUIyQzNEQTI1MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyQzNEOUY0MEQw
MDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXgg
NjJlYmQ3MjZhYTUwNzQ0NzI4OTk2ODY3NzczZjNjZDI0NDYwYzBlYS4uZDI2YmQyMjhkNjQwODNk
YzZlYTEyMzgxOTBhYzliN2Q3NmNmYTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3Bw
CkBAIC02NzgsMTEgKzY3OCw4IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKEZvbnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZh
bGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2lu
OjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAg
ICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNl
bGVjdGlvbkNhcGFiaWxpdGllcykpIHsKLSAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250
ID0gc291cmNlLT5jYWNoZWRGb250KCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250
RmFjZURhdGEoY2FjaGVkRm9udCA/IGNhY2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxs
cHRyKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVz
Y3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0dXJlU2V0dGlu
Z3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OkZhaWx1cmU6CiAgICAgICAgICAgICBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4IDIxMWI2MDhmZWJm
MmFiMmJmYjk2MThlZTE0NDEzNjk3OTM4OGRkZGUuLmU2ZWExODE2ZmZjM2NhNmQwNDUwMjNhOGRh
NzczNGJkYWM1MjI4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNw
cApAQCAtMjEyLDkgKzIxMiw2IEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgaWYgKCFt
X2luRG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5m
b250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGlj
SXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9y
aWdpbjo6UmVtb3RlKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBib29sIENTU0ZvbnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNlU291cmNl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXgg
YjhmZGU1N2NiY2E5NTMwMDg1YTAyZjc3YTEzN2I3MTU0OGZlOTUwMC4uNTRiOWI3NWVmNzFjYzYy
Yjk4YWZkZjU4YjEwMzg0MGRhZmY0N2NmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKQEAgLTcxNSw5ICs3MTUsNCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5l
eGlzdGluZ01ldHJpY3NGb3JHbHlwaChnbHlwaCk7CiB9CiAKLXZvaWQgRm9udDo6c2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQotewotICAgIG1fZm9u
dEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggOTBlN2Jj
MDc5MGFkMDRkZjE3YzJmYzc3ZGIzMTg0MzUyYmYwYzU0MS4uZWFmNzc2MDI3NzRjMTM0YzFlYzY4
ODcyYjYxYmM0ZTZmNTIwYjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaApAQCAtMjIzLDkgKzIyMyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50
Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKGNvbnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9h
dCBkZXNjZW50KTsKICNlbmRpZgogCi0gICAgU2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRGYWNlRGF0YS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYpOwotCiBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIEZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIE9yaWdpbiwgSW50ZXJzdGl0aWFs
LCBWaXNpYmlsaXR5LCBPcmllbnRhdGlvbkZhbGxiYWNrKTsKIApAQCAtMjk3LDggKzI5NCw2IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIG1fc2NyaXB0Rm9u
dFByb3BlcnRpZXM7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZm9udEZh
Y2VEYXRhOwotCiAgICAgR2x5cGggbV9zcGFjZUdseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVy
b0dseXBoIHsgMCB9OwogICAgIEdseXBoIG1femVyb1dpZHRoU3BhY2VHbHlwaCB7IDAgfTsKQEAg
LTMyNyw2ICszMjIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
dW5zaWduZWQgbV9zaG91bGROb3RCZVVzZWRGb3JBcmFiaWMgOiAxOwogI2VuZGlmCisKKyAgICAv
LyBBZGRpbmcgYW55IG5vbi1kZXJpdmVkIGluZm9ybWF0aW9uIHRvIEZvbnQgbmVlZHMgYSBwYXJh
bGxlbCBjaGFuZ2UgaW4gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcC4KIH07CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMzgyLDQgKzM3OSwzNyBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0
IEZvbnQ6OndpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6Rm9udDo6T3JpZ2luPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGb250
OjpPcmlnaW46OlJlbW90ZSwKKyAgICAgICAgV2ViQ29yZTo6Rm9udDo6T3JpZ2luOjpMb2NhbAor
ICAgID47Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGb250OjpJ
bnRlcnN0aXRpYWw+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWwsCisgICAgICAgIFdlYkNvcmU6OkZvbnQ6OkludGVy
c3RpdGlhbDo6WWVzLAorICAgICAgICBXZWJDb3JlOjpGb250OjpJbnRlcnN0aXRpYWw6Ok5vCisg
ICAgPjsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkZvbnQ6OlZp
c2liaWxpdHk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpGb250OjpWaXNpYmlsaXR5LAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5
OjpWaXNpYmxlLAorICAgICAgICBXZWJDb3JlOjpGb250OjpWaXNpYmlsaXR5OjpJbnZpc2libGUK
KyAgICA+OworfTsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Rm9udDo6
T3JpZW50YXRpb25GYWxsYmFjaz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYkNvcmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2ssCisgICAgICAgIFdlYkNv
cmU6OkZvbnQ6Ok9yaWVudGF0aW9uRmFsbGJhY2s6OlllcywKKyAgICAgICAgV2ViQ29yZTo6Rm9u
dDo6T3JpZW50YXRpb25GYWxsYmFjazo6Tm8KKyAgICA+OworfTsKKworfQorCiAjZW5kaWYgLy8g
Rm9udF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuY3BwCmluZGV4IDBhYTUxNzVlZTA1YTZhNDFhZGM0YzJmMzE2MDI3OTlkZmZh
NjZkMDYuLmYwYWVkYTFiNjQwYzRlNTU1M2UwYmQ1MDZhOWRjOTM2ZmVhZDU0ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
Y3BwCkBAIC00Niw3ICs0Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEo
KQogewogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRp
b24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVy
aW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlx
dWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZh
cmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBDcmVhdGlvbkRhdGEq
IGNyZWF0aW9uRGF0YSkKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9vcmllbnRhdGlvbihv
cmllbnRhdGlvbikKICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKQEAgLTU0LDYg
KzU0LDggQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGkKICAgICAsIG1fc3ludGhldGljQm9sZChz
eW50aGV0aWNCb2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKHN5bnRoZXRpY09ibGlxdWUp
CiB7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkKKyAgICAgICAgbV9jcmVhdGlvbkRhdGEgPSAqY3Jl
YXRpb25EYXRhOwogfQogCiAjaWYgIVVTRShGUkVFVFlQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCAxOGYyMzFhZWMz
MDE2ZGRjZmNlYmY5YzRlNzA2MjFlN2M3Nzg3YjNjLi5kNzQwYjNmMGI5ZmFkNTgyZWVmMTE3NzE4
ZWNjOTQwYmI3ZWJmNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0yNCwxMSArMjQsMTEgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAot
CiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1ZGUgIlNoYXJl
ZEdESU9iamVjdC5oIgpAQCAtNzcsMTMgKzc3LDE1IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNs
YXNzIEZvbnRQbGF0Zm9ybURhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgorICAgIHN0cnVjdCBDcmVhdGlvbkRhdGE7CisKICAgICBGb250UGxhdGZvcm1EYXRhKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSk7CiAgICAgRm9udFBsYXRmb3JtRGF0YSgpOwog
Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0aW9uOjpI
b3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldp
ZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyk7CisgICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0Jv
bGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gRm9udE9yaWVudGF0
aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gRm9udFdpZHRoVmFyaWFudDo6UmVn
dWxhcldpZHRoLCBUZXh0UmVuZGVyaW5nTW9kZSA9IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4
dFJlbmRlcmluZywgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogCiAjaWYgVVNFKENPUkVfVEVY
VCkKLSAgICBXRUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQg
c2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9
IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZv
bnRXaWR0aFZhcmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5k
ZXJpbmdNb2RlID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9v
bCBzeW50aGV0aWNCb2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBG
b250T3JpZW50YXRpb24gPSBGb250T3JpZW50YXRpb246Okhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2Rl
ID0gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nLCBDcmVhdGlvbkRhdGEqID0g
bnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE5OSw2ICsyMDEsMTYg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAKKyAgICBzdHJ1
Y3QgQ3JlYXRpb25EYXRhIHsKKyAgICAgICAgUmVmPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRh
OworICAgICAgICBTdHJpbmcgaXRlbUluQ29sbGVjdGlvbjsKKyAgICB9OworCisgICAgY29uc3Qg
T3B0aW9uYWw8Q3JlYXRpb25EYXRhPiYgY3JlYXRpb25EYXRhKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2NyZWF0aW9uRGF0YTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBw
bGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpIGNvbnN0OwogCkBAIC0yNDUs
NiArMjU3LDggQEAgcHJpdmF0ZToKICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50
IHsgRm9udFdpZHRoVmFyaWFudDo6UmVndWxhcldpZHRoIH07CiAgICAgVGV4dFJlbmRlcmluZ01v
ZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRl
cmluZyB9OwogCisgICAgT3B0aW9uYWw8Q3JlYXRpb25EYXRhPiBtX2NyZWF0aW9uRGF0YTsKKwog
ICAgIGJvb2wgbV9zeW50aGV0aWNCb2xkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3ludGhldGlj
T2JsaXF1ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2Ug
fTsKQEAgLTI2NCw2ICsyNzgsOCBAQCBwcml2YXRlOgogI2lmIFVTRShGUkVFVFlQRSkKICAgICBi
b29sIG1fZml4ZWRXaWR0aCB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIC8vIEFkZGluZyBhbnkg
bm9uLWRlcml2ZWQgaW5mb3JtYXRpb24gdG8gRm9udFBsYXRmb3JtRGF0YSBuZWVkcyBhIHBhcmFs
bGVsIGNoYW5nZSBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5jcHAuCiB9OwogCiAjaWYg
VVNFKENPUkVfVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3Bw
CmluZGV4IGRjYzc5YWQ4Y2E4NWY0Zjc0MjgzYmJhZmYxZDU5MzdlNTI0NjA3YWIuLjI2MmU5M2Nh
YTVmYzFkYzM0MjEzZjViM2RiZjlkNDEwZDBiZDA5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBs
YXRmb3JtRGF0YUNvcmVUZXh0LmNwcApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmIGZv
bnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVl
LCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJp
YW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKLSAgICA6IEZvbnRQbGF0
Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRp
b24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmluZ01vZGUpCitGb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUsIENyZWF0aW9uRGF0YSogY3JlYXRpb25EYXRhKQorICAgIDogRm9udFBsYXRm
b3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlv
biwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5nTW9kZSwgY3JlYXRpb25EYXRhKQogewogICAg
IEFTU0VSVF9BUkcoZm9udCwgZm9udCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCmluZGV4IGEyMmU4MjI2OWRiZDRjMDMzNWU1ZWZiMzNmNzkzNTMyMWRl
ZDIyNGEuLmQ0MzFiMmMwODIzMTM3ZjA3ZmE1NmU2YmRhZmYxOTMzMjFjZTZmZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgRm9udFBsYXRmb3JtRGF0
YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYKIHsKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNy
ZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIGFkZEF0
dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7Ci0gICAgYXV0byBtb2RpZmllZEZvbnREZXNj
cmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVz
KG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIG1v
ZGlmaWVkRm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5
V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsK
ICAgICBBU1NFUlQobW9kaWZpZWRGb250RGVzY3JpcHRvcik7CiAKICAgICBpbnQgc2l6ZSA9IGZv
bnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwpAQCAtNDgsNyArNDgsNyBAQCBGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJgogICAgIGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51
bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250
RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CiAg
ICAgQVNTRVJUKGZvbnQpOwotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCks
IHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOworICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRh
KGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFu
dCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksICZjcmVhdGlvbkRhdGEpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1
c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVt
SW5Db2xsZWN0aW9uKQpAQCAtODUsNyArODUsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZm9udERlc2NyaXB0b3IuZ2V0KCkpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUlu
Q29sbGVjdGlvbiB9OworICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnREZXNjcmlwdG9yLmdldCgpLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOwogfQogCiBi
b29sIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OnN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYg
Zm9ybWF0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKaW5kZXggNjA3OGUyNWZhMWQ4MmJjZWM5
YjRjYzdiYzcyZTVlN2YyOGVhNzBhZS4uZmZiOWE5NzQ0NGNhMzQ5ZmNhMTdhMzBjNTJkMGI4M2U0
ODM1ZDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAj
aWZuZGVmIEZvbnRDdXN0b21QbGF0Zm9ybURhdGFfaAogI2RlZmluZSBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhX2gKIAorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJUZXh0
RmxhZ3MuaCIKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRkJhc2UuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtMzMsNyArMzQsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NU
Rm9udERlc2NyaXB0b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKLWNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBzdHJ1
Y3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIApAQCAtNDMsMjEgKzQzLDIzIEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNldHRpbmdzPGludD4g
Rm9udEZlYXR1cmVTZXR0aW5nczsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yKQotICAgICAgICA6IG1fZm9u
dERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IpCisgICAgZXhwbGljaXQgRm9udEN1c3RvbVBsYXRm
b3JtRGF0YShDVEZvbnREZXNjcmlwdG9yUmVmIGZvbnREZXNjcmlwdG9yLCBGb250UGxhdGZvcm1E
YXRhOjpDcmVhdGlvbkRhdGEmJiBjcmVhdGlvbkRhdGEpCisgICAgICAgIDogZm9udERlc2NyaXB0
b3IoZm9udERlc2NyaXB0b3IpCisgICAgICAgICwgY3JlYXRpb25EYXRhKFdURk1vdmUoY3JlYXRp
b25EYXRhKSkKICAgICB7CiAgICAgfQogCi0gICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCiAgICAgRm9u
dFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJv
b2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNl
RmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gbV9mb250RGVzY3JpcHRv
cjsKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERlc2NyaXB0b3I7Cisg
ICAgRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIGNyZWF0aW9uRGF0YTsKIH07CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOworV0VCQ09SRV9FWFBPUlQg
c3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnND
b2NvYS5tbQppbmRleCA2ZGU1ZGNjMTQ2NjRjMWRlNjI2MzdjNmY3ZDE3NmJhODEyMDYyNmQ5Li4y
ODE0ZThiNWVmMzJkNTAyNjU4YmFiNWFlZjcxM2NmNjE0NzAyYjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQpAQCAtMjYsMTIgKzI2LDE5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1w
b3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCi0jaW1wb3J0ICJDb2NvYUZvbnQuaCIKKyNpbXBv
cnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F0dHJpYnV0ZWRTdHJp
bmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaD4KKyNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0
IDxVSUtpdC9VSUZvbnQuaD4KKyNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbXBv
cnQgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTM5LDEwICs0Niw2IEBACiAjaW1wb3J0IDxwYWwvY29j
b2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jaW1wb3J0IDxVSUtpdC9VSUZvbnQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSVBDIHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MDksMjYgKzUxMiwxMzUgQEAgT3B0aW9uYWw8
Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+Ojpk
ZWNvZGVQbGF0Zm9ybUQKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mIGZv
bnQpCiB7Ci0gICAgYXV0byBjdEZvbnQgPSAhZm9udC0+Zm9udEZhY2VEYXRhKCkgPyBmb250LT5n
ZXRDVEZvbnQoKSA6IG5pbDsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGN0Rm9u
dCk7Ci0gICAgaWYgKGN0Rm9udCkKLSAgICAgICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FG
b250ICopY3RGb250OwotfQorICAgIGNvbnN0IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQtPnBs
YXRmb3JtRGF0YSgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLm9yaWVudGF0aW9uKCk7
CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEud2lkdGhWYXJpYW50KCk7CisgICAgZW5jb2Rl
ciA8PCBwbGF0Zm9ybURhdGEudGV4dFJlbmRlcmluZ01vZGUoKTsKKyAgICBlbmNvZGVyIDw8IHBs
YXRmb3JtRGF0YS5zaXplKCk7CisgICAgZW5jb2RlciA8PCBwbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpOworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKTsK
KworICAgIGF1dG8gY3RGb250ID0gcGxhdGZvcm1EYXRhLmZvbnQoKTsKKyAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRDb3B5Rm9udERlc2NyaXB0b3IoY3RGb250KSk7Cisg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ29weUF0dHJpYnV0
ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCkpKTsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBhdHRy
aWJ1dGVzLmdldCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGNyZWF0aW9uRGF0YSA9IHBsYXRmb3Jt
RGF0YS5jcmVhdGlvbkRhdGEoKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGJvb2w+KGNy
ZWF0aW9uRGF0YSk7CisgICAgaWYgKGNyZWF0aW9uRGF0YSkgeworICAgICAgICBlbmNvZGVyIDw8
IGNyZWF0aW9uRGF0YS0+Zm9udEZhY2VEYXRhOworICAgICAgICBlbmNvZGVyIDw8IGNyZWF0aW9u
RGF0YS0+aXRlbUluQ29sbGVjdGlvbjsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIHJlZmVy
ZW5jZVVSTCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q0ZVUkxSZWY+KENURm9udENvcHlBdHRyaWJ1
dGUoY3RGb250LCBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlKSkpOworICAgICAgICBhdXRv
IHN0cmluZyA9IENGVVJMR2V0U3RyaW5nKHJlZmVyZW5jZVVSTC5nZXQoKSk7CisgICAgICAgIGVu
Y29kZXIgPDwgU3RyaW5nKHN0cmluZyk7CisgICAgICAgIGVuY29kZXIgPDwgU3RyaW5nKGFkb3B0
Q0YoQ1RGb250Q29weVBvc3RTY3JpcHROYW1lKGN0Rm9udCkpLmdldCgpKTsKKyAgICB9Cit9CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZmluZEZvbnREZXNjcmlwdG9y
KGNvbnN0IFN0cmluZyYgcmVmZXJlbmNlVVJMLCBjb25zdCBTdHJpbmcmIHBvc3RTY3JpcHROYW1l
KQoreworICAgIGF1dG8gdXJsID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgcmVmZXJlbmNlVVJMLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIG51bGxw
dHIpKTsKKyAgICBpZiAoIXVybCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBm
b250RGVzY3JpcHRvcnMgPSBhZG9wdENGKENURm9udE1hbmFnZXJDcmVhdGVGb250RGVzY3JpcHRv
cnNGcm9tVVJMKHVybC5nZXQoKSkpOworICAgIGlmICghZm9udERlc2NyaXB0b3JzIHx8ICFDRkFy
cmF5R2V0Q291bnQoZm9udERlc2NyaXB0b3JzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKENGQXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpID09IDEp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDVEZvbnREZXNjcmlwdG9yUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGZvbnREZXNjcmlwdG9ycy5nZXQoKSwgMCkpOworCisgICAgLy8gVGhl
cmUncyBzdXBwb3NlZCB0byBvbmx5IGJlIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5LCBidXQg
d2UgY2FuIGJlIGRlZmVuc2l2ZSBoZXJlLgorICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENG
QXJyYXlHZXRDb3VudChmb250RGVzY3JpcHRvcnMuZ2V0KCkpOyArK2kpIHsKKyAgICAgICAgYXV0
byBmb250RGVzY3JpcHRvciA9IHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgoZm9udERlc2NyaXB0b3JzLmdldCgpLCBpKSk7CisgICAgICAgIGF1
dG8gY3VycmVudFBvc3RTY3JpcHROYW1lID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDRlN0cmluZ1Jl
Zj4oQ1RGb250RGVzY3JpcHRvckNvcHlBdHRyaWJ1dGUoZm9udERlc2NyaXB0b3IsIGtDVEZvbnRO
YW1lQXR0cmlidXRlKSkpOworICAgICAgICBpZiAoU3RyaW5nKGN1cnJlbnRQb3N0U2NyaXB0TmFt
ZS5nZXQoKSkgPT0gcG9zdFNjcmlwdE5hbWUpCisgICAgICAgICAgICByZXR1cm4gZm9udERlc2Ny
aXB0b3I7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitPcHRpb25hbDxGb250UGxh
dGZvcm1EYXRhPiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPEZvbnRPcmllbnRhdGlvbj4gb3JpZW50
YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAgICBpZiAoIW9yaWVudGF0aW9u
Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPFJl
ZjxGb250Pj4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYgZGVjb2RlciwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmIGV4aXN0aW5nRm9u
dCkKLXsKLSAgICBib29sIGhhc1BsYXRmb3JtRm9udDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc1BsYXRmb3JtRm9udCkpCisgICAgT3B0aW9uYWw8Rm9udFdpZHRoVmFyaWFudD4gd2lkdGhW
YXJpYW50OworICAgIGRlY29kZXIgPj4gd2lkdGhWYXJpYW50OworICAgIGlmICghd2lkdGhWYXJp
YW50Lmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxUZXh0UmVuZGVyaW5nTW9kZT4gdGV4dFJlbmRlcmluZ01vZGU7CisgICAgZGVjb2RlciA+
PiB0ZXh0UmVuZGVyaW5nTW9kZTsKKyAgICBpZiAoIXRleHRSZW5kZXJpbmdNb2RlLmhhc1ZhbHVl
KCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAoIWhhc1BsYXRmb3Jt
Rm9udCkKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoZXhpc3RpbmdGb250KTsKKyAgICBPcHRpb25h
bDxmbG9hdD4gc2l6ZTsKKyAgICBkZWNvZGVyID4+IHNpemU7CisgICAgaWYgKCFzaXplLmhhc1Zh
bHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29s
PiBzeW50aGV0aWNCb2xkOworICAgIGRlY29kZXIgPj4gc3ludGhldGljQm9sZDsKKyAgICBpZiAo
IXN5bnRoZXRpY0JvbGQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgZGVjb2RlciA+PiBz
eW50aGV0aWNPYmxpcXVlOworICAgIGlmICghc3ludGhldGljT2JsaXF1ZS5oYXNWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gYXR0cmlidXRlczsKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGF0dHJpYnV0
ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4g
aW5jbHVkZXNDcmVhdGlvbkRhdGE7CisgICAgZGVjb2RlciA+PiBpbmNsdWRlc0NyZWF0aW9uRGF0
YTsKKyAgICBpZiAoIWluY2x1ZGVzQ3JlYXRpb25EYXRhLmhhc1ZhbHVlKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoaW5jbHVkZXNDcmVhdGlvbkRhdGEudmFsdWUo
KSkgeworICAgICAgICBPcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4gZm9udEZhY2VEYXRhOwor
ICAgICAgICBkZWNvZGVyID4+IGZvbnRGYWNlRGF0YTsKKyAgICAgICAgaWYgKCFmb250RmFjZURh
dGEuaGFzVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiBpdGVtSW5Db2xsZWN0aW9uOworICAgICAgICBkZWNvZGVyID4+
IGl0ZW1JbkNvbGxlY3Rpb247CisgICAgICAgIGlmICghaXRlbUluQ29sbGVjdGlvbi5oYXNWYWx1
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIGZv
bnRDdXN0b21QbGF0Zm9ybURhdGEgPSBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGZvbnRG
YWNlRGF0YS52YWx1ZSgpLCBpdGVtSW5Db2xsZWN0aW9uLnZhbHVlKCkpOworICAgICAgICBpZiAo
IWZvbnRDdXN0b21QbGF0Zm9ybURhdGEpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICBhdXRvIGJhc2VGb250RGVzY3JpcHRvciA9IGZvbnRDdXN0b21QbGF0Zm9ybURh
dGEtPmZvbnREZXNjcmlwdG9yLmdldCgpOworICAgICAgICBpZiAoIWJhc2VGb250RGVzY3JpcHRv
cikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gZm9udERl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0
ZXMoYmFzZUZvbnREZXNjcmlwdG9yLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgICAgIGF1dG8g
Y3RGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2Ny
aXB0b3IuZ2V0KCksIHNpemUudmFsdWUoKSwgbnVsbHB0cikpOworCisgICAgICAgIGF1dG8gY3Jl
YXRpb25EYXRhID0gRm9udFBsYXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhIHsgZm9udEZhY2VEYXRh
LnZhbHVlKCksIGl0ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSB9OworICAgICAgICByZXR1cm4gRm9u
dFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3ludGhldGljQm9sZC52
YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9uLnZhbHVlKCksIHdp
ZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgpLCAmY3JlYXRpb25E
YXRhKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHJlZmVyZW5jZVVSTDsKKyAgICBk
ZWNvZGVyID4+IHJlZmVyZW5jZVVSTDsKKyAgICBpZiAoIXJlZmVyZW5jZVVSTC5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBw
b3N0U2NyaXB0TmFtZTsKKyAgICBkZWNvZGVyID4+IHBvc3RTY3JpcHROYW1lOworICAgIGlmICgh
cG9zdFNjcmlwdE5hbWUuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAotICAgIFJldGFpblB0cjxDb2NvYUZvbnQ+IGZvbnQ7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShk
ZWNvZGVyLCBmb250KSkKKyAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZm9udERl
c2NyaXB0b3IgPSBmaW5kRm9udERlc2NyaXB0b3IocmVmZXJlbmNlVVJMLnZhbHVlKCksIHBvc3RT
Y3JpcHROYW1lLnZhbHVlKCkpOworICAgIGlmICghZm9udERlc2NyaXB0b3IpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgZm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERl
c2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMoZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0
dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBhdXRvIGN0Rm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLnZhbHVlKCksIG51
bGxwdHIpKTsKIAotICAgIHJldHVybiBGb250OjpjcmVhdGUoeyAoX19icmlkZ2UgQ1RGb250UmVm
KWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9udCBwb2ludFNpemVdKSB9KTsKKyAg
ICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShjdEZvbnQuZ2V0KCksIHNpemUudmFsdWUoKSwgc3lu
dGhldGljQm9sZC52YWx1ZSgpLCBzeW50aGV0aWNPYmxpcXVlLnZhbHVlKCksIG9yaWVudGF0aW9u
LnZhbHVlKCksIHdpZHRoVmFyaWFudC52YWx1ZSgpLCB0ZXh0UmVuZGVyaW5nTW9kZS52YWx1ZSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjMzUzMmUwNDNlM2M4M2ZkN2I0NWMxYjdiMWIx
ZjFkMjQ4NDA4YmIyLi5lMGJiYmJjNWJhMjMxOGJmYThlNjMxOTZkNTRlZWJiODkwMzY0NDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTExNzgsNTYgKzExNzgsNDIgQEAgYm9vbCBBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlSGFuZGwKIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWY8
V2ViQ29yZTo6Rm9udD4mIGZvbnQpCiB7Ci0gICAgYXV0byogZm9udEZhY2VEYXRhID0gZm9udC0+
Zm9udEZhY2VEYXRhKCk7Ci0gICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihmb250RmFj
ZURhdGEpOwotICAgIGlmIChmb250RmFjZURhdGEpIHsKLSAgICAgICAgZW5jb2RlU2hhcmVkQnVm
ZmVyKGVuY29kZXIsIGZvbnRGYWNlRGF0YSk7Ci0gICAgICAgIGF1dG8mIGRhdGEgPSBmb250LT5w
bGF0Zm9ybURhdGEoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKLSAgICAgICAg
ZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY0JvbGQoKTsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRh
LnN5bnRoZXRpY09ibGlxdWUoKTsKLSAgICB9CisgICAgZW5jb2RlciA8PCBmb250LT5vcmlnaW4o
KTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc0ludGVyc3RpdGlhbCgpID8gRm9udDo6SW50ZXJz
dGl0aWFsOjpZZXMgOiBGb250OjpJbnRlcnN0aXRpYWw6Ok5vKTsKKyAgICBlbmNvZGVyIDw8IGZv
bnQtPnZpc2liaWxpdHkoKTsKKyAgICBlbmNvZGVyIDw8IChmb250LT5pc1RleHRPcmllbnRhdGlv
bkZhbGxiYWNrKCkgPyBGb250OjpPcmllbnRhdGlvbkZhbGxiYWNrOjpZZXMgOiBGb250OjpPcmll
bnRhdGlvbkZhbGxiYWNrOjpObyk7CisgICAgLy8gSW50ZW50aW9uYWxseSBkb24ndCBlbmNvZGUg
bV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrIGJlY2F1c2UgaXQgZG9lc24ndCBhZmZlY3QgZHJh
d0dseXBocygpLgogCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIGZvbnQpOwogfQog
CiBPcHRpb25hbDxSZWY8Rm9udD4+IEFyZ3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udEZhY2VEYXRhOwot
ICAgIGRlY29kZXIgPj4gaGFzRm9udEZhY2VEYXRhOwotICAgIGlmICghaGFzRm9udEZhY2VEYXRh
Lmhhc1ZhbHVlKCkpCisgICAgT3B0aW9uYWw8Rm9udDo6T3JpZ2luPiBvcmlnaW47CisgICAgZGVj
b2RlciA+PiBvcmlnaW47CisgICAgaWYgKCFvcmlnaW4uaGFzVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gcmVz
dWx0OwotICAgIGlmIChoYXNGb250RmFjZURhdGEudmFsdWUoKSkgewotICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBmb250RmFjZURhdGE7Ci0gICAgICAgIGlmICghZGVjb2RlU2hhcmVkQnVm
ZmVyKGRlY29kZXIsIGZvbnRGYWNlRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCi0gICAgICAgIGlmICghZm9udEZhY2VEYXRhKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBPcHRpb25hbDxmbG9hdD4gZm9udFNpemU7Ci0gICAgICAg
IGRlY29kZXIgPj4gZm9udFNpemU7Ci0gICAgICAgIGlmICghZm9udFNpemUpCi0gICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OkludGVyc3RpdGlhbD4g
aXNJbnRlcnN0aXRpYWw7CisgICAgZGVjb2RlciA+PiBpc0ludGVyc3RpdGlhbDsKKyAgICBpZiAo
IWlzSW50ZXJzdGl0aWFsLmhhc1ZhbHVlKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAKLSAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljQm9sZDsKLSAgICAgICAgZGVjb2Rl
ciA+PiBzeW50aGV0aWNCb2xkOwotICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZvbnQ6OlZpc2liaWxpdHk+
IHZpc2liaWxpdHk7CisgICAgZGVjb2RlciA+PiB2aXNpYmlsaXR5OworICAgIGlmICghdmlzaWJp
bGl0eS5oYXNWYWx1ZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAg
IE9wdGlvbmFsPGJvb2w+IHN5bnRoZXRpY0l0YWxpYzsKLSAgICAgICAgZGVjb2RlciA+PiBzeW50
aGV0aWNJdGFsaWM7Ci0gICAgICAgIGlmICghc3ludGhldGljSXRhbGljKQotICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGb250OjpPcmllbnRhdGlvbkZhbGxi
YWNrPiBpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrOworICAgIGRlY29kZXIgPj4gaXNUZXh0T3Jp
ZW50YXRpb25GYWxsYmFjazsKKyAgICBpZiAoIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2suaGFz
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBGb250RGVz
Y3JpcHRpb24gZGVzY3JpcHRpb247Ci0gICAgICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6
ZSgqZm9udFNpemUpOwotICAgICAgICByZXN1bHQgPSBGb250OjpjcmVhdGUoZm9udEZhY2VEYXRh
LnJlbGVhc2VOb25OdWxsKCksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlLCAqZm9udFNpemUsICpzeW50
aGV0aWNCb2xkLCAqc3ludGhldGljSXRhbGljKTsKLSAgICB9CisgICAgYXV0byBwbGF0Zm9ybURh
dGEgPSBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2Rlcik7CisgICAgaWYgKCFwbGF0Zm9ybURhdGEu
aGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBk
ZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICByZXR1cm4g
Rm9udDo6Y3JlYXRlKHBsYXRmb3JtRGF0YS52YWx1ZSgpLCBvcmlnaW4udmFsdWUoKSwgaXNJbnRl
cnN0aXRpYWwudmFsdWUoKSwgdmlzaWJpbGl0eS52YWx1ZSgpLCBpc1RleHRPcmllbnRhdGlvbkZh
bGxiYWNrLnZhbHVlKCkpOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q3Vyc29yPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3Y2U1ZWQ0MmVmNTU1NDFlZmFk
YjJhMjFiNzVmNDdlMmE3Y2MwNjMzLi4wNWQwMzU1NGI5ZWNhOWEwNDFjMzY4ZWY0NTM4ODI0NDM0
Y2U2ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtOTUsNiArOTUsNyBAQCBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRT
aXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250
OworY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJ
bWFnZUhhbmRsZTsKIGNsYXNzIEludFBvaW50OwpAQCAtNDA3LDcgKzQwOCw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkZvbnQ+PiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBSZWY8V2ViQ29yZTo6Rm9udD4mKTsKICAgICBz
dGF0aWMgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiBkZWNvZGUoRGVjb2RlciYpOwogICAg
IHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUmVmPFdlYkNv
cmU6OkZvbnQ+Jik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFJlZjxXZWJDb3JlOjpGb250Pj4gZGVj
b2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBPcHRpb25hbDxSZWY8V2ViQ29yZTo6Rm9udD4+JiYp
OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhPiBkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZWJiOWRiYWIz
OGFmZDBkZGNmMzY1NWFjYjk4M2RkMWE3NWI5NmQyYy4uZDgxN2E3OGQ0ZjlmNzZhYjdkZTdjNTE4
NGZiM2FkNzM1NGZmZjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
dXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwg
Y29uc3QgUmVmPEZvbnQ+JikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotT3B0aW9u
YWw8UmVmPEZvbnQ+PiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0
YShEZWNvZGVyJiwgT3B0aW9uYWw8UmVmPFdlYkNvcmU6OkZvbnQ+PiYmKQorT3B0aW9uYWw8Rm9u
dFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDJkMjZkM2Y1Mjk0ODdhMDA3Y2RmNjQ5MTE5
Yjg0OWY2NTU4MjUxNDAuLjFkODRlMmZlMjY4ZjM0NjBlYjI5NzVjNDJiYTk1ZDE0ZjFkMjM1Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZWY8Rm9udD4+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFJlZjxGb250PiYp
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLU9wdGlvbmFsPFJlZjxGb250Pj4gQXJn
dW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIE9wdGlv
bmFsPFJlZjxXZWJDb3JlOjpGb250Pj4mJikKK09wdGlvbmFsPEZvbnRQbGF0Zm9ybURhdGE+IEFy
Z3VtZW50Q29kZXI8UmVmPEZvbnQ+Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImKQogewog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjFiMzA0OGJlMmJhNjI3YTYzZTAzYjYwNjAwYTZkZmEzYTI2YzZlYi4uMWFhNGU1ODRmNjZh
MThiNWExYzMwZDNlN2UzMDhlNTBlNTVjZmQ2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBTdXBwb3J0IGRyYXdpbmcgdGV4dCBpbiAyRCBjYW52YXMgd2l0aCBm
b250IGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDYxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1cmVzLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVh
dHVyZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL0ZvbnRX
aXRoRmVhdHVyZXMudHRmOiBBZGRlZC4KKwogMjAyMC0xMC0wMSAgS2FybCBSYWNrbGVyICA8cmFj
a2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzgxNCk6IFsgTW9qYXZl
KyByZWxlYXNlIHdrMiBdIGluc3BlY3Rvci9jb25zb2xlL3F1ZXJ5SG9sZGVycy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10
ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmExZDJkNmFiOTA3ZTQ5NTM0OTg3ZDljZjlhNDAxMmNjNmI0MWVjOTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LWZlYXR1
cmVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICJTcGVj
aWFsRm9udCI7CisgICAgc3JjOiB1cmwoInJlc291cmNlcy9Gb250V2l0aEZlYXR1cmVzLnR0ZiIp
IGZvcm1hdCgidHJ1ZXR5cGUiKTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllv
dSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFya3MgZm9sbG93ZWQgYnkgYSByb3cgb2Yg
MyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwv
Y2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKS50aGVu
KGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY29udGV4dC5mb250ID0g
IjgwcHggU3BlY2lhbEZvbnQiOworICAgICAgICBjb250ZXh0LmZpbGxUZXh0KCJBQUEiLCAxMDAs
IDEwMCk7CisgICAgICAgIGNvbnRleHQuZmlsbFRleHQoIkJCQiIsIDEwMCwgMjAwKTsKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgfSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtZmVhdHVyZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YWUxM2M5OTUzMWQwZDJmZjA4MTEyNmFmNDU0YTg0OWYyY2UwOTdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmlsbC10ZXh0LXdpdGgtZm9udC1mZWF0dXJlcy5o
dG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAg
IHNyYzogdXJsKCJyZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYiKSBmb3JtYXQoInRydWV0
eXBlIik7CisgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAidGl0bCIgMTsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgcm93IG9mIDMgY2hlY2sgbWFy
a3MgZm9sbG93ZWQgYnkgYSByb3cgb2YgMyBjcm9zc2VzIGJlbG93LjwvcD4KKzxjYW52YXMgd2lk
dGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwvY2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQo
IjgwcHggU3BlY2lhbEZvbnQiKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250
ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsK
KyAgICAgICAgY29udGV4dC5mb250ID0gIjgwcHggU3BlY2lhbEZvbnQiOworICAgICAgICBjb250
ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAsIDEwMCk7CisgICAgICAgIGNvbnRleHQuZmlsbFRleHQo
ImNjYyIsIDEwMCwgMjAwKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtdmFyaWF0
aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZmls
bC10ZXh0LXdpdGgtZm9udC12YXJpYXRpb25zLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDM0YjM0OWM4NDc0YzFkNzA5OTQ3MmIzOTlhNGQwMzBmYmE0N2JlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtdmFy
aWF0aW9ucy1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQt
ZmFtaWx5OiAiU3BlY2lhbEZvbnQiOworICAgIHNyYzogbG9jYWwoIlNraWEiKTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiPjwv
Y2FudmFzPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZvbnQiKS50aGVu
KGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY29udGV4dC5mb250ID0g
IjgwcHggU3BlY2lhbEZvbnQiOworICAgICAgICBjb250ZXh0LmZpbGxUZXh0KCJhYWEiLCAxMDAs
IDEwMCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0aC1mb250LXZhcmlhdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2ZpbGwtdGV4dC13aXRoLWZvbnQtdmFyaWF0aW9ucy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc3NDBhNjc1MDZmOTI2YzBlMWMzNjZkYzRkMWFkMWU1ODAxNjY2YjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9maWxsLXRleHQtd2l0
aC1mb250LXZhcmlhdGlvbnMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTog
IlNwZWNpYWxGb250IjsKKyAgICBzcmM6IGxvY2FsKCJTa2lhIik7CisgICAgZm9udC13ZWlnaHQ6
IDcwMCA4MDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIHdpZHRoPSI0
MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKK2xldCBjYW52YXMgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKQorYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmZvbnRzLmxvYWQoIjgwcHggU3BlY2lhbEZv
bnQiKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIik7CisgICAgICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IFNwZWNpYWxGb250
IjsKKyAgICAgICAgY29udGV4dC5maWxsVGV4dCgiYWFhIiwgMTAwLCAxMDApOworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IHRleHROb2RlID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIlNraWEgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIGRvY3VtZW50
LmJvZHkuaW5zZXJ0QmVmb3JlKHRleHROb2RlLCBjYW52YXMpOworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9
KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9yZXNvdXJjZXMvRm9udFdpdGhGZWF0dXJlcy50dGYKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDJjMzMyYTEzY2MxMDI5Mzk1NmI5ODg2NmY3MjMwYmU3YjVkZjkxZQpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMTIzMjQKemNtZUhOVTEoZyM3NS0tYndKU0BxeyVwJiN5cHw8ZFM9KkFsbVN4
ISUhZ2R0biNCTzlQckRAYUJ2WClrbz55QD5ZCnpXbnphc3EhN3xsYGs7cjxtZVBoaTFYNVpgTzkm
Mnh3aUhyPVQxcDdpWGBORHZwfG51d0xtJThpZ1JBWCM9Rlk3KQp6K0wzY2RESE9geTw/UWB0P3dL
Pl5vSD1MaT96d2txQHA+TSRjbilFbDlHfmRWcDF1MyZPOHxhRm54Mn1eNzRjcl4KemhrelBqYHdL
SnErKjAoX2kkJTctTylBVjVacUJVcXpWe1hvUDU9IXBiTlNxS3pII2lJS3ZTQ2hMdiFwJSU7RzU5
CnpwSkthZlpocTs7WktQZ2NgJnFWYzdaIz4rUH5TZldHKyR1KiZWMjRoNW0kKU4oI3g7KHtLRGRt
IzRtUTdYOFNCcQp6ZC03Xi1LTDdzbntyNy05VWpnYyNFaVBQSnFUVzBQQkVwWVExbk01NSgmS2hh
bzsmQGRqM3x7VE5NVkxobF5YOEgKenI2Jlh0UFUmSFVPQz0oaVFLKzVZaXN2eiZsZSU1WVokTmFI
QlNibnlkV3N9YElucHp2b2ZPIV5iQnQkMnVCWSZmCnptVXt9aFFtT1IyKCN4OGc0RWtJcmZRTGQy
emg1VSU9K2QoOTVHT2dhc0NWfXtzNGVLJGRpey1mRGB5Wkw/LU1yPgp6UTVUZ1UtaG4ySzg7SU17
QjBPcTRAb3M3KHhRbG8lUVdfNXM/P2F0dnArLW10Jjx1SitvbihKTVN+YnNTaUkzNn4KeiFaU3hZ
ZnNoS0pRUEVjX2YraUozTTh5elFhV3R6MFQydXxzZWRKNWdqOU5eb0lgWT5PSDt7aW4rbHxDNj9B
dTElCnpPeCNNbW93eUJrWUE0VVRENmZPKEdfVVFVb0tFNXs7JT8jfDskSEdVI0NDPiEyaVlFQWB3
KFNrKio9VnY4c3hQagp6PFE/TCpWUGVMZkkhPk11VENqcVphNXxoOGU9MGZIZmUtYHRVKkUtd0ly
RUJVeUF9RXw5cDxyViN3PFFpJWdDO2QKenVISSRAVz1rPShUelk0OWxzOzMpQXspTEh6UXJ1XzJX
YXQxLVAxI2duemd1RUVXTSthU0J1RTE8eG8jJHBUfURqCnpTTV47clB9Vll+bmlWRD15aTt7WXNj
eFVWZV5qJWduaWNaPHF4eiR3ezh2PnFFMj4jaCY1SEhnTE56T0BTeTljMwp6NFlHbjI2am5CYntg
QXstLX1ycH0kbHBVT1l1SnY2RjJoSm9NMzJ6bFFiXkZYQno5ezI7ZWtpa3dfKyZFXlp4fUkKejZa
aTRWKGd8S0F7ZXkwSmchQ2ZtazFWTlZObmF3cCVRRCgtKHBBej09cG9pZUJBKzNCa0hpe2NeZXBL
Y3EoOEclCnojK3BzK2RENT9lY3FpJExxQE13YWRlWX1lS09vJSlZUi18cU1md1luOTQzOTReY3hf
PmBjUF8jXmNMJWdqaWVtdQp6TTxtd3N3bWVTeTQoWUZ+RFZgdkdtR25NUCZwS1pIKTE8ZWh3eTlW
MzI8dm5Ea1EhUnFMRzRUcllnX3NsR2Qrc3EKemdqZE5oSXFSJDVTMzZIIWNKX0lkSyo0bXllfFhB
ZVAtaDFqUWRqaGphdjNAezFNM21CJTRsLVpCVzlKTVo0UnRRCnorJHV3QXl1cDIldSp6dDVsMksh
byhjJlp7WF9ldW8yUD56WFE7eE5AP2I3WXd7OzBMZTVWXnIrWXwlMWclJGdvYQp6T2dZS1d3UG1l
KXhlVHtfVmY5IWBfXj0qc3dscjh9eGFHQE1pJEEmQHtsViZZZylRQmwrYCMkTFdSPkNPUSYhJCgK
ejlaNzVKIXNAIzgxPWhwY0Z+eXY2OEUpJitZTyRycWFYO049dV9mJGklWFcoJVZMbG1nQHk4Qn05
IS12VnZ8MDNNCnpeNm52bCpKWTxnan19S2deeiRCQitPb0N2KTtvQjc/NlRNKnlRenkkSjFuLXU5
QnRXYyhaam9NMS1CKF9tRW1Ufgp6OSpacTBNX1cyQWRaWmxsV3ZeOStUaSlgQ29MPFREX141TT9R
P3VfOyZmNU9iP0M2Z2tpeXFDNntANz1nO2RYRTYKendhU1AlI1g2c0FSYHw0O1Bpa0hBQzFhSzB3
em03TkdETmxEYDY1cTYkeG04YStnOFc1SiFzTHh5SSV5P3F0N2JDCnomNmErUGpDUkt1OF8rVU5o
ZFZnNmp4N0N0ZlFMaUdeMHQ4VmhsJFBgRWJrQzM4WFY8Nmg7SkdrV0IqR1k9OUI0bQp6e01fSVcy
NjVObUZoPS12VUNaUigqJiF1d1VyO2B1KXttK2U0MzEkeWBENWRKcyZkY3RDb21FK2B0V0p+WHl9
c1oKej9fPllWMX1Calh7b2RkZE0jRk5hNiMyQ3s4OC1VIVpHfXd1WW9APUJfP0UlLT1uQ0k4eEIq
Pn1oezV+TzhSMClOCnpFb1VwKkJhYSF9aClpVjA7MSYhO21KUXk5O21GJHRIPDVxVTtBVWleWjNl
ZXVDXn1+RmJfX0A1P0ZgWCMyUmZwIQp6OFFleUd7IWBXY2R+K2xFZngrJFFqUVRRbkFybmlSe3Rv
b1VlQkV9VkJXQmh9ck9EJiN3Zz1oUm59KXhXbkV5UHIKentKclJrbjsxfUMkaXo+WnslI0QlM2tM
VUtGI2R8Y2BfTFowVntrOXx7V1c/Qmc5JT93aFdNaTRJZS1IUmV8LS1VCnpgIUBFWUMtRGN2R2t7
RXVAQUU/I3RkVzFUOyolX356dClGfHppIz5taUdPTUU1Z2YxYWVLTGQqYDNKN1k5entDMgp6V2Jp
T0QkcmxZaWhROCFhNEwqKSsoKVlzJnc1NUZnTjY/Y1IjdStUJkR3Z21oRjd0Ymk/TDZQN1M7QlNa
S3B4akgKeiQ8TFlwMG9OaClWSWJoVlNEM3EoRn1xSWhuPCZ6UER8bmF8JmhzTzdSYFFMcmNZPUhj
KGlIN3BweHhkV0BrJDt5Cnp2QGRlSj9sU2c0XlViaHd3ZlB6Q3FjNzVTUytBZnZLOFc4dyEmIVJ4
bihAek5kZGtIa0xDNjAwWE9ee0p6bUJLNAp6bWE/Km95ZHNoQU1SfEYmMVFgKUxaZnhfN0dYYHU/
QEpYJUw1YEZEP195WUM2clplLWh3cXoyWHAzfiU7cTR3OWMKekVsPCNyPipVTDArN2VsaF42SEcx
RD40P3pSfmRhMTk1MzBqJGhrSis4UnlrJFVLZyh3dFd3VCU/OSpEeCF7aVp0CnpIbHVIKWxuR3w5
JXZvU0E9Y3VSNmczM2BCSUtPeU9SKFJ1YVBmKHNgYE56P0BRYzRoPURATyY+YE1rRXdpe1peewp6
JjNoMWN4KFdLe0NPdzxTSVE9MDBsOGxqay0jeVlNd1lMajhNckklMl5UISEmXlNIITA3ZDYqckJj
Oy1SPCZ1TCUKeiR3IVNTemRrX148KFFlMDFHQWcqJjs/cSZLcS09QXpPTjsrJVYpOWF7UnpEKXZL
TSQ3TlR6PyhtQH1NMXdEc3JOCnorP3ROais4bkt3czFRdm5yQj8xSD52eXByVzR3NDw7N3A9Kmst
dFBfNH0zKTVmMkMobGR4X2JDP3dNbCpQNGd7Wgp6aUs3TF51bC1Jd01fJTYoIVp8X05HUTtMfXJe
b09wQl48JnJ6SXtFKz12Xjx9d3Q4ITBoSD08PSVyWDhCYSt4UGYKentzSEU4dXJVKyNeRXx5RlN2
eH0janxMayNzbDYoOTFWNiRnSzd4KyplcCE5fGpJdzNNQigwRiZaSXpMXlFUfVpfCmU7dilCfE9X
WF8zRj1pd0t7Qyk4WCk/Y3kzQUFqRko9PWVBOUFZK2RKCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>