<?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>48539</bug_id>
          
          <creation_ts>2010-10-28 11:47:53 -0700</creation_ts>
          <short_desc>Support the text-emphasis CSS property</short_desc>
          <delta_ts>2010-12-17 13:38:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jberlin</cc>
    
    <cc>mitz</cc>
    
    <cc>peter</cc>
    
    <cc>takano</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301193</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-28 11:47:53 -0700</bug_when>
    <thetext>This is a master bug for text-emphasis support (both back end and front end).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316372</commentid>
    <comment_count>1</comment_count>
      <attachid>75408</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-02 12:58:53 -0800</bug_when>
    <thetext>Created attachment 75408
Part 1: CSS support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316379</commentid>
    <comment_count>2</comment_count>
      <attachid>75408</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-02 13:08:54 -0800</bug_when>
    <thetext>Comment on attachment 75408
Part 1: CSS support

r=me, but can you go ahead and add a RenderStyle::diff hint as well?  I think it&apos;s going to end up being a layout hint (because of possible changes to overflow propagation, e.g., since emphasis marks can go above Rubies).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316380</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-02 13:09:22 -0800</bug_when>
    <thetext>Actually only changing the color is just a repaint hint I suppose, so just do the right thing with each property. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316384</commentid>
    <comment_count>4</comment_count>
      <attachid>75408</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-02 13:14:45 -0800</bug_when>
    <thetext>Comment on attachment 75408
Part 1: CSS support

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

&gt; WebCore/css/CSSComputedStyleDeclaration.cpp:1237
&gt; +            }
&gt; +            }

I think it would be slightly better to explicitly list all the cases so we get a warning if we ever add a new case. If you want to put the default code outside the switch and use &quot;break&quot; we’d get everything except for the runtime check for a bad enum value, which I think is a good tradeoff.

&gt; WebCore/css/CSSParser.cpp:5147
&gt; +    if (fill &amp;&amp; shape) {
&gt; +        RefPtr&lt;CSSValueList&gt; parsedValues = CSSValueList::createSpaceSeparated();
&gt; +        parsedValues-&gt;append(fill.release());
&gt; +        parsedValues-&gt;append(shape.release());
&gt; +        addProperty(CSSPropertyWebkitTextEmphasisStyle, parsedValues.release(), important);
&gt; +    } else if (fill)
&gt; +        addProperty(CSSPropertyWebkitTextEmphasisStyle, fill.release(), important);
&gt; +    else if (shape)
&gt; +        addProperty(CSSPropertyWebkitTextEmphasisStyle, shape.release(), important);
&gt; +    else
&gt; +        return false;
&gt; +
&gt; +    return true;

I think this would read better if the return true was inside each if and we thus did not need all those elses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316504</commentid>
    <comment_count>5</comment_count>
      <attachid>75408</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-02 16:37:58 -0800</bug_when>
    <thetext>Comment on attachment 75408
Part 1: CSS support

&lt;http://trac.webkit.org/projects/webkit/changeset/73219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320876</commentid>
    <comment_count>6</comment_count>
      <attachid>76333</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-12 13:30:12 -0800</bug_when>
    <thetext>Created attachment 76333
Part 2: Platform, layout and rendering (WIP, do not review)

Uploading this primarily for the EWS to look at.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320877</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-12 13:48:10 -0800</bug_when>
    <thetext>Attachment 76333 did not build on qt:
Build output: http://queues.webkit.org/results/6912088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320878</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-12 13:49:35 -0800</bug_when>
    <thetext>Attachment 76333 did not build on chromium:
Build output: http://queues.webkit.org/results/6898081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320879</commentid>
    <comment_count>9</comment_count>
      <attachid>76334</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-12 14:04:28 -0800</bug_when>
    <thetext>Created attachment 76334
Part 2: Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320880</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-12 14:23:43 -0800</bug_when>
    <thetext>Attachment 76333 did not build on win:
Build output: http://queues.webkit.org/results/6982088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320881</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-12 14:29:41 -0800</bug_when>
    <thetext>Attachment 76334 did not build on qt:
Build output: http://queues.webkit.org/results/6934089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320882</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-12 14:34:38 -0800</bug_when>
    <thetext>Attachment 76334 did not build on chromium:
Build output: http://queues.webkit.org/results/6967083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320883</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-12 14:42:45 -0800</bug_when>
    <thetext>Attachment 76334 did not build on win:
Build output: http://queues.webkit.org/results/6990072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320885</commentid>
    <comment_count>14</comment_count>
      <attachid>76336</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-12 15:06:07 -0800</bug_when>
    <thetext>Created attachment 76336
Part 2: Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320886</commentid>
    <comment_count>15</comment_count>
      <attachid>76337</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-12 15:08:22 -0800</bug_when>
    <thetext>Created attachment 76337
Part 2: Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320887</commentid>
    <comment_count>16</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-12-12 15:10:06 -0800</bug_when>
    <thetext>I can probably move the implementation of smallCapsFontData() and emphasisMarkFontData() to cross-platform code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320890</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-12 15:28:57 -0800</bug_when>
    <thetext>Attachment 76336 did not build on chromium:
Build output: http://queues.webkit.org/results/6909083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320891</commentid>
    <comment_count>18</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-12 15:29:19 -0800</bug_when>
    <thetext>Attachment 76336 did not build on qt:
Build output: http://queues.webkit.org/results/6958074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320892</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-12 15:44:21 -0800</bug_when>
    <thetext>Attachment 76337 did not build on chromium:
Build output: http://queues.webkit.org/results/7031034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320893</commentid>
    <comment_count>20</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-12 15:48:56 -0800</bug_when>
    <thetext>Attachment 76336 did not build on win:
Build output: http://queues.webkit.org/results/6996081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320894</commentid>
    <comment_count>21</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-12 15:50:40 -0800</bug_when>
    <thetext>Attachment 76337 did not build on qt:
Build output: http://queues.webkit.org/results/7032036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320895</commentid>
    <comment_count>22</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-12 16:17:32 -0800</bug_when>
    <thetext>Attachment 76337 did not build on win:
Build output: http://queues.webkit.org/results/7019077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320904</commentid>
    <comment_count>23</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-12 16:56:16 -0800</bug_when>
    <thetext>Attachment 76337 did not build on win:
Build output: http://queues.webkit.org/results/6907085</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320918</commentid>
    <comment_count>24</comment_count>
      <attachid>76345</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-12 18:56:45 -0800</bug_when>
    <thetext>Created attachment 76345
Part 2: Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320919</commentid>
    <comment_count>25</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-12 19:23:23 -0800</bug_when>
    <thetext>Attachment 76345 did not build on qt:
Build output: http://queues.webkit.org/results/6969087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321417</commentid>
    <comment_count>26</comment_count>
      <attachid>76439</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-13 14:25:10 -0800</bug_when>
    <thetext>Created attachment 76439
Part 2: Platform, layout and rendering (WIP, do not review)

Trying to appease Qt, correcting emphasis mark positioning in vertical fonts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321587</commentid>
    <comment_count>27</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-13 17:53:10 -0800</bug_when>
    <thetext>Attachment 76439 did not build on qt:
Build output: http://queues.webkit.org/results/6963114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321595</commentid>
    <comment_count>28</comment_count>
      <attachid>76477</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-13 18:09:19 -0800</bug_when>
    <thetext>Created attachment 76477
Part 2: Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321610</commentid>
    <comment_count>29</comment_count>
      <attachid>76481</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-13 18:38:03 -0800</bug_when>
    <thetext>Created attachment 76481
Platform, layout and rendering (WIP, do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322452</commentid>
    <comment_count>30</comment_count>
      <attachid>76617</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-14 19:21:14 -0800</bug_when>
    <thetext>Created attachment 76617
Part 2: Additional RenderStyle support

Another small piece, ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322454</commentid>
    <comment_count>31</comment_count>
      <attachid>76619</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-14 19:28:18 -0800</bug_when>
    <thetext>Created attachment 76619
Part 2: Additional RenderStyle support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322455</commentid>
    <comment_count>32</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-12-14 19:33:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/7720300&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322457</commentid>
    <comment_count>33</comment_count>
      <attachid>76619</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-14 19:40:42 -0800</bug_when>
    <thetext>Comment on attachment 76619
Part 2: Additional RenderStyle support

&lt;http://trac.webkit.org/changeset/74095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322944</commentid>
    <comment_count>34</comment_count>
      <attachid>76712</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-15 16:57:24 -0800</bug_when>
    <thetext>Created attachment 76712
Part 3: Platform support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322986</commentid>
    <comment_count>35</comment_count>
      <attachid>76712</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-15 17:59:24 -0800</bug_when>
    <thetext>Comment on attachment 76712
Part 3: Platform support

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

&gt; WebCore/platform/graphics/FontFastPath.cpp:200
&gt; +// FIXME: This method is not complex-text aware.

Anthropomorphizing the function and saying it’s not aware of complex text doesn’t make clear to me what the problem is here. Is it incorrect in some way? For what cases? I think you can probably write a slightly different comment that will be less ambiguous.

Also, I’d prefer you use the C++ term function rather than the term method.

&gt; WebCore/platform/graphics/SimpleFontData.cpp:200
&gt; +        m_derivedFontData = new DerivedFontData(isCustomFont());

Can I talk you into future-proofing this code by calling adoptPtr in all the call sites like this one? In a related question, should we use the create function idiom for this struct?

&gt; WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:85
&gt; +    return new SimpleFontData(
&gt; +        FontPlatformData(cairo_scaled_font_get_font_face(m_platformData.scaledFont()),

I would have made that first argument be on the first line because of my distaste for breaking right after an open paren. I think the line length ends up being not too horrible.

&gt; WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:96
&gt; +        m_derivedFontData-&gt;smallCaps = scaledFontData(fontDescription, .7);

We should really name that 0.7 constant at some point. I know it wasn’t named before.

&gt; WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:106
&gt; +        m_derivedFontData-&gt;emphasisMark = scaledFontData(fontDescription, .5);

And this 0.5 constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322997</commentid>
    <comment_count>36</comment_count>
      <attachid>76712</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-15 18:24:29 -0800</bug_when>
    <thetext>Comment on attachment 76712
Part 3: Platform support

&lt;http://trac.webkit.org/projects/webkit/changeset/74169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323399</commentid>
    <comment_count>37</comment_count>
      <attachid>76813</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-16 13:50:51 -0800</bug_when>
    <thetext>Created attachment 76813
Part 4: Layout and rendering

I am going to file a follow-up bug for the interaction with ruby</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323430</commentid>
    <comment_count>38</comment_count>
      <attachid>76813</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-16 14:25:53 -0800</bug_when>
    <thetext>Comment on attachment 76813
Part 4: Layout and rendering

Hyatt suggested that I try do this the right way instead :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323460</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-16 15:37:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74169 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323624</commentid>
    <comment_count>40</comment_count>
      <attachid>76852</attachid>
    <who name="">mitz</who>
    <bug_when>2010-12-17 00:11:30 -0800</bug_when>
    <thetext>Created attachment 76852
Part 4: Layout and rendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323894</commentid>
    <comment_count>41</comment_count>
      <attachid>76852</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-12-17 11:29:05 -0800</bug_when>
    <thetext>Comment on attachment 76852
Part 4: Layout and rendering

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

r=me!

&gt; WebCore/rendering/InlineFlowBox.cpp:754
&gt; +    if (style-&gt;textEmphasisMark() != TextEmphasisMarkNone) {
&gt; +        int emphasisMarkHeight = style-&gt;font().emphasisMarkHeight(style-&gt;textEmphasisMarkString());
&gt; +        if (style-&gt;textEmphasisPosition() == TextEmphasisPositionOver)
&gt; +            topGlyphOverflow = min(topGlyphOverflow, -emphasisMarkHeight);
&gt; +        else
&gt; +            bottomGlyphOverflow = max(bottomGlyphOverflow, emphasisMarkHeight);
&gt; +    }

It would be great to have a repaint test that tests the overflow repainting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323898</commentid>
    <comment_count>42</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-12-17 11:33:20 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/changeset/74281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323942</commentid>
    <comment_count>43</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-12-17 12:53:12 -0800</bug_when>
    <thetext>Are platform-specific tests required on Windows?

http://build.webkit.org/results/Windows%207%20Release%20(Tests)/r74283%20(7526)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323946</commentid>
    <comment_count>44</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-12-17 12:55:10 -0800</bug_when>
    <thetext>(In reply to comment #43)
&gt; Are platform-specific tests required on Windows?
&gt; 
&gt; http://build.webkit.org/results/Windows%207%20Release%20(Tests)/r74283%20(7526)/results.html

Yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323950</commentid>
    <comment_count>45</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-12-17 12:57:40 -0800</bug_when>
    <thetext>(In reply to comment #44)
&gt; (In reply to comment #43)
&gt; &gt; Are platform-specific tests required on Windows?
&gt; &gt; 
&gt; &gt; http://build.webkit.org/results/Windows%207%20Release%20(Tests)/r74283%20(7526)/results.html
&gt; 
&gt; Yes

Are you adding them or should I?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323968</commentid>
    <comment_count>46</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-12-17 13:38:29 -0800</bug_when>
    <thetext>Landed Windows-specific results in
http://trac.webkit.org/changeset/74290</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75408</attachid>
            <date>2010-12-02 12:58:53 -0800</date>
            <delta_ts>2010-12-02 16:37:58 -0800</delta_ts>
            <desc>Part 1: CSS support</desc>
            <filename>text-emphasis_r1.diff</filename>
            <type>text/plain</type>
            <size>37780</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzE4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTkgQEAKKzIwMTAtMTItMDIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDU1Mg
c3VwcG9ydCBmb3IgdGhlIHRleHQtZW1waGFzaXMgcHJvcGVydGllcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1MzkKKworICAgICAgICBUZXN0OiBm
YXN0L2Nzcy9wYXJzaW5nLXRleHQtZW1waGFzaXMuaHRtbAorCisgICAgICAgICogY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBBZGRlZCB0ZXh0LWVtcGhh
c2lzLWNvbG9yLAorICAgICAgICB0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIGFuZCB0ZXh0LWVtcGhh
c2lzLXN0eWxlLiBMZWZ0IHRoZSB0ZXh0LWVtcGhhc2lzIHNob3J0aGFuZCB1bnN1cHBvcnRlZC4K
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VWYWx1ZSk6IFBhcnNlIHRoZSBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNpc1N0eWxlKTogQWRkZWQuCisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUp
OiBBZGRlZCBUZXh0RW1waGFzaXNQb3NpdGlvbiwgVGV4dEVtcGhhc2lzRmlsbAorICAgICAgICBh
bmQgVGV4dEVtcGhhc2lzTWFyayBtYXBwaW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNQb3NpdGlvbik6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc0ZpbGwp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBU
ZXh0RW1waGFzaXNNYXJrKTogQWRkZWQuCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TG9uZ2hh
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdFNob3J0aGFuZE1hcCk6IEFkZGVkIHRoZSB0
ZXh0LWVtcGhhc2lzIHNob3J0aGFuZC4KKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bjogQWRkZWQgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLCAtd2Via2l0LXRleHQtZW1waGFzaXMtY29s
b3IsCisgICAgICAgIC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbiwgYW5kIC13ZWJraXQt
dGV4dC1lbXBoYXNpcy1zdHlsZS4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkVmlzaXRlZExpbmtQcm9wZXJ0eSk6IEFkZGVkIHRl
eHQtZW1waGFzaXMtY29sb3IuCisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVByb3BlcnR5KTogSGFuZGxlIHRoZSBwcm9wZXJ0aWVzLgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZUtleXdvcmRzLmluOiBBZGRlZCAnb3ZlcicgYW5kICd1bmRlcicgZm9yIHRleHQtZW1waGFz
aXMtcG9zaXRpb24uIEFkZGVkICdkb3QnLAorICAgICAgICAnZG91YmxlLWNpcmNsZScsICd0cmlh
bmdsZScsICdzZXNhbWUnLCAnZmlsbGVkJyBhbmQgJ29wZW4nIGZvciB0ZXh0LWVtcGhhc2lzLXN0
eWxlLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29sb3JJbmNsdWRpbmdGYWxsYmFjayk6IEhhbmRsZSB0
ZXh0LWVtcGhhc2lzLWNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnRleHRF
bXBoYXNpc01hcmspOiBBZGRlZC4gTWFwcyB0aGUgZmFrZSAnYXV0bycgdmFsdWUgdG8gJ2RvdCcg
b3IKKyAgICAgICAgJ3Nlc2FtZScgYmFzZWQgb24gd3JpdGluZyBkaXJlY3Rpb24uCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZGVkIGFjY2Vzc29ycy4KKyAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjp0ZXh0RW1waGFzaXNGaWxsKToKKyAgICAgICAg
KFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjp0ZXh0RW1waGFzaXNDdXN0b21NYXJrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjp0ZXh0RW1waGFzaXNQb3NpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0VGV4dEVtcGhhc2lzQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFRleHRFbXBoYXNpc0ZpbGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFRleHRFbXBoYXNpc01hcmspOgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFRleHRFbXBoYXNpc0N1c3RvbU1hcmsp
OgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFRleHRFbXBoYXNpc1Bvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbml0aWFsVGV4dEVtcGhh
c2lzQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxUZXh0
RW1waGFzaXNGaWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjppbml0aWFs
VGV4dEVtcGhhc2lzTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5p
dGlhbFRleHRFbXBoYXNpc0N1c3RvbU1hcmspOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVk
RmxhZ3M6OmluaXRpYWxUZXh0RW1waGFzaXNQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6dGV4dEVtcGhhc2lzQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKwogMjAxMC0xMi0wMiAgUGF0cmljayBH
YW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCShyZXZpc2lvbiA3MzE2OSkKKysrIFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMTgsNiArMTIxOCwyMyBAQCBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICByZXR1cm4g
cmVuZGVyVGV4dERlY29yYXRpb25GbGFnc1RvQ1NTVmFsdWUoc3R5bGUtPnRleHREZWNvcmF0aW9u
c0luRWZmZWN0KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xv
cjoKICAgICAgICAgICAgIHJldHVybiBjdXJyZW50Q29sb3JPclZhbGlkQ29sb3Ioc3R5bGUuZ2V0
KCksIHN0eWxlLT50ZXh0RmlsbENvbG9yKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0VGV4dEVtcGhhc2lzQ29sb3I6CisgICAgICAgICAgICByZXR1cm4gY3VycmVudENvbG9yT3JW
YWxpZENvbG9yKHN0eWxlLmdldCgpLCBzdHlsZS0+dGV4dEVtcGhhc2lzQ29sb3IoKSk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNQb3NpdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0eWxlLT50ZXh0RW1waGFzaXNQ
b3NpdGlvbigpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc1N0
eWxlOgorICAgICAgICAgICAgc3dpdGNoIChzdHlsZS0+dGV4dEVtcGhhc2lzTWFyaygpKSB7Cisg
ICAgICAgICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtOb25lOgorICAgICAgICAgICAgICAgIHJl
dHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZU5vbmUpOwor
ICAgICAgICAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ3VzdG9tOgorICAgICAgICAgICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0eWxlLT50ZXh0RW1waGFzaXNDdXN0
b21NYXJrKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6IHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NT
VmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICAgICAgICAgIGxpc3Qt
PmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0eWxlLT50ZXh0RW1waGFzaXNGaWxs
KCkpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZShzdHlsZS0+dGV4dEVtcGhhc2lzTWFyaygpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGxpc3QucmVsZWFzZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKHN0eWxlLT50ZXh0SW5kZW50KCkpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5VGV4dFNoYWRvdzoKQEAgLTE1NTUsNiArMTU3Miw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8q
IFVuaW1wbGVtZW50ZWQgQ1NTIDMgcHJvcGVydGllcyAoaW5jbHVkaW5nIENTUzMgc2hvcnRoYW5k
IHByb3BlcnRpZXMpICovCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFz
aXM6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2g6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hDb2xvcjoKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRMaW5lVGhyb3VnaE1vZGU6CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDczMTY5
KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI3LDYg
KzgyNyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dFVuZGVybGluZUNvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0T3ZlcmxpbmVDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZUNv
bG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcjoKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dFN0cm9rZUNvbG9yOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVXZWJraXRU
ZXh0KQpAQCAtMTc4Miw2ICsxNzgzLDE5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGIKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzOiB7CisgICAg
ICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzW10gPSB7IENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhh
c2lzU3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IgfTsKKyAgICAgICAg
cmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdU
SChwcm9wZXJ0aWVzKSwgaW1wb3J0YW50KTsKKyAgICB9CisKKyAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dEVtcGhhc2lzUG9zaXRpb246CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU92
ZXIgfHwgaWQgPT0gQ1NTVmFsdWVVbmRlcikKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVt
cGhhc2lzU3R5bGU6CisgICAgICAgIHJldHVybiBwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGltcG9y
dGFudCk7CisKICNpZiBFTkFCTEUoU1ZHKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBw
YXJzZVNWR1ZhbHVlKHByb3BJZCwgaW1wb3J0YW50KTsKQEAgLTUwODAsNiArNTA5NCw1OSBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VQZXJzcGVjdGl2ZU9yaWdpbihpCiAgICAgcmV0dXJuIHZhbHVl
OwogfQogCitib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShib29sIGltcG9y
dGFudCkKK3sKKyAgICB1bnNpZ25lZCB2YWx1ZUxpc3RTaXplID0gbV92YWx1ZUxpc3QtPnNpemUo
KTsKKworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gZmlsbDsKKyAgICBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IHNoYXBlOworCisgICAgZm9yIChDU1NQYXJzZXJWYWx1ZSogdmFsdWUg
PSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOyB2YWx1ZTsgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4
dCgpKSB7CisgICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1NUUklORykgeworICAgICAgICAgICAgaWYgKGZpbGwgfHwgc2hhcGUgfHwgKHZhbHVlTGlzdFNp
emUgIT0gMSAmJiAhaW5TaG9ydGhhbmQoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNT
dHlsZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1NUUklORyksIGltcG9ydGFudCk7CisgICAgICAgICAgICBtX3ZhbHVlTGlz
dC0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlTm9uZSkgeworICAgICAgICAgICAgaWYgKGZpbGwg
fHwgc2hhcGUgfHwgKHZhbHVlTGlzdFNpemUgIT0gMSAmJiAhaW5TaG9ydGhhbmQoKSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRUZXh0RW1waGFzaXNTdHlsZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlk
ZW50aWZpZXIoQ1NTVmFsdWVOb25lKSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIG1fdmFsdWVM
aXN0LT5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVPcGVuIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1
ZUZpbGxlZCkgeworICAgICAgICAgICAgaWYgKGZpbGwpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgZmlsbCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKHZhbHVlLT5pZCk7CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWUtPmlkID09IENTU1Zh
bHVlRG90IHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUNpcmNsZSB8fCB2YWx1ZS0+aWQgPT0gQ1NT
VmFsdWVEb3VibGVDaXJjbGUgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlVHJpYW5nbGUgfHwgdmFs
dWUtPmlkID09IENTU1ZhbHVlU2VzYW1lKSB7CisgICAgICAgICAgICBpZiAoc2hhcGUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgc2hhcGUgPSBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+aWQpOworICAgICAgICB9IGVsc2UgaWYg
KCFpblNob3J0aGFuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoZmlsbCAmJiBzaGFwZSkgewor
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZWRWYWx1ZXMgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgIHBhcnNlZFZhbHVlcy0+YXBwZW5kKGZp
bGwucmVsZWFzZSgpKTsKKyAgICAgICAgcGFyc2VkVmFsdWVzLT5hcHBlbmQoc2hhcGUucmVsZWFz
ZSgpKTsKKyAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNT
dHlsZSwgcGFyc2VkVmFsdWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAgICB9IGVsc2UgaWYg
KGZpbGwpCisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lz
U3R5bGUsIGZpbGwucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgIGVsc2UgaWYgKHNoYXBlKQor
ICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc1N0eWxlLCBz
aGFwZS5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGlubGluZSBpbnQgeXllcnJvcihj
b25zdCBjaGFyKikgeyByZXR1cm4gMTsgfQogCiAjZGVmaW5lIEVORF9UT0tFTiAwCkluZGV4OiBX
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAkocmV2aXNpb24gNzMxNjkpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ym9vbCBwYXJzZVRyYW5zZm9ybU9yaWdpbihpbnQgcHJvcElkLCBpbnQmIHByb3BJZDEsIGludCYg
cHJvcElkMiwgaW50JiBwcm9wSWQzLCBSZWZQdHI8Q1NTVmFsdWU+JiwgUmVmUHRyPENTU1ZhbHVl
PiYsIFJlZlB0cjxDU1NWYWx1ZT4mKTsKICAgICAgICAgYm9vbCBwYXJzZVBlcnNwZWN0aXZlT3Jp
Z2luKGludCBwcm9wSWQsIGludCYgcHJvcElkMSwgaW50JiBwcm9wSWQyLCAgUmVmUHRyPENTU1Zh
bHVlPiYsIFJlZlB0cjxDU1NWYWx1ZT4mKTsKIAorICAgICAgICBib29sIHBhcnNlVGV4dEVtcGhh
c2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpOworCiAgICAgICAgIGludCB5eXBhcnNlKCk7CiAKICAg
ICAgICAgQ1NTU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDczMTY5KQorKysgV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDcyLDYgKzIwNzIsMTEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGUKICAgICB9CiB9CiAKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShUZXh0RW1waGFzaXNQb3NpdGlvbiBwb3NpdGlvbikKKyAgICA6IG1fdHlw
ZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCit7CisgICAgc3dp
dGNoIChwb3NpdGlvbikgeworICAgIGNhc2UgVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOgorICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdmVyOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5kZXI6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVVuZGVyOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNQb3NpdGlvbigpIGNv
bnN0Cit7CisgICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgY2FzZSBDU1NWYWx1ZU92
ZXI6CisgICAgICAgIHJldHVybiBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXI7CisgICAgY2FzZSBD
U1NWYWx1ZVVuZGVyOgorICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlcjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcjsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0RW1waGFzaXNGaWxs
IGZpbGwpCisgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0
KGZhbHNlKQoreworICAgIHN3aXRjaCAoZmlsbCkgeworICAgIGNhc2UgVGV4dEVtcGhhc2lzRmls
bEZpbGxlZDoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRmlsbGVkOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGxPcGVuOgorICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVPcGVuOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNGaWxs
KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlRmlsbGVkOgorICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZDsKKyAgICBj
YXNlIENTU1ZhbHVlT3BlbjoKKyAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc0ZpbGxPcGVuOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZDsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0RW1waGFzaXNNYXJrIG1h
cmspCisgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZh
bHNlKQoreworICAgIHN3aXRjaCAobWFyaykgeworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0Rv
dDoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG90OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDaXJjbGU6CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUNpcmNsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZXh0RW1waGFzaXNN
YXJrRG91YmxlQ2lyY2xlOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEb3VibGVD
aXJjbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xl
OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUcmlhbmdsZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTZXNhbWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhh
c2lzTWFya05vbmU6CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKKyAgICBjYXNlIFRl
eHRFbXBoYXNpc01hcmtDdXN0b206CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0
RW1waGFzaXNNYXJrKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcmtOb25l
OworICAgIGNhc2UgQ1NTVmFsdWVEb3Q6CisgICAgICAgIHJldHVybiBUZXh0RW1waGFzaXNNYXJr
RG90OworICAgIGNhc2UgQ1NTVmFsdWVDaXJjbGU6CisgICAgICAgIHJldHVybiBUZXh0RW1waGFz
aXNNYXJrQ2lyY2xlOworICAgIGNhc2UgQ1NTVmFsdWVEb3VibGVDaXJjbGU6CisgICAgICAgIHJl
dHVybiBUZXh0RW1waGFzaXNNYXJrRG91YmxlQ2lyY2xlOworICAgIGNhc2UgQ1NTVmFsdWVUcmlh
bmdsZToKKyAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZTsKKyAgICBjYXNl
IENTU1ZhbHVlU2VzYW1lOgorICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzTWFya1Nlc2FtZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFRleHRFbXBoYXNpc01hcmtOb25lOworICAgIH0KK30KKwogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVQb2ludGVyRXZlbnRzIGUpCiAg
ICAgOiBtX3R5cGUoQ1NTX0lERU5UKQogICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAJKHJldmlzaW9uIDczMTY5KQorKysg
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
Nyw2ICsyMDcsMTIgQEAgc3RhdGljIHZvaWQgaW5pdFNob3J0aGFuZE1hcChTaG9ydGhhbmRNYQog
ICAgIH07CiAgICAgU0VUX1NIT1JUSEFORF9NQVBfRU5UUlkoc2hvcnRoYW5kTWFwLCBDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpbiwgdHJhbnNmb3JtT3JpZ2luUHJvcGVydGllcyk7CiAg
ICAgCisgICAgc3RhdGljIGNvbnN0IGludCB0ZXh0RW1waGFzaXNQcm9wZXJ0aWVzW10gPSB7Cisg
ICAgICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IsCisgICAgICAgIENTU1By
b3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzU3R5bGUKKyAgICB9OworICAgIFNFVF9TSE9SVEhBTkRf
TUFQX0VOVFJZKHNob3J0aGFuZE1hcCwgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXMsIHRl
eHRFbXBoYXNpc1Byb3BlcnRpZXMpOworICAgIAogICAgICN1bmRlZiBTRVRfU0hPUlRIQU5EX01B
UF9FTlRSWQogfQogCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4JKHJldmlzaW9uIDczMTY5
KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
Mjc4LDYgKzI3OCwxMCBAQCB6LWluZGV4CiAtd2Via2l0LXJ0bC1vcmRlcmluZwogLXdlYmtpdC10
ZXh0LWNvbWJpbmUKIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QKKy13ZWJraXQt
dGV4dC1lbXBoYXNpcworLXdlYmtpdC10ZXh0LWVtcGhhc2lzLWNvbG9yCistd2Via2l0LXRleHQt
ZW1waGFzaXMtcG9zaXRpb24KKy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZQogLXdlYmtpdC10
ZXh0LWZpbGwtY29sb3IKIC13ZWJraXQtdGV4dC1zZWN1cml0eQogLXdlYmtpdC10ZXh0LXN0cm9r
ZQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDczMTY5KQorKysgV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMzQsNiAr
MzAzNCw3IEBAIGlubGluZSBib29sIGlzVmFsaWRWaXNpdGVkTGlua1Byb3BlcnR5KGkKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUNvbG9yOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGlu
ZUNvbG9yOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZUNvbG9yOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yOgogICAgICAgICAvLyBBbHNvIGFsbG93IHNob3J0
aGFuZHMgc28gdGhhdCBpbmhlcml0L2luaXRpYWwgc3RpbGwgd29yay4KQEAgLTM1MTEsNiArMzUx
Miw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNl
IENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1
bW5SdWxlQ29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcjoK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6IHsKICAgICAgICAgQ29sb3IgY29sOwogICAg
ICAgICBpZiAoaXNJbmhlcml0KSB7CkBAIC0zNTIzLDYgKzM1MjUsNyBAQCB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9D
T05EX1dJVEhfQkFDS1VQKENTU1Byb3BlcnR5T3V0bGluZUNvbG9yLCBvdXRsaW5lQ29sb3IsIGNv
bG9yLCBPdXRsaW5lQ29sb3IpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EX1dJVEhf
QkFDS1VQKENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZUNvbG9yLCBjb2x1bW5SdWxlQ29sb3Is
IGNvbG9yLCBDb2x1bW5SdWxlQ29sb3IpCiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05E
X1dJVEhfQkFDS1VQKENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tl
Q29sb3IsIGNvbG9yLCBUZXh0U3Ryb2tlQ29sb3IpCisgICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9DT05EX1dJVEhfQkFDS1VQKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IsIHRl
eHRFbXBoYXNpc0NvbG9yLCBjb2xvciwgVGV4dEVtcGhhc2lzQ29sb3IpCiAgICAgICAgICAgICBI
QU5ETEVfSU5IRVJJVF9DT05EX1dJVEhfQkFDS1VQKENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxD
b2xvciwgdGV4dEZpbGxDb2xvciwgY29sb3IsIFRleHRGaWxsQ29sb3IpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTM1NjYsNiArMzU2OSw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRl
eHRTdHJva2VDb2xvcjoKICAgICAgICAgICAgIG1fc3R5bGUtPnNldFRleHRTdHJva2VDb2xvcihj
b2wpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RW1waGFzaXNDb2xvcjoKKyAgICAgICAgICAgIG1fc3R5bGUtPnNldFRleHRFbXBoYXNpc0Nv
bG9yKGNvbCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFRleHRGaWxsQ29sb3I6CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRUZXh0RmlsbENvbG9y
KGNvbCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTU1MjIsNiArNTUyOCw3IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0Rm9udFNpemVEZWx0YToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRp
b25zSW5FZmZlY3Q6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2U6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpczoKICAgICAgICAgcmV0dXJuOwogI2lm
IEVOQUJMRShXQ1NTKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBJbnB1dEZvcm1hdDoKQEAgLTU1
NTYsNiArNTU2Myw1NiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUodGV4dENv
bWJpbmUsIFRleHRDb21iaW5lKQogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VGV4dEVtcGhhc2lzUG9zaXRpb246CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FO
RF9JTklUSUFMX0FORF9QUklNSVRJVkUodGV4dEVtcGhhc2lzUG9zaXRpb24sIFRleHRFbXBoYXNp
c1Bvc2l0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
VGV4dEVtcGhhc2lzU3R5bGU6CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRl
eHRFbXBoYXNpc0ZpbGwsIFRleHRFbXBoYXNpc0ZpbGwpCisgICAgICAgIEhBTkRMRV9JTkhFUklU
X0FORF9JTklUSUFMKHRleHRFbXBoYXNpc01hcmssIFRleHRFbXBoYXNpc01hcmspCisgICAgICAg
IEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRleHRFbXBoYXNpc0N1c3RvbU1hcmssIFRleHRF
bXBoYXNpc0N1c3RvbU1hcmspCisgICAgICAgIGlmIChpc0luaGVyaXQgfHwgaXNJbml0aWFsKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkg
eworICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVM
aXN0Kj4odmFsdWUpOworICAgICAgICAgICAgQVNTRVJUKGxpc3QtPmxlbmd0aCgpID09IDIpOwor
ICAgICAgICAgICAgaWYgKGxpc3QtPmxlbmd0aCgpICE9IDIpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI7ICsraSkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpLT5pc1By
aW1pdGl2ZVZhbHVlKCkpOworICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4obGlzdC0+aXRlbVdpdGhvdXRCb3Vu
ZHNDaGVjayhpKSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlLT5nZXRJZGVudCgpID09IENT
U1ZhbHVlRmlsbGVkIHx8IHZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3BlbikKKyAgICAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0VGV4dEVtcGhhc2lzRmlsbCgqdmFsdWUpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0VGV4dEVt
cGhhc2lzTWFyaygqdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHlsZS0+
c2V0VGV4dEVtcGhhc2lzQ3VzdG9tTWFyayhudWxsQXRvbSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKSB7CisgICAgICAgICAgICBtX3N0eWxlLT5z
ZXRUZXh0RW1waGFzaXNGaWxsKFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQpOworICAgICAgICAgICAg
bV9zdHlsZS0+c2V0VGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrQ3VzdG9tKTsKKyAg
ICAgICAgICAgIG1fc3R5bGUtPnNldFRleHRFbXBoYXNpc0N1c3RvbU1hcmsocHJpbWl0aXZlVmFs
dWUtPmdldFN0cmluZ1ZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgbV9zdHlsZS0+c2V0VGV4dEVtcGhhc2lzQ3VzdG9tTWFyayhudWxsQXRvbSk7CisK
KyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRmlsbGVk
IHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3BlbikgeworICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0VGV4dEVtcGhhc2lzRmlsbCgqcHJpbWl0aXZlVmFsdWUpOworICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0VGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrQXV0
byk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX3N0eWxlLT5zZXRUZXh0RW1waGFz
aXNGaWxsKFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQpOworICAgICAgICAgICAgbV9zdHlsZS0+c2V0
VGV4dEVtcGhhc2lzTWFyaygqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuOworCiAjaWYgRU5BQkxFKFNWRykKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBUcnkg
dGhlIFNWRyBwcm9wZXJ0aWVzCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9u
IDczMTY5KQorKysgV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtNzY4LDMgKzc2OCwxNiBAQCBob3Jpem9udGFsLWJ0CiAjIC13ZWJraXQtdGV4dC1jb21i
aW5lCiBjbHVzdGVyCiB1cHJpZ2h0CisKKyMgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9u
CitvdmVyCit1bmRlcgorCisjIC13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZQorZmlsbGVkCitv
cGVuCitkb3QKKyMgY2lyY2xlCitkb3VibGUtY2lyY2xlCit0cmlhbmdsZQorc2VzYW1lCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA3MzE2OSkK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA2Nyw2ICsxMDY3LDkgQEAgY29uc3QgQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9ySW5j
bHVkaW5nRgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxlQ29sb3I6CiAgICAg
ICAgIHJlc3VsdCA9IGNvbHVtblJ1bGVDb2xvcigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6CisgICAgICAgIHJlc3VsdCA9IHRl
eHRFbXBoYXNpc0NvbG9yKCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RmlsbENvbG9yOgogICAgICAgICByZXN1bHQgPSB0ZXh0RmlsbENvbG9yKCk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTQwOCw0ICsxNDExLDE2IEBAIExlbmd0aCBSZW5kZXJTdHlsZTo6
cGFkZGluZ0VuZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/
IHBhZGRpbmdCb3R0b20oKSA6IHBhZGRpbmdUb3AoKTsKIH0KIAorVGV4dEVtcGhhc2lzTWFyayBS
ZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0Cit7CisgICAgVGV4dEVtcGhhc2lz
TWFyayBtYXJrID0gc3RhdGljX2Nhc3Q8VGV4dEVtcGhhc2lzTWFyaz4ocmFyZUluaGVyaXRlZERh
dGEtPnRleHRFbXBoYXNpc01hcmspOworICAgIGlmIChtYXJrICE9IFRleHRFbXBoYXNpc01hcmtB
dXRvKQorICAgICAgICByZXR1cm4gbWFyazsKKworICAgIGlmIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzTWFya0RvdDsKKworICAgIHJldHVy
biBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDczMTY5KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNzEzLDYgKzcxMywxMSBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoIHRyYW5zZm9ybU9yaWdpblko
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1feTsg
fQogICAgIGZsb2F0IHRyYW5zZm9ybU9yaWdpblooKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fejsgfQogICAgIGJvb2wgaGFzVHJhbnNmb3JtKCkg
Y29uc3QgeyByZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVy
YXRpb25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCk7IH0KKworICAgIFRleHRFbXBoYXNpc0ZpbGwg
dGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRFbXBoYXNp
c0ZpbGw+KHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNGaWxsKTsgfQorICAgIFRleHRF
bXBoYXNpc01hcmsgdGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0OworICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0
ZWREYXRhLT50ZXh0RW1waGFzaXNDdXN0b21NYXJrOyB9CisgICAgVGV4dEVtcGhhc2lzUG9zaXRp
b24gdGV4dEVtcGhhc2lzUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0
RW1waGFzaXNQb3NpdGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc1Bvc2l0aW9u
KTsgfQogICAgIAogICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0gcmVsYXRlZCBw
cm9wZXJ0eSAoY3VycmVudGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBvciBwZXJzcGVj
dGl2ZSkgCiAgICAgLy8gaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHRyYW5zZm9ybWluZwpAQCAtMTA2
NCw2ICsxMDY5LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRyYW5zZm9ybU9yaWdpblooZmxv
YXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zZm9y
bSwgbV96LCBmKTsgfQogICAgIHZvaWQgc2V0U3BlYWsoRVNwZWFrIHMpIHsgU0VUX1ZBUihyYXJl
SW5oZXJpdGVkRGF0YSwgc3BlYWssIHMpOyB9CiAgICAgdm9pZCBzZXRUZXh0Q29tYmluZShUZXh0
Q29tYmluZSB2KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fdGV4dENvbWJpbmUs
IHYpOyB9CisgICAgdm9pZCBzZXRUZXh0RW1waGFzaXNDb2xvcihjb25zdCBDb2xvciYgYykgeyBT
RVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0ZXh0RW1waGFzaXNDb2xvciwgYykgfQorICAgIHZv
aWQgc2V0VGV4dEVtcGhhc2lzRmlsbChUZXh0RW1waGFzaXNGaWxsIGZpbGwpIHsgU0VUX1ZBUihy
YXJlSW5oZXJpdGVkRGF0YSwgdGV4dEVtcGhhc2lzRmlsbCwgZmlsbCk7IH0KKyAgICB2b2lkIHNl
dFRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFyayBtYXJrKSB7IFNFVF9WQVIocmFyZUlu
aGVyaXRlZERhdGEsIHRleHRFbXBoYXNpc01hcmssIG1hcmspOyB9CisgICAgdm9pZCBzZXRUZXh0
RW1waGFzaXNDdXN0b21NYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaykgeyBTRVRfVkFSKHJh
cmVJbmhlcml0ZWREYXRhLCB0ZXh0RW1waGFzaXNDdXN0b21NYXJrLCBtYXJrKTsgfQorICAgIHZv
aWQgc2V0VGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRpb24gcG9zaXRpb24p
IHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgdGV4dEVtcGhhc2lzUG9zaXRpb24sIHBvc2l0
aW9uKTsgfQogICAgIC8vIEVuZCBDU1MzIFNldHRlcnMKIAogICAgIC8vIEFwcGxlLXNwZWNpZmlj
IHByb3BlcnR5IHNldHRlcnMKQEAgLTEyNzYsNiArMTI4NiwxMSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIExlbmd0aCBpbml0aWFsUGVyc3BlY3RpdmVPcmlnaW5YKCkgeyByZXR1cm4gTGVuZ3RoKDUw
LjAsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsUGVyc3BlY3RpdmVPcmln
aW5ZKCkgeyByZXR1cm4gTGVuZ3RoKDUwLjAsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIENvbG9y
IGluaXRpYWxCYWNrZ3JvdW5kQ29sb3IoKSB7IHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnQ7IH0K
KyAgICBzdGF0aWMgQ29sb3IgaW5pdGlhbFRleHRFbXBoYXNpc0NvbG9yKCkgeyByZXR1cm4gVGV4
dEVtcGhhc2lzRmlsbEZpbGxlZDsgfQorICAgIHN0YXRpYyBUZXh0RW1waGFzaXNGaWxsIGluaXRp
YWxUZXh0RW1waGFzaXNGaWxsKCkgeyByZXR1cm4gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZDsgfQor
ICAgIHN0YXRpYyBUZXh0RW1waGFzaXNNYXJrIGluaXRpYWxUZXh0RW1waGFzaXNNYXJrKCkgeyBy
ZXR1cm4gVGV4dEVtcGhhc2lzTWFya05vbmU7IH0KKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBpbml0aWFsVGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIHsgcmV0dXJuIG51bGxBdG9tOyB9
CisgICAgc3RhdGljIFRleHRFbXBoYXNpc1Bvc2l0aW9uIGluaXRpYWxUZXh0RW1waGFzaXNQb3Np
dGlvbigpIHsgcmV0dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcjsgfQogCiAgICAgLy8gS2Vl
cCB0aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBMaW5lQ2xhbXBWYWx1ZSBpbml0aWFsTGlu
ZUNsYW1wKCkgeyByZXR1cm4gTGluZUNsYW1wVmFsdWUoKTsgfQpAQCAtMTMwOCw2ICsxMzIzLDcg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBpbmhl
cml0ZWQtPmNvbG9yOyB9CiAgICAgY29uc3QgQ29sb3ImIGNvbHVtblJ1bGVDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLT5tX3J1bGUuY29sb3Io
KTsgfQogICAgIGNvbnN0IENvbG9yJiBvdXRsaW5lQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tncm91bmQtPm91dGxpbmUoKS5jb2xvcigpOyB9CisgICAgY29uc3QgQ29sb3ImIHRleHRFbXBo
YXNpc0NvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNp
c0NvbG9yOyB9CiAgICAgY29uc3QgQ29sb3ImIHRleHRGaWxsQ29sb3IoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xvcjsgfQogICAgIGNvbnN0IENvbG9yJiB0
ZXh0U3Ryb2tlQ29sb3IoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0
cm9rZUNvbG9yOyB9CiAgICAgCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlzaW9uIDczMTY5KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDcg
KzQyMCwxMyBAQCBlbnVtIEVMaW5lQ2xhbXBUeXBlIHsgTGluZUNsYW1wTGluZUNvdW50CiBlbnVt
IEh5cGhlbnMgeyBIeXBoZW5zTm9uZSwgSHlwaGVuc01hbnVhbCwgSHlwaGVuc0F1dG8gfTsKIAog
ZW51bSBFU3BlYWsgeyBTcGVha05vbmUsIFNwZWFrTm9ybWFsLCBTcGVha1NwZWxsT3V0LCBTcGVh
a0RpZ2l0cywgU3BlYWtMaXRlcmFsUHVuY3R1YXRpb24sIFNwZWFrTm9QdW5jdHVhdGlvbiB9Owot
ICAgIAorCitlbnVtIFRleHRFbXBoYXNpc0ZpbGwgeyBUZXh0RW1waGFzaXNGaWxsRmlsbGVkLCBU
ZXh0RW1waGFzaXNGaWxsT3BlbiB9OworCitlbnVtIFRleHRFbXBoYXNpc01hcmsgeyBUZXh0RW1w
aGFzaXNNYXJrTm9uZSwgVGV4dEVtcGhhc2lzTWFya0F1dG8sIFRleHRFbXBoYXNpc01hcmtEb3Qs
IFRleHRFbXBoYXNpc01hcmtDaXJjbGUsIFRleHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGUsIFRl
eHRFbXBoYXNpc01hcmtUcmlhbmdsZSwgVGV4dEVtcGhhc2lzTWFya1Nlc2FtZSwgVGV4dEVtcGhh
c2lzTWFya0N1c3RvbSB9OworCitlbnVtIFRleHRFbXBoYXNpc1Bvc2l0aW9uIHsgVGV4dEVtcGhh
c2lzUG9zaXRpb25PdmVyLCBUZXh0RW1waGFzaXNQb3NpdGlvblVuZGVyIH07CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
Y3BwCShyZXZpc2lvbiA3MzE2OSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw5IEBAIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXQKICAgICAsIGNvbG9yU3BhY2UoQ29s
b3JTcGFjZURldmljZVJHQikKICAgICAsIHNwZWFrKFNwZWFrTm9ybWFsKQogICAgICwgaHlwaGVu
cyhIeXBoZW5zTWFudWFsKQorICAgICwgdGV4dEVtcGhhc2lzRmlsbChUZXh0RW1waGFzaXNGaWxs
RmlsbGVkKQorICAgICwgdGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrTm9uZSkKKyAg
ICAsIHRleHRFbXBoYXNpc1Bvc2l0aW9uKFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKIHsKIH0K
IApAQCAtNTQsNiArNTcsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0CiAgICAgLCB0ZXh0U3Ryb2tlQ29sb3Ioby50ZXh0U3Ryb2tlQ29sb3IpCiAgICAgLCB0ZXh0
U3Ryb2tlV2lkdGgoby50ZXh0U3Ryb2tlV2lkdGgpCiAgICAgLCB0ZXh0RmlsbENvbG9yKG8udGV4
dEZpbGxDb2xvcikKKyAgICAsIHRleHRFbXBoYXNpc0NvbG9yKG8udGV4dEVtcGhhc2lzQ29sb3Ip
CiAgICAgLCB0ZXh0U2hhZG93KG8udGV4dFNoYWRvdyA/IG5ldyBTaGFkb3dEYXRhKCpvLnRleHRT
aGFkb3cpIDogMCkKICAgICAsIGhpZ2hsaWdodChvLmhpZ2hsaWdodCkKICAgICAsIGN1cnNvckRh
dGEoby5jdXJzb3JEYXRhKQpAQCAtNzMsOCArNzcsMTIgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YTo6U3R5bGVSYXJlSW5oZXJpdAogICAgICwgY29sb3JTcGFjZShvLmNvbG9yU3BhY2UpCiAgICAg
LCBzcGVhayhvLnNwZWFrKQogICAgICwgaHlwaGVucyhvLmh5cGhlbnMpCisgICAgLCB0ZXh0RW1w
aGFzaXNGaWxsKG8udGV4dEVtcGhhc2lzRmlsbCkKKyAgICAsIHRleHRFbXBoYXNpc01hcmsoby50
ZXh0RW1waGFzaXNNYXJrKQorICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oby50ZXh0RW1waGFz
aXNQb3NpdGlvbikKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRpb25TdHJpbmcp
CiAgICAgLCBoeXBoZW5hdGlvbkxvY2FsZShvLmh5cGhlbmF0aW9uTG9jYWxlKQorICAgICwgdGV4
dEVtcGhhc2lzQ3VzdG9tTWFyayhvLnRleHRFbXBoYXNpc0N1c3RvbU1hcmspCiB7CiB9CiAKQEAg
LTk3LDYgKzEwNSw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSgK
ICAgICByZXR1cm4gdGV4dFN0cm9rZUNvbG9yID09IG8udGV4dFN0cm9rZUNvbG9yCiAgICAgICAg
ICYmIHRleHRTdHJva2VXaWR0aCA9PSBvLnRleHRTdHJva2VXaWR0aAogICAgICAgICAmJiB0ZXh0
RmlsbENvbG9yID09IG8udGV4dEZpbGxDb2xvcgorICAgICAgICAmJiB0ZXh0RW1waGFzaXNDb2xv
ciA9PSBvLnRleHRFbXBoYXNpc0NvbG9yCiAgICAgICAgICYmIHNoYWRvd0RhdGFFcXVpdmFsZW50
KG8pCiAgICAgICAgICYmIGhpZ2hsaWdodCA9PSBvLmhpZ2hsaWdodAogICAgICAgICAmJiBjdXJz
b3JEYXRhRXF1aXZhbGVudChjdXJzb3JEYXRhLmdldCgpLCBvLmN1cnNvckRhdGEuZ2V0KCkpCkBA
IC0xMTYsOCArMTI1LDEyIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSgKICAgICAgICAgJiYgY29sb3JTcGFjZSA9PSBvLmNvbG9yU3BhY2UKICAgICAgICAgJiYgc3Bl
YWsgPT0gby5zcGVhawogICAgICAgICAmJiBoeXBoZW5zID09IG8uaHlwaGVucworICAgICAgICAm
JiB0ZXh0RW1waGFzaXNGaWxsID09IG8udGV4dEVtcGhhc2lzRmlsbAorICAgICAgICAmJiB0ZXh0
RW1waGFzaXNNYXJrID09IG8udGV4dEVtcGhhc2lzTWFyaworICAgICAgICAmJiB0ZXh0RW1waGFz
aXNQb3NpdGlvbiA9PSBvLnRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgICAgICYmIGh5cGhlbmF0
aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJpbmcKLSAgICAgICAgJiYgaHlwaGVuYXRpb25M
b2NhbGUgPT0gby5oeXBoZW5hdGlvbkxvY2FsZTsKKyAgICAgICAgJiYgaHlwaGVuYXRpb25Mb2Nh
bGUgPT0gby5oeXBoZW5hdGlvbkxvY2FsZQorICAgICAgICAmJiB0ZXh0RW1waGFzaXNDdXN0b21N
YXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9tTWFyazsKIH0KIAogYm9vbCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJiBvKSBjb25zdApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaAkocmV2aXNpb24gNzMxNjkpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYg
KzU1LDcgQEAgcHVibGljOgogICAgIENvbG9yIHRleHRTdHJva2VDb2xvcjsKICAgICBmbG9hdCB0
ZXh0U3Ryb2tlV2lkdGg7CiAgICAgQ29sb3IgdGV4dEZpbGxDb2xvcjsKKyAgICBDb2xvciB0ZXh0
RW1waGFzaXNDb2xvcjsKIAogICAgIFNoYWRvd0RhdGEqIHRleHRTaGFkb3c7IC8vIE91ciB0ZXh0
IHNoYWRvdyBpbmZvcm1hdGlvbiBmb3Igc2hhZG93ZWQgdGV4dCBkcmF3aW5nLgogICAgIEF0b21p
Y1N0cmluZyBoaWdobGlnaHQ7IC8vIEFwcGxlLXNwZWNpZmljIGV4dGVuc2lvbiBmb3IgY3VzdG9t
IGhpZ2hsaWdodCByZW5kZXJpbmcuCkBAIC03OSwxMCArODAsMTUgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGNvbG9yU3BhY2UgOiAxOyAvLyBDb2xvclNwYWNlCiAgICAgdW5zaWduZWQgc3BlYWsg
OiAzOyAvLyBFU3BlYWsKICAgICB1bnNpZ25lZCBoeXBoZW5zIDogMjsgLy8gSHlwaGVucworICAg
IHVuc2lnbmVkIHRleHRFbXBoYXNpc0ZpbGwgOiAxOyAvLyBUZXh0RW1waGFzaXNGaWxsCisgICAg
dW5zaWduZWQgdGV4dEVtcGhhc2lzTWFyayA6IDM7IC8vIFRleHRFbXBoYXNpc01hcmsKKyAgICB1
bnNpZ25lZCB0ZXh0RW1waGFzaXNQb3NpdGlvbiA6IDE7IC8vIFRleHRFbXBoYXNpc1Bvc2l0aW9u
CiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7CiAgICAgQXRvbWljU3RyaW5n
IGh5cGhlbmF0aW9uTG9jYWxlOwogCisgICAgQXRvbWljU3RyaW5nIHRleHRFbXBoYXNpc0N1c3Rv
bU1hcms7CisKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpOwogICAgIFN0
eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzMxODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMi0wMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3QgcGFyc2luZyBvZiB0aGUgdGV4dC1lbXBoYXNpcyBDU1MgcHJvcGVydGllcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1MzkKKworICAg
ICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdGV4dC1lbXBoYXNpcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdGV4dC1lbXBoYXNpcy5odG1sOiBBZGRlZC4K
KwogMjAxMC0xMi0wMiAgVmljdG9yIFdhbmcgIDx2aWN0b3J3QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy10ZXh0
LWVtcGhhc2lzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wYXJzaW5nLXRleHQtZW1waGFzaXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy10ZXh0LWVtcGhhc2lzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1j
b2xvcjogaW5pdGlhbDsnIHBhcnNlZCBhcyBbJ2luaXRpYWwnLCAnJywgJycsICcnXQorUEFTUzog
Jy13ZWJraXQtdGV4dC1lbXBoYXNpcy1jb2xvcjogaW5oZXJpdDsnIHBhcnNlZCBhcyBbJ2luaGVy
aXQnLCAnJywgJycsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1jb2xvcjogY3Vy
cmVudGNvbG9yOycgcGFyc2VkIGFzIFsnY3VycmVudGNvbG9yJywgJycsICcnLCAnJ10KK1BBU1M6
ICctd2Via2l0LXRleHQtZW1waGFzaXMtY29sb3I6IGN5YW47JyBwYXJzZWQgYXMgWydyZ2IoMCwg
MjU1LCAyNTUpJywgJycsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtY29s
b3I6IGJvbGQ7JyBwYXJzZWQgYXMgWycnLCAnJywgJycsICcnXQorUEFTUzogJy13ZWJraXQtdGV4
dC1lbXBoYXNpcy1jb2xvcjogMXB4OycgcGFyc2VkIGFzIFsnJywgJycsICcnLCAnJ10KK1BBU1M6
ICctd2Via2l0LXRleHQtZW1waGFzaXMtY29sb3I6ICJjeWFuIjsnIHBhcnNlZCBhcyBbJycsICcn
LCAnJywgJyddCisKK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRpb246IGluaXRp
YWw7JyBwYXJzZWQgYXMgWycnLCAnaW5pdGlhbCcsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRl
eHQtZW1waGFzaXMtcG9zaXRpb246IGluaGVyaXQ7JyBwYXJzZWQgYXMgWycnLCAnaW5oZXJpdCcs
ICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRpb246IG92ZXI7JyBw
YXJzZWQgYXMgWycnLCAnb3ZlcicsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFz
aXMtcG9zaXRpb246IHVuZGVyOycgcGFyc2VkIGFzIFsnJywgJ3VuZGVyJywgJycsICcnXQorUEFT
UzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogYm9sZDsnIHBhcnNlZCBhcyBbJycs
ICcnLCAnJywgJyddCitQQVNTOiAnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9uOiAxcHg7
JyBwYXJzZWQgYXMgWycnLCAnJywgJycsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNp
cy1wb3NpdGlvbjogIm92ZXIiOycgcGFyc2VkIGFzIFsnJywgJycsICcnLCAnJ10KKworUEFTUzog
Jy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogaW5pdGlhbDsnIHBhcnNlZCBhcyBbJycsICcn
LCAnaW5pdGlhbCcsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogaW5o
ZXJpdDsnIHBhcnNlZCBhcyBbJycsICcnLCAnaW5oZXJpdCcsICcnXQorUEFTUzogJy13ZWJraXQt
dGV4dC1lbXBoYXNpcy1zdHlsZTogbm9uZTsnIHBhcnNlZCBhcyBbJycsICcnLCAnbm9uZScsICcn
XQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogZmlsbGVkOycgcGFyc2VkIGFz
IFsnJywgJycsICdmaWxsZWQnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5
bGU6IG9wZW47JyBwYXJzZWQgYXMgWycnLCAnJywgJ29wZW4nLCAnJ10KK1BBU1M6ICctd2Via2l0
LXRleHQtZW1waGFzaXMtc3R5bGU6IGRvdDsnIHBhcnNlZCBhcyBbJycsICcnLCAnZG90JywgJydd
CitQQVNTOiAnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBjaXJjbGU7JyBwYXJzZWQgYXMg
WycnLCAnJywgJ2NpcmNsZScsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHls
ZTogZG91YmxlLWNpcmNsZTsnIHBhcnNlZCBhcyBbJycsICcnLCAnZG91YmxlLWNpcmNsZScsICcn
XQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogdHJpYW5nbGU7JyBwYXJzZWQg
YXMgWycnLCAnJywgJ3RyaWFuZ2xlJywgJyddCitQQVNTOiAnLXdlYmtpdC10ZXh0LWVtcGhhc2lz
LXN0eWxlOiBzZXNhbWU7JyBwYXJzZWQgYXMgWycnLCAnJywgJ3Nlc2FtZScsICcnXQorUEFTUzog
Jy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogImNoZWVzZSI7JyBwYXJzZWQgYXMgWycnLCAn
JywgJ2NoZWVzZScsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogMXB4
OycgcGFyc2VkIGFzIFsnJywgJycsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFz
aXMtc3R5bGU6IHJlZDsnIHBhcnNlZCBhcyBbJycsICcnLCAnJywgJyddCitQQVNTOiAnLXdlYmtp
dC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBvcGVuIGRvdDsnIHBhcnNlZCBhcyBbJycsICcnLCAnb3Bl
biBkb3QnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGRvdCBvcGVu
OycgcGFyc2VkIGFzIFsnJywgJycsICdvcGVuIGRvdCcsICcnXQorUEFTUzogJy13ZWJraXQtdGV4
dC1lbXBoYXNpcy1zdHlsZTogZG90IGRvdDsnIHBhcnNlZCBhcyBbJycsICcnLCAnJywgJyddCitQ
QVNTOiAnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBvcGVuIG9wZW47JyBwYXJzZWQgYXMg
WycnLCAnJywgJycsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogbm9u
ZSBvcGVuOycgcGFyc2VkIGFzIFsnJywgJycsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQt
ZW1waGFzaXMtc3R5bGU6IG5vbmUgbm9uZTsnIHBhcnNlZCBhcyBbJycsICcnLCAnJywgJyddCitQ
QVNTOiAnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiAiY2hlZXNlIiBvcGVuOycgcGFyc2Vk
IGFzIFsnJywgJycsICcnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6
IG9wZW4gImNoZWVzZSI7JyBwYXJzZWQgYXMgWycnLCAnJywgJycsICcnXQorCitQQVNTOiAnLXdl
YmtpdC10ZXh0LWVtcGhhc2lzOiBpbml0aWFsJyBwYXJzZWQgYXMgWycnLCAnJywgJycsICdpbml0
aWFsJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXM6IGluaGVyaXQnIHBhcnNlZCBhcyBb
JycsICcnLCAnJywgJ2luaGVyaXQnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpczogcmVk
JyBwYXJzZWQgYXMgWydyZWQnLCAnJywgJ2luaXRpYWwnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRl
eHQtZW1waGFzaXM6ICJjaGVlc2UiJyBwYXJzZWQgYXMgWydpbml0aWFsJywgJycsICdjaGVlc2Un
LCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXM6IHJlZCAiY2hlZXNlIicgcGFyc2Vk
IGFzIFsncmVkJywgJycsICdjaGVlc2UnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFz
aXM6ICJjaGVlc2UiIHJlZCcgcGFyc2VkIGFzIFsncmVkJywgJycsICdjaGVlc2UnLCAnJ10KK1BB
U1M6ICctd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCBzZXNhbWUgcmVkJyBwYXJzZWQgYXMg
WydyZWQnLCAnJywgJ2ZpbGxlZCBzZXNhbWUnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1w
aGFzaXM6IHJlZCBmaWxsZWQgc2VzYW1lJyBwYXJzZWQgYXMgWydyZWQnLCAnJywgJ2ZpbGxlZCBz
ZXNhbWUnLCAnJ10KK1BBU1M6ICctd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCByZWQgc2Vz
YW1lJyBwYXJzZWQgYXMgWycnLCAnJywgJycsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBo
YXNpczogcmVkIHNlc2FtZSBmaWxsZWQnIHBhcnNlZCBhcyBbJ3JlZCcsICcnLCAnZmlsbGVkIHNl
c2FtZScsICcnXQorUEFTUzogJy13ZWJraXQtdGV4dC1lbXBoYXNpczogc2VzYW1lIGZpbGxlZCBy
ZWQnIHBhcnNlZCBhcyBbJ3JlZCcsICcnLCAnZmlsbGVkIHNlc2FtZScsICcnXQorCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXRleHQtZW1waGFzaXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXRleHQtZW1waGFzaXMuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdGV4dC1lbXBoYXNpcy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgxIEBACis8cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdChkZWNsYXJhdGlvbiwgZXhwZWN0ZWRDb2xvciwg
ZXhwZWN0ZWRQb3NpdGlvbiwgZXhwZWN0ZWRTdHlsZSwgZXhwZWN0ZWRUZXh0RW1waGFzaXMpCisg
ICAgeworICAgICAgICBpZiAoIWV4cGVjdGVkVGV4dEVtcGhhc2lzKQorICAgICAgICAgICAgZXhw
ZWN0ZWRUZXh0RW1waGFzaXMgPSAiIjsKKworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBlbGVtZW50LnN0eWxlLmNzc1RleHQgPSBk
ZWNsYXJhdGlvbjsKKyAgICAgICAgdmFyIGNvbG9yID0gZWxlbWVudC5zdHlsZS53ZWJraXRUZXh0
RW1waGFzaXNDb2xvcjsKKyAgICAgICAgdmFyIHBvc2l0aW9uID0gZWxlbWVudC5zdHlsZS53ZWJr
aXRUZXh0RW1waGFzaXNQb3NpdGlvbjsKKyAgICAgICAgdmFyIHN0eWxlID0gZWxlbWVudC5zdHls
ZS53ZWJraXRUZXh0RW1waGFzaXNTdHlsZTsKKyAgICAgICAgdmFyIHRleHRFbXBoYXNpcyA9IGVs
ZW1lbnQuc3R5bGUud2Via2l0VGV4dEVtcGhhc2lzOworICAgICAgICBpZiAoY29sb3IgPT09IGV4
cGVjdGVkQ29sb3IgJiYgcG9zaXRpb24gPT09IGV4cGVjdGVkUG9zaXRpb24gJiYgc3R5bGUgPT09
IGV4cGVjdGVkU3R5bGUgJiYgdGV4dEVtcGhhc2lzID09PSBleHBlY3RlZFRleHRFbXBoYXNpcykK
KyAgICAgICAgICAgIGxvZygiUEFTUzogJyIgKyBkZWNsYXJhdGlvbiArICInIHBhcnNlZCBhcyBb
JyIgKyBjb2xvciArICInLCAnIiArIHBvc2l0aW9uICsgIicsICciICsgc3R5bGUgKyAiJywgJyIg
KyB0ZXh0RW1waGFzaXMgKyAiJ10iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJG
QUlMOiAnIiArIGRlY2xhcmF0aW9uICsgIicgcGFyc2VkIGFzIFsnIiArIGNvbG9yICsgIicsICci
ICsgcG9zaXRpb24gKyAiJywgJyIgKyBzdHlsZSArICInLCAnIiArIHRleHRFbXBoYXNpcyArICIn
XSByYXRoZXIgdGhhbiBbJyIgKyBleHBlY3RlZENvbG9yICsgIicsICciICsgZXhwZWN0ZWRQb3Np
dGlvbiArICInLCAnIiArIGV4cGVjdGVkU3R5bGUgKyAiJywgJyIgKyBleHBlY3RlZFRleHRFbXBo
YXNpcyArICInXSIpOworICAgIH0KKworICAgIHRlc3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1j
b2xvcjogaW5pdGlhbDsnLCAnaW5pdGlhbCcsICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtpdC10
ZXh0LWVtcGhhc2lzLWNvbG9yOiBpbmhlcml0OycsICdpbmhlcml0JywgJycsICcnKTsKKyAgICB0
ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtY29sb3I6IGN1cnJlbnRjb2xvcjsnLCAnY3VycmVu
dGNvbG9yJywgJycsICcnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtY29sb3I6
IGN5YW47JywgJ3JnYigwLCAyNTUsIDI1NSknLCAnJywgJycpOworICAgIHRlc3QoJy13ZWJraXQt
dGV4dC1lbXBoYXNpcy1jb2xvcjogYm9sZDsnLCAnJywgJycsICcnKTsKKyAgICB0ZXN0KCctd2Vi
a2l0LXRleHQtZW1waGFzaXMtY29sb3I6IDFweDsnLCAnJywgJycsICcnKTsKKyAgICB0ZXN0KCct
d2Via2l0LXRleHQtZW1waGFzaXMtY29sb3I6ICJjeWFuIjsnLCAnJywgJycsICcnKTsKKworICAg
IGxvZygiIik7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9uOiBpbml0
aWFsOycsICcnLCAnaW5pdGlhbCcsICcnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFz
aXMtcG9zaXRpb246IGluaGVyaXQ7JywgJycsICdpbmhlcml0JywgJycpOworICAgIHRlc3QoJy13
ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogb3ZlcjsnLCAnJywgJ292ZXInLCAnJyk7Cisg
ICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9uOiB1bmRlcjsnLCAnJywgJ3Vu
ZGVyJywgJycpOworICAgIHRlc3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogYm9s
ZDsnLCAnJywgJycsICcnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRp
b246IDFweDsnLCAnJywgJycsICcnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMt
cG9zaXRpb246ICJvdmVyIjsnLCAnJywgJycsICcnKTsKKworICAgIGxvZygiIik7CisgICAgdGVz
dCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBpbml0aWFsOycsICcnLCAnJywgJ2luaXRp
YWwnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGluaGVyaXQ7Jywg
JycsICcnLCAnaW5oZXJpdCcpOworICAgIHRlc3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHls
ZTogbm9uZTsnLCAnJywgJycsICdub25lJyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhh
c2lzLXN0eWxlOiBmaWxsZWQ7JywgJycsICcnLCAnZmlsbGVkJyk7CisgICAgdGVzdCgnLXdlYmtp
dC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBvcGVuOycsICcnLCAnJywgJ29wZW4nKTsKKyAgICB0ZXN0
KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGRvdDsnLCAnJywgJycsICdkb3QnKTsKKyAg
ICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGNpcmNsZTsnLCAnJywgJycsICdj
aXJjbGUnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGRvdWJsZS1j
aXJjbGU7JywgJycsICcnLCAnZG91YmxlLWNpcmNsZScpOworICAgIHRlc3QoJy13ZWJraXQtdGV4
dC1lbXBoYXNpcy1zdHlsZTogdHJpYW5nbGU7JywgJycsICcnLCAndHJpYW5nbGUnKTsKKyAgICB0
ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IHNlc2FtZTsnLCAnJywgJycsICdzZXNh
bWUnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6ICJjaGVlc2UiOycs
ICcnLCAnJywgJ2NoZWVzZScpOworICAgIHRlc3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHls
ZTogMXB4OycsICcnLCAnJywgJycpOworICAgIHRlc3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1z
dHlsZTogcmVkOycsICcnLCAnJywgJycpOworCisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhh
c2lzLXN0eWxlOiBvcGVuIGRvdDsnLCAnJywgJycsICdvcGVuIGRvdCcpOworICAgIHRlc3QoJy13
ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogZG90IG9wZW47JywgJycsICcnLCAnb3BlbiBkb3Qn
KTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXMtc3R5bGU6IGRvdCBkb3Q7JywgJycs
ICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBvcGVuIG9w
ZW47JywgJycsICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxl
OiBub25lIG9wZW47JywgJycsICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhh
c2lzLXN0eWxlOiBub25lIG5vbmU7JywgJycsICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtpdC10
ZXh0LWVtcGhhc2lzLXN0eWxlOiAiY2hlZXNlIiBvcGVuOycsICcnLCAnJywgJycpOworICAgIHRl
c3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpcy1zdHlsZTogb3BlbiAiY2hlZXNlIjsnLCAnJywgJycs
ICcnKTsKKworICAgIGxvZygiIik7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBp
bml0aWFsJywgJycsICcnLCAnJywgJ2luaXRpYWwnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQt
ZW1waGFzaXM6IGluaGVyaXQnLCAnJywgJycsICcnLCAnaW5oZXJpdCcpOworICAgIHRlc3QoJy13
ZWJraXQtdGV4dC1lbXBoYXNpczogcmVkJywgJ3JlZCcsICcnLCAnaW5pdGlhbCcpOworICAgIHRl
c3QoJy13ZWJraXQtdGV4dC1lbXBoYXNpczogImNoZWVzZSInLCAnaW5pdGlhbCcsICcnLCAnY2hl
ZXNlJyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiByZWQgImNoZWVzZSInLCAn
cmVkJywgJycsICdjaGVlc2UnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXM6ICJj
aGVlc2UiIHJlZCcsICdyZWQnLCAnJywgJ2NoZWVzZScpOworICAgIHRlc3QoJy13ZWJraXQtdGV4
dC1lbXBoYXNpczogZmlsbGVkIHNlc2FtZSByZWQnLCAncmVkJywgJycsICdmaWxsZWQgc2VzYW1l
Jyk7CisgICAgdGVzdCgnLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiByZWQgZmlsbGVkIHNlc2FtZScs
ICdyZWQnLCAnJywgJ2ZpbGxlZCBzZXNhbWUnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1w
aGFzaXM6IGZpbGxlZCByZWQgc2VzYW1lJywgJycsICcnLCAnJyk7CisgICAgdGVzdCgnLXdlYmtp
dC10ZXh0LWVtcGhhc2lzOiByZWQgc2VzYW1lIGZpbGxlZCcsICdyZWQnLCAnJywgJ2ZpbGxlZCBz
ZXNhbWUnKTsKKyAgICB0ZXN0KCctd2Via2l0LXRleHQtZW1waGFzaXM6IHNlc2FtZSBmaWxsZWQg
cmVkJywgJ3JlZCcsICcnLCAnZmlsbGVkIHNlc2FtZScpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76333</attachid>
            <date>2010-12-12 13:30:12 -0800</date>
            <delta_ts>2010-12-12 14:04:28 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r12.diff</filename>
            <type>text/plain</type>
            <size>50700</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDkzIEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAorYm9vbCBGb250OjpnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3Ry
aW5nJiBtYXJrLCBHbHlwaERhdGEmIGdseXBoRGF0YSkgY29uc3QKK3sKKyAgICBpZiAobWFyay5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZHIGZvbnRzLgorICAgIGlmIChwcmltYXJ5
Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAg
ICBVQ2hhcjMyIGNoYXJhY3RlciA9IG1hcmtbMF07CisKKyAgICBpZiAoVTE2X0lTX1NVUlJPR0FU
RShjaGFyYWN0ZXIpKSB7CisgICAgICAgIGlmICghVTE2X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJh
Y3RlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1hcmsubGVu
Z3RoKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFVDaGFyIGxv
dyA9IG1hcmtbMV07CisgICAgICAgIGlmICghVTE2X0lTX1RSQUlMKGxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hhcmFjdGVyID0gVTE2X0dFVF9TVVBQTEVNRU5U
QVJZKGNoYXJhY3RlciwgbG93KTsKKyAgICB9CisKKyAgICBnbHlwaERhdGEgPSBnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBmYWxzZSwgRW1waGFzaXNNYXJrVmFyaWFudCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYg
bWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7
CisgICAgaWYgKG1fZm9udExpc3QgJiYgbV9mb250TGlzdC0+bG9hZGluZ0N1c3RvbUZvbnRzKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0byA8IDApCisgICAgICAgIHRvID0gcnVuLmxl
bmd0aCgpOworCisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7CisgICAgaWYgKCFnZXRFbXBo
YXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRh
LmZvbnREYXRhOworICAgIEFTU0VSVChtYXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnRE
YXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBHbHlwaCBtYXJrR2x5cGggPSBtYXJrR2x5cGhE
YXRhLmdseXBoOworICAgIEdseXBoIHNwYWNlR2x5cGggPSBtYXJrRm9udERhdGEtPnNwYWNlR2x5
cGgoKTsKKworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxB
ZHZhbmNlOworCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGZvciBTVkcgZm9udHMuCisgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgpKQorICAg
ICAgICByZXR1cm47CisjZW5kaWYKKworICAgIGlmIChjb2RlUGF0aChydW4pICE9IENvbXBsZXgp
CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVU
ZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMpOworICAgIGVs
c2UKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBs
ZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMpOworCisg
ICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxv
YXQgbWFya1dpZHRoID0gbWFya0ZvbnREYXRhLT5ib3VuZHNGb3JHbHlwaChtYXJrR2x5cGgpLndp
ZHRoKCk7CisgICAgRmxvYXRSZWN0IGxhc3RHbHlwaEJvdW5kcyA9IGdseXBoQnVmZmVyLmZvbnRE
YXRhQXQoMCktPmJvdW5kc0ZvckdseXBoKGdseXBoQnVmZmVyLmdseXBoQXQoMCkpOworICAgIEZs
b2F0UG9pbnQgc3RhcnRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSArIGxhc3RHbHlw
aEJvdW5kcy54KCkgKyBsYXN0R2x5cGhCb3VuZHMud2lkdGgoKSAvIDIgLSBtYXJrV2lkdGggLyAy
LCBwb2ludC55KCkpOworCisgICAgR2x5cGhCdWZmZXIgbWFya0J1ZmZlcjsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSArIDEgPCBnbHlwaEJ1ZmZlci5zaXplKCk7ICsraSkgeworICAgICAgICBGbG9h
dFJlY3QgbmV4dEdseXBoQm91bmRzID0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChpICsgMSktPmJv
dW5kc0ZvckdseXBoKGdseXBoQnVmZmVyLmdseXBoQXQoaSArIDEpKTsKKyAgICAgICAgZmxvYXQg
YWR2YW5jZSA9IGdseXBoQnVmZmVyLmFkdmFuY2VBdChpKSArIG5leHRHbHlwaEJvdW5kcy54KCkg
LSBsYXN0R2x5cGhCb3VuZHMueCgpICsgKG5leHRHbHlwaEJvdW5kcy53aWR0aCgpIC0gbGFzdEds
eXBoQm91bmRzLndpZHRoKCkpIC8gMjsKKyAgICAgICAgLy8gZmxvYXQgYWR2YW5jZSA9IChnbHlw
aEJ1ZmZlci5hZHZhbmNlQXQoaSkgKyBnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoaSArIDEpKSAvIDI7
CisgICAgICAgIG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoaSkgPT0gZ2x5cGhC
dWZmZXIuZm9udERhdGFBdChpKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlw
aCwgbWFya0ZvbnREYXRhLCBhZHZhbmNlKTsKKyAgICAgICAgbGFzdEdseXBoQm91bmRzID0gbmV4
dEdseXBoQm91bmRzOworICAgIH0KKyAgICBtYXJrQnVmZmVyLmFkZChnbHlwaEJ1ZmZlci5nbHlw
aEF0KGdseXBoQnVmZmVyLnNpemUoKSAtIDEpID09IGdseXBoQnVmZmVyLmZvbnREYXRhQXQoZ2x5
cGhCdWZmZXIuc2l6ZSgpIC0gMSktPnNwYWNlR2x5cGgoKSA/IHNwYWNlR2x5cGggOiBtYXJrR2x5
cGgsIG1hcmtGb250RGF0YSwgMCk7CisKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgbWFy
a0J1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKK30KKworCisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYg
RU5BQkxFKFNWR19GT05UUykKQEAgLTQyMCw0ICs1MDcsMTcgQEAgYm9vbCBGb250Ojppc0NKS0lk
ZW9ncmFwaChVQ2hhcjMyIGMpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEZvbnQ6OmNh
blJlY2VpdmVUZXh0RW1waGFzaXMoVUNoYXIzMiBjKQoreworICAgIGlmIChVX0dFVF9HQ19NQVNL
KGMpICYgKFVfR0NfWl9NQVNLIHwgVV9HQ19DQ19NQVNLIHwgVV9HQ19DRl9NQVNLIHwgVV9HQ19D
Tl9NQVNLKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3Jk
LXNlcGFyYXRvciBjaGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidz
IERyYWZ0IDMgTm92ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8
fCBjID09IGFlZ2VhbldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRv
ckRvdAorICAgICAgICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFu
TWFya0ludGVyc3lsbGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdC
c3RhcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNv
bnN0OwogCiAgICAgdm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0Owor
ICAgIHZvaWQgZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1
biYsIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9t
ID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4m
IHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYo
ZmxvYXRXaWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZs
b2F0IGZsb2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAw
KSBjb25zdDsKQEAgLTEzOSw3ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTaW1wbGVG
b250RGF0YSogcHJpbWFyeUZvbnQoKSBjb25zdDsKICAgICBjb25zdCBGb250RGF0YSogZm9udERh
dGFBdCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgR2x5cGhEYXRhIGdseXBoRGF0YUZvckNoYXJhY3Rl
cihVQ2hhcjMyLCBib29sIG1pcnJvciwgYm9vbCBmb3JjZVNtYWxsQ2FwcyA9IGZhbHNlKSBjb25z
dDsKKyAgICBHbHlwaERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWly
cm9yLCBGb250RGF0YVZhcmlhbnQgPSBBdXRvVmFyaWFudCkgY29uc3Q7CiAgICAgLy8gVXNlZCBm
b3IgY29tcGxleCB0ZXh0LCBhbmQgZG9lcyBub3QgdXRpbGl6ZSB0aGUgZ2x5cGggbWFwIGNhY2hl
LgogICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIq
LCBpbnQgbGVuZ3RoKSBjb25zdDsKIApAQCAtMTYzLDYgKzE2NCwxMCBAQCBwcml2YXRlOgogICAg
IGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclRleHRVc2luZ1NWR0ZvbnQoY29uc3QgVGV4dFJ1biYs
IGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICNlbmRp
ZgogCisgICAgZW51bSBGb3JUZXh0RW1waGFzaXNPck5vdCB7IE5vdEZvclRleHRFbXBoYXNpcywg
Rm9yVGV4dEVtcGhhc2lzIH07CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0aWFsIGluLXN0cmVh
bSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChj
b25zdCBUZXh0UnVuJiwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImLCBGb3JUZXh0RW1w
aGFzaXNPck5vdCA9IE5vdEZvclRleHRFbXBoYXNpcykgY29uc3Q7CiAgICAgdm9pZCBkcmF3U2lt
cGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogICAgIHZvaWQgZHJhd0dseXBocyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBTaW1wbGVGb250RGF0YSosIGNvbnN0IEdseXBoQnVmZmVyJiwgaW50
IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIHZvaWQgZHJhd0ds
eXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEdseXBoQnVmZmVyJiwgY29uc3QgVGV4
dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKQEAgLTE3MCw5ICsxNzUsMTQgQEAgcHJp
dmF0ZToKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRS
dW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CiAg
ICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBj
b25zdCBGbG9hdFBvaW50JiwgaW50IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogCisgICAg
Ym9vbCBnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiwgR2x5cGhE
YXRhJikgY29uc3Q7CisKICAgICBzdGF0aWMgYm9vbCBjYW5SZXR1cm5GYWxsYmFja0ZvbnRzRm9y
Q29tcGxleFRleHQoKTsKIAogICAgIENvZGVQYXRoIGNvZGVQYXRoKGNvbnN0IFRleHRSdW4mKSBj
b25zdDsKKworICAgIC8vIFJldHVybnMgdGhlIGluaXRpYWwgaW4tc3RyZWFtIGFkdmFuY2UuCisg
ICAgZmxvYXQgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImLCBGb3JUZXh0RW1waGFzaXNPck5vdCA9
IE5vdEZvclRleHRFbXBoYXNpcykgY29uc3Q7CiAgICAgdm9pZCBkcmF3Q29tcGxleFRleHQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBvc2l0
aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGlu
Y2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKQEAgLTE5NSw2ICsyMDUsNyBAQCBwdWJsaWM6CiAg
ICAgRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCB0
cmVhdEFzU3BhY2UoVUNoYXIgYykgeyByZXR1cm4gYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMg
PT0gJ1xuJyB8fCBjID09IG5vQnJlYWtTcGFjZTsgfQogICAgIHN0YXRpYyBib29sIHRyZWF0QXNa
ZXJvV2lkdGhTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjIDwgMHgyMCB8fCAoYyA+PSAweDdGICYm
IGMgPCAweEEwKSB8fCBjID09IHNvZnRIeXBoZW4gfHwgKGMgPj0gMHgyMDBjICYmIGMgPD0gMHgy
MDBmKSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8PSAweDIwMmUpIHx8IGMgPT0gb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXI7IH0KKyAgICBzdGF0aWMgYm9vbCBjYW5SZWNlaXZlVGV4dEVtcGhhc2lz
KFVDaGFyMzIgYyk7CiAKICAgICBzdGF0aWMgaW5saW5lIFVDaGFyIG5vcm1hbGl6ZVNwYWNlcyhV
Q2hhciBjaGFyYWN0ZXIpCiAgICAgewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250RmFzdFBhdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udEZhc3RQYXRoLmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCwyMCBA
QCB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HbHlw
aERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3Is
IGJvb2wgZm9yY2VTbWFsbENhcHMpIGNvbnN0CitHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9y
Q2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCB2YXJpYW50
KSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBib29sIHVzZVNt
YWxsQ2Fwc0ZvbnQgPSBmb3JjZVNtYWxsQ2FwczsKLSAgICBpZiAobV9mb250RGVzY3JpcHRpb24u
c21hbGxDYXBzKCkpIHsKLSAgICAgICAgVUNoYXIzMiB1cHBlckMgPSB0b1VwcGVyKGMpOwotICAg
ICAgICBpZiAodXBwZXJDICE9IGMpIHsKLSAgICAgICAgICAgIGMgPSB1cHBlckM7Ci0gICAgICAg
ICAgICB1c2VTbWFsbENhcHNGb250ID0gdHJ1ZTsKLSAgICAgICAgfQorICAgIGlmICh2YXJpYW50
ID09IEF1dG9WYXJpYW50KSB7CisgICAgICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFsbENh
cHMoKSkgeworICAgICAgICAgICAgVUNoYXIzMiB1cHBlckMgPSB0b1VwcGVyKGMpOworICAgICAg
ICAgICAgaWYgKHVwcGVyQyAhPSBjKSB7CisgICAgICAgICAgICAgICAgYyA9IHVwcGVyQzsKKyAg
ICAgICAgICAgICAgICB2YXJpYW50ID0gU21hbGxDYXBzVmFyaWFudDsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBOb3JtYWxWYXJpYW50OworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHZhcmlhbnQgPSBOb3JtYWxWYXJpYW50OwogICAgIH0KIAogICAg
IGlmIChtaXJyb3IpCkBAIC02OCw4ICs3MSw4IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoVUMKICAgICB9CiAKICAgICBHbHlwaFBhZ2UqIHBhZ2U7Ci0gICAgaWYgKCF1
c2VTbWFsbENhcHNGb250KSB7Ci0gICAgICAgIC8vIEZhc3Rlc3QgbG9vcCwgZm9yIHRoZSBjb21t
b24gY2FzZSAobm90IHNtYWxsIGNhcHMpLgorICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlh
bnQpIHsKKyAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3Jt
YWwgdmFyaWFudCkuCiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBwYWdlID0g
bm9kZS0+cGFnZSgpOwogICAgICAgICAgICAgaWYgKHBhZ2UpIHsKQEAgLTExMCw3ICsxMTMsNyBA
QCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgICAgICAgICAg
ICAgaWYgKGRhdGEuZm9udERhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHNtYWxs
Q2Fwc0ZvbnREYXRhIGZ1bmN0aW9uIHNob3VsZCBub3Qgbm9ybWFsbHkgcmV0dXJuIDAuCiAgICAg
ICAgICAgICAgICAgICAgIC8vIEJ1dCBpZiBpdCBkb2VzLCB3ZSB3aWxsIGp1c3QgcmVuZGVyIHRo
ZSBjYXBpdGFsIGxldHRlciBiaWcuCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBzbWFsbENhcHNGb250RGF0YSA9IGRhdGEuZm9udERhdGEtPnNtYWxsQ2Fwc0ZvbnRE
YXRhKG1fZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxl
Rm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhID0gZGF0YS5mb250RGF0YS0+dmFyaWFudEZvbnRE
YXRhKG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KCFzbWFsbENhcHNGb250RGF0YSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRh
OwogCkBAIC0xNTcsMTQgKzE2MCwxNCBAQCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKFVDCiAgICAgICAgIGNvZGVVbml0c0xlbmd0aCA9IDI7CiAgICAgfQogICAgIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBjaGFyYWN0ZXJGb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRGb250
RGF0YUZvckNoYXJhY3RlcnMoKnRoaXMsIGNvZGVVbml0cywgY29kZVVuaXRzTGVuZ3RoKTsKLSAg
ICBpZiAodXNlU21hbGxDYXBzRm9udCAmJiBjaGFyYWN0ZXJGb250RGF0YSkKLSAgICAgICAgY2hh
cmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0YS0+c21hbGxDYXBzRm9udERhdGEobV9m
b250RGVzY3JpcHRpb24pOworICAgIGlmICh2YXJpYW50ICE9IE5vcm1hbFZhcmlhbnQgJiYgY2hh
cmFjdGVyRm9udERhdGEpCisgICAgICAgIGNoYXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9u
dERhdGEtPnZhcmlhbnRGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiAgICAg
aWYgKGNoYXJhY3RlckZvbnREYXRhKSB7CiAgICAgICAgIC8vIEdvdCB0aGUgZmFsbGJhY2sgZ2x5
cGggYW5kIGZvbnQuCiAgICAgICAgIEdseXBoUGFnZSogZmFsbGJhY2tQYWdlID0gR2x5cGhQYWdl
VHJlZU5vZGU6OmdldFJvb3RDaGlsZChjaGFyYWN0ZXJGb250RGF0YSwgcGFnZU51bWJlciktPnBh
Z2UoKTsKICAgICAgICAgR2x5cGhEYXRhIGRhdGEgPSBmYWxsYmFja1BhZ2UgJiYgZmFsbGJhY2tQ
YWdlLT5mb250RGF0YUZvckNoYXJhY3RlcihjKSA/IGZhbGxiYWNrUGFnZS0+Z2x5cGhEYXRhRm9y
Q2hhcmFjdGVyKGMpIDogY2hhcmFjdGVyRm9udERhdGEtPm1pc3NpbmdHbHlwaERhdGEoKTsKICAg
ICAgICAgLy8gQ2FjaGUgaXQgc28gd2UgZG9uJ3QgaGF2ZSB0byBkbyBzeXN0ZW0gZmFsbGJhY2sg
YWdhaW4gbmV4dCB0aW1lLgotICAgICAgICBpZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICAg
ICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAg
ICAgICAgLy8gbWlzc2luZ0dseXBoRGF0YSByZXR1cm5zIGEgbnVsbCBjaGFyYWN0ZXIsIHdoaWNo
IGlzIG5vdCBzdWl0YWJsZSBmb3IgR0RJIHRvIGRpc3BsYXkuCiAgICAgICAgICAgICAvLyBBbHNv
LCBzb21ldGltZXMgd2UgY2Fubm90IG1hcCBhIGZvbnQgZm9yIHRoZSBjaGFyYWN0ZXIgb24gV0lO
Q0UsIGJ1dCBHREkgY2FuIHN0aWxsCkBAIC0xODIsNyArMTg1LDcgQEAgR2x5cGhEYXRhIEZvbnQ6
OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgIC8vIEV2ZW4gc3lzdGVtIGZhbGxiYWNrIGNh
biBmYWlsOyB1c2UgdGhlIG1pc3NpbmcgZ2x5cGggaW4gdGhhdCBjYXNlLgogICAgIC8vIEZJWE1F
OiBJdCB3b3VsZCBiZSBuaWNlciB0byB1c2UgdGhlIG1pc3NpbmcgZ2x5cGggZnJvbSB0aGUgbGFz
dCByZXNvcnQgZm9udCBpbnN0ZWFkLgogICAgIEdseXBoRGF0YSBkYXRhID0gcHJpbWFyeUZvbnQo
KS0+bWlzc2luZ0dseXBoRGF0YSgpOwotICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAg
IGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsKICNpZiBPUyhXSU5DRSkKICAgICAgICAg
Ly8gU2VlIGNvbW1lbnQgYWJvdXQgV0lOQ0UgR0RJIGhhbmRsaW5nIG5lYXIgc2V0R2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyIGFib3ZlLgogICAgICAgICBwYWdlLT5zZXRHbHlwaERhdGFGb3JDaGFyYWN0
ZXIoYywgYywgZGF0YS5mb250RGF0YSk7CkBAIC0xOTQsMzcgKzE5Nyw0NSBAQCBHbHlwaERhdGEg
Rm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXZv
aWQgRm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBj
b25zdAorZmxvYXQgRm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVy
LCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8g
VGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocythZHZhbmNlcytmb250IGRhdGEgZm9y
IGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5p
dGlhbEFkdmFuY2U7CiAKLSAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgV2lkdGhJ
dGVyYXRvciBpdCh0aGlzLCBydW4pOworICAgIFdpZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBm
YWxzZSwgZm9yVGV4dEVtcGhhc2lzKTsKICAgICBpdC5hZHZhbmNlKGZyb20pOwogICAgIGZsb2F0
IGJlZm9yZVdpZHRoID0gaXQubV9ydW5XaWR0aFNvRmFyOwogICAgIGl0LmFkdmFuY2UodG8sICZn
bHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBo
cyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQg
YWZ0ZXJXaWR0aCA9IGl0Lm1fcnVuV2lkdGhTb0ZhcjsKIAogICAgIGlmIChydW4ucnRsKCkpIHsK
ICAgICAgICAgZmxvYXQgZmluYWxSb3VuZGluZ1dpZHRoID0gaXQubV9maW5hbFJvdW5kaW5nV2lk
dGg7CiAgICAgICAgIGl0LmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9
IGZpbmFsUm91bmRpbmdXaWR0aCArIGl0Lm1fcnVuV2lkdGhTb0ZhciAtIGFmdGVyV2lkdGg7Cisg
ICAgICAgIGluaXRpYWxBZHZhbmNlID0gZmluYWxSb3VuZGluZ1dpZHRoICsgaXQubV9ydW5XaWR0
aFNvRmFyIC0gYWZ0ZXJXaWR0aDsKICAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9y
ZVdpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5jZSA9IGJlZm9yZVdpZHRoOwogCi0gICAgLy8g
U3dhcCB0aGUgb3JkZXIgb2YgdGhlIGdseXBocyBpZiByaWdodC10by1sZWZ0LgotICAgIGlmIChy
dW4ucnRsKCkpCisgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmb3IgKGludCBpID0gMCwg
ZW5kID0gZ2x5cGhCdWZmZXIuc2l6ZSgpIC0gMTsgaSA8IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7
ICsraSwgLS1lbmQpCiAgICAgICAgICAgICBnbHlwaEJ1ZmZlci5zd2FwKGksIGVuZCk7CisgICAg
fQorCisgICAgcmV0dXJuIGluaXRpYWxBZHZhbmNlOworfQorCit2b2lkIEZvbnQ6OmRyYXdTaW1w
bGVUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBU
aGlzIGdseXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3Ig
ZWFjaCBnbHlwaC4KKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZsb2F0IHN0
YXJ0WCA9IHBvaW50LngoKSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChydW4s
IGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDYWxjdWxhdGUgdGhlIHN0YXJ0aW5nIHBvaW50
IG9mIHRoZSBnbHlwaHMgdG8gYmUgZGlzcGxheWVkIGJ5IGFkZGluZwotICAgIC8vIGFsbCB0aGUg
YWR2YW5jZXMgdXAgdG8gdGhlIGZpcnN0IGdseXBoLgogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2lu
dChzdGFydFgsIHBvaW50LnkoKSk7CiAgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBo
QnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0NCw2ICszNDQsMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZv
bgogfQogI2VuZGlmCiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RW1waGFzaXNNYXJrcyhj
b25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYg
bWFyaywgY29uc3QgSW50UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKQoreworICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvbnQuZHJhd0Vt
cGhhc2lzTWFya3ModGhpcywgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRl
eHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTUsNiArMzE1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFRleHREcmF3aW5nTW9kZShUZXh0RHJhd2lu
Z01vZGVGbGFncyk7CiAKICAgICAgICAgdm9pZCBkcmF3VGV4dChjb25zdCBGb250JiwgY29uc3Qg
VGV4dFJ1biYsIGNvbnN0IEludFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7Cisg
ICAgICAgIHZvaWQgZHJhd0VtcGhhc2lzTWFya3MoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4m
ICwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBJbnRQb2ludCYsIGludCBmcm9tID0g
MCwgaW50IHRvID0gLTEpOwogICAgICAgICB2b2lkIGRyYXdCaWRpVGV4dChjb25zdCBGb250Jiwg
Y29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICAgICAgdm9pZCBkcmF3SGln
aGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50
JiwgaW50IGgsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2UsIGludCBm
cm9tID0gMCwgaW50IHRvID0gLTEpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiAr
NTgsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoY29uc3QgRm9uCiAgICAgLCBt
X2lzTG9hZGluZyhpc0xvYWRpbmcpCiAgICAgLCBtX2lzQnJva2VuSWRlb2dyYXBoRm9udChmYWxz
ZSkKICAgICAsIG1fc21hbGxDYXBzRm9udERhdGEoMCkKKyAgICAsIG1fZW1waGFzaXNNYXJrRm9u
dERhdGEoMCkKICAgICAsIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEoMCkKIHsKICAgICBwbGF0
Zm9ybUluaXQoKTsKQEAgLTc1LDYgKzc2LDcgQEAgU2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnRE
YXRhKFBhc3NPd25QdAogICAgICwgbV9pc0xvYWRpbmcoZmFsc2UpCiAgICAgLCBtX2lzQnJva2Vu
SWRlb2dyYXBoRm9udChmYWxzZSkKICAgICAsIG1fc21hbGxDYXBzRm9udERhdGEoMCkKKyAgICAs
IG1fZW1waGFzaXNNYXJrRm9udERhdGEoMCkKICAgICAsIG1fYnJva2VuSWRlb2dyYXBoRm9udERh
dGEoMCkKIHsKICAgICBTVkdGb250RmFjZUVsZW1lbnQqIHN2Z0ZvbnRGYWNlRWxlbWVudCA9IG1f
c3ZnRm9udERhdGEtPnN2Z0ZvbnRGYWNlRWxlbWVudCgpOwpAQCAtMTkwLDExICsxOTIsMTUgQEAg
U2ltcGxlRm9udERhdGE6On5TaW1wbGVGb250RGF0YSgpCiAgICAgICAgIGlmIChtX3NtYWxsQ2Fw
c0ZvbnREYXRhKQogICAgICAgICAgICAgR2x5cGhQYWdlVHJlZU5vZGU6OnBydW5lVHJlZUN1c3Rv
bUZvbnREYXRhKG1fc21hbGxDYXBzRm9udERhdGEpOwogCisgICAgICAgIGlmIChtX2VtcGhhc2lz
TWFya0ZvbnREYXRhKQorICAgICAgICAgICAgR2x5cGhQYWdlVHJlZU5vZGU6OnBydW5lVHJlZUN1
c3RvbUZvbnREYXRhKG1fZW1waGFzaXNNYXJrRm9udERhdGEpOworCiAgICAgICAgIGlmIChtX2Jy
b2tlbklkZW9ncmFwaEZvbnREYXRhKQogICAgICAgICAgICAgR2x5cGhQYWdlVHJlZU5vZGU6OnBy
dW5lVHJlZUN1c3RvbUZvbnREYXRhKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEpOwogICAgIH0K
IAogICAgIGRlbGV0ZSBtX3NtYWxsQ2Fwc0ZvbnREYXRhOworICAgIGRlbGV0ZSBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOwogICAgIGRlbGV0ZSBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhOwogfQog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsKIAorZW51bSBGb250RGF0
YVZhcmlhbnQgeyBBdXRvVmFyaWFudCwgTm9ybWFsVmFyaWFudCwgU21hbGxDYXBzVmFyaWFudCwg
RW1waGFzaXNNYXJrVmFyaWFudCB9OwogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQ
aXRjaCwgVmFyaWFibGVQaXRjaCB9OwogCiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBG
b250RGF0YSB7CkBAIC03Niw3ICs3NywyNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2ltcGxl
Rm9udERhdGEoKTsKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1EYXRhOyB9Ci0gICAgU2ltcGxlRm9udERhdGEqIHNt
YWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBj
b25zdDsKKworICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICBTaW1wbGVGb250RGF0YSogZW1waGFzaXNNYXJrRm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisKKyAgICBTaW1wbGVGb250RGF0
YSogdmFyaWFudEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIEZv
bnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh2YXJp
YW50KSB7CisgICAgICAgIGNhc2UgU21hbGxDYXBzVmFyaWFudDoKKyAgICAgICAgICAgIHJldHVy
biBzbWFsbENhcHNGb250RGF0YShkZXNjcmlwdGlvbik7CisgICAgICAgIGNhc2UgRW1waGFzaXNN
YXJrVmFyaWFudDoKKyAgICAgICAgICAgIHJldHVybiBlbXBoYXNpc01hcmtGb250RGF0YShkZXNj
cmlwdGlvbik7CisgICAgICAgIGNhc2UgQXV0b1ZhcmlhbnQ6CisgICAgICAgIGNhc2UgTm9ybWFs
VmFyaWFudDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxTaW1wbGVGb250RGF0YSo+
KHRoaXMpOworICAgIH0KIAogICAgIFNpbXBsZUZvbnREYXRhKiBicm9rZW5JZGVvZ3JhcGhGb250
RGF0YSgpIGNvbnN0OwogICAgIApAQCAtMTgzLDYgKzIwMSw4IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNvbW1vbkluaXQoKTsKIAorICAgIFNpbXBsZUZvbnREYXRhKiBzY2FsZWRGb250RGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3Q7CisKICNpZiAo
UExBVEZPUk0oV0lOKSAmJiAhT1MoV0lOQ0UpKSBcCiAgICAgfHwgKE9TKFdJTkRPV1MpICYmIFBM
QVRGT1JNKFdYKSkKICAgICB2b2lkIGluaXRHRElGb250KCk7CkBAIC0yMjcsNiArMjQ3LDcgQEAg
cHJpdmF0ZToKICAgICBHbHlwaERhdGEgbV9taXNzaW5nR2x5cGhEYXRhOwogCiAgICAgbXV0YWJs
ZSBTaW1wbGVGb250RGF0YSogbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBtdXRhYmxlIFNpbXBs
ZUZvbnREYXRhKiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOwogCiAgICAgbXV0YWJsZSBTaW1wbGVG
b250RGF0YSogbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YTsKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gQWNjb3JkaW5nIHRvIGh0
dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURBVEEvVUNELmh0bWwjQ2Fub25pY2FsX0Nv
bWJpbmluZ19DbGFzc19WYWx1ZXMKIHN0YXRpYyBjb25zdCB1aW50OF90IGhpcmFnYW5hS2F0YWth
bmFWb2ljaW5nTWFya3NDb21iaW5pbmdDbGFzcyA9IDg7CiAKLVdpZHRoSXRlcmF0b3I6OldpZHRo
SXRlcmF0b3IoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIGJvb2wgYWNjb3VudEZvckdseXBo
Qm91bmRzKQorV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiBmb250LCBj
b25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMsIGJvb2wgZm9yVGV4dEVtcGhhc2lz
KQogICAgIDogbV9mb250KGZvbnQpCiAgICAgLCBtX3J1bihydW4pCiAgICAgLCBtX2VuZChydW4u
bGVuZ3RoKCkpCkBAIC01Myw2ICs1Myw3IEBAIFdpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3Io
Y29uc3QgRm9udCoKICAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVtZXJpY19saW1pdHM8
ZmxvYXQ+OjptYXgoKSkKICAgICAsIG1fZmlyc3RHbHlwaE92ZXJmbG93KDApCiAgICAgLCBtX2xh
c3RHbHlwaE92ZXJmbG93KDApCisgICAgLCBtX2ZvclRleHRFbXBoYXNpcyhmb3JUZXh0RW1waGFz
aXMpCiB7CiAgICAgLy8gSWYgdGhlIHBhZGRpbmcgaXMgbm9uLXplcm8sIGNvdW50IHRoZSBudW1i
ZXIgb2Ygc3BhY2VzIGluIHRoZSBydW4KICAgICAvLyBhbmQgZGl2aWRlIHRoYXQgYnkgdGhlIHBh
ZGRpbmcgZm9yIHBlciBzcGFjZSBhZGRpdGlvbi4KQEAgLTE5OSw2ICsyMDAsOSBAQCB2b2lkIFdp
ZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAgICAgICAgbV9maXJz
dEdseXBoT3ZlcmZsb3cgPSBtYXg8ZmxvYXQ+KDAsIC1ib3VuZHMueCgpKTsKICAgICAgICAgfQog
CisgICAgICAgIGlmIChtX2ZvclRleHRFbXBoYXNpcyAmJiAhRm9udDo6Y2FuUmVjZWl2ZVRleHRF
bXBoYXNpcyhjKSkKKyAgICAgICAgICAgIGdseXBoID0gZm9udERhdGEtPnNwYWNlR2x5cGgoKTsK
KwogICAgICAgICAvLyBBZHZhbmNlIHBhc3QgdGhlIGNoYXJhY3RlciB3ZSBqdXN0IGRlYWx0IHdp
dGguCiAgICAgICAgIGNwICs9IGNsdXN0ZXJMZW5ndGg7CiAgICAgICAgIGN1cnJlbnRDaGFyYWN0
ZXIgKz0gY2x1c3Rlckxlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lk
dGhJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lk
dGhJdGVyYXRvci5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvV2lkdGhJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNz
IFNpbXBsZUZvbnREYXRhOwogY2xhc3MgVGV4dFJ1bjsKIAogc3RydWN0IFdpZHRoSXRlcmF0b3Ig
ewotICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcyA9IGZhbHNlKTsKKyAgICBXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqLCBj
b25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzID0gMCwgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMgPSBmYWxzZSwgYm9vbCBmb3JUZXh0
RW1waGFzaXMgPSBmYWxzZSk7CiAKICAgICB2b2lkIGFkdmFuY2UoaW50IHRvLCBHbHlwaEJ1ZmZl
ciogPSAwKTsKICAgICBib29sIGFkdmFuY2VPbmVDaGFyYWN0ZXIoZmxvYXQmIHdpZHRoLCBHbHlw
aEJ1ZmZlciogPSAwKTsKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX21p
bkdseXBoQm91bmRpbmdCb3hZOwogICAgIGZsb2F0IG1fZmlyc3RHbHlwaE92ZXJmbG93OwogICAg
IGZsb2F0IG1fbGFzdEdseXBoT3ZlcmZsb3c7CisgICAgYm9vbCBtX2ZvclRleHRFbXBoYXNpczsK
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NiwxMCArNTYsMTEgQEAgc3RhdGljIGlubGluZSBDR0Zsb2F0IGNlaWxDR0Zs
b2F0KENHRmxvYQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDR0Zsb2F0PihjZWlsKGYpKTsKIH0K
IAotQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3QgRm9u
dCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5nRGly
ZWN0aW9uLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMpCitD
b21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rp
b24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgYm9vbCBm
b3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoKmZvbnQpCiAgICAgLCBtX3J1bihydW4pCiAg
ICAgLCBtX21heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKG1heVVzZU5hdHVyYWxXcml0aW5n
RGlyZWN0aW9uKQorICAgICwgbV9mb3JUZXh0RW1waGFzaXMoZm9yVGV4dEVtcGhhc2lzKQogICAg
ICwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCiAgICAgLCBtX2VuZChydW4ubGVuZ3RoKCkpCiAgICAg
LCBtX3RvdGFsV2lkdGgoMCkKQEAgLTI0MCw3ICsyNDEsNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6Y29sbGVjdENvbXBsCiAgICAgICAgICAgICAgICAgbmV4dEdseXBoRGF0YSA9IG1f
Zm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGN1cnJbLTFd
LCBjdXJyWzBdKSwgZmFsc2UpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpjdXJy
LCBmYWxzZSwgZm9yY2VTbWFsbENhcHMpOworICAgICAgICAgICAgbmV4dEdseXBoRGF0YSA9IG1f
Zm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcyA/
IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCk7CiAKICAgICAgICAgaWYgKCFpc1N1cnJv
Z2F0ZSAmJiBtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAgICAgbmV4dElzU21hbGxD
YXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIoYykpICE9IGM7CkBAIC01
MzYsNiArNTM3LDkgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBocwog
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgd2lkdGhTaW5jZUxhc3RSb3VuZGlu
ZyArPSBhZHZhbmNlLndpZHRoOwogCisgICAgICAgICAgICBpZiAobV9mb3JUZXh0RW1waGFzaXMg
JiYgKCFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGNoKSB8fCAoVV9HRVRfR0NfTUFTSyhj
aCkgJiBVX0dDX01fTUFTSykpKQorICAgICAgICAgICAgICAgIGdseXBoID0gZm9udERhdGEtPnNw
YWNlR2x5cGgoKTsKKwogICAgICAgICAgICAgYWR2YW5jZS5oZWlnaHQgKj0gLTE7CiAgICAgICAg
ICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBwZW5kKGFkdmFuY2UpOwogICAgICAgICAgICAgbV9h
ZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDcz
ODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgVGV4dFJ1bjsKIC8v
IE9TIFZlcnNpb25zID49IDEwLjYsIEFUU1VJIGlzIHVzZWQgb3RoZXJ3aXNlLgogY2xhc3MgQ29t
cGxleFRleHRDb250cm9sbGVyIHsKIHB1YmxpYzoKLSAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIo
Y29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5nRGly
ZWN0aW9uID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDApOworICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiwgY29uc3Qg
VGV4dFJ1biYsIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgYm9vbCBmb3JU
ZXh0RW1waGFzaXMgPSBmYWxzZSk7CiAKICAgICAvLyBBZHZhbmNlIGFuZCBlbWl0IGdseXBocyB1
cCB0byB0aGUgc3BlY2lmaWVkIGNoYXJhY3Rlci4KICAgICB2b2lkIGFkdmFuY2UodW5zaWduZWQg
dG8sIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtMTU2LDYgKzE1Niw3IEBAIHByaXZhdGU6CiAgICAg
Y29uc3QgRm9udCYgbV9mb250OwogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwogICAgIGJvb2wg
bV9tYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICBib29sIG1fZm9yVGV4dEVtcGhh
c2lzOwogCiAgICAgVmVjdG9yPFVDaGFyLCAyNTY+IG1fc21hbGxDYXBzQnVmZmVyOwogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4
dE1hYy5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMzAgKzU1LDQw
IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFQKICAgICByZXR1cm4g
RmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0aCksIHBvaW50LnkoKSwgcm91
bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwgaCk7CiB9CiAKLXZvaWQgRm9u
dDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1
biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250OjpnZXRHbHlwaHNBbmRBZHZh
bmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0bywg
R2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0RW1w
aGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBo
cyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgotICAgIEdseXBoQnVmZmVy
IGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlOwogCi0gICAgZmxvYXQgc3Rh
cnRYID0gcG9pbnQueCgpOwotICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRo
aXMsIHJ1bik7CisgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVu
LCBmYWxzZSwgMCwgZm9yVGV4dEVtcGhhc2lzKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJv
bSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsK
ICAgICBjb250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8g
V2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisK
ICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCisg
ICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIucnVu
V2lkdGhTb0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewotICAgICAgICBzdGFydFggKz0g
Y29udHJvbGxlci50b3RhbFdpZHRoKCkgKyBjb250cm9sbGVyLmZpbmFsUm91bmRpbmdXaWR0aCgp
IC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBjb250cm9sbGVyLnRvdGFs
V2lkdGgoKSArIGNvbnRyb2xsZXIuZmluYWxSb3VuZGluZ1dpZHRoKCkgLSBhZnRlcldpZHRoOwog
ICAgICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZmZXIuc2l6ZSgpIC0gMTsgaSA8
IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAgICAgICAgICAgICBnbHlwaEJ1
ZmZlci5zd2FwKGksIGVuZCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHN0YXJ0WCArPSBiZWZvcmVX
aWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBiZWZvcmVXaWR0aDsKKworICAgIHJldHVy
biBpbml0aWFsQWR2YW5jZTsKK30KKwordm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8vIFRoaXMgZ2x5cGggYnVm
ZmVyIGhvbGRzIG91ciBnbHlwaHMgKyBhZHZhbmNlcyArIGZvbnQgZGF0YSBmb3IgZWFjaCBnbHlw
aC4KKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZsb2F0IHN0YXJ0WCA9IHBv
aW50LngoKSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBmcm9tLCB0
bywgZ2x5cGhCdWZmZXIpOworCisgICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBo
cyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRHJhdyB0aGUgZ2x5cGggYnVmZmVyIG5vdyBhdCB0
aGUgc3RhcnRpbmcgcG9pbnQgcmV0dXJuZWQgaW4gc3RhcnRYLgogICAgIEZsb2F0UG9pbnQgc3Rh
cnRQb2ludChzdGFydFgsIHBvaW50LnkoKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkocmV2aXNpb24gNzM4NjcpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YU1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzYyLDYgKzM2MiwxMSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybURlc3Ryb3koKQogICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gMDsKICAgICB9CiAK
KyAgICBpZiAobV9lbXBoYXNpc01hcmtGb250RGF0YSAmJiAhaXNDdXN0b21Gb250KCkpIHsKKyAg
ICAgICAgZm9udENhY2hlKCktPnJlbGVhc2VGb250RGF0YShtX2VtcGhhc2lzTWFya0ZvbnREYXRh
KTsKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IDA7CisgICAgfQorCiAjaWZkZWYg
QlVJTERJTkdfT05fVElHRVIKICAgICBpZiAobV9zdHlsZUdyb3VwKQogICAgICAgICB3a1JlbGVh
c2VTdHlsZUdyb3VwKG1fc3R5bGVHcm91cCk7CkBAIC0zNzMsNDMgKzM3OCw1OCBAQCB2b2lkIFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogI2VuZGlmCiB9CiAKLVNpbXBsZUZvbnRE
YXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERh
dGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERh
dGEpIHsKLSAgICAgICAgaWYgKGlzQ3VzdG9tRm9udCgpKSB7Ci0gICAgICAgICAgICBGb250UGxh
dGZvcm1EYXRhIHNtYWxsQ2Fwc0ZvbnREYXRhKG1fcGxhdGZvcm1EYXRhKTsKLSAgICAgICAgICAg
IHNtYWxsQ2Fwc0ZvbnREYXRhLm1fc2l6ZSA9IHNtYWxsQ2Fwc0ZvbnREYXRhLm1fc2l6ZSAqIHNt
YWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllcjsKLSAgICAgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBuZXcgU2ltcGxlRm9udERhdGEoc21hbGxDYXBzRm9udERhdGEsIHRydWUsIGZhbHNlKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKLSAgICAgICAgICAgIGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkgKiBzbWFs
bENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNt
YWxsQ2Fwc0ZvbnQoW1tOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBjb252ZXJ0Rm9u
dDptX3BsYXRmb3JtRGF0YS5mb250KCkgdG9TaXplOnNpemVdLCBzaXplKTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgLy8gQXBwS2l0IHJlc2V0cyB0aGUgdHlwZSBpbmZvcm1hdGlvbiAoc2Ny
ZWVuL3ByaW50ZXIpIHdoZW4geW91IGNvbnZlcnQgYSBmb250IHRvIGEgZGlmZmVyZW50IHNpemUu
Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0aGF0IHdlJ3JlIGhh
bmRlZCBiYWNrLgotICAgICAgICAgICAgc21hbGxDYXBzRm9udC5zZXRGb250KGZvbnREZXNjcmlw
dGlvbi51c2VQcmludGVyRm9udCgpID8gW3NtYWxsQ2Fwc0ZvbnQuZm9udCgpIHByaW50ZXJGb250
XSA6IFtzbWFsbENhcHNGb250LmZvbnQoKSBzY3JlZW5Gb250XSk7Ci0KLSAgICAgICAgICAgIGlm
IChzbWFsbENhcHNGb250LmZvbnQoKSkgewotICAgICAgICAgICAgICAgIE5TRm9udE1hbmFnZXIg
KmZvbnRNYW5hZ2VyID0gW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdOwotICAgICAg
ICAgICAgICAgIE5TRm9udFRyYWl0TWFzayBmb250VHJhaXRzID0gW2ZvbnRNYW5hZ2VyIHRyYWl0
c09mRm9udDptX3BsYXRmb3JtRGF0YS5mb250KCldOwotCi0gICAgICAgICAgICAgICAgaWYgKG1f
cGxhdGZvcm1EYXRhLm1fc3ludGhldGljQm9sZCkKLSAgICAgICAgICAgICAgICAgICAgZm9udFRy
YWl0cyB8PSBOU0JvbGRGb250TWFzazsKLSAgICAgICAgICAgICAgICBpZiAobV9wbGF0Zm9ybURh
dGEubV9zeW50aGV0aWNPYmxpcXVlKQotICAgICAgICAgICAgICAgICAgICBmb250VHJhaXRzIHw9
IE5TSXRhbGljRm9udE1hc2s7Ci0KLSAgICAgICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgc21h
bGxDYXBzRm9udFRyYWl0cyA9IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6c21hbGxDYXBzRm9u
dC5mb250KCldOwotICAgICAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQubV9zeW50aGV0aWNCb2xk
ID0gKGZvbnRUcmFpdHMgJiBOU0JvbGRGb250TWFzaykgJiYgIShzbWFsbENhcHNGb250VHJhaXRz
ICYgTlNCb2xkRm9udE1hc2spOwotICAgICAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQubV9zeW50
aGV0aWNPYmxpcXVlID0gKGZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKSAmJiAhKHNtYWxs
Q2Fwc0ZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKTsKLQotICAgICAgICAgICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBmb250Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udERhdGEoJnNtYWxs
Q2Fwc0ZvbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKLSAgICAgICAgfQorICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgeworICAgICAgICBG
b250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKG1fcGxhdGZvcm1EYXRhKTsKKyAgICAgICAg
c2NhbGVkRm9udERhdGEubV9zaXplID0gc2NhbGVkRm9udERhdGEubV9zaXplICogc2NhbGVGYWN0
b3I7CisgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoc2NhbGVkRm9udERhdGEsIHRy
dWUsIGZhbHNlKTsKICAgICB9CisKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgZmxvYXQgc2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKSAqIHNjYWxlRmFjdG9yOworICAg
IEZvbnRQbGF0Zm9ybURhdGEgc2NhbGVkRm9udERhdGEoW1tOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZv
bnRNYW5hZ2VyXSBjb252ZXJ0Rm9udDptX3BsYXRmb3JtRGF0YS5mb250KCkgdG9TaXplOnNpemVd
LCBzaXplKTsKKworICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5cGUgaW5mb3JtYXRpb24gKHNj
cmVlbi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0byBhIGRpZmZlcmVudCBzaXpl
LgorICAgIC8vIFdlIGhhdmUgdG8gZml4IHVwIHRoZSBmb250IHRoYXQgd2UncmUgaGFuZGVkIGJh
Y2suCisgICAgc2NhbGVkRm9udERhdGEuc2V0Rm9udChmb250RGVzY3JpcHRpb24udXNlUHJpbnRl
ckZvbnQoKSA/IFtzY2FsZWRGb250RGF0YS5mb250KCkgcHJpbnRlckZvbnRdIDogW3NjYWxlZEZv
bnREYXRhLmZvbnQoKSBzY3JlZW5Gb250XSk7CisKKyAgICBpZiAoc2NhbGVkRm9udERhdGEuZm9u
dCgpKSB7CisgICAgICAgIE5TRm9udE1hbmFnZXIgKmZvbnRNYW5hZ2VyID0gW05TRm9udE1hbmFn
ZXIgc2hhcmVkRm9udE1hbmFnZXJdOworICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0
cyA9IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKKwor
ICAgICAgICBpZiAobV9wbGF0Zm9ybURhdGEubV9zeW50aGV0aWNCb2xkKQorICAgICAgICAgICAg
Zm9udFRyYWl0cyB8PSBOU0JvbGRGb250TWFzazsKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRh
Lm1fc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNJdGFsaWNG
b250TWFzazsKKworICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgc2NhbGVkRm9udFRyYWl0cyA9IFtm
b250TWFuYWdlciB0cmFpdHNPZkZvbnQ6c2NhbGVkRm9udERhdGEuZm9udCgpXTsKKyAgICAgICAg
c2NhbGVkRm9udERhdGEubV9zeW50aGV0aWNCb2xkID0gKGZvbnRUcmFpdHMgJiBOU0JvbGRGb250
TWFzaykgJiYgIShzY2FsZWRGb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spOworICAgICAgICBz
Y2FsZWRGb250RGF0YS5tX3N5bnRoZXRpY09ibGlxdWUgPSAoZm9udFRyYWl0cyAmIE5TSXRhbGlj
Rm9udE1hc2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TSXRhbGljRm9udE1hc2spOworCisg
ICAgICAgIHJldHVybiBmb250Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udERhdGEoJnNjYWxlZEZvbnRE
YXRhKTsKKyAgICB9CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIHJldHVy
biAwOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnRE
YXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAg
IGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgc21hbGxDYXBzRm9udFNpemVNdWx0aXBs
aWVyKTsKKwogICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01h
cmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9u
dERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBOU1N0cmluZyAq
c3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9Db3B5OmNvbnN0
X2Nhc3Q8dW5pY2hhcio+KGNoYXJhY3RlcnMpIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5P
XTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCShyZXZpc2lvbiA3
Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzIsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAvLyBOYW1lcyBoZXJlIGFyZSB0YWtlbiBmcm9tIHRoZSBVbmljb2RlIHN0YW5kYXJkLgogCi0v
LyBOb3RlLCB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFr
ZXMgdGhlbQorLy8gTm90ZSwgbW9zdCBvZiB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3Qg
VUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhlbQogLy8gbW9yZSBjb252ZW5pZW50IGZvciBXZWJDb3Jl
IGNvZGUgdGhhdCBtb3N0bHkgdXNlcyBVVEYtMTYuCiAKK2NvbnN0IFVDaGFyMzIgYWVnZWFuV29y
ZFNlcGFyYXRvckxpbmUgPSAweDEwMTAwOworY29uc3QgVUNoYXIzMiBhZWdlYW5Xb3JkU2VwYXJh
dG9yRG90ID0gMHgxMDEwMTsKK2NvbnN0IFVDaGFyIGJsYWNrQ2lyY2xlID0gMHgyNUNGOwogY29u
c3QgVUNoYXIgYmxhY2tTcXVhcmUgPSAweDI1QTA7Citjb25zdCBVQ2hhciBibGFja1VwUG9pbnRp
bmdUcmlhbmdsZSA9IDB4MjVCMjsKIGNvbnN0IFVDaGFyIGJ1bGxldCA9IDB4MjAyMjsKK2NvbnN0
IFVDaGFyIGJ1bGxzZXllID0gMHgyNUNFOwogY29uc3QgVUNoYXIgY2FycmlhZ2VSZXR1cm4gPSAw
eDAwMEQ7CiBjb25zdCBVQ2hhciBldGhpb3BpY1ByZWZhY2VDb2xvbiA9IDB4MTM2NjsKK2NvbnN0
IFVDaGFyIGV0aGlvcGljV29yZHNwYWNlID0gMHgxMzYxOworY29uc3QgVUNoYXIgZmlzaGV5ZSA9
IDB4MjVDOTsKIGNvbnN0IFVDaGFyIGhlYnJld1B1bmN0dWF0aW9uR2VyZXNoID0gMHgwNUYzOwog
Y29uc3QgVUNoYXIgaGVicmV3UHVuY3R1YXRpb25HZXJzaGF5aW0gPSAweDA1RjQ7CiBjb25zdCBV
Q2hhciBob3Jpem9udGFsRWxsaXBzaXMgPSAweDIwMjY7CkBAIC02Myw5ICs3MCwxNiBAQCBjb25z
dCBVQ2hhciByaWdodFNpbmdsZVF1b3RhdGlvbk1hcmsgPSAwCiBjb25zdCBVQ2hhciByaWdodFRv
TGVmdEVtYmVkID0gMHgyMDJCOwogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRNYXJrID0gMHgyMDBG
OwogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRPdmVycmlkZSA9IDB4MjAyRTsKK2NvbnN0IFVDaGFy
IHNlc2FtZURvdCA9IDB4RkU0NTsKIGNvbnN0IFVDaGFyIHNvZnRIeXBoZW4gPSAweDAwQUQ7CiBj
b25zdCBVQ2hhciBzcGFjZSA9IDB4MDAyMDsKK2NvbnN0IFVDaGFyIHRpYmV0YW5NYXJrSW50ZXJz
eWxsYWJpY1RzaGVnID0gMHgwRjBCOworY29uc3QgVUNoYXIgdGliZXRhbk1hcmtEZWxpbWl0ZXJU
c2hlZ0JzdGFyID0gMHgwRjBDOworY29uc3QgVUNoYXIzMiB1Z2FyaXRpY1dvcmREaXZpZGVyID0g
MHgxMDM5RjsKIGNvbnN0IFVDaGFyIHdoaXRlQnVsbGV0ID0gMHgyNUU2OworY29uc3QgVUNoYXIg
d2hpdGVDaXJjbGUgPSAweDI1Q0I7Citjb25zdCBVQ2hhciB3aGl0ZVNlc2FtZURvdCA9IDB4RkU0
NjsKK2NvbnN0IFVDaGFyIHdoaXRlVXBQb2ludGluZ1RyaWFuZ2xlID0gMHgyNUIzOwogY29uc3Qg
VUNoYXIgeWVuU2lnbiA9IDB4MDBBNTsKIGNvbnN0IFVDaGFyIHplcm9XaWR0aEpvaW5lciA9IDB4
MjAwRDsKIGNvbnN0IFVDaGFyIHplcm9XaWR0aE5vbkpvaW5lciA9IDB4MjAwQzsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTgsNyArNDk4
LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaQogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHVzZWRGb250cyAmJiBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2Zp
cnN0TGluZSktPmxpbmVIZWlnaHQoKS5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgICAgIHVzZWRG
b250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgp
LnByaW1hcnlGb250KCkpOworICAgICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IGN1cnItPnJl
bmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpOworICAgICAgICAgICAgdXNlZEZv
bnRzLT5hcHBlbmQoZm9udC5wcmltYXJ5Rm9udCgpKTsKICAgICAgICAgICAgIGJvb2wgYmFzZWxp
bmVTZXQgPSBmYWxzZTsKICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsKICAgICAgICAgICAgIGlu
dCBiYXNlbGluZVRvQm90dG9tID0gMDsKQEAgLTUyMCwxNCArNTIxLDMyIEBAIHZvaWQgSW5saW5l
Rmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBj
dXJyLT5saW5lSGVpZ2h0KCk7CiAgICAgICAgICAgICBiYXNlbGluZSA9IGN1cnItPmJhc2VsaW5l
UG9zaXRpb24oYmFzZWxpbmVUeXBlKTsKICAgICAgICAgICAgIGlmIChjdXJyLT5pc1RleHQoKSB8
fCBpc0lubGluZUZsb3cpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gY3Vy
ci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCk7CisgICAgICAgICAgICAg
ICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICAg
ICAgaW50IGRlc2NlbnQgPSBmb250LmRlc2NlbnQoYmFzZWxpbmVUeXBlKTsKKyAgICAgICAgICAg
ICAgICBpZiAoY3Vyci0+aXNUZXh0KCkgJiYgY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJz
dExpbmUpLT50ZXh0RW1waGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaW50IGVtcGhhc2lzTWFya0hlaWdodCA9IGZvbnQucHJpbWFyeUZv
bnQoKS0+ZW1waGFzaXNNYXJrRm9udERhdGEoZm9udC5mb250RGVzY3JpcHRpb24oKSktPmhlaWdo
dCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAoZm9udC5saW5lU3Bh
Y2luZygpIC0gZm9udC5oZWlnaHQoKSkgLyAyOworICAgICAgICAgICAgICAgICAgICBpbnQgZm9u
dEFzY2VudCA9IGhhbGZMZWFkaW5nICsgYXNjZW50OworICAgICAgICAgICAgICAgICAgICBpbnQg
Zm9udERlc2NlbnQgPSBmb250LmxpbmVTcGFjaW5nKCkgLSBmb250QXNjZW50OworICAgICAgICAg
ICAgICAgICAgICBpZiAoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0
RW1waGFzaXNQb3NpdGlvbigpID09IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNjZW50ICs9IGVtcGhhc2lzTWFya0hlaWdodDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gbWF4KGZvbnRBc2NlbnQsIGFzY2VudCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gYmFzZWxpbmUgKyBmb250RGVzY2VudDsK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRl
c2NlbnQgKz0gZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICAgICAgICAgICAgICAgICAgbGlu
ZUhlaWdodCA9IG1heChsaW5lSGVpZ2h0LCBiYXNlbGluZSArIGRlc2NlbnQpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgLy8gRXhh
bWluZSB0aGUgZm9udCBib3ggZm9yIGlubGluZSBmbG93cyBhbmQgdGV4dCBib3hlcyB0byBzZWUg
aWYgYW55IHBhcnQgb2YgaXQgaXMgYWJvdmUgdGhlIGJhc2VsaW5lLgogICAgICAgICAgICAgICAg
IC8vIElmIHRoZSB0b3Agb2Ygb3VyIGZvbnQgYm94IHJlbGF0aXZlIHRvIHRoZSByb290IGJveCBi
YXNlbGluZSBpcyBhYm92ZSB0aGUgcm9vdCBib3ggYmFzZWxpbmUsIHRoZW4KICAgICAgICAgICAg
ICAgICAvLyB3ZSBhcmUgY29udHJpYnV0aW5nIHRvIHRoZSBtYXhBc2NlbnQgdmFsdWUuCi0gICAg
ICAgICAgICAgICAgYWZmZWN0c0FzY2VudCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmly
c3RMaW5lKS0+Zm9udCgpLmFzY2VudChiYXNlbGluZVR5cGUpIC0gY3Vyci0+bG9naWNhbFRvcCgp
ID4gMDsKKyAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50ID0gYXNjZW50IC0gY3Vyci0+bG9n
aWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBEZXNj
ZW50IGlzIHNpbWlsYXIuICBJZiBhbnkgcGFydCBvZiBvdXIgZm9udCBib3ggaXMgYmVsb3cgdGhl
IHJvb3QgYm94J3MgYmFzZWxpbmUsIHRoZW4KICAgICAgICAgICAgICAgICAvLyB3ZSBjb250cmli
dXRlIHRvIHRoZSBtYXhEZXNjZW50IHZhbHVlLgotICAgICAgICAgICAgICAgIGFmZmVjdHNEZXNj
ZW50ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuZGVzY2Vu
dChiYXNlbGluZVR5cGUpICsgY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAgICAg
ICBhZmZlY3RzRGVzY2VudCA9IGRlc2NlbnQgKyBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBlbGVtZW50cyBh
bHdheXMgYWZmZWN0IGJvdGggdGhlIGFzY2VudCBhbmQgZGVzY2VudC4KICAgICAgICAgICAgICAg
ICBhZmZlY3RzQXNjZW50ID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcgQEAgRmxvYXRTaXplIElubGluZVRl
eHRCb3g6OmFwcGx5U2hhZG93VG9HcgogICAgIHJldHVybiBleHRyYU9mZnNldDsKIH0KIAotc3Rh
dGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBpbnQgc3RhcnRPZmZzZXQs
IGludCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEludFBvaW50JiB0ZXh0
T3JpZ2luLAorc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25z
dCBBdG9taWNTdHJpbmcmIGVtcGhhc2lzTWFyaywgaW50IGVtcGhhc2lzTWFya09mZnNldCwgaW50
IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgdHJ1bmNhdGlvblBvaW50LCBjb25zdCBJ
bnRQb2ludCYgdGV4dE9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEludFJlY3QmIGJveFJlY3QsIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgYm9vbCBzdHJv
a2VkLCBib29sIGhvcml6b250YWwpCiB7CiAgICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+
ZmlsbENvbG9yKCk7CkBAIC0zNjgsMTMgKzM2OCwyMyBAQCBzdGF0aWMgdm9pZCBwYWludFRleHRX
aXRoU2hhZG93cyhHcmFwaGljCiAgICAgICAgIGVsc2UgaWYgKCFvcGFxdWUpCiAgICAgICAgICAg
ICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoZmlsbENvbG9yLCBmaWxsQ29sb3JTcGFjZSk7CiAKLSAg
ICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNldCkKLSAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRP
ZmZzZXQsIGVuZE9mZnNldCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKGVuZE9m
ZnNldCA+IDApCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1
biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAg
IGlmIChzdGFydE9mZnNldCA8IHRydW5jYXRpb25Qb2ludCkKLSAgICAgICAgICAgICAgICBjb250
ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0
YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0g
ZW5kT2Zmc2V0KSB7CisgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2lu
ICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRS
dW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBl
bXBoYXNpc01hcmtPZmZzZXQpLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGlmIChlbmRPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAg
aWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgIDAsIGVu
ZE9mZnNldCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250
ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRP
cmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIDAs
IGVuZE9mZnNldCk7CisgICAgICAgICAgICB9IGlmIChzdGFydE9mZnNldCA8IHRydW5jYXRpb25Q
b2ludCkgeworICAgICAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3Jp
Z2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lz
TWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZz
ZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksICBzdGFydE9mZnNldCwgdHJ1bmNh
dGlvblBvaW50KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICghc2hh
ZG93KQpAQCAtNDg4LDEyICs0OTgsMTQgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWlu
dEluZm8mIHBhaQogICAgIC8vIDIuIE5vdyBwYWludCB0aGUgZm9yZWdyb3VuZCwgaW5jbHVkaW5n
IHRleHQgYW5kIGRlY29yYXRpb25zIGxpa2UgdW5kZXJsaW5lL292ZXJsaW5lIChpbiBxdWlya3Mg
bW9kZSBvbmx5KS4KICAgICBDb2xvciB0ZXh0RmlsbENvbG9yOwogICAgIENvbG9yIHRleHRTdHJv
a2VDb2xvcjsKKyAgICBDb2xvciBlbXBoYXNpc01hcmtDb2xvcjsKICAgICBmbG9hdCB0ZXh0U3Ry
b2tlV2lkdGggPSBzdHlsZVRvVXNlLT50ZXh0U3Ryb2tlV2lkdGgoKTsKICAgICBjb25zdCBTaGFk
b3dEYXRhKiB0ZXh0U2hhZG93ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0ID8gMCA6IHN0eWxl
VG9Vc2UtPnRleHRTaGFkb3coKTsKIAogICAgIGlmIChwYWludEluZm8uZm9yY2VCbGFja1RleHQp
IHsKICAgICAgICAgdGV4dEZpbGxDb2xvciA9IENvbG9yOjpibGFjazsKICAgICAgICAgdGV4dFN0
cm9rZUNvbG9yID0gQ29sb3I6OmJsYWNrOworICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9IENv
bG9yOjpibGFjazsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXh0RmlsbENvbG9yID0gc3R5bGVU
b1VzZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xv
cik7CiAgICAgICAgIApAQCAtNTA2LDYgKzUxOCwxMiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBh
aW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgIC8vIE1ha2UgdGhlIHRleHQgc3Ryb2tlIGNvbG9y
IGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tncm91bmQKICAgICAgICAgaWYgKHN0eWxlVG9V
c2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkpCiAgICAgICAgICAgICB0ZXh0U3Ryb2tlQ29s
b3IgPSBjb3JyZWN0ZWRUZXh0Q29sb3IodGV4dFN0cm9rZUNvbG9yLCBDb2xvcjo6d2hpdGUpOwor
CisgICAgICAgIGVtcGhhc2lzTWFya0NvbG9yID0gc3R5bGVUb1VzZS0+dmlzaXRlZERlcGVuZGVu
dENvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOworICAgICAgICAKKyAg
ICAgICAgLy8gTWFrZSB0aGUgdGV4dCBzdHJva2UgY29sb3IgbGVnaWJsZSBhZ2FpbnN0IGEgd2hp
dGUgYmFja2dyb3VuZAorICAgICAgICBpZiAoc3R5bGVUb1VzZS0+Zm9yY2VCYWNrZ3JvdW5kc1Rv
V2hpdGUoKSkKKyAgICAgICAgICAgIGVtcGhhc2lzTWFya0NvbG9yID0gY29ycmVjdGVkVGV4dENv
bG9yKGVtcGhhc2lzTWFya0NvbG9yLCBDb2xvcjo6d2hpdGUpOwogICAgIH0KIAogICAgIGJvb2wg
cGFpbnRTZWxlY3RlZFRleHRPbmx5ID0gKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2Vs
ZWN0aW9uKTsKQEAgLTUxMyw2ICs1MzEsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBh
aW50SW5mbyYgcGFpCiAKICAgICBDb2xvciBzZWxlY3Rpb25GaWxsQ29sb3IgPSB0ZXh0RmlsbENv
bG9yOwogICAgIENvbG9yIHNlbGVjdGlvblN0cm9rZUNvbG9yID0gdGV4dFN0cm9rZUNvbG9yOwor
ICAgIENvbG9yIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrQ29sb3I7
CiAgICAgZmxvYXQgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPSB0ZXh0U3Ryb2tlV2lkdGg7CiAgICAg
Y29uc3QgU2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93ID0gdGV4dFNoYWRvdzsKICAgICBpZiAo
aGF2ZVNlbGVjdGlvbikgewpAQCAtNTI0LDYgKzU0MywxMyBAQCB2b2lkIElubGluZVRleHRCb3g6
OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAgICBzZWxlY3Rpb25GaWxsQ29sb3IgPSBm
b3JlZ3JvdW5kOwogICAgICAgICB9CiAKKyAgICAgICAgQ29sb3IgZW1waGFzaXNNYXJrRm9yZWdy
b3VuZCA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCA/IENvbG9yOjpibGFjayA6IHJlbmRlcmVy
KCktPnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCk7CisgICAgICAgIGlmIChlbXBoYXNpc01h
cmtGb3JlZ3JvdW5kLmlzVmFsaWQoKSAmJiBlbXBoYXNpc01hcmtGb3JlZ3JvdW5kICE9IHNlbGVj
dGlvbkVtcGhhc2lzTWFya0NvbG9yKSB7CisgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRU
ZXh0T25seSkKKyAgICAgICAgICAgICAgICBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgPSB0
cnVlOworICAgICAgICAgICAgc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IgPSBlbXBoYXNpc01h
cmtGb3JlZ3JvdW5kOworICAgICAgICB9CisKICAgICAgICAgaWYgKFJlbmRlclN0eWxlKiBwc2V1
ZG9TdHlsZSA9IHJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxlKFNFTEVDVElPTikpIHsK
ICAgICAgICAgICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHBhaW50SW5mby5mb3JjZUJs
YWNrVGV4dCA/IDAgOiBwc2V1ZG9TdHlsZS0+dGV4dFNoYWRvdygpOwogICAgICAgICAgICAgaWYg
KHNoYWRvdyAhPSBzZWxlY3Rpb25TaGFkb3cpIHsKQEAgLTU2Nyw2ICs1OTMsMTYgQEAgdm9pZCBJ
bmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICBsZW5ndGggPSBtX3Ry
dW5jYXRpb247CiAgICAgfQogCisgICAgaW50IGVtcGhhc2lzTWFya09mZnNldCA9IDA7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmsgPSBzdHlsZVRvVXNlLT50ZXh0RW1waGFz
aXNNYXJrU3RyaW5nKCk7CisgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CisgICAg
ICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YSA9IGZvbnQucHJp
bWFyeUZvbnQoKS0+ZW1waGFzaXNNYXJrRm9udERhdGEoZm9udC5mb250RGVzY3JpcHRpb24oKSk7
CisgICAgICAgIGlmIChzdHlsZVRvVXNlLT50ZXh0RW1waGFzaXNQb3NpdGlvbigpID09IFRleHRF
bXBoYXNpc1Bvc2l0aW9uT3ZlcikKKyAgICAgICAgICAgIGVtcGhhc2lzTWFya09mZnNldCA9IC1m
b250LmFzY2VudCgvKiBGSVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLykgLSBlbXBoYXNpc01h
cmtGb250RGF0YS0+ZGVzY2VudCgvKiBGSVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLyk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVtcGhhc2lzTWFya09mZnNldCA9IGZvbnQuZGVzY2Vu
dCgvKiBGSVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLykgKyBlbXBoYXNpc01hcmtGb250RGF0
YS0+YXNjZW50KC8qIEZJWE1FOiBOZWVkcyBiYXNlbGluZSB0eXBlICovKTsKKyAgICB9CisKICAg
ICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkgewogICAgICAgICAvLyBGb3Igc3Ryb2tlZCBw
YWludGluZywgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIHRleHQgZHJhd2luZyBtb2RlLiAgSXQncyBw
cm9iYWJseSBkYW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFzIGEgc2lkZQogICAgICAg
ICAvLyBlZmZlY3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0cm9raW5nLCBkbyBhIHNh
dmUvcmVzdG9yZS4KQEAgLTU3Niw5ICs2MTIsMTggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWlu
dChQYWludEluZm8mIHBhaQogICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwg
dGV4dEZpbGxDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9V
c2UtPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0
ZWx5IHx8IGVQb3MgPD0gc1BvcykgewogICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJp
Z2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdp
biwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFs
KCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4
dFJ1biwgbnVsbEF0b20sIDAsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0
LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CiAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9u
dCwgdGV4dFJ1biwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0
U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAg
ICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwg
MCwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0
ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisKKyAgICAgICAgaWYgKCFlbXBo
YXNpc01hcmsuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQo
Y29udGV4dCwgZW1waGFzaXNNYXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdp
ZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgaWYgKCFwYWludFNl
bGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCisgICAgICAg
ICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgZW1w
aGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3Jp
Z2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250
YWwoKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFy
a09mZnNldCwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hh
ZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0KIAog
ICAgICAgICBpZiAodGV4dFN0cm9rZVdpZHRoID4gMCkKICAgICAgICAgICAgIGNvbnRleHQtPnJl
c3RvcmUoKTsKQEAgLTU5MCw4ICs2MzUsMTEgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQ
YWludEluZm8mIHBhaQogICAgICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogCiAgICAgICAgIHVw
ZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzZWxlY3Rpb25GaWxsQ29sb3IsIHNlbGVjdGlv
blN0cm9rZUNvbG9yLCBzZWxlY3Rpb25TdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFj
ZSgpKTsKLSAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1
biwgc1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFk
b3csIHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCisgICAgICAg
IHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAw
LCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRv
dywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIGlm
ICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3ND
b250ZXh0KGNvbnRleHQsIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29s
b3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAg
ICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lz
TWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4s
IGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hv
cml6b250YWwoKSk7CisgICAgICAgIH0KICAgICAgICAgaWYgKHNlbGVjdGlvblN0cm9rZVdpZHRo
ID4gMCkKICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKICAgICB9CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyNiw2ICsxNjI2LDI3
IEBAIENvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRm9yZWdyb3VuZEMKICAgICByZXR1cm4g
Y29sb3I7CiB9CiAKK0NvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29s
b3IoKSBjb25zdAoreworICAgIENvbG9yIGNvbG9yOworICAgIC8vIElmIHRoZSBlbGVtZW50IGlz
IHVuc2VsZWN0YWJsZSwgb3Igd2UgYXJlIG9ubHkgcGFpbnRpbmcgdGhlIHNlbGVjdGlvbiwKKyAg
ICAvLyBkb24ndCBvdmVycmlkZSB0aGUgZm9yZWdyb3VuZCBjb2xvciB3aXRoIHRoZSBzZWxlY3Rp
b24gZm9yZWdyb3VuZCBjb2xvci4KKyAgICBpZiAoc3R5bGUoKS0+dXNlclNlbGVjdCgpID09IFNF
TEVDVF9OT05FCisgICAgICAgIHx8IChmcmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAm
IFBhaW50QmVoYXZpb3JTZWxlY3Rpb25Pbmx5KSkKKyAgICAgICAgcmV0dXJuIGNvbG9yOworCisg
ICAgaWYgKFJlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVk
b1N0eWxlKFNFTEVDVElPTikpIHsKKyAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRl
ZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOworICAg
ICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGNvbG9yID0gcHNldWRvU3R5
bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgY29sb3IgPSBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5kQWN0aXZl
KCkgPworICAgICAgICAgICAgICAgIHRoZW1lKCktPmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcigpIDoKKyAgICAgICAgICAgICAgICB0aGVtZSgpLT5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcigpOworCisgICAgcmV0dXJuIGNvbG9yOworfQorCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKIE5vZGUqIFJlbmRlck9iamVjdDo6ZHJhZ2dhYmxlTm9kZShib29sIGRodG1sT0ss
IGJvb2wgdWFPSywgaW50IHgsIGludCB5LCBib29sJiBkaHRtbFdpbGxEcmFnKSBjb25zdAogewpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3NSw2ICs2NzUs
NyBAQCBwdWJsaWM6CiAgICAgLy8gT2J0YWlucyB0aGUgc2VsZWN0aW9uIGNvbG9ycyB0aGF0IHNo
b3VsZCBiZSB1c2VkIHdoZW4gcGFpbnRpbmcgYSBzZWxlY3Rpb24uCiAgICAgQ29sb3Igc2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgQ29sb3Igc2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCkgY29uc3Q7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBj
b25zdDsKIAogICAgIC8vIFdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gYmxvY2sgbmVlZHMgdG8gcGFp
bnQgc2VsZWN0aW9uIGdhcHMuCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9u
R2FwcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQ3LDYgKzg0Nyw0NyBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjpoeXBoZW5TCiAgICAgcmV0dXJuIGh5
cGhlbk1pbnVzU3RyaW5nOwogfQogCitjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjp0
ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHRleHRFbXBoYXNp
c01hcmsoKSkgeworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya05vbmU6CisgICAgICAgIHJldHVy
biBudWxsQXRvbTsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDdXN0b206CisgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCk7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
RG90OiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRE
b3RTdHJpbmcsICgmYnVsbGV0LCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcGVuRG90U3RyaW5nLCAoJndoaXRlQnVsbGV0LCAxKSk7CisgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxl
ZERvdFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya0NpcmNsZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
ZmlsbGVkQ2lyY2xlU3RyaW5nLCAoJmJsYWNrQ2lyY2xlLCAxKSk7CisgICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xl
LCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lz
RmlsbEZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CisgICAg
fQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdWJsZUNpcmNsZTogeworICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAo
JmZpc2hleWUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcsICgmYnVsbHNleWUsIDEpKTsKKyAgICAgICAgcmV0dXJu
IHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG91
YmxlQ2lyY2xlU3RyaW5nIDogb3BlbkRvdWJsZUNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2Fz
ZSBUZXh0RW1waGFzaXNNYXJrVHJpYW5nbGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGZpbGxlZFRyaWFuZ2xlU3RyaW5nLCAoJmJsYWNrVXBQb2ludGluZ1Ry
aWFuZ2xlLCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBv
cGVuVHJpYW5nbGVTdHJpbmcsICgmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAg
ICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8g
ZmlsbGVkVHJpYW5nbGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7CisgICAgfQorICAgIGNh
c2UgVGV4dEVtcGhhc2lzTWFya1Nlc2FtZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgZmlsbGVkU2VzYW1lU3RyaW5nLCAoJnNlc2FtZURvdCwgMSkpOworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmluZywg
KCZ3aGl0ZVNlc2FtZURvdCwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgp
ID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRTZXNhbWVTdHJpbmcgOiBvcGVuU2Vz
YW1lU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtBdXRvOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIH0K
KworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxsQXRvbTsKK30KKwog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2Fy
ZFJlZ2lvbj4mIFJlbmRlclN0eWxlOjppbml0aWFsRGFzaGJvYXJkUmVnaW9ucygpCiB7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDczODY3KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NzE4LDYgKzcxOCw3IEBAIHB1YmxpYzoKICAgICBUZXh0RW1waGFzaXNNYXJrIHRleHRFbXBoYXNp
c01hcmsoKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRleHRFbXBoYXNpc0N1c3Rv
bU1hcmsoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzQ3Vz
dG9tTWFyazsgfQogICAgIFRleHRFbXBoYXNpc1Bvc2l0aW9uIHRleHRFbXBoYXNpc1Bvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEVtcGhhc2lzUG9zaXRpb24+KHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNQb3NpdGlvbik7IH0KKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdDsKICAgICAKICAgICAvLyBSZXR1
cm4gdHJ1ZSBpZiBhbnkgdHJhbnNmb3JtIHJlbGF0ZWQgcHJvcGVydHkgKGN1cnJlbnRseSB0cmFu
c2Zvcm0sIHRyYW5zZm9ybVN0eWxlM0Qgb3IgcGVyc3BlY3RpdmUpIAogICAgIC8vIGluZGljYXRl
cyB0aGF0IHdlIGFyZSB0cmFuc2Zvcm1pbmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76334</attachid>
            <date>2010-12-12 14:04:28 -0800</date>
            <delta_ts>2010-12-12 15:06:07 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r13.diff</filename>
            <type>text/plain</type>
            <size>53308</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDkzIEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAorYm9vbCBGb250OjpnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3Ry
aW5nJiBtYXJrLCBHbHlwaERhdGEmIGdseXBoRGF0YSkgY29uc3QKK3sKKyAgICBpZiAobWFyay5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZHIGZvbnRzLgorICAgIGlmIChwcmltYXJ5
Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAg
ICBVQ2hhcjMyIGNoYXJhY3RlciA9IG1hcmtbMF07CisKKyAgICBpZiAoVTE2X0lTX1NVUlJPR0FU
RShjaGFyYWN0ZXIpKSB7CisgICAgICAgIGlmICghVTE2X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJh
Y3RlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1hcmsubGVu
Z3RoKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFVDaGFyIGxv
dyA9IG1hcmtbMV07CisgICAgICAgIGlmICghVTE2X0lTX1RSQUlMKGxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hhcmFjdGVyID0gVTE2X0dFVF9TVVBQTEVNRU5U
QVJZKGNoYXJhY3RlciwgbG93KTsKKyAgICB9CisKKyAgICBnbHlwaERhdGEgPSBnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBmYWxzZSwgRW1waGFzaXNNYXJrVmFyaWFudCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYg
bWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7
CisgICAgaWYgKG1fZm9udExpc3QgJiYgbV9mb250TGlzdC0+bG9hZGluZ0N1c3RvbUZvbnRzKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0byA8IDApCisgICAgICAgIHRvID0gcnVuLmxl
bmd0aCgpOworCisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7CisgICAgaWYgKCFnZXRFbXBo
YXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRh
LmZvbnREYXRhOworICAgIEFTU0VSVChtYXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnRE
YXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBHbHlwaCBtYXJrR2x5cGggPSBtYXJrR2x5cGhE
YXRhLmdseXBoOworICAgIEdseXBoIHNwYWNlR2x5cGggPSBtYXJrRm9udERhdGEtPnNwYWNlR2x5
cGgoKTsKKworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxB
ZHZhbmNlOworCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGZvciBTVkcgZm9udHMuCisgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgpKQorICAg
ICAgICByZXR1cm47CisjZW5kaWYKKworICAgIGlmIChjb2RlUGF0aChydW4pICE9IENvbXBsZXgp
CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVU
ZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMpOworICAgIGVs
c2UKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBs
ZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMpOworCisg
ICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxv
YXQgbWFya1dpZHRoID0gbWFya0ZvbnREYXRhLT5ib3VuZHNGb3JHbHlwaChtYXJrR2x5cGgpLndp
ZHRoKCk7CisgICAgRmxvYXRSZWN0IGxhc3RHbHlwaEJvdW5kcyA9IGdseXBoQnVmZmVyLmZvbnRE
YXRhQXQoMCktPmJvdW5kc0ZvckdseXBoKGdseXBoQnVmZmVyLmdseXBoQXQoMCkpOworICAgIEZs
b2F0UG9pbnQgc3RhcnRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSArIGxhc3RHbHlw
aEJvdW5kcy54KCkgKyBsYXN0R2x5cGhCb3VuZHMud2lkdGgoKSAvIDIgLSBtYXJrV2lkdGggLyAy
LCBwb2ludC55KCkpOworCisgICAgR2x5cGhCdWZmZXIgbWFya0J1ZmZlcjsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSArIDEgPCBnbHlwaEJ1ZmZlci5zaXplKCk7ICsraSkgeworICAgICAgICBGbG9h
dFJlY3QgbmV4dEdseXBoQm91bmRzID0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChpICsgMSktPmJv
dW5kc0ZvckdseXBoKGdseXBoQnVmZmVyLmdseXBoQXQoaSArIDEpKTsKKyAgICAgICAgZmxvYXQg
YWR2YW5jZSA9IGdseXBoQnVmZmVyLmFkdmFuY2VBdChpKSArIG5leHRHbHlwaEJvdW5kcy54KCkg
LSBsYXN0R2x5cGhCb3VuZHMueCgpICsgKG5leHRHbHlwaEJvdW5kcy53aWR0aCgpIC0gbGFzdEds
eXBoQm91bmRzLndpZHRoKCkpIC8gMjsKKyAgICAgICAgLy8gZmxvYXQgYWR2YW5jZSA9IChnbHlw
aEJ1ZmZlci5hZHZhbmNlQXQoaSkgKyBnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoaSArIDEpKSAvIDI7
CisgICAgICAgIG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoaSkgPT0gZ2x5cGhC
dWZmZXIuZm9udERhdGFBdChpKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlw
aCwgbWFya0ZvbnREYXRhLCBhZHZhbmNlKTsKKyAgICAgICAgbGFzdEdseXBoQm91bmRzID0gbmV4
dEdseXBoQm91bmRzOworICAgIH0KKyAgICBtYXJrQnVmZmVyLmFkZChnbHlwaEJ1ZmZlci5nbHlw
aEF0KGdseXBoQnVmZmVyLnNpemUoKSAtIDEpID09IGdseXBoQnVmZmVyLmZvbnREYXRhQXQoZ2x5
cGhCdWZmZXIuc2l6ZSgpIC0gMSktPnNwYWNlR2x5cGgoKSA/IHNwYWNlR2x5cGggOiBtYXJrR2x5
cGgsIG1hcmtGb250RGF0YSwgMCk7CisKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgbWFy
a0J1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKK30KKworCisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYg
RU5BQkxFKFNWR19GT05UUykKQEAgLTQyMCw0ICs1MDcsMTggQEAgYm9vbCBGb250Ojppc0NKS0lk
ZW9ncmFwaChVQ2hhcjMyIGMpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEZvbnQ6OmNh
blJlY2VpdmVUZXh0RW1waGFzaXMoVUNoYXIzMiBjKQoreworICAgIENoYXJDYXRlZ29yeSBjYXRl
Z29yeSA9IFVuaWNvZGU6OmNhdGVnb3J5KGMpOworICAgIGlmIChjYXRlZ29yeSAmIChTZXBhcmF0
b3JfU3BhY2UgfCBTZXBhcmF0b3JfTGluZSB8IFNlcGFyYXRvcl9QYXJhZ3JhcGggfCBPdGhlcl9O
b3RBc3NpZ25lZCB8IE90aGVyX0NvbnRyb2wgfCBPdGhlcl9Gb3JtYXQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAvLyBBZGRpdGlvbmFsIHdvcmQtc2VwYXJhdG9yIGNoYXJhY3RlcnMg
bGlzdGVkIGluIENTUyBUZXh0IExldmVsIDMgRWRpdG9yJ3MgRHJhZnQgMyBOb3ZlbWJlciAyMDEw
LgorICAgIGlmIChjID09IGV0aGlvcGljV29yZHNwYWNlIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFy
YXRvckxpbmUgfHwgYyA9PSBhZWdlYW5Xb3JkU2VwYXJhdG9yRG90CisgICAgICAgIHx8IGMgPT0g
dWdhcml0aWNXb3JkRGl2aWRlciB8fCBjID09IHRpYmV0YW5NYXJrSW50ZXJzeWxsYWJpY1RzaGVn
IHx8IGMgPT0gdGliZXRhbk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFyKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlKFBhc3NSZWZQdHI8Rm9udFNlbGVjdG9yPikgY29uc3Q7CiAKICAgICB2b2lkIGRyYXdU
ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50Jiwg
aW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSkgY29uc3Q7CisgICAgdm9pZCBkcmF3RW1waGFzaXNN
YXJrcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSkgY29u
c3Q7CiAKICAgICBpbnQgd2lkdGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92
ZXJmbG93ID0gMCkgY29uc3QgeyByZXR1cm4gbHJvdW5kZihmbG9hdFdpZHRoKHJ1biwgZmFsbGJh
Y2tGb250cywgZ2x5cGhPdmVyZmxvdykpOyB9CiAgICAgZmxvYXQgZmxvYXRXaWR0aChjb25zdCBU
ZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0g
MCwgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0OwpAQCAtMTM5LDcgKzE0
MCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBwcmltYXJ5Rm9udCgp
IGNvbnN0OwogICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YUF0KHVuc2lnbmVkKSBjb25zdDsK
LSAgICBHbHlwaERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9y
LCBib29sIGZvcmNlU21hbGxDYXBzID0gZmFsc2UpIGNvbnN0OworICAgIEdseXBoRGF0YSBnbHlw
aERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCA9
IEF1dG9WYXJpYW50KSBjb25zdDsKICAgICAvLyBVc2VkIGZvciBjb21wbGV4IHRleHQsIGFuZCBk
b2VzIG5vdCB1dGlsaXplIHRoZSBnbHlwaCBtYXAgY2FjaGUuCiAgICAgY29uc3QgRm9udERhdGEq
IGZvbnREYXRhRm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgpIGNvbnN0Owog
CkBAIC0xNjMsNiArMTY0LDEwIEBAIHByaXZhdGU6CiAgICAgaW50IG9mZnNldEZvclBvc2l0aW9u
Rm9yVGV4dFVzaW5nU1ZHRm9udChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wg
aW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogI2VuZGlmCiAKKyAgICBlbnVtIEZvclRleHRF
bXBoYXNpc09yTm90IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0RW1waGFzaXMgfTsKKwor
ICAgIC8vIFJldHVybnMgdGhlIGluaXRpYWwgaW4tc3RyZWFtIGFkdmFuY2UuCisgICAgZmxvYXQg
Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgZnJv
bSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYsIEZvclRleHRFbXBoYXNpc09yTm90ID0gTm90Rm9yVGV4
dEVtcGhhc2lzKSBjb25zdDsKICAgICB2b2lkIGRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykg
Y29uc3Q7CiAgICAgdm9pZCBkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IHRvLCBjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CiAgICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2lu
dCYpIGNvbnN0OwpAQCAtMTcwLDkgKzE3NSwxNCBAQCBwcml2YXRlOgogICAgIGludCBvZmZzZXRG
b3JQb3NpdGlvbkZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBi
b29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9u
UmVjdEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQg
aCwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAKKyAgICBib29sIGdldEVtcGhhc2lzTWFya0ds
eXBoRGF0YShjb25zdCBBdG9taWNTdHJpbmcmLCBHbHlwaERhdGEmKSBjb25zdDsKKwogICAgIHN0
YXRpYyBib29sIGNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpOwogCiAgICAg
Q29kZVBhdGggY29kZVBhdGgoY29uc3QgVGV4dFJ1biYpIGNvbnN0OworCisgICAgLy8gUmV0dXJu
cyB0aGUgaW5pdGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4KKyAgICBmbG9hdCBnZXRHbHlwaHNBbmRB
ZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgZnJvbSwgaW50IHRvLCBH
bHlwaEJ1ZmZlciYsIEZvclRleHRFbXBoYXNpc09yTm90ID0gTm90Rm9yVGV4dEVtcGhhc2lzKSBj
b25zdDsKICAgICB2b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBU
ZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwogICAg
IGZsb2F0IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyog
PSAwKSBjb25zdDsKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4VGV4dChjb25z
dCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNv
bnN0OwpAQCAtMTk1LDYgKzIwNSw3IEBAIHB1YmxpYzoKICAgICBGb250U2VsZWN0b3IqIGZvbnRT
ZWxlY3RvcigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHRyZWF0QXNTcGFjZShVQ2hhciBjKSB7
IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXG4nIHx8IGMgPT0gbm9CcmVh
a1NwYWNlOyB9CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9XaWR0aFNwYWNlKFVDaGFyIGMp
IHsgcmV0dXJuIGMgPCAweDIwIHx8IChjID49IDB4N0YgJiYgYyA8IDB4QTApIHx8IGMgPT0gc29m
dEh5cGhlbiB8fCAoYyA+PSAweDIwMGMgJiYgYyA8PSAweDIwMGYpIHx8IChjID49IDB4MjAyYSAm
JiBjIDw9IDB4MjAyZSkgfHwgYyA9PSBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlcjsgfQorICAg
IHN0YXRpYyBib29sIGNhblJlY2VpdmVUZXh0RW1waGFzaXMoVUNoYXIzMiBjKTsKIAogICAgIHN0
YXRpYyBpbmxpbmUgVUNoYXIgbm9ybWFsaXplU3BhY2VzKFVDaGFyIGNoYXJhY3RlcikKICAgICB7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTcgKzQwLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBVbmlj
b2RlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdseXBoRGF0YSBGb250OjpnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgYm9vbCBmb3JjZVNtYWxsQ2Fwcykg
Y29uc3QKK0dseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBi
b29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIGJvb2wgdXNlU21hbGxDYXBzRm9udCA9IGZvcmNlU21h
bGxDYXBzOwotICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFsbENhcHMoKSkgewotICAgICAg
ICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7Ci0gICAgICAgIGlmICh1cHBlckMgIT0gYykg
ewotICAgICAgICAgICAgYyA9IHVwcGVyQzsKLSAgICAgICAgICAgIHVzZVNtYWxsQ2Fwc0ZvbnQg
PSB0cnVlOwotICAgICAgICB9CisgICAgaWYgKHZhcmlhbnQgPT0gQXV0b1ZhcmlhbnQpIHsKKyAg
ICAgICAgaWYgKG1fZm9udERlc2NyaXB0aW9uLnNtYWxsQ2FwcygpKSB7CisgICAgICAgICAgICBV
Q2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7CisgICAgICAgICAgICBpZiAodXBwZXJDICE9IGMp
IHsKKyAgICAgICAgICAgICAgICBjID0gdXBwZXJDOworICAgICAgICAgICAgICAgIHZhcmlhbnQg
PSBTbWFsbENhcHNWYXJpYW50OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdmFy
aWFudCA9IE5vcm1hbFZhcmlhbnQ7CiAgICAgfQogCiAgICAgaWYgKG1pcnJvcikKQEAgLTY4LDgg
KzcxLDggQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgIH0K
IAogICAgIEdseXBoUGFnZSogcGFnZTsKLSAgICBpZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKLSAg
ICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3Qgc21hbGwgY2Fw
cykuCisgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgeworICAgICAgICAvLyBGYXN0
ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vcm1hbCB2YXJpYW50KS4KICAgICAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIHBhZ2UgPSBub2RlLT5wYWdlKCk7CiAgICAgICAg
ICAgICBpZiAocGFnZSkgewpAQCAtMTEwLDcgKzExMyw3IEBAIEdseXBoRGF0YSBGb250OjpnbHlw
aERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAgICAgICAgICAgICBpZiAoZGF0YS5mb250RGF0YSkg
ewogICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc21hbGxDYXBzRm9udERhdGEgZnVuY3Rpb24g
c2hvdWxkIG5vdCBub3JtYWxseSByZXR1cm4gMC4KICAgICAgICAgICAgICAgICAgICAgLy8gQnV0
IGlmIGl0IGRvZXMsIHdlIHdpbGwganVzdCByZW5kZXIgdGhlIGNhcGl0YWwgbGV0dGVyIGJpZy4K
LSAgICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnRE
YXRhID0gZGF0YS5mb250RGF0YS0+c21hbGxDYXBzRm9udERhdGEobV9mb250RGVzY3JpcHRpb24p
OworICAgICAgICAgICAgICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9u
dERhdGEgPSBkYXRhLmZvbnREYXRhLT52YXJpYW50Rm9udERhdGEobV9mb250RGVzY3JpcHRpb24s
IHZhcmlhbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXNtYWxsQ2Fwc0ZvbnREYXRhKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7CiAKQEAgLTE1NywxNCArMTYwLDE0
IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAgICAgY29k
ZVVuaXRzTGVuZ3RoID0gMjsKICAgICB9CiAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIGNoYXJh
Y3RlckZvbnREYXRhID0gZm9udENhY2hlKCktPmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycygqdGhp
cywgY29kZVVuaXRzLCBjb2RlVW5pdHNMZW5ndGgpOwotICAgIGlmICh1c2VTbWFsbENhcHNGb250
ICYmIGNoYXJhY3RlckZvbnREYXRhKQotICAgICAgICBjaGFyYWN0ZXJGb250RGF0YSA9IGNoYXJh
Y3RlckZvbnREYXRhLT5zbWFsbENhcHNGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbik7CisgICAg
aWYgKHZhcmlhbnQgIT0gTm9ybWFsVmFyaWFudCAmJiBjaGFyYWN0ZXJGb250RGF0YSkKKyAgICAg
ICAgY2hhcmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0YS0+dmFyaWFudEZvbnREYXRh
KG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKICAgICBpZiAoY2hhcmFjdGVyRm9udERhdGEp
IHsKICAgICAgICAgLy8gR290IHRoZSBmYWxsYmFjayBnbHlwaCBhbmQgZm9udC4KICAgICAgICAg
R2x5cGhQYWdlKiBmYWxsYmFja1BhZ2UgPSBHbHlwaFBhZ2VUcmVlTm9kZTo6Z2V0Um9vdENoaWxk
KGNoYXJhY3RlckZvbnREYXRhLCBwYWdlTnVtYmVyKS0+cGFnZSgpOwogICAgICAgICBHbHlwaERh
dGEgZGF0YSA9IGZhbGxiYWNrUGFnZSAmJiBmYWxsYmFja1BhZ2UtPmZvbnREYXRhRm9yQ2hhcmFj
dGVyKGMpID8gZmFsbGJhY2tQYWdlLT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoYykgOiBjaGFyYWN0
ZXJGb250RGF0YS0+bWlzc2luZ0dseXBoRGF0YSgpOwogICAgICAgICAvLyBDYWNoZSBpdCBzbyB3
ZSBkb24ndCBoYXZlIHRvIGRvIHN5c3RlbSBmYWxsYmFjayBhZ2FpbiBuZXh0IHRpbWUuCi0gICAg
ICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAgICAgICBpZiAodmFyaWFudCA9PSBOb3Jt
YWxWYXJpYW50KSB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgICAgICAgICAvLyBtaXNzaW5nR2x5cGhE
YXRhIHJldHVybnMgYSBudWxsIGNoYXJhY3Rlciwgd2hpY2ggaXMgbm90IHN1aXRhYmxlIGZvciBH
REkgdG8gZGlzcGxheS4KICAgICAgICAgICAgIC8vIEFsc28sIHNvbWV0aW1lcyB3ZSBjYW5ub3Qg
bWFwIGEgZm9udCBmb3IgdGhlIGNoYXJhY3RlciBvbiBXSU5DRSwgYnV0IEdESSBjYW4gc3RpbGwK
QEAgLTE4Miw3ICsxODUsNyBAQCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KFVDCiAgICAgLy8gRXZlbiBzeXN0ZW0gZmFsbGJhY2sgY2FuIGZhaWw7IHVzZSB0aGUgbWlzc2lu
ZyBnbHlwaCBpbiB0aGF0IGNhc2UuCiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2VyIHRv
IHVzZSB0aGUgbWlzc2luZyBnbHlwaCBmcm9tIHRoZSBsYXN0IHJlc29ydCBmb250IGluc3RlYWQu
CiAgICAgR2x5cGhEYXRhIGRhdGEgPSBwcmltYXJ5Rm9udCgpLT5taXNzaW5nR2x5cGhEYXRhKCk7
Ci0gICAgaWYgKCF1c2VTbWFsbENhcHNGb250KSB7CisgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFs
VmFyaWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAgICAvLyBTZWUgY29tbWVudCBhYm91dCBX
SU5DRSBHREkgaGFuZGxpbmcgbmVhciBzZXRHbHlwaERhdGFGb3JDaGFyYWN0ZXIgYWJvdmUuCiAg
ICAgICAgIHBhZ2UtPnNldEdseXBoRGF0YUZvckNoYXJhY3RlcihjLCBjLCBkYXRhLmZvbnREYXRh
KTsKQEAgLTE5NCwzNyArMTk3LDQ1IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoVUMKICAgICByZXR1cm4gZGF0YTsKIH0KIAotdm9pZCBGb250OjpkcmF3U2ltcGxlVGV4
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250OjpnZXRH
bHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBpbnQgZnJv
bSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpc09yTm90
IGZvclRleHRFbXBoYXNpcykgY29uc3QKIHsKLSAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xk
cyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KLSAgICBHbHlw
aEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZTsKIAotICAgIGZs
b2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKLSAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1bik7
CisgICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbHNlLCBmb3JUZXh0RW1waGFzaXMp
OwogICAgIGl0LmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBpdC5tX3J1
bldpZHRoU29GYXI7CiAgICAgaXQuYWR2YW5jZSh0bywgJmdseXBoQnVmZmVyKTsKLSAgICAKLSAg
ICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1
cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9hdCBhZnRlcldpZHRoID0gaXQubV9ydW5X
aWR0aFNvRmFyOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmbG9hdCBmaW5hbFJv
dW5kaW5nV2lkdGggPSBpdC5tX2ZpbmFsUm91bmRpbmdXaWR0aDsKICAgICAgICAgaXQuYWR2YW5j
ZShydW4ubGVuZ3RoKCkpOwotICAgICAgICBzdGFydFggKz0gZmluYWxSb3VuZGluZ1dpZHRoICsg
aXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2Ug
PSBmaW5hbFJvdW5kaW5nV2lkdGggKyBpdC5tX3J1bldpZHRoU29GYXIgLSBhZnRlcldpZHRoOwog
ICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0gYmVmb3JlV2lkdGg7CisgICAgICAgIGluaXRp
YWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CiAKLSAgICAvLyBTd2FwIHRoZSBvcmRlciBvZiB0aGUg
Z2x5cGhzIGlmIHJpZ2h0LXRvLWxlZnQuCi0gICAgaWYgKHJ1bi5ydGwoKSkKKyAgICBpZiAocnVu
LnJ0bCgpKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQgPSBnbHlwaEJ1ZmZlci5zaXpl
KCkgLSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytpLCAtLWVuZCkKICAgICAgICAg
ICAgIGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5pdGlh
bEFkdmFuY2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRz
IG91ciBnbHlwaHMrYWR2YW5jZXMrZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0
R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVy
KTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKIAot
ICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGdseXBocyB0byBiZSBk
aXNwbGF5ZWQgYnkgYWRkaW5nCi0gICAgLy8gYWxsIHRoZSBhZHZhbmNlcyB1cCB0byB0aGUgZmly
c3QgZ2x5cGguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2lu
dCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCwxNCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9uCiB9CiAjZW5kaWYKIAordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9udC5kcmF3RW1waGFzaXNNYXJrcyh0aGlzLCBydW4s
IG1hcmssIHBvaW50LCBmcm9tLCB0byk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgc2V0VGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKTsKIAogICAgICAg
ICB2b2lkIGRyYXdUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9p
bnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKKyAgICAgICAgdm9pZCBkcmF3RW1waGFz
aXNNYXJrcyhjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYgLCBjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmssIGNvbnN0IEludFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7CiAgICAg
ICAgIHZvaWQgZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYpOwogICAgICAgICB2b2lkIGRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZv
bnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgY29uc3QgQ29sb3Im
IGJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZSwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3Bw
CShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIFNpbXBsZUZvbnREYXRh
OjpTaW1wbGVGb250RGF0YShjb25zdCBGb24KICAgICAsIG1faXNMb2FkaW5nKGlzTG9hZGluZykK
ICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQogICAgICwgbV9zbWFsbENhcHNG
b250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0YSgwKQogICAgICwgbV9icm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIHBsYXRmb3JtSW5pdCgpOwpAQCAtNzUsNiAr
NzYsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoUGFzc093blB0CiAgICAgLCBt
X2lzTG9hZGluZyhmYWxzZSkKICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQog
ICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0
YSgwKQogICAgICwgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIFNWR0ZvbnRG
YWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gbV9zdmdGb250RGF0YS0+c3ZnRm9udEZh
Y2VFbGVtZW50KCk7CkBAIC0xOTAsMTEgKzE5MiwxNSBAQCBTaW1wbGVGb250RGF0YTo6flNpbXBs
ZUZvbnREYXRhKCkKICAgICAgICAgaWYgKG1fc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9zbWFsbENhcHNG
b250RGF0YSk7CiAKKyAgICAgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAg
ICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9lbXBoYXNp
c01hcmtGb250RGF0YSk7CisKICAgICAgICAgaWYgKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEp
CiAgICAgICAgICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEo
bV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSk7CiAgICAgfQogCiAgICAgZGVsZXRlIG1fc21hbGxD
YXBzRm9udERhdGE7CisgICAgZGVsZXRlIG1fZW1waGFzaXNNYXJrRm9udERhdGE7CiAgICAgZGVs
ZXRlIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw2ICs2NSw3IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IGNsYXNzIFNWR0ZvbnREYXRhOwogCitlbnVtIEZvbnREYXRhVmFyaWFudCB7IEF1dG9WYXJpYW50
LCBOb3JtYWxWYXJpYW50LCBTbWFsbENhcHNWYXJpYW50LCBFbXBoYXNpc01hcmtWYXJpYW50IH07
CiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07
CiAKIGNsYXNzIFNpbXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKQEAgLTc2LDcgKzc3
LDI0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgpOwogCiAgICAgY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybURhdGE7IH0KLSAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0OworCisgICAgU2ltcGxlRm9u
dERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
ICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKKworICAgIFNpbXBsZUZvbnREYXRhKiB2YXJpYW50Rm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQp
IGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHZhcmlhbnQpIHsKKyAgICAgICAgY2FzZSBT
bWFsbENhcHNWYXJpYW50OgorICAgICAgICAgICAgcmV0dXJuIHNtYWxsQ2Fwc0ZvbnREYXRhKGRl
c2NyaXB0aW9uKTsKKyAgICAgICAgY2FzZSBFbXBoYXNpc01hcmtWYXJpYW50OgorICAgICAgICAg
ICAgcmV0dXJuIGVtcGhhc2lzTWFya0ZvbnREYXRhKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgY2Fz
ZSBBdXRvVmFyaWFudDoKKyAgICAgICAgY2FzZSBOb3JtYWxWYXJpYW50OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PFNpbXBsZUZvbnREYXRhKj4odGhpcyk7CisgICAgfQogCiAgICAg
U2ltcGxlRm9udERhdGEqIGJyb2tlbklkZW9ncmFwaEZvbnREYXRhKCkgY29uc3Q7CiAgICAgCkBA
IC0xODMsNiArMjAxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbW9uSW5pdCgpOwogCisg
ICAgU2ltcGxlRm9udERhdGEqIHNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdDsKKwogI2lmIChQTEFURk9STShXSU4pICYmICFPUyhX
SU5DRSkpIFwKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQg
aW5pdEdESUZvbnQoKTsKQEAgLTIyNyw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIEdseXBoRGF0
YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX3Nt
YWxsQ2Fwc0ZvbnREYXRhOworICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fZW1waGFzaXNN
YXJrRm9udERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX2Jyb2tlbklkZW9n
cmFwaEZvbnREYXRhOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyBBY2NvcmRpbmcgdG8gaHR0cDovL3d3dy51bmljb2RlLm9yZy9Q
dWJsaWMvVU5JREFUQS9VQ0QuaHRtbCNDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzX1ZhbHVlcwog
c3RhdGljIGNvbnN0IHVpbnQ4X3QgaGlyYWdhbmFLYXRha2FuYVZvaWNpbmdNYXJrc0NvbWJpbmlu
Z0NsYXNzID0gODsKIAotV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCitXaWR0aEl0ZXJhdG9y
OjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcywgYm9vbCBmb3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoZm9udCkK
ICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKQEAgLTUzLDYgKzUz
LDcgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwgbV9t
aW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQogICAgICwg
bV9maXJzdEdseXBoT3ZlcmZsb3coMCkKICAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKKyAg
ICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNpcykKIHsKICAgICAvLyBJZiB0aGUg
cGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1
bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFk
ZGl0aW9uLgpAQCAtMTk5LDYgKzIwMCw5IEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShp
bnQgb2Zmc2V0LCAKICAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxm
bG9hdD4oMCwgLWJvdW5kcy54KCkpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fZm9yVGV4
dEVtcGhhc2lzICYmICFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGMpKQorICAgICAgICAg
ICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgIC8vIEFkdmFuY2Ug
cGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1
c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVudENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHJldmlzaW9u
IDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBUZXh0UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihj
b25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2Up
OworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcyA9IGZhbHNlLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAog
ICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2
YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtNjMs
NiArNjMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CiAg
ICAgZmxvYXQgbV9maXJzdEdseXBoT3ZlcmZsb3c7CiAgICAgZmxvYXQgbV9sYXN0R2x5cGhPdmVy
ZmxvdzsKKyAgICBib29sIG1fZm9yVGV4dEVtcGhhc2lzOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNp
b24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCBib29sIFRleHRSdW5XYWxr
ZXI6Om5leHRTY3JpcHRSdW4oKQogICAgICAgICAvLyAoYW5kIHRoZSBnbHlwaHMgaW4gZWFjaCBB
LCBDIGFuZCBUIHNlY3Rpb24gYXJlIGJhY2t3YXJkcyB0b28pCiAgICAgICAgIGlmICghaGJfdXRm
MTZfc2NyaXB0X3J1bl9wcmV2KCZtX251bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4u
Y2hhcmFjdGVycygpLCBtX3J1bi5sZW5ndGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1f
Zm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9z
XSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlKS5mb250RGF0YTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWhiX3V0ZjE2
X3NjcmlwdF9ydW5fbmV4dCgmbV9udW1Db2RlUG9pbnRzLCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNo
YXJhY3RlcnMoKSwgbV9ydW4ubGVuZ3RoKCksICZtX2luZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIGJvb2wgVGV4dFJ1
bldhbGtlcjo6bmV4dFNjcmlwdFJ1bigpCiAgICAgICAgIC8vIGluIHRoZSBoYXJmYnV6eiBkYXRh
IHN0cnVjdHVyZXMgdG8gZS5nLiBwaWNrIHRoZSBjb3JyZWN0IHNjcmlwdCdzIHNoYXBlci4KICAg
ICAgICAgLy8gU28gd2UgYWxsb3cgdGhhdCB0byBydW4gZmlyc3QsIHRoZW4gZG8gYSBzZWNvbmQg
cGFzcyBvdmVyIHRoZSByYW5nZSBpdAogICAgICAgICAvLyBmb3VuZCBhbmQgdGFrZSB0aGUgbGFy
Z2VzdCBzdWJyZWdpb24gdGhhdCBzdGF5cyB3aXRoaW4gYSBzaW5nbGUgZm9udC4KLSAgICAgICAg
bV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0u
c3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAg
IG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVt
LnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgICAgIHVuc2ln
bmVkIGVuZE9mUnVuOwogICAgICAgICBmb3IgKGVuZE9mUnVuID0gMTsgZW5kT2ZSdW4gPCBtX2l0
ZW0uaXRlbS5sZW5ndGg7ICsrZW5kT2ZSdW4pIHsKLSAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0
ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2UsIGZhbHNlKS5mb250
RGF0YTsKKyAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
cyArIGVuZE9mUnVuXSwgZmFsc2UpLmZvbnREYXRhOwogICAgICAgICAgICAgaWYgKG5leHRGb250
RGF0YSAhPSBtX2N1cnJlbnRGb250RGF0YSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtNDIyLDcgKzQyMiw3IEBAIGZsb2F0IFRleHRSdW5XYWxrZXI6OndpZHRoT2ZGdWxs
UnVuKCkKIAogdm9pZCBUZXh0UnVuV2Fsa2VyOjpzZXR1cEZvbnRGb3JTY3JpcHRSdW4oKQogewot
ICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFj
dGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0
YTsKKyAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsK
ICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+Zm9u
dERhdGFGb3JDaGFyYWN0ZXIoJyAnKS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgbV9pdGVtLmZhY2Ug
PSBwbGF0Zm9ybURhdGEuaGFyZmJ1enpGYWNlKCk7CiAgICAgdm9pZCogb3BhcXVlUGxhdGZvcm1E
YXRhID0gY29uc3RfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oJnBsYXRmb3JtRGF0YSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYs
MTAgKzU2LDExIEBAIHN0YXRpYyBpbmxpbmUgQ0dGbG9hdCBjZWlsQ0dGbG9hdChDR0Zsb2EKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oY2VpbChmKSk7CiB9CiAKLUNvbXBsZXhUZXh0
Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgYm9vbCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKQorQ29tcGxleFRleHRDb250
cm9sbGVyOjpDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4
dFJ1biYgcnVuLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIGJvb2wgZm9yVGV4dEVtcGhhc2lz
KQogICAgIDogbV9mb250KCpmb250KQogICAgICwgbV9ydW4ocnVuKQogICAgICwgbV9tYXlVc2VO
YXR1cmFsV3JpdGluZ0RpcmVjdGlvbihtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbikKKyAg
ICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNpcykKICAgICAsIG1fY3VycmVudENo
YXJhY3RlcigwKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQogICAgICwgbV90b3RhbFdpZHRo
KDApCkBAIC0yNDAsNyArMjQxLDcgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxl
Y3RDb21wbAogICAgICAgICAgICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKFUxNl9HRVRfU1VQUExFTUVOVEFSWShjdXJyWy0xXSwgY3VyclswXSksIGZh
bHNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBuZXh0R2x5
cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3RlcigqY3VyciwgZmFsc2UsIGZvcmNl
U21hbGxDYXBzKTsKKyAgICAgICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFsbENhcHMgPyBTbWFsbENhcHNWYXJp
YW50IDogQXV0b1ZhcmlhbnQpOwogCiAgICAgICAgIGlmICghaXNTdXJyb2dhdGUgJiYgbV9mb250
LmlzU21hbGxDYXBzKCkpIHsKICAgICAgICAgICAgIG5leHRJc1NtYWxsQ2FwcyA9IGZvcmNlU21h
bGxDYXBzIHx8IChuZXdDID0gdV90b3VwcGVyKGMpKSAhPSBjOwpAQCAtNTM2LDYgKzUzNyw5IEBA
IHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHMKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIHdpZHRoU2luY2VMYXN0Um91bmRpbmcgKz0gYWR2YW5jZS53
aWR0aDsKIAorICAgICAgICAgICAgaWYgKG1fZm9yVGV4dEVtcGhhc2lzICYmICghRm9udDo6Y2Fu
UmVjZWl2ZVRleHRFbXBoYXNpcyhjaCkgfHwgKFVfR0VUX0dDX01BU0soY2gpICYgVV9HQ19NX01B
U0spKSkKKyAgICAgICAgICAgICAgICBnbHlwaCA9IGZvbnREYXRhLT5zcGFjZUdseXBoKCk7CisK
ICAgICAgICAgICAgIGFkdmFuY2UuaGVpZ2h0ICo9IC0xOwogICAgICAgICAgICAgbV9hZGp1c3Rl
ZEFkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKICAgICAgICAgICAgIG1fYWRqdXN0ZWRHbHlwaHMu
YXBwZW5kKGdseXBoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFRleHRSdW47CiAvLyBPUyBWZXJzaW9ucyA+
PSAxMC42LCBBVFNVSSBpcyB1c2VkIG90aGVyd2lzZS4KIGNsYXNzIENvbXBsZXhUZXh0Q29udHJv
bGxlciB7CiBwdWJsaWM6Ci0gICAgQ29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQqLCBj
b25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiA9IGZhbHNl
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKTsKKyAg
ICBDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBib29s
IG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgZm9yVGV4dEVtcGhhc2lzID0g
ZmFsc2UpOwogCiAgICAgLy8gQWR2YW5jZSBhbmQgZW1pdCBnbHlwaHMgdXAgdG8gdGhlIHNwZWNp
ZmllZCBjaGFyYWN0ZXIuCiAgICAgdm9pZCBhZHZhbmNlKHVuc2lnbmVkIHRvLCBHbHlwaEJ1ZmZl
ciogPSAwKTsKQEAgLTE1Niw2ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IEZvbnQmIG1f
Zm9udDsKICAgICBjb25zdCBUZXh0UnVuJiBtX3J1bjsKICAgICBib29sIG1fbWF5VXNlTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb247CisgICAgYm9vbCBtX2ZvclRleHRFbXBoYXNpczsKIAogICAgIFZl
Y3RvcjxVQ2hhciwgMjU2PiBtX3NtYWxsQ2Fwc0J1ZmZlcjsKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4
VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDMwICs1NSw0MCBAQCBGbG9hdFJlY3Qg
Rm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAgICAgcmV0dXJuIEZsb2F0UmVjdChwb2lu
dC54KCkgKyBmbG9vcmYoYmVmb3JlV2lkdGgpLCBwb2ludC55KCksIHJvdW5kZihhZnRlcldpZHRo
KSAtIGZsb29yZihiZWZvcmVXaWR0aCksIGgpOwogfQogCi12b2lkIEZvbnQ6OmRyYXdDb21wbGV4
VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdAorZmxvYXQgRm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4
VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgZm9yVGV4dEVtcGhhc2lzKSBjb25zdAog
ewotICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRzIG91ciBnbHlwaHMgKyBhZHZhbmNlcyAr
IGZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KLSAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsK
KyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZTsKIAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50Lngo
KTsKLSAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4pOworICAg
IENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRoaXMsIHJ1biwgZmFsc2UsIDAsIGZv
clRleHRFbXBoYXNpcyk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKGZyb20pOwogICAgIGZsb2F0
IGJlZm9yZVdpZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCk7CiAgICAgY29udHJvbGxl
ci5hZHZhbmNlKHRvLCAmZ2x5cGhCdWZmZXIpOwotICAgIAotICAgIC8vIFdlIGNvdWxkbid0IGdl
bmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZlIHVwLgorCiAgICAgaWYgKGdseXBo
QnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAorICAgICAgICByZXR1cm4g
MDsKKwogICAgIGZsb2F0IGFmdGVyV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsK
IAogICAgIGlmIChydW4ucnRsKCkpIHsKLSAgICAgICAgc3RhcnRYICs9IGNvbnRyb2xsZXIudG90
YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJvdW5kaW5nV2lkdGgoKSAtIGFmdGVyV2lkdGg7
CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gY29udHJvbGxlci50b3RhbFdpZHRoKCkgKyBjb250
cm9sbGVyLmZpbmFsUm91bmRpbmdXaWR0aCgpIC0gYWZ0ZXJXaWR0aDsKICAgICAgICAgZm9yIChp
bnQgaSA9IDAsIGVuZCA9IGdseXBoQnVmZmVyLnNpemUoKSAtIDE7IGkgPCBnbHlwaEJ1ZmZlci5z
aXplKCkgLyAyOyArK2ksIC0tZW5kKQogICAgICAgICAgICAgZ2x5cGhCdWZmZXIuc3dhcChpLCBl
bmQpOwogICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0gYmVmb3JlV2lkdGg7CisgICAgICAg
IGluaXRpYWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CisKKyAgICByZXR1cm4gaW5pdGlhbEFkdmFu
Y2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZy
b20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xkcyBvdXIg
Z2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCisgICAgR2x5cGhC
dWZmZXIgZ2x5cGhCdWZmZXI7CisKKyAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCkgKyBnZXRH
bHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVy
KTsKKworICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4u
ICBHaXZlIHVwLgorICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIERyYXcgdGhlIGdseXBoIGJ1ZmZlciBub3cgYXQgdGhlIHN0YXJ0aW5nIHBv
aW50IHJldHVybmVkIGluIHN0YXJ0WC4KICAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQoc3RhcnRY
LCBwb2ludC55KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxl
Rm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM2Miw2ICszNjIsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkK
ICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiAgICAgfQogCisgICAgaWYgKG1fZW1w
aGFzaXNNYXJrRm9udERhdGEgJiYgIWlzQ3VzdG9tRm9udCgpKSB7CisgICAgICAgIGZvbnRDYWNo
ZSgpLT5yZWxlYXNlRm9udERhdGEobV9lbXBoYXNpc01hcmtGb250RGF0YSk7CisgICAgICAgIG1f
ZW1waGFzaXNNYXJrRm9udERhdGEgPSAwOworICAgIH0KKwogI2lmZGVmIEJVSUxESU5HX09OX1RJ
R0VSCiAgICAgaWYgKG1fc3R5bGVHcm91cCkKICAgICAgICAgd2tSZWxlYXNlU3R5bGVHcm91cCht
X3N0eWxlR3JvdXApOwpAQCAtMzczLDQzICszNzgsNTggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1EZXN0cm95KCkKICNlbmRpZgogfQogCi1TaW1wbGVGb250RGF0YSogU2ltcGxlRm9u
dERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVG
YWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAg
IGlmIChpc0N1c3RvbUZvbnQoKSkgewotICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzbWFs
bENhcHNGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Ci0gICAgICAgICAgICBzbWFsbENhcHNGb250
RGF0YS5tX3NpemUgPSBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgKiBzbWFsbENhcHNGb250U2l6
ZU11bHRpcGxpZXI7Ci0gICAgICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBs
ZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnREYXRhLCB0cnVlLCBmYWxzZSk7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgICAg
ICBmbG9hdCBzaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpICogc21hbGxDYXBzRm9udFNpemVN
dWx0aXBsaWVyOwotICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250KFtb
TlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURh
dGEuZm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IC8vIEFwcEtpdCByZXNldHMgdGhlIHR5cGUgaW5mb3JtYXRpb24gKHNjcmVlbi9wcmludGVyKSB3
aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0byBhIGRpZmZlcmVudCBzaXplLgotICAgICAgICAgICAg
Ly8gV2UgaGF2ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3ZSdyZSBoYW5kZWQgYmFjay4KLSAg
ICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQuc2V0Rm9udChmb250RGVzY3JpcHRpb24udXNlUHJpbnRl
ckZvbnQoKSA/IFtzbWFsbENhcHNGb250LmZvbnQoKSBwcmludGVyRm9udF0gOiBbc21hbGxDYXBz
Rm9udC5mb250KCkgc2NyZWVuRm9udF0pOwotCi0gICAgICAgICAgICBpZiAoc21hbGxDYXBzRm9u
dC5mb250KCkpIHsKLSAgICAgICAgICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9
IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKLSAgICAgICAgICAgICAgICBOU0Zv
bnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6bV9wbGF0
Zm9ybURhdGEuZm9udCgpXTsKLQotICAgICAgICAgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5t
X3N5bnRoZXRpY0JvbGQpCi0gICAgICAgICAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xk
Rm9udE1hc2s7Ci0gICAgICAgICAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGlj
T2JsaXF1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9udFRyYWl0cyB8PSBOU0l0YWxpY0ZvbnRN
YXNrOwotCi0gICAgICAgICAgICAgICAgTlNGb250VHJhaXRNYXNrIHNtYWxsQ2Fwc0ZvbnRUcmFp
dHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNtYWxsQ2Fwc0ZvbnQuZm9udCgpXTsKLSAg
ICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRz
ICYgTlNCb2xkRm9udE1hc2spICYmICEoc21hbGxDYXBzRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRN
YXNrKTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhldGljT2JsaXF1ZSA9
IChmb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzaykgJiYgIShzbWFsbENhcHNGb250VHJhaXRz
ICYgTlNJdGFsaWNGb250TWFzayk7Ci0KLSAgICAgICAgICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnRE
YXRhID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzbWFsbENhcHNGb250KTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAg
ICAgIH0KKyAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSBzY2FsZWRGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7CisgICAgICAgIHNjYWxlZEZvbnREYXRh
Lm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRhLm1fc2l6ZSAqIHNjYWxlRmFjdG9yOworICAgICAgICBy
ZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHNjYWxlZEZvbnREYXRhLCB0cnVlLCBmYWxzZSk7CiAg
ICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIGZsb2F0IHNpemUg
PSBtX3BsYXRmb3JtRGF0YS5zaXplKCkgKiBzY2FsZUZhY3RvcjsKKyAgICBGb250UGxhdGZvcm1E
YXRhIHNjYWxlZEZvbnREYXRhKFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29u
dmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7CisKKyAg
ICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0aW9uIChzY3JlZW4vcHJpbnRlcikg
d2hlbiB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJlbnQgc2l6ZS4KKyAgICAvLyBXZSBo
YXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0aGF0IHdlJ3JlIGhhbmRlZCBiYWNrLgorICAgIHNjYWxl
ZEZvbnREYXRhLnNldEZvbnQoZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCkgPyBbc2Nh
bGVkRm9udERhdGEuZm9udCgpIHByaW50ZXJGb250XSA6IFtzY2FsZWRGb250RGF0YS5mb250KCkg
c2NyZWVuRm9udF0pOworCisgICAgaWYgKHNjYWxlZEZvbnREYXRhLmZvbnQoKSkgeworICAgICAg
ICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRN
YW5hZ2VyXTsKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIGZvbnRUcmFpdHMgPSBbZm9udE1hbmFn
ZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKV07CisKKyAgICAgICAgaWYgKG1f
cGxhdGZvcm1EYXRhLm1fc3ludGhldGljQm9sZCkKKyAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0g
TlNCb2xkRm9udE1hc2s7CisgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09i
bGlxdWUpCisgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5TSXRhbGljRm9udE1hc2s7CisKKyAg
ICAgICAgTlNGb250VHJhaXRNYXNrIHNjYWxlZEZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJh
aXRzT2ZGb250OnNjYWxlZEZvbnREYXRhLmZvbnQoKV07CisgICAgICAgIHNjYWxlZEZvbnREYXRh
Lm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc2Nh
bGVkRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKKyAgICAgICAgc2NhbGVkRm9udERhdGEu
bV9zeW50aGV0aWNPYmxpcXVlID0gKGZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKSAmJiAh
KHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKTsKKworICAgICAgICByZXR1cm4g
Zm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzY2FsZWRGb250RGF0YSk7CisgICAgfQor
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICByZXR1cm4gMDsKK30KKworU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fc21hbGxD
YXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0
YShmb250RGVzY3JpcHRpb24sIHNtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllcik7CisKICAgICBy
ZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZv
bnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisg
ICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3Jp
cHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBi
b29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9jYXN0PHVuaWNoYXIq
PihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT107CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL3RleHQvQ2hhcmFjdGVyTmFtZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3RleHQvQ2hhcmFjdGVyTmFtZXMuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL3RleHQvQ2hhcmFjdGVyTmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzIsMTMgKzMyLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTmFtZXMgaGVy
ZSBhcmUgdGFrZW4gZnJvbSB0aGUgVW5pY29kZSBzdGFuZGFyZC4KIAotLy8gTm90ZSwgdGhlc2Ug
YXJlIFVDaGFyIGNvbnN0YW50cywgbm90IFVDaGFyMzIsIHdoaWNoIG1ha2VzIHRoZW0KKy8vIE5v
dGUsIG1vc3Qgb2YgdGhlc2UgYXJlIFVDaGFyIGNvbnN0YW50cywgbm90IFVDaGFyMzIsIHdoaWNo
IG1ha2VzIHRoZW0KIC8vIG1vcmUgY29udmVuaWVudCBmb3IgV2ViQ29yZSBjb2RlIHRoYXQgbW9z
dGx5IHVzZXMgVVRGLTE2LgogCitjb25zdCBVQ2hhcjMyIGFlZ2VhbldvcmRTZXBhcmF0b3JMaW5l
ID0gMHgxMDEwMDsKK2NvbnN0IFVDaGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckRvdCA9IDB4MTAx
MDE7Citjb25zdCBVQ2hhciBibGFja0NpcmNsZSA9IDB4MjVDRjsKIGNvbnN0IFVDaGFyIGJsYWNr
U3F1YXJlID0gMHgyNUEwOworY29uc3QgVUNoYXIgYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUgPSAw
eDI1QjI7CiBjb25zdCBVQ2hhciBidWxsZXQgPSAweDIwMjI7Citjb25zdCBVQ2hhciBidWxsc2V5
ZSA9IDB4MjVDRTsKIGNvbnN0IFVDaGFyIGNhcnJpYWdlUmV0dXJuID0gMHgwMDBEOwogY29uc3Qg
VUNoYXIgZXRoaW9waWNQcmVmYWNlQ29sb24gPSAweDEzNjY7Citjb25zdCBVQ2hhciBldGhpb3Bp
Y1dvcmRzcGFjZSA9IDB4MTM2MTsKK2NvbnN0IFVDaGFyIGZpc2hleWUgPSAweDI1Qzk7CiBjb25z
dCBVQ2hhciBoZWJyZXdQdW5jdHVhdGlvbkdlcmVzaCA9IDB4MDVGMzsKIGNvbnN0IFVDaGFyIGhl
YnJld1B1bmN0dWF0aW9uR2Vyc2hheWltID0gMHgwNUY0OwogY29uc3QgVUNoYXIgaG9yaXpvbnRh
bEVsbGlwc2lzID0gMHgyMDI2OwpAQCAtNjMsOSArNzAsMTYgQEAgY29uc3QgVUNoYXIgcmlnaHRT
aW5nbGVRdW90YXRpb25NYXJrID0gMAogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRFbWJlZCA9IDB4
MjAyQjsKIGNvbnN0IFVDaGFyIHJpZ2h0VG9MZWZ0TWFyayA9IDB4MjAwRjsKIGNvbnN0IFVDaGFy
IHJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSAweDIwMkU7Citjb25zdCBVQ2hhciBzZXNhbWVEb3QgPSAw
eEZFNDU7CiBjb25zdCBVQ2hhciBzb2Z0SHlwaGVuID0gMHgwMEFEOwogY29uc3QgVUNoYXIgc3Bh
Y2UgPSAweDAwMjA7Citjb25zdCBVQ2hhciB0aWJldGFuTWFya0ludGVyc3lsbGFiaWNUc2hlZyA9
IDB4MEYwQjsKK2NvbnN0IFVDaGFyIHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhciA9IDB4
MEYwQzsKK2NvbnN0IFVDaGFyMzIgdWdhcml0aWNXb3JkRGl2aWRlciA9IDB4MTAzOUY7CiBjb25z
dCBVQ2hhciB3aGl0ZUJ1bGxldCA9IDB4MjVFNjsKK2NvbnN0IFVDaGFyIHdoaXRlQ2lyY2xlID0g
MHgyNUNCOworY29uc3QgVUNoYXIgd2hpdGVTZXNhbWVEb3QgPSAweEZFNDY7Citjb25zdCBVQ2hh
ciB3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSA9IDB4MjVCMzsKIGNvbnN0IFVDaGFyIHllblNpZ24g
PSAweDAwQTU7CiBjb25zdCBVQ2hhciB6ZXJvV2lkdGhKb2luZXIgPSAweDIwMEQ7CiBjb25zdCBV
Q2hhciB6ZXJvV2lkdGhOb25Kb2luZXIgPSAweDIwMEM7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk4LDcgKzQ5OCw4IEBAIHZvaWQgSW5s
aW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKICAgICAgICAgfQogCiAgICAgICAgIGlm
ICh1c2VkRm9udHMgJiYgY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5saW5l
SGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgICAgICB1c2VkRm9udHMtPmFwcGVuZChj
dXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5wcmltYXJ5Rm9udCgp
KTsKKyAgICAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHls
ZShtX2ZpcnN0TGluZSktPmZvbnQoKTsKKyAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGZv
bnQucHJpbWFyeUZvbnQoKSk7CiAgICAgICAgICAgICBib29sIGJhc2VsaW5lU2V0ID0gZmFsc2U7
CiAgICAgICAgICAgICBiYXNlbGluZSA9IDA7CiAgICAgICAgICAgICBpbnQgYmFzZWxpbmVUb0Jv
dHRvbSA9IDA7CkBAIC01MjAsMTQgKzUyMSwzMiBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1
dGVMb2dpY2FsQm94SGVpCiAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gY3Vyci0+bGluZUhlaWdo
dCgpOwogICAgICAgICAgICAgYmFzZWxpbmUgPSBjdXJyLT5iYXNlbGluZVBvc2l0aW9uKGJhc2Vs
aW5lVHlwZSk7CiAgICAgICAgICAgICBpZiAoY3Vyci0+aXNUZXh0KCkgfHwgaXNJbmxpbmVGbG93
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IGN1cnItPnJlbmRlcmVyKCkt
PnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpOworICAgICAgICAgICAgICAgIGludCBhc2NlbnQg
PSBmb250LmFzY2VudChiYXNlbGluZVR5cGUpOworICAgICAgICAgICAgICAgIGludCBkZXNjZW50
ID0gZm9udC5kZXNjZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKGN1cnIt
PmlzVGV4dCgpICYmIGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dEVt
cGhhc2lzTWFyaygpICE9IFRleHRFbXBoYXNpc01hcmtOb25lKSB7CisgICAgICAgICAgICAgICAg
ICAgIGludCBlbXBoYXNpc01hcmtIZWlnaHQgPSBmb250LnByaW1hcnlGb250KCktPmVtcGhhc2lz
TWFya0ZvbnREYXRhKGZvbnQuZm9udERlc2NyaXB0aW9uKCkpLT5oZWlnaHQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGZvbnQubGluZVNwYWNpbmcoKSAtIGZvbnQu
aGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnRBc2NlbnQgPSBoYWxm
TGVhZGluZyArIGFzY2VudDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnREZXNjZW50ID0g
Zm9udC5saW5lU3BhY2luZygpIC0gZm9udEFzY2VudDsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dEVtcGhhc2lzUG9zaXRp
b24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzY2VudCArPSBlbXBoYXNpc01hcmtIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlbGluZSA9IG1heChmb250QXNjZW50LCBhc2NlbnQpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbGluZUhlaWdodCA9IGJhc2VsaW5lICsgZm9udERlc2NlbnQ7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjZW50ICs9IGVtcGhh
c2lzTWFya0hlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBtYXgo
bGluZUhlaWdodCwgYmFzZWxpbmUgKyBkZXNjZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIC8vIEV4YW1pbmUgdGhlIGZvbnQg
Ym94IGZvciBpbmxpbmUgZmxvd3MgYW5kIHRleHQgYm94ZXMgdG8gc2VlIGlmIGFueSBwYXJ0IG9m
IGl0IGlzIGFib3ZlIHRoZSBiYXNlbGluZS4KICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdG9w
IG9mIG91ciBmb250IGJveCByZWxhdGl2ZSB0byB0aGUgcm9vdCBib3ggYmFzZWxpbmUgaXMgYWJv
dmUgdGhlIHJvb3QgYm94IGJhc2VsaW5lLCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gd2UgYXJl
IGNvbnRyaWJ1dGluZyB0byB0aGUgbWF4QXNjZW50IHZhbHVlLgotICAgICAgICAgICAgICAgIGFm
ZmVjdHNBc2NlbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQo
KS5hc2NlbnQoYmFzZWxpbmVUeXBlKSAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CisgICAgICAg
ICAgICAgICAgYWZmZWN0c0FzY2VudCA9IGFzY2VudCAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8gRGVzY2VudCBpcyBzaW1pbGFy
LiAgSWYgYW55IHBhcnQgb2Ygb3VyIGZvbnQgYm94IGlzIGJlbG93IHRoZSByb290IGJveCdzIGJh
c2VsaW5lLCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gd2UgY29udHJpYnV0ZSB0byB0aGUgbWF4
RGVzY2VudCB2YWx1ZS4KLSAgICAgICAgICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGN1cnItPnJl
bmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmRlc2NlbnQoYmFzZWxpbmVUeXBl
KSArIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2Nl
bnQgPSBkZXNjZW50ICsgY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgZWxlbWVudHMgYWx3YXlzIGFmZmVjdCBi
b3RoIHRoZSBhc2NlbnQgYW5kIGRlc2NlbnQuCiAgICAgICAgICAgICAgICAgYWZmZWN0c0FzY2Vu
dCA9IHRydWU7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24g
NzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzUyLDcgKzM1Miw3IEBAIEZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94OjphcHBseVNo
YWRvd1RvR3IKICAgICByZXR1cm4gZXh0cmFPZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50
VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0
LCBpbnQgdHJ1bmNhdGlvblBvaW50LCBjb25zdCBJbnRQb2ludCYgdGV4dE9yaWdpbiwKK3N0YXRp
YyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWljU3RyaW5n
JiBlbXBoYXNpc01hcmssIGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGludCBzdGFydE9mZnNldCwg
aW50IGVuZE9mZnNldCwgaW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRP
cmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBi
b3hSZWN0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGJvb2wgc3Ryb2tlZCwgYm9vbCBob3Jp
em9udGFsKQogewogICAgIENvbG9yIGZpbGxDb2xvciA9IGNvbnRleHQtPmZpbGxDb2xvcigpOwpA
QCAtMzY4LDEzICszNjgsMjMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3Jh
cGhpYwogICAgICAgICBlbHNlIGlmICghb3BhcXVlKQogICAgICAgICAgICAgY29udGV4dC0+c2V0
RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogCi0gICAgICAgIGlmIChzdGFy
dE9mZnNldCA8PSBlbmRPZmZzZXQpCi0gICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250
LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZz
ZXQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChlbmRPZmZzZXQgPiAwKQotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4g
KyBleHRyYU9mZnNldCwgIDAsIGVuZE9mZnNldCk7Ci0gICAgICAgICAgICBpZiAoc3RhcnRPZmZz
ZXQgPCB0cnVuY2F0aW9uUG9pbnQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQo
Zm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgdHJ1
bmNhdGlvblBvaW50KTsKKyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNldCkgewor
ICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
Y29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0
LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01h
cmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zm
c2V0KSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChlbXBoYXNpc01h
cmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250
LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhh
c2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFP
ZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksICAwLCBlbmRPZmZzZXQpOwor
ICAgICAgICAgICAgfSBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zm
c2V0LCBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRl
eHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgw
LCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIXNoYWRvdykKQEAgLTQ4OCwx
MiArNDk4LDE0IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAg
ICAvLyAyLiBOb3cgcGFpbnQgdGhlIGZvcmVncm91bmQsIGluY2x1ZGluZyB0ZXh0IGFuZCBkZWNv
cmF0aW9ucyBsaWtlIHVuZGVybGluZS9vdmVybGluZSAoaW4gcXVpcmtzIG1vZGUgb25seSkuCiAg
ICAgQ29sb3IgdGV4dEZpbGxDb2xvcjsKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CisgICAg
Q29sb3IgZW1waGFzaXNNYXJrQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoID0gc3R5
bGVUb1VzZS0+dGV4dFN0cm9rZVdpZHRoKCk7CiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNo
YWRvdyA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCA/IDAgOiBzdHlsZVRvVXNlLT50ZXh0U2hh
ZG93KCk7CiAKICAgICBpZiAocGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0KSB7CiAgICAgICAgIHRl
eHRGaWxsQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IENv
bG9yOjpibGFjazsKKyAgICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgdGV4dEZpbGxDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOwogICAgICAgICAK
QEAgLTUwNiw2ICs1MTgsMTIgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8m
IHBhaQogICAgICAgICAvLyBNYWtlIHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxlIGFnYWlu
c3QgYSB3aGl0ZSBiYWNrZ3JvdW5kCiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3JjZUJhY2tn
cm91bmRzVG9XaGl0ZSgpKQogICAgICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gY29ycmVjdGVk
VGV4dENvbG9yKHRleHRTdHJva2VDb2xvciwgQ29sb3I6OndoaXRlKTsKKworICAgICAgICBlbXBo
YXNpc01hcmtDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yKTsKKyAgICAgICAgCisgICAgICAgIC8vIE1ha2Ug
dGhlIHRleHQgc3Ryb2tlIGNvbG9yIGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tncm91bmQK
KyAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkpCisgICAg
ICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcihlbXBoYXNpc01h
cmtDb2xvciwgQ29sb3I6OndoaXRlKTsKICAgICB9CiAKICAgICBib29sIHBhaW50U2VsZWN0ZWRU
ZXh0T25seSA9IChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CkBAIC01
MTMsNiArNTMxLDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQog
CiAgICAgQ29sb3Igc2VsZWN0aW9uRmlsbENvbG9yID0gdGV4dEZpbGxDb2xvcjsKICAgICBDb2xv
ciBzZWxlY3Rpb25TdHJva2VDb2xvciA9IHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xvciBzZWxl
Y3Rpb25FbXBoYXNpc01hcmtDb2xvciA9IGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHNl
bGVjdGlvblN0cm9rZVdpZHRoID0gdGV4dFN0cm9rZVdpZHRoOwogICAgIGNvbnN0IFNoYWRvd0Rh
dGEqIHNlbGVjdGlvblNoYWRvdyA9IHRleHRTaGFkb3c7CiAgICAgaWYgKGhhdmVTZWxlY3Rpb24p
IHsKQEAgLTUyNCw2ICs1NDMsMTMgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludElu
Zm8mIHBhaQogICAgICAgICAgICAgc2VsZWN0aW9uRmlsbENvbG9yID0gZm9yZWdyb3VuZDsKICAg
ICAgICAgfQogCisgICAgICAgIENvbG9yIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgPSBwYWludElu
Zm8uZm9yY2VCbGFja1RleHQgPyBDb2xvcjo6YmxhY2sgOiByZW5kZXJlcigpLT5zZWxlY3Rpb25F
bXBoYXNpc01hcmtDb2xvcigpOworICAgICAgICBpZiAoZW1waGFzaXNNYXJrRm9yZWdyb3VuZC5p
c1ZhbGlkKCkgJiYgZW1waGFzaXNNYXJrRm9yZWdyb3VuZCAhPSBzZWxlY3Rpb25FbXBoYXNpc01h
cmtDb2xvcikgeworICAgICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkpCisgICAg
ICAgICAgICAgICAgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrRm9yZWdyb3VuZDsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSByZW5k
ZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pKSB7CiAgICAgICAgICAgICBj
b25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDog
cHNldWRvU3R5bGUtPnRleHRTaGFkb3coKTsKICAgICAgICAgICAgIGlmIChzaGFkb3cgIT0gc2Vs
ZWN0aW9uU2hhZG93KSB7CkBAIC01NjcsNiArNTkzLDE2IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6
cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgbGVuZ3RoID0gbV90cnVuY2F0aW9uOwogICAg
IH0KIAorICAgIGludCBlbXBoYXNpc01hcmtPZmZzZXQgPSAwOworICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgZW1waGFzaXNNYXJrID0gc3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygp
OworICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICBjb25zdCBTaW1w
bGVGb250RGF0YSogZW1waGFzaXNNYXJrRm9udERhdGEgPSBmb250LnByaW1hcnlGb250KCktPmVt
cGhhc2lzTWFya0ZvbnREYXRhKGZvbnQuZm9udERlc2NyaXB0aW9uKCkpOworICAgICAgICBpZiAo
c3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzUG9zaXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlv
bk92ZXIpCisgICAgICAgICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSAtZm9udC5hc2NlbnQoLyog
RklYTUU6IE5lZWRzIGJhc2VsaW5lIHR5cGUgKi8pIC0gZW1waGFzaXNNYXJrRm9udERhdGEtPmRl
c2NlbnQoLyogRklYTUU6IE5lZWRzIGJhc2VsaW5lIHR5cGUgKi8pOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSBmb250LmRlc2NlbnQoLyogRklYTUU6IE5l
ZWRzIGJhc2VsaW5lIHR5cGUgKi8pICsgZW1waGFzaXNNYXJrRm9udERhdGEtPmFzY2VudCgvKiBG
SVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLyk7CisgICAgfQorCiAgICAgaWYgKCFwYWludFNl
bGVjdGVkVGV4dE9ubHkpIHsKICAgICAgICAgLy8gRm9yIHN0cm9rZWQgcGFpbnRpbmcsIHdlIGhh
dmUgdG8gY2hhbmdlIHRoZSB0ZXh0IGRyYXdpbmcgbW9kZS4gIEl0J3MgcHJvYmFibHkgZGFuZ2Vy
b3VzIHRvIGxlYXZlIHRoYXQgbXV0YXRlZCBhcyBhIHNpZGUKICAgICAgICAgLy8gZWZmZWN0LCBz
byBvbmx5IHdoZW4gd2Uga25vdyB3ZSdyZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCkBA
IC01NzYsOSArNjEyLDE4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWkKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHRleHRGaWxsQ29sb3Is
IHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNl
KCkpOwogICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9
IHNQb3MpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwg
Zm9udCwgdGV4dFJ1biwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRl
eHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAg
ICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9t
LCAwLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywg
dGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVQ
b3MsIHNQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0
cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0
aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQb3Ms
IGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOworCisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIGVtcGhh
c2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1Vz
ZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBh
cmF0ZWx5IHx8IGVQb3MgPD0gc1BvcykgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVu
Y2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgICAgIHBhaW50
VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1w
aGFzaXNNYXJrT2Zmc2V0LCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwg
dGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4
dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIGVQb3Ms
IHNQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9r
ZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHRl
eHRTdHJva2VXaWR0aCA+IDApCiAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CkBAIC01
OTAsOCArNjM1LDExIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkK
ICAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIAogICAgICAgICB1cGRhdGVHcmFwaGljc0Nv
bnRleHQoY29udGV4dCwgc2VsZWN0aW9uRmlsbENvbG9yLCBzZWxlY3Rpb25TdHJva2VDb2xvciwg
c2VsZWN0aW9uU3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAg
IHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIHNQb3MsIGVQb3Ms
IGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25T
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQorICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1BvcywgZVBvcywg
bGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0
cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICBpZiAoIWVtcGhhc2lzTWFy
ay5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0
LCBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tl
V2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lz
TWFya09mZnNldCwgc1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxl
Y3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwor
ICAgICAgICB9CiAgICAgICAgIGlmIChzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDApCiAgICAgICAg
ICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MjYsNiArMTYyNiwyNyBAQCBDb2xvciBSZW5k
ZXJPYmplY3Q6OnNlbGVjdGlvbkZvcmVncm91bmRDCiAgICAgcmV0dXJuIGNvbG9yOwogfQogCitD
b2xvciBSZW5kZXJPYmplY3Q6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKK3sK
KyAgICBDb2xvciBjb2xvcjsKKyAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyB1bnNlbGVjdGFibGUs
IG9yIHdlIGFyZSBvbmx5IHBhaW50aW5nIHRoZSBzZWxlY3Rpb24sCisgICAgLy8gZG9uJ3Qgb3Zl
cnJpZGUgdGhlIGZvcmVncm91bmQgY29sb3Igd2l0aCB0aGUgc2VsZWN0aW9uIGZvcmVncm91bmQg
Y29sb3IuCisgICAgaWYgKHN0eWxlKCktPnVzZXJTZWxlY3QoKSA9PSBTRUxFQ1RfTk9ORQorICAg
ICAgICB8fCAoZnJhbWUoKS0+dmlldygpLT5wYWludEJlaGF2aW9yKCkgJiBQYWludEJlaGF2aW9y
U2VsZWN0aW9uT25seSkpCisgICAgICAgIHJldHVybiBjb2xvcjsKKworICAgIGlmIChSZWZQdHI8
UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlID0gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJ
T04pKSB7CisgICAgICAgIGNvbG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yKTsKKyAgICAgICAgaWYgKCFjb2xv
ci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVw
ZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7CisgICAgfSBlbHNlCisgICAgICAgIGNvbG9y
ID0gZnJhbWUoKS0+c2VsZWN0aW9uKCktPmlzRm9jdXNlZEFuZEFjdGl2ZSgpID8KKyAgICAgICAg
ICAgICAgICB0aGVtZSgpLT5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSA6CisgICAg
ICAgICAgICAgICAgdGhlbWUoKS0+aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsK
KworICAgIHJldHVybiBjb2xvcjsKK30KKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBOb2Rl
KiBSZW5kZXJPYmplY3Q6OmRyYWdnYWJsZU5vZGUoYm9vbCBkaHRtbE9LLCBib29sIHVhT0ssIGlu
dCB4LCBpbnQgeSwgYm9vbCYgZGh0bWxXaWxsRHJhZykgY29uc3QKIHsKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NzUsNiArNjc1LDcgQEAgcHVibGljOgog
ICAgIC8vIE9idGFpbnMgdGhlIHNlbGVjdGlvbiBjb2xvcnMgdGhhdCBzaG91bGQgYmUgdXNlZCB3
aGVuIHBhaW50aW5nIGEgc2VsZWN0aW9uLgogICAgIENvbG9yIHNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0OwogICAgIENvbG9yIHNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0
OworICAgIENvbG9yIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3Q7CiAKICAgICAv
LyBXaGV0aGVyIG9yIG5vdCBhIGdpdmVuIGJsb2NrIG5lZWRzIHRvIHBhaW50IHNlbGVjdGlvbiBn
YXBzLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludFNlbGVjdGlvbkdhcHMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0Nyw2ICs4NDcsNDcgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuUwogICAgIHJldHVybiBoeXBoZW5NaW51c1N0cmlu
ZzsKIH0KIAorY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFy
a1N0cmluZygpIGNvbnN0Cit7CisgICAgc3dpdGNoICh0ZXh0RW1waGFzaXNNYXJrKCkpIHsKKyAg
ICBjYXNlIFRleHRFbXBoYXNpc01hcmtOb25lOgorICAgICAgICByZXR1cm4gbnVsbEF0b207Cisg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ3VzdG9tOgorICAgICAgICByZXR1cm4gdGV4dEVtcGhh
c2lzQ3VzdG9tTWFyaygpOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdDogeworICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG90U3RyaW5nLCAoJmJ1
bGxldCwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3Bl
bkRvdFN0cmluZywgKCZ3aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhh
c2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3RTdHJpbmcgOiBv
cGVuRG90U3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDaXJjbGU6IHsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0
cmluZywgKCZibGFja0NpcmNsZSwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3BlbkNpcmNsZVN0cmluZywgKCZ3aGl0ZUNpcmNsZSwgMSkpOworICAgICAg
ICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBm
aWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRl
eHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZywgKCZmaXNoZXllLCAxKSk7
CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG91YmxlQ2ly
Y2xlU3RyaW5nLCAoJmJ1bGxzZXllLCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNG
aWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdWJsZUNpcmNsZVN0cmlu
ZyA6IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya1RyaWFuZ2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBmaWxsZWRUcmlhbmdsZVN0cmluZywgKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOwor
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblRyaWFuZ2xlU3Ry
aW5nLCAoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0
RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZFRyaWFuZ2xl
U3RyaW5nIDogb3BlblRyaWFuZ2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNp
c01hcmtTZXNhbWU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGZpbGxlZFNlc2FtZVN0cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKKyAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgmd2hpdGVTZXNhbWVE
b3QsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFz
aXNGaWxsRmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKKyAg
ICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICB9CisKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbEF0b207Cit9CisKICNpZiBFTkFCTEUoREFT
SEJPQVJEX1NVUFBPUlQpCiBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+JiBSZW5k
ZXJTdHlsZTo6aW5pdGlhbERhc2hib2FyZFJlZ2lvbnMoKQogewpJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxOCw2ICs3MTgsNyBA
QCBwdWJsaWM6CiAgICAgVGV4dEVtcGhhc2lzTWFyayB0ZXh0RW1waGFzaXNNYXJrKCkgY29uc3Q7
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCkgY29uc3Qg
eyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0N1c3RvbU1hcms7IH0KICAg
ICBUZXh0RW1waGFzaXNQb3NpdGlvbiB0ZXh0RW1waGFzaXNQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFRleHRFbXBoYXNpc1Bvc2l0aW9uPihyYXJlSW5oZXJpdGVkRGF0YS0+
dGV4dEVtcGhhc2lzUG9zaXRpb24pOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0RW1w
aGFzaXNNYXJrU3RyaW5nKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJuIHRydWUgaWYgYW55
IHRyYW5zZm9ybSByZWxhdGVkIHByb3BlcnR5IChjdXJyZW50bHkgdHJhbnNmb3JtLCB0cmFuc2Zv
cm1TdHlsZTNEIG9yIHBlcnNwZWN0aXZlKSAKICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUg
dHJhbnNmb3JtaW5nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76336</attachid>
            <date>2010-12-12 15:06:07 -0800</date>
            <delta_ts>2010-12-12 15:08:22 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r14.diff</filename>
            <type>text/plain</type>
            <size>70283</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDYyIEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyAg
ICBHbHlwaERhdGEgbWFya0dseXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBo
RGF0YShtYXJrLCBtYXJrR2x5cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qg
U2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7Cisg
ICAgQVNTRVJUKG1hcmtGb250RGF0YSk7CisgICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAg
IHJldHVybjsKKworICAgIEdseXBoIG1hcmtHbHlwaCA9IG1hcmtHbHlwaERhdGEuZ2x5cGg7Cisg
ICAgR2x5cGggc3BhY2VHbHlwaCA9IG1hcmtGb250RGF0YS0+c3BhY2VHbHlwaCgpOworCisgICAg
R2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2U7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgaW5p
dGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQocnVuLCBmcm9t
LCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisgICAgZWxzZQorICAgICAgICBp
bml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBm
cm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisKKyAgICBpZiAoZ2x5cGhC
dWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9hdCBtYXJrV2lkdGgg
PSBtYXJrRm9udERhdGEtPmJvdW5kc0ZvckdseXBoKG1hcmtHbHlwaCkud2lkdGgoKTsKKyAgICBG
bG9hdFJlY3QgbGFzdEdseXBoQm91bmRzID0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdCgwKS0+Ym91
bmRzRm9yR2x5cGgoZ2x5cGhCdWZmZXIuZ2x5cGhBdCgwKSk7CisgICAgRmxvYXRQb2ludCBzdGFy
dFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlICsgbGFzdEdseXBoQm91bmRzLngoKSAr
IGxhc3RHbHlwaEJvdW5kcy53aWR0aCgpIC8gMiAtIG1hcmtXaWR0aCAvIDIsIHBvaW50LnkoKSk7
CisKKyAgICBHbHlwaEJ1ZmZlciBtYXJrQnVmZmVyOworICAgIGZvciAoaW50IGkgPSAwOyBpICsg
MSA8IGdseXBoQnVmZmVyLnNpemUoKTsgKytpKSB7CisgICAgICAgIEZsb2F0UmVjdCBuZXh0R2x5
cGhCb3VuZHMgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGkgKyAxKS0+Ym91bmRzRm9yR2x5cGgo
Z2x5cGhCdWZmZXIuZ2x5cGhBdChpICsgMSkpOworICAgICAgICBmbG9hdCBhZHZhbmNlID0gZ2x5
cGhCdWZmZXIuYWR2YW5jZUF0KGkpICsgbmV4dEdseXBoQm91bmRzLngoKSAtIGxhc3RHbHlwaEJv
dW5kcy54KCkgKyAobmV4dEdseXBoQm91bmRzLndpZHRoKCkgLSBsYXN0R2x5cGhCb3VuZHMud2lk
dGgoKSkgLyAyOworICAgICAgICAvLyBmbG9hdCBhZHZhbmNlID0gKGdseXBoQnVmZmVyLmFkdmFu
Y2VBdChpKSArIGdseXBoQnVmZmVyLmFkdmFuY2VBdChpICsgMSkpIC8gMjsKKyAgICAgICAgbWFy
a0J1ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChpKSA9PSBnbHlwaEJ1ZmZlci5mb250RGF0
YUF0KGkpLT5zcGFjZUdseXBoKCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9udERh
dGEsIGFkdmFuY2UpOworICAgICAgICBsYXN0R2x5cGhCb3VuZHMgPSBuZXh0R2x5cGhCb3VuZHM7
CisgICAgfQorICAgIG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoZ2x5cGhCdWZm
ZXIuc2l6ZSgpIC0gMSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChnbHlwaEJ1ZmZlci5zaXpl
KCkgLSAxKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnRE
YXRhLCAwKTsKKworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBtYXJrQnVmZmVyLCBydW4s
IHN0YXJ0UG9pbnQpOworfQorCisKKwogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQpAQCAtNDIwLDQgKzQ3NiwxOCBAQCBib29sIEZvbnQ6OmlzQ0pLSWRlb2dyYXBoKFVDaGFy
MzIgYykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRm9udDo6Y2FuUmVjZWl2ZVRleHRF
bXBoYXNpcyhVQ2hhcjMyIGMpCit7CisgICAgQ2hhckNhdGVnb3J5IGNhdGVnb3J5ID0gVW5pY29k
ZTo6Y2F0ZWdvcnkoYyk7CisgICAgaWYgKGNhdGVnb3J5ICYgKFNlcGFyYXRvcl9TcGFjZSB8IFNl
cGFyYXRvcl9MaW5lIHwgU2VwYXJhdG9yX1BhcmFncmFwaCB8IE90aGVyX05vdEFzc2lnbmVkIHwg
T3RoZXJfQ29udHJvbCB8IE90aGVyX0Zvcm1hdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vIEFkZGl0aW9uYWwgd29yZC1zZXBhcmF0b3IgY2hhcmFjdGVycyBsaXN0ZWQgaW4gQ1NT
IFRleHQgTGV2ZWwgMyBFZGl0b3IncyBEcmFmdCAzIE5vdmVtYmVyIDIwMTAuCisgICAgaWYgKGMg
PT0gZXRoaW9waWNXb3Jkc3BhY2UgfHwgYyA9PSBhZWdlYW5Xb3JkU2VwYXJhdG9yTGluZSB8fCBj
ID09IGFlZ2VhbldvcmRTZXBhcmF0b3JEb3QKKyAgICAgICAgfHwgYyA9PSB1Z2FyaXRpY1dvcmRE
aXZpZGVyIHx8IGMgPT0gdGliZXRhbk1hcmtJbnRlcnN5bGxhYmljVHNoZWcgfHwgYyA9PSB0aWJl
dGFuTWFya0RlbGltaXRlclRzaGVnQnN0YXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2
aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGUoUGFzc1Jl
ZlB0cjxGb250U2VsZWN0b3I+KSBjb25zdDsKIAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAs
IGludCB0byA9IC0xKSBjb25zdDsKKyAgICB2b2lkIGRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0
IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAogICAgIGlu
dCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBj
b25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KSk7IH0KICAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CkBAIC0xMzksNyArMTQwLDcgQEAgcHVibGlj
OgogCiAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIHByaW1hcnlGb250KCkgY29uc3Q7CiAgICAg
Y29uc3QgRm9udERhdGEqIGZvbnREYXRhQXQodW5zaWduZWQpIGNvbnN0OwotICAgIEdseXBoRGF0
YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3IsIGJvb2wgZm9yY2VT
bWFsbENhcHMgPSBmYWxzZSkgY29uc3Q7CisgICAgR2x5cGhEYXRhIGdseXBoRGF0YUZvckNoYXJh
Y3RlcihVQ2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50ID0gQXV0b1ZhcmlhbnQp
IGNvbnN0OwogICAgIC8vIFVzZWQgZm9yIGNvbXBsZXggdGV4dCwgYW5kIGRvZXMgbm90IHV0aWxp
emUgdGhlIGdseXBoIG1hcCBjYWNoZS4KICAgICBjb25zdCBGb250RGF0YSogZm9udERhdGFGb3JD
aGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCkgY29uc3Q7CiAKQEAgLTE2Myw2ICsx
NjQsMTAgQEAgcHJpdmF0ZToKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JUZXh0VXNpbmdT
VkdGb250KGNvbnN0IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlh
bEdseXBocykgY29uc3Q7CiAjZW5kaWYKIAorICAgIGVudW0gRm9yVGV4dEVtcGhhc2lzT3JOb3Qg
eyBOb3RGb3JUZXh0RW1waGFzaXMsIEZvclRleHRFbXBoYXNpcyB9OworCisgICAgLy8gUmV0dXJu
cyB0aGUgaW5pdGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4KKyAgICBmbG9hdCBnZXRHbHlwaHNBbmRB
ZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEds
eXBoQnVmZmVyJiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNv
bnN0OwogICAgIHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4
dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2
b2lkIGRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBj
b25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBj
b25zdDsKICAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBH
bHlwaEJ1ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CkBA
IC0xNzAsOSArMTc1LDE0IEBAIHByaXZhdGU6CiAgICAgaW50IG9mZnNldEZvclBvc2l0aW9uRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBh
cnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxl
VGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdDsKIAorICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKGNvbnN0
IEF0b21pY1N0cmluZyYsIEdseXBoRGF0YSYpIGNvbnN0OworCiAgICAgc3RhdGljIGJvb2wgY2Fu
UmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7CiAKICAgICBDb2RlUGF0aCBjb2Rl
UGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0aWFs
IGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29t
cGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiwg
Rm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAgIHZv
aWQgZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25z
dCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0Owog
ICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBm
bG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CkBAIC0xOTUs
NiArMjA1LDcgQEAgcHVibGljOgogICAgIEZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yKCkgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1NwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIGMgPT0g
JyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicgfHwgYyA9PSBub0JyZWFrU3BhY2U7IH0KICAg
ICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2UoVUNoYXIgYykgeyByZXR1cm4gYyA8
IDB4MjAgfHwgKGMgPj0gMHg3RiAmJiBjIDwgMHhBMCkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IChj
ID49IDB4MjAwYyAmJiBjIDw9IDB4MjAwZikgfHwgKGMgPj0gMHgyMDJhICYmIGMgPD0gMHgyMDJl
KSB8fCBjID09IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyOyB9CisgICAgc3RhdGljIGJvb2wg
Y2FuUmVjZWl2ZVRleHRFbXBoYXNpcyhVQ2hhcjMyIGMpOwogCiAgICAgc3RhdGljIGlubGluZSBV
Q2hhciBub3JtYWxpemVTcGFjZXMoVUNoYXIgY2hhcmFjdGVyKQogICAgIHsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHJldmlzaW9uIDczODY3KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCwxNyArNDAsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihV
Q2hhcjMyIGMsIGJvb2wgbWlycm9yLCBib29sIGZvcmNlU21hbGxDYXBzKSBjb25zdAorR2x5cGhE
YXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyIGMsIGJvb2wgbWlycm9yLCBG
b250RGF0YVZhcmlhbnQgdmFyaWFudCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCi0gICAgYm9vbCB1c2VTbWFsbENhcHNGb250ID0gZm9yY2VTbWFsbENhcHM7Ci0gICAg
aWYgKG1fZm9udERlc2NyaXB0aW9uLnNtYWxsQ2FwcygpKSB7Ci0gICAgICAgIFVDaGFyMzIgdXBw
ZXJDID0gdG9VcHBlcihjKTsKLSAgICAgICAgaWYgKHVwcGVyQyAhPSBjKSB7Ci0gICAgICAgICAg
ICBjID0gdXBwZXJDOwotICAgICAgICAgICAgdXNlU21hbGxDYXBzRm9udCA9IHRydWU7Ci0gICAg
ICAgIH0KKyAgICBpZiAodmFyaWFudCA9PSBBdXRvVmFyaWFudCkgeworICAgICAgICBpZiAobV9m
b250RGVzY3JpcHRpb24uc21hbGxDYXBzKCkpIHsKKyAgICAgICAgICAgIFVDaGFyMzIgdXBwZXJD
ID0gdG9VcHBlcihjKTsKKyAgICAgICAgICAgIGlmICh1cHBlckMgIT0gYykgeworICAgICAgICAg
ICAgICAgIGMgPSB1cHBlckM7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IFNtYWxsQ2Fwc1Zh
cmlhbnQ7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gTm9y
bWFsVmFyaWFudDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB2YXJpYW50ID0gTm9ybWFs
VmFyaWFudDsKICAgICB9CiAKICAgICBpZiAobWlycm9yKQpAQCAtNjgsOCArNzEsOCBAQCBHbHlw
aERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgfQogCiAgICAgR2x5cGhQ
YWdlKiBwYWdlOwotICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgewotICAgICAgICAvLyBGYXN0
ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vdCBzbWFsbCBjYXBzKS4KKyAgICBpZiAo
dmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CisgICAgICAgIC8vIEZhc3Rlc3QgbG9vcCwgZm9y
IHRoZSBjb21tb24gY2FzZSAobm9ybWFsIHZhcmlhbnQpLgogICAgICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICAgICAgcGFnZSA9IG5vZGUtPnBhZ2UoKTsKICAgICAgICAgICAgIGlmIChwYWdl
KSB7CkBAIC0xMTAsNyArMTEzLDcgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJh
Y3RlcihVQwogICAgICAgICAgICAgICAgIGlmIChkYXRhLmZvbnREYXRhKSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBzbWFsbENhcHNGb250RGF0YSBmdW5jdGlvbiBzaG91bGQgbm90IG5v
cm1hbGx5IHJldHVybiAwLgogICAgICAgICAgICAgICAgICAgICAvLyBCdXQgaWYgaXQgZG9lcywg
d2Ugd2lsbCBqdXN0IHJlbmRlciB0aGUgY2FwaXRhbCBsZXR0ZXIgYmlnLgotICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEgPSBkYXRhLmZv
bnREYXRhLT5zbWFsbENhcHNGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YSA9IGRhdGEu
Zm9udERhdGEtPnZhcmlhbnRGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiAg
ICAgICAgICAgICAgICAgICAgIGlmICghc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZGF0YTsKIApAQCAtMTU3LDE0ICsxNjAsMTQgQEAgR2x5cGhEYXRh
IEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgICAgICBjb2RlVW5pdHNMZW5ndGgg
PSAyOwogICAgIH0KICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogY2hhcmFjdGVyRm9udERhdGEg
PSBmb250Q2FjaGUoKS0+Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKCp0aGlzLCBjb2RlVW5pdHMs
IGNvZGVVbml0c0xlbmd0aCk7Ci0gICAgaWYgKHVzZVNtYWxsQ2Fwc0ZvbnQgJiYgY2hhcmFjdGVy
Rm9udERhdGEpCi0gICAgICAgIGNoYXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9udERhdGEt
PnNtYWxsQ2Fwc0ZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uKTsKKyAgICBpZiAodmFyaWFudCAh
PSBOb3JtYWxWYXJpYW50ICYmIGNoYXJhY3RlckZvbnREYXRhKQorICAgICAgICBjaGFyYWN0ZXJG
b250RGF0YSA9IGNoYXJhY3RlckZvbnREYXRhLT52YXJpYW50Rm9udERhdGEobV9mb250RGVzY3Jp
cHRpb24sIHZhcmlhbnQpOwogICAgIGlmIChjaGFyYWN0ZXJGb250RGF0YSkgewogICAgICAgICAv
LyBHb3QgdGhlIGZhbGxiYWNrIGdseXBoIGFuZCBmb250LgogICAgICAgICBHbHlwaFBhZ2UqIGZh
bGxiYWNrUGFnZSA9IEdseXBoUGFnZVRyZWVOb2RlOjpnZXRSb290Q2hpbGQoY2hhcmFjdGVyRm9u
dERhdGEsIHBhZ2VOdW1iZXIpLT5wYWdlKCk7CiAgICAgICAgIEdseXBoRGF0YSBkYXRhID0gZmFs
bGJhY2tQYWdlICYmIGZhbGxiYWNrUGFnZS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoYykgPyBmYWxs
YmFja1BhZ2UtPmdseXBoRGF0YUZvckNoYXJhY3RlcihjKSA6IGNoYXJhY3RlckZvbnREYXRhLT5t
aXNzaW5nR2x5cGhEYXRhKCk7CiAgICAgICAgIC8vIENhY2hlIGl0IHNvIHdlIGRvbid0IGhhdmUg
dG8gZG8gc3lzdGVtIGZhbGxiYWNrIGFnYWluIG5leHQgdGltZS4KLSAgICAgICAgaWYgKCF1c2VT
bWFsbENhcHNGb250KSB7CisgICAgICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsK
ICNpZiBPUyhXSU5DRSkKICAgICAgICAgICAgIC8vIG1pc3NpbmdHbHlwaERhdGEgcmV0dXJucyBh
IG51bGwgY2hhcmFjdGVyLCB3aGljaCBpcyBub3Qgc3VpdGFibGUgZm9yIEdESSB0byBkaXNwbGF5
LgogICAgICAgICAgICAgLy8gQWxzbywgc29tZXRpbWVzIHdlIGNhbm5vdCBtYXAgYSBmb250IGZv
ciB0aGUgY2hhcmFjdGVyIG9uIFdJTkNFLCBidXQgR0RJIGNhbiBzdGlsbApAQCAtMTgyLDcgKzE4
NSw3IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAvLyBF
dmVuIHN5c3RlbSBmYWxsYmFjayBjYW4gZmFpbDsgdXNlIHRoZSBtaXNzaW5nIGdseXBoIGluIHRo
YXQgY2FzZS4KICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZXIgdG8gdXNlIHRoZSBtaXNz
aW5nIGdseXBoIGZyb20gdGhlIGxhc3QgcmVzb3J0IGZvbnQgaW5zdGVhZC4KICAgICBHbHlwaERh
dGEgZGF0YSA9IHByaW1hcnlGb250KCktPm1pc3NpbmdHbHlwaERhdGEoKTsKLSAgICBpZiAoIXVz
ZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICBpZiAodmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CiAj
aWYgT1MoV0lOQ0UpCiAgICAgICAgIC8vIFNlZSBjb21tZW50IGFib3V0IFdJTkNFIEdESSBoYW5k
bGluZyBuZWFyIHNldEdseXBoRGF0YUZvckNoYXJhY3RlciBhYm92ZS4KICAgICAgICAgcGFnZS0+
c2V0R2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMsIGMsIGRhdGEuZm9udERhdGEpOwpAQCAtMTk0LDM3
ICsxOTcsNzYgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAg
IHJldHVybiBkYXRhOwogfQogCi12b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK2Jvb2wgRm9udDo6Z2V0RW1waGFzaXNNYXJrR2x5
cGhEYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgR2x5cGhEYXRhJiBnbHlwaERhdGEpIGNv
bnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocythZHZhbmNl
cytmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7
CisgICAgaWYgKG1hcmsuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBm
bG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4p
OworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZH
IGZvbnRzLgorICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBVQ2hhcjMyIGNoYXJhY3RlciA9IG1hcmtbMF07CisK
KyAgICBpZiAoVTE2X0lTX1NVUlJPR0FURShjaGFyYWN0ZXIpKSB7CisgICAgICAgIGlmICghVTE2
X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJhY3RlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgaWYgKG1hcmsubGVuZ3RoKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIFVDaGFyIGxvdyA9IG1hcmtbMV07CisgICAgICAgIGlmICghVTE2X0lT
X1RSQUlMKGxvdykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hhcmFj
dGVyID0gVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGNoYXJhY3RlciwgbG93KTsKKyAgICB9CisKKyAg
ICBnbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBmYWxzZSwgRW1w
aGFzaXNNYXJrVmFyaWFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Zsb2F0IEZvbnQ6Omdl
dEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCBm
cm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzT3JO
b3QgZm9yVGV4dEVtcGhhc2lzKSBjb25zdAoreworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlOwor
CisgICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbHNlLCBmb3JUZXh0RW1waGFzaXMp
OwogICAgIGl0LmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBpdC5tX3J1
bldpZHRoU29GYXI7CiAgICAgaXQuYWR2YW5jZSh0bywgJmdseXBoQnVmZmVyKTsKLSAgICAKLSAg
ICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1
cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9hdCBhZnRlcldpZHRoID0gaXQubV9ydW5X
aWR0aFNvRmFyOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmbG9hdCBmaW5hbFJv
dW5kaW5nV2lkdGggPSBpdC5tX2ZpbmFsUm91bmRpbmdXaWR0aDsKICAgICAgICAgaXQuYWR2YW5j
ZShydW4ubGVuZ3RoKCkpOwotICAgICAgICBzdGFydFggKz0gZmluYWxSb3VuZGluZ1dpZHRoICsg
aXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2Ug
PSBmaW5hbFJvdW5kaW5nV2lkdGggKyBpdC5tX3J1bldpZHRoU29GYXIgLSBhZnRlcldpZHRoOwog
ICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0gYmVmb3JlV2lkdGg7CisgICAgICAgIGluaXRp
YWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CiAKLSAgICAvLyBTd2FwIHRoZSBvcmRlciBvZiB0aGUg
Z2x5cGhzIGlmIHJpZ2h0LXRvLWxlZnQuCi0gICAgaWYgKHJ1bi5ydGwoKSkKKyAgICBpZiAocnVu
LnJ0bCgpKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQgPSBnbHlwaEJ1ZmZlci5zaXpl
KCkgLSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytpLCAtLWVuZCkKICAgICAgICAg
ICAgIGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5pdGlh
bEFkdmFuY2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRz
IG91ciBnbHlwaHMrYWR2YW5jZXMrZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0
R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVy
KTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKIAot
ICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGdseXBocyB0byBiZSBk
aXNwbGF5ZWQgYnkgYWRkaW5nCi0gICAgLy8gYWxsIHRoZSBhZHZhbmNlcyB1cCB0byB0aGUgZmly
c3QgZ2x5cGguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2lu
dCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCwxNCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9uCiB9CiAjZW5kaWYKIAordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9udC5kcmF3RW1waGFzaXNNYXJrcyh0aGlzLCBydW4s
IG1hcmssIHBvaW50LCBmcm9tLCB0byk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgc2V0VGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKTsKIAogICAgICAg
ICB2b2lkIGRyYXdUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9p
bnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKKyAgICAgICAgdm9pZCBkcmF3RW1waGFz
aXNNYXJrcyhjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYgLCBjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmssIGNvbnN0IEludFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7CiAgICAg
ICAgIHZvaWQgZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYpOwogICAgICAgICB2b2lkIGRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZv
bnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgY29uc3QgQ29sb3Im
IGJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZSwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3Bw
CShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIFNpbXBsZUZvbnREYXRh
OjpTaW1wbGVGb250RGF0YShjb25zdCBGb24KICAgICAsIG1faXNMb2FkaW5nKGlzTG9hZGluZykK
ICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQogICAgICwgbV9zbWFsbENhcHNG
b250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0YSgwKQogICAgICwgbV9icm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIHBsYXRmb3JtSW5pdCgpOwpAQCAtNzUsNiAr
NzYsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoUGFzc093blB0CiAgICAgLCBt
X2lzTG9hZGluZyhmYWxzZSkKICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQog
ICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0
YSgwKQogICAgICwgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIFNWR0ZvbnRG
YWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gbV9zdmdGb250RGF0YS0+c3ZnRm9udEZh
Y2VFbGVtZW50KCk7CkBAIC0xOTAsMTEgKzE5MiwxNSBAQCBTaW1wbGVGb250RGF0YTo6flNpbXBs
ZUZvbnREYXRhKCkKICAgICAgICAgaWYgKG1fc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9zbWFsbENhcHNG
b250RGF0YSk7CiAKKyAgICAgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAg
ICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9lbXBoYXNp
c01hcmtGb250RGF0YSk7CisKICAgICAgICAgaWYgKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEp
CiAgICAgICAgICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEo
bV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSk7CiAgICAgfQogCiAgICAgZGVsZXRlIG1fc21hbGxD
YXBzRm9udERhdGE7CisgICAgZGVsZXRlIG1fZW1waGFzaXNNYXJrRm9udERhdGE7CiAgICAgZGVs
ZXRlIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw2ICs2NSw3IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IGNsYXNzIFNWR0ZvbnREYXRhOwogCitlbnVtIEZvbnREYXRhVmFyaWFudCB7IEF1dG9WYXJpYW50
LCBOb3JtYWxWYXJpYW50LCBTbWFsbENhcHNWYXJpYW50LCBFbXBoYXNpc01hcmtWYXJpYW50IH07
CiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07
CiAKIGNsYXNzIFNpbXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKQEAgLTc2LDcgKzc3
LDI0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgpOwogCiAgICAgY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybURhdGE7IH0KLSAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0OworCisgICAgU2ltcGxlRm9u
dERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
ICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKKworICAgIFNpbXBsZUZvbnREYXRhKiB2YXJpYW50Rm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQp
IGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHZhcmlhbnQpIHsKKyAgICAgICAgY2FzZSBT
bWFsbENhcHNWYXJpYW50OgorICAgICAgICAgICAgcmV0dXJuIHNtYWxsQ2Fwc0ZvbnREYXRhKGRl
c2NyaXB0aW9uKTsKKyAgICAgICAgY2FzZSBFbXBoYXNpc01hcmtWYXJpYW50OgorICAgICAgICAg
ICAgcmV0dXJuIGVtcGhhc2lzTWFya0ZvbnREYXRhKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgY2Fz
ZSBBdXRvVmFyaWFudDoKKyAgICAgICAgY2FzZSBOb3JtYWxWYXJpYW50OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PFNpbXBsZUZvbnREYXRhKj4odGhpcyk7CisgICAgfQogCiAgICAg
U2ltcGxlRm9udERhdGEqIGJyb2tlbklkZW9ncmFwaEZvbnREYXRhKCkgY29uc3Q7CiAgICAgCkBA
IC0xODMsNiArMjAxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbW9uSW5pdCgpOwogCisg
ICAgU2ltcGxlRm9udERhdGEqIHNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdDsKKwogI2lmIChQTEFURk9STShXSU4pICYmICFPUyhX
SU5DRSkpIFwKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQg
aW5pdEdESUZvbnQoKTsKQEAgLTIyNyw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIEdseXBoRGF0
YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX3Nt
YWxsQ2Fwc0ZvbnREYXRhOworICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fZW1waGFzaXNN
YXJrRm9udERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX2Jyb2tlbklkZW9n
cmFwaEZvbnREYXRhOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyBBY2NvcmRpbmcgdG8gaHR0cDovL3d3dy51bmljb2RlLm9yZy9Q
dWJsaWMvVU5JREFUQS9VQ0QuaHRtbCNDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzX1ZhbHVlcwog
c3RhdGljIGNvbnN0IHVpbnQ4X3QgaGlyYWdhbmFLYXRha2FuYVZvaWNpbmdNYXJrc0NvbWJpbmlu
Z0NsYXNzID0gODsKIAotV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCitXaWR0aEl0ZXJhdG9y
OjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcywgYm9vbCBmb3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoZm9udCkK
ICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKQEAgLTUzLDYgKzUz
LDcgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwgbV9t
aW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQogICAgICwg
bV9maXJzdEdseXBoT3ZlcmZsb3coMCkKICAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKKyAg
ICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNpcykKIHsKICAgICAvLyBJZiB0aGUg
cGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1
bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFk
ZGl0aW9uLgpAQCAtMTk5LDYgKzIwMCw5IEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShp
bnQgb2Zmc2V0LCAKICAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxm
bG9hdD4oMCwgLWJvdW5kcy54KCkpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fZm9yVGV4
dEVtcGhhc2lzICYmICFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGMpKQorICAgICAgICAg
ICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgIC8vIEFkdmFuY2Ug
cGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1
c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVudENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHJldmlzaW9u
IDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBUZXh0UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihj
b25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2Up
OworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcyA9IGZhbHNlLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAog
ICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2
YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtNjMs
NiArNjMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CiAg
ICAgZmxvYXQgbV9maXJzdEdseXBoT3ZlcmZsb3c7CiAgICAgZmxvYXQgbV9sYXN0R2x5cGhPdmVy
ZmxvdzsKKyAgICBib29sIG1fZm9yVGV4dEVtcGhhc2lzOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNp
b24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCBib29sIFRleHRSdW5XYWxr
ZXI6Om5leHRTY3JpcHRSdW4oKQogICAgICAgICAvLyAoYW5kIHRoZSBnbHlwaHMgaW4gZWFjaCBB
LCBDIGFuZCBUIHNlY3Rpb24gYXJlIGJhY2t3YXJkcyB0b28pCiAgICAgICAgIGlmICghaGJfdXRm
MTZfc2NyaXB0X3J1bl9wcmV2KCZtX251bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4u
Y2hhcmFjdGVycygpLCBtX3J1bi5sZW5ndGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1f
Zm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9z
XSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlKS5mb250RGF0YTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWhiX3V0ZjE2
X3NjcmlwdF9ydW5fbmV4dCgmbV9udW1Db2RlUG9pbnRzLCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNo
YXJhY3RlcnMoKSwgbV9ydW4ubGVuZ3RoKCksICZtX2luZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIGJvb2wgVGV4dFJ1
bldhbGtlcjo6bmV4dFNjcmlwdFJ1bigpCiAgICAgICAgIC8vIGluIHRoZSBoYXJmYnV6eiBkYXRh
IHN0cnVjdHVyZXMgdG8gZS5nLiBwaWNrIHRoZSBjb3JyZWN0IHNjcmlwdCdzIHNoYXBlci4KICAg
ICAgICAgLy8gU28gd2UgYWxsb3cgdGhhdCB0byBydW4gZmlyc3QsIHRoZW4gZG8gYSBzZWNvbmQg
cGFzcyBvdmVyIHRoZSByYW5nZSBpdAogICAgICAgICAvLyBmb3VuZCBhbmQgdGFrZSB0aGUgbGFy
Z2VzdCBzdWJyZWdpb24gdGhhdCBzdGF5cyB3aXRoaW4gYSBzaW5nbGUgZm9udC4KLSAgICAgICAg
bV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0u
c3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAg
IG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVt
LnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgICAgIHVuc2ln
bmVkIGVuZE9mUnVuOwogICAgICAgICBmb3IgKGVuZE9mUnVuID0gMTsgZW5kT2ZSdW4gPCBtX2l0
ZW0uaXRlbS5sZW5ndGg7ICsrZW5kT2ZSdW4pIHsKLSAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0
ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2UsIGZhbHNlKS5mb250
RGF0YTsKKyAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
cyArIGVuZE9mUnVuXSwgZmFsc2UpLmZvbnREYXRhOwogICAgICAgICAgICAgaWYgKG5leHRGb250
RGF0YSAhPSBtX2N1cnJlbnRGb250RGF0YSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtNDIyLDcgKzQyMiw3IEBAIGZsb2F0IFRleHRSdW5XYWxrZXI6OndpZHRoT2ZGdWxs
UnVuKCkKIAogdm9pZCBUZXh0UnVuV2Fsa2VyOjpzZXR1cEZvbnRGb3JTY3JpcHRSdW4oKQogewot
ICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFj
dGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0
YTsKKyAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsK
ICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+Zm9u
dERhdGFGb3JDaGFyYWN0ZXIoJyAnKS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgbV9pdGVtLmZhY2Ug
PSBwbGF0Zm9ybURhdGEuaGFyZmJ1enpGYWNlKCk7CiAgICAgdm9pZCogb3BhcXVlUGxhdGZvcm1E
YXRhID0gY29uc3RfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oJnBsYXRmb3JtRGF0YSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21p
dW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDIyICsxMTIsMzIgQEAgdm9pZCBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZv
bnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgTE9HRk9OVCB3aW5Gb250Owor
ICAgIEdldE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3
aW5Gb250KTsKKyAgICBmbG9hdCBzY2FsZWRTaXplID0gc2NhbGVGYWN0b3IgKiBmb250RGVzY3Jp
cHRpb24uY29tcHV0ZWRTaXplKCk7CisgICAgd2luRm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNj
YWxlZFNpemUpOworICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5Gb250
KTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9ybURhdGEoaGZvbnQs
IHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250
RGF0YSkgewotICAgICAgICBMT0dGT05UIHdpbkZvbnQ7Ci0gICAgICAgIEdldE9iamVjdChtX3Bs
YXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5Gb250KTsKLSAgICAgICAg
ZmxvYXQgc21hbGxDYXBzU2l6ZSA9IDAuNzBmICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6
ZSgpOwotICAgICAgICAvLyBVbmxpa2UgV2ViS2l0IHRydW5rLCB3ZSBkb24ndCBtdWx0aXBseSB0
aGUgc2l6ZSBieSAzMi4gIFRoYXQgc2VlbXMKLSAgICAgICAgLy8gdG8gYmUgc29tZSBraW5kIG9m
IGFydGlmYWN0IG9mIHRoZWlyIENHIGJhY2tlbmQsIG9yIHNvbWV0aGluZy4KLSAgICAgICAgd2lu
Rm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc1NpemUpOwotICAgICAgICBIRk9OVCBo
Zm9udCA9IENyZWF0ZUZvbnRJbmRpcmVjdCgmd2luRm9udCk7Ci0gICAgICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPQotICAgICAgICAgICAgbmV3IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9ybURh
dGEoaGZvbnQsIHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOwotICAgIH0K
KyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKwogICAgIHJldHVybiBt
X3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAg
bV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
LjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2lt
cGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
aW50IGxlbmd0aCkgY29uc3QKIHsKICAgLy8gVGhpcyB1c2VkIHRvIGJlIGltcGxlbWVudGVkIHdp
dGggSU1MYW5nRm9udExpbmsyLCBidXQgc2luY2UgdGhhdCBjb2RlIGhhcwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnRE
YXRhTGludXguY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBTbWFsbGNhcHMgdmVyc2lvbnMg
b2YgZm9udHMgYXJlIDcwJSB0aGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGZvbnQuCiBzdGF0aWMgY29u
c3QgZmxvYXQgc21hbGxDYXBzRnJhY3Rpb24gPSAwLjdmOworc3RhdGljIGNvbnN0IGZsb2F0IGVt
cGhhc2lzTWFya0ZyYWN0aW9uID0gLjU7CiAvLyBUaGlzIGlzIHRoZSBsYXJnZXN0IFZETVggdGFi
bGUgd2hpY2ggd2UnbGwgdHJ5IHRvIGxvYWQgYW5kIHBhcnNlLgogc3RhdGljIGNvbnN0IHNpemVf
dCBtYXhWRE1YVGFibGVTaXplID0gMTAyNCAqIDEwMjQ7ICAvLyAxIE1CCiAKQEAgLTE0MSwxNiAr
MTQyLDI4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIGNvbnN0IGZsb2F0IHNjYWxlZFNpemUgPSBscm91bmRmKGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnRE
YXRhKEZvbnRQbGF0Zm9ybURhdGEobV9wbGF0Zm9ybURhdGEsIHNjYWxlZFNpemUpLCBpc0N1c3Rv
bUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNt
YWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBj
b25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBjb25zdCBm
bG9hdCBzbWFsbENhcHNTaXplID0gbHJvdW5kZihmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCkgKiBzbWFsbENhcHNGcmFjdGlvbik7Ci0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBu
ZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3JtRGF0YSwgc21hbGxD
YXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFs
bENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgc21hbGxDYXBzRnJhY3Rpb24pOwogCiAgICAgcmV0dXJuIG1f
c21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6
ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBt
X2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBl
bXBoYXNpc01hcmtGcmFjdGlvbik7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0
YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIFNrUGFpbnQgcGFpbnQ7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzksMTQgKzc5LDI3IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERh
dGEoCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRf
ZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAorICAgICAgICBzY2FsZUZhY3RvciAq
IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCkpLAorICAgICAgICBpc0N1
c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJIHRoaW5rIHdlIHdhbnQgdG8gYXNrIEZvbnRDb25m
aWcgZm9yIHRoZSByaWdodCBmb250IGFnYWluLgogICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0
YSkKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YSgKLSAg
ICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFj
ZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAotICAgICAgICAgICAgMC43MGYgKiBmb250
RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQo
KSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpKSwKLSAgICAgICAgICAgIGlzQ3Vz
dG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKworICAgIHJldHVybiBtX3NtYWxsQ2Fwc0Zv
bnREYXRhOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFy
a0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
eworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01h
cmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOwogCiAgICAg
cmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxlRm9udERhdGFIYWlrdS5jcHAJKHJldmlz
aW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVGb250
RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTQgKzY2LDI3IEBAIHZvaWQgU2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBT
aW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnREZXNjcmlw
dGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgZGVzYy5z
ZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6
ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5m
YW1pbHkoKS5mYW1pbHkoKSk7CisgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShmb250UGxh
dGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSog
U2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkg
ewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoMC43MGYgKiBmb250RGVz
Y3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5mYW1pbHkoKSk7Ci0gICAgICAgIG1fc21h
bGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoZm9udFBsYXRmb3JtRGF0YSwgaXND
dXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRh
KQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2Ny
aXB0aW9uLCAuNyk7CisKKyAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKK30KKworU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKwogICAgIHJldHVybiBtX3NtYWxsQ2Fw
c0ZvbnREYXRhOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDczODY3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTYsMTAgKzU2LDExIEBAIHN0YXRpYyBpbmxpbmUgQ0dGbG9hdCBj
ZWlsQ0dGbG9hdChDR0Zsb2EKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oY2VpbChm
KSk7CiB9CiAKLUNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKGNv
bnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgYm9vbCBtYXlVc2VOYXR1cmFsV3Jp
dGluZ0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKQorQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3Qg
Rm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5n
RGlyZWN0aW9uLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IGJvb2wgZm9yVGV4dEVtcGhhc2lzKQogICAgIDogbV9mb250KCpmb250KQogICAgICwgbV9ydW4o
cnVuKQogICAgICwgbV9tYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbihtYXlVc2VOYXR1cmFs
V3JpdGluZ0RpcmVjdGlvbikKKyAgICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNp
cykKICAgICAsIG1fY3VycmVudENoYXJhY3RlcigwKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgp
KQogICAgICwgbV90b3RhbFdpZHRoKDApCkBAIC0yNDAsNyArMjQxLDcgQEAgdm9pZCBDb21wbGV4
VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbAogICAgICAgICAgICAgICAgIG5leHRHbHlwaERh
dGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFUxNl9HRVRfU1VQUExFTUVOVEFSWShj
dXJyWy0xXSwgY3VyclswXSksIGZhbHNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3Rl
cigqY3VyciwgZmFsc2UsIGZvcmNlU21hbGxDYXBzKTsKKyAgICAgICAgICAgIG5leHRHbHlwaERh
dGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFs
bENhcHMgPyBTbWFsbENhcHNWYXJpYW50IDogQXV0b1ZhcmlhbnQpOwogCiAgICAgICAgIGlmICgh
aXNTdXJyb2dhdGUgJiYgbV9mb250LmlzU21hbGxDYXBzKCkpIHsKICAgICAgICAgICAgIG5leHRJ
c1NtYWxsQ2FwcyA9IGZvcmNlU21hbGxDYXBzIHx8IChuZXdDID0gdV90b3VwcGVyKGMpKSAhPSBj
OwpAQCAtNTM2LDYgKzUzNyw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RH
bHlwaHMKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHdpZHRoU2luY2VMYXN0
Um91bmRpbmcgKz0gYWR2YW5jZS53aWR0aDsKIAorICAgICAgICAgICAgaWYgKG1fZm9yVGV4dEVt
cGhhc2lzICYmICghRm9udDo6Y2FuUmVjZWl2ZVRleHRFbXBoYXNpcyhjaCkgfHwgKFVfR0VUX0dD
X01BU0soY2gpICYgVV9HQ19NX01BU0spKSkKKyAgICAgICAgICAgICAgICBnbHlwaCA9IGZvbnRE
YXRhLT5zcGFjZUdseXBoKCk7CisKICAgICAgICAgICAgIGFkdmFuY2UuaGVpZ2h0ICo9IC0xOwog
ICAgICAgICAgICAgbV9hZGp1c3RlZEFkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKICAgICAgICAg
ICAgIG1fYWRqdXN0ZWRHbHlwaHMuYXBwZW5kKGdseXBoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFRleHRS
dW47CiAvLyBPUyBWZXJzaW9ucyA+PSAxMC42LCBBVFNVSSBpcyB1c2VkIG90aGVyd2lzZS4KIGNs
YXNzIENvbXBsZXhUZXh0Q29udHJvbGxlciB7CiBwdWJsaWM6Ci0gICAgQ29tcGxleFRleHRDb250
cm9sbGVyKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFsV3Jp
dGluZ0RpcmVjdGlvbiA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMgPSAwKTsKKyAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCos
IGNvbnN0IFRleHRSdW4mLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uID0gZmFs
c2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIGJv
b2wgZm9yVGV4dEVtcGhhc2lzID0gZmFsc2UpOwogCiAgICAgLy8gQWR2YW5jZSBhbmQgZW1pdCBn
bHlwaHMgdXAgdG8gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIuCiAgICAgdm9pZCBhZHZhbmNlKHVu
c2lnbmVkIHRvLCBHbHlwaEJ1ZmZlciogPSAwKTsKQEAgLTE1Niw2ICsxNTYsNyBAQCBwcml2YXRl
OgogICAgIGNvbnN0IEZvbnQmIG1fZm9udDsKICAgICBjb25zdCBUZXh0UnVuJiBtX3J1bjsKICAg
ICBib29sIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CisgICAgYm9vbCBtX2ZvclRl
eHRFbXBoYXNpczsKIAogICAgIFZlY3RvcjxVQ2hhciwgMjU2PiBtX3NtYWxsQ2Fwc0J1ZmZlcjsK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFj
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29t
cGxleFRleHRNYWMuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDMw
ICs1NSw0MCBAQCBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAgICAg
cmV0dXJuIEZsb2F0UmVjdChwb2ludC54KCkgKyBmbG9vcmYoYmVmb3JlV2lkdGgpLCBwb2ludC55
KCksIHJvdW5kZihhZnRlcldpZHRoKSAtIGZsb29yZihiZWZvcmVXaWR0aCksIGgpOwogfQogCi12
b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAorZmxvYXQgRm9udDo6Z2V0R2x5cGhz
QW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCBmcm9tLCBp
bnQgdG8sIEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgZm9y
VGV4dEVtcGhhc2lzKSBjb25zdAogewotICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRzIG91
ciBnbHlwaHMgKyBhZHZhbmNlcyArIGZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KLSAgICBHbHlw
aEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZTsKIAotICAgIGZs
b2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKLSAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJv
bGxlcih0aGlzLCBydW4pOworICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRo
aXMsIHJ1biwgZmFsc2UsIDAsIGZvclRleHRFbXBoYXNpcyk7CiAgICAgY29udHJvbGxlci5hZHZh
bmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdpZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNv
RmFyKCk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKHRvLCAmZ2x5cGhCdWZmZXIpOwotICAgIAot
ICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZl
IHVwLgorCiAgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAorICAgICAgICByZXR1cm4gMDsKKwogICAgIGZsb2F0IGFmdGVyV2lkdGggPSBjb250cm9s
bGVyLnJ1bldpZHRoU29GYXIoKTsKIAogICAgIGlmIChydW4ucnRsKCkpIHsKLSAgICAgICAgc3Rh
cnRYICs9IGNvbnRyb2xsZXIudG90YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJvdW5kaW5n
V2lkdGgoKSAtIGFmdGVyV2lkdGg7CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gY29udHJvbGxl
ci50b3RhbFdpZHRoKCkgKyBjb250cm9sbGVyLmZpbmFsUm91bmRpbmdXaWR0aCgpIC0gYWZ0ZXJX
aWR0aDsKICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGVuZCA9IGdseXBoQnVmZmVyLnNpemUoKSAt
IDE7IGkgPCBnbHlwaEJ1ZmZlci5zaXplKCkgLyAyOyArK2ksIC0tZW5kKQogICAgICAgICAgICAg
Z2x5cGhCdWZmZXIuc3dhcChpLCBlbmQpOwogICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0g
YmVmb3JlV2lkdGg7CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CisKKyAg
ICByZXR1cm4gaW5pdGlhbEFkdmFuY2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGds
eXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9yIGVh
Y2ggZ2x5cGguCisgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisKKyAgICBmbG9hdCBzdGFy
dFggPSBwb2ludC54KCkgKyBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwg
ZnJvbSwgdG8sIGdseXBoQnVmZmVyKTsKKworICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFu
eSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZlIHVwLgorICAgIGlmIChnbHlwaEJ1ZmZlci5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKIAogICAgIC8vIERyYXcgdGhlIGdseXBoIGJ1ZmZlciBu
b3cgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IHJldHVybmVkIGluIHN0YXJ0WC4KICAgICBGbG9hdFBv
aW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2ludC55KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDcz
ODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiAg
ICAgfQogCisgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEgJiYgIWlzQ3VzdG9tRm9udCgp
KSB7CisgICAgICAgIGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9lbXBoYXNpc01hcmtG
b250RGF0YSk7CisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSAwOworICAgIH0KKwog
I2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgaWYgKG1fc3R5bGVHcm91cCkKICAgICAgICAg
d2tSZWxlYXNlU3R5bGVHcm91cChtX3N0eWxlR3JvdXApOwpAQCAtMzczLDQzICszNzgsNTggQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICNlbmRpZgogfQogCi1TaW1w
bGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBs
ZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fw
c0ZvbnREYXRhKSB7Ci0gICAgICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgewotICAgICAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Ci0gICAg
ICAgICAgICBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgPSBzbWFsbENhcHNGb250RGF0YS5tX3Np
emUgKiBzbWFsbENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAgICBtX3NtYWxsQ2Fw
c0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnREYXRhLCB0cnVlLCBm
YWxzZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7Ci0gICAgICAgICAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgp
ICogc21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAgRm9udFBsYXRmb3Jt
RGF0YSBzbWFsbENhcHNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29u
dmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5cGUgaW5mb3JtYXRp
b24gKHNjcmVlbi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0byBhIGRpZmZlcmVu
dCBzaXplLgotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3
ZSdyZSBoYW5kZWQgYmFjay4KLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQuc2V0Rm9udChmb250
RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSA/IFtzbWFsbENhcHNGb250LmZvbnQoKSBwcmlu
dGVyRm9udF0gOiBbc21hbGxDYXBzRm9udC5mb250KCkgc2NyZWVuRm9udF0pOwotCi0gICAgICAg
ICAgICBpZiAoc21hbGxDYXBzRm9udC5mb250KCkpIHsKLSAgICAgICAgICAgICAgICBOU0ZvbnRN
YW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsK
LSAgICAgICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9IFtmb250TWFuYWdl
ciB0cmFpdHNPZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKLQotICAgICAgICAgICAgICAg
IGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgICAgICAgICAgICAgICAg
IGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7Ci0gICAgICAgICAgICAgICAgaWYgKG1fcGxh
dGZvcm1EYXRhLm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9udFRy
YWl0cyB8PSBOU0l0YWxpY0ZvbnRNYXNrOwotCi0gICAgICAgICAgICAgICAgTlNGb250VHJhaXRN
YXNrIHNtYWxsQ2Fwc0ZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNtYWxs
Q2Fwc0ZvbnQuZm9udCgpXTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhl
dGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc21hbGxDYXBzRm9u
dFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250
Lm1fc3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzaykgJiYg
IShzbWFsbENhcHNGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7Ci0KLSAgICAgICAgICAg
ICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRh
KCZzbWFsbENhcHNGb250KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKKyAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Cisg
ICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRhLm1fc2l6ZSAqIHNj
YWxlRmFjdG9yOworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHNjYWxlZEZvbnRE
YXRhLCB0cnVlLCBmYWxzZSk7CiAgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkgKiBzY2FsZUZhY3Rv
cjsKKyAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNGb250TWFuYWdlciBz
aGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6
ZTpzaXplXSwgc2l6ZSk7CisKKyAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0
aW9uIChzY3JlZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJl
bnQgc2l6ZS4KKyAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0aGF0IHdlJ3JlIGhh
bmRlZCBiYWNrLgorICAgIHNjYWxlZEZvbnREYXRhLnNldEZvbnQoZm9udERlc2NyaXB0aW9uLnVz
ZVByaW50ZXJGb250KCkgPyBbc2NhbGVkRm9udERhdGEuZm9udCgpIHByaW50ZXJGb250XSA6IFtz
Y2FsZWRGb250RGF0YS5mb250KCkgc2NyZWVuRm9udF0pOworCisgICAgaWYgKHNjYWxlZEZvbnRE
YXRhLmZvbnQoKSkgeworICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0Zv
bnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIGZv
bnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQo
KV07CisKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGljQm9sZCkKKyAgICAg
ICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7CisgICAgICAgIGlmIChtX3BsYXRm
b3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5T
SXRhbGljRm9udE1hc2s7CisKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIHNjYWxlZEZvbnRUcmFp
dHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNjYWxlZEZvbnREYXRhLmZvbnQoKV07Cisg
ICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNC
b2xkRm9udE1hc2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKKyAg
ICAgICAgc2NhbGVkRm9udERhdGEubV9zeW50aGV0aWNPYmxpcXVlID0gKGZvbnRUcmFpdHMgJiBO
U0l0YWxpY0ZvbnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNr
KTsKKworICAgICAgICByZXR1cm4gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzY2Fs
ZWRGb250RGF0YSk7CisgICAgfQorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAg
ICByZXR1cm4gMDsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENh
cHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
K3sKKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9u
dERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxsQ2Fwc0ZvbnRTaXpl
TXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgTlNT
dHJpbmcgKnN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29w
eTpjb25zdF9jYXN0PHVuaWNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVu
RG9uZTpOT107CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3BhbmdvL1NpbXBsZUZv
bnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODAsMTcgKzgwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3Jt
RGVzdHJveSgpCiAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiB9CiAKK1NpbXBsZUZvbnRE
YXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnRE
ZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAg
ZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNj
LmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHBsYXRm
b3JtRGF0YSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBz
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlv
biBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Mu
c2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7
Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5
KCkuZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZv
bnREYXRhKHBsYXRmb3JtRGF0YSk7Ci0gICAgfQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRh
ID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9z
bWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpl
bXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
bikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpIHsKKyAgICAgICAg
bV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
LjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2lt
cGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
aW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdyYWRp
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxRQnJ1c2g+CkBAIC0z
ODMsNiArMzg0LDEyIEBAIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXAK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRm9udDo6Z2V0RW1waGFzaXNNYXJrR2x5cGhE
YXRhKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgR2x5cGhEYXRhJiBnbHlwaERhdGEpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFFGb250
IEZvbnQ6OmZvbnQoKSBjb25zdAogewogICAgIFFGb250IGYgPSBwcmltYXJ5Rm9udCgpLT5nZXRR
dEZvbnQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnRE
YXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTAsMjYgKzExMCwzOCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQog
ICAgIGRlbGV0ZSBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzOwogfQogCi1TaW1wbGVGb250RGF0YSog
U2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpz
Y2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxv
YXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7
Ci0gICAgICAgIGZsb2F0IHNtYWxsQ2Fwc0hlaWdodCA9IGNTbWFsbENhcHNGb250U2l6ZU11bHRp
cGxpZXIgKiBtX3BsYXRmb3JtRGF0YS5zaXplKCk7CisgICAgICAgIGZsb2F0IHNjYWxlZFNpemUg
PSBzY2FsZUZhY3RvciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKICAgICAgICAgaWYgKGlzQ3Vz
dG9tRm9udCgpKSB7Ci0gICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNtYWxsQ2Fwc0ZvbnRE
YXRhKG1fcGxhdGZvcm1EYXRhKTsKLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnREYXRhLnNldFNp
emUoc21hbGxDYXBzSGVpZ2h0KTsKLSAgICAgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBu
ZXcgU2ltcGxlRm9udERhdGEoc21hbGxDYXBzRm9udERhdGEsIHRydWUsIGZhbHNlKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIExPR0ZPTlQgd2luZm9udDsKLSAgICAgICAgICAgIEdl
dE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5mb250
KTsKLSAgICAgICAgICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJvdW5kZihzbWFsbENhcHNIZWln
aHQgKiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkgPyAxIDogMzIpKTsKLSAgICAgICAgICAgIEhG
T05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KTsKLSAgICAgICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YSho
Zm9udCwgc21hbGxDYXBzSGVpZ2h0LCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1f
cGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
c0N1c3RvbUZvbnQoKSwgZmFsc2UpOworICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2Fs
ZWRGb250KG1fcGxhdGZvcm1EYXRhKTsKKyAgICAgICAgICAgIHNjYWxlZEZvbnQuc2V0U2l6ZShz
Y2FsZWRTaXplKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoc2NhbGVk
Rm9udCwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgfQorCisgICAgICAgIExPR0ZPTlQg
d2luZm9udDsKKyAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVv
ZihMT0dGT05UKSwgJndpbmZvbnQpOworICAgICAgICB3aW5mb250LmxmSGVpZ2h0ID0gLWxyb3Vu
ZGYoc2NhbGVkU2l6ZSAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAzMikpOworICAg
ICAgICBIRk9OVCBoZm9udCA9IENyZWF0ZUZvbnRJbmRpcmVjdCgmd2luZm9udCk7CisgICAgICAg
IHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc2NhbGVk
U2l6ZSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50
aGV0aWNPYmxpcXVlKCksIG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKSwgaXNDdXN0b21Gb250KCks
IGZhbHNlKTsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNG
b250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sK
KyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGNTbWFsbENhcHNGb250U2l6ZU11
bHRpcGxpZXIpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IGN1c3RvbSBmb250cy4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBVbmlzY3JpYmVDb250
cm9sbGVyOjphZHZhbmNlKHVuc2lnbgogICAgICAgICBVQ2hhciBjID0gKmN1cnI7CiAKICAgICAg
ICAgYm9vbCBmb3JjZVNtYWxsQ2FwcyA9IGlzU21hbGxDYXBzICYmIChVX0dFVF9HQ19NQVNLKGMp
ICYgVV9HQ19NX01BU0spOwotICAgICAgICBuZXh0Rm9udERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFsbENhcHMpLmZvbnREYXRhOworICAg
ICAgICBuZXh0Rm9udERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpjdXJyLCBm
YWxzZSwgZm9yY2VTbWFsbENhcHMgPyBTbWFsbENhcHNWYXJpYW50IDogQXV0b1ZhcmlhbnQpLmZv
bnREYXRhOwogICAgICAgICBpZiAobV9mb250LmlzU21hbGxDYXBzKCkpIHsKICAgICAgICAgICAg
IG5leHRJc1NtYWxsQ2FwcyA9IGZvcmNlU21hbGxDYXBzIHx8IChuZXdDID0gdV90b3VwcGVyKGMp
KSAhPSBjOwogICAgICAgICAgICAgaWYgKG5leHRJc1NtYWxsQ2FwcykKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvU2ltcGxlRm9udERhdGFXaW5DRS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNF
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L1NpbXBsZUZvbnREYXRhV2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCwyMCArNjQsMzIg
QEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICBtX3NtYWxsQ2Fw
c0ZvbnREYXRhID0gMDsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2Fs
ZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQg
c2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKGxyb3VuZGYoc2NhbGVG
YWN0b3IgKiBmb250RGVzYy5jb21wdXRlZFNpemUoKSkpOworICAgIGZvbnREZXNjLnNldFNwZWNp
ZmllZFNpemUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnREZXNjLnNwZWNpZmllZFNpemUoKSkp
OworICAgIGZvbnREZXNjLnNldEtleXdvcmRTaXplKGxyb3VuZGYoc2NhbGVGYWN0b3IgKiBmb250
RGVzYy5rZXl3b3JkU2l6ZSgpKSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gZm9u
dENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2MsIG1fcGxhdGZvcm1E
YXRhLmZhbWlseSgpKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gbmV3IFNpbXBsZUZvbnREYXRhKCpy
ZXN1bHQpIDogMDsKK30KKwogU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENh
cHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
IHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpIHsKLSAgICAgICAgRm9udERlc2NyaXB0
aW9uIGZvbnREZXNjKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvbnREZXNjLnNldENvbXB1
dGVkU2l6ZShscm91bmRmKDAuNzBmICogZm9udERlc2MuY29tcHV0ZWRTaXplKCkpKTsKLSAgICAg
ICAgZm9udERlc2Muc2V0U3BlY2lmaWVkU2l6ZShscm91bmRmKDAuNzBmICogZm9udERlc2Muc3Bl
Y2lmaWVkU2l6ZSgpKSk7Ci0gICAgICAgIGZvbnREZXNjLnNldEtleXdvcmRTaXplKGxyb3VuZGYo
MC43MGYgKiBmb250RGVzYy5rZXl3b3JkU2l6ZSgpKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEqIHJlc3VsdCA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnRE
ZXNjLCBtX3BsYXRmb3JtRGF0YS5mYW1pbHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKCpyZXN1bHQp
OwotICAgIH0KKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxD
YXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKwogICAg
IHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkK
KyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNj
cmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisK
IERXT1JEIGdldEtub3duRm9udENvZGVQYWdlcyhjb25zdCB3Y2hhcl90KiBmYW1pbHkpOwogCiBi
b29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L1NpbXBsZUZvbnREYXRhV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTAsMTcgKzkwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVz
dHJveSgpCiAjZW5kaWYKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2Fs
ZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQg
c2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIGRlc2MgPSBGb250RGVz
Y3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoc2Nh
bGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOworICAg
IHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEocGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwg
ZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0Zv
bnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewot
ICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSl7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlvbiBk
ZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Muc2V0
U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7Ci0g
ICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCku
ZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnRE
YXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAgaWYg
KCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2Nh
bGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFsbENh
cHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNp
c01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29u
c3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFz
aXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKwor
ICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnRE
YXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5n
dGgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgdGhp
cyB0byBsb2FkIG5vbi1BU0NJSSBlbmNvZGluZyBzaXRlcwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEz
ICszMiwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIE5hbWVzIGhlcmUgYXJlIHRha2Vu
IGZyb20gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCiAKLS8vIE5vdGUsIHRoZXNlIGFyZSBVQ2hhciBj
b25zdGFudHMsIG5vdCBVQ2hhcjMyLCB3aGljaCBtYWtlcyB0aGVtCisvLyBOb3RlLCBtb3N0IG9m
IHRoZXNlIGFyZSBVQ2hhciBjb25zdGFudHMsIG5vdCBVQ2hhcjMyLCB3aGljaCBtYWtlcyB0aGVt
CiAvLyBtb3JlIGNvbnZlbmllbnQgZm9yIFdlYkNvcmUgY29kZSB0aGF0IG1vc3RseSB1c2VzIFVU
Ri0xNi4KIAorY29uc3QgVUNoYXIzMiBhZWdlYW5Xb3JkU2VwYXJhdG9yTGluZSA9IDB4MTAxMDA7
Citjb25zdCBVQ2hhcjMyIGFlZ2VhbldvcmRTZXBhcmF0b3JEb3QgPSAweDEwMTAxOworY29uc3Qg
VUNoYXIgYmxhY2tDaXJjbGUgPSAweDI1Q0Y7CiBjb25zdCBVQ2hhciBibGFja1NxdWFyZSA9IDB4
MjVBMDsKK2NvbnN0IFVDaGFyIGJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlID0gMHgyNUIyOwogY29u
c3QgVUNoYXIgYnVsbGV0ID0gMHgyMDIyOworY29uc3QgVUNoYXIgYnVsbHNleWUgPSAweDI1Q0U7
CiBjb25zdCBVQ2hhciBjYXJyaWFnZVJldHVybiA9IDB4MDAwRDsKIGNvbnN0IFVDaGFyIGV0aGlv
cGljUHJlZmFjZUNvbG9uID0gMHgxMzY2OworY29uc3QgVUNoYXIgZXRoaW9waWNXb3Jkc3BhY2Ug
PSAweDEzNjE7Citjb25zdCBVQ2hhciBmaXNoZXllID0gMHgyNUM5OwogY29uc3QgVUNoYXIgaGVi
cmV3UHVuY3R1YXRpb25HZXJlc2ggPSAweDA1RjM7CiBjb25zdCBVQ2hhciBoZWJyZXdQdW5jdHVh
dGlvbkdlcnNoYXlpbSA9IDB4MDVGNDsKIGNvbnN0IFVDaGFyIGhvcml6b250YWxFbGxpcHNpcyA9
IDB4MjAyNjsKQEAgLTYzLDkgKzcwLDE2IEBAIGNvbnN0IFVDaGFyIHJpZ2h0U2luZ2xlUXVvdGF0
aW9uTWFyayA9IDAKIGNvbnN0IFVDaGFyIHJpZ2h0VG9MZWZ0RW1iZWQgPSAweDIwMkI7CiBjb25z
dCBVQ2hhciByaWdodFRvTGVmdE1hcmsgPSAweDIwMEY7CiBjb25zdCBVQ2hhciByaWdodFRvTGVm
dE92ZXJyaWRlID0gMHgyMDJFOworY29uc3QgVUNoYXIgc2VzYW1lRG90ID0gMHhGRTQ1OwogY29u
c3QgVUNoYXIgc29mdEh5cGhlbiA9IDB4MDBBRDsKIGNvbnN0IFVDaGFyIHNwYWNlID0gMHgwMDIw
OworY29uc3QgVUNoYXIgdGliZXRhbk1hcmtJbnRlcnN5bGxhYmljVHNoZWcgPSAweDBGMEI7Citj
b25zdCBVQ2hhciB0aWJldGFuTWFya0RlbGltaXRlclRzaGVnQnN0YXIgPSAweDBGMEM7Citjb25z
dCBVQ2hhcjMyIHVnYXJpdGljV29yZERpdmlkZXIgPSAweDEwMzlGOwogY29uc3QgVUNoYXIgd2hp
dGVCdWxsZXQgPSAweDI1RTY7Citjb25zdCBVQ2hhciB3aGl0ZUNpcmNsZSA9IDB4MjVDQjsKK2Nv
bnN0IFVDaGFyIHdoaXRlU2VzYW1lRG90ID0gMHhGRTQ2OworY29uc3QgVUNoYXIgd2hpdGVVcFBv
aW50aW5nVHJpYW5nbGUgPSAweDI1QjM7CiBjb25zdCBVQ2hhciB5ZW5TaWduID0gMHgwMEE1Owog
Y29uc3QgVUNoYXIgemVyb1dpZHRoSm9pbmVyID0gMHgyMDBEOwogY29uc3QgVUNoYXIgemVyb1dp
ZHRoTm9uSm9pbmVyID0gMHgyMDBDOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5OCw3ICs0OTgsOCBAQCB2b2lkIElubGluZUZsb3dCb3g6
OmNvbXB1dGVMb2dpY2FsQm94SGVpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAodXNlZEZvbnRz
ICYmIGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+bGluZUhlaWdodCgpLmlz
TmVnYXRpdmUoKSkgewotICAgICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoY3Vyci0+cmVuZGVy
ZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkucHJpbWFyeUZvbnQoKSk7CisgICAgICAg
ICAgICBjb25zdCBGb250JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExp
bmUpLT5mb250KCk7CisgICAgICAgICAgICB1c2VkRm9udHMtPmFwcGVuZChmb250LnByaW1hcnlG
b250KCkpOwogICAgICAgICAgICAgYm9vbCBiYXNlbGluZVNldCA9IGZhbHNlOwogICAgICAgICAg
ICAgYmFzZWxpbmUgPSAwOwogICAgICAgICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwpA
QCAtNTIwLDE0ICs1MjEsMzIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJv
eEhlaQogICAgICAgICAgICAgbGluZUhlaWdodCA9IGN1cnItPmxpbmVIZWlnaHQoKTsKICAgICAg
ICAgICAgIGJhc2VsaW5lID0gY3Vyci0+YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZVR5cGUpOwog
ICAgICAgICAgICAgaWYgKGN1cnItPmlzVGV4dCgpIHx8IGlzSW5saW5lRmxvdykgeworICAgICAg
ICAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2Zp
cnN0TGluZSktPmZvbnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgYXNjZW50ID0gZm9udC5hc2Nl
bnQoYmFzZWxpbmVUeXBlKTsKKyAgICAgICAgICAgICAgICBpbnQgZGVzY2VudCA9IGZvbnQuZGVz
Y2VudChiYXNlbGluZVR5cGUpOworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5pc1RleHQoKSAm
JiBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc01hcmso
KSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZW1w
aGFzaXNNYXJrSGVpZ2h0ID0gZm9udC5wcmltYXJ5Rm9udCgpLT5lbXBoYXNpc01hcmtGb250RGF0
YShmb250LmZvbnREZXNjcmlwdGlvbigpKS0+aGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAg
IGludCBoYWxmTGVhZGluZyA9IChmb250LmxpbmVTcGFjaW5nKCkgLSBmb250LmhlaWdodCgpKSAv
IDI7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250QXNjZW50ID0gaGFsZkxlYWRpbmcgKyBh
c2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250RGVzY2VudCA9IGZvbnQubGluZVNw
YWNpbmcoKSAtIGZvbnRBc2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyLT5yZW5k
ZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4
dEVtcGhhc2lzUG9zaXRpb25PdmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc2NlbnQg
Kz0gZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUg
PSBtYXgoZm9udEFzY2VudCwgYXNjZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVI
ZWlnaHQgPSBiYXNlbGluZSArIGZvbnREZXNjZW50OworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzY2VudCArPSBlbXBoYXNpc01hcmtIZWln
aHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gbWF4KGxpbmVIZWlnaHQs
IGJhc2VsaW5lICsgZGVzY2VudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgICAgICAvLyBFeGFtaW5lIHRoZSBmb250IGJveCBmb3IgaW5s
aW5lIGZsb3dzIGFuZCB0ZXh0IGJveGVzIHRvIHNlZSBpZiBhbnkgcGFydCBvZiBpdCBpcyBhYm92
ZSB0aGUgYmFzZWxpbmUuCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHRvcCBvZiBvdXIgZm9u
dCBib3ggcmVsYXRpdmUgdG8gdGhlIHJvb3QgYm94IGJhc2VsaW5lIGlzIGFib3ZlIHRoZSByb290
IGJveCBiYXNlbGluZSwgdGhlbgogICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBjb250cmlidXRp
bmcgdG8gdGhlIG1heEFzY2VudCB2YWx1ZS4KLSAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50
ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuYXNjZW50KGJh
c2VsaW5lVHlwZSkgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOworICAgICAgICAgICAgICAgIGFm
ZmVjdHNBc2NlbnQgPSBhc2NlbnQgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIC8vIERlc2NlbnQgaXMgc2ltaWxhci4gIElmIGFueSBw
YXJ0IG9mIG91ciBmb250IGJveCBpcyBiZWxvdyB0aGUgcm9vdCBib3gncyBiYXNlbGluZSwgdGhl
bgogICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRyaWJ1dGUgdG8gdGhlIG1heERlc2NlbnQgdmFs
dWUuCi0gICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5z
dHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSkgKyBjdXJyLT5s
b2dpY2FsVG9wKCkgPiAwOworICAgICAgICAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZGVzY2Vu
dCArIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIC8vIFJlcGxhY2VkIGVsZW1lbnRzIGFsd2F5cyBhZmZlY3QgYm90aCB0aGUgYXNj
ZW50IGFuZCBkZXNjZW50LgogICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSB0cnVlOwpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDczODY3KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
Miw3ICszNTIsNyBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyCiAg
ICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwogfQogCi1zdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hh
ZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRl
eHRSdW4mIHRleHRSdW4sIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwgaW50IHRydW5j
YXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmlnaW4sCitzdGF0aWMgdm9pZCBwYWlu
dFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNN
YXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZz
ZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEludFBvaW50JiB0ZXh0T3JpZ2luLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgYm94UmVjdCwgY29u
c3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQsIGJvb2wgaG9yaXpvbnRhbCkKIHsK
ICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3IoKTsKQEAgLTM2OCwxMyAr
MzY4LDIzIEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWMKICAgICAg
ICAgZWxzZSBpZiAoIW9wYXF1ZSkKICAgICAgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihm
aWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIAotICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0g
ZW5kT2Zmc2V0KQotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZz
ZXQsICAwLCBlbmRPZmZzZXQpOwotICAgICAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNh
dGlvblBvaW50KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRS
dW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2lu
dCk7CisgICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRPZmZzZXQpIHsKKyAgICAgICAgICAg
IGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNvbnRleHQtPmRy
YXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29udGV4
dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3Jp
Z2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksIHN0YXJ0
T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGVu
ZE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCAgMCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZv
bnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgMCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAg
IH0gaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBvaW50KSB7CisgICAgICAgICAgICAgICAg
aWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRP
ZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBo
YXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNN
YXJrT2Zmc2V0KSwgIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzaGFkb3cpCkBAIC00ODgsMTIgKzQ5OCwxNCBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgLy8gMi4gTm93
IHBhaW50IHRoZSBmb3JlZ3JvdW5kLCBpbmNsdWRpbmcgdGV4dCBhbmQgZGVjb3JhdGlvbnMgbGlr
ZSB1bmRlcmxpbmUvb3ZlcmxpbmUgKGluIHF1aXJrcyBtb2RlIG9ubHkpLgogICAgIENvbG9yIHRl
eHRGaWxsQ29sb3I7CiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9yOworICAgIENvbG9yIGVtcGhh
c2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aCA9IHN0eWxlVG9Vc2UtPnRl
eHRTdHJva2VXaWR0aCgpOwogICAgIGNvbnN0IFNoYWRvd0RhdGEqIHRleHRTaGFkb3cgPSBwYWlu
dEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogc3R5bGVUb1VzZS0+dGV4dFNoYWRvdygpOwogCiAg
ICAgaWYgKHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCkgewogICAgICAgICB0ZXh0RmlsbENvbG9y
ID0gQ29sb3I6OmJsYWNrOwogICAgICAgICB0ZXh0U3Ryb2tlQ29sb3IgPSBDb2xvcjo6YmxhY2s7
CisgICAgICAgIGVtcGhhc2lzTWFya0NvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBzdHlsZVRvVXNlLT52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yKTsKICAgICAgICAgCkBAIC01MDYsNiAr
NTE4LDEyIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAg
ICAgLy8gTWFrZSB0aGUgdGV4dCBzdHJva2UgY29sb3IgbGVnaWJsZSBhZ2FpbnN0IGEgd2hpdGUg
YmFja2dyb3VuZAogICAgICAgICBpZiAoc3R5bGVUb1VzZS0+Zm9yY2VCYWNrZ3JvdW5kc1RvV2hp
dGUoKSkKICAgICAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcih0
ZXh0U3Ryb2tlQ29sb3IsIENvbG9yOjp3aGl0ZSk7CisKKyAgICAgICAgZW1waGFzaXNNYXJrQ29s
b3IgPSBzdHlsZVRvVXNlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIAorICAgICAgICAvLyBNYWtlIHRoZSB0ZXh0IHN0
cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIGlm
IChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0ZSgpKQorICAgICAgICAgICAgZW1w
aGFzaXNNYXJrQ29sb3IgPSBjb3JyZWN0ZWRUZXh0Q29sb3IoZW1waGFzaXNNYXJrQ29sb3IsIENv
bG9yOjp3aGl0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHkgPSAo
cGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24pOwpAQCAtNTEzLDYgKzUzMSw3
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKIAogICAgIENvbG9y
IHNlbGVjdGlvbkZpbGxDb2xvciA9IHRleHRGaWxsQ29sb3I7CiAgICAgQ29sb3Igc2VsZWN0aW9u
U3Ryb2tlQ29sb3IgPSB0ZXh0U3Ryb2tlQ29sb3I7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFz
aXNNYXJrQ29sb3IgPSBlbXBoYXNpc01hcmtDb2xvcjsKICAgICBmbG9hdCBzZWxlY3Rpb25TdHJv
a2VXaWR0aCA9IHRleHRTdHJva2VXaWR0aDsKICAgICBjb25zdCBTaGFkb3dEYXRhKiBzZWxlY3Rp
b25TaGFkb3cgPSB0ZXh0U2hhZG93OwogICAgIGlmIChoYXZlU2VsZWN0aW9uKSB7CkBAIC01MjQs
NiArNTQzLDEzIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAg
ICAgICAgICAgIHNlbGVjdGlvbkZpbGxDb2xvciA9IGZvcmVncm91bmQ7CiAgICAgICAgIH0KIAor
ICAgICAgICBDb2xvciBlbXBoYXNpc01hcmtGb3JlZ3JvdW5kID0gcGFpbnRJbmZvLmZvcmNlQmxh
Y2tUZXh0ID8gQ29sb3I6OmJsYWNrIDogcmVuZGVyZXIoKS0+c2VsZWN0aW9uRW1waGFzaXNNYXJr
Q29sb3IoKTsKKyAgICAgICAgaWYgKGVtcGhhc2lzTWFya0ZvcmVncm91bmQuaXNWYWxpZCgpICYm
IGVtcGhhc2lzTWFya0ZvcmVncm91bmQgIT0gc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IpIHsK
KyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KQorICAgICAgICAgICAgICAg
IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSA9IHRydWU7CisgICAgICAgICAgICBzZWxlY3Rp
b25FbXBoYXNpc01hcmtDb2xvciA9IGVtcGhhc2lzTWFya0ZvcmVncm91bmQ7CisgICAgICAgIH0K
KwogICAgICAgICBpZiAoUmVuZGVyU3R5bGUqIHBzZXVkb1N0eWxlID0gcmVuZGVyZXIoKS0+Z2V0
Q2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgewogICAgICAgICAgICAgY29uc3QgU2hhZG93
RGF0YSogc2hhZG93ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0ID8gMCA6IHBzZXVkb1N0eWxl
LT50ZXh0U2hhZG93KCk7CiAgICAgICAgICAgICBpZiAoc2hhZG93ICE9IHNlbGVjdGlvblNoYWRv
dykgewpAQCAtNTY3LDYgKzU5MywxNiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50
SW5mbyYgcGFpCiAgICAgICAgIGxlbmd0aCA9IG1fdHJ1bmNhdGlvbjsKICAgICB9CiAKKyAgICBp
bnQgZW1waGFzaXNNYXJrT2Zmc2V0ID0gMDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhh
c2lzTWFyayA9IHN0eWxlVG9Vc2UtPnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKTsKKyAgICBpZiAo
IWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEq
IGVtcGhhc2lzTWFya0ZvbnREYXRhID0gZm9udC5wcmltYXJ5Rm9udCgpLT5lbXBoYXNpc01hcmtG
b250RGF0YShmb250LmZvbnREZXNjcmlwdGlvbigpKTsKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2Ut
PnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKQorICAg
ICAgICAgICAgZW1waGFzaXNNYXJrT2Zmc2V0ID0gLWZvbnQuYXNjZW50KC8qIEZJWE1FOiBOZWVk
cyBiYXNlbGluZSB0eXBlICovKSAtIGVtcGhhc2lzTWFya0ZvbnREYXRhLT5kZXNjZW50KC8qIEZJ
WE1FOiBOZWVkcyBiYXNlbGluZSB0eXBlICovKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZW1waGFzaXNNYXJrT2Zmc2V0ID0gZm9udC5kZXNjZW50KC8qIEZJWE1FOiBOZWVkcyBiYXNlbGlu
ZSB0eXBlICovKSArIGVtcGhhc2lzTWFya0ZvbnREYXRhLT5hc2NlbnQoLyogRklYTUU6IE5lZWRz
IGJhc2VsaW5lIHR5cGUgKi8pOworICAgIH0KKwogICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRP
bmx5KSB7CiAgICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5n
ZSB0aGUgdGV4dCBkcmF3aW5nIG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2
ZSB0aGF0IG11dGF0ZWQgYXMgYSBzaWRlCiAgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVu
IHdlIGtub3cgd2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgpAQCAtNTc2LDkgKzYx
MiwxOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAg
IHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0ZXh0RmlsbENvbG9yLCB0ZXh0U3Ryb2tl
Q29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKICAgICAg
ICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3Rs
eS4KLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRS
dW4sIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0
ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBwYWludFRl
eHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgMCwgbGVu
Z3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VX
aWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBw
YWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlUG9zLCBzUG9zLCBs
ZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+
IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNv
bnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9y
aXpvbnRhbCgpKTsKKworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBlbXBoYXNpc01hcmtDb2xv
ciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3Bh
Y2UoKSk7CisgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBl
UG9zIDw9IHNQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQt
dG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09m
ZnNldCwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3cs
IHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRl
eHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5n
dGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0ZXh0U3Ryb2tlV2lk
dGggPiAwKQogICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAtNTkwLDggKzYzNSwx
MSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAg
ICBjb250ZXh0LT5zYXZlKCk7CiAKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRl
eHQsIHNlbGVjdGlvbkZpbGxDb2xvciwgc2VsZWN0aW9uU3Ryb2tlQ29sb3IsIHNlbGVjdGlvblN0
cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGgg
PiAwLCBpc0hvcml6b250YWwoKSk7Ci0KKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29u
dGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4
dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+
IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2VsZWN0aW9u
RW1waGFzaXNNYXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHls
ZVRvVXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
Y29udGV4dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQs
IHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93
LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQog
ICAgICAgICBpZiAoc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwKQogICAgICAgICAgICAgY29udGV4
dC0+cmVzdG9yZSgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjI2LDYgKzE2MjYsMjcgQEAgQ29sb3IgUmVuZGVyT2JqZWN0Ojpz
ZWxlY3Rpb25Gb3JlZ3JvdW5kQwogICAgIHJldHVybiBjb2xvcjsKIH0KIAorQ29sb3IgUmVuZGVy
T2JqZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Cit7CisgICAgQ29sb3Ig
Y29sb3I7CisgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdW5zZWxlY3RhYmxlLCBvciB3ZSBhcmUg
b25seSBwYWludGluZyB0aGUgc2VsZWN0aW9uLAorICAgIC8vIGRvbid0IG92ZXJyaWRlIHRoZSBm
b3JlZ3JvdW5kIGNvbG9yIHdpdGggdGhlIHNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yLgorICAg
IGlmIChzdHlsZSgpLT51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX05PTkUKKyAgICAgICAgfHwgKGZy
YW1lKCktPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpICYgUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9u
bHkpKQorICAgICAgICByZXR1cm4gY29sb3I7CisKKyAgICBpZiAoUmVmUHRyPFJlbmRlclN0eWxl
PiBwc2V1ZG9TdHlsZSA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgeworICAg
ICAgICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9y
KENTU1Byb3BlcnR5Q29sb3IpOworICAgIH0gZWxzZQorICAgICAgICBjb2xvciA9IGZyYW1lKCkt
PnNlbGVjdGlvbigpLT5pc0ZvY3VzZWRBbmRBY3RpdmUoKSA/CisgICAgICAgICAgICAgICAgdGhl
bWUoKS0+YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgOgorICAgICAgICAgICAgICAg
IHRoZW1lKCktPmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisKKyAgICByZXR1
cm4gY29sb3I7Cit9CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogTm9kZSogUmVuZGVyT2Jq
ZWN0OjpkcmFnZ2FibGVOb2RlKGJvb2wgZGh0bWxPSywgYm9vbCB1YU9LLCBpbnQgeCwgaW50IHks
IGJvb2wmIGRodG1sV2lsbERyYWcpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNjc1LDYgKzY3NSw3IEBAIHB1YmxpYzoKICAgICAvLyBPYnRh
aW5zIHRoZSBzZWxlY3Rpb24gY29sb3JzIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBwYWludGlu
ZyBhIHNlbGVjdGlvbi4KICAgICBDb2xvciBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKICAgICBDb2xvciBzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICBDb2xv
ciBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0OwogCiAgICAgLy8gV2hldGhlciBv
ciBub3QgYSBnaXZlbiBibG9jayBuZWVkcyB0byBwYWludCBzZWxlY3Rpb24gZ2Fwcy4KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlz
aW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NDcsNiArODQ3LDQ3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVu
ZGVyU3R5bGU6Omh5cGhlblMKICAgICByZXR1cm4gaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKK2Nv
bnN0IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBj
b25zdAoreworICAgIHN3aXRjaCAodGV4dEVtcGhhc2lzTWFyaygpKSB7CisgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrTm9uZToKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIGNhc2UgVGV4
dEVtcGhhc2lzTWFya0N1c3RvbToKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1h
cmsoKTsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6IHsKKyAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcs
ICgmd2hpdGVCdWxsZXQsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9
PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmlu
ZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ2lyY2xlOiB7CisgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJpbmcsICgmYmxh
Y2tDaXJjbGUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG9wZW5DaXJjbGVTdHJpbmcsICgmd2hpdGVDaXJjbGUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRl
eHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkQ2lyY2xl
U3RyaW5nIDogb3BlbkNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNN
YXJrRG91YmxlQ2lyY2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcsICgmZmlzaGV5ZSwgMSkpOworICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywg
KCZidWxsc2V5ZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRl
eHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91
YmxlQ2lyY2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmds
ZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJp
YW5nbGVTdHJpbmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0
ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmls
bCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9w
ZW5UcmlhbmdsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1l
OiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNh
bWVTdHJpbmcsICgmc2VzYW1lRG90LCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBvcGVuU2VzYW1lU3RyaW5nLCAoJndoaXRlU2VzYW1lRG90LCAxKSk7Cisg
ICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxl
ZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7CisgICAgfQorICAgIGNh
c2UgVGV4dEVtcGhhc2lzTWFya0F1dG86CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIG51bGxBdG9tOworfQorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6Omlu
aXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTgsNiArNzE4LDcgQEAgcHVibGljOgog
ICAgIFRleHRFbXBoYXNpc01hcmsgdGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0OwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIGNvbnN0IHsgcmV0dXJuIHJh
cmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNDdXN0b21NYXJrOyB9CiAgICAgVGV4dEVtcGhh
c2lzUG9zaXRpb24gdGV4dEVtcGhhc2lzUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxUZXh0RW1waGFzaXNQb3NpdGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNp
c1Bvc2l0aW9uKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzTWFya1N0
cmluZygpIGNvbnN0OwogICAgIAogICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0g
cmVsYXRlZCBwcm9wZXJ0eSAoY3VycmVudGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBv
ciBwZXJzcGVjdGl2ZSkgCiAgICAgLy8gaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHRyYW5zZm9ybWlu
Zwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76337</attachid>
            <date>2010-12-12 15:08:22 -0800</date>
            <delta_ts>2010-12-12 18:56:45 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r14.diff</filename>
            <type>text/plain</type>
            <size>70625</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDYyIEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyAg
ICBHbHlwaERhdGEgbWFya0dseXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBo
RGF0YShtYXJrLCBtYXJrR2x5cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qg
U2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7Cisg
ICAgQVNTRVJUKG1hcmtGb250RGF0YSk7CisgICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAg
IHJldHVybjsKKworICAgIEdseXBoIG1hcmtHbHlwaCA9IG1hcmtHbHlwaERhdGEuZ2x5cGg7Cisg
ICAgR2x5cGggc3BhY2VHbHlwaCA9IG1hcmtGb250RGF0YS0+c3BhY2VHbHlwaCgpOworCisgICAg
R2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2U7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgaW5p
dGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQocnVuLCBmcm9t
LCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisgICAgZWxzZQorICAgICAgICBp
bml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBm
cm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisKKyAgICBpZiAoZ2x5cGhC
dWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9hdCBtYXJrV2lkdGgg
PSBtYXJrRm9udERhdGEtPmJvdW5kc0ZvckdseXBoKG1hcmtHbHlwaCkud2lkdGgoKTsKKyAgICBG
bG9hdFJlY3QgbGFzdEdseXBoQm91bmRzID0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdCgwKS0+Ym91
bmRzRm9yR2x5cGgoZ2x5cGhCdWZmZXIuZ2x5cGhBdCgwKSk7CisgICAgRmxvYXRQb2ludCBzdGFy
dFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlICsgbGFzdEdseXBoQm91bmRzLngoKSAr
IGxhc3RHbHlwaEJvdW5kcy53aWR0aCgpIC8gMiAtIG1hcmtXaWR0aCAvIDIsIHBvaW50LnkoKSk7
CisKKyAgICBHbHlwaEJ1ZmZlciBtYXJrQnVmZmVyOworICAgIGZvciAoaW50IGkgPSAwOyBpICsg
MSA8IGdseXBoQnVmZmVyLnNpemUoKTsgKytpKSB7CisgICAgICAgIEZsb2F0UmVjdCBuZXh0R2x5
cGhCb3VuZHMgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGkgKyAxKS0+Ym91bmRzRm9yR2x5cGgo
Z2x5cGhCdWZmZXIuZ2x5cGhBdChpICsgMSkpOworICAgICAgICBmbG9hdCBhZHZhbmNlID0gZ2x5
cGhCdWZmZXIuYWR2YW5jZUF0KGkpICsgbmV4dEdseXBoQm91bmRzLngoKSAtIGxhc3RHbHlwaEJv
dW5kcy54KCkgKyAobmV4dEdseXBoQm91bmRzLndpZHRoKCkgLSBsYXN0R2x5cGhCb3VuZHMud2lk
dGgoKSkgLyAyOworICAgICAgICAvLyBmbG9hdCBhZHZhbmNlID0gKGdseXBoQnVmZmVyLmFkdmFu
Y2VBdChpKSArIGdseXBoQnVmZmVyLmFkdmFuY2VBdChpICsgMSkpIC8gMjsKKyAgICAgICAgbWFy
a0J1ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChpKSA9PSBnbHlwaEJ1ZmZlci5mb250RGF0
YUF0KGkpLT5zcGFjZUdseXBoKCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9udERh
dGEsIGFkdmFuY2UpOworICAgICAgICBsYXN0R2x5cGhCb3VuZHMgPSBuZXh0R2x5cGhCb3VuZHM7
CisgICAgfQorICAgIG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoZ2x5cGhCdWZm
ZXIuc2l6ZSgpIC0gMSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChnbHlwaEJ1ZmZlci5zaXpl
KCkgLSAxKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnRE
YXRhLCAwKTsKKworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBtYXJrQnVmZmVyLCBydW4s
IHN0YXJ0UG9pbnQpOworfQorCisKKwogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aChjb25zdCBUZXh0
UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICNpZiBFTkFCTEUoU1ZHX0ZP
TlRTKQpAQCAtNDIwLDQgKzQ3NiwxOCBAQCBib29sIEZvbnQ6OmlzQ0pLSWRlb2dyYXBoKFVDaGFy
MzIgYykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRm9udDo6Y2FuUmVjZWl2ZVRleHRF
bXBoYXNpcyhVQ2hhcjMyIGMpCit7CisgICAgQ2hhckNhdGVnb3J5IGNhdGVnb3J5ID0gVW5pY29k
ZTo6Y2F0ZWdvcnkoYyk7CisgICAgaWYgKGNhdGVnb3J5ICYgKFNlcGFyYXRvcl9TcGFjZSB8IFNl
cGFyYXRvcl9MaW5lIHwgU2VwYXJhdG9yX1BhcmFncmFwaCB8IE90aGVyX05vdEFzc2lnbmVkIHwg
T3RoZXJfQ29udHJvbCB8IE90aGVyX0Zvcm1hdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vIEFkZGl0aW9uYWwgd29yZC1zZXBhcmF0b3IgY2hhcmFjdGVycyBsaXN0ZWQgaW4gQ1NT
IFRleHQgTGV2ZWwgMyBFZGl0b3IncyBEcmFmdCAzIE5vdmVtYmVyIDIwMTAuCisgICAgaWYgKGMg
PT0gZXRoaW9waWNXb3Jkc3BhY2UgfHwgYyA9PSBhZWdlYW5Xb3JkU2VwYXJhdG9yTGluZSB8fCBj
ID09IGFlZ2VhbldvcmRTZXBhcmF0b3JEb3QKKyAgICAgICAgfHwgYyA9PSB1Z2FyaXRpY1dvcmRE
aXZpZGVyIHx8IGMgPT0gdGliZXRhbk1hcmtJbnRlcnN5bGxhYmljVHNoZWcgfHwgYyA9PSB0aWJl
dGFuTWFya0RlbGltaXRlclRzaGVnQnN0YXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkocmV2
aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGUoUGFzc1Jl
ZlB0cjxGb250U2VsZWN0b3I+KSBjb25zdDsKIAogICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAs
IGludCB0byA9IC0xKSBjb25zdDsKKyAgICB2b2lkIGRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0
IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKSBjb25zdDsKIAogICAgIGlu
dCB3aWR0aChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBj
b25zdCB7IHJldHVybiBscm91bmRmKGZsb2F0V2lkdGgocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlw
aE92ZXJmbG93KSk7IH0KICAgICBmbG9hdCBmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93ID0gMCkgY29uc3Q7CkBAIC0xMzksNyArMTQwLDcgQEAgcHVibGlj
OgogCiAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIHByaW1hcnlGb250KCkgY29uc3Q7CiAgICAg
Y29uc3QgRm9udERhdGEqIGZvbnREYXRhQXQodW5zaWduZWQpIGNvbnN0OwotICAgIEdseXBoRGF0
YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3IsIGJvb2wgZm9yY2VT
bWFsbENhcHMgPSBmYWxzZSkgY29uc3Q7CisgICAgR2x5cGhEYXRhIGdseXBoRGF0YUZvckNoYXJh
Y3RlcihVQ2hhcjMyLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50ID0gQXV0b1ZhcmlhbnQp
IGNvbnN0OwogICAgIC8vIFVzZWQgZm9yIGNvbXBsZXggdGV4dCwgYW5kIGRvZXMgbm90IHV0aWxp
emUgdGhlIGdseXBoIG1hcCBjYWNoZS4KICAgICBjb25zdCBGb250RGF0YSogZm9udERhdGFGb3JD
aGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCkgY29uc3Q7CiAKQEAgLTE2Myw2ICsx
NjQsMTAgQEAgcHJpdmF0ZToKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JUZXh0VXNpbmdT
VkdGb250KGNvbnN0IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlh
bEdseXBocykgY29uc3Q7CiAjZW5kaWYKIAorICAgIGVudW0gRm9yVGV4dEVtcGhhc2lzT3JOb3Qg
eyBOb3RGb3JUZXh0RW1waGFzaXMsIEZvclRleHRFbXBoYXNpcyB9OworCisgICAgLy8gUmV0dXJu
cyB0aGUgaW5pdGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4KKyAgICBmbG9hdCBnZXRHbHlwaHNBbmRB
ZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEds
eXBoQnVmZmVyJiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNv
bnN0OwogICAgIHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4
dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2
b2lkIGRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBj
b25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBj
b25zdDsKICAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBH
bHlwaEJ1ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CkBA
IC0xNzAsOSArMTc1LDE0IEBAIHByaXZhdGU6CiAgICAgaW50IG9mZnNldEZvclBvc2l0aW9uRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wgaW5jbHVkZVBh
cnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2ltcGxl
VGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdDsKIAorICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKGNvbnN0
IEF0b21pY1N0cmluZyYsIEdseXBoRGF0YSYpIGNvbnN0OworCiAgICAgc3RhdGljIGJvb2wgY2Fu
UmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7CiAKICAgICBDb2RlUGF0aCBjb2Rl
UGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0aWFs
IGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29t
cGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiwg
Rm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAgIHZv
aWQgZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBjb25z
dCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0Owog
ICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBm
bG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CkBAIC0xOTUs
NiArMjA1LDcgQEAgcHVibGljOgogICAgIEZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yKCkgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1NwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIGMgPT0g
JyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdcbicgfHwgYyA9PSBub0JyZWFrU3BhY2U7IH0KICAg
ICBzdGF0aWMgYm9vbCB0cmVhdEFzWmVyb1dpZHRoU3BhY2UoVUNoYXIgYykgeyByZXR1cm4gYyA8
IDB4MjAgfHwgKGMgPj0gMHg3RiAmJiBjIDwgMHhBMCkgfHwgYyA9PSBzb2Z0SHlwaGVuIHx8IChj
ID49IDB4MjAwYyAmJiBjIDw9IDB4MjAwZikgfHwgKGMgPj0gMHgyMDJhICYmIGMgPD0gMHgyMDJl
KSB8fCBjID09IG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyOyB9CisgICAgc3RhdGljIGJvb2wg
Y2FuUmVjZWl2ZVRleHRFbXBoYXNpcyhVQ2hhcjMyIGMpOwogCiAgICAgc3RhdGljIGlubGluZSBV
Q2hhciBub3JtYWxpemVTcGFjZXMoVUNoYXIgY2hhcmFjdGVyKQogICAgIHsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHJldmlzaW9uIDczODY3KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCwxNyArNDAsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihV
Q2hhcjMyIGMsIGJvb2wgbWlycm9yLCBib29sIGZvcmNlU21hbGxDYXBzKSBjb25zdAorR2x5cGhE
YXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyIGMsIGJvb2wgbWlycm9yLCBG
b250RGF0YVZhcmlhbnQgdmFyaWFudCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCi0gICAgYm9vbCB1c2VTbWFsbENhcHNGb250ID0gZm9yY2VTbWFsbENhcHM7Ci0gICAg
aWYgKG1fZm9udERlc2NyaXB0aW9uLnNtYWxsQ2FwcygpKSB7Ci0gICAgICAgIFVDaGFyMzIgdXBw
ZXJDID0gdG9VcHBlcihjKTsKLSAgICAgICAgaWYgKHVwcGVyQyAhPSBjKSB7Ci0gICAgICAgICAg
ICBjID0gdXBwZXJDOwotICAgICAgICAgICAgdXNlU21hbGxDYXBzRm9udCA9IHRydWU7Ci0gICAg
ICAgIH0KKyAgICBpZiAodmFyaWFudCA9PSBBdXRvVmFyaWFudCkgeworICAgICAgICBpZiAobV9m
b250RGVzY3JpcHRpb24uc21hbGxDYXBzKCkpIHsKKyAgICAgICAgICAgIFVDaGFyMzIgdXBwZXJD
ID0gdG9VcHBlcihjKTsKKyAgICAgICAgICAgIGlmICh1cHBlckMgIT0gYykgeworICAgICAgICAg
ICAgICAgIGMgPSB1cHBlckM7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IFNtYWxsQ2Fwc1Zh
cmlhbnQ7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gTm9y
bWFsVmFyaWFudDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB2YXJpYW50ID0gTm9ybWFs
VmFyaWFudDsKICAgICB9CiAKICAgICBpZiAobWlycm9yKQpAQCAtNjgsOCArNzEsOCBAQCBHbHlw
aERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgfQogCiAgICAgR2x5cGhQ
YWdlKiBwYWdlOwotICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgewotICAgICAgICAvLyBGYXN0
ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vdCBzbWFsbCBjYXBzKS4KKyAgICBpZiAo
dmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CisgICAgICAgIC8vIEZhc3Rlc3QgbG9vcCwgZm9y
IHRoZSBjb21tb24gY2FzZSAobm9ybWFsIHZhcmlhbnQpLgogICAgICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICAgICAgcGFnZSA9IG5vZGUtPnBhZ2UoKTsKICAgICAgICAgICAgIGlmIChwYWdl
KSB7CkBAIC0xMTAsNyArMTEzLDcgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJh
Y3RlcihVQwogICAgICAgICAgICAgICAgIGlmIChkYXRhLmZvbnREYXRhKSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBzbWFsbENhcHNGb250RGF0YSBmdW5jdGlvbiBzaG91bGQgbm90IG5v
cm1hbGx5IHJldHVybiAwLgogICAgICAgICAgICAgICAgICAgICAvLyBCdXQgaWYgaXQgZG9lcywg
d2Ugd2lsbCBqdXN0IHJlbmRlciB0aGUgY2FwaXRhbCBsZXR0ZXIgYmlnLgotICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEgPSBkYXRhLmZv
bnREYXRhLT5zbWFsbENhcHNGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YSA9IGRhdGEu
Zm9udERhdGEtPnZhcmlhbnRGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiAg
ICAgICAgICAgICAgICAgICAgIGlmICghc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZGF0YTsKIApAQCAtMTU3LDE0ICsxNjAsMTQgQEAgR2x5cGhEYXRh
IEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgICAgICBjb2RlVW5pdHNMZW5ndGgg
PSAyOwogICAgIH0KICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogY2hhcmFjdGVyRm9udERhdGEg
PSBmb250Q2FjaGUoKS0+Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJzKCp0aGlzLCBjb2RlVW5pdHMs
IGNvZGVVbml0c0xlbmd0aCk7Ci0gICAgaWYgKHVzZVNtYWxsQ2Fwc0ZvbnQgJiYgY2hhcmFjdGVy
Rm9udERhdGEpCi0gICAgICAgIGNoYXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9udERhdGEt
PnNtYWxsQ2Fwc0ZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uKTsKKyAgICBpZiAodmFyaWFudCAh
PSBOb3JtYWxWYXJpYW50ICYmIGNoYXJhY3RlckZvbnREYXRhKQorICAgICAgICBjaGFyYWN0ZXJG
b250RGF0YSA9IGNoYXJhY3RlckZvbnREYXRhLT52YXJpYW50Rm9udERhdGEobV9mb250RGVzY3Jp
cHRpb24sIHZhcmlhbnQpOwogICAgIGlmIChjaGFyYWN0ZXJGb250RGF0YSkgewogICAgICAgICAv
LyBHb3QgdGhlIGZhbGxiYWNrIGdseXBoIGFuZCBmb250LgogICAgICAgICBHbHlwaFBhZ2UqIGZh
bGxiYWNrUGFnZSA9IEdseXBoUGFnZVRyZWVOb2RlOjpnZXRSb290Q2hpbGQoY2hhcmFjdGVyRm9u
dERhdGEsIHBhZ2VOdW1iZXIpLT5wYWdlKCk7CiAgICAgICAgIEdseXBoRGF0YSBkYXRhID0gZmFs
bGJhY2tQYWdlICYmIGZhbGxiYWNrUGFnZS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoYykgPyBmYWxs
YmFja1BhZ2UtPmdseXBoRGF0YUZvckNoYXJhY3RlcihjKSA6IGNoYXJhY3RlckZvbnREYXRhLT5t
aXNzaW5nR2x5cGhEYXRhKCk7CiAgICAgICAgIC8vIENhY2hlIGl0IHNvIHdlIGRvbid0IGhhdmUg
dG8gZG8gc3lzdGVtIGZhbGxiYWNrIGFnYWluIG5leHQgdGltZS4KLSAgICAgICAgaWYgKCF1c2VT
bWFsbENhcHNGb250KSB7CisgICAgICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsK
ICNpZiBPUyhXSU5DRSkKICAgICAgICAgICAgIC8vIG1pc3NpbmdHbHlwaERhdGEgcmV0dXJucyBh
IG51bGwgY2hhcmFjdGVyLCB3aGljaCBpcyBub3Qgc3VpdGFibGUgZm9yIEdESSB0byBkaXNwbGF5
LgogICAgICAgICAgICAgLy8gQWxzbywgc29tZXRpbWVzIHdlIGNhbm5vdCBtYXAgYSBmb250IGZv
ciB0aGUgY2hhcmFjdGVyIG9uIFdJTkNFLCBidXQgR0RJIGNhbiBzdGlsbApAQCAtMTgyLDcgKzE4
NSw3IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAvLyBF
dmVuIHN5c3RlbSBmYWxsYmFjayBjYW4gZmFpbDsgdXNlIHRoZSBtaXNzaW5nIGdseXBoIGluIHRo
YXQgY2FzZS4KICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZXIgdG8gdXNlIHRoZSBtaXNz
aW5nIGdseXBoIGZyb20gdGhlIGxhc3QgcmVzb3J0IGZvbnQgaW5zdGVhZC4KICAgICBHbHlwaERh
dGEgZGF0YSA9IHByaW1hcnlGb250KCktPm1pc3NpbmdHbHlwaERhdGEoKTsKLSAgICBpZiAoIXVz
ZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICBpZiAodmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CiAj
aWYgT1MoV0lOQ0UpCiAgICAgICAgIC8vIFNlZSBjb21tZW50IGFib3V0IFdJTkNFIEdESSBoYW5k
bGluZyBuZWFyIHNldEdseXBoRGF0YUZvckNoYXJhY3RlciBhYm92ZS4KICAgICAgICAgcGFnZS0+
c2V0R2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMsIGMsIGRhdGEuZm9udERhdGEpOwpAQCAtMTk0LDM3
ICsxOTcsNzYgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAg
IHJldHVybiBkYXRhOwogfQogCi12b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK2Jvb2wgRm9udDo6Z2V0RW1waGFzaXNNYXJrR2x5
cGhEYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgR2x5cGhEYXRhJiBnbHlwaERhdGEpIGNv
bnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocythZHZhbmNl
cytmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7
CisgICAgaWYgKG1hcmsuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBm
bG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4p
OworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZH
IGZvbnRzLgorICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBVQ2hhcjMyIGNoYXJhY3RlciA9IG1hcmtbMF07CisK
KyAgICBpZiAoVTE2X0lTX1NVUlJPR0FURShjaGFyYWN0ZXIpKSB7CisgICAgICAgIGlmICghVTE2
X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJhY3RlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgaWYgKG1hcmsubGVuZ3RoKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIFVDaGFyIGxvdyA9IG1hcmtbMV07CisgICAgICAgIGlmICghVTE2X0lT
X1RSQUlMKGxvdykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hhcmFj
dGVyID0gVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGNoYXJhY3RlciwgbG93KTsKKyAgICB9CisKKyAg
ICBnbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBmYWxzZSwgRW1w
aGFzaXNNYXJrVmFyaWFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Zsb2F0IEZvbnQ6Omdl
dEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCBm
cm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzT3JO
b3QgZm9yVGV4dEVtcGhhc2lzKSBjb25zdAoreworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlOwor
CisgICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbHNlLCBmb3JUZXh0RW1waGFzaXMp
OwogICAgIGl0LmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBpdC5tX3J1
bldpZHRoU29GYXI7CiAgICAgaXQuYWR2YW5jZSh0bywgJmdseXBoQnVmZmVyKTsKLSAgICAKLSAg
ICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1
cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9hdCBhZnRlcldpZHRoID0gaXQubV9ydW5X
aWR0aFNvRmFyOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmbG9hdCBmaW5hbFJv
dW5kaW5nV2lkdGggPSBpdC5tX2ZpbmFsUm91bmRpbmdXaWR0aDsKICAgICAgICAgaXQuYWR2YW5j
ZShydW4ubGVuZ3RoKCkpOwotICAgICAgICBzdGFydFggKz0gZmluYWxSb3VuZGluZ1dpZHRoICsg
aXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2Ug
PSBmaW5hbFJvdW5kaW5nV2lkdGggKyBpdC5tX3J1bldpZHRoU29GYXIgLSBhZnRlcldpZHRoOwog
ICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0gYmVmb3JlV2lkdGg7CisgICAgICAgIGluaXRp
YWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CiAKLSAgICAvLyBTd2FwIHRoZSBvcmRlciBvZiB0aGUg
Z2x5cGhzIGlmIHJpZ2h0LXRvLWxlZnQuCi0gICAgaWYgKHJ1bi5ydGwoKSkKKyAgICBpZiAocnVu
LnJ0bCgpKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQgPSBnbHlwaEJ1ZmZlci5zaXpl
KCkgLSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytpLCAtLWVuZCkKICAgICAgICAg
ICAgIGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5pdGlh
bEFkdmFuY2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRz
IG91ciBnbHlwaHMrYWR2YW5jZXMrZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0
R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVy
KTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKIAot
ICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGdseXBocyB0byBiZSBk
aXNwbGF5ZWQgYnkgYWRkaW5nCi0gICAgLy8gYWxsIHRoZSBhZHZhbmNlcyB1cCB0byB0aGUgZmly
c3QgZ2x5cGguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2lu
dCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCwxNCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9uCiB9CiAjZW5kaWYKIAordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9udC5kcmF3RW1waGFzaXNNYXJrcyh0aGlzLCBydW4s
IG1hcmssIHBvaW50LCBmcm9tLCB0byk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgc2V0VGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKTsKIAogICAgICAg
ICB2b2lkIGRyYXdUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9p
bnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKKyAgICAgICAgdm9pZCBkcmF3RW1waGFz
aXNNYXJrcyhjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYgLCBjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmssIGNvbnN0IEludFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7CiAgICAg
ICAgIHZvaWQgZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYpOwogICAgICAgICB2b2lkIGRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZv
bnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgY29uc3QgQ29sb3Im
IGJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZSwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3Bw
CShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIFNpbXBsZUZvbnREYXRh
OjpTaW1wbGVGb250RGF0YShjb25zdCBGb24KICAgICAsIG1faXNMb2FkaW5nKGlzTG9hZGluZykK
ICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQogICAgICwgbV9zbWFsbENhcHNG
b250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0YSgwKQogICAgICwgbV9icm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIHBsYXRmb3JtSW5pdCgpOwpAQCAtNzUsNiAr
NzYsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoUGFzc093blB0CiAgICAgLCBt
X2lzTG9hZGluZyhmYWxzZSkKICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQog
ICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0
YSgwKQogICAgICwgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIFNWR0ZvbnRG
YWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gbV9zdmdGb250RGF0YS0+c3ZnRm9udEZh
Y2VFbGVtZW50KCk7CkBAIC0xOTAsMTEgKzE5MiwxNSBAQCBTaW1wbGVGb250RGF0YTo6flNpbXBs
ZUZvbnREYXRhKCkKICAgICAgICAgaWYgKG1fc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9zbWFsbENhcHNG
b250RGF0YSk7CiAKKyAgICAgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAg
ICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9lbXBoYXNp
c01hcmtGb250RGF0YSk7CisKICAgICAgICAgaWYgKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEp
CiAgICAgICAgICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEo
bV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSk7CiAgICAgfQogCiAgICAgZGVsZXRlIG1fc21hbGxD
YXBzRm9udERhdGE7CisgICAgZGVsZXRlIG1fZW1waGFzaXNNYXJrRm9udERhdGE7CiAgICAgZGVs
ZXRlIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw2ICs2NSw3IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IGNsYXNzIFNWR0ZvbnREYXRhOwogCitlbnVtIEZvbnREYXRhVmFyaWFudCB7IEF1dG9WYXJpYW50
LCBOb3JtYWxWYXJpYW50LCBTbWFsbENhcHNWYXJpYW50LCBFbXBoYXNpc01hcmtWYXJpYW50IH07
CiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07
CiAKIGNsYXNzIFNpbXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKQEAgLTc2LDcgKzc3
LDI0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgpOwogCiAgICAgY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybURhdGE7IH0KLSAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0OworCisgICAgU2ltcGxlRm9u
dERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
ICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKKworICAgIFNpbXBsZUZvbnREYXRhKiB2YXJpYW50Rm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQp
IGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHZhcmlhbnQpIHsKKyAgICAgICAgY2FzZSBT
bWFsbENhcHNWYXJpYW50OgorICAgICAgICAgICAgcmV0dXJuIHNtYWxsQ2Fwc0ZvbnREYXRhKGRl
c2NyaXB0aW9uKTsKKyAgICAgICAgY2FzZSBFbXBoYXNpc01hcmtWYXJpYW50OgorICAgICAgICAg
ICAgcmV0dXJuIGVtcGhhc2lzTWFya0ZvbnREYXRhKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgY2Fz
ZSBBdXRvVmFyaWFudDoKKyAgICAgICAgY2FzZSBOb3JtYWxWYXJpYW50OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PFNpbXBsZUZvbnREYXRhKj4odGhpcyk7CisgICAgfQogCiAgICAg
U2ltcGxlRm9udERhdGEqIGJyb2tlbklkZW9ncmFwaEZvbnREYXRhKCkgY29uc3Q7CiAgICAgCkBA
IC0xODMsNiArMjAxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbW9uSW5pdCgpOwogCisg
ICAgU2ltcGxlRm9udERhdGEqIHNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdDsKKwogI2lmIChQTEFURk9STShXSU4pICYmICFPUyhX
SU5DRSkpIFwKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQg
aW5pdEdESUZvbnQoKTsKQEAgLTIyNyw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIEdseXBoRGF0
YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX3Nt
YWxsQ2Fwc0ZvbnREYXRhOworICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fZW1waGFzaXNN
YXJrRm9udERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX2Jyb2tlbklkZW9n
cmFwaEZvbnREYXRhOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyBBY2NvcmRpbmcgdG8gaHR0cDovL3d3dy51bmljb2RlLm9yZy9Q
dWJsaWMvVU5JREFUQS9VQ0QuaHRtbCNDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzX1ZhbHVlcwog
c3RhdGljIGNvbnN0IHVpbnQ4X3QgaGlyYWdhbmFLYXRha2FuYVZvaWNpbmdNYXJrc0NvbWJpbmlu
Z0NsYXNzID0gODsKIAotV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCitXaWR0aEl0ZXJhdG9y
OjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcywgYm9vbCBmb3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoZm9udCkK
ICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKQEAgLTUzLDYgKzUz
LDcgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwgbV9t
aW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQogICAgICwg
bV9maXJzdEdseXBoT3ZlcmZsb3coMCkKICAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKKyAg
ICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNpcykKIHsKICAgICAvLyBJZiB0aGUg
cGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1
bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFk
ZGl0aW9uLgpAQCAtMTk5LDYgKzIwMCw5IEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShp
bnQgb2Zmc2V0LCAKICAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxm
bG9hdD4oMCwgLWJvdW5kcy54KCkpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fZm9yVGV4
dEVtcGhhc2lzICYmICFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGMpKQorICAgICAgICAg
ICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgIC8vIEFkdmFuY2Ug
cGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1
c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVudENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHJldmlzaW9u
IDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBUZXh0UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihj
b25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2Up
OworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcyA9IGZhbHNlLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAog
ICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2
YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtNjMs
NiArNjMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CiAg
ICAgZmxvYXQgbV9maXJzdEdseXBoT3ZlcmZsb3c7CiAgICAgZmxvYXQgbV9sYXN0R2x5cGhPdmVy
ZmxvdzsKKyAgICBib29sIG1fZm9yVGV4dEVtcGhhc2lzOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNp
b24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCBib29sIFRleHRSdW5XYWxr
ZXI6Om5leHRTY3JpcHRSdW4oKQogICAgICAgICAvLyAoYW5kIHRoZSBnbHlwaHMgaW4gZWFjaCBB
LCBDIGFuZCBUIHNlY3Rpb24gYXJlIGJhY2t3YXJkcyB0b28pCiAgICAgICAgIGlmICghaGJfdXRm
MTZfc2NyaXB0X3J1bl9wcmV2KCZtX251bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4u
Y2hhcmFjdGVycygpLCBtX3J1bi5sZW5ndGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1f
Zm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9z
XSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlKS5mb250RGF0YTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWhiX3V0ZjE2
X3NjcmlwdF9ydW5fbmV4dCgmbV9udW1Db2RlUG9pbnRzLCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNo
YXJhY3RlcnMoKSwgbV9ydW4ubGVuZ3RoKCksICZtX2luZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIGJvb2wgVGV4dFJ1
bldhbGtlcjo6bmV4dFNjcmlwdFJ1bigpCiAgICAgICAgIC8vIGluIHRoZSBoYXJmYnV6eiBkYXRh
IHN0cnVjdHVyZXMgdG8gZS5nLiBwaWNrIHRoZSBjb3JyZWN0IHNjcmlwdCdzIHNoYXBlci4KICAg
ICAgICAgLy8gU28gd2UgYWxsb3cgdGhhdCB0byBydW4gZmlyc3QsIHRoZW4gZG8gYSBzZWNvbmQg
cGFzcyBvdmVyIHRoZSByYW5nZSBpdAogICAgICAgICAvLyBmb3VuZCBhbmQgdGFrZSB0aGUgbGFy
Z2VzdCBzdWJyZWdpb24gdGhhdCBzdGF5cyB3aXRoaW4gYSBzaW5nbGUgZm9udC4KLSAgICAgICAg
bV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0u
c3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAg
IG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVt
LnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgICAgIHVuc2ln
bmVkIGVuZE9mUnVuOwogICAgICAgICBmb3IgKGVuZE9mUnVuID0gMTsgZW5kT2ZSdW4gPCBtX2l0
ZW0uaXRlbS5sZW5ndGg7ICsrZW5kT2ZSdW4pIHsKLSAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0
ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2UsIGZhbHNlKS5mb250
RGF0YTsKKyAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
cyArIGVuZE9mUnVuXSwgZmFsc2UpLmZvbnREYXRhOwogICAgICAgICAgICAgaWYgKG5leHRGb250
RGF0YSAhPSBtX2N1cnJlbnRGb250RGF0YSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtNDIyLDcgKzQyMiw3IEBAIGZsb2F0IFRleHRSdW5XYWxrZXI6OndpZHRoT2ZGdWxs
UnVuKCkKIAogdm9pZCBUZXh0UnVuV2Fsa2VyOjpzZXR1cEZvbnRGb3JTY3JpcHRSdW4oKQogewot
ICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFj
dGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0
YTsKKyAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsK
ICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+Zm9u
dERhdGFGb3JDaGFyYWN0ZXIoJyAnKS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgbV9pdGVtLmZhY2Ug
PSBwbGF0Zm9ybURhdGEuaGFyZmJ1enpGYWNlKCk7CiAgICAgdm9pZCogb3BhcXVlUGxhdGZvcm1E
YXRhID0gY29uc3RfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oJnBsYXRmb3JtRGF0YSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21p
dW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDIyICsxMTIsMzIgQEAgdm9pZCBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZv
bnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgTE9HRk9OVCB3aW5Gb250Owor
ICAgIEdldE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3
aW5Gb250KTsKKyAgICBmbG9hdCBzY2FsZWRTaXplID0gc2NhbGVGYWN0b3IgKiBmb250RGVzY3Jp
cHRpb24uY29tcHV0ZWRTaXplKCk7CisgICAgd2luRm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNj
YWxlZFNpemUpOworICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5Gb250
KTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9ybURhdGEoaGZvbnQs
IHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250
RGF0YSkgewotICAgICAgICBMT0dGT05UIHdpbkZvbnQ7Ci0gICAgICAgIEdldE9iamVjdChtX3Bs
YXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5Gb250KTsKLSAgICAgICAg
ZmxvYXQgc21hbGxDYXBzU2l6ZSA9IDAuNzBmICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6
ZSgpOwotICAgICAgICAvLyBVbmxpa2UgV2ViS2l0IHRydW5rLCB3ZSBkb24ndCBtdWx0aXBseSB0
aGUgc2l6ZSBieSAzMi4gIFRoYXQgc2VlbXMKLSAgICAgICAgLy8gdG8gYmUgc29tZSBraW5kIG9m
IGFydGlmYWN0IG9mIHRoZWlyIENHIGJhY2tlbmQsIG9yIHNvbWV0aGluZy4KLSAgICAgICAgd2lu
Rm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc1NpemUpOwotICAgICAgICBIRk9OVCBo
Zm9udCA9IENyZWF0ZUZvbnRJbmRpcmVjdCgmd2luRm9udCk7Ci0gICAgICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPQotICAgICAgICAgICAgbmV3IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9ybURh
dGEoaGZvbnQsIHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOwotICAgIH0K
KyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKwogICAgIHJldHVybiBt
X3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAg
bV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
LjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2lt
cGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
aW50IGxlbmd0aCkgY29uc3QKIHsKICAgLy8gVGhpcyB1c2VkIHRvIGJlIGltcGxlbWVudGVkIHdp
dGggSU1MYW5nRm9udExpbmsyLCBidXQgc2luY2UgdGhhdCBjb2RlIGhhcwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnRE
YXRhTGludXguY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBTbWFsbGNhcHMgdmVyc2lvbnMg
b2YgZm9udHMgYXJlIDcwJSB0aGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGZvbnQuCiBzdGF0aWMgY29u
c3QgZmxvYXQgc21hbGxDYXBzRnJhY3Rpb24gPSAwLjdmOworc3RhdGljIGNvbnN0IGZsb2F0IGVt
cGhhc2lzTWFya0ZyYWN0aW9uID0gLjU7CiAvLyBUaGlzIGlzIHRoZSBsYXJnZXN0IFZETVggdGFi
bGUgd2hpY2ggd2UnbGwgdHJ5IHRvIGxvYWQgYW5kIHBhcnNlLgogc3RhdGljIGNvbnN0IHNpemVf
dCBtYXhWRE1YVGFibGVTaXplID0gMTAyNCAqIDEwMjQ7ICAvLyAxIE1CCiAKQEAgLTE0MSwxNiAr
MTQyLDI4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIGNvbnN0IGZsb2F0IHNjYWxlZFNpemUgPSBscm91bmRmKGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnRE
YXRhKEZvbnRQbGF0Zm9ybURhdGEobV9wbGF0Zm9ybURhdGEsIHNjYWxlZFNpemUpLCBpc0N1c3Rv
bUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNt
YWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBj
b25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBjb25zdCBm
bG9hdCBzbWFsbENhcHNTaXplID0gbHJvdW5kZihmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCkgKiBzbWFsbENhcHNGcmFjdGlvbik7Ci0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBu
ZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3JtRGF0YSwgc21hbGxD
YXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFs
bENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgc21hbGxDYXBzRnJhY3Rpb24pOwogCiAgICAgcmV0dXJuIG1f
c21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6
ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBt
X2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBl
bXBoYXNpc01hcmtGcmFjdGlvbik7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0
YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIFNrUGFpbnQgcGFpbnQ7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzksMTggKzc5LDMxIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERh
dGEoCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRf
ZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAorICAgICAgICBzY2FsZUZhY3RvciAq
IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGlj
Qm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCkpLAorICAgICAgICBpc0N1
c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJIHRoaW5rIHdlIHdhbnQgdG8gYXNrIEZvbnRDb25m
aWcgZm9yIHRoZSByaWdodCBmb250IGFnYWluLgogICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0
YSkKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YSgKLSAg
ICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFj
ZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAotICAgICAgICAgICAgMC43MGYgKiBmb250
RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQo
KSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpKSwKLSAgICAgICAgICAgIGlzQ3Vz
dG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKIAogICAgIHJldHVybiBtX3NtYWxsQ2Fwc0Zv
bnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFy
a0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
eworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01h
cmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisgICAg
cmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERhdGE6
OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkg
Y29uc3QKIHsKICAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2Zh
Y2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFpa3UvU2ltcGxlRm9udERhdGFIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkocmV2
aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZv
bnREYXRhSGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNyArNjYsMzAgQEAgdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEq
IFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2Ny
aXB0aW9uIGRlc2MgPSBGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBkZXNj
LnNldFNwZWNpZmllZFNpemUoc2NhbGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRT
aXplKCkpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShkZXNjLCBkZXNj
LmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKGZvbnRQ
bGF0Zm9ybURhdGEsIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBsZUZvbnREYXRh
KiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRh
KSB7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAgICAgICAgbV9z
bWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShmb250UGxhdGZvcm1EYXRhLCBp
c0N1c3RvbUZvbnQoKSwgZmFsc2UpOwotICAgIH0KKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERh
dGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVz
Y3JpcHRpb24sIC43KTsKKwogICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitT
aW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9l
bXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNj
YWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFz
aXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFj
dGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogV2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCB0aGlzIHRvIGxvYWQgbm9uLUFTQ0lJ
IGVuY29kaW5nIHNpdGVzCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDczODY3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTYsMTAgKzU2LDExIEBAIHN0YXRpYyBpbmxpbmUgQ0dGbG9hdCBj
ZWlsQ0dGbG9hdChDR0Zsb2EKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oY2VpbChm
KSk7CiB9CiAKLUNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKGNv
bnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgYm9vbCBtYXlVc2VOYXR1cmFsV3Jp
dGluZ0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0Zv
bnRzKQorQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3Qg
Rm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5n
RGlyZWN0aW9uLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IGJvb2wgZm9yVGV4dEVtcGhhc2lzKQogICAgIDogbV9mb250KCpmb250KQogICAgICwgbV9ydW4o
cnVuKQogICAgICwgbV9tYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbihtYXlVc2VOYXR1cmFs
V3JpdGluZ0RpcmVjdGlvbikKKyAgICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNp
cykKICAgICAsIG1fY3VycmVudENoYXJhY3RlcigwKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgp
KQogICAgICwgbV90b3RhbFdpZHRoKDApCkBAIC0yNDAsNyArMjQxLDcgQEAgdm9pZCBDb21wbGV4
VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbAogICAgICAgICAgICAgICAgIG5leHRHbHlwaERh
dGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFUxNl9HRVRfU1VQUExFTUVOVEFSWShj
dXJyWy0xXSwgY3VyclswXSksIGZhbHNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3Rl
cigqY3VyciwgZmFsc2UsIGZvcmNlU21hbGxDYXBzKTsKKyAgICAgICAgICAgIG5leHRHbHlwaERh
dGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFs
bENhcHMgPyBTbWFsbENhcHNWYXJpYW50IDogQXV0b1ZhcmlhbnQpOwogCiAgICAgICAgIGlmICgh
aXNTdXJyb2dhdGUgJiYgbV9mb250LmlzU21hbGxDYXBzKCkpIHsKICAgICAgICAgICAgIG5leHRJ
c1NtYWxsQ2FwcyA9IGZvcmNlU21hbGxDYXBzIHx8IChuZXdDID0gdV90b3VwcGVyKGMpKSAhPSBj
OwpAQCAtNTM2LDYgKzUzNyw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RH
bHlwaHMKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHdpZHRoU2luY2VMYXN0
Um91bmRpbmcgKz0gYWR2YW5jZS53aWR0aDsKIAorICAgICAgICAgICAgaWYgKG1fZm9yVGV4dEVt
cGhhc2lzICYmICghRm9udDo6Y2FuUmVjZWl2ZVRleHRFbXBoYXNpcyhjaCkgfHwgKFVfR0VUX0dD
X01BU0soY2gpICYgVV9HQ19NX01BU0spKSkKKyAgICAgICAgICAgICAgICBnbHlwaCA9IGZvbnRE
YXRhLT5zcGFjZUdseXBoKCk7CisKICAgICAgICAgICAgIGFkdmFuY2UuaGVpZ2h0ICo9IC0xOwog
ICAgICAgICAgICAgbV9hZGp1c3RlZEFkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKICAgICAgICAg
ICAgIG1fYWRqdXN0ZWRHbHlwaHMuYXBwZW5kKGdseXBoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFRleHRS
dW47CiAvLyBPUyBWZXJzaW9ucyA+PSAxMC42LCBBVFNVSSBpcyB1c2VkIG90aGVyd2lzZS4KIGNs
YXNzIENvbXBsZXhUZXh0Q29udHJvbGxlciB7CiBwdWJsaWM6Ci0gICAgQ29tcGxleFRleHRDb250
cm9sbGVyKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFsV3Jp
dGluZ0RpcmVjdGlvbiA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMgPSAwKTsKKyAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCos
IGNvbnN0IFRleHRSdW4mLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uID0gZmFs
c2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIGJv
b2wgZm9yVGV4dEVtcGhhc2lzID0gZmFsc2UpOwogCiAgICAgLy8gQWR2YW5jZSBhbmQgZW1pdCBn
bHlwaHMgdXAgdG8gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIuCiAgICAgdm9pZCBhZHZhbmNlKHVu
c2lnbmVkIHRvLCBHbHlwaEJ1ZmZlciogPSAwKTsKQEAgLTE1Niw2ICsxNTYsNyBAQCBwcml2YXRl
OgogICAgIGNvbnN0IEZvbnQmIG1fZm9udDsKICAgICBjb25zdCBUZXh0UnVuJiBtX3J1bjsKICAg
ICBib29sIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CisgICAgYm9vbCBtX2ZvclRl
eHRFbXBoYXNpczsKIAogICAgIFZlY3RvcjxVQ2hhciwgMjU2PiBtX3NtYWxsQ2Fwc0J1ZmZlcjsK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFj
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29t
cGxleFRleHRNYWMuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDMw
ICs1NSw0MCBAQCBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAgICAg
cmV0dXJuIEZsb2F0UmVjdChwb2ludC54KCkgKyBmbG9vcmYoYmVmb3JlV2lkdGgpLCBwb2ludC55
KCksIHJvdW5kZihhZnRlcldpZHRoKSAtIGZsb29yZihiZWZvcmVXaWR0aCksIGgpOwogfQogCi12
b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAorZmxvYXQgRm9udDo6Z2V0R2x5cGhz
QW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCBmcm9tLCBp
bnQgdG8sIEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgZm9y
VGV4dEVtcGhhc2lzKSBjb25zdAogewotICAgIC8vIFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRzIG91
ciBnbHlwaHMgKyBhZHZhbmNlcyArIGZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KLSAgICBHbHlw
aEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZTsKIAotICAgIGZs
b2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKLSAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJv
bGxlcih0aGlzLCBydW4pOworICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVyKHRo
aXMsIHJ1biwgZmFsc2UsIDAsIGZvclRleHRFbXBoYXNpcyk7CiAgICAgY29udHJvbGxlci5hZHZh
bmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdpZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNv
RmFyKCk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKHRvLCAmZ2x5cGhCdWZmZXIpOwotICAgIAot
ICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZl
IHVwLgorCiAgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAorICAgICAgICByZXR1cm4gMDsKKwogICAgIGZsb2F0IGFmdGVyV2lkdGggPSBjb250cm9s
bGVyLnJ1bldpZHRoU29GYXIoKTsKIAogICAgIGlmIChydW4ucnRsKCkpIHsKLSAgICAgICAgc3Rh
cnRYICs9IGNvbnRyb2xsZXIudG90YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJvdW5kaW5n
V2lkdGgoKSAtIGFmdGVyV2lkdGg7CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gY29udHJvbGxl
ci50b3RhbFdpZHRoKCkgKyBjb250cm9sbGVyLmZpbmFsUm91bmRpbmdXaWR0aCgpIC0gYWZ0ZXJX
aWR0aDsKICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGVuZCA9IGdseXBoQnVmZmVyLnNpemUoKSAt
IDE7IGkgPCBnbHlwaEJ1ZmZlci5zaXplKCkgLyAyOyArK2ksIC0tZW5kKQogICAgICAgICAgICAg
Z2x5cGhCdWZmZXIuc3dhcChpLCBlbmQpOwogICAgIH0gZWxzZQotICAgICAgICBzdGFydFggKz0g
YmVmb3JlV2lkdGg7CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gYmVmb3JlV2lkdGg7CisKKyAg
ICByZXR1cm4gaW5pdGlhbEFkdmFuY2U7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGds
eXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9yIGVh
Y2ggZ2x5cGguCisgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisKKyAgICBmbG9hdCBzdGFy
dFggPSBwb2ludC54KCkgKyBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwg
ZnJvbSwgdG8sIGdseXBoQnVmZmVyKTsKKworICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFu
eSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZlIHVwLgorICAgIGlmIChnbHlwaEJ1ZmZlci5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKIAogICAgIC8vIERyYXcgdGhlIGdseXBoIGJ1ZmZlciBu
b3cgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IHJldHVybmVkIGluIHN0YXJ0WC4KICAgICBGbG9hdFBv
aW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2ludC55KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDcz
ODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiAg
ICAgfQogCisgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEgJiYgIWlzQ3VzdG9tRm9udCgp
KSB7CisgICAgICAgIGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9lbXBoYXNpc01hcmtG
b250RGF0YSk7CisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSAwOworICAgIH0KKwog
I2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgaWYgKG1fc3R5bGVHcm91cCkKICAgICAgICAg
d2tSZWxlYXNlU3R5bGVHcm91cChtX3N0eWxlR3JvdXApOwpAQCAtMzczLDQzICszNzgsNTggQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICNlbmRpZgogfQogCi1TaW1w
bGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBs
ZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fw
c0ZvbnREYXRhKSB7Ci0gICAgICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgewotICAgICAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Ci0gICAg
ICAgICAgICBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgPSBzbWFsbENhcHNGb250RGF0YS5tX3Np
emUgKiBzbWFsbENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAgICBtX3NtYWxsQ2Fw
c0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnREYXRhLCB0cnVlLCBm
YWxzZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7Ci0gICAgICAgICAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgp
ICogc21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAgRm9udFBsYXRmb3Jt
RGF0YSBzbWFsbENhcHNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29u
dmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5cGUgaW5mb3JtYXRp
b24gKHNjcmVlbi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0byBhIGRpZmZlcmVu
dCBzaXplLgotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3
ZSdyZSBoYW5kZWQgYmFjay4KLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQuc2V0Rm9udChmb250
RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSA/IFtzbWFsbENhcHNGb250LmZvbnQoKSBwcmlu
dGVyRm9udF0gOiBbc21hbGxDYXBzRm9udC5mb250KCkgc2NyZWVuRm9udF0pOwotCi0gICAgICAg
ICAgICBpZiAoc21hbGxDYXBzRm9udC5mb250KCkpIHsKLSAgICAgICAgICAgICAgICBOU0ZvbnRN
YW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsK
LSAgICAgICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9IFtmb250TWFuYWdl
ciB0cmFpdHNPZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKLQotICAgICAgICAgICAgICAg
IGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgICAgICAgICAgICAgICAg
IGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7Ci0gICAgICAgICAgICAgICAgaWYgKG1fcGxh
dGZvcm1EYXRhLm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9udFRy
YWl0cyB8PSBOU0l0YWxpY0ZvbnRNYXNrOwotCi0gICAgICAgICAgICAgICAgTlNGb250VHJhaXRN
YXNrIHNtYWxsQ2Fwc0ZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNtYWxs
Q2Fwc0ZvbnQuZm9udCgpXTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhl
dGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc21hbGxDYXBzRm9u
dFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250
Lm1fc3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzaykgJiYg
IShzbWFsbENhcHNGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7Ci0KLSAgICAgICAgICAg
ICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRh
KCZzbWFsbENhcHNGb250KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKKyAg
ICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Cisg
ICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRhLm1fc2l6ZSAqIHNj
YWxlRmFjdG9yOworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHNjYWxlZEZvbnRE
YXRhLCB0cnVlLCBmYWxzZSk7CiAgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkgKiBzY2FsZUZhY3Rv
cjsKKyAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNGb250TWFuYWdlciBz
aGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6
ZTpzaXplXSwgc2l6ZSk7CisKKyAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0
aW9uIChzY3JlZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJl
bnQgc2l6ZS4KKyAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0aGF0IHdlJ3JlIGhh
bmRlZCBiYWNrLgorICAgIHNjYWxlZEZvbnREYXRhLnNldEZvbnQoZm9udERlc2NyaXB0aW9uLnVz
ZVByaW50ZXJGb250KCkgPyBbc2NhbGVkRm9udERhdGEuZm9udCgpIHByaW50ZXJGb250XSA6IFtz
Y2FsZWRGb250RGF0YS5mb250KCkgc2NyZWVuRm9udF0pOworCisgICAgaWYgKHNjYWxlZEZvbnRE
YXRhLmZvbnQoKSkgeworICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0Zv
bnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIGZv
bnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQo
KV07CisKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGljQm9sZCkKKyAgICAg
ICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7CisgICAgICAgIGlmIChtX3BsYXRm
b3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5T
SXRhbGljRm9udE1hc2s7CisKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIHNjYWxlZEZvbnRUcmFp
dHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNjYWxlZEZvbnREYXRhLmZvbnQoKV07Cisg
ICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNC
b2xkRm9udE1hc2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKKyAg
ICAgICAgc2NhbGVkRm9udERhdGEubV9zeW50aGV0aWNPYmxpcXVlID0gKGZvbnRUcmFpdHMgJiBO
U0l0YWxpY0ZvbnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNr
KTsKKworICAgICAgICByZXR1cm4gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzY2Fs
ZWRGb250RGF0YSk7CisgICAgfQorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAg
ICByZXR1cm4gMDsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENh
cHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
K3sKKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9u
dERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxsQ2Fwc0ZvbnRTaXpl
TXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgTlNT
dHJpbmcgKnN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29w
eTpjb25zdF9jYXN0PHVuaWNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVu
RG9uZTpOT107CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3BhbmdvL1NpbXBsZUZv
bnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdvLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODAsMTcgKzgwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3Jt
RGVzdHJveSgpCiAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiB9CiAKK1NpbXBsZUZvbnRE
YXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnRE
ZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAg
ZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNj
LmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHBsYXRm
b3JtRGF0YSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBz
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlv
biBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Mu
c2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7
Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5
KCkuZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZv
bnREYXRhKHBsYXRmb3JtRGF0YSk7Ci0gICAgfQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRh
ID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9z
bWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpl
bXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
bikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpIHsKKyAgICAgICAg
bV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
LjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2lt
cGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
aW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdyYWRp
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxRQnJ1c2g+CkBAIC0z
ODMsNiArMzg0LDEyIEBAIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXAK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRm9udDo6Z2V0RW1waGFzaXNNYXJrR2x5cGhE
YXRhKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgR2x5cGhEYXRhJiBnbHlwaERhdGEpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFFGb250
IEZvbnQ6OmZvbnQoKSBjb25zdAogewogICAgIFFGb250IGYgPSBwcmltYXJ5Rm9udCgpLT5nZXRR
dEZvbnQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnRE
YXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aW1wbGVGb250RGF0YVdpbi5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTAsMjYgKzExMCwzOCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQog
ICAgIGRlbGV0ZSBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzOwogfQogCi1TaW1wbGVGb250RGF0YSog
U2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpz
Y2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxv
YXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7
Ci0gICAgICAgIGZsb2F0IHNtYWxsQ2Fwc0hlaWdodCA9IGNTbWFsbENhcHNGb250U2l6ZU11bHRp
cGxpZXIgKiBtX3BsYXRmb3JtRGF0YS5zaXplKCk7CisgICAgICAgIGZsb2F0IHNjYWxlZFNpemUg
PSBzY2FsZUZhY3RvciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKICAgICAgICAgaWYgKGlzQ3Vz
dG9tRm9udCgpKSB7Ci0gICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNtYWxsQ2Fwc0ZvbnRE
YXRhKG1fcGxhdGZvcm1EYXRhKTsKLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnREYXRhLnNldFNp
emUoc21hbGxDYXBzSGVpZ2h0KTsKLSAgICAgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBu
ZXcgU2ltcGxlRm9udERhdGEoc21hbGxDYXBzRm9udERhdGEsIHRydWUsIGZhbHNlKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIExPR0ZPTlQgd2luZm9udDsKLSAgICAgICAgICAgIEdl
dE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5mb250
KTsKLSAgICAgICAgICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJvdW5kZihzbWFsbENhcHNIZWln
aHQgKiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkgPyAxIDogMzIpKTsKLSAgICAgICAgICAgIEhG
T05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KTsKLSAgICAgICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YSho
Zm9udCwgc21hbGxDYXBzSGVpZ2h0LCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1f
cGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
c0N1c3RvbUZvbnQoKSwgZmFsc2UpOworICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2Fs
ZWRGb250KG1fcGxhdGZvcm1EYXRhKTsKKyAgICAgICAgICAgIHNjYWxlZEZvbnQuc2V0U2l6ZShz
Y2FsZWRTaXplKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoc2NhbGVk
Rm9udCwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgfQorCisgICAgICAgIExPR0ZPTlQg
d2luZm9udDsKKyAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVv
ZihMT0dGT05UKSwgJndpbmZvbnQpOworICAgICAgICB3aW5mb250LmxmSGVpZ2h0ID0gLWxyb3Vu
ZGYoc2NhbGVkU2l6ZSAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAzMikpOworICAg
ICAgICBIRk9OVCBoZm9udCA9IENyZWF0ZUZvbnRJbmRpcmVjdCgmd2luZm9udCk7CisgICAgICAg
IHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc2NhbGVk
U2l6ZSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50
aGV0aWNPYmxpcXVlKCksIG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKSwgaXNDdXN0b21Gb250KCks
IGZhbHNlKTsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNG
b250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sK
KyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGNTbWFsbENhcHNGb250U2l6ZU11
bHRpcGxpZXIpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IGN1c3RvbSBmb250cy4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBVbmlzY3JpYmVDb250
cm9sbGVyOjphZHZhbmNlKHVuc2lnbgogICAgICAgICBVQ2hhciBjID0gKmN1cnI7CiAKICAgICAg
ICAgYm9vbCBmb3JjZVNtYWxsQ2FwcyA9IGlzU21hbGxDYXBzICYmIChVX0dFVF9HQ19NQVNLKGMp
ICYgVV9HQ19NX01BU0spOwotICAgICAgICBuZXh0Rm9udERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFsbENhcHMpLmZvbnREYXRhOworICAg
ICAgICBuZXh0Rm9udERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpjdXJyLCBm
YWxzZSwgZm9yY2VTbWFsbENhcHMgPyBTbWFsbENhcHNWYXJpYW50IDogQXV0b1ZhcmlhbnQpLmZv
bnREYXRhOwogICAgICAgICBpZiAobV9mb250LmlzU21hbGxDYXBzKCkpIHsKICAgICAgICAgICAg
IG5leHRJc1NtYWxsQ2FwcyA9IGZvcmNlU21hbGxDYXBzIHx8IChuZXdDID0gdV90b3VwcGVyKGMp
KSAhPSBjOwogICAgICAgICAgICAgaWYgKG5leHRJc1NtYWxsQ2FwcykKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvU2ltcGxlRm9udERhdGFXaW5DRS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNF
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L1NpbXBsZUZvbnREYXRhV2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCwyMCArNjQsMzIg
QEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICBtX3NtYWxsQ2Fw
c0ZvbnREYXRhID0gMDsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2Fs
ZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQg
c2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgZm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKGxyb3VuZGYoc2NhbGVG
YWN0b3IgKiBmb250RGVzYy5jb21wdXRlZFNpemUoKSkpOworICAgIGZvbnREZXNjLnNldFNwZWNp
ZmllZFNpemUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnREZXNjLnNwZWNpZmllZFNpemUoKSkp
OworICAgIGZvbnREZXNjLnNldEtleXdvcmRTaXplKGxyb3VuZGYoc2NhbGVGYWN0b3IgKiBmb250
RGVzYy5rZXl3b3JkU2l6ZSgpKSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gZm9u
dENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2MsIG1fcGxhdGZvcm1E
YXRhLmZhbWlseSgpKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gbmV3IFNpbXBsZUZvbnREYXRhKCpy
ZXN1bHQpIDogMDsKK30KKwogU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENh
cHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
IHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpIHsKLSAgICAgICAgRm9udERlc2NyaXB0
aW9uIGZvbnREZXNjKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvbnREZXNjLnNldENvbXB1
dGVkU2l6ZShscm91bmRmKDAuNzBmICogZm9udERlc2MuY29tcHV0ZWRTaXplKCkpKTsKLSAgICAg
ICAgZm9udERlc2Muc2V0U3BlY2lmaWVkU2l6ZShscm91bmRmKDAuNzBmICogZm9udERlc2Muc3Bl
Y2lmaWVkU2l6ZSgpKSk7Ci0gICAgICAgIGZvbnREZXNjLnNldEtleXdvcmRTaXplKGxyb3VuZGYo
MC43MGYgKiBmb250RGVzYy5rZXl3b3JkU2l6ZSgpKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEqIHJlc3VsdCA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnRE
ZXNjLCBtX3BsYXRmb3JtRGF0YS5mYW1pbHkoKSk7Ci0gICAgICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKCpyZXN1bHQp
OwotICAgIH0KKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxD
YXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKwogICAg
IHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkK
KyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNj
cmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisK
IERXT1JEIGdldEtub3duRm9udENvZGVQYWdlcyhjb25zdCB3Y2hhcl90KiBmYW1pbHkpOwogCiBi
b29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L1NpbXBsZUZvbnREYXRhV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTAsMTcgKzkwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVz
dHJveSgpCiAjZW5kaWYKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2Fs
ZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQg
c2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIGRlc2MgPSBGb250RGVz
Y3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoc2Nh
bGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOworICAg
IHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEocGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwg
ZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0Zv
bnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewot
ICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSl7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlvbiBk
ZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Muc2V0
U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7Ci0g
ICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCku
ZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnRE
YXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAgaWYg
KCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2Nh
bGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFsbENh
cHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNp
c01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29u
c3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFz
aXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKwor
ICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnRE
YXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5n
dGgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgdGhp
cyB0byBsb2FkIG5vbi1BU0NJSSBlbmNvZGluZyBzaXRlcwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEz
ICszMiwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIE5hbWVzIGhlcmUgYXJlIHRha2Vu
IGZyb20gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCiAKLS8vIE5vdGUsIHRoZXNlIGFyZSBVQ2hhciBj
b25zdGFudHMsIG5vdCBVQ2hhcjMyLCB3aGljaCBtYWtlcyB0aGVtCisvLyBOb3RlLCBtb3N0IG9m
IHRoZXNlIGFyZSBVQ2hhciBjb25zdGFudHMsIG5vdCBVQ2hhcjMyLCB3aGljaCBtYWtlcyB0aGVt
CiAvLyBtb3JlIGNvbnZlbmllbnQgZm9yIFdlYkNvcmUgY29kZSB0aGF0IG1vc3RseSB1c2VzIFVU
Ri0xNi4KIAorY29uc3QgVUNoYXIzMiBhZWdlYW5Xb3JkU2VwYXJhdG9yTGluZSA9IDB4MTAxMDA7
Citjb25zdCBVQ2hhcjMyIGFlZ2VhbldvcmRTZXBhcmF0b3JEb3QgPSAweDEwMTAxOworY29uc3Qg
VUNoYXIgYmxhY2tDaXJjbGUgPSAweDI1Q0Y7CiBjb25zdCBVQ2hhciBibGFja1NxdWFyZSA9IDB4
MjVBMDsKK2NvbnN0IFVDaGFyIGJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlID0gMHgyNUIyOwogY29u
c3QgVUNoYXIgYnVsbGV0ID0gMHgyMDIyOworY29uc3QgVUNoYXIgYnVsbHNleWUgPSAweDI1Q0U7
CiBjb25zdCBVQ2hhciBjYXJyaWFnZVJldHVybiA9IDB4MDAwRDsKIGNvbnN0IFVDaGFyIGV0aGlv
cGljUHJlZmFjZUNvbG9uID0gMHgxMzY2OworY29uc3QgVUNoYXIgZXRoaW9waWNXb3Jkc3BhY2Ug
PSAweDEzNjE7Citjb25zdCBVQ2hhciBmaXNoZXllID0gMHgyNUM5OwogY29uc3QgVUNoYXIgaGVi
cmV3UHVuY3R1YXRpb25HZXJlc2ggPSAweDA1RjM7CiBjb25zdCBVQ2hhciBoZWJyZXdQdW5jdHVh
dGlvbkdlcnNoYXlpbSA9IDB4MDVGNDsKIGNvbnN0IFVDaGFyIGhvcml6b250YWxFbGxpcHNpcyA9
IDB4MjAyNjsKQEAgLTYzLDkgKzcwLDE2IEBAIGNvbnN0IFVDaGFyIHJpZ2h0U2luZ2xlUXVvdGF0
aW9uTWFyayA9IDAKIGNvbnN0IFVDaGFyIHJpZ2h0VG9MZWZ0RW1iZWQgPSAweDIwMkI7CiBjb25z
dCBVQ2hhciByaWdodFRvTGVmdE1hcmsgPSAweDIwMEY7CiBjb25zdCBVQ2hhciByaWdodFRvTGVm
dE92ZXJyaWRlID0gMHgyMDJFOworY29uc3QgVUNoYXIgc2VzYW1lRG90ID0gMHhGRTQ1OwogY29u
c3QgVUNoYXIgc29mdEh5cGhlbiA9IDB4MDBBRDsKIGNvbnN0IFVDaGFyIHNwYWNlID0gMHgwMDIw
OworY29uc3QgVUNoYXIgdGliZXRhbk1hcmtJbnRlcnN5bGxhYmljVHNoZWcgPSAweDBGMEI7Citj
b25zdCBVQ2hhciB0aWJldGFuTWFya0RlbGltaXRlclRzaGVnQnN0YXIgPSAweDBGMEM7Citjb25z
dCBVQ2hhcjMyIHVnYXJpdGljV29yZERpdmlkZXIgPSAweDEwMzlGOwogY29uc3QgVUNoYXIgd2hp
dGVCdWxsZXQgPSAweDI1RTY7Citjb25zdCBVQ2hhciB3aGl0ZUNpcmNsZSA9IDB4MjVDQjsKK2Nv
bnN0IFVDaGFyIHdoaXRlU2VzYW1lRG90ID0gMHhGRTQ2OworY29uc3QgVUNoYXIgd2hpdGVVcFBv
aW50aW5nVHJpYW5nbGUgPSAweDI1QjM7CiBjb25zdCBVQ2hhciB5ZW5TaWduID0gMHgwMEE1Owog
Y29uc3QgVUNoYXIgemVyb1dpZHRoSm9pbmVyID0gMHgyMDBEOwogY29uc3QgVUNoYXIgemVyb1dp
ZHRoTm9uSm9pbmVyID0gMHgyMDBDOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5OCw3ICs0OTgsOCBAQCB2b2lkIElubGluZUZsb3dCb3g6
OmNvbXB1dGVMb2dpY2FsQm94SGVpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAodXNlZEZvbnRz
ICYmIGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+bGluZUhlaWdodCgpLmlz
TmVnYXRpdmUoKSkgewotICAgICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoY3Vyci0+cmVuZGVy
ZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkucHJpbWFyeUZvbnQoKSk7CisgICAgICAg
ICAgICBjb25zdCBGb250JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExp
bmUpLT5mb250KCk7CisgICAgICAgICAgICB1c2VkRm9udHMtPmFwcGVuZChmb250LnByaW1hcnlG
b250KCkpOwogICAgICAgICAgICAgYm9vbCBiYXNlbGluZVNldCA9IGZhbHNlOwogICAgICAgICAg
ICAgYmFzZWxpbmUgPSAwOwogICAgICAgICAgICAgaW50IGJhc2VsaW5lVG9Cb3R0b20gPSAwOwpA
QCAtNTIwLDE0ICs1MjEsMzIgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJv
eEhlaQogICAgICAgICAgICAgbGluZUhlaWdodCA9IGN1cnItPmxpbmVIZWlnaHQoKTsKICAgICAg
ICAgICAgIGJhc2VsaW5lID0gY3Vyci0+YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZVR5cGUpOwog
ICAgICAgICAgICAgaWYgKGN1cnItPmlzVGV4dCgpIHx8IGlzSW5saW5lRmxvdykgeworICAgICAg
ICAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2Zp
cnN0TGluZSktPmZvbnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgYXNjZW50ID0gZm9udC5hc2Nl
bnQoYmFzZWxpbmVUeXBlKTsKKyAgICAgICAgICAgICAgICBpbnQgZGVzY2VudCA9IGZvbnQuZGVz
Y2VudChiYXNlbGluZVR5cGUpOworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5pc1RleHQoKSAm
JiBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc01hcmso
KSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZW1w
aGFzaXNNYXJrSGVpZ2h0ID0gZm9udC5wcmltYXJ5Rm9udCgpLT5lbXBoYXNpc01hcmtGb250RGF0
YShmb250LmZvbnREZXNjcmlwdGlvbigpKS0+aGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAg
IGludCBoYWxmTGVhZGluZyA9IChmb250LmxpbmVTcGFjaW5nKCkgLSBmb250LmhlaWdodCgpKSAv
IDI7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250QXNjZW50ID0gaGFsZkxlYWRpbmcgKyBh
c2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250RGVzY2VudCA9IGZvbnQubGluZVNw
YWNpbmcoKSAtIGZvbnRBc2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyLT5yZW5k
ZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4
dEVtcGhhc2lzUG9zaXRpb25PdmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc2NlbnQg
Kz0gZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUg
PSBtYXgoZm9udEFzY2VudCwgYXNjZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVI
ZWlnaHQgPSBiYXNlbGluZSArIGZvbnREZXNjZW50OworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzY2VudCArPSBlbXBoYXNpc01hcmtIZWln
aHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gbWF4KGxpbmVIZWlnaHQs
IGJhc2VsaW5lICsgZGVzY2VudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgICAgICAvLyBFeGFtaW5lIHRoZSBmb250IGJveCBmb3IgaW5s
aW5lIGZsb3dzIGFuZCB0ZXh0IGJveGVzIHRvIHNlZSBpZiBhbnkgcGFydCBvZiBpdCBpcyBhYm92
ZSB0aGUgYmFzZWxpbmUuCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHRvcCBvZiBvdXIgZm9u
dCBib3ggcmVsYXRpdmUgdG8gdGhlIHJvb3QgYm94IGJhc2VsaW5lIGlzIGFib3ZlIHRoZSByb290
IGJveCBiYXNlbGluZSwgdGhlbgogICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBjb250cmlidXRp
bmcgdG8gdGhlIG1heEFzY2VudCB2YWx1ZS4KLSAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50
ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuYXNjZW50KGJh
c2VsaW5lVHlwZSkgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOworICAgICAgICAgICAgICAgIGFm
ZmVjdHNBc2NlbnQgPSBhc2NlbnQgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIC8vIERlc2NlbnQgaXMgc2ltaWxhci4gIElmIGFueSBw
YXJ0IG9mIG91ciBmb250IGJveCBpcyBiZWxvdyB0aGUgcm9vdCBib3gncyBiYXNlbGluZSwgdGhl
bgogICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRyaWJ1dGUgdG8gdGhlIG1heERlc2NlbnQgdmFs
dWUuCi0gICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5z
dHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSkgKyBjdXJyLT5s
b2dpY2FsVG9wKCkgPiAwOworICAgICAgICAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZGVzY2Vu
dCArIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIC8vIFJlcGxhY2VkIGVsZW1lbnRzIGFsd2F5cyBhZmZlY3QgYm90aCB0aGUgYXNj
ZW50IGFuZCBkZXNjZW50LgogICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSB0cnVlOwpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDczODY3KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
Miw3ICszNTIsNyBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyCiAg
ICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwogfQogCi1zdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hh
ZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRl
eHRSdW4mIHRleHRSdW4sIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwgaW50IHRydW5j
YXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmlnaW4sCitzdGF0aWMgdm9pZCBwYWlu
dFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNN
YXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZz
ZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEludFBvaW50JiB0ZXh0T3JpZ2luLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgYm94UmVjdCwgY29u
c3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQsIGJvb2wgaG9yaXpvbnRhbCkKIHsK
ICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3IoKTsKQEAgLTM2OCwxMyAr
MzY4LDIzIEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWMKICAgICAg
ICAgZWxzZSBpZiAoIW9wYXF1ZSkKICAgICAgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihm
aWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIAotICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0g
ZW5kT2Zmc2V0KQotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZz
ZXQsICAwLCBlbmRPZmZzZXQpOwotICAgICAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNh
dGlvblBvaW50KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRS
dW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2lu
dCk7CisgICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRPZmZzZXQpIHsKKyAgICAgICAgICAg
IGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNvbnRleHQtPmRy
YXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29udGV4
dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3Jp
Z2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksIHN0YXJ0
T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGVu
ZE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCAgMCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZv
bnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgMCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAg
IH0gaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBvaW50KSB7CisgICAgICAgICAgICAgICAg
aWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRP
ZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBo
YXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNN
YXJrT2Zmc2V0KSwgIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzaGFkb3cpCkBAIC00ODgsMTIgKzQ5OCwxNCBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgLy8gMi4gTm93
IHBhaW50IHRoZSBmb3JlZ3JvdW5kLCBpbmNsdWRpbmcgdGV4dCBhbmQgZGVjb3JhdGlvbnMgbGlr
ZSB1bmRlcmxpbmUvb3ZlcmxpbmUgKGluIHF1aXJrcyBtb2RlIG9ubHkpLgogICAgIENvbG9yIHRl
eHRGaWxsQ29sb3I7CiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9yOworICAgIENvbG9yIGVtcGhh
c2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aCA9IHN0eWxlVG9Vc2UtPnRl
eHRTdHJva2VXaWR0aCgpOwogICAgIGNvbnN0IFNoYWRvd0RhdGEqIHRleHRTaGFkb3cgPSBwYWlu
dEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogc3R5bGVUb1VzZS0+dGV4dFNoYWRvdygpOwogCiAg
ICAgaWYgKHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCkgewogICAgICAgICB0ZXh0RmlsbENvbG9y
ID0gQ29sb3I6OmJsYWNrOwogICAgICAgICB0ZXh0U3Ryb2tlQ29sb3IgPSBDb2xvcjo6YmxhY2s7
CisgICAgICAgIGVtcGhhc2lzTWFya0NvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBzdHlsZVRvVXNlLT52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yKTsKICAgICAgICAgCkBAIC01MDYsNiAr
NTE4LDEyIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAg
ICAgLy8gTWFrZSB0aGUgdGV4dCBzdHJva2UgY29sb3IgbGVnaWJsZSBhZ2FpbnN0IGEgd2hpdGUg
YmFja2dyb3VuZAogICAgICAgICBpZiAoc3R5bGVUb1VzZS0+Zm9yY2VCYWNrZ3JvdW5kc1RvV2hp
dGUoKSkKICAgICAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcih0
ZXh0U3Ryb2tlQ29sb3IsIENvbG9yOjp3aGl0ZSk7CisKKyAgICAgICAgZW1waGFzaXNNYXJrQ29s
b3IgPSBzdHlsZVRvVXNlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIAorICAgICAgICAvLyBNYWtlIHRoZSB0ZXh0IHN0
cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5kCisgICAgICAgIGlm
IChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0ZSgpKQorICAgICAgICAgICAgZW1w
aGFzaXNNYXJrQ29sb3IgPSBjb3JyZWN0ZWRUZXh0Q29sb3IoZW1waGFzaXNNYXJrQ29sb3IsIENv
bG9yOjp3aGl0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHkgPSAo
cGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24pOwpAQCAtNTEzLDYgKzUzMSw3
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKIAogICAgIENvbG9y
IHNlbGVjdGlvbkZpbGxDb2xvciA9IHRleHRGaWxsQ29sb3I7CiAgICAgQ29sb3Igc2VsZWN0aW9u
U3Ryb2tlQ29sb3IgPSB0ZXh0U3Ryb2tlQ29sb3I7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFz
aXNNYXJrQ29sb3IgPSBlbXBoYXNpc01hcmtDb2xvcjsKICAgICBmbG9hdCBzZWxlY3Rpb25TdHJv
a2VXaWR0aCA9IHRleHRTdHJva2VXaWR0aDsKICAgICBjb25zdCBTaGFkb3dEYXRhKiBzZWxlY3Rp
b25TaGFkb3cgPSB0ZXh0U2hhZG93OwogICAgIGlmIChoYXZlU2VsZWN0aW9uKSB7CkBAIC01MjQs
NiArNTQzLDEzIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAg
ICAgICAgICAgIHNlbGVjdGlvbkZpbGxDb2xvciA9IGZvcmVncm91bmQ7CiAgICAgICAgIH0KIAor
ICAgICAgICBDb2xvciBlbXBoYXNpc01hcmtGb3JlZ3JvdW5kID0gcGFpbnRJbmZvLmZvcmNlQmxh
Y2tUZXh0ID8gQ29sb3I6OmJsYWNrIDogcmVuZGVyZXIoKS0+c2VsZWN0aW9uRW1waGFzaXNNYXJr
Q29sb3IoKTsKKyAgICAgICAgaWYgKGVtcGhhc2lzTWFya0ZvcmVncm91bmQuaXNWYWxpZCgpICYm
IGVtcGhhc2lzTWFya0ZvcmVncm91bmQgIT0gc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IpIHsK
KyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KQorICAgICAgICAgICAgICAg
IHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSA9IHRydWU7CisgICAgICAgICAgICBzZWxlY3Rp
b25FbXBoYXNpc01hcmtDb2xvciA9IGVtcGhhc2lzTWFya0ZvcmVncm91bmQ7CisgICAgICAgIH0K
KwogICAgICAgICBpZiAoUmVuZGVyU3R5bGUqIHBzZXVkb1N0eWxlID0gcmVuZGVyZXIoKS0+Z2V0
Q2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgewogICAgICAgICAgICAgY29uc3QgU2hhZG93
RGF0YSogc2hhZG93ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0ID8gMCA6IHBzZXVkb1N0eWxl
LT50ZXh0U2hhZG93KCk7CiAgICAgICAgICAgICBpZiAoc2hhZG93ICE9IHNlbGVjdGlvblNoYWRv
dykgewpAQCAtNTY3LDYgKzU5MywxNiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50
SW5mbyYgcGFpCiAgICAgICAgIGxlbmd0aCA9IG1fdHJ1bmNhdGlvbjsKICAgICB9CiAKKyAgICBp
bnQgZW1waGFzaXNNYXJrT2Zmc2V0ID0gMDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhh
c2lzTWFyayA9IHN0eWxlVG9Vc2UtPnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKTsKKyAgICBpZiAo
IWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEq
IGVtcGhhc2lzTWFya0ZvbnREYXRhID0gZm9udC5wcmltYXJ5Rm9udCgpLT5lbXBoYXNpc01hcmtG
b250RGF0YShmb250LmZvbnREZXNjcmlwdGlvbigpKTsKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2Ut
PnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKQorICAg
ICAgICAgICAgZW1waGFzaXNNYXJrT2Zmc2V0ID0gLWZvbnQuYXNjZW50KC8qIEZJWE1FOiBOZWVk
cyBiYXNlbGluZSB0eXBlICovKSAtIGVtcGhhc2lzTWFya0ZvbnREYXRhLT5kZXNjZW50KC8qIEZJ
WE1FOiBOZWVkcyBiYXNlbGluZSB0eXBlICovKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZW1waGFzaXNNYXJrT2Zmc2V0ID0gZm9udC5kZXNjZW50KC8qIEZJWE1FOiBOZWVkcyBiYXNlbGlu
ZSB0eXBlICovKSArIGVtcGhhc2lzTWFya0ZvbnREYXRhLT5hc2NlbnQoLyogRklYTUU6IE5lZWRz
IGJhc2VsaW5lIHR5cGUgKi8pOworICAgIH0KKwogICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRP
bmx5KSB7CiAgICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5n
ZSB0aGUgdGV4dCBkcmF3aW5nIG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2
ZSB0aGF0IG11dGF0ZWQgYXMgYSBzaWRlCiAgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVu
IHdlIGtub3cgd2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgpAQCAtNTc2LDkgKzYx
MiwxOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAg
IHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0ZXh0RmlsbENvbG9yLCB0ZXh0U3Ryb2tl
Q29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKICAgICAg
ICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3Rs
eS4KLSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRS
dW4sIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0
ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBwYWludFRl
eHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgMCwgbGVu
Z3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VX
aWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBw
YWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlUG9zLCBzUG9zLCBs
ZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+
IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNv
bnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9y
aXpvbnRhbCgpKTsKKworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBlbXBoYXNpc01hcmtDb2xv
ciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3Bh
Y2UoKSk7CisgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBl
UG9zIDw9IHNQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQt
dG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09m
ZnNldCwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3cs
IHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRl
eHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5n
dGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0ZXh0U3Ryb2tlV2lk
dGggPiAwKQogICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAtNTkwLDggKzYzNSwx
MSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAg
ICBjb250ZXh0LT5zYXZlKCk7CiAKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRl
eHQsIHNlbGVjdGlvbkZpbGxDb2xvciwgc2VsZWN0aW9uU3Ryb2tlQ29sb3IsIHNlbGVjdGlvblN0
cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGgg
PiAwLCBpc0hvcml6b250YWwoKSk7Ci0KKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29u
dGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4
dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+
IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2VsZWN0aW9u
RW1waGFzaXNNYXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHls
ZVRvVXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
Y29udGV4dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQs
IHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93
LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQog
ICAgICAgICBpZiAoc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwKQogICAgICAgICAgICAgY29udGV4
dC0+cmVzdG9yZSgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjI2LDYgKzE2MjYsMjcgQEAgQ29sb3IgUmVuZGVyT2JqZWN0Ojpz
ZWxlY3Rpb25Gb3JlZ3JvdW5kQwogICAgIHJldHVybiBjb2xvcjsKIH0KIAorQ29sb3IgUmVuZGVy
T2JqZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Cit7CisgICAgQ29sb3Ig
Y29sb3I7CisgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdW5zZWxlY3RhYmxlLCBvciB3ZSBhcmUg
b25seSBwYWludGluZyB0aGUgc2VsZWN0aW9uLAorICAgIC8vIGRvbid0IG92ZXJyaWRlIHRoZSBm
b3JlZ3JvdW5kIGNvbG9yIHdpdGggdGhlIHNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yLgorICAg
IGlmIChzdHlsZSgpLT51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX05PTkUKKyAgICAgICAgfHwgKGZy
YW1lKCktPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpICYgUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9u
bHkpKQorICAgICAgICByZXR1cm4gY29sb3I7CisKKyAgICBpZiAoUmVmUHRyPFJlbmRlclN0eWxl
PiBwc2V1ZG9TdHlsZSA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgeworICAg
ICAgICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9y
KENTU1Byb3BlcnR5Q29sb3IpOworICAgIH0gZWxzZQorICAgICAgICBjb2xvciA9IGZyYW1lKCkt
PnNlbGVjdGlvbigpLT5pc0ZvY3VzZWRBbmRBY3RpdmUoKSA/CisgICAgICAgICAgICAgICAgdGhl
bWUoKS0+YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgOgorICAgICAgICAgICAgICAg
IHRoZW1lKCktPmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisKKyAgICByZXR1
cm4gY29sb3I7Cit9CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogTm9kZSogUmVuZGVyT2Jq
ZWN0OjpkcmFnZ2FibGVOb2RlKGJvb2wgZGh0bWxPSywgYm9vbCB1YU9LLCBpbnQgeCwgaW50IHks
IGJvb2wmIGRodG1sV2lsbERyYWcpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNjc1LDYgKzY3NSw3IEBAIHB1YmxpYzoKICAgICAvLyBPYnRh
aW5zIHRoZSBzZWxlY3Rpb24gY29sb3JzIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBwYWludGlu
ZyBhIHNlbGVjdGlvbi4KICAgICBDb2xvciBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKICAgICBDb2xvciBzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICBDb2xv
ciBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0OwogCiAgICAgLy8gV2hldGhlciBv
ciBub3QgYSBnaXZlbiBibG9jayBuZWVkcyB0byBwYWludCBzZWxlY3Rpb24gZ2Fwcy4KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlz
aW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NDcsNiArODQ3LDQ3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVu
ZGVyU3R5bGU6Omh5cGhlblMKICAgICByZXR1cm4gaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKK2Nv
bnN0IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBj
b25zdAoreworICAgIHN3aXRjaCAodGV4dEVtcGhhc2lzTWFyaygpKSB7CisgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrTm9uZToKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIGNhc2UgVGV4
dEVtcGhhc2lzTWFya0N1c3RvbToKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1h
cmsoKTsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6IHsKKyAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcs
ICgmd2hpdGVCdWxsZXQsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9
PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmlu
ZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ2lyY2xlOiB7CisgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJpbmcsICgmYmxh
Y2tDaXJjbGUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG9wZW5DaXJjbGVTdHJpbmcsICgmd2hpdGVDaXJjbGUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRl
eHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkQ2lyY2xl
U3RyaW5nIDogb3BlbkNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNN
YXJrRG91YmxlQ2lyY2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcsICgmZmlzaGV5ZSwgMSkpOworICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywg
KCZidWxsc2V5ZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRl
eHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91
YmxlQ2lyY2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmds
ZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJp
YW5nbGVTdHJpbmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0
ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmls
bCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9w
ZW5UcmlhbmdsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1l
OiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNh
bWVTdHJpbmcsICgmc2VzYW1lRG90LCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBvcGVuU2VzYW1lU3RyaW5nLCAoJndoaXRlU2VzYW1lRG90LCAxKSk7Cisg
ICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxl
ZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7CisgICAgfQorICAgIGNh
c2UgVGV4dEVtcGhhc2lzTWFya0F1dG86CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIG51bGxBdG9tOworfQorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6Omlu
aXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTgsNiArNzE4LDcgQEAgcHVibGljOgog
ICAgIFRleHRFbXBoYXNpc01hcmsgdGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0OwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIGNvbnN0IHsgcmV0dXJuIHJh
cmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNDdXN0b21NYXJrOyB9CiAgICAgVGV4dEVtcGhh
c2lzUG9zaXRpb24gdGV4dEVtcGhhc2lzUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxUZXh0RW1waGFzaXNQb3NpdGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNp
c1Bvc2l0aW9uKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzTWFya1N0
cmluZygpIGNvbnN0OwogICAgIAogICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0g
cmVsYXRlZCBwcm9wZXJ0eSAoY3VycmVudGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBv
ciBwZXJzcGVjdGl2ZSkgCiAgICAgLy8gaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHRyYW5zZm9ybWlu
Zwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76345</attachid>
            <date>2010-12-12 18:56:45 -0800</date>
            <delta_ts>2010-12-13 14:25:10 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r16.diff</filename>
            <type>text/plain</type>
            <size>83508</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDI2IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgZHJh
d0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgbWFyaywgcG9pbnQsIGZy
b20sIHRvKTsKKyAgICBlbHNlCisgICAgICAgIGRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRl
eHQoY29udGV4dCwgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25z
dAogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkBAIC00MjAsNCArNDQwLDE4IEBAIGJvb2wgRm9u
dDo6aXNDSktJZGVvZ3JhcGgoVUNoYXIzMiBjKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKK3sKKyAgICBDaGFyQ2F0
ZWdvcnkgY2F0ZWdvcnkgPSBVbmljb2RlOjpjYXRlZ29yeShjKTsKKyAgICBpZiAoY2F0ZWdvcnkg
JiAoU2VwYXJhdG9yX1NwYWNlIHwgU2VwYXJhdG9yX0xpbmUgfCBTZXBhcmF0b3JfUGFyYWdyYXBo
IHwgT3RoZXJfTm90QXNzaWduZWQgfCBPdGhlcl9Db250cm9sIHwgT3RoZXJfRm9ybWF0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3JkLXNlcGFyYXRvciBj
aGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidzIERyYWZ0IDMgTm92
ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8fCBjID09IGFlZ2Vh
bldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRvckRvdAorICAgICAg
ICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFuTWFya0ludGVyc3ls
bGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNvbnN0OwogCiAgICAg
dm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxv
YXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OworICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEF0
b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRv
ID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxv
dyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChy
dW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZsb2F0IGZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdDsKQEAg
LTEzOSw3ICsxNDAsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogcHJp
bWFyeUZvbnQoKSBjb25zdDsKICAgICBjb25zdCBGb250RGF0YSogZm9udERhdGFBdCh1bnNpZ25l
ZCkgY29uc3Q7Ci0gICAgR2x5cGhEYXRhIGdseXBoRGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyLCBi
b29sIG1pcnJvciwgYm9vbCBmb3JjZVNtYWxsQ2FwcyA9IGZhbHNlKSBjb25zdDsKKyAgICBHbHlw
aERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9yLCBGb250RGF0
YVZhcmlhbnQgPSBBdXRvVmFyaWFudCkgY29uc3Q7CiAgICAgLy8gVXNlZCBmb3IgY29tcGxleCB0
ZXh0LCBhbmQgZG9lcyBub3QgdXRpbGl6ZSB0aGUgZ2x5cGggbWFwIGNhY2hlLgogICAgIGNvbnN0
IEZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3Ro
KSBjb25zdDsKIApAQCAtMTYzLDE3ICsxNjQsMjkgQEAgcHJpdmF0ZToKICAgICBpbnQgb2Zmc2V0
Rm9yUG9zaXRpb25Gb3JUZXh0VXNpbmdTVkdGb250KGNvbnN0IFRleHRSdW4mLCBmbG9hdCBwb3Np
dGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CiAjZW5kaWYKIAorICAgIGVu
dW0gRm9yVGV4dEVtcGhhc2lzT3JOb3QgeyBOb3RGb3JUZXh0RW1waGFzaXMsIEZvclRleHRFbXBo
YXNpcyB9OworCisgICAgLy8gUmV0dXJucyB0aGUgaW5pdGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4K
KyAgICBmbG9hdCBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1
biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVyJiwgRm9yVGV4dEVtcGhhc2lzT3JOb3Qg
PSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAgIHZvaWQgZHJhd1NpbXBsZVRleHQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKKyAgICB2b2lkIGRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4
dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgQXRvbWljU3RyaW5nJiBt
YXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAgdm9p
ZCBkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFNpbXBsZUZvbnREYXRhKiwgY29u
c3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29u
c3Q7Ci0gICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgR2x5
cGhCdWZmZXImLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OworICAg
IHZvaWQgZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEdseXBoQnVmZmVy
JiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgZHJhd0VtcGhhc2lzTWFya3Mo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRo
Rm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgR2x5cGhCdWZmZXIqLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDAp
IGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclNpbXBsZVRleHQoY29uc3QgVGV4
dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsK
ICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYs
IGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgaCwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAKKyAg
ICBib29sIGdldEVtcGhhc2lzTWFya0dseXBoRGF0YShjb25zdCBBdG9taWNTdHJpbmcmLCBHbHlw
aERhdGEmKSBjb25zdDsKKwogICAgIHN0YXRpYyBib29sIGNhblJldHVybkZhbGxiYWNrRm9udHNG
b3JDb21wbGV4VGV4dCgpOwogCiAgICAgQ29kZVBhdGggY29kZVBhdGgoY29uc3QgVGV4dFJ1biYp
IGNvbnN0OworCisgICAgLy8gUmV0dXJucyB0aGUgaW5pdGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4K
KyAgICBmbG9hdCBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mLCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYsIEZvclRleHRFbXBoYXNpc09yTm90
ID0gTm90Rm9yVGV4dEVtcGhhc2lzKSBjb25zdDsKICAgICB2b2lkIGRyYXdDb21wbGV4VGV4dChH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBm
cm9tLCBpbnQgdG8pIGNvbnN0OworICAgIHZvaWQgZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4
VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CiAgICAg
ZmxvYXQgZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9
IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29u
c3Q7CiAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0
UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsK
QEAgLTE5NSw2ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgRm9udFNlbGVjdG9yKiBmb250U2VsZWN0
b3IoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCB0cmVhdEFzU3BhY2UoVUNoYXIgYykgeyByZXR1
cm4gYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xuJyB8fCBjID09IG5vQnJlYWtTcGFj
ZTsgfQogICAgIHN0YXRpYyBib29sIHRyZWF0QXNaZXJvV2lkdGhTcGFjZShVQ2hhciBjKSB7IHJl
dHVybiBjIDwgMHgyMCB8fCAoYyA+PSAweDdGICYmIGMgPCAweEEwKSB8fCBjID09IHNvZnRIeXBo
ZW4gfHwgKGMgPj0gMHgyMDBjICYmIGMgPD0gMHgyMDBmKSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8
PSAweDIwMmUpIHx8IGMgPT0gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXI7IH0KKyAgICBzdGF0
aWMgYm9vbCBjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYyk7CiAKICAgICBzdGF0aWMg
aW5saW5lIFVDaGFyIG5vcm1hbGl6ZVNwYWNlcyhVQ2hhciBjaGFyYWN0ZXIpCiAgICAgewpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFzdFBhdGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkocmV2aXNpb24g
NzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCwyMCBAQCB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3IsIGJvb2wgZm9yY2VTbWFsbENhcHMpIGNvbnN0
CitHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBt
aXJyb3IsIEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBjb25zdAogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKLSAgICBib29sIHVzZVNtYWxsQ2Fwc0ZvbnQgPSBmb3JjZVNtYWxsQ2Fw
czsKLSAgICBpZiAobV9mb250RGVzY3JpcHRpb24uc21hbGxDYXBzKCkpIHsKLSAgICAgICAgVUNo
YXIzMiB1cHBlckMgPSB0b1VwcGVyKGMpOwotICAgICAgICBpZiAodXBwZXJDICE9IGMpIHsKLSAg
ICAgICAgICAgIGMgPSB1cHBlckM7Ci0gICAgICAgICAgICB1c2VTbWFsbENhcHNGb250ID0gdHJ1
ZTsKLSAgICAgICAgfQorICAgIGlmICh2YXJpYW50ID09IEF1dG9WYXJpYW50KSB7CisgICAgICAg
IGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFsbENhcHMoKSkgeworICAgICAgICAgICAgVUNoYXIz
MiB1cHBlckMgPSB0b1VwcGVyKGMpOworICAgICAgICAgICAgaWYgKHVwcGVyQyAhPSBjKSB7Cisg
ICAgICAgICAgICAgICAgYyA9IHVwcGVyQzsKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gU21h
bGxDYXBzVmFyaWFudDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHZhcmlh
bnQgPSBOb3JtYWxWYXJpYW50OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHZhcmlhbnQg
PSBOb3JtYWxWYXJpYW50OwogICAgIH0KIAogICAgIGlmIChtaXJyb3IpCkBAIC02OCw4ICs3MSw4
IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICB9CiAKICAg
ICBHbHlwaFBhZ2UqIHBhZ2U7Ci0gICAgaWYgKCF1c2VTbWFsbENhcHNGb250KSB7Ci0gICAgICAg
IC8vIEZhc3Rlc3QgbG9vcCwgZm9yIHRoZSBjb21tb24gY2FzZSAobm90IHNtYWxsIGNhcHMpLgor
ICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsKKyAgICAgICAgLy8gRmFzdGVzdCBs
b29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3JtYWwgdmFyaWFudCkuCiAgICAgICAgIHdoaWxl
ICh0cnVlKSB7CiAgICAgICAgICAgICBwYWdlID0gbm9kZS0+cGFnZSgpOwogICAgICAgICAgICAg
aWYgKHBhZ2UpIHsKQEAgLTExMCw3ICsxMTMsNyBAQCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKFVDCiAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZm9udERhdGEpIHsKICAg
ICAgICAgICAgICAgICAgICAgLy8gVGhlIHNtYWxsQ2Fwc0ZvbnREYXRhIGZ1bmN0aW9uIHNob3Vs
ZCBub3Qgbm9ybWFsbHkgcmV0dXJuIDAuCiAgICAgICAgICAgICAgICAgICAgIC8vIEJ1dCBpZiBp
dCBkb2VzLCB3ZSB3aWxsIGp1c3QgcmVuZGVyIHRoZSBjYXBpdGFsIGxldHRlciBiaWcuCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YSA9
IGRhdGEuZm9udERhdGEtPnNtYWxsQ2Fwc0ZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRh
ID0gZGF0YS5mb250RGF0YS0+dmFyaWFudEZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uLCB2YXJp
YW50KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzbWFsbENhcHNGb250RGF0YSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOwogCkBAIC0xNTcsMTQgKzE2MCwxNCBAQCBH
bHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgICAgIGNvZGVVbml0
c0xlbmd0aCA9IDI7CiAgICAgfQogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBjaGFyYWN0ZXJG
b250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRGb250RGF0YUZvckNoYXJhY3RlcnMoKnRoaXMsIGNv
ZGVVbml0cywgY29kZVVuaXRzTGVuZ3RoKTsKLSAgICBpZiAodXNlU21hbGxDYXBzRm9udCAmJiBj
aGFyYWN0ZXJGb250RGF0YSkKLSAgICAgICAgY2hhcmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJG
b250RGF0YS0+c21hbGxDYXBzRm9udERhdGEobV9mb250RGVzY3JpcHRpb24pOworICAgIGlmICh2
YXJpYW50ICE9IE5vcm1hbFZhcmlhbnQgJiYgY2hhcmFjdGVyRm9udERhdGEpCisgICAgICAgIGNo
YXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9udERhdGEtPnZhcmlhbnRGb250RGF0YShtX2Zv
bnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiAgICAgaWYgKGNoYXJhY3RlckZvbnREYXRhKSB7CiAg
ICAgICAgIC8vIEdvdCB0aGUgZmFsbGJhY2sgZ2x5cGggYW5kIGZvbnQuCiAgICAgICAgIEdseXBo
UGFnZSogZmFsbGJhY2tQYWdlID0gR2x5cGhQYWdlVHJlZU5vZGU6OmdldFJvb3RDaGlsZChjaGFy
YWN0ZXJGb250RGF0YSwgcGFnZU51bWJlciktPnBhZ2UoKTsKICAgICAgICAgR2x5cGhEYXRhIGRh
dGEgPSBmYWxsYmFja1BhZ2UgJiYgZmFsbGJhY2tQYWdlLT5mb250RGF0YUZvckNoYXJhY3Rlcihj
KSA/IGZhbGxiYWNrUGFnZS0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMpIDogY2hhcmFjdGVyRm9u
dERhdGEtPm1pc3NpbmdHbHlwaERhdGEoKTsKICAgICAgICAgLy8gQ2FjaGUgaXQgc28gd2UgZG9u
J3QgaGF2ZSB0byBkbyBzeXN0ZW0gZmFsbGJhY2sgYWdhaW4gbmV4dCB0aW1lLgotICAgICAgICBp
ZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICAgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFy
aWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAgICAgICAgLy8gbWlzc2luZ0dseXBoRGF0YSBy
ZXR1cm5zIGEgbnVsbCBjaGFyYWN0ZXIsIHdoaWNoIGlzIG5vdCBzdWl0YWJsZSBmb3IgR0RJIHRv
IGRpc3BsYXkuCiAgICAgICAgICAgICAvLyBBbHNvLCBzb21ldGltZXMgd2UgY2Fubm90IG1hcCBh
IGZvbnQgZm9yIHRoZSBjaGFyYWN0ZXIgb24gV0lOQ0UsIGJ1dCBHREkgY2FuIHN0aWxsCkBAIC0x
ODIsNyArMTg1LDcgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwog
ICAgIC8vIEV2ZW4gc3lzdGVtIGZhbGxiYWNrIGNhbiBmYWlsOyB1c2UgdGhlIG1pc3NpbmcgZ2x5
cGggaW4gdGhhdCBjYXNlLgogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlciB0byB1c2Ug
dGhlIG1pc3NpbmcgZ2x5cGggZnJvbSB0aGUgbGFzdCByZXNvcnQgZm9udCBpbnN0ZWFkLgogICAg
IEdseXBoRGF0YSBkYXRhID0gcHJpbWFyeUZvbnQoKS0+bWlzc2luZ0dseXBoRGF0YSgpOwotICAg
IGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlh
bnQpIHsKICNpZiBPUyhXSU5DRSkKICAgICAgICAgLy8gU2VlIGNvbW1lbnQgYWJvdXQgV0lOQ0Ug
R0RJIGhhbmRsaW5nIG5lYXIgc2V0R2x5cGhEYXRhRm9yQ2hhcmFjdGVyIGFib3ZlLgogICAgICAg
ICBwYWdlLT5zZXRHbHlwaERhdGFGb3JDaGFyYWN0ZXIoYywgYywgZGF0YS5mb250RGF0YSk7CkBA
IC0xOTQsNDIgKzE5Nyw5MiBAQCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KFVDCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd1NpbXBsZVRleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAorYm9vbCBGb250OjpnZXRFbXBoYXNp
c01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBHbHlwaERhdGEmIGdseXBo
RGF0YSkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhz
K2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KLSAgICBHbHlwaEJ1ZmZlciBnbHlw
aEJ1ZmZlcjsKKyAgICBpZiAobWFyay5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKLSAgICBXaWR0aEl0ZXJhdG9yIGl0KHRo
aXMsIHJ1bik7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGZvciBTVkcgZm9udHMuCisgICAgaWYgKHByaW1hcnlGb250KCktPmlzU1ZHRm9udCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAgIFVDaGFyMzIgY2hhcmFjdGVyID0gbWFy
a1swXTsKKworICAgIGlmIChVMTZfSVNfU1VSUk9HQVRFKGNoYXJhY3RlcikpIHsKKyAgICAgICAg
aWYgKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoY2hhcmFjdGVyKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBpZiAobWFyay5sZW5ndGgoKSA8IDIpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVUNoYXIgbG93ID0gbWFya1sxXTsKKyAgICAgICAgaWYg
KCFVMTZfSVNfVFJBSUwobG93KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBjaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBMRU1FTlRBUlkoY2hhcmFjdGVyLCBsb3cpOworICAg
IH0KKworICAgIGdseXBoRGF0YSA9IGdseXBoRGF0YUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIGZh
bHNlLCBFbXBoYXNpc01hcmtWYXJpYW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZmxvYXQg
Rm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1w
aGFzaXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0Cit7CisgICAgZmxvYXQgaW5pdGlhbEFk
dmFuY2U7CisKKyAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsc2UsIGZvclRleHRF
bXBoYXNpcyk7CiAgICAgaXQuYWR2YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVXaWR0aCA9
IGl0Lm1fcnVuV2lkdGhTb0ZhcjsKICAgICBpdC5hZHZhbmNlKHRvLCAmZ2x5cGhCdWZmZXIpOwot
ICAgIAotICAgIC8vIFdlIGNvdWxkbid0IGdlbmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4u
ICBHaXZlIHVwLgorCiAgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIAorICAgICAgICByZXR1cm4gMDsKKwogICAgIGZsb2F0IGFmdGVyV2lkdGggPSBp
dC5tX3J1bldpZHRoU29GYXI7CiAKICAgICBpZiAocnVuLnJ0bCgpKSB7CiAgICAgICAgIGZsb2F0
IGZpbmFsUm91bmRpbmdXaWR0aCA9IGl0Lm1fZmluYWxSb3VuZGluZ1dpZHRoOwogICAgICAgICBp
dC5hZHZhbmNlKHJ1bi5sZW5ndGgoKSk7Ci0gICAgICAgIHN0YXJ0WCArPSBmaW5hbFJvdW5kaW5n
V2lkdGggKyBpdC5tX3J1bldpZHRoU29GYXIgLSBhZnRlcldpZHRoOworICAgICAgICBpbml0aWFs
QWR2YW5jZSA9IGZpbmFsUm91bmRpbmdXaWR0aCArIGl0Lm1fcnVuV2lkdGhTb0ZhciAtIGFmdGVy
V2lkdGg7CiAgICAgfSBlbHNlCi0gICAgICAgIHN0YXJ0WCArPSBiZWZvcmVXaWR0aDsKKyAgICAg
ICAgaW5pdGlhbEFkdmFuY2UgPSBiZWZvcmVXaWR0aDsKIAotICAgIC8vIFN3YXAgdGhlIG9yZGVy
IG9mIHRoZSBnbHlwaHMgaWYgcmlnaHQtdG8tbGVmdC4KLSAgICBpZiAocnVuLnJ0bCgpKQorICAg
IGlmIChydW4ucnRsKCkpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGVuZCA9IGdseXBoQnVm
ZmVyLnNpemUoKSAtIDE7IGkgPCBnbHlwaEJ1ZmZlci5zaXplKCkgLyAyOyArK2ksIC0tZW5kKQog
ICAgICAgICAgICAgZ2x5cGhCdWZmZXIuc3dhcChpLCBlbmQpOworICAgIH0KKworICAgIHJldHVy
biBpbml0aWFsQWR2YW5jZTsKK30KKwordm9pZCBGb250OjpkcmF3U2ltcGxlVGV4dChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZm
ZXIgaG9sZHMgb3VyIGdseXBocythZHZhbmNlcytmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCisg
ICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisKKyAgICBmbG9hdCBzdGFydFggPSBwb2ludC54
KCkgKyBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQocnVuLCBmcm9tLCB0bywgZ2x5
cGhCdWZmZXIpOworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gQ2FsY3VsYXRlIHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgZ2x5cGhz
IHRvIGJlIGRpc3BsYXllZCBieSBhZGRpbmcKLSAgICAvLyBhbGwgdGhlIGFkdmFuY2VzIHVwIHRv
IHRoZSBmaXJzdCBnbHlwaC4KICAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2lu
dC55KCkpOwotICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBz
dGFydFBvaW50KTsKKyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0
YXJ0UG9pbnQpOwogfQogCi12b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgVGV4dFJ1
biYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAordm9pZCBGb250OjpkcmF3RW1waGFz
aXNNYXJrc0ZvclNpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0
UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9p
bnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZm
ZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNp
bXBsZVRleHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisK
KyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBk
cmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQb2ludChw
b2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7Cit9CisKK3ZvaWQgRm9udDo6
ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZm
ZXImIGdseXBoQnVmZmVyLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKIHsgICAKICAg
ICAvLyBEcmF3IGVhY2ggY29udGlndW91cyBydW4gb2YgZ2x5cGhzIHRoYXQgdXNlIHRoZSBzYW1l
IGZvbnQgZGF0YS4KICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGEgPSBnbHlwaEJ1
ZmZlci5mb250RGF0YUF0KDApOwpAQCAtMjU2LDYgKzMwOSwzNyBAQCB2b2lkIEZvbnQ6OmRyYXdH
bHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRlCiAgICAgZHJhd0dseXBocyhjb250ZXh0LCBmb250RGF0
YSwgZ2x5cGhCdWZmZXIsIGxhc3RGcm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQb2lu
dCk7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAgR2x5cGhEYXRh
IG1hcmtHbHlwaERhdGE7CisgICAgaWYgKCFnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywg
bWFya0dseXBoRGF0YSkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IFNpbXBsZUZvbnRE
YXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRhLmZvbnREYXRhOworICAgIEFTU0VSVCht
YXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnREYXRhKQorICAgICAgICByZXR1cm47CisK
KyAgICBHbHlwaCBtYXJrR2x5cGggPSBtYXJrR2x5cGhEYXRhLmdseXBoOworICAgIEdseXBoIHNw
YWNlR2x5cGggPSBtYXJrRm9udERhdGEtPnNwYWNlR2x5cGgoKTsKKworICAgIGZsb2F0IG1hcmtX
aWR0aCA9IG1hcmtGb250RGF0YS0+Ym91bmRzRm9yR2x5cGgobWFya0dseXBoKS53aWR0aCgpOwor
ICAgIEZsb2F0UmVjdCBsYXN0R2x5cGhCb3VuZHMgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KDAp
LT5ib3VuZHNGb3JHbHlwaChnbHlwaEJ1ZmZlci5nbHlwaEF0KDApKTsKKyAgICBGbG9hdFBvaW50
IHN0YXJ0UG9pbnQocG9pbnQueCgpICsgbGFzdEdseXBoQm91bmRzLngoKSArIGxhc3RHbHlwaEJv
dW5kcy53aWR0aCgpIC8gMiAtIG1hcmtXaWR0aCAvIDIsIHBvaW50LnkoKSk7CisKKyAgICBHbHlw
aEJ1ZmZlciBtYXJrQnVmZmVyOworICAgIGZvciAoaW50IGkgPSAwOyBpICsgMSA8IGdseXBoQnVm
ZmVyLnNpemUoKTsgKytpKSB7CisgICAgICAgIEZsb2F0UmVjdCBuZXh0R2x5cGhCb3VuZHMgPSBn
bHlwaEJ1ZmZlci5mb250RGF0YUF0KGkgKyAxKS0+Ym91bmRzRm9yR2x5cGgoZ2x5cGhCdWZmZXIu
Z2x5cGhBdChpICsgMSkpOworICAgICAgICBmbG9hdCBhZHZhbmNlID0gZ2x5cGhCdWZmZXIuYWR2
YW5jZUF0KGkpICsgbmV4dEdseXBoQm91bmRzLngoKSAtIGxhc3RHbHlwaEJvdW5kcy54KCkgKyAo
bmV4dEdseXBoQm91bmRzLndpZHRoKCkgLSBsYXN0R2x5cGhCb3VuZHMud2lkdGgoKSkgLyAyOwor
ICAgICAgICAvLyBmbG9hdCBhZHZhbmNlID0gKGdseXBoQnVmZmVyLmFkdmFuY2VBdChpKSArIGds
eXBoQnVmZmVyLmFkdmFuY2VBdChpICsgMSkpIC8gMjsKKyAgICAgICAgbWFya0J1ZmZlci5hZGQo
Z2x5cGhCdWZmZXIuZ2x5cGhBdChpKSA9PSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGkpLT5zcGFj
ZUdseXBoKCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9udERhdGEsIGFkdmFuY2Up
OworICAgICAgICBsYXN0R2x5cGhCb3VuZHMgPSBuZXh0R2x5cGhCb3VuZHM7CisgICAgfQorICAg
IG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoZ2x5cGhCdWZmZXIuc2l6ZSgpIC0g
MSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChnbHlwaEJ1ZmZlci5zaXplKCkgLSAxKS0+c3Bh
Y2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnREYXRhLCAwKTsKKwor
ICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBtYXJrQnVmZmVyLCBzdGFydFBvaW50KTsKK30K
KwogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsK
ICAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVy
Zmxvdyk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDYgKzM0NCwxNCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgRm9uCiB9CiAjZW5kaWYKIAordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBJbnRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9udC5kcmF3RW1waGFzaXNNYXJrcyh0aGlzLCBydW4s
IG1hcmssIHBvaW50LCBmcm9tLCB0byk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
QmlkaVRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgc2V0VGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKTsKIAogICAgICAg
ICB2b2lkIGRyYXdUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9p
bnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKKyAgICAgICAgdm9pZCBkcmF3RW1waGFz
aXNNYXJrcyhjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYgLCBjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmssIGNvbnN0IEludFBvaW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7CiAgICAg
ICAgIHZvaWQgZHJhd0JpZGlUZXh0KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYpOwogICAgICAgICB2b2lkIGRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZv
bnQmLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgaCwgY29uc3QgQ29sb3Im
IGJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZSwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuY3Bw
CShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9u
dERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIFNpbXBsZUZvbnREYXRh
OjpTaW1wbGVGb250RGF0YShjb25zdCBGb24KICAgICAsIG1faXNMb2FkaW5nKGlzTG9hZGluZykK
ICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQogICAgICwgbV9zbWFsbENhcHNG
b250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0YSgwKQogICAgICwgbV9icm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIHBsYXRmb3JtSW5pdCgpOwpAQCAtNzUsNiAr
NzYsNyBAQCBTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEoUGFzc093blB0CiAgICAgLCBt
X2lzTG9hZGluZyhmYWxzZSkKICAgICAsIG1faXNCcm9rZW5JZGVvZ3JhcGhGb250KGZhbHNlKQog
ICAgICwgbV9zbWFsbENhcHNGb250RGF0YSgwKQorICAgICwgbV9lbXBoYXNpc01hcmtGb250RGF0
YSgwKQogICAgICwgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSgwKQogewogICAgIFNWR0ZvbnRG
YWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gbV9zdmdGb250RGF0YS0+c3ZnRm9udEZh
Y2VFbGVtZW50KCk7CkBAIC0xOTAsMTEgKzE5MiwxNSBAQCBTaW1wbGVGb250RGF0YTo6flNpbXBs
ZUZvbnREYXRhKCkKICAgICAgICAgaWYgKG1fc21hbGxDYXBzRm9udERhdGEpCiAgICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9zbWFsbENhcHNG
b250RGF0YSk7CiAKKyAgICAgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAg
ICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9lbXBoYXNp
c01hcmtGb250RGF0YSk7CisKICAgICAgICAgaWYgKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEp
CiAgICAgICAgICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEo
bV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSk7CiAgICAgfQogCiAgICAgZGVsZXRlIG1fc21hbGxD
YXBzRm9udERhdGE7CisgICAgZGVsZXRlIG1fZW1waGFzaXNNYXJrRm9udERhdGE7CiAgICAgZGVs
ZXRlIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw2ICs2NSw3IEBAIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IGNsYXNzIFNWR0ZvbnREYXRhOwogCitlbnVtIEZvbnREYXRhVmFyaWFudCB7IEF1dG9WYXJpYW50
LCBOb3JtYWxWYXJpYW50LCBTbWFsbENhcHNWYXJpYW50LCBFbXBoYXNpc01hcmtWYXJpYW50IH07
CiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07
CiAKIGNsYXNzIFNpbXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKQEAgLTc2LDcgKzc3
LDI0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TaW1wbGVGb250RGF0YSgpOwogCiAgICAgY29u
c3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybURhdGE7IH0KLSAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0OworCisgICAgU2ltcGxlRm9u
dERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
ICAgIFNpbXBsZUZvbnREYXRhKiBlbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKKworICAgIFNpbXBsZUZvbnREYXRhKiB2YXJpYW50Rm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQp
IGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHZhcmlhbnQpIHsKKyAgICAgICAgY2FzZSBT
bWFsbENhcHNWYXJpYW50OgorICAgICAgICAgICAgcmV0dXJuIHNtYWxsQ2Fwc0ZvbnREYXRhKGRl
c2NyaXB0aW9uKTsKKyAgICAgICAgY2FzZSBFbXBoYXNpc01hcmtWYXJpYW50OgorICAgICAgICAg
ICAgcmV0dXJuIGVtcGhhc2lzTWFya0ZvbnREYXRhKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgY2Fz
ZSBBdXRvVmFyaWFudDoKKyAgICAgICAgY2FzZSBOb3JtYWxWYXJpYW50OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PFNpbXBsZUZvbnREYXRhKj4odGhpcyk7CisgICAgfQogCiAgICAg
U2ltcGxlRm9udERhdGEqIGJyb2tlbklkZW9ncmFwaEZvbnREYXRhKCkgY29uc3Q7CiAgICAgCkBA
IC0xODMsNiArMjAxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbW9uSW5pdCgpOwogCisg
ICAgU2ltcGxlRm9udERhdGEqIHNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdDsKKwogI2lmIChQTEFURk9STShXSU4pICYmICFPUyhX
SU5DRSkpIFwKICAgICB8fCAoT1MoV0lORE9XUykgJiYgUExBVEZPUk0oV1gpKQogICAgIHZvaWQg
aW5pdEdESUZvbnQoKTsKQEAgLTIyNyw2ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIEdseXBoRGF0
YSBtX21pc3NpbmdHbHlwaERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX3Nt
YWxsQ2Fwc0ZvbnREYXRhOworICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fZW1waGFzaXNN
YXJrRm9udERhdGE7CiAKICAgICBtdXRhYmxlIFNpbXBsZUZvbnREYXRhKiBtX2Jyb2tlbklkZW9n
cmFwaEZvbnREYXRhOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAvLyBBY2NvcmRpbmcgdG8gaHR0cDovL3d3dy51bmljb2RlLm9yZy9Q
dWJsaWMvVU5JREFUQS9VQ0QuaHRtbCNDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzX1ZhbHVlcwog
c3RhdGljIGNvbnN0IHVpbnQ4X3QgaGlyYWdhbmFLYXRha2FuYVZvaWNpbmdNYXJrc0NvbWJpbmlu
Z0NsYXNzID0gODsKIAotV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMpCitXaWR0aEl0ZXJhdG9y
OjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcywgYm9vbCBmb3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoZm9udCkK
ICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKQEAgLTUzLDYgKzUz
LDcgQEAgV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBGb250KgogICAgICwgbV9t
aW5HbHlwaEJvdW5kaW5nQm94WShudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKQogICAgICwg
bV9maXJzdEdseXBoT3ZlcmZsb3coMCkKICAgICAsIG1fbGFzdEdseXBoT3ZlcmZsb3coMCkKKyAg
ICAsIG1fZm9yVGV4dEVtcGhhc2lzKGZvclRleHRFbXBoYXNpcykKIHsKICAgICAvLyBJZiB0aGUg
cGFkZGluZyBpcyBub24temVybywgY291bnQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gdGhlIHJ1
bgogICAgIC8vIGFuZCBkaXZpZGUgdGhhdCBieSB0aGUgcGFkZGluZyBmb3IgcGVyIHNwYWNlIGFk
ZGl0aW9uLgpAQCAtMTk5LDYgKzIwMCw5IEBAIHZvaWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZShp
bnQgb2Zmc2V0LCAKICAgICAgICAgICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IG1heDxm
bG9hdD4oMCwgLWJvdW5kcy54KCkpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fZm9yVGV4
dEVtcGhhc2lzICYmICFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGMpKQorICAgICAgICAg
ICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgIC8vIEFkdmFuY2Ug
cGFzdCB0aGUgY2hhcmFjdGVyIHdlIGp1c3QgZGVhbHQgd2l0aC4KICAgICAgICAgY3AgKz0gY2x1
c3Rlckxlbmd0aDsKICAgICAgICAgY3VycmVudENoYXJhY3RlciArPSBjbHVzdGVyTGVuZ3RoOwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHJldmlzaW9u
IDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBUZXh0UnVuOwogCiBzdHJ1Y3QgV2lkdGhJdGVyYXRvciB7Ci0gICAgV2lkdGhJdGVyYXRvcihj
b25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2Up
OworICAgIFdpZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRG
b3JHbHlwaEJvdW5kcyA9IGZhbHNlLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAog
ICAgIHZvaWQgYWR2YW5jZShpbnQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwogICAgIGJvb2wgYWR2
YW5jZU9uZUNoYXJhY3RlcihmbG9hdCYgd2lkdGgsIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtNjMs
NiArNjMsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluR2x5cGhCb3VuZGluZ0JveFk7CiAg
ICAgZmxvYXQgbV9maXJzdEdseXBoT3ZlcmZsb3c7CiAgICAgZmxvYXQgbV9sYXN0R2x5cGhPdmVy
ZmxvdzsKKyAgICBib29sIG1fZm9yVGV4dEVtcGhhc2lzOwogfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2lu
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkZvbnRGYWxsYmFja0xpc3Qu
aCIKICNpbmNsdWRlICJHbHlwaEJ1ZmZlci5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnRE
YXRhLmgiCiAjaW5jbHVkZSAiU2tpYUZvbnRXaW4uaCIKQEAgLTUwNSw2ICs1MDYsMTEgQEAgdm9p
ZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGNvbnRleHQtPmNhbnZh
cygpLT5lbmRQbGF0Zm9ybVBhaW50KCk7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFy
a3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRl
eHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBG
bG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBmbG9hdCBGb250OjpmbG9hdFdpZHRo
Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8sIEdseXBoT3ZlcmZsb3cqIC8qIGdseXBoT3Zl
cmZsb3cgKi8pIGNvbnN0CiB7CiAgICAgVW5pc2NyaWJlSGVscGVyVGV4dFJ1biBzdGF0ZShydW4s
ICp0aGlzKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExp
bnV4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRMaW51eC5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODEsNyArMzgx
LDcgQEAgYm9vbCBUZXh0UnVuV2Fsa2VyOjpuZXh0U2NyaXB0UnVuKCkKICAgICAgICAgLy8gKGFu
ZCB0aGUgZ2x5cGhzIGluIGVhY2ggQSwgQyBhbmQgVCBzZWN0aW9uIGFyZSBiYWNrd2FyZHMgdG9v
KQogICAgICAgICBpZiAoIWhiX3V0ZjE2X3NjcmlwdF9ydW5fcHJldigmbV9udW1Db2RlUG9pbnRz
LCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNoYXJhY3RlcnMoKSwgbV9ydW4ubGVuZ3RoKCksICZtX2lu
ZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
bV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0u
c3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAg
IG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVt
LnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCFoYl91dGYxNl9zY3JpcHRfcnVuX25leHQoJm1fbnVtQ29kZVBvaW50cywg
Jm1faXRlbS5pdGVtLCBtX3J1bi5jaGFyYWN0ZXJzKCksIG1fcnVuLmxlbmd0aCgpLCAmbV9pbmRl
eE9mTmV4dFNjcmlwdFJ1bikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zOTMsMTAg
KzM5MywxMCBAQCBib29sIFRleHRSdW5XYWxrZXI6Om5leHRTY3JpcHRSdW4oKQogICAgICAgICAv
LyBpbiB0aGUgaGFyZmJ1enogZGF0YSBzdHJ1Y3R1cmVzIHRvIGUuZy4gcGljayB0aGUgY29ycmVj
dCBzY3JpcHQncyBzaGFwZXIuCiAgICAgICAgIC8vIFNvIHdlIGFsbG93IHRoYXQgdG8gcnVuIGZp
cnN0LCB0aGVuIGRvIGEgc2Vjb25kIHBhc3Mgb3ZlciB0aGUgcmFuZ2UgaXQKICAgICAgICAgLy8g
Zm91bmQgYW5kIHRha2UgdGhlIGxhcmdlc3Qgc3VicmVnaW9uIHRoYXQgc3RheXMgd2l0aGluIGEg
c2luZ2xlIGZvbnQuCi0gICAgICAgIG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERh
dGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSwgZmFs
c2UpLmZvbnREYXRhOworICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhE
YXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UpLmZv
bnREYXRhOwogICAgICAgICB1bnNpZ25lZCBlbmRPZlJ1bjsKICAgICAgICAgZm9yIChlbmRPZlJ1
biA9IDE7IGVuZE9mUnVuIDwgbV9pdGVtLml0ZW0ubGVuZ3RoOyArK2VuZE9mUnVuKSB7Ci0gICAg
ICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogbmV4dEZvbnREYXRhID0gbV9mb250LT5nbHlw
aERhdGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3MgKyBlbmRPZlJ1
bl0sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAgICAgICBjb25zdCBTaW1wbGVGb250
RGF0YSogbmV4dEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVt
LnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3MgKyBlbmRPZlJ1bl0sIGZhbHNlKS5mb250RGF0YTsKICAg
ICAgICAgICAgIGlmIChuZXh0Rm9udERhdGEgIT0gbV9jdXJyZW50Rm9udERhdGEpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTQyMiw3ICs0MjIsNyBAQCBmbG9hdCBUZXh0
UnVuV2Fsa2VyOjp3aWR0aE9mRnVsbFJ1bigpCiAKIHZvaWQgVGV4dFJ1bldhbGtlcjo6c2V0dXBG
b250Rm9yU2NyaXB0UnVuKCkKIHsKLSAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEgPSBtX2Zv
bnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10s
IGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgY29uc3QgRm9udERhdGEqIGZvbnREYXRhID0g
bV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5w
b3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZv
cm1EYXRhID0gZm9udERhdGEtPmZvbnREYXRhRm9yQ2hhcmFjdGVyKCcgJyktPnBsYXRmb3JtRGF0
YSgpOwogICAgIG1faXRlbS5mYWNlID0gcGxhdGZvcm1EYXRhLmhhcmZidXp6RmFjZSgpOwogICAg
IHZvaWQqIG9wYXF1ZVBsYXRmb3JtRGF0YSA9IGNvbnN0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YSo+
KCZwbGF0Zm9ybURhdGEpOwpAQCAtNjkwLDYgKzY5MCwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21w
bGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgfQogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNp
c01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25z
dCBUZXh0UnVuJiAvKiBydW4gKi8sIGNvbnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29u
c3QgRmxvYXRQb2ludCYgLyogcG9pbnQgKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8p
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogZmxvYXQgRm9udDo6ZmxvYXRX
aWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiAvKiBmYWxsYmFja0ZvbnRzICovLCBHbHlwaE92ZXJmbG93KiAvKiBnbHlw
aE92ZXJmbG93ICovKSBjb25zdAogewogICAgIFRleHRSdW5XYWxrZXIgd2Fsa2VyKHJ1biwgMCwg
dGhpcyk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZv
bnREYXRhQ2hyb21pdW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDcz
ODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0
YUNocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDIyICsxMTIsMzIgQEAgdm9p
ZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERh
dGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgTE9HRk9O
VCB3aW5Gb250OworICAgIEdldE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2Yo
TE9HRk9OVCksICZ3aW5Gb250KTsKKyAgICBmbG9hdCBzY2FsZWRTaXplID0gc2NhbGVGYWN0b3Ig
KiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCk7CisgICAgd2luRm9udC5sZkhlaWdodCA9
IC1scm91bmRmKHNjYWxlZFNpemUpOworICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGly
ZWN0KCZ3aW5Gb250KTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9y
bURhdGEoaGZvbnQsIHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQor
CiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9z
bWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBMT0dGT05UIHdpbkZvbnQ7Ci0gICAgICAgIEdl
dE9iamVjdChtX3BsYXRmb3JtRGF0YS5oZm9udCgpLCBzaXplb2YoTE9HRk9OVCksICZ3aW5Gb250
KTsKLSAgICAgICAgZmxvYXQgc21hbGxDYXBzU2l6ZSA9IDAuNzBmICogZm9udERlc2NyaXB0aW9u
LmNvbXB1dGVkU2l6ZSgpOwotICAgICAgICAvLyBVbmxpa2UgV2ViS2l0IHRydW5rLCB3ZSBkb24n
dCBtdWx0aXBseSB0aGUgc2l6ZSBieSAzMi4gIFRoYXQgc2VlbXMKLSAgICAgICAgLy8gdG8gYmUg
c29tZSBraW5kIG9mIGFydGlmYWN0IG9mIHRoZWlyIENHIGJhY2tlbmQsIG9yIHNvbWV0aGluZy4K
LSAgICAgICAgd2luRm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc1NpemUpOwotICAg
ICAgICBIRk9OVCBoZm9udCA9IENyZWF0ZUZvbnRJbmRpcmVjdCgmd2luRm9udCk7Ci0gICAgICAg
IG1fc21hbGxDYXBzRm9udERhdGEgPQotICAgICAgICAgICAgbmV3IFNpbXBsZUZvbnREYXRhKEZv
bnRQbGF0Zm9ybURhdGEoaGZvbnQsIHNtYWxsQ2Fwc1NpemUpLCBpc0N1c3RvbUZvbnQoKSwgZmFs
c2UpOwotICAgIH0KKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21h
bGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKwog
ICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0
YSkKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9
CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgLy8gVGhpcyB1c2VkIHRvIGJlIGlt
cGxlbWVudGVkIHdpdGggSU1MYW5nRm9udExpbmsyLCBidXQgc2luY2UgdGhhdCBjb2RlIGhhcwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxp
bnV4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1NpbXBsZUZvbnREYXRhTGludXguY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBTbWFsbGNh
cHMgdmVyc2lvbnMgb2YgZm9udHMgYXJlIDcwJSB0aGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGZvbnQu
CiBzdGF0aWMgY29uc3QgZmxvYXQgc21hbGxDYXBzRnJhY3Rpb24gPSAwLjdmOworc3RhdGljIGNv
bnN0IGZsb2F0IGVtcGhhc2lzTWFya0ZyYWN0aW9uID0gLjU7CiAvLyBUaGlzIGlzIHRoZSBsYXJn
ZXN0IFZETVggdGFibGUgd2hpY2ggd2UnbGwgdHJ5IHRvIGxvYWQgYW5kIHBhcnNlLgogc3RhdGlj
IGNvbnN0IHNpemVfdCBtYXhWRE1YVGFibGVTaXplID0gMTAyNCAqIDEwMjQ7ICAvLyAxIE1CCiAK
QEAgLTE0MSwxNiArMTQyLDI4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJv
eSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFj
dG9yKSBjb25zdAoreworICAgIGNvbnN0IGZsb2F0IHNjYWxlZFNpemUgPSBscm91bmRmKGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gbmV3
IFNpbXBsZUZvbnREYXRhKEZvbnRQbGF0Zm9ybURhdGEobV9wbGF0Zm9ybURhdGEsIHNjYWxlZFNp
emUpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAg
ICAgICBjb25zdCBmbG9hdCBzbWFsbENhcHNTaXplID0gbHJvdW5kZihmb250RGVzY3JpcHRpb24u
Y29tcHV0ZWRTaXplKCkgKiBzbWFsbENhcHNGcmFjdGlvbik7Ci0gICAgICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3Jt
RGF0YSwgc21hbGxDYXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAg
IGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgc21hbGxDYXBzRnJhY3Rpb24pOwogCiAg
ICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1w
bGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRh
KQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERl
c2NyaXB0aW9uLCBlbXBoYXNpc01hcmtGcmFjdGlvbik7CisKKyAgICByZXR1cm4gbV9lbXBoYXNp
c01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0
ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIFNr
UGFpbnQgcGFpbnQ7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9Gb250RWZs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9Gb250RWZs
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9G
b250RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTEgQEAgdm9pZCBGb250Ojpk
cmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
K3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRl
eHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWlj
U3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8q
IGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCiBib29sIEZvbnQ6OmNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpCiB7
CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVl
dHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxl
Rm9udERhdGFGcmVlVHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDE4ICs3OSwzMSBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQogCitTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICByZXR1
cm4gbmV3IFNpbXBsZUZvbnREYXRhKAorICAgICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX3Nj
YWxlZF9mb250X2dldF9mb250X2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKSwKKyAg
ICAgICAgc2NhbGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksIG1fcGxh
dGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1
ZSgpKSwKKyAgICAgICAgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKK30KKwogU2ltcGxlRm9udERh
dGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICAvLyBGSVhNRTogSSB0aGluayB3ZSB3
YW50IHRvIGFzayBGb250Q29uZmlnIGZvciB0aGUgcmlnaHQgZm9udCBhZ2Fpbi4KICAgICBpZiAo
IW1fc21hbGxDYXBzRm9udERhdGEpCi0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcg
U2ltcGxlRm9udERhdGEoCi0gICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhKGNhaXJvX3NjYWxl
ZF9mb250X2dldF9mb250X2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKSwKLSAgICAg
ICAgICAgIDAuNzBmICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpLCBtX3BsYXRmb3Jt
RGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSks
Ci0gICAgICAgICAgICBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworICAgICAgICBtX3NtYWxsQ2Fw
c0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CiAKICAgICBy
ZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZv
bnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisg
ICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3Jp
cHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBi
b29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgRlRfRmFjZSBmYWNlID0gY2Fpcm9fZnRf
c2NhbGVkX2ZvbnRfbG9ja19mYWNlKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSk7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkocmV2aXNpb24gNzM4
NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiQ29udGV4dFNoYWRvdy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIK
ICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGdkay9nZGsuaD4KQEAgLTMxOSw2ICszMjAs
MTEgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGNhaXJv
X3Jlc3RvcmUoY3IpOwogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxl
eFRleHQoR3JhcGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0UnVuJiAvKiBy
dW4gKi8sIGNvbnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxvYXRQb2ludCYg
LyogcG9pbnQgKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwogLy8gV2Ugc2hvdWxkIGNyZWF0ZSB0aGUgbGF5b3V0IHdp
dGggb3VyIGFjdHVhbCBjb250ZXh0IGJ1dCB3ZSBjYW4ndCBhY2Nlc3MgaXQgZnJvbSBoZXJlLgog
c3RhdGljIFBhbmdvTGF5b3V0KiBnZXREZWZhdWx0UGFuZ29MYXlvdXQoY29uc3QgVGV4dFJ1biYg
cnVuKQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250SGFpa3Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhh
aWt1LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0ZvbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNvbnN0
IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQgKi8s
IGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3Uu
Y3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
U2ltcGxlRm9udERhdGFIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE3ICs2NiwzMCBA
QCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQogCitTaW1wbGVG
b250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBG
b250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwor
ICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZShzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFNpemUoKSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxhdGZvcm1EYXRhKGRl
c2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERh
dGEoZm9udFBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKK30KKwogU2ltcGxl
Rm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxDYXBz
Rm9udERhdGEpIHsKLSAgICAgICAgRm9udERlc2NyaXB0aW9uIGRlc2MgPSBGb250RGVzY3JpcHRp
b24oZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKDAuNzBm
ICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKLSAgICAgICAgRm9udFBsYXRmb3Jt
RGF0YSBmb250UGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOwotICAg
ICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKGZvbnRQbGF0Zm9y
bURhdGEsIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENh
cHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRh
KGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7
CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAg
aWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnRE
YXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4g
bV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFp
bnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBXZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gbG9hZCBu
b24tQVNDSUkgZW5jb2Rpbmcgc2l0ZXMKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzM4
NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYsMTEgQEAgc3RhdGljIGlubGluZSBD
R0Zsb2F0IGNlaWxDR0Zsb2F0KENHRmxvYQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDR0Zsb2F0
PihjZWlsKGYpKTsKIH0KIAotQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dENvbnRy
b2xsZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBib29sIG1heVVzZU5h
dHVyYWxXcml0aW5nRGlyZWN0aW9uLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMpCitDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJvbGxl
cihjb25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIGJvb2wgbWF5VXNlTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cywgYm9vbCBmb3JUZXh0RW1waGFzaXMpCiAgICAgOiBtX2ZvbnQoKmZvbnQpCiAgICAg
LCBtX3J1bihydW4pCiAgICAgLCBtX21heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKG1heVVz
ZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uKQorICAgICwgbV9mb3JUZXh0RW1waGFzaXMoZm9yVGV4
dEVtcGhhc2lzKQogICAgICwgbV9jdXJyZW50Q2hhcmFjdGVyKDApCiAgICAgLCBtX2VuZChydW4u
bGVuZ3RoKCkpCiAgICAgLCBtX3RvdGFsV2lkdGgoMCkKQEAgLTI0MCw3ICsyNDEsNyBAQCB2b2lk
IENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsCiAgICAgICAgICAgICAgICAgbmV4
dEdseXBoRGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoVTE2X0dFVF9TVVBQTEVN
RU5UQVJZKGN1cnJbLTFdLCBjdXJyWzBdKSwgZmFsc2UpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9y
Q2hhcmFjdGVyKCpjdXJyLCBmYWxzZSwgZm9yY2VTbWFsbENhcHMpOworICAgICAgICAgICAgbmV4
dEdseXBoRGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBm
b3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCk7CiAKICAgICAg
ICAgaWYgKCFpc1N1cnJvZ2F0ZSAmJiBtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAg
ICAgbmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIo
YykpICE9IGM7CkBAIC01MzYsNiArNTM3LDkgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6
OmFkanVzdEdseXBocwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgd2lkdGhT
aW5jZUxhc3RSb3VuZGluZyArPSBhZHZhbmNlLndpZHRoOwogCisgICAgICAgICAgICBpZiAobV9m
b3JUZXh0RW1waGFzaXMgJiYgKCFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGNoKSB8fCAo
VV9HRVRfR0NfTUFTSyhjaCkgJiBVX0dDX01fTUFTSykpKQorICAgICAgICAgICAgICAgIGdseXBo
ID0gZm9udERhdGEtPnNwYWNlR2x5cGgoKTsKKwogICAgICAgICAgICAgYWR2YW5jZS5oZWlnaHQg
Kj0gLTE7CiAgICAgICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBwZW5kKGFkdmFuY2UpOwog
ICAgICAgICAgICAgbV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgpOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVy
LmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xh
c3MgVGV4dFJ1bjsKIC8vIE9TIFZlcnNpb25zID49IDEwLjYsIEFUU1VJIGlzIHVzZWQgb3RoZXJ3
aXNlLgogY2xhc3MgQ29tcGxleFRleHRDb250cm9sbGVyIHsKIHB1YmxpYzoKLSAgICBDb21wbGV4
VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBib29sIG1heVVzZU5h
dHVyYWxXcml0aW5nRGlyZWN0aW9uID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cyA9IDApOworICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcihjb25z
dCBGb250KiwgY29uc3QgVGV4dFJ1biYsIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rp
b24gPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
ID0gMCwgYm9vbCBmb3JUZXh0RW1waGFzaXMgPSBmYWxzZSk7CiAKICAgICAvLyBBZHZhbmNlIGFu
ZCBlbWl0IGdseXBocyB1cCB0byB0aGUgc3BlY2lmaWVkIGNoYXJhY3Rlci4KICAgICB2b2lkIGFk
dmFuY2UodW5zaWduZWQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtMTU2LDYgKzE1Niw3IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgRm9udCYgbV9mb250OwogICAgIGNvbnN0IFRleHRSdW4mIG1f
cnVuOwogICAgIGJvb2wgbV9tYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICBib29s
IG1fZm9yVGV4dEVtcGhhc2lzOwogCiAgICAgVmVjdG9yPFVDaGFyLCAyNTY+IG1fc21hbGxDYXBz
QnVmZmVyOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxl
eFRleHRNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUsMzQgKzU1LDU1IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxl
eFQKICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0aCks
IHBvaW50LnkoKSwgcm91bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwgaCk7
CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250Ojpn
ZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50
IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXNP
ck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIg
aG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgot
ICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlOwog
Ci0gICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpOwotICAgIENvbXBsZXhUZXh0Q29udHJvbGxl
ciBjb250cm9sbGVyKHRoaXMsIHJ1bik7CisgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRy
b2xsZXIodGhpcywgcnVuLCBmYWxzZSwgMCwgZm9yVGV4dEVtcGhhc2lzKTsKICAgICBjb250cm9s
bGVyLmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1
bldpZHRoU29GYXIoKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7
Ci0gICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1
bi4gIEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9
IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewotICAg
ICAgICBzdGFydFggKz0gY29udHJvbGxlci50b3RhbFdpZHRoKCkgKyBjb250cm9sbGVyLmZpbmFs
Um91bmRpbmdXaWR0aCgpIC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBj
b250cm9sbGVyLnRvdGFsV2lkdGgoKSArIGNvbnRyb2xsZXIuZmluYWxSb3VuZGluZ1dpZHRoKCkg
LSBhZnRlcldpZHRoOwogICAgICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZmZXIu
c2l6ZSgpIC0gMTsgaSA8IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAgICAg
ICAgICAgICBnbHlwaEJ1ZmZlci5zd2FwKGksIGVuZCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHN0
YXJ0WCArPSBiZWZvcmVXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBiZWZvcmVXaWR0
aDsKKworICAgIHJldHVybiBpbml0aWFsQWR2YW5jZTsKK30KKwordm9pZCBGb250OjpkcmF3Q29t
cGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8v
IFRoaXMgZ2x5cGggYnVmZmVyIGhvbGRzIG91ciBnbHlwaHMgKyBhZHZhbmNlcyArIGZvbnQgZGF0
YSBmb3IgZWFjaCBnbHlwaC4KKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZs
b2F0IHN0YXJ0WCA9IHBvaW50LngoKSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRl
eHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIpOworCisgICAgLy8gV2UgY291bGRuJ3QgZ2Vu
ZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisgICAgaWYgKGdseXBoQnVm
ZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRHJhdyB0aGUgZ2x5cGgg
YnVmZmVyIG5vdyBhdCB0aGUgc3RhcnRpbmcgcG9pbnQgcmV0dXJuZWQgaW4gc3RhcnRYLgogICAg
IEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFydFgsIHBvaW50LnkoKSk7Ci0gICAgZHJhd0dseXBo
QnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOworICAgIGRyYXdH
bHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgc3RhcnRQb2ludCk7Cit9CisKK3ZvaWQg
Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBHbHlw
aEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZSA9IGdldEdseXBo
c0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZv
clRleHRFbXBoYXNpcyk7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwg
bWFyaywgRmxvYXRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7
CiB9CiAKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVu
JiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5
cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA3Mzg2
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDExIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSAwOwogICAg
IH0KIAorICAgIGlmIChtX2VtcGhhc2lzTWFya0ZvbnREYXRhICYmICFpc0N1c3RvbUZvbnQoKSkg
eworICAgICAgICBmb250Q2FjaGUoKS0+cmVsZWFzZUZvbnREYXRhKG1fZW1waGFzaXNNYXJrRm9u
dERhdGEpOworICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gMDsKKyAgICB9CisKICNp
ZmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIGlmIChtX3N0eWxlR3JvdXApCiAgICAgICAgIHdr
UmVsZWFzZVN0eWxlR3JvdXAobV9zdHlsZUdyb3VwKTsKQEAgLTM3Myw0MyArMzc4LDU4IEBAIHZv
aWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiAjZW5kaWYKIH0KIAotU2ltcGxl
Rm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVG
b250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNG
b250RGF0YSkgewotICAgICAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZv
bnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAg
ICAgICAgc21hbGxDYXBzRm9udERhdGEubV9zaXplID0gc21hbGxDYXBzRm9udERhdGEubV9zaXpl
ICogc21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAgbV9zbWFsbENhcHNG
b250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShzbWFsbENhcHNGb250RGF0YSwgdHJ1ZSwgZmFs
c2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwotICAgICAgICAgICAgZmxvYXQgc2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKSAq
IHNtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllcjsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEgc21hbGxDYXBzRm9udChbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNvbnZl
cnRGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKSB0b1NpemU6c2l6ZV0sIHNpemUpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0aW9u
IChzY3JlZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJlbnQg
c2l6ZS4KLSAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gZml4IHVwIHRoZSBmb250IHRoYXQgd2Un
cmUgaGFuZGVkIGJhY2suCi0gICAgICAgICAgICBzbWFsbENhcHNGb250LnNldEZvbnQoZm9udERl
c2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCkgPyBbc21hbGxDYXBzRm9udC5mb250KCkgcHJpbnRl
ckZvbnRdIDogW3NtYWxsQ2Fwc0ZvbnQuZm9udCgpIHNjcmVlbkZvbnRdKTsKLQotICAgICAgICAg
ICAgaWYgKHNtYWxsQ2Fwc0ZvbnQuZm9udCgpKSB7Ci0gICAgICAgICAgICAgICAgTlNGb250TWFu
YWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07Ci0g
ICAgICAgICAgICAgICAgTlNGb250VHJhaXRNYXNrIGZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIg
dHJhaXRzT2ZGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKV07Ci0KLSAgICAgICAgICAgICAgICBp
ZiAobV9wbGF0Zm9ybURhdGEubV9zeW50aGV0aWNCb2xkKQotICAgICAgICAgICAgICAgICAgICBm
b250VHJhaXRzIHw9IE5TQm9sZEZvbnRNYXNrOwotICAgICAgICAgICAgICAgIGlmIChtX3BsYXRm
b3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUpCi0gICAgICAgICAgICAgICAgICAgIGZvbnRUcmFp
dHMgfD0gTlNJdGFsaWNGb250TWFzazsKLQotICAgICAgICAgICAgICAgIE5TRm9udFRyYWl0TWFz
ayBzbWFsbENhcHNGb250VHJhaXRzID0gW2ZvbnRNYW5hZ2VyIHRyYWl0c09mRm9udDpzbWFsbENh
cHNGb250LmZvbnQoKV07Ci0gICAgICAgICAgICAgICAgc21hbGxDYXBzRm9udC5tX3N5bnRoZXRp
Y0JvbGQgPSAoZm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKSAmJiAhKHNtYWxsQ2Fwc0ZvbnRU
cmFpdHMgJiBOU0JvbGRGb250TWFzayk7Ci0gICAgICAgICAgICAgICAgc21hbGxDYXBzRm9udC5t
X3N5bnRoZXRpY09ibGlxdWUgPSAoZm9udFRyYWl0cyAmIE5TSXRhbGljRm9udE1hc2spICYmICEo
c21hbGxDYXBzRm9udFRyYWl0cyAmIE5TSXRhbGljRm9udE1hc2spOwotCi0gICAgICAgICAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250RGF0YSgm
c21hbGxDYXBzRm9udCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotICAgICAgICB9CisgICAgaWYgKGlzQ3VzdG9tRm9udCgpKSB7CisgICAg
ICAgIEZvbnRQbGF0Zm9ybURhdGEgc2NhbGVkRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOworICAg
ICAgICBzY2FsZWRGb250RGF0YS5tX3NpemUgPSBzY2FsZWRGb250RGF0YS5tX3NpemUgKiBzY2Fs
ZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2FsZWRGb250RGF0
YSwgdHJ1ZSwgZmFsc2UpOwogICAgIH0KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpICogc2NhbGVGYWN0b3I7
CisgICAgRm9udFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShbW05TRm9udE1hbmFnZXIgc2hh
cmVkRm9udE1hbmFnZXJdIGNvbnZlcnRGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKSB0b1NpemU6
c2l6ZV0sIHNpemUpOworCisgICAgLy8gQXBwS2l0IHJlc2V0cyB0aGUgdHlwZSBpbmZvcm1hdGlv
biAoc2NyZWVuL3ByaW50ZXIpIHdoZW4geW91IGNvbnZlcnQgYSBmb250IHRvIGEgZGlmZmVyZW50
IHNpemUuCisgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3ZSdyZSBoYW5k
ZWQgYmFjay4KKyAgICBzY2FsZWRGb250RGF0YS5zZXRGb250KGZvbnREZXNjcmlwdGlvbi51c2VQ
cmludGVyRm9udCgpID8gW3NjYWxlZEZvbnREYXRhLmZvbnQoKSBwcmludGVyRm9udF0gOiBbc2Nh
bGVkRm9udERhdGEuZm9udCgpIHNjcmVlbkZvbnRdKTsKKworICAgIGlmIChzY2FsZWRGb250RGF0
YS5mb250KCkpIHsKKyAgICAgICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250
TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07CisgICAgICAgIE5TRm9udFRyYWl0TWFzayBmb250
VHJhaXRzID0gW2ZvbnRNYW5hZ2VyIHRyYWl0c09mRm9udDptX3BsYXRmb3JtRGF0YS5mb250KCld
OworCisgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCisgICAgICAg
ICAgICBmb250VHJhaXRzIHw9IE5TQm9sZEZvbnRNYXNrOworICAgICAgICBpZiAobV9wbGF0Zm9y
bURhdGEubV9zeW50aGV0aWNPYmxpcXVlKQorICAgICAgICAgICAgZm9udFRyYWl0cyB8PSBOU0l0
YWxpY0ZvbnRNYXNrOworCisgICAgICAgIE5TRm9udFRyYWl0TWFzayBzY2FsZWRGb250VHJhaXRz
ID0gW2ZvbnRNYW5hZ2VyIHRyYWl0c09mRm9udDpzY2FsZWRGb250RGF0YS5mb250KCldOworICAg
ICAgICBzY2FsZWRGb250RGF0YS5tX3N5bnRoZXRpY0JvbGQgPSAoZm9udFRyYWl0cyAmIE5TQm9s
ZEZvbnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0JvbGRGb250TWFzayk7CisgICAg
ICAgIHNjYWxlZEZvbnREYXRhLm1fc3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJ
dGFsaWNGb250TWFzaykgJiYgIShzY2FsZWRGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7
CisKKyAgICAgICAgcmV0dXJuIGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250RGF0YSgmc2NhbGVk
Rm9udERhdGEpOworICAgIH0KKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAg
cmV0dXJuIDA7Cit9CisKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBz
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7
CisgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnRE
YXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzbWFsbENhcHNGb250U2l6ZU11
bHRpcGxpZXIpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAgIE5TU3Ry
aW5nICpzdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNOb0NvcHk6
Y29uc3RfY2FzdDx1bmljaGFyKj4oY2hhcmFjdGVycykgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRv
bmU6Tk9dOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250
RGF0YVBhbmdvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Bh
bmdvL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTgwLDE3ICs4MCwzMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURl
c3Ryb3koKQogICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSAwOwogfQogCitTaW1wbGVGb250RGF0
YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVz
Y3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgIGRl
c2Muc2V0U3BlY2lmaWVkU2l6ZShzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5m
YW1pbHkoKS5mYW1pbHkoKSk7CisgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9y
bURhdGEpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0Zv
bnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewog
ICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRpb24g
ZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNl
dFNwZWNpZmllZFNpemUoMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwot
ICAgICAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgp
LmZhbWlseSgpKTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250
RGF0YShwbGF0Zm9ybURhdGEpOwotICAgIH0KKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21h
bGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1w
aGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24p
IGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKSB7CisgICAgICAgIG1f
ZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41
KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBs
ZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGlu
dCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJHcmFkaWVu
dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUGF0dGVybi5oIgogCiAjaW5jbHVkZSA8UUJydXNoPgpAQCAtMjYw
LDYgKzI2MSwxNiBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAg
ICAgZHJhd1RleHRDb21tb24oY3R4LCBydW4sIHBvaW50LCBmcm9tLCB0bywgZm9udCgpLCAvKiBp
c0NvbXBsZXhUZXh0ID0gKi90cnVlKTsKIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvclNpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0
UnVuJiAvKiBydW4gKi8sIGNvbnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxv
YXRQb2ludCYgLyogcG9pbnQgKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNN
YXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3Qg
VGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0
IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lk
dGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgR2x5cGhCdWZmZXIqIGdseXBoQnVm
ZmVyLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFwcmltYXJ5Rm9udCgp
LT5wbGF0Zm9ybURhdGEoKS5zaXplKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250V2luLmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlVuaXNjcmliZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtNjIsMzMgKzYzLDU3IEBAIEZsb2F0UmVjdCBGb250Ojpz
ZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFQKICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LngoKSAr
IGZsb29yZihiZWZvcmVXaWR0aCksIHBvaW50LnkoKSwgcm91bmRmKGFmdGVyV2lkdGgpIC0gZmxv
b3JmKGJlZm9yZVdpZHRoKSwgaCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8p
IGNvbnN0CitmbG9hdCBGb250OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVm
ZmVyLCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAg
Ly8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBk
YXRhIGZvciBlYWNoIGdseXBoLgotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGlm
IChmb3JUZXh0RW1waGFzaXMpIHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBmb3JUZXh0RW1waGFz
aXMgcGFyZW1ldGVyIHRvIFVuaXNjcmliZUNvbnRyb2xsZXIgYW5kIHVzZSBpdC4KKyAgICAgICAg
TE9HX0VSUk9SKCJOb3QgaW1wbGVtZW50ZWQgZm9yIHRleHQgZW1waGFzaXMuIik7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KIAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKICAgICBV
bmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuKTsKICAgICBjb250cm9sbGVy
LmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldp
ZHRoU29GYXIoKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0g
ICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4g
IEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNv
bnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAg
ICBjb250cm9sbGVyLmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGNv
bnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpIC0gYWZ0ZXJXaWR0aDsKLSAgICB9IGVsc2UKLSAgICAg
ICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAgICByZXR1cm4gY29udHJvbGxlci5ydW5X
aWR0aFNvRmFyKCkgLSBhZnRlcldpZHRoOworICAgIH0KKyAgICByZXR1cm4gYmVmb3JlV2lkdGg7
Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhp
cyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZv
ciBlYWNoIGdseXBoLgorICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQg
c3RhcnRYID0gcG9pbnQueCgpICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChy
dW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0
ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBpZiAoZ2x5cGhCdWZmZXIu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZm
ZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxv
YXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZm
ZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBo
QnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKK30KKwordm9pZCBGb250
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBoQnVm
ZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5k
QWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4
dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJr
LCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0K
IAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24gNzM4Njcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExMCwyNiArMTEwLDM4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6
OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgZGVsZXRlIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiB9
CiAKLVNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CitTaW1wbGVGb250RGF0
YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKIHsKLSAgICBpZiAoIW1f
c21hbGxDYXBzRm9udERhdGEpIHsKLSAgICAgICAgZmxvYXQgc21hbGxDYXBzSGVpZ2h0ID0gY1Nt
YWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICAg
ICAgZmxvYXQgc2NhbGVkU2l6ZSA9IHNjYWxlRmFjdG9yICogbV9wbGF0Zm9ybURhdGEuc2l6ZSgp
OwogICAgICAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9y
bURhdGEgc21hbGxDYXBzRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAgICAgICAgc21h
bGxDYXBzRm9udERhdGEuc2V0U2l6ZShzbWFsbENhcHNIZWlnaHQpOwotICAgICAgICAgICAgbV9z
bWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShzbWFsbENhcHNGb250RGF0YSwg
dHJ1ZSwgZmFsc2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HRk9OVCB3aW5m
b250OwotICAgICAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVv
ZihMT0dGT05UKSwgJndpbmZvbnQpOwotICAgICAgICAgICAgd2luZm9udC5sZkhlaWdodCA9IC1s
cm91bmRmKHNtYWxsQ2Fwc0hlaWdodCAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAz
MikpOwotICAgICAgICAgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndpbmZv
bnQpOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0
YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzbWFsbENhcHNIZWlnaHQsIG1fcGxhdGZvcm1EYXRh
LnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpLCBtX3Bs
YXRmb3JtRGF0YS51c2VHREkoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgICAgICBG
b250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnQobV9wbGF0Zm9ybURhdGEpOworICAgICAgICAgICAg
c2NhbGVkRm9udC5zZXRTaXplKHNjYWxlZFNpemUpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBT
aW1wbGVGb250RGF0YShzY2FsZWRGb250LCB0cnVlLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9
CisKKyAgICAgICAgTE9HRk9OVCB3aW5mb250OworICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9y
bURhdGEuaGZvbnQoKSwgc2l6ZW9mKExPR0ZPTlQpLCAmd2luZm9udCk7CisgICAgICAgIHdpbmZv
bnQubGZIZWlnaHQgPSAtbHJvdW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZvcm1EYXRhLnVzZUdE
SSgpID8gMSA6IDMyKSk7CisgICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0
KCZ3aW5mb250KTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZv
cm1EYXRhKGhmb250LCBzY2FsZWRTaXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCks
IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJ
KCkpLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
Y1NtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNG
b250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01h
cmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
K3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNN
YXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAg
IHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRh
Ojpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgp
IGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFN1cHBvcnQgY3VzdG9tIGZvbnRzLgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
VW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBA
QCB2b2lkIFVuaXNjcmliZUNvbnRyb2xsZXI6OmFkdmFuY2UodW5zaWduCiAgICAgICAgIFVDaGFy
IGMgPSAqY3VycjsKIAogICAgICAgICBib29sIGZvcmNlU21hbGxDYXBzID0gaXNTbWFsbENhcHMg
JiYgKFVfR0VUX0dDX01BU0soYykgJiBVX0dDX01fTUFTSyk7Ci0gICAgICAgIG5leHRGb250RGF0
YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxs
Q2FwcykuZm9udERhdGE7CisgICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFG
b3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1Zhcmlh
bnQgOiBBdXRvVmFyaWFudCkuZm9udERhdGE7CiAgICAgICAgIGlmIChtX2ZvbnQuaXNTbWFsbENh
cHMoKSkgewogICAgICAgICAgICAgbmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwg
KG5ld0MgPSB1X3RvdXBwZXIoYykpICE9IGM7CiAgICAgICAgICAgICBpZiAobmV4dElzU21hbGxD
YXBzKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luQ0UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFdpbkNF
LmNwcAkocmV2aXNpb24gNzM4NjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L0ZvbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMTEgQEAgdm9pZCBG
b250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29u
dGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8q
IG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywg
aW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyog
Z2x5cGhPdmVyZmxvdykgY29uc3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRz
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdp
bkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1Np
bXBsZUZvbnREYXRhV2luQ0UuY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvU2ltcGxlRm9udERhdGFXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDIwICs2NCwzMiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3ko
KQogICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSAwOwogfQogCitTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRp
b24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKKyAgICBmb250RGVzYy5zZXRDb21wdXRlZFNp
emUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnREZXNjLmNvbXB1dGVkU2l6ZSgpKSk7CisgICAg
Zm9udERlc2Muc2V0U3BlY2lmaWVkU2l6ZShscm91bmRmKHNjYWxlRmFjdG9yICogZm9udERlc2Mu
c3BlY2lmaWVkU2l6ZSgpKSk7CisgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZihz
Y2FsZUZhY3RvciAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKKyAgICBGb250UGxhdGZvcm1E
YXRhKiByZXN1bHQgPSBmb250Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250
RGVzYywgbV9wbGF0Zm9ybURhdGEuZmFtaWx5KCkpOworICAgIHJldHVybiByZXN1bHQgPyBuZXcg
U2ltcGxlRm9udERhdGEoKnJlc3VsdCkgOiAwOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAg
ICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAg
Zm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5jb21wdXRl
ZFNpemUoKSkpOwotICAgICAgICBmb250RGVzYy5zZXRTcGVjaWZpZWRTaXplKGxyb3VuZGYoMC43
MGYgKiBmb250RGVzYy5zcGVjaWZpZWRTaXplKCkpKTsKLSAgICAgICAgZm9udERlc2Muc2V0S2V5
d29yZFNpemUobHJvdW5kZigwLjcwZiAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKLSAgICAg
ICAgRm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRQ
bGF0Zm9ybURhdGEoZm9udERlc2MsIG1fcGxhdGZvcm1EYXRhLmZhbWlseSgpKTsKLSAgICAgICAg
aWYgKHJlc3VsdCkKLSAgICAgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxl
Rm9udERhdGEoKnJlc3VsdCk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkK
KyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogRFdPUkQgZ2V0S25vd25Gb250Q29kZVBhZ2VzKGNvbnN0IHdjaGFy
X3QqIGZhbWlseSk7CiAKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2
ICs5OCwxNCBAQCBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAjZW5k
aWYKIH0KIAorZmxvYXQgRm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChj
b25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8sIEds
eXBoQnVmZmVyJiAvKiBnbHlwaEJ1ZmZlciAqLywgRm9yVGV4dEVtcGhhc2lzT3JOb3QgLyogZm9y
VGV4dEVtcGhhc2lzICovKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBi
eSBtb3ZpbmcgbW9zdCBvZiB0aGUgZHJhd0NvbXBsZXhUZXh0KCkgaW1wbGVtZW50YXRpb24gaW4g
aGVyZS4gU2V0IHVwIHRoZQorICAgIC8vIENvbXBsZXhUZXh0Q29udHJvbGxlciBhY2NvcmRpbmcg
dG8gZm9yVGV4dEVtcGhhc2lzLgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20s
IGludCB0bykgY29uc3QKIHsKICNpZiBPUyhXSU5ET1dTKSB8fCBPUyhEQVJXSU4pCkBAIC0xMzAs
MTIgKzEzOCwyMiBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAK
ICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCBy
ZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9p
bnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwg
c3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBz
dGFydFBvaW50KTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgogfQogCit2
b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywg
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAg
R2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRH
bHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVy
LCBGb3JUZXh0RW1waGFzaXMpOworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZm
ZXIsIG1hcmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50Lnko
KSkpOworfQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IEdseXBoT3ZlcmZsb3cqKSBjb25zdAogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L1NpbXBsZUZvbnREYXRhV3guY3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkwLDE3ICs5MCwzMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURl
c3Ryb3koKQogI2VuZGlmCiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2Nh
bGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0
IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERl
c2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNj
YWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxh
dGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAg
ICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCks
IGZhbHNlKTsKK30KKwogU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNG
b250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsK
LSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpewotICAgICAgICBGb250RGVzY3JpcHRpb24g
ZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNl
dFNwZWNpZmllZFNpemUoMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwot
ICAgICAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgp
LmZhbWlseSgpKTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250
RGF0YShwbGF0Zm9ybURhdGEsIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlm
ICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNj
YWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxD
YXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFz
aXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNv
bnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhh
c2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisK
KyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250
RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVu
Z3RoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBXZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRo
aXMgdG8gbG9hZCBub24tQVNDSUkgZW5jb2Rpbmcgc2l0ZXMKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
dGV4dC9DaGFyYWN0ZXJOYW1lcy5oCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MyArMzIsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBOYW1lcyBoZXJlIGFyZSB0YWtl
biBmcm9tIHRoZSBVbmljb2RlIHN0YW5kYXJkLgogCi0vLyBOb3RlLCB0aGVzZSBhcmUgVUNoYXIg
Y29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhlbQorLy8gTm90ZSwgbW9zdCBv
ZiB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhl
bQogLy8gbW9yZSBjb252ZW5pZW50IGZvciBXZWJDb3JlIGNvZGUgdGhhdCBtb3N0bHkgdXNlcyBV
VEYtMTYuCiAKK2NvbnN0IFVDaGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckxpbmUgPSAweDEwMTAw
OworY29uc3QgVUNoYXIzMiBhZWdlYW5Xb3JkU2VwYXJhdG9yRG90ID0gMHgxMDEwMTsKK2NvbnN0
IFVDaGFyIGJsYWNrQ2lyY2xlID0gMHgyNUNGOwogY29uc3QgVUNoYXIgYmxhY2tTcXVhcmUgPSAw
eDI1QTA7Citjb25zdCBVQ2hhciBibGFja1VwUG9pbnRpbmdUcmlhbmdsZSA9IDB4MjVCMjsKIGNv
bnN0IFVDaGFyIGJ1bGxldCA9IDB4MjAyMjsKK2NvbnN0IFVDaGFyIGJ1bGxzZXllID0gMHgyNUNF
OwogY29uc3QgVUNoYXIgY2FycmlhZ2VSZXR1cm4gPSAweDAwMEQ7CiBjb25zdCBVQ2hhciBldGhp
b3BpY1ByZWZhY2VDb2xvbiA9IDB4MTM2NjsKK2NvbnN0IFVDaGFyIGV0aGlvcGljV29yZHNwYWNl
ID0gMHgxMzYxOworY29uc3QgVUNoYXIgZmlzaGV5ZSA9IDB4MjVDOTsKIGNvbnN0IFVDaGFyIGhl
YnJld1B1bmN0dWF0aW9uR2VyZXNoID0gMHgwNUYzOwogY29uc3QgVUNoYXIgaGVicmV3UHVuY3R1
YXRpb25HZXJzaGF5aW0gPSAweDA1RjQ7CiBjb25zdCBVQ2hhciBob3Jpem9udGFsRWxsaXBzaXMg
PSAweDIwMjY7CkBAIC02Myw5ICs3MCwxNiBAQCBjb25zdCBVQ2hhciByaWdodFNpbmdsZVF1b3Rh
dGlvbk1hcmsgPSAwCiBjb25zdCBVQ2hhciByaWdodFRvTGVmdEVtYmVkID0gMHgyMDJCOwogY29u
c3QgVUNoYXIgcmlnaHRUb0xlZnRNYXJrID0gMHgyMDBGOwogY29uc3QgVUNoYXIgcmlnaHRUb0xl
ZnRPdmVycmlkZSA9IDB4MjAyRTsKK2NvbnN0IFVDaGFyIHNlc2FtZURvdCA9IDB4RkU0NTsKIGNv
bnN0IFVDaGFyIHNvZnRIeXBoZW4gPSAweDAwQUQ7CiBjb25zdCBVQ2hhciBzcGFjZSA9IDB4MDAy
MDsKK2NvbnN0IFVDaGFyIHRpYmV0YW5NYXJrSW50ZXJzeWxsYWJpY1RzaGVnID0gMHgwRjBCOwor
Y29uc3QgVUNoYXIgdGliZXRhbk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFyID0gMHgwRjBDOworY29u
c3QgVUNoYXIzMiB1Z2FyaXRpY1dvcmREaXZpZGVyID0gMHgxMDM5RjsKIGNvbnN0IFVDaGFyIHdo
aXRlQnVsbGV0ID0gMHgyNUU2OworY29uc3QgVUNoYXIgd2hpdGVDaXJjbGUgPSAweDI1Q0I7Citj
b25zdCBVQ2hhciB3aGl0ZVNlc2FtZURvdCA9IDB4RkU0NjsKK2NvbnN0IFVDaGFyIHdoaXRlVXBQ
b2ludGluZ1RyaWFuZ2xlID0gMHgyNUIzOwogY29uc3QgVUNoYXIgeWVuU2lnbiA9IDB4MDBBNTsK
IGNvbnN0IFVDaGFyIHplcm9XaWR0aEpvaW5lciA9IDB4MjAwRDsKIGNvbnN0IFVDaGFyIHplcm9X
aWR0aE5vbkpvaW5lciA9IDB4MjAwQzsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCShyZXZpc2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTgsNyArNDk4LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94
Ojpjb21wdXRlTG9naWNhbEJveEhlaQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZWRGb250
cyAmJiBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmxpbmVIZWlnaHQoKS5p
c05lZ2F0aXZlKCkpIHsKLSAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRl
cmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLnByaW1hcnlGb250KCkpOworICAgICAg
ICAgICAgY29uc3QgRm9udCYgZm9udCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+Zm9udCgpOworICAgICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoZm9udC5wcmltYXJ5
Rm9udCgpKTsKICAgICAgICAgICAgIGJvb2wgYmFzZWxpbmVTZXQgPSBmYWxzZTsKICAgICAgICAg
ICAgIGJhc2VsaW5lID0gMDsKICAgICAgICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gMDsK
QEAgLTUyMCwxNCArNTIxLDMyIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxC
b3hIZWkKICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBjdXJyLT5saW5lSGVpZ2h0KCk7CiAgICAg
ICAgICAgICBiYXNlbGluZSA9IGN1cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKTsK
ICAgICAgICAgICAgIGlmIChjdXJyLT5pc1RleHQoKSB8fCBpc0lubGluZUZsb3cpIHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9m
aXJzdExpbmUpLT5mb250KCk7CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZvbnQuYXNj
ZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICAgICAgaW50IGRlc2NlbnQgPSBmb250LmRl
c2NlbnQoYmFzZWxpbmVUeXBlKTsKKyAgICAgICAgICAgICAgICBpZiAoY3Vyci0+aXNUZXh0KCkg
JiYgY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0RW1waGFzaXNNYXJr
KCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVt
cGhhc2lzTWFya0hlaWdodCA9IGZvbnQucHJpbWFyeUZvbnQoKS0+ZW1waGFzaXNNYXJrRm9udERh
dGEoZm9udC5mb250RGVzY3JpcHRpb24oKSktPmhlaWdodCgpOworICAgICAgICAgICAgICAgICAg
ICBpbnQgaGFsZkxlYWRpbmcgPSAoZm9udC5saW5lU3BhY2luZygpIC0gZm9udC5oZWlnaHQoKSkg
LyAyOworICAgICAgICAgICAgICAgICAgICBpbnQgZm9udEFzY2VudCA9IGhhbGZMZWFkaW5nICsg
YXNjZW50OworICAgICAgICAgICAgICAgICAgICBpbnQgZm9udERlc2NlbnQgPSBmb250LmxpbmVT
cGFjaW5nKCkgLSBmb250QXNjZW50OworICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyci0+cmVu
ZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0RW1waGFzaXNQb3NpdGlvbigpID09IFRl
eHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYXNjZW50
ICs9IGVtcGhhc2lzTWFya0hlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5l
ID0gbWF4KGZvbnRBc2NlbnQsIGFzY2VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
SGVpZ2h0ID0gYmFzZWxpbmUgKyBmb250RGVzY2VudDsKKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NlbnQgKz0gZW1waGFzaXNNYXJrSGVp
Z2h0OworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodCA9IG1heChsaW5lSGVpZ2h0
LCBiYXNlbGluZSArIGRlc2NlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICAgICAgLy8gRXhhbWluZSB0aGUgZm9udCBib3ggZm9yIGlu
bGluZSBmbG93cyBhbmQgdGV4dCBib3hlcyB0byBzZWUgaWYgYW55IHBhcnQgb2YgaXQgaXMgYWJv
dmUgdGhlIGJhc2VsaW5lLgogICAgICAgICAgICAgICAgIC8vIElmIHRoZSB0b3Agb2Ygb3VyIGZv
bnQgYm94IHJlbGF0aXZlIHRvIHRoZSByb290IGJveCBiYXNlbGluZSBpcyBhYm92ZSB0aGUgcm9v
dCBib3ggYmFzZWxpbmUsIHRoZW4KICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgY29udHJpYnV0
aW5nIHRvIHRoZSBtYXhBc2NlbnQgdmFsdWUuCi0gICAgICAgICAgICAgICAgYWZmZWN0c0FzY2Vu
dCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmFzY2VudChi
YXNlbGluZVR5cGUpIC0gY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAgICAgICBh
ZmZlY3RzQXNjZW50ID0gYXNjZW50IC0gY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBEZXNjZW50IGlzIHNpbWlsYXIuICBJZiBhbnkg
cGFydCBvZiBvdXIgZm9udCBib3ggaXMgYmVsb3cgdGhlIHJvb3QgYm94J3MgYmFzZWxpbmUsIHRo
ZW4KICAgICAgICAgICAgICAgICAvLyB3ZSBjb250cmlidXRlIHRvIHRoZSBtYXhEZXNjZW50IHZh
bHVlLgotICAgICAgICAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gY3Vyci0+cmVuZGVyZXIoKS0+
c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuZGVzY2VudChiYXNlbGluZVR5cGUpICsgY3Vyci0+
bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGRlc2Nl
bnQgKyBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBlbGVtZW50cyBhbHdheXMgYWZmZWN0IGJvdGggdGhlIGFz
Y2VudCBhbmQgZGVzY2VudC4KICAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50ID0gdHJ1ZTsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA3Mzg2NykKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTIsNyArMzUyLDcgQEAgRmxvYXRTaXplIElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9Hcgog
ICAgIHJldHVybiBleHRyYU9mZnNldDsKIH0KIAotc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNo
YWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBU
ZXh0UnVuJiB0ZXh0UnVuLCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCB0cnVu
Y2F0aW9uUG9pbnQsIGNvbnN0IEludFBvaW50JiB0ZXh0T3JpZ2luLAorc3RhdGljIHZvaWQgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lz
TWFyaywgaW50IGVtcGhhc2lzTWFya09mZnNldCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zm
c2V0LCBpbnQgdHJ1bmNhdGlvblBvaW50LCBjb25zdCBJbnRQb2ludCYgdGV4dE9yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIGJveFJlY3QsIGNv
bnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgYm9vbCBzdHJva2VkLCBib29sIGhvcml6b250YWwpCiB7
CiAgICAgQ29sb3IgZmlsbENvbG9yID0gY29udGV4dC0+ZmlsbENvbG9yKCk7CkBAIC0zNjgsMTMg
KzM2OCwyMyBAQCBzdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljCiAgICAg
ICAgIGVsc2UgaWYgKCFvcGFxdWUpCiAgICAgICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3Io
ZmlsbENvbG9yLCBmaWxsQ29sb3JTcGFjZSk7CiAKLSAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9
IGVuZE9mZnNldCkKLSAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4s
IHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKGVuZE9mZnNldCA+IDApCi0gICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zm
c2V0LCAgMCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIGlmIChzdGFydE9mZnNldCA8IHRydW5j
YXRpb25Qb2ludCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0
UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9p
bnQpOworICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0gZW5kT2Zmc2V0KSB7CisgICAgICAgICAg
ICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9y
aWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBzdGFy
dE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChl
bmRPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4s
IHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhm
b250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIElu
dFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIDAsIGVuZE9mZnNldCk7CisgICAgICAgICAg
ICB9IGlmIChzdGFydE9mZnNldCA8IHRydW5jYXRpb25Qb2ludCkgeworICAgICAgICAgICAgICAg
IGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0
T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1w
aGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lz
TWFya09mZnNldCksICBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICghc2hhZG93KQpAQCAtNDg4LDEyICs0OTgsMTQg
QEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgIC8vIDIuIE5v
dyBwYWludCB0aGUgZm9yZWdyb3VuZCwgaW5jbHVkaW5nIHRleHQgYW5kIGRlY29yYXRpb25zIGxp
a2UgdW5kZXJsaW5lL292ZXJsaW5lIChpbiBxdWlya3MgbW9kZSBvbmx5KS4KICAgICBDb2xvciB0
ZXh0RmlsbENvbG9yOwogICAgIENvbG9yIHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xvciBlbXBo
YXNpc01hcmtDb2xvcjsKICAgICBmbG9hdCB0ZXh0U3Ryb2tlV2lkdGggPSBzdHlsZVRvVXNlLT50
ZXh0U3Ryb2tlV2lkdGgoKTsKICAgICBjb25zdCBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93ID0gcGFp
bnRJbmZvLmZvcmNlQmxhY2tUZXh0ID8gMCA6IHN0eWxlVG9Vc2UtPnRleHRTaGFkb3coKTsKIAog
ICAgIGlmIChwYWludEluZm8uZm9yY2VCbGFja1RleHQpIHsKICAgICAgICAgdGV4dEZpbGxDb2xv
ciA9IENvbG9yOjpibGFjazsKICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gQ29sb3I6OmJsYWNr
OworICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9IENvbG9yOjpibGFjazsKICAgICB9IGVsc2Ug
ewogICAgICAgICB0ZXh0RmlsbENvbG9yID0gc3R5bGVUb1VzZS0+dmlzaXRlZERlcGVuZGVudENv
bG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcik7CiAgICAgICAgIApAQCAtNTA2LDYg
KzUxOCwxMiBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAg
ICAgIC8vIE1ha2UgdGhlIHRleHQgc3Ryb2tlIGNvbG9yIGxlZ2libGUgYWdhaW5zdCBhIHdoaXRl
IGJhY2tncm91bmQKICAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmZvcmNlQmFja2dyb3VuZHNUb1do
aXRlKCkpCiAgICAgICAgICAgICB0ZXh0U3Ryb2tlQ29sb3IgPSBjb3JyZWN0ZWRUZXh0Q29sb3Io
dGV4dFN0cm9rZUNvbG9yLCBDb2xvcjo6d2hpdGUpOworCisgICAgICAgIGVtcGhhc2lzTWFya0Nv
bG9yID0gc3R5bGVUb1VzZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0
VGV4dEVtcGhhc2lzQ29sb3IpOworICAgICAgICAKKyAgICAgICAgLy8gTWFrZSB0aGUgdGV4dCBz
dHJva2UgY29sb3IgbGVnaWJsZSBhZ2FpbnN0IGEgd2hpdGUgYmFja2dyb3VuZAorICAgICAgICBp
ZiAoc3R5bGVUb1VzZS0+Zm9yY2VCYWNrZ3JvdW5kc1RvV2hpdGUoKSkKKyAgICAgICAgICAgIGVt
cGhhc2lzTWFya0NvbG9yID0gY29ycmVjdGVkVGV4dENvbG9yKGVtcGhhc2lzTWFya0NvbG9yLCBD
b2xvcjo6d2hpdGUpOwogICAgIH0KIAogICAgIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5ID0g
KHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKTsKQEAgLTUxMyw2ICs1MzEs
NyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAKICAgICBDb2xv
ciBzZWxlY3Rpb25GaWxsQ29sb3IgPSB0ZXh0RmlsbENvbG9yOwogICAgIENvbG9yIHNlbGVjdGlv
blN0cm9rZUNvbG9yID0gdGV4dFN0cm9rZUNvbG9yOworICAgIENvbG9yIHNlbGVjdGlvbkVtcGhh
c2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrQ29sb3I7CiAgICAgZmxvYXQgc2VsZWN0aW9uU3Ry
b2tlV2lkdGggPSB0ZXh0U3Ryb2tlV2lkdGg7CiAgICAgY29uc3QgU2hhZG93RGF0YSogc2VsZWN0
aW9uU2hhZG93ID0gdGV4dFNoYWRvdzsKICAgICBpZiAoaGF2ZVNlbGVjdGlvbikgewpAQCAtNTI0
LDYgKzU0MywxMyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAg
ICAgICAgICAgICBzZWxlY3Rpb25GaWxsQ29sb3IgPSBmb3JlZ3JvdW5kOwogICAgICAgICB9CiAK
KyAgICAgICAgQ29sb3IgZW1waGFzaXNNYXJrRm9yZWdyb3VuZCA9IHBhaW50SW5mby5mb3JjZUJs
YWNrVGV4dCA/IENvbG9yOjpibGFjayA6IHJlbmRlcmVyKCktPnNlbGVjdGlvbkVtcGhhc2lzTWFy
a0NvbG9yKCk7CisgICAgICAgIGlmIChlbXBoYXNpc01hcmtGb3JlZ3JvdW5kLmlzVmFsaWQoKSAm
JiBlbXBoYXNpc01hcmtGb3JlZ3JvdW5kICE9IHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKSB7
CisgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkKKyAgICAgICAgICAgICAg
ICBwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgPSB0cnVlOworICAgICAgICAgICAgc2VsZWN0
aW9uRW1waGFzaXNNYXJrQ29sb3IgPSBlbXBoYXNpc01hcmtGb3JlZ3JvdW5kOworICAgICAgICB9
CisKICAgICAgICAgaWYgKFJlbmRlclN0eWxlKiBwc2V1ZG9TdHlsZSA9IHJlbmRlcmVyKCktPmdl
dENhY2hlZFBzZXVkb1N0eWxlKFNFTEVDVElPTikpIHsKICAgICAgICAgICAgIGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdyA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCA/IDAgOiBwc2V1ZG9TdHls
ZS0+dGV4dFNoYWRvdygpOwogICAgICAgICAgICAgaWYgKHNoYWRvdyAhPSBzZWxlY3Rpb25TaGFk
b3cpIHsKQEAgLTU2Nyw2ICs1OTMsMTYgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWlu
dEluZm8mIHBhaQogICAgICAgICBsZW5ndGggPSBtX3RydW5jYXRpb247CiAgICAgfQogCisgICAg
aW50IGVtcGhhc2lzTWFya09mZnNldCA9IDA7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBo
YXNpc01hcmsgPSBzdHlsZVRvVXNlLT50ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCk7CisgICAgaWYg
KCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRh
KiBlbXBoYXNpc01hcmtGb250RGF0YSA9IGZvbnQucHJpbWFyeUZvbnQoKS0+ZW1waGFzaXNNYXJr
Rm9udERhdGEoZm9udC5mb250RGVzY3JpcHRpb24oKSk7CisgICAgICAgIGlmIChzdHlsZVRvVXNl
LT50ZXh0RW1waGFzaXNQb3NpdGlvbigpID09IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKKyAg
ICAgICAgICAgIGVtcGhhc2lzTWFya09mZnNldCA9IC1mb250LmFzY2VudCgvKiBGSVhNRTogTmVl
ZHMgYmFzZWxpbmUgdHlwZSAqLykgLSBlbXBoYXNpc01hcmtGb250RGF0YS0+ZGVzY2VudCgvKiBG
SVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGVtcGhhc2lzTWFya09mZnNldCA9IGZvbnQuZGVzY2VudCgvKiBGSVhNRTogTmVlZHMgYmFzZWxp
bmUgdHlwZSAqLykgKyBlbXBoYXNpc01hcmtGb250RGF0YS0+YXNjZW50KC8qIEZJWE1FOiBOZWVk
cyBiYXNlbGluZSB0eXBlICovKTsKKyAgICB9CisKICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0
T25seSkgewogICAgICAgICAvLyBGb3Igc3Ryb2tlZCBwYWludGluZywgd2UgaGF2ZSB0byBjaGFu
Z2UgdGhlIHRleHQgZHJhd2luZyBtb2RlLiAgSXQncyBwcm9iYWJseSBkYW5nZXJvdXMgdG8gbGVh
dmUgdGhhdCBtdXRhdGVkIGFzIGEgc2lkZQogICAgICAgICAvLyBlZmZlY3QsIHNvIG9ubHkgd2hl
biB3ZSBrbm93IHdlJ3JlIHN0cm9raW5nLCBkbyBhIHNhdmUvcmVzdG9yZS4KQEAgLTU3Niw5ICs2
MTIsMTggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAg
ICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgdGV4dEZpbGxDb2xvciwgdGV4dFN0cm9r
ZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7CiAgICAg
ICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3MgPD0gc1Bvcykgewog
ICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0
bHkuCi0gICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0
UnVuLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywg
dGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICAgICAgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIDAsIGxl
bmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tl
V2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
cGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgZVBvcywgc1Bvcywg
bGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGgg
PiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhj
b250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgZVBvcywgc1BvcywgbGVuZ3RoLCB0
ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hv
cml6b250YWwoKSk7CisKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgZW1waGFzaXNNYXJrQ29s
b3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNw
YWNlKCkpOworICAgICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwg
ZVBvcyA8PSBzUG9zKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0
LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCisgICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNo
YWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtP
ZmZzZXQsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93
LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0
ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgZVBvcywgc1BvcywgbGVu
Z3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAw
LCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAodGV4dFN0cm9rZVdp
ZHRoID4gMCkKICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKQEAgLTU5MCw4ICs2MzUs
MTEgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICAg
ICAgY29udGV4dC0+c2F2ZSgpOwogCiAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250
ZXh0LCBzZWxlY3Rpb25GaWxsQ29sb3IsIHNlbGVjdGlvblN0cm9rZUNvbG9yLCBzZWxlY3Rpb25T
dHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKLSAgICAgICAgcGFpbnRUZXh0
V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgc1BvcywgZVBvcywgbGVuZ3RoLCB0
ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCisgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNv
bnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGgg
PiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNlbGVjdGlv
bkVtcGhhc2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5
bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dz
KGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0
LCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRv
dywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0K
ICAgICAgICAgaWYgKHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCkKICAgICAgICAgICAgIGNvbnRl
eHQtPnJlc3RvcmUoKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJ
KHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTYyNiw2ICsxNjI2LDI3IEBAIENvbG9yIFJlbmRlck9iamVjdDo6
c2VsZWN0aW9uRm9yZWdyb3VuZEMKICAgICByZXR1cm4gY29sb3I7CiB9CiAKK0NvbG9yIFJlbmRl
ck9iamVjdDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBjb25zdAoreworICAgIENvbG9y
IGNvbG9yOworICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHVuc2VsZWN0YWJsZSwgb3Igd2UgYXJl
IG9ubHkgcGFpbnRpbmcgdGhlIHNlbGVjdGlvbiwKKyAgICAvLyBkb24ndCBvdmVycmlkZSB0aGUg
Zm9yZWdyb3VuZCBjb2xvciB3aXRoIHRoZSBzZWxlY3Rpb24gZm9yZWdyb3VuZCBjb2xvci4KKyAg
ICBpZiAoc3R5bGUoKS0+dXNlclNlbGVjdCgpID09IFNFTEVDVF9OT05FCisgICAgICAgIHx8IChm
cmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAmIFBhaW50QmVoYXZpb3JTZWxlY3Rpb25P
bmx5KSkKKyAgICAgICAgcmV0dXJuIGNvbG9yOworCisgICAgaWYgKFJlZlB0cjxSZW5kZXJTdHls
ZT4gcHNldWRvU3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFNFTEVDVElPTikpIHsKKyAg
ICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3Bl
cnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOworICAgICAgICBpZiAoIWNvbG9yLmlzVmFsaWQo
KSkKKyAgICAgICAgICAgIGNvbG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29sb3IgPSBmcmFtZSgp
LT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5kQWN0aXZlKCkgPworICAgICAgICAgICAgICAgIHRo
ZW1lKCktPmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIDoKKyAgICAgICAgICAgICAg
ICB0aGVtZSgpLT5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpOworCisgICAgcmV0
dXJuIGNvbG9yOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIE5vZGUqIFJlbmRlck9i
amVjdDo6ZHJhZ2dhYmxlTm9kZShib29sIGRodG1sT0ssIGJvb2wgdWFPSywgaW50IHgsIGludCB5
LCBib29sJiBkaHRtbFdpbGxEcmFnKSBjb25zdAogewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3NSw2ICs2NzUsNyBAQCBwdWJsaWM6CiAgICAgLy8gT2J0
YWlucyB0aGUgc2VsZWN0aW9uIGNvbG9ycyB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gcGFpbnRp
bmcgYSBzZWxlY3Rpb24uCiAgICAgQ29sb3Igc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29u
c3Q7CiAgICAgQ29sb3Igc2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgQ29s
b3Igc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFdoZXRoZXIg
b3Igbm90IGEgZ2l2ZW4gYmxvY2sgbmVlZHMgdG8gcGFpbnQgc2VsZWN0aW9uIGdhcHMuCiAgICAg
dmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9uR2FwcygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZp
c2lvbiA3Mzg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODQ3LDYgKzg0Nyw0NyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFJl
bmRlclN0eWxlOjpoeXBoZW5TCiAgICAgcmV0dXJuIGh5cGhlbk1pbnVzU3RyaW5nOwogfQogCitj
b25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkg
Y29uc3QKK3sKKyAgICBzd2l0Y2ggKHRleHRFbXBoYXNpc01hcmsoKSkgeworICAgIGNhc2UgVGV4
dEVtcGhhc2lzTWFya05vbmU6CisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICBjYXNlIFRl
eHRFbXBoYXNpc01hcmtDdXN0b206CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNDdXN0b21N
YXJrKCk7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG90OiB7CisgICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWREb3RTdHJpbmcsICgmYnVsbGV0LCAxKSk7
CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG90U3RyaW5n
LCAoJndoaXRlQnVsbGV0LCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkg
PT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdFN0cmluZyA6IG9wZW5Eb3RTdHJp
bmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0NpcmNsZTogeworICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkQ2lyY2xlU3RyaW5nLCAoJmJs
YWNrQ2lyY2xlLCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7CisgICAgICAgIHJldHVybiB0
ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZENpcmNs
ZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya0RvdWJsZUNpcmNsZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZpc2hleWUsIDEpKTsKKyAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcs
ICgmYnVsbHNleWUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBU
ZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nIDogb3BlbkRv
dWJsZUNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrVHJpYW5n
bGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZFRy
aWFuZ2xlU3RyaW5nLCAoJmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuVHJpYW5nbGVTdHJpbmcsICgmd2hp
dGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0Zp
bGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkVHJpYW5nbGVTdHJpbmcgOiBv
cGVuVHJpYW5nbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1Nlc2Ft
ZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkU2Vz
YW1lU3RyaW5nLCAoJnNlc2FtZURvdCwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmluZywgKCZ3aGl0ZVNlc2FtZURvdCwgMSkpOwor
ICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxs
ZWQgPyBmaWxsZWRTZXNhbWVTdHJpbmcgOiBvcGVuU2VzYW1lU3RyaW5nOworICAgIH0KKyAgICBj
YXNlIFRleHRFbXBoYXNpc01hcmtBdXRvOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBudWxsQXRvbTsKK30KKwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIFJlbmRlclN0eWxlOjpp
bml0aWFsRGFzaGJvYXJkUmVnaW9ucygpCiB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgJKHJldmlzaW9uIDczODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzE4LDYgKzcxOCw3IEBAIHB1YmxpYzoK
ICAgICBUZXh0RW1waGFzaXNNYXJrIHRleHRFbXBoYXNpc01hcmsoKSBjb25zdDsKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKSBjb25zdCB7IHJldHVybiBy
YXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzQ3VzdG9tTWFyazsgfQogICAgIFRleHRFbXBo
YXNpc1Bvc2l0aW9uIHRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGV4dEVtcGhhc2lzUG9zaXRpb24+KHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFz
aXNQb3NpdGlvbik7IH0KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRleHRFbXBoYXNpc01hcmtT
dHJpbmcoKSBjb25zdDsKICAgICAKICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiBhbnkgdHJhbnNmb3Jt
IHJlbGF0ZWQgcHJvcGVydHkgKGN1cnJlbnRseSB0cmFuc2Zvcm0sIHRyYW5zZm9ybVN0eWxlM0Qg
b3IgcGVyc3BlY3RpdmUpIAogICAgIC8vIGluZGljYXRlcyB0aGF0IHdlIGFyZSB0cmFuc2Zvcm1p
bmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76439</attachid>
            <date>2010-12-13 14:25:10 -0800</date>
            <delta_ts>2010-12-13 18:09:19 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r18.diff</filename>
            <type>text/plain</type>
            <size>84643</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDI2IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgZHJh
d0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgbWFyaywgcG9pbnQsIGZy
b20sIHRvKTsKKyAgICBlbHNlCisgICAgICAgIGRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRl
eHQoY29udGV4dCwgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25z
dAogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkBAIC00MjAsNCArNDQwLDE4IEBAIGJvb2wgRm9u
dDo6aXNDSktJZGVvZ3JhcGgoVUNoYXIzMiBjKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKK3sKKyAgICBDaGFyQ2F0
ZWdvcnkgY2F0ZWdvcnkgPSBVbmljb2RlOjpjYXRlZ29yeShjKTsKKyAgICBpZiAoY2F0ZWdvcnkg
JiAoU2VwYXJhdG9yX1NwYWNlIHwgU2VwYXJhdG9yX0xpbmUgfCBTZXBhcmF0b3JfUGFyYWdyYXBo
IHwgT3RoZXJfTm90QXNzaWduZWQgfCBPdGhlcl9Db250cm9sIHwgT3RoZXJfRm9ybWF0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3JkLXNlcGFyYXRvciBj
aGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidzIERyYWZ0IDMgTm92
ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8fCBjID09IGFlZ2Vh
bldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRvckRvdAorICAgICAg
ICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFuTWFya0ludGVyc3ls
bGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNvbnN0OwogCiAgICAg
dm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxv
YXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OworICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEF0
b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRv
ID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxv
dyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChy
dW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZsb2F0IGZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdDsKQEAg
LTEzNiwxMCArMTM3LDExIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29u
c3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+dW5pdHNQZXJFbSgpOyB9CiAgICAgaW50IHNwYWNl
V2lkdGgoKSBjb25zdCB7IHJldHVybiAoaW50KWNlaWxmKHByaW1hcnlGb250KCktPmFkanVzdGVk
U3BhY2VXaWR0aCgpICsgbV9sZXR0ZXJTcGFjaW5nKTsgfQogICAgIGZsb2F0IHRhYldpZHRoKGNv
bnN0IFNpbXBsZUZvbnREYXRhJiBmb250RGF0YSkgY29uc3QgeyByZXR1cm4gOCAqIGNlaWxmKGZv
bnREYXRhLmFkanVzdGVkU3BhY2VXaWR0aCgpICsgbGV0dGVyU3BhY2luZygpKTsgfQorICAgIGlu
dCBlbXBoYXNpc01hcmtIZWlnaHQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAKICAgICBj
b25zdCBTaW1wbGVGb250RGF0YSogcHJpbWFyeUZvbnQoKSBjb25zdDsKICAgICBjb25zdCBGb250
RGF0YSogZm9udERhdGFBdCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgR2x5cGhEYXRhIGdseXBoRGF0
YUZvckNoYXJhY3RlcihVQ2hhcjMyLCBib29sIG1pcnJvciwgYm9vbCBmb3JjZVNtYWxsQ2FwcyA9
IGZhbHNlKSBjb25zdDsKKyAgICBHbHlwaERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFy
MzIsIGJvb2wgbWlycm9yLCBGb250RGF0YVZhcmlhbnQgPSBBdXRvVmFyaWFudCkgY29uc3Q7CiAg
ICAgLy8gVXNlZCBmb3IgY29tcGxleCB0ZXh0LCBhbmQgZG9lcyBub3QgdXRpbGl6ZSB0aGUgZ2x5
cGggbWFwIGNhY2hlLgogICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcnMo
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKSBjb25zdDsKIApAQCAtMTYzLDE3ICsxNjUsMjkgQEAg
cHJpdmF0ZToKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25Gb3JUZXh0VXNpbmdTVkdGb250KGNv
bnN0IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykg
Y29uc3Q7CiAjZW5kaWYKIAorICAgIGVudW0gRm9yVGV4dEVtcGhhc2lzT3JOb3QgeyBOb3RGb3JU
ZXh0RW1waGFzaXMsIEZvclRleHRFbXBoYXNpcyB9OworCisgICAgLy8gUmV0dXJucyB0aGUgaW5p
dGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4KKyAgICBmbG9hdCBnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
clNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVy
JiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAg
IHZvaWQgZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdDsKKyAgICB2b2lkIGRyYXdF
bXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20s
IGludCB0bykgY29uc3Q7CiAgICAgdm9pZCBkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFNpbXBsZUZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IHRv
LCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7Ci0gICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBUZXh0UnVuJiwgY29uc3Qg
RmxvYXRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEdseXBoQnVmZmVyJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OworICAg
IHZvaWQgZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBH
bHlwaEJ1ZmZlciYsIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25z
dDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgR2x5
cGhCdWZmZXIqLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMg
PSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3NpdGlv
bkZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvclNp
bXBsZVRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgaCwgaW50IGZy
b20sIGludCB0bykgY29uc3Q7CiAKKyAgICBib29sIGdldEVtcGhhc2lzTWFya0dseXBoRGF0YShj
b25zdCBBdG9taWNTdHJpbmcmLCBHbHlwaERhdGEmKSBjb25zdDsKKwogICAgIHN0YXRpYyBib29s
IGNhblJldHVybkZhbGxiYWNrRm9udHNGb3JDb21wbGV4VGV4dCgpOwogCiAgICAgQ29kZVBhdGgg
Y29kZVBhdGgoY29uc3QgVGV4dFJ1biYpIGNvbnN0OworCisgICAgLy8gUmV0dXJucyB0aGUgaW5p
dGlhbCBpbi1zdHJlYW0gYWR2YW5jZS4KKyAgICBmbG9hdCBnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZl
ciYsIEZvclRleHRFbXBoYXNpc09yTm90ID0gTm90Rm9yVGV4dEVtcGhhc2lzKSBjb25zdDsKICAg
ICB2b2lkIGRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwg
Y29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OworICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0
UnVuJiwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZy
b20sIGludCB0bykgY29uc3Q7CiAgICAgZmxvYXQgZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9u
dHMgPSAwLCBHbHlwaE92ZXJmbG93KiA9IDApIGNvbnN0OwogICAgIGludCBvZmZzZXRGb3JQb3Np
dGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBmbG9hdCBwb3NpdGlvbiwgYm9vbCBp
bmNsdWRlUGFydGlhbEdseXBocykgY29uc3Q7CiAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdDsKQEAgLTE5NSw2ICsyMDksNyBAQCBwdWJsaWM6CiAgICAg
Rm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCB0cmVh
dEFzU3BhY2UoVUNoYXIgYykgeyByZXR1cm4gYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0g
J1xuJyB8fCBjID09IG5vQnJlYWtTcGFjZTsgfQogICAgIHN0YXRpYyBib29sIHRyZWF0QXNaZXJv
V2lkdGhTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjIDwgMHgyMCB8fCAoYyA+PSAweDdGICYmIGMg
PCAweEEwKSB8fCBjID09IHNvZnRIeXBoZW4gfHwgKGMgPj0gMHgyMDBjICYmIGMgPD0gMHgyMDBm
KSB8fCAoYyA+PSAweDIwMmEgJiYgYyA8PSAweDIwMmUpIHx8IGMgPT0gb2JqZWN0UmVwbGFjZW1l
bnRDaGFyYWN0ZXI7IH0KKyAgICBzdGF0aWMgYm9vbCBjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVD
aGFyMzIgYyk7CiAKICAgICBzdGF0aWMgaW5saW5lIFVDaGFyIG5vcm1hbGl6ZVNwYWNlcyhVQ2hh
ciBjaGFyYWN0ZXIpCiAgICAgewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dEZhc3RQYXRoLmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRGYXN0UGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCwyMCBAQCB1
c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HbHlwaERh
dGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3IsIGJv
b2wgZm9yY2VTbWFsbENhcHMpIGNvbnN0CitHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCB2YXJpYW50KSBj
b25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBib29sIHVzZVNtYWxs
Q2Fwc0ZvbnQgPSBmb3JjZVNtYWxsQ2FwczsKLSAgICBpZiAobV9mb250RGVzY3JpcHRpb24uc21h
bGxDYXBzKCkpIHsKLSAgICAgICAgVUNoYXIzMiB1cHBlckMgPSB0b1VwcGVyKGMpOwotICAgICAg
ICBpZiAodXBwZXJDICE9IGMpIHsKLSAgICAgICAgICAgIGMgPSB1cHBlckM7Ci0gICAgICAgICAg
ICB1c2VTbWFsbENhcHNGb250ID0gdHJ1ZTsKLSAgICAgICAgfQorICAgIGlmICh2YXJpYW50ID09
IEF1dG9WYXJpYW50KSB7CisgICAgICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFsbENhcHMo
KSkgeworICAgICAgICAgICAgVUNoYXIzMiB1cHBlckMgPSB0b1VwcGVyKGMpOworICAgICAgICAg
ICAgaWYgKHVwcGVyQyAhPSBjKSB7CisgICAgICAgICAgICAgICAgYyA9IHVwcGVyQzsKKyAgICAg
ICAgICAgICAgICB2YXJpYW50ID0gU21hbGxDYXBzVmFyaWFudDsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBOb3JtYWxWYXJpYW50OworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHZhcmlhbnQgPSBOb3JtYWxWYXJpYW50OwogICAgIH0KIAogICAgIGlm
IChtaXJyb3IpCkBAIC02OCw4ICs3MSw4IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JD
aGFyYWN0ZXIoVUMKICAgICB9CiAKICAgICBHbHlwaFBhZ2UqIHBhZ2U7Ci0gICAgaWYgKCF1c2VT
bWFsbENhcHNGb250KSB7Ci0gICAgICAgIC8vIEZhc3Rlc3QgbG9vcCwgZm9yIHRoZSBjb21tb24g
Y2FzZSAobm90IHNtYWxsIGNhcHMpLgorICAgIGlmICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQp
IHsKKyAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBjYXNlIChub3JtYWwg
dmFyaWFudCkuCiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBwYWdlID0gbm9k
ZS0+cGFnZSgpOwogICAgICAgICAgICAgaWYgKHBhZ2UpIHsKQEAgLTExMCw3ICsxMTMsNyBAQCBH
bHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgICAgICAgICAgICAg
aWYgKGRhdGEuZm9udERhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHNtYWxsQ2Fw
c0ZvbnREYXRhIGZ1bmN0aW9uIHNob3VsZCBub3Qgbm9ybWFsbHkgcmV0dXJuIDAuCiAgICAgICAg
ICAgICAgICAgICAgIC8vIEJ1dCBpZiBpdCBkb2VzLCB3ZSB3aWxsIGp1c3QgcmVuZGVyIHRoZSBj
YXBpdGFsIGxldHRlciBiaWcuCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnRE
YXRhKiBzbWFsbENhcHNGb250RGF0YSA9IGRhdGEuZm9udERhdGEtPnNtYWxsQ2Fwc0ZvbnREYXRh
KG1fZm9udERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9u
dERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhID0gZGF0YS5mb250RGF0YS0+dmFyaWFudEZvbnREYXRh
KG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFz
bWFsbENhcHNGb250RGF0YSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOwog
CkBAIC0xNTcsMTQgKzE2MCwxNCBAQCBHbHlwaERhdGEgRm9udDo6Z2x5cGhEYXRhRm9yQ2hhcmFj
dGVyKFVDCiAgICAgICAgIGNvZGVVbml0c0xlbmd0aCA9IDI7CiAgICAgfQogICAgIGNvbnN0IFNp
bXBsZUZvbnREYXRhKiBjaGFyYWN0ZXJGb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRGb250RGF0
YUZvckNoYXJhY3RlcnMoKnRoaXMsIGNvZGVVbml0cywgY29kZVVuaXRzTGVuZ3RoKTsKLSAgICBp
ZiAodXNlU21hbGxDYXBzRm9udCAmJiBjaGFyYWN0ZXJGb250RGF0YSkKLSAgICAgICAgY2hhcmFj
dGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0YS0+c21hbGxDYXBzRm9udERhdGEobV9mb250
RGVzY3JpcHRpb24pOworICAgIGlmICh2YXJpYW50ICE9IE5vcm1hbFZhcmlhbnQgJiYgY2hhcmFj
dGVyRm9udERhdGEpCisgICAgICAgIGNoYXJhY3RlckZvbnREYXRhID0gY2hhcmFjdGVyRm9udERh
dGEtPnZhcmlhbnRGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiAgICAgaWYg
KGNoYXJhY3RlckZvbnREYXRhKSB7CiAgICAgICAgIC8vIEdvdCB0aGUgZmFsbGJhY2sgZ2x5cGgg
YW5kIGZvbnQuCiAgICAgICAgIEdseXBoUGFnZSogZmFsbGJhY2tQYWdlID0gR2x5cGhQYWdlVHJl
ZU5vZGU6OmdldFJvb3RDaGlsZChjaGFyYWN0ZXJGb250RGF0YSwgcGFnZU51bWJlciktPnBhZ2Uo
KTsKICAgICAgICAgR2x5cGhEYXRhIGRhdGEgPSBmYWxsYmFja1BhZ2UgJiYgZmFsbGJhY2tQYWdl
LT5mb250RGF0YUZvckNoYXJhY3RlcihjKSA/IGZhbGxiYWNrUGFnZS0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKGMpIDogY2hhcmFjdGVyRm9udERhdGEtPm1pc3NpbmdHbHlwaERhdGEoKTsKICAgICAg
ICAgLy8gQ2FjaGUgaXQgc28gd2UgZG9uJ3QgaGF2ZSB0byBkbyBzeXN0ZW0gZmFsbGJhY2sgYWdh
aW4gbmV4dCB0aW1lLgotICAgICAgICBpZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICAgICAg
aWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAgICAg
ICAgLy8gbWlzc2luZ0dseXBoRGF0YSByZXR1cm5zIGEgbnVsbCBjaGFyYWN0ZXIsIHdoaWNoIGlz
IG5vdCBzdWl0YWJsZSBmb3IgR0RJIHRvIGRpc3BsYXkuCiAgICAgICAgICAgICAvLyBBbHNvLCBz
b21ldGltZXMgd2UgY2Fubm90IG1hcCBhIGZvbnQgZm9yIHRoZSBjaGFyYWN0ZXIgb24gV0lOQ0Us
IGJ1dCBHREkgY2FuIHN0aWxsCkBAIC0xODIsNyArMTg1LDcgQEAgR2x5cGhEYXRhIEZvbnQ6Omds
eXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgIC8vIEV2ZW4gc3lzdGVtIGZhbGxiYWNrIGNhbiBm
YWlsOyB1c2UgdGhlIG1pc3NpbmcgZ2x5cGggaW4gdGhhdCBjYXNlLgogICAgIC8vIEZJWE1FOiBJ
dCB3b3VsZCBiZSBuaWNlciB0byB1c2UgdGhlIG1pc3NpbmcgZ2x5cGggZnJvbSB0aGUgbGFzdCBy
ZXNvcnQgZm9udCBpbnN0ZWFkLgogICAgIEdseXBoRGF0YSBkYXRhID0gcHJpbWFyeUZvbnQoKS0+
bWlzc2luZ0dseXBoRGF0YSgpOwotICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAgIGlm
ICh2YXJpYW50ID09IE5vcm1hbFZhcmlhbnQpIHsKICNpZiBPUyhXSU5DRSkKICAgICAgICAgLy8g
U2VlIGNvbW1lbnQgYWJvdXQgV0lOQ0UgR0RJIGhhbmRsaW5nIG5lYXIgc2V0R2x5cGhEYXRhRm9y
Q2hhcmFjdGVyIGFib3ZlLgogICAgICAgICBwYWdlLT5zZXRHbHlwaERhdGFGb3JDaGFyYWN0ZXIo
YywgYywgZGF0YS5mb250RGF0YSk7CkBAIC0xOTQsNDIgKzE5NywxMDYgQEAgR2x5cGhEYXRhIEZv
bnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgIHJldHVybiBkYXRhOwogfQogCi12b2lk
IEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4
dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29u
c3QKK2Jvb2wgRm9udDo6Z2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWFyaywgR2x5cGhEYXRhJiBnbHlwaERhdGEpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlw
aCBidWZmZXIgaG9sZHMgb3VyIGdseXBocythZHZhbmNlcytmb250IGRhdGEgZm9yIGVhY2ggZ2x5
cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgaWYgKG1hcmsuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCk7
Ci0gICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4pOworI2lmIEVOQUJMRShTVkdfRk9OVFMp
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZHIGZvbnRzLgorICAgIGlmIChwcmltYXJ5
Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAg
ICBVQ2hhcjMyIGNoYXJhY3RlciA9IG1hcmtbMF07CisKKyAgICBpZiAoVTE2X0lTX1NVUlJPR0FU
RShjaGFyYWN0ZXIpKSB7CisgICAgICAgIGlmICghVTE2X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJh
Y3RlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1hcmsubGVu
Z3RoKCkgPCAyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFVDaGFyIGxv
dyA9IG1hcmtbMV07CisgICAgICAgIGlmICghVTE2X0lTX1RSQUlMKGxvdykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hhcmFjdGVyID0gVTE2X0dFVF9TVVBQTEVNRU5U
QVJZKGNoYXJhY3RlciwgbG93KTsKKyAgICB9CisKKyAgICBnbHlwaERhdGEgPSBnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBmYWxzZSwgRW1waGFzaXNNYXJrVmFyaWFudCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2ludCBGb250OjplbXBoYXNpc01hcmtIZWlnaHQoY29uc3QgQXRv
bWljU3RyaW5nJiBtYXJrKSBjb25zdAoreworICAgIEdseXBoRGF0YSBtYXJrR2x5cGhEYXRhOwor
ICAgIGlmICghZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKG1hcmssIG1hcmtHbHlwaERhdGEpKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBtYXJrRm9udERh
dGEgPSBtYXJrR2x5cGhEYXRhLmZvbnREYXRhOworICAgIEFTU0VSVChtYXJrRm9udERhdGEpOwor
ICAgIGlmICghbWFya0ZvbnREYXRhKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBt
YXJrRm9udERhdGEtPmhlaWdodCgpOworfQorCitmbG9hdCBGb250OjpnZXRHbHlwaHNBbmRBZHZh
bmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBpbnQgZnJvbSwgaW50IHRvLCBH
bHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpc09yTm90IGZvclRleHRFbXBo
YXNpcykgY29uc3QKK3sKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZTsKKworICAgIFdpZHRoSXRl
cmF0b3IgaXQodGhpcywgcnVuLCBmYWxzZSwgZm9yVGV4dEVtcGhhc2lzKTsKICAgICBpdC5hZHZh
bmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdpZHRoID0gaXQubV9ydW5XaWR0aFNvRmFyOwog
ICAgIGl0LmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291bGRu
J3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBpZiAo
Z2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAgIHJl
dHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGl0Lm1fcnVuV2lkdGhTb0ZhcjsKIAog
ICAgIGlmIChydW4ucnRsKCkpIHsKICAgICAgICAgZmxvYXQgZmluYWxSb3VuZGluZ1dpZHRoID0g
aXQubV9maW5hbFJvdW5kaW5nV2lkdGg7CiAgICAgICAgIGl0LmFkdmFuY2UocnVuLmxlbmd0aCgp
KTsKLSAgICAgICAgc3RhcnRYICs9IGZpbmFsUm91bmRpbmdXaWR0aCArIGl0Lm1fcnVuV2lkdGhT
b0ZhciAtIGFmdGVyV2lkdGg7CisgICAgICAgIGluaXRpYWxBZHZhbmNlID0gZmluYWxSb3VuZGlu
Z1dpZHRoICsgaXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJXaWR0aDsKICAgICB9IGVsc2UKLSAg
ICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5jZSA9IGJl
Zm9yZVdpZHRoOwogCi0gICAgLy8gU3dhcCB0aGUgb3JkZXIgb2YgdGhlIGdseXBocyBpZiByaWdo
dC10by1sZWZ0LgotICAgIGlmIChydW4ucnRsKCkpCisgICAgaWYgKHJ1bi5ydGwoKSkgewogICAg
ICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZmZXIuc2l6ZSgpIC0gMTsgaSA8IGds
eXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAgICAgICAgICAgICBnbHlwaEJ1ZmZl
ci5zd2FwKGksIGVuZCk7CisgICAgfQorCisgICAgcmV0dXJuIGluaXRpYWxBZHZhbmNlOworfQor
Cit2b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0
bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzK2Fk
dmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1
ZmZlcjsKKworICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKSArIGdldEdseXBoc0FuZEFkdmFu
Y2VzRm9yU2ltcGxlVGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICBpZiAo
Z2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDYWxjdWxh
dGUgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBnbHlwaHMgdG8gYmUgZGlzcGxheWVkIGJ5IGFk
ZGluZwotICAgIC8vIGFsbCB0aGUgYWR2YW5jZXMgdXAgdG8gdGhlIGZpcnN0IGdseXBoLgogICAg
IEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFydFgsIHBvaW50LnkoKSk7Ci0gICAgZHJhd0dseXBo
QnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOworICAgIGRyYXdH
bHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgc3RhcnRQb2ludCk7Cit9CisKK3ZvaWQg
Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhz
QW5kQWR2YW5jZXNGb3JTaW1wbGVUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JU
ZXh0RW1waGFzaXMpOworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1h
cmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOwog
fQogCi12b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50KSBjb25zdAordm9pZCBGb250OjpkcmF3R2x5cGhCdWZmZXIoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogeyAgIAogICAgIC8vIERyYXcgZWFjaCBjb250aWd1
b3VzIHJ1biBvZiBnbHlwaHMgdGhhdCB1c2UgdGhlIHNhbWUgZm9udCBkYXRhLgogICAgIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSA9IGdseXBoQnVmZmVyLmZvbnREYXRhQXQoMCk7CkBA
IC0yNTYsNiArMzIzLDUwIEBAIHZvaWQgRm9udDo6ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29u
dGUKICAgICBkcmF3R2x5cGhzKGNvbnRleHQsIGZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgbGFzdEZy
b20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFydFBvaW50KTsKIH0KIAoraW5saW5lIHN0YXRp
YyBmbG9hdCBvZmZzZXRUb01pZGRsZU9mR2x5cGgoY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnRE
YXRhLCBHbHlwaCBnbHlwaCkKK3sKKyAgICBpZiAoZm9udERhdGEtPm9yaWVudGF0aW9uKCkgPT0g
SG9yaXpvbnRhbCkgeworICAgICAgICBGbG9hdFJlY3QgYm91bmRzID0gZm9udERhdGEtPmJvdW5k
c0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0dXJuIGJvdW5kcy54KCkgKyBib3VuZHMud2lk
dGgoKSAvIDI7CisgICAgfQorICAgIC8vIEZJWE1FOiBVc2UgZ2x5cGggYm91bmRzIG9uY2UgdGhl
eSBtYWtlIHNlbnNlIGZvciB2ZXJ0aWNhbCBmb250cy4KKyAgICByZXR1cm4gZm9udERhdGEtPndp
ZHRoRm9yR2x5cGgoZ2x5cGgpIC8gMjsKK30KKworaW5saW5lIHN0YXRpYyBmbG9hdCBvZmZzZXRU
b01pZGRsZU9mR2x5cGhBdEluZGV4KGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgc2l6
ZV90IGkpCit7CisgICAgcmV0dXJuIG9mZnNldFRvTWlkZGxlT2ZHbHlwaChnbHlwaEJ1ZmZlci5m
b250RGF0YUF0KGkpLCBnbHlwaEJ1ZmZlci5nbHlwaEF0KGkpKTsKK30KKwordm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEdseXBoQnVm
ZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBHbHlwaERhdGEgbWFya0dseXBoRGF0YTsKKyAgICBp
ZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBtYXJrR2x5cGhEYXRhKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0YSA9IG1h
cmtHbHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1hcmtGb250RGF0YSk7CisgICAgaWYg
KCFtYXJrRm9udERhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIEdseXBoIG1hcmtHbHlwaCA9
IG1hcmtHbHlwaERhdGEuZ2x5cGg7CisgICAgR2x5cGggc3BhY2VHbHlwaCA9IG1hcmtGb250RGF0
YS0+c3BhY2VHbHlwaCgpOworCisgICAgZmxvYXQgbWlkZGxlT2ZMYXN0R2x5cGggPSBvZmZzZXRU
b01pZGRsZU9mR2x5cGhBdEluZGV4KGdseXBoQnVmZmVyLCAwKTsKKyAgICBGbG9hdFBvaW50IHN0
YXJ0UG9pbnQocG9pbnQueCgpICsgbWlkZGxlT2ZMYXN0R2x5cGggLSBvZmZzZXRUb01pZGRsZU9m
R2x5cGgobWFya0ZvbnREYXRhLCBtYXJrR2x5cGgpLCBwb2ludC55KCkpOworCisgICAgR2x5cGhC
dWZmZXIgbWFya0J1ZmZlcjsKKyAgICBmb3IgKGludCBpID0gMDsgaSArIDEgPCBnbHlwaEJ1ZmZl
ci5zaXplKCk7ICsraSkgeworICAgICAgICBmbG9hdCBtaWRkbGVPZk5leHRHbHlwaCA9IG9mZnNl
dFRvTWlkZGxlT2ZHbHlwaEF0SW5kZXgoZ2x5cGhCdWZmZXIsIGkgKyAxKTsKKyAgICAgICAgZmxv
YXQgYWR2YW5jZSA9IGdseXBoQnVmZmVyLmFkdmFuY2VBdChpKSAtIG1pZGRsZU9mTGFzdEdseXBo
ICsgbWlkZGxlT2ZOZXh0R2x5cGg7CisgICAgICAgIG1hcmtCdWZmZXIuYWRkKGdseXBoQnVmZmVy
LmdseXBoQXQoaSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChpKS0+c3BhY2VHbHlwaCgpID8g
c3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnREYXRhLCBhZHZhbmNlKTsKKyAgICAgICAg
bWlkZGxlT2ZMYXN0R2x5cGggPSBtaWRkbGVPZk5leHRHbHlwaDsKKyAgICB9CisgICAgbWFya0J1
ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChnbHlwaEJ1ZmZlci5zaXplKCkgLSAxKSA9PSBn
bHlwaEJ1ZmZlci5mb250RGF0YUF0KGdseXBoQnVmZmVyLnNpemUoKSAtIDEpLT5zcGFjZUdseXBo
KCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9udERhdGEsIDApOworCisgICAgZHJh
d0dseXBoQnVmZmVyKGNvbnRleHQsIG1hcmtCdWZmZXIsIHN0YXJ0UG9pbnQpOworfQorCiBmbG9h
dCBGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEdseXBo
QnVmZmVyKiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFdp
ZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsNiArMzQ0LDE0IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3VGV4dChjb25zdCBGb24KIH0KICNlbmRpZgogCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0VtcGhhc2lzTWFya3MoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1
biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEludFBvaW50JiBwb2ludCwg
aW50IGZyb20sIGludCB0bykKK3sKKyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb250LmRyYXdFbXBoYXNpc01hcmtzKHRoaXMsIHJ1biwgbWFyaywg
cG9pbnQsIGZyb20sIHRvKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdCaWRpVGV4
dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlzaW9uIDczOTIyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzE1LDYgKzMxNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBz
ZXRUZXh0RHJhd2luZ01vZGUoVGV4dERyYXdpbmdNb2RlRmxhZ3MpOwogCiAgICAgICAgIHZvaWQg
ZHJhd1RleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGlu
dCBmcm9tID0gMCwgaW50IHRvID0gLTEpOworICAgICAgICB2b2lkIGRyYXdFbXBoYXNpc01hcmtz
KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiAsIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywg
Y29uc3QgSW50UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKICAgICAgICAgdm9p
ZCBkcmF3QmlkaVRleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBv
aW50Jik7CiAgICAgICAgIHZvaWQgZHJhd0hpZ2hsaWdodEZvclRleHQoY29uc3QgRm9udCYsIGNv
bnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBoLCBjb25zdCBDb2xvciYgYmFja2dy
b3VuZENvbG9yLCBDb2xvclNwYWNlLCBpbnQgZnJvbSA9IDAsIGludCB0byA9IC0xKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHJldmlz
aW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAgU2ltcGxlRm9udERhdGE6OlNpbXBs
ZUZvbnREYXRhKGNvbnN0IEZvbgogICAgICwgbV9pc0xvYWRpbmcoaXNMb2FkaW5nKQogICAgICwg
bV9pc0Jyb2tlbklkZW9ncmFwaEZvbnQoZmFsc2UpCiAgICAgLCBtX3NtYWxsQ2Fwc0ZvbnREYXRh
KDApCisgICAgLCBtX2VtcGhhc2lzTWFya0ZvbnREYXRhKDApCiAgICAgLCBtX2Jyb2tlbklkZW9n
cmFwaEZvbnREYXRhKDApCiB7CiAgICAgcGxhdGZvcm1Jbml0KCk7CkBAIC03NSw2ICs3Niw3IEBA
IFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShQYXNzT3duUHQKICAgICAsIG1faXNMb2Fk
aW5nKGZhbHNlKQogICAgICwgbV9pc0Jyb2tlbklkZW9ncmFwaEZvbnQoZmFsc2UpCiAgICAgLCBt
X3NtYWxsQ2Fwc0ZvbnREYXRhKDApCisgICAgLCBtX2VtcGhhc2lzTWFya0ZvbnREYXRhKDApCiAg
ICAgLCBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKDApCiB7CiAgICAgU1ZHRm9udEZhY2VFbGVt
ZW50KiBzdmdGb250RmFjZUVsZW1lbnQgPSBtX3N2Z0ZvbnREYXRhLT5zdmdGb250RmFjZUVsZW1l
bnQoKTsKQEAgLTE5MCwxMSArMTkyLDE1IEBAIFNpbXBsZUZvbnREYXRhOjp+U2ltcGxlRm9udERh
dGEoKQogICAgICAgICBpZiAobV9zbWFsbENhcHNGb250RGF0YSkKICAgICAgICAgICAgIEdseXBo
UGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0YShtX3NtYWxsQ2Fwc0ZvbnREYXRh
KTsKIAorICAgICAgICBpZiAobV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAgICAgIEds
eXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0YShtX2VtcGhhc2lzTWFya0Zv
bnREYXRhKTsKKwogICAgICAgICBpZiAobV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YSkKICAgICAg
ICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0YShtX2Jyb2tl
bklkZW9ncmFwaEZvbnREYXRhKTsKICAgICB9CiAKICAgICBkZWxldGUgbV9zbWFsbENhcHNGb250
RGF0YTsKKyAgICBkZWxldGUgbV9lbXBoYXNpc01hcmtGb250RGF0YTsKICAgICBkZWxldGUgbV9i
cm9rZW5JZGVvZ3JhcGhGb250RGF0YTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1
LDcgQEAgY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3Mg
U1ZHRm9udERhdGE7CiAKK2VudW0gRm9udERhdGFWYXJpYW50IHsgQXV0b1ZhcmlhbnQsIE5vcm1h
bFZhcmlhbnQsIFNtYWxsQ2Fwc1ZhcmlhbnQsIEVtcGhhc2lzTWFya1ZhcmlhbnQgfTsKIGVudW0g
UGl0Y2ggeyBVbmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gsIFZhcmlhYmxlUGl0Y2ggfTsKIAogY2xh
c3MgU2ltcGxlRm9udERhdGEgOiBwdWJsaWMgRm9udERhdGEgewpAQCAtNzYsNyArNzcsMjQgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgflNpbXBsZUZvbnREYXRhKCk7CiAKICAgICBjb25zdCBGb250
UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRGF0
YTsgfQotICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3Q7CisKKyAgICBTaW1wbGVGb250RGF0YSog
c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAgU2lt
cGxlRm9udERhdGEqIGVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYp
IGNvbnN0OworCisgICAgU2ltcGxlRm9udERhdGEqIHZhcmlhbnRGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBGb250RGF0YVZhcmlhbnQgdmFyaWFudCkgY29uc3QK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodmFyaWFudCkgeworICAgICAgICBjYXNlIFNtYWxsQ2Fw
c1ZhcmlhbnQ6CisgICAgICAgICAgICByZXR1cm4gc21hbGxDYXBzRm9udERhdGEoZGVzY3JpcHRp
b24pOworICAgICAgICBjYXNlIEVtcGhhc2lzTWFya1ZhcmlhbnQ6CisgICAgICAgICAgICByZXR1
cm4gZW1waGFzaXNNYXJrRm9udERhdGEoZGVzY3JpcHRpb24pOworICAgICAgICBjYXNlIEF1dG9W
YXJpYW50OgorICAgICAgICBjYXNlIE5vcm1hbFZhcmlhbnQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8U2ltcGxlRm9udERhdGEqPih0aGlzKTsKKyAgICB9CiAKICAgICBTaW1wbGVG
b250RGF0YSogYnJva2VuSWRlb2dyYXBoRm9udERhdGEoKSBjb25zdDsKICAgICAKQEAgLTE4Myw2
ICsyMDEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21tb25Jbml0KCk7CiAKKyAgICBTaW1w
bGVGb250RGF0YSogc2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgZmxvYXQg
c2NhbGVGYWN0b3IpIGNvbnN0OworCiAjaWYgKFBMQVRGT1JNKFdJTikgJiYgIU9TKFdJTkNFKSkg
XAogICAgIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShXWCkpCiAgICAgdm9pZCBpbml0R0RJ
Rm9udCgpOwpAQCAtMjI3LDYgKzI0Nyw3IEBAIHByaXZhdGU6CiAgICAgR2x5cGhEYXRhIG1fbWlz
c2luZ0dseXBoRGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fc21hbGxDYXBz
Rm9udERhdGE7CisgICAgbXV0YWJsZSBTaW1wbGVGb250RGF0YSogbV9lbXBoYXNpc01hcmtGb250
RGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fYnJva2VuSWRlb2dyYXBoRm9u
dERhdGE7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9y
LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRo
SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9V
TklEQVRBL1VDRC5odG1sI0Nhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3NfVmFsdWVzCiBzdGF0aWMg
Y29uc3QgdWludDhfdCBoaXJhZ2FuYUthdGFrYW5hVm9pY2luZ01hcmtzQ29tYmluaW5nQ2xhc3Mg
PSA4OwogCi1XaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqIGZvbnQsIGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBib29sIGFjY291bnRGb3JHbHlwaEJvdW5kcykKK1dpZHRoSXRlcmF0b3I6OldpZHRo
SXRlcmF0b3IoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNv
bnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIGJvb2wgYWNjb3VudEZvckdseXBo
Qm91bmRzLCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6IG1fZm9udChmb250KQogICAgICwg
bV9ydW4ocnVuKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgpKQpAQCAtNTMsNiArNTMsNyBAQCBX
aWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqCiAgICAgLCBtX21pbkdseXBo
Qm91bmRpbmdCb3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpCiAgICAgLCBtX2ZpcnN0
R2x5cGhPdmVyZmxvdygwKQogICAgICwgbV9sYXN0R2x5cGhPdmVyZmxvdygwKQorICAgICwgbV9m
b3JUZXh0RW1waGFzaXMoZm9yVGV4dEVtcGhhc2lzKQogewogICAgIC8vIElmIHRoZSBwYWRkaW5n
IGlzIG5vbi16ZXJvLCBjb3VudCB0aGUgbnVtYmVyIG9mIHNwYWNlcyBpbiB0aGUgcnVuCiAgICAg
Ly8gYW5kIGRpdmlkZSB0aGF0IGJ5IHRoZSBwYWRkaW5nIGZvciBwZXIgc3BhY2UgYWRkaXRpb24u
CkBAIC0xOTksNiArMjAwLDkgQEAgdm9pZCBXaWR0aEl0ZXJhdG9yOjphZHZhbmNlKGludCBvZmZz
ZXQsIAogICAgICAgICAgICAgICAgIG1fZmlyc3RHbHlwaE92ZXJmbG93ID0gbWF4PGZsb2F0Pigw
LCAtYm91bmRzLngoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9mb3JUZXh0RW1waGFz
aXMgJiYgIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1waGFzaXMoYykpCisgICAgICAgICAgICBnbHlw
aCA9IGZvbnREYXRhLT5zcGFjZUdseXBoKCk7CisKICAgICAgICAgLy8gQWR2YW5jZSBwYXN0IHRo
ZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAgICAgICBjcCArPSBjbHVzdGVyTGVu
Z3RoOwogICAgICAgICBjdXJyZW50Q2hhcmFjdGVyICs9IGNsdXN0ZXJMZW5ndGg7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkocmV2aXNpb24gNzM5MjIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTaW1wbGVGb250RGF0YTsKIGNsYXNzIFRleHRS
dW47CiAKIHN0cnVjdCBXaWR0aEl0ZXJhdG9yIHsKLSAgICBXaWR0aEl0ZXJhdG9yKGNvbnN0IEZv
bnQqLCBjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzID0gMCwgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMgPSBmYWxzZSk7CisgICAg
V2lkdGhJdGVyYXRvcihjb25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAsIGJvb2wgYWNjb3VudEZvckdseXBo
Qm91bmRzID0gZmFsc2UsIGJvb2wgZm9yVGV4dEVtcGhhc2lzID0gZmFsc2UpOwogCiAgICAgdm9p
ZCBhZHZhbmNlKGludCB0bywgR2x5cGhCdWZmZXIqID0gMCk7CiAgICAgYm9vbCBhZHZhbmNlT25l
Q2hhcmFjdGVyKGZsb2F0JiB3aWR0aCwgR2x5cGhCdWZmZXIqID0gMCk7CkBAIC02Myw2ICs2Myw3
IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5HbHlwaEJvdW5kaW5nQm94WTsKICAgICBmbG9h
dCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKICAgICBmbG9hdCBtX2xhc3RHbHlwaE92ZXJmbG93Owor
ICAgIGJvb2wgbV9mb3JUZXh0RW1waGFzaXM7CiB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCShy
ZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dENocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiRm9udEZhbGxiYWNrTGlzdC5oIgogI2lu
Y2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIK
ICNpbmNsdWRlICJTa2lhRm9udFdpbi5oIgpAQCAtNTA1LDYgKzUwNiwxMSBAQCB2b2lkIEZvbnQ6
OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgY29udGV4dC0+Y2FudmFzKCktPmVu
ZFBsYXRmb3JtUGFpbnQoKTsKIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYg
LyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9p
bnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVyZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAq
LykgY29uc3QKIHsKICAgICBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuIHN0YXRlKHJ1biwgKnRoaXMp
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExp
bnV4LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MSw3ICszODEsNyBAQCBi
b29sIFRleHRSdW5XYWxrZXI6Om5leHRTY3JpcHRSdW4oKQogICAgICAgICAvLyAoYW5kIHRoZSBn
bHlwaHMgaW4gZWFjaCBBLCBDIGFuZCBUIHNlY3Rpb24gYXJlIGJhY2t3YXJkcyB0b28pCiAgICAg
ICAgIGlmICghaGJfdXRmMTZfc2NyaXB0X3J1bl9wcmV2KCZtX251bUNvZGVQb2ludHMsICZtX2l0
ZW0uaXRlbSwgbV9ydW4uY2hhcmFjdGVycygpLCBtX3J1bi5sZW5ndGgoKSwgJm1faW5kZXhPZk5l
eHRTY3JpcHRSdW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX2N1cnJl
bnRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdb
bV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgbV9jdXJy
ZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5n
W21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoIWhiX3V0ZjE2X3NjcmlwdF9ydW5fbmV4dCgmbV9udW1Db2RlUG9pbnRzLCAmbV9pdGVt
Lml0ZW0sIG1fcnVuLmNoYXJhY3RlcnMoKSwgbV9ydW4ubGVuZ3RoKCksICZtX2luZGV4T2ZOZXh0
U2NyaXB0UnVuKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5MywxMCArMzkzLDEw
IEBAIGJvb2wgVGV4dFJ1bldhbGtlcjo6bmV4dFNjcmlwdFJ1bigpCiAgICAgICAgIC8vIGluIHRo
ZSBoYXJmYnV6eiBkYXRhIHN0cnVjdHVyZXMgdG8gZS5nLiBwaWNrIHRoZSBjb3JyZWN0IHNjcmlw
dCdzIHNoYXBlci4KICAgICAgICAgLy8gU28gd2UgYWxsb3cgdGhhdCB0byBydW4gZmlyc3QsIHRo
ZW4gZG8gYSBzZWNvbmQgcGFzcyBvdmVyIHRoZSByYW5nZSBpdAogICAgICAgICAvLyBmb3VuZCBh
bmQgdGFrZSB0aGUgbGFyZ2VzdCBzdWJyZWdpb24gdGhhdCBzdGF5cyB3aXRoaW4gYSBzaW5nbGUg
Zm9udC4KLSAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlLCBmYWxzZSkuZm9u
dERhdGE7CisgICAgICAgIG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JD
aGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSkuZm9udERhdGE7
CiAgICAgICAgIHVuc2lnbmVkIGVuZE9mUnVuOwogICAgICAgICBmb3IgKGVuZE9mUnVuID0gMTsg
ZW5kT2ZSdW4gPCBtX2l0ZW0uaXRlbS5sZW5ndGg7ICsrZW5kT2ZSdW4pIHsKLSAgICAgICAgICAg
IGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZv
ckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFs
c2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBu
ZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5n
W21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2UpLmZvbnREYXRhOwogICAgICAgICAg
ICAgaWYgKG5leHRGb250RGF0YSAhPSBtX2N1cnJlbnRGb250RGF0YSkKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtNDIyLDcgKzQyMiw3IEBAIGZsb2F0IFRleHRSdW5XYWxr
ZXI6OndpZHRoT2ZGdWxsUnVuKCkKIAogdm9pZCBUZXh0UnVuV2Fsa2VyOjpzZXR1cEZvbnRGb3JT
Y3JpcHRSdW4oKQogewotICAgIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YSA9IG1fZm9udC0+Z2x5
cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2Us
IGZhbHNlKS5mb250RGF0YTsKKyAgICBjb25zdCBGb250RGF0YSogZm9udERhdGEgPSBtX2ZvbnQt
PmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZh
bHNlKS5mb250RGF0YTsKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEg
PSBmb250RGF0YS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoJyAnKS0+cGxhdGZvcm1EYXRhKCk7CiAg
ICAgbV9pdGVtLmZhY2UgPSBwbGF0Zm9ybURhdGEuaGFyZmJ1enpGYWNlKCk7CiAgICAgdm9pZCog
b3BhcXVlUGxhdGZvcm1EYXRhID0gY29uc3RfY2FzdDxGb250UGxhdGZvcm1EYXRhKj4oJnBsYXRm
b3JtRGF0YSk7CkBAIC02OTAsNiArNjkwLDExIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NG
b3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRS
dW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9h
dFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9y
Q29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8sIEdseXBoT3ZlcmZsb3cqIC8qIGdseXBoT3ZlcmZs
b3cgKi8pIGNvbnN0CiB7CiAgICAgVGV4dFJ1bldhbGtlciB3YWxrZXIocnVuLCAwLCB0aGlzKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFD
aHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNwcAkocmV2aXNpb24gNzM5MjIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21p
dW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMjIgKzExMiwzMiBAQCB2b2lkIFNpbXBs
ZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQogCitTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBMT0dGT05UIHdpbkZv
bnQ7CisgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05U
KSwgJndpbkZvbnQpOworICAgIGZsb2F0IHNjYWxlZFNpemUgPSBzY2FsZUZhY3RvciAqIGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsKKyAgICB3aW5Gb250LmxmSGVpZ2h0ID0gLWxyb3Vu
ZGYoc2NhbGVkU2l6ZSk7CisgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndp
bkZvbnQpOworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YSho
Zm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fw
c0ZvbnREYXRhKSB7Ci0gICAgICAgIExPR0ZPTlQgd2luRm9udDsKLSAgICAgICAgR2V0T2JqZWN0
KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbkZvbnQpOwotICAg
ICAgICBmbG9hdCBzbWFsbENhcHNTaXplID0gMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0
ZWRTaXplKCk7Ci0gICAgICAgIC8vIFVubGlrZSBXZWJLaXQgdHJ1bmssIHdlIGRvbid0IG11bHRp
cGx5IHRoZSBzaXplIGJ5IDMyLiAgVGhhdCBzZWVtcwotICAgICAgICAvLyB0byBiZSBzb21lIGtp
bmQgb2YgYXJ0aWZhY3Qgb2YgdGhlaXIgQ0cgYmFja2VuZCwgb3Igc29tZXRoaW5nLgotICAgICAg
ICB3aW5Gb250LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc21hbGxDYXBzU2l6ZSk7Ci0gICAgICAgIEhG
T05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5Gb250KTsKLSAgICAgICAgbV9zbWFs
bENhcHNGb250RGF0YSA9Ci0gICAgICAgICAgICBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRm
b3JtRGF0YShoZm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0g
ICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNG
b250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0
dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250
RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAg
ICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0
aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwogYm9v
bCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAvLyBUaGlzIHVzZWQgdG8gYmUgaW1wbGVtZW50
ZWQgd2l0aCBJTUxhbmdGb250TGluazIsIGJ1dCBzaW5jZSB0aGF0IGNvZGUgaGFzCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhTGludXguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxl
Rm9udERhdGFMaW51eC5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFNtYWxsY2FwcyB2ZXJz
aW9ucyBvZiBmb250cyBhcmUgNzAlIHRoZSBzaXplIG9mIHRoZSBub3JtYWwgZm9udC4KIHN0YXRp
YyBjb25zdCBmbG9hdCBzbWFsbENhcHNGcmFjdGlvbiA9IDAuN2Y7CitzdGF0aWMgY29uc3QgZmxv
YXQgZW1waGFzaXNNYXJrRnJhY3Rpb24gPSAuNTsKIC8vIFRoaXMgaXMgdGhlIGxhcmdlc3QgVkRN
WCB0YWJsZSB3aGljaCB3ZSdsbCB0cnkgdG8gbG9hZCBhbmQgcGFyc2UuCiBzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heFZETVhUYWJsZVNpemUgPSAxMDI0ICogMTAyNDsgIC8vIDEgTUIKIApAQCAtMTQx
LDE2ICsxNDIsMjggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsK
IH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNv
bnN0Cit7CisgICAgY29uc3QgZmxvYXQgc2NhbGVkU2l6ZSA9IGxyb3VuZGYoZm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkU2l6ZSgpICogc2NhbGVGYWN0b3IpOworICAgIHJldHVybiBuZXcgU2ltcGxl
Rm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3JtRGF0YSwgc2NhbGVkU2l6ZSksIGlz
Q3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIGNv
bnN0IGZsb2F0IHNtYWxsQ2Fwc1NpemUgPSBscm91bmRmKGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSAqIHNtYWxsQ2Fwc0ZyYWN0aW9uKTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0
YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKG1fcGxhdGZvcm1EYXRhLCBz
bWFsbENhcHNTaXplKSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAgaWYgKCFt
X3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzbWFsbENhcHNGcmFjdGlvbik7CiAKICAgICByZXR1
cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnRE
YXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAg
ICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRp
b24sIGVtcGhhc2lzTWFya0ZyYWN0aW9uKTsKKworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0Zv
bnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgU2tQYWludCBw
YWludDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCShy
ZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21w
bGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBG
b250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyog
Y29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcm
IC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAq
LywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGJv
b2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCkKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1Np
bXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDcz
OTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0
YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksMTggKzc5LDMxIEBAIHZvaWQgU2lt
cGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBT
aW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIHJldHVybiBuZXcg
U2ltcGxlRm9udERhdGEoCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2Zv
bnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAorICAgICAgICBz
Y2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwgbV9wbGF0Zm9ybURh
dGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCkpLAor
ICAgICAgICBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJIHRoaW5rIHdlIHdhbnQgdG8g
YXNrIEZvbnRDb25maWcgZm9yIHRoZSByaWdodCBmb250IGFnYWluLgogICAgIGlmICghbV9zbWFs
bENhcHNGb250RGF0YSkKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVG
b250RGF0YSgKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRf
Z2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpLAotICAgICAgICAgICAg
MC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCksIG1fcGxhdGZvcm1EYXRhLnN5
bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpKSwKLSAgICAg
ICAgICAgIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgIG1fc21hbGxDYXBzRm9udERh
dGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKIAogICAgIHJldHVybiBt
X3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01hcmtGb250RGF0YSkKKyAgICAgICAg
bV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwg
LjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2lt
cGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
aW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRf
Zm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCShyZXZpc2lvbiA3MzkyMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJDb250ZXh0U2hhZG93LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1
ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z2RrL2dkay5oPgpAQCAtMzE5LDYgKzMyMCwxMSBAQCB2
b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgY2Fpcm9fcmVzdG9y
ZShjcik7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChH
cmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywg
Y29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBwb2lu
dCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiAvLyBXZSBzaG91bGQgY3JlYXRlIHRoZSBsYXlvdXQgd2l0aCBvdXIg
YWN0dWFsIGNvbnRleHQgYnV0IHdlIGNhbid0IGFjY2VzcyBpdCBmcm9tIGhlcmUuCiBzdGF0aWMg
UGFuZ29MYXlvdXQqIGdldERlZmF1bHRQYW5nb0xheW91dChjb25zdCBUZXh0UnVuJiBydW4pCiB7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRIYWlrdS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250SGFpa3UuY3Bw
CShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9u
dEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsMTAgQEAgdm9pZCBGb250Ojpk
cmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
K3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRl
eHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWlj
U3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8q
IGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYg
cnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBo
T3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxlRm9udERhdGFIYWlrdS5jcHAJKHJl
dmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9TaW1wbGVG
b250RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTcgKzY2LDMwIEBAIHZvaWQg
U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRh
KiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnREZXNj
cmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgZGVz
Yy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVk
U2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoZGVzYywgZGVz
Yy5mYW1pbHkoKS5mYW1pbHkoKSk7CisgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShmb250
UGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0
YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0
YSkgewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlwdGlvbihmb250
RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoMC43MGYgKiBmb250
RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxhdGZvcm1EYXRhIGZv
bnRQbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5mYW1pbHkoKSk7Ci0gICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoZm9udFBsYXRmb3JtRGF0YSwg
aXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnRE
YXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERl
c2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAor
U2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1f
ZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBz
Y2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhh
c2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJh
Y3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAg
Ly8gRklYTUU6IFdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyB0byBsb2FkIG5vbi1BU0NJ
SSBlbmNvZGluZyBzaXRlcwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MzkyMikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMSBAQCBzdGF0aWMgaW5saW5lIENHRmxvYXQg
Y2VpbENHRmxvYXQoQ0dGbG9hCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENHRmxvYXQ+KGNlaWwo
ZikpOwogfQogCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29udHJvbGxlcihj
b25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIGJvb2wgbWF5VXNlTmF0dXJhbFdy
aXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cykKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0
IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgYm9vbCBtYXlVc2VOYXR1cmFsV3JpdGlu
Z0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRz
LCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6IG1fZm9udCgqZm9udCkKICAgICAsIG1fcnVu
KHJ1bikKICAgICAsIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24obWF5VXNlTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb24pCisgICAgLCBtX2ZvclRleHRFbXBoYXNpcyhmb3JUZXh0RW1waGFz
aXMpCiAgICAgLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKICAgICAsIG1fZW5kKHJ1bi5sZW5ndGgo
KSkKICAgICAsIG1fdG90YWxXaWR0aCgwKQpAQCAtMjQwLDcgKzI0MSw3IEBAIHZvaWQgQ29tcGxl
eFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGwKICAgICAgICAgICAgICAgICBuZXh0R2x5cGhE
YXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3RlcihVMTZfR0VUX1NVUFBMRU1FTlRBUlko
Y3VyclstMV0sIGN1cnJbMF0pLCBmYWxzZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgbmV4dEdseXBoRGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0
ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2Fwcyk7CisgICAgICAgICAgICBuZXh0R2x5cGhE
YXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3RlcigqY3VyciwgZmFsc2UsIGZvcmNlU21h
bGxDYXBzID8gU21hbGxDYXBzVmFyaWFudCA6IEF1dG9WYXJpYW50KTsKIAogICAgICAgICBpZiAo
IWlzU3Vycm9nYXRlICYmIG1fZm9udC5pc1NtYWxsQ2FwcygpKSB7CiAgICAgICAgICAgICBuZXh0
SXNTbWFsbENhcHMgPSBmb3JjZVNtYWxsQ2FwcyB8fCAobmV3QyA9IHVfdG91cHBlcihjKSkgIT0g
YzsKQEAgLTUzNiw2ICs1MzcsOSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0
R2x5cGhzCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB3aWR0aFNpbmNlTGFz
dFJvdW5kaW5nICs9IGFkdmFuY2Uud2lkdGg7CiAKKyAgICAgICAgICAgIGlmIChtX2ZvclRleHRF
bXBoYXNpcyAmJiAoIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1waGFzaXMoY2gpIHx8IChVX0dFVF9H
Q19NQVNLKGNoKSAmIFVfR0NfTV9NQVNLKSkpCisgICAgICAgICAgICAgICAgZ2x5cGggPSBmb250
RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgICAgICBhZHZhbmNlLmhlaWdodCAqPSAtMTsK
ICAgICAgICAgICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBlbmQoYWR2YW5jZSk7CiAgICAgICAg
ICAgICBtX2FkanVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkocmV2
aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBUZXh0
UnVuOwogLy8gT1MgVmVyc2lvbnMgPj0gMTAuNiwgQVRTVUkgaXMgdXNlZCBvdGhlcndpc2UuCiBj
bGFzcyBDb21wbGV4VGV4dENvbnRyb2xsZXIgewogcHVibGljOgotICAgIENvbXBsZXhUZXh0Q29u
dHJvbGxlcihjb25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYsIGJvb2wgbWF5VXNlTmF0dXJhbFdy
aXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBm
YWxsYmFja0ZvbnRzID0gMCk7CisgICAgQ29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQq
LCBjb25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiA9IGZh
bHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBi
b29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAogICAgIC8vIEFkdmFuY2UgYW5kIGVtaXQg
Z2x5cGhzIHVwIHRvIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyLgogICAgIHZvaWQgYWR2YW5jZSh1
bnNpZ25lZCB0bywgR2x5cGhCdWZmZXIqID0gMCk7CkBAIC0xNTYsNiArMTU2LDcgQEAgcHJpdmF0
ZToKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29uc3QgVGV4dFJ1biYgbV9ydW47CiAg
ICAgYm9vbCBtX21heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOworICAgIGJvb2wgbV9mb3JU
ZXh0RW1waGFzaXM7CiAKICAgICBWZWN0b3I8VUNoYXIsIDI1Nj4gbV9zbWFsbENhcHNCdWZmZXI7
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4VGV4dE1h
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENv
bXBsZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwz
NCArNTUsNTUgQEAgRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VAogICAg
IHJldHVybiBGbG9hdFJlY3QocG9pbnQueCgpICsgZmxvb3JmKGJlZm9yZVdpZHRoKSwgcG9pbnQu
eSgpLCByb3VuZGYoYWZ0ZXJXaWR0aCkgLSBmbG9vcmYoYmVmb3JlV2lkdGgpLCBoKTsKIH0KIAot
dm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGZyb20sIGludCB0bykgY29uc3QKK2Zsb2F0IEZvbnQ6OmdldEdseXBo
c0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBpbnQgZnJvbSwg
aW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpc09yTm90IGZv
clRleHRFbXBoYXNpcykgY29uc3QKIHsKLSAgICAvLyBUaGlzIGdseXBoIGJ1ZmZlciBob2xkcyBv
dXIgZ2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCi0gICAgR2x5
cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2U7CiAKLSAgICBm
bG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRy
b2xsZXIodGhpcywgcnVuKTsKKyAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcih0
aGlzLCBydW4sIGZhbHNlLCAwLCBmb3JUZXh0RW1waGFzaXMpOwogICAgIGNvbnRyb2xsZXIuYWR2
YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSh0bywgJmdseXBoQnVmZmVyKTsKLSAgICAK
LSAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2
ZSB1cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsK
LSAgICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9hdCBhZnRlcldpZHRoID0gY29udHJv
bGxlci5ydW5XaWR0aFNvRmFyKCk7CiAKICAgICBpZiAocnVuLnJ0bCgpKSB7Ci0gICAgICAgIHN0
YXJ0WCArPSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSArIGNvbnRyb2xsZXIuZmluYWxSb3VuZGlu
Z1dpZHRoKCkgLSBhZnRlcldpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5jZSA9IGNvbnRyb2xs
ZXIudG90YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJvdW5kaW5nV2lkdGgoKSAtIGFmdGVy
V2lkdGg7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQgPSBnbHlwaEJ1ZmZlci5zaXplKCkg
LSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytpLCAtLWVuZCkKICAgICAgICAgICAg
IGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKICAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9
IGJlZm9yZVdpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5jZSA9IGJlZm9yZVdpZHRoOworCisg
ICAgcmV0dXJuIGluaXRpYWxBZHZhbmNlOworfQorCit2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBn
bHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBl
YWNoIGdseXBoLgorICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3Rh
cnRYID0gcG9pbnQueCgpICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4s
IGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBh
bnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIg
bm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQ
b2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIo
Y29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVm
ZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKK30KKwordm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBoQnVmZmVy
IGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2
YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVt
cGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBG
bG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAog
ZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJm
bG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHJldmlzaW9uIDczOTIyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTEgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1EZXN0cm95KCkKICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiAgICAgfQogCisg
ICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEgJiYgIWlzQ3VzdG9tRm9udCgpKSB7CisgICAg
ICAgIGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9lbXBoYXNpc01hcmtGb250RGF0YSk7
CisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSAwOworICAgIH0KKwogI2lmZGVmIEJV
SUxESU5HX09OX1RJR0VSCiAgICAgaWYgKG1fc3R5bGVHcm91cCkKICAgICAgICAgd2tSZWxlYXNl
U3R5bGVHcm91cChtX3N0eWxlR3JvdXApOwpAQCAtMzczLDQzICszNzgsNTggQEAgdm9pZCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICNlbmRpZgogfQogCi1TaW1wbGVGb250RGF0
YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRh
OjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
ZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRh
KSB7Ci0gICAgICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgewotICAgICAgICAgICAgRm9udFBsYXRm
b3JtRGF0YSBzbWFsbENhcHNGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7Ci0gICAgICAgICAgICBz
bWFsbENhcHNGb250RGF0YS5tX3NpemUgPSBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgKiBzbWFs
bENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRh
ID0gbmV3IFNpbXBsZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnREYXRhLCB0cnVlLCBmYWxzZSk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
Ci0gICAgICAgICAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpICogc21hbGxD
YXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzbWFs
bENhcHNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6
bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5cGUgaW5mb3JtYXRpb24gKHNjcmVl
bi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0byBhIGRpZmZlcmVudCBzaXplLgot
ICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3ZSdyZSBoYW5k
ZWQgYmFjay4KLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQuc2V0Rm9udChmb250RGVzY3JpcHRp
b24udXNlUHJpbnRlckZvbnQoKSA/IFtzbWFsbENhcHNGb250LmZvbnQoKSBwcmludGVyRm9udF0g
OiBbc21hbGxDYXBzRm9udC5mb250KCkgc2NyZWVuRm9udF0pOwotCi0gICAgICAgICAgICBpZiAo
c21hbGxDYXBzRm9udC5mb250KCkpIHsKLSAgICAgICAgICAgICAgICBOU0ZvbnRNYW5hZ2VyICpm
b250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKLSAgICAgICAg
ICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9IFtmb250TWFuYWdlciB0cmFpdHNP
ZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKLQotICAgICAgICAgICAgICAgIGlmIChtX3Bs
YXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgICAgICAgICAgICAgICAgIGZvbnRUcmFp
dHMgfD0gTlNCb2xkRm9udE1hc2s7Ci0gICAgICAgICAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRh
Lm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9udFRyYWl0cyB8PSBO
U0l0YWxpY0ZvbnRNYXNrOwotCi0gICAgICAgICAgICAgICAgTlNGb250VHJhaXRNYXNrIHNtYWxs
Q2Fwc0ZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNtYWxsQ2Fwc0ZvbnQu
Zm9udCgpXTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhldGljQm9sZCA9
IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc21hbGxDYXBzRm9udFRyYWl0cyAm
IE5TQm9sZEZvbnRNYXNrKTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNGb250Lm1fc3ludGhl
dGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzaykgJiYgIShzbWFsbENh
cHNGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7Ci0KLSAgICAgICAgICAgICAgICBtX3Nt
YWxsQ2Fwc0ZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzbWFsbENh
cHNGb250KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKKyAgICAgICAgRm9u
dFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShtX3BsYXRmb3JtRGF0YSk7CisgICAgICAgIHNj
YWxlZEZvbnREYXRhLm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRhLm1fc2l6ZSAqIHNjYWxlRmFjdG9y
OworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHNjYWxlZEZvbnREYXRhLCB0cnVl
LCBmYWxzZSk7CiAgICAgfQorCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkgKiBzY2FsZUZhY3RvcjsKKyAgICBG
b250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250
TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwg
c2l6ZSk7CisKKyAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0aW9uIChzY3Jl
ZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJlbnQgc2l6ZS4K
KyAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0aGF0IHdlJ3JlIGhhbmRlZCBiYWNr
LgorICAgIHNjYWxlZEZvbnREYXRhLnNldEZvbnQoZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJG
b250KCkgPyBbc2NhbGVkRm9udERhdGEuZm9udCgpIHByaW50ZXJGb250XSA6IFtzY2FsZWRGb250
RGF0YS5mb250KCkgc2NyZWVuRm9udF0pOworCisgICAgaWYgKHNjYWxlZEZvbnREYXRhLmZvbnQo
KSkgeworICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2Vy
IHNoYXJlZEZvbnRNYW5hZ2VyXTsKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIGZvbnRUcmFpdHMg
PSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKV07CisKKyAg
ICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGljQm9sZCkKKyAgICAgICAgICAgIGZv
bnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7CisgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5t
X3N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5TSXRhbGljRm9u
dE1hc2s7CisKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIHNjYWxlZEZvbnRUcmFpdHMgPSBbZm9u
dE1hbmFnZXIgdHJhaXRzT2ZGb250OnNjYWxlZEZvbnREYXRhLmZvbnQoKV07CisgICAgICAgIHNj
YWxlZEZvbnREYXRhLm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1h
c2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKKyAgICAgICAgc2Nh
bGVkRm9udERhdGEubV9zeW50aGV0aWNPYmxpcXVlID0gKGZvbnRUcmFpdHMgJiBOU0l0YWxpY0Zv
bnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKTsKKworICAg
ICAgICByZXR1cm4gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnREYXRhKCZzY2FsZWRGb250RGF0
YSk7CisgICAgfQorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICByZXR1cm4g
MDsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBp
ZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBz
Y2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGll
cik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERh
dGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJr
Rm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0
YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnRE
YXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcgKnN0
cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9j
YXN0PHVuaWNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT107
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3BhbmdvL1NpbXBsZUZvbnREYXRhUGFu
Z28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcGFuZ28vU2lt
cGxlRm9udERhdGFQYW5nby5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODAsMTcgKzgwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgp
CiAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1w
bGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAoreworICAgIEZvbnREZXNjcmlwdGlv
biBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CisgICAgZGVzYy5zZXRT
cGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgp
KTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgp
LmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKHBsYXRmb3JtRGF0YSk7
Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0g
Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Muc2V0U3BlY2lm
aWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7Ci0gICAgICAg
IEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5
KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHBs
YXRmb3JtRGF0YSk7Ci0gICAgfQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNG
b250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01h
cmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
K3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpIHsKKyAgICAgICAgbV9lbXBoYXNp
c01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisg
ICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERh
dGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0
aCkgY29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxRQnJ1c2g+CkBAIC0yNjAsNiArMjYx
LDIyIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBkcmF3
VGV4dENvbW1vbihjdHgsIHJ1biwgcG9pbnQsIGZyb20sIHRvLCBmb250KCksIC8qIGlzQ29tcGxl
eFRleHQgPSAqL3RydWUpOwogfQogCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrSGVpZ2h0KGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQoR3Jh
cGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNv
bnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQg
Ki8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3Zl
cmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFwcmltYXJ5Rm9udCgpLT5wbGF0Zm9ybURhdGEoKS5z
aXplKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAko
cmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdseXBoQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2lu
Y2x1ZGUgIlVuaXNjcmliZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgpAQCAtNjIsMzMgKzYzLDU3IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29t
cGxleFQKICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0
aCksIHBvaW50LnkoKSwgcm91bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwg
aCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250
OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
aW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFz
aXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZm
ZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBo
LgotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGlmIChmb3JUZXh0RW1waGFzaXMp
IHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBmb3JUZXh0RW1waGFzaXMgcGFyZW1ldGVyIHRvIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIHVzZSBpdC4KKyAgICAgICAgTE9HX0VSUk9SKCJOb3QgaW1w
bGVtZW50ZWQgZm9yIHRleHQgZW1waGFzaXMuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
IAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKICAgICBVbmlzY3JpYmVDb250cm9sbGVy
IGNvbnRyb2xsZXIodGhpcywgcnVuKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJvbSk7CiAg
ICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKICAgICBj
b250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291
bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBp
ZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAg
IHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBjb250cm9sbGVyLmFkdmFu
Y2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpIC0gYWZ0ZXJXaWR0aDsKLSAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9y
ZVdpZHRoOworICAgICAgICByZXR1cm4gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkgLSBhZnRl
cldpZHRoOworICAgIH0KKyAgICByZXR1cm4gYmVmb3JlV2lkdGg7Cit9CisKK3ZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9s
ZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAg
IEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgp
ICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlcik7CisKKyAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0
aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFy
dGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50
KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhC
dWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBzdGFydFBvaW50KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwor
ICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4
VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAg
IGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdF
bXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50
LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9u
dERhdGFXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMCwyNiArMTEwLDM4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgp
CiAgICAgZGVsZXRlIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiB9CiAKLVNpbXBsZUZvbnREYXRh
KiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBm
bG9hdCBzY2FsZUZhY3RvcikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEp
IHsKLSAgICAgICAgZmxvYXQgc21hbGxDYXBzSGVpZ2h0ID0gY1NtYWxsQ2Fwc0ZvbnRTaXplTXVs
dGlwbGllciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICAgICAgZmxvYXQgc2NhbGVkU2l6
ZSA9IHNjYWxlRmFjdG9yICogbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwogICAgICAgICBpZiAoaXND
dXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9u
dERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAgICAgICAgc21hbGxDYXBzRm9udERhdGEuc2V0
U2l6ZShzbWFsbENhcHNIZWlnaHQpOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IG5ldyBTaW1wbGVGb250RGF0YShzbWFsbENhcHNGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HRk9OVCB3aW5mb250OwotICAgICAgICAgICAg
R2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbmZv
bnQpOwotICAgICAgICAgICAgd2luZm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc0hl
aWdodCAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAzMikpOwotICAgICAgICAgICAg
SEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndpbmZvbnQpOwotICAgICAgICAgICAg
bV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRh
KGhmb250LCBzbWFsbENhcHNIZWlnaHQsIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwg
bV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpLCBtX3BsYXRmb3JtRGF0YS51c2VHREko
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNj
YWxlZEZvbnQobV9wbGF0Zm9ybURhdGEpOworICAgICAgICAgICAgc2NhbGVkRm9udC5zZXRTaXpl
KHNjYWxlZFNpemUpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2Fs
ZWRGb250LCB0cnVlLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9CisKKyAgICAgICAgTE9HRk9O
VCB3aW5mb250OworICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSwgc2l6
ZW9mKExPR0ZPTlQpLCAmd2luZm9udCk7CisgICAgICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJv
dW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpID8gMSA6IDMyKSk7Cisg
ICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzY2Fs
ZWRTaXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZvcm1EYXRhLnN5
bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpLCBpc0N1c3RvbUZvbnQo
KSwgZmFsc2UpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
eworICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250
RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgY1NtYWxsQ2Fwc0ZvbnRTaXpl
TXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IFN1cHBvcnQgY3VzdG9tIGZvbnRzLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDcz
OTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFVuaXNjcmliZUNv
bnRyb2xsZXI6OmFkdmFuY2UodW5zaWduCiAgICAgICAgIFVDaGFyIGMgPSAqY3VycjsKIAogICAg
ICAgICBib29sIGZvcmNlU21hbGxDYXBzID0gaXNTbWFsbENhcHMgJiYgKFVfR0VUX0dDX01BU0so
YykgJiBVX0dDX01fTUFTSyk7Ci0gICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERh
dGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcykuZm9udERhdGE7Cisg
ICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIs
IGZhbHNlLCBmb3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCku
Zm9udERhdGE7CiAgICAgICAgIGlmIChtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAg
ICAgbmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIo
YykpICE9IGM7CiAgICAgICAgICAgICBpZiAobmV4dElzU21hbGxDYXBzKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFdpbkNFLmNwcAkocmV2aXNpb24gNzM5
MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMTEgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4
dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZs
b2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNFLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NpbXBsZUZvbnREYXRhV2luQ0Uu
Y3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
U2ltcGxlRm9udERhdGFXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDIwICs2NCwzMiBA
QCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPSAwOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxl
ZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBz
Y2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2MoZm9udERl
c2NyaXB0aW9uKTsKKyAgICBmb250RGVzYy5zZXRDb21wdXRlZFNpemUobHJvdW5kZihzY2FsZUZh
Y3RvciAqIGZvbnREZXNjLmNvbXB1dGVkU2l6ZSgpKSk7CisgICAgZm9udERlc2Muc2V0U3BlY2lm
aWVkU2l6ZShscm91bmRmKHNjYWxlRmFjdG9yICogZm9udERlc2Muc3BlY2lmaWVkU2l6ZSgpKSk7
CisgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnRE
ZXNjLmtleXdvcmRTaXplKCkpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQgPSBmb250
Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVzYywgbV9wbGF0Zm9ybURh
dGEuZmFtaWx5KCkpOworICAgIHJldHVybiByZXN1bHQgPyBuZXcgU2ltcGxlRm9udERhdGEoKnJl
c3VsdCkgOiAwOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAog
ewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRp
b24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgZm9udERlc2Muc2V0Q29tcHV0
ZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5jb21wdXRlZFNpemUoKSkpOwotICAgICAg
ICBmb250RGVzYy5zZXRTcGVjaWZpZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5zcGVj
aWZpZWRTaXplKCkpKTsKLSAgICAgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZigw
LjcwZiAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSogcmVzdWx0ID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERl
c2MsIG1fcGxhdGZvcm1EYXRhLmZhbWlseSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAg
ICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoKnJlc3VsdCk7
Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENh
cHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAg
cmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVG
b250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQor
ICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2Ny
aXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwog
RFdPUkQgZ2V0S25vd25Gb250Q29kZVBhZ2VzKGNvbnN0IHdjaGFyX3QqIGZhbWlseSk7CiAKIGJv
b2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4
L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNCBAQCBGbG9hdFJl
Y3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAjZW5kaWYKIH0KIAorZmxvYXQgRm9u
dDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiAvKiBy
dW4gKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8sIEdseXBoQnVmZmVyJiAvKiBnbHlw
aEJ1ZmZlciAqLywgRm9yVGV4dEVtcGhhc2lzT3JOb3QgLyogZm9yVGV4dEVtcGhhc2lzICovKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBieSBtb3ZpbmcgbW9zdCBvZiB0
aGUgZHJhd0NvbXBsZXhUZXh0KCkgaW1wbGVtZW50YXRpb24gaW4gaGVyZS4gU2V0IHVwIHRoZQor
ICAgIC8vIENvbXBsZXhUZXh0Q29udHJvbGxlciBhY2NvcmRpbmcgdG8gZm9yVGV4dEVtcGhhc2lz
LgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKIHsK
ICNpZiBPUyhXSU5ET1dTKSB8fCBPUyhEQVJXSU4pCkBAIC0xMzAsMTIgKzEzOCwyMiBAQCB2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAKICAgICAvLyBEcmF3IHRoZSBn
bHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFgu
CiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3
R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAg
ZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKICNlbHNl
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgR2x5cGhCdWZmZXIgZ2x5cGhC
dWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
ckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMp
OworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0UG9p
bnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOworfQogCiBmbG9hdCBG
b250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBj
b25zdAogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0
YVd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBs
ZUZvbnREYXRhV3guY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE3ICs5
MCwzMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogI2VuZGlmCiB9
CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25z
dAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNj
cmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERl
c2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3Jt
RGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBs
ZUZvbnREYXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKK30KKwogU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxD
YXBzRm9udERhdGEpewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlw
dGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoMC43
MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxhdGZv
cm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9ybURhdGEs
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250
RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFt
X2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0g
c2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBo
YXNpc01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBXZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gbG9hZCBub24tQVND
SUkgZW5jb2Rpbmcgc2l0ZXMKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1l
cy5oCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzIsMjAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBOYW1lcyBoZXJlIGFyZSB0YWtlbiBmcm9tIHRoZSBVbmljb2Rl
IHN0YW5kYXJkLgogCi0vLyBOb3RlLCB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3QgVUNo
YXIzMiwgd2hpY2ggbWFrZXMgdGhlbQorLy8gTm90ZSwgbW9zdCBvZiB0aGVzZSBhcmUgVUNoYXIg
Y29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhlbQogLy8gbW9yZSBjb252ZW5p
ZW50IGZvciBXZWJDb3JlIGNvZGUgdGhhdCBtb3N0bHkgdXNlcyBVVEYtMTYuCiAKK2NvbnN0IFVD
aGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckxpbmUgPSAweDEwMTAwOworY29uc3QgVUNoYXIzMiBh
ZWdlYW5Xb3JkU2VwYXJhdG9yRG90ID0gMHgxMDEwMTsKK2NvbnN0IFVDaGFyIGJsYWNrQ2lyY2xl
ID0gMHgyNUNGOwogY29uc3QgVUNoYXIgYmxhY2tTcXVhcmUgPSAweDI1QTA7Citjb25zdCBVQ2hh
ciBibGFja1VwUG9pbnRpbmdUcmlhbmdsZSA9IDB4MjVCMjsKIGNvbnN0IFVDaGFyIGJ1bGxldCA9
IDB4MjAyMjsKK2NvbnN0IFVDaGFyIGJ1bGxzZXllID0gMHgyNUNFOwogY29uc3QgVUNoYXIgY2Fy
cmlhZ2VSZXR1cm4gPSAweDAwMEQ7CiBjb25zdCBVQ2hhciBldGhpb3BpY1ByZWZhY2VDb2xvbiA9
IDB4MTM2NjsKK2NvbnN0IFVDaGFyIGV0aGlvcGljV29yZHNwYWNlID0gMHgxMzYxOworY29uc3Qg
VUNoYXIgZmlzaGV5ZSA9IDB4MjVDOTsKIGNvbnN0IFVDaGFyIGhlYnJld1B1bmN0dWF0aW9uR2Vy
ZXNoID0gMHgwNUYzOwogY29uc3QgVUNoYXIgaGVicmV3UHVuY3R1YXRpb25HZXJzaGF5aW0gPSAw
eDA1RjQ7CiBjb25zdCBVQ2hhciBob3Jpem9udGFsRWxsaXBzaXMgPSAweDIwMjY7CkBAIC02Myw5
ICs3MCwxNiBAQCBjb25zdCBVQ2hhciByaWdodFNpbmdsZVF1b3RhdGlvbk1hcmsgPSAwCiBjb25z
dCBVQ2hhciByaWdodFRvTGVmdEVtYmVkID0gMHgyMDJCOwogY29uc3QgVUNoYXIgcmlnaHRUb0xl
ZnRNYXJrID0gMHgyMDBGOwogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRPdmVycmlkZSA9IDB4MjAy
RTsKK2NvbnN0IFVDaGFyIHNlc2FtZURvdCA9IDB4RkU0NTsKIGNvbnN0IFVDaGFyIHNvZnRIeXBo
ZW4gPSAweDAwQUQ7CiBjb25zdCBVQ2hhciBzcGFjZSA9IDB4MDAyMDsKK2NvbnN0IFVDaGFyIHRp
YmV0YW5NYXJrSW50ZXJzeWxsYWJpY1RzaGVnID0gMHgwRjBCOworY29uc3QgVUNoYXIgdGliZXRh
bk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFyID0gMHgwRjBDOworY29uc3QgVUNoYXIzMiB1Z2FyaXRp
Y1dvcmREaXZpZGVyID0gMHgxMDM5RjsKIGNvbnN0IFVDaGFyIHdoaXRlQnVsbGV0ID0gMHgyNUU2
OworY29uc3QgVUNoYXIgd2hpdGVDaXJjbGUgPSAweDI1Q0I7Citjb25zdCBVQ2hhciB3aGl0ZVNl
c2FtZURvdCA9IDB4RkU0NjsKK2NvbnN0IFVDaGFyIHdoaXRlVXBQb2ludGluZ1RyaWFuZ2xlID0g
MHgyNUIzOwogY29uc3QgVUNoYXIgeWVuU2lnbiA9IDB4MDBBNTsKIGNvbnN0IFVDaGFyIHplcm9X
aWR0aEpvaW5lciA9IDB4MjAwRDsKIGNvbnN0IFVDaGFyIHplcm9XaWR0aE5vbkpvaW5lciA9IDB4
MjAwQzsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA3Mzky
MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00OTgsNyArNDk4LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJv
eEhlaQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZWRGb250cyAmJiBjdXJyLT5yZW5kZXJl
cigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmxpbmVIZWlnaHQoKS5pc05lZ2F0aXZlKCkpIHsKLSAg
ICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmly
c3RMaW5lKS0+Zm9udCgpLnByaW1hcnlGb250KCkpOworICAgICAgICAgICAgY29uc3QgRm9udCYg
Zm9udCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpOworICAg
ICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoZm9udC5wcmltYXJ5Rm9udCgpKTsKICAgICAgICAg
ICAgIGJvb2wgYmFzZWxpbmVTZXQgPSBmYWxzZTsKICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsK
ICAgICAgICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gMDsKQEAgLTUyMCwxNCArNTIxLDMy
IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKICAgICAgICAgICAg
IGxpbmVIZWlnaHQgPSBjdXJyLT5saW5lSGVpZ2h0KCk7CiAgICAgICAgICAgICBiYXNlbGluZSA9
IGN1cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKTsKICAgICAgICAgICAgIGlmIChj
dXJyLT5pc1RleHQoKSB8fCBpc0lubGluZUZsb3cpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBG
b250JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCk7
CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KGJhc2VsaW5lVHlwZSk7
CisgICAgICAgICAgICAgICAgaW50IGRlc2NlbnQgPSBmb250LmRlc2NlbnQoYmFzZWxpbmVUeXBl
KTsKKyAgICAgICAgICAgICAgICBpZiAoY3Vyci0+aXNUZXh0KCkgJiYgY3Vyci0+cmVuZGVyZXIo
KS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0RW1waGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lz
TWFya05vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVtcGhhc2lzTWFya0hlaWdodCA9
IGZvbnQuZW1waGFzaXNNYXJrSGVpZ2h0KGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IGhhbGZMZWFkaW5nID0gKGZvbnQubGluZVNwYWNpbmcoKSAtIGZvbnQuaGVpZ2h0KCkpIC8gMjsK
KyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnRBc2NlbnQgPSBoYWxmTGVhZGluZyArIGFzY2Vu
dDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnREZXNjZW50ID0gZm9udC5saW5lU3BhY2lu
ZygpIC0gZm9udEFzY2VudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVy
KCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dEVtcGhhc2lzUG9zaXRpb24oKSA9PSBUZXh0RW1w
aGFzaXNQb3NpdGlvbk92ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzY2VudCArPSBl
bXBoYXNpc01hcmtIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1h
eChmb250QXNjZW50LCBhc2NlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdo
dCA9IGJhc2VsaW5lICsgZm9udERlc2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjZW50ICs9IGVtcGhhc2lzTWFya0hlaWdodDsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBtYXgobGluZUhlaWdodCwgYmFz
ZWxpbmUgKyBkZXNjZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgICAgIC8vIEV4YW1pbmUgdGhlIGZvbnQgYm94IGZvciBpbmxpbmUg
Zmxvd3MgYW5kIHRleHQgYm94ZXMgdG8gc2VlIGlmIGFueSBwYXJ0IG9mIGl0IGlzIGFib3ZlIHRo
ZSBiYXNlbGluZS4KICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdG9wIG9mIG91ciBmb250IGJv
eCByZWxhdGl2ZSB0byB0aGUgcm9vdCBib3ggYmFzZWxpbmUgaXMgYWJvdmUgdGhlIHJvb3QgYm94
IGJhc2VsaW5lLCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGNvbnRyaWJ1dGluZyB0
byB0aGUgbWF4QXNjZW50IHZhbHVlLgotICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBj
dXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5hc2NlbnQoYmFzZWxp
bmVUeXBlKSAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0
c0FzY2VudCA9IGFzY2VudCAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgLy8gRGVzY2VudCBpcyBzaW1pbGFyLiAgSWYgYW55IHBhcnQg
b2Ygb3VyIGZvbnQgYm94IGlzIGJlbG93IHRoZSByb290IGJveCdzIGJhc2VsaW5lLCB0aGVuCiAg
ICAgICAgICAgICAgICAgLy8gd2UgY29udHJpYnV0ZSB0byB0aGUgbWF4RGVzY2VudCB2YWx1ZS4K
LSAgICAgICAgICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxl
KG1fZmlyc3RMaW5lKS0+Zm9udCgpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKSArIGN1cnItPmxvZ2lj
YWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBkZXNjZW50ICsg
Y3Vyci0+bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgLy8gUmVwbGFjZWQgZWxlbWVudHMgYWx3YXlzIGFmZmVjdCBib3RoIHRoZSBhc2NlbnQg
YW5kIGRlc2NlbnQuCiAgICAgICAgICAgICAgICAgYWZmZWN0c0FzY2VudCA9IHRydWU7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDcg
KzM1Miw3IEBAIEZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3IKICAgICBy
ZXR1cm4gZXh0cmFPZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1
biYgdGV4dFJ1biwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgdHJ1bmNhdGlv
blBvaW50LCBjb25zdCBJbnRQb2ludCYgdGV4dE9yaWdpbiwKK3N0YXRpYyB2b2lkIHBhaW50VGV4
dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmss
IGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwg
aW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmlnaW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBib3hSZWN0LCBjb25zdCBT
aGFkb3dEYXRhKiBzaGFkb3csIGJvb2wgc3Ryb2tlZCwgYm9vbCBob3Jpem9udGFsKQogewogICAg
IENvbG9yIGZpbGxDb2xvciA9IGNvbnRleHQtPmZpbGxDb2xvcigpOwpAQCAtMzY4LDEzICszNjgs
MjMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpYwogICAgICAgICBl
bHNlIGlmICghb3BhcXVlKQogICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGZpbGxD
b2xvciwgZmlsbENvbG9yU3BhY2UpOwogCi0gICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRP
ZmZzZXQpCi0gICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0
T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGlmIChlbmRPZmZzZXQgPiAwKQotICAgICAgICAgICAgICAgIGNv
bnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwg
IDAsIGVuZE9mZnNldCk7Ci0gICAgICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9u
UG9pbnQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsK
KyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNldCkgeworICAgICAgICAgICAgaWYg
KGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1Rl
eHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwg
ZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4g
KyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZW5kT2Zm
c2V0ID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0
T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwg
dGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXpl
KDAsIGVtcGhhc2lzTWFya09mZnNldCksICAwLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfSBp
ZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNl
dCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lz
TWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtP
ZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIXNoYWRvdykKQEAgLTQ4OCwxMiArNDk4LDE0IEBAIHZv
aWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAvLyAyLiBOb3cgcGFp
bnQgdGhlIGZvcmVncm91bmQsIGluY2x1ZGluZyB0ZXh0IGFuZCBkZWNvcmF0aW9ucyBsaWtlIHVu
ZGVybGluZS9vdmVybGluZSAoaW4gcXVpcmtzIG1vZGUgb25seSkuCiAgICAgQ29sb3IgdGV4dEZp
bGxDb2xvcjsKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CisgICAgQ29sb3IgZW1waGFzaXNN
YXJrQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoID0gc3R5bGVUb1VzZS0+dGV4dFN0
cm9rZVdpZHRoKCk7CiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdyA9IHBhaW50SW5m
by5mb3JjZUJsYWNrVGV4dCA/IDAgOiBzdHlsZVRvVXNlLT50ZXh0U2hhZG93KCk7CiAKICAgICBp
ZiAocGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0KSB7CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBD
b2xvcjo6YmxhY2s7CiAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IENvbG9yOjpibGFjazsKKyAg
ICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgdGV4dEZpbGxDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOwogICAgICAgICAKQEAgLTUwNiw2ICs1MTgs
MTIgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICAv
LyBNYWtlIHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBiYWNr
Z3JvdW5kCiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0ZSgp
KQogICAgICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gY29ycmVjdGVkVGV4dENvbG9yKHRleHRT
dHJva2VDb2xvciwgQ29sb3I6OndoaXRlKTsKKworICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9
IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRF
bXBoYXNpc0NvbG9yKTsKKyAgICAgICAgCisgICAgICAgIC8vIE1ha2UgdGhlIHRleHQgc3Ryb2tl
IGNvbG9yIGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tncm91bmQKKyAgICAgICAgaWYgKHN0
eWxlVG9Vc2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkpCisgICAgICAgICAgICBlbXBoYXNp
c01hcmtDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcihlbXBoYXNpc01hcmtDb2xvciwgQ29sb3I6
OndoaXRlKTsKICAgICB9CiAKICAgICBib29sIHBhaW50U2VsZWN0ZWRUZXh0T25seSA9IChwYWlu
dEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CkBAIC01MTMsNiArNTMxLDcgQEAg
dm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogCiAgICAgQ29sb3Igc2Vs
ZWN0aW9uRmlsbENvbG9yID0gdGV4dEZpbGxDb2xvcjsKICAgICBDb2xvciBzZWxlY3Rpb25TdHJv
a2VDb2xvciA9IHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xvciBzZWxlY3Rpb25FbXBoYXNpc01h
cmtDb2xvciA9IGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHNlbGVjdGlvblN0cm9rZVdp
ZHRoID0gdGV4dFN0cm9rZVdpZHRoOwogICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNo
YWRvdyA9IHRleHRTaGFkb3c7CiAgICAgaWYgKGhhdmVTZWxlY3Rpb24pIHsKQEAgLTUyNCw2ICs1
NDMsMTMgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAg
ICAgICAgc2VsZWN0aW9uRmlsbENvbG9yID0gZm9yZWdyb3VuZDsKICAgICAgICAgfQogCisgICAg
ICAgIENvbG9yIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgPSBwYWludEluZm8uZm9yY2VCbGFja1Rl
eHQgPyBDb2xvcjo6YmxhY2sgOiByZW5kZXJlcigpLT5zZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xv
cigpOworICAgICAgICBpZiAoZW1waGFzaXNNYXJrRm9yZWdyb3VuZC5pc1ZhbGlkKCkgJiYgZW1w
aGFzaXNNYXJrRm9yZWdyb3VuZCAhPSBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcikgeworICAg
ICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkpCisgICAgICAgICAgICAgICAgcGFp
bnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbGVjdGlvbkVt
cGhhc2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrRm9yZWdyb3VuZDsKKyAgICAgICAgfQorCiAg
ICAgICAgIGlmIChSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSByZW5kZXJlcigpLT5nZXRDYWNo
ZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pKSB7CiAgICAgICAgICAgICBjb25zdCBTaGFkb3dEYXRh
KiBzaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogcHNldWRvU3R5bGUtPnRl
eHRTaGFkb3coKTsKICAgICAgICAgICAgIGlmIChzaGFkb3cgIT0gc2VsZWN0aW9uU2hhZG93KSB7
CkBAIC01NjcsNiArNTkzLDE2IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWkKICAgICAgICAgbGVuZ3RoID0gbV90cnVuY2F0aW9uOwogICAgIH0KIAorICAgIGludCBl
bXBoYXNpc01hcmtPZmZzZXQgPSAwOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNN
YXJrID0gc3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygpOworICAgIGlmICghZW1w
aGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogZW1w
aGFzaXNNYXJrRm9udERhdGEgPSBmb250LnByaW1hcnlGb250KCktPmVtcGhhc2lzTWFya0ZvbnRE
YXRhKGZvbnQuZm9udERlc2NyaXB0aW9uKCkpOworICAgICAgICBpZiAoc3R5bGVUb1VzZS0+dGV4
dEVtcGhhc2lzUG9zaXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCisgICAgICAg
ICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSAtZm9udC5hc2NlbnQoLyogRklYTUU6IE5lZWRzIGJh
c2VsaW5lIHR5cGUgKi8pIC0gZW1waGFzaXNNYXJrRm9udERhdGEtPmRlc2NlbnQoLyogRklYTUU6
IE5lZWRzIGJhc2VsaW5lIHR5cGUgKi8pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbXBo
YXNpc01hcmtPZmZzZXQgPSBmb250LmRlc2NlbnQoLyogRklYTUU6IE5lZWRzIGJhc2VsaW5lIHR5
cGUgKi8pICsgZW1waGFzaXNNYXJrRm9udERhdGEtPmFzY2VudCgvKiBGSVhNRTogTmVlZHMgYmFz
ZWxpbmUgdHlwZSAqLyk7CisgICAgfQorCiAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkp
IHsKICAgICAgICAgLy8gRm9yIHN0cm9rZWQgcGFpbnRpbmcsIHdlIGhhdmUgdG8gY2hhbmdlIHRo
ZSB0ZXh0IGRyYXdpbmcgbW9kZS4gIEl0J3MgcHJvYmFibHkgZGFuZ2Vyb3VzIHRvIGxlYXZlIHRo
YXQgbXV0YXRlZCBhcyBhIHNpZGUKICAgICAgICAgLy8gZWZmZWN0LCBzbyBvbmx5IHdoZW4gd2Ug
a25vdyB3ZSdyZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCkBAIC01NzYsOSArNjEyLDE4
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgdXBk
YXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHRleHRGaWxsQ29sb3IsIHRleHRTdHJva2VDb2xv
ciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwogICAgICAgICBp
ZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQb3MpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5Lgot
ICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwg
MCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRT
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdp
dGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCAwLCBsZW5ndGgs
IGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHBhaW50
VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVQb3MsIHNQb3MsIGxlbmd0
aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwg
aXNIb3Jpem9udGFsKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4
dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQb3MsIGxlbmd0aCwgdGV4dE9y
aWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9u
dGFsKCkpOworCisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIGVtcGhhc2lzTWFya0NvbG9yLCB0
ZXh0U3Ryb2tlQ29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgp
KTsKKyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5IHx8IGVQb3Mg
PD0gc1BvcykgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1s
ZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dz
KGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0
LCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4
dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1
biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIGVQb3MsIHNQb3MsIGxlbmd0aCwg
dGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNI
b3Jpem9udGFsKCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHRleHRTdHJva2VXaWR0aCA+
IDApCiAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CkBAIC01OTAsOCArNjM1LDExIEBA
IHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgICAgIGNv
bnRleHQtPnNhdmUoKTsKIAogICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwg
c2VsZWN0aW9uRmlsbENvbG9yLCBzZWxlY3Rpb25TdHJva2VDb2xvciwgc2VsZWN0aW9uU3Ryb2tl
V2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAgIHBhaW50VGV4dFdpdGhT
aGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9y
aWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKLQorICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0
LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3Jp
Z2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwg
aXNIb3Jpem9udGFsKCkpOworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzZWxlY3Rpb25FbXBo
YXNpc01hcmtDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9V
c2UtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250
ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgc1Bv
cywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNl
bGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICB9CiAgICAg
ICAgIGlmIChzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDApCiAgICAgICAgICAgICBjb250ZXh0LT5y
ZXN0b3JlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2MjYsNiArMTYyNiwyNyBAQCBDb2xvciBSZW5kZXJPYmplY3Q6OnNlbGVj
dGlvbkZvcmVncm91bmRDCiAgICAgcmV0dXJuIGNvbG9yOwogfQogCitDb2xvciBSZW5kZXJPYmpl
Y3Q6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKK3sKKyAgICBDb2xvciBjb2xv
cjsKKyAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyB1bnNlbGVjdGFibGUsIG9yIHdlIGFyZSBvbmx5
IHBhaW50aW5nIHRoZSBzZWxlY3Rpb24sCisgICAgLy8gZG9uJ3Qgb3ZlcnJpZGUgdGhlIGZvcmVn
cm91bmQgY29sb3Igd2l0aCB0aGUgc2VsZWN0aW9uIGZvcmVncm91bmQgY29sb3IuCisgICAgaWYg
KHN0eWxlKCktPnVzZXJTZWxlY3QoKSA9PSBTRUxFQ1RfTk9ORQorICAgICAgICB8fCAoZnJhbWUo
KS0+dmlldygpLT5wYWludEJlaGF2aW9yKCkgJiBQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSkp
CisgICAgICAgIHJldHVybiBjb2xvcjsKKworICAgIGlmIChSZWZQdHI8UmVuZGVyU3R5bGU+IHBz
ZXVkb1N0eWxlID0gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pKSB7CisgICAgICAg
IGNvbG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdl
YmtpdFRleHRFbXBoYXNpc0NvbG9yKTsKKyAgICAgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisg
ICAgICAgICAgICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NT
UHJvcGVydHlDb2xvcik7CisgICAgfSBlbHNlCisgICAgICAgIGNvbG9yID0gZnJhbWUoKS0+c2Vs
ZWN0aW9uKCktPmlzRm9jdXNlZEFuZEFjdGl2ZSgpID8KKyAgICAgICAgICAgICAgICB0aGVtZSgp
LT5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSA6CisgICAgICAgICAgICAgICAgdGhl
bWUoKS0+aW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKKworICAgIHJldHVybiBj
b2xvcjsKK30KKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBOb2RlKiBSZW5kZXJPYmplY3Q6
OmRyYWdnYWJsZU5vZGUoYm9vbCBkaHRtbE9LLCBib29sIHVhT0ssIGludCB4LCBpbnQgeSwgYm9v
bCYgZGh0bWxXaWxsRHJhZykgY29uc3QKIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02NzUsNiArNjc1LDcgQEAgcHVibGljOgogICAgIC8vIE9idGFpbnMg
dGhlIHNlbGVjdGlvbiBjb2xvcnMgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIHBhaW50aW5nIGEg
c2VsZWN0aW9uLgogICAgIENvbG9yIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0Owog
ICAgIENvbG9yIHNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OworICAgIENvbG9yIHNl
bGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3Q7CiAKICAgICAvLyBXaGV0aGVyIG9yIG5v
dCBhIGdpdmVuIGJsb2NrIG5lZWRzIHRvIHBhaW50IHNlbGVjdGlvbiBnYXBzLgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRQYWludFNlbGVjdGlvbkdhcHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAkocmV2aXNpb24g
NzM5MjIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg0Nyw2ICs4NDcsNDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJT
dHlsZTo6aHlwaGVuUwogICAgIHJldHVybiBoeXBoZW5NaW51c1N0cmluZzsKIH0KIAorY29uc3Qg
QXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0
Cit7CisgICAgc3dpdGNoICh0ZXh0RW1waGFzaXNNYXJrKCkpIHsKKyAgICBjYXNlIFRleHRFbXBo
YXNpc01hcmtOb25lOgorICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgY2FzZSBUZXh0RW1w
aGFzaXNNYXJrQ3VzdG9tOgorICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygp
OworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdDogeworICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG90U3RyaW5nLCAoJmJ1bGxldCwgMSkpOworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdFN0cmluZywgKCZ3
aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRl
eHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3RTdHJpbmcgOiBvcGVuRG90U3RyaW5nOwor
ICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDaXJjbGU6IHsKKyAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0cmluZywgKCZibGFja0Np
cmNsZSwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3Bl
bkNpcmNsZVN0cmluZywgKCZ3aGl0ZUNpcmNsZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVt
cGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJp
bmcgOiBvcGVuQ2lyY2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtE
b3VibGVDaXJjbGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZywgKCZmaXNoZXllLCAxKSk7CisgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmJ1
bGxzZXllLCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVt
cGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVD
aXJjbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOiB7
CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRUcmlhbmds
ZVN0cmluZywgKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblRyaWFuZ2xlU3RyaW5nLCAoJndoaXRlVXBQ
b2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkg
PT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZFRyaWFuZ2xlU3RyaW5nIDogb3BlblRy
aWFuZ2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtTZXNhbWU6IHsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZFNlc2FtZVN0
cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgmd2hpdGVTZXNhbWVEb3QsIDEpKTsKKyAgICAg
ICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8g
ZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrQXV0bzoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBudWxsQXRvbTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gbnVsbEF0b207Cit9CisKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQp
CiBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+JiBSZW5kZXJTdHlsZTo6aW5pdGlh
bERhc2hib2FyZFJlZ2lvbnMoKQogewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxOCw2ICs3MTgsNyBAQCBwdWJsaWM6CiAgICAg
VGV4dEVtcGhhc2lzTWFyayB0ZXh0RW1waGFzaXNNYXJrKCkgY29uc3Q7CiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCkgY29uc3QgeyByZXR1cm4gcmFyZUlu
aGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0N1c3RvbU1hcms7IH0KICAgICBUZXh0RW1waGFzaXNQ
b3NpdGlvbiB0ZXh0RW1waGFzaXNQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PFRleHRFbXBoYXNpc1Bvc2l0aW9uPihyYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzUG9z
aXRpb24pOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0RW1waGFzaXNNYXJrU3RyaW5n
KCkgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJuIHRydWUgaWYgYW55IHRyYW5zZm9ybSByZWxh
dGVkIHByb3BlcnR5IChjdXJyZW50bHkgdHJhbnNmb3JtLCB0cmFuc2Zvcm1TdHlsZTNEIG9yIHBl
cnNwZWN0aXZlKSAKICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgdHJhbnNmb3JtaW5nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76477</attachid>
            <date>2010-12-13 18:09:19 -0800</date>
            <delta_ts>2010-12-13 18:34:20 -0800</delta_ts>
            <desc>Part 2: Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r19.diff</filename>
            <type>text/plain</type>
            <size>85499</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDI2IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgZHJh
d0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgbWFyaywgcG9pbnQsIGZy
b20sIHRvKTsKKyAgICBlbHNlCisgICAgICAgIGRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRl
eHQoY29udGV4dCwgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25z
dAogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkBAIC00MjAsNCArNDQwLDE4IEBAIGJvb2wgRm9u
dDo6aXNDSktJZGVvZ3JhcGgoVUNoYXIzMiBjKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKK3sKKyAgICBDaGFyQ2F0
ZWdvcnkgY2F0ZWdvcnkgPSBVbmljb2RlOjpjYXRlZ29yeShjKTsKKyAgICBpZiAoY2F0ZWdvcnkg
JiAoU2VwYXJhdG9yX1NwYWNlIHwgU2VwYXJhdG9yX0xpbmUgfCBTZXBhcmF0b3JfUGFyYWdyYXBo
IHwgT3RoZXJfTm90QXNzaWduZWQgfCBPdGhlcl9Db250cm9sIHwgT3RoZXJfRm9ybWF0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3JkLXNlcGFyYXRvciBj
aGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidzIERyYWZ0IDMgTm92
ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8fCBjID09IGFlZ2Vh
bldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRvckRvdAorICAgICAg
ICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFuTWFya0ludGVyc3ls
bGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNvbnN0OwogCiAgICAg
dm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxv
YXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OworICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEF0
b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRv
ID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxv
dyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChy
dW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZsb2F0IGZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdDsKQEAg
LTEzNiwxMCArMTM3LDEzIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29u
c3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+dW5pdHNQZXJFbSgpOyB9CiAgICAgaW50IHNwYWNl
V2lkdGgoKSBjb25zdCB7IHJldHVybiAoaW50KWNlaWxmKHByaW1hcnlGb250KCktPmFkanVzdGVk
U3BhY2VXaWR0aCgpICsgbV9sZXR0ZXJTcGFjaW5nKTsgfQogICAgIGZsb2F0IHRhYldpZHRoKGNv
bnN0IFNpbXBsZUZvbnREYXRhJiBmb250RGF0YSkgY29uc3QgeyByZXR1cm4gOCAqIGNlaWxmKGZv
bnREYXRhLmFkanVzdGVkU3BhY2VXaWR0aCgpICsgbGV0dGVyU3BhY2luZygpKTsgfQorICAgIGlu
dCBlbXBoYXNpc01hcmtBc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgaW50
IGVtcGhhc2lzTWFya0Rlc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgaW50
IGVtcGhhc2lzTWFya0hlaWdodChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAogICAgIGNv
bnN0IFNpbXBsZUZvbnREYXRhKiBwcmltYXJ5Rm9udCgpIGNvbnN0OwogICAgIGNvbnN0IEZvbnRE
YXRhKiBmb250RGF0YUF0KHVuc2lnbmVkKSBjb25zdDsKLSAgICBHbHlwaERhdGEgZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9yLCBib29sIGZvcmNlU21hbGxDYXBzID0g
ZmFsc2UpIGNvbnN0OworICAgIEdseXBoRGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIz
MiwgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCA9IEF1dG9WYXJpYW50KSBjb25zdDsKICAg
ICAvLyBVc2VkIGZvciBjb21wbGV4IHRleHQsIGFuZCBkb2VzIG5vdCB1dGlsaXplIHRoZSBnbHlw
aCBtYXAgY2FjaGUuCiAgICAgY29uc3QgRm9udERhdGEqIGZvbnREYXRhRm9yQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciosIGludCBsZW5ndGgpIGNvbnN0OwogCkBAIC0xNjMsMTcgKzE2NywyOSBAQCBw
cml2YXRlOgogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclRleHRVc2luZ1NWR0ZvbnQoY29u
c3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBj
b25zdDsKICNlbmRpZgogCisgICAgZW51bSBGb3JUZXh0RW1waGFzaXNPck5vdCB7IE5vdEZvclRl
eHRFbXBoYXNpcywgRm9yVGV4dEVtcGhhc2lzIH07CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0
aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXIm
LCBGb3JUZXh0RW1waGFzaXNPck5vdCA9IE5vdEZvclRleHRFbXBoYXNpcykgY29uc3Q7CiAgICAg
dm9pZCBkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OworICAgIHZvaWQgZHJhd0Vt
cGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4m
LCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8s
IGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKLSAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CisgICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAg
dm9pZCBkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEds
eXBoQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0
OwogICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBHbHlw
aEJ1ZmZlciosIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9
IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBvc2l0aW9u
Rm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wgaW5jbHVk
ZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2lt
cGxlVGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKIAorICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKGNv
bnN0IEF0b21pY1N0cmluZyYsIEdseXBoRGF0YSYpIGNvbnN0OworCiAgICAgc3RhdGljIGJvb2wg
Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7CiAKICAgICBDb2RlUGF0aCBj
b2RlUGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0
aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9y
Q29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVy
JiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAg
IHZvaWQgZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBj
b25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CisgICAgdm9pZCBkcmF3
RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRS
dW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBvc2l0
aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGlu
Y2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGgsIGlu
dCBmcm9tLCBpbnQgdG8pIGNvbnN0OwpAQCAtMTk1LDYgKzIxMSw3IEBAIHB1YmxpYzoKICAgICBG
b250U2VsZWN0b3IqIGZvbnRTZWxlY3RvcigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHRyZWF0
QXNTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAn
XG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9X
aWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIGMgPCAweDIwIHx8IChjID49IDB4N0YgJiYgYyA8
IDB4QTApIHx8IGMgPT0gc29mdEh5cGhlbiB8fCAoYyA+PSAweDIwMGMgJiYgYyA8PSAweDIwMGYp
IHx8IChjID49IDB4MjAyYSAmJiBjIDw9IDB4MjAyZSkgfHwgYyA9PSBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlcjsgfQorICAgIHN0YXRpYyBib29sIGNhblJlY2VpdmVUZXh0RW1waGFzaXMoVUNo
YXIzMiBjKTsKIAogICAgIHN0YXRpYyBpbmxpbmUgVUNoYXIgbm9ybWFsaXplU3BhY2VzKFVDaGFy
IGNoYXJhY3RlcikKICAgICB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
YXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTcgKzQwLDIwIEBAIHVz
aW5nIG5hbWVzcGFjZSBVbmljb2RlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdseXBoRGF0
YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgYm9v
bCBmb3JjZVNtYWxsQ2FwcykgY29uc3QKK0dseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGJvb2wgdXNlU21hbGxD
YXBzRm9udCA9IGZvcmNlU21hbGxDYXBzOwotICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFs
bENhcHMoKSkgewotICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7Ci0gICAgICAg
IGlmICh1cHBlckMgIT0gYykgewotICAgICAgICAgICAgYyA9IHVwcGVyQzsKLSAgICAgICAgICAg
IHVzZVNtYWxsQ2Fwc0ZvbnQgPSB0cnVlOwotICAgICAgICB9CisgICAgaWYgKHZhcmlhbnQgPT0g
QXV0b1ZhcmlhbnQpIHsKKyAgICAgICAgaWYgKG1fZm9udERlc2NyaXB0aW9uLnNtYWxsQ2Fwcygp
KSB7CisgICAgICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7CisgICAgICAgICAg
ICBpZiAodXBwZXJDICE9IGMpIHsKKyAgICAgICAgICAgICAgICBjID0gdXBwZXJDOworICAgICAg
ICAgICAgICAgIHZhcmlhbnQgPSBTbWFsbENhcHNWYXJpYW50OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CiAgICAgfQogCiAgICAgaWYg
KG1pcnJvcikKQEAgLTY4LDggKzcxLDggQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNo
YXJhY3RlcihVQwogICAgIH0KIAogICAgIEdseXBoUGFnZSogcGFnZTsKLSAgICBpZiAoIXVzZVNt
YWxsQ2Fwc0ZvbnQpIHsKLSAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBj
YXNlIChub3Qgc21hbGwgY2FwcykuCisgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkg
eworICAgICAgICAvLyBGYXN0ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vcm1hbCB2
YXJpYW50KS4KICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIHBhZ2UgPSBub2Rl
LT5wYWdlKCk7CiAgICAgICAgICAgICBpZiAocGFnZSkgewpAQCAtMTEwLDcgKzExMyw3IEBAIEds
eXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAgICAgICAgICAgICBp
ZiAoZGF0YS5mb250RGF0YSkgewogICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc21hbGxDYXBz
Rm9udERhdGEgZnVuY3Rpb24gc2hvdWxkIG5vdCBub3JtYWxseSByZXR1cm4gMC4KICAgICAgICAg
ICAgICAgICAgICAgLy8gQnV0IGlmIGl0IGRvZXMsIHdlIHdpbGwganVzdCByZW5kZXIgdGhlIGNh
cGl0YWwgbGV0dGVyIGJpZy4KLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9udERh
dGEqIHNtYWxsQ2Fwc0ZvbnREYXRhID0gZGF0YS5mb250RGF0YS0+c21hbGxDYXBzRm9udERhdGEo
bV9mb250RGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBTaW1wbGVGb250
RGF0YSogc21hbGxDYXBzRm9udERhdGEgPSBkYXRhLmZvbnREYXRhLT52YXJpYW50Rm9udERhdGEo
bV9mb250RGVzY3JpcHRpb24sIHZhcmlhbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXNt
YWxsQ2Fwc0ZvbnREYXRhKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7CiAK
QEAgLTE1NywxNCArMTYwLDE0IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0
ZXIoVUMKICAgICAgICAgY29kZVVuaXRzTGVuZ3RoID0gMjsKICAgICB9CiAgICAgY29uc3QgU2lt
cGxlRm9udERhdGEqIGNoYXJhY3RlckZvbnREYXRhID0gZm9udENhY2hlKCktPmdldEZvbnREYXRh
Rm9yQ2hhcmFjdGVycygqdGhpcywgY29kZVVuaXRzLCBjb2RlVW5pdHNMZW5ndGgpOwotICAgIGlm
ICh1c2VTbWFsbENhcHNGb250ICYmIGNoYXJhY3RlckZvbnREYXRhKQotICAgICAgICBjaGFyYWN0
ZXJGb250RGF0YSA9IGNoYXJhY3RlckZvbnREYXRhLT5zbWFsbENhcHNGb250RGF0YShtX2ZvbnRE
ZXNjcmlwdGlvbik7CisgICAgaWYgKHZhcmlhbnQgIT0gTm9ybWFsVmFyaWFudCAmJiBjaGFyYWN0
ZXJGb250RGF0YSkKKyAgICAgICAgY2hhcmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0
YS0+dmFyaWFudEZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKICAgICBpZiAo
Y2hhcmFjdGVyRm9udERhdGEpIHsKICAgICAgICAgLy8gR290IHRoZSBmYWxsYmFjayBnbHlwaCBh
bmQgZm9udC4KICAgICAgICAgR2x5cGhQYWdlKiBmYWxsYmFja1BhZ2UgPSBHbHlwaFBhZ2VUcmVl
Tm9kZTo6Z2V0Um9vdENoaWxkKGNoYXJhY3RlckZvbnREYXRhLCBwYWdlTnVtYmVyKS0+cGFnZSgp
OwogICAgICAgICBHbHlwaERhdGEgZGF0YSA9IGZhbGxiYWNrUGFnZSAmJiBmYWxsYmFja1BhZ2Ut
PmZvbnREYXRhRm9yQ2hhcmFjdGVyKGMpID8gZmFsbGJhY2tQYWdlLT5nbHlwaERhdGFGb3JDaGFy
YWN0ZXIoYykgOiBjaGFyYWN0ZXJGb250RGF0YS0+bWlzc2luZ0dseXBoRGF0YSgpOwogICAgICAg
ICAvLyBDYWNoZSBpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHN5c3RlbSBmYWxsYmFjayBhZ2Fp
biBuZXh0IHRpbWUuCi0gICAgICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAgICAgICBp
ZiAodmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgICAgICAg
ICAvLyBtaXNzaW5nR2x5cGhEYXRhIHJldHVybnMgYSBudWxsIGNoYXJhY3Rlciwgd2hpY2ggaXMg
bm90IHN1aXRhYmxlIGZvciBHREkgdG8gZGlzcGxheS4KICAgICAgICAgICAgIC8vIEFsc28sIHNv
bWV0aW1lcyB3ZSBjYW5ub3QgbWFwIGEgZm9udCBmb3IgdGhlIGNoYXJhY3RlciBvbiBXSU5DRSwg
YnV0IEdESSBjYW4gc3RpbGwKQEAgLTE4Miw3ICsxODUsNyBAQCBHbHlwaERhdGEgRm9udDo6Z2x5
cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgLy8gRXZlbiBzeXN0ZW0gZmFsbGJhY2sgY2FuIGZh
aWw7IHVzZSB0aGUgbWlzc2luZyBnbHlwaCBpbiB0aGF0IGNhc2UuCiAgICAgLy8gRklYTUU6IEl0
IHdvdWxkIGJlIG5pY2VyIHRvIHVzZSB0aGUgbWlzc2luZyBnbHlwaCBmcm9tIHRoZSBsYXN0IHJl
c29ydCBmb250IGluc3RlYWQuCiAgICAgR2x5cGhEYXRhIGRhdGEgPSBwcmltYXJ5Rm9udCgpLT5t
aXNzaW5nR2x5cGhEYXRhKCk7Ci0gICAgaWYgKCF1c2VTbWFsbENhcHNGb250KSB7CisgICAgaWYg
KHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAgICAvLyBT
ZWUgY29tbWVudCBhYm91dCBXSU5DRSBHREkgaGFuZGxpbmcgbmVhciBzZXRHbHlwaERhdGFGb3JD
aGFyYWN0ZXIgYWJvdmUuCiAgICAgICAgIHBhZ2UtPnNldEdseXBoRGF0YUZvckNoYXJhY3Rlcihj
LCBjLCBkYXRhLmZvbnREYXRhKTsKQEAgLTE5NCw0MiArMTk3LDEzNCBAQCBHbHlwaERhdGEgRm9u
dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXZvaWQg
Rm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0
UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25z
dAorYm9vbCBGb250OjpnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBHbHlwaERhdGEmIGdseXBoRGF0YSkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGdseXBo
IGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlw
aC4KLSAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBpZiAobWFyay5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsK
LSAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1bik7CisjaWYgRU5BQkxFKFNWR19GT05UUykK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBTVkcgZm9udHMuCisgICAgaWYgKHByaW1hcnlG
b250KCktPmlzU1ZHRm9udCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAg
IFVDaGFyMzIgY2hhcmFjdGVyID0gbWFya1swXTsKKworICAgIGlmIChVMTZfSVNfU1VSUk9HQVRF
KGNoYXJhY3RlcikpIHsKKyAgICAgICAgaWYgKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoY2hhcmFj
dGVyKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobWFyay5sZW5n
dGgoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVUNoYXIgbG93
ID0gbWFya1sxXTsKKyAgICAgICAgaWYgKCFVMTZfSVNfVFJBSUwobG93KSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBjaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBMRU1FTlRB
UlkoY2hhcmFjdGVyLCBsb3cpOworICAgIH0KKworICAgIGdseXBoRGF0YSA9IGdseXBoRGF0YUZv
ckNoYXJhY3RlcihjaGFyYWN0ZXIsIGZhbHNlLCBFbXBoYXNpc01hcmtWYXJpYW50KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW50IEZvbnQ6OmVtcGhhc2lzTWFya0FzY2VudChjb25zdCBBdG9t
aWNTdHJpbmcmIG1hcmspIGNvbnN0Cit7CisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7Cisg
ICAgaWYgKCFnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0
YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1hcmtGb250RGF0YSk7Cisg
ICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1h
cmtGb250RGF0YS0+YXNjZW50KCk7Cit9CisKK2ludCBGb250OjplbXBoYXNpc01hcmtEZXNjZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaykgY29uc3QKK3sKKyAgICBHbHlwaERhdGEgbWFya0ds
eXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBtYXJrR2x5
cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb25zdCBTaW1wbGVGb250RGF0YSog
bWFya0ZvbnREYXRhID0gbWFya0dseXBoRGF0YS5mb250RGF0YTsKKyAgICBBU1NFUlQobWFya0Zv
bnREYXRhKTsKKyAgICBpZiAoIW1hcmtGb250RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gbWFya0ZvbnREYXRhLT5kZXNjZW50KCk7Cit9CisKK2ludCBGb250OjplbXBoYXNp
c01hcmtIZWlnaHQoY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrKSBjb25zdAoreworICAgIEdseXBo
RGF0YSBtYXJrR2x5cGhEYXRhOworICAgIGlmICghZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKG1h
cmssIG1hcmtHbHlwaERhdGEpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRhLmZvbnREYXRhOworICAgIEFT
U0VSVChtYXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnREYXRhKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiBtYXJrRm9udERhdGEtPmhlaWdodCgpOworfQorCitmbG9hdCBG
b250OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBo
YXNpc09yTm90IGZvclRleHRFbXBoYXNpcykgY29uc3QKK3sKKyAgICBmbG9hdCBpbml0aWFsQWR2
YW5jZTsKKworICAgIFdpZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBmYWxzZSwgZm9yVGV4dEVt
cGhhc2lzKTsKICAgICBpdC5hZHZhbmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdpZHRoID0g
aXQubV9ydW5XaWR0aFNvRmFyOwogICAgIGl0LmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0g
ICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4g
IEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGl0
Lm1fcnVuV2lkdGhTb0ZhcjsKIAogICAgIGlmIChydW4ucnRsKCkpIHsKICAgICAgICAgZmxvYXQg
ZmluYWxSb3VuZGluZ1dpZHRoID0gaXQubV9maW5hbFJvdW5kaW5nV2lkdGg7CiAgICAgICAgIGl0
LmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGZpbmFsUm91bmRpbmdX
aWR0aCArIGl0Lm1fcnVuV2lkdGhTb0ZhciAtIGFmdGVyV2lkdGg7CisgICAgICAgIGluaXRpYWxB
ZHZhbmNlID0gZmluYWxSb3VuZGluZ1dpZHRoICsgaXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJX
aWR0aDsKICAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAg
ICBpbml0aWFsQWR2YW5jZSA9IGJlZm9yZVdpZHRoOwogCi0gICAgLy8gU3dhcCB0aGUgb3JkZXIg
b2YgdGhlIGdseXBocyBpZiByaWdodC10by1sZWZ0LgotICAgIGlmIChydW4ucnRsKCkpCisgICAg
aWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZm
ZXIuc2l6ZSgpIC0gMTsgaSA8IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAg
ICAgICAgICAgICBnbHlwaEJ1ZmZlci5zd2FwKGksIGVuZCk7CisgICAgfQorCisgICAgcmV0dXJu
IGluaXRpYWxBZHZhbmNlOworfQorCit2b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGdseXBoIGJ1ZmZl
ciBob2xkcyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KKyAg
ICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50Lngo
KSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlcik7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CiAKLSAgICAvLyBDYWxjdWxhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBnbHlwaHMg
dG8gYmUgZGlzcGxheWVkIGJ5IGFkZGluZwotICAgIC8vIGFsbCB0aGUgYWR2YW5jZXMgdXAgdG8g
dGhlIGZpcnN0IGdseXBoLgogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFydFgsIHBvaW50
LnkoKSk7Ci0gICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0
YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgc3Rh
cnRQb2ludCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNp
c01hcmtzRm9yU2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZl
cjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2lt
cGxlVGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKwor
ICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRy
YXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBv
aW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKK30KKwordm9pZCBGb250Ojpk
cmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZl
ciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogeyAgIAogICAg
IC8vIERyYXcgZWFjaCBjb250aWd1b3VzIHJ1biBvZiBnbHlwaHMgdGhhdCB1c2UgdGhlIHNhbWUg
Zm9udCBkYXRhLgogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSA9IGdseXBoQnVm
ZmVyLmZvbnREYXRhQXQoMCk7CkBAIC0yNTYsNiArMzUxLDUwIEBAIHZvaWQgRm9udDo6ZHJhd0ds
eXBoQnVmZmVyKEdyYXBoaWNzQ29udGUKICAgICBkcmF3R2x5cGhzKGNvbnRleHQsIGZvbnREYXRh
LCBnbHlwaEJ1ZmZlciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFydFBvaW50
KTsKIH0KIAoraW5saW5lIHN0YXRpYyBmbG9hdCBvZmZzZXRUb01pZGRsZU9mR2x5cGgoY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBHbHlwaCBnbHlwaCkKK3sKKyAgICBpZiAoZm9udERh
dGEtPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBGbG9hdFJlY3QgYm91
bmRzID0gZm9udERhdGEtPmJvdW5kc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0dXJuIGJv
dW5kcy54KCkgKyBib3VuZHMud2lkdGgoKSAvIDI7CisgICAgfQorICAgIC8vIEZJWE1FOiBVc2Ug
Z2x5cGggYm91bmRzIG9uY2UgdGhleSBtYWtlIHNlbnNlIGZvciB2ZXJ0aWNhbCBmb250cy4KKyAg
ICByZXR1cm4gZm9udERhdGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpIC8gMjsKK30KKworaW5saW5l
IHN0YXRpYyBmbG9hdCBvZmZzZXRUb01pZGRsZU9mR2x5cGhBdEluZGV4KGNvbnN0IEdseXBoQnVm
ZmVyJiBnbHlwaEJ1ZmZlciwgc2l6ZV90IGkpCit7CisgICAgcmV0dXJuIG9mZnNldFRvTWlkZGxl
T2ZHbHlwaChnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGkpLCBnbHlwaEJ1ZmZlci5nbHlwaEF0KGkp
KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBHbHlwaERhdGEg
bWFya0dseXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBt
YXJrR2x5cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU2ltcGxlRm9udERh
dGEqIG1hcmtGb250RGF0YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1h
cmtGb250RGF0YSk7CisgICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEdseXBoIG1hcmtHbHlwaCA9IG1hcmtHbHlwaERhdGEuZ2x5cGg7CisgICAgR2x5cGggc3Bh
Y2VHbHlwaCA9IG1hcmtGb250RGF0YS0+c3BhY2VHbHlwaCgpOworCisgICAgZmxvYXQgbWlkZGxl
T2ZMYXN0R2x5cGggPSBvZmZzZXRUb01pZGRsZU9mR2x5cGhBdEluZGV4KGdseXBoQnVmZmVyLCAw
KTsKKyAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQocG9pbnQueCgpICsgbWlkZGxlT2ZMYXN0R2x5
cGggLSBvZmZzZXRUb01pZGRsZU9mR2x5cGgobWFya0ZvbnREYXRhLCBtYXJrR2x5cGgpLCBwb2lu
dC55KCkpOworCisgICAgR2x5cGhCdWZmZXIgbWFya0J1ZmZlcjsKKyAgICBmb3IgKGludCBpID0g
MDsgaSArIDEgPCBnbHlwaEJ1ZmZlci5zaXplKCk7ICsraSkgeworICAgICAgICBmbG9hdCBtaWRk
bGVPZk5leHRHbHlwaCA9IG9mZnNldFRvTWlkZGxlT2ZHbHlwaEF0SW5kZXgoZ2x5cGhCdWZmZXIs
IGkgKyAxKTsKKyAgICAgICAgZmxvYXQgYWR2YW5jZSA9IGdseXBoQnVmZmVyLmFkdmFuY2VBdChp
KSAtIG1pZGRsZU9mTGFzdEdseXBoICsgbWlkZGxlT2ZOZXh0R2x5cGg7CisgICAgICAgIG1hcmtC
dWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoaSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFB
dChpKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnREYXRh
LCBhZHZhbmNlKTsKKyAgICAgICAgbWlkZGxlT2ZMYXN0R2x5cGggPSBtaWRkbGVPZk5leHRHbHlw
aDsKKyAgICB9CisgICAgbWFya0J1ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChnbHlwaEJ1
ZmZlci5zaXplKCkgLSAxKSA9PSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGdseXBoQnVmZmVyLnNp
emUoKSAtIDEpLT5zcGFjZUdseXBoKCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9u
dERhdGEsIDApOworCisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIG1hcmtCdWZmZXIsIHN0
YXJ0UG9pbnQpOworfQorCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25z
dCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdAogewogICAgIFdpZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBmYWxsYmFja0Zv
bnRzLCBnbHlwaE92ZXJmbG93KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsNiAr
MzQ0LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGV4dChjb25zdCBGb24KIH0KICNl
bmRpZgogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0VtcGhhc2lzTWFya3MoY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNv
bnN0IEludFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykKK3sKKyAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb250LmRyYXdFbXBoYXNpc01h
cmtzKHRoaXMsIHJ1biwgbWFyaywgcG9pbnQsIGZyb20sIHRvKTsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdCaWRpVGV4dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBy
dW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJ
KHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzE1LDYgKzMxNSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBzZXRUZXh0RHJhd2luZ01vZGUoVGV4dERyYXdpbmdNb2RlRmxh
Z3MpOwogCiAgICAgICAgIHZvaWQgZHJhd1RleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4m
LCBjb25zdCBJbnRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpOworICAgICAgICB2
b2lkIGRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiAsIGNvbnN0
IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgSW50UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0
byA9IC0xKTsKICAgICAgICAgdm9pZCBkcmF3QmlkaVRleHQoY29uc3QgRm9udCYsIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgZHJhd0hpZ2hsaWdodEZv
clRleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBo
LCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yLCBDb2xvclNwYWNlLCBpbnQgZnJvbSA9IDAs
IGludCB0byA9IC0xKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAg
U2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKGNvbnN0IEZvbgogICAgICwgbV9pc0xvYWRp
bmcoaXNMb2FkaW5nKQogICAgICwgbV9pc0Jyb2tlbklkZW9ncmFwaEZvbnQoZmFsc2UpCiAgICAg
LCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCisgICAgLCBtX2VtcGhhc2lzTWFya0ZvbnREYXRhKDAp
CiAgICAgLCBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKDApCiB7CiAgICAgcGxhdGZvcm1Jbml0
KCk7CkBAIC03NSw2ICs3Niw3IEBAIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShQYXNz
T3duUHQKICAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQogICAgICwgbV9pc0Jyb2tlbklkZW9ncmFw
aEZvbnQoZmFsc2UpCiAgICAgLCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCisgICAgLCBtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKDApCiAgICAgLCBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKDApCiB7
CiAgICAgU1ZHRm9udEZhY2VFbGVtZW50KiBzdmdGb250RmFjZUVsZW1lbnQgPSBtX3N2Z0ZvbnRE
YXRhLT5zdmdGb250RmFjZUVsZW1lbnQoKTsKQEAgLTE5MCwxMSArMTkyLDE1IEBAIFNpbXBsZUZv
bnREYXRhOjp+U2ltcGxlRm9udERhdGEoKQogICAgICAgICBpZiAobV9zbWFsbENhcHNGb250RGF0
YSkKICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0
YShtX3NtYWxsQ2Fwc0ZvbnREYXRhKTsKIAorICAgICAgICBpZiAobV9lbXBoYXNpc01hcmtGb250
RGF0YSkKKyAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250
RGF0YShtX2VtcGhhc2lzTWFya0ZvbnREYXRhKTsKKwogICAgICAgICBpZiAobV9icm9rZW5JZGVv
Z3JhcGhGb250RGF0YSkKICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVD
dXN0b21Gb250RGF0YShtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKTsKICAgICB9CiAKICAgICBk
ZWxldGUgbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBkZWxldGUgbV9lbXBoYXNpc01hcmtGb250
RGF0YTsKICAgICBkZWxldGUgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YTsKIH0KIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNzM5
MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7CiAKK2VudW0gRm9udERhdGFWYXJpYW50
IHsgQXV0b1ZhcmlhbnQsIE5vcm1hbFZhcmlhbnQsIFNtYWxsQ2Fwc1ZhcmlhbnQsIEVtcGhhc2lz
TWFya1ZhcmlhbnQgfTsKIGVudW0gUGl0Y2ggeyBVbmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gsIFZh
cmlhYmxlUGl0Y2ggfTsKIAogY2xhc3MgU2ltcGxlRm9udERhdGEgOiBwdWJsaWMgRm9udERhdGEg
ewpAQCAtNzYsNyArNzcsMjQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNpbXBsZUZvbnREYXRh
KCk7CiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEoKSBjb25zdCB7
IHJldHVybiBtX3BsYXRmb3JtRGF0YTsgfQotICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNG
b250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3Q7CisK
KyAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJikgY29uc3Q7CisgICAgU2ltcGxlRm9udERhdGEqIGVtcGhhc2lzTWFya0ZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworCisgICAgU2ltcGxlRm9udERhdGEqIHZhcmlh
bnRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBGb250RGF0YVZh
cmlhbnQgdmFyaWFudCkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodmFyaWFudCkgewor
ICAgICAgICBjYXNlIFNtYWxsQ2Fwc1ZhcmlhbnQ6CisgICAgICAgICAgICByZXR1cm4gc21hbGxD
YXBzRm9udERhdGEoZGVzY3JpcHRpb24pOworICAgICAgICBjYXNlIEVtcGhhc2lzTWFya1Zhcmlh
bnQ6CisgICAgICAgICAgICByZXR1cm4gZW1waGFzaXNNYXJrRm9udERhdGEoZGVzY3JpcHRpb24p
OworICAgICAgICBjYXNlIEF1dG9WYXJpYW50OgorICAgICAgICBjYXNlIE5vcm1hbFZhcmlhbnQ6
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8U2ltcGxlRm9udERhdGEqPih0aGlzKTsK
KyAgICB9CiAKICAgICBTaW1wbGVGb250RGF0YSogYnJva2VuSWRlb2dyYXBoRm9udERhdGEoKSBj
b25zdDsKICAgICAKQEAgLTE4Myw2ICsyMDEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21t
b25Jbml0KCk7CiAKKyAgICBTaW1wbGVGb250RGF0YSogc2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0OworCiAjaWYgKFBMQVRGT1JN
KFdJTikgJiYgIU9TKFdJTkNFKSkgXAogICAgIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShX
WCkpCiAgICAgdm9pZCBpbml0R0RJRm9udCgpOwpAQCAtMjI3LDYgKzI0Nyw3IEBAIHByaXZhdGU6
CiAgICAgR2x5cGhEYXRhIG1fbWlzc2luZ0dseXBoRGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxl
Rm9udERhdGEqIG1fc21hbGxDYXBzRm9udERhdGE7CisgICAgbXV0YWJsZSBTaW1wbGVGb250RGF0
YSogbV9lbXBoYXNpc01hcmtGb250RGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEq
IG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3
LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBL1VDRC5odG1sI0Nhbm9uaWNhbF9Db21iaW5pbmdf
Q2xhc3NfVmFsdWVzCiBzdGF0aWMgY29uc3QgdWludDhfdCBoaXJhZ2FuYUthdGFrYW5hVm9pY2lu
Z01hcmtzQ29tYmluaW5nQ2xhc3MgPSA4OwogCi1XaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9y
KGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRGb3JHbHlwaEJvdW5kcykK
K1dpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4
dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzLCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6
IG1fZm9udChmb250KQogICAgICwgbV9ydW4ocnVuKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgp
KQpAQCAtNTMsNiArNTMsNyBAQCBXaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZv
bnQqCiAgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6
bWF4KCkpCiAgICAgLCBtX2ZpcnN0R2x5cGhPdmVyZmxvdygwKQogICAgICwgbV9sYXN0R2x5cGhP
dmVyZmxvdygwKQorICAgICwgbV9mb3JUZXh0RW1waGFzaXMoZm9yVGV4dEVtcGhhc2lzKQogewog
ICAgIC8vIElmIHRoZSBwYWRkaW5nIGlzIG5vbi16ZXJvLCBjb3VudCB0aGUgbnVtYmVyIG9mIHNw
YWNlcyBpbiB0aGUgcnVuCiAgICAgLy8gYW5kIGRpdmlkZSB0aGF0IGJ5IHRoZSBwYWRkaW5nIGZv
ciBwZXIgc3BhY2UgYWRkaXRpb24uCkBAIC0xOTksNiArMjAwLDkgQEAgdm9pZCBXaWR0aEl0ZXJh
dG9yOjphZHZhbmNlKGludCBvZmZzZXQsIAogICAgICAgICAgICAgICAgIG1fZmlyc3RHbHlwaE92
ZXJmbG93ID0gbWF4PGZsb2F0PigwLCAtYm91bmRzLngoKSk7CiAgICAgICAgIH0KIAorICAgICAg
ICBpZiAobV9mb3JUZXh0RW1waGFzaXMgJiYgIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1waGFzaXMo
YykpCisgICAgICAgICAgICBnbHlwaCA9IGZvbnREYXRhLT5zcGFjZUdseXBoKCk7CisKICAgICAg
ICAgLy8gQWR2YW5jZSBwYXN0IHRoZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAg
ICAgICBjcCArPSBjbHVzdGVyTGVuZ3RoOwogICAgICAgICBjdXJyZW50Q2hhcmFjdGVyICs9IGNs
dXN0ZXJMZW5ndGg7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0
b3IuaAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRo
SXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTaW1wbGVG
b250RGF0YTsKIGNsYXNzIFRleHRSdW47CiAKIHN0cnVjdCBXaWR0aEl0ZXJhdG9yIHsKLSAgICBX
aWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgYm9vbCBhY2NvdW50Rm9yR2x5cGhC
b3VuZHMgPSBmYWxzZSk7CisgICAgV2lkdGhJdGVyYXRvcihjb25zdCBGb250KiwgY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAs
IGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2UsIGJvb2wgZm9yVGV4dEVtcGhhc2lz
ID0gZmFsc2UpOwogCiAgICAgdm9pZCBhZHZhbmNlKGludCB0bywgR2x5cGhCdWZmZXIqID0gMCk7
CiAgICAgYm9vbCBhZHZhbmNlT25lQ2hhcmFjdGVyKGZsb2F0JiB3aWR0aCwgR2x5cGhCdWZmZXIq
ID0gMCk7CkBAIC02Myw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5HbHlwaEJv
dW5kaW5nQm94WTsKICAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKICAgICBmbG9hdCBt
X2xhc3RHbHlwaE92ZXJmbG93OworICAgIGJvb2wgbV9mb3JUZXh0RW1waGFzaXM7CiB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250Q2hyb21pdW1XaW4uY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiRm9u
dEZhbGxiYWNrTGlzdC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVk
ZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJTa2lhRm9udFdpbi5oIgpAQCAtNTA1LDYg
KzUwNiwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAg
Y29udGV4dC0+Y2FudmFzKCktPmVuZFBsYXRmb3JtUGFpbnQoKTsKIH0KIAordm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4
dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1h
cmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50
IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZv
bnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVyZmxv
dyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBVbmlzY3JpYmVIZWxwZXJUZXh0
UnVuIHN0YXRlKHJ1biwgKnRoaXMpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Gb250TGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4MSw3ICszODEsNyBAQCBib29sIFRleHRSdW5XYWxrZXI6Om5leHRTY3JpcHRSdW4oKQog
ICAgICAgICAvLyAoYW5kIHRoZSBnbHlwaHMgaW4gZWFjaCBBLCBDIGFuZCBUIHNlY3Rpb24gYXJl
IGJhY2t3YXJkcyB0b28pCiAgICAgICAgIGlmICghaGJfdXRmMTZfc2NyaXB0X3J1bl9wcmV2KCZt
X251bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4uY2hhcmFjdGVycygpLCBtX3J1bi5s
ZW5ndGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250
RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWhiX3V0ZjE2X3NjcmlwdF9ydW5fbmV4dCgmbV9u
dW1Db2RlUG9pbnRzLCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNoYXJhY3RlcnMoKSwgbV9ydW4ubGVu
Z3RoKCksICZtX2luZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIGJvb2wgVGV4dFJ1bldhbGtlcjo6bmV4dFNjcmlwdFJ1
bigpCiAgICAgICAgIC8vIGluIHRoZSBoYXJmYnV6eiBkYXRhIHN0cnVjdHVyZXMgdG8gZS5nLiBw
aWNrIHRoZSBjb3JyZWN0IHNjcmlwdCdzIHNoYXBlci4KICAgICAgICAgLy8gU28gd2UgYWxsb3cg
dGhhdCB0byBydW4gZmlyc3QsIHRoZW4gZG8gYSBzZWNvbmQgcGFzcyBvdmVyIHRoZSByYW5nZSBp
dAogICAgICAgICAvLyBmb3VuZCBhbmQgdGFrZSB0aGUgbGFyZ2VzdCBzdWJyZWdpb24gdGhhdCBz
dGF5cyB3aXRoaW4gYSBzaW5nbGUgZm9udC4KLSAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAgIG1fY3VycmVudEZvbnREYXRhID0g
bV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5w
b3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgICAgIHVuc2lnbmVkIGVuZE9mUnVuOwogICAgICAg
ICBmb3IgKGVuZE9mUnVuID0gMTsgZW5kT2ZSdW4gPCBtX2l0ZW0uaXRlbS5sZW5ndGg7ICsrZW5k
T2ZSdW4pIHsKLSAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEg
PSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVt
LnBvcyArIGVuZE9mUnVuXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgICAgIGNv
bnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2Up
LmZvbnREYXRhOwogICAgICAgICAgICAgaWYgKG5leHRGb250RGF0YSAhPSBtX2N1cnJlbnRGb250
RGF0YSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDIyLDcgKzQyMiw3
IEBAIGZsb2F0IFRleHRSdW5XYWxrZXI6OndpZHRoT2ZGdWxsUnVuKCkKIAogdm9pZCBUZXh0UnVu
V2Fsa2VyOjpzZXR1cEZvbnRGb3JTY3JpcHRSdW4oKQogewotICAgIGNvbnN0IEZvbnREYXRhKiBm
b250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9p
dGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICBjb25zdCBGb250RGF0
YSogZm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5n
W21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoJyAn
KS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgbV9pdGVtLmZhY2UgPSBwbGF0Zm9ybURhdGEuaGFyZmJ1
enpGYWNlKCk7CiAgICAgdm9pZCogb3BhcXVlUGxhdGZvcm1EYXRhID0gY29uc3RfY2FzdDxGb250
UGxhdGZvcm1EYXRhKj4oJnBsYXRmb3JtRGF0YSk7CkBAIC02OTAsNiArNjkwLDExIEBAIHZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKK3ZvaWQgRm9u
dDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNv
bnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAv
KiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8s
IGludCAvKiB0byAqLykgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBmbG9h
dCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8sIEdseXBoT3Zl
cmZsb3cqIC8qIGdseXBoT3ZlcmZsb3cgKi8pIGNvbnN0CiB7CiAgICAgVGV4dFJ1bldhbGtlciB3
YWxrZXIocnVuLCAwLCB0aGlzKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNw
cAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMjIg
KzExMiwzMiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQog
CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QK
K3sKKyAgICBMT0dGT05UIHdpbkZvbnQ7CisgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhm
b250KCksIHNpemVvZihMT0dGT05UKSwgJndpbkZvbnQpOworICAgIGZsb2F0IHNjYWxlZFNpemUg
PSBzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsKKyAgICB3aW5G
b250LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc2NhbGVkU2l6ZSk7CisgICAgSEZPTlQgaGZvbnQgPSBD
cmVhdGVGb250SW5kaXJlY3QoJndpbkZvbnQpOworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERh
dGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgp
LCBmYWxzZSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBz
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIExPR0ZPTlQgd2luRm9u
dDsKLSAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dG
T05UKSwgJndpbkZvbnQpOwotICAgICAgICBmbG9hdCBzbWFsbENhcHNTaXplID0gMC43MGYgKiBm
b250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCk7Ci0gICAgICAgIC8vIFVubGlrZSBXZWJLaXQg
dHJ1bmssIHdlIGRvbid0IG11bHRpcGx5IHRoZSBzaXplIGJ5IDMyLiAgVGhhdCBzZWVtcwotICAg
ICAgICAvLyB0byBiZSBzb21lIGtpbmQgb2YgYXJ0aWZhY3Qgb2YgdGhlaXIgQ0cgYmFja2VuZCwg
b3Igc29tZXRoaW5nLgotICAgICAgICB3aW5Gb250LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc21hbGxD
YXBzU2l6ZSk7Ci0gICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5G
b250KTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9Ci0gICAgICAgICAgICBuZXcgU2lt
cGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3Vz
dG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkK
KyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAvLyBUaGlz
IHVzZWQgdG8gYmUgaW1wbGVtZW50ZWQgd2l0aCBJTUxhbmdGb250TGluazIsIGJ1dCBzaW5jZSB0
aGF0IGNvZGUgaGFzCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Np
bXBsZUZvbnREYXRhTGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHJldmlzaW9uIDczOTIyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIC8vIFNtYWxsY2FwcyB2ZXJzaW9ucyBvZiBmb250cyBhcmUgNzAlIHRoZSBzaXplIG9mIHRo
ZSBub3JtYWwgZm9udC4KIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFsbENhcHNGcmFjdGlvbiA9IDAu
N2Y7CitzdGF0aWMgY29uc3QgZmxvYXQgZW1waGFzaXNNYXJrRnJhY3Rpb24gPSAuNTsKIC8vIFRo
aXMgaXMgdGhlIGxhcmdlc3QgVkRNWCB0YWJsZSB3aGljaCB3ZSdsbCB0cnkgdG8gbG9hZCBhbmQg
cGFyc2UuCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heFZETVhUYWJsZVNpemUgPSAxMDI0ICogMTAy
NDsgIC8vIDEgTUIKIApAQCAtMTQxLDE2ICsxNDIsMjggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRh
OjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
ZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgY29uc3QgZmxvYXQgc2NhbGVkU2l6ZSA9
IGxyb3VuZGYoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpICogc2NhbGVGYWN0b3IpOwor
ICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3Jt
RGF0YSwgc2NhbGVkU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBsZUZv
bnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0Zv
bnREYXRhKSB7Ci0gICAgICAgIGNvbnN0IGZsb2F0IHNtYWxsQ2Fwc1NpemUgPSBscm91bmRmKGZv
bnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSAqIHNtYWxsQ2Fwc0ZyYWN0aW9uKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1E
YXRhKG1fcGxhdGZvcm1EYXRhLCBzbWFsbENhcHNTaXplKSwgaXNDdXN0b21Gb250KCksIGZhbHNl
KTsKLSAgICB9CisgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxs
Q2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzbWFsbENhcHNG
cmFjdGlvbik7CiAKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxl
Rm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFz
aXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIGVtcGhhc2lzTWFya0ZyYWN0aW9uKTsKKworICAgIHJl
dHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpj
b250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNv
bnN0CiB7CiAgICAgU2tQYWludCBwYWludDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ZvbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ZvbnRFZmwuY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMSBA
QCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNv
bXBsZXhUZXh0KCkKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVl
VHlwZS5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzks
MTggKzc5LDMxIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9
CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25z
dAoreworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoCisgICAgICAgIEZvbnRQbGF0Zm9y
bURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2Fs
ZWRGb250KCkpLAorICAgICAgICBzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5z
eW50aGV0aWNPYmxpcXVlKCkpLAorICAgICAgICBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQor
CiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBJIHRoaW5rIHdlIHdhbnQgdG8gYXNrIEZvbnRDb25maWcgZm9yIHRoZSByaWdodCBmb250IGFn
YWluLgogICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKLSAgICAgICAgbV9zbWFsbENhcHNG
b250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YSgKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRG
b250KCkpLAotICAgICAgICAgICAgMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCksIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhl
dGljT2JsaXF1ZSgpKSwKLSAgICAgICAgICAgIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAg
ICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24s
IC43KTsKIAogICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01h
cmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9u
dERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBGVF9GYWNlIGZh
Y2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVk
Rm9udCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3Bw
CShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRH
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2Fpcm9V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJDb250ZXh0U2hhZG93LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z2RrL2dkay5oPgpA
QCAtMzE5LDYgKzMyMCwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0Nv
bnRlCiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lz
TWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0
IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25z
dCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiAvLyBXZSBzaG91bGQgY3JlYXRl
IHRoZSBsYXlvdXQgd2l0aCBvdXIgYWN0dWFsIGNvbnRleHQgYnV0IHdlIGNhbid0IGFjY2VzcyBp
dCBmcm9tIGhlcmUuCiBzdGF0aWMgUGFuZ29MYXlvdXQqIGdldERlZmF1bHRQYW5nb0xheW91dChj
b25zdCBUZXh0UnVuJiBydW4pCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0ZvbnRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYWlrdS9Gb250SGFpa3UuY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiAr
OTMsMTAgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21w
bGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8q
IHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50
JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxl
eFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxl
Rm9udERhdGFIYWlrdS5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYsMTcgKzY2LDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7
CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBj
b25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9u
dERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5mYW1pbHkoKSk7CisgICAgcmV0dXJuIG5l
dyBTaW1wbGVGb250RGF0YShmb250UGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2Up
OworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlm
ICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9
IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNp
ZmllZFNpemUoMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5m
YW1pbHkoKSk7Ci0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERh
dGEoZm9udFBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAg
aWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0g
c2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFs
bENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBo
YXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1w
aGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsK
KworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZv
bnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBs
ZW5ndGgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQg
dGhpcyB0byBsb2FkIG5vbi1BU0NJSSBlbmNvZGluZyBzaXRlcwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMSBAQCBz
dGF0aWMgaW5saW5lIENHRmxvYXQgY2VpbENHRmxvYXQoQ0dGbG9hCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENHRmxvYXQ+KGNlaWwoZikpOwogfQogCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4s
IGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cykKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxl
eFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgYm9v
bCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6IG1fZm9u
dCgqZm9udCkKICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdE
aXJlY3Rpb24obWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pCisgICAgLCBtX2ZvclRleHRF
bXBoYXNpcyhmb3JUZXh0RW1waGFzaXMpCiAgICAgLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKICAg
ICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKICAgICAsIG1fdG90YWxXaWR0aCgwKQpAQCAtMjQwLDcg
KzI0MSw3IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGwKICAgICAg
ICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3RlcihV
MTZfR0VUX1NVUFBMRU1FTlRBUlkoY3VyclstMV0sIGN1cnJbMF0pLCBmYWxzZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbmV4dEdseXBoRGF0YSA9IG1fZm9u
dC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2Fwcyk7Cisg
ICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3Rlcigq
Y3VyciwgZmFsc2UsIGZvcmNlU21hbGxDYXBzID8gU21hbGxDYXBzVmFyaWFudCA6IEF1dG9WYXJp
YW50KTsKIAogICAgICAgICBpZiAoIWlzU3Vycm9nYXRlICYmIG1fZm9udC5pc1NtYWxsQ2Fwcygp
KSB7CiAgICAgICAgICAgICBuZXh0SXNTbWFsbENhcHMgPSBmb3JjZVNtYWxsQ2FwcyB8fCAobmV3
QyA9IHVfdG91cHBlcihjKSkgIT0gYzsKQEAgLTUzNiw2ICs1MzcsOSBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICB3aWR0aFNpbmNlTGFzdFJvdW5kaW5nICs9IGFkdmFuY2Uud2lkdGg7CiAKKyAgICAg
ICAgICAgIGlmIChtX2ZvclRleHRFbXBoYXNpcyAmJiAoIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1w
aGFzaXMoY2gpIHx8IChVX0dFVF9HQ19NQVNLKGNoKSAmIFVfR0NfTV9NQVNLKSkpCisgICAgICAg
ICAgICAgICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgICAgICBh
ZHZhbmNlLmhlaWdodCAqPSAtMTsKICAgICAgICAgICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBl
bmQoYWR2YW5jZSk7CiAgICAgICAgICAgICBtX2FkanVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NyArNDcsNyBAQCBjbGFzcyBUZXh0UnVuOwogLy8gT1MgVmVyc2lvbnMgPj0gMTAuNiwgQVRTVUkg
aXMgdXNlZCBvdGhlcndpc2UuCiBjbGFzcyBDb21wbGV4VGV4dENvbnRyb2xsZXIgewogcHVibGlj
OgotICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYs
IGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCk7CisgICAgQ29tcGxleFRleHRD
b250cm9sbGVyKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFs
V3JpdGluZ0RpcmVjdGlvbiA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAogICAg
IC8vIEFkdmFuY2UgYW5kIGVtaXQgZ2x5cGhzIHVwIHRvIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVy
LgogICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCB0bywgR2x5cGhCdWZmZXIqID0gMCk7CkBAIC0x
NTYsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29u
c3QgVGV4dFJ1biYgbV9ydW47CiAgICAgYm9vbCBtX21heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0
aW9uOworICAgIGJvb2wgbV9mb3JUZXh0RW1waGFzaXM7CiAKICAgICBWZWN0b3I8VUNoYXIsIDI1
Nj4gbV9zbWFsbENhcHNCdWZmZXI7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNzM5MjIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSwzNCArNTUsNTUgQEAgRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlv
blJlY3RGb3JDb21wbGV4VAogICAgIHJldHVybiBGbG9hdFJlY3QocG9pbnQueCgpICsgZmxvb3Jm
KGJlZm9yZVdpZHRoKSwgcG9pbnQueSgpLCByb3VuZGYoYWZ0ZXJXaWR0aCkgLSBmbG9vcmYoYmVm
b3JlV2lkdGgpLCBoKTsKIH0KIAotdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb20sIGludCB0bykgY29uc3QK
K2Zsb2F0IEZvbnQ6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZv
clRleHRFbXBoYXNpc09yTm90IGZvclRleHRFbXBoYXNpcykgY29uc3QKIHsKLSAgICAvLyBUaGlz
IGdseXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9y
IGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5p
dGlhbEFkdmFuY2U7CiAKLSAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgQ29tcGxl
eFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuKTsKKyAgICBDb21wbGV4VGV4dENv
bnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbHNlLCAwLCBmb3JUZXh0RW1waGFzaXMp
OwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVXaWR0aCA9
IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSh0bywg
JmdseXBoQnVmZmVyKTsKLSAgICAKLSAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5
cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9h
dCBhZnRlcldpZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCk7CiAKICAgICBpZiAocnVu
LnJ0bCgpKSB7Ci0gICAgICAgIHN0YXJ0WCArPSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSArIGNv
bnRyb2xsZXIuZmluYWxSb3VuZGluZ1dpZHRoKCkgLSBhZnRlcldpZHRoOworICAgICAgICBpbml0
aWFsQWR2YW5jZSA9IGNvbnRyb2xsZXIudG90YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJv
dW5kaW5nV2lkdGgoKSAtIGFmdGVyV2lkdGg7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQg
PSBnbHlwaEJ1ZmZlci5zaXplKCkgLSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytp
LCAtLWVuZCkKICAgICAgICAgICAgIGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKICAgICB9IGVs
c2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5j
ZSA9IGJlZm9yZVdpZHRoOworCisgICAgcmV0dXJuIGluaXRpYWxBZHZhbmNlOworfQorCit2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRl
eHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNv
bnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFu
Y2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBoQnVmZmVyIGdseXBoQnVm
ZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0R2x5cGhzQW5kQWR2YW5j
ZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICAvLyBX
ZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKyAg
ICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICAvLyBE
cmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBp
biBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsK
LSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2lu
dCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50
KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJp
bmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25z
dAoreworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZh
bmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBn
bHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQs
IGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNl
LCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0J
KHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxl
Rm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTEgQEAgdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICAgICAgbV9zbWFsbENhcHNGb250
RGF0YSA9IDA7CiAgICAgfQogCisgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEgJiYgIWlz
Q3VzdG9tRm9udCgpKSB7CisgICAgICAgIGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9l
bXBoYXNpc01hcmtGb250RGF0YSk7CisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSAw
OworICAgIH0KKwogI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgaWYgKG1fc3R5bGVHcm91
cCkKICAgICAgICAgd2tSZWxlYXNlU3R5bGVHcm91cChtX3N0eWxlR3JvdXApOwpAQCAtMzczLDQz
ICszNzgsNTggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICNlbmRp
ZgogfQogCi1TaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9u
dERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgewot
ICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250RGF0YShtX3BsYXRmb3Jt
RGF0YSk7Ci0gICAgICAgICAgICBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgPSBzbWFsbENhcHNG
b250RGF0YS5tX3NpemUgKiBzbWFsbENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAg
ICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnRE
YXRhLCB0cnVlLCBmYWxzZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgICAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9y
bURhdGEuc2l6ZSgpICogc21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250
TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwg
c2l6ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5
cGUgaW5mb3JtYXRpb24gKHNjcmVlbi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0
byBhIGRpZmZlcmVudCBzaXplLgotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhl
IGZvbnQgdGhhdCB3ZSdyZSBoYW5kZWQgYmFjay4KLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQu
c2V0Rm9udChmb250RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSA/IFtzbWFsbENhcHNGb250
LmZvbnQoKSBwcmludGVyRm9udF0gOiBbc21hbGxDYXBzRm9udC5mb250KCkgc2NyZWVuRm9udF0p
OwotCi0gICAgICAgICAgICBpZiAoc21hbGxDYXBzRm9udC5mb250KCkpIHsKLSAgICAgICAgICAg
ICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZv
bnRNYW5hZ2VyXTsKLSAgICAgICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9
IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKLQotICAg
ICAgICAgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgICAg
ICAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7Ci0gICAgICAgICAgICAg
ICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgICAgICAg
ICAgICAgZm9udFRyYWl0cyB8PSBOU0l0YWxpY0ZvbnRNYXNrOwotCi0gICAgICAgICAgICAgICAg
TlNGb250VHJhaXRNYXNrIHNtYWxsQ2Fwc0ZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRz
T2ZGb250OnNtYWxsQ2Fwc0ZvbnQuZm9udCgpXTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNG
b250Lm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEo
c21hbGxDYXBzRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKLSAgICAgICAgICAgICAgICBz
bWFsbENhcHNGb250Lm1fc3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNG
b250TWFzaykgJiYgIShzbWFsbENhcHNGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7Ci0K
LSAgICAgICAgICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENh
Y2hlZEZvbnREYXRhKCZzbWFsbENhcHNGb250KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNDdXN0b21G
b250KCkpIHsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShtX3BsYXRm
b3JtRGF0YSk7CisgICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRh
Lm1fc2l6ZSAqIHNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRh
KHNjYWxlZEZvbnREYXRhLCB0cnVlLCBmYWxzZSk7CiAgICAgfQorCisgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkg
KiBzY2FsZUZhY3RvcjsKKyAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNG
b250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEu
Zm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7CisKKyAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0
eXBlIGluZm9ybWF0aW9uIChzY3JlZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQg
dG8gYSBkaWZmZXJlbnQgc2l6ZS4KKyAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0
aGF0IHdlJ3JlIGhhbmRlZCBiYWNrLgorICAgIHNjYWxlZEZvbnREYXRhLnNldEZvbnQoZm9udERl
c2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCkgPyBbc2NhbGVkRm9udERhdGEuZm9udCgpIHByaW50
ZXJGb250XSA6IFtzY2FsZWRGb250RGF0YS5mb250KCkgc2NyZWVuRm9udF0pOworCisgICAgaWYg
KHNjYWxlZEZvbnREYXRhLmZvbnQoKSkgeworICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFu
YWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKKyAgICAgICAgTlNGb250
VHJhaXRNYXNrIGZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZv
cm1EYXRhLmZvbnQoKV07CisKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGlj
Qm9sZCkKKyAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7CisgICAgICAg
IGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICAgICBmb250
VHJhaXRzIHw9IE5TSXRhbGljRm9udE1hc2s7CisKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIHNj
YWxlZEZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNjYWxlZEZvbnREYXRh
LmZvbnQoKV07CisgICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc3ludGhldGljQm9sZCA9IChmb250
VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TQm9sZEZv
bnRNYXNrKTsKKyAgICAgICAgc2NhbGVkRm9udERhdGEubV9zeW50aGV0aWNPYmxpcXVlID0gKGZv
bnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0
YWxpY0ZvbnRNYXNrKTsKKworICAgICAgICByZXR1cm4gZm9udENhY2hlKCktPmdldENhY2hlZEZv
bnREYXRhKCZzY2FsZWRGb250RGF0YSk7CisgICAgfQorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisKKyAgICByZXR1cm4gMDsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnRE
YXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxs
Q2Fwc0ZvbnRTaXplTXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0
YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9u
dERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVy
biBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250
YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0
CiB7CiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hh
cmFjdGVyc05vQ29weTpjb25zdF9jYXN0PHVuaWNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVu
Z3RoIGZyZWVXaGVuRG9uZTpOT107CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Bh
bmdvL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAJKHJldmlzaW9uIDczOTIy
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdv
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsMTcgKzgwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERh
dGE6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlw
dGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZv
bnREYXRhKHBsYXRmb3JtRGF0YSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZv
bnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0g
ICAgICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21w
dXRlZFNpemUoKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2Ms
IGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0g
bmV3IFNpbXBsZUZvbnREYXRhKHBsYXRmb3JtRGF0YSk7Ci0gICAgfQorICAgICAgICBtX3NtYWxs
Q2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAg
ICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBs
ZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEp
IHsKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9
CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IHRydWU7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3
MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxR
QnJ1c2g+CkBAIC0yNjAsNiArMjYxLDM0IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdy
YXBoaWNzQ29udGUKICAgICBkcmF3VGV4dENvbW1vbihjdHgsIHJ1biwgcG9pbnQsIGZyb20sIHRv
LCBmb250KCksIC8qIGlzQ29tcGxleFRleHQgPSAqL3RydWUpOwogfQogCitpbnQgRm9udDo6ZW1w
aGFzaXNNYXJrQXNjZW50KGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IEZvbnQ6OmVtcGhhc2lzTWFya0Rl
c2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrSGVpZ2h0KGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQoR3Jh
cGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNv
bnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQg
Ki8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3Zl
cmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFwcmltYXJ5Rm9udCgpLT5wbGF0Zm9ybURhdGEoKS5z
aXplKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAko
cmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdseXBoQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2lu
Y2x1ZGUgIlVuaXNjcmliZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgpAQCAtNjIsMzMgKzYzLDU3IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29t
cGxleFQKICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0
aCksIHBvaW50LnkoKSwgcm91bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwg
aCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250
OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
aW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFz
aXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZm
ZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBo
LgotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGlmIChmb3JUZXh0RW1waGFzaXMp
IHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBmb3JUZXh0RW1waGFzaXMgcGFyZW1ldGVyIHRvIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIHVzZSBpdC4KKyAgICAgICAgTE9HX0VSUk9SKCJOb3QgaW1w
bGVtZW50ZWQgZm9yIHRleHQgZW1waGFzaXMuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
IAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKICAgICBVbmlzY3JpYmVDb250cm9sbGVy
IGNvbnRyb2xsZXIodGhpcywgcnVuKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJvbSk7CiAg
ICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKICAgICBj
b250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291
bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBp
ZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAg
IHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBjb250cm9sbGVyLmFkdmFu
Y2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpIC0gYWZ0ZXJXaWR0aDsKLSAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9y
ZVdpZHRoOworICAgICAgICByZXR1cm4gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkgLSBhZnRl
cldpZHRoOworICAgIH0KKyAgICByZXR1cm4gYmVmb3JlV2lkdGg7Cit9CisKK3ZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9s
ZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAg
IEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgp
ICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlcik7CisKKyAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0
aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFy
dGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50
KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhC
dWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBzdGFydFBvaW50KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwor
ICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4
VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAg
IGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdF
bXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50
LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9u
dERhdGFXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMCwyNiArMTEwLDM4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgp
CiAgICAgZGVsZXRlIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiB9CiAKLVNpbXBsZUZvbnREYXRh
KiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBm
bG9hdCBzY2FsZUZhY3RvcikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEp
IHsKLSAgICAgICAgZmxvYXQgc21hbGxDYXBzSGVpZ2h0ID0gY1NtYWxsQ2Fwc0ZvbnRTaXplTXVs
dGlwbGllciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICAgICAgZmxvYXQgc2NhbGVkU2l6
ZSA9IHNjYWxlRmFjdG9yICogbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwogICAgICAgICBpZiAoaXND
dXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9u
dERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAgICAgICAgc21hbGxDYXBzRm9udERhdGEuc2V0
U2l6ZShzbWFsbENhcHNIZWlnaHQpOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IG5ldyBTaW1wbGVGb250RGF0YShzbWFsbENhcHNGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HRk9OVCB3aW5mb250OwotICAgICAgICAgICAg
R2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbmZv
bnQpOwotICAgICAgICAgICAgd2luZm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc0hl
aWdodCAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAzMikpOwotICAgICAgICAgICAg
SEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndpbmZvbnQpOwotICAgICAgICAgICAg
bV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRh
KGhmb250LCBzbWFsbENhcHNIZWlnaHQsIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwg
bV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpLCBtX3BsYXRmb3JtRGF0YS51c2VHREko
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNj
YWxlZEZvbnQobV9wbGF0Zm9ybURhdGEpOworICAgICAgICAgICAgc2NhbGVkRm9udC5zZXRTaXpl
KHNjYWxlZFNpemUpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2Fs
ZWRGb250LCB0cnVlLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9CisKKyAgICAgICAgTE9HRk9O
VCB3aW5mb250OworICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSwgc2l6
ZW9mKExPR0ZPTlQpLCAmd2luZm9udCk7CisgICAgICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJv
dW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpID8gMSA6IDMyKSk7Cisg
ICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzY2Fs
ZWRTaXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZvcm1EYXRhLnN5
bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpLCBpc0N1c3RvbUZvbnQo
KSwgZmFsc2UpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
eworICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250
RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgY1NtYWxsQ2Fwc0ZvbnRTaXpl
TXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IFN1cHBvcnQgY3VzdG9tIGZvbnRzLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDcz
OTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFVuaXNjcmliZUNv
bnRyb2xsZXI6OmFkdmFuY2UodW5zaWduCiAgICAgICAgIFVDaGFyIGMgPSAqY3VycjsKIAogICAg
ICAgICBib29sIGZvcmNlU21hbGxDYXBzID0gaXNTbWFsbENhcHMgJiYgKFVfR0VUX0dDX01BU0so
YykgJiBVX0dDX01fTUFTSyk7Ci0gICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERh
dGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcykuZm9udERhdGE7Cisg
ICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIs
IGZhbHNlLCBmb3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCku
Zm9udERhdGE7CiAgICAgICAgIGlmIChtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAg
ICAgbmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIo
YykpICE9IGM7CiAgICAgICAgICAgICBpZiAobmV4dElzU21hbGxDYXBzKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFdpbkNFLmNwcAkocmV2aXNpb24gNzM5
MjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMTEgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4
dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZs
b2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNFLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NpbXBsZUZvbnREYXRhV2luQ0Uu
Y3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
U2ltcGxlRm9udERhdGFXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDIwICs2NCwzMiBA
QCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPSAwOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxl
ZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBz
Y2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2MoZm9udERl
c2NyaXB0aW9uKTsKKyAgICBmb250RGVzYy5zZXRDb21wdXRlZFNpemUobHJvdW5kZihzY2FsZUZh
Y3RvciAqIGZvbnREZXNjLmNvbXB1dGVkU2l6ZSgpKSk7CisgICAgZm9udERlc2Muc2V0U3BlY2lm
aWVkU2l6ZShscm91bmRmKHNjYWxlRmFjdG9yICogZm9udERlc2Muc3BlY2lmaWVkU2l6ZSgpKSk7
CisgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnRE
ZXNjLmtleXdvcmRTaXplKCkpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQgPSBmb250
Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVzYywgbV9wbGF0Zm9ybURh
dGEuZmFtaWx5KCkpOworICAgIHJldHVybiByZXN1bHQgPyBuZXcgU2ltcGxlRm9udERhdGEoKnJl
c3VsdCkgOiAwOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAog
ewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRp
b24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgZm9udERlc2Muc2V0Q29tcHV0
ZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5jb21wdXRlZFNpemUoKSkpOwotICAgICAg
ICBmb250RGVzYy5zZXRTcGVjaWZpZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5zcGVj
aWZpZWRTaXplKCkpKTsKLSAgICAgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZigw
LjcwZiAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSogcmVzdWx0ID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERl
c2MsIG1fcGxhdGZvcm1EYXRhLmZhbWlseSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAg
ICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoKnJlc3VsdCk7
Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENh
cHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAg
cmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVG
b250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQor
ICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2Ny
aXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwog
RFdPUkQgZ2V0S25vd25Gb250Q29kZVBhZ2VzKGNvbnN0IHdjaGFyX3QqIGZhbWlseSk7CiAKIGJv
b2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4
L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDczOTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNCBAQCBGbG9hdFJl
Y3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAjZW5kaWYKIH0KIAorZmxvYXQgRm9u
dDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiAvKiBy
dW4gKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8sIEdseXBoQnVmZmVyJiAvKiBnbHlw
aEJ1ZmZlciAqLywgRm9yVGV4dEVtcGhhc2lzT3JOb3QgLyogZm9yVGV4dEVtcGhhc2lzICovKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBieSBtb3ZpbmcgbW9zdCBvZiB0
aGUgZHJhd0NvbXBsZXhUZXh0KCkgaW1wbGVtZW50YXRpb24gaW4gaGVyZS4gU2V0IHVwIHRoZQor
ICAgIC8vIENvbXBsZXhUZXh0Q29udHJvbGxlciBhY2NvcmRpbmcgdG8gZm9yVGV4dEVtcGhhc2lz
LgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKIHsK
ICNpZiBPUyhXSU5ET1dTKSB8fCBPUyhEQVJXSU4pCkBAIC0xMzAsMTIgKzEzOCwyMiBAQCB2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAKICAgICAvLyBEcmF3IHRoZSBn
bHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFgu
CiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3
R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAg
ZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKICNlbHNl
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgR2x5cGhCdWZmZXIgZ2x5cGhC
dWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
ckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMp
OworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0UG9p
bnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOworfQogCiBmbG9hdCBG
b250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBj
b25zdAogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0
YVd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBs
ZUZvbnREYXRhV3guY3BwCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE3ICs5
MCwzMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogI2VuZGlmCiB9
CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25z
dAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNj
cmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERl
c2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3Jt
RGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBs
ZUZvbnREYXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKK30KKwogU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxD
YXBzRm9udERhdGEpewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlw
dGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoMC43
MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxhdGZv
cm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9ybURhdGEs
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250
RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFt
X2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0g
c2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBo
YXNpc01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBXZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gbG9hZCBub24tQVND
SUkgZW5jb2Rpbmcgc2l0ZXMKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1l
cy5oCShyZXZpc2lvbiA3MzkyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzIsMjAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBOYW1lcyBoZXJlIGFyZSB0YWtlbiBmcm9tIHRoZSBVbmljb2Rl
IHN0YW5kYXJkLgogCi0vLyBOb3RlLCB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3QgVUNo
YXIzMiwgd2hpY2ggbWFrZXMgdGhlbQorLy8gTm90ZSwgbW9zdCBvZiB0aGVzZSBhcmUgVUNoYXIg
Y29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhlbQogLy8gbW9yZSBjb252ZW5p
ZW50IGZvciBXZWJDb3JlIGNvZGUgdGhhdCBtb3N0bHkgdXNlcyBVVEYtMTYuCiAKK2NvbnN0IFVD
aGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckxpbmUgPSAweDEwMTAwOworY29uc3QgVUNoYXIzMiBh
ZWdlYW5Xb3JkU2VwYXJhdG9yRG90ID0gMHgxMDEwMTsKK2NvbnN0IFVDaGFyIGJsYWNrQ2lyY2xl
ID0gMHgyNUNGOwogY29uc3QgVUNoYXIgYmxhY2tTcXVhcmUgPSAweDI1QTA7Citjb25zdCBVQ2hh
ciBibGFja1VwUG9pbnRpbmdUcmlhbmdsZSA9IDB4MjVCMjsKIGNvbnN0IFVDaGFyIGJ1bGxldCA9
IDB4MjAyMjsKK2NvbnN0IFVDaGFyIGJ1bGxzZXllID0gMHgyNUNFOwogY29uc3QgVUNoYXIgY2Fy
cmlhZ2VSZXR1cm4gPSAweDAwMEQ7CiBjb25zdCBVQ2hhciBldGhpb3BpY1ByZWZhY2VDb2xvbiA9
IDB4MTM2NjsKK2NvbnN0IFVDaGFyIGV0aGlvcGljV29yZHNwYWNlID0gMHgxMzYxOworY29uc3Qg
VUNoYXIgZmlzaGV5ZSA9IDB4MjVDOTsKIGNvbnN0IFVDaGFyIGhlYnJld1B1bmN0dWF0aW9uR2Vy
ZXNoID0gMHgwNUYzOwogY29uc3QgVUNoYXIgaGVicmV3UHVuY3R1YXRpb25HZXJzaGF5aW0gPSAw
eDA1RjQ7CiBjb25zdCBVQ2hhciBob3Jpem9udGFsRWxsaXBzaXMgPSAweDIwMjY7CkBAIC02Myw5
ICs3MCwxNiBAQCBjb25zdCBVQ2hhciByaWdodFNpbmdsZVF1b3RhdGlvbk1hcmsgPSAwCiBjb25z
dCBVQ2hhciByaWdodFRvTGVmdEVtYmVkID0gMHgyMDJCOwogY29uc3QgVUNoYXIgcmlnaHRUb0xl
ZnRNYXJrID0gMHgyMDBGOwogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRPdmVycmlkZSA9IDB4MjAy
RTsKK2NvbnN0IFVDaGFyIHNlc2FtZURvdCA9IDB4RkU0NTsKIGNvbnN0IFVDaGFyIHNvZnRIeXBo
ZW4gPSAweDAwQUQ7CiBjb25zdCBVQ2hhciBzcGFjZSA9IDB4MDAyMDsKK2NvbnN0IFVDaGFyIHRp
YmV0YW5NYXJrSW50ZXJzeWxsYWJpY1RzaGVnID0gMHgwRjBCOworY29uc3QgVUNoYXIgdGliZXRh
bk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFyID0gMHgwRjBDOworY29uc3QgVUNoYXIzMiB1Z2FyaXRp
Y1dvcmREaXZpZGVyID0gMHgxMDM5RjsKIGNvbnN0IFVDaGFyIHdoaXRlQnVsbGV0ID0gMHgyNUU2
OworY29uc3QgVUNoYXIgd2hpdGVDaXJjbGUgPSAweDI1Q0I7Citjb25zdCBVQ2hhciB3aGl0ZVNl
c2FtZURvdCA9IDB4RkU0NjsKK2NvbnN0IFVDaGFyIHdoaXRlVXBQb2ludGluZ1RyaWFuZ2xlID0g
MHgyNUIzOwogY29uc3QgVUNoYXIgeWVuU2lnbiA9IDB4MDBBNTsKIGNvbnN0IFVDaGFyIHplcm9X
aWR0aEpvaW5lciA9IDB4MjAwRDsKIGNvbnN0IFVDaGFyIHplcm9XaWR0aE5vbkpvaW5lciA9IDB4
MjAwQzsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA3Mzky
MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00OTgsNyArNDk4LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJv
eEhlaQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZWRGb250cyAmJiBjdXJyLT5yZW5kZXJl
cigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmxpbmVIZWlnaHQoKS5pc05lZ2F0aXZlKCkpIHsKLSAg
ICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmly
c3RMaW5lKS0+Zm9udCgpLnByaW1hcnlGb250KCkpOworICAgICAgICAgICAgY29uc3QgRm9udCYg
Zm9udCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpOworICAg
ICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoZm9udC5wcmltYXJ5Rm9udCgpKTsKICAgICAgICAg
ICAgIGJvb2wgYmFzZWxpbmVTZXQgPSBmYWxzZTsKICAgICAgICAgICAgIGJhc2VsaW5lID0gMDsK
ICAgICAgICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gMDsKQEAgLTUyMCwxNCArNTIxLDMy
IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWkKICAgICAgICAgICAg
IGxpbmVIZWlnaHQgPSBjdXJyLT5saW5lSGVpZ2h0KCk7CiAgICAgICAgICAgICBiYXNlbGluZSA9
IGN1cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKTsKICAgICAgICAgICAgIGlmIChj
dXJyLT5pc1RleHQoKSB8fCBpc0lubGluZUZsb3cpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBG
b250JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCk7
CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KGJhc2VsaW5lVHlwZSk7
CisgICAgICAgICAgICAgICAgaW50IGRlc2NlbnQgPSBmb250LmRlc2NlbnQoYmFzZWxpbmVUeXBl
KTsKKyAgICAgICAgICAgICAgICBpZiAoY3Vyci0+aXNUZXh0KCkgJiYgY3Vyci0+cmVuZGVyZXIo
KS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0RW1waGFzaXNNYXJrKCkgIT0gVGV4dEVtcGhhc2lz
TWFya05vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVtcGhhc2lzTWFya0hlaWdodCA9
IGZvbnQuZW1waGFzaXNNYXJrSGVpZ2h0KGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
IGhhbGZMZWFkaW5nID0gKGZvbnQubGluZVNwYWNpbmcoKSAtIGZvbnQuaGVpZ2h0KCkpIC8gMjsK
KyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnRBc2NlbnQgPSBoYWxmTGVhZGluZyArIGFzY2Vu
dDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZvbnREZXNjZW50ID0gZm9udC5saW5lU3BhY2lu
ZygpIC0gZm9udEFzY2VudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVy
KCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dEVtcGhhc2lzUG9zaXRpb24oKSA9PSBUZXh0RW1w
aGFzaXNQb3NpdGlvbk92ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzY2VudCArPSBl
bXBoYXNpc01hcmtIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IG1h
eChmb250QXNjZW50LCBhc2NlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdo
dCA9IGJhc2VsaW5lICsgZm9udERlc2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjZW50ICs9IGVtcGhhc2lzTWFya0hlaWdodDsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBtYXgobGluZUhlaWdodCwgYmFz
ZWxpbmUgKyBkZXNjZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgICAgIC8vIEV4YW1pbmUgdGhlIGZvbnQgYm94IGZvciBpbmxpbmUg
Zmxvd3MgYW5kIHRleHQgYm94ZXMgdG8gc2VlIGlmIGFueSBwYXJ0IG9mIGl0IGlzIGFib3ZlIHRo
ZSBiYXNlbGluZS4KICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdG9wIG9mIG91ciBmb250IGJv
eCByZWxhdGl2ZSB0byB0aGUgcm9vdCBib3ggYmFzZWxpbmUgaXMgYWJvdmUgdGhlIHJvb3QgYm94
IGJhc2VsaW5lLCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGNvbnRyaWJ1dGluZyB0
byB0aGUgbWF4QXNjZW50IHZhbHVlLgotICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBj
dXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5hc2NlbnQoYmFzZWxp
bmVUeXBlKSAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0
c0FzY2VudCA9IGFzY2VudCAtIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgLy8gRGVzY2VudCBpcyBzaW1pbGFyLiAgSWYgYW55IHBhcnQg
b2Ygb3VyIGZvbnQgYm94IGlzIGJlbG93IHRoZSByb290IGJveCdzIGJhc2VsaW5lLCB0aGVuCiAg
ICAgICAgICAgICAgICAgLy8gd2UgY29udHJpYnV0ZSB0byB0aGUgbWF4RGVzY2VudCB2YWx1ZS4K
LSAgICAgICAgICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxl
KG1fZmlyc3RMaW5lKS0+Zm9udCgpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKSArIGN1cnItPmxvZ2lj
YWxUb3AoKSA+IDA7CisgICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBkZXNjZW50ICsg
Y3Vyci0+bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgLy8gUmVwbGFjZWQgZWxlbWVudHMgYWx3YXlzIGFmZmVjdCBib3RoIHRoZSBhc2NlbnQg
YW5kIGRlc2NlbnQuCiAgICAgICAgICAgICAgICAgYWZmZWN0c0FzY2VudCA9IHRydWU7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDcg
KzM1Miw3IEBAIEZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3IKICAgICBy
ZXR1cm4gZXh0cmFPZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1
biYgdGV4dFJ1biwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgdHJ1bmNhdGlv
blBvaW50LCBjb25zdCBJbnRQb2ludCYgdGV4dE9yaWdpbiwKK3N0YXRpYyB2b2lkIHBhaW50VGV4
dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmss
IGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwg
aW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmlnaW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBib3hSZWN0LCBjb25zdCBT
aGFkb3dEYXRhKiBzaGFkb3csIGJvb2wgc3Ryb2tlZCwgYm9vbCBob3Jpem9udGFsKQogewogICAg
IENvbG9yIGZpbGxDb2xvciA9IGNvbnRleHQtPmZpbGxDb2xvcigpOwpAQCAtMzY4LDEzICszNjgs
MjMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpYwogICAgICAgICBl
bHNlIGlmICghb3BhcXVlKQogICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGZpbGxD
b2xvciwgZmlsbENvbG9yU3BhY2UpOwogCi0gICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRP
ZmZzZXQpCi0gICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0
T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGlmIChlbmRPZmZzZXQgPiAwKQotICAgICAgICAgICAgICAgIGNv
bnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwg
IDAsIGVuZE9mZnNldCk7Ci0gICAgICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9u
UG9pbnQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsK
KyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNldCkgeworICAgICAgICAgICAgaWYg
KGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1Rl
eHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwg
ZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4g
KyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZW5kT2Zm
c2V0ID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0
T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwg
dGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXpl
KDAsIGVtcGhhc2lzTWFya09mZnNldCksICAwLCBlbmRPZmZzZXQpOworICAgICAgICAgICAgfSBp
ZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNl
dCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lz
TWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtP
ZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIXNoYWRvdykKQEAgLTQ4OCwxMiArNDk4LDE0IEBAIHZv
aWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAvLyAyLiBOb3cgcGFp
bnQgdGhlIGZvcmVncm91bmQsIGluY2x1ZGluZyB0ZXh0IGFuZCBkZWNvcmF0aW9ucyBsaWtlIHVu
ZGVybGluZS9vdmVybGluZSAoaW4gcXVpcmtzIG1vZGUgb25seSkuCiAgICAgQ29sb3IgdGV4dEZp
bGxDb2xvcjsKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CisgICAgQ29sb3IgZW1waGFzaXNN
YXJrQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoID0gc3R5bGVUb1VzZS0+dGV4dFN0
cm9rZVdpZHRoKCk7CiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdyA9IHBhaW50SW5m
by5mb3JjZUJsYWNrVGV4dCA/IDAgOiBzdHlsZVRvVXNlLT50ZXh0U2hhZG93KCk7CiAKICAgICBp
ZiAocGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0KSB7CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBD
b2xvcjo6YmxhY2s7CiAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IENvbG9yOjpibGFjazsKKyAg
ICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgdGV4dEZpbGxDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOwogICAgICAgICAKQEAgLTUwNiw2ICs1MTgs
MTIgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICAv
LyBNYWtlIHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBiYWNr
Z3JvdW5kCiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0ZSgp
KQogICAgICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gY29ycmVjdGVkVGV4dENvbG9yKHRleHRT
dHJva2VDb2xvciwgQ29sb3I6OndoaXRlKTsKKworICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9
IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRF
bXBoYXNpc0NvbG9yKTsKKyAgICAgICAgCisgICAgICAgIC8vIE1ha2UgdGhlIHRleHQgc3Ryb2tl
IGNvbG9yIGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tncm91bmQKKyAgICAgICAgaWYgKHN0
eWxlVG9Vc2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkpCisgICAgICAgICAgICBlbXBoYXNp
c01hcmtDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcihlbXBoYXNpc01hcmtDb2xvciwgQ29sb3I6
OndoaXRlKTsKICAgICB9CiAKICAgICBib29sIHBhaW50U2VsZWN0ZWRUZXh0T25seSA9IChwYWlu
dEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CkBAIC01MTMsNiArNTMxLDcgQEAg
dm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogCiAgICAgQ29sb3Igc2Vs
ZWN0aW9uRmlsbENvbG9yID0gdGV4dEZpbGxDb2xvcjsKICAgICBDb2xvciBzZWxlY3Rpb25TdHJv
a2VDb2xvciA9IHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xvciBzZWxlY3Rpb25FbXBoYXNpc01h
cmtDb2xvciA9IGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHNlbGVjdGlvblN0cm9rZVdp
ZHRoID0gdGV4dFN0cm9rZVdpZHRoOwogICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNo
YWRvdyA9IHRleHRTaGFkb3c7CiAgICAgaWYgKGhhdmVTZWxlY3Rpb24pIHsKQEAgLTUyNCw2ICs1
NDMsMTMgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAg
ICAgICAgc2VsZWN0aW9uRmlsbENvbG9yID0gZm9yZWdyb3VuZDsKICAgICAgICAgfQogCisgICAg
ICAgIENvbG9yIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgPSBwYWludEluZm8uZm9yY2VCbGFja1Rl
eHQgPyBDb2xvcjo6YmxhY2sgOiByZW5kZXJlcigpLT5zZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xv
cigpOworICAgICAgICBpZiAoZW1waGFzaXNNYXJrRm9yZWdyb3VuZC5pc1ZhbGlkKCkgJiYgZW1w
aGFzaXNNYXJrRm9yZWdyb3VuZCAhPSBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcikgeworICAg
ICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkpCisgICAgICAgICAgICAgICAgcGFp
bnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbGVjdGlvbkVt
cGhhc2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrRm9yZWdyb3VuZDsKKyAgICAgICAgfQorCiAg
ICAgICAgIGlmIChSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSByZW5kZXJlcigpLT5nZXRDYWNo
ZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pKSB7CiAgICAgICAgICAgICBjb25zdCBTaGFkb3dEYXRh
KiBzaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogcHNldWRvU3R5bGUtPnRl
eHRTaGFkb3coKTsKICAgICAgICAgICAgIGlmIChzaGFkb3cgIT0gc2VsZWN0aW9uU2hhZG93KSB7
CkBAIC01NjcsNiArNTkzLDE1IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWkKICAgICAgICAgbGVuZ3RoID0gbV90cnVuY2F0aW9uOwogICAgIH0KIAorICAgIGludCBl
bXBoYXNpc01hcmtPZmZzZXQgPSAwOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNN
YXJrID0gc3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygpOworICAgIGlmICghZW1w
aGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoc3R5bGVUb1VzZS0+dGV4dEVtcGhh
c2lzUG9zaXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCisgICAgICAgICAgICBl
bXBoYXNpc01hcmtPZmZzZXQgPSAtZm9udC5hc2NlbnQoLyogRklYTUU6IE5lZWRzIGJhc2VsaW5l
IHR5cGUgKi8pIC0gZm9udC5lbXBoYXNpc01hcmtEZXNjZW50KGVtcGhhc2lzTWFyayk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVtcGhhc2lzTWFya09mZnNldCA9IGZvbnQuZGVzY2VudCgv
KiBGSVhNRTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLykgKyBmb250LmVtcGhhc2lzTWFya0FzY2Vu
dChlbXBoYXNpc01hcmspOworICAgIH0KKwogICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5
KSB7CiAgICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5nZSB0
aGUgdGV4dCBkcmF3aW5nIG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2ZSB0
aGF0IG11dGF0ZWQgYXMgYSBzaWRlCiAgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVuIHdl
IGtub3cgd2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgpAQCAtNTc2LDkgKzYxMSwx
OCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgIHVw
ZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0ZXh0RmlsbENvbG9yLCB0ZXh0U3Ryb2tlQ29s
b3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKICAgICAgICAg
aWYgKCFwYWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4K
LSAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4s
IDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0
U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgMCwgbGVuZ3Ro
LCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0
aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwYWlu
dFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlUG9zLCBzUG9zLCBsZW5n
dGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRl
eHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRleHRP
cmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpv
bnRhbCgpKTsKKworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBlbXBoYXNpc01hcmtDb2xvciwg
dGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2Uo
KSk7CisgICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9z
IDw9IHNQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8t
bGVmdCB0ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93
cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNl
dCwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRl
eHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRS
dW4sIGVtcGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5ndGgs
IHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlz
SG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0ZXh0U3Ryb2tlV2lkdGgg
PiAwKQogICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAtNTkwLDggKzYzNCwxMSBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAgICBj
b250ZXh0LT5zYXZlKCk7CiAKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQs
IHNlbGVjdGlvbkZpbGxDb2xvciwgc2VsZWN0aW9uU3Ryb2tlQ29sb3IsIHNlbGVjdGlvblN0cm9r
ZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRP
cmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAw
LCBpc0hvcml6b250YWwoKSk7Ci0KKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4
dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9y
aWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2VsZWN0aW9uRW1w
aGFzaXNNYXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRv
VXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29u
dGV4dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIHNQ
b3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBz
ZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQogICAg
ICAgICBpZiAoc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwKQogICAgICAgICAgICAgY29udGV4dC0+
cmVzdG9yZSgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjI2LDYgKzE2MjYsMjcgQEAgQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxl
Y3Rpb25Gb3JlZ3JvdW5kQwogICAgIHJldHVybiBjb2xvcjsKIH0KIAorQ29sb3IgUmVuZGVyT2Jq
ZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Cit7CisgICAgQ29sb3IgY29s
b3I7CisgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgdW5zZWxlY3RhYmxlLCBvciB3ZSBhcmUgb25s
eSBwYWludGluZyB0aGUgc2VsZWN0aW9uLAorICAgIC8vIGRvbid0IG92ZXJyaWRlIHRoZSBmb3Jl
Z3JvdW5kIGNvbG9yIHdpdGggdGhlIHNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yLgorICAgIGlm
IChzdHlsZSgpLT51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX05PTkUKKyAgICAgICAgfHwgKGZyYW1l
KCktPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpICYgUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkp
KQorICAgICAgICByZXR1cm4gY29sb3I7CisKKyAgICBpZiAoUmVmUHRyPFJlbmRlclN0eWxlPiBw
c2V1ZG9TdHlsZSA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgeworICAgICAg
ICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQor
ICAgICAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5Q29sb3IpOworICAgIH0gZWxzZQorICAgICAgICBjb2xvciA9IGZyYW1lKCktPnNl
bGVjdGlvbigpLT5pc0ZvY3VzZWRBbmRBY3RpdmUoKSA/CisgICAgICAgICAgICAgICAgdGhlbWUo
KS0+YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgOgorICAgICAgICAgICAgICAgIHRo
ZW1lKCktPmluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7CisKKyAgICByZXR1cm4g
Y29sb3I7Cit9CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogTm9kZSogUmVuZGVyT2JqZWN0
OjpkcmFnZ2FibGVOb2RlKGJvb2wgZGh0bWxPSywgYm9vbCB1YU9LLCBpbnQgeCwgaW50IHksIGJv
b2wmIGRodG1sV2lsbERyYWcpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtNjc1LDYgKzY3NSw3IEBAIHB1YmxpYzoKICAgICAvLyBPYnRhaW5z
IHRoZSBzZWxlY3Rpb24gY29sb3JzIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBwYWludGluZyBh
IHNlbGVjdGlvbi4KICAgICBDb2xvciBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsK
ICAgICBDb2xvciBzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICBDb2xvciBz
ZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0OwogCiAgICAgLy8gV2hldGhlciBvciBu
b3QgYSBnaXZlbiBibG9jayBuZWVkcyB0byBwYWludCBzZWxlY3Rpb24gZ2Fwcy4KICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9u
IDczOTIyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NDcsNiArODQ3LDQ3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVy
U3R5bGU6Omh5cGhlblMKICAgICByZXR1cm4gaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKK2NvbnN0
IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25z
dAoreworICAgIHN3aXRjaCAodGV4dEVtcGhhc2lzTWFyaygpKSB7CisgICAgY2FzZSBUZXh0RW1w
aGFzaXNNYXJrTm9uZToKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIGNhc2UgVGV4dEVt
cGhhc2lzTWFya0N1c3RvbToKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1hcmso
KTsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsKKyAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcsICgm
d2hpdGVCdWxsZXQsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBU
ZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsK
KyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ2lyY2xlOiB7CisgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJpbmcsICgmYmxhY2tD
aXJjbGUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9w
ZW5DaXJjbGVTdHJpbmcsICgmd2hpdGVDaXJjbGUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRF
bXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkQ2lyY2xlU3Ry
aW5nIDogb3BlbkNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
RG91YmxlQ2lyY2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcsICgmZmlzaGV5ZSwgMSkpOworICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywgKCZi
dWxsc2V5ZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRF
bXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91Ymxl
Q2lyY2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZTog
eworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5n
bGVTdHJpbmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVw
UG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgp
ID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9wZW5U
cmlhbmdsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOiB7
CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVT
dHJpbmcsICgmc2VzYW1lRG90LCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcGVuU2VzYW1lU3RyaW5nLCAoJndoaXRlU2VzYW1lRG90LCAxKSk7CisgICAg
ICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/
IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7CisgICAgfQorICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya0F1dG86CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gbnVsbEF0b207CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxBdG9tOworfQorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6OmluaXRp
YWxEYXNoYm9hcmRSZWdpb25zKCkKIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAkocmV2aXNpb24gNzM5MjIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTgsNiArNzE4LDcgQEAgcHVibGljOgogICAg
IFRleHRFbXBoYXNpc01hcmsgdGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0OwogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNDdXN0b21NYXJrOyB9CiAgICAgVGV4dEVtcGhhc2lz
UG9zaXRpb24gdGV4dEVtcGhhc2lzUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUZXh0RW1waGFzaXNQb3NpdGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc1Bv
c2l0aW9uKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzTWFya1N0cmlu
ZygpIGNvbnN0OwogICAgIAogICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0gcmVs
YXRlZCBwcm9wZXJ0eSAoY3VycmVudGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBvciBw
ZXJzcGVjdGl2ZSkgCiAgICAgLy8gaW5kaWNhdGVzIHRoYXQgd2UgYXJlIHRyYW5zZm9ybWluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76481</attachid>
            <date>2010-12-13 18:38:03 -0800</date>
            <delta_ts>2010-12-14 19:21:14 -0800</delta_ts>
            <desc>Platform, layout and rendering (WIP, do not review)</desc>
            <filename>text-emphasis_r19.diff</filename>
            <type>text/plain</type>
            <size>85524</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAkocmV2aXNpb24gNzM5OTQpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDI2IEBAIHZvaWQgRm9udDo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0KiBjb24KICAg
ICByZXR1cm4gZHJhd0NvbXBsZXhUZXh0KGNvbnRleHQsIHJ1biwgcG9pbnQsIGZyb20sIHRvKTsK
IH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBpZiAobV9m
b250TGlzdCAmJiBtX2ZvbnRMaXN0LT5sb2FkaW5nQ3VzdG9tRm9udHMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRvIDwgMCkKKyAgICAgICAgdG8gPSBydW4ubGVuZ3RoKCk7CisKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFNWRyBmb250
cy4KKyAgICBpZiAocHJpbWFyeUZvbnQoKS0+aXNTVkdGb250KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCisgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0gQ29tcGxleCkKKyAgICAgICAgZHJh
d0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KGNvbnRleHQsIHJ1biwgbWFyaywgcG9pbnQsIGZy
b20sIHRvKTsKKyAgICBlbHNlCisgICAgICAgIGRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRl
eHQoY29udGV4dCwgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiBmbG9hdCBGb250
OjpmbG9hdFdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25z
dAogewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkBAIC00MjAsNCArNDQwLDE4IEBAIGJvb2wgRm9u
dDo6aXNDSktJZGVvZ3JhcGgoVUNoYXIzMiBjKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKK3sKKyAgICBDaGFyQ2F0
ZWdvcnkgY2F0ZWdvcnkgPSBVbmljb2RlOjpjYXRlZ29yeShjKTsKKyAgICBpZiAoY2F0ZWdvcnkg
JiAoU2VwYXJhdG9yX1NwYWNlIHwgU2VwYXJhdG9yX0xpbmUgfCBTZXBhcmF0b3JfUGFyYWdyYXBo
IHwgT3RoZXJfTm90QXNzaWduZWQgfCBPdGhlcl9Db250cm9sIHwgT3RoZXJfRm9ybWF0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3JkLXNlcGFyYXRvciBj
aGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidzIERyYWZ0IDMgTm92
ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8fCBjID09IGFlZ2Vh
bldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRvckRvdAorICAgICAg
ICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFuTWFya0ludGVyc3ls
bGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNvbnN0OwogCiAgICAg
dm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxv
YXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OworICAgIHZvaWQgZHJh
d0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEF0
b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRv
ID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxv
dyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRXaWR0aChy
dW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZsb2F0IGZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25zdDsKQEAg
LTEzNiwxMCArMTM3LDEzIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1bml0c1BlckVtKCkgY29u
c3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+dW5pdHNQZXJFbSgpOyB9CiAgICAgaW50IHNwYWNl
V2lkdGgoKSBjb25zdCB7IHJldHVybiAoaW50KWNlaWxmKHByaW1hcnlGb250KCktPmFkanVzdGVk
U3BhY2VXaWR0aCgpICsgbV9sZXR0ZXJTcGFjaW5nKTsgfQogICAgIGZsb2F0IHRhYldpZHRoKGNv
bnN0IFNpbXBsZUZvbnREYXRhJiBmb250RGF0YSkgY29uc3QgeyByZXR1cm4gOCAqIGNlaWxmKGZv
bnREYXRhLmFkanVzdGVkU3BhY2VXaWR0aCgpICsgbGV0dGVyU3BhY2luZygpKTsgfQorICAgIGlu
dCBlbXBoYXNpc01hcmtBc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgaW50
IGVtcGhhc2lzTWFya0Rlc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgaW50
IGVtcGhhc2lzTWFya0hlaWdodChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAogICAgIGNv
bnN0IFNpbXBsZUZvbnREYXRhKiBwcmltYXJ5Rm9udCgpIGNvbnN0OwogICAgIGNvbnN0IEZvbnRE
YXRhKiBmb250RGF0YUF0KHVuc2lnbmVkKSBjb25zdDsKLSAgICBHbHlwaERhdGEgZ2x5cGhEYXRh
Rm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9yLCBib29sIGZvcmNlU21hbGxDYXBzID0g
ZmFsc2UpIGNvbnN0OworICAgIEdseXBoRGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIz
MiwgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCA9IEF1dG9WYXJpYW50KSBjb25zdDsKICAg
ICAvLyBVc2VkIGZvciBjb21wbGV4IHRleHQsIGFuZCBkb2VzIG5vdCB1dGlsaXplIHRoZSBnbHlw
aCBtYXAgY2FjaGUuCiAgICAgY29uc3QgRm9udERhdGEqIGZvbnREYXRhRm9yQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciosIGludCBsZW5ndGgpIGNvbnN0OwogCkBAIC0xNjMsMTcgKzE2NywyOSBAQCBw
cml2YXRlOgogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclRleHRVc2luZ1NWR0ZvbnQoY29u
c3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBj
b25zdDsKICNlbmRpZgogCisgICAgZW51bSBGb3JUZXh0RW1waGFzaXNPck5vdCB7IE5vdEZvclRl
eHRFbXBoYXNpcywgRm9yVGV4dEVtcGhhc2lzIH07CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0
aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9y
U2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgaW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXIm
LCBGb3JUZXh0RW1waGFzaXNPck5vdCA9IE5vdEZvclRleHRFbXBoYXNpcykgY29uc3Q7CiAgICAg
dm9pZCBkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OworICAgIHZvaWQgZHJhd0Vt
cGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4m
LCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJvbSwg
aW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8s
IGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKLSAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZlcihHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CisgICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAg
dm9pZCBkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEds
eXBoQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0
OwogICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mLCBHbHlw
aEJ1ZmZlciosIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9
IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBvc2l0aW9u
Rm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wgaW5jbHVk
ZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yU2lt
cGxlVGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKIAorICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKGNv
bnN0IEF0b21pY1N0cmluZyYsIEdseXBoRGF0YSYpIGNvbnN0OworCiAgICAgc3RhdGljIGJvb2wg
Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7CiAKICAgICBDb2RlUGF0aCBj
b2RlUGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbml0
aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFuY2VzRm9y
Q29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBoQnVmZmVy
JiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0OwogICAg
IHZvaWQgZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRSdW4mLCBj
b25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CisgICAgdm9pZCBkcmF3
RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRS
dW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgZnJv
bSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29u
c3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250
cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBvc2l0
aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGlu
Y2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGgsIGlu
dCBmcm9tLCBpbnQgdG8pIGNvbnN0OwpAQCAtMTk1LDYgKzIxMSw3IEBAIHB1YmxpYzoKICAgICBG
b250U2VsZWN0b3IqIGZvbnRTZWxlY3RvcigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHRyZWF0
QXNTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAn
XG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9CiAgICAgc3RhdGljIGJvb2wgdHJlYXRBc1plcm9X
aWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIGMgPCAweDIwIHx8IChjID49IDB4N0YgJiYgYyA8
IDB4QTApIHx8IGMgPT0gc29mdEh5cGhlbiB8fCAoYyA+PSAweDIwMGMgJiYgYyA8PSAweDIwMGYp
IHx8IChjID49IDB4MjAyYSAmJiBjIDw9IDB4MjAyZSkgfHwgYyA9PSBvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlcjsgfQorICAgIHN0YXRpYyBib29sIGNhblJlY2VpdmVUZXh0RW1waGFzaXMoVUNo
YXIzMiBjKTsKIAogICAgIHN0YXRpYyBpbmxpbmUgVUNoYXIgbm9ybWFsaXplU3BhY2VzKFVDaGFy
IGNoYXJhY3RlcikKICAgICB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRG
YXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFzdFBhdGguY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTcgKzQwLDIwIEBAIHVz
aW5nIG5hbWVzcGFjZSBVbmljb2RlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdseXBoRGF0
YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgYm9v
bCBmb3JjZVNtYWxsQ2FwcykgY29uc3QKK0dseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50IHZhcmlhbnQpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGJvb2wgdXNlU21hbGxD
YXBzRm9udCA9IGZvcmNlU21hbGxDYXBzOwotICAgIGlmIChtX2ZvbnREZXNjcmlwdGlvbi5zbWFs
bENhcHMoKSkgewotICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7Ci0gICAgICAg
IGlmICh1cHBlckMgIT0gYykgewotICAgICAgICAgICAgYyA9IHVwcGVyQzsKLSAgICAgICAgICAg
IHVzZVNtYWxsQ2Fwc0ZvbnQgPSB0cnVlOwotICAgICAgICB9CisgICAgaWYgKHZhcmlhbnQgPT0g
QXV0b1ZhcmlhbnQpIHsKKyAgICAgICAgaWYgKG1fZm9udERlc2NyaXB0aW9uLnNtYWxsQ2Fwcygp
KSB7CisgICAgICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7CisgICAgICAgICAg
ICBpZiAodXBwZXJDICE9IGMpIHsKKyAgICAgICAgICAgICAgICBjID0gdXBwZXJDOworICAgICAg
ICAgICAgICAgIHZhcmlhbnQgPSBTbWFsbENhcHNWYXJpYW50OworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CiAgICAgfQogCiAgICAgaWYg
KG1pcnJvcikKQEAgLTY4LDggKzcxLDggQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNo
YXJhY3RlcihVQwogICAgIH0KIAogICAgIEdseXBoUGFnZSogcGFnZTsKLSAgICBpZiAoIXVzZVNt
YWxsQ2Fwc0ZvbnQpIHsKLSAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3IgdGhlIGNvbW1vbiBj
YXNlIChub3Qgc21hbGwgY2FwcykuCisgICAgaWYgKHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkg
eworICAgICAgICAvLyBGYXN0ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNhc2UgKG5vcm1hbCB2
YXJpYW50KS4KICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIHBhZ2UgPSBub2Rl
LT5wYWdlKCk7CiAgICAgICAgICAgICBpZiAocGFnZSkgewpAQCAtMTEwLDcgKzExMyw3IEBAIEds
eXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUMKICAgICAgICAgICAgICAgICBp
ZiAoZGF0YS5mb250RGF0YSkgewogICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc21hbGxDYXBz
Rm9udERhdGEgZnVuY3Rpb24gc2hvdWxkIG5vdCBub3JtYWxseSByZXR1cm4gMC4KICAgICAgICAg
ICAgICAgICAgICAgLy8gQnV0IGlmIGl0IGRvZXMsIHdlIHdpbGwganVzdCByZW5kZXIgdGhlIGNh
cGl0YWwgbGV0dGVyIGJpZy4KLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9udERh
dGEqIHNtYWxsQ2Fwc0ZvbnREYXRhID0gZGF0YS5mb250RGF0YS0+c21hbGxDYXBzRm9udERhdGEo
bV9mb250RGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBTaW1wbGVGb250
RGF0YSogc21hbGxDYXBzRm9udERhdGEgPSBkYXRhLmZvbnREYXRhLT52YXJpYW50Rm9udERhdGEo
bV9mb250RGVzY3JpcHRpb24sIHZhcmlhbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXNt
YWxsQ2Fwc0ZvbnREYXRhKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7CiAK
QEAgLTE1NywxNCArMTYwLDE0IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0
ZXIoVUMKICAgICAgICAgY29kZVVuaXRzTGVuZ3RoID0gMjsKICAgICB9CiAgICAgY29uc3QgU2lt
cGxlRm9udERhdGEqIGNoYXJhY3RlckZvbnREYXRhID0gZm9udENhY2hlKCktPmdldEZvbnREYXRh
Rm9yQ2hhcmFjdGVycygqdGhpcywgY29kZVVuaXRzLCBjb2RlVW5pdHNMZW5ndGgpOwotICAgIGlm
ICh1c2VTbWFsbENhcHNGb250ICYmIGNoYXJhY3RlckZvbnREYXRhKQotICAgICAgICBjaGFyYWN0
ZXJGb250RGF0YSA9IGNoYXJhY3RlckZvbnREYXRhLT5zbWFsbENhcHNGb250RGF0YShtX2ZvbnRE
ZXNjcmlwdGlvbik7CisgICAgaWYgKHZhcmlhbnQgIT0gTm9ybWFsVmFyaWFudCAmJiBjaGFyYWN0
ZXJGb250RGF0YSkKKyAgICAgICAgY2hhcmFjdGVyRm9udERhdGEgPSBjaGFyYWN0ZXJGb250RGF0
YS0+dmFyaWFudEZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKICAgICBpZiAo
Y2hhcmFjdGVyRm9udERhdGEpIHsKICAgICAgICAgLy8gR290IHRoZSBmYWxsYmFjayBnbHlwaCBh
bmQgZm9udC4KICAgICAgICAgR2x5cGhQYWdlKiBmYWxsYmFja1BhZ2UgPSBHbHlwaFBhZ2VUcmVl
Tm9kZTo6Z2V0Um9vdENoaWxkKGNoYXJhY3RlckZvbnREYXRhLCBwYWdlTnVtYmVyKS0+cGFnZSgp
OwogICAgICAgICBHbHlwaERhdGEgZGF0YSA9IGZhbGxiYWNrUGFnZSAmJiBmYWxsYmFja1BhZ2Ut
PmZvbnREYXRhRm9yQ2hhcmFjdGVyKGMpID8gZmFsbGJhY2tQYWdlLT5nbHlwaERhdGFGb3JDaGFy
YWN0ZXIoYykgOiBjaGFyYWN0ZXJGb250RGF0YS0+bWlzc2luZ0dseXBoRGF0YSgpOwogICAgICAg
ICAvLyBDYWNoZSBpdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHN5c3RlbSBmYWxsYmFjayBhZ2Fp
biBuZXh0IHRpbWUuCi0gICAgICAgIGlmICghdXNlU21hbGxDYXBzRm9udCkgeworICAgICAgICBp
ZiAodmFyaWFudCA9PSBOb3JtYWxWYXJpYW50KSB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgICAgICAg
ICAvLyBtaXNzaW5nR2x5cGhEYXRhIHJldHVybnMgYSBudWxsIGNoYXJhY3Rlciwgd2hpY2ggaXMg
bm90IHN1aXRhYmxlIGZvciBHREkgdG8gZGlzcGxheS4KICAgICAgICAgICAgIC8vIEFsc28sIHNv
bWV0aW1lcyB3ZSBjYW5ub3QgbWFwIGEgZm9udCBmb3IgdGhlIGNoYXJhY3RlciBvbiBXSU5DRSwg
YnV0IEdESSBjYW4gc3RpbGwKQEAgLTE4Miw3ICsxODUsNyBAQCBHbHlwaERhdGEgRm9udDo6Z2x5
cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgLy8gRXZlbiBzeXN0ZW0gZmFsbGJhY2sgY2FuIGZh
aWw7IHVzZSB0aGUgbWlzc2luZyBnbHlwaCBpbiB0aGF0IGNhc2UuCiAgICAgLy8gRklYTUU6IEl0
IHdvdWxkIGJlIG5pY2VyIHRvIHVzZSB0aGUgbWlzc2luZyBnbHlwaCBmcm9tIHRoZSBsYXN0IHJl
c29ydCBmb250IGluc3RlYWQuCiAgICAgR2x5cGhEYXRhIGRhdGEgPSBwcmltYXJ5Rm9udCgpLT5t
aXNzaW5nR2x5cGhEYXRhKCk7Ci0gICAgaWYgKCF1c2VTbWFsbENhcHNGb250KSB7CisgICAgaWYg
KHZhcmlhbnQgPT0gTm9ybWFsVmFyaWFudCkgewogI2lmIE9TKFdJTkNFKQogICAgICAgICAvLyBT
ZWUgY29tbWVudCBhYm91dCBXSU5DRSBHREkgaGFuZGxpbmcgbmVhciBzZXRHbHlwaERhdGFGb3JD
aGFyYWN0ZXIgYWJvdmUuCiAgICAgICAgIHBhZ2UtPnNldEdseXBoRGF0YUZvckNoYXJhY3Rlcihj
LCBjLCBkYXRhLmZvbnREYXRhKTsKQEAgLTE5NCw0MiArMTk3LDEzNCBAQCBHbHlwaERhdGEgRm9u
dDo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXZvaWQg
Rm9udDo6ZHJhd1NpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0
UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25z
dAorYm9vbCBGb250OjpnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEoY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBHbHlwaERhdGEmIGdseXBoRGF0YSkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGdseXBo
IGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlw
aC4KLSAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBpZiAobWFyay5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsK
LSAgICBXaWR0aEl0ZXJhdG9yIGl0KHRoaXMsIHJ1bik7CisjaWYgRU5BQkxFKFNWR19GT05UUykK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBTVkcgZm9udHMuCisgICAgaWYgKHByaW1hcnlG
b250KCktPmlzU1ZHRm9udCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAg
IFVDaGFyMzIgY2hhcmFjdGVyID0gbWFya1swXTsKKworICAgIGlmIChVMTZfSVNfU1VSUk9HQVRF
KGNoYXJhY3RlcikpIHsKKyAgICAgICAgaWYgKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoY2hhcmFj
dGVyKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobWFyay5sZW5n
dGgoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVUNoYXIgbG93
ID0gbWFya1sxXTsKKyAgICAgICAgaWYgKCFVMTZfSVNfVFJBSUwobG93KSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBjaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBMRU1FTlRB
UlkoY2hhcmFjdGVyLCBsb3cpOworICAgIH0KKworICAgIGdseXBoRGF0YSA9IGdseXBoRGF0YUZv
ckNoYXJhY3RlcihjaGFyYWN0ZXIsIGZhbHNlLCBFbXBoYXNpc01hcmtWYXJpYW50KTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW50IEZvbnQ6OmVtcGhhc2lzTWFya0FzY2VudChjb25zdCBBdG9t
aWNTdHJpbmcmIG1hcmspIGNvbnN0Cit7CisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7Cisg
ICAgaWYgKCFnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0
YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1hcmtGb250RGF0YSk7Cisg
ICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1h
cmtGb250RGF0YS0+YXNjZW50KCk7Cit9CisKK2ludCBGb250OjplbXBoYXNpc01hcmtEZXNjZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaykgY29uc3QKK3sKKyAgICBHbHlwaERhdGEgbWFya0ds
eXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBtYXJrR2x5
cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb25zdCBTaW1wbGVGb250RGF0YSog
bWFya0ZvbnREYXRhID0gbWFya0dseXBoRGF0YS5mb250RGF0YTsKKyAgICBBU1NFUlQobWFya0Zv
bnREYXRhKTsKKyAgICBpZiAoIW1hcmtGb250RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gbWFya0ZvbnREYXRhLT5kZXNjZW50KCk7Cit9CisKK2ludCBGb250OjplbXBoYXNp
c01hcmtIZWlnaHQoY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrKSBjb25zdAoreworICAgIEdseXBo
RGF0YSBtYXJrR2x5cGhEYXRhOworICAgIGlmICghZ2V0RW1waGFzaXNNYXJrR2x5cGhEYXRhKG1h
cmssIG1hcmtHbHlwaERhdGEpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRhLmZvbnREYXRhOworICAgIEFT
U0VSVChtYXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnREYXRhKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiBtYXJrRm9udERhdGEtPmhlaWdodCgpOworfQorCitmbG9hdCBG
b250OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVu
LCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBo
YXNpc09yTm90IGZvclRleHRFbXBoYXNpcykgY29uc3QKK3sKKyAgICBmbG9hdCBpbml0aWFsQWR2
YW5jZTsKKworICAgIFdpZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBmYWxzZSwgZm9yVGV4dEVt
cGhhc2lzKTsKICAgICBpdC5hZHZhbmNlKGZyb20pOwogICAgIGZsb2F0IGJlZm9yZVdpZHRoID0g
aXQubV9ydW5XaWR0aFNvRmFyOwogICAgIGl0LmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0g
ICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4g
IEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGl0
Lm1fcnVuV2lkdGhTb0ZhcjsKIAogICAgIGlmIChydW4ucnRsKCkpIHsKICAgICAgICAgZmxvYXQg
ZmluYWxSb3VuZGluZ1dpZHRoID0gaXQubV9maW5hbFJvdW5kaW5nV2lkdGg7CiAgICAgICAgIGl0
LmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGZpbmFsUm91bmRpbmdX
aWR0aCArIGl0Lm1fcnVuV2lkdGhTb0ZhciAtIGFmdGVyV2lkdGg7CisgICAgICAgIGluaXRpYWxB
ZHZhbmNlID0gZmluYWxSb3VuZGluZ1dpZHRoICsgaXQubV9ydW5XaWR0aFNvRmFyIC0gYWZ0ZXJX
aWR0aDsKICAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAg
ICBpbml0aWFsQWR2YW5jZSA9IGJlZm9yZVdpZHRoOwogCi0gICAgLy8gU3dhcCB0aGUgb3JkZXIg
b2YgdGhlIGdseXBocyBpZiByaWdodC10by1sZWZ0LgotICAgIGlmIChydW4ucnRsKCkpCisgICAg
aWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZm
ZXIuc2l6ZSgpIC0gMTsgaSA8IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAg
ICAgICAgICAgICBnbHlwaEJ1ZmZlci5zd2FwKGksIGVuZCk7CisgICAgfQorCisgICAgcmV0dXJu
IGluaXRpYWxBZHZhbmNlOworfQorCit2b2lkIEZvbnQ6OmRyYXdTaW1wbGVUZXh0KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICAvLyBUaGlzIGdseXBoIGJ1ZmZl
ciBob2xkcyBvdXIgZ2x5cGhzK2FkdmFuY2VzK2ZvbnQgZGF0YSBmb3IgZWFjaCBnbHlwaC4KKyAg
ICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50Lngo
KSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2ltcGxlVGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlcik7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CiAKLSAgICAvLyBDYWxjdWxhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBnbHlwaHMg
dG8gYmUgZGlzcGxheWVkIGJ5IGFkZGluZwotICAgIC8vIGFsbCB0aGUgYWR2YW5jZXMgdXAgdG8g
dGhlIGZpcnN0IGdseXBoLgogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludChzdGFydFgsIHBvaW50
LnkoKSk7Ci0gICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBydW4sIHN0
YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgc3Rh
cnRQb2ludCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0dseXBoQnVmZmVyKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Cit2b2lkIEZvbnQ6OmRyYXdFbXBoYXNp
c01hcmtzRm9yU2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZl
cjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yU2lt
cGxlVGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKwor
ICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRy
YXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBv
aW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKK30KKwordm9pZCBGb250Ojpk
cmF3R2x5cGhCdWZmZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1ZmZl
ciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogeyAgIAogICAg
IC8vIERyYXcgZWFjaCBjb250aWd1b3VzIHJ1biBvZiBnbHlwaHMgdGhhdCB1c2UgdGhlIHNhbWUg
Zm9udCBkYXRhLgogICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSA9IGdseXBoQnVm
ZmVyLmZvbnREYXRhQXQoMCk7CkBAIC0yNTYsNiArMzUxLDUwIEBAIHZvaWQgRm9udDo6ZHJhd0ds
eXBoQnVmZmVyKEdyYXBoaWNzQ29udGUKICAgICBkcmF3R2x5cGhzKGNvbnRleHQsIGZvbnREYXRh
LCBnbHlwaEJ1ZmZlciwgbGFzdEZyb20sIG5leHRHbHlwaCAtIGxhc3RGcm9tLCBzdGFydFBvaW50
KTsKIH0KIAoraW5saW5lIHN0YXRpYyBmbG9hdCBvZmZzZXRUb01pZGRsZU9mR2x5cGgoY29uc3Qg
U2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBHbHlwaCBnbHlwaCkKK3sKKyAgICBpZiAoZm9udERh
dGEtPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbCkgeworICAgICAgICBGbG9hdFJlY3QgYm91
bmRzID0gZm9udERhdGEtPmJvdW5kc0ZvckdseXBoKGdseXBoKTsKKyAgICAgICAgcmV0dXJuIGJv
dW5kcy54KCkgKyBib3VuZHMud2lkdGgoKSAvIDI7CisgICAgfQorICAgIC8vIEZJWE1FOiBVc2Ug
Z2x5cGggYm91bmRzIG9uY2UgdGhleSBtYWtlIHNlbnNlIGZvciB2ZXJ0aWNhbCBmb250cy4KKyAg
ICByZXR1cm4gZm9udERhdGEtPndpZHRoRm9yR2x5cGgoZ2x5cGgpIC8gMjsKK30KKworaW5saW5l
IHN0YXRpYyBmbG9hdCBvZmZzZXRUb01pZGRsZU9mR2x5cGhBdEluZGV4KGNvbnN0IEdseXBoQnVm
ZmVyJiBnbHlwaEJ1ZmZlciwgc2l6ZV90IGkpCit7CisgICAgcmV0dXJuIG9mZnNldFRvTWlkZGxl
T2ZHbHlwaChnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGkpLCBnbHlwaEJ1ZmZlci5nbHlwaEF0KGkp
KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBHbHlwaERhdGEg
bWFya0dseXBoRGF0YTsKKyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBt
YXJrR2x5cGhEYXRhKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU2ltcGxlRm9udERh
dGEqIG1hcmtGb250RGF0YSA9IG1hcmtHbHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1h
cmtGb250RGF0YSk7CisgICAgaWYgKCFtYXJrRm9udERhdGEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEdseXBoIG1hcmtHbHlwaCA9IG1hcmtHbHlwaERhdGEuZ2x5cGg7CisgICAgR2x5cGggc3Bh
Y2VHbHlwaCA9IG1hcmtGb250RGF0YS0+c3BhY2VHbHlwaCgpOworCisgICAgZmxvYXQgbWlkZGxl
T2ZMYXN0R2x5cGggPSBvZmZzZXRUb01pZGRsZU9mR2x5cGhBdEluZGV4KGdseXBoQnVmZmVyLCAw
KTsKKyAgICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQocG9pbnQueCgpICsgbWlkZGxlT2ZMYXN0R2x5
cGggLSBvZmZzZXRUb01pZGRsZU9mR2x5cGgobWFya0ZvbnREYXRhLCBtYXJrR2x5cGgpLCBwb2lu
dC55KCkpOworCisgICAgR2x5cGhCdWZmZXIgbWFya0J1ZmZlcjsKKyAgICBmb3IgKGludCBpID0g
MDsgaSArIDEgPCBnbHlwaEJ1ZmZlci5zaXplKCk7ICsraSkgeworICAgICAgICBmbG9hdCBtaWRk
bGVPZk5leHRHbHlwaCA9IG9mZnNldFRvTWlkZGxlT2ZHbHlwaEF0SW5kZXgoZ2x5cGhCdWZmZXIs
IGkgKyAxKTsKKyAgICAgICAgZmxvYXQgYWR2YW5jZSA9IGdseXBoQnVmZmVyLmFkdmFuY2VBdChp
KSAtIG1pZGRsZU9mTGFzdEdseXBoICsgbWlkZGxlT2ZOZXh0R2x5cGg7CisgICAgICAgIG1hcmtC
dWZmZXIuYWRkKGdseXBoQnVmZmVyLmdseXBoQXQoaSkgPT0gZ2x5cGhCdWZmZXIuZm9udERhdGFB
dChpKS0+c3BhY2VHbHlwaCgpID8gc3BhY2VHbHlwaCA6IG1hcmtHbHlwaCwgbWFya0ZvbnREYXRh
LCBhZHZhbmNlKTsKKyAgICAgICAgbWlkZGxlT2ZMYXN0R2x5cGggPSBtaWRkbGVPZk5leHRHbHlw
aDsKKyAgICB9CisgICAgbWFya0J1ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChnbHlwaEJ1
ZmZlci5zaXplKCkgLSAxKSA9PSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGdseXBoQnVmZmVyLnNp
emUoKSAtIDEpLT5zcGFjZUdseXBoKCkgPyBzcGFjZUdseXBoIDogbWFya0dseXBoLCBtYXJrRm9u
dERhdGEsIDApOworCisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIG1hcmtCdWZmZXIsIHN0
YXJ0UG9pbnQpOworfQorCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yU2ltcGxlVGV4dChjb25z
dCBUZXh0UnVuJiBydW4sIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdAogewogICAgIFdpZHRoSXRlcmF0b3IgaXQodGhpcywgcnVuLCBmYWxsYmFja0Zv
bnRzLCBnbHlwaE92ZXJmbG93KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsNiAr
MzQ0LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGV4dChjb25zdCBGb24KIH0KICNl
bmRpZgogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0VtcGhhc2lzTWFya3MoY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNv
bnN0IEludFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykKK3sKKyAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb250LmRyYXdFbXBoYXNpc01h
cmtzKHRoaXMsIHJ1biwgbWFyaywgcG9pbnQsIGZyb20sIHRvKTsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdCaWRpVGV4dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBy
dW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJ
KHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzE1LDYgKzMxNSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBzZXRUZXh0RHJhd2luZ01vZGUoVGV4dERyYXdpbmdNb2RlRmxh
Z3MpOwogCiAgICAgICAgIHZvaWQgZHJhd1RleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4m
LCBjb25zdCBJbnRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpOworICAgICAgICB2
b2lkIGRyYXdFbXBoYXNpc01hcmtzKGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiAsIGNvbnN0
IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgSW50UG9pbnQmLCBpbnQgZnJvbSA9IDAsIGludCB0
byA9IC0xKTsKICAgICAgICAgdm9pZCBkcmF3QmlkaVRleHQoY29uc3QgRm9udCYsIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgICAgIHZvaWQgZHJhd0hpZ2hsaWdodEZv
clRleHQoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4mLCBjb25zdCBJbnRQb2ludCYsIGludCBo
LCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yLCBDb2xvclNwYWNlLCBpbnQgZnJvbSA9IDAs
IGludCB0byA9IC0xKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVG
b250RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAg
U2ltcGxlRm9udERhdGE6OlNpbXBsZUZvbnREYXRhKGNvbnN0IEZvbgogICAgICwgbV9pc0xvYWRp
bmcoaXNMb2FkaW5nKQogICAgICwgbV9pc0Jyb2tlbklkZW9ncmFwaEZvbnQoZmFsc2UpCiAgICAg
LCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCisgICAgLCBtX2VtcGhhc2lzTWFya0ZvbnREYXRhKDAp
CiAgICAgLCBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKDApCiB7CiAgICAgcGxhdGZvcm1Jbml0
KCk7CkBAIC03NSw2ICs3Niw3IEBAIFNpbXBsZUZvbnREYXRhOjpTaW1wbGVGb250RGF0YShQYXNz
T3duUHQKICAgICAsIG1faXNMb2FkaW5nKGZhbHNlKQogICAgICwgbV9pc0Jyb2tlbklkZW9ncmFw
aEZvbnQoZmFsc2UpCiAgICAgLCBtX3NtYWxsQ2Fwc0ZvbnREYXRhKDApCisgICAgLCBtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKDApCiAgICAgLCBtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKDApCiB7
CiAgICAgU1ZHRm9udEZhY2VFbGVtZW50KiBzdmdGb250RmFjZUVsZW1lbnQgPSBtX3N2Z0ZvbnRE
YXRhLT5zdmdGb250RmFjZUVsZW1lbnQoKTsKQEAgLTE5MCwxMSArMTkyLDE1IEBAIFNpbXBsZUZv
bnREYXRhOjp+U2ltcGxlRm9udERhdGEoKQogICAgICAgICBpZiAobV9zbWFsbENhcHNGb250RGF0
YSkKICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0
YShtX3NtYWxsQ2Fwc0ZvbnREYXRhKTsKIAorICAgICAgICBpZiAobV9lbXBoYXNpc01hcmtGb250
RGF0YSkKKyAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250
RGF0YShtX2VtcGhhc2lzTWFya0ZvbnREYXRhKTsKKwogICAgICAgICBpZiAobV9icm9rZW5JZGVv
Z3JhcGhGb250RGF0YSkKICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVD
dXN0b21Gb250RGF0YShtX2Jyb2tlbklkZW9ncmFwaEZvbnREYXRhKTsKICAgICB9CiAKICAgICBk
ZWxldGUgbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBkZWxldGUgbV9lbXBoYXNpc01hcmtGb250
RGF0YTsKICAgICBkZWxldGUgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YTsKIH0KIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkocmV2aXNpb24gNzM5
OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7CiAKK2VudW0gRm9udERhdGFWYXJpYW50
IHsgQXV0b1ZhcmlhbnQsIE5vcm1hbFZhcmlhbnQsIFNtYWxsQ2Fwc1ZhcmlhbnQsIEVtcGhhc2lz
TWFya1ZhcmlhbnQgfTsKIGVudW0gUGl0Y2ggeyBVbmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gsIFZh
cmlhYmxlUGl0Y2ggfTsKIAogY2xhc3MgU2ltcGxlRm9udERhdGEgOiBwdWJsaWMgRm9udERhdGEg
ewpAQCAtNzYsNyArNzcsMjQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNpbXBsZUZvbnREYXRh
KCk7CiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEoKSBjb25zdCB7
IHJldHVybiBtX3BsYXRmb3JtRGF0YTsgfQotICAgIFNpbXBsZUZvbnREYXRhKiBzbWFsbENhcHNG
b250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3Q7CisK
KyAgICBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJikgY29uc3Q7CisgICAgU2ltcGxlRm9udERhdGEqIGVtcGhhc2lzTWFya0ZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworCisgICAgU2ltcGxlRm9udERhdGEqIHZhcmlh
bnRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBGb250RGF0YVZh
cmlhbnQgdmFyaWFudCkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodmFyaWFudCkgewor
ICAgICAgICBjYXNlIFNtYWxsQ2Fwc1ZhcmlhbnQ6CisgICAgICAgICAgICByZXR1cm4gc21hbGxD
YXBzRm9udERhdGEoZGVzY3JpcHRpb24pOworICAgICAgICBjYXNlIEVtcGhhc2lzTWFya1Zhcmlh
bnQ6CisgICAgICAgICAgICByZXR1cm4gZW1waGFzaXNNYXJrRm9udERhdGEoZGVzY3JpcHRpb24p
OworICAgICAgICBjYXNlIEF1dG9WYXJpYW50OgorICAgICAgICBjYXNlIE5vcm1hbFZhcmlhbnQ6
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8U2ltcGxlRm9udERhdGEqPih0aGlzKTsK
KyAgICB9CiAKICAgICBTaW1wbGVGb250RGF0YSogYnJva2VuSWRlb2dyYXBoRm9udERhdGEoKSBj
b25zdDsKICAgICAKQEAgLTE4Myw2ICsyMDEsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21t
b25Jbml0KCk7CiAKKyAgICBTaW1wbGVGb250RGF0YSogc2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0OworCiAjaWYgKFBMQVRGT1JN
KFdJTikgJiYgIU9TKFdJTkNFKSkgXAogICAgIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShX
WCkpCiAgICAgdm9pZCBpbml0R0RJRm9udCgpOwpAQCAtMjI3LDYgKzI0Nyw3IEBAIHByaXZhdGU6
CiAgICAgR2x5cGhEYXRhIG1fbWlzc2luZ0dseXBoRGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxl
Rm9udERhdGEqIG1fc21hbGxDYXBzRm9udERhdGE7CisgICAgbXV0YWJsZSBTaW1wbGVGb250RGF0
YSogbV9lbXBoYXNpc01hcmtGb250RGF0YTsKIAogICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEq
IG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3
LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBL1VDRC5odG1sI0Nhbm9uaWNhbF9Db21iaW5pbmdf
Q2xhc3NfVmFsdWVzCiBzdGF0aWMgY29uc3QgdWludDhfdCBoaXJhZ2FuYUthdGFrYW5hVm9pY2lu
Z01hcmtzQ29tYmluaW5nQ2xhc3MgPSA4OwogCi1XaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9y
KGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGFjY291bnRGb3JHbHlwaEJvdW5kcykK
K1dpZHRoSXRlcmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4
dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMs
IGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzLCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6
IG1fZm9udChmb250KQogICAgICwgbV9ydW4ocnVuKQogICAgICwgbV9lbmQocnVuLmxlbmd0aCgp
KQpAQCAtNTMsNiArNTMsNyBAQCBXaWR0aEl0ZXJhdG9yOjpXaWR0aEl0ZXJhdG9yKGNvbnN0IEZv
bnQqCiAgICAgLCBtX21pbkdseXBoQm91bmRpbmdCb3hZKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6
bWF4KCkpCiAgICAgLCBtX2ZpcnN0R2x5cGhPdmVyZmxvdygwKQogICAgICwgbV9sYXN0R2x5cGhP
dmVyZmxvdygwKQorICAgICwgbV9mb3JUZXh0RW1waGFzaXMoZm9yVGV4dEVtcGhhc2lzKQogewog
ICAgIC8vIElmIHRoZSBwYWRkaW5nIGlzIG5vbi16ZXJvLCBjb3VudCB0aGUgbnVtYmVyIG9mIHNw
YWNlcyBpbiB0aGUgcnVuCiAgICAgLy8gYW5kIGRpdmlkZSB0aGF0IGJ5IHRoZSBwYWRkaW5nIGZv
ciBwZXIgc3BhY2UgYWRkaXRpb24uCkBAIC0xOTksNiArMjAwLDkgQEAgdm9pZCBXaWR0aEl0ZXJh
dG9yOjphZHZhbmNlKGludCBvZmZzZXQsIAogICAgICAgICAgICAgICAgIG1fZmlyc3RHbHlwaE92
ZXJmbG93ID0gbWF4PGZsb2F0PigwLCAtYm91bmRzLngoKSk7CiAgICAgICAgIH0KIAorICAgICAg
ICBpZiAobV9mb3JUZXh0RW1waGFzaXMgJiYgIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1waGFzaXMo
YykpCisgICAgICAgICAgICBnbHlwaCA9IGZvbnREYXRhLT5zcGFjZUdseXBoKCk7CisKICAgICAg
ICAgLy8gQWR2YW5jZSBwYXN0IHRoZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAg
ICAgICBjcCArPSBjbHVzdGVyTGVuZ3RoOwogICAgICAgICBjdXJyZW50Q2hhcmFjdGVyICs9IGNs
dXN0ZXJMZW5ndGg7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0
b3IuaAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRo
SXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTaW1wbGVG
b250RGF0YTsKIGNsYXNzIFRleHRSdW47CiAKIHN0cnVjdCBXaWR0aEl0ZXJhdG9yIHsKLSAgICBX
aWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgYm9vbCBhY2NvdW50Rm9yR2x5cGhC
b3VuZHMgPSBmYWxzZSk7CisgICAgV2lkdGhJdGVyYXRvcihjb25zdCBGb250KiwgY29uc3QgVGV4
dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cyA9IDAs
IGJvb2wgYWNjb3VudEZvckdseXBoQm91bmRzID0gZmFsc2UsIGJvb2wgZm9yVGV4dEVtcGhhc2lz
ID0gZmFsc2UpOwogCiAgICAgdm9pZCBhZHZhbmNlKGludCB0bywgR2x5cGhCdWZmZXIqID0gMCk7
CiAgICAgYm9vbCBhZHZhbmNlT25lQ2hhcmFjdGVyKGZsb2F0JiB3aWR0aCwgR2x5cGhCdWZmZXIq
ID0gMCk7CkBAIC02Myw2ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5HbHlwaEJv
dW5kaW5nQm94WTsKICAgICBmbG9hdCBtX2ZpcnN0R2x5cGhPdmVyZmxvdzsKICAgICBmbG9hdCBt
X2xhc3RHbHlwaE92ZXJmbG93OworICAgIGJvb2wgbV9mb3JUZXh0RW1waGFzaXM7CiB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250Q2hyb21pdW1XaW4uY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiRm9u
dEZhbGxiYWNrTGlzdC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVk
ZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJTa2lhRm9udFdpbi5oIgpAQCAtNTA1LDYg
KzUwNiwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAg
Y29udGV4dC0+Y2FudmFzKCktPmVuZFBsYXRmb3JtUGFpbnQoKTsKIH0KIAordm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4
dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1h
cmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50
IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZv
bnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVyZmxv
dyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBVbmlzY3JpYmVIZWxwZXJUZXh0
UnVuIHN0YXRlKHJ1biwgKnRoaXMpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Gb250TGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4MSw3ICszODEsNyBAQCBib29sIFRleHRSdW5XYWxrZXI6Om5leHRTY3JpcHRSdW4oKQog
ICAgICAgICAvLyAoYW5kIHRoZSBnbHlwaHMgaW4gZWFjaCBBLCBDIGFuZCBUIHNlY3Rpb24gYXJl
IGJhY2t3YXJkcyB0b28pCiAgICAgICAgIGlmICghaGJfdXRmMTZfc2NyaXB0X3J1bl9wcmV2KCZt
X251bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4uY2hhcmFjdGVycygpLCBtX3J1bi5s
ZW5ndGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250
RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWhiX3V0ZjE2X3NjcmlwdF9ydW5fbmV4dCgmbV9u
dW1Db2RlUG9pbnRzLCAmbV9pdGVtLml0ZW0sIG1fcnVuLmNoYXJhY3RlcnMoKSwgbV9ydW4ubGVu
Z3RoKCksICZtX2luZGV4T2ZOZXh0U2NyaXB0UnVuKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIGJvb2wgVGV4dFJ1bldhbGtlcjo6bmV4dFNjcmlwdFJ1
bigpCiAgICAgICAgIC8vIGluIHRoZSBoYXJmYnV6eiBkYXRhIHN0cnVjdHVyZXMgdG8gZS5nLiBw
aWNrIHRoZSBjb3JyZWN0IHNjcmlwdCdzIHNoYXBlci4KICAgICAgICAgLy8gU28gd2UgYWxsb3cg
dGhhdCB0byBydW4gZmlyc3QsIHRoZW4gZG8gYSBzZWNvbmQgcGFzcyBvdmVyIHRoZSByYW5nZSBp
dAogICAgICAgICAvLyBmb3VuZCBhbmQgdGFrZSB0aGUgbGFyZ2VzdCBzdWJyZWdpb24gdGhhdCBz
dGF5cyB3aXRoaW4gYSBzaW5nbGUgZm9udC4KLSAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlLCBmYWxzZSkuZm9udERhdGE7CisgICAgICAgIG1fY3VycmVudEZvbnREYXRhID0g
bV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5w
b3NdLCBmYWxzZSkuZm9udERhdGE7CiAgICAgICAgIHVuc2lnbmVkIGVuZE9mUnVuOwogICAgICAg
ICBmb3IgKGVuZE9mUnVuID0gMTsgZW5kT2ZSdW4gPCBtX2l0ZW0uaXRlbS5sZW5ndGg7ICsrZW5k
T2ZSdW4pIHsKLSAgICAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEg
PSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVt
LnBvcyArIGVuZE9mUnVuXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgICAgIGNv
bnN0IFNpbXBsZUZvbnREYXRhKiBuZXh0Rm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBvcyArIGVuZE9mUnVuXSwgZmFsc2Up
LmZvbnREYXRhOwogICAgICAgICAgICAgaWYgKG5leHRGb250RGF0YSAhPSBtX2N1cnJlbnRGb250
RGF0YSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDIyLDcgKzQyMiw3
IEBAIGZsb2F0IFRleHRSdW5XYWxrZXI6OndpZHRoT2ZGdWxsUnVuKCkKIAogdm9pZCBUZXh0UnVu
V2Fsa2VyOjpzZXR1cEZvbnRGb3JTY3JpcHRSdW4oKQogewotICAgIGNvbnN0IEZvbnREYXRhKiBm
b250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9p
dGVtLml0ZW0ucG9zXSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICBjb25zdCBGb250RGF0
YSogZm9udERhdGEgPSBtX2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5n
W21faXRlbS5pdGVtLnBvc10sIGZhbHNlKS5mb250RGF0YTsKICAgICBjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250RGF0YS0+Zm9udERhdGFGb3JDaGFyYWN0ZXIoJyAn
KS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgbV9pdGVtLmZhY2UgPSBwbGF0Zm9ybURhdGEuaGFyZmJ1
enpGYWNlKCk7CiAgICAgdm9pZCogb3BhcXVlUGxhdGZvcm1EYXRhID0gY29uc3RfY2FzdDxGb250
UGxhdGZvcm1EYXRhKj4oJnBsYXRmb3JtRGF0YSk7CkBAIC02OTAsNiArNjkwLDExIEBAIHZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICB9CiB9CiAKK3ZvaWQgRm9u
dDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNv
bnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAv
KiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8s
IGludCAvKiB0byAqLykgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBmbG9h
dCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNo
U2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIC8qIGZhbGxiYWNrRm9udHMgKi8sIEdseXBoT3Zl
cmZsb3cqIC8qIGdseXBoT3ZlcmZsb3cgKi8pIGNvbnN0CiB7CiAgICAgVGV4dFJ1bldhbGtlciB3
YWxrZXIocnVuLCAwLCB0aGlzKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNw
cAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMjIg
KzExMiwzMiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQog
CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QK
K3sKKyAgICBMT0dGT05UIHdpbkZvbnQ7CisgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhm
b250KCksIHNpemVvZihMT0dGT05UKSwgJndpbkZvbnQpOworICAgIGZsb2F0IHNjYWxlZFNpemUg
PSBzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsKKyAgICB3aW5G
b250LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc2NhbGVkU2l6ZSk7CisgICAgSEZPTlQgaGZvbnQgPSBD
cmVhdGVGb250SW5kaXJlY3QoJndpbkZvbnQpOworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERh
dGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgp
LCBmYWxzZSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBz
Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIExPR0ZPTlQgd2luRm9u
dDsKLSAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dG
T05UKSwgJndpbkZvbnQpOwotICAgICAgICBmbG9hdCBzbWFsbENhcHNTaXplID0gMC43MGYgKiBm
b250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCk7Ci0gICAgICAgIC8vIFVubGlrZSBXZWJLaXQg
dHJ1bmssIHdlIGRvbid0IG11bHRpcGx5IHRoZSBzaXplIGJ5IDMyLiAgVGhhdCBzZWVtcwotICAg
ICAgICAvLyB0byBiZSBzb21lIGtpbmQgb2YgYXJ0aWZhY3Qgb2YgdGhlaXIgQ0cgYmFja2VuZCwg
b3Igc29tZXRoaW5nLgotICAgICAgICB3aW5Gb250LmxmSGVpZ2h0ID0gLWxyb3VuZGYoc21hbGxD
YXBzU2l6ZSk7Ci0gICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5G
b250KTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9Ci0gICAgICAgICAgICBuZXcgU2lt
cGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShoZm9udCwgc21hbGxDYXBzU2l6ZSksIGlzQ3Vz
dG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkK
KyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlw
dGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBs
ZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhh
c2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVk
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01h
cmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAvLyBUaGlz
IHVzZWQgdG8gYmUgaW1wbGVtZW50ZWQgd2l0aCBJTUxhbmdGb250TGluazIsIGJ1dCBzaW5jZSB0
aGF0IGNvZGUgaGFzCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Np
bXBsZUZvbnREYXRhTGludXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHJldmlzaW9uIDczOTk0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIC8vIFNtYWxsY2FwcyB2ZXJzaW9ucyBvZiBmb250cyBhcmUgNzAlIHRoZSBzaXplIG9mIHRo
ZSBub3JtYWwgZm9udC4KIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFsbENhcHNGcmFjdGlvbiA9IDAu
N2Y7CitzdGF0aWMgY29uc3QgZmxvYXQgZW1waGFzaXNNYXJrRnJhY3Rpb24gPSAuNTsKIC8vIFRo
aXMgaXMgdGhlIGxhcmdlc3QgVkRNWCB0YWJsZSB3aGljaCB3ZSdsbCB0cnkgdG8gbG9hZCBhbmQg
cGFyc2UuCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heFZETVhUYWJsZVNpemUgPSAxMDI0ICogMTAy
NDsgIC8vIDEgTUIKIApAQCAtMTQxLDE2ICsxNDIsMjggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRh
OjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
ZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgY29uc3QgZmxvYXQgc2NhbGVkU2l6ZSA9
IGxyb3VuZGYoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpICogc2NhbGVGYWN0b3IpOwor
ICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3Jt
RGF0YSwgc2NhbGVkU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBsZUZv
bnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0Zv
bnREYXRhKSB7Ci0gICAgICAgIGNvbnN0IGZsb2F0IHNtYWxsQ2Fwc1NpemUgPSBscm91bmRmKGZv
bnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSAqIHNtYWxsQ2Fwc0ZyYWN0aW9uKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1E
YXRhKG1fcGxhdGZvcm1EYXRhLCBzbWFsbENhcHNTaXplKSwgaXNDdXN0b21Gb250KCksIGZhbHNl
KTsKLSAgICB9CisgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxs
Q2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzbWFsbENhcHNG
cmFjdGlvbik7CiAKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxl
Rm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFz
aXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIGVtcGhhc2lzTWFya0ZyYWN0aW9uKTsKKworICAgIHJl
dHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpj
b250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNv
bnN0CiB7CiAgICAgU2tQYWludCBwYWludDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ZvbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ZvbnRFZmwuY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMSBA
QCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNv
bXBsZXhUZXh0KCkKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVl
VHlwZS5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzks
MTggKzc5LDMxIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9
CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25z
dAoreworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoCisgICAgICAgIEZvbnRQbGF0Zm9y
bURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2Fs
ZWRGb250KCkpLAorICAgICAgICBzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5z
eW50aGV0aWNPYmxpcXVlKCkpLAorICAgICAgICBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQor
CiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBJIHRoaW5rIHdlIHdhbnQgdG8gYXNrIEZvbnRDb25maWcgZm9yIHRoZSByaWdodCBmb250IGFn
YWluLgogICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKLSAgICAgICAgbV9zbWFsbENhcHNG
b250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YSgKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURh
dGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRmb3JtRGF0YS5zY2FsZWRG
b250KCkpLAotICAgICAgICAgICAgMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCksIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhl
dGljT2JsaXF1ZSgpKSwKLSAgICAgICAgICAgIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAg
ICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24s
IC43KTsKIAogICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwogfQogCitTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9lbXBoYXNpc01h
cmtGb250RGF0YSkKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnRE
YXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9u
dERhdGE7Cit9CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBGVF9GYWNlIGZh
Y2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVk
Rm9udCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3Bw
CShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRH
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2Fpcm9V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJDb250ZXh0U2hhZG93LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z2RrL2dkay5oPgpA
QCAtMzE5LDYgKzMyMCwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0Nv
bnRlCiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lz
TWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0
IFRleHRSdW4mIC8qIHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25z
dCBGbG9hdFBvaW50JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiAvLyBXZSBzaG91bGQgY3JlYXRl
IHRoZSBsYXlvdXQgd2l0aCBvdXIgYWN0dWFsIGNvbnRleHQgYnV0IHdlIGNhbid0IGFjY2VzcyBp
dCBmcm9tIGhlcmUuCiBzdGF0aWMgUGFuZ29MYXlvdXQqIGdldERlZmF1bHRQYW5nb0xheW91dChj
b25zdCBUZXh0UnVuJiBydW4pCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hh
aWt1L0ZvbnRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYWlrdS9Gb250SGFpa3UuY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiAr
OTMsMTAgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21w
bGV4VGV4dChHcmFwaGljc0NvbnRleHQqIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8q
IHJ1biAqLywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50
JiAvKiBwb2ludCAqLywgaW50IC8qIGZyb20gKi8sIGludCAvKiB0byAqLykgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQogCiBmbG9hdCBGb250OjpmbG9hdFdpZHRoRm9yQ29tcGxl
eFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxl
Rm9udERhdGFIYWlrdS5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYsMTcgKzY2LDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7
CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBj
b25zdAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9u
dERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQ
bGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5mYW1pbHkoKSk7CisgICAgcmV0dXJuIG5l
dyBTaW1wbGVGb250RGF0YShmb250UGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2Up
OworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlm
ICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9
IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNp
ZmllZFNpemUoMC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAg
ICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5m
YW1pbHkoKSk7Ci0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERh
dGEoZm9udFBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKLSAgICB9CisgICAg
aWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQorICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0g
c2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAgICByZXR1cm4gbV9zbWFs
bENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBo
YXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1w
aGFzaXNNYXJrRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsK
KworICAgIHJldHVybiBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZv
bnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBs
ZW5ndGgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQg
dGhpcyB0byBsb2FkIG5vbi1BU0NJSSBlbmNvZGluZyBzaXRlcwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMSBAQCBz
dGF0aWMgaW5saW5lIENHRmxvYXQgY2VpbENHRmxvYXQoQ0dGbG9hCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENHRmxvYXQ+KGNlaWwoZikpOwogfQogCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4s
IGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiogZmFsbGJhY2tGb250cykKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxl
eFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgYm9v
bCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGZvclRleHRFbXBoYXNpcykKICAgICA6IG1fZm9u
dCgqZm9udCkKICAgICAsIG1fcnVuKHJ1bikKICAgICAsIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdE
aXJlY3Rpb24obWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pCisgICAgLCBtX2ZvclRleHRF
bXBoYXNpcyhmb3JUZXh0RW1waGFzaXMpCiAgICAgLCBtX2N1cnJlbnRDaGFyYWN0ZXIoMCkKICAg
ICAsIG1fZW5kKHJ1bi5sZW5ndGgoKSkKICAgICAsIG1fdG90YWxXaWR0aCgwKQpAQCAtMjQwLDcg
KzI0MSw3IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGwKICAgICAg
ICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3RlcihV
MTZfR0VUX1NVUFBMRU1FTlRBUlkoY3VyclstMV0sIGN1cnJbMF0pLCBmYWxzZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbmV4dEdseXBoRGF0YSA9IG1fZm9u
dC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2Fwcyk7Cisg
ICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250LmdseXBoRGF0YUZvckNoYXJhY3Rlcigq
Y3VyciwgZmFsc2UsIGZvcmNlU21hbGxDYXBzID8gU21hbGxDYXBzVmFyaWFudCA6IEF1dG9WYXJp
YW50KTsKIAogICAgICAgICBpZiAoIWlzU3Vycm9nYXRlICYmIG1fZm9udC5pc1NtYWxsQ2Fwcygp
KSB7CiAgICAgICAgICAgICBuZXh0SXNTbWFsbENhcHMgPSBmb3JjZVNtYWxsQ2FwcyB8fCAobmV3
QyA9IHVfdG91cHBlcihjKSkgIT0gYzsKQEAgLTUzNiw2ICs1MzcsOSBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICB3aWR0aFNpbmNlTGFzdFJvdW5kaW5nICs9IGFkdmFuY2Uud2lkdGg7CiAKKyAgICAg
ICAgICAgIGlmIChtX2ZvclRleHRFbXBoYXNpcyAmJiAoIUZvbnQ6OmNhblJlY2VpdmVUZXh0RW1w
aGFzaXMoY2gpIHx8IChVX0dFVF9HQ19NQVNLKGNoKSAmIFVfR0NfTV9NQVNLKSkpCisgICAgICAg
ICAgICAgICAgZ2x5cGggPSBmb250RGF0YS0+c3BhY2VHbHlwaCgpOworCiAgICAgICAgICAgICBh
ZHZhbmNlLmhlaWdodCAqPSAtMTsKICAgICAgICAgICAgIG1fYWRqdXN0ZWRBZHZhbmNlcy5hcHBl
bmQoYWR2YW5jZSk7CiAgICAgICAgICAgICBtX2FkanVzdGVkR2x5cGhzLmFwcGVuZChnbHlwaCk7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NyArNDcsNyBAQCBjbGFzcyBUZXh0UnVuOwogLy8gT1MgVmVyc2lvbnMgPj0gMTAuNiwgQVRTVUkg
aXMgdXNlZCBvdGhlcndpc2UuCiBjbGFzcyBDb21wbGV4VGV4dENvbnRyb2xsZXIgewogcHVibGlj
OgotICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiwgY29uc3QgVGV4dFJ1biYs
IGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwgSGFzaFNldDxjb25z
dCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCk7CisgICAgQ29tcGxleFRleHRD
b250cm9sbGVyKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0UnVuJiwgYm9vbCBtYXlVc2VOYXR1cmFs
V3JpdGluZ0RpcmVjdGlvbiA9IGZhbHNlLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4q
IGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZhbHNlKTsKIAogICAg
IC8vIEFkdmFuY2UgYW5kIGVtaXQgZ2x5cGhzIHVwIHRvIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVy
LgogICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCB0bywgR2x5cGhCdWZmZXIqID0gMCk7CkBAIC0x
NTYsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBGb250JiBtX2ZvbnQ7CiAgICAgY29u
c3QgVGV4dFJ1biYgbV9ydW47CiAgICAgYm9vbCBtX21heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0
aW9uOworICAgIGJvb2wgbV9mb3JUZXh0RW1waGFzaXM7CiAKICAgICBWZWN0b3I8VUNoYXIsIDI1
Nj4gbV9zbWFsbENhcHNCdWZmZXI7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDb21wbGV4VGV4dE1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkocmV2aXNpb24gNzM5OTQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSwzNCArNTUsNTUgQEAgRmxvYXRSZWN0IEZvbnQ6OnNlbGVjdGlv
blJlY3RGb3JDb21wbGV4VAogICAgIHJldHVybiBGbG9hdFJlY3QocG9pbnQueCgpICsgZmxvb3Jm
KGJlZm9yZVdpZHRoKSwgcG9pbnQueSgpLCByb3VuZGYoYWZ0ZXJXaWR0aCkgLSBmbG9vcmYoYmVm
b3JlV2lkdGgpLCBoKTsKIH0KIAotdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb20sIGludCB0bykgY29uc3QK
K2Zsb2F0IEZvbnQ6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCBpbnQgZnJvbSwgaW50IHRvLCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIEZv
clRleHRFbXBoYXNpc09yTm90IGZvclRleHRFbXBoYXNpcykgY29uc3QKIHsKLSAgICAvLyBUaGlz
IGdseXBoIGJ1ZmZlciBob2xkcyBvdXIgZ2x5cGhzICsgYWR2YW5jZXMgKyBmb250IGRhdGEgZm9y
IGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5p
dGlhbEFkdmFuY2U7CiAKLSAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgQ29tcGxl
eFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuKTsKKyAgICBDb21wbGV4VGV4dENv
bnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbHNlLCAwLCBmb3JUZXh0RW1waGFzaXMp
OwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVXaWR0aCA9
IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSh0bywg
JmdseXBoQnVmZmVyKTsKLSAgICAKLSAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5
cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKwogICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBmbG9h
dCBhZnRlcldpZHRoID0gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCk7CiAKICAgICBpZiAocnVu
LnJ0bCgpKSB7Ci0gICAgICAgIHN0YXJ0WCArPSBjb250cm9sbGVyLnRvdGFsV2lkdGgoKSArIGNv
bnRyb2xsZXIuZmluYWxSb3VuZGluZ1dpZHRoKCkgLSBhZnRlcldpZHRoOworICAgICAgICBpbml0
aWFsQWR2YW5jZSA9IGNvbnRyb2xsZXIudG90YWxXaWR0aCgpICsgY29udHJvbGxlci5maW5hbFJv
dW5kaW5nV2lkdGgoKSAtIGFmdGVyV2lkdGg7CiAgICAgICAgIGZvciAoaW50IGkgPSAwLCBlbmQg
PSBnbHlwaEJ1ZmZlci5zaXplKCkgLSAxOyBpIDwgZ2x5cGhCdWZmZXIuc2l6ZSgpIC8gMjsgKytp
LCAtLWVuZCkKICAgICAgICAgICAgIGdseXBoQnVmZmVyLnN3YXAoaSwgZW5kKTsKICAgICB9IGVs
c2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5j
ZSA9IGJlZm9yZVdpZHRoOworCisgICAgcmV0dXJuIGluaXRpYWxBZHZhbmNlOworfQorCit2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRl
eHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNv
bnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFu
Y2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBoQnVmZmVyIGdseXBoQnVm
ZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0R2x5cGhzQW5kQWR2YW5j
ZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICAvLyBX
ZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKyAg
ICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICAvLyBE
cmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBp
biBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsK
LSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2lu
dCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50
KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJp
bmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25z
dAoreworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZh
bmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBn
bHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQs
IGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNl
LCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxs
YmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFNYWMubW0J
KHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxl
Rm9udERhdGFNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTEgQEAgdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICAgICAgICAgbV9zbWFsbENhcHNGb250
RGF0YSA9IDA7CiAgICAgfQogCisgICAgaWYgKG1fZW1waGFzaXNNYXJrRm9udERhdGEgJiYgIWlz
Q3VzdG9tRm9udCgpKSB7CisgICAgICAgIGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9l
bXBoYXNpc01hcmtGb250RGF0YSk7CisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSAw
OworICAgIH0KKwogI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCiAgICAgaWYgKG1fc3R5bGVHcm91
cCkKICAgICAgICAgd2tSZWxlYXNlU3R5bGVHcm91cChtX3N0eWxlR3JvdXApOwpAQCAtMzczLDQz
ICszNzgsNTggQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKICNlbmRp
ZgogfQogCi1TaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAorU2ltcGxlRm9u
dERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIGlmIChpc0N1c3RvbUZvbnQoKSkgewot
ICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250RGF0YShtX3BsYXRmb3Jt
RGF0YSk7Ci0gICAgICAgICAgICBzbWFsbENhcHNGb250RGF0YS5tX3NpemUgPSBzbWFsbENhcHNG
b250RGF0YS5tX3NpemUgKiBzbWFsbENhcHNGb250U2l6ZU11bHRpcGxpZXI7Ci0gICAgICAgICAg
ICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHNtYWxsQ2Fwc0ZvbnRE
YXRhLCB0cnVlLCBmYWxzZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgICAgICBmbG9hdCBzaXplID0gbV9wbGF0Zm9y
bURhdGEuc2l6ZSgpICogc21hbGxDYXBzRm9udFNpemVNdWx0aXBsaWVyOwotICAgICAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSBzbWFsbENhcHNGb250KFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250
TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpIHRvU2l6ZTpzaXplXSwg
c2l6ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEFwcEtpdCByZXNldHMgdGhlIHR5
cGUgaW5mb3JtYXRpb24gKHNjcmVlbi9wcmludGVyKSB3aGVuIHlvdSBjb252ZXJ0IGEgZm9udCB0
byBhIGRpZmZlcmVudCBzaXplLgotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBmaXggdXAgdGhl
IGZvbnQgdGhhdCB3ZSdyZSBoYW5kZWQgYmFjay4KLSAgICAgICAgICAgIHNtYWxsQ2Fwc0ZvbnQu
c2V0Rm9udChmb250RGVzY3JpcHRpb24udXNlUHJpbnRlckZvbnQoKSA/IFtzbWFsbENhcHNGb250
LmZvbnQoKSBwcmludGVyRm9udF0gOiBbc21hbGxDYXBzRm9udC5mb250KCkgc2NyZWVuRm9udF0p
OwotCi0gICAgICAgICAgICBpZiAoc21hbGxDYXBzRm9udC5mb250KCkpIHsKLSAgICAgICAgICAg
ICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZv
bnRNYW5hZ2VyXTsKLSAgICAgICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZm9udFRyYWl0cyA9
IFtmb250TWFuYWdlciB0cmFpdHNPZkZvbnQ6bV9wbGF0Zm9ybURhdGEuZm9udCgpXTsKLQotICAg
ICAgICAgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCi0gICAgICAg
ICAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7Ci0gICAgICAgICAgICAg
ICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgICAgICAg
ICAgICAgZm9udFRyYWl0cyB8PSBOU0l0YWxpY0ZvbnRNYXNrOwotCi0gICAgICAgICAgICAgICAg
TlNGb250VHJhaXRNYXNrIHNtYWxsQ2Fwc0ZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRz
T2ZGb250OnNtYWxsQ2Fwc0ZvbnQuZm9udCgpXTsKLSAgICAgICAgICAgICAgICBzbWFsbENhcHNG
b250Lm1fc3ludGhldGljQm9sZCA9IChmb250VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEo
c21hbGxDYXBzRm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKTsKLSAgICAgICAgICAgICAgICBz
bWFsbENhcHNGb250Lm1fc3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNG
b250TWFzaykgJiYgIShzbWFsbENhcHNGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7Ci0K
LSAgICAgICAgICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0gZm9udENhY2hlKCktPmdldENh
Y2hlZEZvbnREYXRhKCZzbWFsbENhcHNGb250KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNDdXN0b21G
b250KCkpIHsKKyAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBzY2FsZWRGb250RGF0YShtX3BsYXRm
b3JtRGF0YSk7CisgICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc2l6ZSA9IHNjYWxlZEZvbnREYXRh
Lm1fc2l6ZSAqIHNjYWxlRmFjdG9yOworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRh
KHNjYWxlZEZvbnREYXRhLCB0cnVlLCBmYWxzZSk7CiAgICAgfQorCisgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIGZsb2F0IHNpemUgPSBtX3BsYXRmb3JtRGF0YS5zaXplKCkg
KiBzY2FsZUZhY3RvcjsKKyAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnREYXRhKFtbTlNG
b250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gY29udmVydEZvbnQ6bV9wbGF0Zm9ybURhdGEu
Zm9udCgpIHRvU2l6ZTpzaXplXSwgc2l6ZSk7CisKKyAgICAvLyBBcHBLaXQgcmVzZXRzIHRoZSB0
eXBlIGluZm9ybWF0aW9uIChzY3JlZW4vcHJpbnRlcikgd2hlbiB5b3UgY29udmVydCBhIGZvbnQg
dG8gYSBkaWZmZXJlbnQgc2l6ZS4KKyAgICAvLyBXZSBoYXZlIHRvIGZpeCB1cCB0aGUgZm9udCB0
aGF0IHdlJ3JlIGhhbmRlZCBiYWNrLgorICAgIHNjYWxlZEZvbnREYXRhLnNldEZvbnQoZm9udERl
c2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCkgPyBbc2NhbGVkRm9udERhdGEuZm9udCgpIHByaW50
ZXJGb250XSA6IFtzY2FsZWRGb250RGF0YS5mb250KCkgc2NyZWVuRm9udF0pOworCisgICAgaWYg
KHNjYWxlZEZvbnREYXRhLmZvbnQoKSkgeworICAgICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFu
YWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKKyAgICAgICAgTlNGb250
VHJhaXRNYXNrIGZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZv
cm1EYXRhLmZvbnQoKV07CisKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1fc3ludGhldGlj
Qm9sZCkKKyAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNCb2xkRm9udE1hc2s7CisgICAgICAg
IGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgICAgICBmb250
VHJhaXRzIHw9IE5TSXRhbGljRm9udE1hc2s7CisKKyAgICAgICAgTlNGb250VHJhaXRNYXNrIHNj
YWxlZEZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OnNjYWxlZEZvbnREYXRh
LmZvbnQoKV07CisgICAgICAgIHNjYWxlZEZvbnREYXRhLm1fc3ludGhldGljQm9sZCA9IChmb250
VHJhaXRzICYgTlNCb2xkRm9udE1hc2spICYmICEoc2NhbGVkRm9udFRyYWl0cyAmIE5TQm9sZEZv
bnRNYXNrKTsKKyAgICAgICAgc2NhbGVkRm9udERhdGEubV9zeW50aGV0aWNPYmxpcXVlID0gKGZv
bnRUcmFpdHMgJiBOU0l0YWxpY0ZvbnRNYXNrKSAmJiAhKHNjYWxlZEZvbnRUcmFpdHMgJiBOU0l0
YWxpY0ZvbnRNYXNrKTsKKworICAgICAgICByZXR1cm4gZm9udENhY2hlKCktPmdldENhY2hlZEZv
bnREYXRhKCZzY2FsZWRGb250RGF0YSk7CisgICAgfQorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisKKyAgICByZXR1cm4gMDsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnRE
YXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxs
Q2Fwc0ZvbnRTaXplTXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0
YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9u
dERhdGEgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVy
biBtX2VtcGhhc2lzTWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250
YWluc0NoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0
CiB7CiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hh
cmFjdGVyc05vQ29weTpjb25zdF9jYXN0PHVuaWNoYXIqPihjaGFyYWN0ZXJzKSBsZW5ndGg6bGVu
Z3RoIGZyZWVXaGVuRG9uZTpOT107CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Bh
bmdvL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAJKHJldmlzaW9uIDczOTk0
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdv
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsMTcgKzgwLDMwIEBAIHZvaWQgU2ltcGxlRm9udERh
dGE6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlw
dGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0
YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZv
bnREYXRhKHBsYXRmb3JtRGF0YSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZv
bnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0g
ICAgICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21w
dXRlZFNpemUoKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2Ms
IGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0g
bmV3IFNpbXBsZUZvbnREYXRhKHBsYXRmb3JtRGF0YSk7Ci0gICAgfQorICAgICAgICBtX3NtYWxs
Q2Fwc0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKICAg
ICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBs
ZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1waGFzaXNNYXJrRm9udERhdGEp
IHsKKyAgICAgICAgbV9lbXBoYXNpc01hcmtGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZW1waGFzaXNNYXJrRm9udERhdGE7Cit9
CisKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IHRydWU7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3
Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxR
QnJ1c2g+CkBAIC0yNjAsNiArMjYxLDM0IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdy
YXBoaWNzQ29udGUKICAgICBkcmF3VGV4dENvbW1vbihjdHgsIHJ1biwgcG9pbnQsIGZyb20sIHRv
LCBmb250KCksIC8qIGlzQ29tcGxleFRleHQgPSAqL3RydWUpOwogfQogCitpbnQgRm9udDo6ZW1w
aGFzaXNNYXJrQXNjZW50KGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IEZvbnQ6OmVtcGhhc2lzTWFya0Rl
c2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrSGVpZ2h0KGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQoR3Jh
cGhpY3NDb250ZXh0KiAvKiBjb250ZXh0ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNv
bnN0IEF0b21pY1N0cmluZyYgLyogbWFyayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQg
Ki8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0
IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3Zl
cmZsb3cpIGNvbnN0CiB7CiAgICAgaWYgKCFwcmltYXJ5Rm9udCgpLT5wbGF0Zm9ybURhdGEoKS5z
aXplKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAko
cmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdseXBoQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2lu
Y2x1ZGUgIlVuaXNjcmliZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgpAQCAtNjIsMzMgKzYzLDU3IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29t
cGxleFQKICAgICByZXR1cm4gRmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0
aCksIHBvaW50LnkoKSwgcm91bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwg
aCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250
OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwg
aW50IGZyb20sIGludCB0bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFz
aXNPck5vdCBmb3JUZXh0RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZm
ZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBo
LgotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGlmIChmb3JUZXh0RW1waGFzaXMp
IHsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBmb3JUZXh0RW1waGFzaXMgcGFyZW1ldGVyIHRvIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIHVzZSBpdC4KKyAgICAgICAgTE9HX0VSUk9SKCJOb3QgaW1w
bGVtZW50ZWQgZm9yIHRleHQgZW1waGFzaXMuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
IAotICAgIGZsb2F0IHN0YXJ0WCA9IHBvaW50LngoKTsKICAgICBVbmlzY3JpYmVDb250cm9sbGVy
IGNvbnRyb2xsZXIodGhpcywgcnVuKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJvbSk7CiAg
ICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKICAgICBj
b250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291
bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBp
ZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAg
IHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewogICAgICAgICBjb250cm9sbGVyLmFkdmFu
Y2UocnVuLmxlbmd0aCgpKTsKLSAgICAgICAgc3RhcnRYICs9IGNvbnRyb2xsZXIucnVuV2lkdGhT
b0ZhcigpIC0gYWZ0ZXJXaWR0aDsKLSAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9y
ZVdpZHRoOworICAgICAgICByZXR1cm4gY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkgLSBhZnRl
cldpZHRoOworICAgIH0KKyAgICByZXR1cm4gYmVmb3JlV2lkdGg7Cit9CisKK3ZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9s
ZHMgb3VyIGdseXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAg
IEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgp
ICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlcik7CisKKyAgICAvLyBXZSBjb3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0
aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBEcmF3IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFy
dGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50
KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhC
dWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBzdGFydFBvaW50KTsKK30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwor
ICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4
VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAg
IGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdF
bXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50
LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6Zmxv
YXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBT
aW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJm
bG93KSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9u
dERhdGFXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24gNzM5OTQpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMCwyNiArMTEwLDM4IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgp
CiAgICAgZGVsZXRlIG1fc2NyaXB0Rm9udFByb3BlcnRpZXM7CiB9CiAKLVNpbXBsZUZvbnREYXRh
KiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBm
bG9hdCBzY2FsZUZhY3RvcikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEp
IHsKLSAgICAgICAgZmxvYXQgc21hbGxDYXBzSGVpZ2h0ID0gY1NtYWxsQ2Fwc0ZvbnRTaXplTXVs
dGlwbGllciAqIG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKKyAgICAgICAgZmxvYXQgc2NhbGVkU2l6
ZSA9IHNjYWxlRmFjdG9yICogbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwogICAgICAgICBpZiAoaXND
dXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9u
dERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAgICAgICAgc21hbGxDYXBzRm9udERhdGEuc2V0
U2l6ZShzbWFsbENhcHNIZWlnaHQpOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9
IG5ldyBTaW1wbGVGb250RGF0YShzbWFsbENhcHNGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HRk9OVCB3aW5mb250OwotICAgICAgICAgICAg
R2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRhLmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbmZv
bnQpOwotICAgICAgICAgICAgd2luZm9udC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc0hl
aWdodCAqIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSA/IDEgOiAzMikpOwotICAgICAgICAgICAg
SEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndpbmZvbnQpOwotICAgICAgICAgICAg
bV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRh
KGhmb250LCBzbWFsbENhcHNIZWlnaHQsIG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwg
bV9wbGF0Zm9ybURhdGEuc3ludGhldGljT2JsaXF1ZSgpLCBtX3BsYXRmb3JtRGF0YS51c2VHREko
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNj
YWxlZEZvbnQobV9wbGF0Zm9ybURhdGEpOworICAgICAgICAgICAgc2NhbGVkRm9udC5zZXRTaXpl
KHNjYWxlZFNpemUpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2Fs
ZWRGb250LCB0cnVlLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICB9CisKKyAgICAgICAgTE9HRk9O
VCB3aW5mb250OworICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSwgc2l6
ZW9mKExPR0ZPTlQpLCAmd2luZm9udCk7CisgICAgICAgIHdpbmZvbnQubGZIZWlnaHQgPSAtbHJv
dW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpID8gMSA6IDMyKSk7Cisg
ICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250KTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzY2Fs
ZWRTaXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZvcm1EYXRhLnN5
bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpLCBpc0N1c3RvbUZvbnQo
KSwgZmFsc2UpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
eworICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250
RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgY1NtYWxsQ2Fwc0ZvbnRTaXpl
TXVsdGlwbGllcik7CisKICAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKIH0KIAorU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZW1w
aGFzaXNNYXJrRm9udERhdGEpCisgICAgICAgIG1fZW1waGFzaXNNYXJrRm9udERhdGEgPSBzY2Fs
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC41KTsKKworICAgIHJldHVybiBtX2VtcGhhc2lz
TWFya0ZvbnREYXRhOworfQorCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IFN1cHBvcnQgY3VzdG9tIGZvbnRzLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDcz
OTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFVuaXNjcmliZUNv
bnRyb2xsZXI6OmFkdmFuY2UodW5zaWduCiAgICAgICAgIFVDaGFyIGMgPSAqY3VycjsKIAogICAg
ICAgICBib29sIGZvcmNlU21hbGxDYXBzID0gaXNTbWFsbENhcHMgJiYgKFVfR0VUX0dDX01BU0so
YykgJiBVX0dDX01fTUFTSyk7Ci0gICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERh
dGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcykuZm9udERhdGE7Cisg
ICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIs
IGZhbHNlLCBmb3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCku
Zm9udERhdGE7CiAgICAgICAgIGlmIChtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAg
ICAgbmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIo
YykpICE9IGM7CiAgICAgICAgICAgICBpZiAobmV4dElzU21hbGxDYXBzKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFdpbkNFLmNwcAkocmV2aXNpb24gNzM5
OTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMTEgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRl
eHQoR3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJr
c0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4
dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZs
b2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhG
b3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29u
c3QKIHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNFLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NpbXBsZUZvbnREYXRhV2luQ0Uu
Y3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
U2ltcGxlRm9udERhdGFXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDIwICs2NCwzMiBA
QCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIG1fc21hbGxDYXBz
Rm9udERhdGEgPSAwOwogfQogCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxl
ZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBz
Y2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2MoZm9udERl
c2NyaXB0aW9uKTsKKyAgICBmb250RGVzYy5zZXRDb21wdXRlZFNpemUobHJvdW5kZihzY2FsZUZh
Y3RvciAqIGZvbnREZXNjLmNvbXB1dGVkU2l6ZSgpKSk7CisgICAgZm9udERlc2Muc2V0U3BlY2lm
aWVkU2l6ZShscm91bmRmKHNjYWxlRmFjdG9yICogZm9udERlc2Muc3BlY2lmaWVkU2l6ZSgpKSk7
CisgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnRE
ZXNjLmtleXdvcmRTaXplKCkpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKiByZXN1bHQgPSBmb250
Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVzYywgbV9wbGF0Zm9ybURh
dGEuZmFtaWx5KCkpOworICAgIHJldHVybiByZXN1bHQgPyBuZXcgU2ltcGxlRm9udERhdGEoKnJl
c3VsdCkgOiAwOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fw
c0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAog
ewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRp
b24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgZm9udERlc2Muc2V0Q29tcHV0
ZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5jb21wdXRlZFNpemUoKSkpOwotICAgICAg
ICBmb250RGVzYy5zZXRTcGVjaWZpZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5zcGVj
aWZpZWRTaXplKCkpKTsKLSAgICAgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZigw
LjcwZiAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKLSAgICAgICAgRm9udFBsYXRmb3JtRGF0
YSogcmVzdWx0ID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoZm9udERl
c2MsIG1fcGxhdGZvcm1EYXRhLmZhbWlseSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAg
ICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9udERhdGEoKnJlc3VsdCk7
Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkKKyAgICAgICAgbV9zbWFsbENh
cHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCiAgICAg
cmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVG
b250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2VtcGhhc2lzTWFya0ZvbnREYXRhKQor
ICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0gc2NhbGVkRm9udERhdGEoZm9udERlc2Ny
aXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBoYXNpc01hcmtGb250RGF0YTsKK30KKwog
RFdPUkQgZ2V0S25vd25Gb250Q29kZVBhZ2VzKGNvbnN0IHdjaGFyX3QqIGZhbWlseSk7CiAKIGJv
b2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvRm9udFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4
L0ZvbnRXeC5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNCBAQCBGbG9hdFJl
Y3QgRm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUCiAjZW5kaWYKIH0KIAorZmxvYXQgRm9u
dDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiAvKiBy
dW4gKi8sIGludCAvKiBmcm9tICovLCBpbnQgLyogdG8gKi8sIEdseXBoQnVmZmVyJiAvKiBnbHlw
aEJ1ZmZlciAqLywgRm9yVGV4dEVtcGhhc2lzT3JOb3QgLyogZm9yVGV4dEVtcGhhc2lzICovKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBieSBtb3ZpbmcgbW9zdCBvZiB0
aGUgZHJhd0NvbXBsZXhUZXh0KCkgaW1wbGVtZW50YXRpb24gaW4gaGVyZS4gU2V0IHVwIHRoZQor
ICAgIC8vIENvbXBsZXhUZXh0Q29udHJvbGxlciBhY2NvcmRpbmcgdG8gZm9yVGV4dEVtcGhhc2lz
LgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRm9udDo6
ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYg
cnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKIHsK
ICNpZiBPUyhXSU5ET1dTKSB8fCBPUyhEQVJXSU4pCkBAIC0xMzAsMTIgKzEzOCwyMiBAQCB2b2lk
IEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAKICAgICAvLyBEcmF3IHRoZSBn
bHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBzdGFydFgu
CiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAgICBkcmF3
R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7CisgICAg
ZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsKICNlbHNl
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgogfQogCit2b2lkIEZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBU
ZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0Cit7CisgICAgR2x5cGhCdWZmZXIgZ2x5cGhC
dWZmZXI7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
ckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXMp
OworCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0UG9p
bnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOworfQogCiBmbG9hdCBG
b250OjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0
PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqKSBj
b25zdAogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0
YVd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBs
ZUZvbnREYXRhV3guY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvU2ltcGxlRm9udERhdGFXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE3ICs5
MCwzMCBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybURlc3Ryb3koKQogI2VuZGlmCiB9
CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25z
dAoreworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNj
cmlwdGlvbik7CisgICAgZGVzYy5zZXRTcGVjaWZpZWRTaXplKHNjYWxlRmFjdG9yICogZm9udERl
c2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3Jt
RGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBs
ZUZvbnREYXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKK30KKwogU2lt
cGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICBpZiAoIW1fc21hbGxD
YXBzRm9udERhdGEpewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNjcmlw
dGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoMC43
MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxhdGZv
cm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9ybURhdGEs
IGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9zbWFsbENhcHNGb250
RGF0YSkKKyAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjcpOworCiAgICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFt
X2VtcGhhc2lzTWFya0ZvbnREYXRhKQorICAgICAgICBtX2VtcGhhc2lzTWFya0ZvbnREYXRhID0g
c2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9lbXBo
YXNpc01hcmtGb250RGF0YTsKK30KKwogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBXZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gbG9hZCBub24tQVND
SUkgZW5jb2Rpbmcgc2l0ZXMKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1l
cy5oCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJO
YW1lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzIsMjAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBOYW1lcyBoZXJlIGFyZSB0YWtlbiBmcm9tIHRoZSBVbmljb2Rl
IHN0YW5kYXJkLgogCi0vLyBOb3RlLCB0aGVzZSBhcmUgVUNoYXIgY29uc3RhbnRzLCBub3QgVUNo
YXIzMiwgd2hpY2ggbWFrZXMgdGhlbQorLy8gTm90ZSwgbW9zdCBvZiB0aGVzZSBhcmUgVUNoYXIg
Y29uc3RhbnRzLCBub3QgVUNoYXIzMiwgd2hpY2ggbWFrZXMgdGhlbQogLy8gbW9yZSBjb252ZW5p
ZW50IGZvciBXZWJDb3JlIGNvZGUgdGhhdCBtb3N0bHkgdXNlcyBVVEYtMTYuCiAKK2NvbnN0IFVD
aGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckxpbmUgPSAweDEwMTAwOworY29uc3QgVUNoYXIzMiBh
ZWdlYW5Xb3JkU2VwYXJhdG9yRG90ID0gMHgxMDEwMTsKK2NvbnN0IFVDaGFyIGJsYWNrQ2lyY2xl
ID0gMHgyNUNGOwogY29uc3QgVUNoYXIgYmxhY2tTcXVhcmUgPSAweDI1QTA7Citjb25zdCBVQ2hh
ciBibGFja1VwUG9pbnRpbmdUcmlhbmdsZSA9IDB4MjVCMjsKIGNvbnN0IFVDaGFyIGJ1bGxldCA9
IDB4MjAyMjsKK2NvbnN0IFVDaGFyIGJ1bGxzZXllID0gMHgyNUNFOwogY29uc3QgVUNoYXIgY2Fy
cmlhZ2VSZXR1cm4gPSAweDAwMEQ7CiBjb25zdCBVQ2hhciBldGhpb3BpY1ByZWZhY2VDb2xvbiA9
IDB4MTM2NjsKK2NvbnN0IFVDaGFyIGV0aGlvcGljV29yZHNwYWNlID0gMHgxMzYxOworY29uc3Qg
VUNoYXIgZmlzaGV5ZSA9IDB4MjVDOTsKIGNvbnN0IFVDaGFyIGhlYnJld1B1bmN0dWF0aW9uR2Vy
ZXNoID0gMHgwNUYzOwogY29uc3QgVUNoYXIgaGVicmV3UHVuY3R1YXRpb25HZXJzaGF5aW0gPSAw
eDA1RjQ7CiBjb25zdCBVQ2hhciBob3Jpem9udGFsRWxsaXBzaXMgPSAweDIwMjY7CkBAIC02Myw5
ICs3MCwxNiBAQCBjb25zdCBVQ2hhciByaWdodFNpbmdsZVF1b3RhdGlvbk1hcmsgPSAwCiBjb25z
dCBVQ2hhciByaWdodFRvTGVmdEVtYmVkID0gMHgyMDJCOwogY29uc3QgVUNoYXIgcmlnaHRUb0xl
ZnRNYXJrID0gMHgyMDBGOwogY29uc3QgVUNoYXIgcmlnaHRUb0xlZnRPdmVycmlkZSA9IDB4MjAy
RTsKK2NvbnN0IFVDaGFyIHNlc2FtZURvdCA9IDB4RkU0NTsKIGNvbnN0IFVDaGFyIHNvZnRIeXBo
ZW4gPSAweDAwQUQ7CiBjb25zdCBVQ2hhciBzcGFjZSA9IDB4MDAyMDsKK2NvbnN0IFVDaGFyIHRp
YmV0YW5NYXJrSW50ZXJzeWxsYWJpY1RzaGVnID0gMHgwRjBCOworY29uc3QgVUNoYXIgdGliZXRh
bk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFyID0gMHgwRjBDOworY29uc3QgVUNoYXIzMiB1Z2FyaXRp
Y1dvcmREaXZpZGVyID0gMHgxMDM5RjsKIGNvbnN0IFVDaGFyIHdoaXRlQnVsbGV0ID0gMHgyNUU2
OworY29uc3QgVUNoYXIgd2hpdGVDaXJjbGUgPSAweDI1Q0I7Citjb25zdCBVQ2hhciB3aGl0ZVNl
c2FtZURvdCA9IDB4RkU0NjsKK2NvbnN0IFVDaGFyIHdoaXRlVXBQb2ludGluZ1RyaWFuZ2xlID0g
MHgyNUIzOwogY29uc3QgVUNoYXIgeWVuU2lnbiA9IDB4MDBBNTsKIGNvbnN0IFVDaGFyIHplcm9X
aWR0aEpvaW5lciA9IDB4MjAwRDsKIGNvbnN0IFVDaGFyIHplcm9XaWR0aE5vbkpvaW5lciA9IDB4
MjAwQzsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA3Mzk5
NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00OTgsNyArNDk4LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJv
eEhlaQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHVzZWRGb250cyAmJiAhdXNlZEZvbnRzLT5p
c0VtcHR5KCkgJiYgY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5saW5lSGVp
Z2h0KCkuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgICAgICB1c2VkRm9udHMtPmFwcGVuZChjdXJy
LT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5wcmltYXJ5Rm9udCgpKTsK
KyAgICAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZSht
X2ZpcnN0TGluZSktPmZvbnQoKTsKKyAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGZvbnQu
cHJpbWFyeUZvbnQoKSk7CiAgICAgICAgICAgICBib29sIGJhc2VsaW5lU2V0ID0gZmFsc2U7CiAg
ICAgICAgICAgICBiYXNlbGluZSA9IDA7CiAgICAgICAgICAgICBpbnQgYmFzZWxpbmVUb0JvdHRv
bSA9IDA7CkBAIC01MjQsMTQgKzUyNSwzMiBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVM
b2dpY2FsQm94SGVpCiAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gY3Vyci0+bGluZUhlaWdodCgp
OwogICAgICAgICAgICAgYmFzZWxpbmUgPSBjdXJyLT5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5l
VHlwZSk7CiAgICAgICAgICAgICBpZiAoY3Vyci0+aXNUZXh0KCkgfHwgaXNJbmxpbmVGbG93KSB7
CisgICAgICAgICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IGN1cnItPnJlbmRlcmVyKCktPnN0
eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpOworICAgICAgICAgICAgICAgIGludCBhc2NlbnQgPSBm
b250LmFzY2VudChiYXNlbGluZVR5cGUpOworICAgICAgICAgICAgICAgIGludCBkZXNjZW50ID0g
Zm9udC5kZXNjZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKGN1cnItPmlz
VGV4dCgpICYmIGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dEVtcGhh
c2lzTWFyaygpICE9IFRleHRFbXBoYXNpc01hcmtOb25lKSB7CisgICAgICAgICAgICAgICAgICAg
IGludCBlbXBoYXNpc01hcmtIZWlnaHQgPSBmb250LmVtcGhhc2lzTWFya0hlaWdodChjdXJyLT5y
ZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7
CisgICAgICAgICAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChmb250LmxpbmVTcGFjaW5n
KCkgLSBmb250LmhlaWdodCgpKSAvIDI7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250QXNj
ZW50ID0gaGFsZkxlYWRpbmcgKyBhc2NlbnQ7CisgICAgICAgICAgICAgICAgICAgIGludCBmb250
RGVzY2VudCA9IGZvbnQubGluZVNwYWNpbmcoKSAtIGZvbnRBc2NlbnQ7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBo
YXNpc1Bvc2l0aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc2NlbnQgKz0gZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZWxpbmUgPSBtYXgoZm9udEFzY2VudCwgYXNjZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBiYXNlbGluZSArIGZvbnREZXNjZW50OworICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzY2Vu
dCArPSBlbXBoYXNpc01hcmtIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVp
Z2h0ID0gbWF4KGxpbmVIZWlnaHQsIGJhc2VsaW5lICsgZGVzY2VudCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAvLyBFeGFtaW5l
IHRoZSBmb250IGJveCBmb3IgaW5saW5lIGZsb3dzIGFuZCB0ZXh0IGJveGVzIHRvIHNlZSBpZiBh
bnkgcGFydCBvZiBpdCBpcyBhYm92ZSB0aGUgYmFzZWxpbmUuCiAgICAgICAgICAgICAgICAgLy8g
SWYgdGhlIHRvcCBvZiBvdXIgZm9udCBib3ggcmVsYXRpdmUgdG8gdGhlIHJvb3QgYm94IGJhc2Vs
aW5lIGlzIGFib3ZlIHRoZSByb290IGJveCBiYXNlbGluZSwgdGhlbgogICAgICAgICAgICAgICAg
IC8vIHdlIGFyZSBjb250cmlidXRpbmcgdG8gdGhlIG1heEFzY2VudCB2YWx1ZS4KLSAgICAgICAg
ICAgICAgICBhZmZlY3RzQXNjZW50ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExp
bmUpLT5mb250KCkuYXNjZW50KGJhc2VsaW5lVHlwZSkgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAw
OworICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBhc2NlbnQgLSBjdXJyLT5sb2dpY2Fs
VG9wKCkgPiAwOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIERlc2NlbnQg
aXMgc2ltaWxhci4gIElmIGFueSBwYXJ0IG9mIG91ciBmb250IGJveCBpcyBiZWxvdyB0aGUgcm9v
dCBib3gncyBiYXNlbGluZSwgdGhlbgogICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRyaWJ1dGUg
dG8gdGhlIG1heERlc2NlbnQgdmFsdWUuCi0gICAgICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQg
PSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKS5kZXNjZW50KGJh
c2VsaW5lVHlwZSkgKyBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOworICAgICAgICAgICAgICAgIGFm
ZmVjdHNEZXNjZW50ID0gZGVzY2VudCArIGN1cnItPmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGVsZW1lbnRzIGFsd2F5
cyBhZmZlY3QgYm90aCB0aGUgYXNjZW50IGFuZCBkZXNjZW50LgogICAgICAgICAgICAgICAgIGFm
ZmVjdHNBc2NlbnQgPSB0cnVlOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJ
KHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1Miw3ICszNTIsNyBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJv
eDo6YXBwbHlTaGFkb3dUb0dyCiAgICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwogfQogCi1zdGF0aWMg
dm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGludCBzdGFydE9mZnNldCwgaW50
IGVuZE9mZnNldCwgaW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmln
aW4sCitzdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0
b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3Rh
cnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEludFBv
aW50JiB0ZXh0T3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCYgYm94UmVjdCwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQs
IGJvb2wgaG9yaXpvbnRhbCkKIHsKICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxs
Q29sb3IoKTsKQEAgLTM2OCwxMyArMzY4LDIzIEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhT
aGFkb3dzKEdyYXBoaWMKICAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKICAgICAgICAgICAgIGNv
bnRleHQtPnNldEZpbGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIAotICAgICAg
ICBpZiAoc3RhcnRPZmZzZXQgPD0gZW5kT2Zmc2V0KQotICAgICAgICAgICAgY29udGV4dC0+ZHJh
d1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW5kT2Zmc2V0
ID4gMCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0
ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOwotICAgICAgICAgICAgaWYg
KHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBvaW50KQotICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRP
ZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRP
ZmZzZXQpIHsKKyAgICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBl
eHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwg
ZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhh
c2lzTWFya09mZnNldCksIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgaWYgKGVuZE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCAgMCwgZW5kT2Zm
c2V0KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdp
biArIGV4dHJhT2Zmc2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgMCwgZW5k
T2Zmc2V0KTsKKyAgICAgICAgICAgIH0gaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBvaW50
KSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4g
KyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJr
cyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCAr
IEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9u
UG9pbnQpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzaGFkb3cp
CkBAIC00ODgsMTIgKzQ5OCwxNCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5m
byYgcGFpCiAgICAgLy8gMi4gTm93IHBhaW50IHRoZSBmb3JlZ3JvdW5kLCBpbmNsdWRpbmcgdGV4
dCBhbmQgZGVjb3JhdGlvbnMgbGlrZSB1bmRlcmxpbmUvb3ZlcmxpbmUgKGluIHF1aXJrcyBtb2Rl
IG9ubHkpLgogICAgIENvbG9yIHRleHRGaWxsQ29sb3I7CiAgICAgQ29sb3IgdGV4dFN0cm9rZUNv
bG9yOworICAgIENvbG9yIGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VX
aWR0aCA9IHN0eWxlVG9Vc2UtPnRleHRTdHJva2VXaWR0aCgpOwogICAgIGNvbnN0IFNoYWRvd0Rh
dGEqIHRleHRTaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogc3R5bGVUb1Vz
ZS0+dGV4dFNoYWRvdygpOwogCiAgICAgaWYgKHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCkgewog
ICAgICAgICB0ZXh0RmlsbENvbG9yID0gQ29sb3I6OmJsYWNrOwogICAgICAgICB0ZXh0U3Ryb2tl
Q29sb3IgPSBDb2xvcjo6YmxhY2s7CisgICAgICAgIGVtcGhhc2lzTWFya0NvbG9yID0gQ29sb3I6
OmJsYWNrOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBzdHlsZVRvVXNl
LT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yKTsK
ICAgICAgICAgCkBAIC01MDYsNiArNTE4LDEyIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWkKICAgICAgICAgLy8gTWFrZSB0aGUgdGV4dCBzdHJva2UgY29sb3IgbGVn
aWJsZSBhZ2FpbnN0IGEgd2hpdGUgYmFja2dyb3VuZAogICAgICAgICBpZiAoc3R5bGVUb1VzZS0+
Zm9yY2VCYWNrZ3JvdW5kc1RvV2hpdGUoKSkKICAgICAgICAgICAgIHRleHRTdHJva2VDb2xvciA9
IGNvcnJlY3RlZFRleHRDb2xvcih0ZXh0U3Ryb2tlQ29sb3IsIENvbG9yOjp3aGl0ZSk7CisKKyAg
ICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBzdHlsZVRvVXNlLT52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcik7CisgICAgICAgIAorICAgICAg
ICAvLyBNYWtlIHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBi
YWNrZ3JvdW5kCisgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0
ZSgpKQorICAgICAgICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBjb3JyZWN0ZWRUZXh0Q29sb3Io
ZW1waGFzaXNNYXJrQ29sb3IsIENvbG9yOjp3aGl0ZSk7CiAgICAgfQogCiAgICAgYm9vbCBwYWlu
dFNlbGVjdGVkVGV4dE9ubHkgPSAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rp
b24pOwpAQCAtNTEzLDYgKzUzMSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJ
bmZvJiBwYWkKIAogICAgIENvbG9yIHNlbGVjdGlvbkZpbGxDb2xvciA9IHRleHRGaWxsQ29sb3I7
CiAgICAgQ29sb3Igc2VsZWN0aW9uU3Ryb2tlQ29sb3IgPSB0ZXh0U3Ryb2tlQ29sb3I7CisgICAg
Q29sb3Igc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IgPSBlbXBoYXNpc01hcmtDb2xvcjsKICAg
ICBmbG9hdCBzZWxlY3Rpb25TdHJva2VXaWR0aCA9IHRleHRTdHJva2VXaWR0aDsKICAgICBjb25z
dCBTaGFkb3dEYXRhKiBzZWxlY3Rpb25TaGFkb3cgPSB0ZXh0U2hhZG93OwogICAgIGlmIChoYXZl
U2VsZWN0aW9uKSB7CkBAIC01MjQsNiArNTQzLDEzIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgICAgIHNlbGVjdGlvbkZpbGxDb2xvciA9IGZvcmVn
cm91bmQ7CiAgICAgICAgIH0KIAorICAgICAgICBDb2xvciBlbXBoYXNpc01hcmtGb3JlZ3JvdW5k
ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0ID8gQ29sb3I6OmJsYWNrIDogcmVuZGVyZXIoKS0+
c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKTsKKyAgICAgICAgaWYgKGVtcGhhc2lzTWFya0Zv
cmVncm91bmQuaXNWYWxpZCgpICYmIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgIT0gc2VsZWN0aW9u
RW1waGFzaXNNYXJrQ29sb3IpIHsKKyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRP
bmx5KQorICAgICAgICAgICAgICAgIHBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSA9IHRydWU7
CisgICAgICAgICAgICBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvciA9IGVtcGhhc2lzTWFya0Zv
cmVncm91bmQ7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoUmVuZGVyU3R5bGUqIHBzZXVkb1N0
eWxlID0gcmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUoU0VMRUNUSU9OKSkgewogICAg
ICAgICAgICAgY29uc3QgU2hhZG93RGF0YSogc2hhZG93ID0gcGFpbnRJbmZvLmZvcmNlQmxhY2tU
ZXh0ID8gMCA6IHBzZXVkb1N0eWxlLT50ZXh0U2hhZG93KCk7CiAgICAgICAgICAgICBpZiAoc2hh
ZG93ICE9IHNlbGVjdGlvblNoYWRvdykgewpAQCAtNTY3LDYgKzU5MywxNSBAQCB2b2lkIElubGlu
ZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgIGxlbmd0aCA9IG1fdHJ1bmNh
dGlvbjsKICAgICB9CiAKKyAgICBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0ID0gMDsKKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGVtcGhhc2lzTWFyayA9IHN0eWxlVG9Vc2UtPnRleHRFbXBoYXNpc01h
cmtTdHJpbmcoKTsKKyAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAgICAg
aWYgKHN0eWxlVG9Vc2UtPnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9z
aXRpb25PdmVyKQorICAgICAgICAgICAgZW1waGFzaXNNYXJrT2Zmc2V0ID0gLWZvbnQuYXNjZW50
KC8qIEZJWE1FOiBOZWVkcyBiYXNlbGluZSB0eXBlICovKSAtIGZvbnQuZW1waGFzaXNNYXJrRGVz
Y2VudChlbXBoYXNpc01hcmspOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbXBoYXNpc01h
cmtPZmZzZXQgPSBmb250LmRlc2NlbnQoLyogRklYTUU6IE5lZWRzIGJhc2VsaW5lIHR5cGUgKi8p
ICsgZm9udC5lbXBoYXNpc01hcmtBc2NlbnQoZW1waGFzaXNNYXJrKTsKKyAgICB9CisKICAgICBp
ZiAoIXBhaW50U2VsZWN0ZWRUZXh0T25seSkgewogICAgICAgICAvLyBGb3Igc3Ryb2tlZCBwYWlu
dGluZywgd2UgaGF2ZSB0byBjaGFuZ2UgdGhlIHRleHQgZHJhd2luZyBtb2RlLiAgSXQncyBwcm9i
YWJseSBkYW5nZXJvdXMgdG8gbGVhdmUgdGhhdCBtdXRhdGVkIGFzIGEgc2lkZQogICAgICAgICAv
LyBlZmZlY3QsIHNvIG9ubHkgd2hlbiB3ZSBrbm93IHdlJ3JlIHN0cm9raW5nLCBkbyBhIHNhdmUv
cmVzdG9yZS4KQEAgLTU3Niw5ICs2MTEsMTggQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQ
YWludEluZm8mIHBhaQogICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgdGV4
dEZpbGxDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2Ut
PmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5
IHx8IGVQb3MgPD0gc1BvcykgewogICAgICAgICAgICAgLy8gRklYTUU6IFRydW5jYXRlIHJpZ2h0
LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93
cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwg
Ym94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkp
OworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1
biwgbnVsbEF0b20sIDAsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0
ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CiAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwg
dGV4dFJ1biwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hh
ZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBw
YWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwg
ZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0
U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisKKyAgICAgICAgaWYgKCFlbXBoYXNp
c01hcmsuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29u
dGV4dCwgZW1waGFzaXNNYXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRo
LCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgaWYgKCFwYWludFNlbGVj
dGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CisgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFRydW5jYXRlIHJpZ2h0LXRvLWxlZnQgdGV4dCBjb3JyZWN0bHkuCisgICAgICAgICAg
ICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgZW1waGFz
aXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIDAsIGxlbmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2lu
LCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwo
KSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09m
ZnNldCwgZVBvcywgc1BvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93
LCB0ZXh0U3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIH0KIAogICAg
ICAgICBpZiAodGV4dFN0cm9rZVdpZHRoID4gMCkKICAgICAgICAgICAgIGNvbnRleHQtPnJlc3Rv
cmUoKTsKQEAgLTU5MCw4ICs2MzQsMTEgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWlu
dEluZm8mIHBhaQogICAgICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogCiAgICAgICAgIHVwZGF0
ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzZWxlY3Rpb25GaWxsQ29sb3IsIHNlbGVjdGlvblN0
cm9rZUNvbG9yLCBzZWxlY3Rpb25TdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgp
KTsKLSAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwg
c1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3cs
IHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwotCisgICAgICAgIHBh
aW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBz
UG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywg
c2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgIGlmICgh
ZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250
ZXh0KGNvbnRleHQsIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29sb3Is
IHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAg
IHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFy
aywgZW1waGFzaXNNYXJrT2Zmc2V0LCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJv
eFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hvcml6
b250YWwoKSk7CisgICAgICAgIH0KICAgICAgICAgaWYgKHNlbGVjdGlvblN0cm9rZVdpZHRoID4g
MCkKICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKICAgICB9CkluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyNiw2ICsxNjI2LDI3IEBA
IENvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRm9yZWdyb3VuZEMKICAgICByZXR1cm4gY29s
b3I7CiB9CiAKK0NvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3Io
KSBjb25zdAoreworICAgIENvbG9yIGNvbG9yOworICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHVu
c2VsZWN0YWJsZSwgb3Igd2UgYXJlIG9ubHkgcGFpbnRpbmcgdGhlIHNlbGVjdGlvbiwKKyAgICAv
LyBkb24ndCBvdmVycmlkZSB0aGUgZm9yZWdyb3VuZCBjb2xvciB3aXRoIHRoZSBzZWxlY3Rpb24g
Zm9yZWdyb3VuZCBjb2xvci4KKyAgICBpZiAoc3R5bGUoKS0+dXNlclNlbGVjdCgpID09IFNFTEVD
VF9OT05FCisgICAgICAgIHx8IChmcmFtZSgpLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSAmIFBh
aW50QmVoYXZpb3JTZWxlY3Rpb25Pbmx5KSkKKyAgICAgICAgcmV0dXJuIGNvbG9yOworCisgICAg
aWYgKFJlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVkb1N0
eWxlKFNFTEVDVElPTikpIHsKKyAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOworICAgICAg
ICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGNvbG9yID0gcHNldWRvU3R5bGUt
PnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgY29sb3IgPSBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5kQWN0aXZlKCkg
PworICAgICAgICAgICAgICAgIHRoZW1lKCktPmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpIDoKKyAgICAgICAgICAgICAgICB0aGVtZSgpLT5pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpOworCisgICAgcmV0dXJuIGNvbG9yOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKIE5vZGUqIFJlbmRlck9iamVjdDo6ZHJhZ2dhYmxlTm9kZShib29sIGRodG1sT0ssIGJv
b2wgdWFPSywgaW50IHgsIGludCB5LCBib29sJiBkaHRtbFdpbGxEcmFnKSBjb25zdAogewpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDczOTk0KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3NSw2ICs2NzUsNyBA
QCBwdWJsaWM6CiAgICAgLy8gT2J0YWlucyB0aGUgc2VsZWN0aW9uIGNvbG9ycyB0aGF0IHNob3Vs
ZCBiZSB1c2VkIHdoZW4gcGFpbnRpbmcgYSBzZWxlY3Rpb24uCiAgICAgQ29sb3Igc2VsZWN0aW9u
QmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgQ29sb3Igc2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9yKCkgY29uc3Q7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBjb25z
dDsKIAogICAgIC8vIFdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gYmxvY2sgbmVlZHMgdG8gcGFpbnQg
c2VsZWN0aW9uIGdhcHMuCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9uR2Fw
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA3Mzk5NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQ3LDYgKzg0Nyw0NyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjpoeXBoZW5TCiAgICAgcmV0dXJuIGh5cGhl
bk1pbnVzU3RyaW5nOwogfQogCitjb25zdCBBdG9taWNTdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0
RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHRleHRFbXBoYXNpc01h
cmsoKSkgeworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya05vbmU6CisgICAgICAgIHJldHVybiBu
dWxsQXRvbTsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtDdXN0b206CisgICAgICAgIHJldHVy
biB0ZXh0RW1waGFzaXNDdXN0b21NYXJrKCk7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG90
OiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWREb3RT
dHJpbmcsICgmYnVsbGV0LCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcGVuRG90U3RyaW5nLCAoJndoaXRlQnVsbGV0LCAxKSk7CisgICAgICAgIHJldHVy
biB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERv
dFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
a0NpcmNsZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmls
bGVkQ2lyY2xlU3RyaW5nLCAoJmJsYWNrQ2lyY2xlLCAxKSk7CisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAx
KSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmls
bEZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CisgICAgfQor
ICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdWJsZUNpcmNsZTogeworICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZp
c2hleWUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9w
ZW5Eb3VibGVDaXJjbGVTdHJpbmcsICgmYnVsbHNleWUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRl
eHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkRG91Ymxl
Q2lyY2xlU3RyaW5nIDogb3BlbkRvdWJsZUNpcmNsZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrVHJpYW5nbGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZpbGxlZFRyaWFuZ2xlU3RyaW5nLCAoJmJsYWNrVXBQb2ludGluZ1RyaWFu
Z2xlLCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVu
VHJpYW5nbGVTdHJpbmcsICgmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAg
cmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmls
bGVkVHJpYW5nbGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya1Nlc2FtZTogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZmlsbGVkU2VzYW1lU3RyaW5nLCAoJnNlc2FtZURvdCwgMSkpOworICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmluZywgKCZ3
aGl0ZVNlc2FtZURvdCwgMSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09
IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRTZXNhbWVTdHJpbmcgOiBvcGVuU2VzYW1l
U3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtBdXRvOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworICAgIH0KKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxsQXRvbTsKK30KKwogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJl
Z2lvbj4mIFJlbmRlclN0eWxlOjppbml0aWFsRGFzaGJvYXJkUmVnaW9ucygpCiB7CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDczOTk0KQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzE4
LDYgKzcxOCw3IEBAIHB1YmxpYzoKICAgICBUZXh0RW1waGFzaXNNYXJrIHRleHRFbXBoYXNpc01h
cmsoKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRleHRFbXBoYXNpc0N1c3RvbU1h
cmsoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzQ3VzdG9t
TWFyazsgfQogICAgIFRleHRFbXBoYXNpc1Bvc2l0aW9uIHRleHRFbXBoYXNpc1Bvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEVtcGhhc2lzUG9zaXRpb24+KHJhcmVJbmhl
cml0ZWREYXRhLT50ZXh0RW1waGFzaXNQb3NpdGlvbik7IH0KKyAgICBjb25zdCBBdG9taWNTdHJp
bmcmIHRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdDsKICAgICAKICAgICAvLyBSZXR1cm4g
dHJ1ZSBpZiBhbnkgdHJhbnNmb3JtIHJlbGF0ZWQgcHJvcGVydHkgKGN1cnJlbnRseSB0cmFuc2Zv
cm0sIHRyYW5zZm9ybVN0eWxlM0Qgb3IgcGVyc3BlY3RpdmUpIAogICAgIC8vIGluZGljYXRlcyB0
aGF0IHdlIGFyZSB0cmFuc2Zvcm1pbmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76617</attachid>
            <date>2010-12-14 19:21:14 -0800</date>
            <delta_ts>2010-12-14 19:21:56 -0800</delta_ts>
            <desc>Part 2: Additional RenderStyle support</desc>
            <filename>text-emphasis_r21-style.diff</filename>
            <type>text/plain</type>
            <size>4025</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDA5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTItMTQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRp
dGlvbmFsIFJlbmRlclN0eWxlIHN1cHBvcnQgZm9yIHRoZSB0ZXh0LWVtcGhhc2lzIENTUyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1
MzkKKworICAgICAgICBObyB0ZXN0IHBvc3NpYmxlLCBzaW5jZSB0aGlzIGlzIGp1c3QgYWRkaW5n
IGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBieSB1cGNvbWluZyBwYXRjaGVzLgorCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKTogQWRkZWQuIFJldHVybnMgYSBzdHJpbmcg
Y29udGFpbmluZyB0aGUKKyAgICAgICAgZW1waGFzaXMgbWFyaywgb3IgdGhlIG51bGwgQXRvbWlj
U3RyaW5nIGlmIHRoZXJlIGlzIG5vbmUuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmg6CisKIDIwMTAtMTItMTQgIEFudG9uIEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDc0MDQ2KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDcsNiAr
ODQ3LDQ3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6Omh5cGhlblMKICAgICBy
ZXR1cm4gaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKK2NvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVy
U3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdAoreworICAgIHN3aXRjaCAodGV4
dEVtcGhhc2lzTWFyaygpKSB7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrTm9uZToKKyAgICAg
ICAgcmV0dXJuIG51bGxBdG9tOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0N1c3RvbToKKyAg
ICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKTsKKyAgICBjYXNlIFRleHRFbXBo
YXNpc01hcmtEb3Q6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxsZXQsIDEpKTsKKyAg
ICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVk
ID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrQ2lyY2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBmaWxsZWRDaXJjbGVTdHJpbmcsICgmYmxhY2tDaXJjbGUsIDEpKTsKKyAgICAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5DaXJjbGVTdHJpbmcsICgmd2hp
dGVDaXJjbGUsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0
RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkQ2lyY2xlU3RyaW5nIDogb3BlbkNpcmNsZVN0cmlu
ZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG91YmxlQ2lyY2xlOiB7CisgICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWREb3VibGVDaXJjbGVT
dHJpbmcsICgmZmlzaGV5ZSwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywgKCZidWxsc2V5ZSwgMSkpOworICAgICAg
ICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBm
aWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nOworICAgIH0K
KyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZTogeworICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5nbGVTdHJpbmcsICgmYmxhY2tVcFBv
aW50aW5nVHJpYW5nbGUsIDEpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkp
OworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxG
aWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9wZW5UcmlhbmdsZVN0cmluZzsKKyAgICB9
CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOiB7CisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJpbmcsICgmc2VzYW1lRG90LCAx
KSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuU2VzYW1l
U3RyaW5nLCAoJndoaXRlU2VzYW1lRG90LCAxKSk7CisgICAgICAgIHJldHVybiB0ZXh0RW1waGFz
aXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6
IG9wZW5TZXNhbWVTdHJpbmc7CisgICAgfQorICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0F1dG86
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbEF0b207
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxBdG9t
OworfQorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogY29uc3QgVmVjdG9yPFN0eWxl
RGFzaGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCkK
IHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gNzQw
NDYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MTgsNiArNzE4LDcgQEAgcHVibGljOgogICAgIFRleHRFbXBoYXNpc01hcmsgdGV4
dEVtcGhhc2lzTWFyaygpIGNvbnN0OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dEVtcGhh
c2lzQ3VzdG9tTWFyaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1w
aGFzaXNDdXN0b21NYXJrOyB9CiAgICAgVGV4dEVtcGhhc2lzUG9zaXRpb24gdGV4dEVtcGhhc2lz
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0RW1waGFzaXNQb3NpdGlv
bj4ocmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc1Bvc2l0aW9uKTsgfQorICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0OwogICAgIAogICAg
IC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0gcmVsYXRlZCBwcm9wZXJ0eSAoY3VycmVu
dGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBvciBwZXJzcGVjdGl2ZSkgCiAgICAgLy8g
aW5kaWNhdGVzIHRoYXQgd2UgYXJlIHRyYW5zZm9ybWluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76619</attachid>
            <date>2010-12-14 19:28:18 -0800</date>
            <delta_ts>2010-12-14 19:40:42 -0800</delta_ts>
            <desc>Part 2: Additional RenderStyle support</desc>
            <filename>text-emphasis_r21-style.diff</filename>
            <type>text/plain</type>
            <size>5782</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDA5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTItMTQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRp
dGlvbmFsIFJlbmRlclN0eWxlIHN1cHBvcnQgZm9yIHRoZSB0ZXh0LWVtcGhhc2lzIENTUyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1
MzkKKworICAgICAgICBObyB0ZXN0IHBvc3NpYmxlLCBzaW5jZSB0aGlzIGlzIGp1c3QgYWRkaW5n
IGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBieSB1cGNvbWluZyBwYXRjaGVzLgorCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oOiBBZGRlZCBjaGFyYWN0ZXJzIHVzZWQgYXMg
ZW1waGFzaXMgbWFya3MuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5n
KTogQWRkZWQuIFJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgZW1waGFz
aXMgbWFyaywgb3IgdGhlIG51bGwgQXRvbWljU3RyaW5nIGlmIHRoZXJlIGlzIG5vbmUuCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTAtMTItMTQgIEFudG9u
IEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCShyZXZp
c2lvbiA3NDA0NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9DaGFyYWN0ZXJOYW1lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSwxMCArMzUsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogLy8gTm90ZSwgdGhlc2UgYXJlIFVDaGFyIGNvbnN0YW50cywgbm90IFVDaGFyMzIsIHdo
aWNoIG1ha2VzIHRoZW0KIC8vIG1vcmUgY29udmVuaWVudCBmb3IgV2ViQ29yZSBjb2RlIHRoYXQg
bW9zdGx5IHVzZXMgVVRGLTE2LgogCitjb25zdCBVQ2hhciBibGFja0NpcmNsZSA9IDB4MjVDRjsK
IGNvbnN0IFVDaGFyIGJsYWNrU3F1YXJlID0gMHgyNUEwOworY29uc3QgVUNoYXIgYmxhY2tVcFBv
aW50aW5nVHJpYW5nbGUgPSAweDI1QjI7CiBjb25zdCBVQ2hhciBidWxsZXQgPSAweDIwMjI7Citj
b25zdCBVQ2hhciBidWxsc2V5ZSA9IDB4MjVDRTsKIGNvbnN0IFVDaGFyIGNhcnJpYWdlUmV0dXJu
ID0gMHgwMDBEOwogY29uc3QgVUNoYXIgZXRoaW9waWNQcmVmYWNlQ29sb24gPSAweDEzNjY7Citj
b25zdCBVQ2hhciBmaXNoZXllID0gMHgyNUM5OwogY29uc3QgVUNoYXIgaGVicmV3UHVuY3R1YXRp
b25HZXJlc2ggPSAweDA1RjM7CiBjb25zdCBVQ2hhciBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlp
bSA9IDB4MDVGNDsKIGNvbnN0IFVDaGFyIGhvcml6b250YWxFbGxpcHNpcyA9IDB4MjAyNjsKQEAg
LTYzLDkgKzY3LDEzIEBAIGNvbnN0IFVDaGFyIHJpZ2h0U2luZ2xlUXVvdGF0aW9uTWFyayA9IDAK
IGNvbnN0IFVDaGFyIHJpZ2h0VG9MZWZ0RW1iZWQgPSAweDIwMkI7CiBjb25zdCBVQ2hhciByaWdo
dFRvTGVmdE1hcmsgPSAweDIwMEY7CiBjb25zdCBVQ2hhciByaWdodFRvTGVmdE92ZXJyaWRlID0g
MHgyMDJFOworY29uc3QgVUNoYXIgc2VzYW1lRG90ID0gMHhGRTQ1OwogY29uc3QgVUNoYXIgc29m
dEh5cGhlbiA9IDB4MDBBRDsKIGNvbnN0IFVDaGFyIHNwYWNlID0gMHgwMDIwOwogY29uc3QgVUNo
YXIgd2hpdGVCdWxsZXQgPSAweDI1RTY7Citjb25zdCBVQ2hhciB3aGl0ZUNpcmNsZSA9IDB4MjVD
QjsKK2NvbnN0IFVDaGFyIHdoaXRlU2VzYW1lRG90ID0gMHhGRTQ2OworY29uc3QgVUNoYXIgd2hp
dGVVcFBvaW50aW5nVHJpYW5nbGUgPSAweDI1QjM7CiBjb25zdCBVQ2hhciB5ZW5TaWduID0gMHgw
MEE1OwogY29uc3QgVUNoYXIgemVyb1dpZHRoSm9pbmVyID0gMHgyMDBEOwogY29uc3QgVUNoYXIg
emVyb1dpZHRoTm9uSm9pbmVyID0gMHgyMDBDOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAkocmV2aXNpb24gNzQwNDYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0Nyw2ICs4NDcsNDcgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuUwogICAgIHJldHVybiBoeXBo
ZW5NaW51c1N0cmluZzsKIH0KIAorY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4
dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0Cit7CisgICAgc3dpdGNoICh0ZXh0RW1waGFzaXNN
YXJrKCkpIHsKKyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtOb25lOgorICAgICAgICByZXR1cm4g
bnVsbEF0b207CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ3VzdG9tOgorICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0Rv
dDogeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG90
U3RyaW5nLCAoJmJ1bGxldCwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgb3BlbkRvdFN0cmluZywgKCZ3aGl0ZUJ1bGxldCwgMSkpOworICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRE
b3RTdHJpbmcgOiBvcGVuRG90U3RyaW5nOworICAgIH0KKyAgICBjYXNlIFRleHRFbXBoYXNpc01h
cmtDaXJjbGU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZp
bGxlZENpcmNsZVN0cmluZywgKCZibGFja0NpcmNsZSwgMSkpOworICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkNpcmNsZVN0cmluZywgKCZ3aGl0ZUNpcmNsZSwg
MSkpOworICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0Zp
bGxGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xlU3RyaW5nOworICAgIH0K
KyAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6IHsKKyAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZywgKCZm
aXNoZXllLCAxKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBv
cGVuRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmJ1bGxzZXllLCAxKSk7CisgICAgICAgIHJldHVybiB0
ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdWJs
ZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmc7CisgICAgfQorICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOiB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBmaWxsZWRUcmlhbmdsZVN0cmluZywgKCZibGFja1VwUG9pbnRpbmdUcmlh
bmdsZSwgMSkpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3Bl
blRyaWFuZ2xlU3RyaW5nLCAoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKSk7CisgICAgICAg
IHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZp
bGxlZFRyaWFuZ2xlU3RyaW5nIDogb3BlblRyaWFuZ2xlU3RyaW5nOworICAgIH0KKyAgICBjYXNl
IFRleHRFbXBoYXNpc01hcmtTZXNhbWU6IHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZpbGxlZFNlc2FtZVN0cmluZywgKCZzZXNhbWVEb3QsIDEpKTsKKyAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgm
d2hpdGVTZXNhbWVEb3QsIDEpKTsKKyAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9
PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2Ft
ZVN0cmluZzsKKyAgICB9CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbEF0b207Cit9CisKICNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRS
ZWdpb24+JiBSZW5kZXJTdHlsZTo6aW5pdGlhbERhc2hib2FyZFJlZ2lvbnMoKQogewpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA3NDA0NikKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTcx
OCw2ICs3MTgsNyBAQCBwdWJsaWM6CiAgICAgVGV4dEVtcGhhc2lzTWFyayB0ZXh0RW1waGFzaXNN
YXJrKCkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0RW1waGFzaXNDdXN0b21N
YXJrKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0N1c3Rv
bU1hcms7IH0KICAgICBUZXh0RW1waGFzaXNQb3NpdGlvbiB0ZXh0RW1waGFzaXNQb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRFbXBoYXNpc1Bvc2l0aW9uPihyYXJlSW5o
ZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzUG9zaXRpb24pOyB9CisgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiB0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJu
IHRydWUgaWYgYW55IHRyYW5zZm9ybSByZWxhdGVkIHByb3BlcnR5IChjdXJyZW50bHkgdHJhbnNm
b3JtLCB0cmFuc2Zvcm1TdHlsZTNEIG9yIHBlcnNwZWN0aXZlKSAKICAgICAvLyBpbmRpY2F0ZXMg
dGhhdCB3ZSBhcmUgdHJhbnNmb3JtaW5nCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76712</attachid>
            <date>2010-12-15 16:57:24 -0800</date>
            <delta_ts>2010-12-15 18:24:29 -0800</delta_ts>
            <desc>Part 3: Platform support</desc>
            <filename>text-emphasis_r23-platform.diff</filename>
            <type>text/plain</type>
            <size>84411</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTY5IEBACisyMDEwLTEyLTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9u
dCBzdXBwb3J0IGZvciB0aGUgdGV4dC1lbXBoYXNpcyBDU1MgcHJvcGVydHkKKyAgICAgICAgUGFy
dCBvZiA8cmRhcjovL3Byb2JsZW0vNzcyMDMwMD4gU3VwcG9ydCB0aGUgQ1NTMyB0ZXh0LWVtcGhh
c2lzIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODUzOQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3RW1waGFzaXNNYXJrcyk6IEFkZGVkLiBDYWxscyB0aHJv
dWdoIHRvIGRyYXdFbXBoYXNpc01hcmtzRm9ye1NpbXBsZSxDb21wbGV4fVRleHQuCisgICAgICAg
IChXZWJDb3JlOjpGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKTogQWRkZWQuIEZvciBzaW1w
bGUgdGV4dCwgY2hlY2tzIGlmIHRoZSBjaGFyYWN0ZXIgc2hvdWxkCisgICAgICAgIGhhdmUgYW4g
ZW1waGFzaXMgbWFyay4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDoKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYXN0UGF0aC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIpOiBSZXBsYWNlZCB0aGUgZm9yY2VT
bWFsbENhcHMgYm9vbGVhbiB3aXRoIGEgRm9udERhdGFWYXJpYW50CisgICAgICAgIHBhcmFtZXRl
ciBhbmQgbWFkZSB0aGlzIG1ldGhvZCB3b3JrIHdpdGggb3RoZXIgdmFyaWFudHMuCisgICAgICAg
IChXZWJDb3JlOjpGb250OjpnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEpOiBBZGRlZC4gUmV0dXJu
cyBnbHlwaCBkYXRhIGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mCisgICAgICAgIHRoZSBlbXBo
YXNpcyBtYXJrLiBUaGlzIG1ldGhvZCBtYXkgbm90IHdvcmsgaWYgdGhlIGVtcGhhc2lzIG1hcmsg
dXNlcyBhIGNvbXBsZXggc2NyaXB0LCBidXQgbm9uZQorICAgICAgICBvZiB0aGUgc3RhbmRhcmQg
ZW1waGFzaXMgbWFya3MgZG8gc28uCisgICAgICAgIChXZWJDb3JlOjpGb250OjplbXBoYXNpc01h
cmtBc2NlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmVtcGhhc2lzTWFya0Rl
c2NlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmVtcGhhc2lzTWFya0hlaWdo
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNG
b3JTaW1wbGVUZXh0KTogTW92ZWQgbXVjaCBvZiB0aGUgbG9naWMgZnJvbSBkcmF3U2ltcGxlVGV4
dCgpCisgICAgICAgIGludG8gdGhpcyBuZXcgbWV0aG9kLCB3aGljaCBhbHNvIGhhcyBhIEZvclRl
eHRFbXBoYXNpcyBwYXJhbWV0ZXIsIHdoaWNoIGlzIHBhc3NlZCBhbG9uZyB0byB0aGUKKyAgICAg
ICAgV2lkdGhJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdTaW1wbGVUZXh0
KTogTGVmdCB0aGUgZHJhd2luZyBwYXJ0IGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcik6IFJlbW92ZWQgdGhlIHVudXNlZCBUZXh0UnVuIHBhcmFt
ZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Om9mZnNldFRvTWlkZGxlT2ZHbHlwaCk6IEFkZGVkIHRo
aXMgaGVscGVyLgorICAgICAgICAoV2ViQ29yZTo6b2Zmc2V0VG9NaWRkbGVPZkdseXBoQXRJbmRl
eCk6IEFkZGVkIHRoaXMgb3RoZXIgaGVscGVyLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJh
d0VtcGhhc2lzTWFya3MpOiBBZGRlZC4gRHJhd3MgZW1waGFzaXMgbWFya3MgZm9yIGEgZ2l2ZW4g
Z2x5cGggYnVmZmVyIGJ5IHBsYWNpbmcKKyAgICAgICAgb25lIG1hcmsgY2VudGVyZWQgYWJvdmUg
ZWFjaCBnbHlwaC4gWmVybyBnbHlwaHMgaW4gdGhlIGJ1ZmZlciBpbmRpY2F0ZSB0aGF0IG5vIG1h
cmsgc2hvdWxkIGJlIGRyYXduLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0Vt
cGhhc2lzTWFya3MpOiBBZGRlZC4gQ2FsbHMgdGhyb3VnaCB0byBGb250OjpkcmF3RW1waGFzaXNN
YXJrcygpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6U2ltcGxlRm9udERhdGEpOiBSZW1vdmVkIGlu
aXRpYWxpemF0aW9uIG9mIGRlbGV0ZWQgbWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBs
ZUZvbnREYXRhOjp+U2ltcGxlRm9udERhdGEpOiBSZW1vdmVkIGRlcml2ZWQgZm9udCBkYXRhIGNs
ZWFudXAsIHdoaWNoIG5vdyBoYXBwZW5zCisgICAgICAgIGluIH5EZXJpdmVkRm9udERhdGEuCisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6YnJva2VuSWRlb2dyYXBoRm9udERhdGEp
OiBDaGFuZ2VkIHRvIHVzZSBtX2Rlcml2ZWRGb250RGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjpEZXJpdmVkRm9udERhdGE6OkRlcml2ZWRGb250RGF0YSk6IEFkZGVkLiBU
aGlzIGxhemlseS1hbGxvY2F0ZWQgc3RydWN0CisgICAgICAgIGNvbnRhaW5zIHRoZSBTaW1wbGVG
b250RGF0YSBmb3Igc21hbGwgY2FwcywgYnJva2VuIGlkZW9ncmFwaCBhbmQgZW1waGFzaXMgbWFy
ay4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpEZXJpdmVkRm9udERhdGE6On5E
ZXJpdmVkRm9udERhdGEpOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Np
bXBsZUZvbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6dmFyaWFu
dEZvbnREYXRhKTogQWRkZWQuIFRoaXMgaXMgdXNlZCBieSBGb250OjpnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcik6IEFkZGVk
IGZvclRleHRFbXBoYXNpcyBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJh
dG9yOjphZHZhbmNlKTogV2hlbiB1c2VkIGZvciB0ZXh0IGVtcGhhc2lzLCByZXBsYWNlIGdseXBo
cyB3aXRoIHRoZSB6ZXJvIGdseXBoCisgICAgICAgIGlmIHRoZXkgc2hvdWxkIG5vdCByZWNlaXZl
IGFuIGVtcGhhc2lzIG1hcmsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0
ZXJhdG9yLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hy
b21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3NG
b3JDb21wbGV4VGV4dCk6IEFkZGVkIHN0dWIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250TGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtl
cjo6bmV4dFNjcmlwdFJ1bik6IFVwZGF0ZWQgZm9yIGNoYW5nZSB0byBGb250OjpnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoKS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW5XYWxrZXI6OnNldHVwRm9u
dEZvclNjcmlwdFJ1bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhh
c2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IEFkZGVkIHN0dWIuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YSk6IE1vdmVkIGNvZGUg
ZnJvbSBzbWFsbENhcHNGb250RGF0YSgpIGhlcmUgYW5kIGdlbmVyYWxpemVkLgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKTogQWRvcHRlZCBtX2Rl
cml2ZWRGb250RGF0YSBhbmQgc2NhbGVkRm9udERhdGEoKS4KKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YSk6IEFkZGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEpOiBNb3ZlZCBjb2Rl
IGZyb20gc21hbGxDYXBzRm9udERhdGEoKSBoZXJlIGFuZCBnZW5lcmFsaXplZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YSk6IEFkb3B0ZWQgbV9k
ZXJpdmVkRm9udERhdGEgYW5kIHNjYWxlZEZvbnREYXRhKCkuCisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEpOiBBZGRlZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9Gb250RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQpOiBBZGRlZCBzdHViLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEpOiBN
b3ZlZCBjb2RlIGZyb20gc21hbGxDYXBzRm9udERhdGEoKSBoZXJlIGFuZCBnZW5lcmFsaXplZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250RGF0YSk6IEFk
b3B0ZWQgbV9kZXJpdmVkRm9udERhdGEgYW5kIHNjYWxlZEZvbnREYXRhKCkuCisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEpOiBBZGRlZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQpOiBBZGRlZCBzdHVi
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQpOiBB
ZGRlZCBzdHViLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvU2ltcGxlRm9u
dERhdGFIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6c2NhbGVk
Rm9udERhdGEpOiBNb3ZlZCBjb2RlIGZyb20gc21hbGxDYXBzRm9udERhdGEoKSBoZXJlIGFuZCBn
ZW5lcmFsaXplZC4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNG
b250RGF0YSk6IEFkb3B0ZWQgbV9kZXJpdmVkRm9udERhdGEgYW5kIHNjYWxlZEZvbnREYXRhKCku
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEp
OiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpD
b21wbGV4VGV4dENvbnRyb2xsZXIpOiBBZGRlZCBmb3JUZXh0RW1waGFzaXMgcGFyYW1ldGVyLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRl
eHRSdW5zKTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3Rl
cigpLgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlw
aHNBbmRBZHZhbmNlcyk6IFdoZW4gdXNlZCBmb3IgdGV4dCBlbXBoYXNpcywgcmVwbGFjZSBnbHlw
aHMgd2l0aCB0aGUgemVybyBnbHlwaAorICAgICAgICBpZiB0aGV5IHNob3VsZCBub3QgcmVjZWl2
ZSBhbiBlbXBoYXNpcyBtYXJrLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDb21wbGV4VGV4dE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpnZXRHbHlw
aHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KTogTW92ZWQgbXVjaCBvZiB0aGUgbG9naWMgZnJv
bSBkcmF3Q29tcGxleFRleHQoKQorICAgICAgICBpbnRvIHRoaXMgbmV3IG1ldGhvZCwgd2hpY2gg
YWxzbyBoYXMgYSBGb3JUZXh0RW1waGFzaXMgcGFyYW1ldGVyLCB3aGljaCBpcyBwYXNzZWQgYWxv
bmcgdG8gdGhlCisgICAgICAgIENvbXBsZXhUZXh0Q29udHJvbGxlci4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6IExlZnQgdGhlIGRyYXdpbmcgcGFydCBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6
IEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJv
eSk6IEFkb3B0ZWQgbV9kZXJpdmVkRm9udERhdGEuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVG
b250RGF0YTo6c2NhbGVkRm9udERhdGEpOiBNb3ZlZCBjb2RlIGZyb20gc21hbGxDYXBzRm9udERh
dGEoKSBoZXJlIGFuZCBnZW5lcmFsaXplZC4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpzbWFsbENhcHNGb250RGF0YSk6IEFkb3B0ZWQgbV9kZXJpdmVkRm9udERhdGEgYW5kIHNj
YWxlZEZvbnREYXRhKCkuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6ZW1waGFz
aXNNYXJrRm9udERhdGEpOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Bh
bmdvL1NpbXBsZUZvbnREYXRhUGFuZ28uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtRGVzdHJveSk6IFJlbW92ZWQgcmVkdW5kYW50IGNsZWFyaW5nIG9mIGRl
cml2ZWQgZm9udC4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250
RGF0YSk6IE1vdmVkIGNvZGUgZnJvbSBzbWFsbENhcHNGb250RGF0YSgpIGhlcmUgYW5kIGdlbmVy
YWxpemVkLgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnRE
YXRhKTogQWRvcHRlZCBtX2Rlcml2ZWRGb250RGF0YSBhbmQgc2NhbGVkRm9udERhdGEoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YSk6IEFk
ZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnQ6OmVtcGhhc2lzTWFya0FzY2VudCk6IEFkZGVkIHN0dWIuCisgICAg
ICAgIChXZWJDb3JlOjpGb250OjplbXBoYXNpc01hcmtEZXNjZW50KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpGb250OjplbXBoYXNpc01hcmtIZWlnaHQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzRm9yU2ltcGxlVGV4dCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IERp
dHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dCk6
IE1vdmVkIG11Y2ggb2YgdGhlIGxvZ2ljIGZyb20gZHJhd0NvbXBsZXhUZXh0KCkKKyAgICAgICAg
aW50byB0aGlzIG5ldyBtZXRob2QsIHdoaWNoIGFsc28gaGFzIGEgRm9yVGV4dEVtcGhhc2lzIHBh
cmFtZXRlci4gQ3VycmVudGx5IHJldHVybnMgYW4gZW1wdHkKKyAgICAgICAgZ2x5cGggYnVmZmVy
IGZvciB0ZXh0IGVtcGhhc2lzLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhU
ZXh0KTogTGVmdCB0aGUgZHJhd2luZyBwYXJ0IGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpGb250
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KTogQWRkZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKTogTW92ZWQgY29kZSBmcm9tIHNt
YWxsQ2Fwc0ZvbnREYXRhKCkgaGVyZSBhbmQgZ2VuZXJhbGl6ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEpOiBBZG9wdGVkIG1fZGVyaXZlZEZv
bnREYXRhIGFuZCBzY2FsZWRGb250RGF0YSgpLgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9u
dERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKTogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpVbmlzY3JpYmVDb250cm9sbGVyOjphZHZhbmNlKTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIEZv
bnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcigpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvRm9udFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRleHQpOiBBZGRlZCBzdHViLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luY2UvU2ltcGxlRm9udERhdGFXaW5DRS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KTogUmVtb3ZlZCByZWR1bmRhbnQg
Y2xlYXJpbmcgb2YgZGVyaXZlZCBmb250LgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERh
dGE6OnNjYWxlZEZvbnREYXRhKTogTW92ZWQgY29kZSBmcm9tIHNtYWxsQ2Fwc0ZvbnREYXRhKCkg
aGVyZSBhbmQgZ2VuZXJhbGl6ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
c21hbGxDYXBzRm9udERhdGEpOiBBZG9wdGVkIG1fZGVyaXZlZEZvbnREYXRhIGFuZCBzY2FsZWRG
b250RGF0YSgpLgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFy
a0ZvbnREYXRhKTogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250
V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JD
b21wbGV4VGV4dCk6IEFkZGVkIHN0dWIuCisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29t
cGxleFRleHQpOiBVcGRhdGVkIGZvciByZW1vdmFsIG9mIHVudXNlZCBUZXh0UnVuIHBhcmFtZXRl
ciB0byBkcmF3R2x5cGhCdWZmZXIoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdFbXBo
YXNpc01hcmtzRm9yQ29tcGxleFRleHQpOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3d4L1NpbXBsZUZvbnREYXRhV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxl
Rm9udERhdGE6OnNjYWxlZEZvbnREYXRhKTogTW92ZWQgY29kZSBmcm9tIHNtYWxsQ2Fwc0ZvbnRE
YXRhKCkgaGVyZSBhbmQgZ2VuZXJhbGl6ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250
RGF0YTo6c21hbGxDYXBzRm9udERhdGEpOiBBZG9wdGVkIG1fZGVyaXZlZEZvbnREYXRhIGFuZCBz
Y2FsZWRGb250RGF0YSgpLgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmVtcGhh
c2lzTWFya0ZvbnREYXRhKTogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0NoYXJh
Y3Rlck5hbWVzLmg6IEFkZGVkIGNoYXJhY3RlcnMgdXNlZCBpbiBGb250OjpjYW5SZWNlaXZlVGV4
dEVtcGhhc2lzKCkuCisKIDIwMTAtMTItMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgTWFycmluLgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsMjYg
QEAgdm9pZCBGb250OjpkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbgogICAgIHJldHVybiBk
cmF3Q29tcGxleFRleHQoY29udGV4dCwgcnVuLCBwb2ludCwgZnJvbSwgdG8pOwogfQogCit2b2lk
IEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
VGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIGlmIChtX2ZvbnRMaXN0ICYm
IG1fZm9udExpc3QtPmxvYWRpbmdDdXN0b21Gb250cygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAodG8gPCAwKQorICAgICAgICB0byA9IHJ1bi5sZW5ndGgoKTsKKworI2lmIEVOQUJMRShT
VkdfRk9OVFMpCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgU1ZHIGZvbnRzLgorICAgIGlm
IChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisK
KyAgICBpZiAoY29kZVBhdGgocnVuKSAhPSBDb21wbGV4KQorICAgICAgICBkcmF3RW1waGFzaXNN
YXJrc0ZvclNpbXBsZVRleHQoY29udGV4dCwgcnVuLCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOwor
ICAgIGVsc2UKKyAgICAgICAgZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChjb250ZXh0
LCBydW4sIG1hcmssIHBvaW50LCBmcm9tLCB0byk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lk
dGgoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZh
bGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAjaWYg
RU5BQkxFKFNWR19GT05UUykKQEAgLTQzOCw0ICs0NTgsMTggQEAgYm9vbCBGb250Ojppc0NKS0lk
ZW9ncmFwaE9yU3ltYm9sKFVDaGFyMwogICAgIHJldHVybiBpc0NKS0lkZW9ncmFwaChjKTsKIH0K
IAorYm9vbCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKK3sKKyAgICBD
aGFyQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBVbmljb2RlOjpjYXRlZ29yeShjKTsKKyAgICBpZiAoY2F0
ZWdvcnkgJiAoU2VwYXJhdG9yX1NwYWNlIHwgU2VwYXJhdG9yX0xpbmUgfCBTZXBhcmF0b3JfUGFy
YWdyYXBoIHwgT3RoZXJfTm90QXNzaWduZWQgfCBPdGhlcl9Db250cm9sIHwgT3RoZXJfRm9ybWF0
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWRkaXRpb25hbCB3b3JkLXNlcGFy
YXRvciBjaGFyYWN0ZXJzIGxpc3RlZCBpbiBDU1MgVGV4dCBMZXZlbCAzIEVkaXRvcidzIERyYWZ0
IDMgTm92ZW1iZXIgMjAxMC4KKyAgICBpZiAoYyA9PSBldGhpb3BpY1dvcmRzcGFjZSB8fCBjID09
IGFlZ2VhbldvcmRTZXBhcmF0b3JMaW5lIHx8IGMgPT0gYWVnZWFuV29yZFNlcGFyYXRvckRvdAor
ICAgICAgICB8fCBjID09IHVnYXJpdGljV29yZERpdmlkZXIgfHwgYyA9PSB0aWJldGFuTWFya0lu
dGVyc3lsbGFiaWNUc2hlZyB8fCBjID09IHRpYmV0YW5NYXJrRGVsaW1pdGVyVHNoZWdCc3RhcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4pIGNvbnN0Owog
CiAgICAgdm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29u
c3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpIGNvbnN0OworICAgIHZv
aWQgZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNv
bnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tID0gMCwg
aW50IHRvID0gLTEpIGNvbnN0OwogCiAgICAgaW50IHdpZHRoKGNvbnN0IFRleHRSdW4mIHJ1biwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDApIGNvbnN0IHsgcmV0dXJuIGxyb3VuZGYoZmxvYXRX
aWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpKTsgfQogICAgIGZsb2F0IGZs
b2F0V2lkdGgoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiog
ZmFsbGJhY2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cgPSAwKSBjb25z
dDsKQEAgLTEzNiwxMCArMTM3LDEzIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1bml0c1BlckVt
KCkgY29uc3QgeyByZXR1cm4gcHJpbWFyeUZvbnQoKS0+dW5pdHNQZXJFbSgpOyB9CiAgICAgaW50
IHNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiAoaW50KWNlaWxmKHByaW1hcnlGb250KCktPmFk
anVzdGVkU3BhY2VXaWR0aCgpICsgbV9sZXR0ZXJTcGFjaW5nKTsgfQogICAgIGZsb2F0IHRhYldp
ZHRoKGNvbnN0IFNpbXBsZUZvbnREYXRhJiBmb250RGF0YSkgY29uc3QgeyByZXR1cm4gOCAqIGNl
aWxmKGZvbnREYXRhLmFkanVzdGVkU3BhY2VXaWR0aCgpICsgbGV0dGVyU3BhY2luZygpKTsgfQor
ICAgIGludCBlbXBoYXNpc01hcmtBc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Cisg
ICAgaW50IGVtcGhhc2lzTWFya0Rlc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Cisg
ICAgaW50IGVtcGhhc2lzTWFya0hlaWdodChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAog
ICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBwcmltYXJ5Rm9udCgpIGNvbnN0OwogICAgIGNvbnN0
IEZvbnREYXRhKiBmb250RGF0YUF0KHVuc2lnbmVkKSBjb25zdDsKLSAgICBHbHlwaERhdGEgZ2x5
cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9yLCBib29sIGZvcmNlU21hbGxD
YXBzID0gZmFsc2UpIGNvbnN0OworICAgIEdseXBoRGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIo
VUNoYXIzMiwgYm9vbCBtaXJyb3IsIEZvbnREYXRhVmFyaWFudCA9IEF1dG9WYXJpYW50KSBjb25z
dDsKICAgICAvLyBVc2VkIGZvciBjb21wbGV4IHRleHQsIGFuZCBkb2VzIG5vdCB1dGlsaXplIHRo
ZSBnbHlwaCBtYXAgY2FjaGUuCiAgICAgY29uc3QgRm9udERhdGEqIGZvbnREYXRhRm9yQ2hhcmFj
dGVycyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgpIGNvbnN0OwogCkBAIC0xNjQsMTcgKzE2OCwy
OSBAQCBwcml2YXRlOgogICAgIGludCBvZmZzZXRGb3JQb3NpdGlvbkZvclRleHRVc2luZ1NWR0Zv
bnQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5
cGhzKSBjb25zdDsKICNlbmRpZgogCisgICAgZW51bSBGb3JUZXh0RW1waGFzaXNPck5vdCB7IE5v
dEZvclRleHRFbXBoYXNpcywgRm9yVGV4dEVtcGhhc2lzIH07CisKKyAgICAvLyBSZXR1cm5zIHRo
ZSBpbml0aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFu
Y2VzRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgaW50IGZyb20sIGludCB0bywgR2x5cGhC
dWZmZXImLCBGb3JUZXh0RW1waGFzaXNPck5vdCA9IE5vdEZvclRleHRFbXBoYXNpcykgY29uc3Q7
CiAgICAgdm9pZCBkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OworICAgIHZvaWQg
ZHJhd0VtcGhhc2lzTWFya3NGb3JTaW1wbGVUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQg
ZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICB2b2lkIGRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgU2ltcGxlRm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBp
bnQgdG8sIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKLSAgICB2b2lkIGRyYXdHbHlwaEJ1ZmZl
cihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGNvbnN0IFRleHRSdW4mLCBj
b25zdCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAgdm9pZCBkcmF3R2x5cGhCdWZmZXIoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgR2x5cGhCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7
CisgICAgdm9pZCBkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEdseXBoQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRmxvYXRQb2ludCYp
IGNvbnN0OwogICAgIGZsb2F0IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4m
LCBHbHlwaEJ1ZmZlciosIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tG
b250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZvclBv
c2l0aW9uRm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgZmxvYXQgcG9zaXRpb24sIGJvb2wg
aW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0
Rm9yU2ltcGxlVGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBoLCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdDsKIAorICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrR2x5cGhE
YXRhKGNvbnN0IEF0b21pY1N0cmluZyYsIEdseXBoRGF0YSYpIGNvbnN0OworCiAgICAgc3RhdGlj
IGJvb2wgY2FuUmV0dXJuRmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCk7CiAKICAgICBDb2Rl
UGF0aCBjb2RlUGF0aChjb25zdCBUZXh0UnVuJikgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRo
ZSBpbml0aWFsIGluLXN0cmVhbSBhZHZhbmNlLgorICAgIGZsb2F0IGdldEdseXBoc0FuZEFkdmFu
Y2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGludCBmcm9tLCBpbnQgdG8sIEdseXBo
QnVmZmVyJiwgRm9yVGV4dEVtcGhhc2lzT3JOb3QgPSBOb3RGb3JUZXh0RW1waGFzaXMpIGNvbnN0
OwogICAgIHZvaWQgZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFRleHRS
dW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50IGZyb20sIGludCB0bykgY29uc3Q7CisgICAgdm9p
ZCBkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IFRleHRSdW4mLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmLCBp
bnQgZnJvbSwgaW50IHRvKSBjb25zdDsKICAgICBmbG9hdCBmbG9hdFdpZHRoRm9yQ29tcGxleFRl
eHQoY29uc3QgVGV4dFJ1biYsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDAsIEdseXBoT3ZlcmZsb3cqID0gMCkgY29uc3Q7CiAgICAgaW50IG9mZnNldEZv
clBvc2l0aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGZsb2F0IHBvc2l0aW9uLCBi
b29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKICAgICBGbG9hdFJlY3Qgc2VsZWN0aW9u
UmVjdEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiwgaW50
IGgsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0OwpAQCAtMTk2LDYgKzIxMiw3IEBAIHB1YmxpYzoK
ICAgICBGb250U2VsZWN0b3IqIGZvbnRTZWxlY3RvcigpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IHRyZWF0QXNTcGFjZShVQ2hhciBjKSB7IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcdCcgfHwg
YyA9PSAnXG4nIHx8IGMgPT0gbm9CcmVha1NwYWNlOyB9CiAgICAgc3RhdGljIGJvb2wgdHJlYXRB
c1plcm9XaWR0aFNwYWNlKFVDaGFyIGMpIHsgcmV0dXJuIGMgPCAweDIwIHx8IChjID49IDB4N0Yg
JiYgYyA8IDB4QTApIHx8IGMgPT0gc29mdEh5cGhlbiB8fCAoYyA+PSAweDIwMGMgJiYgYyA8PSAw
eDIwMGYpIHx8IChjID49IDB4MjAyYSAmJiBjIDw9IDB4MjAyZSkgfHwgYyA9PSBvYmplY3RSZXBs
YWNlbWVudENoYXJhY3RlcjsgfQorICAgIHN0YXRpYyBib29sIGNhblJlY2VpdmVUZXh0RW1waGFz
aXMoVUNoYXIzMiBjKTsKIAogICAgIHN0YXRpYyBpbmxpbmUgVUNoYXIgbm9ybWFsaXplU3BhY2Vz
KFVDaGFyIGNoYXJhY3RlcikKICAgICB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRGYXN0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250RmFzdFBhdGguY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhc3RQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVy
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgpAQCAtNDAsMTcg
KzQwLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29s
IG1pcnJvciwgYm9vbCBmb3JjZVNtYWxsQ2FwcykgY29uc3QKK0dseXBoRGF0YSBGb250OjpnbHlw
aERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgRm9udERhdGFWYXJpYW50
IHZhcmlhbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGJv
b2wgdXNlU21hbGxDYXBzRm9udCA9IGZvcmNlU21hbGxDYXBzOwotICAgIGlmIChtX2ZvbnREZXNj
cmlwdGlvbi5zbWFsbENhcHMoKSkgewotICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIo
Yyk7Ci0gICAgICAgIGlmICh1cHBlckMgIT0gYykgewotICAgICAgICAgICAgYyA9IHVwcGVyQzsK
LSAgICAgICAgICAgIHVzZVNtYWxsQ2Fwc0ZvbnQgPSB0cnVlOwotICAgICAgICB9CisgICAgaWYg
KHZhcmlhbnQgPT0gQXV0b1ZhcmlhbnQpIHsKKyAgICAgICAgaWYgKG1fZm9udERlc2NyaXB0aW9u
LnNtYWxsQ2FwcygpKSB7CisgICAgICAgICAgICBVQ2hhcjMyIHVwcGVyQyA9IHRvVXBwZXIoYyk7
CisgICAgICAgICAgICBpZiAodXBwZXJDICE9IGMpIHsKKyAgICAgICAgICAgICAgICBjID0gdXBw
ZXJDOworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBTbWFsbENhcHNWYXJpYW50OworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdmFyaWFudCA9IE5vcm1hbFZhcmlhbnQ7CiAgICAg
fQogCiAgICAgaWYgKG1pcnJvcikKQEAgLTY4LDggKzcxLDggQEAgR2x5cGhEYXRhIEZvbnQ6Omds
eXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgIH0KIAogICAgIEdseXBoUGFnZSogcGFnZTsKLSAg
ICBpZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKLSAgICAgICAgLy8gRmFzdGVzdCBsb29wLCBmb3Ig
dGhlIGNvbW1vbiBjYXNlIChub3Qgc21hbGwgY2FwcykuCisgICAgaWYgKHZhcmlhbnQgPT0gTm9y
bWFsVmFyaWFudCkgeworICAgICAgICAvLyBGYXN0ZXN0IGxvb3AsIGZvciB0aGUgY29tbW9uIGNh
c2UgKG5vcm1hbCB2YXJpYW50KS4KICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAg
IHBhZ2UgPSBub2RlLT5wYWdlKCk7CiAgICAgICAgICAgICBpZiAocGFnZSkgewpAQCAtMTA4LDIz
ICsxMTEsMjMgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAg
ICAgICAgICAgaWYgKHBhZ2UpIHsKICAgICAgICAgICAgICAgICBHbHlwaERhdGEgZGF0YSA9IHBh
Z2UtPmdseXBoRGF0YUZvckNoYXJhY3RlcihjKTsKICAgICAgICAgICAgICAgICBpZiAoZGF0YS5m
b250RGF0YSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc21hbGxDYXBzRm9udERhdGEg
ZnVuY3Rpb24gc2hvdWxkIG5vdCBub3JtYWxseSByZXR1cm4gMC4KKyAgICAgICAgICAgICAgICAg
ICAgLy8gVGhlIHZhcmlhbnRGb250RGF0YSBmdW5jdGlvbiBzaG91bGQgbm90IG5vcm1hbGx5IHJl
dHVybiAwLgogICAgICAgICAgICAgICAgICAgICAvLyBCdXQgaWYgaXQgZG9lcywgd2Ugd2lsbCBq
dXN0IHJlbmRlciB0aGUgY2FwaXRhbCBsZXR0ZXIgYmlnLgotICAgICAgICAgICAgICAgICAgICBj
b25zdCBTaW1wbGVGb250RGF0YSogc21hbGxDYXBzRm9udERhdGEgPSBkYXRhLmZvbnREYXRhLT5z
bWFsbENhcHNGb250RGF0YShtX2ZvbnREZXNjcmlwdGlvbik7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghc21hbGxDYXBzRm9udERhdGEpCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiB2YXJpYW50Rm9udERhdGEgPSBkYXRhLmZvbnREYXRhLT52YXJpYW50Rm9udERh
dGEobV9mb250RGVzY3JpcHRpb24sIHZhcmlhbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IXZhcmlhbnRGb250RGF0YSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOwog
Ci0gICAgICAgICAgICAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlKiBzbWFsbENhcHNOb2RlID0g
R2x5cGhQYWdlVHJlZU5vZGU6OmdldFJvb3RDaGlsZChzbWFsbENhcHNGb250RGF0YSwgcGFnZU51
bWJlcik7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEdseXBoUGFnZSogc21hbGxDYXBzUGFn
ZSA9IHNtYWxsQ2Fwc05vZGUtPnBhZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNtYWxs
Q2Fwc1BhZ2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEdseXBoRGF0YSBkYXRhID0gc21h
bGxDYXBzUGFnZS0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMpOworICAgICAgICAgICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZSogdmFyaWFudE5vZGUgPSBHbHlwaFBhZ2VUcmVlTm9kZTo6Z2V0
Um9vdENoaWxkKHZhcmlhbnRGb250RGF0YSwgcGFnZU51bWJlcik7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEdseXBoUGFnZSogdmFyaWFudFBhZ2UgPSB2YXJpYW50Tm9kZS0+cGFnZSgpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudFBhZ2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEdseXBoRGF0YSBkYXRhID0gdmFyaWFudFBhZ2UtPmdseXBoRGF0YUZvckNoYXJhY3Rl
cihjKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmZvbnREYXRhKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOwogICAgICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGF0dGVtcHQgc3lzdGVtIGZhbGxiYWNr
IG9mZiB0aGUgc21hbGxDYXBzRm9udERhdGEuIFRoaXMgaXMgdGhlIHZlcnkgdW5saWtlbHkgY2Fz
ZSB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHN5c3RlbSBmYWxs
YmFjayBvZmYgdGhlIHZhcmlhbnRGb250RGF0YS4gVGhpcyBpcyB0aGUgdmVyeSB1bmxpa2VseSBj
YXNlIHRoYXQKICAgICAgICAgICAgICAgICAgICAgLy8gYSBmb250IGhhcyB0aGUgbG93ZXJjYXNl
IGNoYXJhY3RlciBidXQgdGhlIHNtYWxsIGNhcHMgZm9udCBkb2VzIG5vdCBoYXZlIGl0cyB1cHBl
cmNhc2UgdmVyc2lvbi4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNtYWxsQ2Fwc0ZvbnRE
YXRhLT5taXNzaW5nR2x5cGhEYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJp
YW50Rm9udERhdGEtPm1pc3NpbmdHbHlwaERhdGEoKTsKICAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+aXNTeXN0ZW1GYWxsYmFjaygpKQpAQCAtMTU3LDE0ICsx
NjAsMTQgQEAgR2x5cGhEYXRhIEZvbnQ6OmdseXBoRGF0YUZvckNoYXJhY3RlcihVQwogICAgICAg
ICBjb2RlVW5pdHNMZW5ndGggPSAyOwogICAgIH0KICAgICBjb25zdCBTaW1wbGVGb250RGF0YSog
Y2hhcmFjdGVyRm9udERhdGEgPSBmb250Q2FjaGUoKS0+Z2V0Rm9udERhdGFGb3JDaGFyYWN0ZXJz
KCp0aGlzLCBjb2RlVW5pdHMsIGNvZGVVbml0c0xlbmd0aCk7Ci0gICAgaWYgKHVzZVNtYWxsQ2Fw
c0ZvbnQgJiYgY2hhcmFjdGVyRm9udERhdGEpCi0gICAgICAgIGNoYXJhY3RlckZvbnREYXRhID0g
Y2hhcmFjdGVyRm9udERhdGEtPnNtYWxsQ2Fwc0ZvbnREYXRhKG1fZm9udERlc2NyaXB0aW9uKTsK
KyAgICBpZiAodmFyaWFudCAhPSBOb3JtYWxWYXJpYW50ICYmIGNoYXJhY3RlckZvbnREYXRhKQor
ICAgICAgICBjaGFyYWN0ZXJGb250RGF0YSA9IGNoYXJhY3RlckZvbnREYXRhLT52YXJpYW50Rm9u
dERhdGEobV9mb250RGVzY3JpcHRpb24sIHZhcmlhbnQpOwogICAgIGlmIChjaGFyYWN0ZXJGb250
RGF0YSkgewogICAgICAgICAvLyBHb3QgdGhlIGZhbGxiYWNrIGdseXBoIGFuZCBmb250LgogICAg
ICAgICBHbHlwaFBhZ2UqIGZhbGxiYWNrUGFnZSA9IEdseXBoUGFnZVRyZWVOb2RlOjpnZXRSb290
Q2hpbGQoY2hhcmFjdGVyRm9udERhdGEsIHBhZ2VOdW1iZXIpLT5wYWdlKCk7CiAgICAgICAgIEds
eXBoRGF0YSBkYXRhID0gZmFsbGJhY2tQYWdlICYmIGZhbGxiYWNrUGFnZS0+Zm9udERhdGFGb3JD
aGFyYWN0ZXIoYykgPyBmYWxsYmFja1BhZ2UtPmdseXBoRGF0YUZvckNoYXJhY3RlcihjKSA6IGNo
YXJhY3RlckZvbnREYXRhLT5taXNzaW5nR2x5cGhEYXRhKCk7CiAgICAgICAgIC8vIENhY2hlIGl0
IHNvIHdlIGRvbid0IGhhdmUgdG8gZG8gc3lzdGVtIGZhbGxiYWNrIGFnYWluIG5leHQgdGltZS4K
LSAgICAgICAgaWYgKCF1c2VTbWFsbENhcHNGb250KSB7CisgICAgICAgIGlmICh2YXJpYW50ID09
IE5vcm1hbFZhcmlhbnQpIHsKICNpZiBPUyhXSU5DRSkKICAgICAgICAgICAgIC8vIG1pc3NpbmdH
bHlwaERhdGEgcmV0dXJucyBhIG51bGwgY2hhcmFjdGVyLCB3aGljaCBpcyBub3Qgc3VpdGFibGUg
Zm9yIEdESSB0byBkaXNwbGF5LgogICAgICAgICAgICAgLy8gQWxzbywgc29tZXRpbWVzIHdlIGNh
bm5vdCBtYXAgYSBmb250IGZvciB0aGUgY2hhcmFjdGVyIG9uIFdJTkNFLCBidXQgR0RJIGNhbiBz
dGlsbApAQCAtMTgyLDcgKzE4NSw3IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFGb3JDaGFy
YWN0ZXIoVUMKICAgICAvLyBFdmVuIHN5c3RlbSBmYWxsYmFjayBjYW4gZmFpbDsgdXNlIHRoZSBt
aXNzaW5nIGdseXBoIGluIHRoYXQgY2FzZS4KICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmlj
ZXIgdG8gdXNlIHRoZSBtaXNzaW5nIGdseXBoIGZyb20gdGhlIGxhc3QgcmVzb3J0IGZvbnQgaW5z
dGVhZC4KICAgICBHbHlwaERhdGEgZGF0YSA9IHByaW1hcnlGb250KCktPm1pc3NpbmdHbHlwaERh
dGEoKTsKLSAgICBpZiAoIXVzZVNtYWxsQ2Fwc0ZvbnQpIHsKKyAgICBpZiAodmFyaWFudCA9PSBO
b3JtYWxWYXJpYW50KSB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgICAgIC8vIFNlZSBjb21tZW50IGFi
b3V0IFdJTkNFIEdESSBoYW5kbGluZyBuZWFyIHNldEdseXBoRGF0YUZvckNoYXJhY3RlciBhYm92
ZS4KICAgICAgICAgcGFnZS0+c2V0R2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMsIGMsIGRhdGEuZm9u
dERhdGEpOwpAQCAtMTk0LDQyICsxOTcsMTM1IEBAIEdseXBoRGF0YSBGb250OjpnbHlwaERhdGFG
b3JDaGFyYWN0ZXIoVUMKICAgICByZXR1cm4gZGF0YTsKIH0KIAotdm9pZCBGb250OjpkcmF3U2lt
cGxlVGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CisvLyBGSVhNRTog
VGhpcyBtZXRob2QgaXMgbm90IGNvbXBsZXgtdGV4dCBhd2FyZS4KK2Jvb2wgRm9udDo6Z2V0RW1w
aGFzaXNNYXJrR2x5cGhEYXRhKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgR2x5cGhEYXRhJiBn
bHlwaERhdGEpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGds
eXBocythZHZhbmNlcytmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCi0gICAgR2x5cGhCdWZmZXIg
Z2x5cGhCdWZmZXI7CisgICAgaWYgKG1hcmsuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCk7Ci0gICAgV2lkdGhJdGVyYXRvciBp
dCh0aGlzLCBydW4pOworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgLy8gRklYTUU6IEltcGxl
bWVudCBmb3IgU1ZHIGZvbnRzLgorICAgIGlmIChwcmltYXJ5Rm9udCgpLT5pc1NWR0ZvbnQoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBVQ2hhcjMyIGNoYXJhY3RlciA9
IG1hcmtbMF07CisKKyAgICBpZiAoVTE2X0lTX1NVUlJPR0FURShjaGFyYWN0ZXIpKSB7CisgICAg
ICAgIGlmICghVTE2X0lTX1NVUlJPR0FURV9MRUFEKGNoYXJhY3RlcikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1hcmsubGVuZ3RoKCkgPCAyKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFVDaGFyIGxvdyA9IG1hcmtbMV07CisgICAgICAg
IGlmICghVTE2X0lTX1RSQUlMKGxvdykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgY2hhcmFjdGVyID0gVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGNoYXJhY3RlciwgbG93KTsK
KyAgICB9CisKKyAgICBnbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVy
LCBmYWxzZSwgRW1waGFzaXNNYXJrVmFyaWFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lu
dCBGb250OjplbXBoYXNpc01hcmtBc2NlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrKSBjb25z
dAoreworICAgIEdseXBoRGF0YSBtYXJrR2x5cGhEYXRhOworICAgIGlmICghZ2V0RW1waGFzaXNN
YXJrR2x5cGhEYXRhKG1hcmssIG1hcmtHbHlwaERhdGEpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBtYXJrR2x5cGhEYXRhLmZv
bnREYXRhOworICAgIEFTU0VSVChtYXJrRm9udERhdGEpOworICAgIGlmICghbWFya0ZvbnREYXRh
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtYXJrRm9udERhdGEtPmFzY2VudCgp
OworfQorCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrRGVzY2VudChjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmspIGNvbnN0Cit7CisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7CisgICAgaWYgKCFn
ZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIG1hcmtGb250RGF0YSA9IG1hcmtH
bHlwaERhdGEuZm9udERhdGE7CisgICAgQVNTRVJUKG1hcmtGb250RGF0YSk7CisgICAgaWYgKCFt
YXJrRm9udERhdGEpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1hcmtGb250RGF0
YS0+ZGVzY2VudCgpOworfQorCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrSGVpZ2h0KGNvbnN0IEF0
b21pY1N0cmluZyYgbWFyaykgY29uc3QKK3sKKyAgICBHbHlwaERhdGEgbWFya0dseXBoRGF0YTsK
KyAgICBpZiAoIWdldEVtcGhhc2lzTWFya0dseXBoRGF0YShtYXJrLCBtYXJrR2x5cGhEYXRhKSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb25zdCBTaW1wbGVGb250RGF0YSogbWFya0ZvbnRE
YXRhID0gbWFya0dseXBoRGF0YS5mb250RGF0YTsKKyAgICBBU1NFUlQobWFya0ZvbnREYXRhKTsK
KyAgICBpZiAoIW1hcmtGb250RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4g
bWFya0ZvbnREYXRhLT5oZWlnaHQoKTsKK30KKworZmxvYXQgRm9udDo6Z2V0R2x5cGhzQW5kQWR2
YW5jZXNGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0bywg
R2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0RW1w
aGFzaXMpIGNvbnN0Cit7CisgICAgZmxvYXQgaW5pdGlhbEFkdmFuY2U7CisKKyAgICBXaWR0aEl0
ZXJhdG9yIGl0KHRoaXMsIHJ1biwgZmFsc2UsIGZvclRleHRFbXBoYXNpcyk7CiAgICAgaXQuYWR2
YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVXaWR0aCA9IGl0Lm1fcnVuV2lkdGhTb0ZhcjsK
ICAgICBpdC5hZHZhbmNlKHRvLCAmZ2x5cGhCdWZmZXIpOwotICAgIAotICAgIC8vIFdlIGNvdWxk
bid0IGdlbmVyYXRlIGFueSBnbHlwaHMgZm9yIHRoZSBydW4uICBHaXZlIHVwLgorCiAgICAgaWYg
KGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAorICAgICAgICBy
ZXR1cm4gMDsKKwogICAgIGZsb2F0IGFmdGVyV2lkdGggPSBpdC5tX3J1bldpZHRoU29GYXI7CiAK
ICAgICBpZiAocnVuLnJ0bCgpKSB7CiAgICAgICAgIGZsb2F0IGZpbmFsUm91bmRpbmdXaWR0aCA9
IGl0Lm1fZmluYWxSb3VuZGluZ1dpZHRoOwogICAgICAgICBpdC5hZHZhbmNlKHJ1bi5sZW5ndGgo
KSk7Ci0gICAgICAgIHN0YXJ0WCArPSBmaW5hbFJvdW5kaW5nV2lkdGggKyBpdC5tX3J1bldpZHRo
U29GYXIgLSBhZnRlcldpZHRoOworICAgICAgICBpbml0aWFsQWR2YW5jZSA9IGZpbmFsUm91bmRp
bmdXaWR0aCArIGl0Lm1fcnVuV2lkdGhTb0ZhciAtIGFmdGVyV2lkdGg7CiAgICAgfSBlbHNlCi0g
ICAgICAgIHN0YXJ0WCArPSBiZWZvcmVXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBi
ZWZvcmVXaWR0aDsKIAotICAgIC8vIFN3YXAgdGhlIG9yZGVyIG9mIHRoZSBnbHlwaHMgaWYgcmln
aHQtdG8tbGVmdC4KLSAgICBpZiAocnVuLnJ0bCgpKQorICAgIGlmIChydW4ucnRsKCkpIHsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDAsIGVuZCA9IGdseXBoQnVmZmVyLnNpemUoKSAtIDE7IGkgPCBn
bHlwaEJ1ZmZlci5zaXplKCkgLyAyOyArK2ksIC0tZW5kKQogICAgICAgICAgICAgZ2x5cGhCdWZm
ZXIuc3dhcChpLCBlbmQpOworICAgIH0KKworICAgIHJldHVybiBpbml0aWFsQWR2YW5jZTsKK30K
Kwordm9pZCBGb250OjpkcmF3U2ltcGxlVGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQg
dG8pIGNvbnN0Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyth
ZHZhbmNlcytmb250IGRhdGEgZm9yIGVhY2ggZ2x5cGguCisgICAgR2x5cGhCdWZmZXIgZ2x5cGhC
dWZmZXI7CisKKyAgICBmbG9hdCBzdGFydFggPSBwb2ludC54KCkgKyBnZXRHbHlwaHNBbmRBZHZh
bmNlc0ZvclNpbXBsZVRleHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIpOworCisgICAgaWYg
KGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gQ2FsY3Vs
YXRlIHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgZ2x5cGhzIHRvIGJlIGRpc3BsYXllZCBieSBh
ZGRpbmcKLSAgICAvLyBhbGwgdGhlIGFkdmFuY2VzIHVwIHRvIHRoZSBmaXJzdCBnbHlwaC4KICAg
ICBGbG9hdFBvaW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2ludC55KCkpOwotICAgIGRyYXdHbHlw
aEJ1ZmZlcihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKKyAgICBkcmF3
R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOwogfQogCi12b2lk
IEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEds
eXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50KSBjb25zdAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21p
Y1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8p
IGNvbnN0Cit7CisgICAgR2x5cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CisgICAgZmxvYXQgaW5pdGlh
bEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQocnVuLCBmcm9tLCB0
bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250
ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2
YW5jZSwgcG9pbnQueSgpKSk7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0dseXBoQnVmZmVyKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKIHsgICAKICAgICAvLyBEcmF3IGVhY2ggY29udGln
dW91cyBydW4gb2YgZ2x5cGhzIHRoYXQgdXNlIHRoZSBzYW1lIGZvbnQgZGF0YS4KICAgICBjb25z
dCBTaW1wbGVGb250RGF0YSogZm9udERhdGEgPSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KDApOwpA
QCAtMjU2LDYgKzM1Miw1MCBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaEJ1ZmZlcihHcmFwaGljc0Nv
bnRlCiAgICAgZHJhd0dseXBocyhjb250ZXh0LCBmb250RGF0YSwgZ2x5cGhCdWZmZXIsIGxhc3RG
cm9tLCBuZXh0R2x5cGggLSBsYXN0RnJvbSwgc3RhcnRQb2ludCk7CiB9CiAKK2lubGluZSBzdGF0
aWMgZmxvYXQgb2Zmc2V0VG9NaWRkbGVPZkdseXBoKGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250
RGF0YSwgR2x5cGggZ2x5cGgpCit7CisgICAgaWYgKGZvbnREYXRhLT5vcmllbnRhdGlvbigpID09
IEhvcml6b250YWwpIHsKKyAgICAgICAgRmxvYXRSZWN0IGJvdW5kcyA9IGZvbnREYXRhLT5ib3Vu
ZHNGb3JHbHlwaChnbHlwaCk7CisgICAgICAgIHJldHVybiBib3VuZHMueCgpICsgYm91bmRzLndp
ZHRoKCkgLyAyOworICAgIH0KKyAgICAvLyBGSVhNRTogVXNlIGdseXBoIGJvdW5kcyBvbmNlIHRo
ZXkgbWFrZSBzZW5zZSBmb3IgdmVydGljYWwgZm9udHMuCisgICAgcmV0dXJuIGZvbnREYXRhLT53
aWR0aEZvckdseXBoKGdseXBoKSAvIDI7Cit9CisKK2lubGluZSBzdGF0aWMgZmxvYXQgb2Zmc2V0
VG9NaWRkbGVPZkdseXBoQXRJbmRleChjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIHNp
emVfdCBpKQoreworICAgIHJldHVybiBvZmZzZXRUb01pZGRsZU9mR2x5cGgoZ2x5cGhCdWZmZXIu
Zm9udERhdGFBdChpKSwgZ2x5cGhCdWZmZXIuZ2x5cGhBdChpKSk7Cit9CisKK3ZvaWQgRm9udDo6
ZHJhd0VtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHbHlwaEJ1
ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAgR2x5cGhEYXRhIG1hcmtHbHlwaERhdGE7CisgICAg
aWYgKCFnZXRFbXBoYXNpc01hcmtHbHlwaERhdGEobWFyaywgbWFya0dseXBoRGF0YSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBtYXJrRm9udERhdGEgPSBt
YXJrR2x5cGhEYXRhLmZvbnREYXRhOworICAgIEFTU0VSVChtYXJrRm9udERhdGEpOworICAgIGlm
ICghbWFya0ZvbnREYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBHbHlwaCBtYXJrR2x5cGgg
PSBtYXJrR2x5cGhEYXRhLmdseXBoOworICAgIEdseXBoIHNwYWNlR2x5cGggPSBtYXJrRm9udERh
dGEtPnNwYWNlR2x5cGgoKTsKKworICAgIGZsb2F0IG1pZGRsZU9mTGFzdEdseXBoID0gb2Zmc2V0
VG9NaWRkbGVPZkdseXBoQXRJbmRleChnbHlwaEJ1ZmZlciwgMCk7CisgICAgRmxvYXRQb2ludCBz
dGFydFBvaW50KHBvaW50LngoKSArIG1pZGRsZU9mTGFzdEdseXBoIC0gb2Zmc2V0VG9NaWRkbGVP
ZkdseXBoKG1hcmtGb250RGF0YSwgbWFya0dseXBoKSwgcG9pbnQueSgpKTsKKworICAgIEdseXBo
QnVmZmVyIG1hcmtCdWZmZXI7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgKyAxIDwgZ2x5cGhCdWZm
ZXIuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgZmxvYXQgbWlkZGxlT2ZOZXh0R2x5cGggPSBvZmZz
ZXRUb01pZGRsZU9mR2x5cGhBdEluZGV4KGdseXBoQnVmZmVyLCBpICsgMSk7CisgICAgICAgIGZs
b2F0IGFkdmFuY2UgPSBnbHlwaEJ1ZmZlci5hZHZhbmNlQXQoaSkgLSBtaWRkbGVPZkxhc3RHbHlw
aCArIG1pZGRsZU9mTmV4dEdseXBoOworICAgICAgICBtYXJrQnVmZmVyLmFkZChnbHlwaEJ1ZmZl
ci5nbHlwaEF0KGkpID8gbWFya0dseXBoIDogc3BhY2VHbHlwaCwgbWFya0ZvbnREYXRhLCBhZHZh
bmNlKTsKKyAgICAgICAgbWlkZGxlT2ZMYXN0R2x5cGggPSBtaWRkbGVPZk5leHRHbHlwaDsKKyAg
ICB9CisgICAgbWFya0J1ZmZlci5hZGQoZ2x5cGhCdWZmZXIuZ2x5cGhBdChnbHlwaEJ1ZmZlci5z
aXplKCkgLSAxKSA/IG1hcmtHbHlwaCA6IHNwYWNlR2x5cGgsIG1hcmtGb250RGF0YSwgMCk7CisK
KyAgICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgbWFya0J1ZmZlciwgc3RhcnRQb2ludCk7Cit9
CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7
CiAgICAgV2lkdGhJdGVyYXRvciBpdCh0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3Zl
cmZsb3cpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAkocmV2aXNpb24gNzQxNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NSw2ICszNTUsMTQgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IEZvbgogfQogI2VuZGlmCiAKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3RW1waGFzaXNNYXJrcyhjb25zdCBGb250JiBmb250LCBjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgSW50UG9pbnQm
IHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKQoreworICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvbnQuZHJhd0VtcGhhc2lzTWFya3ModGhpcywgcnVu
LCBtYXJrLCBwb2ludCwgZnJvbSwgdG8pOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0JpZGlUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkocmV2aXNpb24gNzQx
NjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMjAsNiArMzIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHNldFRleHREcmF3aW5nTW9kZShUZXh0RHJhd2luZ01vZGVGbGFncyk7CiAKICAgICAg
ICAgdm9pZCBkcmF3VGV4dChjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBv
aW50JiwgaW50IGZyb20gPSAwLCBpbnQgdG8gPSAtMSk7CisgICAgICAgIHZvaWQgZHJhd0VtcGhh
c2lzTWFya3MoY29uc3QgRm9udCYsIGNvbnN0IFRleHRSdW4mICwgY29uc3QgQXRvbWljU3RyaW5n
JiBtYXJrLCBjb25zdCBJbnRQb2ludCYsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEpOwogICAg
ICAgICB2b2lkIGRyYXdCaWRpVGV4dChjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0
IEZsb2F0UG9pbnQmKTsKICAgICAgICAgdm9pZCBkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBG
b250JiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEludFBvaW50JiwgaW50IGgsIGNvbnN0IENvbG9y
JiBiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2UsIGludCBmcm9tID0gMCwgaW50IHRvID0gLTEp
OwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmNw
cAkocmV2aXNpb24gNzQxNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZv
bnREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOCArNTcsNiBAQCBTaW1wbGVGb250RGF0
YTo6U2ltcGxlRm9udERhdGEoY29uc3QgRm9uCiAgICAgLCBtX2lzQ3VzdG9tRm9udChpc0N1c3Rv
bUZvbnQpCiAgICAgLCBtX2lzTG9hZGluZyhpc0xvYWRpbmcpCiAgICAgLCBtX2lzQnJva2VuSWRl
b2dyYXBoRm9udChmYWxzZSkKLSAgICAsIG1fc21hbGxDYXBzRm9udERhdGEoMCkKLSAgICAsIG1f
YnJva2VuSWRlb2dyYXBoRm9udERhdGEoMCkKIHsKICAgICBwbGF0Zm9ybUluaXQoKTsKICAgICBw
bGF0Zm9ybUdseXBoSW5pdCgpOwpAQCAtNzQsOCArNzIsNiBAQCBTaW1wbGVGb250RGF0YTo6U2lt
cGxlRm9udERhdGEoUGFzc093blB0CiAgICAgLCBtX2lzQ3VzdG9tRm9udCh0cnVlKQogICAgICwg
bV9pc0xvYWRpbmcoZmFsc2UpCiAgICAgLCBtX2lzQnJva2VuSWRlb2dyYXBoRm9udChmYWxzZSkK
LSAgICAsIG1fc21hbGxDYXBzRm9udERhdGEoMCkKLSAgICAsIG1fYnJva2VuSWRlb2dyYXBoRm9u
dERhdGEoMCkKIHsKICAgICBTVkdGb250RmFjZUVsZW1lbnQqIHN2Z0ZvbnRGYWNlRWxlbWVudCA9
IG1fc3ZnRm9udERhdGEtPnN2Z0ZvbnRGYWNlRWxlbWVudCgpOwogICAgIG1fdW5pdHNQZXJFbSA9
IHN2Z0ZvbnRGYWNlRWxlbWVudC0+dW5pdHNQZXJFbSgpOwpAQCAtMTg2LDE2ICsxODIsNiBAQCBT
aW1wbGVGb250RGF0YTo6flNpbXBsZUZvbnREYXRhKCkKIAogICAgIGlmICghaXNDdXN0b21Gb250
KCkpCiAgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVGb250RGF0YSh0aGlzKTsK
LSAgICBlbHNlIHsKLSAgICAgICAgaWYgKG1fc21hbGxDYXBzRm9udERhdGEpCi0gICAgICAgICAg
ICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9zbWFsbENhcHNG
b250RGF0YSk7Ci0KLSAgICAgICAgaWYgKG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEpCi0gICAg
ICAgICAgICBHbHlwaFBhZ2VUcmVlTm9kZTo6cHJ1bmVUcmVlQ3VzdG9tRm9udERhdGEobV9icm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSk7Ci0gICAgfQotCi0gICAgZGVsZXRlIG1fc21hbGxDYXBzRm9u
dERhdGE7Ci0gICAgZGVsZXRlIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGE7CiB9CiAKIGNvbnN0
IFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6Zm9udERhdGFGb3JDaGFyYWN0ZXIoVUNo
YXIzMikgY29uc3QKQEAgLTIxMCwxMiArMTk2LDE0IEBAIGJvb2wgU2ltcGxlRm9udERhdGE6Omlz
U2VnbWVudGVkKCkgY29uc3QKIAogU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpicm9r
ZW5JZGVvZ3JhcGhGb250RGF0YSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Jyb2tlbklkZW9ncmFw
aEZvbnREYXRhKSB7Ci0gICAgICAgIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEgPSBuZXcgU2lt
cGxlRm9udERhdGEobV9wbGF0Zm9ybURhdGEsIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAg
ICAgIG1fYnJva2VuSWRlb2dyYXBoRm9udERhdGEtPm1fb3JpZW50YXRpb24gPSBWZXJ0aWNhbDsK
LSAgICAgICAgbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YS0+bV9pc0Jyb2tlbklkZW9ncmFwaEZv
bnQgPSB0cnVlOworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZl
ZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZvbnQoKSk7CisgICAgaWYg
KCFtX2Rlcml2ZWRGb250RGF0YS0+YnJva2VuSWRlb2dyYXBoKSB7CisgICAgICAgIG1fZGVyaXZl
ZEZvbnREYXRhLT5icm9rZW5JZGVvZ3JhcGggPSBuZXcgU2ltcGxlRm9udERhdGEobV9wbGF0Zm9y
bURhdGEsIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7CisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRh
LT5icm9rZW5JZGVvZ3JhcGgtPm1fb3JpZW50YXRpb24gPSBWZXJ0aWNhbDsKKyAgICAgICAgbV9k
ZXJpdmVkRm9udERhdGEtPmJyb2tlbklkZW9ncmFwaC0+bV9pc0Jyb2tlbklkZW9ncmFwaEZvbnQg
PSB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gbV9icm9rZW5JZGVvZ3JhcGhGb250RGF0YTsKKyAg
ICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPmJyb2tlbklkZW9ncmFwaC5nZXQoKTsKIH0KIAog
I2lmbmRlZiBOREVCVUcKQEAgLTIzMCw0ICsyMTgsMjIgQEAgU3RyaW5nIFNpbXBsZUZvbnREYXRh
OjpkZXNjcmlwdGlvbigpIGNvbgogfQogI2VuZGlmCiAKK1NpbXBsZUZvbnREYXRhOjpEZXJpdmVk
Rm9udERhdGE6OkRlcml2ZWRGb250RGF0YShib29sIGN1c3RvbSkKKyAgICA6IGZvckN1c3RvbUZv
bnQoY3VzdG9tKQoreworfQorCitTaW1wbGVGb250RGF0YTo6RGVyaXZlZEZvbnREYXRhOjp+RGVy
aXZlZEZvbnREYXRhKCkKK3sKKyAgICBpZiAoIWZvckN1c3RvbUZvbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChzbWFsbENhcHMpCisgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVu
ZVRyZWVDdXN0b21Gb250RGF0YShzbWFsbENhcHMuZ2V0KCkpOworICAgIGlmIChlbXBoYXNpc01h
cmspCisgICAgICAgIEdseXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0YShl
bXBoYXNpc01hcmsuZ2V0KCkpOworICAgIGlmIChicm9rZW5JZGVvZ3JhcGgpCisgICAgICAgIEds
eXBoUGFnZVRyZWVOb2RlOjpwcnVuZVRyZWVDdXN0b21Gb250RGF0YShicm9rZW5JZGVvZ3JhcGgu
Z2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
NjUsNiArNjUsNyBAQCBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CiBjbGFzcyBTVkdGb250RGF0YTsKIAorZW51bSBGb250RGF0YVZhcmlhbnQgeyBBdXRvVmFyaWFu
dCwgTm9ybWFsVmFyaWFudCwgU21hbGxDYXBzVmFyaWFudCwgRW1waGFzaXNNYXJrVmFyaWFudCB9
OwogZW51bSBQaXRjaCB7IFVua25vd25QaXRjaCwgRml4ZWRQaXRjaCwgVmFyaWFibGVQaXRjaCB9
OwogCiBjbGFzcyBTaW1wbGVGb250RGF0YSA6IHB1YmxpYyBGb250RGF0YSB7CkBAIC03Niw3ICs3
NywyNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2ltcGxlRm9udERhdGEoKTsKIAogICAgIGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
dGZvcm1EYXRhOyB9Ci0gICAgU2ltcGxlRm9udERhdGEqIHNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdDsKKworICAgIFNpbXBsZUZv
bnREYXRhKiBzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsK
KyAgICBTaW1wbGVGb250RGF0YSogZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJikgY29uc3Q7CisKKyAgICBTaW1wbGVGb250RGF0YSogdmFyaWFudEZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIEZvbnREYXRhVmFyaWFudCB2YXJpYW50
KSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh2YXJpYW50KSB7CisgICAgICAgIGNhc2Ug
U21hbGxDYXBzVmFyaWFudDoKKyAgICAgICAgICAgIHJldHVybiBzbWFsbENhcHNGb250RGF0YShk
ZXNjcmlwdGlvbik7CisgICAgICAgIGNhc2UgRW1waGFzaXNNYXJrVmFyaWFudDoKKyAgICAgICAg
ICAgIHJldHVybiBlbXBoYXNpc01hcmtGb250RGF0YShkZXNjcmlwdGlvbik7CisgICAgICAgIGNh
c2UgQXV0b1ZhcmlhbnQ6CisgICAgICAgIGNhc2UgTm9ybWFsVmFyaWFudDoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gY29uc3RfY2FzdDxTaW1wbGVGb250RGF0YSo+KHRoaXMpOworICAgIH0KIAogICAg
IFNpbXBsZUZvbnREYXRhKiBicm9rZW5JZGVvZ3JhcGhGb250RGF0YSgpIGNvbnN0OwogICAgIApA
QCAtMTgzLDYgKzIwMSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbW1vbkluaXQoKTsKIAor
ICAgIFNpbXBsZUZvbnREYXRhKiBzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
LCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3Q7CisKICNpZiAoUExBVEZPUk0oV0lOKSAmJiAhT1Mo
V0lOQ0UpKSBcCiAgICAgfHwgKE9TKFdJTkRPV1MpICYmIFBMQVRGT1JNKFdYKSkKICAgICB2b2lk
IGluaXRHRElGb250KCk7CkBAIC0yMjYsOSArMjQ2LDE3IEBAIHByaXZhdGU6CiAKICAgICBHbHlw
aERhdGEgbV9taXNzaW5nR2x5cGhEYXRhOwogCi0gICAgbXV0YWJsZSBTaW1wbGVGb250RGF0YSog
bV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBzdHJ1Y3QgRGVyaXZlZEZvbnREYXRhIHsKKyAgICAg
ICAgRGVyaXZlZEZvbnREYXRhKGJvb2wgZm9yQ3VzdG9tRm9udCk7CisgICAgICAgIH5EZXJpdmVk
Rm9udERhdGEoKTsKKworICAgICAgICBib29sIGZvckN1c3RvbUZvbnQ7CisgICAgICAgIE93blB0
cjxTaW1wbGVGb250RGF0YT4gc21hbGxDYXBzOworICAgICAgICBPd25QdHI8U2ltcGxlRm9udERh
dGE+IGVtcGhhc2lzTWFyazsKKyAgICAgICAgT3duUHRyPFNpbXBsZUZvbnREYXRhPiBicm9rZW5J
ZGVvZ3JhcGg7CisgICAgfTsKIAotICAgIG11dGFibGUgU2ltcGxlRm9udERhdGEqIG1fYnJva2Vu
SWRlb2dyYXBoRm9udERhdGE7CisgICAgbXV0YWJsZSBPd25QdHI8RGVyaXZlZEZvbnREYXRhPiBt
X2Rlcml2ZWRGb250RGF0YTsKIAogI2lmIFBMQVRGT1JNKENHKSB8fCBQTEFURk9STShDQUlSTykg
fHwgUExBVEZPUk0oV1gpCiAgICAgZmxvYXQgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCShyZXZpc2lvbiA3
NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gQWNj
b3JkaW5nIHRvIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURBVEEvVUNELmh0bWwj
Q2Fub25pY2FsX0NvbWJpbmluZ19DbGFzc19WYWx1ZXMKIHN0YXRpYyBjb25zdCB1aW50OF90IGhp
cmFnYW5hS2F0YWthbmFWb2ljaW5nTWFya3NDb21iaW5pbmdDbGFzcyA9IDg7CiAKLVdpZHRoSXRl
cmF0b3I6OldpZHRoSXRlcmF0b3IoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVu
LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMsIGJvb2wgYWNj
b3VudEZvckdseXBoQm91bmRzKQorV2lkdGhJdGVyYXRvcjo6V2lkdGhJdGVyYXRvcihjb25zdCBG
b250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgYm9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMsIGJvb2wgZm9y
VGV4dEVtcGhhc2lzKQogICAgIDogbV9mb250KGZvbnQpCiAgICAgLCBtX3J1bihydW4pCiAgICAg
LCBtX2VuZChydW4ubGVuZ3RoKCkpCkBAIC01Myw2ICs1Myw3IEBAIFdpZHRoSXRlcmF0b3I6Oldp
ZHRoSXRlcmF0b3IoY29uc3QgRm9udCoKICAgICAsIG1fbWluR2x5cGhCb3VuZGluZ0JveFkobnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkKICAgICAsIG1fZmlyc3RHbHlwaE92ZXJmbG93KDAp
CiAgICAgLCBtX2xhc3RHbHlwaE92ZXJmbG93KDApCisgICAgLCBtX2ZvclRleHRFbXBoYXNpcyhm
b3JUZXh0RW1waGFzaXMpCiB7CiAgICAgLy8gSWYgdGhlIHBhZGRpbmcgaXMgbm9uLXplcm8sIGNv
dW50IHRoZSBudW1iZXIgb2Ygc3BhY2VzIGluIHRoZSBydW4KICAgICAvLyBhbmQgZGl2aWRlIHRo
YXQgYnkgdGhlIHBhZGRpbmcgZm9yIHBlciBzcGFjZSBhZGRpdGlvbi4KQEAgLTE5OSw2ICsyMDAs
OSBAQCB2b2lkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoaW50IG9mZnNldCwgCiAgICAgICAgICAg
ICAgICAgbV9maXJzdEdseXBoT3ZlcmZsb3cgPSBtYXg8ZmxvYXQ+KDAsIC1ib3VuZHMueCgpKTsK
ICAgICAgICAgfQogCisgICAgICAgIGlmIChtX2ZvclRleHRFbXBoYXNpcyAmJiAhRm9udDo6Y2Fu
UmVjZWl2ZVRleHRFbXBoYXNpcyhjKSkKKyAgICAgICAgICAgIGdseXBoID0gMDsKKwogICAgICAg
ICAvLyBBZHZhbmNlIHBhc3QgdGhlIGNoYXJhY3RlciB3ZSBqdXN0IGRlYWx0IHdpdGguCiAgICAg
ICAgIGNwICs9IGNsdXN0ZXJMZW5ndGg7CiAgICAgICAgIGN1cnJlbnRDaGFyYWN0ZXIgKz0gY2x1
c3Rlckxlbmd0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRv
ci5oCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFNpbXBsZUZv
bnREYXRhOwogY2xhc3MgVGV4dFJ1bjsKIAogc3RydWN0IFdpZHRoSXRlcmF0b3IgewotICAgIFdp
ZHRoSXRlcmF0b3IoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBIYXNoU2V0PGNvbnN0IFNp
bXBsZUZvbnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGFjY291bnRGb3JHbHlwaEJv
dW5kcyA9IGZhbHNlKTsKKyAgICBXaWR0aEl0ZXJhdG9yKGNvbnN0IEZvbnQqLCBjb25zdCBUZXh0
UnVuJiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwg
Ym9vbCBhY2NvdW50Rm9yR2x5cGhCb3VuZHMgPSBmYWxzZSwgYm9vbCBmb3JUZXh0RW1waGFzaXMg
PSBmYWxzZSk7CiAKICAgICB2b2lkIGFkdmFuY2UoaW50IHRvLCBHbHlwaEJ1ZmZlciogPSAwKTsK
ICAgICBib29sIGFkdmFuY2VPbmVDaGFyYWN0ZXIoZmxvYXQmIHdpZHRoLCBHbHlwaEJ1ZmZlciog
PSAwKTsKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX21pbkdseXBoQm91
bmRpbmdCb3hZOwogICAgIGZsb2F0IG1fZmlyc3RHbHlwaE92ZXJmbG93OwogICAgIGZsb2F0IG1f
bGFzdEdseXBoT3ZlcmZsb3c7CisgICAgYm9vbCBtX2ZvclRleHRFbXBoYXNpczsKIH07CiAKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Zv
bnRDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJGb250
RmFsbGJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZmZXIuaCIKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKICNpbmNsdWRl
ICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlNraWFGb250V2luLmgiCkBAIC01MDUsNiAr
NTA2LDExIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBj
b250ZXh0LT5jYW52YXMoKS0+ZW5kUGxhdGZvcm1QYWludCgpOwogfQogCit2b2lkIEZvbnQ6OmRy
YXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiAvKiBjb250ZXh0
ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNvbnN0IEF0b21pY1N0cmluZyYgLyogbWFy
ayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQgKi8sIGludCAvKiBmcm9tICovLCBpbnQg
LyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogZmxvYXQgRm9u
dDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiAvKiBmYWxsYmFja0ZvbnRzICovLCBHbHlwaE92ZXJmbG93
KiAvKiBnbHlwaE92ZXJmbG93ICovKSBjb25zdAogewogICAgIFVuaXNjcmliZUhlbHBlclRleHRS
dW4gc3RhdGUocnVuLCAqdGhpcyk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzgxLDcgKzM4MSw3IEBAIGJvb2wgVGV4dFJ1bldhbGtlcjo6bmV4dFNjcmlwdFJ1bigpCiAg
ICAgICAgIC8vIChhbmQgdGhlIGdseXBocyBpbiBlYWNoIEEsIEMgYW5kIFQgc2VjdGlvbiBhcmUg
YmFja3dhcmRzIHRvbykKICAgICAgICAgaWYgKCFoYl91dGYxNl9zY3JpcHRfcnVuX3ByZXYoJm1f
bnVtQ29kZVBvaW50cywgJm1faXRlbS5pdGVtLCBtX3J1bi5jaGFyYWN0ZXJzKCksIG1fcnVuLmxl
bmd0aCgpLCAmbV9pbmRleE9mTmV4dFNjcmlwdFJ1bikpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIG1fY3VycmVudEZvbnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFy
YWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0ZW0uaXRlbS5wb3NdLCBmYWxzZSwgZmFsc2UpLmZvbnRE
YXRhOworICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UpLmZvbnREYXRhOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghaGJfdXRmMTZfc2NyaXB0X3J1bl9uZXh0KCZtX251
bUNvZGVQb2ludHMsICZtX2l0ZW0uaXRlbSwgbV9ydW4uY2hhcmFjdGVycygpLCBtX3J1bi5sZW5n
dGgoKSwgJm1faW5kZXhPZk5leHRTY3JpcHRSdW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzkzLDEwICszOTMsMTAgQEAgYm9vbCBUZXh0UnVuV2Fsa2VyOjpuZXh0U2NyaXB0UnVu
KCkKICAgICAgICAgLy8gaW4gdGhlIGhhcmZidXp6IGRhdGEgc3RydWN0dXJlcyB0byBlLmcuIHBp
Y2sgdGhlIGNvcnJlY3Qgc2NyaXB0J3Mgc2hhcGVyLgogICAgICAgICAvLyBTbyB3ZSBhbGxvdyB0
aGF0IHRvIHJ1biBmaXJzdCwgdGhlbiBkbyBhIHNlY29uZCBwYXNzIG92ZXIgdGhlIHJhbmdlIGl0
CiAgICAgICAgIC8vIGZvdW5kIGFuZCB0YWtlIHRoZSBsYXJnZXN0IHN1YnJlZ2lvbiB0aGF0IHN0
YXlzIHdpdGhpbiBhIHNpbmdsZSBmb250LgotICAgICAgICBtX2N1cnJlbnRGb250RGF0YSA9IG1f
Zm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9z
XSwgZmFsc2UsIGZhbHNlKS5mb250RGF0YTsKKyAgICAgICAgbV9jdXJyZW50Rm9udERhdGEgPSBt
X2ZvbnQtPmdseXBoRGF0YUZvckNoYXJhY3RlcihtX2l0ZW0uc3RyaW5nW21faXRlbS5pdGVtLnBv
c10sIGZhbHNlKS5mb250RGF0YTsKICAgICAgICAgdW5zaWduZWQgZW5kT2ZSdW47CiAgICAgICAg
IGZvciAoZW5kT2ZSdW4gPSAxOyBlbmRPZlJ1biA8IG1faXRlbS5pdGVtLmxlbmd0aDsgKytlbmRP
ZlJ1bikgewotICAgICAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIG5leHRGb250RGF0YSA9
IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0u
cG9zICsgZW5kT2ZSdW5dLCBmYWxzZSwgZmFsc2UpLmZvbnREYXRhOworICAgICAgICAgICAgY29u
c3QgU2ltcGxlRm9udERhdGEqIG5leHRGb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hh
cmFjdGVyKG1faXRlbS5zdHJpbmdbbV9pdGVtLml0ZW0ucG9zICsgZW5kT2ZSdW5dLCBmYWxzZSku
Zm9udERhdGE7CiAgICAgICAgICAgICBpZiAobmV4dEZvbnREYXRhICE9IG1fY3VycmVudEZvbnRE
YXRhKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC00MjIsNyArNDIyLDcg
QEAgZmxvYXQgVGV4dFJ1bldhbGtlcjo6d2lkdGhPZkZ1bGxSdW4oKQogCiB2b2lkIFRleHRSdW5X
YWxrZXI6OnNldHVwRm9udEZvclNjcmlwdFJ1bigpCiB7Ci0gICAgY29uc3QgRm9udERhdGEqIGZv
bnREYXRhID0gbV9mb250LT5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9pdGVtLnN0cmluZ1ttX2l0
ZW0uaXRlbS5wb3NdLCBmYWxzZSwgZmFsc2UpLmZvbnREYXRhOworICAgIGNvbnN0IEZvbnREYXRh
KiBmb250RGF0YSA9IG1fZm9udC0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKG1faXRlbS5zdHJpbmdb
bV9pdGVtLml0ZW0ucG9zXSwgZmFsc2UpLmZvbnREYXRhOwogICAgIGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmIHBsYXRmb3JtRGF0YSA9IGZvbnREYXRhLT5mb250RGF0YUZvckNoYXJhY3RlcignICcp
LT5wbGF0Zm9ybURhdGEoKTsKICAgICBtX2l0ZW0uZmFjZSA9IHBsYXRmb3JtRGF0YS5oYXJmYnV6
ekZhY2UoKTsKICAgICB2b2lkKiBvcGFxdWVQbGF0Zm9ybURhdGEgPSBjb25zdF9jYXN0PEZvbnRQ
bGF0Zm9ybURhdGEqPigmcGxhdGZvcm1EYXRhKTsKQEAgLTY5MCw2ICs2OTAsMTEgQEAgdm9pZCBG
b250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29u
dGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8q
IG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywg
aW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogLyogZmFsbGJhY2tGb250cyAqLywgR2x5cGhPdmVy
ZmxvdyogLyogZ2x5cGhPdmVyZmxvdyAqLykgY29uc3QKIHsKICAgICBUZXh0UnVuV2Fsa2VyIHdh
bGtlcihydW4sIDAsIHRoaXMpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9TaW1wbGVGb250RGF0YUNocm9taXVtV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3Bw
CShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
U2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiwyMCAr
MTEyLDM0IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIExPR0ZPTlQgd2luRm9udDsKKyAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZv
bnQoKSwgc2l6ZW9mKExPR0ZPTlQpLCAmd2luRm9udCk7CisgICAgZmxvYXQgc2NhbGVkU2l6ZSA9
IHNjYWxlRmFjdG9yICogZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpOworICAgIHdpbkZv
bnQubGZIZWlnaHQgPSAtbHJvdW5kZihzY2FsZWRTaXplKTsKKyAgICBIRk9OVCBoZm9udCA9IENy
ZWF0ZUZvbnRJbmRpcmVjdCgmd2luRm9udCk7CisgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0
YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzY2FsZWRTaXplKSwgaXNDdXN0b21Gb250KCksIGZh
bHNlKTsKK30KKwogU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzbWFsbENhcHNGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKLSAg
ICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpIHsKLSAgICAgICAgTE9HRk9OVCB3aW5Gb250Owot
ICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSwgc2l6ZW9mKExPR0ZPTlQp
LCAmd2luRm9udCk7Ci0gICAgICAgIGZsb2F0IHNtYWxsQ2Fwc1NpemUgPSAwLjcwZiAqIGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKTsKLSAgICAgICAgLy8gVW5saWtlIFdlYktpdCB0cnVu
aywgd2UgZG9uJ3QgbXVsdGlwbHkgdGhlIHNpemUgYnkgMzIuICBUaGF0IHNlZW1zCi0gICAgICAg
IC8vIHRvIGJlIHNvbWUga2luZCBvZiBhcnRpZmFjdCBvZiB0aGVpciBDRyBiYWNrZW5kLCBvciBz
b21ldGhpbmcuCi0gICAgICAgIHdpbkZvbnQubGZIZWlnaHQgPSAtbHJvdW5kZihzbWFsbENhcHNT
aXplKTsKLSAgICAgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250SW5kaXJlY3QoJndpbkZvbnQp
OwotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRhID0KLSAgICAgICAgICAgIG5ldyBTaW1wbGVG
b250RGF0YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzbWFsbENhcHNTaXplKSwgaXNDdXN0b21G
b250KCksIGZhbHNlKTsKLSAgICB9Ci0gICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7Cisg
ICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKKyAgICAgICAgbV9kZXJpdmVkRm9udERhdGEgPSBu
ZXcgRGVyaXZlZEZvbnREYXRhKGlzQ3VzdG9tRm9udCgpKTsKKyAgICBpZiAoIW1fZGVyaXZlZEZv
bnREYXRhLT5zbWFsbENhcHMpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhLT5zbWFsbENhcHMg
PSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKworICAgIHJldHVybiBtX2Rl
cml2ZWRGb250RGF0YS0+c21hbGxDYXBzLmdldCgpOworfQorCitTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisg
ICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZv
bnQoKSk7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrKQorICAgICAg
ICBtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrID0gc2NhbGVkRm9udERhdGEoZm9udERl
c2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lz
TWFyay5nZXQoKTsKIH0KIAogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaW1wbGVGb250RGF0YUxpbnV4LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnRE
YXRhTGludXguY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBTbWFsbGNhcHMgdmVyc2lvbnMg
b2YgZm9udHMgYXJlIDcwJSB0aGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGZvbnQuCiBzdGF0aWMgY29u
c3QgZmxvYXQgc21hbGxDYXBzRnJhY3Rpb24gPSAwLjdmOworc3RhdGljIGNvbnN0IGZsb2F0IGVt
cGhhc2lzTWFya0ZyYWN0aW9uID0gLjU7CiAvLyBUaGlzIGlzIHRoZSBsYXJnZXN0IFZETVggdGFi
bGUgd2hpY2ggd2UnbGwgdHJ5IHRvIGxvYWQgYW5kIHBhcnNlLgogc3RhdGljIGNvbnN0IHNpemVf
dCBtYXhWRE1YVGFibGVTaXplID0gMTAyNCAqIDEwMjQ7ICAvLyAxIE1CCiAKQEAgLTE0MSwxNCAr
MTQyLDMwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiB9CiAK
K1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFjdG9yKSBjb25zdAor
eworICAgIGNvbnN0IGZsb2F0IHNjYWxlZFNpemUgPSBscm91bmRmKGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFNpemUoKSAqIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnRE
YXRhKEZvbnRQbGF0Zm9ybURhdGEobV9wbGF0Zm9ybURhdGEsIHNjYWxlZFNpemUpLCBpc0N1c3Rv
bUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNt
YWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBj
b25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBjb25zdCBm
bG9hdCBzbWFsbENhcHNTaXplID0gbHJvdW5kZihmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCkgKiBzbWFsbENhcHNGcmFjdGlvbik7Ci0gICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBu
ZXcgU2ltcGxlRm9udERhdGEoRm9udFBsYXRmb3JtRGF0YShtX3BsYXRmb3JtRGF0YSwgc21hbGxD
YXBzU2l6ZSksIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7Ci0gICAgfQorICAgIGlmICghbV9kZXJp
dmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250
RGF0YShpc0N1c3RvbUZvbnQoKSk7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxD
YXBzKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxDYXBzID0gc2NhbGVkRm9udERh
dGEoZm9udERlc2NyaXB0aW9uLCBzbWFsbENhcHNGcmFjdGlvbik7CisKKyAgICByZXR1cm4gbV9k
ZXJpdmVkRm9udERhdGEtPnNtYWxsQ2Fwcy5nZXQoKTsKK30KKworU2ltcGxlRm9udERhdGEqIFNp
bXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhKQor
ICAgICAgICBtX2Rlcml2ZWRGb250RGF0YSA9IG5ldyBEZXJpdmVkRm9udERhdGEoaXNDdXN0b21G
b250KCkpOworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyaykKKyAgICAg
ICAgbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyayA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgZW1waGFzaXNNYXJrRnJhY3Rpb24pOwogCi0gICAgcmV0dXJuIG1fc21hbGxD
YXBzRm9udERhdGE7CisgICAgcmV0dXJuIG1fZGVyaXZlZEZvbnREYXRhLT5lbXBoYXNpc01hcmsu
Z2V0KCk7CiB9CiAKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCwxMSBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0Zv
ckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1
biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0
UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGJvb2wgRm9udDo6Y2FuUmV0dXJuRmFsbGJh
Y2tGb250c0ZvckNvbXBsZXhUZXh0KCkKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxl
Rm9udERhdGFGcmVlVHlwZS5jcHAJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzksMTYgKzc5LDMzIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVz
dHJveSgpCiB7CiB9CiAKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxl
RmFjdG9yKSBjb25zdAoreworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEoCisgICAgICAg
IEZvbnRQbGF0Zm9ybURhdGEoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3BsYXRm
b3JtRGF0YS5zY2FsZWRGb250KCkpLAorICAgICAgICBzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlw
dGlvbi5jb21wdXRlZFNpemUoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3Bs
YXRmb3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCkpLAorICAgICAgICBpc0N1c3RvbUZvbnQoKSwg
ZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0Zv
bnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewor
ICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0g
bmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZvbnQoKSk7CiAgICAgLy8gRklYTUU6IEkgdGhp
bmsgd2Ugd2FudCB0byBhc2sgRm9udENvbmZpZyBmb3IgdGhlIHJpZ2h0IGZvbnQgYWdhaW4uCi0g
ICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKQotICAgICAgICBtX3NtYWxsQ2Fwc0ZvbnREYXRh
ID0gbmV3IFNpbXBsZUZvbnREYXRhKAotICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YShjYWly
b19zY2FsZWRfZm9udF9nZXRfZm9udF9mYWNlKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSks
Ci0gICAgICAgICAgICAwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSwgbV9w
bGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNPYmxp
cXVlKCkpLAotICAgICAgICAgICAgaXNDdXN0b21Gb250KCksIGZhbHNlKTsKKyAgICBpZiAoIW1f
ZGVyaXZlZEZvbnREYXRhLT5zbWFsbENhcHMpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhLT5z
bWFsbENhcHMgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKworICAgIHJl
dHVybiBtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxDYXBzLmdldCgpOworfQorCitTaW1wbGVGb250
RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9kZXJpdmVkRm9u
dERhdGEpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShp
c0N1c3RvbUZvbnQoKSk7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJr
KQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrID0gc2NhbGVkRm9udERh
dGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CiAKLSAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0
YTsKKyAgICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyay5nZXQoKTsKIH0K
IAogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvRm9udEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvRm9udEd0ay5jcHAJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNvbnRleHRTaGFkb3cu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNp
bmNsdWRlIDxnZGsvZ2RrLmg+CkBAIC0zMTksNiArMzIwLDExIEBAIHZvaWQgRm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAordm9p
ZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCog
LyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJp
bmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJv
bSAqLywgaW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
IC8vIFdlIHNob3VsZCBjcmVhdGUgdGhlIGxheW91dCB3aXRoIG91ciBhY3R1YWwgY29udGV4dCBi
dXQgd2UgY2FuJ3QgYWNjZXNzIGl0IGZyb20gaGVyZS4KIHN0YXRpYyBQYW5nb0xheW91dCogZ2V0
RGVmYXVsdFBhbmdvTGF5b3V0KGNvbnN0IFRleHRSdW4mIHJ1bikKIHsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvRm9udEhhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0ZvbnRIYWlrdS5jcHAJKHJldmlzaW9uIDc0MTYx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9Gb250SGFpa3UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Myw2ICs5MywxMCBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChH
cmFwaGljc0NvbnRlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBGb250OjpkcmF3
RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAq
LywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsg
Ki8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8q
IHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CiAKIGZsb2F0IEZvbnQ6
OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29u
c3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhP
dmVyZmxvdykgY29uc3QKIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3Uv
U2ltcGxlRm9udERhdGFIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9TaW1wbGVGb250RGF0YUhhaWt1LmNwcAkocmV2aXNpb24gNzQxNjEpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L1NpbXBsZUZvbnREYXRhSGFpa3UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNSArNjYsMzIgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAorU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRh
OjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
ZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAgRm9udERlc2NyaXB0aW9uIGRlc2MgPSBG
b250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsKKyAgICBkZXNjLnNldFNwZWNpZmllZFNp
emUoc2NhbGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOworICAgIEZv
bnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWls
eSgpKTsKKyAgICByZXR1cm4gbmV3IFNpbXBsZUZvbnREYXRhKGZvbnRQbGF0Zm9ybURhdGEsIGlz
Q3VzdG9tRm9udCgpLCBmYWxzZSk7Cit9CisKIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NtYWxsQ2Fwc0ZvbnREYXRhKSB7Ci0gICAgICAgIEZv
bnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7Ci0g
ICAgICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnREZXNjcmlwdGlvbi5jb21w
dXRlZFNpemUoKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShk
ZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAgICAgICAgbV9zbWFsbENhcHNGb250RGF0
YSA9IG5ldyBTaW1wbGVGb250RGF0YShmb250UGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwg
ZmFsc2UpOwotICAgIH0KLSAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBpZiAo
IW1fZGVyaXZlZEZvbnREYXRhKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0YSA9IG5ldyBEZXJp
dmVkRm9udERhdGEoaXNDdXN0b21Gb250KCkpOworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEt
PnNtYWxsQ2FwcykKKyAgICAgICAgbV9kZXJpdmVkRm9udERhdGEtPnNtYWxsQ2FwcyA9IHNjYWxl
ZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCisgICAgcmV0dXJuIG1fZGVyaXZlZEZv
bnREYXRhLT5zbWFsbENhcHMuZ2V0KCk7Cit9CisKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250
RGF0YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKKyAgICAgICAg
bV9kZXJpdmVkRm9udERhdGEgPSBuZXcgRGVyaXZlZEZvbnREYXRhKGlzQ3VzdG9tRm9udCgpKTsK
KyAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhLT5lbXBoYXNpc01hcmspCisgICAgICAgIG1fZGVy
aXZlZEZvbnREYXRhLT5lbXBoYXNpc01hcmsgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRp
b24sIC41KTsKKworICAgIHJldHVybiBtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrLmdl
dCgpOwogfQogCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3Qg
VUNoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTAgKzU2LDExIEBAIHN0
YXRpYyBpbmxpbmUgQ0dGbG9hdCBjZWlsQ0dGbG9hdChDR0Zsb2EKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q0dGbG9hdD4oY2VpbChmKSk7CiB9CiAKLUNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwg
Ym9vbCBtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+KiBmYWxsYmFja0ZvbnRzKQorQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4
VGV4dENvbnRyb2xsZXIoY29uc3QgRm9udCogZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLCBib29s
IG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnRE
YXRhKj4qIGZhbGxiYWNrRm9udHMsIGJvb2wgZm9yVGV4dEVtcGhhc2lzKQogICAgIDogbV9mb250
KCpmb250KQogICAgICwgbV9ydW4ocnVuKQogICAgICwgbV9tYXlVc2VOYXR1cmFsV3JpdGluZ0Rp
cmVjdGlvbihtYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbikKKyAgICAsIG1fZm9yVGV4dEVt
cGhhc2lzKGZvclRleHRFbXBoYXNpcykKICAgICAsIG1fY3VycmVudENoYXJhY3RlcigwKQogICAg
ICwgbV9lbmQocnVuLmxlbmd0aCgpKQogICAgICwgbV90b3RhbFdpZHRoKDApCkBAIC0yNDAsNyAr
MjQxLDcgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbAogICAgICAg
ICAgICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFUx
Nl9HRVRfU1VQUExFTUVOVEFSWShjdXJyWy0xXSwgY3VyclswXSksIGZhbHNlKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBuZXh0R2x5cGhEYXRhID0gbV9mb250
LmdseXBoRGF0YUZvckNoYXJhY3RlcigqY3VyciwgZmFsc2UsIGZvcmNlU21hbGxDYXBzKTsKKyAg
ICAgICAgICAgIG5leHRHbHlwaERhdGEgPSBtX2ZvbnQuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKCpj
dXJyLCBmYWxzZSwgZm9yY2VTbWFsbENhcHMgPyBTbWFsbENhcHNWYXJpYW50IDogQXV0b1Zhcmlh
bnQpOwogCiAgICAgICAgIGlmICghaXNTdXJyb2dhdGUgJiYgbV9mb250LmlzU21hbGxDYXBzKCkp
IHsKICAgICAgICAgICAgIG5leHRJc1NtYWxsQ2FwcyA9IGZvcmNlU21hbGxDYXBzIHx8IChuZXdD
ID0gdV90b3VwcGVyKGMpKSAhPSBjOwpAQCAtNTM2LDYgKzUzNywxMCBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICB3aWR0aFNpbmNlTGFzdFJvdW5kaW5nICs9IGFkdmFuY2Uud2lkdGg7CiAKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBDb21iaW5pbmcgbWFya3Mgc2hvdWxkIHJlY2VpdmUgYSB0ZXh0IGVt
cGhhc2lzIG1hcmsgaWYgdGhleSBhcmUgY29tYmluZSB3aXRoIGEgc3BhY2UuCisgICAgICAgICAg
ICBpZiAobV9mb3JUZXh0RW1waGFzaXMgJiYgKCFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lz
KGNoKSB8fCAoVV9HRVRfR0NfTUFTSyhjaCkgJiBVX0dDX01fTUFTSykpKQorICAgICAgICAgICAg
ICAgIGdseXBoID0gMDsKKwogICAgICAgICAgICAgYWR2YW5jZS5oZWlnaHQgKj0gLTE7CiAgICAg
ICAgICAgICBtX2FkanVzdGVkQWR2YW5jZXMuYXBwZW5kKGFkdmFuY2UpOwogICAgICAgICAgICAg
bV9hZGp1c3RlZEdseXBocy5hcHBlbmQoZ2x5cGgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgJKHJldmlzaW9u
IDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgVGV4dFJ1bjsK
IC8vIE9TIFZlcnNpb25zID49IDEwLjYsIEFUU1VJIGlzIHVzZWQgb3RoZXJ3aXNlLgogY2xhc3Mg
Q29tcGxleFRleHRDb250cm9sbGVyIHsKIHB1YmxpYzoKLSAgICBDb21wbGV4VGV4dENvbnRyb2xs
ZXIoY29uc3QgRm9udCosIGNvbnN0IFRleHRSdW4mLCBib29sIG1heVVzZU5hdHVyYWxXcml0aW5n
RGlyZWN0aW9uID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJh
Y2tGb250cyA9IDApOworICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250KiwgY29u
c3QgVGV4dFJ1biYsIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwg
SGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgYm9vbCBm
b3JUZXh0RW1waGFzaXMgPSBmYWxzZSk7CiAKICAgICAvLyBBZHZhbmNlIGFuZCBlbWl0IGdseXBo
cyB1cCB0byB0aGUgc3BlY2lmaWVkIGNoYXJhY3Rlci4KICAgICB2b2lkIGFkdmFuY2UodW5zaWdu
ZWQgdG8sIEdseXBoQnVmZmVyKiA9IDApOwpAQCAtMTU2LDYgKzE1Niw3IEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgRm9udCYgbV9mb250OwogICAgIGNvbnN0IFRleHRSdW4mIG1fcnVuOwogICAgIGJv
b2wgbV9tYXlVc2VOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbjsKKyAgICBib29sIG1fZm9yVGV4dEVt
cGhhc2lzOwogCiAgICAgVmVjdG9yPFVDaGFyLCAyNTY+IG1fc21hbGxDYXBzQnVmZmVyOwogCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q29tcGxleFRleHRNYWMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDb21wbGV4
VGV4dE1hYy5jcHAJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENvbXBsZXhUZXh0TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMzQgKzU1
LDU1IEBAIEZsb2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFQKICAgICByZXR1
cm4gRmxvYXRSZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0aCksIHBvaW50LnkoKSwg
cm91bmRmKGFmdGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwgaCk7CiB9CiAKLXZvaWQg
Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4
dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250OjpnZXRHbHlwaHNBbmRB
ZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0
bywgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0
RW1waGFzaXMpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGds
eXBocyArIGFkdmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgotICAgIEdseXBoQnVm
ZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlOwogCi0gICAgZmxvYXQg
c3RhcnRYID0gcG9pbnQueCgpOwotICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBjb250cm9sbGVy
KHRoaXMsIHJ1bik7CisgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywg
cnVuLCBmYWxzZSwgMCwgZm9yVGV4dEVtcGhhc2lzKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2Uo
ZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIo
KTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UodG8sICZnbHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAg
Ly8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAu
CisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAg
CisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQgYWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIu
cnVuV2lkdGhTb0ZhcigpOwogCiAgICAgaWYgKHJ1bi5ydGwoKSkgewotICAgICAgICBzdGFydFgg
Kz0gY29udHJvbGxlci50b3RhbFdpZHRoKCkgKyBjb250cm9sbGVyLmZpbmFsUm91bmRpbmdXaWR0
aCgpIC0gYWZ0ZXJXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBjb250cm9sbGVyLnRv
dGFsV2lkdGgoKSArIGNvbnRyb2xsZXIuZmluYWxSb3VuZGluZ1dpZHRoKCkgLSBhZnRlcldpZHRo
OwogICAgICAgICBmb3IgKGludCBpID0gMCwgZW5kID0gZ2x5cGhCdWZmZXIuc2l6ZSgpIC0gMTsg
aSA8IGdseXBoQnVmZmVyLnNpemUoKSAvIDI7ICsraSwgLS1lbmQpCiAgICAgICAgICAgICBnbHlw
aEJ1ZmZlci5zd2FwKGksIGVuZCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHN0YXJ0WCArPSBiZWZv
cmVXaWR0aDsKKyAgICAgICAgaW5pdGlhbEFkdmFuY2UgPSBiZWZvcmVXaWR0aDsKKworICAgIHJl
dHVybiBpbml0aWFsQWR2YW5jZTsKK30KKwordm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAoreworICAgIC8vIFRoaXMgZ2x5cGgg
YnVmZmVyIGhvbGRzIG91ciBnbHlwaHMgKyBhZHZhbmNlcyArIGZvbnQgZGF0YSBmb3IgZWFjaCBn
bHlwaC4KKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKworICAgIGZsb2F0IHN0YXJ0WCA9
IHBvaW50LngoKSArIGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBmcm9t
LCB0bywgZ2x5cGhCdWZmZXIpOworCisgICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGds
eXBocyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisgICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRHJhdyB0aGUgZ2x5cGggYnVmZmVyIG5vdyBh
dCB0aGUgc3RhcnRpbmcgcG9pbnQgcmV0dXJuZWQgaW4gc3RhcnRYLgogICAgIEZsb2F0UG9pbnQg
c3RhcnRQb2ludChzdGFydFgsIHBvaW50LnkoKSk7Ci0gICAgZHJhd0dseXBoQnVmZmVyKGNvbnRl
eHQsIGdseXBoQnVmZmVyLCBydW4sIHN0YXJ0UG9pbnQpOworICAgIGRyYXdHbHlwaEJ1ZmZlcihj
b250ZXh0LCBnbHlwaEJ1ZmZlciwgc3RhcnRQb2ludCk7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0Vt
cGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50
JiBwb2ludCwgaW50IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBHbHlwaEJ1ZmZlciBnbHlw
aEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2Vz
Rm9yQ29tcGxleFRleHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNp
cyk7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQ
b2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7CiB9CiAKIGZsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyog
Z2x5cGhPdmVyZmxvdykgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1NpbXBsZUZvbnREYXRhTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNTcsOSArMzU3LDEzIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQ2hh
cldpZHRoSW4KIAogdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKLSAg
ICBpZiAobV9zbWFsbENhcHNGb250RGF0YSAmJiAhaXNDdXN0b21Gb250KCkpIHsKLSAgICAgICAg
Zm9udENhY2hlKCktPnJlbGVhc2VGb250RGF0YShtX3NtYWxsQ2Fwc0ZvbnREYXRhKTsKLSAgICAg
ICAgbV9zbWFsbENhcHNGb250RGF0YSA9IDA7CisgICAgaWYgKCFpc0N1c3RvbUZvbnQoKSAmJiBt
X2Rlcml2ZWRGb250RGF0YSkgeworICAgICAgICAvLyBUaGVzZSBjb21lIGZyb20gdGhlIGNhY2hl
LgorICAgICAgICBpZiAobV9kZXJpdmVkRm9udERhdGEtPnNtYWxsQ2FwcykKKyAgICAgICAgICAg
IGZvbnRDYWNoZSgpLT5yZWxlYXNlRm9udERhdGEobV9kZXJpdmVkRm9udERhdGEtPnNtYWxsQ2Fw
cy5sZWFrUHRyKCkpOworCisgICAgICAgIGlmIChtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNN
YXJrKQorICAgICAgICAgICAgZm9udENhY2hlKCktPnJlbGVhc2VGb250RGF0YShtX2Rlcml2ZWRG
b250RGF0YS0+ZW1waGFzaXNNYXJrLmxlYWtQdHIoKSk7CiAgICAgfQogCiAjaWZkZWYgQlVJTERJ
TkdfT05fVElHRVIKQEAgLTM3Myw0MSArMzc3LDYwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtRGVzdHJveSgpCiAjZW5kaWYKIH0KIAotU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnRE
YXRhOjpzbWFsbENhcHNGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbikgY29uc3QKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c2NhbGVkRm9udERh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNjYWxlRmFj
dG9yKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAgICBp
ZiAoaXNDdXN0b21Gb250KCkpIHsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxD
YXBzRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOwotICAgICAgICAgICAgc21hbGxDYXBzRm9udERh
dGEubV9zaXplID0gc21hbGxDYXBzRm9udERhdGEubV9zaXplICogc21hbGxDYXBzRm9udFNpemVN
dWx0aXBsaWVyOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVG
b250RGF0YShzbWFsbENhcHNGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgICAgICAgICAg
ZmxvYXQgc2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKSAqIHNtYWxsQ2Fwc0ZvbnRTaXplTXVs
dGlwbGllcjsKLSAgICAgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9udChbW05T
Rm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNvbnZlcnRGb250Om1fcGxhdGZvcm1EYXRh
LmZvbnQoKSB0b1NpemU6c2l6ZV0sIHNpemUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAv
LyBBcHBLaXQgcmVzZXRzIHRoZSB0eXBlIGluZm9ybWF0aW9uIChzY3JlZW4vcHJpbnRlcikgd2hl
biB5b3UgY29udmVydCBhIGZvbnQgdG8gYSBkaWZmZXJlbnQgc2l6ZS4KLSAgICAgICAgICAgIC8v
IFdlIGhhdmUgdG8gZml4IHVwIHRoZSBmb250IHRoYXQgd2UncmUgaGFuZGVkIGJhY2suCi0gICAg
ICAgICAgICBzbWFsbENhcHNGb250LnNldEZvbnQoZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJG
b250KCkgPyBbc21hbGxDYXBzRm9udC5mb250KCkgcHJpbnRlckZvbnRdIDogW3NtYWxsQ2Fwc0Zv
bnQuZm9udCgpIHNjcmVlbkZvbnRdKTsKLQotICAgICAgICAgICAgaWYgKHNtYWxsQ2Fwc0ZvbnQu
Zm9udCgpKSB7Ci0gICAgICAgICAgICAgICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBb
TlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07Ci0gICAgICAgICAgICAgICAgTlNGb250
VHJhaXRNYXNrIGZvbnRUcmFpdHMgPSBbZm9udE1hbmFnZXIgdHJhaXRzT2ZGb250Om1fcGxhdGZv
cm1EYXRhLmZvbnQoKV07Ci0KLSAgICAgICAgICAgICAgICBpZiAobV9wbGF0Zm9ybURhdGEubV9z
eW50aGV0aWNCb2xkKQotICAgICAgICAgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5TQm9sZEZv
bnRNYXNrOwotICAgICAgICAgICAgICAgIGlmIChtX3BsYXRmb3JtRGF0YS5tX3N5bnRoZXRpY09i
bGlxdWUpCi0gICAgICAgICAgICAgICAgICAgIGZvbnRUcmFpdHMgfD0gTlNJdGFsaWNGb250TWFz
azsKLQotICAgICAgICAgICAgICAgIE5TRm9udFRyYWl0TWFzayBzbWFsbENhcHNGb250VHJhaXRz
ID0gW2ZvbnRNYW5hZ2VyIHRyYWl0c09mRm9udDpzbWFsbENhcHNGb250LmZvbnQoKV07Ci0gICAg
ICAgICAgICAgICAgc21hbGxDYXBzRm9udC5tX3N5bnRoZXRpY0JvbGQgPSAoZm9udFRyYWl0cyAm
IE5TQm9sZEZvbnRNYXNrKSAmJiAhKHNtYWxsQ2Fwc0ZvbnRUcmFpdHMgJiBOU0JvbGRGb250TWFz
ayk7Ci0gICAgICAgICAgICAgICAgc21hbGxDYXBzRm9udC5tX3N5bnRoZXRpY09ibGlxdWUgPSAo
Zm9udFRyYWl0cyAmIE5TSXRhbGljRm9udE1hc2spICYmICEoc21hbGxDYXBzRm9udFRyYWl0cyAm
IE5TSXRhbGljRm9udE1hc2spOwotCi0gICAgICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0
YSA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250RGF0YSgmc21hbGxDYXBzRm9udCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgICAg
ICB9CisgICAgaWYgKGlzQ3VzdG9tRm9udCgpKSB7CisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGEg
c2NhbGVkRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOworICAgICAgICBzY2FsZWRGb250RGF0YS5t
X3NpemUgPSBzY2FsZWRGb250RGF0YS5tX3NpemUgKiBzY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0
dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2FsZWRGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOworICAg
IH0KKworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBmbG9hdCBzaXplID0g
bV9wbGF0Zm9ybURhdGEuc2l6ZSgpICogc2NhbGVGYWN0b3I7CisgICAgRm9udFBsYXRmb3JtRGF0
YSBzY2FsZWRGb250RGF0YShbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIGNvbnZl
cnRGb250Om1fcGxhdGZvcm1EYXRhLmZvbnQoKSB0b1NpemU6c2l6ZV0sIHNpemUpOworCisgICAg
Ly8gQXBwS2l0IHJlc2V0cyB0aGUgdHlwZSBpbmZvcm1hdGlvbiAoc2NyZWVuL3ByaW50ZXIpIHdo
ZW4geW91IGNvbnZlcnQgYSBmb250IHRvIGEgZGlmZmVyZW50IHNpemUuCisgICAgLy8gV2UgaGF2
ZSB0byBmaXggdXAgdGhlIGZvbnQgdGhhdCB3ZSdyZSBoYW5kZWQgYmFjay4KKyAgICBzY2FsZWRG
b250RGF0YS5zZXRGb250KGZvbnREZXNjcmlwdGlvbi51c2VQcmludGVyRm9udCgpID8gW3NjYWxl
ZEZvbnREYXRhLmZvbnQoKSBwcmludGVyRm9udF0gOiBbc2NhbGVkRm9udERhdGEuZm9udCgpIHNj
cmVlbkZvbnRdKTsKKworICAgIGlmIChzY2FsZWRGb250RGF0YS5mb250KCkpIHsKKyAgICAgICAg
TlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFu
YWdlcl07CisgICAgICAgIE5TRm9udFRyYWl0TWFzayBmb250VHJhaXRzID0gW2ZvbnRNYW5hZ2Vy
IHRyYWl0c09mRm9udDptX3BsYXRmb3JtRGF0YS5mb250KCldOworCisgICAgICAgIGlmIChtX3Bs
YXRmb3JtRGF0YS5tX3N5bnRoZXRpY0JvbGQpCisgICAgICAgICAgICBmb250VHJhaXRzIHw9IE5T
Qm9sZEZvbnRNYXNrOworICAgICAgICBpZiAobV9wbGF0Zm9ybURhdGEubV9zeW50aGV0aWNPYmxp
cXVlKQorICAgICAgICAgICAgZm9udFRyYWl0cyB8PSBOU0l0YWxpY0ZvbnRNYXNrOworCisgICAg
ICAgIE5TRm9udFRyYWl0TWFzayBzY2FsZWRGb250VHJhaXRzID0gW2ZvbnRNYW5hZ2VyIHRyYWl0
c09mRm9udDpzY2FsZWRGb250RGF0YS5mb250KCldOworICAgICAgICBzY2FsZWRGb250RGF0YS5t
X3N5bnRoZXRpY0JvbGQgPSAoZm9udFRyYWl0cyAmIE5TQm9sZEZvbnRNYXNrKSAmJiAhKHNjYWxl
ZEZvbnRUcmFpdHMgJiBOU0JvbGRGb250TWFzayk7CisgICAgICAgIHNjYWxlZEZvbnREYXRhLm1f
c3ludGhldGljT2JsaXF1ZSA9IChmb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzaykgJiYgIShz
Y2FsZWRGb250VHJhaXRzICYgTlNJdGFsaWNGb250TWFzayk7CisKKyAgICAgICAgcmV0dXJuIGZv
bnRDYWNoZSgpLT5nZXRDYWNoZWRGb250RGF0YSgmc2NhbGVkRm9udERhdGEpOwogICAgIH0KLSAg
ICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworCisgICAgcmV0dXJuIDA7Cit9CisKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKKyAgICAgICAgbV9kZXJp
dmVkRm9udERhdGEgPSBuZXcgRGVyaXZlZEZvbnREYXRhKGlzQ3VzdG9tRm9udCgpKTsKKyAgICBp
ZiAoIW1fZGVyaXZlZEZvbnREYXRhLT5zbWFsbENhcHMpCisgICAgICAgIG1fZGVyaXZlZEZvbnRE
YXRhLT5zbWFsbENhcHMgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIHNtYWxsQ2Fw
c0ZvbnRTaXplTXVsdGlwbGllcik7CisKKyAgICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPnNt
YWxsQ2Fwcy5nZXQoKTsKK30KKworU2ltcGxlRm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjplbXBo
YXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhKQorICAgICAgICBtX2Rlcml2ZWRG
b250RGF0YSA9IG5ldyBEZXJpdmVkRm9udERhdGEoaXNDdXN0b21Gb250KCkpOworICAgIGlmICgh
bV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyaykKKyAgICAgICAgbV9kZXJpdmVkRm9udERh
dGEtPmVtcGhhc2lzTWFyayA9IHNjYWxlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjUpOwor
CisgICAgcmV0dXJuIG1fZGVyaXZlZEZvbnREYXRhLT5lbXBoYXNpc01hcmsuZ2V0KCk7CiB9CiAK
IGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcGFuZ28vU2ltcGxlRm9udERhdGFQYW5nby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9wYW5nby9TaW1wbGVGb250RGF0YVBhbmdvLmNwcAkocmV2aXNpb24g
NzQxNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3BhbmdvL1NpbXBsZUZvbnREYXRh
UGFuZ28uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxOSArNzYsMzQgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbgogCiB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybURlc3Ryb3koKQogewotICAgIGRlbGV0ZSBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwotICAgIG1f
c21hbGxDYXBzRm9udERhdGEgPSAwOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERh
dGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9
IEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOworICAgIGRlc2Muc2V0U3BlY2lmaWVk
U2l6ZShzY2FsZUZhY3RvciAqIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7CisgICAg
Rm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGEoZGVzYywgZGVzYy5mYW1pbHkoKS5mYW1pbHko
KSk7CisgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9ybURhdGEpOwogfQogCiBT
aW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFs
bENhcHNGb250RGF0YSkgewotICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzYyA9IEZvbnREZXNj
cmlwdGlvbihmb250RGVzY3JpcHRpb24pOwotICAgICAgICBkZXNjLnNldFNwZWNpZmllZFNpemUo
MC43MGYgKiBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwotICAgICAgICBGb250UGxh
dGZvcm1EYXRhIHBsYXRmb3JtRGF0YShkZXNjLCBkZXNjLmZhbWlseSgpLmZhbWlseSgpKTsKLSAg
ICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShwbGF0Zm9ybURh
dGEpOwotICAgIH0KLSAgICByZXR1cm4gbV9zbWFsbENhcHNGb250RGF0YTsKKyAgICBpZiAoIW1f
ZGVyaXZlZEZvbnREYXRhKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0YSA9IG5ldyBEZXJpdmVk
Rm9udERhdGEoaXNDdXN0b21Gb250KCkpOworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEtPnNt
YWxsQ2FwcykKKyAgICAgICAgbV9kZXJpdmVkRm9udERhdGEtPnNtYWxsQ2FwcyA9IHNjYWxlZEZv
bnREYXRhKGZvbnREZXNjcmlwdGlvbiwgLjcpOworCisgICAgcmV0dXJuIG1fZGVyaXZlZEZvbnRE
YXRhLT5zbWFsbENhcHMuZ2V0KCk7Cit9CisKK1NpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6ZW1waGFzaXNNYXJrRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKKyAgICAgICAgbV9k
ZXJpdmVkRm9udERhdGEgPSBuZXcgRGVyaXZlZEZvbnREYXRhKGlzQ3VzdG9tRm9udCgpKTsKKyAg
ICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhLT5lbXBoYXNpc01hcmspCisgICAgICAgIG1fZGVyaXZl
ZEZvbnREYXRhLT5lbXBoYXNpc01hcmsgPSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24s
IC41KTsKKworICAgIHJldHVybiBtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrLmdldCgp
OwogfQogCiBib29sIFNpbXBsZUZvbnREYXRhOjpjb250YWluc0NoYXJhY3RlcnMoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJQYXR0ZXJuLmgiCiAKICNpbmNsdWRlIDxRQnJ1c2g+CkBAIC0yNjAsNiArMjYxLDM0
IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKICAgICBkcmF3VGV4
dENvbW1vbihjdHgsIHJ1biwgcG9pbnQsIGZyb20sIHRvLCBmb250KCksIC8qIGlzQ29tcGxleFRl
eHQgPSAqL3RydWUpOwogfQogCitpbnQgRm9udDo6ZW1waGFzaXNNYXJrQXNjZW50KGNvbnN0IEF0
b21pY1N0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworaW50IEZvbnQ6OmVtcGhhc2lzTWFya0Rlc2NlbnQoY29uc3QgQXRvbWljU3RyaW5n
JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitp
bnQgRm9udDo6ZW1waGFzaXNNYXJrSGVpZ2h0KGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBGb250Ojpk
cmF3RW1waGFzaXNNYXJrc0ZvclNpbXBsZVRleHQoR3JhcGhpY3NDb250ZXh0KiAvKiBjb250ZXh0
ICovLCBjb25zdCBUZXh0UnVuJiAvKiBydW4gKi8sIGNvbnN0IEF0b21pY1N0cmluZyYgLyogbWFy
ayAqLywgY29uc3QgRmxvYXRQb2ludCYgLyogcG9pbnQgKi8sIGludCAvKiBmcm9tICovLCBpbnQg
LyogdG8gKi8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGb250
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29u
dGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8q
IG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywg
aW50IC8qIHRvICovKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0
IEZvbnQ6OmZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgR2x5cGhC
dWZmZXIqIGdseXBoQnVmZmVyLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIGZhbGxi
YWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgaWYg
KCFwcmltYXJ5Rm9udCgpLT5wbGF0Zm9ybURhdGEoKS5zaXplKCkpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAkocmV2aXNpb24gNzQxNjEpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlVuaXNjcmliZUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtNjIsMzMgKzYzLDU3IEBAIEZs
b2F0UmVjdCBGb250OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFQKICAgICByZXR1cm4gRmxvYXRS
ZWN0KHBvaW50LngoKSArIGZsb29yZihiZWZvcmVXaWR0aCksIHBvaW50LnkoKSwgcm91bmRmKGFm
dGVyV2lkdGgpIC0gZmxvb3JmKGJlZm9yZVdpZHRoKSwgaCk7CiB9CiAKLXZvaWQgRm9udDo6ZHJh
d0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVu
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBmcm9tLCBpbnQgdG8pIGNvbnN0CitmbG9hdCBGb250OjpnZXRHbHlwaHNBbmRBZHZhbmNlc0Zv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGZyb20sIGludCB0bywgR2x5cGhC
dWZmZXImIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFzaXNPck5vdCBmb3JUZXh0RW1waGFzaXMp
IGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFk
dmFuY2VzICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgotICAgIEdseXBoQnVmZmVyIGdseXBo
QnVmZmVyOworICAgIGlmIChmb3JUZXh0RW1waGFzaXMpIHsKKyAgICAgICAgLy8gRklYTUU6IEFk
ZCBmb3JUZXh0RW1waGFzaXMgcGFyZW1ldGVyIHRvIFVuaXNjcmliZUNvbnRyb2xsZXIgYW5kIHVz
ZSBpdC4KKyAgICAgICAgTE9HX0VSUk9SKCJOb3QgaW1wbGVtZW50ZWQgZm9yIHRleHQgZW1waGFz
aXMuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAotICAgIGZsb2F0IHN0YXJ0WCA9IHBv
aW50LngoKTsKICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuKTsK
ICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lkdGggPSBj
b250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UodG8sICZn
bHlwaEJ1ZmZlcik7Ci0gICAgCi0gICAgLy8gV2UgY291bGRuJ3QgZ2VuZXJhdGUgYW55IGdseXBo
cyBmb3IgdGhlIHJ1bi4gIEdpdmUgdXAuCisKICAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgICAgIHJldHVybiAwOworCiAgICAgZmxvYXQg
YWZ0ZXJXaWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogCiAgICAgaWYgKHJ1bi5y
dGwoKSkgewogICAgICAgICBjb250cm9sbGVyLmFkdmFuY2UocnVuLmxlbmd0aCgpKTsKLSAgICAg
ICAgc3RhcnRYICs9IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpIC0gYWZ0ZXJXaWR0aDsKLSAg
ICB9IGVsc2UKLSAgICAgICAgc3RhcnRYICs9IGJlZm9yZVdpZHRoOworICAgICAgICByZXR1cm4g
Y29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCkgLSBhZnRlcldpZHRoOworICAgIH0KKyAgICByZXR1
cm4gYmVmb3JlV2lkdGg7Cit9CisKK3ZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmcm9tLCBpbnQgdG8pIGNvbnN0
Cit7CisgICAgLy8gVGhpcyBnbHlwaCBidWZmZXIgaG9sZHMgb3VyIGdseXBocyArIGFkdmFuY2Vz
ICsgZm9udCBkYXRhIGZvciBlYWNoIGdseXBoLgorICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVy
OworCisgICAgZmxvYXQgc3RhcnRYID0gcG9pbnQueCgpICsgZ2V0R2x5cGhzQW5kQWR2YW5jZXNG
b3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlcik7CisKKyAgICAvLyBXZSBj
b3VsZG4ndCBnZW5lcmF0ZSBhbnkgZ2x5cGhzIGZvciB0aGUgcnVuLiAgR2l2ZSB1cC4KKyAgICBp
ZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICAvLyBEcmF3
IHRoZSBnbHlwaCBidWZmZXIgbm93IGF0IHRoZSBzdGFydGluZyBwb2ludCByZXR1cm5lZCBpbiBz
dGFydFguCiAgICAgRmxvYXRQb2ludCBzdGFydFBvaW50KHN0YXJ0WCwgcG9pbnQueSgpKTsKLSAg
ICBkcmF3R2x5cGhCdWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHJ1biwgc3RhcnRQb2ludCk7
CisgICAgZHJhd0dseXBoQnVmZmVyKGNvbnRleHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50KTsK
K30KKwordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcm
IG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAor
eworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNl
ID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBw
b2ludC55KCkpKTsKIH0KIAogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAko
cmV2aXNpb24gNzQxNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVG
b250RGF0YVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMCwyNCArMTEwLDQwIEBAIHZvaWQg
U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiAgICAgZGVsZXRlIG1fc2NyaXB0Rm9u
dFByb3BlcnRpZXM7CiB9CiAKLVNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxD
YXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0
CitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QK
IHsKLSAgICBpZiAoIW1fc21hbGxDYXBzRm9udERhdGEpIHsKLSAgICAgICAgZmxvYXQgc21hbGxD
YXBzSGVpZ2h0ID0gY1NtYWxsQ2Fwc0ZvbnRTaXplTXVsdGlwbGllciAqIG1fcGxhdGZvcm1EYXRh
LnNpemUoKTsKKyAgICAgICAgZmxvYXQgc2NhbGVkU2l6ZSA9IHNjYWxlRmFjdG9yICogbV9wbGF0
Zm9ybURhdGEuc2l6ZSgpOwogICAgICAgICBpZiAoaXNDdXN0b21Gb250KCkpIHsKLSAgICAgICAg
ICAgIEZvbnRQbGF0Zm9ybURhdGEgc21hbGxDYXBzRm9udERhdGEobV9wbGF0Zm9ybURhdGEpOwot
ICAgICAgICAgICAgc21hbGxDYXBzRm9udERhdGEuc2V0U2l6ZShzbWFsbENhcHNIZWlnaHQpOwot
ICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5ldyBTaW1wbGVGb250RGF0YShzbWFs
bENhcHNGb250RGF0YSwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgTE9HRk9OVCB3aW5mb250OwotICAgICAgICAgICAgR2V0T2JqZWN0KG1fcGxhdGZvcm1EYXRh
Lmhmb250KCksIHNpemVvZihMT0dGT05UKSwgJndpbmZvbnQpOwotICAgICAgICAgICAgd2luZm9u
dC5sZkhlaWdodCA9IC1scm91bmRmKHNtYWxsQ2Fwc0hlaWdodCAqIChtX3BsYXRmb3JtRGF0YS51
c2VHREkoKSA/IDEgOiAzMikpOwotICAgICAgICAgICAgSEZPTlQgaGZvbnQgPSBDcmVhdGVGb250
SW5kaXJlY3QoJndpbmZvbnQpOwotICAgICAgICAgICAgbV9zbWFsbENhcHNGb250RGF0YSA9IG5l
dyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKGhmb250LCBzbWFsbENhcHNIZWlnaHQs
IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSwgbV9wbGF0Zm9ybURhdGEuc3ludGhldGlj
T2JsaXF1ZSgpLCBtX3BsYXRmb3JtRGF0YS51c2VHREkoKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VzdG9tRm9udCgpLCBmYWxzZSk7
CisgICAgICAgICAgICBGb250UGxhdGZvcm1EYXRhIHNjYWxlZEZvbnQobV9wbGF0Zm9ybURhdGEp
OworICAgICAgICAgICAgc2NhbGVkRm9udC5zZXRTaXplKHNjYWxlZFNpemUpOworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShzY2FsZWRGb250LCB0cnVlLCBmYWxzZSk7CiAg
ICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7CisKKyAgICAg
ICAgTE9HRk9OVCB3aW5mb250OworICAgICAgICBHZXRPYmplY3QobV9wbGF0Zm9ybURhdGEuaGZv
bnQoKSwgc2l6ZW9mKExPR0ZPTlQpLCAmd2luZm9udCk7CisgICAgICAgIHdpbmZvbnQubGZIZWln
aHQgPSAtbHJvdW5kZihzY2FsZWRTaXplICogKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpID8gMSA6
IDMyKSk7CisgICAgICAgIEhGT05UIGhmb250ID0gQ3JlYXRlRm9udEluZGlyZWN0KCZ3aW5mb250
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVGb250RGF0YShGb250UGxhdGZvcm1EYXRhKGhm
b250LCBzY2FsZWRTaXplLCBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCksIG1fcGxhdGZv
cm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSwgbV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpLCBpc0N1
c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6
OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KSBjb25zdAoreworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZl
ZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZvbnQoKSk7CisgICAgaWYg
KCFtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxDYXBzKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0
YS0+c21hbGxDYXBzID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBjU21hbGxDYXBz
Rm9udFNpemVNdWx0aXBsaWVyKTsKKworICAgIHJldHVybiBtX2Rlcml2ZWRGb250RGF0YS0+c21h
bGxDYXBzLmdldCgpOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxlRm9udERhdGE6OmVtcGhh
c2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBj
b25zdAoreworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZlZEZv
bnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZvbnQoKSk7CisgICAgaWYgKCFt
X2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0
YS0+ZW1waGFzaXNNYXJrID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNSk7CisK
KyAgICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyay5nZXQoKTsKIH0KIAog
Ym9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDc0MTYx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFVuaXNjcmliZUNvbnRy
b2xsZXI6OmFkdmFuY2UodW5zaWduCiAgICAgICAgIFVDaGFyIGMgPSAqY3VycjsKIAogICAgICAg
ICBib29sIGZvcmNlU21hbGxDYXBzID0gaXNTbWFsbENhcHMgJiYgKFVfR0VUX0dDX01BU0soYykg
JiBVX0dDX01fTUFTSyk7Ci0gICAgICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFG
b3JDaGFyYWN0ZXIoKmN1cnIsIGZhbHNlLCBmb3JjZVNtYWxsQ2FwcykuZm9udERhdGE7CisgICAg
ICAgIG5leHRGb250RGF0YSA9IG1fZm9udC5nbHlwaERhdGFGb3JDaGFyYWN0ZXIoKmN1cnIsIGZh
bHNlLCBmb3JjZVNtYWxsQ2FwcyA/IFNtYWxsQ2Fwc1ZhcmlhbnQgOiBBdXRvVmFyaWFudCkuZm9u
dERhdGE7CiAgICAgICAgIGlmIChtX2ZvbnQuaXNTbWFsbENhcHMoKSkgewogICAgICAgICAgICAg
bmV4dElzU21hbGxDYXBzID0gZm9yY2VTbWFsbENhcHMgfHwgKG5ld0MgPSB1X3RvdXBwZXIoYykp
ICE9IGM7CiAgICAgICAgICAgICBpZiAobmV4dElzU21hbGxDYXBzKQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9Gb250V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFdpbkNFLmNwcAkocmV2aXNpb24gNzQxNjEp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRXaW5DRS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIzNSw2ICsyMzUsMTEgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQo
R3JhcGhpY3NDb250ZQogICAgIH0KIH0KIAordm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrc0Zv
ckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1
biYgLyogcnVuICovLCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0
UG9pbnQmIC8qIHBvaW50ICovLCBpbnQgLyogZnJvbSAqLywgaW50IC8qIHRvICovKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERh
dGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QK
IHsKICAgICBUZXh0UnVuQ29tcG9uZW50cyBjb21wb25lbnRzOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9TaW1wbGVGb250RGF0YVdpbkNFLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NpbXBsZUZvbnREYXRhV2luQ0UuY3Bw
CShyZXZpc2lvbiA3NDE2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvU2lt
cGxlRm9udERhdGFXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDIyICs2MCwzNiBAQCB2
b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogCiB2b2lkIFNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybURlc3Ryb3koKQogewotICAgIGRlbGV0ZSBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwot
ICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSAwOworfQorCitTaW1wbGVGb250RGF0YSogU2ltcGxl
Rm9udERhdGE6OnNjYWxlZEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBmbG9hdCBzY2FsZUZhY3RvcikgY29uc3QKK3sKKyAgICBGb250RGVzY3JpcHRpb24g
Zm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKKyAgICBmb250RGVzYy5zZXRDb21wdXRlZFNpemUo
bHJvdW5kZihzY2FsZUZhY3RvciAqIGZvbnREZXNjLmNvbXB1dGVkU2l6ZSgpKSk7CisgICAgZm9u
dERlc2Muc2V0U3BlY2lmaWVkU2l6ZShscm91bmRmKHNjYWxlRmFjdG9yICogZm9udERlc2Muc3Bl
Y2lmaWVkU2l6ZSgpKSk7CisgICAgZm9udERlc2Muc2V0S2V5d29yZFNpemUobHJvdW5kZihzY2Fs
ZUZhY3RvciAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
KiByZXN1bHQgPSBmb250Q2FjaGUoKS0+Z2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVz
YywgbV9wbGF0Zm9ybURhdGEuZmFtaWx5KCkpOworICAgIHJldHVybiByZXN1bHQgPyBuZXcgU2lt
cGxlRm9udERhdGEoKnJlc3VsdCkgOiAwOwogfQogCiBTaW1wbGVGb250RGF0YSogU2ltcGxlRm9u
dERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0YSkgewotICAgICAg
ICBGb250RGVzY3JpcHRpb24gZm9udERlc2MoZm9udERlc2NyaXB0aW9uKTsKLSAgICAgICAgZm9u
dERlc2Muc2V0Q29tcHV0ZWRTaXplKGxyb3VuZGYoMC43MGYgKiBmb250RGVzYy5jb21wdXRlZFNp
emUoKSkpOwotICAgICAgICBmb250RGVzYy5zZXRTcGVjaWZpZWRTaXplKGxyb3VuZGYoMC43MGYg
KiBmb250RGVzYy5zcGVjaWZpZWRTaXplKCkpKTsKLSAgICAgICAgZm9udERlc2Muc2V0S2V5d29y
ZFNpemUobHJvdW5kZigwLjcwZiAqIGZvbnREZXNjLmtleXdvcmRTaXplKCkpKTsKLSAgICAgICAg
Rm9udFBsYXRmb3JtRGF0YSogcmVzdWx0ID0gZm9udENhY2hlKCktPmdldENhY2hlZEZvbnRQbGF0
Zm9ybURhdGEoZm9udERlc2MsIG1fcGxhdGZvcm1EYXRhLmZhbWlseSgpKTsKLSAgICAgICAgaWYg
KHJlc3VsdCkKLSAgICAgICAgICAgIG1fc21hbGxDYXBzRm9udERhdGEgPSBuZXcgU2ltcGxlRm9u
dERhdGEoKnJlc3VsdCk7Ci0gICAgfQotICAgIHJldHVybiBtX3NtYWxsQ2Fwc0ZvbnREYXRhOwor
ICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0g
bmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZvbnQoKSk7CisgICAgaWYgKCFtX2Rlcml2ZWRG
b250RGF0YS0+c21hbGxDYXBzKQorICAgICAgICBtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxDYXBz
ID0gc2NhbGVkRm9udERhdGEoZm9udERlc2NyaXB0aW9uLCAuNyk7CisKKyAgICByZXR1cm4gbV9k
ZXJpdmVkRm9udERhdGEtPnNtYWxsQ2Fwcy5nZXQoKTsKK30KKworU2ltcGxlRm9udERhdGEqIFNp
bXBsZUZvbnREYXRhOjplbXBoYXNpc01hcmtGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhKQor
ICAgICAgICBtX2Rlcml2ZWRGb250RGF0YSA9IG5ldyBEZXJpdmVkRm9udERhdGEoaXNDdXN0b21G
b250KCkpOworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyaykKKyAgICAg
ICAgbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lzTWFyayA9IHNjYWxlZEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbiwgLjUpOworCisgICAgcmV0dXJuIG1fZGVyaXZlZEZvbnREYXRhLT5lbXBoYXNp
c01hcmsuZ2V0KCk7CiB9CiAKIERXT1JEIGdldEtub3duRm9udENvZGVQYWdlcyhjb25zdCB3Y2hh
cl90KiBmYW1pbHkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udFd4LmNw
cAkocmV2aXNpb24gNzQxNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRX
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDE0IEBAIEZsb2F0UmVjdCBGb250Ojpz
ZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFQKICNlbmRpZgogfQogCitmbG9hdCBGb250OjpnZXRHbHlw
aHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIC8qIHJ1biAqLywgaW50
IC8qIGZyb20gKi8sIGludCAvKiB0byAqLywgR2x5cGhCdWZmZXImIC8qIGdseXBoQnVmZmVyICov
LCBGb3JUZXh0RW1waGFzaXNPck5vdCAvKiBmb3JUZXh0RW1waGFzaXMgKi8pIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGJ5IG1vdmluZyBtb3N0IG9mIHRoZSBkcmF3Q29t
cGxleFRleHQoKSBpbXBsZW1lbnRhdGlvbiBpbiBoZXJlLiBTZXQgdXAgdGhlCisgICAgLy8gQ29t
cGxleFRleHRDb250cm9sbGVyIGFjY29yZGluZyB0byBmb3JUZXh0RW1waGFzaXMuCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBGb250OjpkcmF3Q29tcGxl
eFRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0
IEZsb2F0UG9pbnQmIHBvaW50LCBpbnQgZnJvbSwgaW50IHRvKSBjb25zdAogewogI2lmIE9TKFdJ
TkRPV1MpIHx8IE9TKERBUldJTikKQEAgLTEzMCwxMiArMTM4LDIyIEBAIHZvaWQgRm9udDo6ZHJh
d0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKIAogICAgIC8vIERyYXcgdGhlIGdseXBoIGJ1ZmZl
ciBub3cgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IHJldHVybmVkIGluIHN0YXJ0WC4KICAgICBGbG9h
dFBvaW50IHN0YXJ0UG9pbnQoc3RhcnRYLCBwb2ludC55KCkpOwotICAgIGRyYXdHbHlwaEJ1ZmZl
cihjb250ZXh0LCBnbHlwaEJ1ZmZlciwgcnVuLCBzdGFydFBvaW50KTsKKyAgICBkcmF3R2x5cGhC
dWZmZXIoY29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0UG9pbnQpOwogI2Vsc2UKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCiB9CiAKK3ZvaWQgRm9udDo6ZHJhd0VtcGhhc2lzTWFya3NG
b3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFRleHRSdW4mIHJ1
biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgaW50
IGZyb20sIGludCB0bykgY29uc3QKK3sKKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAg
ICBmbG9hdCBpbml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRl
eHQocnVuLCBmcm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisKKyAgICBp
ZiAoZ2x5cGhCdWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkcmF3RW1w
aGFzaXNNYXJrcyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQb2ludChwb2ludC54
KCkgKyBpbml0aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7Cit9CiAKIGZsb2F0IEZvbnQ6OmZsb2F0
V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgU2lt
cGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyopIGNvbnN0CiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L1NpbXBsZUZvbnREYXRhV3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvU2ltcGxlRm9udERhdGFX
eC5jcHAJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9T
aW1wbGVGb250RGF0YVd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsMTUgKzkwLDMyIEBAIHZv
aWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtRGVzdHJveSgpCiAjZW5kaWYKIH0KIAorU2ltcGxl
Rm9udERhdGEqIFNpbXBsZUZvbnREYXRhOjpzY2FsZWRGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgZmxvYXQgc2NhbGVGYWN0b3IpIGNvbnN0Cit7CisgICAg
Rm9udERlc2NyaXB0aW9uIGRlc2MgPSBGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsK
KyAgICBkZXNjLnNldFNwZWNpZmllZFNpemUoc2NhbGVGYWN0b3IgKiBmb250RGVzY3JpcHRpb24u
Y29tcHV0ZWRTaXplKCkpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhKGRlc2Ms
IGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOworICAgIHJldHVybiBuZXcgU2ltcGxlRm9udERhdGEo
cGxhdGZvcm1EYXRhLCBpc0N1c3RvbUZvbnQoKSwgZmFsc2UpOworfQorCiBTaW1wbGVGb250RGF0
YSogU2ltcGxlRm9udERhdGE6OnNtYWxsQ2Fwc0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewotICAgIGlmICghbV9zbWFsbENhcHNGb250RGF0
YSl7Ci0gICAgICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjID0gRm9udERlc2NyaXB0aW9uKGZvbnRE
ZXNjcmlwdGlvbik7Ci0gICAgICAgIGRlc2Muc2V0U3BlY2lmaWVkU2l6ZSgwLjcwZiAqIGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7Ci0gICAgICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxh
dGZvcm1EYXRhKGRlc2MsIGRlc2MuZmFtaWx5KCkuZmFtaWx5KCkpOwotICAgICAgICBtX3NtYWxs
Q2Fwc0ZvbnREYXRhID0gbmV3IFNpbXBsZUZvbnREYXRhKHBsYXRmb3JtRGF0YSwgaXNDdXN0b21G
b250KCksIGZhbHNlKTsKLSAgICB9Ci0gICAgcmV0dXJuIG1fc21hbGxDYXBzRm9udERhdGE7Cisg
ICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKKyAgICAgICAgbV9kZXJpdmVkRm9udERhdGEgPSBu
ZXcgRGVyaXZlZEZvbnREYXRhKGlzQ3VzdG9tRm9udCgpKTsKKyAgICBpZiAoIW1fZGVyaXZlZEZv
bnREYXRhLT5zbWFsbENhcHMpCisgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhLT5zbWFsbENhcHMg
PSBzY2FsZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIC43KTsKKworICAgIHJldHVybiBtX2Rl
cml2ZWRGb250RGF0YS0+c21hbGxDYXBzLmdldCgpOworfQorCitTaW1wbGVGb250RGF0YSogU2lt
cGxlRm9udERhdGE6OmVtcGhhc2lzTWFya0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAoreworICAgIGlmICghbV9kZXJpdmVkRm9udERhdGEpCisg
ICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0gbmV3IERlcml2ZWRGb250RGF0YShpc0N1c3RvbUZv
bnQoKSk7CisgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrKQorICAgICAg
ICBtX2Rlcml2ZWRGb250RGF0YS0+ZW1waGFzaXNNYXJrID0gc2NhbGVkRm9udERhdGEoZm9udERl
c2NyaXB0aW9uLCAuNSk7CisKKyAgICByZXR1cm4gbV9kZXJpdmVkRm9udERhdGEtPmVtcGhhc2lz
TWFyay5nZXQoKTsKIH0KIAogYm9vbCBTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJz
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKSBjb25zdApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHJldmlzaW9uIDc0MTYxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0NoYXJhY3Rlck5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkg
KzMyLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTmFtZXMgaGVyZSBhcmUgdGFrZW4g
ZnJvbSB0aGUgVW5pY29kZSBzdGFuZGFyZC4KIAotLy8gTm90ZSwgdGhlc2UgYXJlIFVDaGFyIGNv
bnN0YW50cywgbm90IFVDaGFyMzIsIHdoaWNoIG1ha2VzIHRoZW0KKy8vIE1vc3Qgb2YgdGhlc2Ug
YXJlIFVDaGFyIGNvbnN0YW50cywgbm90IFVDaGFyMzIsIHdoaWNoIG1ha2VzIHRoZW0KIC8vIG1v
cmUgY29udmVuaWVudCBmb3IgV2ViQ29yZSBjb2RlIHRoYXQgbW9zdGx5IHVzZXMgVVRGLTE2Lgog
Citjb25zdCBVQ2hhcjMyIGFlZ2VhbldvcmRTZXBhcmF0b3JMaW5lID0gMHgxMDEwMDsKK2NvbnN0
IFVDaGFyMzIgYWVnZWFuV29yZFNlcGFyYXRvckRvdCA9IDB4MTAxMDE7CiBjb25zdCBVQ2hhciBi
bGFja0NpcmNsZSA9IDB4MjVDRjsKIGNvbnN0IFVDaGFyIGJsYWNrU3F1YXJlID0gMHgyNUEwOwog
Y29uc3QgVUNoYXIgYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUgPSAweDI1QjI7CkBAIC00Miw2ICs0
NCw3IEBAIGNvbnN0IFVDaGFyIGJ1bGxldCA9IDB4MjAyMjsKIGNvbnN0IFVDaGFyIGJ1bGxzZXll
ID0gMHgyNUNFOwogY29uc3QgVUNoYXIgY2FycmlhZ2VSZXR1cm4gPSAweDAwMEQ7CiBjb25zdCBV
Q2hhciBldGhpb3BpY1ByZWZhY2VDb2xvbiA9IDB4MTM2NjsKK2NvbnN0IFVDaGFyIGV0aGlvcGlj
V29yZHNwYWNlID0gMHgxMzYxOwogY29uc3QgVUNoYXIgZmlzaGV5ZSA9IDB4MjVDOTsKIGNvbnN0
IFVDaGFyIGhlYnJld1B1bmN0dWF0aW9uR2VyZXNoID0gMHgwNUYzOwogY29uc3QgVUNoYXIgaGVi
cmV3UHVuY3R1YXRpb25HZXJzaGF5aW0gPSAweDA1RjQ7CkBAIC03MCw2ICs3Myw5IEBAIGNvbnN0
IFVDaGFyIHJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSAweDIwMkUKIGNvbnN0IFVDaGFyIHNlc2FtZURv
dCA9IDB4RkU0NTsKIGNvbnN0IFVDaGFyIHNvZnRIeXBoZW4gPSAweDAwQUQ7CiBjb25zdCBVQ2hh
ciBzcGFjZSA9IDB4MDAyMDsKK2NvbnN0IFVDaGFyIHRpYmV0YW5NYXJrSW50ZXJzeWxsYWJpY1Rz
aGVnID0gMHgwRjBCOworY29uc3QgVUNoYXIgdGliZXRhbk1hcmtEZWxpbWl0ZXJUc2hlZ0JzdGFy
ID0gMHgwRjBDOworY29uc3QgVUNoYXIzMiB1Z2FyaXRpY1dvcmREaXZpZGVyID0gMHgxMDM5RjsK
IGNvbnN0IFVDaGFyIHdoaXRlQnVsbGV0ID0gMHgyNUU2OwogY29uc3QgVUNoYXIgd2hpdGVDaXJj
bGUgPSAweDI1Q0I7CiBjb25zdCBVQ2hhciB3aGl0ZVNlc2FtZURvdCA9IDB4RkU0NjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76813</attachid>
            <date>2010-12-16 13:50:51 -0800</date>
            <delta_ts>2010-12-17 00:11:30 -0800</delta_ts>
            <desc>Part 4: Layout and rendering</desc>
            <filename>text-emphasis_r24.diff</filename>
            <type>text/plain</type>
            <size>301057</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDIxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTItMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXlv
dXQgYW5kIHJlbmRlcmluZyBvZiBDU1MgdGV4dC1lbXBoYXNpcworICAgICAgICBGaW5hbCBwYXJ0
IG9mIDxyZGFyOi8vcHJvYmxlbS83NzIwMzAwPiBTdXBwb3J0IHRoZSBDU1MzIHRleHQtZW1waGFz
aXMgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ4NTM5CisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvZW1waGFzaXMuaHRtbAorCisgICAgICAgIEVt
cGhhc2lzIG1hcmtzIGJlaGF2ZSBsaWtlIHRoZXkgYXJlIHN0dWNrIGp1c3QgYWJvdmUgdGhlIGFz
Y2VuZGVyIChvciBqdXN0IGJlbG93IHRoZQorICAgICAgICBkZXNjZW5kZXIpLCBpLmUuIHRoZXkg
b3ZlcmxhcCB3aXRoIGFueSBsZWFkaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3g6OmxvZ2ljYWxIZWlnaHQpOiBBZGQg
dGhlIHRleHQgZW1waGFzaXMgaGVpZ2h0LgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFRleHRFbXBoYXNpc01hcmtIZWlnaHRBbmRQ
b3NpdGlvbik6IEFkZGVkIHRoaXMgaGVscGVyLgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0Rm9y
RW1waGFzaXNNYXJrKTogQWRkZWQgdGhpcyBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMpOiBBY2NvdW50IGZvciBlbXBoYXNp
cyBtYXJrcy4KKyAgICAgICAgKFdlYkNvcmU6OmFzY2VudFdpdGhFbXBoYXNpc01hcmspOiBBZGRl
ZCB0aGlzIGhlbHBlci4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNlQm94
ZXNJbkJsb2NrRGlyZWN0aW9uKTogQWNjb3VudCBmb3IgZW1waGFzaXMgbWFya3MuCisgICAgICAg
ICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRU
ZXh0V2l0aFNoYWRvd3MpOiBQYWludCBlbXBoYXNpcyBtYXJrcy4KKyAgICAgICAgKFdlYkNvcmU6
OmFzY2VudFdpdGhFbXBoYXNpc01hcmspOiBBZGRlZCB0aGlzIGhlbHBlci4KKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50KTogUGFpbnQgZW1waGFzaXMgbWFya3MuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnNlbGVjdGlvbkNvbG9yKTogQWRkZWQgdGhpcyBoZWxwZXIgbWV0aG9kIHdoaWNo
IGdlbmVyYWxpemVzIHNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOiBNb3ZlZCBtb3N0IG9m
IHRoZSBjb2RlIHRvIHNlbGVjdGlvbkNvbG9yKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKTogQWRkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorCiAyMDEwLTEyLTE2ICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXhlZCBjaHJvbWl1bSBidWlsZCBi
cmVhayBjYXVzZWQgYnkgcjc0MjA3LgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guY3BwCShyZXZp
c2lvbiA3NDE5NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkyLDggKzkyLDEzIEBAIGludCBJbmxpbmVCb3g6OmxvZ2ljYWxIZWlnaHQoKSBj
b25zdAogICAgICAgICByZXR1cm4gdmlydHVhbExvZ2ljYWxIZWlnaHQoKTsKICNlbmRpZgogICAg
IAotICAgIGlmIChyZW5kZXJlcigpLT5pc1RleHQoKSkKLSAgICAgICAgcmV0dXJuIG1faXNUZXh0
ID8gcmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCkuaGVpZ2h0KCkgOiAwOwor
ICAgIGlmIChyZW5kZXJlcigpLT5pc1RleHQoKSkgeworICAgICAgICBpZiAoIW1faXNUZXh0KQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVu
ZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpOworICAgICAgICByZXR1cm4gc3R5bGUtPmZvbnQo
KS5oZWlnaHQoKSArIChzdHlsZS0+dGV4dEVtcGhhc2lzTWFyaygpID09IFRleHRFbXBoYXNpc01h
cmtOb25lID8gMCA6IHN0eWxlLT5mb250KCkuZW1waGFzaXNNYXJrSGVpZ2h0KHN0eWxlLT50ZXh0
RW1waGFzaXNNYXJrU3RyaW5nKCkpKTsKKyAgICB9CiAgICAgaWYgKHJlbmRlcmVyKCktPmlzQm94
KCkgJiYgcGFyZW50KCkpCiAgICAgICAgIHJldHVybiBpc0hvcml6b250YWwoKSA/IHRvUmVuZGVy
Qm94KG1fcmVuZGVyZXIpLT5oZWlnaHQoKSA6IHRvUmVuZGVyQm94KG1fcmVuZGVyZXIpLT53aWR0
aCgpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNzQx
OTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDM5LDYgKzQzOSwzMiBAQCBzdGF0aWMgaW50IHZlcnRpY2FsUG9zaXRpb25Gb3JCb3go
SW5saW5lCiAgICAgcmV0dXJuIHZlcnRpY2FsUG9zaXRpb247CiB9CiAKK2lubGluZSBzdGF0aWMg
dm9pZCBnZXRUZXh0RW1waGFzaXNNYXJrSGVpZ2h0QW5kUG9zaXRpb24oUmVuZGVyU3R5bGUqIHN0
eWxlLCBpbnQmIGVtcGhhc2lzTWFya0hlaWdodCwgVGV4dEVtcGhhc2lzUG9zaXRpb24mIGVtcGhh
c2lzTWFya1Bvc2l0aW9uKQoreworICAgIGlmIChzdHlsZS0+dGV4dEVtcGhhc2lzTWFyaygpID09
IFRleHRFbXBoYXNpc01hcmtOb25lKSB7CisgICAgICAgIGVtcGhhc2lzTWFya0hlaWdodCA9IDA7
CisgICAgICAgIGVtcGhhc2lzTWFya1Bvc2l0aW9uID0gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVy
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZW1waGFzaXNNYXJrSGVpZ2h0ID0gc3R5
bGUtPmZvbnQoKS5lbXBoYXNpc01hcmtIZWlnaHQoc3R5bGUtPnRleHRFbXBoYXNpc01hcmtTdHJp
bmcoKSk7CisgICAgZW1waGFzaXNNYXJrUG9zaXRpb24gPSBzdHlsZS0+dGV4dEVtcGhhc2lzUG9z
aXRpb24oKTsKK30KKworaW5saW5lIHN0YXRpYyB2b2lkIGFkanVzdEZvckVtcGhhc2lzTWFyayhp
bnQgZW1waGFzaXNNYXJrSGVpZ2h0LCBUZXh0RW1waGFzaXNQb3NpdGlvbiBlbXBoYXNpc01hcmtQ
b3NpdGlvbiwgaW50JiBhc2NlbnQsIGludCYgZGVzY2VudCwgaW50JiBiYXNlbGluZSwgaW50JiBi
YXNlbGluZVRvQm90dG9tKQoreworICAgIGlmICghZW1waGFzaXNNYXJrSGVpZ2h0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoZW1waGFzaXNNYXJrUG9zaXRpb24gPT0gVGV4dEVtcGhhc2lz
UG9zaXRpb25PdmVyKSB7CisgICAgICAgIGFzY2VudCArPSBlbXBoYXNpc01hcmtIZWlnaHQ7Cisg
ICAgICAgIGJhc2VsaW5lID0gbWF4KGJhc2VsaW5lLCBhc2NlbnQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGRlc2NlbnQgKz0gZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICBiYXNlbGluZVRv
Qm90dG9tID0gbWF4KGJhc2VsaW5lVG9Cb3R0b20sIGRlc2NlbnQpOworICAgIH0KK30KKwogdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMoaW50JiBtYXhQb3NpdGlv
blRvcCwgaW50JiBtYXhQb3NpdGlvbkJvdHRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wm
IHNldE1heEFzY2VudCwgYm9vbCYgc2V0TWF4RGVzY2VudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLApAQCAtNDk4LDE0ICs1MjQsMjYgQEAg
dm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaQogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHVzZWRGb250cyAmJiAhdXNlZEZvbnRzLT5pc0VtcHR5KCkgJiYgY3Vyci0+cmVu
ZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKSB7
Ci0gICAgICAgICAgICB1c2VkRm9udHMtPmFwcGVuZChjdXJyLT5yZW5kZXJlcigpLT5zdHlsZSht
X2ZpcnN0TGluZSktPmZvbnQoKS5wcmltYXJ5Rm9udCgpKTsKKyAgICAgICAgICAgIGNvbnN0IEZv
bnQmIGZvbnQgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnQoKTsK
KyAgICAgICAgICAgIHVzZWRGb250cy0+YXBwZW5kKGZvbnQucHJpbWFyeUZvbnQoKSk7CisKKyAg
ICAgICAgICAgIGludCBlbXBoYXNpc01hcmtIZWlnaHQ7CisgICAgICAgICAgICBUZXh0RW1waGFz
aXNQb3NpdGlvbiBlbXBoYXNpc01hcmtQb3NpdGlvbjsKKyAgICAgICAgICAgIGdldFRleHRFbXBo
YXNpc01hcmtIZWlnaHRBbmRQb3NpdGlvbihjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0
TGluZSksIGVtcGhhc2lzTWFya0hlaWdodCwgZW1waGFzaXNNYXJrUG9zaXRpb24pOworCiAgICAg
ICAgICAgICBib29sIGJhc2VsaW5lU2V0ID0gZmFsc2U7CiAgICAgICAgICAgICBiYXNlbGluZSA9
IDA7CiAgICAgICAgICAgICBpbnQgYmFzZWxpbmVUb0JvdHRvbSA9IDA7CiAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRGb250cy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBpbnQgaGFsZkxlYWRpbmcgPSAodXNlZEZvbnRzLT5hdChpKS0+bGluZVNwYWNpbmco
KSAtIHVzZWRGb250cy0+YXQoaSktPmhlaWdodCgpKSAvIDI7Ci0gICAgICAgICAgICAgICAgaW50
IHVzZWRGb250QmFzZWxpbmUgPSBoYWxmTGVhZGluZyArIHVzZWRGb250cy0+YXQoaSktPmFzY2Vu
dChiYXNlbGluZVR5cGUpOwotICAgICAgICAgICAgICAgIGludCB1c2VkRm9udEJhc2VsaW5lVG9C
b3R0b20gPSB1c2VkRm9udHMtPmF0KGkpLT5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRCYXNlbGlu
ZTsKKyAgICAgICAgICAgICAgICBpbnQgdXNlZEZvbnRMaW5lU3BhY2luZyA9IHVzZWRGb250cy0+
YXQoaSktPmxpbmVTcGFjaW5nKCk7CisgICAgICAgICAgICAgICAgaW50IHVzZWRGb250QXNjZW50
ID0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICAg
ICAgaW50IHVzZWRGb250RGVzY2VudCA9IHVzZWRGb250cy0+YXQoaSktPmRlc2NlbnQoYmFzZWxp
bmVUeXBlKTsKKyAgICAgICAgICAgICAgICBpbnQgdXNlZEZvbnRIYWxmTGVhZGluZyA9ICh1c2Vk
Rm9udExpbmVTcGFjaW5nIC0gdXNlZEZvbnRzLT5hdChpKS0+aGVpZ2h0KCkpIC8gMjsKKyAgICAg
ICAgICAgICAgICBpbnQgdXNlZEZvbnRCYXNlbGluZSA9IHVzZWRGb250SGFsZkxlYWRpbmcgKyB1
c2VkRm9udEFzY2VudDsKKyAgICAgICAgICAgICAgICBpbnQgdXNlZEZvbnRCYXNlbGluZVRvQm90
dG9tID0gdXNlZEZvbnRMaW5lU3BhY2luZyAtIHVzZWRGb250QmFzZWxpbmU7CisKKyAgICAgICAg
ICAgICAgICBhZGp1c3RGb3JFbXBoYXNpc01hcmsoZW1waGFzaXNNYXJrSGVpZ2h0LCBlbXBoYXNp
c01hcmtQb3NpdGlvbiwgdXNlZEZvbnRBc2NlbnQsIHVzZWRGb250RGVzY2VudCwgdXNlZEZvbnRC
YXNlbGluZSwgdXNlZEZvbnRCYXNlbGluZVRvQm90dG9tKTsKKwogICAgICAgICAgICAgICAgIGlm
ICghYmFzZWxpbmVTZXQpIHsKICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmVTZXQgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSA9IHVzZWRGb250QmFzZWxpbmU7CkBAIC01
MTUsMjMgKzU1MywzNiBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVp
CiAgICAgICAgICAgICAgICAgICAgIGJhc2VsaW5lVG9Cb3R0b20gPSBtYXgoYmFzZWxpbmVUb0Jv
dHRvbSwgdXNlZEZvbnRCYXNlbGluZVRvQm90dG9tKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKCFhZmZlY3RzQXNjZW50KQotICAgICAgICAgICAgICAgICAgICBhZmZl
Y3RzQXNjZW50ID0gdXNlZEZvbnRzLT5hdChpKS0+YXNjZW50KCkgLSBjdXJyLT5sb2dpY2FsVG9w
KCkgPiAwOworICAgICAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50ID0gdXNlZEZvbnRBc2Nl
bnQgLSBjdXJyLT5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICAgICAgICAgIGlmICghYWZmZWN0
c0Rlc2NlbnQpCi0gICAgICAgICAgICAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gdXNlZEZvbnRz
LT5hdChpKS0+ZGVzY2VudCgpICsgY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAg
ICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSB1c2VkRm9udERlc2NlbnQgKyBjdXJyLT5sb2dpY2Fs
VG9wKCkgPiAwOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbGluZUhlaWdodCA9IGJhc2Vs
aW5lICsgYmFzZWxpbmVUb0JvdHRvbTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxp
bmVIZWlnaHQgPSBjdXJyLT5saW5lSGVpZ2h0KCk7CiAgICAgICAgICAgICBiYXNlbGluZSA9IGN1
cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKTsKICAgICAgICAgICAgIGlmIChjdXJy
LT5pc1RleHQoKSB8fCBpc0lubGluZUZsb3cpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBGb250
JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCk7Cisg
ICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KGJhc2VsaW5lVHlwZSk7Cisg
ICAgICAgICAgICAgICAgaW50IGRlc2NlbnQgPSBmb250LmRlc2NlbnQoYmFzZWxpbmVUeXBlKTsK
KworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5pc1RleHQoKSkgeworICAgICAgICAgICAgICAg
ICAgICBpbnQgZW1waGFzaXNNYXJrSGVpZ2h0OworICAgICAgICAgICAgICAgICAgICBUZXh0RW1w
aGFzaXNQb3NpdGlvbiBlbXBoYXNpc01hcmtQb3NpdGlvbjsKKyAgICAgICAgICAgICAgICAgICAg
Z2V0VGV4dEVtcGhhc2lzTWFya0hlaWdodEFuZFBvc2l0aW9uKGN1cnItPnJlbmRlcmVyKCktPnN0
eWxlKG1fZmlyc3RMaW5lKSwgZW1waGFzaXNNYXJrSGVpZ2h0LCBlbXBoYXNpc01hcmtQb3NpdGlv
bik7CisgICAgICAgICAgICAgICAgICAgIGludCBiYXNlbGluZVRvQm90dG9tID0gbGluZUhlaWdo
dCAtIGJhc2VsaW5lOworICAgICAgICAgICAgICAgICAgICBhZGp1c3RGb3JFbXBoYXNpc01hcmso
ZW1waGFzaXNNYXJrSGVpZ2h0LCBlbXBoYXNpc01hcmtQb3NpdGlvbiwgYXNjZW50LCBkZXNjZW50
LCBiYXNlbGluZSwgYmFzZWxpbmVUb0JvdHRvbSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmVI
ZWlnaHQgPSBiYXNlbGluZSArIGJhc2VsaW5lVG9Cb3R0b207CisgICAgICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICAgICAgLy8gRXhhbWluZSB0aGUgZm9udCBib3ggZm9yIGlubGluZSBmbG93
cyBhbmQgdGV4dCBib3hlcyB0byBzZWUgaWYgYW55IHBhcnQgb2YgaXQgaXMgYWJvdmUgdGhlIGJh
c2VsaW5lLgogICAgICAgICAgICAgICAgIC8vIElmIHRoZSB0b3Agb2Ygb3VyIGZvbnQgYm94IHJl
bGF0aXZlIHRvIHRoZSByb290IGJveCBiYXNlbGluZSBpcyBhYm92ZSB0aGUgcm9vdCBib3ggYmFz
ZWxpbmUsIHRoZW4KICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgY29udHJpYnV0aW5nIHRvIHRo
ZSBtYXhBc2NlbnQgdmFsdWUuCi0gICAgICAgICAgICAgICAgYWZmZWN0c0FzY2VudCA9IGN1cnIt
PnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmFzY2VudChiYXNlbGluZVR5
cGUpIC0gY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAgICAgICBhZmZlY3RzQXNj
ZW50ID0gYXNjZW50IC0gY3Vyci0+bG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAvLyBEZXNjZW50IGlzIHNpbWlsYXIuICBJZiBhbnkgcGFydCBvZiBv
dXIgZm9udCBib3ggaXMgYmVsb3cgdGhlIHJvb3QgYm94J3MgYmFzZWxpbmUsIHRoZW4KICAgICAg
ICAgICAgICAgICAvLyB3ZSBjb250cmlidXRlIHRvIHRoZSBtYXhEZXNjZW50IHZhbHVlLgotICAg
ICAgICAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9m
aXJzdExpbmUpLT5mb250KCkuZGVzY2VudChiYXNlbGluZVR5cGUpICsgY3Vyci0+bG9naWNhbFRv
cCgpID4gMDsKKyAgICAgICAgICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGRlc2NlbnQgKyBjdXJy
LT5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICAvLyBSZXBsYWNlZCBlbGVtZW50cyBhbHdheXMgYWZmZWN0IGJvdGggdGhlIGFzY2VudCBhbmQg
ZGVzY2VudC4KICAgICAgICAgICAgICAgICBhZmZlY3RzQXNjZW50ID0gdHJ1ZTsKQEAgLTU3MSw2
ICs2MjIsMTQgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaQogICAg
IH0KIH0KIAorc3RhdGljIGludCBhc2NlbnRXaXRoRW1waGFzaXNNYXJrKFJlbmRlclN0eWxlKiBz
dHlsZSwgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSkKK3sKKyAgICBpZiAoc3R5bGUtPnRleHRF
bXBoYXNpc01hcmsoKSA9PSBUZXh0RW1waGFzaXNNYXJrTm9uZSB8fCBzdHlsZS0+dGV4dEVtcGhh
c2lzUG9zaXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlvblVuZGVyKQorICAgICAgICByZXR1
cm4gc3R5bGUtPmZvbnQoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKTsKKworICAgIHJldHVybiBzdHls
ZS0+Zm9udCgpLmFzY2VudChiYXNlbGluZVR5cGUpICsgc3R5bGUtPmZvbnQoKS5lbXBoYXNpc01h
cmtIZWlnaHQoc3R5bGUtPnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7Cit9CisKIHZvaWQgSW5s
aW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oaW50IHRvcCwgaW50IG1heEhl
aWdodCwgaW50IG1heEFzY2VudCwgYm9vbCBzdHJpY3RNb2RlLCBpbnQmIGxpbmVUb3AsIGludCYg
bGluZUJvdHRvbSwgYm9vbCYgc2V0TGluZVRvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50JiBsaW5lVG9wSW5jbHVkaW5nTWFyZ2lucywgaW50JiBs
aW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9vbCYgY29udGFpbnNSdWJ5LCBGb250QmFzZWxp
bmUgYmFzZWxpbmVUeXBlKQogewpAQCAtNjA2LDggKzY2NSw3IEBAIHZvaWQgSW5saW5lRmxvd0Jv
eDo6cGxhY2VCb3hlc0luQmxvY2tEaXIKICAgICAgICAgaW50IGJveEhlaWdodEluY2x1ZGluZ01h
cmdpbnMgPSBib3hIZWlnaHQ7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGN1cnItPmlzVGV4
dCgpIHx8IGN1cnItPmlzSW5saW5lRmxvd0JveCgpKSB7Ci0gICAgICAgICAgICBjb25zdCBGb250
JiBmb250ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250KCk7Ci0g
ICAgICAgICAgICBuZXdMb2dpY2FsVG9wICs9IGN1cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxp
bmVUeXBlKSAtIGZvbnQuYXNjZW50KGJhc2VsaW5lVHlwZSk7CisgICAgICAgICAgICBuZXdMb2dp
Y2FsVG9wICs9IGN1cnItPmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKSAtIGFzY2VudFdp
dGhFbXBoYXNpc01hcmsoY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLCBiYXNl
bGluZVR5cGUpOwogICAgICAgICAgICAgaWYgKGN1cnItPmlzSW5saW5lRmxvd0JveCgpKSB7CiAg
ICAgICAgICAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGJveE9iamVjdCA9IHRvUmVuZGVy
Qm94TW9kZWxPYmplY3QoY3Vyci0+cmVuZGVyZXIoKSk7CiAgICAgICAgICAgICAgICAgbmV3TG9n
aWNhbFRvcCAtPSBib3hPYmplY3QtPnN0eWxlKG1fZmlyc3RMaW5lKS0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IGJveE9iamVjdC0+Ym9yZGVyVG9wKCkgKyBib3hPYmplY3QtPnBhZGRpbmdU
b3AoKSA6IApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDc0
MTk0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1Miw3ICszNTIsNyBAQCBGbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBwbHlTaGFk
b3dUb0dyCiAgICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwogfQogCi1zdGF0aWMgdm9pZCBwYWludFRl
eHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwg
aW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQmIHRleHRPcmlnaW4sCitzdGF0aWMg
dm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0b21pY1N0cmluZyYg
ZW1waGFzaXNNYXJrLCBpbnQgZW1waGFzaXNNYXJrT2Zmc2V0LCBpbnQgc3RhcnRPZmZzZXQsIGlu
dCBlbmRPZmZzZXQsIGludCB0cnVuY2F0aW9uUG9pbnQsIGNvbnN0IEludFBvaW50JiB0ZXh0T3Jp
Z2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgYm94
UmVjdCwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHN0cm9rZWQsIGJvb2wgaG9yaXpv
bnRhbCkKIHsKICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LT5maWxsQ29sb3IoKTsKQEAg
LTM2OCwxMyArMzY4LDIzIEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBo
aWMKICAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKICAgICAgICAgICAgIGNvbnRleHQtPnNldEZp
bGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIAotICAgICAgICBpZiAoc3RhcnRP
ZmZzZXQgPD0gZW5kT2Zmc2V0KQotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwg
dGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkKLSAgICAg
ICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsg
ZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQpOwotICAgICAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0
IDwgdHJ1bmNhdGlvblBvaW50KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZv
bnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwgc3RhcnRPZmZzZXQsIHRydW5j
YXRpb25Qb2ludCk7CisgICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBlbmRPZmZzZXQpIHsKKyAg
ICAgICAgICAgIGlmIChlbXBoYXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNv
bnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCwg
c3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgY29udGV4dC0+ZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJr
LCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNl
dCksIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKGVuZE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJr
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwg
dGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCAgMCwgZW5kT2Zmc2V0KTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNp
c01hcmtzKGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zm
c2V0ICsgSW50U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgMCwgZW5kT2Zmc2V0KTsKKyAg
ICAgICAgICAgIH0gaWYgKHN0YXJ0T2Zmc2V0IDwgdHJ1bmNhdGlvblBvaW50KSB7CisgICAgICAg
ICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAg
IGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRPcmlnaW4gKyBleHRyYU9mZnNl
dCwgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2ludCk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0
UnVuLCBlbXBoYXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwg
ZW1waGFzaXNNYXJrT2Zmc2V0KSwgIHN0YXJ0T2Zmc2V0LCB0cnVuY2F0aW9uUG9pbnQpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzaGFkb3cpCkBAIC0zODksNiAr
Mzk5LDE0IEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWMKICAgICB9
IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKIH0KIAorc3RhdGljIGlubGlu
ZSBpbnQgYXNjZW50V2l0aEVtcGhhc2lzTWFyayhSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAg
aWYgKHN0eWxlLT50ZXh0RW1waGFzaXNNYXJrKCkgPT0gVGV4dEVtcGhhc2lzTWFya05vbmUgfHwg
c3R5bGUtPnRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRl
cikKKyAgICAgICAgcmV0dXJuIHN0eWxlLT5mb250KCkuYXNjZW50KCk7CisKKyAgICByZXR1cm4g
c3R5bGUtPmZvbnQoKS5hc2NlbnQoKSArIHN0eWxlLT5mb250KCkuZW1waGFzaXNNYXJrSGVpZ2h0
KHN0eWxlLT50ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkpOworfQorCiB2b2lkIElubGluZVRleHRC
b3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIHsKICAgICBp
ZiAoaXNMaW5lQnJlYWsoKSB8fCAhcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5k
ZXJlcigpKSB8fCByZW5kZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSB8
fApAQCAtNDQ3LDcgKzQ2NSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWkKICAgICBJbnRQb2ludCBib3hPcmlnaW4gPSBsb2NhdGlvbkluY2x1ZGluZ0ZsaXBwaW5n
KCk7CiAgICAgYm94T3JpZ2luLm1vdmUodHgsIHR5KTsgICAgCiAgICAgSW50UmVjdCBib3hSZWN0
KGJveE9yaWdpbiwgSW50U2l6ZShsb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpKSk7Ci0g
ICAgSW50UG9pbnQgdGV4dE9yaWdpbiA9IEludFBvaW50KGJveE9yaWdpbi54KCksIGJveE9yaWdp
bi55KCkgKyBzdHlsZVRvVXNlLT5mb250KCkuYXNjZW50KCkpOworICAgIEludFBvaW50IHRleHRP
cmlnaW4gPSBJbnRQb2ludChib3hPcmlnaW4ueCgpLCBib3hPcmlnaW4ueSgpICsgYXNjZW50V2l0
aEVtcGhhc2lzTWFyayhzdHlsZVRvVXNlKSk7CiAKICAgICBpZiAoIWlzSG9yaXpvbnRhbCgpKSB7
CiAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKQEAgLTQ4OCwxMiArNTA2LDE0IEBAIHZvaWQgSW5s
aW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAvLyAyLiBOb3cgcGFpbnQgdGhl
IGZvcmVncm91bmQsIGluY2x1ZGluZyB0ZXh0IGFuZCBkZWNvcmF0aW9ucyBsaWtlIHVuZGVybGlu
ZS9vdmVybGluZSAoaW4gcXVpcmtzIG1vZGUgb25seSkuCiAgICAgQ29sb3IgdGV4dEZpbGxDb2xv
cjsKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CisgICAgQ29sb3IgZW1waGFzaXNNYXJrQ29s
b3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoID0gc3R5bGVUb1VzZS0+dGV4dFN0cm9rZVdp
ZHRoKCk7CiAgICAgY29uc3QgU2hhZG93RGF0YSogdGV4dFNoYWRvdyA9IHBhaW50SW5mby5mb3Jj
ZUJsYWNrVGV4dCA/IDAgOiBzdHlsZVRvVXNlLT50ZXh0U2hhZG93KCk7CiAKICAgICBpZiAocGFp
bnRJbmZvLmZvcmNlQmxhY2tUZXh0KSB7CiAgICAgICAgIHRleHRGaWxsQ29sb3IgPSBDb2xvcjo6
YmxhY2s7CiAgICAgICAgIHRleHRTdHJva2VDb2xvciA9IENvbG9yOjpibGFjazsKKyAgICAgICAg
ZW1waGFzaXNNYXJrQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
dGV4dEZpbGxDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOwogICAgICAgICAKQEAgLTUwNiw2ICs1MjYsMTIgQEAg
dm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICAvLyBNYWtl
IHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxlIGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5k
CiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3JjZUJhY2tncm91bmRzVG9XaGl0ZSgpKQogICAg
ICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gY29ycmVjdGVkVGV4dENvbG9yKHRleHRTdHJva2VD
b2xvciwgQ29sb3I6OndoaXRlKTsKKworICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9IHN0eWxl
VG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNp
c0NvbG9yKTsKKyAgICAgICAgCisgICAgICAgIC8vIE1ha2UgdGhlIHRleHQgc3Ryb2tlIGNvbG9y
IGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tncm91bmQKKyAgICAgICAgaWYgKHN0eWxlVG9V
c2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkpCisgICAgICAgICAgICBlbXBoYXNpc01hcmtD
b2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcihlbXBoYXNpc01hcmtDb2xvciwgQ29sb3I6OndoaXRl
KTsKICAgICB9CiAKICAgICBib29sIHBhaW50U2VsZWN0ZWRUZXh0T25seSA9IChwYWludEluZm8u
cGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CkBAIC01MTMsNiArNTM5LDcgQEAgdm9pZCBJ
bmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogCiAgICAgQ29sb3Igc2VsZWN0aW9u
RmlsbENvbG9yID0gdGV4dEZpbGxDb2xvcjsKICAgICBDb2xvciBzZWxlY3Rpb25TdHJva2VDb2xv
ciA9IHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xvciBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xv
ciA9IGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZsb2F0IHNlbGVjdGlvblN0cm9rZVdpZHRoID0g
dGV4dFN0cm9rZVdpZHRoOwogICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNoYWRvdyA9
IHRleHRTaGFkb3c7CiAgICAgaWYgKGhhdmVTZWxlY3Rpb24pIHsKQEAgLTUyNCw2ICs1NTEsMTMg
QEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaQogICAgICAgICAgICAg
c2VsZWN0aW9uRmlsbENvbG9yID0gZm9yZWdyb3VuZDsKICAgICAgICAgfQogCisgICAgICAgIENv
bG9yIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyBD
b2xvcjo6YmxhY2sgOiByZW5kZXJlcigpLT5zZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpOwor
ICAgICAgICBpZiAoZW1waGFzaXNNYXJrRm9yZWdyb3VuZC5pc1ZhbGlkKCkgJiYgZW1waGFzaXNN
YXJrRm9yZWdyb3VuZCAhPSBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcikgeworICAgICAgICAg
ICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkpCisgICAgICAgICAgICAgICAgcGFpbnRTZWxl
Y3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbGVjdGlvbkVtcGhhc2lz
TWFya0NvbG9yID0gZW1waGFzaXNNYXJrRm9yZWdyb3VuZDsKKyAgICAgICAgfQorCiAgICAgICAg
IGlmIChSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSByZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1
ZG9TdHlsZShTRUxFQ1RJT04pKSB7CiAgICAgICAgICAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFk
b3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQgPyAwIDogcHNldWRvU3R5bGUtPnRleHRTaGFk
b3coKTsKICAgICAgICAgICAgIGlmIChzaGFkb3cgIT0gc2VsZWN0aW9uU2hhZG93KSB7CkBAIC01
NjcsNiArNjAxLDE1IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkK
ICAgICAgICAgbGVuZ3RoID0gbV90cnVuY2F0aW9uOwogICAgIH0KIAorICAgIGludCBlbXBoYXNp
c01hcmtPZmZzZXQgPSAwOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrID0g
c3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzTWFya1N0cmluZygpOworICAgIGlmICghZW1waGFzaXNN
YXJrLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoc3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzUG9z
aXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCisgICAgICAgICAgICBlbXBoYXNp
c01hcmtPZmZzZXQgPSAtZm9udC5hc2NlbnQoLyogRklYTUU6IE5lZWRzIGJhc2VsaW5lIHR5cGUg
Ki8pIC0gZm9udC5lbXBoYXNpc01hcmtEZXNjZW50KGVtcGhhc2lzTWFyayk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGVtcGhhc2lzTWFya09mZnNldCA9IGZvbnQuZGVzY2VudCgvKiBGSVhN
RTogTmVlZHMgYmFzZWxpbmUgdHlwZSAqLykgKyBmb250LmVtcGhhc2lzTWFya0FzY2VudChlbXBo
YXNpc01hcmspOworICAgIH0KKwogICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRPbmx5KSB7CiAg
ICAgICAgIC8vIEZvciBzdHJva2VkIHBhaW50aW5nLCB3ZSBoYXZlIHRvIGNoYW5nZSB0aGUgdGV4
dCBkcmF3aW5nIG1vZGUuICBJdCdzIHByb2JhYmx5IGRhbmdlcm91cyB0byBsZWF2ZSB0aGF0IG11
dGF0ZWQgYXMgYSBzaWRlCiAgICAgICAgIC8vIGVmZmVjdCwgc28gb25seSB3aGVuIHdlIGtub3cg
d2UncmUgc3Ryb2tpbmcsIGRvIGEgc2F2ZS9yZXN0b3JlLgpAQCAtNTc2LDkgKzYxOSwxOCBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgIHVwZGF0ZUdy
YXBoaWNzQ29udGV4dChjb250ZXh0LCB0ZXh0RmlsbENvbG9yLCB0ZXh0U3Ryb2tlQ29sb3IsIHRl
eHRTdHJva2VXaWR0aCwgc3R5bGVUb1VzZS0+Y29sb3JTcGFjZSgpKTsKICAgICAgICAgaWYgKCFw
YWludFNlbGVjdGVkVGV4dFNlcGFyYXRlbHkgfHwgZVBvcyA8PSBzUG9zKSB7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0ZXh0IGNvcnJlY3RseS4KLSAgICAg
ICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIDAsIGxl
bmd0aCwgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCB0ZXh0U2hhZG93LCB0ZXh0U3Ryb2tl
V2lkdGggPiAwLCBpc0hvcml6b250YWwoKSk7CisgICAgICAgICAgICBwYWludFRleHRXaXRoU2hh
ZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgMCwgbGVuZ3RoLCBsZW5n
dGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAs
IGlzSG9yaXpvbnRhbCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRl
eHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9y
aXpvbnRhbCgpKTsKKyAgICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZv
bnQsIHRleHRSdW4sIG51bGxBdG9tLCAwLCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4s
IGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgp
KTsKKworICAgICAgICBpZiAoIWVtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCBlbXBoYXNpc01hcmtDb2xvciwgdGV4dFN0
cm9rZUNvbG9yLCB0ZXh0U3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Cisg
ICAgICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9IHNQ
b3MpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVHJ1bmNhdGUgcmlnaHQtdG8tbGVmdCB0
ZXh0IGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250
ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lzTWFya09mZnNldCwgMCwg
bGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJv
a2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVt
cGhhc2lzTWFyaywgZW1waGFzaXNNYXJrT2Zmc2V0LCBlUG9zLCBzUG9zLCBsZW5ndGgsIHRleHRP
cmlnaW4sIGJveFJlY3QsIHRleHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpv
bnRhbCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0ZXh0U3Ryb2tlV2lkdGggPiAwKQog
ICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAtNTkwLDggKzY0MiwxMSBAQCB2b2lk
IElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAgICBjb250ZXh0
LT5zYXZlKCk7CiAKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNlbGVj
dGlvbkZpbGxDb2xvciwgc2VsZWN0aW9uU3Ryb2tlQ29sb3IsIHNlbGVjdGlvblN0cm9rZVdpZHRo
LCBzdHlsZVRvVXNlLT5jb2xvclNwYWNlKCkpOwotICAgICAgICBwYWludFRleHRXaXRoU2hhZG93
cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBzUG9zLCBlUG9zLCBsZW5ndGgsIHRleHRPcmlnaW4s
IGJveFJlY3QsIHNlbGVjdGlvblNoYWRvdywgc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwLCBpc0hv
cml6b250YWwoKSk7Ci0KKyAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgZm9u
dCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIHNQb3MsIGVQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwg
Ym94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDAsIGlzSG9y
aXpvbnRhbCgpKTsKKyAgICAgICAgaWYgKCFlbXBoYXNpc01hcmsuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICB1cGRhdGVHcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2VsZWN0aW9uRW1waGFzaXNN
YXJrQ29sb3IsIHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5j
b2xvclNwYWNlKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwg
Zm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIHNQb3MsIGVQ
b3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rp
b25TdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAgfQogICAgICAgICBp
ZiAoc2VsZWN0aW9uU3Ryb2tlV2lkdGggPiAwKQogICAgICAgICAgICAgY29udGV4dC0+cmVzdG9y
ZSgpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24g
NzQxOTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTkzLDcgKzE1OTMsNyBAQCBDb2xvciBSZW5kZXJPYmplY3Q6OnNlbGVjdGlvbkJh
Y2tncm91bmRDCiAgICAgcmV0dXJuIGNvbG9yOwogfQogCi1Db2xvciBSZW5kZXJPYmplY3Q6OnNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJPYmplY3Q6OnNlbGVj
dGlvbkNvbG9yKGludCBjb2xvclByb3BlcnR5KSBjb25zdAogewogICAgIENvbG9yIGNvbG9yOwog
ICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHVuc2VsZWN0YWJsZSwgb3Igd2UgYXJlIG9ubHkgcGFp
bnRpbmcgdGhlIHNlbGVjdGlvbiwKQEAgLTE2MDMsNyArMTYwMyw3IEBAIENvbG9yIFJlbmRlck9i
amVjdDo6c2VsZWN0aW9uRm9yZWdyb3VuZEMKICAgICAgICAgcmV0dXJuIGNvbG9yOwogCiAgICAg
aWYgKFJlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVkb1N0
eWxlKFNFTEVDVElPTikpIHsKLSAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcik7CisgICAgICAgIGNv
bG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihjb2xvclByb3BlcnR5KTsK
ICAgICAgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBjb2xvciA9IHBzZXVk
b1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7CiAgICAgfSBl
bHNlCkBAIC0xNjE0LDYgKzE2MTQsMTYgQEAgQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25G
b3JlZ3JvdW5kQwogICAgIHJldHVybiBjb2xvcjsKIH0KIAorQ29sb3IgUmVuZGVyT2JqZWN0Ojpz
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBzZWxlY3Rpb25D
b2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOworfQorCitDb2xvciBSZW5kZXJP
YmplY3Q6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c2VsZWN0aW9uQ29sb3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xvcik7Cit9CisK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogTm9kZSogUmVuZGVyT2JqZWN0OjpkcmFnZ2FibGVO
b2RlKGJvb2wgZGh0bWxPSywgYm9vbCB1YU9LLCBpbnQgeCwgaW50IHksIGJvb2wmIGRodG1sV2ls
bERyYWcpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24g
NzQxOTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNjc0LDYgKzY3NCw3IEBAIHB1YmxpYzoKICAgICAvLyBPYnRhaW5zIHRoZSBzZWxlY3Rp
b24gY29sb3JzIHRoYXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBwYWludGluZyBhIHNlbGVjdGlvbi4K
ICAgICBDb2xvciBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICBDb2xvciBz
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICBDb2xvciBzZWxlY3Rpb25FbXBo
YXNpc01hcmtDb2xvcigpIGNvbnN0OwogCiAgICAgLy8gV2hldGhlciBvciBub3QgYSBnaXZlbiBi
bG9jayBuZWVkcyB0byBwYWludCBzZWxlY3Rpb24gZ2Fwcy4KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTc5NSw2
ICs3OTYsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlbmRlclN0eWxlKiBmaXJzdExp
bmVTdHlsZVNsb3dDYXNlKCkgY29uc3Q7CiAgICAgU3R5bGVEaWZmZXJlbmNlIGFkanVzdFN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UsIHVuc2lnbmVkIGNvbnRleHRTZW5zaXRpdmVQcm9w
ZXJ0aWVzKSBjb25zdDsKKworICAgIENvbG9yIHNlbGVjdGlvbkNvbG9yKGludCBjb2xvclByb3Bl
cnR5KSBjb25zdDsKICAgICAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CiAKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDc0MjEwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTItMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzcyMDMwMD4gU3VwcG9ydCB0aGUgQ1NTMyB0ZXh0LWVtcGhh
c2lzIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODUzOQorCisgICAgICAgICogZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9lbXBoYXNpcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVk
LnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1w
aGFzaXMtdmVydGljYWwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNv
bnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKzxzdHlsZT4K
KyAgICBib2R5IHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwor
ICAgICAgICBmb250LXNpemU6IDE4cHg7CisgICAgICAgIGZvbnQtZmFtaWx5OiAiSGlyYU1pblBy
by1XMyI7CisgICAgfQorCisgICAgZGl2IHsKKyAgICAgICAgYm9yZGVyOiBzb2xpZDsKKyAgICAg
ICAgaGVpZ2h0OiAzNjBweDsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIG1hcmdpbjog
OHB4OworICAgIH0KKzwvc3R5bGU+CisKKzxkaXY+CisgICAg44Gb44Gj44GL44GP6KaL44Gk44GR
44Gf44GZ44Gw44KJ44GX44GE6KiY5LqLPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogJ0AnOyI+44GM44Gp44GT44Gr44GC44Gj44Gf44GL5b+Y44KM44Gm44GX44G+PC9zcGFuPuOB
o+OBn+e1jOmok+OBr+OBguOCiuOBvuOBmeOBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1w
aGFzaXM6ICcqJzsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9uOiB1bmRlcjsiPuOBquOC
ieOCv+OCpOODiOODq+OBqOOCouODieODrOOCueOBoOOBkeOBp+OBquOBj+OAgTwvc3Bhbj7oqKrl
lY/jgZfjgZ/jgqbjgqfjg5bjg5rjg7zjgrjjga7jgrPjg7Pjg4bjg7Pjg4TjgYvjgonjgoLmpJzn
tKLjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIIKKzwvZGl2PgorCis8ZGl2PgorICAgIOOB
m+OBo+OBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij7j
gY/opovjgaTjgZHjgZ/jgZk8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogb3BlbiBncmVlbjsiPuOBsOOCieOBl+OBhDwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBjaXJjbGU7Ij7oqJjkuovjgYzjgak8L3NwYW4+PHNwYW4gc3R5bGU9Ii13
ZWJraXQtdGV4dC1lbXBoYXNpczogZG90OyI+44GT44Gr44GC44GjPC9zcGFuPjxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJsZS1jaXJjbGU7Ij7jgZ/jgYvlv5jjgozjgabj
gZc8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogc2VzYW1lOyI+44G+
44Gj44Gf57WM6aiTPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IHRy
aWFuZ2xlOyI+44Gv44GC44KK44G+44GZ44GLPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRl
eHQtZW1waGFzaXM6IG9wZW4gZG90OyI+44Gq44KJ44K/44Kk44OI44Or44GoPC9zcGFuPjxzcGFu
IHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG91YmxlLWNpcmNsZTsiPuOCouOD
ieODrOOCueOBoOOBkeOBp+OBqjwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhh
c2lzOiBvcGVuIHNlc2FtZTsiPuOBj+OAgeioquWVj+OBl+OBn+OCpjwvc3Bhbj48c3BhbiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHRyaWFuZ2xlOyI+44Kn44OW44Oa44O844K4
44Gu44Kz44Oz44OGPC9zcGFuPuODs+ODhOOBi+OCieOCguaknOe0ouOBmeOCi+OBk+OBqOOBjOOB
p+OBjeOBvuOBmeOAggorPC9kaXY+CisKKzxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1scjsiPgorICAgIOOBm+OBo+OBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQt
ZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij7jgY/opovjgaTjgZHjgZ/jgZk8L3NwYW4+PHNwYW4gc3R5
bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3BlbiBncmVlbjsiPuOBsOOCieOBl+OBhDwvc3Bh
bj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBjaXJjbGU7Ij7oqJjkuovjgYzj
gak8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZG90OyI+44GT44Gr
44GC44GjPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJsZS1j
aXJjbGU7Ij7jgZ/jgYvlv5jjgozjgabjgZc8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4
dC1lbXBoYXNpczogc2VzYW1lOyI+44G+44Gj44Gf57WM6aiTPC9zcGFuPjxzcGFuIHN0eWxlPSIt
d2Via2l0LXRleHQtZW1waGFzaXM6IHRyaWFuZ2xlOyI+44Gv44GC44KK44G+44GZ44GLPC9zcGFu
PjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG90OyI+44Gq44KJ44K/
44Kk44OI44Or44GoPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9w
ZW4gZG91YmxlLWNpcmNsZTsiPuOCouODieODrOOCueOBoOOBkeOBp+OBqjwvc3Bhbj48c3BhbiBz
dHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHNlc2FtZTsiPuOBj+OAgeioquWVj+OB
l+OBn+OCpjwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHRy
aWFuZ2xlOyI+44Kn44OW44Oa44O844K444Gu44Kz44Oz44OGPC9zcGFuPuODs+ODhOOBi+OCieOC
guaknOe0ouOBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOAggorPC9kaXY+CisKKzxkaXYgc3R5
bGU9ImxpbmUtaGVpZ2h0OiAyOyI+CisgICAg44Gb44Gj44GL44GP6KaL44Gk44GR44Gf44GZ44Gw
44KJ44GX44GE6KiY5LqLPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZmlsbGVk
OyI+44GM44Gp44GT44Gr44GC44Gj44Gf44GL5b+Y44KM44Gm44GX44G+PC9zcGFuPuOBo+OBn+e1
jOmok+OBr+OBguOCiuOBvuOBmeOBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6
IG9wZW47IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogdW5kZXI7Ij7jgarjgonjgr/j
gqTjg4jjg6vjgajjgqLjg4njg6zjgrnjgaDjgZHjgafjgarjgY/jgIE8L3NwYW4+6Kiq5ZWP44GX
44Gf44Km44Kn44OW44Oa44O844K444Gu44Kz44Oz44OG44Oz44OE44GL44KJ44KC5qSc57Si44GZ
44KL44GT44Go44GM44Gn44GN44G+44GZ44CCCis8L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvdGV4dC9lbXBoYXNpcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4
dC9lbXBoYXNpcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Vt
cGhhc2lzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTAgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiPgorPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgICBmb250LXNpemU6IDI0
cHg7CisgICAgfQorCisgICAgZGl2IHsKKyAgICAgICAgYm9yZGVyOiBzb2xpZDsKKyAgICAgICAg
d2lkdGg6IDM2MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgbWFyZ2luOiA4cHg7
CisgICAgfQorCisgICAgc3Bhbjo6c2VsZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYnJvd247CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgfQorCisgICAgI3NwZWNpYWwt
c3Bhbjo6c2VsZWN0aW9uIHsKKyAgICAgICAgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLWNvbG9yOiBs
aWdodGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8ZGl2PgorICAgIExvcmVtIGlwc3VtIGRvbG9y
IHNpdCBhbWV0LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6ICdAaWdu
b3JlZCc7Ij5jb25zZWN0ZXR1ciBhZGlwaXNjaW5nPC9zcGFuPgorICAgIGVsaXQuIEFsaXF1YW0K
KyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4
dC1lbXBoYXNpcy1wb3NpdGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9i
b3J0aXMgZXUgaWFjdWxpcyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8
ZGl2IHN0eWxlPSJ0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyI+CisgICAgTG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1l
bXBoYXNpczogJ0AnOyI+Y29uc2VjdGV0dXIgYWRpcGlzY2luZzwvc3Bhbj4KKyAgICBlbGl0LiBB
bGlxdWFtCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogJypkb2VzIG5v
dCBtYXR0ZXInOyAtd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRpb246IHVuZGVyOyI+b2RpbyBz
YSYjeDAzMDA7cGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFjdWxpcyB2ZWwsIHNjZWxl
cmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8ZGl2PgorICAgIExvcmVtIDxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij5pcHN1bTwvc3Bhbj4KKyAgICA8
c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIGdyZWVuOyI+ZG9sb3I8L3Nw
YW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogY2lyY2xlOyI+c2l0
PC9zcGFuPgorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdDsiPmFt
ZXQ8L3NwYW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJs
ZS1jaXJjbGU7Ij5jb25zZWN0ZXR1cjwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBzZXNhbWU7Ij5hZGlwaXNjaW5nPC9zcGFuPgorICAgIDxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IHRyaWFuZ2xlOyI+ZWxpdDwvc3Bhbj4uCisKKyAgICA8
c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIGRvdDsiPkFsaXF1YW08L3Nw
YW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG91Ymxl
LWNpcmNsZTsiPm9kaW88L3NwYW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBo
YXNpczogb3BlbiBzZXNhbWU7Ij5zYXBpZW48L3NwYW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Vi
a2l0LXRleHQtZW1waGFzaXM6IG9wZW4gdHJpYW5nbGU7Ij5sb2JvcnRpczwvc3Bhbj4KKyAgICBl
dSBpYWN1bGlzIHZlbCwgc2NlbGVyaXNxdWUgbmVjIGRvbG9yLgorPC9kaXY+CisKKzxkaXYgc3R5
bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyI+CisgICAgTG9yZW0gPHNw
YW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZmlsbGVkIHJlZDsiPmlwc3VtPC9zcGFu
PgorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZ3JlZW47Ij5k
b2xvcjwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBjaXJj
bGU7Ij5zaXQ8L3NwYW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczog
ZG90OyI+YW1ldDwvc3Bhbj4sCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogZG91YmxlLWNpcmNsZTsiPmNvbnNlY3RldHVyPC9zcGFuPgorICAgIDxzcGFuIHN0eWxlPSIt
d2Via2l0LXRleHQtZW1waGFzaXM6IHNlc2FtZTsiPmFkaXBpc2Npbmc8L3NwYW4+CisgICAgPHNw
YW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogdHJpYW5nbGU7Ij5lbGl0PC9zcGFuPi4K
KworICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG90OyI+QWxp
cXVhbTwvc3Bhbj4sCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3Bl
biBkb3VibGUtY2lyY2xlOyI+b2Rpbzwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBvcGVuIHNlc2FtZTsiPnNhcGllbjwvc3Bhbj4sCisgICAgPHNwYW4gc3R5
bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3BlbiB0cmlhbmdsZTsiPmxvYm9ydGlzPC9zcGFu
PgorICAgIGV1IGlhY3VsaXMgdmVsLCBzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuCis8L2Rpdj4KKwor
PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6IDI7Ij4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwKKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnQCc7Ij5jb25z
ZWN0ZXR1ciBhZGlwaXNjaW5nPC9zcGFuPgorICAgIGVsaXQuIEFsaXF1YW0KKyAgICA8c3BhbiBz
dHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1w
b3NpdGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFj
dWxpcyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8ZGl2PgorICAgIExv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LAorICAgIDxzcGFuIGlkPSJmaXJzdC1zcGFuIiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnQCc7Ij5jb25zZWN0ZXR1ciBhZGlwaXNjaW5nPC9z
cGFuPgorICAgIGVsaXQuIEFsaXF1YW0KKyAgICA8c3BhbiBpZD0ic3BlY2lhbC1zcGFuIiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3Np
dGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFjdWxp
cyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZp
cnN0LXNwYW4iKS5maXJzdENoaWxkLCAxMCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwZWNp
YWwtc3BhbiIpLmZpcnN0Q2hpbGQsIDcpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACis2ODU3OGU4NTAwMDViYzlmZWNhYzNjMzA2NDc1NjljZQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFz
aXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvZW1waGFzaXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkxIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCisgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcp
IHtESVZ9IGF0ICg4LDgpIHNpemUgMzY2eDE0NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDAp
XQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykgc2l6ZSAyNzZ4MjgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCAyNzY6ICJMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMTd4MjgK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMzEpIHNpemUgMjE3eDQyCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMywzMSkgd2lkdGggMjE3OiAiY29uc2VjdGV0dXIgYWRpcGlz
Y2luZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNDUpIHNpemUgMTM1eDI4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw0NSkgd2lkdGggNjogIiAiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDIyNiw0NSkgd2lkdGggMTI5OiAiZWxpdC4gQWxpcXVhbSIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgyOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMyw3Mykgc2l6ZSAxMTF4NDIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgzLDczKSB3aWR0aCAxMTE6ICJvZGlvIHNhcGllbiIKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxMTQsNzMpIHNpemUgMzM4eDcwCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEx
NCw3Mykgd2lkdGggMTI6ICIsICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTI2LDczKSB3aWR0
aCAyMTU6ICJsb2JvcnRpcyBldSBpYWN1bGlzIHZlbCwiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDMsMTE1KSB3aWR0aCAyMTE6ICJzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuIgorICAgICAgUmVuZGVy
QmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMzkwLDgpIHNpemUgMzY2eDE0NiBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykg
c2l6ZSAyNzZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCAyNzY6ICJMb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAyMTd4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMzEp
IHNpemUgMjE3eDQyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzMSkgd2lkdGggMjE3OiAi
Y29uc2VjdGV0dXIgYWRpcGlzY2luZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgy
MjAsNDUpIHNpemUgMTM1eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw0NSkgd2lkdGgg
NjogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyNiw0NSkgd2lkdGggMTI5OiAiZWxpdC4g
QWxpcXVhbSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgy
OAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMyw3Mykgc2l6ZSAxMTF4NDIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDczKSB3aWR0aCAxMTE6ICJvZGlvIHNhXHh7MzAwfXBp
ZW4iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE0LDczKSBzaXplIDMzOHg3MAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsNzMpIHdpZHRoIDEyOiAiLCAiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDEyNiw3Mykgd2lkdGggMjE1OiAibG9ib3J0aXMgZXUgaWFjdWxpcyB2ZWws
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDExNSkgd2lkdGggMjEwOiAic2NlbGVyaXNxdWUg
bmVjIGRvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDgsMTcw
KSBzaXplIDM2NngxNjIgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgzLDE4KSBzaXplIDcxeDI4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDMsMTgpIHdpZHRoIDcxOiAiTG9yZW0gIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59
IGF0ICgwLDApIHNpemUgNTl4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDc0
LDQpIHNpemUgNTl4NDIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NCw0KSB3aWR0aCA1OTog
Imlwc3VtIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEzMywxOCkgc2l6ZSA2eDI4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEzMywxOCkgd2lkdGggNjogIiAiCisgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA1MXgyOAorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTM5LDMpIHNpemUgNTF4NDMKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMzksMykgd2lkdGggNTE6ICJkb2xvciIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxOTAsMTgpIHNpemUgNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTAsMTgpIHdpZHRo
IDY6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjN4MjgK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE5NiwzKSBzaXplIDIzeDQzCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTk2LDMpIHdpZHRoIDIzOiAic2l0IgorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDIxOSwxOCkgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDIxOSwxOCkgd2lkdGggNjogIiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSA0OHgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjI1LDQp
IHNpemUgNDh4NDIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjUsNCkgd2lkdGggNDg6ICJh
bWV0IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI3MywxOCkgc2l6ZSA2eDI4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDI3MywxOCkgd2lkdGggNjogIiwiCisgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMTF4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDMsNDcpIHNpemUgMTExeDQyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
Myw0Nykgd2lkdGggMTExOiAiY29uc2VjdGV0dXIiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTE0LDYxKSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE0LDYxKSB3
aWR0aCA2OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEw
MHgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIwLDQ3KSBzaXplIDEwMHg0
MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCw0Nykgd2lkdGggMTAwOiAiYWRpcGlzY2lu
ZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNjEpIHNpemUgNngyOAorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMjAsNjEpIHdpZHRoIDY6ICIgIgorICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMzJ4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDIyNiw0Nykgc2l6ZSAzMng0MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIy
Niw0Nykgd2lkdGggMzI6ICJlbGl0IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1
OCw2MSkgc2l6ZSAxMngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgyNTgsNjEpIHdpZHRoIDEy
OiAiLiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA4NXgyOAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjcwLDQ2KSBzaXplIDg1eDQzCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjcwLDQ2KSB3aWR0aCA4NTogIkFsaXF1YW0iCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzU1LDYxKSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMzU1LDYxKSB3aWR0aCA2OiAiLCIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDQzeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgz
LDg5KSBzaXplIDQzeDQyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw4OSkgd2lkdGggNDM6
ICJvZGlvIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ2LDEwMykgc2l6ZSA2eDI4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ2LDEwMykgd2lkdGggNjogIiAiCisgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA2MngyOAorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoNTIsODkpIHNpemUgNjJ4NDIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICg1Miw4OSkgd2lkdGggNjI6ICJzYXBpZW4iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMTE0LDEwMykgc2l6ZSAxMngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsMTAzKSB3
aWR0aCAxMjogIiwgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
NzR4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEyNiw4OSkgc2l6ZSA3NHg0
MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEyNiw4OSkgd2lkdGggNzQ6ICJsb2JvcnRpcyIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMDAsMTAzKSBzaXplIDMzOHg1NgorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMDAsMTAzKSB3aWR0aCA2OiAiICIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMjA2LDEwMykgd2lkdGggMTM1OiAiZXUgaWFjdWxpcyB2ZWwsIgorICAgICAgICAg
IHRleHQgcnVuIGF0ICgzLDEzMSkgd2lkdGggMjExOiAic2NlbGVyaXNxdWUgbmVjIGRvbG9yLiIK
KyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDM5MCwxNzApIHNpemUgMzY2
eDE2MiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDMsMykgc2l6ZSA3MXgyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDMpIHdp
ZHRoIDcxOiAiTG9yZW0gIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgNTl4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDc0LDMpIHNpemUgNTl4
NDIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NCwzKSB3aWR0aCA1OTogImlwc3VtIgorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEzMywzKSBzaXplIDZ4MjgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTMzLDMpIHdpZHRoIDY6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgNTF4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEzOSwzKSBzaXplIDUxeDQzCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM5LDMpIHdpZHRo
IDUxOiAiZG9sb3IiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTkwLDMpIHNpemUg
NngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTAsMykgd2lkdGggNjogIiAiCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyM3gyOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMTk2LDMpIHNpemUgMjN4NDMKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxOTYsMykgd2lkdGggMjM6ICJzaXQiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMjE5LDMpIHNpemUgNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMTksMykgd2lkdGgg
NjogIiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OHgyOAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjI1LDMpIHNpemUgNDh4NDIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMjUsMykgd2lkdGggNDg6ICJhbWV0IgorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDI3MywzKSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMjczLDMpIHdpZHRoIDY6ICIsIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMTExeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDQ2KSBz
aXplIDExMXg0MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsNDYpIHdpZHRoIDExMTogImNv
bnNlY3RldHVyIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExNCw0Nikgc2l6ZSA2
eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDExNCw0Nikgd2lkdGggNjogIiAiCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMDB4MjgKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDEyMCw0Nikgc2l6ZSAxMDB4NDIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxMjAsNDYpIHdpZHRoIDEwMDogImFkaXBpc2NpbmciCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMjIwLDQ2KSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjIwLDQ2KSB3aWR0aCA2OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDMyeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjYsNDYpIHNp
emUgMzJ4NDIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjYsNDYpIHdpZHRoIDMyOiAiZWxp
dCIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNTgsNDYpIHNpemUgMTJ4MjgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjU4LDQ2KSB3aWR0aCAxMjogIi4gIgorICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgODV4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDI3MCw0Nikgc2l6ZSA4NXg0MworICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDI3MCw0Nikgd2lkdGggODU6ICJBbGlxdWFtIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDM1NSw0Nikgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDM1NSw0Nikgd2lk
dGggNjogIiwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0M3gy
OAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMyw4OSkgc2l6ZSA0M3g0MgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDMsODkpIHdpZHRoIDQzOiAib2RpbyIKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg0Niw4OSkgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDQ2LDg5KSB3aWR0aCA2OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAo
MCwwKSBzaXplIDYyeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1Miw4OSkg
c2l6ZSA2Mng0MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUyLDg5KSB3aWR0aCA2MjogInNh
cGllbiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTQsODkpIHNpemUgMTJ4MjgK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE0LDg5KSB3aWR0aCAxMjogIiwgIgorICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNzR4MjgKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDEyNiw4OSkgc2l6ZSA3NHg0MgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDEyNiw4OSkgd2lkdGggNzQ6ICJsb2JvcnRpcyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyMDAsODkpIHNpemUgMzM4eDcwCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIwMCw4
OSkgd2lkdGggNjogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIwNiw4OSkgd2lkdGggMTM1
OiAiZXUgaWFjdWxpcyB2ZWwsIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDEzMSkgd2lkdGgg
MjExOiAic2NlbGVyaXNxdWUgbmVjIGRvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGlu
Zykge0RJVn0gYXQgKDgsMzQ4KSBzaXplIDM2NngyMDYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAw
MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDEzKSBzaXplIDI3NngyOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDEzKSB3aWR0aCAyNzY6ICJMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAy
MTd4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNTEpIHNpemUgMjE3eDQy
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw1MSkgd2lkdGggMjE3OiAiY29uc2VjdGV0dXIg
YWRpcGlzY2luZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNjUpIHNpemUg
MTM1eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw2NSkgd2lkdGggNjogIiAiCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDIyNiw2NSkgd2lkdGggMTI5OiAiZWxpdC4gQWxpcXVhbSIKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgyOAorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywxMTMpIHNpemUgMTExeDQyCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMywxMTMpIHdpZHRoIDExMTogIm9kaW8gc2FwaWVuIgorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDExNCwxMTMpIHNpemUgMzM4eDgwCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDExNCwxMTMpIHdpZHRoIDEyOiAiLCAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEy
NiwxMTMpIHdpZHRoIDIxNTogImxvYm9ydGlzIGV1IGlhY3VsaXMgdmVsLCIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMywxNjUpIHdpZHRoIDIxMTogInNjZWxlcmlzcXVlIG5lYyBkb2xvci4iCisg
ICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgzOTAsMzQ4KSBzaXplIDM2Nngx
NDYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgzLDMpIHNpemUgMjc2eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMykgd2lk
dGggMjc2OiAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIgorICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgMjE3eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgzLDMxKSBzaXplIDIxN3g0MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMzEp
IHdpZHRoIDIxNzogImNvbnNlY3RldHVyIGFkaXBpc2NpbmciCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMjIwLDQ1KSBzaXplIDEzNXgyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgy
MjAsNDUpIHdpZHRoIDY6ICIgIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjYsNDUpIHdpZHRo
IDEyOTogImVsaXQuIEFsaXF1YW0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAxMTF4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNzMpIHNp
emUgMTExeDQyCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw3Mykgd2lkdGggMTExOiAib2Rp
byBzYXBpZW4iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE0LDczKSBzaXplIDMz
OHg3MAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsNzMpIHdpZHRoIDEyOiAiLCAiCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDEyNiw3Mykgd2lkdGggMjE1OiAibG9ib3J0aXMgZXUgaWFjdWxp
cyB2ZWwsIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDExNSkgd2lkdGggMjExOiAic2NlbGVy
aXNxdWUgbmVjIGRvbG9yLiIKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMTAgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDEwIHtESVZ9IG9mIGJvZHkKK3Nl
bGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gNyBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7
U1BBTn0gb2YgY2hpbGQgMTAge0RJVn0gb2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZl
cnRpY2FsLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC1leHBlY3RlZC5jaGVja3N1bQko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorMDkyOWNlYzFlY2ExNDE1YjA2NmFiMGU5NDQwOWEx
ZGIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2Fs
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEyMyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoNzkyLDApIHNpemUgOHg2MDAKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgOHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDB4NTg0CisgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9
IGF0ICg4LDgpIHNpemUgMTYyeDM2NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDMpIHNpemUgMTl4MjcyCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDE0LDMpIHdpZHRoIDI3MjogIlx4ezMwNUJ9XHh7MzA2M31ceHszMDRCfVx4
ezMwNEZ9XHh7ODk4Qn1ceHszMDY0fVx4ezMwNTF9XHh7MzA1Rn1ceHszMDU5fVx4ezMwNzB9XHh7
MzA4OX1ceHszMDU3fVx4ezMwNDR9XHh7OEExOH1ceHs0RThCfSIKKyAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDUzeDM0NQorICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMywyNzUpIHNpemUgNjR4MzQ1CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywy
NzUpIHdpZHRoIDczOiAiXHh7MzA0Q31ceHszMDY5fVx4ezMwNTN9XHh7MzA2Qn0iCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMzcsMykgd2lkdGggMTY0OiAiXHh7MzA0Mn1ceHszMDYzfVx4ezMw
NUZ9XHh7MzA0Qn1ceHs1RkQ4fVx4ezMwOEN9XHh7MzA2Nn1ceHszMDU3fVx4ezMwN0V9IgorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ4LDE2Nykgc2l6ZSA0NngzMjgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNDgsMTY3KSB3aWR0aCAxNjQ6ICJceHszMDYzfVx4ezMwNUZ9XHh7N0Q0
Q31ceHs5QTEzfVx4ezMwNkZ9XHh7MzA0Mn1ceHszMDhBfVx4ezMwN0V9XHh7MzA1OX0iCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDc1LDMpIHdpZHRoIDE5OiAiXHh7MzA0Qn0iCisgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgzMjIKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDc1LDIyKSBzaXplIDMweDMyMgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDc1LDIyKSB3aWR0aCAzMjI6ICJceHszMDZBfVx4ezMwODl9XHh7MzBCRn1ceHszMEE0fVx4
ezMwQzh9XHh7MzBFQn1ceHszMDY4fVx4ezMwQTJ9XHh7MzBDOX1ceHszMEVDfVx4ezMwQjl9XHh7
MzA2MH1ceHszMDUxfVx4ezMwNjd9XHh7MzA2QX1ceHszMDRGfVx4ezMwMDF9IgorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDc1LDM0NCkgc2l6ZSA4MHgzNjAKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNzUsMzQ0KSB3aWR0aCAxOTogIlx4ezhBMkF9IgorICAgICAgICAgIHRleHQgcnVu
IGF0ICgxMDksMykgd2lkdGggMzQ1OiAiXHh7NTU0Rn1ceHszMDU3fVx4ezMwNUZ9XHh7MzBBNn1c
eHszMEE3fVx4ezMwRDZ9XHh7MzBEQX1ceHszMEZDfVx4ezMwQjh9XHh7MzA2RX1ceHszMEIzfVx4
ezMwRjN9XHh7MzBDNn1ceHszMEYzfVx4ezMwQzR9XHh7MzA0Qn1ceHszMDg5fVx4ezMwODJ9XHh7
NjkxQ30iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEzNiwzKSB3aWR0aCAyMDA6ICJceHs3RDIy
fVx4ezMwNTl9XHh7MzA4Qn1ceHszMDUzfVx4ezMwNjh9XHh7MzA0Q31ceHszMDY3fVx4ezMwNER9
XHh7MzA3RX1ceHszMDU5fVx4ezMwMDJ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7
RElWfSBhdCAoMTg2LDgpIHNpemUgMTY5eDM2NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDAp
XQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDMpIHNpemUgMTl4NTUKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTQsMykgd2lkdGggNTU6ICJceHszMDVCfVx4ezMwNjN9XHh7MzA0
Qn0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgxMTQKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNTgpIHNpemUgMzB4MTE0CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMyw1OCkgd2lkdGggMTE0OiAiXHh7MzA0Rn1ceHs4OThCfVx4ezMw
NjR9XHh7MzA1MX1ceHszMDVGfVx4ezMwNTl9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59
IGF0ICgwLDApIHNpemUgMTl4NzYKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMs
MTcyKSBzaXplIDMweDc2CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywxNzIpIHdpZHRoIDc2
OiAiXHh7MzA3MH1ceHszMDg5fVx4ezMwNTd9XHh7MzA0NH0iCisgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXg3NgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMywyNDgpIHNpemUgMzB4NzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDI0OCkg
d2lkdGggNzY6ICJceHs4QTE4fVx4ezRFOEJ9XHh7MzA0Q31ceHszMDY5fSIKKyAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDUzeDM1OAorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMywzMjQpIHNpemUgNjR4MzU4CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMywzMjQpIHdpZHRoIDM3OiAiXHh7MzA1M31ceHszMDZCfSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgzNywzKSB3aWR0aCAzNzogIlx4ezMwNDJ9XHh7MzA2M30iCisgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgxMTQKKyAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDM3LDQwKSBzaXplIDMweDExNAorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDM3LDQwKSB3aWR0aCAxMTQ6ICJceHszMDVGfVx4ezMwNEJ9XHh7NUZEOH1ceHszMDhDfVx4ezMw
NjZ9XHh7MzA1N30iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAx
OXg5NAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzcsMTU0KSBzaXplIDMweDk0
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzcsMTU0KSB3aWR0aCA5NDogIlx4ezMwN0V9XHh7
MzA2M31ceHszMDVGfVx4ezdENEN9XHh7OUExM30iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSA1M3gzMzYKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDM3LDI0OCkgc2l6ZSA2NHgzMzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywyNDgpIHdp
ZHRoIDkxOiAiXHh7MzA2Rn1ceHszMDQyfVx4ezMwOEF9XHh7MzA3RX1ceHszMDU5fSIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3MSwzKSB3aWR0aCAxOTogIlx4ezMwNEJ9IgorICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTl4MTMzCisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg3MSwyMikgc2l6ZSAzMHgxMzMKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3MSwyMikgd2lkdGggMTMzOiAiXHh7MzA2QX1ceHszMDg5fVx4ezMwQkZ9XHh7MzBBNH1c
eHszMEM4fVx4ezMwRUJ9XHh7MzA2OH0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxOXgxNTIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcxLDE1
NSkgc2l6ZSAzMHgxNTIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3MSwxNTUpIHdpZHRoIDE1
MjogIlx4ezMwQTJ9XHh7MzBDOX1ceHszMEVDfVx4ezMwQjl9XHh7MzA2MH1ceHszMDUxfVx4ezMw
Njd9XHh7MzA2QX0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA1
M3gzNTkKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcxLDMwNykgc2l6ZSA2NHgz
NTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3MSwzMDcpIHdpZHRoIDU1OiAiXHh7MzA0Rn1c
eHszMDAxfVx4ezhBMkF9IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwNSwzKSB3aWR0aCA3
MzogIlx4ezU1NEZ9XHh7MzA1N31ceHszMDVGfVx4ezMwQTZ9IgorICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgMTl4MTcwCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgxMDUsNzYpIHNpemUgMzB4MTcwCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTA1
LDc2KSB3aWR0aCAxNzA6ICJceHszMEE3fVx4ezMwRDZ9XHh7MzBEQX1ceHszMEZDfVx4ezMwQjh9
XHh7MzA2RX1ceHszMEIzfVx4ezMwRjN9XHh7MzBDNn0iCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTE2LDI0Nikgc2l6ZSA0NngzNTIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE2
LDI0Nikgd2lkdGggMTA5OiAiXHh7MzBGM31ceHszMEM0fVx4ezMwNEJ9XHh7MzA4OX1ceHszMDgy
fVx4ezY5MUN9IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNDMsMykgd2lkdGggMjAwOiAiXHh7
N0QyMn1ceHszMDU5fVx4ezMwOEJ9XHh7MzA1M31ceHszMDY4fVx4ezMwNEN9XHh7MzA2N31ceHsz
MDREfVx4ezMwN0V9XHh7MzA1OX1ceHszMDAyfSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGlu
Zykge0RJVn0gYXQgKDM3MSw4KSBzaXplIDE2OXgzNjYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAw
MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDMpIHNpemUgMTl4NTUKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCA1NTogIlx4ezMwNUJ9XHh7MzA2M31ceHsz
MDRCfSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDExNAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMyw1OCkgc2l6ZSAzMHgxMTQKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgzLDU4KSB3aWR0aCAxMTQ6ICJceHszMDRGfVx4ezg5OEJ9XHh7
MzA2NH1ceHszMDUxfVx4ezMwNUZ9XHh7MzA1OX0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAxOXg3NgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MywxNzIpIHNpemUgMzB4NzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDE3Mikgd2lkdGgg
NzY6ICJceHszMDcwfVx4ezMwODl9XHh7MzA1N31ceHszMDQ0fSIKKyAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDc2CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgzLDI0OCkgc2l6ZSAzMHg3NgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMjQ4
KSB3aWR0aCA3NjogIlx4ezhBMTh9XHh7NEU4Qn1ceHszMDRDfVx4ezMwNjl9IgorICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNTN4MzU4CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgzLDMyNCkgc2l6ZSA2NHgzNTgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgzLDMyNCkgd2lkdGggMzc6ICJceHszMDUzfVx4ezMwNkJ9IgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDM3LDMpIHdpZHRoIDM3OiAiXHh7MzA0Mn1ceHszMDYzfSIKKyAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDExNAorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMzcsNDApIHNpemUgMzB4MTE0CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMzcsNDApIHdpZHRoIDExNDogIlx4ezMwNUZ9XHh7MzA0Qn1ceHs1RkQ4fVx4ezMwOEN9XHh7
MzA2Nn1ceHszMDU3fSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDE5eDk0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNywxNTQpIHNpemUgMzB4
OTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywxNTQpIHdpZHRoIDk0OiAiXHh7MzA3RX1c
eHszMDYzfVx4ezMwNUZ9XHh7N0Q0Q31ceHs5QTEzfSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtT
UEFOfSBhdCAoMCwwKSBzaXplIDUzeDMzNgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMzcsMjQ4KSBzaXplIDY0eDMzNgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM3LDI0OCkg
d2lkdGggOTE6ICJceHszMDZGfVx4ezMwNDJ9XHh7MzA4QX1ceHszMDdFfVx4ezMwNTl9IgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDMpIHdpZHRoIDE5OiAiXHh7MzA0Qn0iCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgxMzMKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDcxLDIyKSBzaXplIDMweDEzMworICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcxLDIyKSB3aWR0aCAxMzM6ICJceHszMDZBfVx4ezMwODl9XHh7MzBCRn1ceHszMEE0
fVx4ezMwQzh9XHh7MzBFQn1ceHszMDY4fSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDE5eDE1MgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNzEs
MTU1KSBzaXplIDMweDE1MgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDE1NSkgd2lkdGgg
MTUyOiAiXHh7MzBBMn1ceHszMEM5fVx4ezMwRUN9XHh7MzBCOX1ceHszMDYwfVx4ezMwNTF9XHh7
MzA2N31ceHszMDZBfSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDUzeDM1OQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNzEsMzA3KSBzaXplIDY0
eDM1OQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDMwNykgd2lkdGggNTU6ICJceHszMDRG
fVx4ezMwMDF9XHh7OEEyQX0iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTA1LDMpIHdpZHRo
IDczOiAiXHh7NTU0Rn1ceHszMDU3fVx4ezMwNUZ9XHh7MzBBNn0iCisgICAgICAgIFJlbmRlcklu
bGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgxNzAKKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDEwNSw3Nikgc2l6ZSAzMHgxNzAKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MDUsNzYpIHdpZHRoIDE3MDogIlx4ezMwQTd9XHh7MzBENn1ceHszMERBfVx4ezMwRkN9XHh7MzBC
OH1ceHszMDZFfVx4ezMwQjN9XHh7MzBGM31ceHszMEM2fSIKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxMDUsMjQ2KSBzaXplIDU3eDM1MgorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MDUsMjQ2KSB3aWR0aCAxMDk6ICJceHszMEYzfVx4ezMwQzR9XHh7MzA0Qn1ceHszMDg5fVx4ezMw
ODJ9XHh7NjkxQ30iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE0MywzKSB3aWR0aCAyMDA6ICJc
eHs3RDIyfVx4ezMwNTl9XHh7MzA4Qn1ceHszMDUzfVx4ezMwNjh9XHh7MzA0Q31ceHszMDY3fVx4
ezMwNER9XHh7MzA3RX1ceHszMDU5fVx4ezMwMDJ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0
aW5nKSB7RElWfSBhdCAoNTU2LDgpIHNpemUgMTk0eDM2NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMw
MDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDMpIHNpemUgMTl4Mjcy
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDMpIHdpZHRoIDI3MjogIlx4ezMwNUJ9XHh7MzA2
M31ceHszMDRCfVx4ezMwNEZ9XHh7ODk4Qn1ceHszMDY0fVx4ezMwNTF9XHh7MzA1Rn1ceHszMDU5
fVx4ezMwNzB9XHh7MzA4OX1ceHszMDU3fVx4ezMwNDR9XHh7OEExOH1ceHs0RThCfSIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDU4eDM0NQorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMywyNzUpIHNpemUgNjl4MzQ1CisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMywyNzUpIHdpZHRoIDczOiAiXHh7MzA0Q31ceHszMDY5fVx4ezMwNTN9XHh7MzA2
Qn0iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDIsMykgd2lkdGggMTY0OiAiXHh7MzA0Mn1c
eHszMDYzfVx4ezMwNUZ9XHh7MzA0Qn1ceHs1RkQ4fVx4ezMwOEN9XHh7MzA2Nn1ceHszMDU3fVx4
ezMwN0V9IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUzLDE2Nykgc2l6ZSA1NXgz
MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTMsMTY3KSB3aWR0aCAxNjQ6ICJceHszMDYzfVx4
ezMwNUZ9XHh7N0Q0Q31ceHs5QTEzfVx4ezMwNkZ9XHh7MzA0Mn1ceHszMDhBfVx4ezMwN0V9XHh7
MzA1OX0iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDg5LDMpIHdpZHRoIDE5OiAiXHh7MzA0Qn0i
CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgzMjIKKyAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDg5LDIyKSBzaXplIDMweDMyMgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDg5LDIyKSB3aWR0aCAzMjI6ICJceHszMDZBfVx4ezMwODl9XHh7MzBC
Rn1ceHszMEE0fVx4ezMwQzh9XHh7MzBFQn1ceHszMDY4fVx4ezMwQTJ9XHh7MzBDOX1ceHszMEVD
fVx4ezMwQjl9XHh7MzA2MH1ceHszMDUxfVx4ezMwNjd9XHh7MzA2QX1ceHszMDRGfVx4ezMwMDF9
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDg5LDM0NCkgc2l6ZSA5M3gzNjAKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoODksMzQ0KSB3aWR0aCAxOTogIlx4ezhBMkF9IgorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxMjcsMykgd2lkdGggMzQ1OiAiXHh7NTU0Rn1ceHszMDU3fVx4ezMw
NUZ9XHh7MzBBNn1ceHszMEE3fVx4ezMwRDZ9XHh7MzBEQX1ceHszMEZDfVx4ezMwQjh9XHh7MzA2
RX1ceHszMEIzfVx4ezMwRjN9XHh7MzBDNn1ceHszMEYzfVx4ezMwQzR9XHh7MzA0Qn1ceHszMDg5
fVx4ezMwODJ9XHh7NjkxQ30iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE2MywzKSB3aWR0aCAy
MDA6ICJceHs3RDIyfVx4ezMwNTl9XHh7MzA4Qn1ceHszMDUzfVx4ezMwNjh9XHh7MzA0Q31ceHsz
MDY3fVx4ezMwNER9XHh7MzA3RX1ceHszMDU5fVx4ezMwMDJ9IgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpD
YW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlw
ZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1leHBlY3RlZC5wbmcKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoK
CmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQzdtbERRMUJK
UTBNZ1VISnZabWxzWlFBQWVBR0YKVk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEy
L1JGaWF3emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBG
S042cktHS2hGeTN4elc1TXRxWHF3TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNm
RUpxCi9JZ0FqcUlKUVRRbFZkdnNUaVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0ho
UDFBNEVlYTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lm
RUExTGM1L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZ
cUdjVHZZT2tMMmQ5SDVPczk0K3dpSENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtH
QVZ0eHFwCitEWENGRjhRVFNlaVZISFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStM
cUhCWDBtMXhPdjRuZFdVZUY1anhObjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VF
Q0dQQm94TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNK
TDhRZjRxcjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBO
WFI1YXNlWHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pF
MzM1OXNmenM5NGk3UExyWFdjNjJKaXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQ
aUtURW1kb3JuSVltWHhTN3hrdGhMcXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0
NHZVWi9EUFZSbEJuTTBsU0o5My9DS21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0
VTNIdkVLRmxwVzV6CnJnSVh2OUY5OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdw
bU5PV2xzMDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1
UXZmRXAwcGxrL3F2OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxF
UVZSNEFleDlCZGdrTmZKK2tNWGQzZDFsY1E2NUIzZDNsOFBoT054dWdUL3VoeHp1ZG5EQUhiL0Yz
UTZIdzIzaGNGbGNGcGY4CjY2MmxlbnQ2dXFmVFBUM3p6Y3ozNW5tK0w5MUpwWks4U1dwU25hUXlr
aGZuNklnQUVTQUNSSUFJRUFFaVFBU0lBQkVnQW0xQVlPUTIKNU1Fc2lBQVJJQUpFZ0FnUUFTSkFC
SWdBRVNBQ2lnQVZFSFlFSWtBRWlBQVJJQUpFZ0FnUUFTSkFCTnFHQUJXUXRrSE5qSWdBRVNBQwpS
SUFJRUFFaVFBU0lBQkdnQXNJK1FBU0lBQkVnQWtTQUNCQUJJa0FFaUVEYkVLQUMwamFvbVJFUklB
SkVnQWdRQVNKQUJJZ0FFU0FDClZFRFlCNGdBRVNBQ1JJQUlFQUVpUUFTSUFCRm9Hd0pVUU5vR05U
TWlBa1NBQ0JBQklrQUVpQUFSSUFKRWdBb0krd0FSSUFKRWdBZ1EKQVNKQUJJZ0FFU0FDYlVPQUNr
amJvR1pHUklBSUVBRWlRQVNJQUJFZ0FrU0FDRkFCWVI4Z0FrU0FDQkFCSWtBRWlBQVJJQUpFb0cw
SQpVQUZwRzlUTWlBZ1FBU0pBQklnQUVTQUNSSUFJRUFFcUlPd0RSSUFJRUFFaVFBU0lBQkVnQWtT
QUNMUU5BU29nYllPYUdSRUJJa0FFCmlBQVJJQUpFZ0FnUUFTSkFCWVI5Z0FnUUFTSkFCSWdBRVNB
Q1JJQUlFSUcySVVBRnBHMVFNeU1pUUFTSUFCRWdBa1NBQ0JBQklrQUUKUm0wV2dwRkdHcWxaRmt4
UEJJZ0FFU0FDYlVUQWU5OVVicFQ3VGNISHhFU0FDQkNCdGlQUXJOeXZ1c0JjQWFrYVVmSWpBa1NB
Q0JBQgpJa0FFaUFBUklBSkVJQk1CS2lDWjBEQ0NDQkFCSWtBRWlBQVJJQUpFZ0FnUWdhb1JhSG9M
VnJ4QW5iYThFeThibjRrQUVTQUMvUm1CClZtMmJvdHp2ejcyS2RTY0NSS0NURVdpVjNLK2l6bHdC
cVFKRjhpQUNSSUFJRUFFaVFBU0lBQkVnQWtRZ0NBRXFJRUV3a1lnSUVBRWkKUUFTSUFCRWdBa1NB
Q0JDQktoQ2dBbElGaXVSQkJJZ0FFU0FDUklBSUVBRWlRQVNJUUJBQ1ZFQ0NZQ0lSRVNBQ1JJQUlF
QUVpUUFTSQpBQkVnQWxVZ1FBV2tDaFFMOFBqb280L2NZNDg5VmlCRi95Sjkvdm5uM2RkZmY5MVVw
WC85OVZmM24vLzh4dzBaTXFRcFBxMU96TDdRCmFvVEpud2gwQmdJYzY0M2JnWEsvTVQ2TUpRSzlp
RUNsQ3NqbGwxL3UxbHh6VFRmOTlOTkhmMHN2dmJRNzlOQkQzVTgvL2RTTCtCV3UKMHhKTExPRVdY
M3h4ZC8vOTl4ZE8yNnNKbm52dU9iZjc3cnU3V1dlZDFjMDMzM3p1NDQ4L0xsWFZSeDU1eEcyMzNY
WnU4c2tuZCtoMwpuYTdvc1MrVWFtWW02akFFS1Bmekc0Ump2UjRqeW4zT0FlcDdCVVA2RXdLVm11
SGRjc3N0SGY3bW4zOStCK0V5MWxoanVXZWZmZFpOCk1NRUUvUW5UaG5XZFo1NTU5QXYvVkZOTjFa
Q3VQMFhPTmRkYzd1Q0REM1lYWDN5eFZudlVVY3QxU3loMnM4d3lpM3Y4OGNmZFo1OTkKNWpyWi9C
d3F5cjdRbjNwNTc5YVZjaisvYlRuVzZ6R2kzT2Njb0w1WE1LUS9JVkRwQ29nQkIyRUxOKzIwMDFM
NU1GQis5d2NQSHV5RwpEaDJxWC9zVFVmMzJGUW9IRkxKcHBwbEdNU2lyZ0VEaG1IVFNTWFZpRDBh
ZGZqOUJvNzZBYldRbm5IQkN6L1dKWHExWHp6VlVpUXBSCjdtZUQxbWlzWjZmcTdSaksvVm5yR3Jo
WDVXT3YxcXV1QVJsUUNJR1dLQ0Nqano2NkZtTEFnQUdGQ3ROZmlNdE9zSHNkbjVGSEh0NGQKelM5
Ylg4TzMwMWRBVUQ4cmE3S3Vnd1lOY3JmZmZuc3l1T3ZmZTdWZVhkOHdGVlNBY3I4eGlGbGp2WEdx
M284MWVXOSsyUm9idnBUNwpaUkZzWFRySy9kWmgyODJjVzZLQXRCdVFUdi9TM1F3ZVAvLzhjMjd5
SDM3NElaZW1Vd25TemdaMTJnOUlNLzJyVE50Y2Nza2w3cGhqCmppbmRaTC84OGt2VEIvbExaOTRn
WWJQMWFzQ2FVZjBRZ1diR1phZkRSYm5mOXkzVVRQK2kzQi9SZnBUN0k3RGdVeTBDSGFtQVhIcnAK
cFc3VlZWZDFxNjIybXB0enpqbmRHbXVzNFc2NjZhYmFrc3NienBmc3UrKyticm5sbG5PLy9mYWJP
K3l3dzl4a2swM21OdDU0NDRnVwpnaHphOThvcnIrd21tV1FTdDlCQ0M3bS8vLzN2U2g4UnljTjc3
NzNuamp2dU9MZm9vb3RxOElNUFB1aldXV2NkTitXVVU3cUZGMTdZCjRSM3VndzgrY0VjZmZiUWJP
SENnbTIyMjJkeUJCeDRZdk5Ybm0yKytjVmRlZWFWYlpaVlYzR1dYWGFiODhBOFRSbnp0eGdIcUZW
ZGMKMFEwYk5renJNdSs4OCtvNW1rVVdXU1QxUVBVWlo1emhsbDkrZVhmSUlZZTREVGZjMEsyNzdy
cnVvb3N1VXI3WFhudXRXM2JaWmJXTQpPKzY0WTVRWHpsa0FDNVI5OXRsbmo4THgwQTRNTE1Nenp6
eFQyeGY3eDVkWlpobDN4QkZIS0E2SVQxTkFRdnVFOFcva2gvSUs2VjlaCitUUnFHNlRKNmd2bm5Y
ZWU5Z1A4K0QzeHhCUGFYOUZuUC9ua2s2eXNvbkQwSWJRNUR2VEQ4TU9DQ3k3b1RqcnBwQ2plSHFw
dTU1QXgKMWt5OXJOejBleHVCS3NkbFNKOEVtbFdQaGJRV3locnJsUHVVKzlaZm1wR1BsUHVHSXYy
dVEwQW1PazA1cWJDM1AyTzA3YmJiYXBqcwpDYmFnSUY5K05MeE1wUDBjYzh6aDMzenpUVTBqWHhL
OFRGS1YzdzQ3N0JEeE9mLzg4NzBvQnhvdWg5bjhQdnZzNDBWaDhMTHR5NDgvCi92aGVoTHYvL1BQ
UHZVekl2RXo2dmV4QjlOOTk5NTNmYkxQTk5JMU05aU5lOTkxM24xOXBwWlUwZkl3eHh2QXlHZmJi
YkxPTkZ5WEIKLy9uUGY5WndVV3c4NkdUQzcwVlI4UmRjY0lHWFNiekduWHJxcVJHdnJJZVhYMzVa
K1k0enpqaWE1c0lMTDR4SXhZcU1sd1BVR2o3agpqRFA2RlZaWXdlKzIyMjVlemdCNG1YeHF1R3h2
OEhLNE9rcHp4UlZYK0lrbW1zZ0RIemhSd0JTbnd3OC9QS0tSeWFlbUZZVW5Dc1BEClUwODlwZUZv
TjNQdHdBQjVvWnpvSDZMQStTKysrRUt6UjlzQWMrdEhIMzc0b1JYTEYra1RsbWp6elRkWFhzQW83
b3J3Q3VsZmNkN3gKNTd5MmFkUVhmdnp4UjMvTk5kZG8rZEVudi8zMlcvMERibzNjM1hmZjdVY1pa
UlIvNG9rblJtVG85OEEwamtQVjdSdzZ4c3JXSzZvTQpINXBHd01aWGZOeVhaWnJHaTNLL0hzMUdZ
NTF5bjNMZmVreForVWk1YndqU3owSWdUVlpuMGJZN2ZNUU10R1RPYVpVciswT0V5UlA0CjNYSEhI
VFdsd1NSYlZrSTBUcGJ6b2pqUi9EVU1FeTlNMnVEZWZmZGRENkVQdDhjZWU2Z2lvUysvLzVNdlhw
b0crV0F5Wmc3S2lld2gKMWJpcnJycktndFhIQkI3MG1CQ0N6cHlZMHRWd01mbHFRYm4rQmh0c29H
bmlDZ2dTM1hubm5Sb09SZU9GRjE2SStFQXdXZjZ5MGhPRgppN2xqeFNRS2tJZlhYbnZOaXpXcEtP
aVdXMjVSbmtrRjVQdnZ2OWR3MUNudTJvRUJmblNScjN6ZGoyZXRDaVBxamppeG1SL0ZGZTBUClNK
aWxnQlRsbGRlL29rSW1Ia0xhQmtteStzSy8vLzF2eFVGV0FCT2NzMTkzM25sblRRT2wyWnlzNEdq
WW4vNzBKd3RTdjhwMkxqTEcKeXRTcnB1QjhhUW9CakMzN2E0cVJKRFkrOE0xUjdoc1M5WDdXV0tm
Yy84VlQ3Zy92TDJYa0krVisvVmhqU0MwQ2FiSzZscUx2M2pwbQpDNVpNaXB4OHZkZER1ZGhXRkhj
aW9KeHRJenJvb0lPaUtGa3QwT2VKSjU3WWlZRFhaMWhTa2hVVTk4NDc3N2l6eno3YmpUMzIyRTYr
CkFFZC85OTU3YjJTWjY2R0hIb3A0alRubW1FNVdUdlFkVzc3aURsdWc0UDc0eHo4NjBKbWJlKzY1
OVJIYnNrTGR1T09PcTZUSmJVYW8KQXh6TXlCcGZ2STgyMm1qdWxGTk93YU1UaGNsOTlkVlgranpE
RERNNFViVFVmQzBzVE1EaEhvMzQ5ak1ObEgvSnZPemRmS05yTlFiWQpGb0h0WXRqNmhTMXNjU2RL
cEp0dXV1azB5TXBWcGsvRWVjYWZ5L0JxMUwvaXZKUFBvVzJUMVJlTW4rRmc3NDE4V2FseisrKy92
MjRiCk5Mcnh4aHRQSDNISlY5eFYxYzVGeDVpVm9VaTlMQTM5M2tTZzZuRlp0RTlXTlJieVdpZHJy
RlB1VSs0biswNFIrVWk1bjBTUDc5MkUKUU1jb0lDKysrS0tUN1NZNkNUVnJGbkVnY1I0RFRyYm5x
QmxiUEpzeUFNVWhhVUVEKytleHh4WUtDQTZFeGYva1M3aVRMVGE2WHg1OAo4cHhzbTBvbHNmdE5V
TzVXT3B5RHdma1Z1RGZlZUVOOStkcm9NR2svOXRoamRUSXZxMFlham92OFd1R3F3T0RWVjE5VnhY
RG1tV2RPCkxTTHFFM2RsK2tROGZmeTVESzlHL1N2T08vbGNWZHNVK1NHQ1VuZjg4Y2M3VEhUZWV1
c3Q5OWUvL2xYUGdhQnMySU1lNm9xMGM5a3gKVnFSZW9lVW1YWGNpVVBXNExOc24wOUFyTWhiUzBq
Y2JScmsvWGFxVndMUzVRQmJXVmZldnJId1FUcm4vZzJzMHQ2TGNiOVI3K21kYwp1UnZmV29DVlRh
eVRpb1JsaGEvam1LRGlhejlvY2R0MUk0ZkpMaHhzMCtPZ2N6UE96QWtuQjFEeXZaazg4dEppWmVm
VFR6K05Ecy9qCmdERnVVOTkwMDAzZE04ODhvd2ZMNWR5SWsvTW96c3FieDdOSXZQRk0xam41M29q
bks2KzhvdEZZMVdua2pHZVZmYUpLWG8zS2pyaXEKMnNad3lNdlA0dVhjbEJvdlFMb2pqenhTeHd1
TUhoVGhVNlNkeTQ2eEl1V3h1dEh2VFFTcUhwZGwrMlFhdWtYR1FscjZLc0lvOSt0UgpMRElYcUxw
LzFaZG1SQWpsL2dnczBwNG85OU5RNmQ5aGZiNENBb3RQK0VLTFN3dmg1QXdITmhYWHRRb1VFemtn
cnVGMllWMGRVU3pBCmxyenhCYVFYM0pkZmZxblZpRnV1V21xcHBWVDUySDc3N1hVRjZLeXp6bEpM
V0oxYVg2eEN3YjM5OXR0QlJheXlUMVRKSzZUdzdXNGIKT1Rma0ZsdHNNVjBwazNNMnpyYVBoWlMx
TEUydmpiR3lPREJkY1FRbzk4TXdvOXh2Ymk1QXVSL1d6NHBRVWU0WFFZdTBqUkRvY3dWRQpMRnZw
dGh5c1ZFQkRsa1BYcVNablgzcnBKZDJpaFcxUGRsYWdVY1Zzb2c2enRGbGJVR0MyMTg1UE5PTFYx
M0c0SytQOTk5L1hMK3MyCitPV2d2QlpMTEdFNXNjamw3cnJyTGozYmN2UE5ON3ZYWDMrOXBzaWRV
a2RzS1lCNzdybm5WTkdzS1dUc3hiNlVWTmtucXVRVksycnEKWTVHMlNXWHdlNkRoMElqRzRyYlpa
aHMxMVF1ejBPMXlaY2RZa1hxMXF5N01wNzBJVU83bjQwMjUzL3hjZ0hJL3Y1OFZwYURjTDRvWQo2
Yk1RYUlrQ2dzUEdJVTZzUHJpSEgzNVlEMTNqSE1kT08rMmt5WEJYUmRJOThzZ2pHblRBQVFja28x
SlhUSENRZlFZNXFJMzdFN0ExCkNZcE4zQjExMUZGNndEdDU3aUJPWTg5V255b204cml2Qk01OHk4
UDh0RHd3b1VVWmNGZUdPU2hXWWdMVlh2VStrUDMyMjAvZmNRWUEKenM2b0pCVVNzWmFsOFZocENq
Mi9VZ1VHQ3l5d2dCT1R5YXIwNFM2VnVFUDdmUGJaWnhwa0NtUFpQcEcyZ2xhV0Z3cVV4aTllOXVS
egpTTnNnamZVQjg0MlBLWm5ZY2hmaTBJWlBQLzIwa3RvMk43eFltTFZkQ0MralRldUh5ZlJGeDFo
SXZiQ3Q4TWtubjB4bXhmY3VRTUQ2ClRsNVJLZmZyRVVvYmI1VDd6aFdaQzZUSmFjcjkrcjZXRm1K
ak42MGZKdWtwOTVPSThMMDBBakpvbTNLU2NXU1MwUmd0dWVTU0dpWUgKcDcxTUtpMVk3NENReWFY
ZVp5R0haTlhzYmZ4dUQxbHU5ckoxUk1OaG50Q2NUTkE4VEpMS0hrc1BzN1RtN3JubkhzMUhsQWcv
ZE9oUQpDNDc4cTYrKzJzdlhWcVVSeTFKZXZnNTd1YmpRaTdVb0w1ZnhxZWxYSXhaTFZsNjJlU210
VE9Jc1dIMjdDd1RtWGVOdXlKQWhTZzh6CmdxaFhpRU05Z0puY2RGMURMcE5GRFVlY1hDSVl4U0VQ
MlhLbTk1ZEVnZklnbC9kNVVUamlRVjR1b0ZOYUs0dFl6UEp5a0ZMNTRwNFUKc1FEbVpkWEh5NVl0
TDJkb05IenZ2ZmRXODcxZzFBNE1ZR0xaekIzRGhDdnFMV2RZOUc2UXNjWWFTOHNFTTdiWFhYZWQx
cTFvbjBDaQorZWVmWC9uRTcwUkJlRkZlZWYwTFBOTmNTTnNnWFZaZkVFcytXbjdnSVFxNmwwc3dQ
ZnB5STJmM3lNaWxtZHAvUk1GVEU5VEFXZzdUCmU1aDR2TzIyMjVSRmxlMWNaSXpsMWV2NjY2L1hl
bU1NaUFXN1J0VmxYQWtFMG1SMUNUYWFKSTBYNVg0Mm1sbGpuWEovVzArNVA3emYKNU1uSHRONUZ1
WitHQ3NQaUNLVEo2bmg4WHo2UE1PSmVzaFR4eXVHT2g5VlhYejJhUkNBT2szcjU4cWtUWVZNRzRt
bHNvbW5aNDNLNgpqVGJhU0M4VDNHdXZ2Yng4QWZIcnJiZWUzM3JycmZWQ05xUERKWHRRS293WGZ2
eE9PKzAwaTQ1ODNBOGlLd0VSSFNaa1lxN1U0eTRNCmMyS08xNisxMWxvUmpkekM3bkdIeHRkZmYr
M0Z5bFNVWGl4cStUMzMzRk9WS3RucTVIRXZoK1cvOXRwcit3Y2VlTUJZMXZtNC9FOVcKYjd3Y3dO
WTBVMDAxbFQvNTVKTTlsQVE0K3lHQ0FyYnJycnY2WmVVQ1JkaU9sKzFtcW1oQUNZczc1Q2NyUEg3
OTlkZjM1NXh6anQ5bApsMTAwRGU1K2lMdkJnd2Q3V1lhTzhrUVo1R3VIS25yZ0liY1BlL25TN3R1
QmdaVUxFL3ZwcDU4K3dnNFhTZDU2NjYxNnJ3a3d4UjBwCmRra2gwb1QyQ2R3dHN0VldXMFY4cDU1
NmFqOW8wS0FJNHlLOFF2dVgxU251NTdWTlhsOEFyeTIyMkVMckFlVWFTbUt5L2VQNTRSbksKcGJY
enZQUE82MDgvL1hSTkkrYXJWUW1YOHlGZVZzSmEwczRoWTh6SzI2aGVzc3FwRjRsaVRDMnh4QktX
aEg1RkNKaXNndCtzaS9PaQozS2ZjYi9UYlozMk5jci94SEFBNE5aS1BobVBjcDl5UG84SG5OQVRp
c2pvdHZpL0RSa0xtVXNEU0xyNmZ1MGxXTldYQTlpS1psS3NsCkg3a05QTHFqbzRZbzhBWGxnblVV
SEh6RUhSdG1YalV3ZVZ2SS92dmYvenJVRStYRGdXTGNMUUlNc0dVcHpUSVl0aXpoZmhUY0M0SXQK
VjFOTU1VVkR5MkN3a0NTVC9vZ1h0am5abHBpMlZEQWxFNXhyUWQza1JudU54WllqTXplY1FxNTRW
TlVucXV4ZnliSVdiWnRrZW50SAp1MDQ0NFlTRit2N0hIMy9zSnB0c01tT2hmanZhdXNnWWExUXZ0
SXNvMFE1YkpPV1czNXA2OEtVNUJLcVUxVlh5aXRlcXluRlpwRS9HCnk5RE9aOHA5cDlZZEtmZEg5
THBHOG5FRVZlMFQ1WDR0SG53YmdVQ3JaUFdJSE1vL2Rhd0NVcjVLM1preStVUFVuYlZncVlsQTh3
amcKc2tyWld1QmtLMTd6ek1naFFxREtINklxZVVVRjdJY1BsUHY5c05GWjVWUUVLUGRUWVdrNnNK
TmxkVXNPb1RlTkdCa1FBU0xRTHhIQQp5b2VjMGFMeTBTOWJuNVVtQWtTZ1B5SkF1ZDhmVzkyNWpy
bUlzSC9DUDZMV0gzMzBrYjdJdVpNUmdYd2lBdjBNZ1EwMzNOQ1ptY2QrClZuVld0eDhpUUxuZkR4
dWRWYTVEZ0hLL0RwSitFY0FWa0E1b1pqazg3ZVRRc0pZRUZ6R0toU3ozNktPUGRrREpXQVFpMEY0
RXFIeTAKRjIvbTFuY0lVTzczSGZiTXViTVFvTnp2clBab1YybDRCcVJkU0RmSVI2d2lPVnc2Rlhj
REJneHdBd2NPakFmeG1RZ1FBU0pRR29FcQo5d0pYeWF0MGhibzhJZVYrbHpjZ2kwOEV1Z0NCVHBi
VlZFQzZvQU94aUVTQUNCQ0JaaEdvOG9lb1NsN04xb3ZwaVFBUklBSkVJQjJCClRwYlYzSUtWM21Z
TUpRSkVnQWdRQVNKQUJJZ0FFU0FDUktBRkNMUlVBWkhieVIzdUlBaDFyYVFQNFIxQ1kzVUpwYzJq
eTRzdmtsK1YKdkN6Zk5EODBINlFOb1EyaHFaSlhTSDVWMFlTV0czVG1RdkkyV3ZwRW9OTVFLTnAv
VzBrZndqdUV4akFPcGMyank0c3ZrbCtWdkN6ZgpORDgwSDZRTm9RMmhxWkpYU0g1VjBZU1dHM1Rt
UXZJMld2cEVvQmNRcU53SzFpZWZmS0lIcW5IQjNDeXp6S0lZeVMzT1RtNFJkM0t6CmR4MW1yYVFQ
NFIxQ1k0VU9wYzJqeTRzdmtsK1Z2Q3pmTkQ4MEg2UU5vUTJocVpKWFNINVYwWVNXRzNUbVF2STJX
dnBFb05NUUtOcC8KVzBrZndqdUV4akFPcGMyank0c3ZrbCtWdkN6Zk5EODBINlFOb1EyaHFaSlhT
SDVWMFlTV0czVG1RdkkyV3ZwRW9PY1FrTnRpbTNJQwpDRzVTMXo4WlRINmxsVmJ5WWxwUWVUNzAw
RU5lYnZYMmNxT3hmK2VkZC94RkYxMVVrMWNyNlVONGg5QllnVU5wOCtqKzlyZS9CV0dVCnh3ZFlo
dENnL0tGMFZ0ZWtYeVI5Q0cwSVRXaTVRM2kxa3lhMDNIR01ROG9YcCtjekVTaURnTWxwK00yNk9L
K2kvYmVWOUNHOFEyZ00KbjFEYVBEcksvV3Avci9Md0R2MTlySW9QK2tzSUwrdFhaZWpqYWZsTUJF
SVJpTXZxMERUdG9xdDBDeFp1c2h3MGFKQ2JaSkpKM0RMTApMT08rKys0Nzk4QUREN2k5OTk3YlRU
dnR0SFhic1ZwSkg4STdoRVlhVDEwb2JSN2ROZGRjRTRSUkhoOXNiUXVoUWVGRDZZYlh0UDUvCmtm
UWh0Q0Uwb2VVTzRkVk9tdEJ5eDFFT0tWK2NuczlFb0pNUUtOcC9XMGtmd2p1RXh2QU5wYzJqbzl5
djl2Y3FEKy9RMzhlcStLQy8KaFBDeWZsV0dQcDZXejBTZ0Z4Q29WQUY1NXBsbjNLS0xMdXB1dmZW
V044b29vN2dWVjF6UnZmbm1tMjcxMVZkWHJFWWJiYlFhekZwSgpIOEk3aE1ZS0hFcWJSL2YrKys4
SFlaVEhCMWlHMEtEOG9YUlcxNlJmSkgwSWJRaE5hTGxEZUxXVEpyVGNjWXhEeWhlbjV6TVI2Q1FF
Cml2YmZWdEtIOEE2aE1YeERhZlBvS1Blci9iM0t3enYwOTdFcVB1Z3ZJYnlzWDVXaGo2ZmxNeEhv
QlFRcVZVRE0zTmVERHo3b1ZsaGgKQmNYbmpqdnUwTlVRV1o1MFUwMDFWUTFtcmFRUDRSMUNZd1VP
cGMyakczMzAwWlZsSGtaNWZJQmxDQTB5QzZXenVpYjlJdWxEYUVObwpRc3Nkd3F1ZE5LSGxqbU1j
VXI0NFBaK0pRQ2NoVUxUL3RwSStoSGNJamVFYlNwdEhSN2xmN2U5Vkh0Nmh2NDlWOFVGL0NlRmwv
YW9NCmZUd3RuNGxBTHlBd3l1SGltcW5JRVVjY0VTVmZkOTExM2NRVFQrem1tV2NlZC8zMTE3c1BQ
L3pRNFRENkYxOTg0VjU1NVJXMzVaWmIKNnNxSUpYajIyV2RiUmgvQ1c4Nm5CT2Nmd2crclBubDBF
MDQ0b1c1Unk4TW9qdyt3REMxL0NDK1VQY3NWU1I5Q1cyVzVRM2kxa3lhawpEelE3RHJMYWllRkVv
QkVDY1ZuZHBOaDNjVjZVKzVUN2xQdjVmWUJ5djVGMFlseXJFSWpMNm1ibGZ1VmxiUGF3aVJRb09v
VCsrZWVmCmU5bHU1Yi82NmlzdmV6RDk5OTkvcit3Ly92aGpQWVNlekt1VjlDRzhRMmlzektHMGVY
UjU4VVh5cTVLWDVadm1oK2FEdENHMElUUlYKOGdySnJ5cWEwSEtEemx4STNrWkxud2lVUlNBdXE4
dnlzSFJ4WGtYN2J5dnBRM2lIMEZnOVEybno2UExpaStSWEpTL0xOODBQelFkcApRMmhEYUtya0Za
SmZWVFNoNVFhZHVaQzhqWlkrRVNpTFFGeFdsK1hScW5TVjM0VCt3UWNmdUpOUFB0bE5OOTEwYW9a
WGxCSDN4aHR2CnVNVVdXOHlKaFN6Qm90YTFrajZFZHdpTmxUaVVObzh1TDc1SWZsWHlzbnpUL05C
OGtEYUVOb1NtU2w0aCtWVkZFMXB1MEprTHlkdG8KNlJPQk1nallGaEdrbFIrVU1peWlORWxlUmZ0
dksrbERlSWZRV0dWRGFmUG84dUtMNUZjbEw4czN6US9OQjJsRGFFTm9xdVFWa2w5VgpOS0hsQnAy
NWtMeU5sajRSS0lOQVVsYVg0ZEdxTkpVcklGYlFYMy85MVlucFhUZjU1Sk83c2NZYXk0SXovVmJT
aC9BT29iSENoOUxtCjBlWEZGOG12U2w2V2I1b2ZtZy9TaHRDRzBGVEpLeVMvcW1oQ3l3MDZjeUY1
R3kxOUlsQUVnU3AvaUxKNEZlMi9yYVFQNFIxQ1l4aUgKMHViUjVjVVh5YTlLWHBadm1oK2FEOUtH
MEliUVZNa3JKTCtxYUVMTERUcHpJWGtiTFgwaVVBU0JMRmxkaEVlcmFGdW1nTFNxd09STApCSWdB
RVNBQ3hSR284b2VvU2w3RmE4SVVSSUFJRUFFaUVJSkFKOHZxU3ExZ2hZQkJHaUpBQklnQUVTQUNS
SUFJRUFFaVFBVDZMd0pVClFQcHYyN1BtUklBSUVBRWlRQVNJQUJFZ0FrU2c3UWhRQVdrNzVNeVFD
QkFCSWtBRWlBQVJJQUpFZ0FqMFh3U29nUFRmdG1mTmlRQVIKSUFKRWdBZ1FBU0pBQkloQTJ4R2dB
dEoyeUpraEVTQUNSSUFJRUFFaVFBU0lBQkhvdndoUUFlbS9iYythRXdFaVFBU0lBQkVnQWtTQQpD
QkNCdGlOQUJhVHRrUGZ2REo5Ly9ubjM5ZGRmMTREdzBVY2Z1Y2NlZTZ3bXJPeExsYnp5eXRET3ZQ
TEtVaVlldHVmLzg1Ly91Q0ZECmh0UWw3K3U2ZmZ6eHgzVmx5Z3JvNUhwa2xabmhSS0EvSVVDNTN6
bXQzY255a25LL2MvcEpXMHJTN0JYclVraGNxYXQvemZKaSt0NUUKNE5sbm4vVzc3YmFibjJXV1di
U2Z5SVMzcHFJenpEQ0RodDkzMzMwMTRXVmVxdVNWbDM4Nzg4b3JTNUg0aHg5KzJHKzc3YlorNG9r
bgpWdHd2di96eXV1UjlXYmNmZnZqQlR6bmxsUDdkZDkrdEsxYzhvTlByRVM5ckp6eWJuSWJmckt1
U1Y3TmxZZnJPUklCeXY3UGFwZFBsCkplVithL3BMSjh0cXJvQkk2OUMxRm9HNTVwckxIWHp3d2U2
RER6N1FqRVlkZGRTYURPZVpaeDQzMFVRVHVhbW1tcW9tdk14TGxienkKOG05blhubGxLUksvK09L
THUrT1BQOTVOTWNVVW1peCtVWkh4NmN1Ni9lTWYvM0FmZnZpaE8rdXNzNnc0cVg2bjF5TzEwQXdr
QXYwRQpBY3I5em1yb1RwZVhsUHVkMVYvYVVwcG1kUzRwcEg1RmhVOVhpOEF2di96aVphSlhHMWpp
clNvK0piS3VOTWxzczgybWZTWHR5L2JQClAvOWNXVjVWOHNvclZEdnp5aXRMMGZpTk45NDRjd1VF
dkxMcTF1cit1UERDQzJ1NVJDbjEzMzc3Ylc2MXl0WWpsM0dQRVZRcHE2dmsKMVdNdys2ckdSMVY4
K2hwZnl2Mitib0hhL012S3kxYjNSOHI5Mm5hcTZxMlRaVFZYUUtSMVd1VUdEUnJrYnIvOTlxYlpW
OFduNllJMAp5V0Rra1lkM04vUGo3SktySXZHNG9zOVY4c3JMdTUxNTVaV2xhTHlWUFcwRkJMd3NQ
c20zbGYzeGtVY2VjYklVN3lhWlpCTDMrZWVmCnU4c3V1eXlaZmQyN2xiTm9QZW9ZTVlBSVZJQkFW
ZU9qS2o0VlZLa3BGaWJ2elk4enM3RWJEeXY3WENXdnZESzBNNis4c2hTTnQ3SVgKbFpldDdJK1Ur
MFZic1Rmb1c2NkEvUGJiYnkxSFNqVEYzRHd3cWFuYU5hcmJKWmRjNG80NTVwaW1zNnlLVDd3Z0lY
akY2ZVBQOGhXawo3aEI1UEQ3NS9OTlBQeVdEWEpiZ3F5UE1DSkF2OHhreFljR2hmYUZSKzRibFZF
c1ZpanNPQ1hhcWEwVi9qTmYxekRQUGRIdnNzWWZiCmZ2dnROZmh2Zi9zYmxsYmpKQzE1Umg3SmZK
THZaVE11T21iSzV0Tko2YW9lTzJsMUMybWYwTEdleGo4cnJGSGRxaG9mVmZHSjF5RUUKcnpoOS9M
bG9INmJjSDRGZUtPNlUrNVQ3STNwTlAzbVN3ZEdVRTVoMHV3VDh1TVBCMXMwMjI4eHZzY1VXZnVt
bGwvWTc3N3l6eHlHbwpOQ2ZDMXEreXlpcCsxVlZYOVhQTU1ZZGZmZlhWL2VEQmcydElmL3p4UjMv
TExiZDRtWmg0TE5YQklZL2xsbHZPanozMjJINjExVmJ6ClE0Y09yVW1EbDlOUFAxMXAvdktYdi9n
Tk50akFyN1BPT3Y3Q0N5K3NvUk5oNmYvNjE3LzZsVlphU1EvbUxyamdnbDcybjNzUkNEVjAKOXBK
WHQzUFBQZGZMSkZ0eEdYZmNjVDM0NFU4c1BCZ0xINUpuSXo3WFhIT05YMmFaWmZ5c3M4N3FkOWho
aDRqdlJSZGRwUFZBT0phKwo0KzZaWjU3eCsreXpqNlpEM1E0OTlGQS82YVNUK28wMjJpaE9sdnA4
MjIyM2FicWRkdHJKeXdUUkw3REFBdjdFRTA5TXBVWGdHV2VjCm9lMEozbi80d3gvODRZY2ZIaDFD
bC8zOVVUcXhpT1d2dU9JS3YvTEtLL3RMTDcwMENzZjJIK1NKdzlJcnJMQ0MvK2FiYjdTOGNqYkIK
eXhjY1AzRGdRUC9vbzQ5RzlIakk0bVZFSVgwQnRIbnRDNXFzdk1yMlUvQkUvVEVPMEU5bC83VDIx
YU9PT3NyZmZQUE4vcTY3N3ZLZgpmdm9weUJxNmtINWxERGJmZkhQdG84QS83ckxxMXFnL3h0T1hm
VWEva0pVUGJldTMzbnJMeXhkVExSL0dmU05YdEI1eFhxajcrdXV2Cjc3ZmFhaXYxSVlNUWhqNkhR
N1J3WmNZYTBvV09HV3hKUFBiWVkvMGlpeXlDWlA2QkJ4N3dhNis5dHBjek9uNmhoUmJTZDRTLy8v
NzcKSHYwQjhnL2orNEFERHZBeUdVWlVrTXVTMVVHSkUwUlp2RUxHanJHaTNKOVlmeGVTdnpXTnhs
bVp2a2k1bno4SFFKOE02YnRac3BGeQozMFoxY1o5eXYzdmtmdkhXYlp5aVZtdG9USnNhbS93aHdz
UjJ1KzIyMDBtdGZIM1NOSmg0anpmZWVIN0FnQUUxU2dnbW1SdHV1S0VxCkhXKysrYWJTSXMyV1cy
NnBFNC80eFByT08rLzB5eSsvdkliTFlXVy81NTU3NnVRVXdudSsrZWJUY0V3ZTRnNFRDZXdqdDNM
Z3h4cTgKTVJrMko5czgvTExMTHV1dnZQSktWVGkrKys0N1ZaeFFMOVFqN2tMckJtR0VId3J3Z0ZL
RGZlejRzOGxDYU1RLzZia0FBQ0FBU1VSQgpWSjU1ZkU0NjZTVE5BNVBXdUh2cXFhYzBIUG1iTy8v
ODg5V3lFTUl3dVlVaUFtVU1iVEwrK09QcnZtV2pUZnAzMzMyM0gyV1VVV29VCkR1QUZYc25KSytv
SXBRRUt3aGRmZktHc2dOc1JSeHdSbGNrVWtKZGZmbG5EeHhsbkhJMkxLNGI0TVpCRGN4bys0NHd6
Nm9RUWxyUk8KT09FRW5aUWg3OUZISDkwLy92ampta2NqWGlBSTZRdWg3ZHNvcnpMOUZPV1QxVEkv
NFlRVGVqRi9pMWYvOXR0dit3a21tRURyditTUwpTK3JrR0JPSlJpNjBYeG1QdElsN283cmw5VWZq
VzliSHVOeDk5OTJqNUppRW81MHhoaHE1b3ZVQUwvUlRLTlB6enorLy8reXp6eUwyCjk5eHpqK2FK
Zk9ONEZ4bHJZQlk2Wm1ENURmVkRmbU9NTVlhT2gyMjIyY2JMMWpQLzV6Ly9XY01ubTJ3eUR6ckl2
K09PTzg1ZmNNRUYKK25FQmFVNDk5ZFNvN0hrUG9MZS9QTnE4ZU9NREh5NTA3SUNXY3IveGIwM2VP
Q3ZTRnluMzgrY0FvWDIza1d5azNNZklMdWNvOTd0SAo3cGRyNGV4VUkyYW8yVFFOWTVJL1JPZWRk
NTZ1SXVCTFFkeEJtUUJ0L0tzNW5oRjJ4eDEzeEVsVllaaHp6amsxRGwvSnpPR3JxT1dICmlZSTVU
THl3NG9BdjQvZ0NiRzdOTmRmMDRCTjNyNzMybWhlTFRGRVF2dWJqQnovdTNudnZ2U2lmdUduWUlu
WDc5Ny8vclR5d01wTjAKUmZKc3hBZGZob0ZIVWdINS92dnZvL0xIODViektCb09aUUlLRWh5K3Zr
S3dObkpZdlVJK21CU1p3OWRoaFAzcFQzK3lJUFdoT0NEOAppU2VlcUFuSEFUWW9ESWl6U2JZUjRJ
cy93dU1LQ09JZzFCR09kQys4OElLUmUveEFvODZJd3dwWTNHWHhDdWtMUmRvWGVXYmxWYlNmCkFn
L1VFYXRBY1lkK2dqcnV2Ly8rOGVETTV5TDlDa3pTSnU3R1BLdHVqZnFqcFMzalk5ekM5TzVMTDcw
VUpZZGNRUDN4RjIvL2lPRDMKaHpMMWdGd0IzNXR1dWluSlRoVkJ4TVVWa0tKanJjaVl3VWNQeUM3
a2VkVlZWOVdVeC9vNWxCVFFtYnYvL3Z1VkhxdkxvUTc4N1M4MApUUmFkOFlFUFYyVHNVTzZQUURY
cnQ2YlJPQ3ZhRnluM0c4OEJpdlJkdEZ5V2JLVGNIOUd2UTU4bzk3dEw3b2UyYXloZHBXZEE1QWZT
CkhYVFFRVzY5OWRaenN2VklmcHRHdUpOUFB0bmRjTU1OYnRkZGQ5VkEwSXJtcXdkZDVjdmVDRUo1
a3NtWTIzSEhIVFVNL016SmwzcDkKeEJtQ2VCcjVjdXpramdtSGZhci8rOS8vak56SlhRWk9KdGRx
QWxhK2NtaTRiRjF3WWdWQ245OTU1eDEzOXRsbk85bkM1ZVFMZWZSMwo3NzMzT3ZuNnJEUVBQZlNR
K2tYcXBnbCsvNWM4NzFBa3owWjhHc1ZabnVZYnJhd2s2S1BjLytCRWlPcnpOTk5NNDJUYm01R2sr
dklsCjFza2syTW1LU1JRdksxcjZqQXVtek9Gc3hpR0hIT0ptbjMxMkp5c2dGcXkrS0QxdXV1bW0w
K2RrdWF5dkpNTlJUamkwN2R4eno2M1AKK0RmYWFLTzVVMDQ1UmQ5RlFYUmZmZlZWRkpmRks2OHZs
R25mckx5SzlsTlp4WEdpVkdFbUY5VUREN0x5b2UvUFBmZGNUWGphUzlsKwpsY1lMWVZsMU0vcGtX
MWw0V2YvNjY2L1hmaWdmRENJV3NnMUsreElDY0Jha2pFdXJCN0ErOE1BREhmcWtiQStzWXp2NTVK
TnJXRm9kCmsySDJicjR4Q3gwem9COXp6REdkOVprMTFsakRXS2d2MjdMVS8rTWYvNmgwRm1uandV
eGJXM2hmK0VYR0R1VisvbTlOdkEyVC9hcFIKbk5HYWI3U1UrOWx6Z0NKOTEvQk1reW1Jc3pFTS9F
UG1KNVQ3emxIdUQ1L1RkcVBjdC9IUWpGK3BBb0xKcUd4bmNEUFBQSE5kbVRCaApYWGZkZGQxWVk0
MmxjUysrK0tLVGJVazZLVFdyRFBGRU50bVY3VHBPem5iRW8xS2ZaUnVQaG1OeVlVNjJBdWtrUS9a
WDY0Ull2cWhxCmxHelpVbCsrMHF2U0FnVUVoeFhqZi9LVnpzbnl0WlB0V1VwYnBHNldQL3prajBH
UlBCdnhpY2VGUG1PaUF3ZEJtV2FSSklzUEZBcmMKR3dIQksxOTVuSnlYY1hKK1JNbmxiRWFVN05W
WFgzV1lDS2UxUDRndzRhdktZYUlLUzBsd2I3enhSaTdidkw1UXRuMXpNMDRRcFBWVApLRmh3RHo3
NG9Db2lsa1MyQittalRZZ3RQTTB2MjYvU2VJV0VKZnQxU0pwR05ISm15TWxYZmljcklORWZQaDdJ
ZVRCTmhnOEVjZ2FtCkVZdmdPUERGVGU5eXZzS1pJaDJjT0pBd2RNemtzYlAra3FTekR5U1FvWDN0
aW93ZHl2MzgzNXA0ZTFZeHppajNSM0ZaYzRBaWZUZmUKTGtXZmJSekg1eWVVKzg1UjdxZjNKT3N2
eWRoT2t2dkpzcFY1cjcwUnJneUhXQnI4dU1EaHEwS2VzMGxqMWtRWVg4c3hZY1hLQldoRApKbUhK
UE9YZ3Q1T3RDbTdUVFRkMXNwM0N5UllYSitjSW5PeWJkbkwyd1dIQ0RJZEwxK1JzU0RKNXpYdVJ1
c1VUSm45QWl1VFppRTg4CnJoM1Bja2JISFhiWVlhcFFIWG5ra2RvMmNnNmtSc0Y2NVpWWHRDaFlv
V2pra3BnMG9tMFVoOVViVEVwbFAzOGpNbzNMNnd0bDJ6YzMKNHdBQ0tGTmlNTURKOWtBblp3ZWNi
TnZUVkhJT1JIR1dzd3E1WE1yMnExekdHUVJWdFNIWVAvMzAwdzRUQWNnTjJScFlseU0rVU1pMgpR
aWVIYzNXRnJZNmdZQUNVSERqMG4xYTZrREdUbHova0ZGd1M3K1I3SHA5V3hoY1pPNVQ3K2I4MThi
YnE2M1lPNmNPVSsvRVdDMyttCjNLZmN6K290M1NEM3M4cGVKTHpTRlJENzBpTG5BM0xMTU8yMDB5
cU5uRUdvMjNxQ0NDZ21jaWhUYVpxWktDeTExRktxZk1Dc0ozamkKZG1Xc3hNRFpVcXI5Z0dwZ3hy
OGlkY3Rnb2NGRjhtekVwNTF4c3YvZUxiYllZcnJpSUdjOG5DM3BKOHVBRlNRNFRKemI0Yjc4OGt2
TgpCbCtiUTF5anZsQlYrNGFVSTQwRzIvNndIUWdyTlZkZmZiVVRLM0JxeGhsNEw3SEVFbWxKYXNL
NnNWOVpCZkFWVEl3aXVQLys5NytwCmYyS29Ra2t4ZHJITnIxbG5rN3BXYmw4S0hUUE4xcVVUMGhj
Wk81VDd3ei9TZFVLNzVaVWh0QTlUN3VjaG1SMVB1VSs1bjkwN2VqK20KVWdYRTltL0x3VTc5bXB1
RUQzdmNzWlVDRHFzT21BaGdTZkt4eHg1TGt1bzJER3d2d0pLVG5SMm9JOG9Ka0FPZFNpR1dzSnhZ
am5GaQp5bFQ1aVZsVDkvcnJyMGY3eThWMHJZdHZKWXF6eFZkL3JNSVVxVnM4dlUxMkxNd215eUY1
V2hyNFNUN3hPRHZmRWcrcjhubWJiYlp4Cm4zenlpZTZiYjhUWE1NS1pCU2lXV2E1UlhiTFNKTVBs
OEpvVHM2UU9LeHMyK1U3U3hOL3orb0tWUGFUdnh2bFc5U3dtVjUwY0tOYnQKYlZqUndSSXNsQkNz
M29XNHN2MHFoSGNhVFJWdENMN1lDb1ZWRDdFNGw1YU5ob25GTy9XeEhUTnRoU1F6WVViRVREUE5w
REZZRmNXVwowYVJMbnNXSng0ZU90ZEF4RStmZHJjOUZ4ZzdsZnY1dlRid2ZOQnBub1gweHpxL0lj
MmdmdHZhbjNDK0M3bkJheW4zSy9lSzlwbmRTClZLcUE0TWRsM25ubjFRbTczUC9nTUdFd2h3bitm
dnZ0cDF0TkVJWnpDTGExNU9LTEx6YXl5TWZObUhCaTZ6NEthelF4U051R2cwbSsKV01pSzB1TmdH
TW9BaDdNTWVKOUJEcXBqY28ydFdmSDltYUFSbS90NjRCbGJ3WXJVRFdsdFVwemN0MTRrejBaOEVH
ZjdBYUZNeFIyMgo4c0FCcjdROTRvMXdqUFBCTTlKaml3eWNMYlhqMmNMaVg2VGxiaEFuSm42MS9Z
OCsrbWlRUlE3WTJtUXZxZXhaMjVrZkpmcjlJZTJICkZnb0Y4aGJ6dmpYa3hzTjhpOHpyQzBYYkYz
d3REL010cjBiNEpta3REWXd6WUJzVytxRllkZEsrYVljYWphYVJYN1JmZ1ZkSU9aUGwKemVyWDhi
STkrZVNUcXVESHc3S2VzZm9CeGN1K2pLZlJpVGxtWitlMnpQaEFuSzVvUGREV2N2K05qbmN4Nnh4
bnBXZkNJQS9nNG55TApqTFVpWTZZbTg1UVhHMTlwWXlDRnZFK0Npb3dkeXYzODN4bzBZcU54VnFR
dnhqdEV2RC9IdzlPZWkvUmh5djNoQ0RiQ055bEhEWFBLCi9lRTdZUXlQdUUrNTczUXVGY2VrNTU1
bDBEVGxCSkFhMDQ2NGJGRE9BR2dZN3VEQUpWK2JiTEtKbDJWNkw1Wm5hdktTTFRSZXR2T28KQ1Vx
WVhEVW5nMVV2RnNUbGZUSnh0V0M5ZU03eUUrVW1DZ2M5THUxQzNJMDMzaGlGNDZJK1VUaWlkenpn
bmdIWjBxV1huZUZkdHJ0RQpsd2FLWlJrdDQ3Nzc3cXNYZmNFc0tzekhtaXRTTnptTXJlV1JRL2Q2
OTRrY01OYThpdWJaaUk5WWYvTHlwVnp6d2IwZXNwenJaY1ZHCkwydVVNek1hdnZmZWUzdVlIb2F6
T3c1RW9VcTl0RkdKVXY3WmZSeTRBTzNhYTYvMW9seW82V0tZRGtXN3dtUWtMbDJEZytsVU15a0sK
czdDaXFLZzVVOXdOQWl6UVJqQ0plOTExMTBVNXdWUXh3bkVYUnR3aHJiVTM4alUzWk1nUWJVTmNk
SmwwV2J4QytrS1I5a1crV1huaApna1FyZDBnL2xYM1dTbytMSThYNm14ZkxiMTdPMlhqWSt4Y3JJ
WFZtaTVOMXR2Y2lmUmxwY0FjR3lnazc3RW1YVmJkRy9SRTh4R3FjCjhvUlpZWm5JSjluV3ZJTVhM
aEhGblQ1NUR1UFdNUDNYdi81VlExNm1IcmcveVBqaHZoL2dERFBRdUh2RXhsVGNERy9Sc1Zaa3pN
aFcKc09qU1JWSHlhK3BtZDRIQTFIRGNZUXlnL01CWkZQcDRWT2F6MVJkK3N5N0pxOGpZb2R4M1B1
KzNwdEU0SzlvWEtmY2J6d0dLOUYyTQpteXpaU0xrL1hCNVI3anU5TERadnJ0U05jci9aMzQxaytx
Wi9pWkkvUk1nQUUwZWJGQ0JlektsNjNPNmE1bkJaSFc3TGxpOWpmcSs5Cjl2S3lHdUxGaksvZmV1
dXQ5ZkkrU3dPNzk3SVhQcG8wWUJJcnF5UmVEalVxdlpVRCtlTG1hRGhNSm1TRlE1V2djODQ1eCsr
eXl5NWUKckZwRk54d2JiOXlKSVYrVkl0NllRT1B1QmR5bmtYUkY2b1piNEZFdVRQaWhDRUJSTWxj
a3owWjhjR084ZklIVWZIQkJJMjVIbHErbQpxdGloL3JoZEd6ZG9ZektMSHozRENaZmJuWGJhYVZh
Y2hqNFVHOHREVnJqMGRublVCWk5sMlNMZzVYeUlsMVdZaUFkKzhLYWZmdm9vCkwxeDhlT3V0dCtx
ZExMaTNBeE05dERzdVRFUjVUV0ZGK2NWY3M4Y1BMSndwSUZCUzVVdVJ0aDFzc011V1BGVXM0M2pt
OFFydEN5SHQKMnlpdk12MFU5UkRUMEJGZTFrYm00eEpQOUpjUUY5S3ZjRWNMYnY0Mi9sTlBQYlVm
TkdpUTR0Nm9icFovby80SS9PU3NsVjQ4YXUxbwo2ZUkrTHRORHZWQUcrZHJyb2ZTblRhVFJkeEZu
Q3JYUlExWTBXdy9jUjJGOUQ4cnhXbXV0NVhFdkF6NVFJQis3Q2QzS0hUcldRQjg2ClpxQ3dJVjly
QzF5bWluc2VjSThTYmtjM3VXU0tHaTVOaEh6RE9MSTA2TnU0UFQzUEdUMzhabDBhcjVDeFkvbFM3
Zy8vY05mb3Q2YlIKT0F2dGk1VDdZWE9Ba0w3YlNEWlM3bFB1UTdiMXV0dzMrVjJWUHhJWXlZOUph
UmZmbzVwa2hlMUg4a09qOXpqRTZkSXl3MVlwRVFKcQo5UWZtTVl0c1AwbmpoekJzKzhHZElqSVIw
aTFYMkcrWlpVMExaWWNsb1dIRGh1bWRFM2F3TW90M2FOMncxUXYzbEtUVnAwaWVqZmlnCmpQSVYz
Y21rUHpLdmkyMU90b3lmVlllaTRYS2p2Wk5ibVd1U05jb0haelJ3OEY4dW1OTTB3TXhNNTlZd3lY
akJvV1QwQmR4NWdBT1IKT0RTTWZvSnRYdUJieEJYcEMrQWIycjVGeXBCRmkzNkErMjVncFEzbmxW
QlA5RU5ZZm9LUGNZRXRpU0hHRXBCSGtYNlZWYWE4OEViOQpVYjdlNmhrVzFLWFRIVENXMVFTOWc4
U3N0MkU3bUNnaURzWTBiT3RYdkI1RnhsclJNUlBQcCtybnVBeEdIMm5HTmVKVlpPeFE3czlkCmM3
OUxzazBhalRQUUZ1bUxTZDZoNzBYN01PVitHTEtVKzJFNHRZS0tjcjhWcUJibjJWSUZwSGh4bUlJ
SWpFQWdxWUNNaU9tdEord0QKaGdsYXVaMDdzMkl3RXkycldZVVZyMHlHak1oRUlFOEJ5VXpZNFJH
TmxJYWlSYStTVjlHOFNkL2JDRkR1ajJoZnl2MFJXTFQ2aVhLLwoxUWpYOHkvMkdiaytQVU9JQUJG
b0FnRmNQbmoyMldkSEZ0blNXT0VyS0ZidWlxNzZwUEZpR0JFZ0FrU0FDUFF0QXBUN2ZZcy9jKzhN
CkJDcTlpTEF6cXNSUzlBb0NNTkVLSi92aGU2VktkZlhBSFRmWTdnZUxhOWh1TlhEZ1FEZnJyTE02
Mk5aLy9QSEgxVVMxN0JOM2YvdmIKMytyU01xQTFDSmpsdkRRTGNxM0prVnlKQUJFd0JDajNLZmV0
TDdUVHA5eHZKOXEvNXlYN0VKdHl3aVk2RE5rVUl5WW1BakVFWlBMdApWMWxsbGFodndmSVdqQTcw
b2tPOVpLbmQ0ekM0alNjY1RzV0I1QnR1dUtIR2VFRXYxcjlUNmdUakNUQjJZRzJ3K3VxcjF4MUU3
NVN5CmxpbUgxUXQrczY1S1hzMldoZWw3QndIS2ZjcjlkdmRteXYxMkl6NGlQNTRCa1Y5U3VzNURR
Q3lPT0Z3MkdIY0RCZ3pRRllKNFdLODkKNDA0WGJMWEM1WnRZK2FCckh3SzRFRlVza3RWa2lEc1g3
S0sxbW9ndWZLbnkzRWFWdkxvUVNoYTVSUWhRN2xQdXQ2aHJaYktsM00rRQpwdVVSVkVCYURqRXpJ
QUpFZ0FqMFBRSlZLZzFWOHVwN1pGZ0NJa0FFaUVCdkl0REpzcHFIMEh1eno3RldSSUFJRUFFaVFB
U0lBQkVnCkFrU2dJeEdnQXRLUnpjSkNFUUVpUUFTSUFCRWdBa1NBQ0JDQjNrU0FDa2h2dGl0clJR
U0lBQkVnQWtTQUNCQUJJa0FFT2hJQktpQWQKMlN3c0ZCRWdBa1NBQ0JBQklrQUVpQUFSNkUwRU9s
NEJlZjc1NSt2dWdZQ2RjRmd1NkdYWExYWDg5ZGRmM1gvKzh4ODNaTWlRcHB2agorKysvZHkrODhF
TFRmRnJCb0Z2YUk2VHUzVkNYUnYycUc4cWZiSWRHOVVuUzh0MjVUcGI3Tjk5OHMwTWZiSVhybHI1
ZFpYK20zRzlGClQ2cm4yUTE5cTFHLzZvYnlKMUZ2Vko4a2JiOThIMkdSdDl5VGdCYlp6Uy9Ib1Q3
VnM4OCs2M2ZiYlRjL3l5eXpLRytaM05ZUXpUREQKREJwKzMzMzMxWVQzMGt1bjEvSGhoeC8yMjI2
N3JaOTQ0b20xTFM2Ly9QTFM4Sjk3N3JrZWR5Nk1OZFpZZnVPTk55N05wNVVKTzcwOQppdFM5aytz
UzBxODZ1ZnpKZGdpcFR6Sk5xOTZybE5WVjhyTDZkb1BjLy9MTEw3Mll5ZFk3ZTE1NzdUVXJlbVYr
cC9mdEt2c3o1WDVsCjNTYUlVU2YzclpCKzFjbmxUelpBU0gyU2FWcjEzZ3BaWFZWWk8zSUZaSzY1
NW5JSEgzeXcrK0NERHdRN1YzY2Z3anp6ek9NbW1tZ2kKTjlWVVUybDhMLzdyOURvdXZ2amk3dmpq
ajNkVFRER0Z3aDgzOVZhMFBUYllZQU9IRzhHLysrNDcxd3lmb3ZrV29lLzA5dWlWdW9UMApxMjVx
aTVENkZHbTdYcWJ0QnJrLy92amp1My85NjE4T1h6YVhYMzU1aDN0N3FuU2QzcmVyN00rVSsxWDJu
SHhlbmR5M1F2cFZKNWMvCmlYNUlmWkpwK3VON1J5b2d1SUFOeWdVbXBYREpDOWtHRHg3c2hnNGQ2
bWFkZGRhZWJiTk9yeU1VaFVrbm5kUkJLTUNKUmx5NkxhQk0KTHJmY2NwcStHVDZsQy9CN1Frd3FU
ampoaEZRMm5kNGVxWVhPQ096a3VvVDBxMDR1ZnhMeWtQb2swL1RYOTI2UisydXR0Wlo3K2VXWApu
YXphdWovKzhZL3VqVGZlcUt6Sk9yMXZWOW1mS2ZjcjZ6WkJqRHE1YjRYMHEwNHVmN0lCUXVxVFRO
TWYzenRTQWJHR3dJM1FjT1piCk9QeWtVaEtQNjVYbmJxaWpsUkVEcmhrM3lpaWphUEptK1RSVGhr
R0RCcm5iYjc4OWs0WFZOWk9naXlJNnZTNVd2cXorWVBIZEFybVYKTjZzKzNWS1BkcFRUNUwzNThU
d054M2hZWHp4UE1NRUVUcllRdWF1dXVzcWRjc29wN3NjZmY2eXNHSjFTeDBZVnNqSTIyNThwOXh1
aApYSDJjdFZ2MW5LdmhhT1hMNmxjV1gwMXVyZWRpNWMycVQrdEwwTms1ZEp3Qzh0TlBQOVVoMXBl
Tjk4TVBQOVNWSnhud3l5Ky8xQjJVClQ5S2t2Zi84ODg5cHdTMFA2OHRWaHBaWExpZURyTHBmY3Nr
bDdwaGpqc2xKM1RnNnBLODA1dEE1c1VYNzlHKy8vZFk1aFplUzlGSmIKZEJTd0xTcE10OHI5K2Vh
Yno1MTExbGx1OU5GSEQwYUdjajhZcXNvSUtmZkRvS1RjRDhPSlZOVWcwRElGNU5KTEwzV3JycnFx
VzIyMQoxZHljYzg3cDFsaGpEWGZUVFRkbGx2ck1NODlVMmkyMzNOSXRzOHd5N29nampuQVlESEJ4
QmVTYmI3NXhWMTU1cFZ0bGxWWGNaWmRkCmxzcXZhTjVwVE00NDR3emQ0M3ZJSVllNERUZmMwSzI3
N3JydW9vc3VxaUhGMS9KbGwxM1c3Yjc3N3U3UVF3OTFDeTY0b0R2cHBKTnEKYUZBSDBHMjMzWFp1
eFJWWGRNT0dEWE9ISFhhWW0zZmVlWjBjdW5hTExMSkluVVd2dkRyaUJ3eGY2MWRlZVdVM3lTU1R1
SVVXV3NqOQovZTkvZC9GSklIN1FiNzMxVnJmRERqdTRnUU1IYXBtdXVPSUtyZE80NDQ2cjJ3Yysv
dmpqbXJLMjRxVk1XN3oxMWx0T0RxTzdDU2VjClVPdUhaMnk1UzNPaC9PV0FxOXQzMzMxMXF4ZHdR
aHRNTnRsa21zOTU1NTJuN1lNZnFTZWVlRUx4QkthZmZQS0pacG5YSGlGOUphM3MKQ0F0cHkydXZ2
VmI3Mld5enplWjIzSEhIaU5YRkYxK3NmUURoczg4K2V4VGU2Q0d2TGlGOU9zNGZmV3J6elRkM1cy
Kzl0ZnZESC83ZwpkdGxsRi9mSUk0OUVKRldXSFV6enlsK21MZTY1NXg2SFBidlRUanV0L3UyMTEx
N3VxNisraXVvQTJUVGRkTk81UlJkZDFEMzU1Sk5SCmVFamJSY1Q5NUNGMFBCb2NsUHVHUkg3ZkR1
bHZsUHNqOE1RVDVmNXdQUExrSnVYK3RJNXl2M2JzdE9WTkpsMU5PU21rV2tHQ0R5ZEMKMHN1RTNj
OHh4eHorelRmZjFERDVHdWxGc1ZBNm1SQnJtUDJUeWFCYVU1Skpzdi9paXk4MFdQYmllMUZBSXI0
ZmZ2aWhoc3UrV3cwZgpaNXh4Tk83Q0N5ODBOdW9YemJzbWNleEZKbFZlOXFkNmxCc09aVVQ1RHov
ODhJanE3cnZ2OXJKODdFODg4Y1FvVEJRakxSZlNtNE4xCktKbmNhUGlNTTg3b1YxaGhCYlh3Sldj
TnZFeHlOVnkrbnZuSEgzOWNrK1RWOGZQUFAvZWk5SGprQlp6azRMYmZiTFBObEk4b09aYXQKdi9Q
T083MGNrdFJ3T1Uvajk5eHpUOFZadnRaNStXcW40YUlnUnZSbEgyVHlxYnppZFFhdm9tMGhFMVhs
ZzdxaDc2eS8vdnArcTYyMgo4cUlrYUxoTURyMG9JVkV4aS9BLy8venovWlJUVHFsODVLQ3IzMmVm
ZmZ3NjY2empCd3dZNE9WUXFXSjR6VFhYYVB4S0s2M2t2LzMyClcvMUR1K2UxUjBoZmlRcWRlQWh0
U3lRVHhWYkxKNHAzRFplbm5ucEt3MjM4MVVRbVh2THFFdHFud1JaOUQvMXRvNDAyaXNhSktMUisK
dlBIR1UxeGhCY1JjbWJLbjlhdTg4amZURmc4OTlKQ1hEeDJLcFNqQVZ2VElSNytSSCtub3ZVamJJ
VkZhZlNKbWJYcEl5dXBtc2szeQpLaklla1MvbHZ2T1UrOTVUN21mL2htT2NsSkdkU0JkM2VYS1Rj
cDl5UDk1ZjJ2azhYR3RvSXNma0R4RW01QWk3NDQ0N2FyaGlNaThyCklSb24yMTJpT0V6UVFTOWZu
cU13UE1qS2dRcG94SW45NTVvNHNaNmhhWklLU05HOGE1akdYdFpjYzAwdGF5ekl3K1NpV09hS2du
YmUKZVdjdGc2ekNSR0V3STRueS91bFBmNHJDOEFCbEFPSDR3WkY3THFJNDJUZnNNYUZFbkJ6Q2pz
THhrRlhIUGZiWXcyK3p6VFkxdE8rOQo5NTd5QUorNGFXSk1wQkNHUC9uS0c2WEI1QW1UTGRtZjZP
V0xXUlJlNWlGcllsVzBMZXlIYUl3eHh2QnhzOHVvMjlSVFQ2MTEySFhYClhhTWlGdVdQeVNOd2dO
SUlaUVB1M1hmZlZRVUR6Ly8rOTc4MVhsYnM4RnJuc3RvanBLL1VNZnM5b0VoYjNuTExMVnErcEFJ
aU52UTEKSEhVTGRWbDFLZEtuWmRWSVRUQi8vZlhYTmRuaUF3UEtndll4VjZic1dmMEtQTFBLMzB4
YmdPOG1tMnlpWlQvdXVPUHdHam4wUVRHMgpFTDNqb1VqYmdiNVJmUkRmRG9kMnNiOW04ek0rOE9H
S2prZktmY3A5OUJ2S2ZhRGdmZFp2ZUJuWk9aeGovZjhzdVVtNVQ3bGYzMXZhCkUxTHBGaXlZVVpW
VkFqMGdEaE9GY1ljOXNyWjk1S0NERHRJbytXcm1zTVVKMjBkc201Q2x3ZUUwYkh1QWkyL0J3anUy
RU1IRnc0dm0KclF3eS9vbTlhYlZ5QWxQQXNJd0VCNHRiMkFwazdzOS8vclBiZi8vOW5YeEp0eUFu
WDMvMUdaZG94WjNjbGFHdmNxK0ptM3Z1dWFPbwowVVliVFE4d0lrQVVoNXB0SDJsMWZPZWRkOXpa
WjUvdHhoNTdiQ2RmZTZPL2UrKzkxK0ZRSkp4OHlWVWYvMkF5RWc0NHhkc0RXNXRRCkZtd1ArOS8v
L3FjMFZmNXJwaTFFU0dyWnJEeWlmT2pTS041eFRrT0doWnJyTGRMUGtGWlduK0E1dEFYeWdJT1ZO
Vmx0MFdmN0YrOVQKRmdZL3JUMFFIdEpYUUpkMFJkdlMwaWZMWisvbUcxMGpQNnN1b1gwYTdZc3h2
TjU2NjBXNFdING5uM3l5dStHR0c1d29peFlVK2NreQoycnY1RVdIT1ExYjV5N2FGWllldGxIQ3lZ
cWI5ek1LeHJRaGJHYzJWYlR0TDMydCswZkZPdVUrNW54d0RsUHZwditHR1UxSkcycnY1ClJ0Zkl6
NUtibFB1VSs0MzZUU3ZqS2xWQVhuenhSU2ZiVjFSeHNOUC84Y0xiWkYyMlZPbWUvbGRmZmRYaHgz
em1tV2VPazBYUFppRWoKQ21qd1VEVHZCcXljWExEbmtQZXh4eDZyaXBHczVpZzVEaHlhZzlLRWV6
QXdxR1dsd2YzMXIzL1ZjeUNJeDM3TFVJZnpNVGpIQVpkbgp6aEhuRTZBMFFBSEJJZHY0bjN5QjFJ
bVRiR0VLeWxxMnNTbGRsZFpiTE9ObTJrSldRSXhONUMrMTFGTDZqSW1PZkNseVpmaVBPZWFZCnln
TktXWnAxSGN1c2lFQkhtcEMrWXJ6amZwVnRHZWZiekhOb240YUMvZGxubjZXT1d5amhPQytGODAz
dGRtWGJ3c3FKZmpiLy9QUHIKT0pSdENSb01oUmRuem1RN29KSHBPYUdxeG1IRXRJc2ZpbzVIeW4y
bjV5SXA5MGQwZXNyOUgxelIzL0FSNkRYM1JMbFB1ZDljRHlxZgpldFR5U2V0VDJnUTZhNEtIRlEx
TTdMR3FBRnE3YUJBckFZMWN5S1N3YU42VFR6NTVacFk0VEg3Ly9mZTdUVGZkMUQzenpETjYwRmR1
ClpuZW5ubnFxazNNRFVUbzU0NktIbVZHK0k0ODhVdXVHeVVwSWVTTW04b0F2OFo5Kyttbk5JZko0
dkQzamh4c09kMi9nc0g2bnVpcmIKQW5WY2VPR0YxY29NbENVb3VGWHpqK05ZdE8xQyswbzhEengz
YWx1RzlHbE1PT0dnRUhhU0s5c1c4VHBnbk1zV1NqV3hLdWUxSEJRUgo5RCtzR3BycjFMYXo4clhi
THpvZUtmZUh0eERsZnZadk1CQ2kzRy9mU0tiY3A5eHZYMjhia1ZPbEt5Q3dJZ01uZSt0cnRqQllk
bEJNCjdFc0hoQysrNE1POS9mYmJSbExhTDVwM1hrYjRHZ3JsWS92dHQ5Y3Y1akMxaUMrNzV1UXNo
MXRzc2NWMDlVTDJNMGRiZkN5K2lQL2wKbDE4cU9iNUVOSEsyaEdvVHdFYTBmUmxYZFZ0Zyt4N3FE
a1VWVzhlcTV0OHNWbmw5SlkxL0o3WmxhSisyMVNSWW1PazBWNll0NG5XUQpzeHE2bmZIR0cyOTBj
dmJNWFhEQkJXNm5uWGFLazBUYnpqcDlITllVdW9VdlJjY2o1Zjd3eHFEY2I5d3BLZmNiNDFOVkxP
VytVMHVPCjJNWk91VjlWcndyalU2a0NnaS96K0lLTUw5V1BQZlpZWFFsZWV1a2wvWUtOaHNacUNM
WWZ3VDMzM0hPcXROUWwrRDBnNUt0MDBieXoKOGtJNExwZUN3MDJ0bUlEY2RkZGRPaW01K2VhYjNl
dXZ2NjV4Y2hCY3piUWVlT0NCK2w3Mkg4d212di8rKzJyQzF5YWxXYnhNUVlFNQo0S3h0WGpBdmEr
ZFdzdmkwT3J6S3RrQlpzZVVISzBRd1dZeXRmVlh6aitNUjB0Zmk5Q0Y5SlU1dnoyWGJzcFZ0Rzlx
bmJkekNyTFlZClo3QXFSVDYyTGVHTVV0SzFzdXpJcTJ4YnhNdUpyV1BBQWVjVXNDVkNEQ0k0S0RW
eFY3YnQ0ang2NmJub2VMVCtRN2xQdWQ5b0hGRHUKajBDbmxiS1RjdC9wbG1ISy9SSDlyVjFQbFNv
ZzJGOXZYd3R4UjBIUzJmMEFCeHh3Z0VZdHNNQUNUc3hiNm9UNTZLT1ByaUdIRW9OOQo1bkRKeWJh
WWNOUnc4L0ZTTkc5bGtQRVBFM3l4RkJYRjRnRDNmdnZ0cCs4NDc0RnRRRTgvL2JTK3YvTEtLeEdk
aFdIeWt1YlNoQWdtClRhREh2U2R4WjNVekgzRW94d3h5UUI3M1UyQ3JTUEw4eGxGSEhhV3JCSFoy
QmhQQkxCZm5tNlRCOXJQNGZRZkorUGg3V2g1VnRnWHkKZ2dJSXhjRHVXR21HZjFwNWtZY3BmMUIw
MHB6aFpiN1I1UFVWbzB2NlJkdlNqQXlZQW16OFRBRkF2ZEF2UTV6VndYeWtLZEtuTWVIRQpQVGJv
ejJLRzErRk1sem1NVll3VjNFMWlya3paczlvSlBLM2M1bHMrWmR2QzBwdVBBL1RvYjdqaEd2ZWJK
RjNSdGtQNlJ2VkJmSkV4CkIvcE9ja1hISStYK2NHV1pjcjl4TDZiY2Q1RnhHY3A5eXYzR282VkxZ
K1dIc1NrbjFjWXNWLy9BU0phVnZWZ2NVaE92TUQ5clRpWUwKSGlaT1paKzJsNG16QmF1NVhwaURC
UStZdHBSSnZKZXRUM3BuaFh5TjFIQ1kxN3p1dXV1aU5PQURFajRYQ2dBQUlBQkpSRUZVZXJtNQpP
Z3JEUTlHOGF4TEhYdVFpUkMrVHFGaUk5MkloeDh1Mk1TOFRMQTIzdXoxa242cWFFaFFGU3Mzam9p
NnlSVVhOdXQ1MjIyMUtpem9aClJqQTdhQTdtWnNFVDkzZ2tYVllkcjc3NjZ1aStBckdvNVdVRnhz
c0ZlMTZzZEhtNW1GRE5GeHV2Ung5OU5Nclg3bEpCSE5waWlpbW0KMERoWmNqUnk5YSsvL3Zvb2pW
amNxb2xMZTVGRHUwb3ZWcWxxb291MnhmLzkzLzhwSC9CRFduTmlwRURyaG50aDRxNG9mNWdoUmh1
SQpjbFp6bjRqeFJENklSNS9ESFJZUFB2aWdCOWJtc3RvanBLOFlqNlJmcEMzbFlqeHY5OS9nSGhP
eGZPWmx0Y3ZMRmtFdjU1bTA3SHZ2CnZiZWFpMDdtazN6UHFrdVJQZzJNWkV1YzVvczdjM0J2Qzh6
WW91K2pUOFpkbWJKbjlTdnd6U3AvTTIwUkx5K2VjUjhNNm1KM0V5WGoKaTdRZDBqYXFUOUV4bHl4
TDZMdkpJUGpOdWlTdm91TVJadG9wOXluM0tmY2IvNGFYa1oxWll6dExibEx1ajBDTWNuOEVGdTE0
YXZxWApLUGxEaEVMalJ4c1hsTW1YTVMrM1MzcFpEZkZpc3RQTDEwUzk0QzFaTVV3T3A1OStlcDNN
Z0I4dS9aSmJ2UFV1RHR5UGdmcyt3Qk9YCnJzbnFTVFR4d1FWN1l2YlRZNUNhSzVxM3BZdjdhNis5
dHBlVkJwMVVuWFBPT1Y1dWQvWmlYY3Jqbmc5em1BREtsMkF0czN3TjlxZWYKZnJwTzdNWFVzQ29J
Y2o3RXkxY0xKVGNGQklvWjdySUFMOWprbG0xb3F1aEFJVEFYVWtmY1l5RmZsU084OEVNdUpvRTk3
b1F3SjE5VQovUkpMTEJIUlFJbVRGU2d2QjBhMUxhemRNREdTcldXV1RHbHdRUi9pa1Q3TDRkNFdY
QlJvZkhCWGg5ek9Ycm90Y084TGxEaGdDdXpGCjVMR1hNemRlYnRmMnBzZ2x5eExhMXJqTUNjcWFs
WFhKSlpmMHA1MTJXcEtkMzJLTExaUUdTZ29tODJpWHZQWUk2U3QxR2NVQ1F0clMKeUFjUEhoejFP
ZlI5akFYNWlxb0tQOG9oNW1LOXJPQVllWjJmVjVjaWZSck0wYTl0WWcxc3hjU3hQL2ZjYyt2eVJV
Qm8yUnYxcTd6eQpOOXNXOFlKallnUjUxY2lGdEYyaitoaHZqTXVRTVdmMFpYM3IvL0NiZFdtOFFz
ZWo1VTI1VDdsUHVULzg0MjNhYjdpTmsxRFphZlJKClAwOXVVdTZQUUl4eWZ3UVc3WGdhQ1puSWow
bHBGOTh6bjJTRmJVd3lTVkhyVUhMcmQzUXZSVlptT0F1QmcrcHlhN1dTWUR1TW1Tck0KU3BNVlhq
VHZPQjlzYmNJQk9GRnNITFpjeVdxQnk3S2FKYmMvTzdtdE81NWN0NHpabGg1RS9QZS8vM1dvUCs0
QXdZRXZXSUZCK2JEOQpMTXRpV0EzRGxCZGdEV3M4dzRZTlU3NTJNRGlGdEhBUXlvWUR4dGpTWmVa
SUN6T0pKU2phRnJDdWhQdEpacHBwcGlCenJrWDV4NHBXCjk0ajJoc1VqYkNzSmNVWDZTaGEvb20z
NXBsaGZFNFU5Nmp2WTloVHZiMW41aElhSDlPazRMNHhUbVh5cWdZQzRQSWpUMkhNcnkxNUYKVzFn
NTBTWVkvN1o5ek1LVGZ0RzJTNmEzOTZySG5QR04rL0cyUWJtYmNZMTRGUjJQbFB2aExWRlZmMHZM
c2VvK1dMUWZVTzRQTnhXZgoxallJYTZYc0JIL0tmZjB5UTdtUHp0QW0xMUlGcEUxMTZQaHNrZ3BJ
eHhkWUNvZ0xJbVZwMXNuS1NUY1VsMlVrQWwyUFFLdkhYQ09sCm9TaDRWZklxbW5lMzBGUHVkMHRM
c1p4RW9POFE2Q2E1WHpWS2xSNUNyN3B3NU5jM0NHRGxBemUvVS9ub0cveVphLzlEZ0dPdS83VjUK
cDlXWWZiRFRXb1RsNlhVRSt2dVlxL1Fpd2w3dkxHWHJoL3NFNEw3Kyt1dXlMTnFhYnNNTk4zUm1h
clN0R1RNekl0QlBFZUNZNjcyRwpwOXp2dlRabGpZaEFsUWowZDduUEZaQXFlMU1LTHptRTZ1U0F1
c2JnZ2theDNPWEVPbFVLWmVjRVVmbm9uTFpnU2ZvSEFoeHp2ZFhPCmxQdTkxWjZzRFJGb0JRTDlY
ZTd6REVncmVsV01wMWlnY0xoc01PN0U0bzBiT0hCZ1BJalBSSUFJRUlHV0lsRGx1WTBxZWJXMDBu
M0UKbkhLL2o0Qm50a1NBQ05RZzBNbXltZ3BJVFZQeGhRZ1FBU0xRbXdoVStVTlVKYS9lUkp1MUln
SkVnQWowUFFLZExLdTVCYXZ2K3dkTApRQVNJQUJFZ0FrU0FDQkFCSWtBRStnMENMVlZBNUdJOEI5
djhSVnhJbXFwbzhzb1ZrZzk0aE5JVm9RM2hHVUlUcjJOUituaGFQaE1CCklrQUVRaEFvSTJkQzBs
UkZrMWVIa0h6QUk1U3VDRzBJenhDYWVCMkwwc2ZUOHBrSUVBRWkwQ29FV21JRkMyY2VoZzRkNnU2
Nzd6NjkKMEczbW1XZDJjOHd4aDE1SW1GV1JrRFJWMFdTVndjSkQ4Z0Z0S0YwUjJoQ2VJVFJXbHlK
NXg5UHdtUWdRQVNKUUJJR2ljZ204UTlKVQpSWk5YbDVCOFFzdHNlVlhKTTVSWDBieU5uajRSSUFK
RW9KMEl0RVFCUVFYKytjOS91aDkrK01GOStlV1hlb05ueUduL2tEUlYwZVNCCkhKSlAwWHBXeVRP
VWw5V3pLTDJsbzA4RWlBQVJDRVdnakp3SlNWTVZUVjQ5UXZJQmoxQzZJclFoUEVObzRuVXNTaDlQ
eTJjaVFBU0kKUUNzUmFOa1dyRGZlZUVPL2JnMGJOc3poT2NTRnBLbUtKcTg4SWZtQVJ5aGRFZG9R
bmlFMDhUb1dwWStuNVRNUklBSkVJQVNCTW5JbQpKRTFWTkhsMUNNa0hQRUxwaXRDRzhBeWhpZGV4
S0gwOExaK0pBQkVnQXExRW9DVldzTDc5OWxzM1pNZ1E5L0xMTCtzV3JBa25uRkROCnpzTDhiSllM
U1ZNVlRWWVpMRHdrSDlDRzBoV2hEZUVaUW1OMUtaSjNQQTJmaVFBUjZDMEVxclNHa3NhcnFGd0N1
aUZwcXFMSmE4MlEKZkVMTGJIbFZ5VE9VVjlHOGpaNCtFU0FDdllkQW1xenVsRnEyUkFHeHlqMzk5
Tk51N0xISExuU3Jka2lhcW1pc25GbCtTRDVJRzBwWApoRGFFWndoTnZHNUY2ZU5wK1V3RWlFQjNJ
MURsRDFFalhtWGtURWlhcW1qeVdqRWtIL0FJcFN0Q0c4SXpoQ1pleDZMMDhiUjhKZ0pFCm9Mc1Jh
Q1NyKzdwbUxWVkErcnB5eko4SUVBRWlRQVNHSTFEbEQxR1Z2TmcrUklBSUVBRWkwQm9FT2xsV3Qr
d01TR3VnSkZjaVFBU0kKQUJFZ0FrU0FDQkFCSWtBRXVoa0JLaURkM0hvc094RWdBa1NBQ0JBQklr
QUVpQUFSNkRJRXFJQjBXWU94dUVTQUNCQUJJa0FFaUFBUgpJQUpFb0pzUm9BTFN6YTNIc2hNQklr
QUVpQUFSSUFKRWdBZ1FnUzVEZ0FwSWx6VVlpMHNFaUFBUklBSkVnQWdRQVNKQUJMb1pBU29nCjNk
eDZMRHNSSUFKRWdBZ1FBU0pBQklnQUVlZ3lCS2lBZEZtRHNiaEVnQWdRQVNKQUJJZ0FFU0FDUktD
YkVhQUMwczJ0eDdJVEFTSkEKQklnQUVTQUNSSUFJRUlFdVE0QUtTSmMxR0l0TEJJZ0FFU0FDUklB
SUVBRWlRQVM2R1FFcUlOM2NlaXc3RVNBQ1JJQUlFQUVpUUFTSQpBQkhvTWdSNlRnSDU5ZGRmM1gv
Kzh4ODNaTWlRbGpiRlJ4OTk1QjU3N0xHVzVrSG01UkY0L3ZubjNkZGZmMTJlZ2FSc1YxOXFxcEJN
ClRBU0lRTnZHS3VWK1ozYzJ5djNPYmgrV2pnakVFZWdaQmVTUlJ4NXgyMjIzblp0ODhzbmQwa3N2
M1hMbFlJa2xsbkNMTDc2NHUvLysKKytONDhya1BFWGp1dWVmYzdydnY3bWFkZFZZMzMzenp1WTgv
L3JoVWFkcmRsMG9Wa29tSUFCRnc3UjZybFB1ZDEra285enV2VFZnaQpJaENDd0tnaFJOMUFBMlZn
bGxsbWNZOC8vcmo3N0xQUDNFZ2pqZFRTWXM4enp6ejZoWDJxcWFacWFUNWtIbzdBWEhQTjVRNCsr
R0IzCjhjVVhhNkpSUnkzWHZkdmRsOEpyU0VvaVFBVGlDTFI3ckZMdXg5SHZqR2ZLL2M1b0I1YUND
QlJGb0dkV1FLQndURHJwcEE0L0VIRGUKKzZKWUZLSWZQSGl3R3pwMHFINXRMNVNReEMxREFBb0hG
TUpwcHBsRzh5aXJnTFM3TDdVTUVESW1BajJPUUx2SEt1Vis1M1VveXYzTwpheE9XaUFpRUlOQXpD
b2hWMWlhZHJWNEJRWDZXbCtWTnZ6TVFHSG5rNGQzYS9MS2xzdlp0UjE4cVcwYW1Jd0pFWUlRc2Jz
ZFlOYmxBCjNEc0xBWlAzNXBjdG5iVnZPL3BTMlRJeUhSSG9CUVJhcW9EODhNTVBRUmo5OXR0dlFY
VHRKbXAyRlNXMC9zZ25tVmZ5dmQxMXo4cXYKRmVXcW92MS8rdW1udWlKMzJnOUlLN0NycXpRRGlF
QWZJeEFxOTZvWTk2Mm9hclBqTkxUK3lDZVpWL0s5RmZVcnc3TVY1YXFpL1NuMwp5N1FtMHhDQnpr
Q2dKUXJJR1dlYzRaWmZmbmwzeUNHSHVBMDMzTkN0dSs2NjdxS0xMcXFyOFJWWFhPRTIzM3h6dC9Y
V1c3cy8vT0VQCmJwZGRkdEZEaFVuQ24zLysyUTBhTk1pdHZQTEticEpKSm5FTExiU1ErL3ZmLys2
S0NyQlFQczgrKzZ6YmQ5OTkzWExMTGFkNUhIYlkKWVc2eXlTWnpHMis4c1JidG0yKytjVmRlZWFW
YlpaVlYzR1dYWFpZc3JndXRQM2hzc01FR2JwdHR0bEdjVmx0dE5lVzc0b29yT2xqegpnTHYyMm12
ZHNzc3U2MmFiYlRhMzQ0NDdSbm5obkFQd1FQanNzODhlaGR0RGFGMk5QdTVEcU45NjY2MXVoeDEy
Y0FNSER0UW90QlhhCmROeHh4M1dycjc1NjZnSHZvbm1HdG4rOGJNbm5NODg4MHdHM0xiZmMwaTJ6
ekRMdWlDT09jTC84OG91U3BTa2dsMTU2cVZ0MTFWVTEKelp4enp1bldXR01OZDlOTk55WFpCcjJI
OHNyclQwR1prWWdJZERnQ29YSXZkTndYbFNkWjhJVHl5UnVubFB1VSsraGpsUHRaSTQzaApSS0Fn
QXZKbG95a24yZUd3aGY2QmtmeTQrSWttbXNqTFZ5RGxLMHFDbDhtaFAvend3Nk44eEx5cEY0dFZm
cU9OTm9yb3hHS1JIMis4CjhmeUFBUVA4d3c4L0hORisvdm5uWGliZ1hpYnJIdW0rKys0N3Y5bG1t
MmwrNEpGMG90Qm9ITW9SZDZGOHpqLy9mRC9sbEZNcUR6bmMKNXZmWlp4Ky96anJyYUxuR0gzOTgv
OElMTDNpWjVQcHh4aGxIYVM2ODhNSjROa0gxQnlZNzdiU1RuMy8rK2IwY21JL1MzM1BQUGNvVApl
RDd6ekROUitFa25uYVRob3ZCRVlYaDQ2cW1uSXZwNFJHaGQ0Mm5pejNmZWVhY1haVU41eTVrS3Yr
ZWVlL3B0dDkzV24zWFdXVjZzClMybTRUT0xqU1h5UlBJdTBmMDBtc1JkZ2lES0pndVMvK09JTGpR
RmZ0STMxeHc4Ly9EQktJWk1RTDhxd24yT09PZnliYjc2cDRlaWoKNkp1Z0YyVXJvcldIckw1VWhG
ZGVmeEpseWJLalR3UmFpb0NOQy9qTnVpUXZ5djM4M3ozSy9mRGYvYXorU2JtZmhRekRpVUE2QWts
WgpuVTdWTjZGTi94SWxLN2ZtbW10NitiSmNVNXZYWG52TmkzV2lLT3k4ODg3ekUwODhzWmQ3R3FJ
d1BHQVNDSDRubm5oaUZMN0hIbnQ0CldTR0kzdkh3M252dlJaUE0rKzY3cnlZdWE5SlloTS90dDkr
dS9FY1paUlIvelRYWEtQOTMzMzNYdi96eXkxRmVzbktoTkVrRkpLVCsKbDF4eWlhYVZMKzhSUDN1
WWNNSUpOUzZ1Z054eXl5MGFsbFJBdnYvK2V3MEhabkZYcEs3eGRQSG50OTU2SytJTnhjZ2NGQTFa
V2ZDeQpUOWJMU29rRit5SjVGbW4vS0lQRXcrV1hYNjdsZStLSkoycGlNS0VmZmZUUk5VNXM5a2R4
NkZQQTZZNDc3b2pDOEFBbEJQMFZjV2lYCnVNdnFTMFY1aGZTbmVMNThKZ0t0UUFCOTNQNmE1Vzk4
NE1PRnlMMGk0NzZJUEVIK1dXTzFDSitRY1VxNVQ3a2YraHNTMHAvUWQrbUkKUUNzUlNNcnFWdVpW
bEhmdHpMVm9hcUZQVmc0Q0gyRUhIWFNRajMvZGxlVnQ1Zjd0dDkrcThpSGJpZXB5KytxcnIvd05O
OXpnUVFQMwo5dHR2NjBSM3Q5MTI4NWh3eHY4bW1HQUN6ZWVvbzQ2cTRaUDJRMVNVRHhRbTFFRzJY
ZW1xUzAwR3Y3L2c2enRvWkd0WlRYUmUvVEhoCm5XS0tLVHlVRzlRMzZmQ0ZIbndOTDhTYkFwSmNk
UUF2MEVJaE1GZTBycFl1NldOVkljbmJhT1NlRFkxNzVaVlhOS2hJbmtYYTMvSkwKK2xCOHBwdHVP
aTliejVKUittN2xFeXRsK280OHh4NTdiTzFMV0wxSXVsTk9PVVhyZzVXdnVFdnJTMlY0aGZTbmVM
NThKZ0t0UUFEagoyZjZhNVc5ODRNUGx5YjBpNDc2SVBMRjZwSTNWb254Q3hpbmx2dk9VKzJHL0lT
SDl5Zm92ZlNMUUtnU1NzcnBWK1pUaFcva1pFQkhRClRpYlg3dGhqajlYekEvSzFRT3J2OUdJNCtE
amJnSHM2WnA1NVpyeldPTm1DcGVkRnhocHJMQTJYcjl1Nm4xOG1qMDRtMnpWLzhoWGEKeWZZV1BS
OVJ3eVRscFNpZk1jY2NVN25JbGl0WDFLSkdYdjFsRmNYaE5sMmNZMEY5cTNaRjYxb21mOWwrcHNs
Ky9QRkg5WXZrV2FUOQpzOHIyNnF1dnVuZmVlU2UxRHlFTitsL2N2ZmppaTA0bVFFNlVsbFRMWmJM
RlRzbGx5NWFhVm82blRUNlg0ZFZNZjBybXozY2kwSWtJCjVNbTlJdU8raUR4cGhFVlJQczJNMDd6
NlUrNkgvKzVudFNubGZoWXlEQ2NDM1lsQXVadmFHdFIxd1FVWDFOdkJOOTEwVXlmYmlQU2cKdEt4
Z3VGTlBQZFhKK1E2SENSeWNuT1Zvd0dWNEZBUU9ITzcyd0NIanNxNHFQaUg1NTlYL3BaZGVValoy
VjBVSXp5STA3YXlybGF0SQpua1hhMy9nbmZma0NwMEdqalRaYU1xcm0zUTZodi9IR0d4cWVwVXhD
TVlIU0ltZElIR2dubjN6eUdqN3hseXA1eGZueW1RaDBNd0o1CmNxL0l1QzhpVHhwaFZoV2ZSbmxZ
WEY3OUtmZkRmL2NOMDZSUHVaOUVoTzlFb0xzUnFId0ZCSEFzdGRSU3FueHN2LzMydW9JZ2g1ZDEK
WlFOeDlwVUpGa2Z5SEN3dXdkbVBWeDU5Vm54VmZMTDRKOE1iMWQ4bXhSOTg4RUV5V1NYdjdhNHJD
bDBrenlMdG53VUlWc1BnWkl0RgpGa2xOK0xUVFRxdnZjbzRIKzBWcTR2QUN4V1NNTWNiUThEekZz
RXBlZFFWaEFCSG9ZZ1FheWIwaTQ3NklQR2tFVjFWOEd1VVJqMnRVCmY4cjk0YnNLUW43MzQ1akdu
eW4zNDJqd21RaDBQd0tWS3lCWFhYV1ZvaUtXc053RkYxemc3cnJyTGlmbk5kek5OOS9zWG4vOWRR
ZlQKcDNBd2ZTcDdKUFU1L2c4VFJKaHBoRFB6c2pEaEN4T0lhUTRtY3ZIbHVwR3JpaytqUEN3dXIv
NHp6VFNUa21KMUNGdlJraTV0Z213MAplZlVFWFR2cmF1VXFrbWVSOWpmK1NkOTRQUGZjY3c1S1Ja
YXpIMzJzb09FWlc4WWVlK3l4T25KOG5jUVdMZlJUcklZMGNsWHlhcFFQCjQ0aEFOeUdRSi9kc3pG
THVVKzduL2U1bjlYdnJRNVQ3V1FneG5BaDBGd0tWS3lCUUZzUlNVb1FDN283WWI3Lzk5RjBzSyts
MnFubm4KblZlVkJqSEQ2N0R2M2h5VURORGliZ3M0cEoxaGhobmNKNTk4NHJDTnk4NGNHTDBjUUhm
WWhoUGY4NTgyZ1MvREIzbWs4Yks4eFJ5ZwpQcHB2NFNIMW4zVFNTYlV1SjV4d2dpVlRIL2RYb0s1
dzhid3hNWWFEQWhkM0pzaEJpd2swWE5tNnh2bmlPWjUvTWk1WjV5SjVZZ0lmCjJ2N0pmTzE5Z1FV
V2NHSWlXZnZRMFVjZmJjSHFvNCtZWW1kS0s4N3lpTmxqamNmOUtVbjN5Q09QYU5BQkJ4eFFFNVdH
UVZsZVlKekcKTDU3aGswOCtXZGZHOFhnK0U0Rk9SU0JFN29XTyt5THl4UEJJRzF0bCtJQmZHaS9M
eDJTZitSWWVVbi9LL2JEZmZjTTA2ZmVpM0tmTQpUN1l5My9zVkFpSnNtM0lDVm8xbEZia016b3NT
VWNOejk5MTM5N0sxeGN1RVVNTnh6NGNvRHBvT2Q0YXN2Lzc2ZnBOTk52R3lUTzhQClBQREFtclJY
WDMyMVdubENQblBQUGJmR3l5V0JIcGFPNUNLK0drdGJTSWk3TlVBYnYzY0U0VVg0MkgwY290aDRz
NlFFSG5Fbmw5OXAKUHNjY2MwdzgySWZVSC9kcEdHNjR5K1Q2NjYvM01PZTc5dHByUi9lTHhNM3d3
bHFXM1R1Q2UwbnV2ZmRlTHlzL1hyYTRlVG12b0x6MgozbnR2RDZzYmNFWHFXbFA0Mk11amp6NGFs
VEYrbjRiODhLb1ZMNVQveGh0dmpGSVV5Yk5JKzBjWkpCNWdDaEdtZ0ZFT1dPQjUrdW1uCjllNFVP
UXpxeFlpQmhzTTA2SFhYWGFjcHYvenlTei9qakROcUd0eHpZZzcxUVZ2S0htNHZ5b3NGcTUvVmw0
cnlDdWxQRHozMGtKWVoKSm9SRkNhMHBCMStJUUJVSW1NeUIzNnhMOGdxUmUwWEdmUkY1Z3Jwa2pk
VWlmRUxHS2VVKzVUNStkMEorUS9MNkUyVitzMUtJNlVNUQpTTXJxa0RUdG9tbjZseWhaT1V5aVpk
VkNsWXB6empuSHkrM21lcEZnM0t3c0tvY0pvLzFvZ0FmdUJUbjMzSE5UNjQyN09NenNMbWdoCkFQ
YmZmMytQZXpETWljVVR2OVZXVzBXVDVxbW5udG9QR2pTb3h0UnRDQjljK2dkRngrcTE1SkpMK3RO
T084MnkwY3YvNUV0NXBFRGgKb3I2VFR6NDV5aWUwL3JoTHdwUXdUSmpYV21zdHZkOEVpaHJ5VHVJ
MWVQQmdMNnNIR29jOFVRYVlsTVdrR25uSzdheiswMDgvamNvWgpVdGVJT1BGdy8vMzMreVdXV0NM
Q0FCTjVXU1h3Y2dEYnI3ZmVlbEU0MmsrMjFrV3BpK1JacFAyakRCSVBFUERUVHo5OVZCNWNIQ2sz
CnVPdTlIbktMdlNwMWRra2hrdUlabDEvaVFzbTk5dHJMeTJxSTFtZnJyYmVPVEQrRExxUXZoZkxL
NjAvSUR3NTR5RmtVdll3enpUenoKY0NyK0p3TGxFVENaQnI5WmwrUVZLdmVLalBzUWVSSXlWa1A0
NUkxVFhQcEt1VC84WXlQbGZ2NXZTRjUvd3ZpanpHOVdDakY5Q0FKSgpXUjJTcGwwMGVvR0VGTEMw
czMzMllDQ0YxcTFGOGhYWHlTVEtZY3VWM0huUjBLcVFUSnFkVE9iY0xMUE1vdnYwc3dvQzNyQnFN
bXpZCk1DY0tRblNZUFlzK0s3d3FQbG44c1FVb3RQNmlRTGtoUTRZNHVmdER0NUtCSnc0NXkwV0xE
b2YxNU5ieHVtemtGbThuays3SVBEQzIKR2RsaHl5UnhxK3VhekEvdlJmTU1iZiswdkN6cy9mZmZW
enprSGc4TkFzOUpKcG5Fb3V0OGJCRVU0YTliOTJBT0dkdXF5cm9xZWNHMApNRXdjNC93VUhSR29H
b0drckc2R2Y1SlhFYm1IZkVQSGZWRjVrbFducXZoazhTOVNmOHI5OFBiUHdodmh2U0QzS2ZNYnRU
RGpxa0FnCkthdXI0RmtWajhvVmtLb0sxbC81NUNrZy9SVVgxcHNJRUlIbUVLanloNmhLWHMzVnFq
ZFNVKzczUmp1eUZrU2cweERvWkZsZCtTSDAKVGdPZjVTRUNSSUFJRUFFaVFBU0lBQkVnQWtTZ2N4
Q2dBdEk1YmFFbE1RdGladFdxdzRySDRoQUJJa0FFaUVERkNGRHVWd3dvMlJFQgpJdER4Q0ZBQjZa
QW1Fc3RXYW1yWWJvaUhlVm5ZTzZjakFrU0FDQkNCM2tTQWNyODMyNVcxSWdKRUlCOEJuZ0hKeDZn
dEZMZ2dMMmxiCkh2ZC8yT1ZMYlNrRU15RUNSS0JuRWFoeUwzQ1Z2SG9XOElDS1VlNEhnRVFTSWtB
RVNpUFF5Yko2MU5LMVNra1lyMmhLTklPSUFCRWcKQWtTZ3h4Q2czTyt4Qm1WMWlBQVJJQUp0UUlC
YnNOb0FNck1nQWtTQUNCQUJJa0FFaUFBUklBSkVZRGdDVkVEWUU0Z0FFU0FDUklBSQpFQUVpUUFT
SUFCRm9Hd0pObndGcFcwbVpFUkVnQWtTQUNCQUJJa0FFaUFBUklBSmRqd0JYUUxxK0NWa0JJa0FF
aUFBUklBSkVnQWdRCkFTTFFQUWhRQWVtZXRtSkppUUFSSUFKRWdBZ1FBU0pBQkloQTF5TkFCYVRy
bTVBVklBSkVnQWdRQVNKQUJJZ0FFU0FDM1lNQUZaRHUKYVN1V2xBZ1FBU0pBQklnQUVTQUNSSUFJ
ZEQwQ1ZFQzZ2Z2xaQVNKQUJJZ0FFU0FDUklBSUVBRWkwRDBJVUFIcG5yWmlTWWtBRVNBQwpSSUFJ
RUFFaVFBU0lRTmNqUUFXazY1dVFGU0FDUklBSUVBRWlRQVNJQUJFZ0F0MkRBQldRN21rcmxwUUlF
QUVpUUFTSUFCRWdBa1NBCkNIUTlBbFJBdXI0SldRRWlRQVNJQUJFZ0FrU0FDQkFCSXRBOUNGQUI2
WjYyWWttSkFCRWdBa1NBQ0JBQklrQUVpRURYSTBBRnBPdWIKa0JVZ0FrU0FDQkFCSWtBRWlBQVJJ
QUxkZ3dBVmtPNXBLNWFVQ0JBQklrQUVpQUFSSUFKRWdBaDBQUUpVUUxxK0NWa0JJa0FFaUFBUgpJ
QUpFZ0FnUUFTTFFQUWhRQWVtZXRtSkppUUFSSUFKRWdBZ1FBU0pBQkloQTF5TkFCYVRybTVBVklB
SkVnQWdRQVNKQUJJZ0FFU0FDCjNZUEFxTTBXZGFTUlJtcVdCZE1UQVNKQUJJaEFHeEh3M2plVkcr
VitVL0F4TVJFZ0FrU2c3UWcwSy9lckxqQlhRS3BHbFB5SUFCRWcKQWtTQUNCQUJJa0FFaUFBUnlF
U0FDa2dtTkl3Z0FrU0FDQkFCSWtBRWlBQVJJQUpFb0dvRW10NkNGUzlRcHkzdnhNdkdaeUpBQklo
QQpmMGFnVmR1bUtQZjdjNjlpM1lrQUVlaGtCRm9sOTZ1b00xZEFxa0NSUElnQUVTQUNSSUFJRUFF
aVFBU0lBQkVJUW9BS1NCQk1KQ0lDClJJQUlFQUVpUUFTSUFCRWdBa1NnQ2dTb2dGU0JJbmtRQVNK
QUJJZ0FFU0FDUklBSUVBRWlFSVFBRlpBZ21FaEVCSWdBRVNBQ1JJQUkKRUFFaVFBU0lRQlVJVkhv
SXZZb0M5VHlQbjM5MjdwZGZuQnR6ek95cWh0Qlk2bERhVURyam0vU2JUWi9rSisvUEQzM2VYZkQw
Qlc3awprVVoyNjh5eGpsdDJobVZUcUVZRVhmYnNaZTZGajE5d3YvNzJxenRnNlFQY1pHTlBOaUx5
OTZkUW5pRzh3REtVWDExQmtQYjU1OTMxCjExL3ZOdGxrRXpmSEhIUFVrUHoyMjIvdVgvLzZsM3Zu
blhmYzl0dHY3OFliYjd5YStFWnBhd2hUWG42V3R2cEYrdGlZamZwWVNqb0UKdFRwdE0vd3ppc3hn
SXVCKy9mVlg5K2lqajdySkpwdk16VHJyckMxRDVLT1BQbkp2di8yMlcyeXh4VnFXQnhtWFJ3Qnlj
L3JwcDYrVApwMFU0dHFzdkZTa1RhWWxBVHlJZ0ZreWFjZ0lLYnJUU3Y2WVk5WWZFeno3ci9SUlRl
RC8rK043ZmZudDZqVU5vTEdVb2JTaWQ4VTM2CnphWlA4cFAzSDMvNTBSOTY5NkgrdTUrKzh6Ly8r
ck0vN3NIai9FZmZmSlJDT1R6bzl0ZHY5NE5mSGF3dkh3LzcyQjk1MzVGMXRLRTgKUTNpQmVTaS91
b0pJd0tXWFhocU5DN0ZDNFcrNDRZWWFzalhXV0NPS24yaWlpZnczMzN3VHhlZWxqUWhUSHA2VnRw
cEMrdGo0MHNkdQp6K3BqS2VrUTFPcTB6ZkRQS0RLREN5QmdjaHArczY1S1hzMlU1ZUdISC9iYmJy
dXRuM2ppaVhVOFhYNzU1YzJ3eTAwN3d3d3phRDczCjNYZGZMaTBKMm9NQTVNcHV1KzNtWjVsbEZt
MmJJVU9HbE1xNDNYMnBWQ0daaUFnVVJLQlRaSFZhc2JrRlMxcW5iZTdLSzUyVEwyanUKcTYrY3Ur
aWk5R3hEYUN4bEtHMG9uZkZOK3MybVQvS1Q5NXRmdTludHVQQ09ic3dCWTdwUlJ4N1Y3Ym5ZbnU3
L1h2Mi9GTXJoUVM5Lwo4ckpiWTdZMTlHWFNzU2QxQzB5eGdIdnppemRyNkVONWh2QUM0MUIrTllY
NC9lV2NjODZKZ21YZ3VmUFBQejk2eDZySExiZmNFcjEvCi92bm43cC8vL0dmMDNpaHRSSlR4Y0tX
MEZiN1NmaVY5N0tLc1B0WkhhWnNwVzBhUkdkelBFVmg4OGNYZDhjY2Y3MFRwVmlSYWJYSnkKbm5u
bWNmTEJ3RTAxMVZUOUhQbk9xZjVjYzgzbERqNzRZUGZCQng5b29VWWR0ZHpHam5iM3BjNUJrQ1Vo
QW4yREFCV1FkdUsreUNJagpjbHQwMFJIUDhhY1FHcU1QcFEybE03NUp2OW4wU1g3eS91T3ZQN294
UmgwamlvRVM4c3R2c2pVdHd5VW5GcU9QT3JyeWlKT0g4Z3poCkJiNmgvT0psc09mdnZ2dk9IdFVm
Tm14WTlQN0REejg0Yk1HS3UyKy8vVFo2YlpRMklzcDRXQ1RXVm90bTliRStTdHRNMlRLS3pPQisK
amdERzhxU1RUdXFnR01CQjJXK2xHeng0c0JzNmRHaEx0M20xc3Z5OXlCc0tCeFRDYWFhWlJxdFhW
Z0ZwZDEvcXhiWmduWWhBSVFUUwpsa1dLaEVsbXV1d0pueTRBZ1Z0dThmNGYvL0QrbDEreWlVTm9M
SFVvYlNpZDhVMzZ6YVpQOFB2MnAyOTEyNVZNeERYbS9LZk85MjkvCitYYUNhc1RyamEvYzZKOTQv
d2tOK1A3bjcvM1JEeHc5SXZMM3AxQ2VJYnpBTXBSZlhVRWs0UFRUVDQvR0JjYkdaWmRkVmtQMmh6
LzgKSVlxWHN4cGVWa0dpK0x5MEVXSEdnNnl1U0JmN2gzU3hCbjJzajlJMlU3YU1Jak00RUlFcVpY
V1Z2QUtMMzVCczg4MDMxL0YweFJWWApOS1JqWk84aUlPZnN0QSs4Ly83N1RWV1NmYWtwK0ppNHd4
RG9ORmtkaDZmY1dxWFVpSzRrQXF1dW1wOHdoTWE0aE5LRzBobmZwTjlzCitnUy9zUWFNNVJhYlpq
RzN5ODI3dUFFakQzRExUTCtNbTI3ODZSSlVJMTZ4L2Vxa2gwOXkxNzU0cmZ2eWh5L2Qva3Z0UHlM
eTk2ZFEKbmlHOHdES1VYMTFCSkdDUFBmWndzODgrdXg0MDMyeXp6WndvSERWa3Q5MTJtN3Z3d2d2
ZGh4OSs2SGJkZFZjMzRZUVRSdkY1YVNQQwpqSWRWbTJpclZxZHRobjlHZFJuY1lRaGdoVytNTVVh
c2JtWVZENnVBSTQvY2VZdnc4Z1Bwa3F1a1dYVklDdyt0UC9LQmkrZlZiTjVwCjVha2lyQlhscXFM
OWYvcnBKemZhYUtQVlZER09aMDFFSDcyMEFycytxZ3F6SlFMVklpQ0RveWtucFltKzVEYkZpSW1K
QUJFZ0FrU2cKWlFoVUthdlRlR0hsYnJubGx2Ti8rY3RmL0FZYmJPRFhXV2NkTDBwMlhYMXdVRnlV
Y3IrOURNQ3ZBQUFnQUVsRVFWVEZGbHY0cFpkZQoydSs4ODg0ZUI0Q1RUaWFYL3E5Ly9hdGZhYVdW
OUpENWdnc3U2TTg2Nnl3dlZvcVNwTDdSVit0UVBzODg4NHpmWjU5OS9ETExMS041CkhIcm9vVjYy
ZC9tTk50cEk4L3Y2NjY4OVZsaFdYbmxsTlRLUkxFUm8vY0ZqL2ZYWDkxdHR0Wlg2b3BRcjN4VldX
RUVOUVlEdk5kZGMKbytVUWkxNStoeDEyaUxLU2MxMktCOEpubTIyMktOd2VRdXRxOUhIL3h4OS85
RmloRkt0OGZ1R0ZGOVlvdEJYYWRPeXh4L2FycmJhYQpsKzFuOFNUNlhEVFAwUGF2eXlnV2NNWVpa
M2pnaHJiQmF2TGhoeDhlSFVLWGp6b3h5dUdQbDF4eWlWOWxsVlUwRFZaS1ZsOTlkUy9iCjZlcm9F
TkNvTHlFK2xGZGVmd0l2T2lMUWFnVFNaSFdyOHd6bDMvUytxVTZ1WENnSXBDTUNSSUFJOURvQ1Zj
cnFKQzlNcW1ITlRiNysKSzR6WVdybmxsbHZxeE5Cd2hlS3czWGJiNmFUUjZENysrR012SnFqOWdB
RURhcFFRYkVsY2R0bGx2Umd1VUdWQXprV3Awb0o4d1NQcApzaWFOb1h6RVNJU2Zjc29wOVdPYUhH
cFdSUVFLRk1vRmkzSXZ2UENDUCtLSUkvdzQ0NHlqTkVuRktxVCt3R1NublhieTg4OC92Ly9zCnM4
K2lLdHh6enozUlJ6eE1XczJkZE5KSkdvNkpjOXc5OWRSVEVYMDhQTFN1OFRUeDV6dnZ2Tk12di96
eXlsdk9WUGc5OTl4VExZeEIKNlp0dnZ2azBISlArdUN1U1o1SDJqK2NSZndhR3NIbzJjT0JBLzhV
WFgyZ1UrS0p0ckUvR0ZSQXgrKzAzM0hCREQ2WGp6VGZmVkhyMApQZlJOME1lVk84c25xeThWNFpY
WG44cHNqN1h5MFNjQ1JSQ3djUUcvMDF6VEplcmt5blVhMkN3UEVTQUNSS0N2RUtoU1ZpZDVyYm5t
Cm1uN09PZWVzcWRwcnI3M214VHBSRkhiZWVlZnBTZ1pXRXVJT2swRHdPL0hFRTZOZzJZYm90OWxt
bStnZEQrKzk5MTQweVV5YXdjMmEKTkJiaEE3UFZLTWNvbzR5aUt4REk4OTEzMy9VdnYvd3lIdFZo
WlFjMFNRVWtwUDc0Y282ME45MTBrN0dMZk5tQ3FYRnhCUVNyRWFCUApLaURmZi8rOWhpTXU3b3JV
Tlo0dS92eldXMjlGdktFWW1ZT2lJVnVidkJ6dzlsanhNRmNrenlMdGIveVRQbFpQVU84bm5oaCtI
dERpCk1hRWZmZlRSTlU2c0FGcXc5aW5RMzNISEhWRVlIcUNFb0w4aUR1MFNkMWw5Q2YyekNLK1Ev
aFRQbDg5RW9CVUlvTS9hWHl2NE44T3oKOHpiZ0NsSjBSSUFJRUFFaTBEMEl5UDBZVGlicWFnNVZ2
a2hyd1hFaDRNWWJiNnpQc094MjBFRUh1ZlhXVzgrTk8rNjROUlU3K2VTVApuZHlUbzJlaEVBRXox
V2VmZmJhVGJUOU9WaGFpdjN2dnZkZE5NTUVFbXZhaGh4NnE0WkgyVXBUUGpEUE9xR3prVGhFbmlv
WSt3N0pTCi9CSlJLM3Z5bkVGZS9XVjdrenZ3d0FPZEtEZDE1OEdRMGVTVFQ2NzVKZmtpTUJsbTcr
YURwbWhka1NiTnlXcVBCb08zcklaRUpEaWoKSnZkczZBV24vL3ZmL3pTOFNKNUYyai9LTlBHQVMw
d1BPZVFRUFZzbkt5QTFzY0IxdXVtR255RTBYSkNuYk0xeXNJb1Zyd3NTaXJMaQpkdHh4UitXQmZw
bm55dkFLNlU5NStUS2VDUFF5QWxSQWVybDFXVGNpUUFTSVFCc1FrRzB4T3JrKzl0aGpIU2FIOHNW
WmM1V3RPK3JqCmhtclpkdVJtbm5ubXV0TElGaXkzN3JycnVySEdHa3ZqNU91MlRuU2hnTWlYNnBv
LytRcXRkK3JJOXF3NlBzbUFvbnpFR3AyeXdDUzgKNk9INHZQcERPY1A5UEFzdHRGQlR0M1FuNjJq
dlJldHE2WXI0c3YxTXlhRk13UlhKczBqN0svT1VmNisrK3FvcVdtbDlDT1JRUXVMdQp4UmRmZERC
dkRzVWt6VFN2YkxGVGNoZ0NnV25sUnE0TXIyYjZVNk95TUk0STlBb0N0SUxWS3kzSmVoQUJJa0FF
K2dnQk9TRHU3ci8vCmZyZnBwcHM2MlViazVLQzJrOXVwM2Ftbm51cmtISVhEQkE0T1g1THpIQ2Fh
Y0xqYlEvYnE1NUZueGxmRkp6T0RXRVJlL1Y5NjZTV2wKdHJzcVlra3JlV3huWGEzQVJmSXMwdjdH
UCttLzhzb3JHcFMwZXBXa3N4V1FOOTU0UTZPeWxFa29KbEJhc0dJSFdsdUZTdkxEZTVXOAowdmd6
akFqMFJ3UzRBdElmVzUxMUpnSkVnQWhVak1CU1N5Mmx5b2RZVWRJVkJEbThyQ3NieU1hK0JqLzc3
TE81dWRvMko1dTA1aWJJCklLaUtUd2I3dXVCRzliZEpzZDNXWFplNHlZQjIxeFhGTFpKbmtmYlBn
Z0tyWVhCdnYvMTJGa2xOK0xUVFRxdnZjbzRIaDJWcTR2QUMKeGNUTVJlY3BobFh5cWlzSUE0aEFQ
MFdBQ2tnL2JYaFdtd2dRQVNKUUZRSlhYWFdWc2hKTFdPNkNDeTV3ZDkxMWw1N1h1UG5tbTkzcgpy
Ny91NU1Ddnhzc0JiQ2VIMCt1eXhRUVI1ejNnY0g4T25KaWNkZDk4ODQwK0ovOGRkdGhoK3VVNkdS
NS9yNHBQbkdmV2MxNzlaNXBwCkprMksxU0ZzUlV1NnRBbXkwZGlaR250UDg5dFpWOHUvU0o1RjJ0
LzRKMzNqOGR4enp6a29GVm5PbEQyc29PRVpXOFllZSt5eE9uS3MKU21HTEZzNFYyZm1ST3FMZkE2
cmtsWlVIdzRsQWYwT0FDa2gvYTNIV2x3Z1FBU0pRTVFKUUZzUlNVc1FWaDM3MzIyOC9mUmZMU3Jx
ZAphdDU1NTFXbFFlNXUwQXM0alJoS0JtamxYZ3NOUXRvWjVGRDdKNTk4b3R1NDdNeUIwUjkxMUZG
NitWeDh6My9hQkw0TUgrU1J4c3Z5Cnh1VjVjT1piZUVqOTVVNFJuUXlmY01JSmxreDlzZUNrZGNW
TFBHODdjQThGTHU1TWdRTXRKdEJ3WmVzYTU0dm5lUDdKdUdTZGkrU0oKQ1h4byt5Znp0ZmNGRmxq
QWlZbGs3VU5ISDMyMEJhdVBQbUtLblNtdE9Nc2pabzgxL3VLTEw2Nmh4OHNqanp5aVlRY2NjRUJO
WEJvRwpaWG1CY1JxL2VJWlBQdm1rS3VueE1ENFRnWDZCZ0F5T3BweUExTEVtdnBxcVdJc1N3MGI1
bzQ4KzJpTHUzYzlXdm03NXI3NzZxcW1LCndDU2pXTW54TUFQYXlZNTlvWk5icC9mS1ZxV3NUdkxD
NVgyaVJOU0F0dnZ1dTN2WjJ1SmxRcWpodUd4UTl1L3I3d1h1RE1GbGZKdHMKc29tWDdUbGVMRVRW
cEwzNjZxdlY3Q3Z5bVh2dXVUViszMzMzOWJpQUR4Y0JKdTlSd04wYW9NV0ZkSEZYaEkvZHh5R0tU
ZXFGZStDTAp5L2lRenpISEhCUFBSaThOektzLzd0TXczSENYeWZYWFg2L21mTmRlZSszb2ZwRzRH
VjdJUWJ0M0JCY2tpaFV3THlzL2VsR2duRmRRClhudnZ2WGNrNTRyVXRhYndzUmY4TmxrWklaL000
ZjZOS2FhWVF1TnV2UEZHQy9aRjhpelMvbEVHaVFlWTA0VXBZSlFSSm9DZmZ2cHAKRDh4d040Z1lN
ZEJ3bUVTKzdycnJOT1dYWDM3cHhScVZwc0U5SitaUUg3UWxMcmNVNWNXQzFjL3FTMFY1aGZRbi9F
NmhMakFoTEFwMwpUVG40UWdTcVFNREdNL3hPYzAyWEtGNjV5eTY3eksreHhocGVsak9qUDlrWDY4
VjBYdDBnN3pRZzJsVWUrYktuQWlkcHg3NWQrWGRpClBySXYzTXVCMWVnbTJ5RkRocFFxSm43ZzhF
TWtaalFWWTlpTTcyVEh2dERKcmRON1pZdkw2bVpybCtTRlNUVDZNNVNLYzg0NXgrK3kKeXk1NmtT
REdkdHhod21nVFBQREFXRDMzM0hQakpORXpiZ09YVlFBZHk2REZ4SFAvL2ZmM3VBZkRuRmhpMGh2
RnJUeFRUejIxSHpSbwpVTTFIakJBK3VQUVBpbzd4V1hMSkpmMXBwNTFtMlhoYy9pZGZ5aU1GQ2hm
MWlmbmdLSi9RK3VNdUNWUENNR0ZlYTYyMTlINFRLR3JJCk80a1hidXVXMVFPTlE1NG9BeTdFdzZR
YWVWNTY2YVgrMDA4L2pjb1pVdGVJT1BFZ1JnVDhFa3NzRVdHQWlieXNFbmc1Z08zRmZISVUKanZh
VHJYVlI2aUo1Rm1uL0tJUEVBeWIyMDA4L2ZWUWVYQng1NjYyMzZyMGV1TFVkZDdUWUpZVklpbWZj
bUM2ckdINnZ2ZmJ5c2hxaQo5ZGw2NjYyOXJDQkYzRVA2VWlpdnZQNWttUUlQT1l1aWwzRTIrK0hO
ZU5JbkFuRUVUS2JCN3pRM0Vnb2tCU3Z0Ykw4bEdCZ3JFVkFPCit6UmhWdkg5OTkrUGJMZVh6cVNI
RW9wUWR6SlJkdktseWNGT1BwMVRrNXR5STdMaUFTczVjbU90azhsTVlXalEvK1RIV0xjajRBQXIK
OXBUTHBWS0YrYlFyQWZ0Q3U1Qm1Qa0FnVFZhWFJTYkpDMXRnY0xlQ1RLSWN0bHpKMS9LR1ZvVXdU
bVV5cDNkTHhIa2x5NE14RFd0TAp3NFlOYzZJZ1JJZlprM1I1NzFYeHljcW5TUDFGZ1hMeWtVWHZG
ekdMVGpqa0xCY3RPaHpTTjlQRjhid2dFMlhTSFprSHhqWWpPd1FlCnA4TnpxK3Vheks5TW5xSHRu
NWFYaFdGdWdZUGtjb085Qm9IbkpKTk1ZdEYxUHJZSXlvUmZMVi9CSERLMlZaVjFWZkxDZlNvd2NZ
enoKVTNSRW9Hb0U0dklWc3FHVFhFc1VFRXo2Y0NnUGg5VE1kRjRuVmJxdnk0STl2MmwyeWZ1NlhI
MmRQL29MOWpmamdHR2VWWkpHWlpWdApIVTYreWpsWkFYRmJiTEZGSTlJK2o4dnFDemg0aWd2YTVJ
dHZuNWV4eWdMMGFyMnF4S2hWdktyOElhcVNWNnZxMjAxODh4U1FicW9MCnkwb0VpRURuSU5ESnNy
b2xoOUR4SlF3Tzl0L3A2aEdnOGxHUENVTE1YcnY1NlZUNW9ZWnZmT0RscCtvYkNpdHJNbmZaUnVK
dXYvMzIKWkhEWHYvZHF2YnErWVZnQklrQUVpQUFSSUFKdFJLQWxDa2dieTY5WmRkcXlVcFgxbC8y
K3Vlek1Qbm91WVFjUy9QVFRUM1dsNmpURgpvWm4rVmFadExybmtFaWVIWE90d0NRM0Fxc3JYWDM4
ZFN0NDJ1bWJyMWJhQ01pTWkwR1lFeklLWVdiVnFjL2JNamdnUUFTTFFkZ1E2ClVnR1JnM1Z1MVZW
WGRXS2xRdTNIeThGMkIvdnhTWWY5c21JWnhjbkJNeldMQ052d2swMDJtZHQ0NDQwalVremc4ZFVW
Ti9OaWZ5ajIKZnY3OTczK3ZNNk9JL2JmSEhYZWNXM1RSUlRYdGd3OCs2TlpaWngzZFg3cnd3Z3M3
dk1QaElpbVlBQnc0Y0tDYWpSVHJMZEhaRnlWbwo4QS83ZHErODhrcTN5aXFyT0Rtd0gxRml3b2l2
M1dJWnhhMjQ0b3E2M3hsMWdkbENuS05aWkpGRlV1MlluM0hHR1hyZVFRNzV1dzAzCjNGQXYvWUk1
U0xocnI3M1dMYnZzc2xyR0hYZmNNY29MNWdpQkJVeGVtaDEzaTJ3SEJwYlhtV2VlcWUyTG00N0Zn
bzQ3NG9najlDd0kKNHRNVWtOQStZZndiK2FHOFF2cFhWajZOMmdacHN2ckNlZWVkcC8wQVNvOGNp
dFQraWo0TGs2UjVEbjBJYlM3V2g5eWhoeDdxY0R1egpISWFzUzFaMU80ZU1zV2JxVlZjQkJoQ0JI
a0ZBTEZ1cHFXRzdJUjYvTFRnL1NVY0VpQUFSNkhrRVpLTFRsQk9BSW1zVXhnaVdpQkFPCjZ4MUZI
S3g3eUVUYXp6SEhIRjRPM1dsUytZTHNaWktxL0hiWVlZZUkzZm5ubisvbDhKbUd3d29HekJTS3d1
QmwyNWRhdTVCSnZaZXYKU21xSlJTYjlYdmFlZXhIeWZyUE5OdE0wTUlOb0RoYXBWbHBwSlEyWG0x
RzlUSWI5TnR0czQySFY2ODkvL3JPR2kyTGpRU2UyejcwbwpLbDR1Mi9JeWlkZTRVMDg5MVZobCtp
Ky8vTEx5TmJPS3NOUmhEdGFhRmw5OGNlVUY2eVlyckxDQ1dvVVNlL0ZlSnA4YURqTjlqei8rCnVD
WHhjc0RhdzVRbDhJR0RXVUhnRkRkRENVc2NhQWRSZUtKMGVJQkZGMnMzaTJnSEJzZ0w1VVQvRUFV
dXNsU0N0Z0htVnFhNCtjY2kKZmNMcUltZVFsQmN3aXJzaXZFTDZWNXgzL0RtdmJScjFCWmlFaEZV
WllJRStDU3N0K0FOdWpkemRkOS90WVQ0VVZuYk1vZCtEVHh5SApxdHM1ZEl5VnJaZlZoWDd6Q05q
NGd0K3NxNUpYczJYcDV2UXdld3ZyZmZFL3VTQ3ZtNnZFc2hNQkl0QkJDSFN5ckc3Nmx5aXRjbVVW
CkVFeWV3QSsydnVNT2syeTVCVlhqWkJ0SEZDVmZmRFVNRXk5TTJ1RGtBTFBIQkE4T2RzS2hTTVNk
ZlAzVk5NZ0hrekZ6VUU1a1A3N0cKeVFGNkMxWWZFM2pRWTBJSU9uTXdXNGp3cFpkZTJvSnkvUTAy
MkVEVHhCVVFKSUtOY3ZDQ292SENDeTlFZkRCeHMveGhZdEFjVENRQwprN2pEdlJjSEgzeHdGSFRM
TGJjb3o2UUNBak9XeUF0L2NkY09ES0JzSVYrWVBJdzdLSXlvTytJKyt1aWpLS3BvbjBEQ0xBV2tL
Sys4Ci9oVVZNdkVRMGpaSWt0VVgvdjN2ZnlzT3NGTWY2bmJlZVdkTkE2WFpIRXg2QXM4Ly9lbFBG
cVIrbGUxY1pJeVZxVmROd2ZuU0ZBTG8KQy9iWEZDTkpiSHpnMHhFQklrQUVpRUJuSXRESnNucFVL
VnhIT0prVU9mbDZyOWFoY01OcTNPRlFPN1lSL2VVdmYzRUhIWFNRRS92ZApHaTJyQmVxTExYa25r
emw5TnV0Sk1HMTM5dGxuNjAybzhnVTR6azdOQXN1bFFrNHVBZEl0SzRpVXk3RFVMQjl1VThXV3I3
akRGcWpiCmJydk4vZkdQZjZ3eEF3bXprSERZbGhYcXpIUmljcHNSNmdBM3l5eXpxTGxKNHdjemph
ZWNjb3JtTHdxVG1ybUUrVUNZcVJVYjhVNFUKRHZmLy90Ly9VOU9DTU9zYjMzNW1QSko1MmJ2NVJ0
ZHFETEJWQjl2RnNQVUxXOWppRHJjYXkvMHhhcDdTeWxXbVQ4UjV4cC9MOEdyVQp2K0s4azgraGJa
UFZGNHlmNFdEdmpYeFpxWFBqalRlZWJoczBPcnpEUGYvODh4YWtmbFh0WEhTTVdTR0sxTXZTME85
OEJHQisxMlF0CkRFbkFDQW0yc1RZeU54NlNwaXFhemtld2UwcUlOb0dEck10eUlUVHh0SzJrYjhT
N2JCekszaWh0dkc1OEpnSkVvQjZCamxGQWNHOEQKRHVETk5OTk1xU1pxOFVNR0JVUzI1N2loUTRl
cWpYbE1wT0F3SVU5YVRzTCtlWnl0R0h2c3NWM3lJTEI4Q2RkMHN0VkwvYngvc05HZAo1dVNTTEEx
dTljRkJXZW5ROHl1d2N5NlhRdW01QUZsbDByTXN4eDU3ckpOTG1Oenh4eC92WklVbTFZWjhXdG1M
aGxXQkFlejVZOUtLCnN6MXBEa3BJM0pYcEUvSDA4ZWN5dkJyMXJ6anY1SE5WYlZOa29nNmxEbjBB
RGorS09BdjB2Ly85VDk5eDNpVFVGV25uc21Pc1NMMUMKeTAyNnZrVUEvUTF5RmgrSVRON2l3NUZj
U3VqKys5Ly9PcmtJcnE2QUlXbXFvcW5MUENVQVo3NmdOTW1XM3BUWUVVRjlRUmVhcDVXeQpLTDJs
Qy9WeHhrMis5K3JIc2F3MElUVHh0SzJrYjhTN2JCekszaWh0dkc1OEpnSkVvQjZCamxGQU1MR0dT
eW9TVm1SOEhjY0VGZmNJCmdIYnl5U2UzcUZRZmsxMDRPWWZpY05DNUdXZm1oSk1UcCtSN00zbmtw
Y1hLRGhRUU9RdWdwRGhnTEZ2QTNLYWJidXFlZWVZWlBWZ3UKdDRrN09ZL1NFdlBIVldCZ2Q4TFk1
VnRaZFRaY3Erd1RWZkxLS3JlRlY5VTJob1B4emZQbDNKU0Q4UUtrTy9MSUkzVzh3T2hCRVQ1Rgoy
cm5zR0N0U25ydzZNNzd2RVhqZ2dRZWMzTkx0WnA1NVpsMk54U1dFbUp4aVpYaXJyYlp5c3FYVXll
M1Z1b0pzcFExSkl6ZVI2MlY5CmpmaUcwQ1R6dGpMRWZjalZQZmZjVTFmRWNWa2RESnZzdXV1dWFn
U2tyK2xDeTJibExFcHY2VUo5R0dTQmpJTkRPOEtJU05LRjBNVFQKdEpLK0VlK3ljU2g3bzdUeHV2
R1pDQkNCREFTYTNiVW1iS1A5d01hcnlCa1ErVHJyeFdTb2wrMVF5Z2ZuQUVTQUdxdklSNWlzWmlq
TgoyMisvcmVFNDc0SDhaWWsvb3JPSDAwOC9YZU1PT09BQUM4cjFaUnVVcGtGNTRrNjJRR200ZkdH
T0IrdkJkdVF2eWxCTmVLTVh3MGErCjdOV1F5WStlNWlIYnVtckM3VVdXdWxQTEpsdkcvUGJiYis5
RmNkUDQxVmRmM1pKNE93TWlGc1dpTUR6Z1RBM0tMUlBCbW5DOHRCSUQKTy84aFAxNTErU0lBeGdk
UUxya1ZYZVBMOUFra1REc0RVb1pYby82bEJjejUxNmh0a0RTckw5aFpDWndsQ1hXeXpjcFBPdW1r
ZnErOQo5b3FTWUp3QVQ3R21Gb1haUXhYdFhIU01sYW1YbGZmL3MzY21jUDhYMCtLZmU3bDJycUtV
OExPRWJFbEsycmdJMlNyUlRaUzZTc1ZGClFndFNkQzFaaTRqS21pVkxSU1V0U2hSU3Qyd3RpdFRs
WDZpUUpTTEwvTS83Nkh6TTkvTjhscG52OS9OOW51L3pQT2U4WHM4em4rL00KbVRNelorWXpuMW5P
NHVIa0hHQXMyTitrMUl3T29ZaFZSdkdBcm9ZazBybWI1LzMzMzEvbmQ3SEtObEprVHA2Tk45NjRs
MjRPVHIzcwprWW9rUDg0NTU1eUljUkx4MEs1ekp6cC9SeDk5ZElMeGo4ZUZ3TXN0MHlwYmltLzUr
a0lNaHFCVFJ0L3l4ek54S2VUZ3pCZCtWMTNHClRhUHVYWG5UdHZtemMyQ2hPWkRPMVF0ZGwzcjVD
MjZHVnl4YnFWZ09OeFdjaklyU2RhUEpXYkVNb2lKYWlEMXhHOUlIWm1LV0svdzIKRVJST2kyVWk2
U08xNE9uNHlyajY2cXYxMU1uMEJ2QTBENGdsckNBV3VjTHBwNSt1dWkwbm5YUlN1UHp5eTBmcVBD
dHRSSlFNd013awozczdid0U3SWh4d1RROUpxcTdmRmwvU041V2tLalE5TmFmVTRNYmFncG5veEN6
MWZNTzQ3VnRLdStXcUxsek0rQjdpaHdPdzM1cC9UCnZ1V1p1TTk5N25NQlQ5OW1TaG85dTc0OG1B
c0hSNHgxdE5MTndhbVgzZFZLc1VTbzVxdTVNUmZESWtFT2NIUmV4VFJ1Q2d1QmwxdW0KMWJNVTMv
TDFoZmp5Mlg3NzdiV2Y2Vjk0UlQra2tJTXpYL2hkZFJrM2picDM1VTNiNXMvT0FlZEFPd2Vtc2dG
QjJUZ0g1RVEwaVBsQgpWYnBHajJPMzNYYlRiUFVKalVnNTBkRTB1ZEhRTVAwbnU2cjBwejZqeUg1
dlVaRGpvNGRvRWh1YkZONzR4amNHUklIcWVnY3BqajFiCmU0Wll5TXVwa1pLMTBNcXdzS2tNRnJU
VUFWOFpCbXlzekhrVmNiUjNyNzMyMG1SVGpETWRsZnFHUkt4bEtSNTh5OVZmR1lJSDY2eXoKanNw
WDA4YjZSNTMrWVdFQzJJWngzREhSTkI3R3BVVjltdWdSM3dZNWZVTmVHd01XR2ozYlpDSnlsd1Aw
SVdJamdJbTU4V3h4MW5mRQo5WUhoTm8zRGV0N1NkeXluWFlnVm5uLysrZldpL1BjTWM0QURJWXg2
Y0JoU0I3bVYwM21LellUY3lHa3k4MUZmSG5BNE5HQXVhNk9iCmc4TWNtWlpkcjEvOU40WW5NT3pC
dDRodkE0YzdmSHZxdmprV0FpKzNUR3RUS2I3bGF3dVpsNWxUTnQxMDB3cUZqUm9pd09iNE5BZW4K
eWl3UDA4VHZvczJCWGx0YnV0Sm9aeGRkNDBQYVJuOTJEamdIV2pnZ2k2dUpRTWpPdWRiZmFLT05O
RTRjLzBYRVVBeGtvUlhsNVZWLwpGbHpOWS9ZMjllMGhIN0VvazZiR1k1YldnSHlZSkVWMEI3TzBC
aUxicStYSWh5S0tZcnBGVnlIWDUzSktvemlJTnNucGNCVEhoU3F5CkpjNzRJcVpmRFVSZXVSSmpr
a1djUld0b3ZrQVE3VW5oUnovNmtkSkdiSXgyNVFEdGdHZmk2WG9FWFNaRGpTZE5UaE9yTk1vUS9R
LzEKWDFKRnlvUEkzVWJaY0tSUlVVNGJGZGZxZ2xpRStSM0JUOHFaWjU0WjVkWkhSYllRRzZPc1Bm
ZmNNMksrRjVnUEhtQmkyY3dkWThLVgpkc3NIVE1XUnhPbWkxZ25SbzJPT09VYnJWRG9teVBUd2h6
OWM2YVErVVlndnBkVTN2cURaQkRsOVE3NjJzU0NLK2xwLytJRi9BSkUxCmJoUUZTY3VXRTAvTkkw
NHpkZnpJQms5TlVNTnJVYWFQaUQrSkpUZk5NbVEvbDd4amZlMDY5dGhqdFEyTVM3RmdsemJQbndm
Z0FIeTEKdjBuSkdSMUNjU3FxUHBNUVdheURiQ0RVRHcwNEp0cktlOWlYUnh4WHFrK293dzgvWEUy
ck45SE53Y0VIVGxwMm5VN2JiM3d3bVVscgpPZTJPNHJ5MkVYVWg4SExMdEFxWDRsdStlc2czV3pa
OTllZ294aTcwdTBKQ0RrNUtZSnI0WGJSbEU5WGFscTQwdnA5ZGRFbDNjQTdNCkVnZlN1WHFXNmtW
ZEpqYmluallPR1g5MEVOSTRkQlBrNUZNWHdyWVpTTk50b1dtTVFmNVdMS2FvTTBIazJlVTJKRzY5
OWRaUlRPK3EKUXpiRHc4a2Vtd3FqeGFaSEZCSXR1UXJ4RHlJM0FSVWVDN0s5OTk0NzRndkRBUDJB
TGJiWW9zSkJad0w5Q1Q2WVltV3F5bzhPaWlncQo2cVpLUkowaWZqbXMvQzIzM0RLS1FwNlJuQlBp
L0E5OUZMbDEwVHlpdEJuZitjNTNxb3d6eUxZQllRTW15by9xUUJFL0VYSlNxQnNOCk5tRXBVSjdj
OE1SblBldFpVU3pOeEJlOTZFV2FSNnlmcEdoUlRQV3FRMGpxU1puVVFVNjVkYU1IRGZFS0h1V2tY
WFZ3cHMwRHF4Z0wKK3hVclZsUzh3NUdrV1BKU3Z5YndGQjhwakFPRDNER0JieEZSZXEzb3JySEdH
dkdBQXc2b2VBeTlYRnE1NDh2cW1JWjlmZE0zRnFBbApZZzdhRGpiWGJCTHIvWitXeHpPYlN6a3gx
anpvZktDZlFSNHhYNjJiOEEwMjJFQS91Tk1ZNnpudm1OVzNxMTNJcllzU3ZMWmh3dzAzCnRDd2VE
c1FCbTZzSUo0V1VGZ2M3NkpVUnB2TXEvbWFZYTBsTC9STlJkazRleGtBZjNSeWNldGs1YmVlZ2k3
bUk4cGtMY1BUWkJBdUIKbDF1bTFiY1UzL0tsb1JqeFVGMmZOQzU5UnMrR2VSM2RuallBSjkzQTVO
QWNGNytMTm1ub0RxVzByYzVkYWVDSU5JVitudzIvSHRiYgpXRS8zMzg2QitlWkFPbGZQZDlsOTVh
a1dzbFJ3YkVBTzFFQUtzOGVKUTY3T3VTTGxHbHk4Z2F1cDNYR0pVaThzOXR4d3d3MHE3bVhtClZj
ZWxONDE4bUtxa25mZ1d3V29NRm1UZ0FTWWhteXlEeVVjbFlPWlNiamxVVEFITE0xMld3YTRVQzBt
eTZLOW9jWTFzSWpIVGFFOE8KVGE2NmFadDR0RmQwUkk3azFxdzE2NUJqWWtoYTlRcVg5azA5di8x
Ry9HU2xsVllxR3Z1aXdCOVdYWFZWSTZIaGZQUjF5VHZXMVM3NgpCUk9paUVqS29tK2tIZjVqTWc0
TU9WZW50SmluK1pPTmQ1QmJDUlZ0WlR6d0hvaUR6SEQ4OGNjSHVaa0xpR0FhTU4vMTVjR0VPdUtG
ClhYUnpjT3BsV3gzNndzOS8vdk5CYm1EVUxEelBaaUd1bm04aDhITEx0THFXNGxzK0N4Rkp3OHkz
aWZWYXZJVjhoOUE3UVZ5dEN3Y3gKWWNZSWtFTnpYUHd1MnFRaFpvY1lzTlhGMnRHVkJnNG0xdVZn
SjhqQm5XVVpDZUZEV3VlUlJQL2hIRmdBRHFSejlaQnI5Q0dhTXJNYgprQ0VhdDVobzFEY2dpNm51
WGxmbndKQWN3RmtsaXhrUnhSdVM3TEtuTmVTSHFFN3JpMS84b3ZyN1lNT0IzZ2VBL2gxK1FERFpX
bmZ1ClNucE9ucUZ3S0c4Y3VPcXFxNEk1dCszS3Z4QjR1V1ZhdlV2eExaL2NDZ1IwTDdzY1Nzck5z
dmFuU0VBMDZ1d1lMUkVwRHZpdTR1Q3AKanlaNXhzRVhhUUIxUXR4VVgrcUpRMThPZG5oKzdHTWZX
OVczSzQyNldEclBhVDUrcDJCMWJpby94Zk5uNThCOGNLQStWODlIbWJsbAorQVlrbDFOVHh2TU55
SlFaN09RWEJRZTQrV0RCaDFVdmgyRTVNT1NIcUlrV041aWl4NlBHSkRocDR6WlRSRVE3YnpWejhn
eUZNeXczCm5acHp3RG5nSEpoOURqVE4xYk5TYTkrQXpFaFA0TTBjRCtHWXE4UmJ1SU56WURseUFG
RkpNKys3SE5zL3pUWVArU0Vha3RZMDIreTAKblFQT0FlZkFjdWJBTE0vVlV6SER1NXc3ZTV5Mmkv
SjBFS1ZoellwL0RMR1FGYjcxclcrTlE4cnpPQWNXTlFkODg3R291ODhyN3h4dwpEamdIbkFQT2dT
d08rQTFJRnB1bWl5UldrUUxPQmxOQTRYRzk5ZFpMby96Wk9lQWNjQTZNellFaFQ4S0dwRFYyZ3p5
amM4QTU0Qnh3CkRuUnlZSmJuYXQrQWRIYWRKem9IbkFQT2dhWEJnU0UvUkVQU1docmM5Vlk0QjV3
RHpvSFo0OEFzejlVdWdqVjc0OFZyNUJ4d0RqZ0gKbkFQT0FlZUFjOEE1NEJ4WXNoeTQ1VFJhSmc1
K2d0bE5GOGQvYW5KUG5EcXBUNHQ2ZVNXNGxqYzN6OUI0bEo5RGM5WndTdmxtK0I0dQpYZzdnYXdN
UVo1VWFOdjNyd2hrM3Jha2NqM01PT0FlY0E4NEI1NEJ6d0RtUWNtQndFYXdQZi9qRDRUYTN1VTE0
N25PZkcvNzYxNzlxCldUZ1QvT1FuUDZrT3FzVExlVlYrQ2E1bHlzMHpOQjdsNTlDY05aeFN2aG0r
aDR1YkEvYWVmZmF6bjIxdFNCZk91R210aFhuQ2duTmcKeUt2NElXa3RPR084QXM0QjU0QnpZSWx5
WUpibjZrRkZzTDcydGErcEorL0hQT1l4NnIwV1Q5djg0Y2tXeHoxNElEL2xsRk8wbTB0dwpiVnpr
NWhrYWovSnphTDd0YlcvcmJmOTg0a3pDYStPNWhUZ1V3eFB1eFJkZmJGR3RZUTV1RGc0RjVPRE5H
azV1dlZNRzVyUWh4ZTk2ClB2dnNzOFBuUHZjNS9UdnJyTE1hVWJ0d3hrMXJMTWdqblFOamNPREND
eThNdi92ZDcwWnkvdUlYdndqbm5udnVTTnhTKzdGWTJ2aTMKdi8wdGZPTWIzMUJIZ1pQMndZMDMz
aGd1dXVpaVNjbE1KZjlpNlkrY3hpK0d0blNOcThWUS8zby9kTFduanJzc2Y0dkRxSWxBbUJidAo3
KzF2ZjN1VXlTU3V0ZFphVlp5bFBlQUJENGgvL09NZjR4dmU4QVl0cndUWEtwaWJaMmc4eXMraCth
UW5QYW0zL2ZPSk13bXZqZWNXCmlubmd1UDc2NjJ1L2JyamhodkVMWC9pQ0pjMEpjM0J6Y0NDY2d6
ZHJPTG4xVGhtWDA0WVV2KzFaSnJ5NDdycnJWdStmZUtHT3hLWFEKaFROdVdrcC9rdWZmLy83MzhU
V3ZlVTBVTDhueFhlOTYxNXk2MTJsLy8vdmZqeDV5M0Z3QUFDQUFTVVJCVkM5NzJjdml5MS8rOGln
ZQpqa2VTdTlKU3hGdzh5L094ajMwczdyWFhYdkVWcjNoRnZPYWFheXk2TlN6Rk4wS2x2TEI4YmFI
TnhZU1R3cEMwckM3Zis5NzM0bi8vCjkzL0hOZGRjVThldmVKUzJKQTFGbkZEajYvMDhnclRJZjh4
Nkc3LzV6Vy9HLy9xdi80cDN1Y3RkdEM4Ky92R1BqODN4d3c4L1BJcm4KOUhpNzI5MHVicnZ0dG1Q
VG1XYkdXZStQa3JiUGNsdHl4dFVzMTcvZUR6bnRxZWVaMXU5cHpOVkQxWFhpTDFIYU9OSDdpQ0px
VlMxKwowalNlUC9HSlQ4U1BmdlNqa1E5Tkx1NVZWMTJsYmIzMjJtdXo4b2cvamZqQkQzNnd0eDY1
ZUxuMVBleXd3K0pMWC9yU2VPaWhoN2EyCmZ6NXhKdUYxMitCaVFiVFJSaHRWN1h2Kzg1K3ZHNjRt
L0J6Y0hCeG81K0ROR2s1dXZWUGU1YlFoeFc5Ni90Q0hQbFQxajcxL3ZBOHAKZE9HTW01YlNuK1Q1
SGU5NFJ4VDlFeVVoL25FaWkvYzIrUE9mL3h6MzIyOC9QZGo0eTEvK0VnODY2S0FvcDJTSzNwV1cw
c3ZGc3p5bgpubnBxUFBIRUUvVW5jOUtCQng1b1NZMWhLWDVLcElRWGFiNjJaeHNQaEpQQ2tMU3NM
dlRoMVZkZnJRdFM2Rjk1NVpXV3BPSFRuLzcwCnVQTEtLOGNmL3ZDSEkvRkw2Y2VzdC9IdmYvOTda
TncvNUNFUDBYbUc3OHk0OEt0Zi9TcnV0dHR1U3VjNXozbk91R1NtbW0vVys2T2sKOGJQY2xweHhO
Y3Yxci9kRFRudnFlYWIxZXhwejlWQjFIVlFFUzNhb1FUNE8wdDVta0JPdGNQLzczei9JN2pEazRw
b3lMSGx6OHR6cQpWcmNLNkp6MDFTTVhMN2UrNTU5L2ZwQ1Q1L0R0YjMrN3VmRVNPNTg0ay9DNnJR
RjN1TU1kZ2l5K3dvb1ZLeFRscUtPT0N2SUJhVVRQCndjM0JnWGdPM3F6aDVOWTdaVjVPRzFMOCty
TnNZTUpyWC92YWVyVEdtVGhMRjQ0cy9scnpkNlVaN1RrRkYwYjg0UTkvQ0hlKzg1MnIKOFlVZm5P
dXZ2NzZWeWtrbm5SUmUrTUlYcW1nbnhpN2tKaVNjY01JSml0K1ZsaExNeGJNOFAvakJENEo4Q1BY
bktxdXNFdFpaWjUwZwpDMlZMbmhPVzRodUJVbDVZdnNVYzBvZDN2L3Zkd3ozdWNROXRCcjlUWU82
Ukd5ZjlocVR4UytsNTF0dUlQRG5qL3FFUGZhaXlYUllpClk3TmZOcE1CNHpUQUpIU1V3QVQvNU5Z
M0lCcmRCTFBlSDAxMWJvdWI1YmJrakt0WnJuK2Q1em50cWVkWmpyOEgzWUR3c1gzd2d4L2MKeWtm
U3dIbnlrNStzWVE2dTRUem9RUS9LeWlNbm1rRk8wbnJya1l1WFc5K05OOTVZTjFhYmJMSkphL3Zu
RTJjU1hyYzJRQkw0YUh6bQpNNTlSeTJiZ0hYdnNzY3J2cGp3NXVEazQwTTdCbXpXYzNIcW52TXRw
UTRxZlByL3BUVzhLeU1uV2dVVWJhVUFYenJPZTlhelcvRjFwClJydGVidWx2M2xzY2NPWUM3ekFH
THd4WXNKcmhpNjQwd3lmTXhiTThxVUlmY2JlKzlhMlZocVhYdzFKOHkxL0tDOHUzRk1KLy9kZC8K
ZkpZc1ROdFUzNVNrYVV2bGVURzAwZXBZSDkrbGZjQmhJVEFwbmRKeVUvd0REamdneUUxbEdqWHli
RzBkaVZ5a1AyYTlMVmEvdHZGZwo2WXVGL1ZiZnR2WXNsblpNcTU2RGJrQisrdE9maG1jKzg1bEI1
TTduMUplVFF0SkUxajNjNXo3M0NibTRLNjIwa3RJaXpNbno2MS8vCk92RFhWNDljdk56NjdyRERE
dUdLSzY0SWhHM3RuMCtjU1hnOXAvTnFFUnRzc0VIWWFhZWROUFp1ZDd0YjU2SXhCemNIaDhKeThH
WU4KSjdmZXlzeWIvK1cwSWNYbm1iRjN5Q0dIMUtPcjM2U2RlZWFablRoZENyNWRhZEQrOFk5L1hK
VTE3Z08zSHlMZUVYNzcyOThxaVovOAo1Q2ZoOXJlL2ZTdTVMYmJZSW56a0l4K3BUazlGWEN1SVRM
bmlkNldsQkhQeExBKzNzTnhrQW4vNjA1LzBXWFRlTEhsT1dJcHZCRXA1Cllma1dhM2pUVFRmTnFm
cENmclRwMno1Z3N6dk83UitieTRXQWhieGxXSWoycG1XMnRWMUVyTU9iMy96bUZMWDRPV2VzRkJO
ZG9BeWwKWTFwRWpSYW9wczNGTHFXK2FHN2hFb3VWRjNNaUVIYW9EQ2NoTXRzaUFoRi8rY3RmUmxt
Z3hsVlhYVFhLZGEwK0V5Y241NHBEZ1NXNApWc0hjUEVQajVkWVhlZlcrOXM4bkRueklyYnZoR3Ev
N3d1dXV1eTZpVUkrTWV4L2s0T2JnVUU0TzNxemg1Tlk3NVdOT0cxTDhyYmZlCnVub1AwM2N5ZlY1
OTlkVjdjVkw4a21leGRKZFdaK3hubExwZi9PSVhxeEk2eXVnWXRlZ0MyVlNwSFBsTFh2S1NLQ2FI
UjFDNzBsTEUKWER6eW9LUXYxdUJVQ1YzRXYySmRVVHFsT3c1K21yK1VGMm5lcHVlMFA1dlNTK0xh
YUtFenQvbm1tOGVuUE9VcGFvd0VKV01SbldnbApqYzRjdUdMMk9XNjY2YWJ4OWE5L2ZhV0Uvdk9m
Lzd6S0p3dDkxU0dVMi9OV3ZhRFNzaXZpeVFPNmdTSVdwQVlHbnYzc1o4ZXR0dG9xCm9oZVZnbGdY
akdMcFVjY2Rlbjl5dUtaR1NsSWMyV1JFOEZEWTNteXp6VlNQRFgwbEVWMktjaW9hUmJ3d2Z1dGIz
MHF6eEw0MnlpWXQKN3IvLy9qcnZvZ1NPZ1luM3ZlOTlJNFlhNUVZdmZ1bExYNG83Nzd4emZPUWpI
Nm4wVVJTblRiS1pqMDk5NmxPekRDZU1WS3poeC9PZQo5enlkUzlwMFFITDdnbmVXc1lRT0NEby9q
QVBaZkt1U084K20wMVd2UWk3OTczNzN1L0dWcjN5bDloZnZMbjNBbWdUYUtNSExKbGZMCkYydWR5
azk0aW80TDBOY2ZPV09sWG0vN25kT1hySmNZWnlJR0huZlpaUmZMR3NYVXY0NEI0akh1a3dOOWJj
a1owMms1akNseHRSQzMKMzM3N0tGSWZjZmZkZDQ4b1hodU1XL2UyY2RWWC8zSDY0b3d6em9oeTJC
ZEY1RlAvTUdieW05Lzh4cHFnK3J6M3ZPYzkxZmhPdWo3Swo2VHNqMHRZZVM1K1BzRzJ1bm8reSs4
cVlXQnV4M2pnK05reUs2Y0pCNUpuandRY2ZySXZ6dEVJbHVKWXZOOC9RZUpTZlEzUFdjRXI1Clp2
Z2VMaDRPaU9OTFhieXhnR3Y3WThGenB6dmRTUmMrZFJ4TEk3Mk8wNVZXcDdPVWxZTVh6MmhvcjJs
OXJtN0g3RStwMDJMQnZjMDIKMitpbWc0VWtJS2VSVVc1OWRZR1hMcUJJUTBtVHhUbmpTL1I4aU5L
Rk5KYjdqTFp0UUVRTVZxMG5pbzZVcHRVM0JLVmxhMkVOLzFoTQppd2lrMXB0azZrajkyUlFac0dn
UnNhR1JEWWNaWGtrWDR5elFIdjNvUjJ0OTVjWmZOeUZZK0JKZGc4cEtuWWp2eGZQT08wOUo5N1ZS
CmJ1eWptTEpYNHlvc3BMRW95UUlRWHIzZ0JTK3c2c1V2Zi9uTDhYR1BlNXpHaXo2TldvaUR6M3lU
MTE1N2JZMW53emNwdEMyc1N2dkMKTmlDMERldVpJdW9aTVc3QzRTVnRZd0hJUnR5Z2hQNlJSeDRa
N2RCRlJKSjFJOEtHVXNRODQ3Ly8rNzhyRDFrb1V3NkhhYXhUK0tQZgorL29qWjZ4WW5ldGhibCtT
RDBNVTFJOU5mUW9YWEhDQnhwUFdCMzF0eVIzVGxNUFlZN3l4Z2VQOUJ0aXc4ZDJBcitrbVpKeTZO
NDJyCnZ2cFAwaGRmLy9yWHEwMm9HVC9SUnQzOGozR1RIcktXOUIwa210cVQwcCtQWjhhSS9jMUhl
U1ZsOUkvZUhtcldzUFJGWU1JNDRvZ2oKNHJ2Zi9lNG80aGw2MHBCT0lpbkpFbHpMbDV0bmFEekt6
NkU1YXppbGZETjhENTBEem9HbHc0R211WHJjMXRWcFlhYWN1Tk5PTzIyRQpKSXNVMGQvVE5FNnRE
VmlnZzUrZUxKSW1JaUNSaFRscDlkTnZiaVNJcjI5QVNzdTJPdFREWnp6akdWclhOSjVOTlRkeEJw
ejBVZ2N4CndHRlJhdFdSdUYxMzNiV0s0NEhOQVBHMFIveGNWR25jVXJDZ0pJMmJpUlRhMnNoTkMx
SUZLV0FoRWhyOHBhYUpXVWhaL0ZlKzhwVXEKQzRzblR2eTVnZUVVZHhKb1cxaVY5b1Z0UUVTWGEr
UTJrYmF0c2NZYTJnNXVSQTFLNmJONGhCZHNHdGxzQUpnOFoxRUxZRTZlZEc2RwptcUN0UDNMR1No
TTk0a3I2a3RzczZsZmZnSERBYTMzY1ZrNDl2cTB0SldPYWRSMjNiOXhJcE1BQkEvV2hmd3pHcVh2
YnVJSm1XLzBuCjZRdm9jdnRHM2JHaW1BSmprQnZMRkVyNmpueGQ3VW5wVHZQWnhnbmhyTUhFTlpy
bHhzMGFzNzAremdIbmdITmdvVGd3NUZ5ZDB1TFUKR1BFZUZyYWNVTmNCZnk3Z2N4b05zUGk5MTcz
dUZSLzR3QWZXVWZVM29pWGdjNUNUQWlmNXhDT0NZbEJhdHVWckNsbGNRUC9WcjM2MQpib1FNQjdQ
eEJwZGVlbW5jZSsrOVJ4WmczUGlRRC85SUtZaEZSSTNIWkcwZExybmtFazBqWHlyMjBkUkcwWVZT
M25LRHdzWXQvVU5jCkNScHZmT01icXlLNFVTS096VVlkakxlMFl4Sm9XbGlOMHhlMkFVR1Vwdzdj
RnRFTy9JUndLekVPZlRhUTBPQkdoZFA3T3RnR0JGSEIKSm1qcUQvQnl4a29UdmRLK3RFVjgvZGFL
algxYkh6ZVZTMXhiVzNMSE5QeG44NEhvYVIxRWJ5OGVkOXh4MmtlV05rN2RtOGFWMFd1cgovN2g5
WVhTNUJZR1g5N3ZmL1hTY1did1lWOUVEZFB0ZDJuZms2MnFQMFoxMlNOdnNiOXBsbGRJZlZBbGRH
dW5nSEhBT09BZWNBOHVJCkF4ZGZmSEdReFVtUVRVVXdxeTlwODBYc1JYK0tTSldhMGIzc3NzdlVv
SWg4OEZPMDZ0a3NJMVVSSFErbFpYZVFDckxBVVJQdWIzbkwKVzRLSWhnVzV6VkYwRVYycXNzbW1L
WWdPVUJDZGdTQTNEVUYwTW9Mb0ZXZzZKcTV6QWF1T2Q3M3JYUlc5ejRDRDNCS3BkVGNNTXNqQwpj
K1JQVHB5RGlCb0ZFV0hLS2hwVDN3RFczNGFHU2ZvaXRXWm45Y0pxSkNEaVprRk9vOE00OUc5NzI5
c3FEUkc1cWl3M2FrVHRYNm5CCmc1eXhVaXRDZnc3WmwwMzB4NG5MSGRNWFhuaGhFTjh0b2VtOUZS
RXNOZndqbThWeHFqQlJubkg3d2dwbG5EMzg0UTlYUXlvaWpxYlIKc3BBT0lsb1pSQnpRME1Jczls
MVZ1VVg2TUdwb2ZaRTJ3cXZ0SEhBT09BZWNBd3ZEQVZ0QU41bk5wVVpzVE5oVXlBbTBmdVIvOXJP
ZgphVVh4eGRRRk9ZdkMwckt4MnRjR1dDLzgydGUrRnJiYmJyc2d5c3RxTGw1dUhZTG9MNDVZK3BN
YmovQzYxNzFPVGNlS0kwcHRHNHVWCm5QcW1aZVB2Ukl5ekJEbmRUNlBuUExOaEEvQzlnU1hGV1lV
aCs0STJpaEo5WmVhYURlN1E5Rk0rbHZaZDdsaEp5K0I1VnZzeVoweXoKQVFUWUVNNFNqTnNYYVJ0
NHowV0VNb2hoZ2lCR0l3SWJFY2FmV1dFRmQxYjdMbTNIWW52Mkc1REYxbU5lWCtlQWM4QTVNRU1j
RUVWaApyUTBteXprNXJBTWJFenZoWnRITktUNkFtZVZKb2JUc3Z2STREV1h6SVZhazlNUmNsTGYx
Wk5meWlTNkhtZ1BuOWtKRW9kU2t2S1dWCmhpSjZwVms0Z2U0Q2Jsc0FXd0IyNFM1azJ0QjlnWThk
MnM1R2RjMDExd3hEMDUrVVYzMWpwWW4rTFBabDdwaTIyeVFSU1d4cTJvTEcKamRNWGFZVkZWRXFk
NEI1Ly9QSHFDK3VESC96Z0hDZkxzOWgzYVJzVzQ3TnZRQlpqcjNtZG5RUE9BZWZBakhDQWszbE9r
QkhyYWZJWApJL29PS3FLRmJ4TnVReEEvQXI3Ly9lK3JYNmkyWnVTY1NwZVczVllXOFovNjFLYzBH
V2VnTEVCT1AvMTBYWlNjZE5KSlFTek5hUnIrCmo4UkVkdGgzMzMzMTk3ai9SQThtWEgzMTFlb3p5
aFkyYmJSc2d5SzZMNkZOeklzYkdXNllGaEtHN0F2YWdjZ1BOMFRycjcrK2l2WU4KVFQvbFZjNVlT
L0Z6eGtxS2I4L2o5dVUwK3paM1ROdDcrOFV2ZmpHSWJvMDFxUW81ZkJDTFZOVnZlNWhtM1NsajNM
NncraEVpT2dZZgpSSWN0SU5ZbzV0VURtNW9VeHUyN2xJWS9qM0xBTnlDai9QQmZ6Z0huZ0hQQU9W
REFBZVRyZDl0dE44MkJZOGc2bkhQT09ScTF6ejc3CmFJaFRXakZ2cVF0bVVmUWNRV2NUZzV3NVVG
OXNtNmlTaGVDVWxrMmVObUNCTDVhaXFtUXhaeHYyMm1zdi9ZMitCMkpBb2xpdXYwVngKdDhLek9C
WXZUZEMwQUdQUkJMNllIUjdKWW0yemtFVHFnVU5MTmo2SWl0VDFOMFFCWFc4SlRIZW02UmJLQ2tu
cFdweUZpSitaazAyTAphd3VieWhpeUx5aVhEU0FiQXpIbnF0V1loSDVUZlNGcW16ODJPazFnL0xM
UWNQckdpdUhWdzlLK1pOTU8yQWJZNk5rR2dIWXhMblBBCjJtQWhlVXJHTkJ2QWh6M3NZZnJlaWhu
ZWdFNlhBZThxNzRyNEpiRW8zYnp6bzZUdWJmMEVIYXUzaGNRQjQvYkZQM0wvODc5WVc5UHgKSmtZ
endvNDc3dmpQaEp1ZlN2dU9iRjN0SWIza25RTi95WUV3YUNJUWhuRG5ybjhURWZMTXpnSG5nSFBB
T1RBMUR0ZzhUVGdwMUdsaAp5UWwvRjFqQ3d2eXNnU3dXMU1RcER0NWs0V3pSYXE0WFhPaGd4UWFM
VVRpTnc5SU5WbytJeDd6bU1jY2NVK1hCVkNyeDRybTZpdU9oCnRPeVJ6TWtQbkw3SklpcUppUkVI
bHpncWt3V1d4cHR2RDV6OFljRUpTemx5Y3FydEZoRVZOZXVLVXpmQXJHQlJaM0FOY0Y0SlRmeDQK
MUtHdGpVY2ZmWFRscndDclduSURFMS8xcWxlcGt6cWNNMksrMkFBSGg1VEpuL2xTSVkyK1dHMjEx
VFJlUkUwTVhjTmpqejIyeXZQKwo5NzkvSkszcGh5anRLbjdxSXdXODByN0FjUy8xaEI1NURYNzYw
NTlxMi9BTGswSXBmY3dRUXg4enZIV3JhdENsSE5JWmMvaXdPUHZzCnN5TzhObWpyajV5eFlqVHFZ
VWxmWWwzSy9OL2dVUEZNY2J3cXQxM3FhRkwwbWJUdWUrNjVaOFRhVngrMHRhVmtUTU1qRVluVGN2
R1oKZzk4V3pOZ3k5aG1US1l4VDk3WnhCZDIyK2svU0YybDllY1lmREcweDMwVDE5SksrSTI5WGUw
cmZ1WHBkY244enZ1MHZOODk4NFUzOApKYktHRVRvNEIvbzRJR0lYa1lrcEJUNlNkYS9BYVhySjg1
QzArc3FkejdMNjZqSk9Pb3NXVEJBMmZid1d1bTFOaTRXMk5zNXlPOXJxCnZCRHhRODdWVGJUNGFP
T2dURTZxNHg1NzdCSGxOaVJ1dmZYV1VVNFRSOHh6V3R0WkhLNVlzYUw2T09MMDYrU1RUMVpmSFBq
SHdOOEgKTkhHNkpyY24xY0lIQjN2dmZPYzdSK2FSMHJLdERtbTQ1WlpiUnJscDBFWFZCejd3Z2Zp
aUY3MG9pblVwOWZOaGVDd0E1U1JZNnl5bgp3UkVQekN6c01VMHFwL1hxV1JuSG9JQnRRTmlZNGNz
Q1d2Z3l3QVF4R3gzeUdlUzBFVDhXWm5ZWC9yT0J3eVJ3NnZSWFRsVFZITEQxCkQ1czR1WUdLb3ND
dGZXSHhMSXhFdE15S1Z4d2N5WkZlTnlkY0lja0RmbHR3RkdoMDhOVnh3QUVIak4wWHZMdHM0dUFw
dk45MjIyM2oKTTUvNVRIV29haHU1dEh5ZWMvc2FSM2hzMXF5dUcyMjAwWWhaVmFPTENXQncyS1N3
bUtkZit2b2paNndZL2FZd3B5OHRIODZOYmN3eAo5bmtYTUhmTnVLSWVIL3ZZeDZMYzRCajZuTEN2
TFNWakd1S01hMXRZd3pkTTgrSlZ2Z2x5Njk0MXJ2cnFQMmxmcFBWbVE4eDgxUVU1CmZkZlZIcVBO
ZTVuenpobit1S0dOZjhKWmc0bHJOTXVObXpWbUw5ZjZZRWNmRy9haVNLZ1RQU2VBS2ZEaFlSeWx6
clRTOUpMbklXbjEKbFR1ZlpmWFZwU1NkVXl4T212bHd3SGY4Q3RSaElkdUdqWHQ4UnVBd3JBdG12
UjFkZFYrSXRDSG42aTVhSWtLbHR5QnNNTkpUN2JZMgo0L0JMTEdOVnlTSnFWRDJYUHBTV25kSm4z
QUhVbWR1WXVpUEVGTGRwZzF4M3ptWWJFUE1ESWpvZlVmUWFHdjFScExTN25sa2M0MFNQCkJRN2Uw
SWNFZUVlZlBmN3hqeCtFYkdsZmlEaVE4b2N3QjBycGQ5RzhVbnk1NUl4Vm8xRXlWaXhQUFN6dHl5
dXV1R0prN05USFc1MSsKNmUrY01aM1M1RDNsOENyZFNLZnA2Zk0wNno1RVgxaGRhUXNiM0Q0bzdi
czJla08vYzAzbGRNM1ZUZmp6R2VjYmtQbms5akl0aTlNYQpQcjRtV3NGa244TFRuLzcweUhWdTAw
bDhpcGZ6UENTdHZ2TG1zNnkrdXBTa00zbGVlKzIxMWVtZ0tBN095YjZRYmNOak5wTm0vVXEvClhz
bFpiMGU5dmd2OWU4Z1AwWkMwRnBvdjB5cS92Z0daVmpsRDBzWHJPNmZBRHM0QjU4RDhjR0RhNzl3
c3o5V3VoQzY5TXkxQStWQzgKdVU1TWZpZzZFMWRrVEFJNEo1T3I0NEFKVG9EZktjZzFyVG9vRXkr
OWFmUll6MFBTNnF2QWZKYlZWNWVTZEJRN1YxbGxGZlVyUUQ2WgpadWRrNzJyYnRNZmpvWWNlcXZV
NTRvZ2pPbTNPVDlxT09ZMzJDT2ZBTXVZQXl1ek13U0sydFl5NTRFMTNEc3dmQjViN08rY2JrQ21P
Ck5aR05EYWVlZXVyRUpReEZaK0tLVEVqQUhKVlptSktyYjByU3ROTG5JV24xbFQyZlpmWFZwVFRk
NnM1Q3Zna3N2WjQyemZHSXhTUzUKVWxjdjBWZ2tPdXFvbytyRnovbHQ5U3h0eHh4Q0h1RWNHSkFE
SXNLbDFFUlVaa0NxMHlPMXpUYmJxQ25TNlpYZ2xKMER6b0dVQTh2OQpuWnY2QmtURUpGSitUK1c1
NlFTM1hoQ0xtcUdocTIwaVJoTEVXc3ZFUlE1Rko2MUlEcjlTL1BSWmxBWkR5UWNWZS9kMWFGc28x
dkhhCmZyZVp1MnpEcjhmbmpvV3UvcTNUelBtZHkvY21zNTA1OU9jRFp4cmpNYTMzZTkvNzNpQldr
ZFFSSFBIdmZ2ZTdHMjlvMGp4RFBOTTMKOWY2cC94NjNuTkozWnR4eVBOL3NjRUIwTklJb3FHdUZj
TkRJdDBBTWJjeE9CUnRxWW40T0dwSTh5am5nSEpnQ0I1YjdPemUxRFFnTwphZkF1S1JZRndxYWJi
aHJFb2tnd2UvRDFmaFFyRHVFcFQzbEtFRE5yNnFSSzVNOER6bTVTWUNFckZsTENMcnZzRXRaYmJ6
MU5vZ3hzCk0yUEwrMmxQZTFvUXVmWTBpejRqemdIT2ExLzcyc0J1VXl4c3FOM29GSkVGTGFlNllz
NVFUMTdYWFhmZGNOaGhoMVYycDFOY252dmEKaHVqSUMxN3dBbDNROENHQ0huL1ljVGZJS2JPTGpw
aDFER0pWUmUxdWl3VVdJeHZFOG95MkEzdmM5Y0dOQjFNeDNSakV3b3kyRGVkVgpxNjY2YWhETEkx
WCt0Z2R1Y2loUHpGS0cvZmJiVHgxb21YMzJwandzSk9uUEhYYllJWWlaUExWM3owSU1TRGNnMkEv
LzVDYy9HVGJmCmZQT1IwMjV3S1JNK1B2R0pUd3czM0hCRG9MN1lJY2RwRU02cDZrN1AybWhaL1hM
R0FyaDkvUXRPVzFuampsTm9jdHJQZXlCbURZTW8KcnVwWXhVL0NsNzcwcFhER0dXZFUvaEhBYllP
Y2NkV1cxK0xiMnRZMUhpM3ZKQ0VueHFlZGRwck9HOHdYM0pUaGIwR3M0WXhGdHEwZApLVEhHbmxn
bTBwTmY1Z2ZHTEhHTU9SeWhBZU84YStUTGZXZEVDVHNjZE5CQjRWR1BlaFRaZ3BnQ0RWdHR0VlVR
UmZ3ZzVsNzFOL0dpCnFCMFlEOHgvdk44NHd4dHFrd1I5aCtFNHdOamRmLy85Z3hoSzBEKytRWFpU
TjF3cFRzazU0Qnh3RGl4aURzZ0hiQ0tRcHF2Q0tDRWcKcDdkUkZvMXFqdEdzRTZEd2VxYzczVWxO
am1HNXhrQVdTMUUrK25HdHRkYUtwcGhNSGxtMEtrM1piQmlxV2xXUlNWempNVVgzc3BlOQpUQzM1
dk85OTc0dHJyNzIyeHN2aXJjTG5RUmFTcXR4czlVQnBGZHFwN1hJUjgxRHppTExvMExwaldRVDc3
TFNIZHFTUTJ6YnMzV09xCkRScllsY2FxQjMrVUQrU1cyVWNITTRPVUlZdjN0SnBxUXBCNC9neU9Q
UEpJdFN4RUhPWXVzU2t1aXh6dEU4eG15b0xmVU9lRXN2aFYKRTRYaUliUktnMS9RZ3NjcDBFWXNM
TWtpcWJJbUFkK3c1MjUxd3NRcmdEVVg0czNPT1dZM0RiRE1aUGJKTVRlNDJXYWJxU1V0MGFtSgpz
cGxUV3JlKzlhM2plZWVkcDFtNmFJR1FNeFp5KzdlckxId2dsSTVUNm9kdmc1VldXcW15dlBPVG4v
eWtNcm1KK1Vqc3JXT1pwd3R5Cng1WFJrQU9DT1gzWTFiYSs4V2gweHcxNUwvRzdZSUI1UmNZTTcx
QVhsTFlEV294VGNaNm41aVN4UkdKZ2ZnTW9OK1YzeWJzR3JkeDMKQnN0dnRJL3libk9iMitqN2dG
OEoyWXpHbDcvODVSb3Zod1JxSVk1eEpSdVZLRjY2bzJ4QU5PM2dndysycXZlRzl2NFJUZ3BEMHBx
MApMcDdmT2VBY2NBNDRCNW81TU10ejljUmZvbnJqNUpSVXpYdldUY1N4bVFBM1hjVHlUSnljZW81
d2pnM0RneDcwSUUzRElvNkJlS1BWCk9QS3dVREJnNFNXbjZtb1hYVTZnTFZvZFdVRW5CU3d0WVhY
QUFDZFlmUEJUd0N5a3RTczFEVnZTdGk5ODRRdEtBK2M1ZFNncHM0dU8Kbkl4ckdmVU5DSGJocmY1
cDJYSWlxL0hZTzJlREJHRHFsRVZuRit5KysrNmFqMFdSQWFaMUtXUFhYWGUxS0EzWk9CQ1BtY2dV
Mk9DdwpZU0N0YnQ0UzIvakVweHNROHJLWUo1NThGMTEwVVVXT2hUQnRKazF1YzZwNEh0cG9ZUSsv
Ynl5VTlHOVhXYVhqRkg3UVJoeUtwY0E0Cm9ZM1krcytCa25FRnZhYUZ1NVhUeHNldThXaDV4d2w1
YnpHOWU4a2xsMVRabVJkb1AzOXAvMWNJTnorTTB3N21GZWpLVFd1ZG5HNEUKU1VzM0lLWHZXc2s3
dzZHSG5JNXJmY1JEOWtoOWJKeXpTVW5OcnVMdmdUcHVzc2ttSS9oZFA4QzN2eTY4bkRTalEramdI
SEFPT0FlYwpBN1BKZ1ZtZXEwZk5FVWxOSndINVFJWlh2L3JWUVp4UHFWaFVTa3NjUjZsNEEySk9B
TGh5NHFuWDBseFBweUNMc1lCWTBTdGU4UXFsCmh4Z1hJQ2YxR2lMQ2srYVJrK01nUGlhQytKY0lZ
bSs2RWowU1h3WUJhejZ5NFFqLzh6Ly9FMlRoclZZK1RPUkl2S0FHOGZvYTVDUlUKeFc2VStNMy94
T0ZURUx2Z1FSeTFxZWhSU2R0U09xbTRFZkVsWlhiUjZVcXpNaTAwWExsSjBFZngvNkJpSi93d3kx
U0cweFRLU1d5UQpHeXdWQzdGMGZnTW1wc0l6NGorSXVpSDZaV0p5eEFQd1hoeHdhUi9WNjRVSUhW
Q1BwNTRBZll0SWtvRjRZZzN2ZXRlN1ZEUkhOb2hCCkhCdFdZNk9OVnQ5WUdLZC8yOG9xSGFkeWl4
TmtVOFZLenBxb29keDhCTVRHeEhualNIelRqM0hIVlJNdDR0cmFadmoxdnJMNGNVUHgKQ2h2a0ps
UkZNSTJHM0hycFdMcnNzc3RVRndRUnNGSm9hZ2U4Um55Sk1ZbDRhQjNFdzNBUVcvQnp4aU40OVhi
YmJ3dU5WdTQ3QTc1NAozdFh4S3pjeEFmSFRGQkExUkFSTmZETW9ucVhaKzRCWTFxeUFPT0FMbi8v
ODU0TTQxOUo1SFRFa09TQUljdU02cDRvbHVKWTVOOC9RCmVKU2ZRM1BXY0VyNVp2Z2VMbDRPeU9H
WFZwN3ZYUnQwNFl5YjFsYVd4enNIdWpndzZBYUV4U2dmMGZ2ZDczNXp5bVRCaXY2RndjVVgKWHh4
RUxDbmM5NzczYlpTTlJRYWFEWWlJNjZpSlZoWUZYU0JpUEpyTTRzSkFSSUZVbCtNdGIzbUw2bys4
OWExdkRYS1NHRVJrUzFIUQp6MERYNFBhM3Y3MWEzckY4aEhJN296OVpGQUVsYmRNTU4vK3JMMHhL
eXV5aWs2YmxQclBRQVZnZ04xbWlhcVBEaGdMZUFVeFFILzd3CmgzV2p4Mi9rN0ExWUtMSVFSbzYr
Q1Zqd0RRVnltNkg2T3VJQk5vaVhYOVd4NmFMZE54Ykc3ZCt1TXB2U21zWXBHeXdBMlgvR0x4dHcK
UUx6TmF0ZzM5a0VhZDF4cEFXUDhxNC9yTVVpTVpHR2poZmxQdVFFWmlVZTNpM0dGWGc2S3ZIZTk2
MTFIMHNmNUlUZCtBWDBURnZlMgprUjZIVGxlZTNIZW1pd1pwTmw3cWVCeVFBTXloc3dETUNTSkNG
c1REdDg2cDFJbjNIWDBhdWIwSzRpRzlxbVlKcm1YS3pUTTBIdVhuCjBKdzFuRksrR2I2SGk1c0Rj
bHV1RFVCdnJRMjZjTVpOYXl2TDQ1MERYUndZZEFQQ3BnTGdOTGtQV0RRQ2JRdGhUc3Y1Z0lsY3Zp
NHcKY3haaDlUSWY4WWhIQkJGVkNOdHR0MTBRY1FwVnpoYVAzRUhrcHZXVWpvVU44TkNIUGxTVnBl
djUwOThsYlV2ejFSZHFKV1YyMFVuVAo1dVA1eWl1dlZDVncyblBnZ1FkV2k0dTBmU2dNQTl4UWRF
R2Fwd3V2TDQzYkd6WWdJcy9maDZwSzgxMWpZZHorN1MwNEE0SE5GRXJGCkloNm95dWEyZ1JNOUVP
VXpOM1I5TU82NDZxUGJsajVVSDBKZkhMYnBCcDk1UTBRRDV4U0o4cTZJRlliRER6OWNiOWptSUJS
RzJDWW4KNS9hdmtQUUllczQ3TTVLaDRRZTNDVUNkMy9YZkRWbm5MWXIzaWh1Wk5kWllJNGplamhv
U29IQVUrVVZIVCtkZWJuRkVuRXpuNDF4YwphMEF1ZlE1WWNtam40dVhXRjE5UEdPam9hdjk4NGt6
Q2ErTzVoUi80d0FmMGhwbWJPYnQxczdSNm1JT2Jnd1BkSEx4Wnc4bXRkOHEzCm5EYWsrRjNQSEdC
OTduT2ZVNVN6empwTGpiL1U4YnR3eGsycmwrRy9uUVBaSEpoVWFrMEtxdVNLa1YvbU44cWpmU0Np
VFlxTDdMc3AKWjZkNWlKT2JDY1ZCSVJjUXNRajlMUi9mRkZXZlpiT2hhZWdtMUFFbDA1MTMzam5L
WmtkeDVGUlZVY1JNb3Y3ZVo1OTk2bG5tL0M1cApHNWxOVmg3ZGd4Ukt5dXlpUTVySnBkZVY3OUdo
b1IvcWZFTGZnM2h4TnBWV3FmZFpiZ2VpT0s2TGUreXhSNFZMbjBCTHJGSlZjYWIvClFWODBBY1lH
eUlOUmdoUlFXaWRlVGhIVDZOam5TVml1bVRWZnFtL1VSc3NJdDQyRjB2NkZYbHRaNDR4VFBNV0xP
RkJFNFppNjRJMlkKM3p6blFPbTRnbWFYN2tSYjI5ckdkVTRkMjNCMkVoMHNGTkRiUUE0UUxCV015
UUFBSUFCSlJFRlV0Si9SRVVsMXZBeS90QjNXMXh0cwpzSUdSR0FsdG5LWnpTZW03bHZ2T1dNRWli
amhuTEpNbW9vWWFMemVRaHFvaEJoTjRaK1JnWmlTKzZ3ZjQ5dGVGbDVObWRBalI1VVB2CnpQaVdw
cUVzTHh0TFZhNkhiZ211MVNNM3o5QjR1ZlZGUDZldi9mT0pnMkdQM0xvYnJ2RzZIdkxOa0p0Q0hU
Y2JicmloZnRmcU9QWTcKQnpjSEIzbzVlTE9HazF0djQ5YzQrR25lOUpuNXdJeXo4UDd4RFNZdWhT
NmNjZE5TK3BNOGl5U0Y2dWF5Rm1QT3E5ZTlUbHZFa3RVUQpFWVk2VWoxZDhMclNVanE1ZUpaSHJM
Vkd1ZUdOSXBrVHI3bm1Hb3R1RFV2eGpWQXBMeXhmVzVqT3gyMDRDeFUvc1FaaDJyanZmT2M3Ck9s
SEp6VVdVRTlrNWJXSlR3U0lWRVAwS1hTQ1RYOHp6enNGRjZaUTBFVFdvMGtvWGRsaHFTZ0hGZGVo
QlYvUkZvaWxsczdoT0Y3RnAKSGpFNXF4YWlTdHBHZmx1b2JiSEZGaW01b2pLNzZKQm1peUkrYmlr
TXZRRVJVNkRLTTdOZVJWbE5HNUR6enorLzZuOFJ4VXFycE0rMgpRQkZ6eENOcGJZdmRyZzJJaUNx
cEJhLzZacWVOVnQ5WUtPMWZHdEJXVnVrNGhSWVRydWhQUlRGZnJCYTdHS3U4STdsUU1wYU5adW5D
Cm5YeHQ0OXBvbG9hTUtUbVJqazNqeFdneFA5ZzhZL09IcFJHV3RrUDhNU2c5RGova0JpMGxwYzhp
UHFYcFRSdVEzSGN0OTUyeHdoZnoKQmtUMFBxSlp4Yk4rU2tNczBLSDBEejl6Y1RFRUFuQllrWk9I
RFRqV3dmcnFrWXVYVzE4eDF4NHgvaUFpaE5VWVRkdk84M3ppVE1KcgpHNHYxa0FVUmx2aXNYYzkv
L3ZOMXcxWEg0M2NPYmc3T2tMUnl5aHNLSjdmZTRCbmtsRzI0YlNFR1hLeC9MT1I5U0tFTFo5eTBs
UDRrCnoxZ1pGUEZ1SllFQkd4YnZiY0MzbjNVWkJ4dFlVc1V5b0JtMjZVcEw2ZVhpV1I2K3I2SlBy
RCtaazBRS3hKSWF3MUw4bEVnSkw5SjgKYmM4MkhnaG5EUWIxQTRJb0UzNGFaREdsTXIvb2J4aklT
NmJ5d1lpYUFPZ2htR2dKdml2cVlENURaRWRjSlFuenF1ZjZRNU1ZRG5LNQpZaUdyUWtWeEhSbGxB
RjBHZnNzcHV2cm5RRFJMQm1XRnk4TWIzL2hHRlNkQ0ZLeWtiZVExNVZkRWhGSW9LYk9MRG1rbUI0
N3lZd3FJCjhnRHdxMGxHdkl1UEtSMmV5WStJREdBaVZqeGJISXJuQnV1c3M0NHFuTkwvK0N0SUFk
NmlId1F3RmxLd3ZyTXdUZU1aZW5XUVUyeFYKZXBjVHZKRWtvMkdoSmZhTmhkTCtoYTZWWWFHVjFj
WGZPcTdsZWZHTFg2eGlXSXhEV1ZEcjJEUmxkc1BwQ2t2SEZiUnk2bG12Yjl1NApUdXNtRzFGVjJr
M2oycDdSL1JCTFR1R2U5N3huRzBvUWM4eVYzaGJHQitwUTJnNzZXZzRkOUgxSE5DWUZkTUxNWDA5
S3QrUmRLM2xuCjByS2JudTM5YW5vSG12QXREckVsK21FK2dEblU1cHltOGpBT0lyZXU2ZzhqRjVm
NUdTQnZUaDdFUHBtbisrcVJpNWRiWDNpTWp5ZWIKRDdYU3RYL3ppVE1KcjJ2VnJuNmloNFF4bHhV
clZtZ2Mvb3JzMjEwaDNmeVFnNXVEQTdrY3ZGbkR5YTMzemV6U0lLY05LWDc5bWU4cAp4bC9xUUp3
NURlN0NrZHYzMXZ4ZGFVYTdYbTdwYitaTDVsY2JYeGl3a1VPOFZqSW5uWFNTR2lsQ2xCTHhYSEhK
RUVSaVFQRzcwbEtDCnVYaVdCNzFCTXhEQ3Q0TzFEaUsyYlZDS2IzUktlV0g1Rm1zNDZBYUV3WUNj
TnBPOG5IYnBvaDBuWCtoZ29NT0JQTE01MjRKaE9OL0MKTWhPTHc5TlBQNzNpSVI5K3JLbkk2Yllx
b2x1Q2ZWeElSNG5VZ045eUphWS83Y1BGRHo3ZWxKRUNteUprdjFuVVVCOFUxSkdubHBOVgpkZnFG
RlM4MktXeVVzSUNGQlMyZ3RHMTh3QUIwVDloTVFldlRuLzUwVVpua2I2TkRHaks1VEY1WS9zTEJv
RnhGcXZNcnZFZWJ6Z3pPCisvZ29BUmJ5NHNndVh1UDYvcUdnTDZJcWlrWVp5SmlpREh6ODhjY3JU
OUJUNEZsMi9Mb0FPT1NRUXlwZU1USEl6WUtPQlJ6TDhYSUIKSXNvVnNIcGtZQXUrdGpxeDhUSFpW
dkt3NGFKZDRxOUZGWmVORG1FYnJiNnhVTnEvWFdXVmpsUEdMTzhOWTFITUdsZFcyN0FjZDl4eAp4
MVZqTzIxbi9ibGtMRnRlMDN1cGIyQzcydFkxSHNuM2pXOThRNVc3V2VUWE45OVdyb1VpUXFIV3Jk
Q0I2UU9jV1FLTUo3bUZHVUV2CmJRZGpXa1MrbEFZYkVCSFBWRDR6RHpGZjRVeXlEaVh2V3NrN1F6
bk1TZmJCclZ1MXNrTWNhNlBWaTNjZXdGSWZUanBUWU14Z2ZRb2wKZTJUTXB3MThiSnNzWFZtNXBJ
R0RCY1JjWEtQSDJNakp3d0VINzdqbHM3TFRrTFJjdk56NmJyenh4cnF4WWhQZEJ2T0pNd212Mitw
UAovTW9ycjZ6NldhYXp5Znh0bStONnZoemNISnpjY25Ob3pTZE9icjFUdnVYVUw4VlBuem5zUzlk
RGxzYWF5QTRDdTNERXgxUnIvcTQwCm8yM2xqUnN5amt6WExZY0c3ekFHTHd6NGRuTndCSFNsR1g0
Sm51V3A2OXhoS0lheTJxQVUzK2lVOHNMeUxkcFFGdThUZ1RTY2F3bjkKTTBLSXpvZ0ZueW9lOFFK
WllGbnlTSWk0aWxoSWlYTGFxem9HY2hzU3hZeHZGTk83NnJ6UGtPVkVMeUtEYW1XaFc0Rm9oaWl6
Szc3RgpVNjdzYmpVYnVpaHllcVpPM09SREhHVVJIRVZaVUVVQmpDNGhQakZNTkFzNk1xRFY5d0p5
dlhVb2FkdjIyMit2OVVVa2JjODk5eHpSCmRTa3BzNHNPMTRLeTJOTnljTkNJREtVTTRpZ2JPOVhG
NFNvVE1ST3U5V1FSVmZHUEszWFpMTlNiMS9qN3pEUFByTXBBNXdNeEJqa1oKajJJcVdjWG9rS1dY
Uld5VkYvRWhPYzJveXBLUFloUXY5dXFIUXhaRzZ1K0Rmci9nZ2d1MHZySmhyZW92aSs0b1puV1ZG
cnltUDJpTAozQkJvMytHZlFnd1VxQ3dtZFREb281VTdGbkw2dDZ1c2NjWXA3UkRUMEJXL2JDeGJL
SmFhS3I4dDF0NjJNR2RjY2NXTkdJWFJGK1haCmVNQUJCeWpmdTlwbVpYYU5SL2lIcmhWMXRuNjBm
R21JZUFBNDFFRnVWYUpzYmxWOEk4WGhtYkZMR3JvT1ZsL3cwVWVhdEIzb0ROalkKdTkzdGJoY1Js
MFQwUnc0b3RLeFVCSXU2NUw1cjRPYStNK2pDVWE2MURYMHVSQ3NSQ1pVTmFUVXZvUStIODFWMG1K
amZlSThzRDJOYgpsRTRwVm9GNVVUN29tczZjYVdENGhKTkNTZ3NSQ0hSekVJZE00M21XazBKTlkz
d0JKYmlhb1NCUEx1MWN2Tno2UHVFSlQraHQvM3ppClRNSnI0M2xiaUhOZStsV3NWN2FoVlBFNXVE
azRFTXpCbXpXYzNIcFhETXRzWjRyUCtnZFIwdnA3WjcrWjMvZ2VkK0VZYm1rSTdmUzcKbjlhcjlK
bTUyRVNPNVVBdTRqaTVEZVFnVStjUisvNkRhM3JDWFdrcHZWdzh5eU9IckpWdk05YUZzdm15cE1h
d0ZEOGxVc0tMTkYvYgpjOXF2YlRnTEZUL3hsNmlyY2NqNnkybnd5TUs3cmFGOFdIRThWeXI3M2th
UGVQT0F6c0RHcVpqSkNUYmxZVERMcVpjT01tUUwreUMzCmJWZGVlV1gxWXRWcGxwVFpSUWU2Y2lJ
Nm9yalZwdE5TcjBQSjd5YkZxNjV5V016SmlXNVZCRHdyQWR1QXNIRUNVTlJHdVZmRVVVckkKS0c3
SldDQkRidjhXVjZRaEErT0FqU05qbjNIS0FsVE1LS29jckZnUlVnTUtiT0p5b1dSYzVkS3M0M1dO
Uno0R3ZNK0xBWGpYMldqSQphVlpWM2JZTmlDR1V2R3VsNzR5Vk1Xa0kveGxQNGora0l0VTFWMWRJ
bVE4cExUYUNHRTFnczRoQkFRd3BvRmZITTNGc2lzRUJTbkN0CktybDVoc2JMclMrSFBIM3RuMCtj
U1hodFBHOExtUmZSZzBMR3ZROXljSE53S0NjSGI5WndjdXVkOGpHbkRTaytoN1hwdTlqMGpQR08K
cHZnaDRuSU1EcVgxYlh0bW51U1FrZThnanFLYkRuL1R2Qnp3aUJoZ2ZNbExYcUxmeXR5MGNmREl3
NW9EUXlBb29YUHdLdElrS2FrNQp6Nlg0S1lGU1hxUjVtNTdUZm01S1g4ZzROU2NsRlJ3YjBxc21h
Y2pZZER5amM2RE9BY1J0a0s5Ry9BVmZBa3NWMFArUWhYQVF4ZGZXCkp1Nnd3dzVCRmpHdFpxdGJN
M3BDTVFmUVI1SE5zNG9PbXMrZ1lpSXprQUVaY0VSTjhhOENERGxYMTJtSlIzbjFBU1NuMEpWNEJH
TWEKNTVINGhiSTZVSThTWFBDQjNEeEQ0K1dXblZQdWZPSW8wd3I0WnZnZUxoNE80TXBBREtGMFZs
Z1c4cW9YaFVnNU9oTXBXSnJGcFRoZAphWVp2b1Npd1Y2TGlGdWZoN0hDZ1BsZlBUczNrbThUdVo1
SUt6WExqSm1tWDUxMTREaXlIRFFpMjE5RnZRSzhHL2FNbVFFZEVyR01GCkVhTnJTdmE0Z1Rtd0ZE
WWdHTkJBMTAxdUlTcnVERGxYTjlGQ2h3dDlNQll2ZkZaWThPQlFWbTVFcWpyWVF3bHVhWjVjMnJs
NGxKK0QKTzJzNHBYd3pmQStkQTg2QnBjT0Jwcmw2Vmxybkc1Qlo2UW12eHh3T2lONkllbFZuUVlp
SDlhVUlJc3FrTnp4TUVtTFRQR0FCQkVWdgpFUmtMNTUxM1hqajMzSE5WcVIvREFoZ2NjSmcrQjFB
aTUvVCttOS84WmhBZGl1a1hPSVVTY0V5Sk4vWVVodndRRFVrcnJhTS9Pd2VjCkE4NEI1OEJ3SEpq
bHVYcFFLMWpEc2N3cExYY09pQnh6RUdWM1pRUFdrcmdoRVA4TlM0NHRvbUFmUkZZL1lHMEVFU3VS
NlZWVDFpeDgKRWRuZ0JGa1V0bjN6TVE4OUwzTEZBVFBJYkQ0QXJMeUlzNnA1S0huNEl1cWJqK0ZM
Y0lyT0FlZUFjOEE1NEJ3WW53TitBekkrN3p6bgpGRGtnMXBqbW1FUEZWQjgzQkVzWk1JbUxxVXV4
OUtVM0gwdTVyYlBXTm02YlJJRi9wRnJZcDg4eEV6eVNhVVovREhrU05pU3RHV1dYClY4czU0Qnh3
RGl4NkRzenlYTzBia0VVL3ZMd0J6Z0huZ0hPZ253TkRmb2lHcE5WZmM4ZHdEamdIbkFQT2dYRTRN
TXR6OVMzSGFWQmYKSHBSbVAvR0pUeWdhcDdtY1hDTktZazdNbXZMbjVCa0twNmw4anh1UEEvUUpJ
UDVXTkd6Nmw0T1Q1cHNtZmhmdGNkT29lMWZldEczKwo3Qnh3RGpnSG5BUE9BZWVBYzJDNWMyRHdH
eEM4Q2FOQUt6YWFOWVRCZUkzRUl5L1dVTVRwNEJ5ZTUrUVpDbWRPNFEwUmVIRm4wNFJYCjJTNVlD
THpjTXEzZXBmaVdMemQ4NVN0ZnFSWnYzdld1ZDdWbXljRkpNMDhUdjR2MnVHblV2U3R2MmpaL2Rn
NHNGQWVHUEFrYmt0WkMKOGNQTGRRNDRCNXdEUzUwRHN6eFhEN29CRVMvUXFzQ0ozZmRQZnZLVFli
WFZWdFBGcVRpakMrSjVXWDA1aU1meklNNnhxajRYRDc2OQplY1N4V1ZocnJiWFVubndiM1J5Y2V0
bFZKWklIWk1BZjk3akhCZkdZSHNRUlhoQ1B3d0UvRGVJcE9jRUtLaXMrMzNpNWRiT0tsdUpiCnZ0
d1FFN0x3SFVCbkFYT3lkY2pCU2ZOTUU3K0w5cmhwMUwwcmI5bzJmM1lPTENRSGh2d1FEVWxySVhu
aVpUc0huQVBPZ2FYTWdabWUKcS9FRE1nbEl4MVZlTnNYeFZmenRiMzhiMy9DR040eDRQNWVGY054
Ly8vMGpYclAzMjIrL2tlSnk4bXk4OGNhOWRITnc2bVdQVkNUNQpjYzQ1NTBSeHFCV3Z2LzU2OVVx
TjU5ZWpqejQ2d2ZqSDQwTGc1WlpwbFMzRnQzeDlJWjQrZDkxMVYrMW4rcGZudW9meUhKeTBuR25p
CmQ5RWVONDI2ZCtWTjIrYlB6b0dGNWtBNlYwOWFseUZwVFZvWHp6LzdIQkJyY3ZvTlQydjY4NS8v
UElwbHd6UnE3T2NoYWZWVllqN0wKNnF2TE9PbC8vZXRmNDllLy92WDR3eC8rY0U3MmhXNGJYc0J6
WVpiYmtkdUcrY0NiNWJtYUc0cUpJRzJjaUVuRkk0ODhNdjdxVjcrYQpRMU9jTkVYeG1Ca1BQL3p3
eURQd3kxLytNdmJsRWY4SFVXNVBvb2o0dE5MTndhbVhQYWVDdFlncnJyZ2lQdjNwVDlkTkV3Tjk1
NTEzCmp1TGNxNFlWNDBMZzVaWnBsUzNGdDN4ZElmeVUyNnNLUlc0Qm9waUxyWDd6a0lPVFpwZ21m
aGZ0Y2RQR2FXUGFYbjkyRHN3bkI5SzUKZXRKeWg2UTFhVjA4LzJ4eVFNUi9vNWkxam11dXVhWWVV
djdvUno4YXFham9EV3I4VjcvNjFaSDRjWDRNU2F1di9Qa3NxNjh1SmVuaQoxeWlLNS9SNGw3dmNS
Zm4rOFk5L2ZFNzJoV3liaU83SDFWZGZQWXJaL1RuMVNpTm12UjFwWFdmaGVaYm42a0g5Z0NDRzg1
dmYvQ2FzCnZQTEswdVpSV0dXVlZjS3ZmLzFyRmFNeXNSMU1qdmJsQWVlaEQzMm9Ldm0yMGMzQnFa
YzlXcnU1di9EUDhKclh2RVoxV1c1eGkxdW8KTHdhNVRaampGMkFoOEhMTHRGYVY0bHUrdHZEM3Yv
KzlpcWR0dXVtbUZjb21tMndTdnZ2ZDd3YTU1ZEs0SEp3cXN6eE1FNytMOXRWWApYOTNhbHE0MDJ0
bEYxL2lRdHRHZm5RUE9BZWZBY3VFQU9wUjhReEhCQm01NXkxR2JOM3pYK2FiZi9lNTNuNWdsUTlM
cXE4eDhsdFZYCmw1TDBSei82MGVHdGIzMnJpc2FUTHhYTk1Ub0wyYlpQZi9yVFFXNWd3dnZlOXo2
clRtTTQ2KzFvckxSSE5uSmcwQTNJcFpkZUd1NTIKdDd1RnE2NjZhazVoYkRwa2R4dkFNU2RaNkhY
MDVYbll3eDRXY0VyM2tJYzhwSlZ1RGs2OTdEa1ZiSWpBR2R3akh2R0lJQ2NGbXJyTgpOdHVFYjN6
akczTXdGd0l2dDB5cmJDbSs1V3NLMy9HT2Q0UTk5OXh6VHRJclh2R0tRQnFRZzVNU21DWitGKzN0
dHR1dXRTMWRhZERzCm9rdWFnM1BBT2JEOE9DQmltZUZ0YjN2YnhBMGZpczdFRlJtVEFCc09OaGYz
dU1jOWxFSjlBM0xpaVNjR0VibnB0STZaVy9TUXRQcksKbk0reSt1cFNrczZHZzROZ05obUFuTTdQ
eWQ3VnRtbVB4ME1QUFZUcmM4UVJSMVRPWU9kVVVDSW1iVWNUVFk5YkdBNE11Z0ZoNDRHVgpLM2F3
V01JeXVQSEdHOE5oaHgwV252M3NaK3RweUIzdmVFZE5RaW04THcvSzYrRHN1T09PclhSemNPcGxX
OTM2d2ozMjJDTmdnZXZQCmYvNXpFSkd4YXZOVXo3Y1FlTGxsV2wxTDhTMWZHb280VjJBaXd0QkFI
YmhwWVZMRG8zUWZ6bzkvL09NcWV3N05jZkc3YUZOWEZQV2IKb0N1TmRuS2p4bmpvNGtOYTU2WXlQ
TTQ1NEJ4WWVodzQ0SUFEd3Ftbm5qcHh3NGFpTTNGRkppU0FLWDdBd3BSY2ZWT1NwcFUrRDBtcgpy
K3o1TEt1dkxxWHBWdmVtR3hCb1dYcWQ3alRISTlJbHJCbnZldGU3NnJmMXFLT09xaGMvNTdmVnM3
UWRjd2g1eE1KeFFCWmFFNEhVClhPVUpDY1ZxbE9vQlhIZmRkZkZOYjNwVGZQdmIzeDdsSkNqK3ov
LzhUeVFPSFlIdmZPYzdJK1hsNUVFQm5MeGRkSE53Nm1XUFZLVGoKeDNISEhSZWYvT1FueDZjOTdX
bnhwcHR1YXNWY0NMemNNcTNTcGZpV3owS1V6VkhPYndNUndZdHlzOVdMODhJWHZyQWlrVU56WFB3
dQoycVNKLzQ2WTByWktkYVdCczlOT082bHVrdUhYUS9qUVJMZU81NytkQS9QRmdYU3VuclRNUGxw
eUFERnBFYjM1TVg3UkIzTDQxWWRTCm5ON1Z0bzk4NUNOUkZrUlJMRDBXMDAwekRFVW5wWm5EcnhR
L2ZmN0xYLzR5UjRrOFRhOC95NEZkRmNYM2dQRWlvbGhWM0RnUFhkL2UKSEhxNVk2R3JmM1BLcWVQ
azhoMWQwL21BNXozdmVkb2Y0cXN0dTdocGpNZTA4T2MrOTdsUlhEWEVmZmJaUit2R21Pbmoyemp0
U012awptVExxNWRSLzEvUGsvaTU5WjNMcGx1TDF6ZFdsOUliRUh4WEtsSnBPQW9ncklUZi8vdmUv
UCt5KysrNTYzUWM5MlRob0hPbnJyTFBPClNCRTVlVVFaUEh6eGkxL3NwSnVEVXk5N3BDSWRQNTc1
ekdlRzlkZGZ2N3BLYmtOZENMemNNcTNPcGZpV2o1QVRmVEV3b0hLa2FYejYKTEpzVDFZMlFpYVJS
Rjhod3VVRVFwVVE5RmV1alNaNXg4TTg0NDR6VytsSlB6RWFMZFpiQU0zNXJUTWVvSzQyNmtNNkpE
WkRtMDRqawpuOVc1eXdGbmd1NlB6b0ZGendFYzBKNTg4c242WHVPY0UzRVBicWdSQWEzRHh6NzJz
WURjTnllWVYxNTVwZDRtOHQxZ0xqZVFSV2ZnClBUNzIyR05WeCt6ODg4OVhKN2RpT0VKRmN6R1hM
b3NqOVRGbGVRZ1I1NUREbHJEdXV1dUduLzcwcDBFV2QrRVp6M2hHRU91R0Zab3MKRUlJWUZnbGlp
U2xjY01FRnFvKzR5eTY3NkxlcjZiUytyMjJJamxCLytVQnIzU2diNERZRTBSY2dwOHd1T3R3dUky
R0FyRHh0RjZNdgpTaGNld0V2NENEOHZ1K3d5amVjZnZxQVFJMGFVbWZ5Y1pJc3hHRFUzLzVuUGZL
YkNhM3FnN205Kzg1dkRneDcwb0hDclc5MUtUWTdMCndpKzg2bFd2YWtJUDczM3ZlOE9YdnZTbGdK
UURkWHpDRTU2Z3ZBYzVQYWxHZis2RUUwN1Flc25pVThjSU9QUVQvVTI5UkJrNWZQN3oKbjlmdnpS
ZSs4QVVWMStZYlRoa2JiTEFCNkFwdHRDdzlaeXlBMjllLzRMU1ZOZTQ0aFNhbi9YS0FHdTV3aHp1
RVN5NjVKRHpnQVE4SQo2NjIzbm9wLzQwT05Ob3ZpT0tpdGtET3VXalBmbk5EV3RxN3hhT082ajNa
WCtpOSs4WXR3Mm1tbjZaaGtMU0FIMTlyWHA1eHlTbmpLClU1N1NsYlV4cmEwZEtUTHVIQmhidDcv
OTdjTWYvdkFIRmZsaVhILzBveDhONzN6bk84UGFhNjhkUHZ2Wnp4YS9hNVNSKzg0ZzJjT1kKWTU0
Njc3eno5TjJpN0hQUFBWZEZGdzg1NUpDQW5pMDZWTHpmMUJmZDBxMjMzanE4NVMxdkdYbWYwcll0
cXVkSmR6UFMyT29HeEdoeApVOEZ1bGxzUUxFZnhURndYNU9RWkNxZXJIcDdtSEhBT09BZVdJZ2Vh
NXVweDIxbW54YWt4cHN0RkJEZGl6UWJBMnVHZDduU25LRTVkCkk1WnJERGdaRkgwNnZTbVZCYk5H
azJlSEhYYlFiNGxzQWd3MWZ2bkxYNDdpYjBualJaOGd2dXhsTDFOTFBySUlqN0pJMEhoWnBGVDQK
UE1oSFBjcGhRbFVQVGpTaC9mclh2NzdDazhPQktBdjRLQXNSTmFYOXh6LytNWElLUzd0b1J3cTVi
ZVBVWHhiT1NnUFQ3Ykt3MFQ4NwpVYzB0czQrTzZKZHBHWnR2dm5sYXpTaWJLSTJuRFFaWXBjU3lF
SEdpRkI3RllXcmNhcXV0dEU5RUJEcDJuYnJMUmlDS0FSYVZaREI2CjhBdGE4RGdGMm9pRkpWazRW
N2ZmOEEyVC9PRHpoNGxYNEFjLytJSEd5NEpiNDdGQ2FJQmxKbEV5MW5nUmRZMmJiYmFaV3RKQ2tr
STIKZEJvdmkvSW9DemJOMGtVTGhKeXhrTnUvWFdXTk0wNnBuMnp1NGtvcnJSUmxFYzdQS0xxeThj
NTN2ck8yYzZPTk5vclBldGF6b2hoMwowYlMyZjduanl2STMzUngwdGExdlBCcmRjVVBleTVlODVD
VlY5aTIzM0ZMYnp6dlVCYVh0Z0JialZBNE40OE1mL3ZBUnE2cGYrY3BYCnRFekdhY3J2a25jTity
bnZESmJmYUIvbDNlWTJ0OUgzQWFrSzJZekdsNy84NVJvdmpyc2plTXgvQngxMGtFb0J5ZVpVMHc0
KytHQ0sKeXdKNy93aG5EU2F1MFN3M2J0YVk3ZlZ4RGpnSG5BTUx4WUVoNStvNkxUa2xWZk9lY2tJ
MzBqdzJFK0Fpam12QU0zRnk2bWxSR3JJSgprWk4yVFpPVHlDb05NVWtyajRXQ0FRc3Z4SjFFRm54
RU5GWnVPcFNPNFJIaTgwQXNNbFZSTDMzcFMxV01zb3FRQnptUnJNcEpUY09XCnRFMU82cFhHVTUv
NjFKUzBQcGVVMlVWSGJoaTBqUG9HQkJFajQxTmF1SnpJYWp5YkNUWklBS1pPV1hSMmdkem1hRDRX
UlFhWTFxVU0KUkZSVFlPTkF2Tnl5cE5HNndXSERRSm90c2cxQjlESTFQdDJBa01aaUhuenlYWFRS
UllZZVdRalRadExFUVhBVnowTWJyWnl4VU5LLwpYV1dWamxQNFFSc1I3MDZCY1VJYjk5NTc3elM2
OWJsa1hFR2thZUZ1eE52NDJEVWVMZTg0SVdKMWJKRGw1cWZLenJ4QSsvbEwrNzlDCnVQbGhuSFl3
cjBCWEpHcnE1SFFqU0ZxNkFTbDkxMHJlR1E0OW1Mc284MU9mK3RSSWZXeWNzMGtCejBDa05oUmZy
STVhVkc4SWZmdnIKUlo1bmhFR1YwS1dSRHM0QjU0Qnp3RG13akRnZ0g4anc2bGUvV2tVRHpNQ0lO
UitSQWtRTVh2emlGMnNVdUhMaXFZcXVjckpuYUJySwpZaXlJM3BRK1E4OEFZeVVBSWp4cEhqazVE
dUpqUXNWMk1EWmhjTzk3M3p2STRscE53TXJwdGtZakJybnR0dHZxTXlKWmlBa2pmb0VJCmhQMGhu
aVNuejRvamp0bzBMR21iWnJqNVh5cHVSRlJKbVYxMHV0S3NUQXNORjZNWkFHSThHR01Cc0V5RkZj
b3VrSlBZSUl2Z0lEY20KRlpyY2FPbnpoUmRlV01VaC9pTU9oZFZBQzZKREtXRENIbFA3UUwxZU5s
YnE4U1p1Uk45aS9kSUFFVER4QjZZL1pZTVl4T214SmFuSQpGei9xdFByR3dqajkyMWJ2MG5HSzJJ
MXNxamdFcnRyQmc5eDg2Ry9FZy90ZzNISFZScmV0YllaZjU2L0ZqeHNpV3NrNFJNVFBRRzY5Cktt
TS80dVBOb292Q3BuYkE2MzMzM1Rjd0psTVhBa1lZQzY1QVV4dnJjZmJiUXFPUis4NkFmOXZiM2pi
WW1FbkZUa2xENUI4UVhUTEYKMHgveXo5NEhNMjF0OFlzMTlBM0lZdTA1cjdkendEbmdISmdCRHJB
WVJYYTd5U0ljQzFiMHptNTN1OXRwVFMrKytHS1Z1V1pSYWxacwowaWJZWWhmOUFVeTA5Z0Z5OHdD
TEN3TVJCZEpGQm5MU0xJaVJMd2VRNndiUWhVRFhnQTBJbG5mU1ArVFAwYXNROFN6RkxXbWJacmo1
ClgzMWhVbEptRjUwMExmZVpoUTdBWXFkSnQ2V05EdWJ5OFJ2QllrNU85OFArKys4Zjl0dHZQMFZI
enQ0QWZSTVd3azM5RHc0THZxR0EKaFNxV2tvQWNLNE45WTJIYy9pMXRUOU00WllNRmlCUGZrZkVy
NGtFYWJ3dGkvZEh5Yjl4eDFVS3VON28rcm5zejlDQ2dueU9uL0tyNwpndjRMZnh3ZWlNRWZ6Y25o
QU5ZbWh3RG9vbStDYnBadHBJZWdtOUxJZldmU1BFM1BObDdxYVhaQWd0N0tVb0JCbGRDWEFrTzhE
YzRCCjU0Qnp3RG1RendFMkZRQ255WDFnaThhMmhUQWJFeGFzM0Z5QW03TUlxNWVKWVJNTVRPREhC
K2VvSXVJU3hDTjNFTG5wSVBvb2xZSTIKQ3ZLaUcxTFBQdks3cEcxcHh2cEN6WlRDYzhyc29wT216
Y2V6Nk9pRTE3M3VkWG9xZk9DQkIycmZvTUNidGc5ZlhnQTNGRjJRNXVuQwo2MHZqOW9aRnFjano5
NkdxSW5mWFdCaTNmM3NMemtCZ000WEN1WWdIcXVLOWlPMXBMbnltOFE1ZzRLUVB4aDFYZlhUYjBv
ZnFRK2lMCkJkVEFCcEI1bzhrWUFnY1V1SERBWUFJM2JKTUNteHZBL05KTVNxOHRmODQ3MDViWDRw
bW5nRHEvNjc4TmY3R0dmZ095V0h2TzYrMGMKY0E0NEIyYUFBM2JDanJXbFByam5QZStwS0ZnNHFv
dWVrTURHUkpReUZXZVNoY0xHRzIrc200K2RkOTVaYVdJNWlwc1l3TVF6YlBHcAprUzMvU3RyV1Fr
S2pTOHJzb2pPZmFTSi9yOWFtdUhIQWl0WjliaGJscXRlQkd5U0FoZk44Z0pnNDEyTE1vWEZmbVYx
allhais3YXRECld6cGlmNGdEY1ZPREpTd2NBV0oxREg0M1dZNnIwMW1NNDhyYXdPMkhHRVVJNGg2
aDhRL0h6d0R2TG1KK2s0SXQzcWNwdnBUN3premEKbHFXUzN6Y2dTNlVudlIzT0FlZUFjMkFCT0dE
eTI1aEs1elMzRG13MEVLVUF1QUZnSVlESUZPWW02OEFwSmVJRmlCcVk3a0FkcCsrMwpLSFFxQ21h
MXhYOVVPUDMwMDVYZVNTZWRGQzYvL1BKS3Zod0hzNmtvVVVxWFUzOXVZVXJhbHVhM3hZN0YyV0k1
cDB6TFExaW5rNmFaCmZrc2FOK1R6VGp2dHBDYjBrWnZ2QXVNUk9ndHNMTnVncXkxdGVlcnhtTHZG
MUQrM1hMYjRydU9rdi92R2d0VTlaK3ltZElkNlhtMjEKMVlJb0ZLdDRHemM2aU42d0NlSDJMZ2ZH
SFZjNXRKdHdodWhENkNJS3hhMUhhaGE3WHA1WXZOTW94REdiYmtqcStIMi83M3ZmK3lvSwp0NktJ
ak5haDZVREVjSExmdGR4M3h1Z3U5OUEzSU10OUJIajduUVBPQWVmQUJCeGdVL0d3aHoxTUYreGlo
bGY5UHhnNUZ2aDc3YldYCmlwb1FoeDZDaVpaZzI3NE81bDhIUDBJR1hRdURKakVjRnZsaUljdXlx
K0k2ZFFEUVpVQ1JIZVZrTWV1dW9sbXAvZ2c0K0FaQm5BZ3gKbUpLMmtkY1d4WFc1OVpJeXUraVFa
bkxnYktaU3NNMGYvR3FTRWUvaVkwcUhaL0lqSWdPWWlCWFBGcGVlU09PblFrejhhditMNlgzUQpL
b0MzdHRpcmIvYXM3eXlzTXQzODBMVG9ZME5CMldMZWR3VGRhRmhvaVgxam9iUi9vV3RsV0dobGRm
RzNqbXQ1TU02QUdCWWlnbUxWClNjZW1LU1liVGxkWU9xNmdsVlBQZW4zYnhuVmFOM3owMU1ka21w
NCtjL3ZCeHN0dVJOTTBleFp6ekpYZWxoa2ZzRFRDMG5iUTEvZ3QKWVV5S1dlZVVsT3FFTVIvVTZa
YThheVh2ekVqaERUL3MvV3A2QnhyUXF5akVEZW1IUlFQU2lST0JOSFNxSnI3a1ZHV09CMWJzaVl2
egpxSW5xUGV1WkYwc2JzU012Rm1QVXpPV2tQQlZaMENneW9aT1NtVXIreGRJZk9ZMWZERzNwR2xl
TG9mNzFmdWhxVHgxM1dyK0huS3ZyCnRQRHpJWXQyL1JiZ2d3UC9CYzk1em5PaWlMaEVPVUVmYVpL
STBFUVI1MUVUbEpoY05aQkZUOFI4clp4dXE4bFZpMmV1dC9Mb2V3UHcKNVFSWjA0NC8vbmlMam85
NXpHT2liRGlxM3p6Z1owQkV1cUo3RXZZT0FBQWdBRWxFUVZRc2dqVmV4RjNVaEM5MHhiS00xbEdj
NjBXeApscVZtVWVrdmc1SzJpVEsyMWtlVTd0WDNpU2dZUjhvQ1NzcnNvaVBXbjZLY2xHczUrUFVR
TVo0b056WlJ4TTJpNk14by9KNTc3bG5OCnllYmpRRFpVVVJUN3JWbTlvZm5qZU9Rakh4bkZLWnY2
OVpJVFh1MDMraFhUck9Jc1R1bGdPdFZNaW1JV1ZqWXFhczRVM3lEd0FqNWoKRXZlWVk0NnB5cVd2
aWNjWFJncmt0ZjZtWEFOeFhLdDlpTCtXT3JUUnloa0xKZjFMdVcxbGxZNVQwUlhRZHVMYlFheS9S
Ykg4RmtYUApKdUo3UXF4RHpURmJYRyt6L1M0WlYrVEJCd2I4eGY5R0hkcmExalVlb2NFYUFKcVlG
Y1pmV3hkQVN3eEFxRStmTGp6U2VHOXRMSWdqCnZoSDBjZHFCL3lDamg3OGYrSXdaYUh5UDJEdVZt
dUV0ZmRkSzNoa1JCWXNpY3FyMWtVMytTTnZNRndpbWhsUGdIVEErMjF4bTZiVEYKMmlaVy9peTZp
aU50MW1EaUdsbURoMndjdHNibFJDQ0tsUWhsSGt4UFFVNnZORjVNOGFYUlMrcDUxdHZJcE0zSFJV
d21hbDlnQjM1YwpFQ1d6S0ZZdjlFTWxwakxISlRQVmZMUGVIeVdObitXMjVJeXJXYTUvdlI5eTJs
UFBNNjNmUTg3VlRiUllPTnFpZ0hUbUJ0N3RKcmorCit1dlZhYUdjOXNZOTl0Z2p5bTFJRkErL2Nj
Y2RkMVRuZlpZSHUvY2lDMTk5UkZuRXlpMUpGQVYxeGJkNlVLNklXR2syRmhPTUVUWkIKT01GOTBZ
dGVGTVdxVmVTN2tnSStNZVNFczZMTkFocmZDL2pUcUVOSjI3YmZmbnVseVlLZmpRQWJKWU9TTXJ2
b2lKaE9sQk5kTFFjSApqWEpqRk9YVVZEZDJ0Ris4ekVlNWhkSEZMQnNzNHhQTzdjVERzbFduTTJS
alkyWElEVmQ4ejN2ZW8yMWhzU3lpT0ZHOGtVYzU4YTVvCnNORlpzV0pGVlJhT0QwOCsrV1QxeVlM
ZkRoWjY5RHNPRTZtdmJWaXB2NWhycmc0YWJRUENKbFZ1Q0xUdjhFOGhJbm02c1V6NTJVY3IKZHl6
azlHOVhXZU9NVTlyQjk4NzZwaDdpeEpQeGtnTTU0d29mTGM5Ly92T3I4dFpZWTQxNHdBRUhLTis3
Mm1ibGQ0MUgrTWRpbWpxegphRzhERVlsVUhOb3F0eXFSVFg5OUlVMWV4aTVwdHFFMmZPYUtTZHVC
SHlJYmUyeU90OWhpQy9VQnhBRUY1ZFRuaWR4M2pYcm52ak5zCjJDalgraHhucXZnY3dZK1NXTyty
NWlYYnFNa3RvczV2dkVlV2g3RjkxbGxuVWF3Qzh5Sk9YMGxuempRd2ZNSlpnNGxyTkkzR01aR0sK
bkdkMWNzSkpRUXBpTTFrOTNlSmNhcW5DckxlUnlSTlB4L1p4RXhudnNidUNsd3Z2cEl3bFRrMW5F
V2E5UDBwNE5zdHR5UmxYczF6Lwplai9rdEtlZVoxcS9oNXlydTJoeEFzcmNUTnY3Z0hlZld4QVdy
OXlNREFFNE5BU2d4MmxtM1FGZVdnWjF4Q0VmaXhwdVlQc2d0MjE4CnM5cmFVMUptRngzcUt2NVAx
Sk83MWJ2dUNOTGlKd21iYmsyNnlzR2hJNmU3Qm4wbjRvWm5vVzFBK0xZQXJBVzRHUmR4RkVQSkRr
dkcKQWtSeit6ZTdBaDJJakFNMllveDl4aWtMVUc1ODJEeHlVcytORnB1NFhDZ1pWN2swNjNoZDR4
RXY3cnpQaXdGNDE5bG9pRGhXVmQyMgpEWWdobEx4cnBlK01sVEZwQ1A4WlQrSS9wQ0xWTlZkWFNB
djBNSk1iRU9PRnVaM0hhMnNkMktRc2RWZ01iYlFUbkVsdVFPaEhycEY1ClVSYnlCZ1N4QzdGNzN6
cXNGa04vdEZhK2xqRHJiZWtiVjdOZS94cTdxNVBPU2QrVE90MlMzME4raUlha1ZkSUd4MTM2SEto
dlFKWnEKaTdtWjQ4YXZDN2gxR0dmajFVWFQwNW81MExjQmFjNDFlN0d2ZWMxcjRna25uRkJWYkpi
bjZwbFdRamRiOFJZS0l5dG9jbUpWSlM2UgpoOFhRUnF2anBOWXhVUGdFSnFVelNkZkxkWFE0OWRS
VFcwbFlXMXNSRmxIQ3JMZkY2dGMySGl4OXNiRGM2dHZXbnNYU0RxK25jOEE1Ck1Ea0hjRDRvY3Zx
VlJiWW1paGhNd0E5TzAvcW5DZC9qbkFNWTBCQTl0aUNpcW91Q0dUUG5pQkF6ZTFnZ1NXRWhQOXJZ
T0RlNzlHbWQKMG1jNU9WZG5PcVhlTmVVVVZ4MWpwYlRtNDFtMnhndTYwSitQTnJhVjBkYjJqMzcw
bzJwL0hhc2k0MExPV0JtWDluem5LeDNUY3YwLwpVeC9LcGRRWDg5MzNYcDV6WUNFNWdJbFdRTVM4
RnJJYVV5MWJUdHNEUGtoWU1ONXd3dzFodmZYVzA0VWo4OVo1NTUybkpxbzV0SGozCnU5ODkxWG80
OFg5eXdDem5OVm1RK3lmV2JEL2hPOFZNTTg5MlRmOVJ1Nm5kZ0lnY1l4REZtaUJXRmRTV3VzaHRC
Mnh0dDhGNzMvdGUKeGNVenJWaXVVRE43TElLQWRBT0NLVDg4c1c2KytlYmhxS09PYWlSWFduWVRF
Y3pFc1JqRkF5ZWRpaE1yVFBxbHdHbTVLRGNHc2RRUQo5dHR2UDdWTkxoWXNVaFExN3dZZTlxNmYr
TVFuNm1TRGpYbk1Wb29DVkZoLy9mWG4yTVB2YXlNYkYwN3I4ZkNMazZoMTExMDNISGJZCllaVjVR
Q3JBUms0VUFNTXV1K3lpa3h0eDJPS25UWmpVRTZYdklEb2NSRThWeHVrTFRuNUVCQ2VzdE5KSzJq
NmVSYWF5c1o2NTlFWGUKTTRoU1d4QWxMdVVUZmJEcXFxdHFPVWNjY1lUMkQ1c1RrUVZYZnNKVGtR
ZldNdnY2STJlc05GWmVJblA2VXVTQ2RaeGhybEVVUUN0UwpvcmlyWTRENDNFbW5yeTA1WTdxcWdE
d3dwakFmS2FJRTZsQkx4QXFDbVZJRmI4aTZRNit2L3VQMGhjak1Ca3crWWhLU1AxRjBES0pJClNY
RUt6RTM0cEhqVW94NDFZdUl3cCsrTWhvZk9BZWRBUHdlWWYwWFpYUkh4S1lKVFByRXUxWjl4a1dH
SWduMWczaEZEQ1lGdm1CaGcKMERVQnpnZFpKMjIxMVZicXd3YS9JQTdUNVlBb2pxc1paRHl5QTVp
U3hxZk5Zb1RjZGNETXRLMFNGQnZ6UVJwU2FlVkRRajdLVVJicwpjYTIxMW9vb0xBR3lxNCt5c1ZB
OFdSQnJuUDFEY1FwclNuSUNvQll5aUVmbVVleDhWM1ROOUNMS2dzU2J1VFNzYXFSUVduYWFOMzFH
Cm9ScFRrdFFib0k3VVB6VmJkOFlaWjBTc25HQlJ3VUEyUmxyblZDRWJtVzh6ellaVmo4MDIyMHd0
ZklrZDZpaUxYTVhIZEoyY2VpaVoKdmpiS0xsMnRnbEFXZkVLWkNyT0U5QU5tNVF4UTdKVE5oc1pq
WlVTYytpaWZVVzViZSsyMU5SN0xDNU1DWnVJb08yMHpORXY3QXVVNwo2TWlHVHNjT0ZteXcyQ0di
QkkyWGhlR0lDY2tTK2tjZWVXUmNmZlhWbFE1S2ZaaXVsQWxlTFVaZ2hRY2VZa1dFOHAvMHBDZXBG
UjQ1CkJkRis3K3VQbkxIU3h1UGN2aVEvcGhtcG4yeThSOGhodllSNC92cWdyeTI1WTVweUdIdU1O
L0g3VUwwbkdDWEFDZ3FXT0xEK1pEQk8KM1p2R1ZWLzlKK2tMckpMSVFZZnlVVGJBVnZVcVpOekk1
cXo2WGRKM1pHcHFUMFZzbmg1c25PU01sYjRxRFVtcnJ5eFBYejRjRUI4RwpPbmN3ZjlnZkJnS1dP
bURwRTh0dWZOY2M1cGNEbUUrMnNXYWhPRVNkMzBwTXNiUlpucXY3VnkwOWpLazNqZ1U1Y2RnRlQ0
SEZ2SGdkCjFUUVJkNm1TV0tDRFg1OWtVQWhtWVU1YTNZb0pKdm1JcjI5QVNzdXVLbEY3d05RamRV
MEJxeTRvOXhqc3Z2dnVXZ2U1aGJFb3RhcEEKdlhiZGRkY3FqZ2MyQThUVG5vc3V1cWhLd3dJREMw
clNNSytXUWxzYnNiR09MZllVc0RvQ0RmNVMwOFFzcEN3ZXl3Z0dMSjVZYk1rVgpiNVNiRW9zZUsy
eGJXSlgyaFcxQVJOd3RwbWFYYVJ2bUFta0hKaGtOU3VtemVJUUdtMFl6YlloeEF4YTFBRGJ0U2Nj
T2VoTzA5VWZPCldHbWlSMXhKWDJJaGhmclZOeUNZRENXZXYxeG9hMHZKbUpaYkl6V3pXcmVHd3dF
RGRhRi9ETWFwZTl1NGdtWmIvU2ZwQytoaWdZMjYKSDNUUVFmeXNnREdJT2RJVVN2cU9mRjN0U2Vs
Tzg5bkdTY2xZYWF2UGtMVGF5dkI0NTRCendEbmdISmlNQTdNOFZ3OHFnc1VWbHR3UwpCR1FYNjdM
MHN2aXV4RWZFNFk3dzVCL2lKNGc0Y1cyRURHUUtLQ1VqOWdDa0lsajhOcStjYVh4cDJkQnBBN0Vo
SDJSaEdtVERvZDVkCndVT3hCMUVnQTNFVUU4Um12RjZWV3B6cGdJakpRSXZTVU96aGF5aCtUWUtZ
RnF6UzBIVXhENSt5Y1JnUisyaHFvemp3VWNVMXNRMnQKb2k5eTRxc2hWNGptc1ZOT2NpdjY1bEVW
UHFYOWdXZ1RkVUhFVFV6TFZmaERQVXpTRjdLNDFMcFpYV1R6b1NJeC9FWlBRMTVGMWJjcApHV2Zr
NWNvYm9DOG9BMEFPVjI3cTlObitwV1BLNGdpYitvUDRuTEVDWGgxSys5THkxK3RudnkwMHZLNndy
UzI1WTVyKzVSMUdiTUJvCldYbGl6ejhjZDl4eEFRKy9kYWpYMFg1YldNZHYrMjFsMXZPTjJ4ZFdE
cUtVZ055WTZUaXplRVFrRUdVMEdMZnZMTCtIemdIbmdIUEEKT2VBY1dPNGNHSFFEY3ZIRkZ3Y1Vl
Tmc0bU5XWGxNSElOUUlpVXFVeS9aZGRkbG5nWTM2Lys5MHZSYXVlelRKU0ZkSHhVRnAyQjZrZwpJ
bUdCc3NVaGpHNk01RFpIMFVWMHFjckdwa2xNdHVvQ0RKMkYvZmZmWC9WQVFFQk9QUmZrcGtYMUhN
Q1hLOWpPYk1qSHNtbGdBNEt5Cld2b25KODY2Y0JJUnBrNGFsbWl5cFhJTFkxR0RoWlAwUlpQQy84
WWJiNngxWStFcnA5RmhIUG9vL0FGc3lycXNpdFFYdFpxcDQxL08KV0duS1BtUmZOdEVmSnk1M1RM
UEJGbnZqamU4dG0zRDBwZEJ2bW04WXR5K3Nub3d6Y1dpbjc2R0lvMmswRzE1MHprUWMwTkJVVDJp
bwo5N0FpNmcvT0FlZUFjOEE1NEJ4WVJod1kxQXFXTGFEYkZuaHNURmpZaS95NGZ1VEZXWkd5dW03
MXFzNy9uRVZoYWRtWXQydURSenppCkVVRThtNGJ0dHRzdWlJTWdWZlFWeit6aDRJTVBIckZhSlRv
dUFXVm02bmZnZ1FkcTIxaXM1TlEzTFp1VGVQSDhPYUpFbnFiYk14czIKUU1SQkFzcjZzd3BEOWdW
dGZPUWpIeG00UVdPenhBWjNhUG9wSDB2N0xuZXNwR1h3UEt0OW1UT20yUUFDYkFobkNjYnRpN1FO
dk9jaQpRaG5FZzNjUWZhM0FSb1R4eDYyaHdhejJuZFhQUStlQWM4QTU0Qnh3RHN3NkJ3YTlBY0dD
RElEMUNrNE82OERHeEU2NFdYUnpnZytJCkI4MDZhdkh2MHJMN0N1QTBsTTJIZUNQVkUzTlIzdGFU
WGNzbnVoeGhndzAyME5zTDBXT3BSSHdzdlNRVWo3bUszbWZCd0VSUGJBRlkKVXNaODRnN2RGMncr
YURzYlZVVEhocVkvS1cvNnhrb1QvVm5zeTl3eGJiZEpXQmFiTlJpbkw5STJpSzZHaWpNZWYvenhB
WE9nSC96ZwpCOE51dSsyV29sUmlaN1ArSG81VTJuODRCNXdEemdIbmdITmdoamd3NkFhRWszbE9r
RG1wUHZmY2MrYzBVeXdMNkFrMitncmNoaUIrCkJHRHlqRTFMRytTY1NwZVczVllXOFovNjFLYzBX
U3hoNlFMazlOTlAxMFhKU1NlZEZDNi8vSEpORTBWd05kTzY3Nzc3NnU5eC8yRXUKOStxcnIxWVR2
cllvYmFObEd4VE1BYmVKZVhFand3M1RRc0tRZlVFN0VQbmhoZ2lUeFlqMkRVMC81VlhPV0V2eGM4
WktpbS9QNC9ibApOUHMyZDB6YmU0dTVTREhPWUUycVFnNGYwRStxd3pUclRsbmo5a1ZhVDBUSDRJ
Tllvd21JTllwQmhNQ21Kb1Z4K3k2bDRjL0xqQU15Cm5zS05OM1kzT2dmSEtPVGk1dUlaM1hvNGFm
NDZQZmw5NFRVWGhqMU8zaVBzZWNxZTRXdi85N1VHak5Hb283NTNWTmo3eTN1SFY1NzYKeW5EdEg1
cE54K2ZTektGRjZibjBSbXY2ajE5OHI5QlJ2UFRTUytjazR5L3AyR09QVldtS0pqOG5YWG5uRUt0
Rk1HZUpVWkphYk43UAphZWVkaEg1ZUN4eHJNWEpnMEEwSTh2VjJXb2lQZ2pxWWY0Qjk5dGxIazla
Wlo1MGc1aTExd1l6dDVSVFl4Q0JuRHRRWDI3ekVnSVU4Cmw1Wk5ualpnZ1MrV29xcGtGTGozMm1z
di9ZMitCMkpBMy83MnQvVjNPc2xZSEM5YkV6UXR3RmcwZ1MvbWhVZXlXTnNzSkpGNjNQdmUKOTlh
TkQ2SWlkZjBObkJweFMyQzZNMDIzVUZaSVN0ZmlMRVQ4VE13aDJzL09zS21NSWZ1Q3d0a0FzakV3
SHl1VDBHK3FMMlhZNW8rTgpUaE1Zdnl3MG5MNnhZbmoxc0xRdnpjaUFiWUNObm0wQWFCZmpNZ2Vz
RFJhU3AyUk1zd0hFanczaldjendxazZYbGN1N3lydUNieEtECmNlcmUxay9RdEhwYmFPV00yeGVX
MzBJVTZCbHZHSWpBdjBrZFN2dU8vRjN0SWIza25RUGZZUkZ4QUo4Q0dGUlpmZlVRYnRZbm5GUDcK
SEJ6TGxJdWJpMmQwNitHaytldjA1UGROZjdzcGZQYml6NGFETmpzb3ZQMUpidy9mdXVwYjRab2Jt
bjA4a2YyMEg1OFdWcjd0eXVGdApUM3hiMkhlVGZjUGg1eDgraDJvdXpSeGFFTStsTjZjaUVvRnZN
blJGK1o2enR2bjg1ejgvZ3JibGxsdXFFWlJYdk9JVktqV0JFMEtECnZyeUcxeFJ5aU11aHJwaWJs
eUgyRDUzVkpyeW11R25ubllSK1UzMDliZ2x4UUQ2TUU0R3dBbGtyL1lPUWlCTkYvRjFnNGhYenN3
YXkKV0ZBVHB5S25IV1hoYk5GcXJoZGNhR0RhVWhieFVVU2YxR2VGbkVacVBPWTFqem5tbUNvUHBs
TEJGeWRGVlJ3UHBXV1BaRTUraUNQRQpLSXVvSkNaR3NaQVRSV3dzeWdKTDQ4MjNoOGlIUjB6SXln
Wkt6ZVBTRmhGUlViT3VwNXh5aXVMU0p1TVJ1QWFZbTRVbWZqenEwTmJHCm80OCt1dkpYSUJhMW90
ekFSSEd3RjhWS1Z4VEhoQkh6eFFiWXQ3Wnl6WmNLYWZURmFxdXRwbWtpYW1Mb0dzcnBUSlhuL2U5
Ly8waGEKMHc5UjJsVjhPZkVaU1M3dGl4Tk9PRUhwUUkrOEJtS2tRTnVHLzVjVVN1bGpoaGhleU9a
c3hKK0kwYVFjMGhsejJBSS8rK3l6STd3MgphT3VQbkxGaU5PcGhTVitLWTd6Sy93MStUTVR5V1pU
YnJpZ2lnbEgwbWJUdWUrNjVaOFJjZEIrMHRhVmtUTU1qMmV4cXVmak13VzhMClptd1orNHpKRk1h
cGU5dTRnbTViL1NmcGk3UytQT01QaHJaY2YvMzE5U1Q5WGRKM1pPaHFUK2s3MTFpaGpFaWJDd2du
aFNGcFRWcVgKbWMrLzk5NElKUC9qYjl0dG02dWJnMk01YzNGejhZeHVQWncwZjUyZS9EN3VrdVBp
VDM3emt5cmxqemY5TVI1eC9oSFY3L3JESWVjYwpNaEoxd3FVbnhDdCtmY1ZJWEM3TkhGb1F6cVUz
VW9tYmY0Z2pRWjBUN2YxSWZXMkpxSGtVTWZTUmREazBxY2gwNWEyUVdoN0VJbWRGClY2eDF0bUEx
UjA4Nzd5VDBtMnZzc1NVY3NMRTR4THhmVW00TzdzUmZvcWJHOGRIR1FabWNWRWZ4S2h6bE5pU0t5
YzRvcDRucTVLMWUKTVJhSEsxYXNxRjRnbkg2SkYyLzF4WUYvRFB4OVFCT25hM0o3VWkxOGNMQW5a
ajhqQ3h5RDBySXRYeHJLS1VXVW13WmRWSDNnQXgrSQo0dDA1aW5VcDlmTmhlQ3dBNVNSWTZ5eW53
Vkc4dCtyQ1hqeFY2d1pCOUVPaW5GWXJ1bTFBMkpqaHl3SmErREtRRXd2ZDZMQWhNTWhwCkkzNHM1
RlM1NGhlYkhsNXlmRUlZeUlscVRDYzBObkZ5QTZYT2p1Z0w2emNXUmlKYVp0a1VCMGR5cEpPL0Rm
RGJncU5BbzRPdmpnTU8KT0dEc3ZtRGp4Q1lPbnNKN0psR3hwaFEzM1hUVGFCdTVlbDF5K3hwSGVH
eldySzRiYmJSUlBPU1EwUThidExmZmZudkZZWlBDWXA1Kwo2ZXVQbkxGU3IzZjZPNmN2RGYvRUUw
K3N4aHhqbjNkQmJzOTB3MDg5eEZ4c2xCc2NRNThUOXJXbFpFeERuSEZ0QzJ0NEt5YU9veWh2Cnp5
bVhpTnk2ZDQycnZ2cFAyaGRweGRrUU0xOTFRVTdmZGJYSGFQTmU1cnh6aGo5dWFPT2ZjRklZa3Rh
a2RabjUvSi83M0Q4M0lQSzkKYW9RY0hNdVlpNXVMWjNUcjRhVDU2L1RrOTlFWEhoM2x4cU5LdWVt
dk44WER6anVzK2wxL2VQZTMzajBTZGVybHA4WWZYUGVEa2JoYwptam0wSUp4TGI2UVNOLzlJNTBQ
ZUViNWZCbUs4b3ZvRzJmdHo2S0dIV3ZMSVhGclBXeUcxUEh4TytzcG9zaVlxZ1dubm5ZUitTVHNj
CnQ1a0ROaTRJWncwbXJsRlg0MFNFU205QjJHQ2twOXB0VE1EaGwxakdxcEt2dSs2NjZybjBvYlRz
bEQ1T0V3SHF6RzFNM1JGaWludk4KTmYrY1RDMis3cHpOTmlBc2dnSFIrWWdpNjZuZXBDMVBhY2pp
R0NkNkxIREVHbEZwOWs1OGVFZWZQZjd4aisvRXkwMHM3UXNSQjFMKwpFT1pBS2YwdW1sZGVlV1hX
V0RVYUpXUEY4dFREMHI0VTN5MGpZNmMrM3VyMFMzL25qT21VSnU4cE55L3BSanBOVDUrbldmY2gr
c0xxClNsdlk0UFpCYWQrMTBSdjZuV3NxcDJ1dWJzTHZpaHVTVmxjNVN5Wk5ISW5HVDM4NnloVjFl
NU55Y0N4M0xtNHVudEd0aDVQbXI5SDcKdzAxL2lBZWRmVkExVnh4NXdaRWpOeUkxOUhqOHBjZkgv
NzM2ZnpYNnhyL2NHTjkwMXB2cUtER1haZzR0aU9mU20xTVJpZUFnTW4wMwpVa2ZGNExNaHNYUnVX
SEVLYk5DWDEvRGFRaHkrZmxyR1dDb0YwWVpiajU5MjNrbm8xK3ZxdjhzNFlPT05jTmJnWDZpUVZH
eHNTSlYyCkp5UTFkaDFtUGVOM3Z2T2RzTzY2NjZvVFFpd05MUWJBUWFTSTVBUzVPVmtNMWZVNk9n
Y1dQUWVtL2M0Tk9WY1BTV3ZSZDV3M29JZ0QKWC8yL3I0WlBYL1RwOEcvLyttL2hNU3NlRTdaNXlE
YXQrZjhlL3g3ZThjMTNoRi8rOFpmaE4zLzZUZGg3NDczRG1pdXZPUWMvaDJZdQpMWWpuMEp0VGla
c2owTUZBOTBORXE0TnNPRWJRTUYwdUVoMnFONGV1R2RaQVUrakttK0w1czNNZ2x3T3pQRmY3QmlT
M0Z5ZkFXMndiCkVKVFptUml4QnVUZ0hIQU9USjhEOC9IT0Rma2hHcExXOUxuckpUZ0huQVBPZ2VY
SmdWbWVxd2QxUkxnOHU3ZS8xZmdUQUpyTTd2WG4Kbm4rTWJiYlpKcGlwMGZrdjNVdDBEaXcvRHZn
N3QvejYzRnZzSEhBT09BZVdNd2NHTmNPN25CbloxbmJSMFFnaTI2bkorRG9SeTExQgpyRk8xb2M5
RXZHOCtacUlidkJMTGlBUCt6aTJqenZhbU9nZWNBODRCNTBCd0Vhd3BEd0t4M0JOd05waUNXTHdK
NjYyM1hocmx6ODRCCjU0QnpZS29jR1BJcWZraGFVMjIwRTNjT09BZWNBOHVZQTdNOFYvc0daQmtQ
VEcrNmM4QTVzSHc0TU9TSGFFaGF5NmNIdktYT0FlZUEKYzJCK09URExjN1dMWU0zdldQRFNuQVBP
QWVlQWM4QTU0Qnh3RGpnSG5BUExtZ08rQVZuVzNlK05kdzQ0QjV3RHpnSG5nSFBBT2VBYwpjQTdN
THdkOEF6Sy8vUGJTbkFQT0FlZUFjOEE1NEJ4d0RqZ0huQVBMbWdPK0FWblczZStOZHc0NEI1d0R6
Z0huZ0hQQU9lQWNjQTdNCkx3ZVczQWJrYjMvN1cvakdONzRSZnZTakgwMlZrL2oyT1BmY2M2ZGFo
aE1mbndNWFhuamh4SDVYNW1zc2pkOUt6K2tjY0E0c0JnNzQKOTZLN2w1YlRmTzFqb1hzc2VPcnk0
Y0NTMllDY2M4NDU0UVV2ZUVHNDI5M3VGamJaWkpPcGJ3NDIzSEREOE9oSFB6cDg3V3RmV3o2agpa
Y1piK3YzdmZ6Kzg1Q1V2Q2ZlLy8vM0QybXV2SGE2OTl0cXhhanpmWTJtc1Nub201OENNY09Eakgv
OTRlTVl6bmhGV3JGaFIvVEVICjc3ZmZmbk5Na005SWxlZTlHdjY5bU12eTVUcGYrMWlZT3hZOFpu
bHlZTWw0UW1jenNPYWFhNGJ6empzdi9PcFh2d3FwNmJGcGRPMUQKSC9wUVBXRy8rOTN2UGczeVRu
TU1Eano0d1E4T3Izbk5hOEpIUHZJUnpYM0xXNDQzdk9kN0xJM1JWTS9pSEpnWkR1eXd3dzZCdjRj
LwovT0dCUmVYdGJuZTc4TDN2ZlMvYytjNTNucGs2TG5SRi9Ic3h0d2VXNjN6dFkySHVXUENZNWNt
QkpYTUR3b1pqbFZWV0NiemNRSXh4CnFqMTY0b2tuaG11dXVVWlAyNmRha0JQUDVnQWJEamFFOTdq
SFBUVFB1QnVRK1I1TDJRMTBST2ZBREhQQTV0NTczdk9ldnZtbzlaTi8KTDJvTWtaL0xkYjd1R2d1
SS9iN3RiVytieTZ4RkhyTlUyN1hJdTJYQnE3OWtOaURHU1Z0MFR2c0doUEtzTEN2Ync5bmd3TC8r
NnorRwp0WVhqMXNyNmR6N0cwcmgxOUh6T2dWbmh3SzF2Zld1dHlyLzkyNy9OU3BWbXFoNDJuOHhV
cFdhZ01qWlBXemh1bFl5L2kyRyt0cnJXCjIzckFBUWVFVTA4OXRSNjk2SDh2MVhZdCtvNVo0QVpN
ZFFQeXB6LzlLYXQ1Zi8vNzM3UHc1aHRwMGx1VTNQWlRUcjJzK3UvNWJudGIKZWRPbzF4RDlmOU5O
TjgycDhxeDlpS2JCdXptTjlnam53RExod0ZKK24vN3lsNy8wOW1MdTk2V1gwQUlnTFBYNWVweSsr
ZWhIUHhyZQovT1kzajkwYmYvM3JYeWMydkRKMjRSMFpKMjFYQjJsUFd1UWNtTW9HNU5CRER3MlBl
OXpqd210Zis5cXd6VGJiaEdjKzg1bmh3eC8rCjhCeFdmZUlUbndqUGU5N3p3bzQ3N2hnMjNYVFQ4
S0lYdlNpZ0FGd0hKbU4yMEU5KzhwUERYZTk2MTdEdXV1dUd3dzQ3TEpRdVhIUHAKSUwvOHFsZTlL
dnpIZi95SGx2RzYxNzB1ckxycXFtSGJiYmZWcXYzKzk3OFBuL3prSjhQbW0yOGVqanJxcUhwMVEy
NzdvZkhzWno4Nwo3TFRUVHNxbnB6NzFxVXIzaVU5OFlzQXFDUERaejM0MlBQYXhqdzBQZU1BRHdn
dGYrTUtxTFBRYzRBZnhEM3pnQTZ0NGU4aHRxK0duCklSK0hrMDgrT2V5eXl5NWh2ZlhXMHlUNmlq
Njk0eDN2R0o3MnRLYzFLbmlYbHBuYi8ybmQ2cy92ZmU5N0EzeERCdjB4ajNsTWVNTWIKM2hDWWlJ
R21EY2pIUHZheDhKU25QRVh6UE9oQkR3cFBmL3JUd3hlLytNVTYyYXpmdWJUNnhsTldZWTdrSEZq
aUhCanlmY3FkaTY2Ngo2cXB3MEVFSGhVYzk2bEhLM2JQUFBqdHN0ZFZXWWZYVlZ3K1BmT1FqQTcr
Qm4vM3NaK0ZOYjNxVHpvZk11ZnZ1dSsrY1F5TkZiUGpYCjlyMWdudUswRytNcHpQazMzSEJENEZ2
enNJYzlUUFZvMWw5Ly9VWmpLbDNmbDNHK0YvUEJBMlBMVXArdnUvb0dIclNOaFNPT09FTEgKQVp2
cS8vM2YvOVUxRHV1YzY2Njd6bGpYR2pLR1dDTmdnQVhERDQ5NHhDUENPOTd4ampuNFEvZHp6anMy
U2J2bU5NQWpsaDRIWk1CUApCTUlSbEMzMEQwS3lxSXdycjd4eWxCTUFwU3ViaENpTHcvajYxNysr
S2tma0FhTk11dkUvLy9NL0t6eXhXQlR2ZEtjN1JibStqOS84CjVqY3IzRi8vK3RkUlhxNG9pL1ZJ
dmovKzhZL3h1Yzk5cnBZSGpUckloa2JUcUVjS3VYU09QUExJS0I4ZnBTRktjdkdWcjN4bGxBK1MK
MXV2Zi8vM2Y0MFVYWFJSbGtSdnZjSWM3S002SFB2U2h0SmlzOXNPVDNYYmJMWXJTWmhTRitTci9W
Nzd5RmFVSlA3LzczZTlXOFRLWgphTHhzZUtvNEhpNjQ0SUlLUDAzSWJXdWFKMzMrOHBlL0hHV3pv
YlJGcHlLKzdHVXZpLy8xWC84VjMvZSs5MFd4THFYeHNvaFBzOFNTCk1rdjZmNlNRNUFjOHBFNnlR
WXJYWDMrOXBrQ1h2ckh4K1BPZi83ektJWk5sbE0xd1hHdXR0ZUtWVjE2cDhZeFJ4aWI0c3RtcWNP
MmgKYlN5VjBPb2JUN0lJc2VJOGRBNU1sUVAyWGhCT0NrMjBlQitKRjEyUUl2SkR2MCs1YzlGWHYv
clYrS1FuUFVucmZKdmIzRWJuRGprTQppbktvRkYvKzhwZHJ2Qnc4UmZDWUQyV2pFai80d1E5RzJZ
Qm8yc0VISDl6YnpoLzg0QWV0M3d1eEhoYkY0SVhTdXM5OTdoTTMyMnl6CitOLy8vZDlSZEFDaUxE
NDFYc1Rhb2hoV3FjckorYjZXZkMvbWd3ZFVmam5NMTMxOTB6VVcvdnpuUDhmUGZPWXoydWVNeVQv
ODRRLzYKQjkrNjRJd3p6b2kzdU1VdDR0dmYvdllLamJVUzcyRzZCaHE2bjNQZnNYSGJWVFhHSHli
bVFOTmNQVEhSZ1FoTS9DV3FOMDdNTVVZNQpXUjZwM2c5LytNTW8xb21xT05rVng3dmM1Uzd4ZDcv
N1hSWEhBNHRBNktVdjAwdGYrdExJUnlFRjJja3JIcmk4V0NtMExScEw2TWlKCmd0TG54V1pTQVA3
Zi8vdC9rUW5FUUc0dUZLZStBY2xwdjF4SmFsNDVlVGR5VmJqU1NpdHBXcm9CK2RLWHZxUng5UTNJ
alRmZXFQSHcKSVlXU3RxYjUwdWYvKzcvL3EyaXpNVEpnNHBHYmhTZ3lyRkZ1U2l3NmxwUlowdjlW
QWJVSFB0NjBXMDZMUmxKWTBQUFJKazNzclZkcApqQ25pVGp2dHRDcU9CelloakZmUzZKY1Uyc1pT
S2EyYzhaU1c2OC9PZ1dsd2dERnVmNVBTTnpxRUJ1TnVRSVorbjBybUlnNjBtTXRvCng2Yys5U2xy
aW9iTXQ4U3pJQVRQUUV5dmE3eVlHcmFvM3JEdGU4RmhEMlV3WjNHNFpjREN6Y3FYbTNpTGpqbmZs
OUx2eFh6d1lEbk0KMXpsOVEwZTJqWVV2Zk9FTE9oYmtSci9xNzc2SDNYZmZYZk93YVRhUUczZU4y
M1hYWFMxS3d5SDd1ZVFkRzZkZEl4WDNIeE54Z1BuRgovaVlpTklYTWc0dGczZnZlOXc2eVVGZHpx
SElpTGUwT2Fpbkt4SmZrSlFpdmZ2V3J3OVpiYjYzaVBJcHc4NzkzdnZPZDRiampqZ3N2CmZ2R0xO
ZWFuUC8xcGVQLzczeDl1Zi92YkI5bk5WMzlubm5sbVpXWGw2MS8vZWtxaThibVVqcHhHS1IzWkpL
bUlGRCt3ckNTbjV4VjkKUkpHQXVwaFBYL3ZsdzZMWDk3SzVVYkd6aXVETkQzNzYwdm9BQUNBQVNV
UkJWUGd4QWVwMG0rSU14MEp3U3R0S25pYVEyeDZOaGphaQpWd2F5UVZKeng0Z1BYSEhGRlJwZFVt
WkovMXVaOVpDclg4VDdFRDB6RVRIRGdhLzN1dGU5OUtmeGhUTGxCazZOQnFSdEFRbkZXUk50Clkx
ejJ3VGkwY3NaVFg3bWU3aHhZaWh3WStuMHFtWXZnNTIxdmU5dGdjeDNpbUNrZ0FnVTgvdkdQVnp4
TGU4aERIcUtQaUdYbFF0djMKZ204TWdBbDVvOHZ2VzkzcVZ1RmQ3M29YajBFTzJjSnZmL3RiZmU3
N3ZpalN6ZjlzL3JNNCsyMmh4VStiQjh0bHZzN3RtN2F4WVAxUgo3eCtMYndybHBpN3N2ZmZlS2pa
bzZTSkpvbzhteG0zeFEvVno2VHRtNVplMHkvSjR1TFE1TVBnR1JFN0JBb3ZBdDd6bExibzRsQk5u
CjVTQ080UUJlQ3Z4MDNPOSs5OVBmNlQ5ZUhQUkZzQ01QSUF2SlFwY05DRXBkNlorY21nVVJiMUha
eDVSRzAzTXBIVjVVZ0E5VHFXV08KdnZhek9jTVRLdktkTmxFMDFYbmN1TksyamxPT2lKOXBOalpU
UUVtWkpmMnZ4QnYrWFhiWlpiclJhaHBEb0RQK1VyajQ0b3VEWEducgp4cVRKK2dneTM0Q0liS2xw
NVRSdi9Ya2NXcE9NcDNyNS90czVzSlE0TVBUN1ZESVg5ZkhSNXJrNm52azNZVTZaSnFDamhzNGo4
T01mCi8xakR2dStMSWczNGJ3Z2VMSmY1ZXFpK0tWbW9jd2ozMXJlK1ZROXpSV29oN0wvLy9xb0h3
aEJBM3lRWFN2cDUzSGVzcEYyNTlYYTgKeGMyQjhUeTFkYlFaQlNpOGcyKzMzWFpCeEloVVVWcmtX
b1BJeXdiTU0vTEJBVGo1NmdNbUxnRDc4aWdaand0RDBja3B2Ni85bDF4eQppWkl4WHhVNU5FdHc1
ck90VnErU01rdjYzK2pYdzBzdnZWU2pPQ1hzQXB2dzdPUGR0cG5reG9STkN6ZDI0Tm90VkJQdElX
azEwZmM0CjU4Qnk0c0RRNzFQSlhOVEhaek1uYlBPSTRkZC9XL3cwUXI0VHYvemxMeXVESzMzZmw2
SHJNQVFQbHN0OFBWVGZsSTR2MFdsVTR3WGsKTy9EQUEvVmJob0diRWpvbC9UenVPMVpTbjZISHNk
T2JUUTRNZmdOQ016ZmVlR1BkZk95ODg4NTZneURLeTNxelFacWRCbU1acUEvcwpxdElXclgzNGJl
bEQwV21qWDQvdmFyKzloQ1hYOTNYNlhiL251NjNVcGFUTWt2NXZheWMzWWNCUGZ2S1ROcFNSZUJ5
akFhTEhnOEQ2ClNCby8ySmlJRXFyRzkyME1oNlExcHlJZTRSeFlKaHpBNGhNbnRFTy9UeVZ6MFdK
ZzlXOSs4eHV0Wm1ycHNPdjdNb3R0V2s3ejlYejMKamVnTmhRMDIyRUJ2eWtUUEpwaTQ3elRId1ZK
N3g2YkpLNmZkellIQk55Q2l5S2NsaWlXc0lCWkR3dW1ubjY3NkdpZWRkRks0L1BMTApBOWZLQUta
UFJUbGRuOU4vTEJEUjl3QnMwc1dFYjl0MUltWUxUZGNrcFpNK0QwVW5wZG4yM05mKys5NzN2cHFW
MnlGRTBlclF0RUEyCm5MNTJnamVmYmJWNmxaUlowdjlHdng0YWplOS8vL3U2cWFpbjIyL2I3SEdE
eGpNaVkrZWVlNjRsVnlHM1VvaFRJRnBoK2lOVll1MWgKU0ZvMTB2N1RPYkJzT0lDSmIyVEpoMzZm
U3VhaVdXYzI1dEN2dnZwcU5hdHFpNzYrNzB2YXBwenZSWW8vcmVmbE1sK1g5RTBYcisyNwoxWVZq
YVR1SkNYOU05V0lXZXI1ZzNIZXNwRjN6MVJZdloyRTVNUGdHaE0yQ1dFcXFXb1hTNzE1NzdhVy9r
VkhrZzRPZGN5WkhNY09yCmN2ZUd6Q1lEWE95c0ErUzl0eWkxODRJaHhtVTZCNGIveGplK1VaWDFV
cG4vcGdYOE9IUW9vNG1XbFMzbThmVFJRb3ZQYWY4cXE2eWkKYlJGemk1Wk5RL1Jkek81M1dyYkpI
TE9CUzhFMmNPQ2FQUEs0YlUzcDhweVdYMCtydDdta3pKTCtyNWRydjlkWlo1MGdKcEoxREdHYgpQ
d1hHaUczc2JOT0tMbytZUFZZMC9LZlV3WHpQN0xQUFBpTkpUVHdZbHhhRW0raWxCWjUvL3ZtNlNV
L2ovTms1c0ZnNGdMSnhEb2hWCm5DQ20xbFhwZXVqM3FXUXU2cXVydFdlSWhiek5tUmJXeTI0cWd3
VXRkY0Mza1VIZjl3VzhrdStGMFcwTGgrREJVcDJ2Nnp6TDZSdnkKMkJpdzBPallKaE9SdXh6Z20v
L3RiMzliVVUzTWpSOFdaMzJYUTh0d204WmhQWC9wTzViVExzVDIrZjQ1TERNT3lLSm9JaEIyalpq
NApFbWR3VVRZUkl6VEZRVTRVMFpZb0MwS054OCtIeU85clBueUdQT3RaejRyUGVjNXpvb2puUk5u
SmorUTkrdWlqMWV3cjVZaVZFRTBYCko0SHgvdmUvZnhSSGZCR3pxeW5nV3dQYzFPOEk2U1YwekIr
SGJHemlOZGRjazVLdm5qR1ZSem5pdWJTSzR5R24vZmpUTUw3aHkrVFkKWTQrTm1QUGRjc3N0Sy84
aXFSbGVzWUJTeGVPWFJLeUFSYm41aVNMaUZrVmZRV250dWVlZUVYUEhRRWxiTlVQRHYyOTk2MXRW
SFZOLwpHakpweHRWV1cwM1Rqai8rK0NwblNaa2wvVjhWVUh2QW5LNlp6OFFrb0V5NjZqdEZGQUdq
R0RIUSttRVc4WmhqanRHY0lzb1E1WHBhCjgyRDYwb0QyMEpjaXZ4dGw4MkxSR3JhTnBWSmFPZU5K
ckxscG5USEhLWnZRa1hyNEQrZkFFQnl3T1lkd1VtaWl0ZEZHRytrWUZzWHAKRWY5R3ZHUE0vZml6
RUNWWmZRZFR2enREdjA4bGM1R0l3a1lSd2RSNnl5SnVoQzNtQ3dSejNDbjg2RWMvcXQ1Vis2YWw2
VTNQYmQ4TAo1aTNqcFRnUnJMSlNCdDlNZkY2bGtQTjlLZjFlekFjUGx0cDhuZmFKUGVmMERiaHRZ
MEZ1QkhVczhQM2lHeWxPTVBWYmJ2U2JRdk1qCkkwNHpJK05IRHVUVWJRSGZSdFpUbU1BOTVaUlRO
T3VRL1Z6eWp2VzFpL1dQdlFOaTliU3BtUjQzQVFlTXQ0U3pCaFBYcU40NEZ0RnkKYTZHYmlnOTg0
QU5Sdkp2SHg0b2pRV3hUcDhERWF3czhhT0FYNVBEREQwOVJxbWQ4Y2NpcFRqVkllYm5FOUZ6RUQ0
YUJXR2FJejMvKwo4eXVjTmRaWUk0cjM5TWhrYkpCREJ5ZE9iSFNzWFh4VUR6bmtFQ09oenYva3BM
emFRT0dvVDh3SFYrWGt0aC9iOTdZSlk4TFpZb3N0Ckl2NU4rT2hRZHAxZko1NTRvanI0SW8weXFZ
T2NXdWlpbWpMRmkzQ1VrNU9xbmpsdHJaQnJEOWk1MzNERERTc2VzSkNYVzRJb0NxTlIKekNkWDhm
U2ZpTlpWdVV2S0xPbi9xb0RhQXd2N0ZTdFdWUFhCY2FSNGNGZS9IdGpPWjFOblRnckp5alBPTCtY
VU5lNnh4eDVSYmtPMApQVHZ1dUtNNmZUTHlPV01wbDFiZmVMSXk0UWNMSVp4eHBtUFcwajEwRGt6
S0FadlRDQ2VGbEJZK0hwNzJ0S2RWN3lGcGpHVTUrZFNECkV4RzlHRWtqM1E0R3JCNUR2MDg1Y3hH
YmZ1WmRhd3ZPVmZHaGdYOHFzZUpZZlhQRUNxTTZZOFZwTFBNZGM0dmxZZTQ5NjZ5enJCbHoKUXB6
RmRuMHZiQVBDNFlpWW45ZHZKWDRpUkJSVUQvTFl2S1dRKzMzSi9WN01CdytzL2t0cHZyWTJwV0Zm
My9TTkJXaHR2LzMyT3JZNAovT1JRc2Q3L2FYazhjeGdwVWdXYVJ5Ukw0bnZlOHg3Tkk2Ymw5ZUJX
OUVPaVNFN0VhZlJ6emp0bTllMXFGMnNMVVlMWE5yRHVjQmlXCkF6WlhFYzRhL0FzVmtvcU5EYWxj
SDZRUWdjRzNnaXlpQWlKWGNscmVhVldJNjBiNStLZ2Q5SlJXdlVMUXh2b0N5b3ZZU3pkbDVqcGUK
MysraDZMU1ZVOUorMlVBRk9lbFMveUptMFFtbFRObUlCSlQwelhSeFd0YVZZdkZDRnQyVmVXREVq
T3lLTThYamVkcHRyWmMzVHBtNQovZDlVbHNVaEo0MGl1WGl3MXlob212bEt3MGxEUkFUbHc2L1dR
akNIakJqSXVEQWtMV1RpTVllSS9wU0RjMkJvRHFUekszUERKREFrCnJiUWVRNzVQQ3pIL3BXM0pl
ZjdPZDc2akp0bjVwcUZRakhFU2VJQ0lLWE5hSFVxK0wrUXQrVjdVeTVyVzc2VXlYOWY1VTlvMzlm
ejIKbTNVVC9yWkt2a3ZYWG50dFdIWFZWWTJFaGwxcmd4SEVDWDZVdkdOZDdXTE1zK1pCckY2OHUw
OVFJODlhNThDMDV1cDZPZVA4SG53RApNazRsUE04L09kQzNBZmtucGo4NUI1d0R6b0Y4RGd6NUlS
cVNWbjRMbGg1bWZRT3k5RnJvTFhJTzVIRUE1OElpVWhaRTRpSXZnMk5sCmNXQ1c1K3E1Unl4WlRY
SWs1NEJ6d0RuZ0hIQU9PQWVjQTg0QjU4QmtIT0RtUS9SNmZmTXhHUnNYWGU3QkhSRXVPZzdNV0lX
NWlnVE0KcXRXTVZjK3I0eHh3RGpnSG5BTURjZUFYdi9pRlVoSzlrNEVvT2hubndPTGp3RGJiYkZP
NUVGaDh0ZmNhajhzQnZ3RVpsM01ENXhObApNalUxYkI3aU1TK0xud3NINTRCendEbmdIRmg2SEJC
akYwR1VoclZoT0VrVmk0cEJyQTh1dllaNmk1d0RQUnd3M3lJOWFKNjh4RGpnCk9pQXowcUU0eUJP
TEZ5TzF3WjY3T1hFYVNmQWZ6Z0huZ0hPZ2tBTkR5Z0lQU2F1d0dVc0dYYXdpQlp3TnBpRFdnTUo2
NjYyWFJ2bXoKYzhBNTRCd1ltd096UEZjUEtvS1ZOblJzYm5sRzU0Qnp3RG5nSEZnMEhQQjVmOUYw
bFZmVU9lQWNjQTdNREFkY0JHdG11c0lyNGh4dwpEamdIbkFQT0FlZUFjOEE1NEJ4WStoendEY2pT
NzJOdm9YUEFPZUFjY0E0NEI1d0R6Z0huZ0hOZ1pqZ3dzUTdJekxURUsrSWNjQTQ0CkI1d0R6Z0hu
Z0hQQU9lQWNjQTdNUEFmOEJtVG11OGdyNkJ4d0RqZ0huQVBPQWVlQWM4QTU0QnhZT2h6d0RjalM2
VXR2aVhQQU9lQWMKY0E0NEI1d0R6Z0huZ0hOZzVqbmdHNUNaN3lLdm9IUEFPZUFjY0E0NEI1d0R6
Z0huZ0hOZzZYREFOeUJMcHkrOUpjNEI1NEJ6d0RuZwpISEFPT0FlY0E4NkJtZWVBYjBCbXZvdThn
czRCNTRCendEbmdISEFPT0FlY0E4NkJwY01CMzRBc25iNzBsamdIbkFQT0FlZUFjOEE1CjRCeHdE
amdIWnA0RHZnR1orUzd5Q2pvSG5BUE9BZWVBYzhBNTRCeHdEamdIbGc0SGZBT3lkUHJTVytJY2NB
NDRCNXdEemdIbmdIUEEKT2VBY21Ia08rQVprNXJ2SUsrZ2NjQTQ0QjV3RHpnSG5nSFBBT2VBY1dE
b2M4QTNJMHVsTGI0bHp3RG5nSEhBT09BZWNBODRCNTRCegpZT1k1NEJ1UW1lOGlyNkJ6d0RuZ0hI
QU9PQWVjQTg0QjU0QnpZT2x3d0RjZ1M2Y3Z2U1hPQWVlQWM4QTU0Qnh3RGpnSG5BUE9nWm5uCmdH
OUFacjZMdklMT0FlZUFjOEE1NEJ4d0RqZ0huQVBPZ2FYREFkK0FMSjIrOUpZNEI1d0R6Z0huZ0hQ
QU9lQWNjQTQ0QjJhZUE3NEIKbWZrdThnbzZCNXdEemdIbmdIUEFPZUFjY0E0NEI1WU9CMjQ1YVZQ
KzVWLytaVklTbnQ4NTRCeHdEamdINXBFRE1jYUpTdk41ZnlMMgplV2JuZ0hQQU9URHZISmgwM2gr
NnduNERNalJIblo1endEbmdISEFPT0FlY0E4NEI1NEJ6d0RuUXlnSGZnTFN5eGhPY0E4NEI1NEJ6
CndEbmdISEFPT0FlY0E4NkJvVGt3c1FoV1dxRlp1OTVKNitiUHpnSG5nSE5nT1hOZ1dtSlRQdTh2
NTFIbGJYY09PQWRtbVFQVG12ZUgKYUxQZmdBekJSYWZoSEhBT09BZWNBODRCNTRCendEbmdISEFP
WkhIQU55QlpiSElrNTRCendEbmdISEFPT0FlY0E4NEI1NEJ6WUFnTworQVprQ0M0NkRlZUFjOEE1
NEJ4d0RqZ0huQVBPQWVlQWN5Q0xBNzRCeVdLVEl6a0huQVBPQWVlQWMrRC9zM2NkWUZJVVRidkl4
NUZ6CnpsRkFVVVFVRlVGL3dJQUp4WVFKYzg0NWdqbEh6QkZSVURCL0JsUkVVVUZFUVVHeTVKeHpq
dlBYVzBzUHMzT3pNejI3czNkN2QxMFAKeDh4MlYxZDN2OTB6MDlXaHlpQmdFREFJR0FRTUFsRWdZ
QlNRS0ZBME1nd0NCZ0dEZ0VIQUlKQUFnV1hMbHRIWXNXTVR4SnJnU1pNbQowWVlORzFJQ1l2ZnUz
VFI2OUdpYU9YTm1TbkxTbmRqMGhYUWpiT1RuRndTTUFwSmZXc3FVMHlCZ0VEQUlaQ0FDNzcvL1Bw
MTAwa25VCm9FRUQrKy9JSTQra2UrKzlsM2JzMkpHQkpjNzlJblhzMkpFT08rd3crdVdYWDNJLzh3
ek44ZDkvLzZWcnI3MldtalZyUmdjY2NBQ3QKV0xFaXFaS09HVE9HTHI3NFlxcFJvd2FoMzJXNm9t
ZjZRbExOYkJJVlFBUWlOY05iQVBFeFZUSUlHQVFNQWdZQkh3VE9QLzk4d2wvYgp0bTBKZzhyczdH
eWFPSEVpVmF4WTBTZFY0WXBxMDZhTnpQRFhybDI3Y0ZYY3A3YXRXcldpdSsrK205NTk5MTNoS2w0
OHVlRUlGTHVtClRadlNuMy8rU2F0WHI2Wk1OanVLaXBxKzROTXBURlNoUXNDc2dCU3E1amFWTlFn
WUJBd0M2VUVBQXl0UXZYcjFqUExoZ3ZpcnI3NmkKNWN1WHkyeS9LNnJRL29UQ0FZV3NidDI2Z2tH
eUNnZ1VqbXJWcXNuQUhvSXkzUytOWDEvQU5ySW5uM3l5d1BXSmdscXZBdGRRdVZ3aApvNERrTXVB
bU80T0FRY0FnVUJBUktGV3FsRlNyUklrU0JiRjZLZGNwMlFGMnlobG51SUNpUldQREVIVk50cmdL
MzB4ZkFVSDlWRm5kCmRlM2J0eTk5Ly8zMzd1QjgvN3VnMWl2Zk4wd2VWOEFvSUhuY0FDWjdnNEJC
d0NCZ0VBaVBRS2JQZElldjBiNFVPM2Z1M1BjandkMjIKYmRzU3hHUitzTmZab0V4VEhGTHBYOG0w
ellBQkEralJSeDlOdXZGMjdkcVY4a0grcERQM1NaaHF2WHhFbTZoOGpvQlJRUEo1QTVyaQpHd1FN
QWdhQmdvREFlKys5UjhjZmZ6eWRjTUlKdE45Kys5R0pKNTVJWDMvOWRZNnE0WHpKcmJmZVNsMjZk
S0U5ZS9iUWZmZmRSOVdyClY2ZXp6anJMNXNVQUhyT3V4eDU3TEZXdFdwWGF0V3RIcjd6eWl2RGJU
SHl6YU5FaWV2enh4NmxEaHc0Uy9OdHZ2OUdwcDU1S3RXclYKb29NUFBwandHN1JreVJKNjVKRkhx
SDM3OXRTOGVYTzY4ODQ3dGJmNmJOeTRrUVlOR2tUSEhYY2NEUnc0VU9UaFB3d1lNZHVOQTlUZAp1
bldqVFpzMlNWMzIzMzkvT1VkenlDR0hlQjZvN3QrL1B4MTk5TkYwenozMzBCbG5uRUU5ZS9ha2Q5
NTVSK1FPSFRxVU9uZnVMR1c4CjdMTEw3THh3emdKWW9Pd3RXclN3dzNHVEd4aW9ERjk2NlNWcFg1
d1pPdXFvbytpQkJ4NFFIQkR2cFlEbzlna2wzKytxSzB1bmZ5WEsKeDY5dGtDWlJYM2pqalRla0gw
RHArZXV2djZTL29zK3VYTGt5VVZaMk9Qb1EyaHdIK21INDRhQ0REcUtubjM3YWpsYzNVYmV6empP
VwpTcjFVdWMyMUFDUEFIVDRsWW1nczlaZVNJSlBZSUdBUU1BZ1lCTktHZ0hwUDQ1b3FlY202NktL
TDVGdkFaMEZDaWVlQmpNVURhYXRsCnk1YlczTGx6SlMzUElGczhTQlY1bDE1NnFTM3Z6VGZmdEZn
NWtIQSt4R3pkY3NzdEZpc01GbS83c2lwVXFHRHhvTjVhczJhTnhRTXkKaXdmOUZ1ODl0N1pzMldM
MTd0MWIwdkJnMzVZMWN1UklxM3YzN2hLZWxaVmw4V0RZNnRPbmo4VktnblhqalRkS09DczJGdmg0
d0creApvbUs5OWRaYkZnL2lKZTY1NTU2elpTVzZtVFp0bXNndFc3YXNwSG43N2JkdFZyWWVadkVC
YWdsdjFLaVIxYlZyVit1YWE2NngrQXlBCnhZTlBDZWR0YlJZZnJyYlRmUERCQjFibHlwVXQ0QU5p
QlV4dzZ0ZXZuODNEZzA5Snl3cVBIWWFiOGVQSFM3aXovWE1EQStTTmNxSi8Kc0FKbnJWMjdGa0hT
TnNCYzlhV2xTNWRLT1A0TDB5ZFVvblBQUFZka0FTTW5oWkdsMDcrY3NwMzNRVzNqMXhlMmI5OXVE
Umt5Uk1xUApQcmw1ODJiNUEyNStOR0xFQ0t0WXNXTFdVMDg5WmJPaDN3TlRKdzVSdDdQdU01WnN2
ZXpLbUp1VUVWRFBsL081VDFsb1JBSlMvaEpsCmN1VWl3c2lJTVFnWUJBd0MrUjZCS04vVlhyS1NW
VUF3ZUlLOEgzNzRJUTVqRExKNUpVVGllQnVISGNjenZoS0dnUmNHYmFDRkN4ZGEKR09DQnJydnVP
bEVrNU1mZS8zajJWOUlnSHd6R0ZFRTU0ZjM0RWpkNDhHQVZMRmNNNE1HUEFTSDRGTEVwWFFsbms2
OHFLUERhcTFjdgpTZU5VUUpCbytQRGhFZzVGWS9Ma3liWWNETnhVL3J6U1k0ZXp1V1BCeEE3Z20v
LysrODlpYTFKMjBMZmZmaXN5M1FySTFxMWJKUngxCmNsSnVZQUJsQy9ueTdMNHphMUVZVVhmRXNY
OE1PeTVzbjBEQ1JBcElXRmxCL2NzdXBPdEdwMjJRSkZGZitPS0xMd1FIWGdGMFNVNzgKODhvcnI1
UTBVSm9WOFFxT2hGMSsrZVVxU0s1UnRuT1laeXlaZXNVVjNQeElDUUU4VytvdkpVRnBTR3kyWUhI
TEdESUlHQVFNQWdhQgozRWVBQjBYRXMvZHlLQmZiaXB5RVErMXFHOUZkZDkxbFIvRnFnZHhYcVZL
RmVEQW45N0NreENzb3RHREJBbnIxMVZlcFRKa3l4RFBBCjl0L1BQLzlzVytZYU5XcVVMYXQwNmRM
RUt5ZnlHMXUrbklRdFVLQmpqam1Hd0tlb2Rldldjb3R0V2JwVXJsdzVZWFZ2TTBJZFFEQWoKcStU
aWQ4bVNKZW5aWjUvRkxiSENST3ZYcjVmN2hnMGJFaXRhWXI0V2xvVkE4S1BoM0g0bWdmeWZPeS8x
VzEwVlg3b3h3RllkYkJmRAoxaTlzWVhNU0s1RlV2MzU5Q1ZMbFNxWlBPR1U2NzVPUjVkZS9uTExk
OTdwdGs2Z3ZLSGtLQi9YYjc4b3JkWFQ3N2JmTHRrSEZWNzU4CmVibUZjMGNuUmRYT1laOHhWWVl3
OVZKcHpMVmdJMkFVa0Z4dVgrTUYxUjl3NHhIWEh4OFRheEFvU0FoTW1US0ZlTHVKREVLOUxBUGgK
UEFhSXQrZUlHVnZjSzJVQWlvUGJjaEwyeitOc0JSUVFIQVIyL3ZGTU9QRVdHOWt2RHpsQnhOdW1Q
Rm1VZnhPVU81MkVjekE0dndLYQpQWHUyWEhtVmlUQm9mK3l4eDJRd3o2dEdFZzVIZnVtZ0tEQ1lN
V09HS0laTm1qVHhMQ0xxNDZSaytvUXp2Zk0rR1ZsKy9jc3AyMzBmClZkdUVHYWhEcVh2aWlTY0lT
czI4ZWZQby92dnZsM01nS0J2T20raFNtSFpPOWhrTFV5L2RjaHUrL0kxQWNwNS9FdFFaSG5GeENB
N08KcUJUQkpqd09DK0xCd0t4T1lTZDRRY1dMQXJOYXZFKzVzTU1oOVVkL3dXRTFIS2FiTldzV3pa
dzVrOVFzVGhpQTRCRVhBNHovL2U5Lwo0cEFLL1JHemc1bEtwaTlrYXN1WWN1VVdBbXBnN1ZZa1ZQ
NllIY2NBRmJQOTRJVzNhei9DWUJjRW55UTQ2SndLS1hQQzdvR1QrM2NxCmVRU2x4Y3JPcWxXcjdN
UHpPR0FNYitybm5ITU9UWmd3UVE2Vzg3a1I0dk1vcE1vYkpETk12SkxwcnJQN3Q1L002ZE9uUzNU
UTkxL0oKakxKUFJDbkxyNDZJaTZwdEZBNUIrYWw0UGpjbHhndVE3c0VISDVUbkJVWVB3c2dKMDg3
SlBtTmh5cVBxWnE0Rkc0RklWMER3d29lVApIY3dRWVprT0wwNVlNWG40NFllTjhyRzNIK0hEeUlj
SXhRRlR3ZTVhK3JWVEhuSFZsZ2F2bVZBZGFmQ0lpOW1nbWpWckNudW12L0JNClg5QnBWY05URUJH
QXhTZk0wR0tDQ3NSbk9IQXdJVWRWb1pqd0FYRUpWdzdyY2pBNUF0VDJGc3g4RndSYXQyNmRWTU5w
dWVxSUk0NFEKNWVPU1N5NlJGYUNYWDM1WkxHRmxhbjJ4Q2dXYVAzKytWaEdqN0JOUnl0SXBmRzYz
RFo4Ym9rTVBQVlJXeWpEaHByYVA2WlExV1o2Qwo5b3dsaTROSmx6b0NrU29ncWpnWVdJSHc4S3Zs
YWhWWDJLOStYbEFMS3paUU9JeEgzUGpXTDZpZVl3dHF2ZUpiei93S1FvQXRXOGtrCkZiNFZtQ2pn
UTllZUptZW5UcDBxVzdUd0hWRm5CZnhrcTRFNnpOSW0yb0lDczczcS9JU2ZyTHlPZzYrTXhZc1h5
OHk2R3ZUeFFYa3AKRmlheDJDSVgvZmpqai9LTi9lYWJiMlQxMkZubVRLa2p0cEtCc05JTlJUTVJx
UW1qS1B0RWxMSVNsVnVGaDJrYmxjYnJxbkR3aW5PSAo5ZW5UUjB6MXdpeDBibEd5ejFpWWV1VldY
VXcrZVl0QVdoUVFIQjRFcVdXOXZLMWk1dVdlN0F4LzV0VWsyaEtwYlJqcW1xeDBoVzkrCmVPR3Bz
cnJyV2xBOXh4YlVlcm5icnpEK3htRmpIV0tyT1BUNzc3L0xvV3VjNDdqaWlpc2tHWHhWdUFuYktr
RjMzSEdITzhwenhRUUgKMlJ2eVFXMzRUOERXSkNnMlRsS3I4ZTV6QjA0ZWRhL3FFOFZBSHY1S1FP
cXE4bEJYcnp3d29FVVo0Q3RERVJRck5vR3Fmb28va050dQp1MDErWTJzdlNFMzZZVHVyazloYWx2
ekVTcFB1K1pVb01Eand3QU1KcTl5b0kzeXBPQW50czNyMWFnbFNDbU95ZmNKckJTMVpXU2lRCmx6
eG4yZDMzT20yRE5Lb1BxS3VTbzVSTTdCelJJYlRoMzMvL0xheHFteHQrcUREVmRqcXlGSzlYUDNT
bkQvdU02ZFFMMndySGpSdm4KenNyOEx1Z0k4RU9XRWpFK09VeDhKV3VPTWRtQzhJT2NiTktNVDhl
ellJRmxoSG5GL0Vvd042a0lmZ0RRbjNncmxncEs2cHJJSEdOUwp3amhSS3Ywcm1iYmhnWmpGeXBQ
RjFuZVNLakovVEN5Mm1wTlUyblFtU3JWZTZTeGJZWkR0OWE1T3R0NWVzZzQvL0hCNWZ2bmd0TVdE
ClNsczBuaDhlWElvL0N6NExLR1p2bmI0OWVKdVJ4VnRISkJ4bWFSVWhIVXlTOHQ1NnkvbWUrT21u
bnlRZlZpS3M1Y3VYSzNiNyt1R0gKSDhyemd6S3laU21MWjRjdGRseG84WGt3aTUzeGllbFh4WXgz
RFU5NGlEd2V4S2xndVNwZklIaWZPSW5QcUFrL3pNZWlYanFFZXFBOAo3T2s2anAwSGl4S09PRDQv
YWNjaEQ5NXlKdjVMN0VDK1llZDlGaXNjemlDTEhkQUpyeW9Mbm4zbGR3UitVdGdDbU1XclBoWnYy
Ykw0CkRJM2tkOU5OTjRuNVhnaktEUXhnWXBrbld5UnZtSEJGdmZrTWkvZ0d5YzdPbG5DWXNmM2tr
MCtrYm1IN0JCSzFiZHRXNURoOW9pQTgKckt5Zy9nV1pYcVRUTmtpWHFDL3d0blVwUC9CZ0JkMWlK
NWdXK3JJZktUOHk3RFJUK2c4cmVHS0NHbGp6WVhvTEpuQy8rKzQ3RVJGbApPNGQ1eG9McTllbW5u
MHE5OFF5d0JUdS82cHE0SkJBQXJ1b3ZpZVJwVFJKdkVEeUpyRlRGY0ZXVXFnSUNtKyt3WWM1ZWNj
VTVWWThlClBTemV1cVRFMjFlOHdQQ0N4WVBQbXJ2RlhrQ3RhdFdxV1dlZWVhYk5nd0U4UG5xdzVj
NG1EK1ZqeG50bWhkOW00aHZZa1dmTEloYWIKWHBUZ1gzLzkxVHJsbEZNc1BrOGdUcUh3RzhSTDRo
YlBvbGw0NFBGQjQ1azU3UUhxaGcwYnhEa1FQb0xzbFZYazRUOE1HUEdTQUc1dwpSb1VQQ2VyQ3k4
Znkwb2J6cGovKytNUG1WemN2dnZpaUJSdnhOOTk4czlnV2gwTXVaV2NlOXZHQkM4cm8vTmp6TEkx
Z2dYQTQxSEpTCmJtQ2c4bU9Qc2RLK2FLdE9uVHBaK0dpd0tVcDVVSndPcVJTL2JwOEFmNUFDb2l0
THAzK3A4cm12Zm0wRDNrUjk0ZlhYWDdjSFR6eHoKSlAwVkE3QVZLMWE0czhqeEczMEliYzR6eXVJ
TGdXY2U0eHhVcVFSUnQ3UE9NNVpLdlZTNXpUVTFCTHplMWNsS2RNcUNqd2U4bzUxaApHTlNqLzJJ
Z0RHWGFHWWQ3TmRCVStjTTVIZDRGUEdOdDNYREREUmFVMWROT084MjY4TUlMeFNHYjRvT1RQU2dW
U2g2VW51ZWZmMTVGCjIxZTgvM2dsd09iRGdJek5sVnJPQ1FFMngydWRmUExKTmcrK04vQ2hnV2NU
M3dLVm5pMXFXZGRmZjcwb1ZielZTZDY1S245OEk5UzMKd2M3Y2NRUG5mL2hHOEFGc3lZZTNtbHJQ
UFBPTVBVR2dGQkFvWUZkZmZiWEZoa25rWGM3YnpVVFJjRTkrSUQ5ZTRiRk9QLzEwNjdYWApYck91
dXVvcVNRUGZEMDdDOXhMZkQ1UVRlYUlNK000Z0g4akE5NGRuMnEzY3dFQ1ZDd1A3QmcwYTJIakRr
ZVN3WWNQRXJ3bStZL2gyCktTZUZTS1BiSitCYjVJSUxMckRsMXFsVHgrcmJ0NitOY1JoWnV2MUwx
Y2w1RFdxYm9MNEFXZWVkZDU3VUE4bzFsRVIzK3p2end6MlUKUzlYTysrKy92NFh2RHRLdytXcDU3
dmg4aU1VcllXbHBaNTFuVEpYWHIxNjh5aW1PUk5GWDJUQ0xTbUt1RVNHZzNsVzRaaHFsWENLdgp5
aVdyZ09BRmFUemlHbys0VGdVa1RKOVFEMWNpQlNTTUxPTVJWOC83cy9HSXEzcGQ1bCs5M3RYSmxq
cEtXYzR5WU9VRXF5QVlyR0xtCk9oWENRQXpPQ1RGQWhSTzJUQ1NsZ0VDcEFtR0NpMDJSNTVnZ1Uy
V0hjMFlRc01FRWlkTjVuK0p4WHVmTW1STW5DOHBWWGhPY1FqcFgKdVhtN25HK1JvdXdUVWNweUZ6
cHMyN2pUcTk5ejU4NE4zZmU5VmdKem82M0RQR04rOVVLNzRKbFBkdFZmWVdldU9SRkkxN3M2WjA3
aApRekpLQVluYVkya1liNTM0UUtrbFl1TVJsNngwWVlEWlVqd1FHQlE0aVczM1c4WWpiZ3lSWkR6
SEdvKzR6dDVrN3IwUWlQSkRGS1VzCnI3SVdsakMzQWxKWTZtM3FhUkJ3STNEMzNYZGJiRUxmSFd4
K3A0aEFKcityMDNJSW5Tc2NtcUwyV0JyV1cyZFVYa0tES3E0T1pMa1AKU0J1UHVNWWpycnZ2dVB1
SU85NzUyM2pFZGFKaDdnMENCZ0dEZ0VFZ3Z5QUE0eEM4TFp6NEhGQitLYklwWndRSVpJd0NFclhI
MG1TOQpkWHBoR3NaTHFGZjZWTU9NUjl6NnhLdFRPV0QwOHBLY2cybHZRTlQ5SzFFK0NPY3RpSkY0
S3c2amdCaVB1SDR0WXVJTUFwbUpBRytoCmtvTHhkcG5NTEtBcGxVRWdGeERncmZjRWs4S0dDaGND
T1VkMWVWVC9xRDJXSnV1dDA2djZ5cHl3ZTBEby91MlZOcW93NHhFM0o1SmgKdkNSSDNiOXlsbVpm
aVBHSXV3OExyN3ZjelJscTJRQUFJQUJKUkVGVWZHNjg4amRoQm9GTVFBQ1RaSHhvV0lvQy94aHNJ
WXQ0RHp6QgpvYW9oZzBCaFFrRDVGaWxNZFRaMUpjcnpGUkRqRVZldkcvS2hRMkYwUHFpNTdYVlZy
NlNKdVl4SDNKNkp3VWt4eG5qRVRSRkFrOXdnCmtNc0l3TjhSVzJnVW55andpd0wvQ2w0cnZibGNM
Sk9kUWNBZ1lCRElGUVR5ZkFVRUhuSGhtZGJ0c2RROUM1U0tSOXg3N3JtSDFOa0wKSjZySWw4Mi95
bllaWjNpbTNTZnlpTnU3ZDI5U0huSFo4aE94MlVwU0huSFpwSzFkRFIzblFqWnpHbS9jSG5IcjFh
dm5tWnVhSVkreQpUMFFweTdQUWprQTRFTk50RzBleUhMY0toeHdSSGdGNTdSRTN6RE1XcGw0ZVZU
VkJCb0VDZ1FDYmNrOTdQUWEzYjUvMlBFd0c2VWVnCndzQy8wcCtKeWNFZ2tNc0lwR1VGaE0yZGFs
WERlTVROQ1pPWHNtQTg0aEt4WDRBY1lDWHlrc3hHSTNMd0dvKzRPU0R4REZEUHJsYy8KZENjd0hu
SGRpSmpmQmdHRGdFSEFJR0FRTUFqb0lKQVdCWVJ0ajB2ZU9HREhmZ0xzY21CZ2lDMVgyUHZLam9J
SUI0L1lLWjhkLy9qagpqeE03U2lKMmxrYy8vdmlqSFk1MG4zLytPV0Z2UFR2ZHM4UFpXNnpjczMx
cFlrZHRkamh1Y0c2RG5Va1JabHZaOUN0aHR1bXV1KzRpCjlpSkw3SUNQMkFFVHNkazNPdzM3bmlC
MmZDUy8yVWE1SFk0YnhJRndrTmxKcXA3WUhvVjY2UkRiUEJjMmQzbFZXdmJHU3g5Ly9MSDYKU2V4
RVNGYUlNS1B1dEJDQmdTTHdjaExLaWJNaWF2V0liY3NURHRDam5Pd0ptRWFPSENsTC9pKzg4QUt4
UjF4SmlsVWdoV082TVdEbgpTc1JPdzJTYkFUdW1JM2J1UmYvODh3K3hFeTFpaDFxMGVmTm1LUk03
SWlQMmppcjNZZnNFRXFsMkFuWk9DaXRMNGVMVnY1eHkzZmM2CmJZTTBpZm9DcklHQTJNNC9RY2xD
WC8zb280OGt6T3MvZHBSRzdIQktvdERPNkQvWVQvN2xsMThLMXZQbno1Zjc3Ny8vWG5paWF1ZXcK
ejFoUXZUNzc3RE5paDJURXprQ0puYXg1VmRXRTVRTUUyQ2NCc1ROVjdaS21rMTlIdGc2UHFvd3Vi
eEJmVUh5WS9IUmxaVlhlU2NXegpkeXZSb2E5aDB1dnc2dkNna0RwOG1jYWpXMjVuSStqVXdjbHY3
ZzBDK1IyQlNMZGdmZkRCQnpKUXduNVdFSHRhSmZaTVRoZ2dRWW5BCkFOTTlPODBlejIwTU1Vdk5k
dEdKUFRsVHIxNjl4Q29DZTNNbTl1b3FjakN3WW8reXdzL2VaTzFaY2N6Vzl1elprOWlUTG1Id3F1
anMKczg4bTdMT0ZQQXhLOFljOXRsQmlIbmpnQVh2cjFlalJvK25KSjU4a2Rxb2pTZGtES2JFUEVU
cnl5Q09KdmFZVGU4NldjS3pZUUQ2VQpKL1pNVHV5M1JNSzNiOTlPN09tVDJDczdzVmR2Q1hQL2gz
b05IVHJVVnF4ZWV1a2xZcjhYaEMxbzVjdVh0OW1oZ0VGUlFMN0E3czgvCi82Unp6am1Ibm5qaUNa
c0hONVVxVlpLQkpwU0xidDI2eVNBZTI5U3dCVXRaN1lMY0R6LzhVQlF2NElYNzg4OC9Yd1ozVU1M
WWN5c0IKWDJ6anlnME1VRzZVOVljZmZoQkxVZXdObmZESEhuRUo1UU9tVUl4ZzNlci8vdS8vd0U1
aCtzUzRjZU5FSGhRYUVEc1RsUDZHOWdZVwpZV1RwOUMvSnhPTy9vTFlKNmd2WW1vYitoT2NKL1Ft
S0dzcmpSMUMyMFdmWjJ5NDk5TkJEeEo1d1JaR0hrdkRXVzIrSk1qNW8wS0RJCjIxbjNHVVBaZyty
RkhwdGw0Z0FLM01DQkE0bDltL2hWMmNSbEVBSlFwbkdnR3U5YnRmMFQ3MU84Ky9FdWQxTTYrWFZr
Ni9Db011dnkKQnZFRnhZZkpUMWRXcVlvN3FjWFpLL2c5V0lRMkxpd2xXUlRoYWNkZFc0dlN3aEdW
VkpZSnIySFM2L0RxOEtBd09ueVp4cU5iYmlmWQpPblZ3OHB0N2cwQkJRcUFJS3dRNTk2dUVxS0Z6
UDNlS291Snl4Y29KQm1xWU5XL1hycDBNSHVNWVF2eEF1V0FWQzZzVVdCV0F6NDlNCkk2d0VvSjRv
SHc0VVl4VUdHR0J3am8rNm02RDBRSUZadjM0OXpaczNqMnJXckdtdmFyaDU4UnV6K0EwYU5MQmxZ
WWJTNjF5TVY5cDAKaGJIWFh5bFByVnExSkFzb3JGV3JWazJZWFpSOUlrcFo3Z0tIYlJ0M2V2VWI3
UXBsQm9xVExtRmxyWHIxNm5Ic3VkSFdZWjR4djNxaApYYUJBd2k3OGlCRWo0dXBoZnFTR1FKVHZh
cWNzRElaeEJnMUtJeVlRTUpsUnNXSkZ3c3c4VnIyd21nM1QxSXJ3bktlTFgwYzJWcEoxCjg5ZVJo
N29GOFdFRkg1TkRRUmdGeVFHVyt1VmZSVXYvYUVKajdtOUkyOWFVb0twdE45SE9qY1ZrUldIandp
eXEyV0VEemZrcThmdTIKVk1WZGRQakRjN1hTNi9BdS9xMmlscnlvWk9ua0Z4VVBjTlFwdHhQdk1Q
em1ESWg2ZTVocldBUk9iTDF2L0JqbEdEMXNPYno0OTVYTQpLellQd3pBcjM3VnJWN0VNRW1ZQTVs
VmtmQ3hidG14SjdmbEFYaVlxSDE1bHhtd3dEazU3S1IvZ2gvSUJBalp0MjdiMVZUN0FoNVVWCnA2
eThWajVRcGpwMTZwQlNQdkRiVC9sQWZKUjlJa3BaS0p1VHdyYU5NNjN6dm1IRGhxR1VENlIxS3g4
SXk0MjJEdk9NK2RVTDdZSkIKRmh3ckdzb2ZDTUFBQVZhRjhmd2VkZFJSQktleXYvNzZLMkVsR2F0
ZTd1MVk2ZVRYa2EzRG81RFg1UTNpR3pKa2lCWkdRWEtBcFE1UApyUHozMEtRM2F0SDJkY1dwNjVz
enFIaldIcXJlYmhPMXUyVVJiVmxla29xWGlhMzRxN3E2cjIydlhxeWRYb2RYaHdkbDBPSExOQjdk
CmNqc3gxcW1EazkvY0d3UUtHZ0lacTRBVU5LQk5mUXdDQm9GZ0JJeEgzR0NNTW8wRFo1VTZkT2hB
dzRZTmt4VnJiTFBFaW11UEhqMmsKcUdyYnJDcDNPdmwxWk92d2hDMXJrRXlzOXVwZ0ZDUUhXT3J3
eE1vL2dWWlBLVU8xRGw5UEZoLzlXRGEyUEpXcHZaMldqSXF0cU83WgpXVVJWMC9OYXNma1c3ZlE2
dkRvOEtJZ09YNmJ4NkpiYkNiUk9IWno4NXQ0Z1VOQVFNQXBJaHJTbzhZaWJJUTFoaXBHbkNCaVB1
SGtLCmYxS1pxKzFZdi8zMm02eGFRd2pPZVdFMUJOdXpzSnJycEhUeTY4alc0VkhsMWVVTjRsT3Jv
a0VZQmNrQmxqbzhzZkxIRkl6cUIyMmkKWlgvR3pobldPbXdEcmZpN3JKeXgyTHF5aEtwbWdtdVk5
RHE4T2p3b2lnNWZwdkhvbHRzSnRVNGRuUHptM2lCUXNCQW94bjR3K3FWUwpKUnptVnBTaUtDV20w
RjFoRlF3V21tQzFhY09HRFhMUUhvZUhZZEhLa0VHZ01DRVF0QTJ2TUdFUmRWMmpmRmM3WmNFQVNK
VXFWV1RMCktLelh3Y29hdG52Q3FpQ3Mrc0h3QmM3eUtjSVpuM1R4NjhqR0dUdmQvSFhrb1c1QmZE
akxoYjZOYmJWK0dBWEpBWmI2NVo5SVMzK2YKVHV0bWw2YjZ4NnlsMGxWM3ltSDBrdVYzVTRWRzIy
anVzQ3BFZTJLRFlOVTJ6bXZGWmx0b3gvcmlXdWwxZUNzMjJhb2xMeXBaT3ZsRgp4UU1jZGNydHhE
c01mMWJQeTUxTlkrNE5BdG9JREg0bGM4Zm9HWHNJWFJ2ZEFzQUl5MFZ3TnVna0tDQTRzMkxJSUdB
UU1BaEVnWUNhCk9ZZXNWQThqT21YQmNBQUd4dkJYQk1VRGxnYXpzckprOVdQYnRtMXlEc1JaZmln
bTZlTFhrYTNEbzhxcnl4dkVCOHVFT25VT2tvTXoKTlRvOHNmS3ZwY1dqR3RIb2V4cXhvc0gvZGhl
aFBUdUt5dXBIc1ZLV25BTlI5ZlM2bGl5M2l6bytORThydlE2dkRnL0tvY09YYVR5Ngo1WGJpckZN
SHhXOE9vU3NrekRVc0FwbDhDTjBvSUdGYjAvQWJCQXdDQm9GOGlJQlRhWWhTQVlFc1dPMkRxZWo2
OWV1TEdWNVk1NXM5CmU3YjRwK25ldlhzT3ROTEpyeU5iaDBjVldwYzNpQzhvUGt4K3VySStQKzRB
YW5uZWN0cXlyQ1J0WEpSRkpjcnVwbkoxdDlPcXlXVm8KMlIvN3pMK3J2TjNYMGxWM2FLZlg0ZFho
UVJsMCtES05SN2ZjVG94MTZnQitvNEE0VVRQM1lSQXdDa2dZdEF5dlFjQWdZQkF3Q0VTTwpRRG9W
RUZWWStHUmFzR0NCV09YTHpzNVd3UW12NmVUWGthM0Rvd3F2eXh2RUZ4UWZKcjhnV1lQM3JxSVhL
V3BSZHMwZFlvNTM5N2J3ClJ6L0RwTmZoMWVFQkRqcDhtY2FqVzI3VnpqcjhSZ0Z4b21YdXd5QmdG
SkF3YUJsZWc0QkJ3Q0JnRUlnY2dkeFFRQ0l2dEJHWUVnSksKQVVsSmlFbWM1d2dZQlNUUG15RGZG
aUNURlpEd1V5SDV0aGxNd1EwQ0JnR0RnRUhBSUdBUU1BZ1lCQXdDQm9HOFJzQW9JSG5kQWlaLwpn
NEJCd0NCZ0VEQUlHQVFNQWdZQmcwQWhRc0FvSUlXb3NVMVZEUUlHQVlPQVFjQWdZQkF3Q0JnRURB
SjVqWUJSUVBLNkJVeitCZ0dECmdFSEFJR0FRTUFnWUJBd0NCb0ZDaElCUlFBcFJZNXVxR2dRTUFn
WUJnNEJCd0NCZ0VEQUlHQVR5R2dHamdPUjFDNWo4RFFJR0FZT0EKUWNBZ1lCQXdDQmdFREFLRkNB
R2pnQlNpeGpaVk5RZ1lCQXdDQmdHRFFHNGpVS0hwVmlwZVpuZGN0bGxWZGxLVk5wdmp3cEw5RWFX
cwpvRExrWmw1QlpVa21IcjVqcHY0OW1oYlBuNWtqK2RxVnkyakd2Mk56aE9kV3dMclZLN1N6eXVS
NmFGZWlrRE1hQmFTUWR3QlRmWU9BClFjQWdZQkF3Q0VTTlFNV21XNmo5N1F2b3BNOG5VNCtQcGxK
V3BaMXhXWFIvZHpvZE8yQTZWVyszTVM0OG1SOVJ5Z3JLUHpmekNpcEwKbVBocEU4YlE4L2RlVE9k
MXFrRzNuOStKL3ZOUU5HN3AzWkZ1T2FjalRmcnJsekNpSStIZHVXTTdYWGZhZ2JScTJTSmZlWmxl
RDkvQwptOGc0Qkl3Q0VnZUgrV0VRTUFnWUJBd0NCZ0dEUUtvSXJKOWJtcWE4VTVOS1Y0c3BIdGJ1
SW5FaTE4OHVUZHZYRjZPdEswdkVoU2Z6CkkwcFpRZm5uWmw1QlpRa1QzN0x0WVhUUnpVOVFwYW8x
OXlhTGJ3OEVObWpXaHNwV3FFU1ZxOWNPSXpvUzNsKysvWWpXcmxwR1gzLzQKc3ErOFRLK0hiK0ZO
WkJ3Q2FWVkFsaTlmVGhzMzZzOXVwSk5mUjdZT2owSlBsemVJTHlnK1RINVJ5bEw1ZWwxMTgwRmFI
VjRkbmlobAo2ZVFYRlk5dXVjR25TQ2R2eFd1dUJnR0RRR1loZ0swaFR6NzVaTXFGaWtwT3lnVkpV
Z0FVanEyclN0S1c1VEVGWTQ5TEFmbmxwcWIwCldmZTJ0SEZoVnBJNTdFc1dwYXg5VXIzdmNqTXY3
eElrRjFxa1NCR3FVTG1hS0JreENWWU9RWDFmK1lvRy9icWM2alJvbGlNTy9mR1QKdDFQdjF6a0U3
dzM0ZWxCL3VmdnU0emRvMjlZdGlkZ28xWG9rRkd3aWNoMkI0bEhudUhMbFNucnh4UmVwYU5HaTFM
UnBVeEcvWjg4ZQpLbE9tRFBYcTFTdEhkdW5rMTVHdHc2TUtyY3NieEJjVUh5YS9LR1dwZkwydXV2
a2dyUTZ2RGsrVXNuVHlpNHBIdDl6Z1U2U1R0K0kxClY0T0FRU0J6RWVqYnR5K05HVE9HYnIvOTlw
UUtHWldjbEFvUlFXTEwyanZUdmllbk1QZXFTRTRPL1pBb1pRWGxtcHQ1QlpVbGJIeXgKNG1yWWwz
TUZCTEwyeGNkTEh2UlNYNW8rY1F6MXVpUzFmaDB2TmZZTDI2cDJiTjlHNVN0V29RM3JWdE5QL3h0
SUo1eDFwUmVySGJhdgpuT0hxWVFzd04zbU9nT3FKa1JSazFhcFZkTjU1NTlIQWdRT3BSbzBhTkhy
MGFLcFlzYUxNZ2pkcjFvemVmZmRkdXVpaWkreTgwc212CkkvdWtrMDdTTHErT1BOUXRpQS9LMlRm
ZmZCT0lVWkFjWUtsYmZoMVp6bmF4RzJqdlRaajBPcnhSbGx0SFZtN3k2UFNCVko4RGQvdVkKM3dh
QlRFTUFrMDZZaEVvbldaWWxzNkYrZVd6YnRvMnlzbEtmWVhmbTRWZTNBUU1HMEtPUFBrcEhIMzIw
TTBubys2amt4R2VNR1cvdgp3Vm84WDg1ZlJZcFpWQ3hyRCszYVhDeG5wRWRJMGVKN2FNK3UrUGJu
MXZMZzFBOHFVdHdpYTFmeU1vcVc1REx0aUMrVForNUZHQ2VsCk5Ia3loQTNVdzcxSVVhN2ZudVRy
RjdaVVlmaC8vSHdBRFgzalVUcmcwS1BESk5QbS9YcndTM1RTdWRmUjhzVnpaWlhsZisrL1FNZWYK
ZVVYZzg2MmRRUUpHdkVOQVdGVlJwUE5lVWJ4KzE5MjdkdEgyYlZzb3UyeDVQN1pDSGFmeE5Pcmpj
ODg5OXhCbWJhcFdyVXBISFhVVQpiZG15aFg3OTlWZTY2YWFicUY2OWVqbTJZNldUWDBlMkRvK3F2
UzV2RU4rUUlVTzBNQXFTZzYxdE9qd292eTZmcXF2N0dpYTlEcThPCmoyNjVkV1RsSm85dXVaMFk2
NVRQeVcvdURRS1ppc0FISDN4QTU1NTdMbDE0NFlYVXFWTW51dXFxcTJRMXdLdTg3NzMzSGgxLy9Q
RjAKd2drbjBINzc3VWNubm5naWZmMzExM0dzTzNic29HSERodEdsbDE1SzdkdTNsemprZ1FGK3VY
TGxxRWVQSHJSaVJVN0xPZjM3OXhjZQpQRnRubkhFRzllelprOTU1NTUwNDJUdDM3cFIzOGJISEhp
dmZySGJ0MnRFcnI3eENVREM4S0todWI3enhCbDE4OGNXRUFjeGZmLzFGCmtJYy9yRzRxMHNuVFQ4
N1FvVU9wYytmTzFMeDVjN3Jzc3N1VVdKbmNRejBRM3FKRkN6c2NOeFdiYmFHRGJseEVYZC80ajBk
YUZoMXcKNVdJNmJmaEVPdUt4T1hGOFhqOXFIYmFlMDgyUXcrUnRyMXBNeHcrYVNpM1BXK2JGS21I
TnoxeEJYVjZZU1IwZm1rZGQzNXhCYlM1YgpRa1ZaZVJIYWU4Rjk4ZXpkMVBDNDFkU2wvMHhxMUdO
MUxKNy9oNktEUEErOWZ4NGQ4L0ovVkx6MGJpbnZDUjlOb2JORy9VM0hEcHlXCnczSldJbGxLYVBP
elZ0RC92VGFEMmw2OW1JNThmRFoxZW5vMk5UNTVsWXEycncyUFgwMkhQenlYT2o3QVpYOXJCaDF5
NTN5cXV2OG0KT3g0M2lmS0N3bFhyY0M3M3ZmUG91UGVuU1JySVE3NW4vamFCT2o4L2swcTVEdUVy
d2FoL2x4ZG4waEdQenFFZVE2ZEkrVnBmdkpScQpIN0dlYWh5eWdVcFcyS1ZZRTE1M2NWLytnRmNv
N3J2c1dEcm44S3AwL2VudDZKc1BFL2RsTDBGYk5tK2tuNzhhUlBkZmZoeU4rSEtnCnpmTGQwRGZr
OERvQ1prNzZTMlJEL3ZvMSsvcTF6WnpFRFN4di9UUDZCK3B5NHJsMHd0bFhpVEt3YU80TUdqL3F1
eVNrRVNXcWgxTVkKNnZub2piM291YnY3MEdNM25VRjlyemhCNm43dkpkMW8zbitUaFBXMzc0YlNI
UmQwcHN1UGIwNHYzci92V1J2KzJidUNNOEl2UHlIKwpXVVBDOGFPK2wzU3ZQbkl0RFh6eFhycnU5
SVBvczNlZmRtWXY5emhzLy9HYmo5Tk5aM1dRMzVQSC8wWVBYWHNxbmRlNUZ0M1E2MkRDCmI5RHFG
VXRveU91UDBJMW50SmV5REhqMlRubkhTR1ErL3k5U0JXVENoQW5Vb1VNSCtXQVVLMWFNdW5YclJu
UG56cFdQQkhBcVdiSmsKSEZ6cDVOZVJyY09qQ3F6TEc4UzNlUEZpTFl5QzVBQkxIUjZVWDVkUDFk
VjlEWk5laDFlSFI3ZmNPckp5azBlMzNFNk1kY3JuNURmMwpCb0ZNUXdDRDlrc3V1WVMrK3Vvckdl
aS8vLzc3OU5sbm45SGd3WU5sd0l3dFNZcDI4Y3pnbVdlZVNZOC8vamk5K3VxcjlPMjMzOG83CnFu
TGx5cktxNnh4WVl3THJxYWVlb3JmZmZwdVdMbDFLTjl4d0EvMzAwMCtpVkRScDBrVFM5dW5UUjRt
VzY2QkJnNmhmdjM3MDNYZmYKMFRQUFBFTVl0RU5aV2Jod29jMjNkdTFhK1Q1aHNBNEZCM0ZRZ3E2
NTVwcTRnVDBTNk5ZTjVmam9vNDhrajQ0ZE85S29VYVBrRHhOeQpJTjA4L2VRQXQ1TlBQcGxtenB4
Sml4WXRFcm40RHl1dmp6MzJtSVQvOXg4ckdudXB5YW1yNk9qK3MyaS84NVpUcVlxNzZLQWJGbE9G
CnB0dW9aTG5kVkt2akJzS3NleUtxMFg0RGRYNWhGaTM2dFFMOTlWZ0RHdjkwZlpyNmZrMXFkK05p
VVI3aTAxbWlORFE2Y1RXTnZxY1IKamI2ck1mMTRlWE5lU1NBcVYyOTdIR3Y1aHR1b1plL2xkTWpk
QzZnMnlxQVVGT1pxMEgwTjdYL0ZVbXB5OG1vcVczYzdIY1hLUXNueQp1Mm51TjFWbzNheHNxdEpx
aXloRWxWdkZ6UGY2eVVLbVVITDJ2M3dKL1h4ZE0vcm4rWG8wNnM3R3ZJcFRsTEpyN05oWEpsYktE
cjF2Ckh0VTVhajM5OFVBREduTi9JL3J0MXNhY2RnMHJVZi9aU29oZlh0WGJiYUpXRnl5bkpxZXVw
cXlxTytuZ1d4ZXk4ckNSRnZ4WWlUWXUKS2tWMWp0eEFIZnZOMjVmbjNydFdmWmJTd2Jjc3BELzZO
ZVN5TmFHZnIyOUdOUTdleU1yU0VvSVMwcXpYU3NxdTdpaHJEZ2xFbTlhdgpwWHN2N1VaMUc3YWdC
MTRmUmdOK1drajFtdXhIcno1OExmVjNESnc5a3RwQkMrZE1weS9mZTQ1ZWZ2QksrcHVWZ2QyNzl5
azkvM2RxCkg3cmptVmkvYm5sZ1IzcnlnMUh5Vjc1U3JGL2JRcEs4R1RiMGRUcnFoTE9wZEpteVZM
MTJBK3JRNVNTUjlPWEE1ME5MOUtzSGhHRnkKNEtVSHJtU0Y0Q202cnQ4YmRQTmo3OUhkejM5Q3Ax
OThHejF6NS9rMDRZOFI5dUMrMDNGbjBxRkhuMHhMRnN5aVZjdjNQV3ZkVHJ1SQpMcnpwTVFsZjRq
SmxQUEdQbitpQnEzcHd1cFBvMnI2djBaVjN2MGluWDNRYnZmUDA3YUxncUFyQnl0Z0w5MTFDN3ox
L3R5ZzhINzd5CklBMy83QjA2b3Z2cDFQbjRzMm4ydEgvb01WYVF3UGYwSGVkUnNXTEZSVGxqN1V4
V2lMN2tGYUtDUUpFcUlHb1o2N2ZmZnFPdVhic0sKUGovODhJT3NobUFXcUhidDJuR1lwWk5mUjdZ
T2p5cXdMbThRWDZsU3BVUmtFRVpCY29DbERnOHkwK1ZUZFhWZnc2VFg0ZFhoMFMyMwpqcXpjNU5F
dHR4TmpuZkk1K2MyOVFTRFRFSUNDOE9XWFg5SmJiNzFGNmgxWHJWbzFVVFF3NjQvdHVJcWVmLzU1
K3ZqamorV3NZTU9HCkRTVVlhZDU4ODAxUkFpQURxeU1nZkVld1pSRzBaTWtTT3ZYVVUwWEJ1ZnJx
cTJua3lKSHliaHMrZkRnaEQwVllaY1lXWUZVT1BGLzMKM1hjZllUVkZFVmJxR3pWcVJMMTc5NWF0
WXFWTGw3WVBqbU9sNUpkZmZsR3NvdnpvMUEyVFFpclA0cnpQUGpzN1cvN1U4NjJiWjVDYwpWcTFh
MldWejNuaUZ6LzZpS28zaHdTMm9YSU50dEhweU5nK3VtOUNYSjdlaEgvcTA5TjN5VTcvcldsNjlJ
TnEycG9Ta3gzL3JaOFcyCnMySEE3YVNHeDY4UnBlR3Z4K3JUemszRlkxRzhqV25LTzdWbzk0NGll
My9ITGh2bVpkSGt0MnJUMHQ5emJrMlpONndLL2Z0cWJKd0EKNjFuam42bEg0NTZzVDlOWThmbWhU
d3Rhd21tS2xiVG9vT3RqQTBJL1djaXRmdmUxVXY0OU85VlFwd2puWFl1S2x0aW5lRFU1WlJYVgo3
YnlPeGo3VWdCVGY5blVsYVA2UGxha29iL3VxMmpaV1Y3KzhsdjFabm5GdUlCWE01bkl2SEZtUnhq
N1lrR1orVXAxR3NDS0duVDQxCkQyVmxpK1VweXFxOGs1V2pwYlJxU2hrYjR5M0xTckt5VlZsWVZr
NG9TNlB1YUVMclptYXJKSjdYRDE3dVN6WHFOdUlWaEZoZkxwVlYKbWk2NjVVbmhIZjc1dTFvbWRl
czFia25uWEgwL0hYemtjVG55S01IOXVrVEoyTGdGQStHczB0bnlwL3AxamdRaEFyQnlBd1dreDls
WAoyNmxPN0gyTjNQL3orM0NhUDJ1S0hhNXo0MWNQcE1mS0RsWjBMcmpoRVNwWE1ZWXp3ckcxckd6
NWlyaU5vL3BOdlorMStrMjh3MGQ5Ci83Rk1XRlNzVXNPV0E4dGlvQ25qZjdYRDlqK2tNOTNiL3d0
K3Zvb1J6QS9YNWtQL056M3lMaDF6OHZsMDJaM1BVYnNqajVVVkpteDcKNi9mcU45VHIwanVvKytt
WDBQVVB2aWt5ZmgvK3FTMHJQOThVNDVtaWZxbFU0SUVISHJDVFk1bTdTcFVxMUtaTkcvcjAwMDls
eGdyNwpnREh6TTMzNmREci8vUE5aaytNMzJsNmFPSEZpMnZoMVpFK2VQRms3ZngxNXFGc1FYNlZL
bFdTNVB3aWpJRG5BVXJmOE9yS2M3YUxhClIxM0RwTmZoamJMY09ySnlrMGVuRDZUNkhLaDJNVmVE
UUJnRW5PL3FGRi83NUpTRnc5YllQblhhYWFmbE1EVFNwVXNYV2ZFOTU1eHoKcUVTSkVySXRGOXVt
TUJNSlJjTjVUZ1NEZGlnSjMzLy9QWTBkTzVadXVlVVd1M3BQUFBHRUtCczRHNkVJU2dOV08zRHVE
TnUrMUVvRApWbHR3emc2eWtEL3l3SGNKQ2hFVWt3VUxGc2kzQ0tzVWE5YXNvWC8vL1ZmKzVzMmJS
ei8vL0RQaDNBZ01xS2h0eExwMVE3bG16SmdoCnF5RFlDZ1hsUmxHWVBQM2tJRzdXckZsU2I1eXJS
TDBWd1VyUnd3OC9MRGhCMlFGTjRtMWhSWGlHdjhYWksybjd1dUwwQncrS2VVcEsKem5MZ3R4L0JP
dFh1YlVWcDF1ZlY3SUY1c1ZKN2VQVmlCZTNlV1lUbWZCbWJBY2VndXZPenMybmJxdUkwOFpXNjhT
SlpDY0VXbzFJVgoyUG5kd0Jvc2I5LzN2OWJoRzZoeWk2MjBpQWZyYS8vTHR0T1ZLTHVibXAyK2lt
VEEvK2ErU1V1Y2oxZ3pMWnVhbjdtU3l0YmVRZE1ICjE3RFBkQ1NTaFMxVWRUcHRFSVZqeGZoeWNy
Wmp4NGJpdEgxdGNSbjA0MXhMbCtkbjBjS2ZLOUhDbnlyWlpjRE5jdVpmUFNXYjV2OVEKSmU3c1Nh
SzhrS1oxbitXaWJJeDlvQ0YrQ3UzbWN5ZFEwTElxN2FaNXd5clRqdlV4M0d1MDM4allyS0ZOaTB2
UnZHK3JLSFlxeWZXdgovMy9yYU9lV1lzd2ZDOC9xZWJrZDc3eFpzV1NCek56dnh5c1RtOWF2NGRu
MGYrVnZ4ZUo1OU8vWW4yS0QyL3BOcVUzN28reGt2Ly80Cm1jeTZIOTcxTkdyVTRnQTdIRGZZOWpS
bitnUTY3SmhUcU1sK0I5bHgyQkwxNjdBaFZMdGhjMUYwN0lnVWIzN2pBZnVLcGZQcHRJdHUKdFNY
VnJOdVlmbVdUdkJ2NU1QcnVYVHRsTmNHT2ROeUVyUWNHK2c5Y2ZTTHQyTGFWcnI3dkZWdXBVaUov
L0dLQUhJREhOckJLVldNSwpCRlkvUm40OW1HclhiMFpIbjdUdldkdXpaN2RzaTBMYTN0ZkVualhj
UTVFb2xaVk54NTE1dVMxL3gvYXRoRE10eFV1VUZDVUNmS0RpCnhVdHcrSXQ4K0g0cjNjaktoMUx5
RUxkNDNuODBlZHl2ZEZ5dnkraUFEbDBRSkpTVlhaWStmZWNwV1JFNStmd2JWTER2ZGZBcis4Ym8K
cWI3M2ZUTktJdEwvRFJSUzRJTVBQaWd2ZGl5N1k5WUtIeFFjQU1UcUIxN3ErQUE1S1ozOE9ySjFl
RlI1ZFhtRCtNcVdMYXVGVVpBYwpZS25EZy9McjhxbTZ1cTloMHV2dzZ2RG9sbHRIVm03eTZKYmJp
YkZPK1p6ODV0NGdrRWtJVEpvMGlWYXZYazNZRXVXbTh1WEx5L2tMCkZUNWx5aFRhdkhrek5XN2NX
TDRQS2x4ZHNjSng4ODAzeStRVnpGRkRZZkFqdkU5QjI3ZnYyK2FEN1VnNHk0RXRTZGhlQmVXbGUv
ZnUKZE1BQnNjRVd6bWRnR3hnc00rSzc1Q1JzOXdLMWJObFNybUhxSmduMi91ZWVIUTZUcDU4Y1o1
enUvYTd0UllWMXh5WWUvTE5Db0VzYgo1MmZSaFA0eGhhSk1yZTNVK0JUZUZsVW5obk1KUHNPaHFE
eXZySlNwdVlNV2o4cTVvZ0dlS0E5V2I1aFhtcmF4NHBURjI4bXdSV3Z0CjlIMktpeXFQOHpybnE2
clU3SXlWMVBxaVpWU2J6Mmo4dy9WWjlrZDUyYzRGdm9yc29iMVV4ZDIwaWJkSnVRa0g3aGVOakZk
SzNEeTYKdjNkdGliVkJzUkw3emhkdFhCakxzOXFCRzFsQjRnUHllMWRwMXY1WFdzUTZWNTRTNVRO
ejhsKzBoeFhQck5KbHhJcVVrKy9pVzJOOQp1VzZqV0Y5MnhpVjc3KzdYeWNwUjZiNWkwN3VIOHBh
ckJiT21xaUM1SHRLNWh3ekNmLzdxQTdyZ3hrZXBRZ1RidlJiT25rYnJWaTJuClptM2FwKzFnZU4x
R0xYajE2UW1wdzNKV0FyR3RhdG1pMkZtcnJYekdScGVnYUhoUm1YS3hWWnB0VzJOYkVMMTQ4bE5Z
cEFvSVp2ZHgKZ0E2elkvWHIxNWRacFBYcjE5UHMyYlBwMEVNUGxZUG9UbkRTeWE4alc0ZEhsVmVY
TjRnUEgwSWRqSUxrNEZDL0RnL0tyOHVuNnVxKwpoa212dzZ2RG8xdHVIVm01eWFOYmJpZkdPdVZ6
OHB0N2cwQW1JUUNsQWdTakkwR0Vid0hJdWZMaFRJUHZCbFlSTVpzUDNpQUZ4SmxXCjNSOTAwRUd5
aFFxckxqaGZoY1BaT052eDNIUFB5U1FZVmlsQVdJWEdhcVFmaGFtYlU0NTdvQlltVHo4NXpyamN1
QzlUZXpzZGNOVVMKMWlLSS9uMnR0aWdUalhnMkg2c29pbkEyQXVTMmVxWGk3ZXUrM1VkMlVESTNX
OW12Q0JRUXJPd0UwZG9aMlh3V3BRVWQ4Y2djcXNTcgpMY2U4TkpQK0cxcU54ajliVDFZMUtqVGVL
aUt3RXBMYkJHVnF3L3hTVkw3QmRxclpZU010R1YxQmlsQ20xZzVXS25pbDY5UFlDcE5mCnVSYk5p
L1ZsYlBQQjlwMTBrN3RmcDVMZnJLbC8wM3crOEExTFViOStOeVNIS0d4UGdtbmU3M2lMMWxsWDNK
TWpQbXpBZ3RreEphZHEKRGRjcVhWaEJBZnpMRnMybEQvcmZ4MXhGNkx6ckh1UjNYVEZaUmVFT0c1
QnlYelJXUjRSY2FhTEVmMTl1ZVhjWHFRS0NhdUJzQWc3Kwo0UU9DWldkOFFMQVhOaEdsazE5SHRn
NlBLcnN1YnhCZlVIeVkvS0tVcGZMMXV1cm1nN1E2dkRvOFVjclN5UzhxSHQxeWcwK1JUdDZLCjEx
d05BcG1FQUxaQ2diRDlNb2d3Y1FMQ29XOHZjNWRRVExCcWpsV1N1bldUSHlnY2NjUVJvbnhnZXho
VzQxOSsrV1hDRml0WTJjS0IKZEpCU0x1Ukhndi9DMUMyQkNBbXlJK3h4QUFBZ0FFbEVRVlFPazZl
Zm5OeU1xOUJrSzF0eCtvL21mVmVaL3VhekdLQnNYdWx3VXpFMgpid3NxVTNQZktwU2JKOHJmSmZn
QVBXZ0RyOURvMEtxSlpXbFk3MVp5YnFReEgyN0hGcTR5dklYcmx4dWIwdTY5cTBPVjJGSllYdENJ
Cks1cXpOYks1ZEZqZmVYTGVCU3NsKy9GaGRoeUVYelhKZXhiY1djN3M3RmhmWGhEeXJJUlRSbDdk
WS9Xalo1OWI0cll3T2N2eTVHMjkKWlN2VzE0TmY1a1BpdC9NV3B2Z2RORTVlblhzMWVJZFZxWFRS
dkptVDZlNkxqcUV1UFhyVDVYZkZEdEZqbTV3aGJ3Umk2NExlY1NtRgpZaFlMaC96OGxBOW5CdW5r
MTVHdHc2UEtxOHNieEJjVUh5YS9LR1dwZkwydXV2a2dyUTZ2RGsrVXNuVHlpNHBIdDl6Z1U2U1R0
K0kxClY0TkFKaUFBNjFFZ0RPNmRGcGhVMmFCb3dJUXRDS3NPR0FoZ3l4VE9lYmhwNnRTcG9uekFm
eFJXUTVJaGJBRUd3YW9XenBuOCtPT1AKNG84SzUwSndma0tacWNWaGM1Z3o5eUljV3Nja1dwaTZP
ZVdvd1k0S0M1T25Tb09yVzQ0ekR1VkxKOEZxVTFhbFhUUjFRRTNmYkRiTQpqU2tDRlp0dGpiY3Vs
U09WL2d4d2pxUjdBMkR1TnJ2NlRsb3p2VFR0NGpNU1FkU0FMVm1CY081ajdNTU5hY1RWelduSHht
SnNsV285CmIrSGFSdXYzbHIxMnAvVlVybjc4ZHJ5WWJJdlBiNnlPM2FiaC82MnJTeEFPbTA5NnM1
YXM2T3pjV296Z2FYMys5L3NPU1B0bFc0ZTMKL0lCKzRLMCtNRC9yUmUrL0dPdkxYbkZody96Nll4
aFpNTDM3RzU4cDZYYmF4UW1Ublh6ZTlSSzNkaFh6ZXF5UUpFeVlJS0ptdmNZUwpnek11Y0hib0py
eW5FaEhPZk9qUTgzZjNvUTFyVjlFWmw5NnB3MTdvZWRLbWdCUjZaQTBBQmdHRGdFR2dFQ0FBcFdM
Ly9mZVhBVHZNCnhNSmNyaUlNOEcrNzdUYnhUNEd3Q2hVcTBCVlhYQ0hSeXJxVjRzVlZtZXU5NDQ0
NzdHRC9nVUhPclROUUxIQzRYQkY4aHFBTUlLeUMKNEhmRGhnM2xiQ0syWmpuUGo0QUhCN2xoaVFx
VEFXSHFoclJxcFFNSDQ1MFVKazgvT1lpRGNnYUNNdVVrcGZ3Qkw2d2d1WW4xUG0wcQpscldiS3JX
TXJRcW9MVlpJWEhsdm1OT2FFdzZRcjUrVEpSYXpZRHJXU1RqYlVHcXZId3Y0MEhCU0VUWDZVRmRu
Sk44WDhkQXZvRkRBCk10V2sxL2NkVGtleVJMS2FzTCtQa3VWMzJaSlhqQ3RIMC9nd1BBZ0gyZGZQ
THMzblFVcEwyWTk4Zkk2WTBGWE1LTzlCYkhKNDQ0TDQKbFpaRWVmbmhhNmRSd3ZkZUQ3bHpnV3pE
bXZseGRWNXBxa0lvMzA2YzFkR2tBem9jTGFack1laDk5YUZyNU5DNU0rbEhyejBzaDUvUgpseFg1
UFUvV1hoODRsaFgvWEpYZXU5S3ludk5KUkRNbmo2TWw4K1A3WkNKZXJINjBhbmNrVmF0Vkx4RUx0
V3g3R0RWc3ZyL0VmejdnCjJSeDhZZXZSb0drYmd1bmdYVHQzMEtkdlB4a25EMDREMTYrTitUVnh5
bFZuTHBieVlYUW40WkM0b20xYllzOGFydGhXQmxvNGQ3cUsKWnBPNnNUQWNxTmVsWFh0NWNiNm5J
Rk9DUjc4Z1Y5blV6U0JnRURBSUdBU2lRZ0RHUmw1Ly9YVVp0R01iRmdidHZYcjFJcHpCd0JaYwpH
TXlBZnloRjhQK0IxWEVvQ2xpZFVJUVAvK2VmZjA0NHc0R0Q2SXFjQSt0bHk1YXBZTm5DaFlQcUlD
Z1dpbUNTRjNrNENVb1J0blFkCmR0aGhVaDRjVU1kc0x2eVZISHp3d1hUWFhYZlppaEw4ZDl4OTk5
MlNQR3pkWUprS2hMTW5VS1lnQzc1QmdJRnVua2lmU0E3aVdyZHUKVFRoOFAyZk9ITHIxMWx0cDVN
aVJkUC85OTlNTEw3eGduNW5CQ2c1OGhZREsxWTl0amNKNWprVE84SVRSOFIrc1ZhMmVYRVpDMnJF
VApRNWprYlgwUlk4am1hdmZ3ZUI3YnJlcndQWndHNHBBNXpPVWlITmFyRHI1MUFaKzMyQ0lPRUEr
NWF3RTdFNHdOWnVFYm85NHhhKzFjClNsV01EY2l5RWpqb3E4Qm5TNUN2SXF4WXRPWHpLTmdTdHZp
M2VKT3BpV1JCV1duVloxK2ZnU3o0NmRqQzUwaFdUU3BEMXU0aTlPY2oKOWNXcVY2WG1XNm5Ia0Ns
MDVCT3o2WEErTTNMYUR4TzVUa1hZRWxZTUIxV09SSG1WNDdNY0lDZ2lXVldjZzAyTFlISVhoSzFm
aW5DdwpIM2poZ0h5SGUrWlQyMnNXVTV0TGw3S2p4K1ZVOStpMWRockY3M1hGdGlUNHBBRGh3RFlj
MkExNDdpNTYrNm5ieEduZDFMOUgwWm1YCngvcXlTcSsyYTdrSDFZaFh6Z1hYclY2aDJPVUs2MDZn
dWJ4Nk1HM0NHRFlwTzRwK1lVdFZpcWIrUFZvYzZsMTlTaHNleUNkV1VzQy8KY3VsQyt2S0RGNmhl
NDlqS3FaTGhkVlhXdTdCcU1XYkVGM0VzWWV1UmxWMkd6cjJtbjhpQUpha1g3cjJFZmgvK21hd2V3
U2toRkJNMwpOV2phbXBBTzV6cmVmdXBXK3ZmUGtYeSs0MzZDSDQ2S1Zhb0wrL3Q4M21NeCt3TUJY
NHNERHBXd2Q1Z1hKbm1Ic0JuZFAzNzZVc3p0CnJsZ3lYKzdocUJDMFp1VlMyclFoMXIvWHVMYUZy
ZVU0MElMWnNmTjE4b1AvVzdad2p0eHUyckNPdG03ZXBJTHo3VFZTTTd5Wlp1SXIKMzdhS0tiaEJ3
Q0JnRUlnWUFhZnAzRlRmMVc1Wk9Oc0JjN1YvL1BHSEtBUFRwazJUbFJCWWxYS3VacUJLT09NQlQr
azRaSTVCT1pRSwovR0hsQVFZWllNSWRQQ0E0SXNUcWhYSzZCMlVFeWd0TTdNSmhJYXhMZ1pBZnRt
eGg0QTZmSFhCV2lNRS9UTUJEMGNGNUQyd0RVMmRRCm9DUmhleFVVSUp4SEFlK2ZmLzRwbnN5Vk1p
V0MrYjh3ZGNNS0QrbzFmdng0R2pCZ0FNRUtHSlFwS0R0aDh2U1RBMThqc09nRkMxMm8KSy95Z1FQ
YXp6ejVMcjczMm1qaCt4SXBMMjdadHFRUTlJNHBEVm1VK3RNM1RqZFhZcHdVc1dLMmVYRlpWTCtF
VkR2UXE3N2RaRG05agpGUVJuRWlhK1hKdTNXZTFrYitSYjJDTFdEcHI5UlRYWjNnUlRzaXNtbEJN
bmVyVTZicFNCTlh5RlRCOVVneDM1YmVhVmhpeGFNTHd5CkxSbFZnU28wWmtlRVp5L25yVTB4UHlQ
bEc4VzJQcTJiVTFvc1FaVm1CUUVEODAyTFMvSmg3Q0o4Sm1LWmJKbHFmZkZ5Tm9sYm1aMGkKMXVj
eXg1WnpzRXJqSndzS0V4d0NWanR3a3pnMGhDV3ZpbnkyWmN4OWpXakxpbEpTOXkwclNrcTVVRTdV
Q2VWREdTYThVSmRYUzJyYQorUGpsVmFYTlp2RTJYNGF4QWNIbkNzcGZqUDJOSEhyZmZLclNPcmFh
VklIckNsOGZNSEdNbFE3Z1d1UGdUWXp6RnFwKzBDYUNhZDVhCmgyMWdoNHhycVduUGxXS2RhejNq
a3NnTUwvSnF5QWZRNFhod3dwamhCTy9hVUFiK20vU25iRys2dHQvcnJQeVdCQnRoaGVJOVZrN2cK
WHdNRUozcGJObStncHEzYWliOE5tSW9kK2MxZzhXT3hjTTQwNWloQ0dJRERQR3laY2hYRThkNXNu
dUVmOGNVQXNTTFZzMCtzWDBNVwp0alI5Ly9HYllvSVdUdjJjSm1VUnIraUhUOTltYjkrbkVGWUxG
dktoOEkxc09uaS9BdzluL2xnWkZSL2tmZEMvTDU4QitaQ1V4YWR4CnYzeEQ2MVl2bDFXTVpPdlJm
UDlEUkZHWTlOZEltalZsUFAwNThpc3g5WHNWbStXRkFnZExWVTR6dktoSHcrWUhpR25qUDM3Nkgy
UDMKQStIQS8yVjNQRXZEaHJ3bTVvM2hRNlJSaTdaUzkxcHM4bmpXbEhFMGQ4YS9CS2VJKzdYdHlG
YThIcUhWN01nUWJRSkZCcVoxWVpIcgp2ZWZ2SXBnM0JpMWRNRnY4a2xTc1dwTytZSWVRWDMvNHNx
eG1MVjA0V3l4M3Rkai9VRlorZnViMnU1T2d5R0JMR0JTd0tqWHF5QXFZCndzM3Jtc2xtZUl2d3JG
UGlqVzlldFhHRk9mY0VwaWpLSmRuOE5BZ1lCQXdDQm9Hb0VJanlYZTBuQzl1UE1QQ0hMdzBubjFj
OXNGWHEKNzcvL2x1MU83ZHExa3kxYVhueGh3ckNsQ29OMFdHQ2N4eXNqTld2V3RGY0czSEx3ellL
RnFrMmJOc25LZ2pwMDd1WlR2M1hyaG55aApURUdSY0ZPWVBQM2tRTzdjdVhPcFFZTUd0bFV4Ykhs
VDI4QVFQN2g5ZTF4U0lxeWFiRjliSWs0R3RpY2xPb05SdXRvT1hwMHF3bjVCClltbmdnVDNJNTRo
VE9GWlBqaC9FSmxOWmFmbjJyTmFzRE95Z2t1eEhCTnU4d3BnUmhreGwzaGErUmJEaXNJM1BYUGla
dDBWWlM1YmIKeFFvQ2xKTVFlOWFjRmRDK3QrakFheGZUa2o4cXNHK1FZZ1RIaXlXeTl4QjhyUlF2
dlZ1MnUxVTlZRE45YzJacnFqQXdwbWo3aVVhLwp3b0IyMjVaTlZKOFZCemdrakpwZ1dyWnMrVXFp
a0xobDQ3QjFhVFlmNjNUdzUrYkpsTi9iMlJjSUZEQ1lLRmJLejRYSDFHTkZZVEgxCi8yeENEdjhv
S0RlVUIzaHFWeGI4Y09ZbXUwdzV6eXBoQlVtdGtDZ0dQMzdGazQ3cmlhMzNiWFRLdERHNlVVRFMw
ZUpHcGtIQUlHQVEKeURBRW5NcEFxaCtpS0dWbEdFd0ZxamhSS0NDNURZaGJBY250L0hNcnYvWjgv
cU00bS8vOW8xL0RoRmwyZkhBdWplbmJrQ3E4Tnk0aApqNG1JQm9FZ0JTU2FYSEpmU2lZcklQdFVv
OXpIeGVSb0VEQUlHQVFNQWdZQmc0QkJvRkFoQU9lRHpYdXRaRy92c1cxZ1hwV1hGWnMxCnZJb1V3
bm1rbHh3VFpoRElWQVNNQXBLcExWTkF5NFY5eXhzMmJJaXJIZlovZTVua2pHUFMvQkdscktBc2N6
T3ZvTElrRXc4em5xTkgKajdZUHF6cGw1SFhkVnF5SVB3VHBMSnY3UHBQcjRTNnIrVzBRTUFqNEk2
QU9jSmNvVTNBdEFPSGN5YTV0ZkM3bzBtVjB3TldMcVc2WAp0UVMvS3poejA2elhDanFzMzF3NWtE
N3A5VnIrWUpuWXlCRFl4T2RSUU9yTVNXU0NqYUNFQ0JnRkpDRTBKaUlxQlA3OTkxKzY5dHByCjVZ
QW9Eays2QjVjZE8zWVU2elMvL1BKTHlsbEdLU3VvTUxtWlYxQlp3c1RET3MvRkYxOHMrK0tQUFBK
SVQrVXZMK3VHUGZ3SEhuaWcKZmZBNFVkMHl2UjZKeW0zQ0RRSUdBVzhFS3JmYVRDM09qazArbEtt
NVV3N1FWMm1ULzYzOXVHdTdlVWtwR25GbGMxbzRvaUkxUG5FMQpIZlgwSExiQU5aVzZ2enVkNnJC
UGtrVWpLOUxZaHhyUUx2WUxZaWk5Q1B3NzltZDZoVTBZNDF3SWFNanJqOGdoOHZUbWFxUURnY2c5
Cm9SdFlEUUp1QkZxMWFpVm1MWlhkZjVpMmRCSXN1R0JWQk43QVU2VW9aUVdWSlRmekNpcExtSGlZ
SXNVQllWajlXYjE2dGVkQjRieXMKRzh5V3dtd3F2RmZEU2xJaXl2UjZKQ3EzQ1RjSUdBUVNJTUFX
ZXllelV6NzhLWUtwM0lKSXNFUTJacTgxTXBnWXhsYXJ6V3docTZEVwpOMVBic0ZUcGJEcjZwUFBr
VDVXeGVQRjRvd3NxM0Z5alJjQWNRbzhXenpocDJCcnl6RFBQME8yMzN4NFhIdlpIVkhMQzVoczFQ
N3dCCnc0d216RjdDSnIrVGRyRWpJTGRpNG93UGN4K2xyS0I4Y3pPdm9MS0VqVC83N0xOcHlKQWg0
Z3ZodlBQT3k1RThVZDNTM1IvYnMrVWUKbURHRkoydjBsZXpzN0J4bGN3WWtXdytuak1Kd0grWEJj
YWVzUWV4SHcxQThBcjNIbVVQRDhZaVlYd1lCZzBCZUlPQjhWNmRxZkNUcQo4cHN0V0ZFajZwRFh0
MjlmK3Y3N21OTVpSM0RvMjZqa2hNNDQ0Z1RLZkoyNk9zVkhwWHhBWnBTeW5HWDB1cy9Odkx6eVR5
Vk1sZDM1CmduTEtVL0hPTU55bnN6OWlXOVcyYmR1b2F0V3E0czE2NE1DQjd1eHovRmJsREZ1UEhJ
Sk1nRUhBSUdBUU1BZ1lCQXdDdVlKQTJoV1EKUFh0NFRUWE5wS1BWWVZBVE5mblZEVTZvSG4zMDBa
U3pqRXFPc3lBNmVEbjVuZmVZRlhjZkluZkd1Ky9oTU14TmlRYUticjVFditIcApPQlhTN1F0Kzda
dE0vcnE0WTRVaFV5a2QvZEZaMTVkZWVvbXV1KzQ2dXVTU1N5UVkzcDExY1hQS0NYdVBQTno1dUgr
SGxhbjR3ejR6CktwMjVHZ1FNQWdZQmc0QkJvS0Fpa0RZRkJGNW56ejMzWFBGNDI2bFRKN3JxcXFz
SXM1dGU5TjU3NzlIeHh4OVBKNXh3Z25pbmhVZmQKcjcvK09vNFZBOWxodzRiUnBaZGVTdGlpQVVJ
ZThQZ0t4MHM5ZXZUSWNiZ1pQUDM3OXhlZWUrNjVoODQ0NHd6cTJiT25lTVpGbkNJTQphREdyZSt5
eHg4ck1LeHhpdmZMS0srSVJWUEU0cjBGMWUrT05OK1NRTHdZdzhOUUxlZmhidVhLbExVWW5Uejg1
UTRjT0ZZKzN6WnMzCkY0L0FTakRPV2FBZUNNZVdKeWRObkRpUmJyMzFWdXJTcFl2VTdiNzc3cVBx
MWF2VFdXZWQ1V1R6dk1kS1R1Zk9uZVV3K2IzMzNrc0gKSFhRUVBmMzAwNTY4Q01SQUV1MTUvdm5u
MDFGSEhVWHduSXlCR01pcGdNQngxcUJCZytpNDQ0NGo1MnczZUpFbkRrdDM2OVpOSElXaAp2UHZ2
djc5c3lUbmtrRU55SEo1T0pFc3k1ZjkwK2dKNGc5b1hQSW55U3JhZlFpYnFqK2NBVzRwYXQyNHRm
ZldSUng2aGI3Lzlsa2FNCkdDSG5OY0RuUnpyOXlpODk0aExWemE4L0JzblVpWWZsclI5KytFSGVH
M2hmWUtWcyt2VHA5TjEzMytra3o4R1RxQjVPUnZTOVhyMTYKVVo4K2ZlVDlnRDZMTVBRNVdHd0RK
Zk9zSVozdU13TXYzNDgvL2poMTZOQUJ5ZWkzMzM2alUwODlsV3JWcWtVSDgvWW0vQVl0V2JLRQow
Qi93L3NQemZlZWRkK1pRbW9UUi9HY1FNQWdZQkF3Q0JvRU1SeUQrTkhBRWhjV3M4V1dYWFNZRFJn
eW80SkVXQTI4Y2VuMzc3YmNKCmxvNWdZUWVFUVdidjNyM2xRdy9sb21IRGhnUUxPRWgvMGtrbmli
THg1cHR2Q3UrdnYvNUtUejMxRlAzODg4OXlXUG1HRzI2UWdSS1UKQ25qVHhTQU5nd2hjRldFZzBh
OWZQL2x3b3h4UUNDNjg4RUxaVjY1NDRMRVhTc25sbDE4dVNnanloNUp6elRYWHlENTBsRm1SYnQx
UQpqb29WSzhyQUhuWDkvUFBQUllUeXNxdWJwNStjTTg4OFUrb0JoYUpKa3lhcWlIVFJSUmRSMjda
dFplQmlCL0xOVzIrOVJmZmZmNzhjCjdzV2hjSnhMbVQxN05xMWJ0MDRHU3BoMUwxYXNtRE9KZmYv
VFR6K0pnb2RCRXZJRERSNDhXQWFLR0NSQjBWUUVqREY3amNIYjhPSEQKQlFmZzl2REREOU9zV2JN
VW0xd3h1TVRnRHUwS1Q4U29reUljUk1ZaDVELysrSU1hTldva2JRU0Y2b0lMTGlERWplTTkxbENJ
TURpRApNdUluQ3pKMStvSnUrL3JsbFV3L1JmbHcyQm80VEpzMlRheFRMVml3UU5yeGl5KytvTU1Q
UDF3R28xREFxbFNwQW5aUDB1MVhub24zCkJ2clZ6YTgvK3NuVWpYdjk5ZGRGK1NwYnRpemhEKytB
TDcvOGtwNS8vbmxSekhUbGdNK3ZIb2hIUDRXU2cvNkYvbzN6SmlDOFg0NDUKNWhpNUJ3OG83TE9H
TkxyUERONkhXQ21GNHBXVmxVVVBQdmlnZUxjKy9mVFRwZCtqN2xDUThKeEFpY2ZrQXNyOTVKTlAw
aE5QUENGZQp2bSs4OFVaa2FjZ2dZQkF3Q0JnRURBTDVCb0hJVjBBd1lNZWdBUU5lRFBwQjFhcFZr
NDg0Wm1maGQwQVJQcTRmZi93eHZmamlpNko4CklCeHBvSFRzdDk5K0lnT3JJNkN1WGJ1U3NxS0Vt
VURNRUw3enpqdDA5ZFZYMDhpUkkyVldIUU5lNUtFSUIyeHIxS2hobHdNejd4akUKT2JjRlllVURB
MXdvUXBoeGhaS0FqenNJOHAybVlYWHJWckprU1R0UDdFL0hJVnI4cVpsLzNUeUQ1RUNSOENLdmND
aFYyRDREbWpGagpoc3kyUWpHYU0yZU9ETUlTS1IvZ1J4dEJRUUdXaW1BbENZUUJ0NU13MEVjN3Zm
cnFxNko4SUE2NFlnVks5UWVGUTh1V0xVVXB3dXFICm0zQW8rcUdISHBKZ3REZjZDbFpWYnJ2dE5s
bEpReG9vaStxQXY1OHNDTkhwQzdydDY1ZFhNdjEwK2ZMbE1yakVETGpDdUg3OStySjYKaExMRFZP
NG5uM3dpQ2dsK0p5TGRmcFVvUGNMOTZoYlVILzNrQnNYaHVZVUNndWRaRVNZQlFCaWNUNWt5UlFW
clhmM3FBUUdZSEVGKwpXRkZReWdmQ3NhSmFxVklsM01hUjF6TUZoa1RodXM4TWxHZ29tWGhQWUd0
Z3MyYk41UG5CeXVGenp6MG5LNE13V3cwbDVadHZ2cUU3CjdyaERGSHcxTWZQcHA1L0dsYk9nL0tq
UWRDc1ZkL21CZ0grSUttMDJGNVFxZXRZanIvM3ZlQmJLSXhEZmcwUStoRHpZZllPMmJ0MUsKa3lk
UDl1WEpxOGo4MGg0NitPU0h1dmoxcS94UWZuYzcrTlhIelZzWWYwZXFnR3pac29YdXV1c3VPdTIw
MDJSYmxCTlFXSVA2N0xQUAo3QUVHZUxFNmdROHZQdnBPd2tBVnF5QWd5Rk5Vb1VJRnVjVUExcGtH
QXdhc3NHQkZCUU5xUlZoUndZenkzWGZmTFFOb2hPTURyN1ljCllaWVpBK1V5WmNySXRodHN2Y0Vm
WmtHeGdnRWFOV3FVWE1QVVRSTHMvVThOdGxWWW1EeFZHbHpkY3Z6aUZLKzZLbDRvV2lETW9tTlcK
RlFSclZCaXMrUkZtV0RIUWg5S25xSHo1OG5LcnRxbmdCd2FSVURTd1VxRzJ5U2wrS0RnWVZJUGM1
Y0lXT3E5d05kdVB0c1dXSkVVWQpDRC83N0xQeUU4cm4rdlhyVlpUZDc5eDVCUFdGWk5vM1VibkQ5
bE9ZdzRVeXBXYmNWV1d3OGdHQ0g1VWdTclpmSlpLYnFHNkszNDJ2CkNrLzJpb0UwK2lFbUhoUkJt
VlBiQ0hFV0pCbnlxZ2V3eHZZbDlFbHNEM1dUVWdLOTZ1Z09VNy9WVmNuU2ZXYkFqMGtQMVdldy9k
UkoKV04wRFlWVkdyYURpdDNvZW9Kd1hGS3JZZEF1MXYzMEJuZlQ1Wk9yeDBWVEtxclJ2TWdsMWhJ
K0VZd2RNcCtydE5oYVVLdWVvUjE3NgozOGxSR0k4QUhkODdIc2s4ZzdDbEUvMGRCaWV3UXA2SmxP
bnRFUWF6VEs2TFRyL0s1UEs3MjBHblB1NDBoZkYzOFNncmpjRW8vQW80CnR3UXArUml3WXF1VElz
eG9idDY4bVJvM2J1eHB0UWlEM1p0dnZsbTJER0dHV0EwS1ZIcjNGVnMyUUJoY0tNSjJKSnpsd1BZ
V2JQSEMKbG9YdTNic1RuT0dCY0Q0RFNnc1VFUGZCWkd5SEFhbkJlWmk2U2NLOS83a0hKbUh5OUpQ
ampOTzlWd01ZREhhOExGRWxrb05CSUxBRAp6WnMzVDFhR2xLS0hmZmFLc0xLQ2dURDIwWHVSM3lx
TEY3OWZHQWFxK0hDdFdyVkt0cExoakkwZkJmV0ZaTnZYTDArdk9LOStDZ1VMCmhPMWs2TDlxcFFo
YjZVQkJmUjg4eWZZcnBFMkczUDA2R1JuT05EaWZneTFYVTZkT2RRYkwxai8wSzB3TVlCVUFiWjRx
WVZJQ3Mya1kKM0N0Rk9sV1o3dlM2ejR3N25mdTM2aS91Y0RWQmduZG9RYUgxYzB2VGxIZHFVdU9U
VjB1VjNQNFExczh1VGZDT3ZYVmxpWUpTNVJ6MQp5RXYvT3prSzR4R2c0M3ZISTVsbkVDYkIvdjc3
YjhMa1Q5VHZFODhNa3dqTTlQWUlVNlZNcm90T3Y4cms4cnZiUWFjKzdqU0Y4WGVrCkNvamFKb0VY
U2hEaC9BRW8wVUFZcytVWXNHSUpDN3c2Z3pCM25qZ29qUzFVNTV4ekRrMllNRUgyVDJOYkI3WTJs
Q2hSUXJZaUlRMDYKTnJZOCtGR1l1am5sdUYrc0dFeUJkUEwwaytPTXk0Mzd1WFBueXZZMTFBZjcx
TkUyMkc3bHJCLzIzWU93UXVGSHpqUitmRUZ4V0wyQgpBb0t6RzBFVTFCZVNiZCtnZkhYaW9VemhV
REY4cE9Dd3VWTGc1cytmTHpoZmNjVVZnV0tTN1ZlQmdoTXdSTldHRUk5QkNCUkF2RGV3ClZjNU5X
Q1hGTmcxc21jSUtXNnFrbEJ5M0w1cFU1YnJUNnp3ejdqVHUzM2hQZ2R4NHUzKzcwK1hIMzFBNHRx
NHFTVnVXbDZEeURiYlQKSHBjRHVsOXVha3BGaXJHMU1sZDRmcXhyb2pKLzlkVlhNaW1HUHArSmhI
NkhMZFg0ZnVHZDZWNjFEVk5tYkgzczBxV0xQTmVweUFtVApweGN2eGhpSi9IVmxlbnQ0MVNkUldD
YlhSYWRmWlhMNTNaanIxTWVkcGpEK2puUUxscHBoaDdXbElLcFhyNTZ3d05HWTE4c0hpZ2tPClpZ
SlNHU2djY2NRUm9uemdZRFJrNG1DeldvbFIyelBVNEZNeVMvQmZtTG9sRUNIQllmTDBrNU9iY2Rp
ZmUraWhoOHJzOC92dnZ5OW4KWnJ6eVY2dElHRGpuQnVFQVBVaHQwd25LMDY4dlJOVytRV1ZJRkk5
dGY5Z09oSldhRHovOGtQQ3l4WXcvOE1iU2N4RGx4MzZsNm9UVgpqMXR1dVlYKytlY2Z6ejhZbWdE
aDJYV2U4VkxwdzE3VjREMmQyNWQwbjVtd1pTOE0vQlo3aEJieW1GY295TXFIYXR0TVZUNVUrWEJW
ClpWVFBrak11ekwxYUZVOVZUcGc4M2J3NE8rZm5yMHZWMVowdVAvN085THFvOGlYcUR5byt2MkN2
eXB1b1B2bWxIdWtxWjZRS2lOcS8KRFJPNm1NMTFFeFFOYktVQVlRWUZqWUl0SjJQSGpuV3p5bFlN
YkMvQVZnTjFkaUFIVTBBQUxEV0JNTk9DUS9FLy92aWp5TU5oVGxoawpVZ05YSERaM2JpVnlpc1do
ZGN5UWhLbWJNNzI3NDRYSjAwK09NdzdsU3lmMVlhdGVzR1NHZmZOK3BERENtUVVvbG9uSWpVa2lQ
cjl3CkdCSll2SGl4bUFOV2cyOC8vcUMrb01xdTAzZjk4a2sycm1iTm1uTFlISmJLc0tLRHJUZFFR
ckI2cDBQSjlpc2QyVjQ4VWJRaDVHSXIKRkZZOVlHNDVFVjEvL2ZVU3RYVHBVczhWa2tUcEVvVmoy
eWNJcTZMWU11b21yd2tSeGFQN3JPaytNMHB1WWI4V0xaNVQyN0JvcnlLUwpCK0FVTFptelBPNWlZ
RFhHZlZEZXplUDFPd29sMmt0dVVKaGZ2dzVLbTkvakU5VWRobGt3MFpNS3FZbTNWR1JrU2xwc1NR
L2o1MHRuCjkwRnUxcTBndFVWdTRwWlhlVVdxZ0VDcGdKOEdmS1JodWhJREJrVVk0TU9DRWJhYWdI
QU9RVzB0VWRhdEZDK3V5bWNJckw0b1N2UVMKUWJ6WGd3REZBaVo2RmVIZ09zb0F3bGtHL0c3WXNL
RU1yckUxeTNsK0JEdzRHSWZ0UkppbENWTTNwRldEWW13UmNsS1lQUDNrSUU3dApBM2VidDFYS0gv
RHkyaVB1aDZPenJMaEhlbXlSQWFrdFZyaFhZYzZQNllFSEhpaFdnZEQrc0M3a0pHQ3JCbnR1WlUr
MW5ibzYwK0hlCmE5QUhoUUo1d3pTcGs1UU1kVlZ4UVgwaGJQdENyc3BEWFZWZWZ2aTZlVlVhV0gv
Q3M0RitDTFBHNkNmcVlMTGk4YnVHN1ZlUXBWTk8KZDNrVDlXdG4yV0FpMmQwbm5mSE9lNngrd01x
WFdoRjF4cWw3N0tkVjU3YVU4UUVWaDJ2WWVxQ3RzWTBFZlZKWnZGUHk4QUZXL25xYwpjc004YTJH
ZUdaVnZvcXQ2dnJ5ZWdVUnA4aks4MFltcnFjdUxNNm5MQ3pPcHh5ZFRxUFB6czZqMmtiR1ZTcTl5
TlQ5emhmQjJmR2dlCmRYMXpCclc1YkFrVjVZRzkwTjRMN290bjc2YUd4N0hzL2pPcFVZK2NTaU40
d3VhTk5HNXFmdFlLK3IvWFpsRGJxeGZUa1kvUHBrNVAKeitZektmSHY4RnFIcmFldWI4eVFBL050
cjFwTXh3K2FTaTNQV3hZbkN2MG9hajlHNkF1WXJmZnpWNVdLSDZLNENxVDRROGUzbHpzTApmSk5o
SUFaR1pYRFdDL2M0LytsRnV2TDlmRjhGK1RYQ2R3cmJqTjArcWxSNWRQMUtLWDduVmFjdGsvVS81
TXhIM1FmVlJkZG5rWktICmlXUS9QMjlSbGgxNUJwVS9tYmFBcVhSOFcvRHR3UjljT3pnTjJzRHFK
aWEvWVowUzN6UkZPbTJuZU0wMUFBSCt5S1pFTEI2ZkNmbUQKb045Ly85M2lRYnY4NXBVSGkrM1pX
K3hZemVJdExoYlBvTWZseFZ0b0xMYk1aUEV5bGNVbWRPMDRIdlJZdkEvZTRuMzdGZzhTN0hDMgoy
Vy9ueGNxTkhRNStua0dXT0RZQmJJZXpBenlMRlE3N04yNnV2ZlphaTdkMFdkeWhKWnkzdTFnOG15
dHAyYktNbEpGOVhWaHNMY3ZpCkY3M0ZIeEk3ZlppNjhXRnNrY25tZHdVVFBtQnNJUzlRbUR6OTVQ
RERZdkZNdWVURFcxZ3Mzc1pqOFlxTnhkdk5MRDR6SStFMzNYU1QKeFFxSjVNc1BuSVN4UW1YeGkx
M0NkUDdqaDFUU3NWTTBpMThzRmlzWEZzL3dTcnVoWGRtTXFNWE80a1FVbTB5VmNQUUo5bWh0c2FK
aQo4VXl6eFZ1TExHQ0JjRDVzYkxGWldUdHJ0RFhDZVNiS0RzTU4wcXEraFh3VnpadzVVOXFRVFNl
cklQdWFTSlpPWHdqVHZzZ3dVVjVoCit5bWZGWkI2c2dKaXNmVTNpeTIvV1h6T3htSkhqeFpiaDdK
NGxjQ3VuOTlObUg0Rk9YeklYZkpsYTNRNXhDYXFtMTkvaEJDMkdpY3kKK1NDOXhRUDVISEtkQVpE
RkJpQXNYdUZ3Qm52ZTQ3bFZmWUhOUjhmeEpGTVAzczVseStQVkY4R1p6VEJicDV4eWl2MU1vZDhx
Q3Z1cwpoWGxtZUN1WXhkdERwVHlzNUtzczVjcld0Q1NjUC9aeDRYZ0dnQWR3VnUreU9BYVBId28v
WEZNbHA2eEIvRjRZM0tHZE5YOTRKV3ZkCjNDenJpeFBiV0FqNzhMQ0RyRGxmVithc3lKcjVlVlVK
UTNqc3I1MDE2OHNxMXFvcDJkYlF6bTFqWWUzYldSTmZyU1g4U1BOcDl3TWsKL0t2VFcwdjRqczFG
Slc3TUF3M2laSVhQVzVVaC9qcjZub2JXdG5YRnBOeXFqQ2oveE5kcTJmbjllRVV6YS9jdXNzWS9W
OGNPRzNWUApJeWtYMHF2NjhkWkpTL1VCZk9QWW9wdkZrd3NXSzd3V0c4eXcyNDR0NEhGYXkyTERD
QlpQcHRoOUQzM1JTVHlSWnJISlpvc0h4QllyCm94YWZsN0x3L2tNN29QOHF3bmVVSnlNa3ZIYnQy
dkpzNGQyTC9zNUt2SVN6czFQRm52UVYvUkY1ODBBMFRnWVB6aXplTW1teDhSWUwKN3pVUXowcGJm
TVpTK0J0RGNQb0FBQ0FBU1VSQlZOa2N2SVNwLy9CZWh4elVEV2t3WG1CZlR4WTd5SlZ3SGhqR2Zh
dkN5R2RUMVJiNwpxUkk1YkM3YndqZVNqZHRZZks3SzRza2R3WkJYWHlXZWpkTllQSEVnZnhoUEJM
VUg2bzN4RGVvR1FoclUwZXRkcXVxcXJycHRDWDU4CkE0QVBLMEVxdVZ6SGp4OHY0WWdMb3FDNjhM
bERDMk1DTnJ4amkwSS84MnBmOUQzME41NWd0dXZPWnNJdE51WWh1T0licWlpWnNudjEKcTZEeXA5
SVcrRjZwOFI4cndLcm85aFg5aHBVeiszZVl0a01pci9yWXduTHBCdTJvL25JcFMrMXNnbnR2Z0No
Vk1Wd1ZZZUNvQmdVSQpaM09xRmg4Z1ZkRnhWM2FlSnAwWkx3VFdRQzFlRGJIWWpLL0ZEZ1BsWmFD
WStUQzV4WHZoYlNBeGlPVlZFb3NQcUF1L0tnZnk1UzFXCmtneURDVjdoa0pmYWE2KzlackVETDNu
UjhheUlFaXRYdklSNGh0T1dEWVdJemM1YWZQQTFqZzgvd3RTTmZWbUlURHpjVUFUd2tsSVUKSms4
L09ieE54K0laWGNrSEh4eGVNYkx3a3NaSEQvWG5tU0tMVjJIa1JRWUZTK0hFSmw0dDlxMmhpdU43
aFdLajh1QVZMb3Y5dGtoZApNRmpHdzh2blF5eWU4YlpsUU5GcDBLQ0JuUmNlWXJaQ1p2RTJKNHNQ
SFZyNHVLTGQ4UkpGZVpYQ2l2THpZVUFMZ3oyUVVrQlFGMTRoCmtMWmp5eWtXejBxSVl1bkVNMGlX
YmwvUWFWKy92SkxwcDZnSHovYlplS2syVWxlODNORmZkRWluWDdIRkxQbklLL2wxNnRTeCt2YnQK
SzdqNzFVM2w3OWNmZ1I4RzB5aXpha2VWem5ubExaSENnekx3cW9vRnBkOXJJSTIraXppbFVDdCt2
Q3RTclFjK3VLcnZRVGsrK2VTVApMZlpLTHNvdDhuRy9KM1NmTmRSVDk1bkJCeEQ1cXJiQTRKQ2Rx
VnE4RGNKaTYzMzJlMGtwYXJ5S0tPODNQRWNxRGZvMisrTnh3dXQ1CnIvaHhUWldjc2pEb3hvQWNT
c09JcTV2WmczQ0VRd2xaTnlkTDRuN3Z1MitBUHZyZWhoSTI3THlXY2Z5REQybG43ZHBlUk9JKzdS
WlQKUU5TZ2Z2N3dpaEx1VmtEQzVxM2t1YThMZjZrZ1pYV0cvKy9VMXRha3QydmFaZnp2NDZwU2h0
SDM3YXZMTjJmdEoyRXpQOTJuWkhHQQpUS29CSnlpSmZDWUlRVUtZVk1PQUVuRm9SeWZoL1lad3R3
S0N5UnhNK2pnSmZWVzFBNXNqdDZNd2tGTGhlQmNyd3VBSjcydDgzM2lsClJBVW5kVTAwc01Jemhi
d3hFZVVrRE5UeC9rY2NiM3V5bzVRQ3d1YzlMU2pWaWxBM3ZKZkFqM2Uvb3JEeU1YaUVESHlEMVR1
VXR3ZUwKZ2dHWm1EeERQQ1pjdkNoUmUyRDhnZm80Q1JOOWJQTGZHZVI1SDZZdDhTNUErZHdLQ01Z
bUNNZWZMaVdxeTVWWFhpbHkyRGVTTFFydgpQc2htQjgxMkdHNTQxVWpHYzNnL09RbUtKZmlkU2t3
eVpVL1VyNUJYb3ZLbjBoYVFpd2x5bEowZExlT25UZWlER1BjNEtVemJJWjFmCmZaeHkwM21QdXFt
L2RPYVRqR3o5M3B0QXVxb1lybTdDRENnZVN1ZEEwYzJqZnVQRGl0a2J2REN4TWhJRnFka0p5TU5z
cHQ5TU1zb0kKVFJ1REdzd3VCWkZ1M2VieUxGQ2krb1RKMDA4T3lzcG1jV1ZtVEpYYi9ZSlE0YWxj
dlZaTi9QTEJBNHpaWFVWQk0rS0tUMTJWQWdMRgpDY1JuUGl5MmxoUlhUOFViZEEzVEZ5Qkx0MzJE
OHRXSlJ6K0FJb2ErajM2S0Z6Yyt6RkFlTVhPSkZTMG9jYm9VcGwvcHluVHorZlZICk5rSmc0WG5P
RDRSbkhSOWI1MG9yVmtqeFBuTXJJS28rWVo2MXNNK015aU1kVjc5M2RkajhuTEkrT3VJZ2ErZVdv
dGJ1blNRckljNEIKUE83SFBWT1h4Wk8xWldVSkdjZ1BQclNkdFdscFNXdjkzRkwyd042Wlp2MzhV
c0wvU2RkNEJRUXJKcEF6cHQrK0ZaQ3dlVHZ6Y2Q5UAovN0NheUovOFRrMExpcENLaDRLaDd2OTNX
bXRyeW9BYTFwQk9COXBoV1BGQnVWWk1MR09IY1lBOWdhTGVYd2hUeEpiWTdFR0I4L3VBCjFRcGd5
MXRHRmF1RjV3bEtBMVpRc0xMaS9GTVRaN3hkMk9iSDVBNWtRTmx3RTFiMkVlZGVhWFB6QmYzMkds
aGhCUUdLTXNxS1NUQTMKOGZaSnlSdXJFb3FVQW9KSkRUZGh0UWhseGVRQTNtbkp5TWY0QXpLd29v
TFplemNwQmFSSGp4N3VLUG50MVI2SXdFQVVjckZhN2R3bAprZWlkb1lTSGJVczFpSGV2V3VGN2h2
eTkybGpsNWI0bXFndjZBaVpjbmQ5eXZOOGhINU8raW9BL0pwTXg4ZWdtVERheG43ZTRTZU5rCnl1
N1ZyMVJlaWNxZmJGc291V3JWbnQxSHhJMVZzZFBET1VrYnR1MGczNjgrS3Y5MFg5R082aS9kZVlX
Vm4xWmJmOWpIcVd1M0h3ZkYKNFhnc1NsTCtGTENYbmxkR2ZFWHpnMno3L1BCbDNCdXBXemVjTVVs
RVlmTDBrd1A1dkVvUWw0M2FxeDhYbU9JUGZvbm5rT0NYRDg5Zwp4ZkhyOW9XNFJJNGZ2RUpDK0V1
R3d2UUZ5TmR0MzJUSzRrNkRjeDh3UVl0ekhDQ3Z2Z296MGZ3UlRtaTIyaWt6VEw5eXBndHo3OWNm
Cmt6VWFFU2IvcUhoaC9VeWRMOUdWR2VaWkMvdk02Slloay9ncU5HYXY1YVgzMEtaRkpUMU41QzRh
V1pFT3Zua1JsYTY2azdJcTc2UlMKbGRqM1VrMDJJakdxdkdjMXJEMUZQTU85QXNQbXZXMU5ZaDhp
Yzc2cVNzM09XRW10TDFwR3RROWZULy8wcjB2TC9paFA2MlpsMjFsdgpuSjlGRXpnY1ZLYldkbXA4
eW1vcVd5Zm1lNm9FbjFQUkpSaTl3RHNHWndSaFp0N1BqMUdVUG42VVh4bWNmNHFhWUUyU0I2bEor
ZlpTCkZpK2RaWUxWUWhEZWpUeVpKUVlyd3NwWDFnMHhCb0FWekVTRWQyWVk0c0d3cjQreFJMS2li
TXRFZVlRTmh3RVRIVDlmdWVVcksyejUKazIwTGxRLzZHYjY1ckR5S0dYeU1RM2tnTGVkL1dEbFJi
TG51YTh2T3VBRGZwRlVCS2NDNG1hb1pCQ0pCQU00SFgzMzFWVjlMTERpYwpDVDg0ZmgvUVNBcGpo
QmdFa2tDZ1hOM1lZTlkybit1U3NXVlpTZmJwd1Q2ZmloR1ZaZDdTMVdJZXp2ZnNTandnRkJHWXR3
dWdzSG43CktTQnJaMlRUajVlM29DTWVtVU9WV215bFkxNmFTZjhOclViam42MUgxcTU5QTlReXRi
ZlRBVmN0a1huRmYxK3JUVkNZR2gwUFl5ZjcKZUFLS0xkRXdMdzhGQkJNTGZwVGJQbjc4eXVJWEY3
VnZMejV6S0U1Wm9TeEI4WWhhdnJNdVlSV1FJTDlTVHRuTysweHRTMTd4Q1BUegpwZHdWUUNITUpF
cTJMWngxd0NRZ2J6Y1RuelJRUU9DUEMvMFBCaEVVWldyYnFmTGx4MnZBRnlBL1ZzbVV1YUFnQUJP
dElGNGFMaWhWCnlsRVBERUl3U3dlTGEzQ3l4d2VzQ1Q0a1lIWGpsVmRlSVQ0TFJRODk5QkR4NGNZ
Y2FVMUFlaERndmZJaUdJTWVROEVJYkY1ZVVwaXkKYSt6Z2EwNnR3ZUx4OVo0ZHNVL05saFZzVlhD
dmlkc3lOVk9maFErYmQxQnRWazBzUzhONnQ2TFpYMVJoeFlLbytaa3I2U2kyaEtXbwpRcE90ZE94
NzAybjd1dUkwNXY1R3RIbEpLUlVWK3NwYnJ5U05NcUdkU0lCYVpWWUR3RVI4ZVIydUxObEY1ZHNM
cTlhb095eFJObTNhCjFMYVVGNVg4VlBIeTh5dVZTSFltdHFXdXp5SzFtb1NWZ2t5alpOckNXUWZl
S2lWV1JkbUlrYXkwd1cyRHN0S3ErREt4N1ZUWjh1dlYKS0NENXRlVUtlTG14Vk0ySDNhV1crT0RB
Vmp0Ymx5cHd0Y1oySGo3N1FXejloV0Jha2cwd2lDbHJPQitFVHhLMjJpSStiTlRXaVFJSApRQVpW
aUErT2l4bGtOY01IVTlMd2FXUElINEgxczB2emxnVml4Y0tpS20xeUttMFZHbStUTFZvN05oWWpy
SVpzbUJ0ek1GdXgyVmFLCktTMko1QWV2S0lUTk8xRk9DRzl3WEV6eDNMR2hPSTE5dUNHTnVMbzVv
Y3gxamx6UEt6ZmJKR25IZnZNb2k3ZVFUUjFRMDA5VVlGd1kKUDBaS1FkSHhWeFdZY1JvWllONGFL
d2xZc1lqQ3R4ZTIvR0NGNkpCRERoSEhoMUhMZDBJUmRnVWt5SytVVTdielB0bTJUS2NaYmwyZgpS
ZGcyQ0Fyckt5dWRaVWQ1a20wTHBGWEU1NHdJT1BEWkplS0Q5TVFHRVVodEFWUTh5YmFkU20rdU9S
RXdDa2hPVEV4SUJpQ0E3VVp3CnlzZG0vZVFQNXlQNGNHTUdsQ3o2SXNBV09Wc2drWDNPZVBGaHF3
RmJPU0UreEVjOWUvYVVqM3IwdVJxSmJnVHdFZUxEc0hhZnc0b1UKbSt4MHM1bmZMZ1IyYmlwR3N6
NnRLcUZOVHM3cG82UHFBVEdsWk9wN3NVSDcydit5YWYyY0xObVMxZnJpcFhIU2lwYllRNlVxN0pJ
dworUDV3VWhIMXRWSlhqZ3lidDFPZSs3NEorL3NvV1Q2V04rSldqQ3RIMHdiV0VMYXl0WGRRc2F6
ZFZLbGxiUHRKK1lZeGhRU1JsZmVHCkZTbWVjL1VIOFY0RHNEQitqTUw2K01IKzlVVGt0OTJMTGZq
RitUdElKQVBoWG5uZ25JV2FOZGIxN2VXWEJ4d0hRekZnYzY3Q2xvcDgKci9KQ3FKclZocUxqUlFv
dmRWVThRWDZsRkovN0dyWXR3L2dmY3VmbC9xM3FvSzZJeHlvdkczc1IxaUEvWDFBQWRmMjhRV0F5
WlUvVQpUcENueXEydUNBTWwyeGF4MVB2K2h5OHU5RGY0bXNMT0F6ZUZiVHVrOTZzUDRzTThjK0F2
YU9SNGxSZTBxcG42NUdjRXNQOFNxd0RPCnYvYnQyK2ZuS21tVkhWc040S203b0NwYldpRGtFUk9i
azQ3cmIraDdhdFl2ajRxVWI3S2Q4RkpkMnJTNHBEanRxOW5CdVdYU29ycGQKMXRLYTZhVnArZ2N4
SXhZNE16SCttWHEwaDhmNnpVNWZSUWZmdW9EUFhHeWhpczIyMENGM0xaRFZFbFQ4NEZzWFVyMWox
dG9ZbEtvWQpPenVTVlNsMlZSRmg4bFpwdks1RldZRm8xU2Zlb1dBV0g1emZzcndFclpwVWhuWnZL
MGFySjVlUnBPMXVYRVQxdTY3bEErdExxVzduCmRWSVhiQ21ydy9kd1ZPZ2tET3crL3Zoak93aE9P
dGxmRTdFZkQySVRvblk0YnRqNm52eG0zd3AyT0pSZ05za3NneU8yZ0NWNzA5bjYKa3UzWUZ3ZGwy
ZnlyemMrV24rUWVneCsxalJVQitLMGMrK0ZjbVpQWWdoR3hTV0JaYldDVDljNG96M3UxSGN6dGNK
Uk5tWXBCRkF3SwpvVUFvUXQ3WVhvcjkramZmZkxNS0puWDRIQ3ZlYkVuSkRzZXFOODdHWWVzcEpt
Z1VoWldQQ1IwUXpqZzRNVlh5MkNxWTNMTDFRWEYrCkRDdy8rdWdqRmUzWkhvakVURG5LNGlRNFhz
YVdXbWQ1bmZHNEQ5dVdiRUdOc1ByTmx2ZUl6WkVUbTF1V2lia1hYbmhCemdWQ0p2cVMKcWlkK0p5
S3Z2c1ZXeXdqdlBSRGtvNTlpdHdHMkl1RWJ4SmFmNUI2T0N2R2IzU25JbGpoc3c0SkN3cVp4Nlp4
enpwR3lvRzV3MnFjbwptYkluNmxlUTZWVitoQ2ZiRmtqckpQU0ZidDI2eVpabzlrWGpqSkw3c0cy
SFJINzFDZnZNNVNoUVFRamdGME5LeEJoZ3VrWCtVaEprCkVoc0VEQUlHQVlOQTJoQlE3MmxjVXlX
bkxHV2lGZzRGNS8xUXlkcStzWmcxYlhCMTYvZStEYXdGSXlwYXM3K3FZc0ZjcnVKVDErRlgKTkxj
MkxTbkpSWkd4c2JWdWRwYjEwN1ZOeFJmSHNyL0tXdkQzQVpuZm5ydWZOZVhkR3RhdUhUSC9JSnRY
bExER1AxdlhHbkxVUGxPNApZZk5XWlhCZUYvNWN3ZHE0dUtRMS84ZUsxdGhINmxzelBxNW1MUnRY
MW5LYTRSMStlWE5yN2N5WVg1TzFNMHRiZnoxWmordlZ6cHI1CldWVTI0VW5XeWtsbHJDOVBpZmtP
VUdiRWVadGx5bjZNMEY0NlBuNlM4VU1FMmZDcHhRTXMrWTZ6NG8wZ1QySkZJYUVQSVpWQTE3Y1gK
K0dIQ0Z1Wk9lVEFyUHJ2Z0Q0bFhmYTFPblRyWnptMlZYSFhWbFE5SGVEQ0JyUHBxSXQ5WFhuNk5n
dndoNmZxVlVtVjJYM1hhVXFVSgo0MzlJcFhGZWcrcWk2N05JeVVTL2hyODFoYXVmbnpmZHN2djFx
NkR5cDlvV3FsNjQvdTkvLzdONDljTVpsT05lcCszODZxTUU2ajV6CmlqL1pxMm9uWERPTnhGQTRG
eXhwY3U2ZDVNb2xMY2NrTkFnWUJBd0NCb0gwSVJEbHU5b3Bpd2Z4Y1lYR05pWnNTOXJES3gxcnAy
ZkwKTnFrNEJ0ZVAwdFYyOEpleENHMWJGZHZ1VnFyaUxqbms3V0xUK2hrMmI2ZFFiUC9hczdNb2xT
aTdXMHpzYmx0ZGdoSlp6U3JGcXpEYgoxOFp2ejhPV3NWMWIyTlFYVTI4Mkl2SFBQLytJZVYzTUJP
T2dML3RFSWhnNFlKOCtTVnUwd3pjVzFuZzJiZHBFa0tzT0JqdnJrZXc5CnlvYVpiUmpFZ0JXZ1ZB
bnlzTDJIblFBS0R0aEM1VWM0ZTRXWmZxd0FZenRrRUlXVjd5Y1BLMEt3ZUJSVVJpVUQ1MXh3U0I2
ck5raGIKczJaTmUwVkM4UVJkdzdZbFZuSFl3YS9kZDloeHE3MkZMQ2d2blhpc0VMbk5odnZsZ1cx
cnJBeUtnUURuKzhBcnIzU1dQWXEyVUdWRwptNkJOMWZZeEZlNitobTA3ZDNyMU8rcG5Uc2wxWHAx
dGczSm5FaGtGSkpOYXc1VEZJR0FRTUFpa0NZRW9QMFJPV1c0RkpFM0Z6MWRpCnZSU1EvRkFCbkh2
Q0ZpTDMxckQ4VUhaVFJvTkFma1FnM2MrYzgxMmRhUXFJT1FPU0gzdXNLYk5Cd0NCZ0VEQUlHQVFp
UkFBckg5Z0gKYjVTUENFRTFvZ3dDUGdnVTltZXVZSm9WOG1sd0UyVVFNQWdZQkF3Q0JvRjBJNkFP
Z09jWFAwWm5uSEVHS1ZPajZjYkd5RGNJR0FTSQpDdnN6WjFaQXpGTmdFREFJR0FRTUFnYUJDQkdB
VmFmODVzZklLQjhSZGdBanlpQ2dnVUJoZitiTUdSQ05UbUpZREFJR0FZTkFma2NnCnlyM0FUbG5t
REVqT250R0N6WlhDMmFDVFlNYXpNSmdTZDliWjNCc0VEQUo1aTREelhaMXBaMERNRnF5ODdSc21k
NE9BUWNBZ1lCQW8KWUFqQWo1RWhnNEJCd0NCZ0VFaU1nTm1DbFJnYkUyTVFNQWdZQkF3Q0JnR0Rn
RUhBSUdBUU1BaEVqSUJSUUNJRzFJZ3pDQmdFREFLRgpHUUdyWkRHeVNvVDd0T2lraVlvbnFHMTA4
b0VNWFQ3d2J0MjZsZUN2SUloMCtIUjRuUG1FNVhlbU5mY0dBWU9BUVNCZENKZ3RXT2xDCjFzZzFD
QmdFREFLRkNBR3JlRkhhVXltTGRyYXRRVVUyNzZSaVN6WlNzWVVicU1pZXhNNnZkTkpFeFJQVUZE
cjVRSVl1SDNoeERtVDUKOHVVMGN1UkljWExYcEVrVGF0bXlwVGpuUTd3aUhUNGRIaVVQMTdEOHpy
VG0zaUJnRURBSXBCc0JvNENrRzJFajN5QmdFREFJRkJJRQp0aC9WUUZZR2lwYlpTYnRybHFYU3JJ
QUVrVTZhcUhpaUtBdGs2SlJINWZYeHh4L1R0bTNiYU4yNmRRU1AwSWtzMytqdzZmQ29mSEVOCnkr
OU1hKzROQWdZQmcwQTZFUWkzVHA3T2toalpCZ0dEZ0VIQUlKQ3ZFZGhkdXh3UnI0UllwVXVRM0d2
VVJpZE5WRHhCeGRISkJ6SjAKK2NBN2UvWnNXWTNZdEdtVDNDUE1pM1Q0ZEhpY3NzUHlPOU9hZTRP
QVFjQWdrRTRFakJuZWRLSnJaQnNFREFJR2dReEJJRXB6akU1Wgp5Z3l2bFZXY2R0Y3BSN3ZxVitB
dFdEdW82TVlkVlB5LzFWUmt0ODhXTEkwME9uSjFlSUthUVZlR0RsL3ZjZU1rdTgyYk45UE1tVE5w
CjJyUnBzZ1dyVXFWS1lvb1hKbm1kcE1Pbnd4TldwcFBmM0JzRURBSUZEd0hudTlxWTRTMTQ3V3Rx
WkJBd0NCZ0VDajBDUmJidG91S3oKMTVKVnBBakovYUxnN1ZjNmFhTGlDV29nblh3Z1E1Y1B2R1hL
bEtFRER6eVE5dXpaSS9lSnRsL3A4T253SUU5RllmbFZPbk0xQ0JnRQpEQUs1Z1lCWkFja05sRTBl
QmdHRGdFRWdqeEdJY2liTUtVdXRnT1J4OVRJcWU3VUNrbEdGTW9VeENCZ0VDaDBDem5kMXBxMkFt
RE1nCmhhNDdtZ29iQkF3Q0JnR0RnRUhBSUdBUU1BZ1lCUElPQWFPQTVCMzJKbWVEZ0VIQUlHQVFN
QWdZQkF3Q0JnR0RRS0ZEd0NnZ2hhN0oKVFlVTkFnWUJnNEJCd0NCZ0VEQUlHQVFNQW5tSGdGRkE4
ZzU3azdOQndDQmdFREFJR0FRTUFnWUJnNEJCb05BaFlCU1FRdGZrcHNJRwpBWU9BUWNBZ1lCQXdD
QmdFREFJR2dieER3RmpCeWp2c1RjNEdBWU9BUVNEWEVJalNHa3FVc25JTkFKT1JRY0FnWUJBb1pB
aGs4cnZhCnJJQVVzczVvcW1zUU1BZ1lCQXdDQmdHRGdFSEFJR0FReUVzRWpBS1NsK2lidkEwQ0Jn
R0RnRUhBSUdBUU1BZ1lCQXdDaFF5QmpGZEEKSmsyYVJCczJ4SHZVWGJac0dZMGRPN1pBTjFWK3Fl
UHUzYnRwOU9qUk5IUG16SlRiWSt2V3JUUjU4dVNVNWFSRFFINXBENTI2NTRlNgorUFdyL0ZCK2R6
djQxY2ZOYTM0YkJBd0NCZ0dEZ0VHZ29DT1FrUXJJdi8vK1M5ZGVleTAxYTlhTURqamdBRnF4WWtW
Y08zVHMySkVPCk8rd3crdVdYWCtMQ0M5S1BUSy9qbURGajZPS0xMNllhTldyUWtVY2VtWkpDK01Z
YmI5Q0pKNTVJVmF0V3BZY2ZmamdqbXpIVDJ5TU0KYUpsY0Y1MStsY25sZDdlRFRuM2NhY3h2ZzRC
QndDQmdFREFJRkhRRU1sSUJhZFdxRmQxOTk5MjBaTWtTd2I5NDhlSng3ZENtVFJ1cQpYTGt5MWE1
ZE95NjhJUDNJOURwQ0FYemlpU2VvWnMyYUFydnpvRlBZZHVqVnF4ZlZyVnVYdG16WlFxbklDWnR2
R1A1TWI0K0NVaGVkCmZwV2Yya0tuUG1IYXp2QjZJNUJiSzB6NWNmWE5HN0dDR2VxMVl5SnNUWE9y
TDRVdGwrRTNDQlEwQkRKU0FZSENBZVVDZzFLUVd3SDUKNnF1dmFQbnk1YkpDVXRBYVJOVW4wK3NJ
UmFGYXRXcUV3U0RJc2l4VjlOQlhLSk5kdW5TUmRLbklDWjJ4S3dFK1BFOCsrYVFyTlBZegowOXZE
czlBSkFqTzVManI5S3BQTDc0WmNwejd1Tk9hM1BnSzV2Y0tVbjFiZjlGSE0zNXhCT3laMGE1ZmJm
VW0zWEliUElGQlFFY2hJCkJVU0JYYlJvckhqcXFzSnhkU3NsenJpQ2NwOGY2cWpLbU9yS1JiRml4
YVRaVXBXVFN0djM3ZHVYdnYvKys0UWlWRjBUTXVTamlFeXYKaXlwZm92Nmc0dk1MNUtxOGllcVRY
K3FSYWVYTTdSV20vTFQ2bG1sdGxhN3lCTzJZME0wM3QvdVNicmtNbjBHZ29DS1FjUXJJamgwNwpj
bUNkbHgvdGJkdTI1U2lQTzJEWHJsMDVEc3E3ZWJ4Kzc5eTUweXM0N1dGNXVjcVE5c29GWkpDbzdn
TUdES0JISDMwMElMVi90RTVmCjhaZVFPYkZoKy9TZVBYc3lwL0Jja29MVUZoa0ZiSVlWQnQrR3FG
WmlkYXFXbjFiZmRPcFRFSGlnM1B2dG1OQ3RZMjczSmQxeUdUNkQKUUVGRklHMEt5SHZ2dlVmSEgz
ODhuWERDQ2JUZmZ2dkpJZU92di80NklZNHZ2ZlNTOEo1Ly92bDAxRkZIMFFNUFBFQVlCSUdjQ3Nq
RwpqUnRwMEtCQmROeHh4OUhBZ1FNOTVZWE4yMHRJLy83OTZlaWpqNlo3N3JtSHpqampET3Jac3ll
OTg4NDdjYXlZTGUvY3ViTWNtTC8zCjNudnBvSU1Pb3FlZmZqcU9CM1VBSHc1c2QrdldqVFp0MmtU
MzNYY2Y3Yi8vL3BTZG5VMkhISEpJamdQY1FYV0U0b0xaK21PUFBWWU8KYnJkcjE0NWVlZVVWY2c0
Q29jZ05HemFNTHIzMFVtcmZ2cjJVNllNUFBwQTZsU3RYam5yMDZKSGpjSDljd1NQNmtVeGJ6SnMz
ajg0Ngo2eXlxVkttUzFBLzMySExuUmJyeUowNmNTTGZlZXF0czlRSk9hSVBxMWF0TFBqZ0VqL2FC
Y3ZMWFgzOFI4TVRmeXBVckpjdWc5dERwCksxNWxSNWhPV3c0ZE9sVDZXZlBtemVteXl5NnpSYjM3
N3J2U0J4RGVva1VMTzl6dkpxZ3VPbjNhS1I5OTZ0eHp6NlVMTDd5UU9uWHEKUkZkZGRSVmhLNE9p
S01zT21VSGxUNll0ZnZycEp6RnFVYTllUGNMZkRUZmNRT3ZYcjFkVklMeWI2dGV2VHgwNmRLQng0
OGJaNFRwdApaek9ibTdRaWtKc3JUQ3F2dEZiSUNBK05nTm9wb2E2aEJleE5vTnJYT2U1SVZwWkpa
eEF3Q1BnZ3dJT3VsSWhGWS9PLy9FRVFmNVF0CkhyQmJMVnUydE9iT25TdXllVGJTWXNWQ2VIaEFM
R0hxUHg0TVdoZGRkSkhGZzJScjdkcTFFc3g3OFMxV1FHeTVTNWN1bGZCcDA2WkoKZU5teVpTWHU3
YmZmVm1Ma0dqYnZ1TVNPSHp5b3N2aGNnb1Z5ZzFCR2xMOWZ2MzQyMTRnUkl5emVObVE5OWRSVGRo
Z3JSbEl1cEZmMAovdnZ2Vzd5MEsrR05Hald5dW5idGFsMXp6VFVXbnpXd2VKQXI0YVZLbGJMKy9Q
TlBTUkpVeHpWcjFsaXM5RmpJQ3pqeHdXMnJkKy9lCklvY0gwU3BiYS9qdzRSWXJVQkxPczBQVzlk
ZGZMemkvL1BMTEZsc1drM0JXRUczK1pHOTQ4Q215bkhXR3JMQnR3UU5Wa1lPNm9lK2MKZnZycDFn
VVhYR0N4a2lEaFBEQzBXQW14aXhsRy9wdHZ2bW5WcWxWTDVQQnl2WFhMTGJkWXA1NTZxbFdpUkFt
clFvVUtndUdRSVVNawp2bnYzN3RibXpadmxEKzBlMUI0NmZjVXV0T3RHdHkyUmpCVmJLUjhyM25G
U3hvOGZMK0Y0Qm9Nb3FDNjZmUnI1b08raHY1MTU1cG4yCmM4TFc2cXp5NWNzTHJyLy8vcnRkbkdU
Szd0V3Znc3FmU2x1TUdqWEs0Z0dIWU1rS3NGMTJkWU4rdzhxWittbUZhVHNrOHFxUExTeVgKYnRS
N1dxZXZCQlhKVHhhYjB3NUtMdkhvUTFGUmxQaml1VStGZE91UGZOeDV1WCtuVW80bzA2YWpYRkcw
Ly9idDIrMXE0cnZ4LysyZApDN1J0MWZ6SFp5VGxlcFM2bE5EVkxTUVVHb01Lb1dGNFZ1UlZYa1dJ
M0JpaEY4TmJNaWcxdkNyeXBnWTlTQXBwNkRhSXJzZVY2TjN0Cm5VUVJ5cHYxLzMxLy8zNXJyTDNP
M21ldnVmZGE1K3l6ejJlT2NjNWFhNjY1Zm5QT3o1eDdyZm1iajk5VXZUVGpOYVhmS0NkdDFpWEYK
M3dXN1VmTEZNNHVUd0d6djZ2a21NcnpWTWlTRjljeXBRUzYvczg0NnErZEpOZVp0Sk1UdjJYU1g4
cDRhNkFwdlBjK2xuMDVzNUtCUQp3MXozelBKSXp6MnptdVQrZFFVa04rNGVvWldMWFhiWnhkTmE4
U291di96eXdpeHpsVjZ2Zi8zclBRMDJDbFA2V1MrNys3M3VkYThyCi9YUWlaVUQ1VUg1c240dnlu
bDZlYWxEcW5pM0NMdjExTWlpUCsrKy9mN0gzM252M2hMM2hoaHRjaHVTc1hMbXl2S2VHbFB6MFo3
MjgKcGI4YVQycHNXVTlQWVNNbHBmOG9KNE5lMXJsbEVRckl1dXV1VzlpZUltVlNsTGROTjkzVTg3
RGZmdnVWL3JueTFYZ1VCeW1OVWpiawpyci8rZWxjd2RQN05iMzdUNzl1SW5TNW51RUhsMGFTdXpC
QjJwMGRPV1o1NTVwbWV2cm9Db3NaT2xQR2dlT3IrZy9LU1U2ZHQxS2pZCmNNTU5DOXVqcDBlOE9o
aVVIcFZQdUZIU1BxaGVTZWFnOUk5VEZwSzd4eDU3ZU5vLzlLRVA2YkowcW9NMjk3Kzgxa2xPMlNu
OGJQblIKL2Jsd1VVOTBITmYxay9XeGozM00zMk52ZWN0YnZJeWs1TmZmMFlwWDczeDFtcno4NVM4
dnpJUjNvWHBYVlZnamJYbzN2ZXRkN3lyVQpLYUM2WmlQTWhUcFEralZjWitQYlZNNEZGMXpnblJN
MkF1OXgyS2gyWWRPN1hNbFdtbFRYcGVUYXlITmhJNitSelBMWU5QK1NFUjBzCk9xb2pTSDdxbk5J
M1JFN3ZLS1hEVE5FWDFVNDdHNFYzSHZLM2tjOHk3amhwbXRjSVh6M3FlNlRmNmo3NzdGTTg3bkdQ
ODFzcUszMmIKbGl4WlV1amRXTzBFaW1kejQyeGEvaUcvMzlGR09wMmJPa0JzNU5VN0I3ZllZZ3Yv
L1VhSFpmVTV0VG4wN2hScktTbzJBNkN3NlhUVgpJT1g1YkhWSmdacktHbGFmeWdnNWdVQ0hCUHE5
cXp1TUxrdjAyRitpYXViVWM2d1hsUnEyNnFHdXU0OSs5S1ArZ2xCdnRKeGVYRGExCm9iRHBJL1dn
ZnEyWHJPVFhYM29hTVpHL1hzYmhjdU9PNS9vZDFiaVEvRU1QUGRRVm9RZ1RId2RkWDNycHBjVkJC
eDNVMHdDNzJrWjgKOUp4WlNvbEgvTGg2OVdyMzMzcnJyWHY4ZFhIeHhSZjdQVDEzMjIyM2xmZjc1
ZkhhYTY5MXRocEIwVXU4K3JmKyt1dTdITnRIbzVTaApFU1hKbGJKUmQ4RlcrUmpIOVh0WmoxSVdv
WUNvVVZKM0dpMVNQbXpLbXZjbWpTSmZDcVJrYUVTbFh3TW1GQkI5bVBxNWZ1V2hjRTNxClNqOTV1
V1VaamZqNnFKVVUrMEZsM0M5ZStRM0tTOU02TGY1cUVOcDBzQmxSMk5TbDR0UlRUL1VScExnNVN0
cjcxYXVRTnlqOW81WkYKeU5Vb2lGZ3VYNzY4cDlmeXNNTU9LNDQrK3VnSVZ1U1duUjZjTFQrbDRJ
NVBsTGY0R3plcWtLT2pYSlBSSi8zdW1vNmF0VFhDMUZUTwpzRkZTZFJ4cFZIN1E2SHVUL0tzbmZO
OTk5eTIyMldhYjR0WmJieTJMUUoxRHdWT04xbkM1STRkTjh4cnk2OGRSUnMxejRzd3AvM3JhCjRs
b005ZnR2TW1OQ3orU01sRWNjZzM2ck9iS0cxU2Qxc09JZ01CY0U0dDBTNytxNWlMTnBISzJ1QWJu
b29vdVNOVTU4dm5UTW83Uk0KbDg1NnhQemNlaWg4VHY5bGwxMldycnZ1dW1RZi9ESk05U1FzSTFY
OUJwM254ajFJanZ6dEJaY1U5K0dISCs3ckoydzB4NE5yVThSdwptbk92ZlRDMG5rSnJGcXluTG1r
ZGlKem1xVGQxV2grakRmamsxcXhaTSt0aldwK2dOU1dtNVBraVcydDhsa2ZyY1U3MjB2TzFBck1L
CnVmT21mVWo5ekhxOW1nVFBDak5PV2RnSXlJeTRkdHh4Ui9mVFBpSFdHNTFHa2IvZWV1dTVESnR5
bFdhYkk1dzc3N2RKWFptUklmTm8Kc3l6N3lSL0ZkclY0L3dBQUlBQkpSRUZVcjJtZGxxMTlhMEQx
L2QzYUZDeGZMNlgxVFhQdFJpMkxTS2ZxbVRVTy9YZG8wOUhjMjE2awp2dWJNcGdOR3NJa3N1ekp4
ODNSaVBmYStLYW1OOG5vSzlEdlNPaXZyWkNwVFpLTWg2YlRUVGt2SEgzOThpbkJhUUc2OTJMNFc2
cnp6CnppdkRhbzJiVFZsTk5sTGl2MWY5ZnNORXR0YmlOZDJFdHFrY3JaV3pubTJQWDk4bHJmZjV4
amUra2E2NjZxcDAvdm5uSitzODhuZTgKOWFLWGFheWVOTW0vMWl3ZWQ5eHh5UlJhMzhjcW50ZGFR
NjEzcXp0WmQrcm5CdmszeldzL21mS3pFWmlrZFdWeTJvTkwzMnV4dHBIbgpaQ1BydmhiVGxCUXZL
dzlrLzNMaXpDbi9rRjgvYXYybjBuak1NY2NrNjNUejIzcWZhNjFtMUtucU85dzZEdEpKSjUyVWJI
UXFMVnUyCnpNTXJuTDZWK3ZhcUxtb2RZUk9YSTJ0WWZjcHAyelJKRzJFZ3NCQUo5Tzd3TjJZT29n
RTlxSUduaFp6NjRWbFBpSC9rWTZQQmRkWloKWjlhWXF5K1VRUUZ6NDlZTzNvT2NGcFByQTdmbm5u
c202NUh5aGI0MjZwQ09PdXFvWk9zR3lzZHN4TU0vc2tyZis5NzNQcytiWHBCTgowbHNLc1JQdGQz
TExMYmYwTENLdjNvOXpmUmpsWkFwU2kvVW4xYlZaRnNxalRRZndqNHVVSlNtNGJjdXZjc3d0dTZa
MXBScUh6aWUxCkxKdlVhU21BY2xJSUo4bU5XaGJWUE9oM2JsTW92YUdvQnBrVUVkVy9hZ054VXN1
dW1vKzVQbGZqVGhhaXRJSHMrOS8vZm44WDJpaXIKRzNsUVdsUlhiRVE1N2I3Nzd0NXBVMDNma1Vj
ZTZRWklaRlJEVHAxU2FtRGFhRUd5a1lWcVVHOTAya2h4c3RHcW9aMHR1WEtrOE1qWgo2RjZ5YVg1
K0hudFIrWVg5VTRlVFhQMDlNU3ovZW5jZGNzZ2h6a1hHR3VwTzN5TWJzWjRodDE5Y0VYY2NGU1kz
ci9YNDQxb2ROSEtTCkxjVW9uT3EvVFhGS05qM1dsVEoxVnVURW1WUCtFV2Y5YUNNUXJtZ283akNz
RW1IVXJsRDdRdWtMTG9yVDFtMjZ5ZjVxWHZTTWxCQVoKOUxEcGdsNHZaVVJqTmplS3JDYjFhYlk0
dVFlQmFTZlE2Z2lJTE1qSTJkeDZqY3ZQWUNmRkpIcTQ5V0pYRDc2Y1RXbVlFVGJYSXpmdQpZZkxW
R3lybHcrYkRlZytjelQzMm50MTR6b2JrMCtNZi8zZ2Z2YkNwVU41YkYvZHlqL3FneXVuRk9wdUxq
MTgwQUdjTE81LzMyaTRMCmZTeVVkeW1xK2dpMkxYOWNWc1BxU2ovNWsxaVdUZXQwakNiSnN0aWt1
VkhLb3BvSG0zN2hqVnoxMUd2WGEvV1FxaUZjZFpOWWR0WDAKemNmNXNOR25uRkd6dGtZSGMrVkV2
UjQyU3RxUDc3RDhtd0VGcjAreXJxZFJ3clpkYmw1SGliOCthcDRUWjA3NUQwcWJGSDhwUFUxbgpU
SXd5VWo0bzdsRmtqVk9mQnFVRGZ3aE1FNEZXRlJEMXpLdjNRYjA5cTFhdG1zSEoxanQ0RDdhR1R0
VmJvU0ZRT2Uxa0txVmxrSXNlCmpVSDM1WjhiOTJ5eVRqamhCTCt0SGJyVkFEbjc3TE85VVhMR0dX
ZWtLNis4MHUvWlFuQTMwNnBlclhHY3BpamNlT09OYnNJM0dqYUQKNUlXQ29tSHhRZE84Tk8xQkkw
eno2ZG9zQytWREh5K05FTWxrc2FiMnRTMi95cXBKWGF1R2IxSlhxdUhqZk5TeTdMSnNtOWJwK04z
SwpyTGF0cllrc2xVZDFQdFI3cm5Xenk3UkwvcWhsb1dmRGFlcVlPS2kzVmRNYTFhTXFwYWJxUmky
N3FveHBPNC9SSjNVT3hLanhpaFVyCnl1azYwV21pbnVSaHJqckNwS2tzL2Y1czhmb3dNVDJqalAx
a3lLK0puS0VSV1lCaCtkZTNUNjQrb3VLZUxmeHJpMWxPVW5MaXpDbi8KUVdtd05XcCtxK21NaWFZ
ajVSSWFZUWZGSGZlSHplNW9JbXRRSFBoRFlMRVJhRlVCVWM5UjlCYkdYTklxME5nZjRPQ0REM2J2
YmJmZApObWsrcXhvbW1oZGJkVkppTk05Y3J0N1l0b1ZvN2g5SFhlVEc3UUlHL0ZNRDN4YlhsWGMx
Zkh2Z2dRZjY5VFhYWE9OS2xDMHM5K3Q0Cktlb2kvTlI0NmVmNk5jRFVhRko0N1h0U2RaRzNPT3Fl
MHJGczJUSlhmRFJWUkl5cXpoYWcreWhCekMvdE53b1Y0YXR5d3krT21uNVcKM2U4Zy9Qc2QrOFhS
Wmxrb1RpbUFVZ3hpajVWeDVQZExyK0lJNVUrS1RqOFh2T0lZWVliVmxRaFhQK2FXWmN4M0RnVTQ1
SVVDb0h4cAplbG9URjNtSW81N1JzMUYvaDlWcEtZRGF4MGIxV2ZQM3RhWXJuSDZyK3Exb2I1Sndv
NlI5VURsSlpxUTdqaEhQcUdVUno4ZFJjOTVWCjM4eG9odTl2RXY1eHpDMDdQVGRiZm5RLzV6ZW44
SlBvWmh0OWl0N2dKcU5tOFZ1TVJ1dW9lVzFMVHRQNFo4dC9kR3pFdE9PbU1wdUcKbSt1OEtsMDVj
ZWFVLzZBODU4NllhSE9rdkUxWmcvS0hQd1FXSFFIN01JN2xERmhwd1VPQ1pNbko1ajY2dFNaWjFR
aG5qUVUzNDJjOQpSWVUxbk1QYnpmWEthcGJreUlxTkxFYkpFb2dOYWJ2Vkkvbkx2T2JKSjU5Y1Bp
TnpnUEszbmF0TFA1M2t4dDN6Y09WQzVnK3RFVlh4CktRcnJ6U3VzOTZxd0JwYjd4OTRlTWxjb0Mw
NnlsR005cDU1dmU5bTZXZGZ2ZnZlN0hsWjVDazRLRzA3bVppVlRKaW5yYmxBZVR6engKeEhLL0Fs
blZzaEdZd2piWWMzT05NZzladGE1aGl5ZkxlS3VtQ1ZVV0cyKzhzZCt6cVNZOVVaOXl5aW5sTXpZ
UHUrZGV2d3RaZEZIZQpxbnVrS0Z4dVdYenJXOTl5T1pLblo4UFprTHZuVFJab3FpNVhmbGlhTWVW
c2hsVTF5VlU4eW9jc2Jja2s2QTkvK01OQ3JNTU5LbzhtCmRTVmsxSTg1WlNuclVtR0JSL3VZbkhQ
T09ZV05kcm5KVEpzLzdtay80SUFEM0Z4MFBaNzY5YUM4NU5ScE1iS2VTSTlYZStiSW5Lak0KMkty
dXEwNVczU2hwSDFTdkpIZFErc2NwaTJwNmRTN1RyOHBMN0UxVXY1OVRkbnAydHZ6ay91YnFhV2w2
SGU4Z0hjZDFkVm5hbDZqcQo5SHN6eGRQcmg5NXp2L3psTC8xY3Z6L3JPYThHOVhPOWsyVFZUeTVN
WnNzRWJ0M01zd2V3ZnpLUlczM1g5Yk5jbEN0SFpybVZMMWtJCkhPVDBYVklZVTNaN2dnekxmN3lM
YlRwcFlaMGNQYy9xd2tiVlhHN1YwbUpZajFOZHJMcCtsdTl5ODFxVlZ6MmZ6WEtpdnQzS2U2UXgK
Sjg2YzhxK21wM3B1bldJZXYrcVEzdGQxRi91QTJBYXlma3ZmQ0ZQOC9CbnIvS3dIZDVQNHlvL3Fh
ZFgxcTB1anlHcFNuNnJ4Y2c2QgpMZ2lvanNkZkYvTEhrVG4ybHlneXBtTTR2Y1Jrbjl0NnFndmJW
Yml3MFpEQ0ZoOFd0dENyeHp4bmhOZkhhclBOTmlzaGFkTXYyOFhiCjkrS1FEWExaa3BkTWJicG1v
eWRsdzBjYjdOa0N4a0lObkhDNWNjZHoxZU51dSsxVzJFaURONnFPUGZiWXduWjNMbmJhYWFmeXhh
dXcKYWdCYVQ3Q24yWHFEQzltQTEwZFVwa24xMHJQMUlZWDFWcnZZVUVDa21Ha3ZDOG5TWGdZeVFT
eEZSOCtGYTVKSDJZaVBqN3U0UzRHVApTZURxQmxqV28rcm1nS044cE1UcEpXeER5VjRXNGErR2tV
MHRpK2c5akRibzAvMjZPZUV5a0ozWS9GL2ZLRERrYUs4T3M0Z3ljbG1vCk1TRWxUa3pGM25ZL0wy
ejNlYmZ4SG9wY05YNmROeTFybWJPVXNoWnAzV0dISFhyTXFvWmNtUUJXR0gzZzFKaFh1UXdyanla
MUplVDMKT3pZcHkzaE9kdXVqenFudTY3ZGdvMmV1OENzZDJwdWdYK01tbmgrV2w1dzZMWm1xMTlH
d0ZqZVo1alVyUHhGZHo3RnAybWVyVjhQUwpQMjVaVkJNc2hWanZxOWxjazdLYkxUOGhXNy9MSnIr
NUNEL3FNZXEvanVPNnVxeWRkOTY1eDdTczVPdjNySERxaUZJOTFYdFMxNm96CjFjM2lwR1JJcWJa
cHU1NHNtV2ZYTzBCaHRRR3NHdHhWWjR2Y0N6UDZVZlVxTjJPVk9keHd1WEtpd2FqOUpBWTUxUW1s
eTZibTlnUVoKbHYvYmI3L2Q5eFRSczNwWFY1M1lTSW5YUFhXK2haT1NMNy9OTjk4OHZQeG9VNWJk
WC9ja1Z5NDNyLzVRbjM4eXF5dTUrb2JWWGZ6VwpRd0hKaVRPbi9Pdnh4clcrRVdvYktIMHlaMXgx
cWlOU1dIWFBMSmVWdDJKdm8vcmVYQW9nVTdrS2I5WXV5L0E2VVllZy9LdDFTZjY1CnNwclVKOG5W
TzBKS09nNENYUkJRWFk2L0x1U1BJM1BzTDFGa1RNZTZrNjF6Zlh5a1lGUjd0ZXZoNGxvYmZsVS9U
TkdURWZkempybHgKVjJYSEIwOXAxZ2VodmhGaU5XeDlqeExkcS9mYWhRSVMrNERZbW8vQzFqWDAz
WStpS251MmN6V090VE8wWGw0MnIzcTJvTm4zeEU1bAo5clNuUFMzNzJYNFA1SmFGVFFkeVBqbzJj
Ym55WjVONXRlM2wwcVN1aG95Y3VoTFAxSSs1WmFrUHJFMS9Lc1hVNjF0NVk4U1RKblc2CktscS9V
KzJ6VWxXa3EvZXI1MTJtdlkyeWlMUXFMMUp3aDduY3Noc2tyKzNmWEw5NFpudFg5d3MvbTE5ZFZw
UFJwNXhSczdaR21ITGsKNkoybmZBMGFKUldQY1ViZnRJbGljTk4rS0JyNVV1ZWFGT2NZM2F3cUlM
a2poemw1SFZTMk1WS2pkRFlaTmMrSk02ZjhCNlZQR3h6bgp6SmpRdXp4blJvYmlEVVZyM0ZIOUp2
VXA5aDdTeU5nNDdaMUJ2UENIUUx4emRKdzBOM2FLSmpsemt3Szdyb0JNU3JwbVM0ZDJmVmN2Ck1B
NENFSmdiQWwzLzV0cDhWOWRsTlIxOXloazFhMnVFcVltY1lhT2tiWTIrbVdHRGNnUmYwejEzM1hY
WFFoMXZtb29ycGpHNkVEV3UKNmNoaGhHK1Mxd2hiUDQ0NmFwNFRaMDc1MTlNWDEycllONWt4RWVH
YmpwUTNHYTFzS210WWZZcTBpWWN0YkMvTU1sclA3SUc0enhFQwo0eEtvdjZ2SGxkZm04ejdPYWdr
YzJjWGlPZ213aEkwc1o1b2Z0UG12U2VZWHRabVZUSjFPdXROaWRsbHJrVFVnSEFRZzBEMkJ1ZmpO
CnRmbXVyc3VTUVF5Wnk3WmUreVJESGJiR3pEY21IRVJPeGg2c01lZG10YXV5NnVIMVRaRzFKWnRx
NU8vUFdNeGNEemZzdWkwNWcrTEoKeWI5TmxYWHJhclptd1kyR1NLWVdPV3VUVlZOQVVuWEQyNGpQ
Um1hVE5ickxUVlJsN0NFV2dVZVlPSGFkMTRpbmVzeU5zMm41VitPbwpuOHQ2cEt4U2JiTEpKbjVM
TW1OVDMzcFlYY3V3akRYNGZTOFdmWTlsekdSVTE2WXNtUmFXaVdOWjNjUkJvRzBDMWZlcmZxZVQ1
RkJBCjVxQTBiRDJMYjdTbGo0eGVOcFB1OU1FUFU2T1RubGJTQjRGcElEQVh2N2syUDBSdHlwcUc4
aHMzRDhNVWtISGw4endFSUxBNENVenkKdTdwVk03eUxzM2huejdVTjZ5WmJvTzZCYkZGYU1zdGR5
ZWJaenY3UVBOOUYrWmpuQWlENlJVZUEzOXlpSzNJeURBRUlRR0JSRTJBRQpwT1BpdDduRHlheUY5
TVJpRm0vU2R0dHQxK1BIQlFRZ0FJRXVDYlRaRTlhbXJDN3p2RkJrTDFteUpHbVRSbHVvbmN6NjRF
SkpOdW1FCkFBUW1uTUFrdjZ2WG5uQjJDejU1dGsvSWdzOERHWUFBQkNBQWdmWUptT25yWkh0Y3Vm
SWg2ZHFRVjZQay9kYUJ0Qjg3RWlFQUFRak0KSHdGR1FPYVBQVEZEQUFJUW1ETUNiZmFFdFNscnpn
Qk1ZRVMyOTBreVU4NDlLYk05bnRKV1cyM1Y0OGNGQkNBQWdWRUlUUEs3dXRNUgpFRm43a0pVS1dV
ZHA2cG84MDFhWVlXbHFFbzlrTkEyWEU3YUp6Q1pocW5uTURWOTlsbk1JUUFBQy9RaFVQM0Q5N3VN
SEFRaEFBQUlRCnFCUG9SQUhSbWdmYnpDeXRYTG5TVGQwdFg3NDh5ZVNnYmZCVWo3KzhidkpNVzJI
S1NBZWNOSWxIanpZTmx4TzJpY3dtWWFwWnl3MWYKZlpaekNFQUFBaENBQUFRZ0FBRUl0RW1nRXdW
RUNUenBwSk9TN1V5Y2JDZlNKQnZtVGF5OE5IbW1yVERESURhSkp6ZWZiY3BzS2l2eQptUnMrbnVN
SUFRaEFBQUlRZ0FBRUlBQ0JOZ2wwcG9Dc1diTW1MVjI2MURlUXV1bW1teHFsdWNremJZVVpscUFt
OFVoRzAzQTVZWnZJCmJCS21tc2ZjOE5Wbk9ZY0FCQ0JRSlRCcEcxcFYwOFk1QkNBQUFRaE1Qb0ZP
RnFIZmNjY2R2dFBySlpkYzRsT3dOdGhnQXpjN0svT3oKZzF5VFo5b0tNeWdONGQ4a0hvVnRHaTRu
YkJPWlRjSkVYbkxpcmo3RE9RUWdNRjBFcW1zMVVDQ21xMnpKRFFRZ0FJR0ZScUFUQlNRZwpyRjY5
T3NtK2VaUHBWem5QTkpIYkpFekVPZWpZVkViVGNJcW5hZGdtNFpxRXFlWXROM3oxV2M0aEFJR0ZU
UUFGWkdHWEg2bUhBQVFnCk1FMEVPbFZBcGdrVWVZRUFCQ0N3a0FtZ2dDemswaVB0RUlBQUJLYUx3
RjJtS3p2a0JnSVFnQUFFSUFBQkNFQUFBaENZWkFJb0lKTmMKT3FRTkFoQ0FBQVFnQUFFSVFBQUNV
MFlBQldUS0NwVHNRQUFDRUlBQUJDQUFBUWhBWUpJSm9JQk1jdW1RTmdoQUFBSVFnQUFFSUFBQgpD
RXdaQVJTUUtTdFFzZ01CQ0VBQUFoQ0FBQVFnQUlGSkpvQUNNc21sUTlvZ0FBRUlRQUFDRUlBQUJD
QXdaUVJRUUthc1FNa09CQ0FBCkFRaEFBQUlRZ0FBRUpwa0FDc2drbHc1cGd3QUVJQUFCQ0VBQUFo
Q0F3SlFSUUFHWnNnSWxPeENBQUFRZ0FBRUlRQUFDRUpoa0FpZ2cKazF3NnBBMENFSUFBQkNBQUFR
aEFBQUpUUmdBRlpNb0tsT3hBQUFJUWdBQUVJQUFCQ0VCZ2tnbWdnRXh5NlpBMkNFQUFBaENBQUFR
ZwpBQUVJVEJrQkZKQXBLMUN5QXdFSVFBQUNFSUFBQkNBQWdVa21nQUl5eWFWRDJpQUFBUWhBQUFJ
UWdBQUVJREJsQkZCQXBxeEF5UTRFCklBQUJDRUFBQWhDQUFBUW1tUUFLeUNTWERtbURBQVFnQUFF
SVFBQUNFSURBbEJGQUFabXlBaVU3RUlBQUJDQUFBUWhBQUFJUW1HUUMKS0NDVFhEcWtEUUlRZ0FB
RUlBQUJDRUFBQWxOR0FBVmt5Z3FVN0VBQUFoQ0FBQVFnQUFFSVFHQ1NDYUNBVEhMcGtEWUlRQUFD
RUlBQQpCQ0FBQVFoTUdZR3BVMEQrKzkvL3B2UE9PeTlkY2NVVm5SYlY3MzczdTdScTFhcE80MEQ0
NkFSKy9ldGZwNy84NVMrakM3QW41Nm91CmpaVklIb1lBQkNBQUFRaEFBQUlMak1EVUtDQS8rY2xQ
MHF0Zi9lcDAvL3ZmUHozeGlVL3NYRG5ZZnZ2dDB4T2U4SVIwN3JubkxyQWkKbjk3a1huamhoV25G
aWhWcHl5MjNUSTkrOUtQVDczLy8rNUV5TzlkMWFhUkU4aEFFSUFBQkNFQUFBaEJZb0FUV1hxRHBu
cEZzS1FOYgpiTEZGK3VsUGY1cHV2ZlhXdE5aYWE4MEkwNmJISXgvNVNPOWhmOEFESHRDbVdHU05R
ZUFSajNoRWV2dmIzNTQrLy9uUHU1UzExeDZ0CmVzOTFYUm9qeXp3S0FRaEFBQUlRZ0FBRUZoeUJx
UmtCa2NLeGRPblNKTVZBcmlpS1Rndmo5Tk5QVHpmZmZMUDN0bmNhRWNJYkU1REMKSVlYd2dROThv
RDh6cWdJeTEzV3BjUVlKQ0FFSVFBQUNFSUFBQkthQXdOUW9JRkVXMGVqc2VnUkU4VVZjRVRmSHlT
QndsN3Y4ZjdXTwo0NmlwaXZLZGk3bzBhaHA1RGdJUWdBQUVJQUFCQ0N3MEFwMHFJUC80eHo4YThm
amYvLzdYS054Y0J4cDNGS1ZwL2hWUFBhNzY5VnpuCmZWQjhYYVNyamZMLzE3LytOU1BKazZZNGRN
RnVScWJ4Z0FBRUlBQUJDRUFBQWhOT29CTUY1T01mLzNoNjZsT2ZtdDd4am5la0Y3M28KUmVuNXoz
OSsrdHpuUGpjRHhWZSs4cFgwc3BlOUxPMjExMTdwU1U5NlVuckRHOTZRdEFDNDd2Nzk3MytuZDcv
NzNla1p6M2hHMm1pagpqZEpqSC92WTlLbFBmU3JsTmx5Ynl2blZyMzZWM3ZhMnQ2V25QT1VwSHNj
NzMvbk9kTC83M1MrOTVDVXY4YVQ5OWE5L1RWLzk2bGZUCk01LzV6UFNsTDMycG50elVOUCtTOGNJ
WHZqRHR2ZmZlenVuWnozNjJ5MzM2MDUrZVpNVko3dXRmLzNyYWFhZWQwa01mK3REMDJ0ZSsKdG94
TDZ4ekVRLzRQZTlqRFN2ODRhWnJYQ0Y4OXFqSC9uZTk4SjczbU5hOUoyMjIzbmQ5U1dhbE03M1d2
ZTZYblBPYzVmUmQ0NThiWgp0UHlyYWF1ZmYrSVRuMGppOW9wWHZDSTkrY2xQVHU5OTczdlRmLzd6
SHcvV1R3SDU0aGUvbUo3MXJHZjVNMXR0dFZWNjduT2ZtNzc5CjdXL1h4VGE2YmlwcldIMXFGQm1C
SUFBQkNFQUFBaENBd0xRUXNGN1pzWnh4MEdJTC81TWdhMVFXOTczdmZRdnIvWGU1cGlRVTFqZ3MK
M3ZPZTk1VHhtSG5Ud2l4V0ZTOSs4WXZMY0dheHFMajN2ZTlkM08xdWR5dCsvT01mbDJILytNYy9G
dFlBTDZ5eFh1aTV2LzN0YjhWTApYL3BTajA4eTZzNFVHcituZEZSZFV6bWYrY3huaWswMjJjUmwy
S0xtNHExdmZXdnh2T2M5ejlOMW4vdmNwL2pOYjM1VFdDTzN1T2M5CjcrbGhQdnZaejFhamFaUi9N
ZGwzMzMyTGJiYlpwckFGOCtYelAvakJEMXltZUY1d3dRV2wveEZISE9IK3B2Q1VmanI1eFM5K1VZ
YXYKM21pYTErb3oxZlB2Zi8vN2hTa2JMdHZXVkJSdmV0T2JpbGU5NmxYRkp6LzV5Y0tzUzdtL05l
S3JqeFE1Y2VhVWYwOGtsUXN4VkpwTQpRU3IrOUtjLytSM0pWZGxFZmJ6cHBwdktKMHc1S2t3Wkxo
Nys4SWNYVjE5OXRmdXJqcXB1S3J3cFcyWFlPQmxVbDNKa0RhdFBwaXhGCmRCd2gwQ21CK0Yzb2lJ
TUFCQ0FBQVFqTUo0R3h2MFQxajlvdXUreFNXTTl5VDU0dXYvenl3cXdUbFg2Zi92U25pdzAzM0xD
d2ZScEsKUDUyb0VTaDVIL25JUjByLy9mZmZ2N0FSZ3ZKYUp6ZmNjRVBaeUZ5NWNtWFB2VUdOeGh3
NTMvdmU5MXorWGU5NjErSnJYL3VheTcvKwordXVMU3k2NXBJekxSaTQ4VEYwQmFaTC9MM3poQy82
czlieVg4dUprZ3cwMjhIdFZCZVRNTTg5MHY3b0M4dmUvLzkzOTZ3MktuTHhHCnZQWGpOZGRjVThx
V1loUk9pb2FOTEJTMlBxS3drWkx3TG5MaXpDbi9Nb0xheVplLy9HVlAzODkrOXJPZU8yclEzLzN1
ZC9kN3RsZEwKZVU5MVNwek9PdXVzMGs4blVrSlVYM1ZQNVZKMWcrcFNycXdtOWFrYUwrY1E2SUtB
Nm5qOGRTRWZtUkNBQUFRZ0FJR21CRnFmZ3JWcwoyYkprRFhVM2gybzkwdmE5UzI0cEtxWXYyUWhH
T3ZUUVE5UHV1Ky91MDNrOHdKMy9qanp5eUhUcXFhZW0vZmJiejMydXUrNjZkTXd4Cng2UWxTNVlr
VGRlSnYzUE9PU2V0di83Nkh1WkhQL3BSVlVUZjgxdzVEM25JUTF5T0tVaytSVW9Yc3F4a3ZlZWxm
RTFGa3F0UDh4bVcKLzMvKzg1L3BrRU1PU2FiYytMU3pVdUNkSjlySFJLNHV0NTlmaEltand1VG1W
Yy8wY3piYTQ5NlNyYWxYNFV4QmNuUEhtdVowMVZWWAp1WGRPbkRubEgzSFdqNXJxcGVsOW1ub1dV
OFFpakxnKytNRVA5c3Znb2podEJNNk5CbFR6b2tDbXJKUlQyMVF2aDdsUlpEV3BUOFBpCjVUNEVJ
QUFCQ0VBQUFoQ1lGZ0t0S3lBMkxjWWIxNGNmZnJnM0RxM0gyVmxwWXpnNXJXM1FQaDNMbHkvMzYr
by9tNExsNjBYdWNZOTcKdUxmMWJ2dDhmaWtnV3RCZC9iTmU2R1RUVzN4OVJGVkd2L05jT2V1dHQ1
NkxVU004MTVMU3NQeExPZE11NmxySG92eTI3WEx6T2tyOApOdjNNSDVNeUpaY1RaMDc1dS9BKy95
Njc3REpYdFByVklRV1hFbEoxRjExMFVicmpqanRjTVFuTFZ0WDdOc1hPTDIzS2xwdFdydDZyCm40
OGlhNXo2VkkrZmF3aEFBQUlRZ0FBRUlMRFFDWXkyVTlzc3VYN01ZeDdqdTRQdnVlZWV5YVlSK1VM
cE43N3hqZW1vbzQ1S3RyNGoKcVFFbnA1N2tZVTROVFRudDdhRkZ4cU82dHVRMGlYOVkvaSsrK0dJ
WEUzdFZOSkdaRTJZdTh4cnB5b2t6cC94RGZ2MTQ2YVdYdXRjNgo2NnhUdjlWekhTTWdhOWFzY2Y5
QnlxUkdUS1MwYU1ST1lXTVVxa2ZZblJkdHl1b25IejhJUUFBQ0VJQUFCQ0F3N1FSYUh3RVJzQjEz
CjNOR1ZqMzMyMmNkSEVHenhzbzlzNkY3MEJzc3kwREFYMDV5aTBUb3MvS0Q3YmNrWkpML3VQMXYr
bzFIODI5Lyt0djVZSzlkem5WY2wKT2lmT25QSWZCRVFqWVhMWFhudnRvQ0E5L2c5NjBJUDgydGJ4
YU0xVHp6MWRTREZaZDkxMTNYK1lZdGltckJrSndRTUNFSUFBQkNBQQpBUWdzQWdLdEt5QW5uSEND
WXpOTFdPbjQ0NDlQWjU5OXRxL1hPT09NTTlLVlYxNlpaUHBVVHFaUGJYRzZuMWYvcVlHb3RSNXlZ
VjVXCkpueGwrcmFmazRuY1dHdlM3Nzc4MnBJelNIN1ZmMWorTjk5OGN3K3UwU0ZOUmF1N2ZnM2tD
RE1zbndvM2wzbU5kT1hFbVZQK0liOSsKREJrWFhuaGhrbEl4eUlXeXB4RTBuV3ZLMktwVnEyWUUx
NmlVcG1ocFhWR3NINWtSNkU2UE5tVU5pZ04vQ0VBQUFoQ0FBQVFnTU0wRQpXbGRBcEN5WXBhU1Nt
UmI5SG5qZ2dYNXRscFY4T3RXakh2VW9WeHJNREcvU3ZQdHdVaklVVm50YnlPblpaYmFvL1E5LytF
UFNOSzVZCmN4RGhQL0NCRHlSTnc2bk8rZS9YZ0I5Rmp1TG9KeXZpamoxSTRoaitUZksvZE9sU3o4
dUhQL3poZU15UFd0aXR2TXBWNDQ0RjkxTGcKcWk0VU9JVlZBMXB1MUx4VzVlcThHbi85WGozUE9Y
R3FBZCswL092eHh2VzIyMjZiekVTeTE2SEREanNzdlAyb09oS0tYU2l0V3N0agpaby85dnZaUHFi
dlllK2JnZ3cvdXVkV1B3YWl5SkxpZnZHcUVQLy81ejExSnIvcHhEZ0VJUUFBQ0VJQUFCS2FPZ0RX
S3huSUdwTWUwCm8yMEdWNWdTMFNOenhZb1ZoVTF0S2F4QjZQN2E1OE1VQjM5T2U0YTg0QVV2S1Bi
WVk0L0NwdWNVWmlHcTU5a1RUenpSemI0cW5xMjMKM3RydjJ5YUJ4WlpiYmxuWVJueEZmUjhGN2Ey
aHNOVjlSeVF3UjA3c3gyR0tUWEh6elRmM3BDY3ViUE03aitlREgveGdlUG14U2Y2MQpuMFp3MDE0
bXA1eHlTaUZ6dnJ2dHRsdTV2MGpWRE8rZi8vem4wbC83a3BnVnNNSkdmZ3FiNGxiWWVnV1hkY0FC
QnhReWR5eVhrMWQvCm9NKy84ODgvdjB4amRUOE43Yit4OGNZYis3M1RUanV0ZkRJbnpwenlMeU9v
bmNpY3Jrd0JpNk5NQUs5ZXZkcjNUdEhlSUdiRXdQMWwKRXZua2swLzJKMis3N2JiQ3JGSDVNOXJu
Skp6eW83SzB0VHVGS1MvaDdjZEJkU2xYVnBQNlpOYmNQTTB5SVd4S2FFODZ1SUJBR3dUaQpuYU1q
RGdJUWdBQUVJRENmQk1iK0V0VS9hbXBFMjZpRkt4WEhIbnRzWWJ1YiswYUN0dWFqSjU5cU1FWURU
ekswTDhoeHh4M1hFeVl1CnRCZUhqUUo0QTAxaDFmQTg2S0NEQ3UyREVjNHNNUld2Zk9Vcnl6Q2Ji
cnBwWWJ1bkYycThoMnNpUjV2K1NkR0pmTzJ3d3c3RjBVY2YKSFNKODh6L3JLUzhWS0czVVorYUR5
M2lhNWw5N1NZUVNwZ2J6cnJ2dTZ2dWJTRkZUM0hWZXA1OStlbUdqQjM1UGNTb04yaEJQaldyRgph
YnR5RjdmY2NrdVp6aVo1TFFQWFRzNDk5OXhpKysyM0x4bW9JVytqQklVdHdDN01mSExwci9LenFY
WGwwemx4NXBSL0dVSHRSQTM3CnpUYmJyRXlQTm82MEhkeDlYdy9ieGQ2VnV0aWtVSS9xWEp0ZjJp
aEc4ZVkzdjdtdzBSRFB6MTU3N1ZYWUNGSXB2VWxkYWlwcldIMksKU01YRDFxTDRacHpWT2h2M09V
SmdYQUx4VHRNUkJ3RUlRQUFDRUpoUEFtc3BjdnNnamV4aW5yMEVTSlNtd0dodkJXdEVKVTI1c3Q3
eQpXYTBLV2FNNVdXUE85NWFveXFvblNMSmxiZW4yMjI5UHBpQ1VpOW5yNFlaZHR5Vm5VRHc1K1Rj
RktsMXh4UlcrdjBoWWROSWlaOXRvCk1XbVJmcGd1cnNabHUzZ25hM1NYNW9FMXpTZ1dnVmZENmJ6
cnZOYmpHeVhPcHVYZkw2N3d1L0hHRzUySDdXRHZYcEs1MFVZYnhlMFoKUjAwUnRBYS9UOTJUT1dS
TnF4clZ0U2xMKzZuSXhMSFdUK0VnMERhQjZ2dFY3d1ljQkNBQUFRaEFZTDRJdEs2QXpGZEdwaVhl
WVFySQp0T1NUZkVBQUFuTkxBQVZrYm5rVEd3UWdBQUVJRENiUStpTDB3VkZ4QndJUWdBQUVJQUFC
Q0VBQUFoQlk3QVJRUUNhc0JvUUZzYkJxCk5XSEpJemtRZ0FBRUlBQUJDRUFBQWhBWWl3QUt5Rmo0
Mm52WUxGdTVxZUhZSVY3bVpiWFBCUTRDRUlBQUJDQUFBUWhBQUFMVFJJQTEKSUJOU210b2dyNzYv
aHZiL2lFMzNKaVNaSkFNQ0VGaWdCRmdEc2tBTGptUkRBQUlRbUVJQ0tDQlRXS2hrQ1FJUWdFQ2RB
QXBJblFqWApFSUFBQkNBd1h3U1lnalZmNUlrWEFoQ0FBQVFnQUFFSVFBQUNpNUFBQ3NnaUxIU3lE
QUVJUUFBQ0VJQUFCQ0FBZ2ZraWdBSXlYK1NKCkZ3SVFnQUFFSUFBQkNFQUFBb3VRQUFySUlpeDBz
Z3dCQ0VBQUFoQ0FBQVFnQUlINUlvQUNNbC9raVJjQ0VJQUFCQ0FBQVFoQUFBS0wKa0FBS3lDSXNk
TElNQVFoQUFBSVFnQUFFSUFDQitTS0FBakpmNUlrWEFoQ0FBQVFnQUFFSVFBQUNpNUFBQ3NnaUxI
U3lEQUVJUUFBQwpFSUFBQkNBQWdma2lnQUl5WCtTSkZ3SVFnQUFFSUFBQkNFQUFBb3VRd05wdDVy
bTYwMjZiY3BFRkFRaEFBQUlRZ0FBRUlBQUJDRXdICkFVWkFwcU1jeVFVRUlBQUJDRUFBQWhDQUFB
UVdCQUVVa0FWUlRDUVNBaENBQUFRZ0FBRUlRQUFDMDBGZzdDbFlSVkZNQndseUFRRUkKUUFBcHBF
NmVBQUFESFVsRVFWUUNFSUFBQkNBQUFRaDBUb0FSa000UkV3RUVJQUFCQ0VBQUFoQ0FBQVFnRUFS
UVFJSUVSd2hBQUFJUQpnQUFFSUFBQkNFQ2djd0lvSUowakpnSUlRQUFDRUlBQUJDQUFBUWhBSUFp
Z2dBUUpqaENBQUFRZ0FBRUlRQUFDRUlCQTV3UlFRRHBIClRBUVFnQUFFSUFBQkNFQUFBaENBUUJC
QUFRa1NIQ0VBQVFoQUFBSVFnQUFFSUFDQnpnbWdnSFNPbUFnZ0FBRUlRQUFDRUlBQUJDQUEKZ1ND
QUFoSWtPRUlBQWhDQUFBUWdBQUVJUUFBQ25STkFBZWtjTVJGQUFBSVFnQUFFSUFBQkNFQUFBa0VB
QlNSSWNJUUFCQ0FBQVFoQQpBQUlRZ0FBRU9pZUFBdEk1WWlLQUFBUWdBQUVJUUFBQ0VJQUFCSUlB
Q2tpUTRBZ0JDRUFBQWhDQUFBUWdBQUVJZEU0QUJhUnp4RVFBCkFRaEFBQUlRZ0FBRUlBQUJDQVFC
RkpBZ3dSRUNFSUFBQkNBQUFRaEFBQUlRNkp3QUNram5pSWtBQWhDQUFBUWdBQUVJUUFBQ0VBZ0MK
S0NCQmdpTUVJQUFCQ0VBQUFoQ0FBQVFnMERrQkZKRE9FUk1CQkNBQUFRaEFBQUlRZ0FBRUlCQUVV
RUNDQkVjSVFBQUNFSUFBQkNBQQpBUWhBb0hNQ0tDQ2RJeVlDQ0VBQUFoQ0FBQVFnQUFFSVFDQUlv
SUFFQ1k0UWdBQUVJQUFCQ0VBQUFoQ0FRT2NFVUVBNlIwd0VFSUFBCkJDQUFBUWhBQUFJUWdFQVFR
QUVKRWh3aEFBRUlRQUFDRUlBQUJDQUFnYzRKb0lCMGpwZ0lJQUFCQ0VBQUFoQ0FBQVFnQUlFZ2dB
SVMKSkRoQ0FBSVFnQUFFSUFBQkNFQUFBcDBUUUFIcEhERVJRQUFDRUlBQUJDQUFBUWhBQUFKQkFB
VWtTSENFQUFRZ0FBRUlRQUFDRUlBQQpCRG9uZ0FMU09XSWlnQUFFSUFBQkNFQUFBaENBQUFTQ0FB
cElrT0FJQVFoQUFBSVFnQUFFSUFBQkNIUk9BQVdrYzhSRUFBRUlRQUFDCkVJQUFCQ0FBQVFnRUFS
U1FJTUVSQWhDQUFBUWdBQUVJUUFBQ0VPaWNBQXBJNTRpSkFBSVFnQUFFSUFBQkNFQUFBaEFJQWln
Z1FZSWoKQkNBQUFRaEFBQUlRZ0FBRUlOQTVBUlNRemhFVEFRUWdBQUVJUUFBQ0VJQUFCQ0FRQkZC
QWdnUkhDRUFBQWhDQUFBUWdBQUVJUUtCegpBaWdnblNNbUFnaEFBQUlRZ0FBRUlBQUJDRUFnQ0tD
QUJBbU9FSUFBQkNBQUFRaEFBQUlRZ0VEbkJGQkFPa2RNQkJDQUFBUWdBQUVJClFBQUNFSUJBRVBn
LzU1U014cDlwOVNBQUFBQUFTVVZPUks1Q1lJST0KCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10
eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVjdGVk
LnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndB
QUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpWTTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRr
Q0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FI
bnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdNNSs4OTQzNzMxdmR0OEFEWExTTlBXQUJP
UU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1RpUUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3
SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9nOAozNkVweDNRSTMrUFk4dXlQT1U1NWVN
RzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pUMWNWSStuTmVMbE5jZEIybHVac2JJCkVM
MVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lIQ0N4bXRQMGE0alo3MWpOVS80bUhocE9i
RWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhIWkxnM3htSzc5VnZKS2duQ1FPTXBrWVlC
eldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5uM3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVo
UUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekoxSkdxN2RHSkVzVUY3TnR3OXQxR2szVHor
CktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIzbEsyYm1ycnk0RHZGNVptNUdoN1gwOGpq
YzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekhtZ2pXUHhIT3crL0V0WDVYTWx5bU1GTVhq
VmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2MkppemRXbTVkbgovV3BJKys2cXZKUG1WZmxQ
WHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExxd3ZpWUczSENKMlZoaW5TYlpINkpOVmdZ
SnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NLbVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZL
QUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2
QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVzeFEyME5TVXRjbAoxMlZMRnJPWlZXTHBk
dGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytmbXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJ
dUpBQUFnCkFFbEVRVlI0QWV4OUI5Z1ZOZlozMXQ2d0FvcUtncUxZUVVGRXNXRUJCVVVzS0ZaVVJG
SEJpaUoyQVR0MlVVRmNHeUlpaUdLdjJGRVIKWEt3bzJMRmhiN3ZyZjcvZGZPZDMzTGs3ZCs2VXpF
eG1rdnUreWZPODc1M0paRTZTazVQTU9ja3BmNUdVaEVzT0F3NEREZ01PQXc0RApEZ01PQXc0RERn
TU9BdzRESldCZ2tSTHFjRlU0RERnTU9BdzRERGdNT0F3NEREZ01PQXc0RERnTU1BYWNBT0lJd1dI
QVljQmh3R0hBClljQmh3R0hBWWNCaHdHR2dOQXc0QWFRMFZMdUtIQVljQmh3R0hBWWNCaHdHSEFZ
Y0Jod0dIQWFjQU9Kb3dHSEFZY0Jod0dIQVljQmgKd0dIQVljQmh3R0dnTkF3NEFhUTBWTHVLSEFZ
Y0Jod0dIQVljQmh3R0hBWWNCaHdHSEFhY0FPSm93R0hBWWNCaHdHSEFZY0Jod0dIQQpZY0Jod0dH
Z05BdzRBYVEwVkx1S0hBWWNCaHdHSEFZY0Jod0dIQVljQmh3R0hBYWNBT0pvd0dIQVljQmh3R0hB
WWNCaHdHSEFZY0JoCndHR2dOQXc0QWFRMFZMdUtIQVljQmh3R0hBWWNCaHdHSEFZY0Jod0dIQWFj
QU9Kb3dHSEFZY0Jod0dIQVljQmh3R0hBWWNCaHdHR2cKTkF3NEFhUTBWTHVLSEFZY0Jod0dIQVlj
Qmh3R0hBWWNCaHdHSEFhY0FPSm93R0hBWWNCaHdHSEFZY0Jod0dIQVljQmh3R0dnTkF3NApBYVEw
Vkx1S0hBWWNCaHdHSEFZY0Jod0dIQVljQmh3R0hBYWNBT0pvd0dIQVljQmh3R0hBWWNCaHdHSEFZ
Y0Jod0dHZ05BdzRBYVEwClZMdUtIQVljQmh3R0hBWWNCaHdHSEFZY0Jod0dIQVlXYXl3bytNdGYv
dEpZdXVyNjZUQVFpUUVwWmVRemxRZHVIcWxneVpVeGlRRkgKNHlheDcrb3VBd09PeHN2QXNxdWph
QXk0RTVDaU1lemdPd3c0RERnTU9BdzRERGdNT0F3NEREZ01PQXhVTU9BRWtBb3EzSVhEZ01PQQp3
NEREZ01PQXc0RERnTU9BdzRERFFORVlhRFFxV0g1RTVqMitCS3kvLy8zdllwbGxsdkdEZGRjT0Ex
WmlvQ2kxS1IzenlFcUV1VVlaCndVQ2VOZFVXR3MvVEJ5TklkNVhXRFFZY2pkZk5VTG1HeG1EQVQ4
ZnVCQ1FHVVhHUERqLzhjTEhSUmh1Sjk5OS9QNjZZMW1kVHBrd1IKMDZaTkUxOS8vWFhsNzhrbm54
U0RCZzBTLy9yWHY3aXVzODgrVzN6MTFWZVY1eWlMdkR2dXVFTnJXK29OMk5peFl4a0hIcDdxcmYy
dQp2ZWt4MEpqSHZCN1hDaE5yYW5xcWluOURkeC9xY1J6ak1hVC9hV09lNS9xeG1RelIwWGd5anJL
VWFJeDA3QVNRTEpSQzd5eTMzSEppCm0yMjJFVzNidHExQXdJN3cwVWNmTGM0Ly8zenhuLy84cDVL
djYrTExMNzhVdzRZTkV6Tm16S2o4UGZiWVkrTCsrKzhYQ3hjdTVHcXUKdXVvcU1YWHExTXB6bEow
OGViSzQ3YmJiUkZrNzFuLzcyOS9FWG52dEpVNDU1UlR4ejMvK1UxZjNjOEU1K09DRHhjQ0JBM2xz
Y2dFcQorR1VJU0tDZi9mZmZYM3o0NFljRjExWThlSlA5c1dITVRjMkZlbGtyL0JSb1lrMzExNi9q
V25jZmJCMUhVM1FkTmtZMnpQTmd1MHl1CmU4RzI2TDUzTks0Ym8zL0NhNHgwM0NoVnNOS1F6OUNo
UThXYWE2NHBGbDEwMGFyWHZKT1BHMjY0b1pMLysrKy9pOTkrKzAxODhNRUgKNHA1NzdoRUhIbmhn
NVptT2kwVVdXVVEwYmRwVTdMMzMzaFZ3Ly9kLy84ZkN4aHByck1GNU9ON3ExcTJiYU5PbVRhWE1x
RkdqUk5ldQpYWVgvNkt2eXNJQ0w5dTNiaTMzMzNWZGdwd1JNLy9ycnIxOUFMY2tnL2VvUXl5Njdy
Rmg4OGNWRjkrN2QrY1hYWG50TkRCOCtuRSt4CkxydnNzbVJnSlpWQUd5R0FiTDc1NWl4c1RwbzBx
YVNhaTZtbTdQN1lOdWFtNW9MTmE0Vk5hMnBXcWkrckQ3YU9veW02OXNiTHRubnUKdGN2N0xYdmQ4
K3JWK2V0b3ZIZytwckhUc1JOQUVtYnNlZWVkSjVaY2Nza2FBV1QyN05uODVuSEhIVmNENFk4Ly91
QjNhaDVveU1DTwptRi9vbVRWclZnM1V1KzY2U3pScjFxeVNEeldzc3RPbm4zNHErdmJ0YTB6NFFI
K2ZldW9wOGROUFA0bU9IVHVLLy9mLy9oL2I3VHp5CnlDUGk1Sk5QRnQ5Kys2M28xYXVYT09xb284
cEdEZGNIR2pubm5ITUVoRllJUUJDUS9Ba0M1WlpiYnVuUHN2cmFsdjdZT09hbTVvS3QKYTRWdGEy
cVdpVlZtSDJ3ZFIxTjBqZkd5Wlo3YnN1NWxvZUdrZHh5TkMxRTBqVGQyT25ZQ1NNSXNoTzFFaXhZ
dHhNb3JyMXhWMG1QcQpYM2poaGFwOEhMMGVmL3p4WXVlZGR4WlFoOEpPaUs2RUU0elZWMTlkK0lV
ZW5MUzgrKzY3bFNxZ1pvV2pQUDhKQ0FTU3N0UGpqejh1CnJyNzZhb0VUbWlXV1dLTHM2cmsrQ0Jn
dnZ2aWl1UGZlZThYcnI3OHVOdGhnQTlHdVhUdlJ2Mzkvc2Q1NjZ4bHBrMWNwaE5xTExycEkKdEc3
ZG1rKzFMcmpnQXU4Ui80S09OdDU0WTc3KzVaZGZ4RkpMTFdVTWoxVU5pN2l4cFQ4MmpubmV1WERF
RVVlSUk0ODhVbXkzM1hZUgoySy9OdG5tdHNHbE5yY1djV2s1WmZiQjVIRTNRdFRjNnRzeHpXOVk5
RHk4NmZ4Mk5DNUdYeHBQR293ZzYvdWFiYjhRWFgzekIvSTZxCm95UlRkT3dFa0FRS2dkSDN4UmRm
WEhVQ0F2V3JWMTk5VlZ4eXlTVmlwWlZXcW9LQW5mV1BQdnBJOU96Wms0bWdWYXRXVmMvejNvVHQK
aHZudFRTQ0FoSjJBRktsK05YNzhlTGFIZ2FBQjNlRG5uMytlamZQSGpCa2pWbHh4UmU0eTdFRWd5
TTJiTjAvY2ZmZmRvaytmUG1MRApEVGZNaTQ3RTk3ZmRkbHVCUDV4OFRKOCtuZFhpZnZ6eFIvSE9P
KzlVR1B4RUlCRUYwTS90dDk4KzRtbHk5bUtMTGNhTGhKK0djRkl6CmQrNWNzV0RCQWg1SDBONHJy
N3dpbGw5K2VYSGxsVmVLZnYzNkpRTTJWTUtXL2hRNTVrbW9MV0l1NExUMU5yTGh3cHpCYVpucW1s
TDAKV3ZIdmYvOWJRSERHaHNocXE2MldoSnJLYzl2VzFFckRVbHlVMlFjYnh0RW11dmFHeWVRODk5
cUFYMXZXUFgrYmRGdzNKQnBYd1VjUgpOSzVTcnk0NkJ1OHdaTWdRTmdOWVo1MTF4RTAzM2NROEZq
UStWSklST2lhR3RWRWtHZ0NFZ09ZLzFRN1R4MVdTcHlzdVRrS0hKTnNPCnZpWURZVW1NZ0NUR1g1
SUtqVHoyMkdNbEdYdnpNOUxmbDJRVXJscEZxbktqUjQrV3hQQld2VU5IZUhMQWdBR1ZQTEwva0NR
QlYrNXgKUWNieWNzU0lFVlY1T20rSVlaWmttTVovd0FYWnFFZ1NnaXBWM0g3NzdmS2FhNjZwM05P
T3Z1elNwWXQ4NktHSEtubEZYOXh5eXkzeQoybXV2bFhSa0xtZk9uQ2s3ZCs0c2FZR3R3WlZxTzBn
WWtIVFNwVnFjeTlGcFVFMzVmZmJaUnhJREoybmhrQmk3SGoxNnlEUFBQRk9TCjRDWkpZSkx2dmZl
ZS9PeXp6NWoyU0oyczVuMlZESS91OFpzMytXR1o2bzlxSDNTUHVVcTlSY3lGelRiYnJMSjIwVW1Z
UE91c3MrU3YKdi80YTI1eWkxd29TUGlUV1I3S2prdVIxTDdZdC9vZEZyYWwrdXZUWGwrVTZDVlpS
ZlFocnF5M2phQXRkaCtHbzdIbHVhdDFMb3NzdwozRVRsSmNGcVNEUWVoWU5nZmhFMEhxd2o3ajR2
SFlQbklvMFA1aDlvazFlQ3p3TC9FTVZuMlVESCtUbVNPSXhhOUN4cHdvVTFsVHhjClNaSWkrUkUr
dUdSUXpVd2k3VVp5SGdhd2QrL2VrZ3p5SkxsUWt5ano4Y2NmaDRIU2toZjhHRVV4SVNRSlY5Vlh0
QUNDeXNBazA4bUMKL01jLy9pRkp6VW42aVp1T01SbFAva1pCb0tQalFmbkdHMi80c3d1NWhwQjQ2
S0dIU2pxVmtzQWhCTVJPblRySmwxOStXWklkaHFTZAo1WXB3bWRRQUNEQm5uSEVHTTRRUS90SWtM
QTdreFV5Q2ZnQURRaGlkZnNpVFRqcUo4ZUNORytpSVRvdlNnSTR0bTRYMm93RDZZWm5xClQxVGIv
UGs2eHh6anZPcXFxMHJ5SnVldkl2SmE5MXp3Q3lBZS9rRWZvQ05zZ29TbEl0Y0t6SE1JemZoZ24z
NzY2V0hWUitZVnRhWjYKZU1GdjNwUUVxNmcraExYYnBuRzBnYTZET0RJeHowMnRlMGwwR2NSTjNI
MFNySVpDNDNFNENIdW1tOGJENmdqTDAwSEhFRHBBbTIrKworU1p2QUdPTkp0VnorZHh6ejRWVnlX
Vk44eVBPRFMvTnhLZ0VBKzlqamptR0g4TWJ5WTAzM3NqQkIrSDZsaGh0OXZTRVdDQlF4NEtuCkxH
SWNsZFVqb3VwTWszLzU1WmV6K2dNOEpmbi85dHh6VHpad1RnTXJiOW1XTFZ1eXVoVlVSV2hYdjhy
MmhTWjFqWkUxUEdOQmZRbHUKaFl0TUR6endnTmhqanozWUhmQWhoeHpDK0tJVEVEWSszM3JycmRr
VEZna25ZcWVkZGhMZmZmZGRiRk5BRHgwNmRHRFZPMklLMmM0bgo5b1hBUXhJNHhDcXJyTUlxZmRE
TmhIdGt0QTB1aTJFTEF2cEJJaUdXMWRVQ3IxdDNhMnQvZEk0NWtBNUhCcUNONzcvL1hta015cGdM
CnNBdUNtaDRKK2twdDByRldnRDV4ckUrbnFmd0hWZE8wS29pMnI2a3F5RFRaQjVQamFCdGRtNXJu
dHE1N0tyU3JXcWJlYVZ5MW44RnkKWmRCNHNFNWRkQXozeUZCckI1OEtGU3pZNEVKOU04b0cxd1k2
ZGpZZ1FXcnczUWM5RStIUnJiZmV5Z0h0NEtJTzdsSzMyR0lMZmdNTQpKSmhZdUo2RjBTZ0VscUlU
WEFPRHVZZkJ1ei9SN25wTm52OTVVZGN3bkliaFBVbmNWVlhBN3NOdjcwSGlPTHNPaGdjUkdJY1hs
VWoxCmkrMU5ZUDl4M1hYWGNhd1VPbkZoRHlvdnZmUlNwVm9JYkJoUDJtMFU4UHdSbHVBdUQwYkFF
RHhoc0VYSHBXSEZFdk5PUGZWVWdUOHYKQVJZY0ZVQWdnVkU2bkFlZ2prMDMzZFFyWXZXdmJmM1JP
ZVllNHVGU0dneS9xa0VmM2l0cUxzQ1dDd0l6YklQZ2tFSTE2VmdyTUk5ZwpyM1RGRlZkd2pKb0hI
M3l3eWlPZlNsdHNYMU50NzRQcGNiU0ZyazNQYzl2V1BSVzZUVlBHNUR6VlFlTnAraG9zV3hTTkIr
dkJ2VTQ2Cmh1RTUrQ21FZjBEOE4yeFdJRlpka3laTndxcm1QTk4wN0FTUXlLSDU4OEZ1dSszR0RD
RU1kUER4aDhFM0RKalhYbnR0L29XN1ZPeHEKSXo3SFFRY2R4QXdzSFlPeG9KSUFXc3RqTUxDbzM1
OHdnZE13Si81MzgxemZmUFBOZkVJUU5FaDk5TkZIMlZnVnNNSElUNWd3Z1JrMApDRTZZSUVXa3Q5
OSttNFVLeEdTQkJ5a3dUaGdYQ0NJNGVRQ08vQW5qK2RaYmIvbXpxcTY5RTR0bm4zMldUNzdnMmxk
SFdtR0ZGUmdYCkVFSWcvQngyMkdIaXpqdnZGTTg4ODR3TzhLWERNTmtmM1dQdVIxNGE0UVB2RlRF
WGNHS0hYUzFTSC9RM1RmazY3MXFCR0RyWWRNRkgKRG02KzhZSExrbXhmVTFYNlpMSVBKc2ZSQnJx
MmFaNTd0R0p5M2ZQYW9QdTNubWs4RHk2S29QR3c5dWltWXpJSDRJMXZzdnRnVFk5Qgpnd2J4WmpC
NEc5VlVOaDA3QVNSaFpIQWtCNDlXWUdBaFNlTERDNWU4SjV4d0Fxdk40QmRIWDk2SkJ3TElnWWtz
SXVIa3dKLzgzcS84CitiZ09sZzNlQjh2bnZmL2hoeCtZZ1NhRHB5cFFVTlBBUlBOT2lzRElsUkY3
QTlIaG9kNEU3MUZJelpzM0YvQnljZDk5OTdFcjNxcEcKMGcxT1J1RHFOQzZSZ2JqQW44NkVrelBn
emtzUWtBNm5VelFFanF6SFpMSS9SWXg1bGpIUVBSZWczb2tUT3V4c3FYcXpDODUzSFdzRgpqdkp4
U3BjMzJiU21adTFMV1gyd2FSeHRvR3VNbHkzejNFODdKdGM5Znp0MFh0Y3pqV2ZGZzI0YWoydUhi
am9tTzBXdURqd3FoQkNFCmlpQm5POHlmeHJYRC82eHNPbllDaUIvN0lkZlFlY1p1T1Z5Y2VVd2hZ
bTk0akFCMjlNbUlXR0R3SVhGaXdNbTRPUVNTL2l3d0ZXRHcKL1lFSlVjdlBQLzljc1NmUVgyczRS
QWdWVUI4Q280KzRHMUJiZ1ZDR3RrRlBQSTBVSGw1RHVselVSNFpkckNNUGYrWTRYWUR3RTNZeQpC
TUZrNGNLRkFxcFlaU2ZvWWNLZE0reG1rTEFEQVZXK2VrMG0rMlBMbU91ZUMxQjE4alk0c3RLRlRX
dUZ6V3VxS241TjljSGtPTnBDCjE3Yk1jeit0bUZ6My9PM1FlZTFvdkZnK3BrZzZoc3E3WCsxZGxT
N0twbU1uZ0NTTURJUVBHSHJDZ1BtMzMzNFQyT0VIRTR1ZEtmeEIKM1FqMkFCZGVlQ0VIdDROT0hi
bXdTNENhN1hGd053enRnckVSL1BENzA5U3BVeXM3LzE1KzNBNm9WeWJyTDNRbVVTZE9GeUJCejU4
LwpYMnkxMVZZQ3AwRlFKNEx1ZU5rSk1STmc2STVGRkVFSFlaY3lidHc0OGNRVFQzQmtkSzg5RUJi
SmRUQ3J0a0RGcGV4RUh0VEV1dXV1Cnk3dmI4QWVPVXpiWUcwQ3doQjRuQk51SkV5ZXlHbG5aYmN0
U244bisyRERtUmN5RkxNS0hyV3NGYU1xbU5UVUxqWmZaQjF2RzBSYTYKQnU1dG1PZEJ1akc1N2dY
Ym91dStySG5ha0drOGJpd2NIVk1NblRnRXVXZUMxV01vN2djSHJZT0hKMDhYSEFzeS9wQndHbkwy
Mldjego4NGpURUREZlVQL1JuWUlURlI2NnZEYjQ2OElKRFR3cDRRL3RCVU1iZk5kZlB1ODE3QmN1
dmZSU0FSMUVwRjEzM1pXTlZLRXZqdUI1CjNzbFIzbnJTdkErN2o0Y2ZmcGk5WDIyNTVaYjg2c2lS
SXdXNUx1WnJuSGdncU51VFR6NHBNSzQ0c1RHVklMekN0Z1MyS1hBcWdGTTEKNkhtM29pQ1dFRERy
TFpucWp3MWpic3RjQ001M1c5WUswRExVSEd4WlU3UE9yYkw2WU1zNDJrTFhHQzhiNW5rWTNaaGE5
OExhb2lQUAowWGl4Zkl5alk2SlNXdUFhUlVKWHZUL1ZEc04vTWtYd2xtU2NYUE5LMzc1OVEzM2dJ
OWdkZkM4WGtjakRWRTBnd3JCNkVFK0NET1U1CjVnV3A5RWphUVpWMENoRld0Tkhsa2FjSURraUlR
RXZBQ1owTU5YZ2NlSFN2WTdycmhGVVc0aHZqbU51NlZoUzFwdXFreXlSWVJmVWgKYkQ3WU9vNWhi
VFdkMTlEbmVSSmRwc0YvRWl4SDQybXdxYmRzWTZManZ3QjFSSXdOUG5rMkcraW9hcGR4dW9DZG43
QUVONjR3Y0M3VApYZXBycjczRzZrM3d0cVdhc0xPT25YVDh1ZFE0TVpDRjlxTXdwUk5XVkIwdVB6
OEdiRjByaWxwVGRkSmxFcXlpK2hBMjZyYU9ZMWhiClhWNnhHRWlpeXpTMUo4RnlOSjRHbTY1c0dn
ejRhYzhKSUdrdzU4bzZETlFoQnZ3VFhsWDRqdXFtVGxoUmRiaDhoNEcwR05CSmx6cGgKcGUySEsr
OHdFSVVCblhTcEUxWlVlMTIrdzBBWUJ2eTBWM3kwdkxBVzFIa2VtTGlubjM2YVhiZENYOThsaHdH
SEFZY0JoNEhzR0dnSQphMnBENkVQMkVYUnZOZ1lNT0JwdkRLTmNYaCtkQUpJUjE0Z0xBa1BLRFRi
WWdBTVZaZ1NUK1RXNDVvVGJXSGlac2kzQi9TM2M3eUlJCm9Fc09BNDBaQXpiTUJadlhDajl0bUY1
VC9XM0plbDFrSDJ3YVJ4dm9PdXNZdWZmeVljRFJlRDc4dWJmL2h3RW5nUHdQRjhwWE9FSkMKWUQw
RXJvT2IxS1dYWGxyNVhWMEZJWHpBelN5Q0h2N3RiMy9UQlZZTG5HV1hYWlpkRmNNUE5ieE11ZVF3
MEZneFlNTmNzSG10OE9qQwpoalhWYTB2VzM2TDdZTk00MmtEWFdjZkp2WmNkQTQ3R3MrUE92Vm1M
QWVlR3R4WW5sUnlvVjNsdWR5dVovNzNBVVNSY3BTSW15S09QClBpcSsrKzQ3OGNrbm43QTdWUWdH
dzRjUDU2anB3ZmQwM3FOdStPcEdBRURiRXVLakFIZUlCV0p6UWl3VlJIaTJNZG5jdGl6NHNxVS8K
WmJmRGhybGd5MXBoKzVxcVF0Y20rMkRMT0FKUE50QjEzSGlWUGMrajJtSkxPNkxhRjVidmFQeFBy
TmhBNDdiUVR4SHRjQUpJMk96NwpiOTZISDM0b3lLMHVSNlpHZEhHb0ZNMmJONDg5WStIVTQvdnZ2
MmNCQUNIdklZeXN0ZFphb21mUG5tTEJnZ1ZpMXF4WllyZmRkb3VCCm52OFJnZ3NpaU4xeXl5MlhI
MWhPQ09RNlRxeXh4aG9WS0MrKytDSUhTQVFlUm93WXdlcHFKNXh3UXVWNVdSZkFrVCtRR3dURlNa
TW0KaWNjZWU0ekh5Vk9oUTVCSkNJMWxCaU8wdVcxWnhzZVcvcGh1aDQxekFUaXhZYTJ3ZlUxVm9Y
dVRmVEE1anJiUnRlbDU3dEdLTGUzdwoycVBqMTlING4xZ3NnNC9SVFQrQTk5TlBQNG1WVjE0NUZT
bm9ib2RTNWJTVDN5Z1NJU04xSEJBZ1p2ejQ4WklFQzBtdWIrVzBhZFBrCmp6LytXTUhYcmJmZUtp
Ky8vUExLZmRrWDU1MTNudHg5OTkzTHJqYTBQdmdOcDhDRGNzcVVLWExNbURHU1RvRWs3UjVJVXNP
U1o1MTEKbHZ6eXl5OGxUUW9KSDlkbHBudnZ2VmRTUUVKSndSa2xxVEJJVWgyUVE0Y09sU1FrVmpX
REFnQnltMTk1NVpXcS9MaWJ1WFBueGoxTwpmRlprMi95Vlo2VjlQd3p2T2c1V1dmM3gyaEwxYTdv
ZE5zNkZvdGFLNjYrL251ZDExRmlFNVJleHBzYlJaVmdiNHZKVVlCWFJoN2cyCmVjOU1qcU50ZEcx
Nm5udGpVbFk3Vk9qU2ExUFNyd3FzaGtialNUakJjeE0wcnBOK0tCaW03TldybHh3d1lBRHpyQk1t
VEZEcE5wZlIKMlk2NFN2MjA1d0lSeG1FcTR0bXJyNzRxYVZkZmt2MEZCL3VMS0ZaNE5vSWtIbnZz
c1lYWDQ2OEFRUTdQT2VjYytkVlhYL216K1pwMgpUZVRZc1dQbElZY2N3b0pSc0F4SjJKSzhoM0VB
eDFHalJzbC8vT01mTlRCMFo1Q3hwTng0NDQxWitJU3dScWRZa1ZWUVpIUzUxMTU3ClJUNzNQNkJU
RkVrMlFQNnMxTmRGdFMzWUVQK0VEejVMZXg4SHE2eitKTFhaaG5iWU5oZUtXQ3NRZEJWcndVY2Zm
WlEwSkluUDg2NnAKY1hTWldIbWdRRlpZZWZzUWFFYm9yZWx4dEltdWJaam5HS1N5MnBHVkxzTUlL
U3VzZXFYeE1CeEU1WlZONDdyb1orclVxWkkwTzVnSAptekZqQmdkWm5qNTl1cVJZY0ZGZHJjclgx
WTRxb0NFM2Z0cHpSdWlFalRRSmFsaDMzWFdYb0ErQmdGcldMNy84a3VaMXJXV2hOdFN5ClpVdXRN
T09BNFlpT0pPekk0SXpyckxPT0lNbGIvUEhISCtMTU04OWtIV0UvUEtKRjhjTVBQNGhQUC8xVW5I
YmFhWUlrZGYvalFxNWgKaDRLZ2tiUndDb3A4THRaYmI3M0llcUJHOS9ISEgwYys5eDdRQ1k5QU1N
aTg3UytpYlY0YlRmemEwaC9kN1lBYVllZk9uUVV0NXNwbwpMV0l1d1BYMy9mZmZMeENjTG0zU3VW
YlFKZ1RQYnpqaWdGNXc2OWF0MHphbnFyeE5hMnBWdzFMY2xOVUgwK05vRTEzYk1NOUJJcnJiCmtZ
THNTaTFhanpRZWhTRHdiclFCR3NxL0ZVSGpVZTFBdmk3NndkcUF3Tm13VzNubW1XZkVFVWNjd1dy
eFdLOVZrcTUycU5UbGxYRUMKaUljSnhWL1lEeHgxMUZGTU5OMjZkUk9USjA5V2ZGTi9NWkpZMlF1
WGZzaTFFS0ZUT0hqd1lISEFBUWNJRURxSVBDeTkvLzc3Z3RTWgp4TGJiYmx2emVNaVFJWXczT3Yw
UUpLRUxPcEdvS1ZORXhnb3JyQ0E2ZGVxVUNQcXBwNTRTWGJwMGlTejMrZWVmaSs3ZHU0dUJBd2V5
CnZjOGVlK3dSV1ZiMWdhNjJxZFpYZERsYitxT3pIWFBtekdFQmR1Yk1tYW5RcDNNdTRPUGZva1VM
MGJ0M2I5NzR3TnhQazNTdEZSRGkKQncwYUpQcjM3OC8yYjV0dXVtbWFab1NXdFdsTkRXMmdRbVpa
ZmJCaEhHMmlheHZtT2NoRFp6c1V5TTFJa1hxajhUZ2tZUjNESnZMTApMNzhjV2t3bmpZZFdFTWpV
UVQrdytRQ2Y4OTU3NzRuRER6OWMzSGJiYlFMOWdNYzYxYVNqSGFwMW9ad3pRaytETFNvTEpwUlVp
d1ErCnZIQkpoOEUybFNEQnd3MXdrZW5mLy82M3VQbm1tOW40SHNia09FbllmdnZ0STZzOCtlU1R4
WWtubmxqekhJYjZPQm5wMGFNSFAxdHoKelRYRlZsdHRWVlBPVkFiWjgvQ3V3UXN2dkJEYUJIZ0Z3
WmhqNXdSRzdhTkhqMllHTExTdzVzeWt0bW11cm5Cd3R2Ukh0UjF3dHcyQgpPdTcwTEF4cE91Y0M2
Ry9GRlZma2FuQlNoN21VNXNPaVk2MGdXeXJlWExqcHBwdkV0OTkrS3k2NjZDSXhidHk0c0s2bnly
TnBUVTNWCmNGL2hzdnBnd3pqYVJOZStJWWk4TEhxZVIxWWNlS0RhanNCcjF0eldFNDBuSVEzcjV6
ZmZmTVBlUzhQSzZxVHhNUGhaOHBMb0J4dS8KenovL1BHOVVrVzJ5SUZVeTBhRkRCOUcxYTljczFV
VytrOVNPeUJmREhvU29hRFhJTE9wN0ppUDBJRElvcm9WczE2NmRwQUNBc24zNwo5cExVRDRKRlNy
dUhVVFV4eklYV0I4UDdpUk1uY2gzejU4K1B0VG1oMHlBMjJQL1h2LzVWMDZZMzNuaERrbUJTazI4
NmczWVU1UmxuCm5DR0p1Wk5QUFBGRWJIT0k4Wko5K3ZTUjk5MTNYMnc1WFEvVHRDMnVUbDIwanpy
eXdOTFZuN2krcWp3cm94MUZ6QVhNUmVqNVFxODMKYmRLeFZ2ejY2NitTVGtFbG5XUktVckdVQ3hj
dVROdU0wUEk2MXRROGRCbHNWQlpZT3ZvUWJFZll2ZWx4dEkydXczRGs1WlV4ejcyNgo0bjUxdFNN
TFhVYTFLd3VzZXFMeHFINTcrUlF5UWRLbUtEdkg4Zks4M3lKbzNJT2Q1VmVWZm1DN0FpYy9kS3BU
cVFiWDc3enpUdVUrCno0VnFPNUxxOE5PZU93RWhiS1JKTysrOE13Zi91L3Z1dTluOXJja1lITkQz
UzlvRmhaVGZyRm16S2xlMGFmb0xsU1B5YmlWZWYvMTEKaGdQSk9pekJkZ0txYWVlZWU2NVliTEZh
c29JZUlpUjBXeEo1c0JJUFBmU1FJQzhSN0RvWjdwV2JObTBhMjd4ampqbEc0Sy9vbEtWdApSYmNw
RDN4YitsTldPNHFhQzhSOFpoNEdIV3NGM0gzRExibnVaTk9hbXJWdlpmWEI1RGphU05kaDQxWFdQ
QStyMjU5blN6djhiY3B6ClhVODBudFRQdGRkZU83UklVVFFlV2xsQ1pscjZnZTBLVXZQbXpRVnQr
UElwTlRuZ3FRcVBrRkJsNk9PMDdRZ0ZFcEZaeXlsR0ZIVFoKZjJJQWFsZlFIY1FSM1NhYmJNSk10
eW5jUUNVRFJ0MVJDVWFyczJmUFpvUHZxREpKK1FqU0IxV0xwQVQxREtnbXdRamRuekNoNFV1YgpU
azhFQ0xtSVlEYisrbFN1SVR3Q2I5dHNzdzJyaStHamJrdXl1VzFaY0dSTGY4cHNoNDF6b1l5MUln
dDk0QjJiMWxUYisyQnlIRzJrCjYrQjRsVG5QZzNYNzcyMXBoNzlOZWEvTG1xZU94b1hJUXovWUFO
WVZBRHBQTzFUb3pRa2dLbGdLS1FNanBsYXRXb2wrL2ZxRlBDMG4KQzBIellCaUduUWt2MGZHWGdP
QUJHd1ZFelNVLy9kNmpRbjkzM1hWWHRrZnhnaUpDOElBbkxBUS93MjREQWdEQ1hnYUd0RGdwb2Rn
ZwpZdm5sbHkrMFRWSEFEenp3d0toSHh2TnRibHNXNU5qU256TGJZZU5jc0dtdGlLSWpHOWJVcUxh
cDVoZmRCNVBqYUNOZEI4ZWx6SGtlCnJOdC9iMHM3L0czU2RlMW92SGcreGhiNktid2RTZnBhRGVV
NVRiNksvbnJlUHBGbkFRNzJBaDFDazRrTVV5VjU0cExFNUhOTUNzUzUKb0dqa2tneThaWm9BTkVY
MGdhS0tTeEk2S3FCaFIwSWVGdVRqano4dVNYQ1QrK3l6VCtXWnV5Z1dBenBwWHllc1ludHREM1Fi
NW9MTgphd1ZHS3UrYXFwTXVzOExLMndjVmlyVnBIRzJnYXhXY05aUXlXZWt5clA5WllUa2FkM3hN
R0QybHlmUFQzbC93SW1VMCtJVGpReS9sCjZUSzhKQ0dPQmVKQVFPWElkSUpLMDRNUFBzaXhBWlph
YWlrK2VvTjcyREE3akRMYlNzYXkzQ1o0WUNBaktENlJnZGNyeEZDQlJ5d1MKUU5qckZOcnNVckVZ
MEVYN2FLVk9XTVgyMmg3b3Rzd0ZXOWNLSFd1cVRyck1Ba3RISDFRcDFwWnh0SVd1VmZGVzcrV3kw
R1ZVbjdQQQpjalR1K0pnb2VrcVQ3NmM5SjRDa3dSeVZ0Y0dHSVdXVGpSV0g0RUdlcGNTQ0JRdEV4
NDRkT1lhSURVS2JNWVFZcXRnLzRmTUkzMmkrClRsaUcwR0drV2pjWG90R3VZMDNWU1pkWllPbm9R
elNHN0gzaTZMcThzY2xDbDFHdHl3TEwwYmpqWTZMb0tVMituL2FjQUpJR2M2NnMKdzBBZFlzQS80
WjBBVW9jRDZKcWNpQUZINDRrb2NnWHFIQU9PeHV0OEFGM3pHUU4rT2phdlErUUd4V0hBWWNCaHdH
SEFZY0Jod0dIQQpZY0Jod0dHZzBXREFDU0NLUTAzQjlVSkxJbjVFbkN2YzBKYzBaU0xHQjZJMEgz
cm9vWUlDMEdpQ3FnY01CZm9SaVAxaFE3SVpUMy83CjI5L0VxYWVleWpGSmJNQlYzamJZMHA4ZmYv
eVJYVC9uN1krTzkyMllDemJPQVJ2WDFMVGpYWFlmYkJwSEcramFsbmx1eTdxWGxuNVYKeWpzYUw1
NlBzV1ZlbDA3SHBKTFJLQkpOdEZ4ZXNDaG9uYVJnZkl5ckR6NzRRQ0lxOWdFSEhDQzMyR0lMam9i
KzFWZGZHY0hqVTA4OQp4ZjN5Ujc4MDBwQkFwVFNoSkxuYmxSUjhNUERFeksydGVBSTJicnp4Umg3
RE9YUG1GSUtjdkxUdmI1UUtyS0w3NDI5UDFQVWZmL3doCktWNlBKRmZVOHJYWFhvc3FWa3ErTFhQ
QnRqbWdjMDFWb1V2VndVNERTMmNmVk50bnl6amFRTmMyemZPaTE3MDBkSmxFUzJsZ09Sb3YKaDQr
eFpWNlhTY2Z1QklSbW9rcmFaWmRkeENHSEhNS3hLM3IxNmlWbzRST0lDbzVkZm5Jdnk4YnBLbkIw
bC9uODg4L0ZUanZ0Sk9BZgpIbkUyUHZyb0k5MVZaSUtIYUp3bm5uZ2lld3ZiYmJmZHhDMjMzQ0wr
ODUvL1pJS2w0eVZiOFlTKy9mT2YvNTEzb0hzQUFDQUFTVVJCClZCU2RPM2NXbTIyMm1ZNnVHb2Ro
UTM4UVFCTjBoL2d6cTY2NnFsR2MyRElYYkpzRHRxNnBhWWpGUkI5c0dVY2I2TnFtZVc3RHVwZUcK
ZGxYTE9ob3ZoNCt4WlY2WFNzZEprbkpEZVU2VExkY0pDUER3eXkrL3lGZGVlYVdDa3YzMzMxOFNr
eVBobTcyTTlOTlBQMGtpanFxcQpjTXB3NVpWWHlpRkRoc2hGRjExVTl1N2R1K3E1cVp0Ly9PTWZF
anNucENJbXllaUljVDk1OHVSU21sTlBlQUpDTUdiMzMzOS9ZYmpSClFmdGU0MVJnRmQwZnJ5MUp2
OWRlZTYwazlVVDU3My8vbTArWjdyenp6cVJYQ25sdVlpN1V5eHpRdGFhcTBLWHE0S2FGcGFzUFll
MnoKZVJ4TjBIVVlqbXlaNTBXdmUybnBNZ3hYWGw1YVdJN0c5Zkl4TnMvck11blllY0dpbVpnbGpS
dzVVcERhazRBdjlDV1hYRElMaU5Udgo0TFRsM0hQUEZXM2F0T0hUQkZJRkU3ZmVlaXZIL09qUm93
ZEhaZDkrKysxVHc5WDVBaTF3WXV6WXNZS0VNckgrK3V1TERUZmNVR0NuCkRHMUhsUFF5NHBPVWhT
ZlkvcXk4OHNxcDBQZmNjODhKakJFOFFkQ2l6alMwMzM3N0NSSm1HVC90MnJVVEJ4OThzRUI4Rk5n
WHpabzEKUyt5Nzc3NWk4Y1VYVDFXUHY3RGY2d1RHSjA4S3dqTFJuN0QyNDZUajU1OS9GaFNVcy9J
WWVLWEFuR0xHakJsaTd0eTU0cHh6emhHbgpuWFphNWJuS3hkTlBQeTErL2ZWWEhpLzBuVlM2MktX
MHlyc201MEpaY3dBeGlMcDM3eTZ3RTUwMzVWbFRnM1NacHkxNVlPWHBRMWliCmJSeEhrM1J0eXp3
M3NlN2xvY3NnYmVXQlZhODBIc1JCM0gzUk5GN1V2TDc5OXRzRmJmVHllcnowMGt1TGdRTUhpbTIz
M1RheXE2YnAKMkFrZ2tVTVQvUURCOUREUStQaVdKWHg0cmNIeEdKaWkrZlBucy9FN0dDdUtNbDRW
bndHQ0VkbXJzRHJXSnB0c0l1aVV4SHRkeSsvbwowYU5aSFEycVo4SDA0WWNmQ29wMkxvNDc3cmpn
bzFMdmk4YlQ4ODgvTDhhTkd5ZnV1T09PVlAxNjhza254VEhISE1PQ0dKZzI0QkFNCkhBUkxwQ3V1
dUlJRk5qZ1dRSUlBY3RKSkp3bmF2UmV0V3JYaXZMVC84bnhzZ25VRllabm9UN0JOM2oyZEJJcTMz
bnFMMVNNaG5HT08KQUxkUW1keDc3NzNGTXNzczR4VlYrcDAwYVpKQThFelN6V1gxeGgxMjJJR0Zh
dEE0QlA2a1pIb3VGRDBIc083UWliQTQrdWlqeFVZYgpiWlNFanRqbmVkZlVJRjNHVnBid01DdXN2
SDJJYXBadDQyaWFybTJZNXliV3ZheDBHVVpYV1dIVks0Mkg0U0F1cnd3YTF6MnZ3UmZDCm1MMVpz
MlppNDQwMzVzMnk4ZVBIOHlad2h3NGRRcnRybW80RlNYcU5JaEgyYzZ0Z0FWRXdGQ0tiQy9uNzc3
OHozbUFFWnlwQjdjcXYKdWtNNmhITE1tREh5M252dmxTTkdqSkNiYnJvcHEwRFJ6ckMySnVLNG0z
YVNKZG1haE1KODl0bG5XUjBzOUtHaFROMTRldlRSUjJXVApKazBrTGNhWmVnUlZOQXJRS01rbVJu
YnExRWwrLy8zM0ZUaTBJTWpERGp1c2NvOExxTExSVHI2RTBXZVdwSXYyVVhjWXJMTDdFNGNECjBQ
cWJiNzdKWXdNamRIK0Nvd2pNaXdNUFBGQ1N2UTMvUW8wa0xMMzk5dHVTUElKSUVseXErb3ozSDM3
NFlZa2o5S1NrZXk3TW5EbFQKMG9tcnBFMkhwS3BybnV1ZUExZGRkUlczNVl3enpxaXBLMjJHampV
MWpDN1R0c01ybndXV2pqNTQ5Y2Y5MmpDT050QzFEZk84N0hVdgpDMTFHMFZJV1dQVks0MkU0SU05
ZXJKcUwzN0NrbThiRDZ2RG42WmpYcEEwamFmTlhna2VqVFU3bS9iNysrbXNKZmlVdW1hUmpKNERF
CmpVemcyZXpac3lYdGdzcnAwNmRMY3AwcWh3OGZ6c3c0N1FCS1V2ZVE3Nzc3YnVDTjRtN3BDRSsy
YmR0V2hqRlE4TlkxWmNvVXJaVmoKb2c0Yk5reSsrT0tMY3VqUW9aR3c0UjNzb29zdWlueGU5Z09k
ZUlJZTdJQUJBNWdoSmNQbUdudWN0SDE3NUpGSDJGT1kvejNZS1VBSApNNWhvQjRQckR1YXIzR2Y1
MkVUQmpZTlZWbitpMnViUEo0Y1IwdThaRHNMNUF3ODh3TUxlWlpkZEpnY1BIaXhwZDBoR2JTQmcv
c0RiCm5iKy91RjUrK2VVWkJnVEZwS1J6THFEOVhuK3c2UkRWN3JBMjZad0Q4TlJHeC9yeXBaZGU0
dlh1aGh0dUNLdFNPVS9YbXVvZkorWEsKSXdxbWhhV3JEeEhOcVdUYk1vNjIwRFVRWThNOEwydmRT
MHVYRmNJSnVVZ0xxeDVwUEtUYmxTd3c2cVIxRU9raFVTZU5WeXFOdU5BMQpyeUZvWUdQOG5udnVZ
ZDZFSXRmek40OVVrQ05xcnM0MlFjZUxFU0c2cElBQmVKamFjODg5QlRIOWduWkh4WVVYWGxpbGZr
VzdvbUxICkhYY1U5SUVXcTYyMm1nTEVmRVdJV0FTNUFHWmJnU0FrSExkRkhia0Z5NnJjbzY1cDA2
YXgvdnkzMzM0cjZHUWw4aldvaExWdjM3N3kKSExZZ3RIZ0oycjBWOE5tT05rTWxacEZGeW5IQXBn
dFA2QWZVMmNpdE1QZU5tTmlxOGE5ME9NVUZDV3JpK3V1dnIzcmo0NDgvcmxGbgpnY2MxMk5JUUE4
MzJOVlV2V0hSalMzOWdzd0Y2ZzJjeEw2MjU1cG9DZjFCcGcyMUk2OWF0dlVlaHY3UTBzeXBYOENG
ODRzT09TY1dqCm04NjVBQThwbm4wTGJLb3dsMVM5ZSttYUF6amloOG9WN2JBSjRJR0VPRUV1RzRN
b1VyNjNiVTFWYnJpdllKbDlzR1VjYmFGclcrYTUKTGV1ZWp5eTFYdFlqalNjaGdFN0pCVzJpaUta
Tm00b3R0OXl5cHJoT0dxOEJIc2pRTmE4Ly9mUlRRU2MzNHYzMzN4ZTBVY3EyaStpYgpxbDJ3RVRx
dWxvRWE3aDJOZVdVM00yMHZzZXUzMGtvclNUSTRsbVMwRS9uNjJtdXZMYSsrK3VySTV6b2ZrRzQ3
cTBCNE1DSHR3dHVQCjdnVDFIMitYYytIQ2hYeXNCOVdocU5TelowOUp3Z3J2RXA5Kyt1bXNyb2Fq
UWFoc2tYNCtxeGZSaEVpMWd4dFZsMHErVGp5ZGVlYVoKa2lhMGxqSEdEc3gyMjIxWDA0V3VYYnRL
ejFzVGRqT2dVdGUvZjMvR1k1Y3VYV3JLcTJUa29mMGcvQ2hZWmZZbjJLYmdQWGF2eUFWMApNRHZW
L2F1dnZzcXFUdHRzczAxbDNVRGZqejMyV1BuWVk0OUpNb1pOaEtkN0xwRE5CYzk1cUlDbFNicm1B
RzArTUMxQ0RZM3NraVRaCjJLUnBSbFZaM1d0cUZGMVdWYXA0b3dwTGR4K1NtbWZMT05wQzF6Yk04
ekxYUFZXNlRLSWpQRmVGVmE4MG5vU0RkOTU1aDArNGNjb2QKbG5UVGVGZ2RYcDZ1ZVkyeG9nMU1W
aDBHYlBDRE9LbjI0dGQ1OVlYOW1xSmpwNElWTmhxQlBQTDZ3TUVHU1NvT1BLbStKU05ocVVNbgp1
aHBxN1IyWUk2aUNrQkZUNVNGc0NxQ21vVHZSTGhPcnEwQkhFUXc0aEpDNEJDRU03b2tSQUE1NjRr
R2hpSFp1SlJrRFN3Z2xSYWN5CjhaU21Memh5aFgwT0dUbFh2UVpiRU5wZGwyKzg4VVpWZnQ0YjFZ
K05TajFoc01ydVQxdzdRVzlrRU0wTHIxY09qTE4vcm5qNVNiL2sKWklBRGFaNTk5dG1TUEpISmE2
NjVoajlhVU9WU1NUYk1oU0xtZ0lyOVN4SitkSytwWVhTWjFJYW81NnF3ZFBjaHFqM0l0MmtjYmFC
cgpHK1o1MmV1ZUtsM0cwWkgzVEJWV3ZkTzQxOSswdjJYUmVCSHpHdlpSVUptRFVBRkJLeW1acEdN
bmdDU05EajBIRS83bGwxOXlTZXg4CmtwdFpTVUVJcTJ3K0lKeGdVdnVOd2hWQXB5NkNoUmVHeTlC
OTlTZkVKL0YyenYzNVpWOVQwQ0pKTG1UNWd4bFdOMDVxeUIydkpCVzIKc01mYThtekcwL25ubnkr
eHdHRUhtWTVOSzMyKzdycnJKTGt1cnR6cnVsRDkyS2pVRndhcjdQN0V0WFBDaEFteVpjdVdiT0R2
bGNNcApYdExtZ1ZmVy93c2FnajR0VGg3d1J4N1AyQ0dBdjB6Y3RlbTVZUE1jMEwybWh0RmwzTmpF
UFZPRnBic1BVVzJ5YlJ4TjB6WHdaTU04CkwzdmRVNlhMS0RyeTU2dkNjalQrcWg5dGxXc2RmSXd0
ODlva0hUc0JwRUpTYWhmbm5YY2VNNDMzM1hjZk16cmtqbGRpVngrTE10UnoKd296QzFTQ3JsY0pK
QnhZUDBodXNlZ0ZHNHRoVmgzQkVPcHVzNHZUSko1OUljaGRieFl4VnZWVEFEWERoR2N1R2dRZERo
L2FyR2thRgp3VkRKc3hWUFdMaHd5b0hUSWFpeVFaMEZIaXZ1dnZ0dVNiWkRFbW9GdXBQcXgwYWwz
aUFzRS8ySmFpZDJmbkR5QmdjUi9rUTZzV3h3CjZNOHI0OXIwWExCMURnUnhyMk5ORGRKbHNJNDA5
MWxnNmVoRFZCdHRHMGZUZEczRFBEZXg3bVdoeXlpYXlnTEwwZmovc0ttRGo3RmgKWHB1bVl5ZUEv
SSttbEs3ZzdRckhXMkQ0Ly9yWHY4cGxsMTFXcnJmZWVwS0N2Y2d2dnZoQ0NVYWVRbEN6NnRpeFk0
MXFFMkF1V0xCQQprb0czcEFBMFZUcWUyRm0zSWNGTEEwNUg0RTJyNkdRem5xRHo2Ymx4Qmg1Z1Y0
QVBRcDgrZlFvUkZyTjhiS0xHSnd4VzJmMkphaHVPCm5ORytNQlcyUGZiWVEvYnQyMWRTREJ0MlM0
aTVpNTJmcks2Tm85cWdtbC9HWExCNUR2anhwR05ORGFOTGZ4MXByclBBMHRHSHFEYlcKeXppaS9X
WFF0UzN6dk94MUx3dGRSdEZVRmxpT3h2L0VwaTRhdDJWZW02UmpGNGlRWm1LYVJINlZCUjMvQ3RM
ZEV3Z2tROEtIMkhYWApYVG5nV1JvNFJaYUZoeHF5MWVESTBJalVEVzg1L3NCRFJkWWRCcHZpS2JE
WE1IalRRTUE5UlAyMklkbUNKOXFGNEtqbkNCNVVSUEtQClBTMmh1YXBRZ1ZWMGY2STZnTWp5OEU1
MzZhV1gxaFFoUFZlQkFKcndWZ2R2SWJTTHlsSHNFUjJkNG9MVWxDOHF3N2E1WU1NYzBMR20KcXRD
bDZwaG1nYVdqRDZydEN5dG5laHpMcEd0YjUzblI2MTRXdWd5akZlUmxnZVZvdkh3K3hzUzhMcE9P
blFBU05VTmRmaTRNa0NxYQpJTFVpamtaTkhzUUVCVzlrRjd6K2hTOVhCZTVsWlF6NGNWNkdBS0xj
c0VaUzBNMkY0Z2ZhMFhqeE9BN1c0T2c2aUpGaTd4Mk5GNHZmCk1PaU94c093a2kvUFQ4ZE9BTW1I
Uy9lMnc0RDFHUEJQZUNlQVdEOWNyb0VaTU9Cb1BBUFMzQ3QxaFFGSDQzVTFYSzZ4RVJqdzAzRTUK
MGVBaUd1S3lIUVljQnY2SGdSOSsrRUdRYmNqL010eVZ3NEREZ01PQXc0RERnTU9BdzBESkdDaURI
M0VDU01tRFdrUjFreWRQRmoxNgo5QkRrbWFzSThIVVBFL3JKc0F0QUJIdWJFeG5vQzRvM0lZWVBI
MjV6TTVYYlJrNFJCQmw3czYyVThrdXVZS0VZY0d0Rm9lZ3REYmdiCng5SlFuYm9pdCs2bFJsbm9D
NDJKeG0za1VjcmdSNXdBRWtyNnRaa3d6Q0hYc1RVUGtFK1JKam5zZmMzRGtqTElPNFVnandxQ1hQ
Q1cKVktOYU5SVElqUmxxaW9LdTlrSkJwZHEzYnkvSTlhMGdOOFdDQXZNVVZFdCtzQlNnVVpCdmNF
SHVEZ1c1anMwUDBEQ0VOZGRjazUwMQpiTDc1NXVLMzMzNHJ0VFZZMFB2MTZ5ZXV2ZlpheG1tcGxZ
ZFVac3Rjc0dtdHNIbE5EUm5DMEN4VGZiQmxIRTNUdFczekhFUmljdDBMCkpkS2NtWTdHaStkamJP
UlJ5dUJIbkFDaU9EbVhXR0lKOGRWWFg3RzNLNXcyd1BNVmlJWWlrZ3VLL3lGNjl1eXBDS21ZWXF1
c3NncWYKZ3ZpaFU1d0ovMjNwMTcxNzl4WVVOVnFNR1RPbVVqZHNFRDcrK09QS2ZWa1hrT1lwUXJi
WWNNTU55Nm95ZFQwUUlKOTc3amx4MjIyMwppYlp0MjZaKzM3WVhLR0syb0NDQXJGWUd6elZsSnN6
TkhYYllRWng0NG9tQ2doQ1dXWFZvWFRiTkJWdldDdHZYMU5DQkRHU2E3SU1OCjQyaWFybTJiNXlB
UGsrdGVnRHkxM0RvYUw0ZVBzWTFIS1lVZklZYXdVU1NhaVJ3akFMOTVFcUpYSXREZlJSZGRKTmRa
WngwT0lvZm8KNXdqT1ZFYWl4VTNDSC9lRER6N0l3UVlSNFpsY2kwcGlyT1dlZSs0cCsvZnZMMGtZ
a3JUckxKczNieTZuVHAxYVJyTkM2emo3N0xNbApMVjZTR0dwNTlkVlhTOXFSbGlTOGNleVVpeSsr
T1BTZG9qSVBPdWdnam1SZEZQeThjTW10czJ6YXRLbDg3TEhIOG9LcWVWOFg3UU93Cktpd0VXZHhy
cjcza1pwdHRWa3A4bkpwT1V3YXAzY25kZDk4OTdGSHBlU2JtUXIyc0ZUcldWRlc2VkJuNExMQjA5
Q0dxYlRhUG93bTYKRHVMSnBubGU1THFYaFM2RHVQTHVzOEJ5TkY0c0gyTVRqMUlXUCtLOFlORk1U
Sk1RWHdNNzFDMWJ0aFQ3N0xPUFdITEpKZE84cnFVcwpWTDV3NmtJTW5zRHg2Q2FiYk1KLzJPR25h
Tm9DTzJQWXRhQWdpYUpkdTNhc0JxT2w0aFJBS0JpYzJINzc3ZGt1QlR2UWE2KzlOdDhECmZ6aUZP
T0tJSXdTTzc0dEljK2JNNFg1N3NGSC9OdHRzdy9FZUZsOThjVUZCNmNUT08rL012dERuelpzbjRO
OTh1KzIyODRvci95SzIKQkZTNzhpYlVqeE0xMkV0Z1hIVW52OWNKK2dEbEFxOEtDM1lzMDZkUDV4
TXduQkthU04yNmRSTm5ubm1tMkhISEhUTlhEenBHM0JEMApHMytJMWJMdXV1dW1nbWR5TGhTOVZy
ejU1cHVDaE14VStBZ1cxckdtcXRKbHNPNncreXl3ZFBRaHJDMWVubzNqYUpLdVBiemcxNVo1Cmpy
WVV1ZTVsb1V1MEtTeGxnVlh2TkI2R2g2UzhvbWk4S0I3bG1XZWVFUlI0V2l5eXlDSUM0US9PT09N
TTBhWk5tNlJ1Vmowdmt4L0oKZHh6Z2lkTjE4RXNZcnV6ZTVta3VkamhNcDE5Ly9aWDc4dGxubjBV
MmhRaWN5NUFoVjJTWnJBK21UWnZHcHk5Ujc1TzZqU1NoU0k0ZgpQNzZteU1DQkF5WHB5RXFVS1Ny
ZGUrKzlrcGhPU1V3OVI2a24ydzk1M0hISGNaM1l4Ums2ZEtoRUdTK1JtaGlmSHBIWEJ5OHI4ZmZk
CmQ5K1ZKRVFsbGtzcWdQYVFHb09jUFh0MlV0SE16M1hSUGhxZ0FndW5jemlGSXgvcW1kdGM4K0p6
ejlWaytUTXdob2d1VDBLaGZPdXQKdHpqaU9lbXd5aU9QUEZJT0hqeFlqaHc1c25KSytjRUhIL0NK
M0xmZmZ1c0hVWE9OazBWaXNPVlRUejBsYVZIbkNPdGtCeWFmZi83NQptckpSR2FiblFwRnJCZkJ5
K09HSFM5TERqK3ErVXI2T05WV0ZMcFVhUTRXeXdOTFJoN2oyMlRhT3B1amExbm1Pc1N0NjNjdENs
MUUwCmxRVldQZE40RkI3aThvdWs4U0o0bE5kZWUwMWVjY1VWRXJ3SkJjbm03Ky9sbDE4dXlaNDBy
cHRWejhybVI1d0FVb1grK3JpQjRJRUYKaEl5N0l4dE1Pekd5UllzV2tpSnBScGJKOG9DQ0MwclNx
NWRrekIzNk9naVlUaGhrOSs3ZEpUNFcva1hyeXkrL2xFc3Z2YlNFQUZOMApHalZxbENRZFJwNkVa
QXNneVROSnBjb25ubmlDVmVjcUdYUkJwdzhzTktrSVJtQktWMTk5ZFlidmg1SGwrdFpiYncwVjFM
TEFpbm9uCnk4Y21LeXpnR2FxQVdBQzFwU3V2bFBMNDQyUEJZZkdsRXorbUw2aGRnZjV1dXVtbXlq
dGtoeVR4NXlYTW9hMjIya3JPbkRuVHk2cjYKeGR4NjZhV1g1S0JCZ3lvTUtlMHFTVHExaytSdGpv
V2RxaGRDYm5UUEJUcUprVkQzL1A3NzcwTnFDODhxYXEzQUJ4VHppMDZZcXVaNAplQ3VLenkyVHhv
dnZUVzBOTm8yalNicTJjWjVqdE1wWTl4eU5TMWtVWHhPY2NicHBQQWdmOTdwNWxKdHZ2bGsrK3Vp
ajhwUlRUcEhrClRaTy9YZVQ4aGZtd3NQckQ4c3JtUjV3QUVqWUtsdWRodHh5TEVha1BoYllVazRm
VVJDVDBjM1dtcTY2NmltMUs2Rmd2RkN5RWplT0oKVVFRUlEvQ0J6Y2UyMjI0cndUZ2hZVkxzdi8v
K29lOFdsZm5paXkvS0F3NDRvQW84aENnSVNjRUVPNXJUVHo4OW1GMjV4KzQ2YkZkSQo3VTZTV3BI
OCtlZWZLOCt5WHB4MTFsa1NBbEdScWN3UDEvbm5uODhuQlZyNjg4Y2ZVb0xXWUxkRnUrMUpDY0lF
VGpkQWUyU2NLckg0CmV1bkpKNStzb1Qzb3VhNnd3Z3J5d3c4LzlJcFZmcWRNbWNKMDY4Y2RybUdu
ODgwMzM4aG5uMzIyVWpic1F2ZGMrTzY3N3lvQy9SMTMKM0NFeHgxV1M3cldDanVkNWpreWFORW1T
NXoySkhUWWJrbitjOHJaSEo2eThiZkhldDJVY2JhQnJtK2E1Tno1bHJIczY2VkluTEE4SAplWDkx
MDNoY2U3Qis0N1FBbWlMQnBKdkdnL0NEOTdwNEZBZ2YrT2JodTRZRTJ6RnNscjM4OHN2QktpUHZ5
K1pIbkFBU09SVFZEOEtZCmxPb1M1ZDRkZGRSUmtRd3dtQ2ZzQm9OWjBKRXdTYUU2aFIxaEhPL2Rj
TU1OTldEQm5FUGdJUjNFeWpQa2thMkZKTnNVbmdpa2s2aXQKVFpWS0VpNGdhTHp3d2d0VnBTQkVE
Qmt5cENvUE44Y2NjNHdrMjU2YWZHUkFuYWhUcDA2VjNYQVlQdXBJMkRrRHN6eC8vbndkNEVKaAo2
UHpZSk1IQ0xndyt4cm5UNjY5TE9wTDZVL2dnUS9ZMGFjS0VDZkxVVTArdGVnVkNjWmp3UzNaS29m
bFFYZlEraVA0K2t3MFJML0pRCno0cEtSY3lGNmRPblYxVElzQXZzUDlHTGFvZVhyMnV0Z1BvWjVn
MkVJZlFSOHdXcVFWbVR6alhWUDBaWjIrTzlsd2FXemo1NDlVZjkKbWg1SDIramE5RHozajFNWjYx
NGF1dlMzTGV3NkRheDZwUEd3UHZ2endBUHN0Tk5PRXB1cS9sUUVqZnZoaDEzcjRsRkFnM0JpQTdY
agpQbjM2c0hyc2xhUTlBTDVOTlpYTmp6Z0JSR0Zrd0h4U1BBR0ZrdWFMUUhvSG8zemVlZWRwYVF6
MHZLRS9UOGJ1ckhZQzR2NERPOU9CCmhPZGhuc0RJY0UyU0FicHMwcVFKcXprRlhpdjBGanNCWU82
RENmWUpVTGxDZ3QwQVZITU9PZVFROW1yV3FsV3JZSEcrQjE3Nzl1MHIKeWNCZm5uRENDVnJWVHNC
Y1F2Q2hRSW1oZGVmTlRQT3hTYW9yQ1JaMjVtRjdrMnUrMEppUUx0V2Z3Z2VkTnBHZVZGS3pLczh4
VHVSNApvZVpVQThKeGNFNWdzWVduTGdqR3dZUXh3Y2tkVHNYOGZZWVFRNjZTWXoxN0ZURVhnTmZi
YjcrZGo5ajk5a3ZCZHFlNVQ3dFdmUExKCkozTEFnQUdzTWdpYkttK25MVTJkWGxuZGE2cC9qTHc2
c3Y2cXd0TGRoNnp0TFdzY2JhSnJHK2E1Zjd6S1dQZFU2ZExmcnFoclZWajEKU3VOUi9mYnlaODJh
eGVzWDFLbjlxUWdhOThNUFh1dmtVWENTQW51UGp6LyttS3ZCUmhFMlg0TWJzTUUyQk8vTDVFZWNB
QkxFZnNnOQpqcldPUGZiWWtDZjJaZUYwb21QSGppd3c2R2dkREhYaDJuZkVpQkh5cEpOT1NyMVRE
MkdGUEV4SkhPMlZuVkF2ZFBiOUNUdTI1RzliCnZ2TEtLLzdzeXJWdW01a0s0SVFMN0Y0MGE5YU1q
WjRUaXFaK3JQcXhVUUdzQWd1QzZBWWJiQ0F2dWVRU0ZaRGhaWERDY05wcGtnWXEKL0hsRUx0VHJJ
R0FHRSt3OUprNmN5Tm1lMEFsbkJOaFZQdlRRUTRQRitSNDJKTmo5ZzNEYW9VTUhlZkxKSjdOUTRz
RUpmU2ttVThkYwowR2xiazJXdEFPNWdkQTRHTUUvU3ZhYXEwS1ZxZTFWaDZlNkRhdnVDNVV5T0k5
cGlncTV0bk9kRnIzdXFkQm1rajdCN1ZWajFUT05oCi9jNmFwNFBHdytvdWdrZUJ2UmhPN3g5Ly9Q
RlVweC8rOXBYRmp6Z0J4SS8xbUdzWXRjWkprbi8vKzk5WkxTRUdST0dQWURnTHczUG8Kd2V0TzBD
ZE1tOENrd0VzT0dMZXkwNDAzM3NnTVBSaEl2NW9JOU9maGhVdFZoNzdNZGdOWHNERkk0N1ZDcFgy
cUh4dWRzRUNEc0pQQgo2VmxaQ2N3eFR0dXc4UG9UbkIrUTIwbUptRGxwRWo2K09DbUR2UU4waHUr
ODgwN2UvYzhpcEpxY0MyRjlMbkt0Q0tzdkxFL25tbXFDCnh0RW5uWDBJdzFGU251bHhORUhYTnMv
ekl0YzlSK1A2K1pxaytZWG5SZEc0N1R4S0dmeUlpd05DczFvbGtWUXB5S0NhNHdEUWJxaFkKZGRW
Vk9jSXpmR1BEUnpzZHBYSDhEZHBaRjJ1dHRaWUtTSzFseURPT0lPOC80c0lMTCtTWUVscUJad0JH
azFhUWpyaFlkTkZGQmUwawpaNENRL1JYUzR4UmtYQ3hPTyswME1XellNSTRGUWFjTEhBK0NkcnNG
bmVpd2YrenNOUlR6Sm5uZzRnam9pT1VDT3RJVll5YUx6L2VvCkhxYUJSVHJhNHVDRER4YTMzSEtM
SU5XOUtKRGE4dW1VVXRBbWdTQXZhNElNeGNYV1cyL05zRWtJRXVROWl1ZHBsc3BBeTRDSGNmSDMK
WHhXV3lia1Exa1piMWdxZGE2cC9YSWhuQ091MmNsNGFXRHI3b056QS94WTBQWTZtNk5yV2VlNk5Y
MUhyWGhxNjlOb1M5WnNHbHFOeAovWHhNUGZBb1pmQWo3Z1JFUlFUK2J4bnN2Q0NxTnlSRHFIbFFj
RHVPTjRIbzNsQlRna0ZUbHQzUkZFMElMZnJWVjEreExudGVmL3loCndETms0alNJR0U5Mm1VY2Zx
UXdROHI4QzNYMS9YQTlFajZmRm1NY014Nm0ySnB6UW9KM3dLYThyQVo3M2x4ZW1Cd2UvS21tWFhY
YVIKaU1kQkh6R1Y0cG5MUUhjWGJZS3hPUkpPTGpBdlNTRG5rNWdpNHVGd1JRbi9iSmdML2liYXRs
Ym9XbFBUMHFVZko4SHJ0TEIwOVNIWQpqcmg3MCtOb2lxNXRuZWZCc1NwaTNVdExsOEUyK2UvVHdu
STBycCtQcVFjZXBXaCtSSTJMOEZOdW5WNm5uWEQxMGswWVVVR1hIY2JlCk5pU29QTUVEQXd5aVRL
YWc0QU5oNUtHSEhqSWlJS2JCQTlvTndSWUd4N3FTVHRwUEMrdTk5OTZUOEJ6bENRYTYraFFHQjNa
YS9nMkEKQ3k2NFFOSUpITStQc1BKRjU5a3lGN3grMnJaV2VPM1M4WnVXTHVQcTFBa3JycDZzejB5
UG8ybTZ0bTJlaDQxakVldWVUcnJVQ1N1cwovM256R2dPTjF3T1BValEvNGxTd2FDYldjeUlDRVJR
Z3pZb3VVRHdMUWJFQkJCbnRhbE1mc3FKakpUZUN2RmNJOHN6RTZtczZxazV6CjNKNVVYeFpZNU1C
QWRPdldUWkFoZUJKNHJjL3BJOGhxa3NzdHQ1eFd1Q3JBYkp3TE5xMFZLamhNVXlZTFhVYkIxd2ty
cW80OCtTYkgKMFVhNk5qblA0OFpSOTdxbmt5NTF3b3JEUWRabmpzYXpZazcvZTBYeUkwNEEwVDll
RHFMRGdGVVkwUG14MFFuTEtpUzV4dFExQm5UUwpwVTVZZFkxVTEzaXJNS0NUTG5YQ3NncEpyakhX
WThCUGUzWnNuVnVQTXRmQWhvSUJVc01TWkY4aHlMKzUwUzdCQ08yTEw3NUliQU9wCmppV1djUVVj
Qmh3R0hBWWNCaHdHSEFicUh3TW1lQlJUL01oaTlUOWM1ZlVBWGdHR0R4OHVNRmlEQnc4VzY2Njdi
bm1WdTVxMFlJQnMKS3dUR3NXdlhyalh3S1BDY0lEZXVOZmxGWkdBWGdHSmxpTk5QUDEyUTY5M1FL
cURPZHQxMTE0a0hIbmhBVU5UVzBESzJaSkpodjZCNApCT0xFRTArTVZBbUUwRWRHYmVMb280L081
RTBxYTE4cDZxM0FNZklaWjV3aDRBM05KWHN3MEJEVzFJYlFCM3NvSW50TFRNeHptOWU5CjdKaXNm
ZFBSZUMxT2lzb3h3YU9ZNGtlY0FKS0NpaWl1QVRNeHpaczNaeUhrK3V1dlQvRjI0eTc2OGNjZkN3
b2VKUTQ0NElEQ0JUZTQKc0lYTDFNVVdxeVZ2Q0k4WVA0cHJ3bi9lcU54enp6M3NzdmVhYTY0UmNQ
TllkSUo3WWpLWUZwdHR0cG1nYU55aDFUM3l5Q1BpMGtzdgpGWnRzc2tub2M1c3lsMWhpQ1RGa3lC
QkJNVXdFUlNJUGJScDVhUk5qeDQ0Vks2NjRJdE5CYUtFQ011Zk1tU09XWG5ycEd1R0RQT29JCjhv
NGxEanJvb0FKcWpRWlo1bHlJYm9VZFR4ckNtdG9RK3FDREdrelR0WWw1YnZPNnAyTk1QUmlPeHYv
RWhDNGF0NDFITWNXUDFISm8KSHNXNTMxQU1ZTGNha3hHeFFGeFN4MERyMXEwRkdORExMcnRNdlAz
MjI0S0NBYXEvbkxMay9QbnpCYm1wRkJSc1VKQkhMcTRUcHcxSQpYanlLTjk1NG93cnErdXV2TDZa
TW1jSjVZRXp4WVNrNmhRbEl3VHF4TXdHQnlmYUVkaUp1Q1dMUnhBbFVpQWtDSVZSM3V2TEtLOFhL
Cks2OGNLblRDanowRWtQSGp4MWRWTzNYcVZISGZmZmR4M0JDY3pKUXg1bWhBbVhPaHFzT1czalNF
TmJVaDlDRXZlWlJCMTdiTmM5UHIKWHQ0eFMvTytvM0Y5YTdlTlBJb0pmc1FKSUdsbTRIL0xMcnZz
c3FKTm16WVozdFQvQ3RSYXdGd0ZFMndIS0hJekJ5WGNhS09OZ285TAp2NTh4WTRZQXc0ZGdqZ2dT
V0dTQ0Z5NGs4bFhQdjl0dHQ1M28zTGt6WDl2MER4K3ZSeDk5Tk5JVzVKMTMzckdwdVlsdE1lbU5E
VUlQCkJCQUlqemo5ZXVxcHAwU25UcDI0elZFQ0VmSXByZytYS1V2NFFHVmx6Z1h1bk1JL2VCSUNQ
WnBLTnEycFdYRmdReDlNam1NWmRHM2oKUERlNTdtV2wxYXp2bFVYanR2STF1bWpjUmg3RkJEL2lC
SkFNTXhHVHNHZ21XclZaVU9QeGRvWEFmSDMwMFVkaTVzeVo0cTIzM3VLbwoyazJhTkJHbUJSQ281
ZUREUVlIaHhLUkprNXlMM3Y4T0xwaUZwQk9Ec3FQSXE5SmRXRG1WQlF4OUxpSjU5bGllMElrNUN0
clBtejc1CjVCTSt1VVBmY0V4Tk1WcFkwTWtLMStSY1FEUjNPRDdZWW9zdHVQbUlwSTIxNHZISEgy
ZEJESFp0c0hHTFNpZWZmTExZWjU5OUJBUjYKM2NtbU5UVnIzOHJxZzQzaldCWmQyempQVGE1N1dX
azE2M3RsMGJpTmZFMVpOSjUxYlBBZXhaOFIxMTU3cmZqMjIyOEZCVG9VV0xPeApNYWVTVFBBalRn
QlJHWmxBR2V5d2dobEJnazBCZFBWYnRHZ2h0dHh5eTBESjRtK2hEZ1pENXRtemEwVFVrQUFBSUFC
SlJFRlVad3ZvCko4SXVoWUsrTWFOVTFNNE1CUWxpMndXVjNpMVlzSUJqUU95ODg4NThJcU55ektj
Q1Y2V014K3dDTjFBUGdJb1E2b2VQY1N4dytJTVIKNFcrLy9TWisvUEZIVnFzTE8wMEtxK3ZMTDc5
ayt3ellqR1JOYUVkUzh2cVFWTTZHNTRVdVlDVEVra1JkYWplZmYvNTVCR29WRzIrOApNZHUyZ0hG
LzlkVlhlYTYzYjk4K2RWdE16Z1UwZHRWVlZ4WFFQY1lIYXU3Y3VRTENWYytlUGZrMDk2Njc3aEk3
N3JoamJKK3drUUcxClJoajdIbmpnZ2FKVnExYXg1ZE04dEdsTlRkTnVmOW15K21EYk9KcW1hLzhZ
WkxuT084OGIycm9YaDhPeWFOd0VYeFBYNzZKbzNQdSsKNitCUklIejg5YTkvRmFlY2NncXY2Vmpm
UjQwYXhRNlR3SjhtSlJQOGlCTkFra1lsNVBsKysrMG5icjc1WnBZc01lRHdublRZWVljSgplQzh3
a1NqU05BZDVRNkMzY2VQR3NkY2txRG9Wa1o1KyttbldwVC9wcEpNaWpZMjllckZqZ0ZPUDNyMTdp
NnV1dWlyU081SlhYdmN2CmRtdjIzMzkvRnRBR0RSckV6R1JZSFZDL1dXYVpaWGkzNE54enp3MHJV
cFVIK3hJRTFoc3dZRUJWZnRvYlRQZ2tGU3h2Z1VvTDIwUjUKTUtkSktWTi83cjFYaU1jZUU0THNS
NUtTSjNSakhtQmVKZ21kb0EvWS93VFQxMTkvemNJcGJJV0dEUnZHUWl0b0JNNEt3THlER1Uragp0
cVZqTHVCMDU3WFhYbU0xeHF5Q1BFNGk4WWUwNmFhYmlxMjMzbG9jZGRSUndlNUgza05JMlg3NzdS
a1BEei84c09qWHI1L1FFZWpSCnRqVTFFZ0V4RDhyc2d5M2phSXF1Ylpybk5xeDdNV1NwOVZHWk5G
NG1YeE9ISkIwMEhnVmZKNC95d2dzdmlPN2R1NHV6eno2YjFjODcKZHV6SUo5cndvcm52dnZ0R05h
R1NiNElmY1FKSUJmM3FGL2h3ang0OVdtQ0NnQW1Gb1hNWUU2TU9VVjlKTUZ4RjJhZkFZeEJPQ2xa
ZgpmZlhFRXhCTUJqQjN1KzIyR3pQMzNnZERYMC9WSUlGaFJBTGppeE1QbkZqaGc0SDJnSWtERTRr
amROVTBjZUpFQVdIbTk5OS81MTFnCjFmZkN5cUVkU1NwWWNHMWJMNm1RQld6TUdFRUlGK1N1U2dr
TlN5MjFGTTlObkVyZWVPT05iQk1TSEhQTUVmeEJvSUF6aExDNUMxMWYKMkExaGZMeWRJUWdBeHgx
M25IajU1WmZGckZtem1IbFhhWlNPdVlCVE9oak05K3JWaXpjNit2ZnZyMUoxYkptV0xWdXlzNGJZ
UWlFUApNWGR3QW9JNUFEdXpWVlpaUllBeFNUT1BnbUJ0WGxPRGJZMjZOOVVIVStOb2txNXRtdWMy
ckh0Uk5LazczeFNONitacm5udnVPUUUzCjkvQkNpYitvcElQR28yQjcrYnA0Rkt3RDBNTEI5Mnl0
dGRZU0gzNzRJVHRZQWIrbWtvendJOFNZTllwRUF3RGxjLzdMMDJIYUlaZGsKM0NxSkNja0RwckIz
U1FLV2RFcWhGVDd0Qmt0Uzg1Smt2eUZwMHNyTEw3ODhGajZwYzhpMmJkdEtVdmZnY2lUbDgzdXhM
eFg0a0k1UApKVEZMa25UZTVkQ2hReVh0YXFldWpleHJKT20vVjJpSVhNNm1odUYvZ1poaWhuWC8v
ZmY3czZ1dWFZZVp5NkJzbnVUUlBYN3pwamhZCnhJQktsZjdRQnp1NUdaOTlKbVczYnJBWWtYS2Rk
YVRNaUFOaTNDV3AyU1hYRnloQndyWWsrNGpLZUh2OUp0VkxTWUtJcEYybHdCdmgKdDdybUFoblZ5
MTkvL1pVcmVmMzExeVY1OWdxdk1FVXVuVTVLOUZNMWtRdmxxcUtneXdrVEpramsvL09mLzZ4Nmx1
Wkd4NXJxalUvUgpOQjdWTHgxOWlJS2RsRzlpSEcyamE1UHp2S3gxcnpIVHVHNitobFNUSk1VQ2s2
U3lIam05ZE5GNFpBVytCenA0Rk5MR2tjODg4NHpFCmV0QzNiMTk1M25ubnlURmp4a2phVFBQVkZI
NXBpaDl4SnlBMHExVVQ5T213aTQ3ZFVWTTcrbDViRWNmQ1V4M3k4bjcrK1djMlBvS0wKTnhnaFlk
Y1V2MUFaZ2pGU0ZwMXQ2SXpEUFMyQ3VDRit3L0hISDg5NmhWNmQvbDk0M2pyMTFGTUZkcWRnM09v
WkFXT25tWmduZjlGUwpyckVEQUtORjZFVGlHQlc2dmllY2NBS3JrQ0JnSG94dWtlQ21GVHNHY1Ft
N3U3RDd3TytlZSs0cExycm9vcmppaWM5Z2U0SUVGU3pVClR3eWN3SEVzZGlHOGE4OExGaTBPRlp1
alJNQ0dDc0FCQWkxdFNyV2pqN0VxUlBCZVJxZU1ndWlaSnBxZ0l3MUJDRkNDN1JXQ1lUWGEKMDZW
TEZ3RjFRYWhNZ1hZeGZpb0pZNEVkSlp5UVFQL1hTd2dJaVhIQlRtQmMwajBYWVBpTjB3WWNxNk4r
SFc3QTRXa0d0bEZld2s0dQoyZzEzbTBrSnFwaHdxNDJURU5VZHRqQ1lOcTJwWWUxVHlUUGRoekxI
MFRhNk5qM1BiVnYzVk9nMVM1bXlhTHdzdmdicktWenpoOWxHCjZLYnhPSHpyNUZIUUY3anN4M2ND
dkJyaTRnQ2ZPS2xPU3NiNGtYQjVxT0hsMGdCVWRqT3o5STZJVXBJdFE1WlhDM21IUGpxUzFFTWsK
cVQ1SXN2MlF4RUR6UGFtSXNPUUx5UjRuRmNSbzg4NzlCUmRja0trZFpNZ2tTYzFNVWd3RkNkaGto
QnNLNTk1Nzc1V2tTeTZKNkd1ZQprMEdaSkdhbEpyL29ET3hLSWgxNjZLR1NnZ3RXcXNNSkVURnlm
SS8rdmZ2dXU1SVlLVWtDWEtWTTFJVkttYWgzL2ZuWXpWNkhkdlpmCmZQRkZlY1VWVjBnU0R2a3hI
UTB6blpLZ3l6dndtMisrZVdWM2VlSENoWDRReXRkNWFkOWZVUlFzaXBUTDdUN21tR01rQ2J1U2dp
ZEsKVWxPVVo1MTFscVNGbm5lYVFEOTRINmRSaWVtbW02VHMwMGZLKys1TExPb3ZBUHdoVVhCQlNl
cC9qRHVjWHBIZGdpUjdCWDZHZnppZApvOFc1Y2grOHdJNFEyWkV3M1pJOWxTUTFJN24zM250TDBB
dkZEQWtXcjdvdmFpN2c1SWk4M0ZYVnBYSkRHeENTdktsSmNoNGhjYXBHCmpoTWtDZUxjSnpLbWwr
Z2Z4b2cyRGlSMmN5KzU1SkpRc0RqcElFTkhlZUdGRjBhdUE2RXZSbVRxWEZPajZES2k2dGpzTkxC
MDlpRzIKVWZUUTlEamFSTmMyekhPTVY1bnJYaHE2VEtLbE5MREtwUEd5K0pvby9CUkY0MUgxRmNH
alVKdzFTVWJ0a29SeitkaGpqMGtWalFOVAovQWgyQ1J0RlNqUGh3aENDZ2FTbzFHR1BqT1dSUFlZ
a0Y3enl5U2VmckRDcFJUUUdEQ01FaUNoQ1JqcysrT0NEeUtySlZrYVM4V3prCjh5SWUwTW1DSERo
d0lJTU9DaURJUkp1UndQd2owUTZQSklOY05lYVkzOUQzRDB5Z0p5RDVCWkJnRFdRUEVzeFN1czlM
Ky81S29tQkIKeldua3lKR3Nhb2UrZ0tsRjh2Y0hETlIxMTEwbjZRU0VuM2txZW55ajRSK0VCakRX
U01FeHA1MG1Gakx4RFBWaS9ORkdMTlpSQ2UwRgowNDFqYlFnZVlONXhwQjBuUU5rNEY5QS9DSU1y
cmJTU3BKMC9GaUF3SDcvNzdydXFPUTNoR3ZpQWtCR1dJRnlTdm5MVk8ySGxWUE4wCnJxbFJkS25h
Rm4rNU5MQjA5c0hmaHFoclUrTm9FMTNiTU0rOThTbHozVXREbDE3N29uN1R3Q3FieGtGclpmQTFR
ZHlVVGVPMjhpaGwKOGlOT0FBbFNZY1E5ZGdHd3E0dkZMeXhoSVhLcEZnUFFEY2RpUjhaY3RROEx5
b0hPSTNubWtVODg4UVRYUUVGL0tneSt2MHFjTXBDaApQR2VobmVUZWtrK00vR1dLdm9id2lMYVND
Mld1eXMrdysrdWVOMjhlTS9qK1BOWHJOQitiSkpoSnNEQVB5Tys0Sks5bkRDcXFQeWhICjdseVRx
a3Yxbk5UaUpLa0s4anRCQWNRUENMcXhTTk9tVFpOMFpGM0JQV2VHL0tPNEMyenpCUnVpUE1uRVhN
alQzdUM3bnVBWXpNOTYKcjNOTlRhTExORzFNQTB0bkg5SzBNVTlaM2VOWU5sM2JPTS9MV1BmUzBH
VVNmYVNCVlk4MG50VC90TTkxMDdpdFBFclovSWl6QWFHWgpxSkpvOTFEQWJnQTJCZTNhdFdPZGN0
ZzFJQ2dVZExLSlFXVGJBSGlxY2VsL0dFRGdNeVRveXBhVjRQWVhNUnNRZXdTSmhNWlFQVWhpCmpp
djU4TElCR3dIRU9Da3JQZlRRUXdJUlVXbFhYWkFLRmxlTHRvWWxFcWFzRCtCSUoyUnNiN0gyMm11
enB6RDBBM2xoQ2JaRnF2WVkKWWU4SDh4RGJndFM5V084Vno2THF4WnlGN1FJU2JIbmcxeDV4ZEJB
Z015cEJyeFovZVpPSnVaQzN6ZjczZGR1OU5ZUTF0Ujc3b0hzYwp5NlJyRytlNXlYWFBQeitMdXE1
SEd0ZU5DOTAwYmlPUFlvSWZjUUpJQ2txRnYzenluTUNCQjJFOEJMZWNpRElKVjdPMDQ4ckd6U25B
Ck5ZcWl0TFBQL1N4VEFJSDdWY1FxOEQ2MGlGNE5JM3k0WnZXNzNVVWthTnJaWUxlcUtBUDN1akRr
THpyQktBd2ZVcmowaFJFNllqRjQKQ1liUFNLQW5HSktCU1llUktXSXVyTERDQ2l3RXcvMnpiUW5P
R1JBTEIvTUNmc2M5STNQYWFlS21vZytlVXdJWW9kOTk5OTBDd2FaMApKUVRISTlXdmluRTQ4QVpu
RE5nYzhNWWNiWG53d1FjRllueWdQUWc2Q1FOMXVOUXRJNW1ZQzJYMEswOGREV0ZOYlFoOXlET0da
ZEsxCmJmUGM5THFYWjl6U3ZPdG9YQzhmWXhPUFlwSWYrUXVPb3RJUVlyMlc5ZSsyTnBJdVd6RlVZ
RFozMldVWDlocmxaN1RMYmh6cHUzTU0KRTN3d3NHTUZla0EwZXpEMVlaNHdpbWdmMmtDdS9kZ3pH
WVJXc2tFSXJZWU0wd1VaeHJOd2hMYUNtWWNuTVhqdGdLQ1VOdW1rL1NBcwpDR3dRT0taT25jb2Vw
K0JaREtkSlhzS0pBenczUVJoQVAvQSt4Z0Jwd3cwM0ZBajBwME9nZ2s5M1QzZ0RiSGpISVZmSjdO
VXBiTXpoCmV4M1J6RUdmK0lPUVVuU3laUzRVM1U4VDhJTjBtYWNOT21IbGFVZTl2RnNtWGRzeXow
MnNlenJwVWllc2VxSFRQTzBzZzhiTDVsRnMKNEVlY0FKS0hLdDI3RGdOMWdBR2RIeHMvTExoNHhy
RXRBamxCNVMwdTRRUU1mNTVBQlNFRkFxQkxEZ002TU9Dbnk3d2JURHBoNmVpYgpnMkVYQnNDNG1W
ajNkTktsVGxoMmpZNXJqZTBZOE5PZUUwQnNINjJjN1h2cnJiZFl4WVNDNkdsVmVjblpMUGQ2aVJq
d1QzakhuSldJCitEcXJDcnU2VUl2ejAwdTlkTUhmNXNaTzQvVThqdlZDYnliYTZXajhmMWgzZk0z
L2NGRnZWMzQ2cGloZkxxbGlBSWJtVUNXSlM5QXQKaDIySTZZU1BNRVZQRmh0dnZMR0FFUmwycWNu
MXB1bG1sVjQvdVZBVkZEbTY5SHBkaFE0RDlZWUJNSzRVUVZkQXo3NHNtNjE2V2xPagp4dE8yUHBn
WXh5amN1UHlHZ1FGYmFMd2g4aldObVVkeEFraUs5UUVHNTRpa0RTOVlPSVlOUzlCbkp6ZWY0c3d6
ejJRZC9yQXlaZVJCCnlvVHVPd1VwWkdQbXl5NjdqTzBQeXFnYjBUZmhrZWorKysvbmFOUmwxQmxW
QjR6UnlkVXVHM0ZIbFhINURRc0Q4QmgyOWRWWEc2YzkKWU5XbXVSQTF5dmlvay90aThmenp6d3NL
c2lpbVQ1OHVLRDVPVkhHdCtmVzBwa1oxM0pZK2xEbU9OdEMxVGZNOGlqWWFTcjR0TkY0bQpYMU1X
alRkcUhvVVdyVWFSYUNHQXNUMy81ZWt3QXFrMWJkcFVJbkprTUUyWk1vVmpHeUJRR1NKckl5SjBF
WW1FbjFDd1pDZ2xhYWRDCjNubm5uWkpjeXNwUFAvMVVraERBY1Nab1I3UFFZSVhCQnIzMDBrdU1h
L2hzTjUzSUhhOGNNV0tFNldZWXE5K2plL3ptVFRwaDVXMUwKM1B1STJVTkNTRnlSMHA3Wk5CZkNP
azFld1NUV0IzSkxMSHYyN01sQkdyRnVsSlYwcktrNjZUSUxMQjE5eUl2dnNzZlJCcnEyYVo3bgpI
YitrOTdQUVpSVE1MTENLcG5FYitacXlhTHd4OFNoKzJuTnVlQWtiYWRLY09YUEVhYWVkSmloNFhN
MXJzTE80NElJTDJMc1JQQm1oCmJCRUp1NVVkT25UZ05zQUY0dnZ2dnk4KytlUVRkaXNLbGF0Tk45
MVVVRVJqOXBnRU42VFhYSE9ORms5RGFmb0NiMDFMTGJVVXEzK2wKZWErSXNuQXp0OE1PTzFSQVE3
M2s1cHR2Wm5lc3E2eXlpcUFJejR5N1NnRkRGeVF3OHJoOTlORkhncUp3aTdYV1dvczlTMkU4WFVx
SApBY1Qzc01YSTNlUmNHRDkrUE1lYUFmWVFZd2EwUlpITzJUMHgxZ2JRMmN5Wk0vbGtGMlZ4WWdx
UGEzdnR0VmM2aE9jb2JjT2FtcVA1Ci9HclJmYkJ4SEUzU3RUZGVOczF6cjAwTjliZG9HcmVScnlt
THhtM2tVVXJoUjZJazVJYVdUNHRDNmhNUW5HVDRFMDRZaUNtVTVISlUKSW1La1B5bzZvaVhqT2ZL
NmRlc21nKy82NGVTOUpwc0dqalpOaXkrZnNwQU9ZYzNwQnFtSlNXS3VKZHBsS2lHeStOTlBQMTE2
OWNSVQpjWjNrY1VsU1lFaEpOakJ5d29RSm5QZnl5eTlMVXFPVFgzNzVKZCtmZSs2NWN0eTRjYVcx
RVRUaVQ5ajF1Zjc2NnlVSlNITGZmZmVWCnhHaElXdWpsZ2dVTEpNWjExMTEzbGYzNjlaT2tUdWQv
TGRWMUZ0cVBxa0FWRmpHNTh2enp6NWVISDM2NDdOKy92NlFZSVJ4MS90UlQKVDVYa1BTc0t2TFo4
Y3YwcktlQmdCZDdjdVhQbDJXZWZ6WDlISDMyMHBNQlNsV2R4RjNRTUx5bDJDSjhrWXM0akltNlda
R291bkhQTwpPUnp0dlhYcjFwSUVDN25qamp2eWFTRFpoMG4wRFlsVUZIbHQvT0NERHlRaU9rY2x6
Qld5Z1l0NnJKUWZYQmQxcmFtcWRLblN5Q1JZClJmVWhybTIyamFQWFZsTjA3ZFZ2Mnp3dmN0MUxv
a3NQSnlxL1NiQk0wTGl0ZkUwUk5GNFVqN0p3NFVKSjZ2YVNnbWJMdi83MXI3SHIKT2VqRU5EL2lU
a0JvSmtZbEJJdnhncVVoWGdFZHh3bEVlVVpzQSt6dUgzbmtrV3pyMGJadFd3NTZOMnpZTUVGSHdo
eURJQXFtam55YwpmaUF5SjF5WitqMEtlTERSVHV4V2pCMDdWa3NFWncrdTl3djNxODJhTmZOdUkz
OFJXMkhaWlplTmZGN1VBNXcra1RvY253d05IRGlRCnF3R3VicnZ0TmtHTVBkc0hlSGhiZi8zMXhX
T1BQU2FJU1U3VkhCaDZJcGdnTVFhcDNvTnUvVVliYlNSKysrMDNEa1NJQUlQZHUzY1gKdDl4eWkx
aDMzWFdyWUsyeHhob2NVQkh4UWxBUGpJTnRTM0RLMEtaTkcyNFc2QUlCQmtrRmtPMk9ZQytGWFMx
L1hKRGJiNytkKzQ5SQo2T3VzczQ1NmQzNzRRVkRVejhqeWNEU0FlQ09mZmZhWklGVUJRUUtISUlH
QjdiVndBb2pkLytIRGgvTjh3YmhoUnhrUjBPUFM3Tm16CkJlSU9RRWNYODIzTk5kZmtRSVp3T1p5
cTdWU0pxYmxBUWlESHVzR0piWjgrZlRod3FyL1B2L3p5Qzl0SDRjUmp2ZlhXOHorcXVWNTkKOWRY
RnE2Kyt5ampBMnVldGpUVUZZekpzWFZOam1senp5RVFmYkJ0SER5bGwwN1V0ODl5V2RjOGJCOTIv
Sm1qY05GOFRoY01pYUx3SQpIZ1hmS05va0VyUmh5ZDhuYU1ZTUhUcVV0WEtpMW1yai9JaUt0TndR
eWhCeHBUNEJ3ZWtCVGhKMjMzMTNTUkdyNWQ1Nzd5M2ZmUFBOCkNqcnV2ZmRlT1dyVXFNbzlMckNM
VFVib1ZYbGwzMENma0NaempYU3JveDNFbE1uOTl0dXZDZzlSY0VsWWs2VGVFZlc0MFB6Smt5ZEwK
VWt1VHhKQktDdUFuTDdua0V0NlJEMVo2NFlVWFNsTEJDbWJIM3NQK0J6dkpKQkRFbGd0N2lQWUFM
NkJIWXZna0NTQmh4YXJ5NkdNZwpjZHFWTldXaC9haTZnckNJdVdkNm9NQ0traHd3Y04rQSs3aEVF
Y3NsQmFlTUsxTDk3TG5ucER6MDBPcTh3TjJNR1RNa2R2azMzM3h6ClNTNGFKUVdZbE1Rc1M5UkZR
UW1yU3Q5NjY2MlN2RDFWNVFWdmZ2enhSejcxd0lrVVRnN1FiNHdCNmlGQk52WGMwakVYY0tKSEts
VEIKcHVhNkh6bHlwS1RORkVrUjdCUGgwSVlHbHlIaFdZNGVQVnBTVU0zVWVDaHFUUTNTWldKblln
b2t3U3FxRHpGTlNueFU5amg2RFNxYgpybTJaNXliV3ZTUzY5TVpFNVRjSmxvMDBYaVJmRTRjekhU
UWVCbDgzajNMVFRUZEpjaVRDdG54a0RpQnBzNDgxSnlaTm1oUldQZWVaCjVrZnlXNlZHZHMydUIw
a1RMcW0xVUQwSU1rMWdUZzQ0NElDcVY3Ly8vbnU1OU5KTHkwY2VlYVFxdjZ5Ylo1OTlWdEx1UGpO
S3V1c2sKcVowWmVhZ0QrTlhQb3VxQnV0cFJSeDNGNmtVSEhYU1FuRGh4WXFqeGZ0VDdPdko3OWVy
RkRCYlo3WVNDZzFDSmo0bHFnbEVhblpwSQpzaStRWkgraitscFZPYWkrUUtDTlUzZnh2d0NuQXFC
Zk1INVpVbDdhOTljWmhJVWozSk5PT2tuaW1Cb3FPdVNDMmw4ODlCcnFjR0I2CmxkVEtDRSt5U1JO
SjNHNG9MSDhtblZZd1hZSk95VzZHQmFPd2VVaW5NdHhtLzd2QmF4aGg0emdiYzluZlo0cmV6bXBJ
VUJkSWsvTE8KQmRBS1ZBV2hWb1lQaTQ0RU9vUjZJdWF6U3ZJRUVLOHM4SDNsbFZmSzV5QWdaa2c2
MTFUL0dHVm9TdFVyYVdEcDdFTlZJMUxjbUJ4SApFM1J0d3p3M3NlNmxvY3NrOGtrRHl3WWExODNY
dlBEQ0M2eEc3OTlRanNKWlhocVBndXZsNitKUm9Db00xYTRmZnZpQm5ZcEFaWGphCnRHa1NQRXRj
TXNtUE9BRWtibVI4ejdCTERuc0NmOEt1MDVBaFEveFpmQTJtbHRRMmF2S0x6b0JRMEtsVEo5YTcx
MWtYeFRaaHZVSjQKRllLQVJhb3NTdUJKWlVXU29TdFBCbEl4a25RTXlMdkk3Nzc3cnRMN2VRdUJV
WVB0UWR4WXRHclZTa0lmUGluaGczUEtLYWZJUlJaWgpoQmxTMkRhVWxhRFAyYUpGaTh6VnBmbllK
RldpQXhac1hoWmJiTEY0QWV5WFg2UWNNSUFjeE5JU1JjSU5HVjhrTlkyZmcxWTdkKzdNCjhJUHox
UU9BallRa3V4L3NUbEhjbkNyaEEzMkhjSTg2WUFlV0p1V2RDNkJSei9NZWhCL3NYT1ZOc0luQjdw
NkswSWk2Z2dJSTh0QXUKZUpnRFR0SW1uV3VxRHJyMDJwOEdsczQrZVBXbi9UVTVqcWJvMnRaNUhq
ZDJlZGU5TkhRWjF3NDhTd1BMTkkwWHdkZkFUcUpyMTY1cwpmNW1FcTd3MEhnZGZKNCtDRFhIWXVH
NjMzWGJ5dU9PTzQ0MHFiRjZTdW5OY0UxSS8wOG1QT0FGRUFmMXdaMHQ2N2pXNy9qRGVoS0VQCkV0
UWp3QmhRL0E5SnV0TDhwd0JhYXhHb2ZqVnYzbHlyNFRsNTAySmlobkVkRXBodzdBeXJKS2lzUUIz
R1MxQWZnWUNFaGJqb2hKMkEKbGkxYlNnZzdPSTRNUzZUL3pnd2x4amNwd2ZnWXpCb1c3dmJ0MjFl
WXdhVDM4ajZIYTgwbWRBSVFkWUtqQWovTnh5WUpuZzVZVU5jQwpEaU1UbkQvUTZSa0xIeEJBVXV6
NDQzUURKekZrMHhBSkhtNjBzVkRISmV3Y2djNXhRdUR2TStnWE5PWE5oemdZL21kNTV3S0VEM3lz
Cm9CcVdKRHo1NjQyNmhxTURzczJSY0IydW12d0NDUHAvNmFXWFNxaGtaa202MTFUL0dHVnBqLzhk
VlZpNisrQnZnK3ExNlhFMFJkZTIKenZPNGNjdTc3cW5TWlZ3YnZHZXFzR3lnOFNMNEdqRGw1QW1U
ZVRZUEoxRy9lV2s4Q3E1dUhnVW1BVGdoaDNBT1J5L1lSTU9wQ01YTAppV3BDNm56ZC9JZ1RRQlNH
NEZEU1B3L3ErME1sQWp2NjBFbEZBak5MaHVxOE00bWRVeHdabHBuQVVJRlJoZDY3emdRQmhBeVpK
TlJhCklIdzg5TkJEeXVEQnZQa0ZFTHdJdkNIbVFKRUpweFU5ZXZUZ2R1UEVCckVOd2hMNmhvVlkx
Yk1SeXFFL0VEYkxTTkRMaDdvWE9UbW8KZUN6S1VxL3F4MFlGZGw1WVdCUUJBNHRsYkNKQlhtNjVw
YVJnSHJIRi9BOWhiNFFUTFhnNHd5bGtXSUp1TStySGIxekNJbzdkSXh4agpZd2NNNzhDK0JJdzNi
RWpTSmgxekFaNXBwaytmcnFhNkZ0TkE5STNjZFV0NEEwdVRJSURBYXh2czN0S2VBQVhyMGIybTVx
VkxmL3RVClllbnVnNzhOS3RjMmpLTUp1clo1bmtlTm00NTFUNVV1bzlyZ3oxZUZaWnJHaStKci9M
aEl1dFpCNDhFNml1QlJjRklFM2dyOEp6YUcKWVBzSVZXSlYvaWJZeHVCOUVmeUlFMENDV0E3Y1E3
K1pQRG54aDlmL0NNYkRNSFRGUjhCMGd2Q0RFNW8wdTVscDJveVRDeEN5cHdLaQoraTUyV0lNQ2lP
cTdlY3JCMWdRTExIbUI0SjJBTGwyNmhJS0REUWZLQVg5ZVFoOTE3aGg0Y05QK1loR0JYUVhGWlVo
a2xwTmdxMzVzCmt1RGdlUjVZT1BtQ0NodHNSblFuNkwxQ1dJUEJQcGhrN0RhR0pXd1NvQThxOWll
Z0g1eHdndjV4OGdDQkZYM0k0a2JZMUZ3SXc4SGcKd1lNbGVWNVR3b0gvZmRoendmZzg3NXBYeEpx
YWh5NzlmY1MxQ3F3aStoQnNSOUs5NlhGRSs4cW1hOXZuZWRpWTZWcjNWT2d5clA2dwpQQlZZcG1t
OGFMNG1EQzloZVVYUWVMM3hLRVh4STA0QUNhTzQvK1podHg0R1NOQ0JCRE9DbzBBd3JkZ0JoNTRk
b28yYlRtQUdkdHBwCkp6WUdOZDBXZi8zWXJjVWlaMElBZ1lvTURHc1JpUjVHeUdCTW94SThaTUZ6
R1k1ajhVRkhqSkNzeHQ1UmRhVEp4KzRlRFBiSjFhdTgKNDQ0N3RKeTJxSHhzVk51WUJSWk9vWUJY
eEtVQkExdEVndjRyVGlSeFVnZlZLYWhLaFNXMEJRNEVZTWpxSlJ6SFI5bUxRRkRCcVNJOAppV1JW
TnpJNUY3dytlcjg0ZWRwc3M4MnFoRzd2V2RKdjJnMklNSGhGcmFsWjZES3NmY2hMZ2xWVUg2TGFF
NVp2ZWh6UkpoTjBiZk04CkQ0NlQ3blV2aVM2RDljZmRKOEV5VGVPMjhEVkYwWGk5OENoRjh5Ti9B
WkVTTVRiNDVNVjlRRWRWdTB3U3VFQ2tiUGhUaHQ5L3hKRFkKZ1NKcTA1R1dvQWtxaUlnS2liT2hP
aGhvQnpHcm9uZnYzb0tNclZWZks2VWNvaXdqSmdyaXA1QytmeWwxQml0QnJBMzRGa2ZrY3hJYwpn
NC81bm94NU9WNEs3Y3dMQ2lESlVleERDeGFjU1lJYXg2MUEzQlFTS0JOak1xUnBUaGJhajRLdkNv
c1lkMEV1QWNVRER6d2dLTUFkCnh6bzU0b2dqT0Q1SUZPdzgrU1IwQ0RxdTU3cm9vOEd4U09qa0lo
UWtuWTZJZWZQbWlhMjMzbHJRc2JKQXUwZ2RLYlNzamt3YjVnTDYKZ1hnM3RJa2lTTmdTaURGaklo
VzFwcXJTcFVxZmsyQVYxUWVWdHFHTURlT0lkcGlnYTV2bk9YQlM1THFYUkplb1h6VWx3VEpKNHpi
eApOVVhUdUswOFNsbjhpRHNCaWRzbW9HZFEyZkFuUlBhRzdqUmMwNWxNT0lyR0NVeGFkNkJsdFJs
NG9zVlF1MDFLMnZiRCsxYVVQVUJhCldQVmFIdVBnL2VYdGd3Y0h2M0VKdGhJd2lGUDFzQlFISzgw
em5FN2lSQkFuVzFFSlpXRGJBUnJWcFI4YlZSZnliWmdMT09HQlByZkoKMHowUFIwV3NxYXAwNmJV
aDdsY0ZWaEY5aUd1VDk4eW1jVFJKMXpiT2M0eFJrZXVlQ2wxNmRKTDBxd0xMQkkzYnh0ZVVRZU9O
alVmeAowNTQ3QVNGczFHTWlmWFJCVEpZZ2Q2WldOcCtNckFTNU94V2sveXJJNE5WWUcya2hGdGpO
SVhzZFkyMHdYWEhTYmxlYTl1bUVsYWJlCk5HV2ZlZVlaUVhGV3hPV1hYNTdtdGNMS21wNExPSW1p
RHp1ZmxCYldTY09BZGRLbFRsZzYwV0xiT0pxbWE5dm11YzZ4RG9PbGt5NTEKd2dwcmE5WTgyL2lh
TW1pOHNmRW9mdHB6QWtqV21lTGVjeGlvRXd6NEp6d1d1enhKSjZ3ODdYRHZPZ3o0TWFDVExuWEM4
cmZSWFRzTQo1TUdBVHJyVUNTdFBuOXk3alE4RGZ0cGJwUEYxMy9YWVljQmh3R0hBWWNCaHdHSEFZ
Y0Jod0dIQVljQVVCcHdBWWdyenJ0NUdqWUc0Cms0aFBQdmxFM0hiYmJXekVqU05nbHh3R0hBWWNC
aHdHSEFZY0Jod0dpc0NBS1g3RUNTQWFSeFBNSWdXRDBRZ3hHeWkwZ2R3MGlxdXYKdmxwUS9JSnNR
QnJSVy9DU0JSMzVNaE01RUlqMHpFVVIxOFhLSzY4c2R0eHhSMnZzR0pKd0EwOVhVUWtleU9CcDZz
Z2pqMlN2VTFIbApYTDQ1RE1CN2o0M0psalUxRDI3SzdJT3Q0NWdIZnphLzY5YTlQMGVuREJwdnpI
eE4wVHlLS1g3RUNTQTVWamU0KzZSZ1BlTFNTeThWCnZYcjFFaFF4VTdSczJWSlEzSUFjVVBPL1No
R2N4ZUtMTHk3MjNITlBNWHo0OFB3QU0wTEFvdlRGRjE5a2ZMdTQxeWhRbmFCQWt1TGMKYzg5bDk3
QVlOd3I2SjI2NDRZYmlLZzFBcG9qZHpKQUhzdmtXT3BLZ3A5YXRXOWVOOGZ6NTU1OHZKa3lZRU5Z
ZDdzYzExMXdqN3JubgpIa0dCL1VMTGxKbUpEOWxMTDcwa0huend3ZEkyREd5ZEMzQXhUbkdPeE5D
aFF3WEZPaWx6R0VMcnNuVk5EVzFzUkthSlBwZ2FSMXZwCkdrTlR4anl2cDNVdmdsd3paWnVnY1ZO
OGpRa2FMNXRITWNXUDJPbENLZE9VMFA4U0dCVEUvYUFBWnd3Y2NVQmVlT0VGL2lNWGRhSloKczJh
Q2dub0pDbVRHejA4ODhVU0IzZXMxMTF4VGYyTlNRRVJzQXpBVVRabzBFWmc4cGhLa2RqRDE4TjRD
eG5POTlkWXJwU2tVTUk3OQpzVk1VY1k3NWdvOHpCYWpqY1h2enpUYzVwc3VXVzI3SmNWd295cWtZ
Tm15WTJHaWpqVVM3ZHUxS2FaOVhDZWdwTG1IOFdyUm93YWN6CkVIUjMzMzEzc2RSU1M4VzlZdXpa
dHR0dUs4NDg4MHlPU3hQV0NNd2hMSExBY3hFSnRMYkVFa3VFZ2dhZU1VZXhNVEJyMWl3Qit2ajUK
NTUrNTdObG5ueTFHakJnUitwN09URk56SWFrUFVQVzc0b29yeEhMTExTY0dEUm9rOXQ5Ly82Ulhj
ajJ2MXpYVjMya2IrMUQyT0hyNApLSnV1Ylp2bnB0YzlieHgwLzlwSTQ2YjRtaUpvM0VZZXhRZy9R
cnBmalNMUkJFMGRDNEdCRFM3NUFBQWdBRWxFUVZRWVYwbTcwTEpICmp4NlNUamJraWl1dUtJODY2
aWhKTGo0bEluV1Nhb25zMjdjdnh6dndrRWhCb2lRSktkNXQ0Yi93aDA0VHM2b2UzQk16SVU4OTlW
UkoKZ2VDcW5wVjk4L1hYWHpQZXI3enl5dEtxSmpVRVNjS09KQ0ZEa2lvVC94MTc3TEZ5K3ZUcGto
WVRqcFNOYU9ObGpsT3c4LzM3OStmbwo0RjQrb216N0kwMkR2aWlRbzl4MTExMDVndmltbTI0cTU4
NmQ2eFZQOVp1RjlxTXFpSUpGakx3a1lUM3FOYzdmZlBQTk9lTDQ3YmZmCkx1bUVKM04vd2lwQnpK
R3JycnFLb3pQUG1UTkgzbmpqamZMZ2d3K1diZHUybFJSNFVOSUpqSnd5WlFySDhLRVRTeDU3UkNv
R1BjUWwKMEJJaW9kOS8vLzJTWEVUbWlreHZZaTdFOVEzUEVGbjY3cnZ2bG9qTU8yVElrTmppdEpr
Z1NhVXp0a3pTdzZMVzFDaTZUR3BQMlBNawpXRVgxSWF3dHFubGxqNk8vWFdYU3RXM3p2TXgxTDRr
dS9XT1NkSjBFeXpTTjI4Ylg2S2J4b25nVThBMTBrczNmUW5KVG5VUUdsZWVtCitKSDRhR0tWNXRY
L1JkS0VpK29oSGZ0SjBzV1hZOGFNWWFIREsvZnR0OTlLMmkyc0JESjc3YlhYNU1pUkl5WHRySEkr
Z240Vm5jaFkKV2RLdXVEejg4TVBsUHZ2c3c0eTF2MDQ2L2ZEZmFydW1LUENSc01ETUlGRGo1NTkv
WGlsREtrWE0vRmN5U3JpZ1NKNDhEbVBIanEwYQpON1I5cjczMnlzMUlJWUFkR0xLc2FidnR0cE1Q
UGZSUTVYVXNIR2VkZFJhUDR4WmJiQ0VoY05DcEFlTVNIOTA4S1N2dGg5VVpCV3UvCi9mYVRsMXh5
U2VVVlVuRmk1aGJCckhBOWJ0dzRTYWM1a2s2Y1pQdjI3U1h0dWxlTlMrWEZxQXNTQkpKUzE2NWRX
ZGdGdldIVGdGUysKS29FUUtVcTZKRlVqU1VmYlNXQXF6MG0vVzk1MTExMlMxQWdseFpKaFFSLzNt
UHNxeVphNTRMVjE4dVRKSEl4dzVzeVpYaFlMVkk4OAo4b2pFUEVrS1VvaE5CQWh5RUNCSnZhVUNJ
KzFGRVd0cUZGMm1iUnZLcThBcW9nK3FiVFU5anFicDJxWjVYdWE2cDBLWHFqU2tBc3NVCmpadmlh
L3k0SzRQR2RmTW9DT0o0eUNHSDhQcU16VlY4YzA4KytlUUtqK3J2WC9EYUZEL2lCSkRnU0NqZUR4
Z3dnRTlBL01YSnBrQlMKMEQwV0JKSjJnLzN2WmJrR1U0cTY1czJieDY4LzhjUVRrdFJiT01KekZu
aXE3K0RVQjhJT2RreWpFaGpvTGwyNlZCNlRQWXJFam9vTgo2Wnh6em1HR09FOWJzSHVCa3kvQXlw
cElUUytSNGNPSGR0cTBhVm1ycUx5bjhyR3BGRTY0aUlJRm9RS25PUDRFb1p4c2tQZzBEc0lKClRp
TW1UcHpvTDZKMi9jNDdrcVRzeExJLy9mUVRDNFhCa3lMc1h2WHAweWZWNlFVRVFueUVFREVkcDUv
b04rZ2FzRysrK2ViRXRuZ0YKZE0rRk9PSGZxelA0aTkxRVVqT1VwSllwOFhIdjFxMGJiNWFrM2FD
QWtJTDAyV2VmeWNzdXUweW0yV0VMdGluc1BzK2FHa1dYWWZVawo1ZVdCbGFjUFNlMnlhUngxMHpV
MmRGU1RUZk84ekhVdkQxMEdjWnNIVnBFMGJvcXZDZUlIOTdwcFBLeU9zTHlzUEFvMnlVblZXSkx0
CnI0VEdCNmx0czBZQVRrU1NraWwreEFrZ1NTTVQ4aHdmM2pCMUJYd2d1bmZ2THIvNjZxdVF0L0pu
Z1hsQUFtRkJIUXc3WWY3MDNudnYKeVRadDJyRFVDd1pLZDRJUWdWMzZDeTY0SUZhcVhuZmRkU1Y1
VmFoVVQzWUw4cHR2dnFuYyt5L2lCQmwvT1IzWHBPUElPK041WU0yZgpQMTl1di8zMnpKQkNKU2RM
QXAyc3R0cHEvQ3BnUk8wbVE0aXJGd0dFN0tFU0dYeWNKS2J1RDZsVDBkR0pKSzQvQzZyNW5YNzkr
a21NCmZacEVPdEI4V2tJT0NxcDJ4TW11U0w1REFoRjJyMVNTcnJrQVlRRW5Eeml0SUE5M0tsVnpH
ZEFXZVI5akFjeDdDUUwwd0lFRCtXVDMKMDA4LzliSVRmejBCeENzSUFYUFVxRkdWVFJBdlA4dHYz
alUxRDBNVmJHOVdXSG43RUd5SC85NjJjZFJOMTFCclRrUFhmdHg0MXlibQplWm5yWGxhNjlQRGov
ODBLcXdnYU44SFhRSzBXcC9OWXk2T1NMaHFQZ2grV240ZEhnWm93TnFUQiswRURCU2NnMkpnbSs5
ZXdxaXA1Ckp2a1I1d1dMWm1MYTlOUlRUd2tZbndVVHZCZVJEWWdnNWpMNFNNczlQRTkwNk5DQjNi
TVNFeXoyM1hmZktyZ2JiTENCbURGamhuajkKOWRkRng0NGRCZW5DVnozUGVrT1VLbWczV054eHh4
M2k5Tk5QWndOdkdHK0hKUmhzMFlMQ0hyaTg1M2dmQnRYQlJDcElnaGlxWUhaaAo5ekJFNzl5NWMy
YjQxMTEzSFJ1cXc2Z2VYcXJvQkNvVHJMLy8vZS9zZFFzdnc3aDgwVVVYRFlWRHU0THN6U3owb1VX
WnhCeUpaWmRkClZvRCt5ZVlvMHZFQjdkNnJ0eHJPRXk2NlNBaHlGaUFJWDJRZHJmNnVyeVI5WUFR
dHlHS05OZGJ3NVNaZm9xMHdlZ3k2c1NhbW01MFkKa0NDYUNFVG5YUEJvRG80STRPZ2l5YnNjZlhn
RW5UWUpVa1VUOUdFU28wZVByclIzc2NVV0UyUWpJMGdWVVpCZGppRDdnY3F6TkJkdwo1QUQ0cEpv
bFFLdDVrcWsxTlUrYmcrOFcwUWNieDdFSXVpWTdMU1c2RHVMY3V6Y3h6MjFlOXp5ODZQNHRnc1pO
OERWMHNpMW9FMW5nCk55enBwUEV3K0ZGNWVYZ1V0Qm5mTGRLY1lJK1VjUHBEcDRVQzYzMWNNc21Q
T0FFa2JtUWluc0dUemxwcnJSWHh0TGhzZUJDaVhVaEIKaHZDQ2p0dENLMnJhdEtuQUlnSG1BSCtE
Qnc4V3BMTWVXbFlsazNaSUJYeEV3K01YMmJod2JCSFVINVhnSlF3ZWozYmFhYWRLRVRDbQpTeSs5
ZE9VZUY3U2JLMGhDRnllZGRGSlZmcEUzRU1pYU4yK2VxUW93c1hUeUk3QllncG5GT0dSTmNKRU1B
UTRmc0RoR2trNk5RZ1czCnJQVVc5UjV3NCtFVmZ2R2pCQ3F5TWFpaGc5QTJFVHlTRklVNDZ5d2hh
RkVWNUttS2lDcTBhRkltM08zU1NWSlNzWnJuV0xUaEJqbm8KZFl6VXlBU3BkUEd6bXBjQ0dUcm5B
dGtFc1JjM0NQT2tCc2JlMFFMVlZkM3V2UFBPTEhpQWdVVThJTXpmWU1MY3c2YkNjY2NkeDk2dgpr
cnlnK044bkEzNEIxOG9RMHVEcExvZ25mMW1WYTFOcnFrcmJWTXNVMFFjYngxRTNYVU80VnFYcnFM
RXdNYzl0WHZlaThKUTN2d2dhCk44SFg3TExMTGdKemkyd2ZRbEdpazhaREs0akl6TU9qWUJNSTM5
aG5uMzJXKzBhMmZzeGprSE9iaU5yK3pEYktqOURFYnhTSlVGMVIKcGNqYllmcGdzK3BCWGpoRnZ3
ODliV0lHMlF0VVZsVW42QlRDdXhDT0JxSEhmOHN0dDhRMkcrb2V4TmhVbFNFWG41VjdIUGRkZlBI
RgpyUDZSWlBSYWVVblRCVEZiRWthRFdST01rYUdhNC9kV2xSVVc5RXVoamhTRlQzZ2JXbVNSUlZq
ZlBtc2QzbnM2YVQ4TUZzYVVUdVpZCnpRNTJVRkVKYW9OUTIwbE1CRStTbHpKSmFsMUVUSW5GNHdw
QVpSRHpJRzBDL3FFU0FrTk1FcDU1N1lEYUhJelp5ZVZwcE5xY3Z4N2QKYzRGT0Z0a2JWeHBEZWhY
Vk0zSk5MZWxVaGZzSi9XT01aMWlDQ2hac1VHQUQ0MTJIbGN1U2wzZE5EYVBMTE8zQU8xbGg1ZTFE
WEh0dApHa2ZkZEEwMVFLaVB3Q3RkMW1SaW5wZTk3bVdseXpDY1pvVlZKSTJIdFRNc1R3ZGZFd2JY
bjZlYnh2Mnc0Njd6OENna0VMUE5CNXkrClFMVWJ2L2ZkZDUrRXpWUlNNc1dQT0J1UXBKRUplUTdq
VkxnVVZSbllrTmRMelhyODhjZUpqMnNtb1IrYk5aRkVMV2tYdGNiZGJ4QWUKUEFYQm1BbEdxbDZD
Y1NGYzRTTEJQVERzQU9BV2xZNzl2Q0tsL1g1TUJ2UXJyTEFDNjM2V1ZtbEVSWEFZQUJ1UEtBOVhZ
UERXV1dlZAppTGZUWldmOTJJVFZFZ1VMRGhIZzJTcks3VE5zSmlCUWxTMTBvajEwR2hmV2xjUThV
bVZrVDFyd2VvWDJMMXk0VU41MDAwMFNkSlNVCmJKOEx3ZmFqajVpYkdGOTR1Z3BMc0J2QjVnR00r
bldudkd0cUZGMW1hV2RXV0huN2tLV3R3WGVLSGtkYjZkclVQQzl6M2N0S2wwRWEKd1gxV1dEYlFP
TnF2ZzY4Qm5MQmtrc1oxOFNpa2pwVnFvOVFVUCtJRWtEQUtUTWlERVNlWTZQWFhYMThpNW9EdENZ
d1RqSzZLVG1RZgpVdU9hOXFPUFBwTExMTE1NeDArQk55d1lwMk55bUVxSUFZRWRiWnc4bUJDQ3ZI
N2psQWdmQVFob1lRbUc3dGk5MEpHeWZtekM2bzZDCmhmWkMwUFFMbi83M3p6ampESTc5NGM4cjR4
cTdxbWdYUElSa1NkaGttRHAxS252RXdpNnRLdTNXdzF3STRnUHIybm5ublZjVm44WmYKSm8zQnV2
ODlsZXU4YTJvVVhhclVIU3lURlZiZVBnVGJrZlcreUhHMGxhNU56Zk15MTcyc2RCbEdSMWxoMlVM
ajZGTlJmSTFwR2pmQgpvNWppUjV3QUVqWTdGZktnaHVQNUk0ZjZBZ0s1WUVJMDFvU2RmQVQzQzZw
dlFHMko5T2tsR1NselhBZ2I4QU0xSVlxYUxTRVFrVE1CClZxc3B1MTNZWGNkcFRGaUNxOXFlUFh1
R1BjcVVsL1ZqRTFaWkZDeW82U0grUm5EOEFRT25IZ2dNcVhKeUVGWm4zanl5aWVLeFJtd2UKWEJk
OUNsTlBjeUV2Ym5XK24yZE5qYUxMTE8zTEF5dFBIN0swdGN4M2JLZnJzdWM1Y0YvbXVwZUhMb04w
a2dlV28vSHhRWFJxdnkrYgpSekhGanpnQkpDZnBJUEk1N0FvZ2hFQUZwVEVtNkNjalNGbFVYQUhz
NUt1NkxTMExmOWlwUjJ3RXFKM0FaN2FKRk9hYUdIcWJCeHh3CkFBZSswOVdtUEIrYllCdWlZR0VI
RXUwT1MrUzBRRjUvL2ZWaGowckx3enlGdWdUYUQ3ZlFhV0o1cEdsa1BjNkZOUDBybzJ5V05UV0sK
THJPMFZ3ZXNMSDNJMHRheTNxa1h1aTVybm50NEwzUGQwMEdYWHJ0MXdISTA3bUd6bU4reWVSUVQv
TWhmZ0RvaXhnYWY0SW5KUzQyawp5MTUzQy8rRk42Y2tWMitGTjZJQlZFRHFhZ0xlWEE0KytHQkI5
aExhZXFTVDl0UEFvdE1ROWh4R3FvcmNKMjBkeWdnSTdZR0hPTGlxClhtV1ZWY1NnUVlNeVFvcCt6
YzJGYU53VStTUU5YU2ExUXllc3BMcnE1WGs5MFhVWjh6eHUzSXBhOTNUU3BVNVljYmlvcDJmMVJP
TmwKNExVTWZzUUpJR1dNcEt2RFljQWdCblIrYk5MQVFqd1lzditwdU9nMWlBSlhkUVBIUUJxNlRF
S0ZUbGhKZGJubkRROERSYTE3T3VsUwpKNnlHTjRLdVIwVml3RTk3VGdBcEV0TU90c09BQlJqd1Qv
aThwMzg2WVZtQUd0ZUVCb0lCblhTcEUxWURRYS9yaGdVWTBFbVhPbUZaCmdCclhoRHJDZ0ovMjlP
bDUxQkVDc2pZVlI2dFEzMEQwYnZMRm54V005dmZRTHBmQ01ZQkFpb2dRYW10Q3NNRm5ubm1HQXdq
WjJrYlgKTG9lQm9qQmc2NXFhcHI4Tm9ROXArdXZLTmo0TW1LRHh4c0xYMk1TamxNMlBPQUVreFZx
Q3NQYUkya3BCYXNTSko1NVk5U2I1am9aQgpmMVZlV1RjVU1FMXN0dGxtNHNZYmJ5eXJ5dGg2Z0Fz
eU91Wkl6SWdXYXpLaExlM2J0eGNEQmd3UTVFTFFaRk5DNjE1MTFWVUZlYUJnCk5TVkVNSzMzaEFX
TWdvSUpjbk5zVFBCNzhza24yWllHT3IybWswMXpBYmdnVjhLQ2dpc0tSTTIxSWRtNnBxYkJqWWsr
bUI1SEcramEKcG5sdXc3cVhobWJUbGpWQjQ2YjVtckpvM0NZZXBYUitoSmptUnBGb3dyRUhIUHpt
VGJObno1WXRXN2JrT0JMd2dnRXZTbkRwZXZ2dAp0K2NGbmZsOWVDQnEwcVJKWkZ5SnpJQXp2Z2kz
YnNEMXlTZWZuQkdDdnRmZzBnNXRtVFZybGo2Z0dpSFJpUnE3S1VZUXNTS1NUdHBYCmdmWHd3dzh6
dmg5NjZLRWl1cE1JRXhGaHQ5bG1HN25oaGh2bWlxNmNXSkZpQVp2bUFtTGZJSWdxdlBaRnhhQlI3
SmJXWW5uWFZCVzYKVkcxd1ZsaDUrNkRhUHBTellSeE4wN1Z0ODd6b2RTOHJYWWJSVlZaWVpkSTQy
bTJhcnltTHhtM2lVY3JrUjl3SkNNM0VwRVJSTjZ0VQpaQ2phdDJqWHJwMGdGNjZDNGpXSTFWZGZY
Y3liTjA4Y2R0aGhTYUFLZTA3QjFzU1dXMjRwbGx4eXljTHFTQU80UTRjT2dtSi9pTmF0Clc2ZDVy
WkN5Rkc5RFVQQkJQaVVxcElLY1FOOTk5MTJtSFJoc24zbm1tWUlDRWVXRWFQWjFpck1oMnJadEsz
YmZmWGRCcnBsTGJ3eTUKMlJWNzdMR0hlTys5OXdSMkprMG5tK1lDNWdIYXM5eHl5eGxkSytwaFRV
MmlHNU45c0dFY1RkTzFiZlBjOUxxWFJLOVpucHVrY2JUWApORjlURm8zYnhLT1V5WThzbG9Vb0c5
czdGS3hPWEhqaGhTeGt3RDNxYXF1dEp2YmNjMDh4WWNJRWNkZGRkNGsxMWxoRHZQenl5NnphCnNN
TU9PNGp0dHR1dWRCU2hYY3N2djN6cDljWlZDQ1pubzQwMmlpdFN5ak9vWHNFVnJBMnVnbUU3UkFI
NVdGajBPajk5K25TeDBrb3IKTWE0V1hYUlJNV0xFQ085UlhmN09uRGxUSEgzMDBlTFJSeDhWZERv
bzJyUnB3M1l1WlhZR2dqaHdTcWNndWF2Rm1NRWxJV2daTkowbAoyVElYMEhiZ2hrNUFVbmZqZ1Fj
ZTRBMFhIZk9vSHRiVUpBU1o3b01ONDJpYXJuWE9jd29relBPYzRnVUowaVpJR3Y2YTV6YXNleldO
CnlwbGhtc1p0NEd2S29IRmRQQW9kR3JGS053V0E1ZzNYZGRaWko1WUNUUE1qVGdDSkhaNC9IMklu
LzZLTExxb3BpVk9RMDA0N1RZd2IKTjA2OC9mYmI0dXFycnhZLy9QQ0RFUUVFaEVkcVlEVnROSmtC
dklFSk5KMndNNlg3SkFZR2NsT25UaFg3N3J0dnF1NDFiZHBVUFBqZwpnM3pLOGZYWFh3c0tOaVJJ
blVJY2NjUVJMTUJpd2ZkN2lVZ0YzRUJoTEdCMzNIR0g2TjI3dHdCT1B2amdBKzdmNzcvL0xpamF2
S0FnCmhPTDQ0NDh2dldWLy9QRUhuOExrcVJpbkp4UnNTNnk3N3JyOEJ3WURlZWdyZGwvVEpGdm1n
dGRtN0tDblRSUUpXMkIzREx1QzNicDEKUy90NlZmbDZXRk9yR2h4eVkwTWZiQmhIazJ1OGpubU9k
Umc3L2V1dHR4N1BjMUxWRmNpTG0rZTJybnNoWkpvcnl6U04yOERYbExGMgo2K0JSWUcrTGIyMnJW
cTBFQkkvYmJydU43Wkl2dU9DQ3lMaGlwdmtSSjRBb1RzK3hZOGVLdmZiYVM4QklCOGxqSGw5ODhV
VTJjdDU3Cjc3M0ZxNisreWd1WUlraXR4VEJSZFFhdmkyb2MyYnl3QWY3NTU1L1BPOXRSNVpDUDQx
T29GWGtKNzRJcHpiSzc1TUhJOHZ2cnI3OXEKRjBCT1AvMTBGaFRTQ2lCb1A0U053dzgvWE1ENDdP
bW5ueFp2dlBGRzFha0hHTDN4NDhjTDdHS0FBY2FPSEg2ejdyNW53Wm5xTzFqQQpldlhxeFE0UTVz
K2ZMM0NDcytLS0s0b3BVNlp3dXowNE1IcUdjT0tkSk9CRVNqbDkrYVVnaVUySWE2NVJmaVh2bUVO
MUREZ25ld2t4CmVQQmdWdWZDNlNZMkdXREVEYWNHYVpJdGN3RnR4bHFCY1VxYm9HcUtmcE5ldExq
a2trdVlRZHRnZ3czU2dxbVV0MzFOclRRMDVzSmsKSDJ3WVI5TjByV09lUC9IRUUvd05SMkJTcUcx
aW5sOTc3Yld4ODl6V2RTK0dWRE0vTWszalpmQTFjY2dwZzhiejBqSGFQM0hpUkRGdwo0RUJ4M1hY
WDhRWVplQXp3REhCWXNjOCsrMFIyMFNRLzRnU1F5R0dwZm5EUVFRZUpNV1BHaUxmZWVrdDgvdm5u
QWpwN3NMa1lQWG8wCmY0enhRVGE1YzQyUFVkSDFrNUcwdVB6eXl3V1lEcWloSmFXdHQ5NmEzUmJq
YUJ1TDJEMzMzQ04yMjIwMzNpRlBlbGZuYyt3dTVHR1UKL0czNThjY2ZPWUkyMU85ZWVlVVYvNk5V
MXhncjBCQlUrTTQ1NTV6S3V3c1dMR0R2VVJkZmZERkhFWWRIcWEyMjJxcEtrS3NVdHVRQwpLbGFn
QzZSUm8wYnhxUmVFSnFTdnZ2cUt4eHZCdVNCd2dRNmcvb05kUmlXVlFYcWZ0dHNGY2I0TVQvVWZG
dlFzYWtZZWZFUk1odzFMCng0NGRlYjRqZi9Ma3lRSndvWTRKWVF2OVZrMDY1c0trU1pOWWdJY1Ez
Nk5IRDlXcWE4cmwzYXdBVHZBM2JkbzBBVTlFaHh4eVNLYVQKVHR2WDFCckVoV1NZN0lNTjQyaWFy
blhNYzN5VGNLcUh0UmZwdnZ2dVk1dFBhRDNFelhNYjE3MFFFczJkWlpyR2krQnIzbm5uSFdiTwo0
U2tSSjl4eFNRZU54OEhITXgwOENqWjJvUVZ6RFczVTRhUWFHMlU3Nzd4elpkTThyZzNHK0JGYXhC
cEZJdVN6Wng3ODZrNGtRVW82Cjd0SU5OaFc4WTQ0NVJoNTQ0SUdwM2tsVCtLV1hYcEswUXlTSkFa
ZG5uSEdHMHFza3FFblNtNWUwMnlwMzJXVVhTUUtjSkdGRTZWMmQKaGZyMjdTdHBNdVlHU1F5WGJO
R2lCZE1ScVVybGhnZXZWOFNvaDhLaFV4Rko2bnloejlKbTZxVDlKRmowSVpkK2IxNTBrc0ROSlNj
Tgprajdva2s0TzFadC85OTFTcnJLS2xFc3RKZVUzMzZpL1J5VXhKMmtoVHZXT3Z6Q2Q0RWhTdWFx
c0dWNi9RY3VrWGlacFY4bGZQUEU2Cjcxd2dHN01LN3Z6WGlSV0hGS0Jkc2t4ckJRbVBOZERvbEU0
ZWZQREJFaDZKZEthMGE2bzNQdmpObTNUQlN0dUh0TzIyWVJ4TjA3VXQKODd5TWRVOFhYWUxPZE1F
cW1zYUw0bXZ3TGRwMTExMGxoUXRJbkhaNWFUeXhBaXFnZzBjaGxYQ0p0cEo5c3FUTlhrbnhSU1FK
MDVJMgpTbFdhd04vdHN2a1Jkd0pDTXpGdHdrNHVWTEFnYlRacjFveFZOT0FOYTcvOTltUFBUMm5o
NlNoUEZLWURUQTBNNkxwaUp3ZzcyamlXCnhva1BNUncxNVlJWlVGK0JBVEtNa1JFM3hWTmRDNVly
NHg1NndzMmJOODlWRmV3MFNNQVRzRzNBeWNXdHQ5NmFDeDVlSnJmTnJMNFUKQmdpeFMrb3Q0VlFE
K3VCUVQvQ1NkM3dPL0E4Yk5zekxqdjlGdkphK2ZiRVYrV2U1SVVNRURXRDhPNEduR0NlVlU3ckFh
MVczY0M0QgpWU1cvSnk4U1FNWFBQLzhzOEt1YWRNd0ZjdnZOemdzd2ozQVNpUjNickVuSFdvSGdu
bEFUeFBoaUx1UzFQN054VFUyTDM3TDdZSG9jCmJhRHJ2UE1jTzc5aDh4enFocGpuK0UxS05xMTdT
VzNOKzd3ZWFUeXN6N0MxUkYrMjJHS0xzTWVWUEIwMFhnRVdjNkdEUndHdmhoTTcKcUdCQlRSWmFD
WnR1dWluekt6RlZWeDZaNEVlY0FGSkJmL3dGUHJpWFhYWVplOExDZ2dXR0NxNTNvYi8vSmVtb1F5
Q0JJVnVjcmwxOApEZm1lNG1OVXhGSGxtMisreWFwbSsrKy9QNnRRNGNoN2swMDJpVzBzdkRwQldJ
Rm5zRFNNV2l6UUhBL2hZU0t2M1Fsc1dSQ0VFbjJDCnNKblhxQjF0d2tJQi9Vd3Z3ZVlEK3FaWkRF
czlHQ1ovRVFnVGRCS1dsTlN0dkJlSkthQkpKWWlnQmJtYkV5UUJlMCtVZnpGZi9ZS1EKOG92L0xZ
aGo5emx6NW9pUkkwZXlhMlRNTDR3TEJIQkVydS9UcDQ4U1NGMXpBYTYvb2M0R2VvRTZJZFN3c3Fh
OGpDdFVyL0NoZzl2eApQRGkyZlUxVndhL0pQcGdjUjF2b1dzYzh4emNjbTJ6WUlJRWpEYXoxYWVh
NVRldWVDczJtTFdPYXhvdmdhenAxNmlTd3hzY2xYVFFlClY0ZjNUQWVQNG4yVHdMTjE3dHlaVmJj
cGJvdVNKMUpqL0FndFlvMGkwVUJYamgyemRCZ0JjV2JNbUJINkt0U1RpQ2sxR3VpT3ZBM0oKUXc4
OU5MUjllVE9oWGpaMDZGQkpCdE9Kb0JEY3JHdlhycXlta2xpNHBBTEVGRXNFVUlwTFVHdngxSVhp
eXVsNlJoODRTWWJZVmVBUQp1SThXajZvOEhUZDVhZC9maGloWU9Qb2xieUdTZG1FcXhja3BROVY5
NVlIcXhjOC9xNWFzS1lkamFOU2ZKNUdnSWNuR1FjNmRPMWVTCkMxcEpPdUtTYkhZa2VieFRBbXZq
WEVERHlaQ2MxYWFVT3VFck5HVElFRGw4K0hCdE5LcHpUWTJpUzEvemxTL1R3TkxaQitVRy9yZWcK
cVhHMGlhNTF6SE5pTkNVWm9rdHlraUhKUTZHRVdpR2Q3aW5OOHpMWHZUUjBtVVJMYVdDWnBQRWkr
Wm80SEpWTjQ3cDVGUExXS01rTwpSSm1uTWNXUHVFQ0VOQk9URW5aRklFbENxZ3hMRkhWWkVQT1ll
SndYOXE2dVBKcE1oY1c1Nk5ldkh4dmE3N1RUVG9uTnhRa0JqUHI4CjNxOFNYeXE0QUhacGNib1Fs
bWloWVdOdlBQZlVoY0xLNmN5REsxY1lsNVBlWnhWWUhKZGlOdzFqV1crSjdJSkVseTVkeENxcnJG
SnAKT282NG9aNlFPZVdJYTRNVHI3aWRNK0FZcWtPWTIxR0pCR2syVUlSWE1xamdZVWNNdE8wWjJF
ZTk1K1hiT0JmUXRxeHJCWGJZNERBQgpkSm8zMWNPYW10UkgwMzB3Tlk0MjBiV09lWTZBd25EQmky
ODhqSUZ4d2drbkR5cnozTFoxTDRsbTB6NnZWeHBQMjg5ZytiSnBYRGVQCkFnMGR4TUJTNFdsTThp
Tk9BQWxTWHNnOUJoRnFENmVjY29yNDhNTVBLMHdML0M0ai9nYzhLWmhPME1HR3YyclRxUlg1b0la
bkhKdFMKOSs3ZDJUdVRYd2pCT0o1Nzdya2MwUjRmSDlqdmxKVkFNOUF2aHZjZ2YxcHJyYlhZM2dD
QkxQRmhnOGNvK1BEdS8vL1pPdzl3ZVlwaQo3YmVLQ2lvS0lwSStGQzVKTUFDS2lpS0tSQVVFQlFr
aVNsS1NxT1NreUo4Z1FYSkdpUUlTRkVGQlFIS1dvQ0pKRUJBd29BaEkwb3VmCmVyMWZmKyt2ZEpi
WlBUTTdzN3M5TTcxN3BwN25uSjN0NmVucDZhNmVyZXFxZW11TExjemxKVjAzcG1QeVk0RG1SWXhN
bWpCeG8yamgKcXBnbS9GMnJKbHlXSG5qZ2djemJZS0xHVlJJVXU2SVhOSzUyMmdFMFpaSDV3a1d1
TE1XNEZ1ZzdpdGt3TVJ1NExZU2ljWGluRmoxcgowOC9RMUR6R3hOZWgxam5QbEY3blpYS2J4UGpl
SytMWlFjODN6ZU5OeVRWMTgzaVRNa3FUOGtnYkExSnlSU0pna1ErQVhSSDg1Y2pBCmlnSUNrYkNJ
cEhSTkVyRVdNZVNKUUdEalI0SDhHQVI2a1QyYXVCRzBiS0R2K0FQZUZBRzdMaUpQQlR2eEJQSUN1
VWU4RG5OSEgvRm4KWDJ5eHhlcnFpdDBIaXhsUWVTZyt2UVRVTTd4MHlTV1hXSjlSVkJCNkVhWUhn
WDN0YmJmSzc2d0ZjbjhrUHFqSnZWQ0lEMWIrRGhRUgpzbWVUSElrNEJuaUI1SjNBTzFaRmlUREJE
eWk0L3R5WG1BNEM3WjU3N2prSHBHMG9hT2E4WjRoeExkQlhZbGxpaURPSy9aMmFONi9wCjhpYWZv
YWw1akltdm0xem5NYjczMHJ3WjZyaEpIbTlLcnFtYng1dVVVWnFVUjE0aU0rNzQrWHNNc2JMUzdo
aWpQSEppOVFCeGdPQXMKQkMrQ3N0T3VKME4wYitSTGNDVkMyQm9sT0hYa1RxUWFJRThHeWVpd05P
Q0trK3hrZ0JxR3RvODFxVzRDUGVqMjIyODM0WXM1R3hVWgpxKzcrRDN1L1VMelAvZlBhQWtNZnhU
T0xzQkNTTTBXd2dHYjVRYUVDbnh4ZXFKSkFNTmxwcDUwc3VSaHJBMlVZWkRaQlJ3NmN5WHlVCmZz
YTJGcTY3N2pwYkErU1hpWUZDdkZQeitIS1k1eHVtclJEUE1HaGZtNTdIV1BpNnlYVmU1M3R2R0w3
TTQ2bGgybXFDeDV1V2Ercm0KOGVrZ282UjVyMVZBOGxab1c5Nk93SVNNUUhyQmo2SjhNeHdoMjZw
cmVMSEFzVnNaaTNKZTEzTlBwL3VFNU11UWJVMm5PV2o2V1NkOQpuWWZreTVCdE5UM3Y3ZjNIYXdU
U3ZOY3FJT00xZDIxdjJ4RVllQVRTQzM0NktpQUREMWg3d2RpTlFNdmpZemRsYlljSEhJR1d4d2Nj
CnNMWjZsQ09RNXVNMkNIMklLUUlEbjBRdklHYkVUQ0FxRWVQUTByOUhJT1o1QTIyRStBVEJ2ZVlp
ZHJYejJJNUFWU01ncU9HcW1pN1YKYnN4cnM5UURxRklNejlEMFBKWWRxN2JlZUk1QUREdyt5WEpO
RE9NTFo5WWxqN1FLeUJEdkFZSzlRZmZCNTUyQTV0aEkrVXFjTU0wTgpQZW5FRTA5MFcyKzlkV3hk
YktRL01jOGJNUW9FNXl2UGdzR2M0bTg3enNRTGpNU2RuL2pFSnl5cDF6Zy95eVQzUGVHejMvem1O
d1lhClFZeFVFeFR6Mml3N0hrMCtReXp6V0hhc0pyWGVwTC8zbXVUeDZTRFhORG0rNlRWWm16d2ls
NHhwUVJyY2tSSVI5ZzZTa0NIOHZQUE8KNi9YQzZaeXFNNUVkQ1pEeVNFRy9YckN5ZnUrOTk3WkVj
RktVdk5DVThxcFBxL0ttNTYxb3NDVzBlOEh3RmxVYjZIeEkzaCswTFFWOAorOWU5N25WZWVUUUc2
bk5idVo0UkVEcWMvOElYdm1CSkZvVU01Z1VGN1NYTTFuUHpucnVNc2pZSDVjdWVXM2Q5SGFXdFVa
NmhxeE1ECmZvbHBIZ2ZzK2tSV3IrSzlOd3BmOWc3eUtHMVZ5ZU90WE9NdDJXMlRzbVdhVjZxV1Ix
b0xpRlppRWQxMDAwMmQzQjlKWFJCOFFGSUMKQlVNTDBwRzBqS1JJMTE5L2ZWS2wwcy9MTHJ2TVVI
MW16Smhoc0tMcG03M3NaUyt6aEhiS2JtbjlBK2Y1dFNNa2RVdTNuWGRNNHA3ZgovZTUzWGFlQmtB
WDZGRGV3WTQ4OTF1Mnl5eTZXZndHSXU0TU9PcWlyYmhWZllwdzNVQzYwd0tjOExtVkF4WUlZUnJB
MGNMeGYvL3JYCm5iSWRHMXp2R211czRSNTU1SkVwMThWZThNNTN2dE90c3NvcUhkaFhFTEZ1dnZu
bTFzMnN4b2s3N0xERG5ESTdHMi8xM3BiNUljRW8KaUZoWTRJQWFaL2VyYW9weGJRNzZ6SFUvUTR6
ek9PaVlUWmY2ay9MZXE1dkhtNVpyNnBaajZoN2YzdlhYdER6U0JxSDN6a2pHZDVTTQpyMzcxcTZh
RUFMdUxrRWcrQ3dSN2Nqa3N1ZVNTOWtmZUM1SjExZkVEVGpjeFNSd01vRkVBQUNBQVNVUkJWSkxM
Z2o1a0tUNlhYbnFwCjlZY3NtMVVUc01Sa1NKNXZ2dmtNbnBpa2YzUFBQYmZkbi9FaDV3STVPRkRj
cnJqaUNrdjZ0T3V1dTFxZWlLcjZGdU84QVV1OC9mYmIKbTdzTENocXVjazgrK2FTTkM4bVBFcGUr
elRmZjNKQ2J5RG56OU5OUG15Sko0anl5alE5SzZhQ3ZMT1Zua1BaNjIwTEJsSVhEMFhjSQpKQnB5
bHVETCt1aWpqN3Fycjc3YS9mR1BmelJsblhXRHF3L3pBb1ExRUlkMUpvQzBEazdEZjR6N1p6N3pH
Y3ZrVHY0WllJaDdDVmM1CmN2UDBnK1lsOFJvOEdJSkNyODFldmh5bGoyWGJDdjBNUlgyT2NSNkwr
anlwNTV0NDc1WGx5ekpqWHJhdHVubWN2amNwMTlRdHgxUXgKdmlnVnlGL0lYRFBQUEhOZmRtaGFI
bWtWa0w3VDAzM3loUmRlc0Yxb2txb2hTSkhNN0xUVFR1dXVWUEUzQk1qMHl3TUI5a3RmK3BJRApD
ejJQeUV5Kzhzb3JkMTJYVjNlVWNuSTlzRXUzd2dvcm1HQTUxMXh6VFdrT1JZbkVqZVNDMkhubm5T
MHZ3NVJLZ1F1cW1yY2JiN3pSCmtiVjhVTHJtbW11YzNPTk1DZGx3d3czZE85N3hqczdjbkg3NjZl
NlpaNTRKbWljbHpTK2hGUkI4ejFHSytFUkFZczVKL0VkeUkxNkEKN1BDZ1FLSEFwK25aWjU4MUJl
dFZyM3BWdXJnOXJtZ0VtSGNVL25QT09jY1V3Tjdib0JCaWVTTkxQWkRGV2NSNlJkbEVXY0g2RzRK
QwpyYzBxZWJ6b09VTTlROUY5T0IvclBKYnAreVRWYWVLOU44azhIcE5jMDRRY0UrSWRvaEFBazZu
WTJDVHBMeklxNzJrMlBQdFJrL0lJCkw3UnBRWnFBa1dKQUhucm9vYTV4dXZQT083MTJxVHRsMG1T
OWhLck85Nm9PaEFEaDExbG5IWC9tbVdkNkNRMkZ0OEdINytLTEx5NnMKVjdZQ3Z2emJiYmVkVjFL
NXdrdWtoZnRUVGpuRmEzRlpYV1cvOXRvcDk5LzYxcmM4Y1NwMVVGWHpkdVNSUi9wdHQ5MDIyQ1A4
NEFjLwo4SHZzc1lkZmM4MDEvZkhISHgrc1hSb2FsZmZUbmNscWk1Z0I1bFlJUE9tcXhwK25ubnFx
MTY1N1YvbkFYNTU3enZ0OTl4MzRNaTZRCmd1NXZ1KzAyTCtWb3FPdkgrYUx6emp2UEM2M1BKN0Zw
eEt0ZGRkVlZ1WThrRjBDLy8vNzdkOFcxcFN1emJpRjRWUnNORmwrV1BqL28KY2NpMW1jV1hnL1lu
cVQ5SVd5R2ZJYmwvNzJmczg5amIzeWErTjdITzYzN3ZEY0tYUlhNd1NGdDE4SGpUY2syLzhhcGFq
Z2sxdnNUbQphRlBVYTdQUDg4NlFONEsvNzc3Ny9DV1hYTkx2OFRMUDFTV1BWTy9zSzA2ZkJBSWVW
WUtNN2ZLeVM1aTR4ZURTZ0JzVTdrWHNERlpOCklGcnR0dHR1VG9HajVyT2RkeiswWWVxd3d5eWhO
cS9hUU9YcytvRFNoR3NWYUExRnBFQXFzeGl4RTQ1dk9UdmtXaEFXMTBDY1NoMFUKZXQ3WUtRWUJq
VjJGVVBNdFpkYjk0aGUvY0FjY2NJQ2JZNDQ1ekNXcmpyRUpkUS9NdkZ0c3NZVmJiTEhGckVuV2g1
UlVKMkhXWW4xZQovdktYRDM4cm9LNWxNWE5EdHNHT1BkYW1XQkhyaGgrWTRpdkpOazhjRWV0UG14
Qm1aYU1zaTRCdjNXcXJyV3lkcG5kYXMrcXV2ZmJhCk5yK3NMU3gydUFrT1E2SFg1akI5R1BXYU9w
NGg5bmtjZFF4RFhOL0VPby81dlJkaVRKTTI2dUR4dXVVYTRsWHhOQ0R1c29pcWxtTkMKalMrdS83
eTdjV3RHVHNIaWpjeFdSbFpMajBHdDhraW0rak9CaFJyZ3prN3dNSThIaXRST08rM2s1VjdpbDE1
NmFhOTRCei8vL1BQNwpIWGJZd1haLzBUVHJKRFJkQlhObjN2S0pKNTd3cTYrK3VqL2trRU15enc5
VHFBQm92K1dXVzNyNTgzc3hkdWttOXRwckw2L2dmSytjCkthV3ZDVmt4NUx6ZGNjY2RYdTVTeGtm
TWZ5aVM3NzIvLy83N3JUbDJtZC82MXJlR2F0cmFHWlgzMDUwcDA5WUZGMXpnK1lOQVlnTVIKWmlp
NitXYnZGMTNVKzVlOXpQdEhIeDJxQ1M3S1FtMnB5d0kzZEtjRFhZajFZNE1OTnZBQ29jaHQ4WVli
YnZDSy9mQ0tQOHF0dzRuRQpBcEt1eE83Z3B6Lzk2YUdRczBLdXpUSjhtZTUzditOQjJncjVEUDM2
RlBNODl1dDNuZWVhWHVkVnYvY0c0Y3VpY1Ira3JicDRuRDdYCkpkZGdjZEhHc1ZjY1l0RlEyZmtx
NVpoUTQ0dW5pNVFxUXpYRTZxK05JUzhBSUsrWW1sTFBtRlNxVXg1cFhiQ1NVUi93VTBGby9tTWYK
KzlpQVY0V3RucmhXcEZ2bEpRanNMaS9qRUlUaXNNOCsrL2o5OXR2UC8vM3ZmN2QyNWRkZnVta1Vv
YlNyV3VrTEs2bzQ3THpoUmpiTApMTE9ZOGlFZmVhOThDY0Y2cUJnZWMydWh3U09PT01MdUU2eHhO
VFRJajAzUmZjdTB0ZW1tbTNZVXFqUE9PTU1yTHFTbzJlN3pFcHI5CmpqdDYvOUtYMG5udjFWNVpR
cGp1WFJjQ1BmQ3JycnFxbDArc3B6OGYvT0FIdlhZdi9iWFhYbHUyMllIcUFZbktEMEV2VVNaTGw5
ZU8KbHovNjZLUDlsNy84WmV0THFMWGFlNy9rTzY2YXVNajFFajlRZTB0QkZIQ0dSNUVvb2w0RkpI
bU9yR2N0YWl2ci9MQnJrN2JLOEdYVwpQYlBLUm1scmxHZkk2a3U2ck9sNWpJbXZZMWpuNmJuaHVP
cjMzaWg4MmR2WFVkcXFrc2ZwWisvN203TFFjZzB1UmtLWUxPMmVYcWNjCk0rejRLdWViVnl5d3Yr
NjY2L3loaHg3cTVhRmhtOUNEL3M3VktZL01KRVpzYVlnUndOU0ZlYXRKU3FOdFNZdTJZUFFmL2Vo
SFRvdHIKcU9Eb3JHZlJpOTZDcEFrY0p6Z0w4OXhHRzIyVVZYVksyWFBQUFdjb1NGb1FVODQxVlRE
c3ZPSEtCdWdBejRLSk14UWFFT05BSURwLwpJS3NwWnNZcEYwTlR3eFBrdnFDZWZmLzczemRYdGJ2
dnZ0c1JZRGNRNGRLajZ3VTc1OXhTU3psM3pER2xMeWY0RG5jdzNJSVN4RHJjCi9oaGJYSWZvRzUr
eURnYWR3M1FIMy9qR043cDN2ZXRkNnZwU1pnb1h0cjBqNkQ1QnpNTWxhb2tsbHJCZ2ZaQ2xaRUZ3
c2xvNldWUFQKelFRN3hnV09NVWtUWS9MWnozN1d6VFBQUEk0Z3hGZS8rdFhwMDMyUEpZZzZnQzE0
SjZ5MTFscDk2dzV5Y3RpMU9jZzlxcTViNVRNMApQWTh4OFhVTTY3eVhsNXA4Ny9YMnBjcnZWZkk0
L2E1RHJnR3hGTmRHNlRhRlExVzNIRFBzK1BLN2htdTd2Q25NbFZZYlhDYXZ2UG5OCmJ5NTh4blNG
T3VXUkZnVXJQZklGeDdJRzJJUnF0OUFnUnFXVm00QXRWNnlDSzZzOVRaNE5mTzd4Y3dmdm41ZHpL
RW95dXhMemd0QUUKbkNjb1lHWG9wSk5Pa3V4NGpFTUliWkppbmJmMG1KeC8vdm5HUzBEWEVnZWlY
ZkgwNlpHT2VhRWxWT2FGbTlUTitpelRGbjYxQ09ENApuZ0x6dCt5eXkxcnVqNnoyY3NzVVIrSWVl
c2k1dDc3VnliRTF0MXJlQ1lFbDJCcUZWeGxUQmVVRlFheERJWmNGSmUrMm5YTFdKUEVYCklNS3R2
Lzc2VG02YlhUK3NWRVFKSVBkR3NubEFmRlVlQVYwTlhEUGp6dy8wd2dzdlBKUUN4WG9XZ0lJcGg4
UjhnRnBYTmg2TC9pRUUKOHl3ZitjaEg4cm82VUhtb3RWbUdMOHQyYk5DMlFqMUQyZjVScjZsNWpJ
MnZtMTduNlRtcityMDNLRittKzlaN1BHaGJUZkI0bFhKTgo3M2owKzE2SEhCTjZmUGx0QWRLZmpW
THkwdzFLZGNranJRc1c5cjBTcE1Sd1ptSTkrT0NEdmFBc1BYNXl1T0lRQjdMNDRvdDcwS1pBCnhh
aWFNRTlLeWJEYmdNU0ZhNG1FQWtPdmljbXZIWGN0WWxTVVdLanFJZW5iZml6ejFyZVQvem5KL0dt
M3dseDB5dFF2VzBjdm40NkwKU3Rscjh1cVZiUXUvVmxuTXZCUldqMG0zVGlwQ0ZTSGI3akJ1UTRj
ZmZyajUxdzd6TExnNFhYNzU1UjJFS1V6bHlwbGppQ1dNVlQ4Qwo4VTRXSEs4ZlFvdkRBT0VFZDVn
aWREdFFyNlMwZEpwV0FrZ3Z4ZEFMUkdJb1pCVGNJSERiQ2tVaDEyWlp2aXpUOTBIYUN2a01lWDJM
CmVSNmI0T3RrbkdKYzUxVys5d2JoeTJTTThqNEhhYXNPSG85VnJxbERqcWxqZlBQNG9GOTVIZkpJ
cTREMG00SC9uQVBPVEx1WlhUV0YKL21LUXNzbkNrWG5heTdVaTZBOTAxdzFUWCtRQ1pQZm1KU0ty
aEFranFkTlJIS0tRNFJQYkpNVTJiMFZqZ1dLNXlTYWJGRlViK1B3ZwpQelpGalEvU0ZrSE5yQXRp
TCtvay9GK1YwZFpnc1lHTmxydVFWeloyandJaHR5R3ZmQmYrd3gvK2NPa3VDZFhMTmh4NDluNHd0
a1VOCkNwWE9LME95MzNQUFBSWGlzcU1IOXJhSXRKTmxnWmtISFhTUVIzR0NLQU9xV1M2QmZlR0ZF
VndKUU9kZHhYUFRmd0l2bFd5cjZMYVYKbncrOU5nZmh5NktISzl0VzZHZkk2MWZNODBpZjYrYnJa
SnhpWGVkVnZmZks4bVV5UHYwK3k3WlZGNC9UMXhqbG1xcmxtRHJIdHg4LwpaSjJyUXg1cEZaQ3Nr
ZThwNHdkZ3ZmWFc4K1EwUUpoQmtFR3dRcEJJQ0hRb2dqbVZIVDBwcXV3VFFRVEZRMUN3RmhoZTJZ
MkdiRmd1ClYxNXhJbzBoWHlYZGptM2VrbjVsZmJJN2pmSlJ0QnVlZFcxUldka2ZtNkoyT0Q5SVc1
LzczT2NzNkx0TXV5SHJrUE5qbDExMk1TV0QKSFgvNVpudkYxUmlLSFd1NE4xOUp2M3VUUjBQSm5P
eTVRVUFiaFFCeUlQaTlqT0tSM0ljQWRmcEwwR1NhQUNzQW1VN3hHK25pS2NkWQpUWmd6eGNNME1o
ZFRPdlNmZ3RCcmN4Qyt6T3RUVWw2MnJkRFBrTncvNnpQV2VhU3ZUZkExOTQxMW5WZjEzaXZMbDR4
TkVaVnRxMDRlCmowMnVxVU9PcVhOOGkzZ2lmYjR1ZWFTTkFkRktMRVBTVkMxWUV4OXc4aHdJdHRJ
Q2gvR0pUa2dUYUQ3YXlmZnArSW0vUGRtV3lWVlMKMXJlOHluRWFoM203K3VxckxWaVplSUFxYUZC
LzMzNTlLTk9XVExkT0FyTGxueEJTWEwvbWFqbEhEQktaMlBFcEhvVHdMMy9ERzk1ZwpZQk5rQnll
cit6TExMRE5JRTExMWxVRFVZaWlJUnlsTHhIUVJ6STQvNzhvcnI5eTVUSWduRmo4aU41U3U4azZG
MU1IM3Z2Yzk4d1ZlCllJRUZVcVhOSDRaY20yWDRzdXdURDlKV3lHY282bCtzODlnVVgvZU9WOVBy
dk9yMzNpQjgyVHMydmQ4SGFhdE9IdS90WjFQZjY1UmoKWWh2Zk91V1JWZ0ZwaXNNbjlMNmdEU21Q
eFlRKzNYZysxaUEvTmtWUFdLYXQ2NisvM3NuVmFLamd0Nkw3RDNQK25udnVjWEo1TXVTbQpRYSsv
OU5KTERYaUNaS05zT2d4TEtET2dDSUZRbDFZa2l0cVRCY2FDemtHM1V4NGlRNnVTQzVXVEpjZVNu
NExrQXRyWGRLY3lmRmwyCmpFSzJWZmFlNDFvdkpyNXVlcDFYL2Q0THlaY2gyeHBYM3UzWDcxYU82
VGM2bzUxTDgxNnJnSXcybHUzVjdRaEVQd0xwQlkrVmJoUUsKMmRZby9TaTZsbDBsNForN0JMRU93
Ui9vMkVFaENZdnVVL1k4VmtHc01MLys5YThIdHBJcVNORXBoc1dCVERMNzdMTTdCVWFhRWtQMgpj
bUc5bCszQ1JOY0x5WmNoMjVyb1FkZkROYzNYc2Ezekt1YzdKRitHYkt2S1oyN2JucndSU1BQZVN5
ZnY4YXAvSW9RNGRqdlljVUVZCmFLa2RnYXBHUUQ2aTFqUkNLTHZlbVBsYjZqOENqQlVZNkE4KytL
QkJHdU1tS2Y5aWc4OGxCNGVRN0dyTjRTT2dDbmZnZ1FjNllHelQKTDkvK1QvSGlXU1hNY3VRTEFX
YWJmQjNLYXU0VTJEOVJ5c2NrdkZNbjRSbGU1THJpbzZiNU9yWjFYanhpNDE5anV2SDQrTTlZMkNj
SQpMbytJb2FZRmFSbzZBYlNqUGpDQlE2UzZWNzROZzAwRmFhZWxGMGVBakwyZ2cyV1JkcXdNZXJT
T1lQMnMrOGRTcHAzd1VsMlJQNlpsCnpDWTRuY0IrMEpNR3BaQzhIN0t0UVoralRIMzQ2NEFERHVp
cW1pRFdzVzdQUHZ0c3k4eSs2S0tMMW9KWVIwZklJTDdtbW10MjlhbjkKMGowQ283NVRRL0xsc0cy
TitnemRJeEwvdHliNU9zWjFYdldNRGN1WFdmMGF0cTNweE9QVFNZNXBTaDVwTFNCYWlZTVN1NWhD
dkhKQwp1N0FnMVZsbW1XWFFKb0xYSjJnS054TUNaY202M0NRSkVjeXR0dHBxNW5LaVJkenBDaTR3
akIxdUl5Um9JMG5oZENYOCtlKzQ0NDdNCngyY09sMTkrZWN2VVNoSS9FaFBpNjMvVVVVZVZUZ0ta
MmZBMEtNUkM4SXRmL01JeXlwTzhqMFI3UXNTeWJPUHczcWMrOVNtbi9Ebm0KeXZUQUF3OVVQaUpZ
WGdoK3gzclZVdjRJeFBoT3plOXQ5cGxKZUlic0o1dGEyalJmeDdiT3A0N1FaSmJVemVOTnlqWFRT
WTVwU2g1cApZMEQ2dkNlVVdORDFVeTdJS0h6ZGRkYzU0YUE3QWtOeGkrQzdkbGZkM252dmJjcEpu
K1pIUG9VQWk0QkZKbmJNNFVwS2FNaFR0OXh5Cml3bTNDRjRJc0UyUWtxUzV0ZFpheThsU1pNb2Fm
ZUJsUWxab3hvdEFkUUo3Zi9lNzN6WFJ2Y2J2dWNjZWV6aFpnUnpqbEVVZ0pXMjkKOWRidXFhZWVz
amxWM2dwM3lTV1htQXRPVnYxK1pmeG9KS1Rkc09Sd3FNK1FiUTNWZ1JJWGtWV1crSTgwWXAzeVlY
UXBiNHhEK2xsSwpORHR3RmQ0SnJNKzk5dHJMdmVwVnJ4cjQrdEFYS0RlS0k2Z2RSQzJ5NDdJNWdF
c2Z3Zld5MElTK1hXWjdWYjFUMDNOWk5ZOVg5UXlaCkE1WlIyUFE4eHNMWHNhenpqQ21xcEdpNjhI
aE1jczEwa1dPYWtrZGFCYVRQcStLdXUrNXlKNXh3Z3UwK3l3WEdmTXJ4SzMvcFMxL3EKaE9kdlNn
ZFFzOEFRQXRPcExNSHU2YWVmZG84OTlwajd5RWMrNGxaZmZmVStyUTkvQ3NGaC8vMzNkNy85N1cr
ZEVwS1pVSXB3eW4yMwoybW9yYTVqK0lyU3k0NHNpVWpmeEVzRktSSXpNVERQTjFMazlZNHJBQTdx
UThpc1lNbERuWk0wSHdwRjNUenp4aE8yR0E3ZGFKNjI5Cjl0cE81dXhjQllRWEh4WWlkdkdaUy96
KzB6OUFnL1ExZlYzVnd0a2cvWnIwdXNvRWIydUE5MFdUQkkrREFxWThKazZaNlMxMmpYY0kKRU1t
Z0dNbVZ4dmpzdU9PT2N3c3V1R0J1VjluMVpyTmpGS3JxblZvbmoxZjFERVhqR3NzOHhzTFhSZU0x
YWVjbm5jZGpsR3VhbG1QcQprbEdha2tmYVJJU1N5UHJSdDcvOWJUL3Z2UE42N2R6N0N5NjRvQ3VM
OEdtbm5lWVBPZVNRZnBkWGNrNzVJdnhYdnZLVnJyYjVMcHo0CnJqSXlzczQzMzN6Kzl0dHY3eXF2
NHd2Wm1vWFlrM21ybzQ4KzJpdW9Odk5jNk1MZStCeTUzMWlTT2lsQlhtNWdYcHEvSjNHVWNpMVkK
WnVuUTk4OXJqM2xKejVlc1ZsNHY0RTUxS1NDV1NFK21VVXRlcHdEbXpybEJEL1JESEN6K0tWUmIy
a1VlOURIYStrT01BSHhFZ2xRSgp6WjJyVHpubEZJdEw2UlRvUUhsRlBJa1d0V0dRTHU0NmxrWE9r
NUZkZ25CWCthQmZxbmluaHVKTG5xVk1XMVU4UTc5eGpIRWUrL1czClBaYzlBcU84OThyd1pmWmRw
NWFXYWF0dUhvOVJycWxEam9sQlJtbEtIbWtWa0tscnM3Q0U3TWhmLy9yWC9XYWJiZWExYTFoWVAy
UUYKQXYvZS9lNTNlN2xPZEpybGVPR0ZGODdNc0N3TFNOQUFXTzcxdGE5OXphUGM5Q1A1MTF1MitI
NTE2amlIa004Y0Nmbkl2LzN0Yi9lSwpwL0N5YW5VSisvVGpoUmRlTUNWRWxxVEt1MFVtYkZrMGZQ
ckhTSll6eTlUTmZERy8yb20yYlBkeTh4c29jM2RXNTh2ODJHUmRsMVUyCmFsdUtUN0ptQ1F6ZmM4
ODlLOG44bnRYdjZWZ21DNm1mYzg0NVBUK2lhZEp1bHlmVGJTOTk0QU1mTUlDSTN2TGtPKzhlSldI
MVpPVk8KanBOem8zNk8razRkbFMvVC9SKzJyVkdmSWQySDlQRTR6V082MyszeGl5TVE0cjAzTEYr
KzJJc1hqNFp0cXlvZWIxcXVlWEZrdW8vcQprR09hbGxHYWxFZGFCYVNiM3dxL3lRWExmL0dMWC9T
Z2NNaUZ3WFlFQ3k4S1dJRmRTbmJEMG9Rd0ozZXJkRkhuR0d1RDREczczMGM1CkFObUtuWGorRktE
VnR5bkdTWDdtWHBtY3ZlQ0thME1jNnUyVTNPTE0waUZYT2IvTk50dDRCUDA4UXRobkY2WnFVakMr
UjlIb1I1ZGYKZnZsUWlGZFpiUTc3WXpOSVd3cWN6NnB1WmZMVjd1eWFZL2tTQ0lGSHFNSzY4OW5Q
ZmpiM3Vray93VHRFd0FLZHNRbjl2Rmh0Wjh5WQowZFVzYUNkWWRMTlE2bmJkZFZmL3JuZTlxNnQr
K2d0Q1FrS0tBL0NzRnlWSVRJcUcvZ3p4VHEyRHgvczlZSWhueUd0L1hPWXg2WC9WCmZKM2NKNGJQ
T3Q5N2s4empkY3Mxb0VxeUFTZ1hwNzVzVkljYzA3U00wcVE4MHF4enNsYlV1TkYzdi90ZFE3OTZ6
V3RlWTBoUEpBZXIKaTdSTGI0SEw2Y0J5NGs3MjJXY2ZwOTNrM0c0UUd6SnF2aExpRUw3MHBTKzU5
ZFpienhIOE44ODg4K1RlTHprQlVnays1ZVJkSUF1MApMRWJ1NXovL2VYSzZsay9pVDBEZnduK2Rl
Sm5Ydi83MXVmZkZCNVVBM2FxSlpIU0xMNzY0M2ViSko1L012QjF4QXdBTGpBc2RjY1FSCjdxcXJy
c3JzN2tNUFBXUW9WQ1FCWEd5eHhTejI0RU1mK3BDVGNOd0JLTWk4Y0FJS2VmYVBmL3pqRm1laFg3
ck9FMmtuMFFMVHlVc0MKSUFPZ0F5R0orQ0w0bm51bmlUSGZmUFBOTFk0dFhjNHhmU0VEY0JtK0E1
bU5YQ3VDSW5mYmJydnRTTytYSnQrcHZXTXc3UGVxbmlIVwplV3lLcjRlZG42cXVtMDd2dmFwNHZB
bTVoaGhVNHVJQWRDaWlxdVdZcG1XVUp1V1JWZ0VwNHI2ZTh3UitFd3dJRVlBdTk0YWVHdFY5ClpT
SElWNjlMaUNZWmszWTBMVE55MXAxQldrTG9KbWgrR0VJWTRSNG9PZnlCOUFWRWJCSHh3d205Ly8z
dmQyZWVlYWFoZ3hIUTliNzMKdmMrVWdhTHJRNTVuZ1pkUm1BamtKM0MvYW5ybW1XY3NJemRadWtF
c3l5SjRpd0RoY1NFRVVZQVJza2p4Tllib0pmY2RoK0tPSWdxcwpNTThJSWxyZGhLSlpGeTJ5eUNJ
VytBMDRCTUc3Q2FGZ29vUVJXQ3BmYTdmenpqc25wNEo4c3VIQWVBUDBrQkRLaFN3VzlzT2JsS1Uv
CkgzbmtFVVBGU2l0SzZmTzl4eWhSeVEvNXNPOFgybXp5bmRyN1RNTityK29aWXAzSHB2aDZrUG1w
WTUyUDAzdHZrTEhMcWxzVmp6Y2gKMS9EYkt0Y2psN2NCbUR4L1hYSk1rekpLay9MSWkvQkV5WWkz
bjMxSEFBdkFicnZ0Wm1oWDhvV3VIY1dKL0Jvb0ZTRGF5RHpvZ0UrNwo4TUlMTS91TWRVU0o3RXpZ
eTZ4UW9oQUI0M1d2ZTUwNy9QRERIUUxLRDMvNFEwTUdLN29VZU04MDBWK3lPYk1EKzRwWHZDSjlL
b3BqCmhPZjc3Ny9mOGtkVTNTSHl0SUFFQnYrd2k1eEZ2SkNBNEIwWHV2dnV1MDA1enVzdmMvN09k
NzdUQkc3NFYrQU5mU0d1ODlvcFU4NlAKUmhwNUN0aFFkdTkrL09NZkcxSWNPLzB5djVzbGoremtL
TVZWRXBZZitzUHpKOFR4ZnZ2dFo5RFo1SDJoYnlFSjJGL1dITlpLMWk5agpBcTl0dDkxMmh2cVdk
Uy9RbllBUWgvZjZFUmJWYzg0NXg4bGR5NEVmUHlvMS9VNGR0ZjljWDlVenhEeVBUZkIxZXE1aVdP
Y3h2ZmZTClkxUEZjVlU4VGwvcmxtdFdYSEZGdDhZYWF4UmFlMk9TWTZxU1VScVZSL282d0UzUVNm
RjRCOTFrbE1mU1M4OENtcFZ6dzJ0MzN5dVgKeFNqTkRYeXRUTjllc0wvKzRZY2Z0cUJxdVZQa3Rn
RmlqWVFKcjhSc3VYV0tUaEIwdXZ2dXUzdnQwRnE4Qy83OFpVaXVWbjd1dWVjdQpVN1hST2dSZ2Ji
amhobDd3b2lPTjB5QVBBV0laaUdwNkFYWmRKZ3VSeFFSc3ZQSEdYaFlDTDNjbHIxM3JyanJEZkFu
Ris5dzdyeTNCCkdIc0owWjN1Q1Q2NEExUUFjQUdJS2dUWEV3Q3QzWEpQYkZKWit0Zi8vc3Z2ZGMx
ZS92Ry9QbDdxRW9MNkFCT1FXNVBGYVdtSHpXdlQKd0V0dzdycGVPV2c4R2RGbG1lZ3E3L2ZsVjcv
NlZiL1RtZWVZUXlrQm1lZFlXOHBaa25rdVhRaHZ5SkpvTVZWa2M5ZG1RUHAwNXZFWgpaNXpoVHo3
NVpEdEhkbmhaQWIxMnV6THJnZzVIbkZTL2VaRzdpWjBuNW93NURVVWgzcWw1ZkRsTUg0ZHBLOFF6
NVBVMTFubHNpcStUCmNZcGhuZGY1M2h1R0w1T3g2djBjcHEwcWVieHV1YVozUFBLK3h5REhWQzJq
TkNtUHRFSG9lWnhYb2x5KzIxNFpqa3ZVREZ0bDVaVlgKOXRwUk5RV2tGOEl0dVpQODhiM2NYUnJw
SDMyNC92cnJvMVZBZ0JxOTdMTEx2TngvdkhhL1RVaEQwYXFMRU9RSTlrV3BTK2kwMDA3egpjbkh6
dlBCUUxnODk5RkNiUDRSbkFBYjZCYzhuYmVSOUR2TmpNMGhiY3NzenRDV0M2UkppUEVHS0k5aWVN
VjVtbVdWTVlTZG91YXdTClMxdi8rLy8rMSs5ejNUNSszK3YyTGEyQWdHakcydVM1QVJVZ2tEQ1B2
dkdOYjVoU2xIYytYUzRyaXUrbjhLZnJwbzlIUlZLUjFkRVQKN0Fvd0FRcUZrbnZhc1JJdHBtOHo1
Wmo1a0xYSEsvZUhiVVFvU2VxVU9oUlFiN25sbHJONVltM2swYkhISHVzVE5KKzhPcU9XRC90Twpy
WnJIQjNtdVlaOGg3eDZ4em1OVGZKMk1VOVBydk83MzNpVHpPSE1hbzF6VGxCeFRwNHpTcER6U0tp
REoyMnpBVDdrbWVTVWJIUENxCk1OV1ZVZHgyeXJNRU9YNnNsTURPeXp6ZXRTTWQ1czdsVzFGd2Zy
UUt5UGUvLzMxRDcxRU1SdmtIQ2xnVHdaRWZFd1RhaExiZmZ2dXUKSEF3Z0VxRjRzRXNQUWdqZmg2
V3FmN2l3TmhRSjVzT2dlajM3ZjUvMTIvNW9XLytycDM3bGQ3MWlzT2QvN3JublRGQXZHak5RcUJq
ZgpJaUpQQnRiRUgvemdCMFZWcDV4SEFjSUN3cnpUcjBFSUlZZDNqUUFVRERvWDlDcStuM3Z1dVdZ
UlNVTTVaN1hMand0UXZGZ3RzZ2lGCkFtdWI0cnE4WFA2eXF0UldOc283dFdvZUx6c0lvenhEdjN2
RU9JOU44blV5VmsydTg3cmZlNVBPNHpIS05VM0pNWFhLS0UzS0k2MEMKa3J6SkJ2akVYQWdFYnhF
VTdRQk5qbHlWSFdkK3BEYmRkRlBENmMrempJeDhvNUlON0wzMzNuNnV1ZVlxV1h0NlZXT3VoQXJX
bFlzQgpGNWhQZi9yVEh2Y3JoRUdzQm9sckVEK3l1R3dOUzFYL2NMRXpmdUNCQjFyM2dIbk5JcUQr
aEtLV2RXcEtHUzVYSi96MEJML2pqM2YwClQvL3RhWC9wZzVmNkh6MHdPdHpybEJ1cGdIVU1QSE1l
b1FEaWJza1lLdUIwS05jakJEWG1HNlhoUXgvNmtMbDlrVXRIUVoxNXQrMlUKSis1V3VGK2xpZkdt
M1g0d29FbDlsSlplQWlvVnBVYSswTFpoa1ZXbjk1b3F2NC82VHEyYXg4czgrNmpQVUhTUHJEbHFj
aDZiNXV1aQo4VXFmcjJLZDEvM2VtdzQ4bnA0empwdVdhNmFESE5Pa1BOSS8ybEFjMzFMM0NCQXdT
akEyZ2QrZytNUkNCUGtxUDBrMGZWcGdnUVVzCjhEV1c4WW1wSDh3VkFma2dtaVcwNUpKTE91Vk1j
UVNFRVFTc0hDckpLUXNpVnU2TXp2ZllEdWp6UWdzdDVPU1NZV3VENDE1aXJRQzMKV0lZdWZlaFNO
L3ZNczd2RFZqdk1QZnpNdys3aUJ5OTJ4Njl4ZkpsTEI2b2p0emQzelRYWHVCdHZ2REh6T3BCU2xM
elNBVUZORUxrUwpXZzYxdnVRN2JkZHZzTUVHamovRnh4Z1NtUEpvR0pDRUZQWE0rMU1vb2ROSkFi
WHhUVmRTZkpVRjhkTzNJa29INUZOWFB6anVPOS81CmpnT2RESFN1M3ZORjdZVStIK3M3ZFpEbnJP
TVpldWVwNlhsc21xL0x6azlWNjN4YzMzdGx4NjIzWGgwODNudlBwdVdhNlNESE5DbVAKdEFwSUw4
Y1hmRmNnclZQRzRJSmF6WnlPU1NIYWFLT05uTnpCbWhtSU1ianJtOTcwcHN4ZXpqNzc3Sm5sTVJj
aUlDTkVnK29GVkhNVwp2ZnpsTHkrRVBFeXVXMjNoMWR5TTYyYTRuLzN4WjI3T1Y4L3BEbG5sa09S
VWtFOFVDeENvNUZabEd3bExMNzEwWnJzZ0VKSERCaVE1CnhiSTR1VnhtMWlzcVJJbElreXdxaG1U
SGhnRkNaRDlTRWxITEZ3SkV0S3hpVmhWa0Z2TGFnTUNqMkpwK2wyZWVlK1VyWDJtS1IrYkoKQmdw
amZxZVdIWTRtbnFIcGVZeU5yM3ZucXVwMVBtN3Z2ZDd4R2ZSN0V6eE9INXVVYTZhTEhOT1VQUElT
ekZ5RE11STQxZ2R2UDZGcAo4c2pKNDdhZjAzd0VRdkorVmx0eUo3SUVnMEN6a21jQ1lvM0pqOVdz
QytSL0FWSVlnVUJ1Q3liSXMrdFNOd25CeXZvbnR5YURZQVNXClZpZzJsWGRES0hSdTlkVlhOOXo1
WVc2bW1DNkRxYVRmV00xSWxpbDNQVXVpSlplOVlacWN1R3V5K0hMWWh3eloxckI5R0lmcll1WHIK
dXRaNTNlKzlrSHdac3ExeDROVzJqL0dNUUpyMzJrU0VnZWVGeEhJa0ZrUFlhcWtkZ1RJalFKNktj
U2FzSC93WXB5MEpoeDEybUNNUgpHSGsycnJ2dU9pZGZXblBCSWcvRkVrc3NVWHN5U3BRakxCa2t4
aFNLbEZsQTZsQSttTmV5cm1kNVBMREZGbHM0QlFwYXB2SUZGMXpRCmtsanluc0VxTXgxb0V0NnBr
L0FNdmJ3V0kxL1h1YzdINGIzWE8yZFZmcDlFSHE5eXZHSnR1MDU1cEZWQUFuSUJTZmFFV3VNRXcr
ZysKOTduUHRVcEl3TEVkcFNsY0JVZzhGeXY5NVM5L2NjTGlqcnFQL2NadTJXV1h0ZGdQRXRNbHhD
NDl1LzRrd1dQSFE3REg1a0owMzMzMwp1WVVYWHRncEwwVlN0WlpQaEhXeXJxT0E0QTVXSjQzNlFz
Y1ZqUGNKM3NTWi9BQUFJQUJKUkVGVThTTWtGL3pzWno5ckZwQW1YUlBxCkdyOUplS2RPd2pOa3pY
ZU1mRjNuT2grSDkxN1d2RlZSTnFrOFhzVllaYlVaazR4U3B6elNLaUJaM0RCRUdRSXVmN3dBOGN2
ZWNjY2QKblJJbERkRlNlMG5vRWNCWFYwaEhUcmtPSE9iNTJFam9TazdvU0JaYmhJVkEyT094ZGJG
dmY3QjhvRlFRcjVDUVlJWGRMcnZzNG9RKwo0OTd6bnZkWXNTQnZuWExUdUlzdnZ0aHRzc2ttU2RX
Si8wVHBDdUgyaVNJbk5LMkpINi9rQVNmaG5Ub0p6NURNUisvbmRPZnI5cjMzCmI0NllaQjd2NWZt
cXZzY2tvOVFwajdSQjZJRTRhcFpaWnVteWVBaU8xQzJ5eUNLQldoK1Baa0JCSWpqMmd4LzhvR3ZD
eHo5dmxPYVkKWXc2blpHeU80Ti9ld01tOGErb3VWOTRXc3hnb2VaK2hMUkZMb1V6cGRYZGpxUHVC
em5QdnZmYzZnbUlUUWhraEtCM0JPKzN6eVhrcwpFT3dlVGhkNjdXdGYyeUxDRFRIWmsvQk9uWVJu
eUp1NjZjN1g3WHZ2MzV3eGFUemVoQndUbTR4U2x6elNLaUI1YjljaHloRVlRYmJCClpZSkZ1ZUdH
R3c3UlNybExsQ25iYmJ2dHRuWXZkaUNVcjhEK2NBRURKdmoyMjI5MzY2NjdydFVwMStMb3RSWmJi
REgzelc5KzB4QjIKbEluZDRhOGVDeW03dUZ0cnJiWE1QZTdIUC82eGpSdUtVdE9FbFV6NUE1d3lu
anZsLzNBRWJJTnlORzdLYTFyNVNJOXByL0tSUGpkZApqcFdieDQzcXJqTEtXQ2xmZzF0MDBVVXpt
eUJXRFVobzNPZXdUdlVqSlQ0dHJOUHYrbUhPMWZsT0hhWi9aYTRKOVF5eHpXUFRmRjFtCjdLdXUw
NzczL2ozQ29YZzhCcm1tS1RrbUJobWxibm1rUmNHcTRBMkZRb0FDVWlVaDZDdXhtKzA2SStTOTk3
M3ZOUjk3ekdjRXh5bkwKdGdQL1hKbWIzZHBycjExbFY3cmFKbGdXZDZMenpqdlByYi8rK2wzbjZ2
cUNzTWVZc0t1UUVHaEJ1QW5kYzg4OU5pWW9iNkFMTlVrbwpqYmdqRVp0UUphV1ZnRkZkZ1VLMlZl
VXp0MjIvT0FMaytpRGdIb2puSjU1NHdqWXErRVRSaFI4U0JmZ25QL21KbTJlZWVWNjhzT2ZvCjg1
Ly92QUVOS091OW0zbm1tWHZPVnZ1MTZKMGFraTlEdHBVZWxhSm5TTmZOT3A2RWVjeDZycmFzM0Fp
RTVNdVFiYVY3UHlxUHh5TFgKVkMzSHhDaWpOQ0dQdEJhUTlPb0pkRnkxOGtFMytURkNVMGVvSUZs
YWI1SXFYR0lJVWsxeUJ3UjZOR3RHR1pRdENKWUE0MTVLZk5SQgpPbXFLRUxaQVpTSlJGbi9zSENv
VHQ2RUlZUVZSeG5pWGgzdGRaNThmZSt3eEV3YnJ2R2NkOThJS2h3c1dDUlZiYW40RVdBdTRJUEt1
CklBZ2Z5K2c3My9uT2pwc2s2eGtsR09zYk81bDVSQ3pQT3V1c1l5NkNiSFRVbVJ5empuZHEzbk9I
S2gvMUdTWmhIa09OWll6dHRPODkKTi9MR2E1TnlUWnFucXBaallwUlJtcEJIV2draHpYVmpkcnpD
Q2l2azl2anh4eCszM2Nwa0llVldIUEFFZVJ6WVBYM21tV2NNNGFqMwpjbHlKb0RMM0pWNWsvdm5u
NzIwaXlIZmdYKysvLzM1SExNNjg4ODVyTzhBa25rdUlCSENZRzMvMnM1K1p5OXJiM3ZZMmcyYXRF
MWtJClg5TWl0NWVrditQMGlRc2lRZjhJVEZYTmI5RjR3S043N0xHSEpjTTg2S0NEdXJMT0YxMDdh
ZWZKSFVMRzl6eDY4c2tueldvS2Fsa1IKWVZYY2FhZWRETXpoRzkvNGhsdDU1WlZObVNtNnJqMC8r
Z2kwOHpoMURHTmE1ekc4OTZhTzBQaVYxQ0hYRUF1S0ZZZ055cXlOc2pyawptTmhrbENia2tSWUZh
L3pXWjZrZW84MG02RU9sTGlpb2hMc0dVTEZMTGJXVUNYVjU4UjJKVHl3Qml2M296RFBQZERCOGxi
VDQ0b3NiCkN0TXZmL2xMOThsUGZySnpLOFlHRnpHc05PelVZejNpaGZQM3YvKzlVNmVPQXhRa2xL
TTBBVitMVzlZWlo1eGhnZDNwYytOeWpQSkoKa2oreXlKSTkvSlJUVHFrOUNCczNSSkwxblhYV1dS
TnBaUXJKQzMvNHd4L01VcHAyeXlocS95MXZlWXZiZGRkZDNmUFBQMis1WHVwZQpPMFg5bTQ3bnAr
TTh4clRPWTNqdlRUcmZoNUpyMkpEWlo1OTkzSjEzM3BrNVpIWEpNVEhKS0UzSUk2MENrc2wrNDEv
NDZLT1BCdHVaCkpJY0RMaHFiYmJhWklSaGhMY2dqaEhuKzhuekU4VG5mZi8vOTNSLy8rRWZiUGMx
ckoxUTVsZzVlTml1a3JFVW9IZVJTb0M4RWZoTW4KZzNLVjdIcUV1bmRSTy9qZXM2T01jZ2RpMUlv
cnJtaVp3aGs3RkRpZ2JQRzNIelZ1bzZnZm9jOGpqUDcydDcrMXdPY3JycmpDY2xoYwplT0dGb1c5
VDJCNFdOc1lVTjBSZXJvQXoxRVdzUDF6L3hvR1lxM1FPbDdKOVJoZ2dHelpqbkxmZXk3YlYxaHQ5
Qk9xWXh4ajV1c2wxCm5wNjFXTjU3NlQ1TjJuRW91UWJGNCthYmIzYkV2V1ZSblhKTUxESktJL0tJ
aEp0cFFXSXluL3hOaHdlV3Y3Zi8rYzkvUHZLalhuTEoKSmY2NDQ0NnpkcDU2NmlrdmdkakxmSm5i
N3ROUFArMGx5R2VlVitDVlYwQzhsMnRPNXZrcUNyL3puZTk0SlhHcm91bVIyeFF5a1plUwo0UlhM
NDZYZytiLys5YTlkYlVwSjg0S3M5WElWNnlvZjlFdkM5M3lPU3YzYWtqbmJ5ODNOSDM3NDRWNHd3
bDZvSHZaTXp6NzdyUCtmCi8vbWZVVy9kOTNyaHFIc0pBRjExbUhmNnN2UE9PM3U1MXZtUGYvempY
ZWVyL0tJZkZhKzRDNitZQ3krclZwVzNHcmx0Z1RONDFua1IKZmV0YjM3SXFRc1B5Y3NYMFo1OTlk
dDkzUVZGN0ljLzM0OHRCN3hPeXJVSHZQVXI5T3VheGFiNk9iWjB6WDNXOTkwTHlaY2kyUnVIWgpR
YThOSmRmSUs4TExBOFArc3ZwUXB4d1RpNHpTaER6U3hvQm9KWTRiWFhycHBXNkJCUll3RnlMNi9z
SUxMemhpUHJBcTRCT0xLVjVDCm55TzV6YWdFVkMwV0VOd3Q4SlU4OE1BRHB3Uzg5OTRqTVYrbXkz
RXB3c3FBM3lPV2xMcm82S09QTm90TGNqK2dSTm10emZMN1RPclUKOVRucnJMTTYrbmYrK2VkbkJ2
VGlYa0FkZHUvSGdiQXc0RnU3d3c0N0JPL3VjYmNmNXpaK3g4YnVkVE5QQlQ3Z1psaXZpRGtCNlN3
QgpIc0N5UlQ0VllodXdnb1dBWFNiMjZmV3ZmMzNoODVFSEI1alNsVlpheWU1Tmd0SlJpRjFlRWxU
aUprWGJxNnl5aXB0dHR0a0ttd1RaCnBCL2dBcnUyN0NvQ1pGRkVqS3VVRGtmTUNKYTVJamZMb3Zi
YTgrVkhJSlo1Ykpxdlkxdm56R0NUNzczeUhCUi96VHJsbWpJZ09YWEoKTWJISUtFM0lJNjBDRXYr
Nm5OSkRrR3plOFk1M21EQ0Nrb0ViRDRoWWM4NDVwd1YvdzBqNDRDZnVFVk1hR0tDQUlPbEI0R29S
VXRMQwovZFZYWDIwS0FDOXBCTUpoWEQwRzZHNVhWZko5Y044UGYvakRuZkliYjd6UjBMRHlZbGc2
RldzNEFDcVpIQXg1YUVJSW5BaThRQ3lQCkErR1NnekFibW82NTdSajMxTitlY3MvOFh3RWY1Q2dn
OEJ3S0NQd0c4QUNJUTdnR25YdnV1YlpPa2o1aGNrOEREOGhLa3B3cS9BU2EKOGVTVFQ3YjRuTUxL
cWpEMzNITmJOZng4UjZIcnJydk9ZaTJXV1dZWlUwYUp3OEsxalRXLzVKSkw5bTBhd1pXTTlDVGha
Rk9DallyMApaZ1h2RDVSRzNDS0J3T3hIYkhEZ3VyalFRZ3YxcTlhZXEyQUVZcHJISnZrNnhuWGU1
SHV2QWxacnJNazY1WnFpaDZ4TGpvbEpSbWxDCkhta1ZrQ0pPalBBOE81OElRd2hiN083MncrNnZ1
L3ZzanJKNDVhNWh1L3NJZ3p2dXVLTUZWdGVKK0lSZkpVb1lrS05wWkN1UVpOZ1YKSjJGazB3U1VL
WDlaZFBmZGQxc2VGWkpaSWp5T0EvM3FWNzhxWlIwbyt5ei8rbi8vY2wrNzltdHVqVVhXY0JjL2VM
RmJjUGIraVMyeApiQ1V3c2dqZEJNRW5nZFVJQ2V5d1liMzR5MS8rWWxZSnVielpHSmZaeWVlSGdy
dzJhU1Mxb3VkSStEMFIyUHJWSjVnN0M5YWE5UVJtCnZGellMR0FTMUttTExycklVTDFRcE43NjFy
ZDJLZnk5OS9qQUJ6NWd5Z3FXUjhhR0gzbDRLdG1zQUxtSDhVQUpLU0tDTmx0cVpnUmkKbXNlbStU
cTJkZDcwZTY4WmpneC8xNWprbWpya21OaGtsRWJra1N6L3Qwa3MwM0taVmpFZ1RjMGhmdi80MnpQ
ZVFwN3lza0EwMGhVSgpqTllIV1R5NjdpL2x5Qys3N0xKKzk5MTNONzkzdVRkNXVlZjQwMDgvM1Nz
cmRGZmRKcjRRSjdQYmJydDVCY3I3cjMvOTYwRjg3RVB5CmZyKzJpR2RoSEJPU2E2Qm4vSW5EMkd1
dnZid0MwVXMvenlVUFh1SzN1bmdyLyt1bmYrMXYrZjB0L3F5N3prcWFMZnhVVUwvRjFTZ3AKMXBT
NkV0cjk5Ny8vL1NubGVRVVN6cjBTOEJrdnlTVnVTcHhKM25XVUUvdkJlQlh4MWVXWFgrN2xocGZa
bE5EYXZIYS92YXdUWGVlbApVSGo4bUcrLy9mYXU4dW42cFI5ZkRqb21JZHNhOU43alVEOFd2bzVs
bmRmMTNndkpseUhiR2dlZUhiU1BkY2d4NHlDalZDMlB0QllRCnJjU1d3bzBBV2pRWjJFbTA4OUdQ
ZmpSY3d3TzJSS0kxZHF6Wk9Vd1RPK0s0citDdUE4b1V5REgvL09jL3pXV0hUN0k5MTAxa2p6M24K
bkhNc0l6VXhLdlQ1cTEvOTZ0amxDQUZGQTdjbjNNWU9QdmhnYzNVaUFaNkN2eTFPNlpCRERyRWtr
Q1NGeEpjOGo2Ujh1Tjg5L3p0Mwo0cG9udXFkZWVNb2RjT01CN3VTMVRzNnJQcVVjU3dmem40WE1o
QXRnV1RkQUtRNE94RGZjWHlEeVhtVDVCVS9wd0g4S3NMeUJwdEl2CkFSMnhVVmk3RGozMDBNeG00
RW5pdW5DL1NoTnVVT3dZNm9jeVhkd2V0eU5RK1FqRXd0ZXhyUE5ZM251VlQvdzB1a0VkY2t5c01r
cXQKOHNpZ211RzQxdGZhc2QxSVBsdHFSeUE5QWxrNzVlbno0MzRja3ZmN3RmWG1ONy9aUytuenlt
M2lsVzEraXJVRE5DeTUvSGdwcUgySAo5Sy8vK0t2LzRxVmY5RHRmdnJQZjg2bzkvWlAvL1dUZity
MG5WMXR0TmJPMkpPVVM0cWYwSlRsWDlMbm5ubnY2ZDcvNzNmN0lJNDhzCnFqcmxQRWdxUEc4V2dk
aTEzWGJiR2FvY1ZyazhrcERsbFdIWks1bGlWNVc5OTk3YkxIZFlSMW9Tbm5iQTkzdkl0aVp4Ym1M
aDYxalcKZVYzdnZaQjhHYkt0U2VUeDJKNXBrbVNVTk8rOWhJRld3Y1JUNGd2T2cwNlRSNTc0T1cw
ZnNOd0loT1Q5Zm0yQnpIVFRUVGNaV2xOVwpFa3ppR0lqQklFTzVCUHR5blIrd2xseVNEQ0VLSDk3
RVdvSEZoVUJ3OHIvVVNRUjlZNm5BSXBTbWE2KzkxbTI3N2JZV2k0RWxMajJtCjZYb2NFMDkxd2dr
bldPd0dJQTQ4QS9Fc1dKWUlUaDhraUw2MzdVbjZuaDdEVWQvdklkdWFwREZPbmlVR3ZvNXBuZGYx
M2d2Smx5SGIKU3ZpaS9XeEhvTXdJcEhtdlRVUllac1RhT3UwSXRDTlFPQUxLVjJMQjNWbktCeGVU
akJBWE05eTBxaUNFZGNBRjFscHJyWTd5d1gwSQpNa2RZcjVzSTdGWWVsODV0U1V3SWloVEFDTGhj
eVlyUlYvbmdRbHk0RkV2bGJybmxGcmZjY3NzWm9oc3VaTUFLayttOXBYWUU2aDZCCnB2azZ0blhl
OUh1djd2bHY3OWVPUUxBUndBSXlIVWdEMWpIVFQ0Zm5iWi9SZS9uWGUxeG9CRHRhT0J3RXkrTmFV
Q2NKemNnZmNNQUIKWGtoaGxkNDJKTzhQMjVaeXlYakZaSGhaUHlwN1ZzWDIyQnJIYlNsTkpFRlVu
Z3RQSWoxQUIwaW1obHVUa09Rc2lWaTZic2hqRWwwUgp1TTZ6S3g3S1M1bndVaHE4TEJoRDNZWkVv
TGZkZHB2SGxhMmw3aEVZbGkrN1cvbjN0NUJ0WmJVLzdtVk44M1ZzNjd6ZmZJWjg3NFhrCnk1QnQ5
WHYrOWx6L0VZaEpSbWxDSG1sZHNMUVNXNXJNRVFCeWxFQjQ0SGpaQlJjU2t5V3N5NEpkbFkrL3Vi
dVFPNFU4S25VUkNlcCsKK01NZnVudnZ2VGNYa25mVXZxUk5ubm9kanRUY29HM2RlZWVkVG1oZWxy
OENkeU9BQWFvaVhKUElxU0loZlVxeVRKSno0dmFFT3haQgpkZ21SNDBheEdNblhvSi8zM1hlZndl
VFNLTGxjRkJmajN2ZSs5d1c5Ujl2WXYwZGdVTDdzTjI0aDIrcDNuM0U5MXpSZng3Yk9zK2F4Cml2
ZGVTTDRNMlZiVzg3ZGw1VVlnTmhtbGJubWtWVURLOFVsVXRURDVLdERYaEJsY05HSWlNaXRub1Ev
UlIrM2dXdExFS3Z1TWdJMmIKRCs0dXhCbVF2MEc3M1phOUdTRVFSQ04rSEhEVFNRajNGckpra3g5
RWdZMUpjUzJmSUVPUlpaNGtiMVhsY3duNVkxT21yUVJGZ3h3dwpzODgrdTdsY2dmaVJ2cmFXd2My
NENYRW94SWVRZDRONEZMTE5WOW12QXc4ODBIaCt5eTIzek9oTjlVVmd6U2V4TU5YZnJiazdwT2V3
CmJpVzdqcWVPYlI2YjV1dWlNYTk3bmRPZnF0OTdrODdqTWNrMVZjb3hNY3NvZGNzajB3WVNTdStI
aVhIQklyL0NwcHR1NmhkWVlBRlAKbm9BaTBzSXVxaExzdklScHI4Uk1IbmNSV1JPODRHVXRCNFNT
b1BsWHYvclZYb0srdWNBRXUyRkdRenZ2dkxPWHI3MlhrR2xuMTF0dgpQYStkWjNPL29ZQWNJT1Iz
Z0VCSVVsWjVUNytiSU1VQ2VDVkhyUFRXSVhrL1pGdVZQblRidUkwQTYwL0t0bGNHZCtQMW9tRUI5
ejJQCjVQdWZkNnJ4OHBCOEdiS3RVQU16WGVZeDFIaE5ZanNoK1RKa1c2SEdPaWE1cG1vNUpsWVpw
VzU1cEZWQVFxMmVCdHJaZlBQTnZZSmMKdlhKWjVONGRIOE02RlJEOGMvRjFsNXVUbHp1TVAvcm9v
LzFkZDkxbDhSWEs5T3lWejhBckEzVnVmME9jNEVXMjRJSUxtby8vSFhmYwo0WUZKVE1kMy9QNzN2
L2ZLVGVHZmUrNDV2OWxtbS9ubGwxKytjcVVvNzduMjIyOC92OElLSytTZERsSWU4c2NtWkZ0Qkhx
NXRwSEFFCjVETGozL2pHTjNwWm9mckNFYU44ekpneEk3ZTlyYmJheWpZOCtzRUc1MTVjOFltUWZC
bXlyWkNQUFIzbU1lUjRUVnBiSWZreVpGdWgKeHprR3VhWnFPU1pXR2FWdWVhUlZRRUt2bmhyYkk3
aVczVTI1RkdYZWxVeWJHMnl3UWVhNVVRb0o4c1Z5a0VjRStQYmlWaXV4bmtjQgpxU3R2QVJtNUw3
NzRZcStrZnY3bW0yK2UwbFhLc0R3Z2xGV3RFRTI1ZWFwZ2wxMTJNV3RXcWlqNFljZ2ZtNUJ0Qlg5
UU5YakpKWmRZCnNMbmM4QXFiUnlrbEg4ZDBJREttazVORWFHQ1pqMHUyOW85OTdHTmU3bW1aNXlr
a2lCL3JwbUo2TEJnK3QySURKMEx5WmNpMlFnL0YKcE05ajJmR2FqdXM4SkYrR2JLdnNuSld0MTVS
YzA5dS9xdVdZR0dXVXV1V1JOZ1pFSzNFU0NjaFQvUGt1di96eW9FSFYzLzN1ZHkzWApnM1pET3dH
MlJlTkhnRFdabkwvNXpXKzZUVGJacEtoNnNQTkFuZUxuVHc0SVloSGU4cGEzV050a2w5NW1tMjBz
TzdjVUViZnFxcXU2CkhYYll3YkplQjd0NXlZWUlqTmJ1dE5QT2M4a3JCcTlXbCsrd0ZENkxvOWw0
NDQyZHJFcURkelRBRldEeWs4VVdpRnZpcEE0Ly9IQ0wKU1NKN2N5K2RkTkpKQnBONzFWVlhHVGhC
Ny9sSisvNlRuL3pFeWQzUXZlWTFyK2w2TkRLK3kwM1JzYWJUc1ZGZGxmU0Y4ZnI4NXo5dgp4Y0FB
QTlpdzRZWWJPaW55dlZWci8xNFhqOWYrWUJrM25PUjV6SGpjektLWTFubGQ3NzNweE9PWms2N0Nx
dVNhdlB1bHk2dVFZMktUClVlcVdSMW9MU0svYU93SGZKWFQ1eFJaYnpEL3h4Qk5CbndaM3F1OS8v
L3NXUTFHMllTQlBpYkVRdWtMWlMwYXVoNjg2YmwvYmI3KzkKeGFFb2dadVg4bUV1VjcvODVTOHRQ
a1JvU0hZZllsV1VaOEhpZzRCcTNYcnJyYjJTNlkzY2g3SU5FS3VpUkhObHF3OVZUeS9SWVBGUApS
VzNocHFNZlNzODQxMG5NT2ZDZ3VQaGhuV01uSDFjN0pRSDBkOTk5dDJVTnAwN3lweDhUYzE4ODhj
UVRLNFhpclhNTWhya1g0eVFrCkZyTnVGRjJQQlNSTmpDV3hDZHBZYU55U1ZNU1g2WDRYSFlkc3Er
aGVvYzVQeWp3V2pVZXM2N3lPOTE1SXZnelpWdEdjaFRvZlVxN0IKRWl4VVFwTVR5dlF2dEJ3REg4
Y29vOVF0ajhRRm9hUlYwZEx3SThCT0poWUdDVlZtK1dCblBRUkptRFFJMDZXV1dzb3RzY1FTQTJX
VQpWc0MzSVR6UnB6b0l1RlZRZjBqNDl0T2YvdFN4RzcvSUlvdTRsVlpheVFHNUtyT3FPKzIwMHd5
WmFORkZGN1dFYnFCdlNFaTFiTk9nClg0Q1dWUmN4WjNQUFBYZGR0NnY4UG93MVZPY3o2UWZFa01T
QVVpWmJPTW4vNVBKbmlHWlN3cDBVU3llZlhxZVh2c0h6c3BQSVRnK0oKL05qMVQrOHNoaHdnRXFi
bDBiLys5YSs4VTdXVjMzUFBQY2JyYTY2NVpzZXlNY2pONFYzRlVabVY4Uld2ZU1VZ2w3WjFBNDVB
M2ZQWQpGRi9IdXM2WnlpYmVld0ZaS09xbXFwQnJicjMxVm9mbENrdHVHUW9weDhRc285UXVqNVRS
L2lhaGpwZ3MyQzV3ak9QQmpqTTcrQktlCkRZRXFWQisxUVAyKysrNXJRZHBpVGsrQUdMc0JaZWpi
My82MkpXSWpDRjVDanBlclM1bkxScTVEN0F2RTd1eUhQdlFoMnhISHFrRVEKWjBMc2dNTVRTVUF0
dStZOFg5MUVERStlWDM2b3ZvVGsvYUsyNVBabkFBQ2grbDYySFN4Wm9NS3hxMFJpUjRLdTArQU16
TGVVVWVOZAo0cEhrbHRkQlNTdDdqMEhyN2JQUFBwMTdFRzlDM0pIY21MemNtTHhjQTgwcW1QRGZv
RzJQV3ArMUtWY3NMNlc4ZEZPSkJZVGR1N1BQClB0c2ZkOXh4dmt5c1Rla2JqRkN4aUM4SGFUcGtX
NFBjZDVpNlRjeGprM3dkNHpwbjN1cDQ3NFhreTVCdERjTzNaYStwU3E3NStjOS8KN2dXL1g4b0NV
b1VjRTZ1TVVyYzhNcE1Zc2FVeEd3RzVsZGl1STkwR2V4eE05b01QUHRnSjJjbDI5eFZzR3V5SjN2
YTJ0N216empyTApmT24vOUtjL09YWUN5dXgyU3FoMkNtZ3lTd3lXRXhLd0tjalZ5VFhNWWtHeWtn
R0c2clIrcE16WEhmOTBTQzVPVHNINGJwWlpabkZvCitEUE5OSk5MZHFEQjF5Y3ZDWGthOFBGa1Y2
U3FmQng1ejlmcms1OVhieHpLR2QrRkZsb29lRmN2ZnVCaXQ5ckNxN2xYdkN4N3AvME4KYjNpRCs4
SVh2dUJJa25ibW1XZGF2TUtiM3ZTbVRqL2UrdGEzT3JuYTJZNC9mYnorK3VzdE9XV25Rc2tEK0Fi
K0tVUEVITTB4eHh4bQprZVA0d3gvK3NKTkM3QVRCYUpZYUJSU2JCWUg0cENJU1VJTHQxcEhqWnM0
NTU3UzJzUFFNU3F3TnVTYTZDeTY0d05iMXV1dXVPMUFUCnJHdnk1bXkwMFVaTzZISURYZHRXRGpj
Q1RjNWprM3dkNHpwblZwdDY3NFhqcU9aYnFsT3VJUzlWR2FwS2pvbFpScWxUSGluM1MxcG0KcHRv
NnRZMEFnZUM0azJBSy84WTN2dUVFbitrT08reXdTakk2SSt5Y2Nzb3BMdjF5S0hwUW9XUlpYOGp3
amZJQkVhaDZ3dzAzT0tGUwp1ZmU4NXowV3JMend3Z3NYTlRYVStjY2ZmOXdsUVlvMGdFc1ZybGo3
NzcrL0pTRkVnQ1R4SDRSeWhRc09RZFA4UGZ6d3c3VXFJRUlHCmM3aDk1UkZ6aS9zYVNSV3JUT0NZ
ZC85Qnl4R1VCWUU4NkdWOTY1OTc3N251MXNkdWRRdTlmaUczeEp4TDVOYmRhYWVkbkhhcmJMNVIK
SXVHRFJKblVqcHVUZGNTVVVQbkxtNEtDd2dKSVFWbEN1UUhZQVJlK01rVFdkL2llOFNBZ1BpRUM0
eGtuZnR6S0tCK0NramJsZU1VVgpWN1JrbnF4SitCYUZSbGFmcE5uTVR4UnExZ0s4QXgvTm1ESERu
aGtsSWxtYm1SZG1GUEw4Q0o5NzdMRkh4dG0ycU1vUmlHa2VtK2JyCjJOWTU4OTdrZTY5S3ZxdXo3
VHJsbWpMUFZhVWNFNnVNVXJzOFV0WVVOdTcxeEhBVDQ0SUZoalJCNWp5VExCUmVQc0RSVEE5NVI4
aXIKSVQvSHpENUp3UGNTdXN4VkxMTkNnTUl2ZnZHTFh1aGY1aWFDQ3hadUxoSkVQV2JYaEREdE1u
NU51Y0FrL1FEU0ZQTjlMNUVvOGRoagpqL1Vycjd5eWYvYlpaM3RQRC9ROUpPOFh0VVVRUHk1N29l
aUlXNDd3Rjk1L29kLzl5dDBMbTN6c3NjY3NvU1RqOWJPZi9jd3Z1K3l5CkZod3R5NTI1RHVMK0JC
R3NMaVhZeTVKbjBMTUhIWFJRb1NrZTF5NTRLR21qc0RNNUZYQUxJMGRPMXB4blhVSXlUZFlVc0tN
RVlmSmMKc25hYSs4RHh4eDlmeUwveWRmYi81Ly84SDNPRlpPNCs4NW5QZEpKd1p0MXZYTXVLK0hL
UTV3cloxaUQzN1ZjMzlubXNrNjlqWE9kMQp2UGRDOG1YSXR2cng3U0RuWXBKcnFwWmpZcFZSNnBa
SFdoU3NRVlpJUkhVUjhHRVc3YnhFMFN0ZUh0dHR0NTMvMnRlK1ZoZ2pBaW9WCnlRcmx6bEpKMzRr
M0lRK0pYSEVzOHpvM2tadWFJU0lsTjR4RkFRR3BDV1VTRkJYODZtWEpNcFN1V1dlZDFZUm14blZV
Q3ZsalU5UVcKY1JaSnJNQW8vYjdyVDNmNXJTL2UydC84dTV2OWZVL2U1NCsvL2ZqYzVsZ0xjcmZ5
ODg4L3Y2R2R5UVhNQkhZRm1adXd6bzhKNjRRNApFRmtEdkhiYURBMUx1OHArdGRWVzh3SW82RXBV
bWI0UlBNbzZRMWtoancwS3diQkU3QVFLTVVvbHgyVUkxRGtFcnFPT09xcXJ1bUNHCkRlRXRMd2RR
dWpJOEJUL2h5enlwVk1TWGd6eDN5TFlHdVc5UjNWam5zUzYram5tZDEvSGVDOG1YSWRzcTR0dEJ6
amN0MTlRbHg4UXEKbzlRdGo3UUt5Q0NybzYyYk9RSUlaZXdpUC9qZ2c1bm5zd3BSUXFvZ2Znemxa
bUpOeTFYR0VoRm0zU2RMQVVGSktTUFFaYlUzU3RtagpqejVxOEw4a1JRUVNWYTVCUWExYUlYOXNp
dHBTVElHWDY5MG93K0d2ZXZncXYvLzErL3QvL3V1Zi9vVi92dUEzLzRHQUQvNlZEM3lBCkZldlVV
MDgxYTBBQ1BFQUhzQnJjZHR0dG5iNzBBZzl3SGZ6Q1h4YkpyOXRnZlpObkxtdTF5R3FMTXRhSWZO
Z0hnc2RHaWVZWmV2bVMKNTVRYm9TKzdqdm9sRHMzcjd6aVZKM1BFNTZnVXNxMVIrOUo3Zll6eldC
ZGZ4N3pPNjNqdmhlVExrRzMxOHVpNGZxOUxqb2xkUnFsVApIbWxqUUxRU1d4cHRCQWdvMzIyMzNR
WnFaTzIxMXg2b2Z0bktRaHR5VzJ5eGhWVW5ZRmlMM1dJQlNLSkdRSEFDdVVvUUdOOEpVSWNJCnNK
ZExpOFVHNFB0SnNIeGRoQjkvMG8rNjdsblZmWlRGdGxSY1E3LzdMem4za3U2Y2U4OXhCOTk4c0h2
NmIwKzdQWmZmTXpmNG5IYVkKMDlsbW04MFNTaElYQVpIMEVwamRkRUJkTXZkV1FmK0E2Z1YrV2NK
OFY3M2svTXd6eit5QWFwWjdpYlZGOFBpd0pOUVRKMEhON2JYWApYbTdISFhkMFgvbktWeXhCWmxG
N3NseFlISW1zWTI3SkpaZnNWTC8vL3ZzdHRvVGcrakkwVE1CNm1YYmJPdldPUUd6eldDZGZ4N3pP
Cm0zanYxY3Q1azMrM3V1U1kyR1dVT3VXUlZnR1ovSFUxclo2UUFOMkVRT2xaWVlVVkxCQlpybUZK
Y2VlVGJObHBVdXhDK210N1BNUUkKRU95Y0Z2cXptZ0M1RFVTeVBIckRxOTdnVGw3clpQZjgzNTkz
cjV2NWRYblZ1c3ExYTJOWS9HUkJoMUFjeVBHeDZhYWJXZ0EzeWdTQgpmMUNpN0pFZG5VRHNHMis4
MFgzMG94KzFjK2wvQ0R6ZitjNTMwa1ZESFlPdVJsNmE4ODgvMy9MUjhKMk00K3VzczQ0QkkvUVRL
dVVpClpnSG5BQ2tRUUU0bWM0THB5VnhPdjdmWlpwdWgrdFJlMUk3QXFDUFFCRi9IdXM2YmV1K05P
b2Z0OWZXUFFDdWpwTVo4WE0xbGcvWmIKanp3eFFlaURQbnRiZjNxUFFFamVMMnBMQW4vZnZDYmF1
YmNnOWREQi83SXFtRHNTY1RURVdXaEgwbkp0NEhhVlVKYmJYWEt1cWs4bAp3N1Q4SkJkZGRGSFhM
YVFNV2JsUTRRcGRzZ2lhRjRLVi85V3ZmbVZ1VjcvNHhTOHNmd2U1UlZyNjl3Z1U4ZVVnNHhTeXJV
SHVPMDUxCm0rTHJXTmQ1SGUrOWtId1pzcTF4NHR1MnI4MlBRSnIzMmt6b0dvMlc2aDBCVEpBU1FD
dTdxUUtwelBVcWZRTWxRWFFLTUVzWFdiNEkKb0VtRm10UlYzbjRaZmdSd0V5THJlQzhwT2FBRFBo
TUkxMTEzM2JYakN0ZGJiOWp2RXRJZE1MVzQzT2tWYTdrNmhQaGtibmJEdGpucQpkVmRmZmJYbGx3
RkNsUnc0YVNKVFBMazRoR3BsRU5IcGM3M0hXSE0rOTduUE9YS0FLSm1oUWVvSzhHRWdDT0hlTnR2
djdRZ01Pd0pOCjhuV002NXh4Yk9xOU4rd2N0dGVOUGdLanlER3RqUEtmOFc5ZUg2cW5CM3JjaWJL
QWdOYVFCTjR5Z2dRMkVhaXFSSUdHL0ZSWDF2R3MKMldPbjl0QkREelhJMEt6emp6enlpUC9FSno3
aGQ5aGhoMG9nUWNuUUROb1JNS1h5dWZmSy8yRklVNG83NlNCMEFkV3FHQkMvOU5KTAplMkJhSjVs
QzhuNVJXK3pLRTB6UCtEUHVCTlN6eS8vcVY3L2F2c09ub1FscmltS1FyTm5UVHo5OUlPQUI1ZFB3
SUgrRUpKNlJaNWZTClVBaWhES3l2WE1FcVE0VGp1VUNFeTdLV3NBWjRUOFFZMkR6b2ZCVHg1U0R0
aFd4cmtQc1cxVzE2SHB2bTY5aldlWHErNm5qdmhlVEwKa0cybHgySFU0NWprbWlybG1Pa3NvNlI1
cjQwQjBXaU1JNUh0SEg5d2RuMEpvUDdOYjM1amZ2VmtvU2FBdWw5eXU2cWZsL3VUaEhDWgpaWlp4
Qk11U3ZBd2lVSThnWEhhTHpqMzNYUE9EUC9yb295MHhxN3ZaQUFBZ0FFbEVRVlFnTjJTZlh2bktW
MXBRTXY3eCtOcmpmNitYClNkY3QySWtuSWFLVU9QUERsOEprR2F1N0tsWDBoZGlUejMvKzgwNzVH
U3E2UTNQTmt0Z1BhOVBKSjUvc3lQUk43SVdVVGN2OFRkQi8KRlVSaXdjMDIyOHlhaHNja0tGbkNQ
a0hZT3RaSkVud3VpRWVyUTZaMHlvZ0pnUTlJRWtoU3dCQVozSlcveFIxeHhCR1dKSkJBOHlMQwpz
a0ZNRFBFb1ZSSHJnUUI0S1lGdXJybm1zcUI2TEM4RUVFdjVNQUFKenJjVTl3ZzBPWTh4OEhWTTY3
eVhVNXA0Ny9YMllSSyt4eVRYClZDbkh4Q1NqTkNtUHZBU05kUklZdCtnWkVpR0VlcFAyeVAvNHh6
L001YVJLSWFab2ZIdlBrNkVkSlFTWGtUU2hHQkh3S3poU3kxb3QKNk42Qk16S24yOHM2SmxQMVpa
ZGQ1c2lzaWdLeXdRWWJPTEpKSXhEeVE0RmdLc2hkZDgwMTF6aVFMM0FaQWhFSndYRzU1WmJMYWpK
bwptWklrT2lVaXNqNFZCV3lIdUhGSTNnL1pWb2huNjIwRHR5WmNua0E5ZSthWlowd0I2YTJUOVoy
ZytKaldUMVlmUnluRDVaRTFJZDk5CmE0YjFsMnhXSklIN283VGY5TFVoK1RKa1c2SEhaZExuc2V4
NFRjZDFIcEl2UTdaVmRzNEdyUmVEWEZPVkhCT1RqTktrUERJNmFQcW8KTnJlYXJoZnpUNVFMVnBs
aGt3RG1CVGRicG1yd09odHV1S0VYZ3BBRkpBdHB5REpVSnpjaGZ3SHVVRlVScm1tNEFXSG1mUHZi
Mys0Rgp5K3VsWEppN0NabWtTUUxFMkNSRWtLOTJBYngySmZ5NzMvMXVDL0JOemxYeCtidmYvYzU0
a1d6dGVZUzd3VEhISE9PbHdPVlZLVjBlCmt2ZER0bFg2QWRxS1VZekE5dHR2NzIrNjZhWW8rdExi
aVpCOEdiS3QzbjdHOEQzbWVZeGhmR0x0UTBpK0RObFczZU5WcDF4VGxSd1QKazR6U3BEelN1bUJw
Slk0VDNYZmZmVzZKSlpib2RCbXo5RU1QUGVRZWZ2aGhjOFBDelVTWms4M05BdmNudlJ6Y2w3Lzha
ZHZkNzF3MAo0Z0h3aTI5NzI5czZyWEIvSVF4Wm9DMHVIUVFjWDN2dHRRN0lSUHBGTUxCKzlEcjE1
NWxuSG5QSjZSUUVQdUNaMmQzZGR0dHR6YzNrCkl4LzVpTG1xMFM5MnpoWmNjRUdETmlWUENIK1Uv
Zm5QZnphTERLNG91STVWU2JnbFFXazR2dDc3c1VORi96ZmZmSE9ubUpuQ1FPWGUKNjZmYmR5V1Jj
c3BVM3ZYWThPbmlpeS9lWmRuQTJzVXVNdmxDTUlOUFY4Sk5EZGROM2hXL2tmdm1MYmZjWWk2U0JM
Y3pabG5FZTRkZApTYXlINUZoUjl2bXNhbTFaalNNdzNlYXhYZWMxTWxlTnQ0cEJycWxUam9sSlJt
bFNIbWtWa0JvWFdZaGJuWExLS2U2ZWUrNHhRVUNhCnF5a2o1QWhBU0gzdXVlZmN0NzcxTFVzRU45
Tk1NeG5xRXdKRzJ0dzZhaDl3V3pyampET2NBc2c3aWRFV1dXUVJpN0g0NUNjLzZSSjAKQi93bjhT
MWNmdm5sWFRyUEFRa0E2VGNKMUJMR0g3VlB2ZGV6dUZGK2lPL2dYcmpra0p4UWdjSHU2MS8vdW8w
ZHdpY3VWd2lwQ0Y4SgpyYi8rK2tISEsyazMvUWxtUEVTZWtuNUV2YU9PT3NyR1NoYWRMc1d6MzNY
VDhSeHhIZHFkZDRMZ05RVURSWmk4R2U5NzMvdWNJSERkCksxN3hDb3VMSXVZQ2ZyeisrdXVqaU1G
QkFXYXRWa0dzUDRFQkdMK3pHUUd2OHo2UUJkSmNFVkVvU09ESS9Sa2ZOak40dnhBUGxVZkUKbksy
d3dnb1d3OFg3WnBOTk5ySFlrcno2YmZub0l6Q084MWdWWDQvck9oK2RDeWE3aGFibEdrYTNUamtt
SmhtbFVYbEVBekV0U1B3MQpFUzVZNURjNDRJQUR2SUo4UFlnUkNVbUl0dWZEeGFncVVpSTFyd3pU
ZnM4OTkvUzRDT1VSV08yWFhISko1L1FUVHp6aGp6MzJXTC8xCjFsdjdOZFpZdy9vcEMwWG5mT2dE
a0lYV1hYZGRyM2dUdi9ycXEzdHlRM0RNMk9GK1FFNEdCUjE3V1JpODRsSHNXUDd4aHA2a0pHK2gK
dXpPbHZiLzk3VzllQWw5WE9hNHRmLzNyWDd2S2tpK2doVW01Uzc0Ty9CbVM5ME8yTmZDRDlMbUE5
YURrZkZaRGtMZitlOS83M3BUYQpTa1pwTG5iYWJmT0srZW5MdzFNdUhySUFKQlg0VDRKL1pndms5
RkNNa3JrSXlycVFXV2ZZUXR6M3BHQll2cEY5OXRuSFVPbEF2THIwCjBrdTlyRVVEbzM5cGM2T3JL
L0Nya2pyYVdQZDdIM1JkVk5HWGtId1pzcTBRanh2alBEYkYxN0d1OHhEelhOUkdTTDRNMlZaUnY4
dWMKcjF1dTRmY2ZGL0Yrdi9kVnlqRXh5U2hOeWlOdEhoQ3R4SEVpZGl0QjdtRkhIOFNJaEhCMVFw
TWxaMEJvWW1kVThMN21yaVNCM25aTgo4NndxdUxjUTdMcnl5aXQzdWtGd0w0aFVXdEJtTmNIY1N2
QjVWY1R1RzJPQmxZTjdzK05ORGhES3VEZldJdHlmR0V0MmdEbW0zK3lnCkU1UmVOUkh3ekgya21O
bXQ2TytQZnZTajNBemlpa3N4bDdhcSt6VnMrMWpEeU03ZEpDVzdPRWtmbUUvRjBIVFE0RzY0NFFZ
blJjQmQKZU9HRjVtS0VoWTdjSExnZlZVbmNCL2RFM1A3SVlaQVFhRjM3N3J1djhTVUI4MlJjVjh4
U2Nqckk1L3ZmLzM1RCtvTGZwWHk1ZDczcgpYYllXV0x1NHNvQytOUXJ4L21IOWdJZVB4YW1sYWtZ
Z3hubHNpcTlqV3VjeHZQZXE0Ymo2VzYxYnJnRUZrUGZ1alRmZW1QbXdWY3N4Ck1ja29UY29qMWRq
K002ZTBMYXh5QktUUm03dkZyTFBPR3ZRMnQ5MTJtOU51c2lrZ0lFZ1JsM0RJSVlmazNnTm9UMklv
Y09sSUtJRmYKcFF3WHFLb0o0UTZGVEhsQW5MUjdVeXp3V3lkdUJlRUwrRnZjVHhDZzhHUG5tQmNn
dE1BQ0M5aG4xZjl3bXdNYUdGaFVCT1VQZnZDRApVMjZwblNORHlrS2hROGpqV2RKSzU1UUxHaXFR
dGNtdHV1cXFwdHdsYzkxRVY1STVSNmxBb1lOZmlma1FFSUdUQmNCZGVlV1Zicjc1CjVyT3U0WnFF
MG9RZ0pVQUVKK3VKL1ZYUmIvb0JGSFY2Y3dDbG1IZ0xYSnB3RzJPT2NhME1UVmx1am5mZmZiY2pE
Z3VYZzJHSkdLK2YKLy96bjdsT2YrbFJuVElkdHE3MnVlQVJpbk1lbStEcVdkUjdMZTYrWWU4YTNS
bFZ5RGE3aHZQdUJZTStpcXVXWTJHU1VwdVNSVmdISgo0cjR4SzBOYko4NUI3aERCZTQ2QUxGY0xF
OTZ3RUpCdm9aK1NRMmJ4TGJmY01yTWZSVEVQbVJjTlVjaGlZc2VabHd6V2c0VVhYdGdKCnpjSlIv
b01mL0tEVEl2N3dsRFZCQ01Ea3krQWx5RTRNL3ZscEl0aVhHQmFzVCt5V0FDVWNvL0pCbnhscitz
bXUwbXFyclpaK2pNNHgKeWhTS0Z0WW1oTlpCNmU0bjduYnZtT3NkdVpmUmZocDRBUGhsRkl2Zi92
YTM3dUNERHpZaEgvNU5ZS0hsRW1oOUp0NEI0QUdDcXFzaQpCSDVnbDdINmtRVWVxR2MrRWVDQWln
YWtBVmhjQXVQemlHQmoyc0dhZ1NJTjN3eEx2Q3NBTnhpR2VBYTVZcnFWVmxySjdienp6c00wCjBW
NFRhQVNhbnNjbStEcW1kUjdEZXk4UUswWFpUSlZ5RFRuQStsSFZja3hzTWtwajhvZ1c5TFFnTWR0
RXhJQmtUZFo1NTUzbnRhQXMKRzNyVytWSEwvdnUvLzlzcmowYWh6N3lFYUQvNzdMTjNzbzF6WDJJ
YjZpWUZ0SGtGeW52bElmSEsrZUVsakhvSmZmNmNjODd4VWtxOAprZ0FhUks4RVFJUGtCYTVYZ1o3
R0gvaWkxa0dNNmZ6enoyOXhKMlRNcnBKQzhuNVdXMUkrYk93a2tCUStoZ1J2eXhKZVdERlY0YXFI
CnIvS2JYcmlwdi9QeE8xT2wzWWZNdVN3Si91cXJyL1lLUFBjNzdiU1RsNERnWlFXemloS2NEWHBa
RmpndkJjakxCY24rbUcvbW9nd0oKWWM1LzZVdGY2bHVWK3hDUGxaQUN0YjJzYlA3akgvKzRWODRY
aTAyU3BTTTViWjlTTHJxKzkzNmhUV0l0V0Y5QVdMTVdpY2ZJeW03ZQplMjN2ZHlsa2xwVWU2TVZC
U1JzTFhnbEVDOThEZzdZYm9uNFdYdzdiYnNpMmh1MUQwWFYxejJNc2ZCM0xPbWQrNm43dmhlVExr
RzBWCjhlcXc1NnVXYS9MNlZZY2NFNXVNMHBRODBzYUFhQ1dPTTJrUjJRNHUxbzllLzloUXowVUc1
YVdYWHJvUUhXcTMzWGF6WGVlMCt4VUoKQU1rNFhSZXhhM0xycmJjYXhDanhIMWdYaUpuQmhXbnV1
ZWMyaEIrU0MrRVBqeVdIM1djc0pTUXBCQTByY2NXcXVyK01xVjVDbGkyOApuMFdwNm42RWFEL2h1
eklXTHVJZXNPejg1Q2MvS1hYcjgrODczejN5N0NOdTNsbm43V3NCWWQ3eFpjWEZDbmNWWE90d2E4
SUtnb1dECkJKaGtjeWJ1QVl2U3M4OCthMmhRV1BSSVdGaEU4REJ1WmtWSiszQnJ3cFVLQ3d5dWZi
aC9FU2RCUDdCZVlEMUlJS3hadTZEQ0plT1gKMVFjc1liZ2hjQTJ1a0l3YkNUNUI5eUttWlZEQ0dr
UThsNVRmUVM4MWwwWXNjWG54WHdNMzJGNHc5QWpVUFkreDhIVXM2NXlKUzladAprKys5b1Jrbzhn
dnJrR3Z5aHFCcU9TWkdHYVV4ZVNSUEM1eTBjakhiUkZwQTJPRUY0YVpwa3MrOWphOThKN3U2b3N6
TGZ1T05OKzZ5CmluUlZDUHlGaElOeXAvSDZnZllTMWd5Tml4MW1rZ3dxTnNEdUJpS1dGQkJESjVJ
dzZwVW54TlAvSmdoRXB2U09lUlY5Q01uN1dXMkIKM3RTTDZzVjQ1cUY2U2RuemN0WHErNmgvK3V1
Zi9LNVg3T3EvZSs5My9lK2YvNzAvNU9aRCt0YVh5WHdLQ2xhQ0tpWEZ3WkRiUUdiNwo3R2MvYTBo
c0hHTkY0SG13S1BRakxHZUtiZkZTYkR5SWJvUFFYbnZ0MVlYSUJlOWhuZHRxcTYyODNKanMva3N1
dVdSdWsxanhRTkNTCnExaFhuUmt6Wm5ncDJoNDBvckxFcmpsSlFaTnhLWHZkT05UTDRzdGgreDJ5
cldINzBPKzZHT2F4S2I2T2FaM1gvZDRMeVpjaDIrckgKcThPZWEwcXVxVU9PaVZsR3FWc2VhVE9o
RDd0Q0lyZ09DTThqanp3eWdwNTRMM3gyY3lsQ29POGxoQ1hjblpRL3dKUVIzS0hJVUU3LwpReFB3
cWloQndJMG1oSUFwSzRPNWp2Q2pnVXVXZHNXVDAxNDcwMTdCYUNZUUhuNzQ0ZjdPTy9OZGZUb1hq
ZEZCeUIrYnZMWVlQK1dBCnNWRUJIbHE3N0xranBMZ0hMeFN3M1BPMy9QNFd2L1BsTy9zL3YvQm4v
Ni8vL1pmZjZ1S3QvRi8va1ExUm5EUnk5TkZIZStWS01kYzYKZUF1M050enRnREJHMlFGQ0dwSTF6
Tyt5eXk1MkxGUXFVd0RzUzhZL2VHaWRkZGF4T2p5M1loNHlhdlV2a3VXaUN5NGJYcFAxeFJRWgoz
TG5nMVg1S0RldEtRQkJUZUJLbENIY3N4VFQxNzhCL3p1SnFKbXVmVjM2Y1V2WEhyVkllWHc3ekhD
SGJHdWIrL2E2SlpSNmI0dXZZCjFubWQ3NzJRZkJteXJYNzhPc3k1SnVXYU91U1k2UzZqcEhtdkRV
TFhhSXdyNFZKRWx2TVlpQ1NFdUluZzl0UkxpcTl3Mm5tMlFIYVMKb0JIWVRqQXlTRHloYWIvOTly
TW1jYldSRDZtNXFZQjJSSkF4TUtpY1YzeEFGK29Vd1lTZytqQ1duRHY5OU5NN1NSWkQ5MjlTMjF0
MgoyV1VOMVF1RU1SSStycm5tbWxNZUZiY25BdTl4aTVQUGFTNnExenl2bWNjOS80L24zWTkvL1dQ
M2s5Ly94RzIrOU9idU5hOTR6WlQyCjBnVzRPbjNoQzErd2pQR0tCVEdFSjl5Z1FEa0JCamNoc245
VHR3emhhZ1MvOGdsa3IvTHZsTG1zVXdmb1g0TEYwK0FCOEJxRW01WTIKRHdyZG1SSzNNbHkzWkNu
cHRFMWlRWkMxeWlKWjRjYUY2eUh2akpiR2R3UmltTWNtK1RxMmRkNzBlMjk4T1RtLzUwM0tOWFhJ
TWEyTQo4dUxjdndRTjljV3ZrM3VVOWx1ZUpvODh1Wk01d0pPQjh3MHNLNW5YOFo4bjVrTkoySEpi
UUVrWkJXRW90K0VHVDRUay9ieTJUanZ0Ck5LZWRLME43K3NRblBwR0o2aVZBQUFlYUUyUE1KOURJ
ZWZTMy8vbWJlK2pwaHl6dUkzM1B2UG9LampaQm4zYUpRU0krUW9IV2xuOUcKcmxZR2dTdjNJMU1p
UUVBaFR3M0lYY0R6YWxlNWIrd1BzU1BENUlkQjZTWDJZLzMxMTgvcmRtRTUrVHBBTzRKbmdSOEZy
aGtsN2dNZgorSUNoWW9FNGwvaWlGelkyd1JYU1BETHErejFrVzVNNDVFM3lkV3pydk03M1hraStE
Tm5XSlBKNG5jODAzV1NVTk8rMUNraWRuTmJlCnF4MkJqQkVnSWVFYjMvakd3dDN3akV0TEZhVVhm
RlhDR1VJOE8vTGt0MEM0QithMlRsS0dlN09vQVpZQUlNT21tMjVxd0FKWUdVaEMKU1c0YUZBbTVB
VnBRT24wRStwYUFiaUNhUTVQODlNMWlJZVFzUjRBZkpOYytoeEkwS0FGdlRNNFlZSHF4NEdCQmxL
K3lJeWtvd2ZZdAp1YTYxVXhXUHQrUHNETllhUzF4VGZCM2JPcS96dlZmSGU3emw4WFlFNnBSSFdo
U3NsdC9hRWFoeEJCQWdCUlZyU2R4STVNYnVCenZ5Cm1INFZuMkxvVEwwQ0ZLNUxpbW13SGZzYXV6
clFyVkE4THJqZ0F1dGozVHZ5OHRzMWdZZ09jMi9jcGJBOFlQa2lzU1RIdUdJcDVzTHQKdWVlZXBu
QnN2ZlhXbHBlakN1V0RmaWhJMTFDekV1V0RNdVlhTkxaQkNlVUpkeklCT3BqMUNFc1QvTkFxSDRP
T1pGdC8xQkZva3E5agpYT2ROdnZkR25jdjIrbllFbXBaSFdndEl5NFBCUmdEaEtpOFR0b0pmemVl
ZDJBK0VQM2FmcXliZ1ZVbjJGaFBoVWtQU1FYNjRlb2tZCkdxQjUyVlZMWno0V0JyODc2cWlqTElz
OEF2U2dWT2ZPR1dPT3drUlN3THFJSkg4azl3TW1ONWx2TEFZS1NyY2ttaWdsUXAyeStLUWsKV1Nm
dzBGaEJGR1R1MWxoakRYTnR5dVBkUVo4RFJRTlhLUlF5M05FU0lnbmloUmRlNkE0NTVKQ3VIZnZr
ZlBzNS9BalV5ZVBEOTNLOApyMnlhcjJOYjUrblpyT085MS9KNGVzU3JPNjVUam1sYVJtbGFIbWxS
c0xUZFBHNTArKzIzZStBOFl5UHRKbnY1cCtkMmkrUm53TFZLCmlNNnRFL0lFU2Uva1A1L1pKR2hF
RzIyMGtkZHVlZVBJUUNDSEtiK0N2K0tLS3pMN3FxQlBRMklpcWQwd3BGZDFCOGxwbU92VDE0UnMK
SzkzdUtNY0o0dG5mL3ZZM1EyTURhaGRvVzhaVWVUWU04dmFzczg2YWNnc3BCRjZ4UVRZMkpDZ01S
U1Naa29JOVpZMENCNjBNNUhaUAorc2c2SUNtaUZDQkRZZ3QxLytuWVRraStETm5XSk0xRjAzd2Qy
enF2ZTI1RDhtWEl0a0tOUXl4eVRaMXlUSXd5U3AzeVNJdUNwWlU0CmJnU3FEcjdzaXk2NnFMbDZM
THp3d24wZkFaY05mT09ySm5haFFTSmk5em1MU0g1R0lyZXl5RDFaYlF4U1JySzJIWGZjMFh6bGU5
MkMKUUNNU1BMQ05JU2hkdU9yVVFmUUgxNWwwc2taaUZFaEdLRWhWQ3k0RytTaUwwanRnV2VlbmEx
bGlUV0xjbEhQR1lpNVlFNndSWWxGSQpMSldnVDZYSDZQM3ZmNzhGY3VNU3Q4b3FxNlJQalhTTVZR
VmVWKzZacm5iZ1FTeGMxMTkvZlFjUlRpOTdSeUl6ckY0dHRTTVE4d2cwCnpkZXhyZk9ZNTJvYyt4
YUxYRk9uSE5PMGpOSzRQQkpLZTQyOUhTM0lZTHZBTVR5cllFejl1OS85Ymt1UWxwZndqWDZTQTRQ
Y0ZuVVEKQ1JIcFV6OGlFUnJKMVdUTzl3b285RmhGcWlLU3Q1Ri9SSkM4bWJjZy80Sjg5RDA3MDhw
T21sbW5qc0tiYnJySlN3RE52VlZyQWNrZAptdlpFT3dJMkFpSGY3eUhiYXFlbkhZRlFJeENTTDBP
MkZlcjVhQ2NHdWFaT09TWkdHYVZPZWFRTlF0ZEtIRWNpdUJVa0hPQkJRY25KCklvSncyZjNkYnJ2
dHNrNFBYZmJuUC84NTgxb3NIeUR6SkFUc0xYN0RvQThSN0VTdURia1JHVFFxZ2NIcytxWnpKQ1RY
aGZwa1hBZ3kKVHVJcGZ2M3JYM2Z0TkdOUndPOWZpZkVzaHdtQnZsV1RYTCtjRkVJSGZPUHB5amVp
cktodXhSVlh0TUJwSUdTWnN6eVNrcFIzcWkxdgpSNkFkZ1hZRTJoRm9SMkNzUjZCSnVTWVp1RHJs
bUtabGxLYmxrVFlJUGVHNk1mMGtpR24yMldlZkV0U0tzSTN3TGQ5M2cwY045WGhBCmljcGYzdUcy
Uk5CMG1tVDlzR0JwWEZzU0l2Y0RpaEk1RjBoU3A4elBsdXdQVjYyc3BJWEpkU0UrY2ZWQzBDZG5B
aVJMa1R2NDRJUGQKWTQ4OVp2MVI1bTZEbFNSUGc3SmxXekJ5bFFvUmZVRHBJZ2xmb2hSUkJxRU1V
WVlyRURDcjZURmtMbEZVR0VPQytBZWx0T3VXTnBrRwp2YnlyZnNpMnVocHV2N1FqTU1JSWhPVExr
RzJOOEVqdHBlMElkSTFBU0w0TTJWWlhKd045cVZ1dVNYZTdUam1tYVJtbGFYbWtEVUlQCmFUK01w
QzFaSHJ4ODN2MnR0OTRhdEVjRTdTcDVuUC9hMTc2VzZUS2tYQmFaNWVsT3lDL2ZYM1RSUmVtaVNv
NFZWK0hsaDUvcldpV3IKakJkYWs1ZS9aeVgzejJ0VVVMdWV2NFJrR2ZMeUEvV0tDN0NpajM3MG8v
NnJYLzFxY3RvK0V4Y3NaZVh1S2kvN1JTL1hZTzZISWRzcQoyLzl4ckpmbjlzZXpBSUNBbWYvYjMv
NjJoMDliR24wRVF2Smx5TFpHZjdLNFdtajV1cm41Q01tWElkdXFhMFJDeWpXNGdDdjJ6OTk5Cjk5
MVR1bCtYSEJPRGpOSzBQTks2WUdrbFRoS3g0dytzNklrbm51amUrOTczQm5rMDhsTWNkdGhoVGln
VmpzekxNODAwMDVUTTBiZ1AKRVhUTE9WeXQrSjVGUWpMSktnNWVSdGJvSlpaWXdpd0xXRDU2aWFC
dkxEQjUvZXl0SCtvN0VIK001ZkhISDI5L3VIK1JBK1NlZSs1aApNeUR6TnV6STRNNDJ6enp6Wko1
dkMrTWJBZFlKNEE5WlJFQTg3bjVDeERLTFhGYWR0cXdkZ1JoSG9PWHJHR2RsOHZzVVdxNjU1Wlpi
CjNQNzc3KyswdWRjMWVIWEtNVEhJS0UzTEl5MEtWaGY3amU4WDdVdzVjTkpCVXJyMDBrdmRzc3N1
RytSaDdydnZQbmZjY2NjWnVoVUMKL2M0NzcyeHhKYjJOQ3dMVlhJY294MDJMck0xWlJMMWU5Nk9z
ZXFPV0VhY0N1aEIwN3JubnVzOS8vdk5UbWdTVmlIR3JrMTczdXRlWgo0SW1iVlVKa0hrMS9UOHFU
VDhZTHRJeHhJT0pVR091UGZPUWpicjMxMXN2dDhuWFhYZWRrRGNzOVArNG55RUZDc2tDU1RXWVJH
ZEZCCmhBTXRxNlYyQk1abEJGcSt6cDZwOXIyWFBTNmpsbFlsMTVDbmFiYlpack5jVWVrKzFpbkh4
Q0NqTkMyUHRBcEltdnZHNUppWFhScFcKOXBwcnJySGtmdXlnayt4c3NjVVdDL1lrM0FzbUpXRU55
Z2RDWTFZY1FwTHhtWUJ6dE9vOEl2NEM2MFBWUkRJOGhEdDJPUEtFZTJBZAo4d0xxcStvZnZxM0tQ
ZUhreHVZU3VGM2lhWGJmZlhlTGplbDNYMkpwMWx4enpYNVZhai8zd0FNUHVQUE9PNitUV0JKckdi
d0FINUxvCjcraWpqM2F2ZWMxck9zOUtCMGxLS2ZRUEp6Y2tHNGVRblNhd2Y5MTExODNrc2QvKzly
ZE9DQisyUHNndVhpWHhRMVprN1dPY1dFdkUKK0NoZmpkdGtrMDA2aVJTeitnYnZNSFp2ZWN0YmJJ
eXo2dlNXTVI3TUJYRk9aYUNHNlhNYUlycTN2Zlo3TXlNUXl6ekd4TmROcnZQWQozbnZOY0dYWXU5
WXAxK0Fka3VVaFVxY2NFNE9NMHJnOE1zVUJia0lMdEZTQytjRTNQVVFublhTU2w4dU8rUy9xSld6
UEpUY2VMeVdoCmtxNUpRUExLNnV5Sm0raEg3M2pIT3p4OWsxdFJaalY4M3hYODVzWDBtZWRERnNv
UzVDWFlXN0xCOUxqd0RGZGVlYVhmZDk5OXZUQ3cKTFRHaWhMcVF0KzdiRm5FYzhDSUo4aExTVG95
WEVtbGZzMkpBa25va0xScUdRdkorMmJZWWYySnNzaWlKYWFrQ2d2bmtrMC8yRXVTegpibXR3eTZl
ZWVxcU5mNytFbVprWEQxaElva0VoMEhXdWtzbmZDK0dzODUwMXBUdytsakJSaXFnbHhKU0MxRG1m
UGdBdVd2bE12Q3liClhnZ3RCbU10bDRRcGlRN1QxNlNQWlcweXVHa1NIdllqZkpLSjd4cEhLc3VY
Wlo0dFpGdGw3bGUyVGd6ekdBdGZ4N0xPZStldXl2ZGUKU0w0TTJWYnZHQXo3dlc2NUpxK2ZkY2t4
TWNnb1Rjc2pyUVZFSzNIY2FOVlZWelVFS21JYjBOaTFjTTNkbzZybldHaWhoUngvUllTcgowSDc3
N2Vld3lHVFIyV2VmYlloVW9IWlZUY3BFN1hEeklkRWJVTVhRZ3c4K2FPaGR5bjV1TG1JUFBmU1E3
Vkpqa2NCbFRUOXFtUW5yClF2WTFqVDZTYmpkSnNxV1hZcnE0YzZ6TTkrYmExaW1JNUFDckdPaG02
VjF6ckdVZ3BlR3lSOUs5eE5MVDIyVXNhNkdKT0tUdmZPYzcKRmwvVGkyaUcxUkRYTU9ZQVY1SXFD
ZDdDb3BFUXUyMUhIbm1rV1dDQVdsYWdvMWtWc1V6c3NNTU91WllQZGdXSkV3TEpUVDlZaHVEMgpo
ei84d1gzbU01OHhmZ1ZOcm9nKzlLRVB1ZTk5NzNzV2QwSXNVUnBoTGJrVzMyZGN4ZzQ0NElDa3FQ
Mk1iQVJpbU1kWStMcnBkUjdiCmV5OHlWaDJxTzNYTE5YbWRyRXVPaVVGR2FWd2V5ZE1DSjYxY3pH
WTduM3hPQXJFYkpwY0tmKys5OTBiek9BcnFNZ3VIaFA0cGZTTFIKbmdSU3IvaVFLZWVxS0dEM1hR
S25WMXhNcC9sampqbkdkcENUQXNaUUx4dExoaWdCejNhaGszTlZmZWJ0T0lES0Fla2w3UGZZWTQ4
cAp0OGNDeFh3UFF5RjV2N2N0Q2NoVHVzUmM5NlBFQXFLY01MblZMcnp3UWk5M003LzQ0b3Q3eFpK
NExBaGxDS3NXYzVsSFdCTVV6RytuCnp6bm5IQy9CUEsrcTMzVFRUVDE5SFlhNGg1VEd2cGNxVHFv
UUVVNncxUjRMbmVDanU5b0NSUXYrNVZ4WmdvZmtjamlsT3VzVnF4RzcKeXVOS3ZYdzV5bk9FYkd1
VWZ1UmQyK1E4eHNMWFRhL3pKdDU3SWZreVpGdDVmRHBNZVF4eVRWMXlUQXd5U3RQeVNHc0IwVW9j
UjJJMwpqTCtZaUIxZlpUblB6TytCdnovSkI1ZGNjc2xhdWt5QUdZSGI2U0RmajMvODR4YkhNdDk4
ODludXMxeXhuRnl4ck00VlYxeGhDUUtyCjdsd1NGd0NxUitKdlN0d0VlTnpRM0hQUDdiNzV6Vys2
MjI2N3JZTTB4amtReVBDL3BzOWxmUG1yZm82a2ZYS2FFQ2lZNUtMQnJ4VUEKZ3AxMjJzbHR0dGxt
U2JYTVQvMUFaWmJES3pObXpPaWN1Ly8rKzUwVUVuZkdHV2U0VDMzcVU1M3lyQU1TTzMzNjA1L3Vu
THJqamp2YwpYWGZkWlh6SDJJTTJKbGNqaTZQQTZ0VFBnc0MxK040VFRQK05iM3pETGJEQUFwMTIr
eDFndFdCbmlWMWE1dTFkNzNwWDVwcEllS0ZmClczTFZzMlNaeE5Pa2FlR0ZGM1pneVBPOFpmdjFp
VTk4SXQyRUhjTlRHMis4c1pQYmdkdGlpeTJtbkc4TDRodUJwdVl4SnI1dWVwM0gKOXQ2TGowdUg2
MUVNY2sxZGNrd01Na3J5RzlTVVBOSXFJTU90ay9hcWpCSEFGUWVCcTVkQTBjSU5aODg5OSt3OVZl
bjNNODg4MDRUQQo1Q2IwRDBRc0VoQWkySDNyVzkvcUJQUFR2Njk4NVN0SjFjbytjVlVDaG5XYmJi
YXg0R3h1OVBqamo1c3d5ZkVKSjV4Z3Jqc0lob21BCkRsd3d3akpDUHVoSk1SRnVnQ1NieEd5ZDBK
ZS8vR1dIc0lKYno3YmJidXRRL05Jb1h2eDRRMWtReUNnYnVQSDFFcTUwMjIyM25RWGgKNTRFWU1G
NnlDSGFoYitGcWhhSjMrZVdYMjd6amxvVlNpc0k1Nzd6ejl0NG04enZ1U3dTSm8xUUJGa0JRZlQ5
aTdsQWtJUlRKOTd6bgpQWm5WVWR6U3JtdFpsVGlQdTlabGwxM1c1VFpHNERxOGtGYXdzNjd2VjRZ
ckYzTkQvOUlLWDc5cjJuUHhqVUJkOHhnTFg4ZXd6cHQ0Cjc4WEhlWlBab3pybG1LWmxsTWJsRVMz
bWFVRmFLaFBsZ2pVdWt5YXNhd3VZSDVmK1RtSS9RL0orVVZ1NEpramg5Rkl5YkNnVmMrRzEKWStz
Vi85UDVJOUNaZHFSNFRSbHVyazNmby9jNENkYWZjcUVLQ0dwWHJFWFdxVTRaZ0FTS2dlaDg3M2RB
TUdMdi9YRkJrVlVrTjhFbAo3ZUdDcHR3dFhnS2JsOUtkZXdzcEtaN2tudjJJUkpWUzhMeCtxTHlV
WjNPaE91V1VVeXdnWFFwMFllTFB2TFlKd2hjQ2w5OWxsMTM2ClBrdmU5YkdWcCtkcDFMNkZiR3ZV
dmhSZFgrYzh4c0xYc2F6ejlOelU4ZDRMeVpjaDIwcVB3NlFldDNKTXVKbE44MTVyQWRGb3RGVGQK
Q0pEcm9LVnlJL0RUbi83VVlGbkx1dFNVYTdYYVdnUlVLNk4zQjVwWlBxV1doNGI4RndUMTQ0cEVr
SC9hZFVvQ2hNRWZad1doNDQ3VwpqN0NFNUJFN3djbllBYmRMNEhZdkVZaWVtSjE3ejVYNURzdzBV
TkswZ1l0VkZwR01FN2M1Z3NZSnhNOGlLUmFPL0MrNFV2VWpJS1N4CmZMRlR4Vm9pcUI4WE41NlBZ
SEx1TlFnQlpvQ0xHOGt3RHpua0VJZTFxcVh4RzRFbTVqRVd2bzVobmNmMDNocy83aDIvSGs5SE9h
WVcKZVNTY1hoTjNTMkw1em01bTNEMXRlemRkUjBESmtjeGF3RTVqTHdsOXByZW85UGVRdkQ5b1cv
MWdoYk1lUUMrOXpqcE4zNHRqQUFQeQpvSDFwNjVKTEx2RkFGU3NQalQveHhCT3ptdmR5ZXpMNDI4
eVRQWVZwQzRnVUtROEVxWVNmbmxyWlh4WHI1S1Y0ZVNYeXpLeHd4QkZICkdBUnY1c21NUWlCNmhl
NWxmMWhEK2dYd3B5OG5xRk91YmxaRVlMOStTUDBjYzh6aDVkS1ZyamIyeDJsZUdmVmhRclkxYWwr
UzYyT1oKeHhqNE9xWjFuc3hQNzJjVjc3MlFmQm15cmQ1bmI3OVB4Z2pVSVk4TXRuMG1ybTJwSFlG
eEhBRWdVRW5rUnp4S3lFU05nNDRGTUtoNQp1OWJzYWhJZlF2QnptdGd0MzJpampSekJwOHBqWVd4
eDkwZ0FBQ0FBU1VSQlZQRWc2Zk5OSGhOUEE0d3NzUkdKUlFBSVhxR1B1ZVdXClc2NXYxMGptMVRz
WEpBZ2trenJRMHIzRXJqMkJlM2xFY0RubkdTTUpBRk9xWWJYQWovM0pKNStjY3E1ZkFmRXI4RTll
TEVmV3RTU00KWkJ5eUxCejZlWEw0L3BLa3NTeTk2VTF2TWg0b1d6K3B4elBMSGN6aWJRakd4M3JD
dlFGaWFHbDhSaUNXZVl5QnIyTlk1ekc5OThhSAppOXVlOWh1QkptU1VwdVdSbC9ZYmtQWmMvQ09B
Y0lwTFN5OEp2dE1DcnJNQ2ZYdnIxdjJkQUhEUWt1cWs3YmZmM2dSN1VJMFN3Z1ZHCk84bkoxMW8r
Q1hZbnFCeFhJRDU3LzNyTCtZNndpT3NOejlEUEJhbVdCK2k1Q2YwbkNCMCtKUDhIZjlxaGRFcVkx
MU56NmxjUTA3SkkKMWdzVCtFRm1Jb0FjRkNseVlSRFEzbzlRUHVpSFlFck43WXU2Qk1PVDIyTHp6
VGUzRE9tNExUSG5JSjB3cHYySVlFUnlpcEJKZkJEbApnelpsTGJFQThTUy9TL28rU2lwb0FlVGFZ
VW9YVjNJTVlocklNcUIvRWR5dm1JRlcrYWhrcEt0dE5KWjVqSUd2WTFqbk1iMzNxdVc4Clpsb2ZC
N2ttdEJ6VGhJelN1RHd5R2NhaTRxZlFNdXE0ZGhUWGpyY0dyaGVDSU94MGtPQTNYRU1JU0UwVDVX
OTcyOXNzZHdRNC8wMFIKL2RCT3R4ZUVxcGNBYVc0bnVMTm90OXd5a2xmWnIxdHZ2YlhUUFAzZ25n
UXdranRGOEt0ZXdxR1hJTnFwVStmQjNzclNUaTRIc3I4bQpmN2pzYkxqaGhwM3ZsR1BLVjlLcmti
b1drdmQ3MnlLUW5ESzlqRHQ5bElEZ2s3d21CS0YvOWF0ZjdaeExINnk3N3JycHJ5TWY0KzRrCmhD
ei95VTkrc3RNVzdrcXlmSFcra3dlRS9wSWZSa0tFWlJqdm5PdzVTRnlYZW9wTGYxVTh5NVM2NTU5
L3ZoZWExOURCNDFNYUxGbVEKRmZCZjh0S3hxTmJMbDZOME9tUmJvL1FqNjlvWTVyRnB2bzVoblRm
eDNndkpseUhieXVMVFFjdGlsMnVxa21OaWtWR2Fra2RhRnl5dAp4SEVpQW5mUE91c3MyM1hHeFlN
ZzM4TVBQOXlDYjRFWVRlZEFZS2NYbHhPc0lPellWRVhzVGkrLy9QSk9DRUdPSUdJQ2tDV0EyaDlC
CnlXU0JYblRSUlMxNEYxaFVjaSs4K2MxdnR2S3Era1M3d0pkdXVlV1dsbVdhTWNCNnNOSktLMWxl
aFJWWFhORUNlUWZkMlE3VlgrYUcKM1FkMjRoTUM3cFgrcE11d0ptVHRvaWZYeFA2cEg2TE1MaW9o
cFFQS01pUzk1UzF2TVRoZ0tkNmRab0hNRllKSnh6b0QxREtXRmR5Zgp5SzJocEkrNXVVQ3dQbzFD
dlJDN2p6enlpR1A5S2lIbUtNME9kVzBDQ3p6VXhlMUYwWXhBRFBQWU5GL0h0czZ6bUtQTzkxN1cv
Y2V0CkxBYTVwZ2s1SmhZWnBTbDVwRlZBeG0ybHFyOEhIWFNRb2V2Z3hrVGVDQVdWbW51S29FNDdD
Z2h1S0tEMVhIVFJSWVc1QmdZZEFoQisKMGtJeFB2SUlkZnc0UHZqZ2c2WU1rZHlNNUcyZ0FCSFRn
SDhqOFJlNEU2RTBJVmlUVzBHNzFjSDdsendQOFJUaytuajAwVWN0L29ORQppT2VkZDE1dURFWnlY
UjJmS0VNSTRDQzZKRVFNQ0MrQ2RCbTVJbkE1aUpYZ0JlanV1Ky91OUJObGp6K0llSmRycjczV2tl
Z29pWDNoCkdwQ3o0QlhRWkJZb21lRFBHdXp6RDc2U3RhaVRVNFdxNUxrQWpVcHdzeGI3c2NJS0t6
aGxGYmRXMWxwckxZdUo2Tk5rMEZNZ3FVeEgKTkpXZ2c5ZzJGdDBJMU0zWE1henptTjU3MFRIRWtC
MXFXcTVwUW82SlJVWnBTaDVwRlpBaEYwdVRseEhzcTF3S2xybVl3RndzSDhCcApzdE1MeVZ6b1pG
SXo0ZXBqSC90WTBLNEtqY2Z0dU9PT2J2Lzk5M2VMTDc2NHRVMHl0SFBPT2NlQ1c0SDJsTnRONTU3
RXA2QjhJSER5CncwRUdXNFJSdWVXNEF3ODgwTXBKRWxjbHNjaXh6cENGSFNFWXhRMXJBOWFScG9n
NVF1RWc4VjVDQkZjU2w1SXVXMmloaFRJRG1aTnIKbXY1TWZvaDVnU1hIN09va1dkNUpQZ2tjTDNP
YzdBcGlqVVBwV0hycHBTMkxlc2huRUFyV2xPWlFRdmpMb3J5a2hsbDEyN0oyQk5vUgppR01FbWw3
bnlic3VsdmRlSExNeVdpK2FsR3ZvZVpOeVROTXlTbFB5U0t1QWpMWm1HcnNhQ3dPNzVTZ2ZFRm1k
azh6T21CSUpBc1pWCkt5U1JmUm5sQVVHK2R5Y1hkeGIrMG9UQWljdUxJRWROK2VBY0tFZmdTNFBN
dzY3NWw3NzBwZlFsbFIyRGZJUTFnVEg1ODUvLzdJNDYKNmlpempMemhEVzl3RzJ5d2dTUGd1QzdD
RlFlQk9HMUY0dDY0L0ZDV3ppcU94UWdyRnFoT3VHekZSaWdTQkdrVDNKMFFmSklRNWVsegpTWG43
Mlk1QU93THRDSXpyQ0xUdnZXcG1yaTY1QmhrRVYwTCtrbzFVbnFoSk9hWXBHYVZKZWFSVlFLcFpS
NVczeWk1eVZoSXg0QnBuCnpKamhGT2hxU0R1aE9vTHJFZ3JEYnJ2dFpnbk0ySzBvSXR5c2VGRWo1
S2RwbTIyMk1iY3NGSlRRU2xMNlBza3hhRXU0WWhIM3NkcHEKcTduZnlPMEgrRGtzTUxnQmtTU1B2
eUtVcGFTOVVUOXhxVUxoNlkweFlFeGYrOXJYbXJVbXVRY3ZKV0pxMkdsVGRuRkhURU5NeERPMApD
c2J3TTRLckd1c2djVThidnFYMnluWUU0aG1CU2VmcjlyMVhEYS9WSmRkZ2tWZHVIWWVIU0ZvQnlY
cXFPdVNZSm1XVUp1V1IwYUlzCnMyYXJMV3QwQkhDUFFwREZueklFNFVLRllQNzYxNy9lOGhwZ09k
aGlpeTFLTlEzTWFWNHVDUEk4RUx0U0pXSHhFS3FVS1R2azBNQnkKTStlY2Mxb21hR0lDSUlMamhV
eGtpaFdCODFVU1NnU0tEeENERUdiUDlCK0NLSCs5WlNnZDVOcGdMSk5ycSt4bnFMWjV1Wk8vaE9k
dQpnbkFMdk9HR0c1cTRkZTQ5Y2JOalhSQ0hRZ3dLV2M0eC9kOTIyMjI1MTRRNmtiaU45TFpIakJS
Z0ZTMk54d2pFT0k5TjhuVnM2N3pwCjk5NTRjUEZndlF3dDF3QnJ6WVlrNERsRlZLVWMwNlNNRW9N
ODBpb2dSZHczUnVleFVweDc3cm1XTXlIdHhqUEtJNEJpQmVvSXlFTEUKZHhCTGdWV2pER0V4UVhG
cGd0aUJRL2o5d0FjK1lBb0hsZ1dFZDU0QlZ6VmN3QkthYTY2NUhPaGNLQ0pWRXJzNy9GQ0RINTcx
aC9VSwpLMGY2SFBXSkZmbk1aejVqeUUxNXdrZVYvUjYyYmZxOTdMTExUdG5kNTVrd2RiT3pWQ1h4
QThNUERaYXV1Z2hnaGIvODVTK2Qyd0VFCmdZQ0VFaytRSTVhMks2KzgwdjRRK3JGaWtwK2pqQXNn
eXFteXZIZmFMam9Ba1M2dC9ORXYrc0dhVGhOODkvYTN2ejB6K1dPNlhudmMKekFqRU1JOHg4WFh2
TERTeHpudjdrUDdlOUhzdjNaZEpPSzVDcmdHWmsvaEVmdmVMcUNvNXBta1pKUVo1cEhYQkt1SytN
VG1QS3hHQgplUWczdmRtbFIza0VCRWkwZEJRYnJBaFptWjN6MmxkZUMrdFBFMUMzWkQwbktQL0ND
eSswN3FGMEpGYWhtMjY2YVVxWEVleUY3VDZsClBHUUJRZmdJeEFnVXhIcjB1bUNockJGMFR1SzRo
T2dyYzVzdVM4N0Y4QW15R2MrVlJhQjUwZjllOXlLVUxBUmVUT0RzUUtFY1ZrRW8KbGdURGN5OElh
eDdJYkFUODdiVFRUbFhjMHRiZVVrc3RaV1o5a3YrQmRBYlNtM0tlR0Z3MlNqRFF2NEJIWUpHRGNB
ZkFDcEdYblp6MQpSMEpFNHIyd0dqN3p6RE1HcTczZWV1dmxqajN0b3JDUVZSNTNUSkk1Y2kxS09a
c0p6QXNJZFJEdkN5d3hLRVBBZUNkeFpYYXkvZGY0CkNNUXdqL0JJTEh6ZE95Rk5yUE9ZMzN1OTR6
UE8zNnVTYXdZWms2cmttS1psbEJqa2tWWUJHWVFUSTYyTFlNWE9LaG1wUVJZS1RSLysKOEllSGdp
dEZhTWJWaWJ3V1pYWjRRL2FidUFsZ2R5Rit3SlY4MFA1QThVb1FtcEw3SVJELzRoZS9zREZNeXFy
OC9PVXZmMm1LV1M4QwpFL09JVUo3RzJjYzFKNzJMWFdXL2htbWJuQzRRTzZTOHFCTWdCTXFBdjJX
bmlTemtDUUVQemE0VGltMFZ4RzRaQWdrV0xzWU5CWUE1ClJ3RzQrdXFyelNLR1cxNVZoRXZmdnZ2
dTYwNDU1UlJEZWlOemRHS05CUHlBR0NvbDVUUTNTUUlocjdqaUNxZWtpS1lvRUtmRXVWNEMKUlF4
a09XQzJzUjRSRjRTaVFEa0tSaDV4WDNiNUdPdlRUei9kL0oyeENHS0pBU1VQSkRnSXdBcWdza0dt
YTVXUHZORnNyanlHZVl5SgpyNW1KcHRkNWJPKzk1cml6dWp0WExkZVU3WGxWY2t3c01rcWo4b2lF
czJsQllqYkxnTXpuSkpGMkNMeDh5YjBFaUNnZml5enRnbVgxCkVsQzlkdjVyNjZPUW1id0N6ajJa
cC9VQ3NXTUZtMWxHOXQ1TzBFY3BTTDdwTE1QMDk0QUREdWpxM3FXWFh1b1ZMOUJWTnVpWGtMeWYK
MTVaMnovMmFhNjdwVHozMTFNNmZkdHE5ZHR3NzN6a241Y01MQWF6d0VRVFg3SVdRNXRkWVl3MHZv
ZDBMcWFQd21xU0NyQVYrczgwMgo4MUpDdk53RmJVd2w2SHNKNzBtVlVwOFMzcjBRdlVyVkxWTkp5
b0tYcGFPcnF1QzB2UlEzTDZYQytMVHJwTDdJLzlnTGx0a3I2YWhYCmJKQ2RsclhPQ3diYi8vakhQ
L1p5cCtxOVpNcDN4UTk1V1QrOExDbDJqalpwTHlFcFpGNnVsVjZLZUZJMGRwOTVmRG5NZzRSc2E1
ajcKNTEwVDZ6dzJ4ZGN4clBNNjMzc2grVEprVzNuOE9rcDViSEpORlhKTTdESktIZkxJWkVuamZU
Zys5Z1hYcCt1NXB4RHFsVlhaeTRjNwp0MDdUSitnYmkxZnVSbDQ3ZVY0dVNGT0VzS3I2aVBDcStC
V3ZyTmNtdkRGZWdoSHUzQTZCUzRoY1hqdm1YcnNBbmZLNkRyUWo3cldyCjdRV2I3R1V0OEhLSjhm
dnNzMC93MjRmay9ieTJ0SXZ2QmJuYzFYZGVZQUl0NkNxVEc1OVhIRTVYV2U4WDdleDd1VzExTmd5
NHB6TGwKZWxrd2VxdjIvWTZBam9BQXlXMXBZQVZUeVRXOXJGRmVWanovL1BQUDk3MVgwY2xycnJu
R0swbmlsR29vRll4VG52Sjc1cGxuZWxubgp2TUFMdXE2VlJjUC8vdmUvOXpMamQ1Vm5mWkhibDVj
YnBKZlA4WlRUc2d6YTJrUTVIR2ZLNDh0aG5pbGtXOFBjUCsrYUdPZXhTYjVPCnhxbkpkVjduZXk4
a1g0WnNLNW1IVUo4eHlqVlZ5VEV4eVNoTnlDT3RDNVpXNHJnUzhLZmFkWTY2KzhRNmtJU1ErQlFK
T1pZREJKLzMKcmJiYXF2Sis0Mk9acG1Tc2lQVWdWd291TGNTMWtMZWlDWGhiZlBMSlFYTGZmZmRa
UGhRQ2pNdWdjcVNmS1paakFwa3hLUjkvL1BHZApMbUZDNzQwQmtRWEE5WXNKd2wwS2w2UmV0ek1w
QUc3VFRUZTFlSmpFcGFsem81d0Q0aTFrQWJHekJQd1J5SC80NFllYnExaHYvRTFPCkU0N25BcmdB
SHBiVndOekp5bDZiYnZPcXE2NHk5NjkwR2NmNDRVcUE2aTN1ZkNkUWtCZ1o0a2x3blVxSVFISmlR
K0NoSXNJbExROWwKQzFjczNOVVkyNWJpSG9FWTU3Rkp2azVtcThsMVh1ZDdMM25lU2YrTVVhNnBT
bzZKU1VacFFoNXBGWkF4WHMxTklVd05NMlRFQnhCNAoyelFodUFHRnE1MEhFL3J6QXFqcjZpZkNM
RUhCQk1zamFEYmRuMkdmKzNPZis1ejFIMS94aEVpZ1NNeEJPcjhLOFI4RVVlY1JBZzJDCmRSWnB4
OStVbkR4bzUvUTEybzF6ZDk1NXAzdmdnUWNzQm9qWUJoUlBZb0ZPT09FRUF3R1ErMU1wQVo1Mmli
c2czb0xnMHlPUFBISmcKVUFDVU00TFJCeVdVRHA0QkJleVdXMjZ4bUJvVStEZS8rYzJXQUpMWXIy
RUo3SG1VSDJKUnhwWHZobjMyU2JxdXlYbHNtcStiWHVkMQp2dmNtaVdmN1BVdk1jazBkY2t5VE1r
cmQ4a2lyZ1BSYkNlMjVpUnNCZ3FTSEVRU3JIZ2k1R0ZWOWk4cmFSNEFsR3pyQjh5Z1FDV1ZaClFJ
RGVwVDVXbjk0RWxWeFhCRE9MSUY1RUNFVUVYNU5QQmFWaC9mWFhkNGNlZXFqdDhpT3c4MGZBTjlZ
bSt0SUxTdEN2ZlNBWlNaNUoKY0gxWlN3enRnVzRtZDVXQlFTS3c0TngxMTExdW1XV1djYzg5OTV5
VEM2RlpjSGcyeHE5TVF0Q3M1OEVTaGRYajJHT1BMVXpFbFhWOQpXeGJIQ0RROWowM3lkZFByUExi
M1hod2MyZlppMUJHSVFVYXBUUjRKNWJjWGV6dGlpbzVQZWV4OUxkcy9ncnF6L0xyTFhqOGQ2dUZq
Ci84UVRUMHlIUjgxOXhwQzhQMGhiV1RFZ0JFOHJCNGlCRXV5MTExNVQrbnp0dGRkMjFtbjZYaHhy
ZDZad0x2RUhGK3FUQlhVVHZDOEIKMndMWWhRN25sWGVqNjM3LzlWLy8xVGZBbnhpUWRCOCsrTUVQ
RGczMm9Gd2duajVJaWVqcVE5a3ZFclk4UWJmOEVmOGh3YlBzcFZQcQpLVStCRnl4dlZ5RDZsRXBq
VnBDZXAxRzdIckt0VWZ2Uzcvb1k1ckVwdm81MW5UTmZWYjMzUXZKbHlMYjY4ZWd3NTZhYlhEUGRa
SlEwCjc3VVdFSTNHdUJKNUxvUVVaQmorUUhKV2xVOWgwUEVCS3BUa2FpUXd4TzhlUC9hbUNOY1Mz
SnVBdDJXTUJ0bnRycVBQdU5YZ21vYXIKRGRsZXMxeGhTQ0NuUUhvbjlDaHoxNnFqWDJYdVFlNFU0
aUtFY3BiWjc4UUNndjlzUXNRaVVBNzhMSzVXN0NLbWswS3VzTUlLRnRmVQo2eHZMOVFweXQzc2xi
ZlYrSnJ2QjdJeVM4WjVkSEN3dFdEc1VETzltbVdXV3JrdmdUK29XRVZZSTRrQkdzWnh4TFhFa3hM
OEFmeXZsCnB1aTJYZWR4WGVOdlZNSnlRdndWMlpxeEVyVTBuaU1ReXp3MndkZE5yL1BZM252anlj
SDV2WTVGcnFsTGpvbEpScWxkSGhsR1F4M0gKYThUdW5kM01jZXgvWHArVk44Qkx3QnRwUnpTdjdW
SEtGWHhzNHcyNlU5TUVqQ256RDZSdGpBUlNGTHY3Q3NDZTByM0xMcnZNNWhhNApWU1dCOUhML21W
S25xQ0FrN3cvU1Z0NU9JTERJL1FpNFhDQjRwVkRidk1rbjJDdUpwRmRnZXIvTHZKSU1laUJsRTJM
c3BQeDZCY1luClJWMmY4ODgvdndmYU5JOFVER2xXZ2dTK05xOWUyWExsSlBIS3FXUFBwQmdPdjhV
V1c1aWxwdXoxbzliRFdzbzlsYWRrMUthaXUzNFEKdml6cWZNaTJpdTQxelBuWTVyRnV2bzU5blZm
MTNndkpseUhiR29hSGk2NkpSYTZwUzQ2SlNVYXBVeDVwTFNCYWllTk1aQW9sMFJ1Nwp0REVSMmI1
SlB2alJqMzdVa0lUU3lmWHE3aWVKMWtDUVdYSEZGUzBRV2RDbTVrOHZlR0N6MHRUZG45NzdnZUpD
aHVvM3ZlbE52YWVjCjNINXN0NXErazJnU3kwRnNSRkEvRnFiWlpwdXRxMnRZT3BSendnSytreE5s
RWlzU01JN0ZnbUR2cDU1NnFxL1ZJMm1YVHl5QVpHeUcKaUVVUnhMTEZwWkJJczVjWVI0TGFTZkNY
UndSN2gwUkhveTNpUUdnWGF4eDlKQnM1bHErcWlTU0laSUhmY3NzdCs2S1FWZDJQdHYzUgpSaURH
ZWF5YnIyTlo1N0c4OTBianFEaXZqa1d1cVV1T2lVbEdxVlVlS2RKRUorVzhscG50UFBJNXJvU3ZZ
Qy9oeTAyT0FISUNwS2xvCnR6aGROOFF4U1hYU1JQSTRmUHlWWGRrc05DUjFhNG9FTldxNUhFaG1S
NTROdVRUNTMvem1ONTdFaEh3MlRTVE1VNkJ4YmplWTI5bG4KbjkyejB6Z01oZVQ5UWRwaUp4RExS
WnJZdmNRS1VBVVJYNEZWZzN3cVV1WTh1MWR5TjVxUzNKSGtnaVRIek1yTFVVVy9ZbWhUd2Y5Ugo1
d3NhZFl3RzRjdWllNFZzcStoZWc1NmY5SGtzTXg2eHIvT3EzbnNoK1RKa1cyWG1yRitkbU9TYXB1
U1ltR1NVVVBLSUZCbFA3R0p2CkF1QTA3NzBFeGxEQnhGUGF0MzVjSC9ta2swNnlIVjZzQ1VDTTNu
REREWVkrQk1vUFB1OFNzQzNmaG9KcjdaajY3UERLNWFYeStaVWcKN3lUY1d6d0t1M1NnSFFHbngr
N3pPdXVzNC9SU05paFIwSkx3ODY4ekZtTzk5ZGF6M1hEaUNpUVEyNjQ0QTRJdlBIRUI3TFRYUmVR
ZgpXWDMxMVMwdUJuUWpCVjNiempSakpDWEQ1cEdkZTNiNWxCelJMQjZmL3ZTbkRicVdtSVd5Qkc5
Z1BZRkM4bjYvdHNqZFFiNk5CSmxKCndlYkdlMUpFeTNaNzVIcFlGWjU5OWxtRFdjYVNJcVhOeGc3
WVdueTN2L25OYjFyTXpYYmJiWmNiY3pOeUo5b0dhaCtCZm53NWFHZEMKdGpYb3ZkdjY1VVlncG5W
ZTEzc3ZKRitHYkt2Y2pPWFhpa211YVVxT2FVcEdxVUllWVQxb2M4OHAwYk5ERm1WTXRkbnI1TzVz
VEpEbQp2ZkUxQi9SVHFUUE82Y25IM2dMQ1R2amNjOC90NWRwa3Z1bjR1d3NEdnZPMElKS0EvSk9R
QkM3TFBFNW02VkFrbUZTLzhjWWIrNGNlCmVtaEtrK3hrS09qWE1tSkx3SnR5bmdJeVVpdi9naWNq
TmhhSk9vZ3MwQW9BOXVlZGQxN1g3U2liYjc3NXVzcXEvaUxGd0V0QXQ2encKZ29QMUs2MjBrbGRR
Y3VlMko1NTRvaUVkSlFXUFBmYVlaMGZpamp2dVNJb0tQNVZzejMvaEMxL28xQXZKKy8zYVltZVNa
OEh5QmNJVQpkZkVuYlpyKzhJYy9lQVh4KysyMzM5N2lRZlJpYkxwTDdmMERqMEEvdmh6MFZpSGJH
dlRlYmYzaFI2Q3BkVjdYZXk4a1g0WnNhL2daCisvZVZNY2cxNldkb1FvNXBTa2FwUWg0QnFSSHZB
N3hla0VueE9DSEdSUnZBTnN4cDNtc1ZrRFRuamNHeDhpQjRGQXMrZ2ZWTXcvQVMKZEt0czMxMVB3
VXRaTzhGZXZ2aGQ1Y044a1QrK3VUSUo0YXF2TzVBU3hXVXFLSmprQ1BvRnpsUit3eFpVUFV3L0Jy
MUc2RUVXMU56cgp3Z1NVbzdSeEQreGZuWVF5d2J4Z21seHFxYVZzUHBQN1gzREJCVjR4UGNsWCs3
enh4aHU5RUoyOFlpcTZ5bnUvOEJ5Nzc3NjdDZjdhCklleWNUaS80VHVHUUIyWGJndDhVWitHenpP
dEQzbm9zTDBQWkFYcjQ2cXV2SHN2K2owdW55L0psbWVjSjJWYVorNDFqblphdnMyZXQKeXZkZVNM
NE0yVmIyU0F4V1dyZGNJKzhDQTMwUjRsWnVSK3VVWTVxVVVVTExJeWdkS0NES21XV2JxVXBFN0gv
MnM1OTFaTkEwNzcxVQpYMW9hb3hIQU5XZW1tV1l5VnhKY2M4aGNtUkNtcnQ3a2JpUzF3ZjFwVkRl
WVcyKzkxYzJZTWNQdHNjY2VEbmk2dk9CY1RPUDBRWWhOClNiZnNVNnZjN2JMTExvN3Mwd1FtNDZZ
bFRibXJUbFZmY0FYRFBhMjN6eVNTbzEvYXdhcnExcG50U25GMHpBdEo1WENmWXo0VEluQzcKRjdh
WWJPS01aNzg1QkU1VzhVRG1ZZ2JFcXl3clNaT05mT0wrdGNvcXEzUzVmelhTa1ladmlxdWg4cExZ
ZkdSQkM5ZlZQVncyZDlwcApKOWRrSCtwNjFrbStUeXp6R0F0Znh6Ylg3WHR2dUJtcFc2NjU2S0tM
SEZuc3RRbVoyZUc2NVpnbVpaVFE4Z2h5Rmk1WEo1eHdncmxnCjRlSk9kdmNzSUtJWHBkZk1hV2dM
WXh3QkpWU3p5UVg5S2swUFBQQkFWMVpqZlBEdzhaT0owMG5MVFZjdGZZeWlnT0J5NzczM3VtT08K
T2NhZGZmYlpodGlVMVFBKzlsLys4cGN6VVgwRU1XdG9SZ2xTRW5FQzVFU29nMEJTeW1MK1I1VU5t
amdCNG1mcXBuLys4NStXMjROTQozV2xTZ0hUWEhISU9oQXh5V29DZ2xFWHdBMW05bVNQRzlaUlRU
c21xTm0zS1VDckp1Y0Y0eEVEdzNoeHp6R0d4VDAzMVI1WTJ0OGdpCml4aWlHdG5jV3hyUEVZaHBI
cHZtNjlqVytYaHlWRHk5cmxPdUVjUzZiZGl4bm5xcENUbW1hUmtscER3aTd3NG5pNGVUaTdranI0
aEMKQlJ5b1prcWMyanZVcmxWQXBneEovQVZBbExMRFRkQnltdGpkUlBPRVdNeG8rUVJaRTNDcjJK
QjAxZExIQkVxVEtBNWxod1JxTXBXNgp0Ny85N1puWGN3OTJ4cExnNTNRbHhZNVluOUpsZFIxalBV
Z0NvOVAzVkJ5TENXVmRRVkhwQ2hVZUV3ek56bml2eFFxSVZxQlpJUklRCkF0Y0svQzVsQktwbkVV
clUrZWVmYnhZbXJFdkxMTE5NVnJWYXluamhDTkdqcjhMTGMvRk12T2lySU9hVEh4WVM5NUhvc0c0
aStXR2EKQUJwZ0RjbzBiVkRMSk9sc2d2Z0JnT2NHVFlMWVJGL2JlK2FQUUZQekdCdGZONzNPMHpN
VXczc3YzWjl4UEs1VHJubnZlOTlyeVpLegpOa0dia0dPYWxsRkN5aU1rVE1hcXdnYUIzSy9jdWVl
ZTY1WmNja2tIRU13VVVxVnBRWHJ3c1E5Q1o2S0lBNWgxMWxuOVBmZmMwelZ2CjJ1MjFwR3NrckF0
TnA1NTZxZ2RXOThvcnI4eHRXaTlnUzZZbmkwdG1IZURZbEJNazgxelZoVkxFdkN3elUyNno5dHBy
ZTdteFRTbXYKdWtCV0phOGRjWU9vUzk4THYxUmlVaDUvL1BGMDhjakhJWG0vVEZza3VxT2VMRXhU
K281ZktIRkx4S2dJMWN0TFFaaFNKMFFCME5UMApRZFlqYTQ1a2drTEhDdEYwWVJ0eWsvR0FNQnh4
eEJFR3lBQm9CUE1OUEtkZTlQKy92WE1QMXE0cUMvaTJ4dW1DaW1JcGx5Q1VFZzJTCkFGTnNSQVc1
YUFoa29DQ0NrRnlGQUVFd2hUREVqNVJFVkZKSXV3Q2lxYUdTZ2lTZ3BHaFNvS0tNV0lPSk9La0JZ
eFBOZFBHUFpuYlAKYitWKzJlYzk3em5udmF4MzdmMmU4MXN6My9mZTlsNXI3ZDk2OWo3cldldTVK
TjhmK2hJNVVjYnlrY0dQSmg3aWRlU3ZTVGExT1BtRgpvcnBtUDRZUGlEOE1kUjhTZ3c3M0s4Zm5j
ZVJ5M0haeTFqVnVtNU1jMTlVNDlsR3V1N3pQaDhkczNzKzluSEtaczY1aER0Tjg3bUplCk02cWZY
YzFqdXB5anpITStRbENpc054WTRqUGNsajNEOEFhTlJTcUV0Y1ZuNEgzdmUxK3lYenptbUdQU0xn
Y0p4dGo2SXZ4dEZ3VjcKUDJ6OUl0ckJ3QzhsSWppbE1MUGhrSlFTQUdJR1J2L1FocnN1bURydHRO
Tk9GYjR0YU9zbEN6c1o3QWdSZnZEQkJ4K3M4UEdnWUw3RwpLbU1vZWxtNzA5N2hpWWZ1VEhXUFU5
Y2YvdUVmcG5FbTVQSndnVHRoaHM4OTk5d2tFOGpHZTk3em51SERadjRjMGNTcW1HeFhFWmloCmlr
em95YzhITzFUOGF5SWkxc3oxcjFVQjRYOUpWTWF1WkVSK3E2Njg4c29sQ1JrNUg1TkpkcmpZL3NZ
M0NqT3RVWVhWS1VJYXMydkUKcmlmSnNmYmJiNzhLdngrMnVVY1Zkc0xZaVdTODJIR2lMNGNlZW1q
eU9jSkdsM3NRSHpMOG9OZ0pwSzVERGpsa1dSOUgxZDNINzhhUgp5M0g3bmJPdWNkdGM2YmkraldQ
WGNqM01xZXY3dk4yZmVULzNjc3BsenJyYURLWjkzNWQ1VFovbU1hWG1LRjNPUjR5Q05Vb043dWwz
Ck1WRkpLK1JOaEtNNzc3d3pKZE5qWnlIc2NaZXRxSmU4RE1MenNycmRGS0lnaEZKVUU1a0xMWmhR
d1BIUVM3czNZWDlaczJQVFpTR1UKY0dSQ0w5NEZPTVZEdXI3dXV1dFMyekV4cldOeVdiL3VkYTlM
b1hram8zajJQdEZlODIvV3lwdDZlRjJwSUk4a1RGdXBFTldMeUd4RQpBVnNwQWhrcllrMDQ0Zmlq
TVBIdVJTZzVkU2g0NlIrN2IwMGhzc2tIUHZDQjV1T3FyNkc0VE56dWNJWHNlckJ5UEZ5NDlyZS8v
ZTExCjVNUko5d1ZSVUVZVm9vZlFmeUxQY1E2RkZhdTN2ZTF0S1FRMzhqU3FFSUhzU1U5NlVoMStI
M1VvMmpYM0hFazRtM0x4eFJmWDczLy8KKzV1UEtVcEpLTUlqZDYwR0IvWDR6VGh5T1c3M2M5WTFi
cHNySGRmWGNleEtyb2M1OWVVK3AxL3pmdTdsbE11Y2RRMlB5YVNmK3pTdgo2ZE04cHNRY3BldjV5
TXF6aUVtbHFPZkg5K21HbXdYVjhPUUpreWNtTDlkZWUrMHMxV1kvbDh5ZXpZU0p5akZISWZzMDVr
V1JITEVPClA0WHNiWTViSWNyUkRqdnNrRUxoam50T3J1TXdwMEhaYUJmeVpzU3E5Tnh5WnVTVS9l
RzYyaVpVa1lDb2poMmxPdnlBVWdieUNGNVEKRStxNENSV04wdGtvV0pnVHJSU2lGK1Vzb3FJTWxD
YmFEUHZSR29WNzNMTDMzbnVuMExjUnVXM0pLVXpjSXpIbmt1OVcraEMrRW5YNAo2TlFvUUZ6YnBP
WDIyMit2NmNlb0VoRllraGtsRERDYkRCK2VVWWNsc3l2TUxadEZoK1lnOHNWRVlJZFZUYkdvc3dt
RlRKejV0cktDCk9lV3dBaDY3TlNrdnpnTVBQTkEwc3pDdnczSTVTOGR6MWpWTFA1cHoremFPWGN0
MXc0WFhydTd6THA1N09lVXlaMTN0OFpqMmZWL24KTlYzTlkwck5VYnFlajZpQVRIdkhlTjZxQkZp
NURaT1BsSlF1dHZoU0hnc21meFR5bURBNXhTNi9kQ0htZFRqaTFpVDQ2MU9CeWJ4Swp6ajgydzNX
eGlzN3FPdjkyM0hISE9nSVUxRHkwV2RXaWtIVHloaHR1R0Z3YXRxN2txbG5KSDRQSmI0UWtYS0o4
TkcyeWtqOHVwM0JDCnI4TWtZc211SEowSU02YTAwelRvMENwdlVFQ2F0cm11U1hKNThHQkh6cHFk
cm5ZejdPNk04a2xxSDlPODV3OHpmaXpEQ3d6c0RoSEQKUGt4MG1rTlhmSVUvQ2srN29BRGlTekJj
SXBSekhaSFpoci91L2VkbW5IaWR0ZVNzYTlhK3RNL3Z3emoyU2E1aDA5Vjkzc1Z6TDZkYwo1cXly
TGFQcjdYMFg4NWcrekZIRy9Uczd6WGkzWmM4b1dFSERrcDhBT1NraTgzZ0sreGxiaVJYeDY4ODY2
NnpVRUQ0c1lRS1M3TS96CnQ3eHlqWVFReHI4aVZvV3J5SUMrOG9FZC9OTE9CZEpCODFNM2lSL0JT
MS82MHVTL1F0aGJmQW9pNC9qQWx3RC9HbUtxTitYQUF3K3MKUWdGSklXbUoxRFpjaUFLR3o4U29F
azc2VmV5Q2pQcHAyWGY0T2VCUE14eXhqWkRMUkJGYXFZMWxGZjM0aTlpRlNKSG5pUENCYmU1YQpC
Ujh0SXNZZGNNQUJ5dzRsdEhYc0NpMzd2ZmhTUFFBQUlBQkpSRUZVZnRRWDhDTkVJNzVWK0ZSUnVD
NUNvSVlUZXdvbE9lcTg5bmZZCnBoT0ZxMTIrRXlHb20yaHJ6ZmY0bGhCRjd4T2YrRVR6bGE4OUl0
Q0hjZXlUWERNMFhkM25mWDN1OVVoYzEwVlhTczlqK2pKSEtUVWYKZVRnRDJyb1FGeStpVHdSSWtr
Z0lYLzcxb1J4MDBFSExraEgyb1YrTDNBZkdHSVdERXF2OWFheWJYQzk4RnpzYTZSL3ZtM0xpaVNk
VwpiM25MVzFKbzZQQkxhTDVPcjgwa2U4bVhyUS8zMzM5LzY5UEtiNW5nNCtBL1hHTG5KWDAxS2l6
ejhMR2pQak01eDJrOE10YXZxRUNqCmlNSGszZTkrOThoRWpMR0tYSkVYWjV5Q2toQzdGUldLRHc3
MUZKSjJFV29aNTNMQ1hxOVdVTFp4T0IwTy9FQm80Q2FQRUlwZzdMUlUKWVZxVEVrYVJMOFRTTHdK
OUdNYyt5WFV6T2wzZDUzMTk3alZjZk0xSG9PUThacVBOVWR3QnlTZW5uZFJFa3Jyd3RlaWs3VVZy
bE5VeQp5L3dJdlBXdGIxMjIwbjdmZmZjTmN0TTBMY2UyYmNwSFFaTE00VElxTVZUN21MVitiNDRs
MnRXb0JKUHNYa1JZM0RVbjdrMDk3ZGZ3Ckc2ckNGS29LVTVnVmxRK09KM0lSbVcyUE91cW93ZW5z
THZEOWhSZGVtQ0xZTVprYnBTQU5UbWk5b1I2U2lhSnM4SThkSFA0b2ttbCsKdGNMa2pGM0hVMDg5
ZGNsaDdQNUVJSUJxNTUxM1R0K1RSNFlvZWtUa0NqT3ppc2hrbHY0UTZNczQ5a1d1MnlQVDVYM2U5
S05QejcybQpUNHYrdWxIbk5SdHRqcUlDc3VCMzZsWmJiWlVtRDJTZTdHTmhSWnNITkdZblhSZE1W
a2pZRjdielhYZGwwRDVoZ0ZuTlpvV2JGZTNoCkFyY3p6amdqbVkwTi85YW56MHpLU1hyWkpNSnMr
bmJycmJjT3Z1UDZtT1FTT2hxVHBsR3I5eEZkcDNyMnM1L2RuTDdrbGF6eDIyNjcKN1pMdlZ2b1FQ
aWtqRlhOQ3pvYXZ5a3FuamZ3Kzh1NmszUnBNbnhpbnRVcmtsNm5ZU3NkTWlzSzFjczJFM1dXc3Q5
dHV1d29US0JJegpFVVozclYwZjZpRHM3aEZISEpIK0hYMzAwV1B0S203YXRDbkpGQWtadysrRWFs
S2hiMDkrOHBOVHNzYm1PMS83UzZBdjQ5Z1h1VzZQClZKZjNPZjNvMjNPdnpXYVIzL2R0WGxOcUh0
UDFIS1g0ZkdRYUo1SkZQQ2R1eG9GRDZTTDJmN1UreDgxUnYrUWxMMG5oTm9uNnMxSm8KMDlYcW1P
ZHZKNTEwVXYzRUp6NnhEbHYyZVRhelp0MDRWaDErK09FcFpQRThFamF1MllFVkRnaFRuU1Nic1Z1
dzVJZy8vdU0vcmdsWgpHeXZXOVZPZThwUVVVV3JKQVdOK3lDbjdvK29pUWhRTzRzTko3c0pjS2lX
bmJKSUJEbmNYaDlaUmhmTmlLM3B3djhacWY0ME1oYW5RCnFNTkhmb2Vza2VpdlhSai95RGliUXRp
MnYxL3BQUTZ1eHg1N2JFMS9aaWs0NVVmK2hFRVZoS1RHMFo3b1ZrU3dXeWxTMXVDRUtkNFEKQkNE
c2VGUDBPVGdUeGpkTTMrckl4bDV2dWVXV05WRzAxbE1aSlpmVFhsL091cWJ0UTNOZW44ZXhDN2x1
dURTdlhkN25wWjk3T2VVeQpaMTNOV09SKzdkdThwc1E4cGc5emxKTHprZGxEaHVTV3VqblZ0d2cz
M0RTWFRsaGJKaFBFSUk4a1pTa0U2a29oUGFlcGY5WnpJamxpCjZoZFJoTWhmMEhVaGJESDVFWm9T
NWcwcERHcnp1WXRYc2x5SHVkQ3lwc05FSjAyWWlYZ1VKanRUVHhwenl2Nm91bEI2Q1d0ODc3MzMK
MXJITE1iZ08rbzFpTW0xcEpoY3JSY3lhdE42LytJdS9TT0Y4dzRScHJGTUpjNXVqa0FrMmRrQlNU
cEx3RFVuaHFNODg4OHhVTllwSgpPUEhQSlNJY3VScmFvYkRKbWNENDBkNUt5bCtPNisyaWpsRnlP
VzAvY3RZMWJSL2E1L1YxSEx1UzZ6YWJVZTlMM2VlbG4zczU1VEpuClhhUEdZTmJ2K2phdktUbVA2
WHFPVW5JK29nSXk2NTNTMGZtc3ZoRFdsb2N0aWM3NnR1c0JGclQ1UGZmY002M3dSa1NnNHFRSVc5
bWUKZ05FQjhpbXc0aHltUVhXWU5xU0pNeXZzL0RIdHFoQ2FOcUlkald6K25udnVTYnNmSTM4Yzg4
dWNmMnlHNjNyb29ZZnFzTU91V1RWaApZcy9FbW9SMzVQOGc3d3ZKQVB0UXVEOVFQTVA4cUpQdXNJ
dkZ3c0E3My9uT21oanZYUlFZb01pdXh6SXNsN05jWTg2Nlp1bkhTdWYyCmFSejdJTmR0VHFYdTh5
NmVlem5sTW1kZGJmNnp2dS9qdkdhZTg1Zyt6bEZ5elVkWTNHM25ubXBrb3kxN2orREwrR0xkRnlM
Qk5HVTkKWEhKTVRGTkkyVk5PT2FXNXJONjkwcmNRd0NwaXBnL3M0VXQyRXArRDMvdTkzMHRSbU9M
Qmx1emhzWVVuRWxJb1Jpa3lFTkdCSWp0MgpoYzFwVnlXUzgxV3htbGJ4T3FvUStTbk1aa2I5dE9K
MytCczB2ZzQ1WlgrNHJuZzRWOWhoNDlSTUNGNEtmaEpFaStLVmFGSHRjMWJzCjhCeC80SDdIa1J2
L2xIUFBQWGVPTFZsMVZ3VGFNamJyOHoxblhWM3gySWp0bHJ6UHUzanU1WlRMbkhYbGxMVSt6bXZt
T1kvcDR4d2wKeDN5RWtPSDRzNFRwZmZMRkpQUSsvbzZVdHV5NUF4SlByVVVzck9TVHpLOTB3UTQv
b3Vxa0xNeXJ0WDNGRlZja3N4TzA0RDRVVElQbwpPeGxzZitkM2ZxY1BYUnIwSVJ5U1U5STZ2bUMx
aFMzUWNEU3UyZjJZcHJDRkd5RldCNmZHUFQvd3B4aDhPZVdiY2VyQ1pPcExYL3JTCmxDM2tQWTF4
ano4Z2RlUXZ5RnV4dGZXS3dEaHlPVzZIYzlZMWJwc2VOeHVCUHR6bjgzN3U1WlRMbkhYTk5uSkx6
KzVxWHJPMEZ3OS8KS2ptUDZjc2NaZGI1Q0VsenNZRGdiKzV0dDkyV3pIMGo3SHNkaWswQzI1WTlv
MkFGalVVc2hLa0xFNWVpWFkvTTVkVUZGMXlRdE5yVgp3c1d4aWtIT2dqLy84ejlQNFVLTGRuS29N
UklnVW9oa1JKUW1JaE8xTlhDaWg1SGtyY3V5L2ZiYlYzdnR0VmQxMkdHSFZid24yaEhoCllza1hN
V2w1NzN2Zm04NG5ubmhYaFR3Z0swV3lLdDJuNjYrL3ZpS0tFQkcwTm5yaC9yVXNQZ0hIY2ZrWTl1
RSs3OU56YnptaHhmaW0KMUx5R3NPWllRbUJkc0ZJcE5ZL3AyeHhsMXZuSWYvN25mNlpFeEZodGhH
bDdGUXUrS2ZFelZpakR4VVNFdzBRVzVETTM2ak9mK2N4QgpiMGxzRnRwbXlqaE9uUCtuUC8zcFZV
VHdTWlB1d1VFenZDR2ZBOG5qSXZKSjlhNTN2U3ZsT1ZpcE9reXV6anZ2dk02VkQvcEg3SHJNCmtU
Qy9JZm5jWFhmZGxSUU9RdHNTSXBZUXFZY2VlbWdLbTdyUzljejdleFFnK29uQ2dja1ltY1VuTmJu
aWdYcmNjY2VsY0wyRVdHWEwKMDFJTnRuMWxVVldFSUViT3lJcmVWc0psczFnRUhNZmw0OVdZZHl6
L3hXOFdpVUNwZVEzaGsyTzNKZjN0WitGdlZDazFqK25iSEdYVworUWc1c0ppYlhuYlpaU244L05a
YmIxMnhRUEJ6UC9kenl6Q3JnQ3hEc2hoZjhFZUluQW5rdEhqakc5K1lzak9UWVpyM1pEYSs2S0tM
ClVzNEI0anF6K2o5dG9hNklab1NwWGxJOFNNUjI0SUVIcmxwZFJMeXFXSW1QTUxLckhsZml4NU5Q
UGpuMWhSMloyT0tzV0QxRVFRdUgKNURSSkowczdtYVc3S2p4OFRqdnR0SlNnYmxxbGdUR0NlVGo2
SjZYdlBlOTVUMFdDTG9zRTJnUllsTGp6emp1VHp4UCtPZnlMOE03dApRM3kvQUFRY3h3VVlKTHM0
RllGUzh4cDhFemJmZlBPS0pLd3JsVkx6bUQ3TlVYTE1SL0N6WlhFWHY5b0lsSlRtcUx2dnZudXk4
bGpHCittRnJ0L1g5TGk0OG14MThIMGh0czgwMmRaanQxS0ZkMXRkY2M4MnlMaEg5S1c2d3FVTzNO
aFYrNmxPZnFySHBvNUJYSVRJck56K3QKK2hxckN2WHJYdmU2VlkvcDRzZXZmLzNyZFV6MHUyaDZX
WnV4MmxQdnM4OCtkWTRJWVlSaUpyeHFPSDB2YXllbjdLOVZGemFmUng1NQpaQjI3WkNORHZSSmFs
NGhacFVJeWswZUZxR2Y0eE9BRHRORUxzbmJ4eFJmWHNRT1M4b1FRRFc0OWxMWGtjcEpyekZuWEpP
MU9jdXg2CkhjZEpHTFNQN2ZvK0wvSGN5eW1YT2V0cWo4T3M3MHZOYS9nN2hNL0ZXbjk3dTVqSGRE
Vkh5VFVmaVVYeG1yREZiVDlRM3Q5OTk5MUoKUE5xeXB3OUkwRmpFZ28wOXE1bEVMTUNFYUxoZ1lo
RWhDYXNJRnpqODAwU2ZYL2pDRnlhVHBiUFBQanVaSzJHR05VNjU4c29yazdsSApPS3lQYzNpeFkr
RENqa0VmQ2xuQjMvR09kMlRaZ1dIM0s1elBxMGhJMmVtbDdiSEhIaW42MXVtbm43N010NFp0V016
Z252V3NaNlVzCjNOall6cnM4NXpuUFNTdjlaUCtPcEc3emJxNjM5V051UUdRUy9ySHlGMGtqcTQ5
ODVDTnBKN0MzbmJaanl3ZzRqc3VRcEMrNnZzLzcKOXR3YlRhbi8zNWFhMTJBT2hHWElXdFlQWGN4
anVwcWo1SnFQWUFLTzJSWFdKY3hSYjdycHBtcTc3YmFyZnVWWGZtV1pBR3FDdFF6SgpZbnp4d1E5
K3NHS3JLekk3ait6d1ZWZGRWUkVxOERkLzh6ZEgvajd1bDVFam8zckRHOTR3N3VHRDR3akp5aVFu
c2tsWEVRbXJ3aXlJCkc2dUxncGthSmxpaGxhZC9PSGdUTnBhSFhXU0w3cUpMcVUzOGFyQ1hYRytG
QjlCbW0yMVdQZldwVDExeWFXeDc3N3p6emlrNFFlVEQKcUpEUkN5KzhjTWt4czM2SVhDU0RjTUJO
WFpFa3NZcU00Mm5palJJUzJjQ1R2eFFoZWJmZGR0dm1zSFg3R2ttOXFsaDlxczQ1NTV4MQplNDBi
NGNJY3g0ZEh1WS8zZVpmUHZZZkpMUGE3VXZPYWNTbVZtc2YwWVk2U2V6N0MzQ3J5bTYySzJoMlFW
ZkgwOTBlaU9hMmtmRVJ5Cnd1Ulh3T282ZG94ZEZSeXBXVUc0L1BMTHF6LzZvei9xcEJ2czJFUTR1
QlF4N09DREQwNStNV0grVTczKzlhK3ZIdi80eDFmRStIN2cKZ1FjNjZSdStOQ2gzOUtkZG1DVGpM
SC9qalRjbUpiTDkyeUs4Ui9uZ2p6SEthN3V3SW9KZkVMdGloeHh5U1BYbU43KzUvZk9TOTVFaAp2
TUxmS015RnFnanBOellIbU9HejlOblBmcmI2NmxlL21uWUlDYzd3Z3gvOG9IckJDMTVRUmNiNVpK
ZEtZK3dRcmxiSVpUSXFjc2RxCjUvVHhOeFlxdXBMeFB2SlkxRDQ1amcrUFhCL3Y4eTZmZXcrVFdl
eDNmWnpYekhzZTA1YzVTaWZ6a1ZsdDloYmwvTGd0MTVVUHlEQjMKZkQ2dXUrNjZPbGIxazE4Qk5y
RjlLV0VpbHV6Tkl4cFYwUzVoNHhrbUowdmF4UDhnRXZTbDc4aElIZEd4VXNidWNFNWZjbHlKRHhI
MQpLdG5qeDBNM1pXUVBSNjA2UXVEVmozemtJd2V5R2l0Q00zY2xwK3lQVTlmTk45OWNSM0xIRmZz
ZHUxRXIvc1lQRVRpaGppM2JBUVBhCmZNWXpubEVUbjN5Y0VtRU42OWh4UzFuWjhVTjY5YXRmWFQv
LytjK3Z2L0tWcjZSczdlUFV3VEhoN0p2a1k2MytqbHRmUkNxckl6UjEKWFZyV3JyNzY2anFpMTQz
YnpZVThiaHk1SFBmQ2N0WTFicHZqSE5mWGNleEtydnQybjgvN3VaZFRMblBXTlk3c1RudE1uK1kx
ODVqSAo5R21PMHNWOHhFU0UwOTRaUFRrUHgxb21OWkdmb3c0Nzl6cTI2WHZTczRlN0VTdDNkVVNi
cU1QRzhPRXZDNzNESVRvaWc5Vi8rcWQvCldrZTBxVHB5Z2RRUm1XSFFlc1Nzcm5td2xGYU9CaDJJ
TjdIYW41TDBFRXdnUXYvVkgvM29SK3V3bTZ3akhGNzdzS25mNS94ak0wNWQKRWRxNGZ1NXpuenZv
Ny9lKzk3MDZ6SzNXZFBqakJKd0N3eXhxaWZMUnRJbFN3ME55clVJeXgzYUpuWkFsaVJuYnY2MzJI
Z1drYVR0TQpHV3VjOUdZdEo1eHdRaDJtYVduTVo2MXIzUFBEOUtxT3FIUkxEb2NSRXpnU1JPR1F1
ZWlsR1NkZVp5MDU2NXExTCszeit6eU9YY2gxCjMrN3plVC8zY3NwbHpycmFNcHJyZlIvbk5mT2F4
L1J0amxKeVBqTDcwenFYeE0yNW5yN2ZjSE8rL002clp3TEVBN3AwSVJNN0U2MUwKTDcwMEtSN3JK
ZXJQSkJ4enl2NDRkWVhaVXRxRlk3Y3A0dk9uSFIxMmVTTEUzNXJkRHNmb3dhUy8zVmJ6bnJGY3E2
QnN0Z3RSUlNJWgpVaDNobCt0UGZ2S1Q5UUVISEZCSGpwejJJU1BmdHhVUTJtZG5LcHpyVXowalQx
ampTeklsRTdVT0JZc29JYVZLT3pvYUdXckRGTEdPCm9BVnBRWUJvWldFYXQvQTdKSTE4OERwcnlW
blhySDFwbjkvWGNleEtydnQybjgvN3VaZFRMblBXMVpiUjlmNStIdk9ZalRaSGFjdGUKZHg2NDBR
dkx4aUVRSzJTZFhDeCtDTHZzc2t2NjEwa0hObUNqK0xBUTZZcWtpdnZ1dTI4VnBpTXBHTUk0K1dn
SUVMQmF3VkdPOFZ5dAo0UHdlSmxmSndaK29XOWpPRTQwamxJK1VrUEkzZnVNM1V0YjUxZW9ZOVJ0
QkhVakMrZVV2ZnprbHNjSkJjZHdTZjVoVFVpYWlyeEFRCmdTZ2hwUXFKcGZoSDM0bjZFaUdibDdS
UC9wbGYvdVZmcm9qa1E5UTdTejhKOUhFY3U1VHJ2dDNuODM3dTlWTXFOMWF2NWpHUDJjaHoKRkJX
UUJiOS9lT2poY0x2ZmZ2dVpmRzdCeDNJOWRKOUlZeml6b1FDUW5mMXhqM3ZjUkpkRnh2clZ5azQ3
N2JUYXorazNRbkp5VDlBKwp5U2ZEZDZRaU1BTk81Yk9VeHo3MnNWWDRVcVRBQmJFYk1sRlZPTnlI
ZVZtS3ZyWlc2TWVKS2g3ajREQmJxNGo0aFFKQzBzdmhRc0FBCkFqTGNjY2NkS2lERGNIcjB1WS9q
MktWYzkrays3OE56cjBlaU9uTlhuTmZNakhBeEtsanZXMmJOOWNWb0RFdzdtdS9XeTJ1RU5FMU8K
dWpnMDliMnczVWdpdEM1OExtZzdvbkxWRVI2NHhpOWhvNVNjc3I5YVhaRnpadURzUFMxYkhMUUpE
TkJ1cDNsLzBFRUhUVlV0SmxpeApzai94dVkwSlZtU1ZUNDdzMC9wS0VCd0NzNjljenVlWWVweDMz
bmxqKzN2ZGZ2dnQ5ZHZmL3ZZVnJ4L25mQmgvN0dNZlcvR1l2di9RCnlBaXZzNWFjZGMzYWwvYjVm
UnZIcnVXNnpZYjNYZDNucFo1N09lVXlaMTNENDVEcmM1L25OZk9heDJ5RU9VcGI5bVovV3VlU3Rq
blgKMDc3b09UZFZ2SHF5bFhOOTQ5allGKy9jaUFhSm1oTDVJT29qamppaTVuM0pFdUZJNjhnSlVj
ZktmT2Vac1NNTWJISTRaMExaTG1GbQpsTExianh2MXFYM3VxUGM1WlgrMXVvZzRkc01OTjR6cXdr
VGY0ZXpOR0xYYmV0R0xYbFQvMjcvOTIwVDFjRENUZnJLd0VoMXUwb0lDCkVxRjc2d2lKUE9tcGcr
TlJkR05IYUtMb1c0T1RSN3poRDlTYjN2U21GSFFpUjhBSkhDdGpCeVFwanVNNCtJL29VaSsrYXN2
S3JCM0sKV2Rlc2ZSbjMvTkxqMkRlNTd2SStML1hjeXltWE9lc2FWMFluUGE3djg1cDV6V082bXFO
ME1SOVJBWm4wcnVqQjhXRW5YNVB1dmltcwpia2JDdjdFaUJEWG5kUDJLRSs0MjIyeFRSMTZHK2x2
ZitsYlI3a1JPa25yUFBmY3MydVpLalRFNTNuLy8vZXZJRWxwSFhwYzZzbFFQCkp0NWh4clRTYVJO
OW4vT1B6V3AxNGR5Y2F4Y09wU3g4TFdxYzBsblpuS1NndU9GMHpoaXo4NEd5RzBtUjZyMzMzcnUr
NktLTDZ1OSsKOTd0alZmY1AvL0FQWXgyMzJrSG5uMzkrSGY0bnF4MHk5bTg0KzU1ODhza3BHaGZo
aFdjcC9MRWhWREhoam5GSXo3VTdNMHVmWmpsMwpOYm1jdE42Y2RVM2E5cVRIZHpXT2ZaRHJ2dHpu
cFo1N09lVXlaMTJUeXV4S3h5L2l2R1plODVpdTVpaWw1eU1xSUN2ZERUMy8vcVNUClRocXNOci9p
RmErb0k4RmJ6M3U4dkh2a2U4QzhCWk9zbk9YQkJ4OGNxWXl4d2hzSjZlcmYvLzNmVHl2YjRZeGJi
OXEwcVQ3dXVPUFMKNUo5UXEyM0ZMbWVmMXFxTGNNQ3NwQkZxTmhJVHBjaGR1VmFrYy82eFdhMHVI
cHFyalNXaEZlZGRVRnk0TjlxSzBHYys4NW1rNkJMYQplSjk5OXFuRE1iMVkxQ2NpOVRCWm02VndU
WkhNTStVMVlSZUlYYWJycjc5KzRpcFJNZ2paSFVrNDY2T1BQcnBtdkZnNVh3OWxOYm1jCjlQcHkx
alZwMitNYzM0ZHg3RnF1KzNTZmwzcnU1WlRMbkhXTkk3UGpIck9JODVwcDVqRjluNk9VbW84OEFz
RUlZVnozNVJHUGVNVGcKR3RmREpST1I1NjF2Zld0MXhSVlhWQkZlTkdYVUp1clFvcFZZaGEzMjJt
dXZLbllBc25VOWxJanFOYTk1VFlXVElvNi85OXh6VHhVMwpmTXFDSFluK3F2dnZ2eisxOWFwWHZh
b2lTaElzWTJKWGhWbEJSYmJ1VUFLeTlXV2Npc2hTL1lFUGZLQWlPbE9ZQ28xenlwckhJQk5iCmJM
RkZPaTZuN0s5V1Y5aENWNjk4NVN1ck1DRkxFWlZ3Mm9acnJGU216Tzc4amlONCtFT3MyZjlwRHdn
bHB6cmpqRE5TeG5XeTZ0SisKbVBwVlJPQ0svQ3FwV2h6U1R6bmxsQlFaaTBnNjh5dzREaE5aQ3Nk
OE1zQlBVOExXdnVLNkRqdnNzQXJaamgzUDZyTExMcHVtcW5WNwp6bXB5T2VsRjU2eHIwcllYNWZp
dTVicFA5M21wNTE1T3VjeFpWMDZaWGRSNXphVHptRDdQVVhMTVJ5THZWL3A3eTkvZ3lMMVdoV0ta
CjVtUElTbHYyVkVCeTNqMEY2MktDeVNRazdPV3JzSlZNNFU0akVXRVZwaVp6N1VYWW9GZXhhNUFF
Nm9sUGZPSmMyNXFsOGx0dXVTVkYKTEVJSk9mend3NnV3NXg4SWZqaWlKNlh0ekRQUG5LV0ozcDRi
dVU2cVNQcFlSVkxEMU1mMkRUK3I4cjFXWGRSLzQ0MDNWcmZkZGxzVgpUdHRWck5aV2tZUXloWCtO
L0JmVnkxNzJzb3BRdFBNc3NkT1JyajhDSFNSbEtMS29WNUVIcG1wSDBBckg2eXBNczVJQ09zKytV
RGNUCkZCVExZNDQ1Sm9VbW5yUTlJc0xFTGtwU2xNTmtNU2xQbTIyMjJhVFZyT3ZqMTVMTFNTNCta
MTJUdEx0b3gzWXQxMzI2ejBzODkzTEsKWmM2NmNzcHRWL09hbk5jd2JsM3JkWTVDQkVxVUdQNVc4
VGVYa1BNc3NCTGhjdmZkZHgvTXcrQ2tBakt1dFBUc3VFc3V1YVQ2M2QvOQozU29jejlNdUNNb0g1
ZS8rN3UvU3FuK1lFMlh2TWF0ZVlTYUUyVjRWWmt2VlZsdHRsYjJOZVZiSTZudlk5VmVSRURIbHBY
ajFxMTg5CnorWTZxVHNTemFWSlBya2VXUG1uNVB4ams3T3VlUU5DVHR2OW5YZDdxOVVmZms0Vmls
RDRicVNRdUtzZE82L2Z3bXlsWWdHQlhiLzEKVnRyanpMalBVbkxXTlVzL1ZqcTNUK1BZQjdudTAz
MiswcGpsK0Q2blhPYXNLOGUxTlhXVW10ZEV0dStLVU9yY1M0OTYxS09hNWp0LwpYUTl6RkJaNFVU
cFlBTHo3N3J2VHdobnpSbkp4WVEzUWxyMmY2Snk0SFppS0FBbmIyTjVpTWszU3Q2WmdQc1RxTG5I
L2N4YnlLWkJECjRKQkREcW5DUG5EaGxJL0lvSjF1QUc0RWNoNWdrcldlQ2c5VWtpUkZ0S2kwNDhB
NGJmVFNmdEIxellKRWYrSEhVWVgvVWNwSjBrVi8KU0hqMTJ0ZSt0dUtQdkdWeENmUnBIUHNnMTMy
Nnp4ZFhxdnJSODFMem12Q2pxODQ2NjZ5MFU5K1BLNitxOVRKSDJYTExMWk81RlJZeQo1SjVpTVpT
RlgweXloNHNLeURDUkJmbk05aFkrREYvNHdoZVN2WDI3MjVFaklKbWU0Q015YTJIWEl4d09remtU
WmlCa2xjYXNhZEZLClJGTktwbGowR3lYdG1tdXU2ZndTSXJ4cmxqNWdENDA1RWVORUNhZklkYm5L
blFWV2g1V3dJeFZPOE1rWGhDU0pwUXNUVi94dlVFSjQKYmxnV2swRGZ4ckZydVY3TVViVFhvd2lV
bXRld2lJclBaNFF5SDlXTlRyN3JlbzZTYXo0U1VTYXJ6MzN1YzJrSDVQampqMDhXR2QvNAp4amZT
YnRNd1dCV1FZU0lMOHZtTmIzeGpoVU0xZHJENzdydHZ0ZXV1dTFac2h6Y0ZFNm5JRjFCRjFLZm1x
NmxlOFM5aGkvSWQ3M2hICnhTcDdKUEZMRHJWVFZkYmhTVXpTMlJLay9OZC8vVmQxNzczM2R0aWJL
dTBpUlhTbUxIM0F4K0xJSTQ5TUR2U1J2Q2s1Z21lcGVCMVUKZ2dLTlFrWndnYlBQUGp1WklIVjVX
Ukd0TG0xSll5ZGJvdkFIRnNmT3BoQ0FnZXowK0VSWkZvZEEzOGV4dEZ3UGoxemY3dlBoL3ZsNQpQ
QUtsNWpVUmtqMnR6RWVlcC9FNlZ1Q29MdWNvS0dTNTVpUDRPeEpVS0JJSEp6L1VTSEJiUlVxQjVJ
eStER1BZVDI2SUVoYyt5Syt3Cm5pNDRURzNxMERaVG1NNTJZcktZZEtTY0VoLys4SWRudWx6aXpF
ZDByVHEySzFONDJGQkNacXF2cTVPSmIwM09nd3N2dkRBbFh0dHgKeHgyNzZrcHE5MGMvK2xFZE8x
aEYrcEJUOW5QV1ZlVGlmOXpJNmFlZlhqL2hDVStva2VldXl3VVhYRkFUdXJGRUNXVzdKbWRJaytj
agpJbkdsZTdsRTJ5WGJ5Q21YT2V2S3hXQVJ4ckdrWEsvRXRVLzMrVXA5blBiN25IS1pzNjVwcjJl
MTgrWTlyMW10N2E1KzYzS09Nby81ClNFUWdyYi82MWEvV0VaU21EbCtRQWRhMjdNMDNaRkswWkpr
dkFhTGg3TExMTHRYem52ZThKUTNoczhGSy82d0ZQNU1jcGx5ejltUFcKODlIS0NWL0t5ak4yeS9p
QmRGbHdCSTdFY2hYQkF4cG44ZUgrc0V2RGFqWC9MTE1SZU1wVG5wTE1uNURuZUJLbW5VRzJpWkdG
Wno3egptYk5WUHVIWm1FaVdLdXlPdmZ6bEw2OSs2N2QrSysxNklQL2NCNWJGSXJBSTQxaFNybGNh
dlQ3ZDV5djEwZS9YSmpEdmVjM2FQU2gvClJKZHpsSG5NUng3em1NY2t5NXpWU0JvRmF6VTZDL0Ji
SksyclltVzNPdmJZWTVmMGxyQ2pSTndoM25Sa0hGL3kyMGIrUUJTZ0hYYlkKSVlWbFpZdXd5NElD
Z2s4QVc2K0VwOE5wQzZVUkIza0NDZUJ2dzRQaG05LzhadlhrSno5NTZxNjJuVFNaZk05U2N0WTFT
eitHejQycwo2VldzNGlUL0pGNXhaaVJFTmEvM1JWNFNnaldRRTRhdFliYWI0ZHprZnNGODVLaWpq
aHF1c3JyampqdVM2ZGF5SHhid2k3LzVtNytwCkl2bGdDbzJNbkdIL1BPK1EzU1V4NVpUTG5IWGxa
ckRleDNFdFhodjVQczhwbHpucldtdk1wdmw5STg5cnVwcWpkREVmVVFHWjV1N28KMFRuNFplQllT
aEs3UXc4OU5QbHBmUEtUbjB5SjJFaU9jK0tKSi9hb3Q5MTM1WU1mL0dCMTg4MDNWNFNLNjBzaGxE
S3I4ZVRONENIQQpLajBybm9RNXhybWMxZXRaU3M0L05qbnJtdVdhaHMvbG9VM29hWnlyY2RMRkx3
cTdVKzZMTUxlcnJyMzIydXI3My85K2RjNDU1d3lmCnV1Sm5kaFpSN3ZGL1loeHlGK3pXU1NUNmtw
ZThaSkEwTW5jYjFFY005akEvVERhNGIzakRHNnFQZi96aktTOExVVmRRYkZtcFd2U1MKVXk1ejFw
V1Q2NktNNHp6bGVoSHY4MXd5a0ZNdWM5YVY2L3JhOVd6a2VVM1hjNVNTOHhITUVUWkVDZUZlbHo0
Z0RGNUUxS2tqMDJUOQpxNy82cTNVa2Zxa2o4VjRkWWM4MnhMaE9jcEdSSTZXT1ZlQWEyOFNOVkhM
Sy9tcDE0VitCajAwa0lhenhSNG9kbkRwMmN1cklQRjVICnpwVTZGT081WW8rSlR4Mk9kSFVrc3hx
MHczZXhDNWg4cEdKWGNQRDlPRy9DVVRzOU0zN3lKMyt5UHZua2src2YvdkNINDV3MjBURVIKSGFR
T003RGtweEZta3hPZE8rN0I0ZGlaRG8za2xIV0VBUjZjRmp0QjZWbFJ5aDlsMFBBYzNxd21sNU0y
bDdPdVNkdGU3ZmhGR3NkNQp5blhmN3ZOU3o3MmNjcG16cnRWa2RwYmZOdUs4WmlQTVVkcXlwd0l5
eXgzaXVRdERnSWxweFA1ZW1QN203R2o3aHArMTNyWHFZdkxQCkpEZnNXZXV3eDA2QkVEZ25zcC9Y
a1RoejF1WW5PcDhKUFFwbmhDZE9mWWtkd1luT2J4U1E1cG9qam5rZHV5RjFaQ2FmcUo2MURvN28K
YkRWMXgyNUVIYnMwYXgwKzhlOFJJYTBPMzQrazVGeC8vZlZMemc4enREcDhZSkxTdU9TSEJmdlFq
Qkd2czVhY2RjM2FsL2I1aXphTwo4NWJyaGswZjd2TVN6NzJjY3BtenJtWWNmSjJOd0VhWm83Umxi
L2FuOVd6TWk1M2R2dWhpamRxUUJIcEFJS2ZzajFzWHExZXZlYzFyCmFxSXVzUnZIcW1YcGN2WFZW
OWRoTTUrYTNiUnBVLzNTbDc1MG9pNE1LeUROdFVjZW1VRlVxWWtxWE9WZ2xHUHFqeVNCcXh3MTNV
OFIKbDcwTzM1ZjZwMy82cDJzbXNSZGZmUEdTL2w5MTFWVjErRVZsVjZ5bTYrMTBaelZqdyt1c0pX
ZGRzL2FsZmY0aWp1TTg1YnBoMDZmNwpmSjdQdlp4eW1iT3VaaHg4bGNBNEJOcXlaeDZRb0xGSUpR
WTRKZElqby9Kd2laWFo1Qy93QjMvd0J4WHZMUkxvZ3NBRER6eVFmREhJCk9rOHdCS0pNdFcyT1Mv
VUpYNThtQU1PMjIyNWIzWExMTFRNMWpkTjJoUG1zcnJ2dXVpb204elBWTlh3eUdlelBQZmZjZEc4
UC96YnIKWi93L3Z2NzFyeWVIZXZxTlB3eE8rVTE1OFl0Zm5CejFaK1hUMU9mcmZBZ3M0ampPVTY0
YnluMjV6L3Z5M0d1NExOS3I4NXBGR3ExOApmVlVCeWNleVNFMU01Q0syY25LNEhXNlFrSzVFQ1NI
eDJQLys3LzhPLyt6bkhoRm9KNGZyVWJleWRJVW9TNFIrL1ptZitaa3M5VTFiCkNSbnZ5UTRQNjF0
dnZYV21lNEtKRkpOMkVqM09LeXh5N05LTUhSS1lBQk5FOVJxM29EeWhoTDMzdmUrdHZ2akZMeTZK
N29VVCtxTWYKL2Vqa3BEOXVmUjdYRFlGRkhNZDV5aldqMEpmN3ZDL1B2VzRrYzdaV25kZk14bS9X
czd1YWo2aUF6RHB5SFp4UGxKL2hRZ1NsODg4Lwp2L3JFSno1Um5YYmFhZFVKSjV5ZG5LWVlBQUFn
QUVsRVFWUlFrZlhZMGs4Q2tkd3hoWG50WisvNjBTdHlWbXk1NVpZVm1WU25LV0Z5ClZmM3QzLzV0
VWhpdXVlYWFOV09TajJyanFVOTlhaFZtSk9rZjcvdFFDQnZNYW12WW5VL1VuYTIzM2pyeEdENkpx
Q2NQUGZSUXlpYzAKL0p1ZiswZGd2WTdqdEhLOTN1N3pXWjk3L1pQWThYcmt2R1k4VHZNNHFxdjV5
UEtaN0R5dXpqcm5Rb0FFZ2VReUlEUmhPTnRXWWR1ZAo4a2t3YVNNSENDRklNWU5oc21McEZ3SE1r
czQ4ODh4QnA5aUNIaTczM0hOUDlhNTN2U3ZsYkJqK2JTTjhabElja2FlU2pFOXp2ZXhVCjNIWFhY
U2tYenY3NzcxL3RzY2NlRTFXRFFzK3VCN3NmZlNqc2FoSkdlTGZkZGtzbWxrOTYwcE1tNmhhN1Vv
UVVqZ2hGZy9QSU4wT28KYmtJOWs0dkcwbjhDNjIwY1o1WHI5WGFmei9yYzY3OEVyOTVENXpXcjg1
bkhyMTNOUjh5RVBvL1JuRU9kSkZRakR2eWpIdldvS3NMKwpWY1NLNWp2eVJvU0RiOHA3UUI2UXBq
QnhJaS9DWC8zVlgxWDRoREM1T082NDQ5Sy81aGhmdXlQQUh4a21mL2pxa1BlRHhIaVhYWFpaCkds
TjJybEErSW9wTXl0SEFiNVBrcitqcXFqNzk2VTlYTDN6aEM3TTFmOGdoaDFRUjRTYmxSSm0yVXJi
MlNmUVlvWUdyeXkrL2ZLSnEKeU0vUmw4SXVEUGw5emo3NzdKUXZKa0p1VDl3MUZKZHdRcS8yMm11
dktxS1NKYllrdlR6bGxGT3FONy81elJQWDV3bmRFRmhQNDVoRApyaG1GTHUvelBqNzN1cEhNeVZ0
MVhqTTVzM21jMGRWOHhFU0U4eGpOT2RhSlNjbmVlKzlkUmJ6bzZsblBlbGIxSjMveUoybW5nd3k1
CjJISGZlT09OU1VGNTN2T2VOOWdaK2VoSFA1cE1TUGp0a1k5ODVCeDdaOVhqRXNCRWpqK2EyT1Mz
Q3dtWWNIUm1WWTlkTFNhYUhEZHAKWVZXeHlYVGRQbi9VVHNza2RhOVVGK1pBK0NXY2Q5NTVrMVEz
OTJQWkhYelp5MTVXSFgvODhWbVZvN2wzdk5YQXB6NzFxU3B5cWxTUgpTeVVwSDY5Ly9ldXJ5T2t4
bFZ4UUxRc1lLTGNzWEdCV2x0dWh2dFgxWW05WGtzdHBPcEN6cm1uYUgvZWNSUi9IbkhMZDFYMWU4
cm1YClV5NXoxald1dks1Mm5QT2ExZWpNLzdmYzh4RUNtbUJTaVZrZGN4bitadjNTTC8xU3VwQzI3
S21Bekg5c3M3WncwVVVYcGNGRThZalEKbWluRE1jNXZ6U1FpY2kwa2UyNTJTeWlZc1B6VVQvMVVV
azZ5ZHNUS1ppTHdhNy8yYThsQit0ZC8vZGVYMU1PRE9QSm5ES0kzTGZseAp6QS8vK0kvL1dMM3Ri
VytySWdGZ09xTjl3ODlMQWFGZWR1QlFkdHZ0amRubHVSekc3Z2tQUVhZQ2Q5MTExN20wVWFMU1NC
aVlkc0M0Cmo5a3RpL0RHMWMvLy9NK1hhSHBoMm1qTDNMeGtmR0ZnTEVoSGM4bDFsL2Q1eWVmZWVw
Wng1elhkM3JRNTV5TjMzSEZIaW9LSjZYTGsKdGlJdWV2WHVkNys3T3VpZ2c5TGNwaTNIS2lEZGp2
dkVyVE9vZDk5OWQ5b0Z3UnlMeVJXK0JEaWVVekM1K3AvLytaKzBlczVuVExVdwo4NGxjREVrYjVU
dEx0d1FZajhoK1hVVmMvK3dkd2ZRT015ajhGMWoxcDdSditIbE96bGpsd0NjSms3OWYrSVZmV0hK
dGJMVi83bk9mCnE3YmFhcXZxZ0FNT1dQTGJ2RDdjZnZ2dHlmUXdNcG5QcTRsZTE4dFlZM2FHck8y
Nzc3N0wrb3BqL2s0NzdaUVdNcGI5dUdCZmxKTHgKTHJCc3BIR2NobS9YOTNtcDU5NTZsbkhuTmRO
SWZwNXpjczlIMkozbjd6L2hzWm5qOERjZnZ4NkNLNkNFdE9WWUg1QThZMWlrRm53QgpNSzFoeHdQ
ekhCeEhDVUdJamZ2Sko1K2MrdkMxcjMwdG1kNDBuNG4vajZJeUtzSkVrVTdieURJQzk5MTNYM0lr
NWdkczhKL3doQ2NzCk8yYlNMekJCWU5jRHhZT1Y4c01PTzJ6U0ttWStub0FIQkQvQWJJd1F2TWdw
TXNzMU5pRmpNUXY3cDMvNnB5b1MzODNjM2xvVjRGaTMKa1FzUCtqUE9PQ09aeGcxendQL284TU1Q
cnc0ODhNQzBhTUhPaXFXZkJCekgxY2VsNi91OGI4KzkxV24xNzFmbk5kMk9TZTc1Q01ySApubnZ1
V1cyeHhSWXByRHgvKzIrNjZhWVUwWEw0U2xWQWhvbjArRE0rSE5pejR6ZkFKUFBLSzYrc0h2dll4
eTdwTWR2UnJIaGEra3VBCnFHUWt5R05sOC9ycnI2OWU5YXBYcFpXQ1gvekZYNXlxMHovNjBZOHFm
SDVZQ2FSY2NNRUZ5WGw5cXNwbU9Ba2xsMGhzYjNyVG0xS3UKR2tKREV5U0J5ZTNQL3V6UHBwV1FI
WGZjc1hyODR4OC9ReXVlT2drQkZENU1OZHNGdVdQWGxGVXB0dDR4MVR2cHBKUGFoL2krWndRYwp4
NTROU0tzN1B2ZGFNS1o0Njd4bUNtZ1pUOGs5SC9uZTk3NlhjazFoamNOOFlMUE5OcXVlL3ZTbnB3
WEo0VzZyZ0F3VDZmRm4vQU9ZCk5HQlB4eVNDS0QzY3ZOalNFa0dKUXBKQ1N2TVpjNjFoUDROMGdQ
OTFSb0FWQVZZSE1Fa2lPUnlGQ0Vlbm5ucnFWSDFDR2NYVzh0dmYKL25iMWlsZThJa1ZLbXFxaVRD
Znh3R0VGeE5JZkFqaWRvL3hSQ01WTENGOGlhbEhZTlNYaUdIOHNKZzN0bXlyd3YySUVITWRpcUNk
dQp5T2ZleE1qU0NjNXJwdU9XNjZ6Yzg1R25QZTFweVVlUmdEVGJiNzk5TXN2R0w1V2dKOE5GQldT
WVNFOC9Fd1huK2M5L2Z0SW0yMWtyCk1jbkNoQWVUSzFiQ01ZSEJCd0Q3ZnlKZXNTUENnOUhTSHdK
a25tWm40UDN2ZjM5eWtxWm5LSkhZUzA2ekM0S0p4b2MrOUtIK1hLQTkKNlpUQTk3Ly8vYVRjb3Bo
aW1rZTBJZkxKRUc2WENIcDhKbXBlVTBqa2RsK1lCZktIZ3hDOStPandyTmw1NTUyYlEzenRnSURq
MkFGMApteXhLd0hsTlVkd2pHOHM5SDhFdGdQSXYvL0l2MVoxMzNwa2lOK0lHUUY2NjRhSVQrakNS
bm43R2wyT1hYWFpKdmNQRUN2TXJCcHFkCkVBcVRVQ0pmWFgzMTFXbjM0OUpMTDYzZStjNTNMbkg0
U1FmNlgrY0VXTVhFR1l0Y0RJUlRwckFLVFhRalF0bmlHTndVVmczWXhab20KNzBOVEI3TFJsRVpl
bXMrVHZ1YXNhOUsyUFg0OEFnU2hZUEtLVW9Iek9XWisyTWtqYTZ4RW9leVNyTFRKSVVTQUNsYkIy
QkVoSDhpOQo5OTViWFhmZGRRdTFpNVZUTG5QV05kNklqVDVxSTQ3amFCSitDNEdjY3BtenJsbEd4
M25OTFBUeW5OdmxmTVFka0R4ak9QZGFHdVdECmh0Z0JhU2FTellNRUlTTDYwRi8rNVY4bUIxOG1y
TTk1em5PU0VxSUoxdHlIWjZJR0NMTkwvUGhtcFlDVHNjVW5oREtoYlBtTlhTMmkKVS96Z0J6OUlF
MGEyTS9IdHNFaGdMUUlFQUNEbStoZSs4SVYwS0N0YzMvem1ONU1QRG9Fcm1vSzhvWGkwZDBQNEhT
VmwyRytrT2NmWApjZ1FjeDNLc2Jha2JBczVydXVIZWJyWEwrWWdLU0hza0Z1UTlabGR0ZXpxeVpq
Tnh2ZUtLSzFKeVFpNkRyT2M0RjVHc2tLMnYvZmJiCkwyVkJ4bGZBMGkwQmxNWVRUend4bWNlMGU4
SVlZb3ZQcWhBcjJQLzZyLythSXB4dHZ2bm15WFNtZld6ZjNoUFppcVIybHFVRUxybmsKa2hTdHJu
M2ZzYktORXppT2VTUVhuRmZCeHdqbi95WktEOG9HSnBvSEgzeHdhaEw1SXZGbHN3dEhEaGZNTm9u
SmIra1BnVDZPWTVkeQozWitScVZKRVA1OTdlVWJFZVUwZWpwUFcwdVY4UkFWazB0SHF3ZkZrd01X
Mm0vQjFKRm9qMmhDT1hKajB0TXU1NTU2Ym5KUFBPdXVzClpCUGVoT1p0SDVQalBia2ZtT2lRREpI
ZG1kLys3ZDlPQ2xCN3RaVys3cmJiYnNrL0JYdjBqVjQyYmRxVVdBMXo0R0hBYmdqL0ZxbGMKZGRW
VnlXY0FKL2lOWElqOGdWMHpmbGZzWVAzOTMvOTlNb1ZDNXB2ZFN2S1NrRWdVYzhsNUZYWklXWmpB
cjRNb2EvaDFZTFpKbTBjZQplV1JxbG40OCt0R1BIaVFweFdhWGFFdVcvaERveXpqMlJhNzdNekwv
M3hPZmUvbEdwT3Q1elVhZXgzUTFIL0d2VGI3N3AxaE5tRlpoCncwM1lWY0puRG9maWJYZms1Uzkv
ZVZyeFpLVnpXRUZwSHpmTGUxYnNNZHRvRXI2OStNVXZUaG5ZK2VQWlRMb0l4Y3FFQ0lYSjh2OEUK
V0cxZUwrVVp6M2hHOGlFZ3R3UnlnTHl4MHQva09NR1VqRWhmbVB1Y2Z2cnB2ZC9SbVhaY0NKUGRM
dnZ2djM4S1A5amNCL3pXdkcvWQo4TjIxMTE1YjdiSEhIc2xNaXMremxpOS8rY3ZKaCtPV1cyNUpJ
Wjl4Tk9jNWdjeXg4MExCeEllTTZzMW53aVBqTE5qMGI5WStlUDdzCkJQb3lqbjJSNjltSjVxM0I1
MTQrbmwzUGF6YjZQS2FMK1lnS1NMNzdwMWhOVEZZb3JHNk9VOWlkNE4rOENwRjErTmNVVERrSUw3
dlcKUk9hMXIzMXRSUWJVZmZiWnB6blYxd1VsOEozdmZDZEZZV3U2ejhyNnh6NzJzWlFOOVk0Nzdx
aSs5YTF2cGNrdTVvRDR1S3pIZ3ZNMgo1aktQZTl6amt1eXpTMGxnQWU0OXdtS3pDMGhrS2t3TktF
d3VVZExad1R6MjJHT1RvdktaejN5bXdpWjMxdkx4ajMrOE91R0VFMUlDCktPcGlwWmE2TWQya1BR
bzdIZ1MwYUQ2ak1Cb3hMNkhwelg5OUdNYyt5WFZ2QnViSEhmRzVsMjlFdXA3WE9JL0pONWJqMXFR
Q01pNHAKanh0SmdGV0RqM3prSXhYWkx5bE11a2hzUm5JbXNqQmpaODVLS3hGNXlJek5KT2lmLy9t
ZjB3NEpFMVNpN2VBNHowcVNaWEVKTUpuRwpyNlhaQmVOS2pqbm1tR1Q2Z3c4Q1NpYktKbkt4WGd1
N0NTU0ViQ3Y3VFhKSXJwbVEyUHdqSWhVbUxidnZ2bnRDZ1JMQURpS0ZPbVl0CmhPTkdBY1FSdlIy
d2d1LzU5L25QZno0cFBrUy9RZ0ZxYk5pNVYxZmJUWjIxWDU0L0dZRytqR05mNUhveWVtV085cmxY
aHZPOFczRWUKTTIvQ0s5UWZmNEEyUkluTEoxNXQrcmNoTHJqRGk0d3duMHRhRDJmNHhQMUxYL3JT
a3UvOVVJWkFJL2U4emxwV3FpdWNyT3RRTXBkVgpIdy8yT3BUU1pkK3YxeS9hMXhxN0RmVXJYL25L
K3VhYmJ4NWNia3p5MDcwUUNVTUgzMDN6SnN6WjZyQ1pIbmxxSkNldFE5Rkp2OFZ1ClN2M0ZMMzR4
dlkvQUJ2VU5OOXlRM3NmRXFkNWhoeDNxdi83cnY2NGpMMGo2anZ2MG9ZY2VTdThYN2IrVjVIS2E2
OGhaMXpUdE4rZjAKYVJ6N0lOY05sejY5bG56dTVaVExuSFgxYVR4eTlzVjVURTZhRDlmVmxqMTNR
SUtHWlRZQ1JFQmk1d1B6RWh4dmNVTEhGK0Q4ODg5UApGZk1iUmZPT2hHSGQvWWUvQjZ2K281SW9O
djRGMDF6MFY3N3lsWlE4N3kxdmVVdEtrRGROSGFYUHdXUUdKM1FDTW1CcXRmWFdXNmNvClUyenZz
L3Z6My8vOTM2bEwrRnMwQlJNb2RpUHduUnFuZlBqREgwN083YUZBakF5WFM4UzdwclIzUU9nTC8r
Z1hPVDlPTysyMDVCOTIKMUZGSHBSM0s0UjJzcGc1ZnV5SFFwM0hzZzF4M013b3J0K3B6YjJVMmkv
aUw4NWp5bzZZQ1VwNzV1bXVSNkJYMzMzLy93THdHUjNNbQpXOWliODRyWkNZVkpWeE0rR05PVWE2
NjVwbUp5aVlPNlpYRUpZRjdYSkUvOHhqZStrUzJETnR2aVRNenhJU0ZEOXlJVVFpbTNDM0pPCnJQ
dkc5S3k1VDJMbllSQnhDc2Y4MkpsSVFTVWFzNngySGUzM0pCZmRmdnZ0azFuak9MazYyZ29JOWFC
OEVKaUNLR3NvSUpUTEw3ODgKK1hEaHAwSnVFQ2ErN2JEQjZTRC82NVJBMStQWU43bnVkREIrM0xq
UHZUNk1RcjQrT0kvSngzTGNtbFJBeGlYbGNTc1NZSUxWVGloRQp5RkV5ZlRlVExtekxXUkVtSTNO
VG1IVGhzSXVmd0N4WnZwdjZmTzJPQUN2NDIyeXpUWXA2UmRqWm5YZmVPU2tPNUtDWnBSQStsc2dv
CitFZ3NTaUhTRnc3MytEMngyMEZ5VUtKYjNYVFRUY2svaHQwUm5NeWJ5VC9YUmM0WFZsTlhVejd1
dXV1dXBDaXdXNEdUTy9mVU9JV0oKYTZQMGs0d1FmeHgyV280Kyt1akI2VVMrSWxyV1lZY2RsdktT
c0ZBUVpsbURuRUtEQTMzVEdZR3V4N0Z2Y3QzWlFMUWE5cm5YZ3JFTwozanFQS1QrSUtpRGxtYSs3
Rm5GQ0o2SU9aamhNdWo3OTZVOVhtTStRR0JHbjVHOS8rOXRwVW9xSlIxTndSQ2ZxanNwSFEyUnhY
eGxICkp0eEVNV2xNcnBqUTRteTlWaVMwdGE0NlIwU290ZHJJK2Z1KysrNWJIWGpnZ1lQckpnZFB1
M3p0YTE5Ym9xenpHeE1aQWpTc1ZENzcKMmM4bWs2dExMNzAwT1pXZmV1cXBTUmxaNmZqMjl6Z3lV
d2oyOE8vLy91L1YrOTczdmlWTzhzMnhLQ0VvSFN3U3NDTTVxL0xZMU90cgpIZ0pkajJQZjVEb1Ax
ZGxxOGJrM0c3KytuZTA4cHZ5SXFJQ1VaNzd1V21UbHRGMkdKMTNoY0p1U0VMYVArZUVQZnpqSUVk
SCszdmVMClIyQ0xMYlpJSy9LczBtTXJUbUZDRzg3UEtSZkY0bDNSOUQxR1dYak1ZeDZUZG02b2ha
RFVLT0ZrdUtlZ21COXh4QkhwZmZNZjl3STcKU0NzVlZ1WSs5S0VQcFF6bEpNczY1NXh6eGpaYlJO
Rm5SMk5jUlhCY1A1U1YrdXIzOHlIUTlUajJUYTduUTNteVduM3VUY2FyNzBjNwpqeWsvUWlvZzVa
bXZ1eGF4SFgvd3dRY0hreTdDNjVKUnVVazZpQjE4NDVEZVhEeXJ2anZ1dUdQejBkY0ZKa0RPRjN3
YW1DZzNtYlJKCmZJY3Z3ZkhISDUvOEMwaTZSNEFDZHNydzZ5QmorcndTWTNhSkV2T3JQL3V6UHh1
WVdPRmZ3VVFGQllUOEovaXpFSUszWFNMNlZMWHIKcnJ1MnYxcnlIazdVK1IvLzhSL1Y1cHR2dnVT
M3RUNnNSOFpyWGZONi9MM3JjZXliWFBkaGpIM3U5V0VVOHZYQmVVdytsdVBXcEFJeQpMaW1QVzVF
QUUwdE1icGhVVXZoamhhTXNoWlU3c21DemhkOHUyTER2dWVlZTdhOTh2NkFFeUFIREpMdHRMclhs
bGxzbWs2eUxMNzQ0CitVRmcvdE11eU1SRkYxM1UvbXBkdk1mdmFidnR0a3M1VWJnZ2ZKMUl2a2ho
RjRPRWcvaHd0TXQzdi92ZFFSNmQ5dmZEN3lkVlBvYlAKOTdNRXBpV2dYQzhuNTNOdk9aTkYvc1o1
VFBuUlV3RXB6M3pkdFloNUJ5RjJHMmRoekcrYXlTaEpDVWVaakpCQnRsRlMxaDJRRFhoQgpLQlBz
YXJVTFlXTFpBZUFmOXRJb25mZ0lNWkZ1RWxlMmoxL1A3N0hoNTE3QVA2cGRpQkNIRS9yVG52YTA5
dGUrbDhCQ0VOam9jdTF6CmJ5SEVkS3hPT284WkMxUFdnMVJBc3VLMHNqWUJKcHkzM25wcjJoMXBm
OCtFaXhWeG9pVloxZ2NCY3Irc1ZuQlMzd2loWFlrNGhaOEcKTnZPVVJpbTc1SkpMcWsyYk5xVk01
L2lGM0h2dnZjbnhuTWhVS08rNzdiYmJhdmo4VFFLZEVsQ3VSK1AzdVRlYXkzcjYxbm5NL0VaVApC
V1IrYkRkTXpmeHhJcndvTnBRVWRqZWUvZXhuSjcrUEs2KzhNam5NTXVtNjdiYmJLaHh1OFFOZ01q
cE9Ib01OQTlFTFhSY0VpQ1ZQCnlHbnN3eW1ZWDVIN2c5MitGNzNvUmVrN2Npcmc5M0h3d1FlbjNC
OVhYWFhWMkU3bHFRTC9rMEJoQXNwMVllQTJWNXlBODVqaXlLdEgKa0NDOWZMUGxXMnhIZ2RrZ2wx
d004b1VYWHBnaUhtSHZUaUVjNitjLy8vbVVFZjI1ejMzdWtuNlFCSTFJUUlTOFc4M3hkc2xKZnBp
SgpRRTdaejFuWFRCZlYwNU54TWljZ3d3RUhIRERvSWZJK0tzY0h1eUE0N2VNellwbU5RRTY1ekZu
WGJGZlZuN09WNis3SElxZGM1cXlyCmV6SjVldUE4SmcvSHRXcHB5NTRLeUZxMC9IMU5BdXhxWUF2
Y3R1c240ZytPeWNNRjVhOHRnTU8vK3prL2dUYnZXWlh2bkhYbHYxSnIKM0tnRWNzcGx6cm8yNm5o
NDNma0o1SlRMbkhYbHY5SnVhblFlVTRaN1cvWlVRTW93dHhVSmRFYWdmY09yZ0hRMkREWThSd0xL
K0J6aApXblV2Q0NqanZSZ0dPekVqZ2JZY2IwZ2ZrRGFBR1ZsNnVnUTJMQUh2b3cwNzlCdm13cFh4
RFRQVUcvWkNsZkVOTy9TZFgvaFBkTjRECk95QUJDVWhBQWhLUWdBUWtJQUVKYkJnQ0tpQWJacWk5
VUFsSVFBSVNrSUFFSkNBQkNYUlBZTVA0Z0hTUDJoNUlRQUlTa0lBRUpDQUIKQ1VoQUF1NkFLQU1T
a0lBRUpDQUJDVWhBQWhLUVFERUNLaURGVU51UUJDUWdBUWxJUUFJU2tJQUVKS0FDb2d4SVFBSVNr
SUFFSkNBQgpDVWhBQXNVSXFJQVVRMjFERXBDQUJDUWdBUWxJUUFJU2tJQUtpRElnQVFsSVFBSVNr
SUFFSkNBQkNSUWpvQUpTRExVTlNVQUNFcENBCkJDUWdBUWxJUUFJcUlNcUFCQ1FnQVFsSVFBSVNr
SUFFSkZDTWdBcElNZFEySkFFSlNFQUNFcENBQkNRZ0FRbW9nQ2dERXBDQUJDUWcKQVFsSVFBSVNr
RUF4QWlvZ3hWRGJrQVFrSUFFSlNFQUNFcENBQkNTZ0FxSU1TRUFDRXBDQUJDUWdBUWxJUUFMRkNL
aUFGRU50UXhLUQpnQVFrSUFFSlNFQUNFcENBQ29neUlBRUpTRUFDRXBDQUJDUWdBUWtVSTZBQ1Vn
eTFEVWxBQWhLUWdBUWtJQUVKU0VBQ0tpREtnQVFrCklBRUpTRUFDRXBDQUJDUlFqSUFLU0RIVU5p
UUJDVWhBQWhLUWdBUWtJQUVKcUlBb0F4S1FnQVFrSUFFSlNFQUNFcEJBTVFJcUlNVlEKMjVBRUpD
QUJDVWhBQWhLUWdBUWtvQUtpREVoQUFoS1FnQVFrSUFFSlNFQUN4UWlvZ0JSRGJVTVNrSUFFSkNB
QkNVaEFBaEtRZ0FxSQpNaUFCQ1VoQUFoS1FnQVFrSUFFSkZDT2dBbElNdFExSlFBSVNrSUFFSkNB
QkNVaEFBaW9neW9BRUpDQUJDVWhBQWhLUWdBUWtVSXlBCkNrZ3gxRFlrQVFsSVFBSVNrSUFFSkNB
QkNhaUFLQU1Ta0lBRUpDQUJDVWhBQWhLUVFERUNLaURGVU51UUJDUWdBUWxJUUFJU2tJQUUKSktB
Q29neElRQUlTa0lBRUpDQUJDVWhBQXNVSXFJQVVRMjFERXBDQUJDUWdBUWxJUUFJU2tJQUtpREln
QVFsSVFBSVNrSUFFSkNBQgpDUlFqb0FKU0RMVU5TVUFDRXBDQUJDUWdBUWxJUUFJcUlNcUFCQ1Fn
QVFsSVFBSVNrSUFFSkZDTWdBcElNZFEySkFFSlNFQUNFcENBCkJDUWdBUW1vZ0NnREVwQ0FCQ1Fn
QVFsSVFBSVNrRUF4QWlvZ3hWRGJrQVFrSUFFSlNFQUNFcENBQkNTZ0FxSU1TRUFDRXBDQUJDUWcK
QVFsSVFBTEZDS2lBRkVOdFF4S1FnQVFrSUFFSlNFQUNFcENBQ29neUlBRUpTRUFDRXBDQUJDUWdB
UWtVSTZBQ1VneTFEVWxBQWhLUQpnQVFrSUFFSlNFQUNLaURLZ0FRa0lBRUpTRUFDRXBDQUJDUlFq
SUFLU0RIVU5pUUJDVWhBQWhLUWdBUWtJQUVKcUlBb0F4S1FnQVFrCklBRUpTRUFDRXBCQU1RSXFJ
TVZRMjVBRUpDQUJDVWhBQWhLUWdBUWtvQUtpREVoQUFoS1FnQVFrSUFFSlNFQUN4UWlvZ0JSRGJV
TVMKa0lBRUpDQUJDVWhBQWhLUWdBcUlNaUFCQ1VoQUFoS1FnQVFrSUFFSkZDT2dBbElNdFExSlFB
SVNrSUFFSkNBQkNVaEFBaW9neW9BRQpKQ0FCQ1VoQUFoS1FnQVFrVUl5QUNrZ3gxRFlrQVFsSVFB
SVNrSUFFSkNBQkNhaUFLQU1Ta0lBRUpDQUJDVWhBQWhLUVFERUNLaURGClVOdVFCQ1FnQVFsSVFB
SVNrSUFFSktBQ29neElRQUlTa0lBRUpDQUJDVWhBQXNVSXFJQVVRMjFERXBDQUJDUWdBUWxJUUFJ
U2tJQUsKaURJZ0FRbElRQUlTa0lBRUpDQUJDUlFqb0FKU0RMVU5TVUFDRXBDQUJDUWdBUWxJUUFJ
cUlNcUFCQ1FnQVFsSVFBSVNrSUFFSkZDTQpnQXBJTWRRMkpBRUpTRUFDRXBDQUJDUWdBUW1vZ0Nn
REVwQ0FCQ1FnQVFsSVFBSVNrRUF4QWlvZ3hWRGJrQVFrSUFFSlNFQUNFcENBCkJDU2dBcUlNU0VB
Q0VwQ0FCQ1FnQVFsSVFBTEZDS2lBRkVOdFF4S1FnQVFrSUFFSlNFQUNFcENBQ29neUlBRUpTRUFD
RXBDQUJDUWcKQVFrVUk2QUNVZ3kxRFVsQUFoS1FnQVFrSUFFSlNFQUNLaURLZ0FRa0lBRUpTRUFD
RXBDQUJDUlFqSUFLU0RIVU5pUUJDVWhBQWhLUQpnQVFrSUFFSnFJQW9BeEtRZ0FRa0lBRUpTRUFD
RXBCQU1RSXFJTVZRMjVBRUpDQUJDVWhBQWhLUWdBUWtvQUtpREVoQUFoS1FnQVFrCklBRUpTRUFD
eFFpb2dCUkRiVU1Ta0lBRUpDQUJDVWhBQWhLUWdBcUlNaUFCQ1VoQUFoS1FnQVFrSUFFSkZDT2dB
bElNdFExSlFBSVMKa0lBRUpDQUJDVWhBQWlvZ3lvQUVKQ0FCQ1VoQUFoS1FnQVFrVUl5QUNrZ3gx
RFlrQVFsSVFBSVNrSUFFSkNBQkNhaUFLQU1Ta0lBRQpKQ0FCQ1VoQUFoS1FRREVDS2lERlVOdVFC
Q1FnQVFsSVFBSVNrSUFFSktBQ29neElRQUlTa0lBRUpDQUJDVWhBQXNVSXFJQVVRMjFECkVwQ0FC
Q1FnQVFsSVFBSVNrSUFLaURJZ0FRbElRQUlTa0lBRUpDQUJDUlFqb0FKU0RMVU5TVUFDRXBDQUJD
UWdBUWxJUUFJcUlNcUEKQkNRZ0FRbElRQUlTa0lBRUpGQ01nQXBJTWRRMkpBRUpTRUFDRXBDQUJD
UWdBUW1vZ0NnREVwQ0FCQ1FnQVFsSVFBSVNrRUF4QWlvZwp4VkRia0FRa0lBRUpTRUFDRXBDQUJD
U2dBcUlNU0VBQ0VwQ0FCQ1FnQVFsSVFBTEZDS2lBRkVOdFF4S1FnQVFrSUFFSlNFQUNFcENBCkNv
Z3lJQUVKU0VBQ0VwQ0FCQ1FnQVFrVUk2QUNVZ3kxRFVsQUFoS1FnQVFrSUFFSlNFQUNLaURLZ0FR
a0lBRUpTRUFDRXBDQUJDUlEKaklBS1NESFVOaVFCQ1VoQUFoS1FnQVFrSUFFSnFJQW9BeEtRZ0FR
a0lBRUpTRUFDRXBCQU1RSXFJTVZRMjVBRUpDQUJDVWhBQWhLUQpnQVFrb0FLaURFaEFBaEtRZ0FR
a0lBRUpTRUFDeFFpb2dCUkRiVU1Ta0lBRUpDQUJDVWhBQWhLUWdBcUlNaUFCQ1VoQUFoS1FnQVFr
CklBRUpGQ09nQWxJTXRRMUpRQUlTa0lBRUpDQUJDVWhBQWlvZ3lvQUVKQ0FCQ1VoQUFoS1FnQVFr
VUl5QUNrZ3gxRFlrQVFsSVFBSVMKa0lBRUpDQUJDYWlBS0FNU2tJQUVKQ0FCQ1VoQUFoS1FRREVD
S2lERlVOdVFCQ1FnQVFsSVFBSVNrSUFFSktBQ29neElRQUlTa0lBRQpKQ0FCQ1VoQUFzVUlxSUFV
UTIxREVwQ0FCQ1FnQVFsSVFBSVNrSUFLaURJZ0FRbElRQUlTa0lBRUpDQUJDUlFqb0FKU0RMVU5T
VUFDCkVwQ0FCQ1FnQVFsSVFBSXFJTXFBQkNRZ0FRbElRQUlTa0lBRUpGQ01nQXBJTWRRMkpBRUpT
RUFDRXBDQUJDUWdBUW1vZ0NnREVwQ0EKQkNRZ0FRbElRQUlTa0VBeEFpb2d4VkRia0FRa0lBRUpT
RUFDRXBDQUJDU2dBcUlNU0VBQ0VwQ0FCQ1FnQVFsSVFBTEZDS2lBRkVOdApReEtRZ0FRa0lBRUpT
RUFDRXBDQUNvZ3lJQUVKU0VBQ0VwQ0FCQ1FnQVFrVUk2QUNVZ3kxRFVsQUFoS1FnQVFrSUFFSlNF
QUNLaURLCmdBUWtJQUVKU0VBQ0VwQ0FCQ1JRaklBS1NESFVOaVFCQ1VoQUFoS1FnQVFrSUFFSnFJ
QW9BeEtRZ0FRa0lBRUpTRUFDRXBCQU1RSXEKSU1WUTI1QUVKQ0FCQ1VoQUFoS1FnQVFrb0FLaURF
aEFBaEtRZ0FRa0lBRUpTRUFDeFFpb2dCUkRiVU1Ta0lBRUpDQUJDVWhBQWhLUQpnQXFJTWlBQkNV
aEFBaEtRZ0FRa0lBRUpGQ09nQWxJTXRRMUpRQUlTa0lBRUpDQUJDVWhBQWlvZ3lvQUVKQ0FCQ1Vo
QUFoS1FnQVFrClVJeUFDa2d4MURZa0FRbElRQUlTa0lBRUpDQUJDYWlBS0FNU2tJQUVKQ0FCQ1Vo
QUFoS1FRREVDS2lERlVOdVFCQ1FnQVFsSVFBSVMKa0lBRUpLQUNvZ3hJUUFJU2tJQUVKQ0FCQ1Vo
QUFzVUlxSUFVUTIxREVwQ0FCQ1FnQVFsSVFBSVNrSUFLaURJZ0FRbElRQUlTa0lBRQpKQ0FCQ1JR
am9BSlNETFVOU1VBQ0VwQ0FCQ1FnQVFsSVFBSXFJTXFBQkNRZ0FRbElRQUlTa0lBRUpGQ01nQXBJ
TWRRMkpBRUpTRUFDCkVwQ0FCQ1FnQVFtb2dDZ0RFcENBQkNRZ0FRbElRQUlTa0VBeEFpb2d4VkRi
a0FRa0lBRUpTRUFDRXBDQUJDU2dBcUlNU0VBQ0VwQ0EKQkNRZ0FRbElRQUxGQ0tpQUZFTnRReEtR
Z0FRa0lBRUpTRUFDRXBDQUNvZ3lJQUVKU0VBQ0VwQ0FCQ1FnQVFrVUk2QUNVZ3kxRFVsQQpBaEtR
Z0FRa0lBRUpTRUFDS2lES2dBUWtJQUVKU0VBQ0VwQ0FCQ1JRaklBS1NESFVOaVFCQ1VoQUFoS1Fn
QVFrSUFFSnFJQW9BeEtRCmdBUWtJQUVKU0VBQ0VwQkFNUUlxSU1WUTI1QUVKQ0FCQ1VoQUFoS1Fn
QVFrb0FLaURFaEFBaEtRZ0FRa0lBRUpTRUFDeFFpb2dCUkQKYlVNU2tJQUVKQ0FCQ1VoQUFoS1Fn
QXFJTWlBQkNVaEFBaEtRZ0FRa0lBRUpGQ09nQWxJTXRRMUpRQUlTa0lBRUpDQUJDVWhBQWlvZwp5
b0FFSkNBQkNVaEFBaEtRZ0FRa1VJeUFDa2d4MURZa0FRbElRQUlTa0lBRUpDQUJDYWlBS0FNU2tJ
QUVKQ0FCQ1VoQUFoS1FRREVDCktpREZVTnVRQkNRZ0FRbElRQUlTa0lBRUpLQUNvZ3hJUUFJU2tJ
QUVKQ0FCQ1VoQUFzVUlxSUFVUTIxREVwQ0FCQ1FnQVFsSVFBSVMKa0lBS2lESWdBUWxJUUFJU2tJ
QUVKQ0FCQ1JRam9BSlNETFVOU1VBQ0VwQ0FCQ1FnQVFsSVFBSXFJTXFBQkNRZ0FRbElRQUlTa0lB
RQpKRkNNZ0FwSU1kUTJKQ25lZGlRQUFBVVBTVVJCVkFFSlNFQUNFcENBQkNRZ0FRbW9nQ2dERXBD
QUJDUWdBUWxJUUFJU2tFQXhBaW9nCnhWRGJrQVFrSUFFSlNFQUNFcENBQkNTZ0FxSU1TRUFDRXBD
QUJDUWdBUWxJUUFMRkNLaUFGRU50UXhLUWdBUWtJQUVKU0VBQ0VwQ0EKQ29neUlBRUpTRUFDRXBD
QUJDUWdBUWtVSTZBQ1VneTFEVWxBQWhLUWdBUWtJQUVKU0VBQ0tpREtnQVFrSUFFSlNFQUNFcENB
QkNSUQpqSUFLU0RIVU5pUUJDVWhBQWhLUWdBUWtJQUVKcUlBb0F4S1FnQVFrSUFFSlNFQUNFcEJB
TVFJcUlNVlEyNUFFSkNBQkNVaEFBaEtRCmdBUWtvQUtpREVoQUFoS1FnQVFrSUFFSlNFQUN4UWlv
Z0JSRGJVTVNrSUFFSkNBQkNVaEFBaEtRZ0FxSU1pQUJDVWhBQWhLUWdBUWsKSUFFSkZDT2dBbElN
dFExSlFBSVNrSUFFSkNBQkNVaEFBaW9neW9BRUpDQUJDVWhBQWhLUWdBUWtVSXlBQ2tneDFEWWtB
UWxJUUFJUwprSUFFSkNBQkNhaUFLQU1Ta0lBRUpDQUJDVWhBQWhLUVFERUNLaURGVU51UUJDUWdB
UWxJUUFJU2tJQUVKS0FDb2d4SVFBSVNrSUFFCkpDQUJDVWhBQXNVSXFJQVVRMjFERXBDQUJDUWdB
UWxJUUFJU2tJQUtpRElnQVFsSVFBSVNrSUFFSkNBQkNSUWpvQUpTRExVTlNVQUMKRXBDQUJDUWdB
UWxJUUFJcUlNcUFCQ1FnQVFsSVFBSVNrSUFFSkZDTWdBcElNZFEySkFFSlNFQUNFcENBQkNRZ0FR
bW9nQ2dERXBDQQpCQ1FnQVFsSVFBSVNrRUF4QWlvZ3hWRGJrQVFrSUFFSlNFQUNFcENBQkNTZ0Fx
SU1TRUFDRXBDQUJDUWdBUWxJUUFMRkNLaUFGRU50ClF4S1FnQVFrSUFFSlNFQUNFcENBQ29neUlB
RUpTRUFDRXBDQUJDUWdBUWtVSTZBQ1VneTFEVWxBQWhLUWdBUWtJQUVKU0VBQ0tpREsKZ0FRa0lB
RUpTRUFDRXBDQUJDUlFqSUFLU0RIVU5pUUJDVWhBQWhLUWdBUWtJQUVKcUlBb0F4S1FnQVFrSUFF
SlNFQUNFcEJBTVFJcQpJTVZRMjVBRUpDQUJDVWhBQWhLUWdBUWtvQUtpREVoQUFoS1FnQVFrSUFF
SlNFQUN4UWlvZ0JSRGJVTVNrSUFFSkNBQkNVaEFBaEtRCmdBcUlNaUFCQ1VoQUFoS1FnQVFrSUFF
SkZDT2dBbElNdFExSlFBSVNrSUFFSkNBQkNVaEFBaW9neW9BRUpDQUJDVWhBQWhLUWdBUWsKVUl5
QUNrZ3gxRFlrQVFsSVFBSVNrSUFFSkNBQkNhaUFLQU1Ta0lBRUpDQUJDVWhBQWhLUVFERUNLaURG
VU51UUJDUWdBUWxJUUFJUwprSUFFSktBQ29neElRQUlTa0lBRUpDQUJDVWhBQXNVSXFJQVVRMjFE
RXBDQUJDUWdBUWxJUUFJU2tJQUtpRElnQVFsSVFBSVNrSUFFCkpDQUJDUlFqb0FKU0RMVU5TVUFD
RXBDQUJDUWdBUWxJUUFJcUlNcUFCQ1FnQVFsSVFBSVNrSUFFSkZDTWdBcElNZFEySkFFSlNFQUMK
RXBDQUJDUWdBUW1vZ0NnREVwQ0FCQ1FnQVFsSVFBSVNrRUF4QWlvZ3hWRGJrQVFrSUFFSlNFQUNF
cENBQkNTZ0FxSU1TRUFDRXBDQQpCQ1FnQVFsSVFBTEZDS2lBRkVOdFF4S1FnQVFrSUFFSlNFQUNF
cENBQ29neUlBRUpTRUFDRXBDQUJDUWdBUWtVSTZBQ1VneTFEVWxBCkFoS1FnQVFrSUFFSlNFQUNL
aURLZ0FRa0lBRUpTRUFDRXBDQUJDUlFqSUFLU0RIVU5pUUJDVWhBQWhLUWdBUWtJQUVKcUlBb0F4
S1EKZ0FRa0lBRUpTRUFDRXBCQU1RSXFJTVZRMjVBRUpDQUJDVWhBQWhLUWdBUWtvQUtpREVoQUFo
S1FnQVFrSUFFSlNFQUN4UWlvZ0JSRApiVU1Ta0lBRUpDQUJDVWhBQWhLUWdBcUlNaUFCQ1VoQUFo
S1FnQVFrSUFFSkZDT2dBbElNdFExSlFBSVNrSUFFSkNBQkNVaEFBaW9nCnlvQUVKQ0FCQ1VoQUFo
S1FnQVFrVUl5QUNrZ3gxRFlrQVFsSVFBSVNrSUFFSkNBQkNhaUFLQU1Ta0lBRUpDQUJDVWhBQWhL
UVFERUMKL3dlZE55NmlmRWNkSFFBQUFBQkpSVTVFcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76852</attachid>
            <date>2010-12-17 00:11:30 -0800</date>
            <delta_ts>2010-12-17 11:29:05 -0800</delta_ts>
            <desc>Part 4: Layout and rendering</desc>
            <filename>text-emphasis_r27.diff</filename>
            <type>text/plain</type>
            <size>313920</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDIzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMTItMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXlv
dXQgYW5kIHJlbmRlcmluZyBvZiBDU1MgdGV4dC1lbXBoYXNpcworICAgICAgICBGaW5hbCBwYXJ0
IG9mIDxyZGFyOi8vcHJvYmxlbS83NzIwMzAwPiBTdXBwb3J0IHRoZSBDU1MzIHRleHQtZW1waGFz
aXMgcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ4NTM5CisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvZW1waGFzaXMuaHRtbAorCisgICAgICAgIEVt
cGhhc2lzIG1hcmtzIGJlaGF2ZSBsaWtlIHRoZXkgYXJlIHN0dWNrIGp1c3QgYWJvdmUgdGhlIGFz
Y2VuZGVyIChvciBqdXN0IGJlbG93IHRoZQorICAgICAgICBkZXNjZW5kZXIpLiBUaGV5IG9jY3Vw
eSBzcGFjZSBpbiB0aGUgbGVhZGluZyBhbmQgaW4gcGFkZGluZywgYW5kIG9ubHkgZ3JvdyB0aGUg
bGluZSBzcGFjZQorICAgICAgICBpZiB0aGV5IGNhbm5vdCBmaXQuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94
OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbik6IFJlbmFtZWQgdGhlIGNvbnRhaW5zUnVieSBw
YXJhbWV0ZXIgdG8KKyAgICAgICAgaGFzQW5ub3RhdGlvbnNCZWZvcmUsIGFuZCBhZGRlZCBoYXNB
bm5vdGF0aW9uc0FmdGVyLiBMaW5lIGFubm90YXRpb25zIGluY2x1ZGUgcnVieSBhbmQgdGV4dCBl
bXBoYXNpcworICAgICAgICBtYXJrcy4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyk6IEFkZGVkIG92ZXJmbG93IGZyb20gZW1waGFzaXMg
bWFya3MuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlckFubm90
YXRpb25BZGp1c3RtZW50KTogUmVtYW5lZCBjb21wdXRlQmxvY2tEaXJlY3Rpb25SdWJ5QWRqdXN0
bWVudCgpCisgICAgICAgIHRvIHRoaXMgYW5kIGFkZGVkIGFkanVzdG1lbnQgZm9yIHRleHQgZW1w
aGFzaXMgbWFya3MuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlVW5k
ZXJBbm5vdGF0aW9uQWRqdXN0bWVudCk6IEFkZGVkLiBTaW1pbGFyIHRvIHRoZSBwcmV2aW91cyBm
dW5jdGlvbiwKKyAgICAgICAgYnV0IGZvciBhbm5vdGF0aW9ucyB1bmRlciB0aGUgZ2x5cGhzLiBU
aGVzZSBjYW4gb25seSBiZSB0ZXh0IGVtcGhhc2lzIG1hcmtzLgorICAgICAgICAqIHJlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRUZXh0V2l0aFNoYWRvd3MpOiBQYWludCBlbXBoYXNp
cyBtYXJrcy4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50KTogRGl0dG8u
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOiBHZW5lcmFsaXpl
ZCB0aGUgY29kZSB0aGF0IGFkanVzdHMgdGhlIGxhc3QgbGluZSBmb3IKKyAgICAgICAgcnVieSBp
biBmbGlwcGVkIHdyaXRpbmcgbW9kZSB0byBhbHNvIGFkanVzdCB0aGUgbGFzdCBsaW5lIGZvciBl
bXBoYXNpcyBtYXJrcyB1bmRlciB0aGUgbGluZSBpbiBub24tCisgICAgICAgIGZsaXBwZWQgd3Jp
dGluZyBtb2RlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Db2xvcik6IEFkZGVkIHRoaXMgaGVs
cGVyIG1ldGhvZCB3aGljaCBnZW5lcmFsaXplcyBzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKS4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KTogTW92ZWQgbW9zdCBvZiB0aGUgY29kZSB0byBzZWxlY3Rpb25Db2xvcigpLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcik6IEFkZGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpS
b290SW5saW5lQm94KTogVXBkYXRlZCBpbml0aWFsaXphdGlvbiBmb3IgbmV3IG1lbWJlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9ja0RpcmVjdGlv
bik6IFVwZGF0ZSBuZXcgbWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6
OmJlZm9yZUFubm90YXRpb25zQWRqdXN0bWVudCk6IFJlbmFtZWQgYmxvY2tEaXJlY3Rpb25SdWJ5
QWRqdXN0bWVudCgpIHRvIHRoaXMKKyAgICAgICAgYW5kIGV4dGVuZGVkIHRvIGRlYWwgd2l0aCBh
bm5vdGF0aW9ucyBvdmVyIGFuZCB1bmRlciB0aGUgbGluZSBhbmQgdGhlIHByZXZpb3VzIGxpbmUu
IElmIGJvdGggbGluZXMgaGF2ZQorICAgICAgICBhbm5vdGF0aW9ucyBpbnRvIHRoZSBzcGFjZSBi
ZXR3ZWVuIHRoZSBsaW5lcywgbWFpbnRhaW4gc2VwYXJhdGlvbiBzbyB0aGF0IHRoZSBhbm5vdGF0
aW9ucyBkbyBub3Qgb3ZlcmxhcC4KKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5o
OgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6aGFzQW5ub3RhdGlvbnNCZWZvcmUp
OiBBZGRlZCB0aGlzIGFjY2Vzc29yLgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
aGFzQW5ub3RhdGlvbnNBZnRlcik6IERpdHRvLgorCiAyMDEwLTEyLTE2ICBLb2FuLVNpbiBUYW4g
IDxrb2Fuc2luLnRhbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11
cmEuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNzQyMzMp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTcyLDcgKzU3Miw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hI
ZWkKIH0KIAogdm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihp
bnQgdG9wLCBpbnQgbWF4SGVpZ2h0LCBpbnQgbWF4QXNjZW50LCBib29sIHN0cmljdE1vZGUsIGlu
dCYgbGluZVRvcCwgaW50JiBsaW5lQm90dG9tLCBib29sJiBzZXRMaW5lVG9wLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGxpbmVUb3BJbmNsdWRp
bmdNYXJnaW5zLCBpbnQmIGxpbmVCb3R0b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBjb250YWlu
c1J1YnksIEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbGluZVRvcEluY2x1ZGluZ01hcmdpbnMsIGlu
dCYgbGluZUJvdHRvbUluY2x1ZGluZ01hcmdpbnMsIGJvb2wmIGhhc0Fubm90YXRpb25zQmVmb3Jl
LCBib29sJiBoYXNBbm5vdGF0aW9uc0FmdGVyLCBGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlKQog
ewogICAgIGlmIChpc1Jvb3RJbmxpbmVCb3goKSkKICAgICAgICAgc2V0TG9naWNhbFRvcCh0b3Ag
KyBtYXhBc2NlbnQgLSBiYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSkpOyAvLyBQbGFjZSBv
dXIgcm9vdCBib3guCkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwbGFj
ZUJveGVzSW5CbG9ja0RpcgogICAgICAgICBib29sIGlzSW5saW5lRmxvdyA9IGN1cnItPmlzSW5s
aW5lRmxvd0JveCgpOwogICAgICAgICBpZiAoaXNJbmxpbmVGbG93KQogICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8SW5saW5lRmxvd0JveCo+KGN1cnIpLT5wbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlv
bih0b3AsIG1heEhlaWdodCwgbWF4QXNjZW50LCBzdHJpY3RNb2RlLCBsaW5lVG9wLCBsaW5lQm90
dG9tLCBzZXRMaW5lVG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lVG9wSW5jbHVkaW5nTWFyZ2lu
cywgbGluZUJvdHRvbUluY2x1ZGluZ01hcmdpbnMsIGNvbnRhaW5zUnVieSwgYmFzZWxpbmVUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGluZVRvcEluY2x1ZGluZ01hcmdpbnMsIGxpbmVCb3R0b21J
bmNsdWRpbmdNYXJnaW5zLCBoYXNBbm5vdGF0aW9uc0JlZm9yZSwgaGFzQW5ub3RhdGlvbnNBZnRl
ciwgYmFzZWxpbmVUeXBlKTsKIAogICAgICAgICBib29sIGNoaWxkQWZmZWN0c1RvcEJvdHRvbVBv
cyA9IHRydWU7CiAgICAgICAgIGlmIChjdXJyLT5sb2dpY2FsVG9wKCkgPT0gUG9zaXRpb25Ub3Ap
CkBAIC02MzAsNyArNjMwLDExIEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxv
Y2tEaXIKICAgICAgICAgICAgICAgICAvLyBUcmVhdCB0aGUgbGVhZGluZyBvbiB0aGUgZmlyc3Qg
YW5kIGxhc3QgbGluZXMgb2YgcnVieSBydW5zIGFzIG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBvdmVy
YWxsIGxpbmVUb3AvbGluZUJvdHRvbS4KICAgICAgICAgICAgICAgICAvLyBSZWFsbHkgdGhpcyBp
cyBhIHdvcmthcm91bmQgaGFjayBmb3IgdGhlIGZhY3QgdGhhdCBydWJ5IHNob3VsZCBoYXZlIGJl
ZW4gZG9uZSBhcyBsaW5lIGxheW91dCBhbmQgbm90IGRvbmUgdXNpbmcKICAgICAgICAgICAgICAg
ICAvLyBpbmxpbmUtYmxvY2suCi0gICAgICAgICAgICAgICAgY29udGFpbnNSdWJ5ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKCktPnN0eWxlKCktPmlzRmxpcHBlZExpbmVz
V3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaGFzQW5ub3RhdGlvbnNCZWZvcmUg
PSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaGFzQW5u
b3RhdGlvbnNBZnRlciA9IHRydWU7CisKICAgICAgICAgICAgICAgICBSZW5kZXJSdWJ5UnVuKiBy
dWJ5UnVuID0gc3RhdGljX2Nhc3Q8UmVuZGVyUnVieVJ1bio+KGN1cnItPnJlbmRlcmVyKCkpOwog
ICAgICAgICAgICAgICAgIGlmIChSZW5kZXJSdWJ5QmFzZSogcnVieUJhc2UgPSBydWJ5UnVuLT5y
dWJ5QmFzZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGludCBib3R0b21SdWJ5QmFzZUxlYWRp
bmcgPSAoY3Vyci0+bG9naWNhbEhlaWdodCgpIC0gcnVieUJhc2UtPmxvZ2ljYWxCb3R0b20oKSkg
KyBydWJ5QmFzZS0+bG9naWNhbEhlaWdodCgpIC0gKHJ1YnlCYXNlLT5sYXN0Um9vdEJveCgpID8g
cnVieUJhc2UtPmxhc3RSb290Qm94KCktPmxpbmVCb3R0b20oKSA6IDApOwpAQCAtNjM5LDcgKzY0
MywxNCBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyCiAgICAgICAg
ICAgICAgICAgICAgIGJveEhlaWdodCAtPSAodG9wUnVieUJhc2VMZWFkaW5nICsgYm90dG9tUnVi
eUJhc2VMZWFkaW5nKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChjdXJyLT5pc0lubGluZVRleHRCb3goKSAmJiBjdXJyLT5y
ZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPnRleHRFbXBoYXNpc01hcmsoKSAhPSBUZXh0
RW1waGFzaXNNYXJrTm9uZSkgeworICAgICAgICAgICAgICAgIGJvb2wgZW1waGFzaXNNYXJrSXNP
dmVyID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT50ZXh0RW1waGFzaXNQ
b3NpdGlvbigpID09IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcjsKKyAgICAgICAgICAgICAgICBp
ZiAoZW1waGFzaXNNYXJrSXNPdmVyICE9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+aXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICBo
YXNBbm5vdGF0aW9uc0JlZm9yZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBoYXNBbm5vdGF0aW9uc0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KwogICAgICAgICAgICAgaWYgKCFzZXRMaW5lVG9wKSB7CiAgICAgICAgICAgICAgICAgc2V0TGlu
ZVRvcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgbGluZVRvcCA9IG5ld0xvZ2ljYWxUb3A7CkBA
IC03MTYsMzggKzcyNyw0NyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmFkZEJveFNoYWRvd1Zpc3Vh
bE92CiAKIHZvaWQgSW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KGNvbnN0
IElubGluZVRleHRCb3gqIHRleHRCb3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFw
JiB0ZXh0Qm94RGF0YU1hcCwgSW50UmVjdCYgbG9naWNhbFZpc3VhbE92ZXJmbG93KQogewotICAg
IGludCBzdHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVuZGVyZXIoKS0+
c3R5bGUoKS0+dGV4dFN0cm9rZVdpZHRoKCkgLyAyLjBmKSk7CisgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gcmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpOworICAgIGludCBzdHJva2VPdmVy
ZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoc3R5bGUtPnRleHRTdHJva2VXaWR0aCgpIC8g
Mi4wZikpOwogCiAgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXA6Oml0ZXJhdG9y
IGl0ID0gdGV4dEJveERhdGFNYXAuZmluZCh0ZXh0Qm94KTsKICAgICBHbHlwaE92ZXJmbG93KiBn
bHlwaE92ZXJmbG93ID0gaXQgPT0gdGV4dEJveERhdGFNYXAuZW5kKCkgPyAwIDogJml0LT5zZWNv
bmQuc2Vjb25kOwogCi0gICAgYm9vbCBpc0ZsaXBwZWRMaW5lID0gcmVuZGVyZXIoKS0+c3R5bGUo
bV9maXJzdExpbmUpLT5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCk7CisgICAgYm9vbCBpc0Zs
aXBwZWRMaW5lID0gc3R5bGUtPmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKTsKIAogICAgIGlu
dCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlwaE92
ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogMDsKICAgICBpbnQgYm90dG9t
R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxv
dy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IDA7CiAgICAgaW50IGxlZnRHbHlwaEVk
Z2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVmdCA6IDA7CiAgICAgaW50IHJp
Z2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMDsK
LSAgICAKKwogICAgIGludCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9w
R2x5cGhFZGdlOwogICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cg
KyBib3R0b21HbHlwaEVkZ2U7CiAgICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92
ZXJmbG93IC0gbGVmdEdseXBoRWRnZTsKICAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ry
b2tlT3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKIAorICAgIGlmIChzdHlsZS0+dGV4dEVtcGhh
c2lzTWFyaygpICE9IFRleHRFbXBoYXNpc01hcmtOb25lKSB7CisgICAgICAgIGludCBlbXBoYXNp
c01hcmtIZWlnaHQgPSBzdHlsZS0+Zm9udCgpLmVtcGhhc2lzTWFya0hlaWdodChzdHlsZS0+dGV4
dEVtcGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgaWYgKHN0eWxlLT50ZXh0RW1waGFzaXNQ
b3NpdGlvbigpID09IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKKyAgICAgICAgICAgIHRvcEds
eXBoT3ZlcmZsb3cgPSBtaW4odG9wR2x5cGhPdmVyZmxvdywgLWVtcGhhc2lzTWFya0hlaWdodCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBtYXgoYm90
dG9tR2x5cGhPdmVyZmxvdywgZW1waGFzaXNNYXJrSGVpZ2h0KTsKKyAgICB9CisKICAgICAvLyBJ
ZiBsZXR0ZXItc3BhY2luZyBpcyBuZWdhdGl2ZSwgd2Ugc2hvdWxkIGZhY3RvciB0aGF0IGludG8g
cmlnaHQgbGF5b3V0IG92ZXJmbG93LiAoRXZlbiBpbiBSVEwsIGxldHRlci1zcGFjaW5nIGlzCiAg
ICAgLy8gYXBwbGllZCB0byB0aGUgcmlnaHQsIHNvIHRoaXMgaXMgbm90IGFuIGlzc3VlIHdpdGgg
bGVmdCBvdmVyZmxvdy4KLSAgICBpbnQgbGV0dGVyU3BhY2luZyA9IG1pbigwLCAoaW50KXJlbmRl
cmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Zm9udCgpLmxldHRlclNwYWNpbmcoKSk7CisgICAg
aW50IGxldHRlclNwYWNpbmcgPSBtaW4oMCwgKGludClzdHlsZS0+Zm9udCgpLmxldHRlclNwYWNp
bmcoKSk7CiAgICAgcmlnaHRHbHlwaE92ZXJmbG93IC09IGxldHRlclNwYWNpbmc7CiAKICAgICBp
bnQgdGV4dFNoYWRvd0xvZ2ljYWxUb3A7CiAgICAgaW50IHRleHRTaGFkb3dMb2dpY2FsQm90dG9t
OwotICAgIHJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Z2V0VGV4dFNoYWRvd0Jsb2Nr
RGlyZWN0aW9uRXh0ZW50KHRleHRTaGFkb3dMb2dpY2FsVG9wLCB0ZXh0U2hhZG93TG9naWNhbEJv
dHRvbSk7CisgICAgc3R5bGUtPmdldFRleHRTaGFkb3dCbG9ja0RpcmVjdGlvbkV4dGVudCh0ZXh0
U2hhZG93TG9naWNhbFRvcCwgdGV4dFNoYWRvd0xvZ2ljYWxCb3R0b20pOwogICAgIAogICAgIGlu
dCBjaGlsZE92ZXJmbG93TG9naWNhbFRvcCA9IG1pbih0ZXh0U2hhZG93TG9naWNhbFRvcCArIHRv
cEdseXBoT3ZlcmZsb3csIHRvcEdseXBoT3ZlcmZsb3cpOwogICAgIGludCBjaGlsZE92ZXJmbG93
TG9naWNhbEJvdHRvbSA9IG1heCh0ZXh0U2hhZG93TG9naWNhbEJvdHRvbSArIGJvdHRvbUdseXBo
T3ZlcmZsb3csIGJvdHRvbUdseXBoT3ZlcmZsb3cpOwogICAgCiAgICAgaW50IHRleHRTaGFkb3dM
b2dpY2FsTGVmdDsKICAgICBpbnQgdGV4dFNoYWRvd0xvZ2ljYWxSaWdodDsKLSAgICByZW5kZXJl
cigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmdldFRleHRTaGFkb3dJbmxpbmVEaXJlY3Rpb25FeHRl
bnQodGV4dFNoYWRvd0xvZ2ljYWxMZWZ0LCB0ZXh0U2hhZG93TG9naWNhbFJpZ2h0KTsKKyAgICBz
dHlsZS0+Z2V0VGV4dFNoYWRvd0lubGluZURpcmVjdGlvbkV4dGVudCh0ZXh0U2hhZG93TG9naWNh
bExlZnQsIHRleHRTaGFkb3dMb2dpY2FsUmlnaHQpOwogICAgCiAgICAgaW50IGNoaWxkT3ZlcmZs
b3dMb2dpY2FsTGVmdCA9IG1pbih0ZXh0U2hhZG93TG9naWNhbExlZnQgKyBsZWZ0R2x5cGhPdmVy
ZmxvdywgbGVmdEdseXBoT3ZlcmZsb3cpOwogICAgIGludCBjaGlsZE92ZXJmbG93TG9naWNhbFJp
Z2h0ID0gbWF4KHRleHRTaGFkb3dMb2dpY2FsUmlnaHQgKyByaWdodEdseXBoT3ZlcmZsb3csIHJp
Z2h0R2x5cGhPdmVyZmxvdyk7CkBAIC0xMjM5LDcgKzEyNTksNyBAQCB2b2lkIElubGluZUZsb3dC
b3g6OmNsZWFyVHJ1bmNhdGlvbigpCiAgICAgICAgIGJveC0+Y2xlYXJUcnVuY2F0aW9uKCk7CiB9
CiAKLWludCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlQmxvY2tEaXJlY3Rpb25SdWJ5QWRqdXN0bWVu
dChpbnQgYWxsb3dlZFBvc2l0aW9uKSBjb25zdAoraW50IElubGluZUZsb3dCb3g6OmNvbXB1dGVP
dmVyQW5ub3RhdGlvbkFkanVzdG1lbnQoaW50IGFsbG93ZWRQb3NpdGlvbikgY29uc3QKIHsKICAg
ICBpbnQgcmVzdWx0ID0gMDsKICAgICBmb3IgKElubGluZUJveCogY3VyciA9IGZpcnN0Q2hpbGQo
KTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRPbkxpbmUoKSkgewpAQCAtMTI0Nyw3ICsxMjY3LDcg
QEAgaW50IElubGluZUZsb3dCb3g6OmNvbXB1dGVCbG9ja0RpcmVjdGlvbgogICAgICAgICAgICAg
Y29udGludWU7IC8vIFBvc2l0aW9uZWQgcGxhY2Vob2xkZXJzIGRvbid0IGFmZmVjdCBjYWxjdWxh
dGlvbnMuCiAgICAgICAgIAogICAgICAgICBpZiAoY3Vyci0+aXNJbmxpbmVGbG93Qm94KCkpCi0g
ICAgICAgICAgICByZXN1bHQgPSBtYXgocmVzdWx0LCBzdGF0aWNfY2FzdDxJbmxpbmVGbG93Qm94
Kj4oY3VyciktPmNvbXB1dGVCbG9ja0RpcmVjdGlvblJ1YnlBZGp1c3RtZW50KGFsbG93ZWRQb3Np
dGlvbikpOworICAgICAgICAgICAgcmVzdWx0ID0gbWF4KHJlc3VsdCwgc3RhdGljX2Nhc3Q8SW5s
aW5lRmxvd0JveCo+KGN1cnIpLT5jb21wdXRlT3ZlckFubm90YXRpb25BZGp1c3RtZW50KGFsbG93
ZWRQb3NpdGlvbikpOwogICAgICAgICAKICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVyKCktPmlz
UmVwbGFjZWQoKSAmJiBjdXJyLT5yZW5kZXJlcigpLT5pc1J1YnlSdW4oKSkgewogICAgICAgICAg
ICAgUmVuZGVyUnVieVJ1biogcnVieVJ1biA9IHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4qPihj
dXJyLT5yZW5kZXJlcigpKTsKQEAgLTEyNjksNiArMTI4OSw0NSBAQCBpbnQgSW5saW5lRmxvd0Jv
eDo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbWF4KHJl
c3VsdCwgYm90dG9tT2ZMYXN0UnVieVRleHRMaW5lIC0gYWxsb3dlZFBvc2l0aW9uKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJyLT5pc0lubGluZVRleHRCb3go
KSkgeworICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gY3Vyci0+cmVuZGVyZXIoKS0+
c3R5bGUobV9maXJzdExpbmUpOworICAgICAgICAgICAgaWYgKHN0eWxlLT50ZXh0RW1waGFzaXNN
YXJrKCkgIT0gVGV4dEVtcGhhc2lzTWFya05vbmUgJiYgc3R5bGUtPnRleHRFbXBoYXNpc1Bvc2l0
aW9uKCkgPT0gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFzdHlsZS0+aXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGludCB0b3BPZkVtcGhhc2lzTWFyayA9IGN1cnItPmxvZ2ljYWxUb3AoKSAtIHN0eWxlLT5m
b250KCkuZW1waGFzaXNNYXJrSGVpZ2h0KHN0eWxlLT50ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkp
OworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtYXgocmVzdWx0LCBhbGxvd2VkUG9zaXRp
b24gLSB0b3BPZkVtcGhhc2lzTWFyayk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IGJvdHRvbU9mRW1waGFzaXNNYXJrID0gY3Vyci0+bG9naWNhbEJv
dHRvbSgpICsgc3R5bGUtPmZvbnQoKS5lbXBoYXNpc01hcmtIZWlnaHQoc3R5bGUtPnRleHRFbXBo
YXNpc01hcmtTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1heChyZXN1
bHQsIGJvdHRvbU9mRW1waGFzaXNNYXJrIC0gYWxsb3dlZFBvc2l0aW9uKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworaW50IElubGluZUZsb3dCb3g6OmNvbXB1dGVVbmRlckFubm90YXRpb25BZGp1c3Rt
ZW50KGludCBhbGxvd2VkUG9zaXRpb24pIGNvbnN0Cit7CisgICAgaW50IHJlc3VsdCA9IDA7Cisg
ICAgZm9yIChJbmxpbmVCb3gqIGN1cnIgPSBmaXJzdENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJy
LT5uZXh0T25MaW5lKCkpIHsKKyAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVyKCktPmlzUG9zaXRp
b25lZCgpKQorICAgICAgICAgICAgY29udGludWU7IC8vIFBvc2l0aW9uZWQgcGxhY2Vob2xkZXJz
IGRvbid0IGFmZmVjdCBjYWxjdWxhdGlvbnMuCisKKyAgICAgICAgaWYgKGN1cnItPmlzSW5saW5l
Rmxvd0JveCgpKQorICAgICAgICAgICAgcmVzdWx0ID0gbWF4KHJlc3VsdCwgc3RhdGljX2Nhc3Q8
SW5saW5lRmxvd0JveCo+KGN1cnIpLT5jb21wdXRlVW5kZXJBbm5vdGF0aW9uQWRqdXN0bWVudChh
bGxvd2VkUG9zaXRpb24pKTsKKworICAgICAgICBpZiAoY3Vyci0+aXNJbmxpbmVUZXh0Qm94KCkp
IHsKKyAgICAgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IGN1cnItPnJlbmRlcmVyKCktPnN0
eWxlKG1fZmlyc3RMaW5lKTsKKyAgICAgICAgICAgIGlmIChzdHlsZS0+dGV4dEVtcGhhc2lzTWFy
aygpICE9IFRleHRFbXBoYXNpc01hcmtOb25lICYmIHN0eWxlLT50ZXh0RW1waGFzaXNQb3NpdGlv
bigpID09IFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5kZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXN0eWxlLT5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaW50IGJvdHRvbU9mRW1waGFzaXNNYXJrID0gY3Vyci0+bG9naWNhbEJvdHRvbSgpICsgc3R5
bGUtPmZvbnQoKS5lbXBoYXNpc01hcmtIZWlnaHQoc3R5bGUtPnRleHRFbXBoYXNpc01hcmtTdHJp
bmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1heChyZXN1bHQsIGJvdHRvbU9m
RW1waGFzaXNNYXJrIC0gYWxsb3dlZFBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBpbnQgdG9wT2ZFbXBoYXNpc01hcmsgPSBjdXJyLT5sb2dp
Y2FsVG9wKCkgLSBzdHlsZS0+Zm9udCgpLmVtcGhhc2lzTWFya0hlaWdodChzdHlsZS0+dGV4dEVt
cGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbWF4KHJl
c3VsdCwgYWxsb3dlZFBvc2l0aW9uIC0gdG9wT2ZFbXBoYXNpc01hcmspOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcmVzdWx0
OwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAkocmV2aXNpb24gNzQyMzMpCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
MSwxMSArMTYxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkanVzdE1heEFzY2VudEFuZERlc2Nl
bnQoaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2VudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IG1heFBvc2l0aW9uVG9wLCBpbnQgbWF4UG9zaXRpb25Cb3R0b20p
OwogICAgIHZvaWQgcGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oaW50IGxvZ2ljYWxUb3AsIGlu
dCBtYXhIZWlnaHQsIGludCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9kZSwgaW50JiBsaW5lVG9w
LCBpbnQmIGxpbmVCb3R0b20sIGJvb2wmIHNldExpbmVUb3AsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQmIGxpbmVUb3BJbmNsdWRpbmdNYXJnaW5zLCBpbnQmIGxpbmVC
b3R0b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBjb250YWluc1J1YnksIEZvbnRCYXNlbGluZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIGxpbmVUb3BJbmNsdWRp
bmdNYXJnaW5zLCBpbnQmIGxpbmVCb3R0b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBoYXNBbm5v
dGF0aW9uc0JlZm9yZSwgYm9vbCYgaGFzQW5ub3RhdGlvbnNBZnRlciwgRm9udEJhc2VsaW5lKTsK
ICAgICB2b2lkIGZsaXBMaW5lc0luQmxvY2tEaXJlY3Rpb24oaW50IGxpbmVUb3AsIGludCBsaW5l
Qm90dG9tKTsKICAgICBib29sIHJlcXVpcmVzSWRlb2dyYXBoaWNCYXNlbGluZShjb25zdCBHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpIGNvbnN0OwotICAgIGludCBjb21wdXRlQmxv
Y2tEaXJlY3Rpb25SdWJ5QWRqdXN0bWVudChpbnQgYWxsb3dlZFBvc2l0aW9uKSBjb25zdDsKLSAg
ICAKKworICAgIGludCBjb21wdXRlT3ZlckFubm90YXRpb25BZGp1c3RtZW50KGludCBhbGxvd2Vk
UG9zaXRpb24pIGNvbnN0OworICAgIGludCBjb21wdXRlVW5kZXJBbm5vdGF0aW9uQWRqdXN0bWVu
dChpbnQgYWxsb3dlZFBvc2l0aW9uKSBjb25zdDsKKwogICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93
KGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSwgYm9vbCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcCYpOwogICAgIAogICAgIHZvaWQgcmVtb3ZlQ2hpbGQoSW5s
aW5lQm94KiBjaGlsZCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2
aXNpb24gNzQyMzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw3IEBAIEZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94Ojph
cHBseVNoYWRvd1RvR3IKICAgICByZXR1cm4gZXh0cmFPZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lk
IHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5k
T2Zmc2V0LCBpbnQgdHJ1bmNhdGlvblBvaW50LCBjb25zdCBJbnRQb2ludCYgdGV4dE9yaWdpbiwK
K3N0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWlj
U3RyaW5nJiBlbXBoYXNpc01hcmssIGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGludCBzdGFydE9m
ZnNldCwgaW50IGVuZE9mZnNldCwgaW50IHRydW5jYXRpb25Qb2ludCwgY29uc3QgSW50UG9pbnQm
IHRleHRPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRS
ZWN0JiBib3hSZWN0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGJvb2wgc3Ryb2tlZCwgYm9v
bCBob3Jpem9udGFsKQogewogICAgIENvbG9yIGZpbGxDb2xvciA9IGNvbnRleHQtPmZpbGxDb2xv
cigpOwpAQCAtMzY4LDEzICszNjgsMjMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRv
d3MoR3JhcGhpYwogICAgICAgICBlbHNlIGlmICghb3BhcXVlKQogICAgICAgICAgICAgY29udGV4
dC0+c2V0RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogCi0gICAgICAgIGlm
IChzdGFydE9mZnNldCA8PSBlbmRPZmZzZXQpCi0gICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4
dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsIHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChlbmRPZmZzZXQgPiAw
KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0KGZvbnQsIHRleHRSdW4sIHRleHRP
cmlnaW4gKyBleHRyYU9mZnNldCwgIDAsIGVuZE9mZnNldCk7Ci0gICAgICAgICAgICBpZiAoc3Rh
cnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydE9mZnNl
dCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDw9IGVuZE9mZnNl
dCkgeworICAgICAgICAgICAgaWYgKGVtcGhhc2lzTWFyay5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJh
T2Zmc2V0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBjb250ZXh0LT5kcmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBo
YXNpc01hcmssIHRleHRPcmlnaW4gKyBleHRyYU9mZnNldCArIEludFNpemUoMCwgZW1waGFzaXNN
YXJrT2Zmc2V0KSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAoZW5kT2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChlbXBo
YXNpc01hcmsuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGV4
dChmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgZXh0cmFPZmZzZXQsICAwLCBlbmRPZmZzZXQp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJh
d0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCB0ZXh0T3JpZ2luICsg
ZXh0cmFPZmZzZXQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksICAwLCBlbmRPZmZz
ZXQpOworICAgICAgICAgICAgfSBpZiAoc3RhcnRPZmZzZXQgPCB0cnVuY2F0aW9uUG9pbnQpIHsK
KyAgICAgICAgICAgICAgICBpZiAoZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4
dHJhT2Zmc2V0LCBzdGFydE9mZnNldCwgdHJ1bmNhdGlvblBvaW50KTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbXBoYXNpc01hcmtzKGZv
bnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCAgc3RhcnRPZmZzZXQsIHRydW5jYXRpb25Qb2lu
dCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIXNoYWRvdykKQEAg
LTQ4OCwxMiArNDk4LDE0IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWkKICAgICAvLyAyLiBOb3cgcGFpbnQgdGhlIGZvcmVncm91bmQsIGluY2x1ZGluZyB0ZXh0IGFu
ZCBkZWNvcmF0aW9ucyBsaWtlIHVuZGVybGluZS9vdmVybGluZSAoaW4gcXVpcmtzIG1vZGUgb25s
eSkuCiAgICAgQ29sb3IgdGV4dEZpbGxDb2xvcjsKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7
CisgICAgQ29sb3IgZW1waGFzaXNNYXJrQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRo
ID0gc3R5bGVUb1VzZS0+dGV4dFN0cm9rZVdpZHRoKCk7CiAgICAgY29uc3QgU2hhZG93RGF0YSog
dGV4dFNoYWRvdyA9IHBhaW50SW5mby5mb3JjZUJsYWNrVGV4dCA/IDAgOiBzdHlsZVRvVXNlLT50
ZXh0U2hhZG93KCk7CiAKICAgICBpZiAocGFpbnRJbmZvLmZvcmNlQmxhY2tUZXh0KSB7CiAgICAg
ICAgIHRleHRGaWxsQ29sb3IgPSBDb2xvcjo6YmxhY2s7CiAgICAgICAgIHRleHRTdHJva2VDb2xv
ciA9IENvbG9yOjpibGFjazsKKyAgICAgICAgZW1waGFzaXNNYXJrQ29sb3IgPSBDb2xvcjo6Ymxh
Y2s7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGV4dEZpbGxDb2xvciA9IHN0eWxlVG9Vc2UtPnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOwogICAg
ICAgICAKQEAgLTUwNiw2ICs1MTgsMTIgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWlu
dEluZm8mIHBhaQogICAgICAgICAvLyBNYWtlIHRoZSB0ZXh0IHN0cm9rZSBjb2xvciBsZWdpYmxl
IGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5kCiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5mb3Jj
ZUJhY2tncm91bmRzVG9XaGl0ZSgpKQogICAgICAgICAgICAgdGV4dFN0cm9rZUNvbG9yID0gY29y
cmVjdGVkVGV4dENvbG9yKHRleHRTdHJva2VDb2xvciwgQ29sb3I6OndoaXRlKTsKKworICAgICAg
ICBlbXBoYXNpc01hcmtDb2xvciA9IHN0eWxlVG9Vc2UtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yKTsKKyAgICAgICAgCisgICAgICAgIC8v
IE1ha2UgdGhlIHRleHQgc3Ryb2tlIGNvbG9yIGxlZ2libGUgYWdhaW5zdCBhIHdoaXRlIGJhY2tn
cm91bmQKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmZvcmNlQmFja2dyb3VuZHNUb1doaXRlKCkp
CisgICAgICAgICAgICBlbXBoYXNpc01hcmtDb2xvciA9IGNvcnJlY3RlZFRleHRDb2xvcihlbXBo
YXNpc01hcmtDb2xvciwgQ29sb3I6OndoaXRlKTsKICAgICB9CiAKICAgICBib29sIHBhaW50U2Vs
ZWN0ZWRUZXh0T25seSA9IChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7
CkBAIC01MTMsNiArNTMxLDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8m
IHBhaQogCiAgICAgQ29sb3Igc2VsZWN0aW9uRmlsbENvbG9yID0gdGV4dEZpbGxDb2xvcjsKICAg
ICBDb2xvciBzZWxlY3Rpb25TdHJva2VDb2xvciA9IHRleHRTdHJva2VDb2xvcjsKKyAgICBDb2xv
ciBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvciA9IGVtcGhhc2lzTWFya0NvbG9yOwogICAgIGZs
b2F0IHNlbGVjdGlvblN0cm9rZVdpZHRoID0gdGV4dFN0cm9rZVdpZHRoOwogICAgIGNvbnN0IFNo
YWRvd0RhdGEqIHNlbGVjdGlvblNoYWRvdyA9IHRleHRTaGFkb3c7CiAgICAgaWYgKGhhdmVTZWxl
Y3Rpb24pIHsKQEAgLTUyNCw2ICs1NDMsMTMgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludChQ
YWludEluZm8mIHBhaQogICAgICAgICAgICAgc2VsZWN0aW9uRmlsbENvbG9yID0gZm9yZWdyb3Vu
ZDsKICAgICAgICAgfQogCisgICAgICAgIENvbG9yIGVtcGhhc2lzTWFya0ZvcmVncm91bmQgPSBw
YWludEluZm8uZm9yY2VCbGFja1RleHQgPyBDb2xvcjo6YmxhY2sgOiByZW5kZXJlcigpLT5zZWxl
Y3Rpb25FbXBoYXNpc01hcmtDb2xvcigpOworICAgICAgICBpZiAoZW1waGFzaXNNYXJrRm9yZWdy
b3VuZC5pc1ZhbGlkKCkgJiYgZW1waGFzaXNNYXJrRm9yZWdyb3VuZCAhPSBzZWxlY3Rpb25FbXBo
YXNpc01hcmtDb2xvcikgeworICAgICAgICAgICAgaWYgKCFwYWludFNlbGVjdGVkVGV4dE9ubHkp
CisgICAgICAgICAgICAgICAgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5ID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yID0gZW1waGFzaXNNYXJrRm9yZWdy
b3VuZDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUg
PSByZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pKSB7CiAgICAgICAg
ICAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBwYWludEluZm8uZm9yY2VCbGFja1RleHQg
PyAwIDogcHNldWRvU3R5bGUtPnRleHRTaGFkb3coKTsKICAgICAgICAgICAgIGlmIChzaGFkb3cg
IT0gc2VsZWN0aW9uU2hhZG93KSB7CkBAIC01NjcsNiArNTkzLDE1IEBAIHZvaWQgSW5saW5lVGV4
dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAgICAgbGVuZ3RoID0gbV90cnVuY2F0aW9u
OwogICAgIH0KIAorICAgIGludCBlbXBoYXNpc01hcmtPZmZzZXQgPSAwOworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgZW1waGFzaXNNYXJrID0gc3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzTWFya1N0
cmluZygpOworICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAo
c3R5bGVUb1VzZS0+dGV4dEVtcGhhc2lzUG9zaXRpb24oKSA9PSBUZXh0RW1waGFzaXNQb3NpdGlv
bk92ZXIpCisgICAgICAgICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSAtZm9udC5hc2NlbnQoKSAt
IGZvbnQuZW1waGFzaXNNYXJrRGVzY2VudChlbXBoYXNpc01hcmspOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbXBoYXNpc01hcmtPZmZzZXQgPSBmb250LmRlc2NlbnQoKSArIGZvbnQuZW1w
aGFzaXNNYXJrQXNjZW50KGVtcGhhc2lzTWFyayk7CisgICAgfQorCiAgICAgaWYgKCFwYWludFNl
bGVjdGVkVGV4dE9ubHkpIHsKICAgICAgICAgLy8gRm9yIHN0cm9rZWQgcGFpbnRpbmcsIHdlIGhh
dmUgdG8gY2hhbmdlIHRoZSB0ZXh0IGRyYXdpbmcgbW9kZS4gIEl0J3MgcHJvYmFibHkgZGFuZ2Vy
b3VzIHRvIGxlYXZlIHRoYXQgbXV0YXRlZCBhcyBhIHNpZGUKICAgICAgICAgLy8gZWZmZWN0LCBz
byBvbmx5IHdoZW4gd2Uga25vdyB3ZSdyZSBzdHJva2luZywgZG8gYSBzYXZlL3Jlc3RvcmUuCkBA
IC01NzYsOSArNjExLDE4IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBw
YWkKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHRleHRGaWxsQ29sb3Is
IHRleHRTdHJva2VDb2xvciwgdGV4dFN0cm9rZVdpZHRoLCBzdHlsZVRvVXNlLT5jb2xvclNwYWNl
KCkpOwogICAgICAgICBpZiAoIXBhaW50U2VsZWN0ZWRUZXh0U2VwYXJhdGVseSB8fCBlUG9zIDw9
IHNQb3MpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVuY2F0ZSByaWdodC10by1sZWZ0IHRl
eHQgY29ycmVjdGx5LgotICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwg
Zm9udCwgdGV4dFJ1biwgMCwgbGVuZ3RoLCBsZW5ndGgsIHRleHRPcmlnaW4sIGJveFJlY3QsIHRl
eHRTaGFkb3csIHRleHRTdHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKKyAgICAgICAg
ICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIG51bGxBdG9t
LCAwLCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywg
dGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVQ
b3MsIHNQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0
cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICAgICAgcGFpbnRUZXh0V2l0
aFNoYWRvd3MoY29udGV4dCwgZm9udCwgdGV4dFJ1biwgbnVsbEF0b20sIDAsIGVQb3MsIHNQb3Ms
IGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRo
ID4gMCwgaXNIb3Jpem9udGFsKCkpOworCisgICAgICAgIGlmICghZW1waGFzaXNNYXJrLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIGVtcGhh
c2lzTWFya0NvbG9yLCB0ZXh0U3Ryb2tlQ29sb3IsIHRleHRTdHJva2VXaWR0aCwgc3R5bGVUb1Vz
ZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIGlmICghcGFpbnRTZWxlY3RlZFRleHRTZXBh
cmF0ZWx5IHx8IGVQb3MgPD0gc1BvcykgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUcnVu
Y2F0ZSByaWdodC10by1sZWZ0IHRleHQgY29ycmVjdGx5LgorICAgICAgICAgICAgICAgIHBhaW50
VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIGVtcGhhc2lzTWFyaywgZW1w
aGFzaXNNYXJrT2Zmc2V0LCAwLCBsZW5ndGgsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwg
dGV4dFNoYWRvdywgdGV4dFN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4
dCwgZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBlbXBoYXNpc01hcmtPZmZzZXQsIGVQb3Ms
IHNQb3MsIGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dFNoYWRvdywgdGV4dFN0cm9r
ZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHRl
eHRTdHJva2VXaWR0aCA+IDApCiAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CkBAIC01
OTAsOCArNjM0LDExIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkK
ICAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIAogICAgICAgICB1cGRhdGVHcmFwaGljc0Nv
bnRleHQoY29udGV4dCwgc2VsZWN0aW9uRmlsbENvbG9yLCBzZWxlY3Rpb25TdHJva2VDb2xvciwg
c2VsZWN0aW9uU3Ryb2tlV2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAg
IHBhaW50VGV4dFdpdGhTaGFkb3dzKGNvbnRleHQsIGZvbnQsIHRleHRSdW4sIHNQb3MsIGVQb3Ms
IGxlbmd0aCwgdGV4dE9yaWdpbiwgYm94UmVjdCwgc2VsZWN0aW9uU2hhZG93LCBzZWxlY3Rpb25T
dHJva2VXaWR0aCA+IDAsIGlzSG9yaXpvbnRhbCgpKTsKLQorICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBudWxsQXRvbSwgMCwgc1BvcywgZVBvcywg
bGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxlY3Rpb25TaGFkb3csIHNlbGVjdGlvblN0
cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOworICAgICAgICBpZiAoIWVtcGhhc2lzTWFy
ay5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0
LCBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvciwgdGV4dFN0cm9rZUNvbG9yLCB0ZXh0U3Ryb2tl
V2lkdGgsIHN0eWxlVG9Vc2UtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICBwYWludFRleHRX
aXRoU2hhZG93cyhjb250ZXh0LCBmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIGVtcGhhc2lz
TWFya09mZnNldCwgc1BvcywgZVBvcywgbGVuZ3RoLCB0ZXh0T3JpZ2luLCBib3hSZWN0LCBzZWxl
Y3Rpb25TaGFkb3csIHNlbGVjdGlvblN0cm9rZVdpZHRoID4gMCwgaXNIb3Jpem9udGFsKCkpOwor
ICAgICAgICB9CiAgICAgICAgIGlmIChzZWxlY3Rpb25TdHJva2VXaWR0aCA+IDApCiAgICAgICAg
ICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA3NDIzMykKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkx
MywxNiArOTEzLDE4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIK
ICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEV4cGFuZCB0aGUgbGFzdCBsaW5lIHRvIGFjY29t
bW9kYXRlIFJ1YnkgaW4gZmxpcHBlZCBsaW5lcyB3cml0aW5nIG1vZGVzICh0aGUgUnVieSBpcyBv
bgotICAgIC8vIHRoZSBhZnRlciBzaWRlIGluIHRoaXMgY2FzZSkuCi0gICAgaW50IGxhc3RMaW5l
UnVieUFkanVzdG1lbnQgPSAwOwotICAgIGlmIChsYXN0Um9vdEJveCgpICYmIHN0eWxlKCktPmlz
RmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSkgeworICAgIC8vIEV4cGFuZCB0aGUgbGFzdCBsaW5l
IHRvIGFjY29tbW9kYXRlIFJ1YnkgYW5kIGVtcGhhc2lzIG1hcmtzLgorICAgIGludCBsYXN0TGlu
ZUFubm90YXRpb25zQWRqdXN0bWVudCA9IDA7CisgICAgaWYgKGxhc3RSb290Qm94KCkpIHsKICAg
ICAgICAgaW50IGxvd2VzdEFsbG93ZWRQb3NpdGlvbiA9IG1heChsYXN0Um9vdEJveCgpLT5saW5l
Qm90dG9tKCksIGxvZ2ljYWxIZWlnaHQoKSArIHBhZGRpbmdBZnRlcigpKTsKLSAgICAgICAgbGFz
dExpbmVSdWJ5QWRqdXN0bWVudCA9IGxhc3RSb290Qm94KCktPmNvbXB1dGVCbG9ja0RpcmVjdGlv
blJ1YnlBZGp1c3RtZW50KGxvd2VzdEFsbG93ZWRQb3NpdGlvbik7CisgICAgICAgIGlmICghc3R5
bGUoKS0+aXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgbGFzdExpbmVB
bm5vdGF0aW9uc0FkanVzdG1lbnQgPSBsYXN0Um9vdEJveCgpLT5jb21wdXRlVW5kZXJBbm5vdGF0
aW9uQWRqdXN0bWVudChsb3dlc3RBbGxvd2VkUG9zaXRpb24pOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBsYXN0TGluZUFubm90YXRpb25zQWRqdXN0bWVudCA9IGxhc3RSb290Qm94KCktPmNv
bXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQobG93ZXN0QWxsb3dlZFBvc2l0aW9uKTsKICAg
ICB9Ci0gICAgCisKICAgICAvLyBOb3cgYWRkIGluIHRoZSBib3R0b20gYm9yZGVyL3BhZGRpbmcu
Ci0gICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBsYXN0TGluZVJ1YnlBZGp1
c3RtZW50ICsgYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNh
bEhlaWdodCgpKTsKKyAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIGxhc3RM
aW5lQW5ub3RhdGlvbnNBZGp1c3RtZW50ICsgYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigp
ICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpKTsKIAogICAgIGlmICghZmlyc3RMaW5lQm94KCkg
JiYgaGFzTGluZUlmRW1wdHkoKSkKICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVp
Z2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGlu
ZUJveGVzKSk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDc0
MjMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU5Myw3ICsxNTkzLDcgQEAgQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25CYWNr
Z3JvdW5kQwogICAgIHJldHVybiBjb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxlY3Rp
b25Db2xvcihpbnQgY29sb3JQcm9wZXJ0eSkgY29uc3QKIHsKICAgICBDb2xvciBjb2xvcjsKICAg
ICAvLyBJZiB0aGUgZWxlbWVudCBpcyB1bnNlbGVjdGFibGUsIG9yIHdlIGFyZSBvbmx5IHBhaW50
aW5nIHRoZSBzZWxlY3Rpb24sCkBAIC0xNjAzLDcgKzE2MDMsNyBAQCBDb2xvciBSZW5kZXJPYmpl
Y3Q6OnNlbGVjdGlvbkZvcmVncm91bmRDCiAgICAgICAgIHJldHVybiBjb2xvcjsKIAogICAgIGlm
IChSZWZQdHI8UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlID0gZ2V0VW5jYWNoZWRQc2V1ZG9TdHls
ZShTRUxFQ1RJT04pKSB7Ci0gICAgICAgIGNvbG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3IpOworICAgICAgICBjb2xv
ciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoY29sb3JQcm9wZXJ0eSk7CiAg
ICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQogICAgICAgICAgICAgY29sb3IgPSBwc2V1ZG9T
dHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpOwogICAgIH0gZWxz
ZQpAQCAtMTYxNCw2ICsxNjE0LDE2IEBAIENvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRm9y
ZWdyb3VuZEMKICAgICByZXR1cm4gY29sb3I7CiB9CiAKK0NvbG9yIFJlbmRlck9iamVjdDo6c2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2VsZWN0aW9uQ29s
b3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yKTsKK30KKworQ29sb3IgUmVuZGVyT2Jq
ZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNl
bGVjdGlvbkNvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOworfQorCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIE5vZGUqIFJlbmRlck9iamVjdDo6ZHJhZ2dhYmxlTm9k
ZShib29sIGRodG1sT0ssIGJvb2wgdWFPSywgaW50IHgsIGludCB5LCBib29sJiBkaHRtbFdpbGxE
cmFnKSBjb25zdAogewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDc0
MjMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY3NCw2ICs2NzQsNyBAQCBwdWJsaWM6CiAgICAgLy8gT2J0YWlucyB0aGUgc2VsZWN0aW9u
IGNvbG9ycyB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gcGFpbnRpbmcgYSBzZWxlY3Rpb24uCiAg
ICAgQ29sb3Igc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgQ29sb3Igc2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgQ29sb3Igc2VsZWN0aW9uRW1waGFz
aXNNYXJrQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gYmxv
Y2sgbmVlZHMgdG8gcGFpbnQgc2VsZWN0aW9uIGdhcHMuCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFBhaW50U2VsZWN0aW9uR2FwcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03OTUsNiAr
Nzk2LDggQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBSZW5kZXJTdHlsZSogZmlyc3RMaW5l
U3R5bGVTbG93Q2FzZSgpIGNvbnN0OwogICAgIFN0eWxlRGlmZmVyZW5jZSBhZGp1c3RTdHlsZURp
ZmZlcmVuY2UoU3R5bGVEaWZmZXJlbmNlLCB1bnNpZ25lZCBjb250ZXh0U2Vuc2l0aXZlUHJvcGVy
dGllcykgY29uc3Q7CisKKyAgICBDb2xvciBzZWxlY3Rpb25Db2xvcihpbnQgY29sb3JQcm9wZXJ0
eSkgY29uc3Q7CiAgICAgCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwogCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkocmV2aXNpb24gNzQyMzMpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyAr
NDgsOCBAQCBSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2NrCiAgICAgLCBt
X3BhZ2luYXRpb25TdHJ1dCgwKQogICAgICwgbV9ibG9ja0xvZ2ljYWxIZWlnaHQoMCkKICAgICAs
IG1fYmFzZWxpbmVUeXBlKEFscGhhYmV0aWNCYXNlbGluZSkKLSAgICAsIG1fY29udGFpbnNSdWJ5
KGZhbHNlKQorICAgICwgbV9oYXNBbm5vdGF0aW9uc0JlZm9yZShmYWxzZSkKKyAgICAsIG1faGFz
QW5ub3RhdGlvbnNBZnRlcihmYWxzZSkKIHsKICAgICBzZXRJc0hvcml6b250YWwoYmxvY2stPnN0
eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwogfQpAQCAtMjQ4LDE5ICsyNDksMjAg
QEAgaW50IFJvb3RJbmxpbmVCb3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZQogICAgIGludCBsaW5l
VG9wSW5jbHVkaW5nTWFyZ2lucyA9IGhlaWdodE9mQmxvY2s7CiAgICAgaW50IGxpbmVCb3R0b21J
bmNsdWRpbmdNYXJnaW5zID0gaGVpZ2h0T2ZCbG9jazsKICAgICBib29sIHNldExpbmVUb3AgPSBm
YWxzZTsKLSAgICBib29sIGNvbnRhaW5zUnVieSA9IGZhbHNlOworICAgIGJvb2wgaGFzQW5ub3Rh
dGlvbnNCZWZvcmUgPSBmYWxzZTsKKyAgICBib29sIGhhc0Fubm90YXRpb25zQWZ0ZXIgPSBmYWxz
ZTsKICAgICBwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihoZWlnaHRPZkJsb2NrLCBtYXhIZWln
aHQsIG1heEFzY2VudCwgbm9RdWlya3NNb2RlLCBsaW5lVG9wLCBsaW5lQm90dG9tLCBzZXRMaW5l
VG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVUb3BJbmNsdWRpbmdNYXJn
aW5zLCBsaW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgY29udGFpbnNSdWJ5LCBtX2Jhc2VsaW5l
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVRvcEluY2x1ZGluZ01h
cmdpbnMsIGxpbmVCb3R0b21JbmNsdWRpbmdNYXJnaW5zLCBoYXNBbm5vdGF0aW9uc0JlZm9yZSwg
aGFzQW5ub3RhdGlvbnNBZnRlciwgbV9iYXNlbGluZVR5cGUpOworICAgIG1faGFzQW5ub3RhdGlv
bnNCZWZvcmUgPSBoYXNBbm5vdGF0aW9uc0JlZm9yZTsKKyAgICBtX2hhc0Fubm90YXRpb25zQWZ0
ZXIgPSBoYXNBbm5vdGF0aW9uc0FmdGVyOwogICAgIHNldExpbmVUb3BCb3R0b21Qb3NpdGlvbnMo
bGluZVRvcCwgbGluZUJvdHRvbSk7CiAKLSAgICBtX2NvbnRhaW5zUnVieSA9IGNvbnRhaW5zUnVi
eTsKLSAgICAKLSAgICBpbnQgcnVieUFkanVzdG1lbnQgPSBibG9ja0RpcmVjdGlvblJ1YnlBZGp1
c3RtZW50KCk7Ci0gICAgaWYgKHJ1YnlBZGp1c3RtZW50KSB7CisgICAgaW50IGFubm90YXRpb25z
QWRqdXN0bWVudCA9IGJlZm9yZUFubm90YXRpb25zQWRqdXN0bWVudCgpOworICAgIGlmIChhbm5v
dGF0aW9uc0FkanVzdG1lbnQpIHsKICAgICAgICAgLy8gRklYTUU6IE5lZWQgdG8gaGFuZGxlIHBh
Z2luYXRpb24gaGVyZS4gV2UgbWlnaHQgaGF2ZSB0byBtb3ZlIHRvIHRoZSBuZXh0IHBhZ2UvY29s
dW1uIGFzIGEgcmVzdWx0IG9mIHRoZQogICAgICAgICAvLyBydWJ5IGV4cGFuc2lvbi4KLSAgICAg
ICAgYWRqdXN0QmxvY2tEaXJlY3Rpb25Qb3NpdGlvbihydWJ5QWRqdXN0bWVudCk7Ci0gICAgICAg
IGhlaWdodE9mQmxvY2sgKz0gcnVieUFkanVzdG1lbnQ7CisgICAgICAgIGFkanVzdEJsb2NrRGly
ZWN0aW9uUG9zaXRpb24oYW5ub3RhdGlvbnNBZGp1c3RtZW50KTsKKyAgICAgICAgaGVpZ2h0T2ZC
bG9jayArPSBhbm5vdGF0aW9uc0FkanVzdG1lbnQ7CiAgICAgfQogCiAgICAgLy8gRGV0ZWN0IGlu
dGVnZXIgb3ZlcmZsb3cuCkBAIC0yNzAsMTkgKzI3MiwzNSBAQCBpbnQgUm9vdElubGluZUJveDo6
YWxpZ25Cb3hlc0luQmxvY2tEaXJlCiAgICAgcmV0dXJuIGhlaWdodE9mQmxvY2sgKyBtYXhIZWln
aHQ7CiB9CiAKLWludCBSb290SW5saW5lQm94OjpibG9ja0RpcmVjdGlvblJ1YnlBZGp1c3RtZW50
KCkgY29uc3QKK2ludCBSb290SW5saW5lQm94OjpiZWZvcmVBbm5vdGF0aW9uc0FkanVzdG1lbnQo
KSBjb25zdAogeworICAgIGludCByZXN1bHQgPSAwOworCiAgICAgaWYgKCFyZW5kZXJlcigpLT5z
dHlsZSgpLT5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKCFjb250
YWluc1J1YnkoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBpbnQgaGlnaGVzdEFs
bG93ZWRQb3NpdGlvbiA9IHByZXZSb290Qm94KCkgPyBtaW4ocHJldlJvb3RCb3goKS0+bGluZUJv
dHRvbSgpLCBsaW5lVG9wKCkpIDogYmxvY2soKS0+Ym9yZGVyQmVmb3JlKCk7Ci0gICAgICAgIHJl
dHVybiBjb21wdXRlQmxvY2tEaXJlY3Rpb25SdWJ5QWRqdXN0bWVudChoaWdoZXN0QWxsb3dlZFBv
c2l0aW9uKTsKLSAgICB9IGVsc2UgaWYgKHByZXZSb290Qm94KCkgJiYgcHJldlJvb3RCb3goKS0+
Y29udGFpbnNSdWJ5KCkpIHsKLSAgICAgICAgLy8gV2UgaGF2ZSB0byBjb21wdXRlIHRoZSBSdWJ5
IGV4cGFuc2lvbiBmb3IgdGhlIHByZXZpb3VzIGxpbmUgdG8gc2VlIGhvdyBtdWNoIHdlIHNob3Vs
ZCBtb3ZlLgotICAgICAgICBpbnQgbG93ZXN0QWxsb3dlZFBvc2l0aW9uID0gbWF4KHByZXZSb290
Qm94KCktPmxpbmVCb3R0b20oKSwgbGluZVRvcCgpKTsKLSAgICAgICAgcmV0dXJuIHByZXZSb290
Qm94KCktPmNvbXB1dGVCbG9ja0RpcmVjdGlvblJ1YnlBZGp1c3RtZW50KGxvd2VzdEFsbG93ZWRQ
b3NpdGlvbik7CisgICAgICAgIC8vIEFubm90YXRpb25zIHVuZGVyIHRoZSBwcmV2aW91cyBsaW5l
IG1heSBwdXNoIHVzIGRvd24uCisgICAgICAgIGlmIChwcmV2Um9vdEJveCgpICYmIHByZXZSb290
Qm94KCktPmhhc0Fubm90YXRpb25zQWZ0ZXIoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHByZXZS
b290Qm94KCktPmNvbXB1dGVVbmRlckFubm90YXRpb25BZGp1c3RtZW50KGxpbmVUb3AoKSk7CisK
KyAgICAgICAgaWYgKCFoYXNBbm5vdGF0aW9uc0JlZm9yZSgpKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKworICAgICAgICAvLyBBbm5vdGF0aW9ucyBvdmVyIHRoaXMgbGluZSBtYXkgcHVz
aCB1cyBmdXJ0aGVyIGRvd24uCisgICAgICAgIGludCBoaWdoZXN0QWxsb3dlZFBvc2l0aW9uID0g
cHJldlJvb3RCb3goKSA/IG1pbihwcmV2Um9vdEJveCgpLT5saW5lQm90dG9tKCksIGxpbmVUb3Ao
KSkgKyByZXN1bHQgOiBibG9jaygpLT5ib3JkZXJCZWZvcmUoKTsKKyAgICAgICAgcmVzdWx0ID0g
IGNvbXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQoaGlnaGVzdEFsbG93ZWRQb3NpdGlvbik7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQW5ub3RhdGlvbnMgdW5kZXIgdGhpcyBsaW5lIG1h
eSBwdXNoIHVzIHVwLgorICAgICAgICBpZiAoaGFzQW5ub3RhdGlvbnNCZWZvcmUoKSkKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGNvbXB1dGVVbmRlckFubm90YXRpb25BZGp1c3RtZW50KHByZXZSb290
Qm94KCkgPyBwcmV2Um9vdEJveCgpLT5saW5lQm90dG9tKCkgOiBibG9jaygpLT5ib3JkZXJCZWZv
cmUoKSk7CisKKyAgICAgICAgaWYgKCFwcmV2Um9vdEJveCgpIHx8ICFwcmV2Um9vdEJveCgpLT5o
YXNBbm5vdGF0aW9uc0FmdGVyKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAg
ICAgIC8vIFdlIGhhdmUgdG8gY29tcHV0ZSB0aGUgZXhwYW5zaW9uIGZvciBhbm5vdGF0aW9ucyBv
dmVyIHRoZSBwcmV2aW91cyBsaW5lIHRvIHNlZSBob3cgbXVjaCB3ZSBzaG91bGQgbW92ZS4KKyAg
ICAgICAgaW50IGxvd2VzdEFsbG93ZWRQb3NpdGlvbiA9IG1heChwcmV2Um9vdEJveCgpLT5saW5l
Qm90dG9tKCksIGxpbmVUb3AoKSkgKyByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHByZXZSb290
Qm94KCktPmNvbXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQobG93ZXN0QWxsb3dlZFBvc2l0
aW9uKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBH
YXBSZWN0cyBSb290SW5saW5lQm94OjpsaW5lU2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrKiByb290
QmxvY2ssIGNvbnN0IEludFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBJ
bnRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLCAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jv
b3RJbmxpbmVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5l
Qm94LmgJKHJldmlzaW9uIDc0MjMzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDggQEAgcHVibGljOgogICAgIAogICAg
IEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lVHlw
ZTsgfQogCi0gICAgYm9vbCBjb250YWluc1J1YnkoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5z
UnVieTsgfQorICAgIGJvb2wgaGFzQW5ub3RhdGlvbnNCZWZvcmUoKSBjb25zdCB7IHJldHVybiBt
X2hhc0Fubm90YXRpb25zQmVmb3JlOyB9CisgICAgYm9vbCBoYXNBbm5vdGF0aW9uc0FmdGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNBbm5vdGF0aW9uc0FmdGVyOyB9CiAKICAgICBJbnRSZWN0IHBh
ZGRlZExheW91dE92ZXJmbG93UmVjdChpbnQgZW5kUGFkZGluZykgY29uc3Q7CiAKQEAgLTEzNiw3
ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzRWxsaXBzaXNCb3goKSBjb25zdCB7IHJl
dHVybiBtX2hhc0VsbGlwc2lzQm94T3JIeXBoZW47IH0KICAgICB2b2lkIHNldEhhc0VsbGlwc2lz
Qm94KGJvb2wgaGFzRWxsaXBzaXNCb3gpIHsgbV9oYXNFbGxpcHNpc0JveE9ySHlwaGVuID0gaGFz
RWxsaXBzaXNCb3g7IH0KIAotICAgIGludCBibG9ja0RpcmVjdGlvblJ1YnlBZGp1c3RtZW50KCkg
Y29uc3Q7CisgICAgaW50IGJlZm9yZUFubm90YXRpb25zQWRqdXN0bWVudCgpIGNvbnN0OwogCiAg
ICAgLy8gV2hlcmUgdGhpcyBsaW5lIGVuZGVkLiAgVGhlIGV4YWN0IG9iamVjdCBhbmQgdGhlIHBv
c2l0aW9uIHdpdGhpbiB0aGF0IG9iamVjdCBhcmUgc3RvcmVkIHNvIHRoYXQKICAgICAvLyB3ZSBj
YW4gY3JlYXRlIGFuIElubGluZUl0ZXJhdG9yIGJlZ2lubmluZyBqdXN0IGFmdGVyIHRoZSBlbmQg
b2YgdGhpcyBsaW5lLgpAQCAtMTYwLDcgKzE2MSw4IEBAIHByaXZhdGU6CiAgICAgRm9udEJhc2Vs
aW5lIG1fYmFzZWxpbmVUeXBlOwogICAgIAogICAgIC8vIElmIHRoZSBsaW5lIGNvbnRhaW5zIGFu
eSBydWJ5IHJ1bnMsIHRoZW4gdGhpcyB3aWxsIGJlIHRydWUuCi0gICAgYm9vbCBtX2NvbnRhaW5z
UnVieSA6IDE7CisgICAgYm9vbCBtX2hhc0Fubm90YXRpb25zQmVmb3JlIDogMTsKKyAgICBib29s
IG1faGFzQW5ub3RhdGlvbnNBZnRlciA6IDE7CiAKICAgICBXVEY6OlVuaWNvZGU6OkRpcmVjdGlv
biBtX2xpbmVCcmVha0JpZGlTdGF0dXNFb3IgOiA1OwogICAgIFdURjo6VW5pY29kZTo6RGlyZWN0
aW9uIG1fbGluZUJyZWFrQmlkaVN0YXR1c0xhc3RTdHJvbmcgOiA1OwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNzQyMzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOSBAQAorMjAxMC0xMi0xNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83NzIwMzAwPiBTdXBwb3J0IHRoZSBDU1MzIHRleHQtZW1waGFzaXMgcHJvcGVydHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTM5CisK
KyAgICAgICAgKiBmYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC90ZXh0L2VtcGhhc2lzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L3RleHQvZW1waGFzaXMtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNh
bC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
dGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKwogMjAxMC0xMi0xNiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNv
bnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKzxzdHlsZT4K
KyAgICBib2R5IHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwor
ICAgICAgICBmb250LXNpemU6IDE4cHg7CisgICAgICAgIGZvbnQtZmFtaWx5OiAiSGlyYU1pblBy
by1XMyI7CisgICAgfQorCisgICAgZGl2IHsKKyAgICAgICAgYm9yZGVyOiBzb2xpZDsKKyAgICAg
ICAgaGVpZ2h0OiAzNjBweDsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIG1hcmdpbjog
OHB4OworICAgIH0KKzwvc3R5bGU+CisKKzxkaXY+CisgICAg44Gb44Gj44GL44GP6KaL44Gk44GR
44Gf44GZ44Gw44KJ44GX44GE6KiY5LqLPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogJ0AnOyI+44GM44Gp44GT44Gr44GC44Gj44Gf44GL5b+Y44KM44Gm44GX44G+PC9zcGFuPuOB
o+OBn+e1jOmok+OBr+OBguOCiuOBvuOBmeOBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1w
aGFzaXM6ICcqJzsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXBvc2l0aW9uOiB1bmRlcjsiPuOBquOC
ieOCv+OCpOODiOODq+OBqOOCouODieODrOOCueOBoOOBkeOBp+OBquOBj+OAgTwvc3Bhbj7oqKrl
lY/jgZfjgZ/jgqbjgqfjg5bjg5rjg7zjgrjjga7jgrPjg7Pjg4bjg7Pjg4TjgYvjgonjgoLmpJzn
tKLjgZnjgovjgZPjgajjgYzjgafjgY3jgb7jgZnjgIIKKzwvZGl2PgorCis8ZGl2PgorICAgIOOB
m+OBo+OBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij7j
gY/opovjgaTjgZHjgZ/jgZk8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogb3BlbiBncmVlbjsiPuOBsOOCieOBl+OBhDwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBjaXJjbGU7Ij7oqJjkuovjgYzjgak8L3NwYW4+PHNwYW4gc3R5bGU9Ii13
ZWJraXQtdGV4dC1lbXBoYXNpczogZG90OyI+44GT44Gr44GC44GjPC9zcGFuPjxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJsZS1jaXJjbGU7Ij7jgZ/jgYvlv5jjgozjgabj
gZc8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogc2VzYW1lOyI+44G+
44Gj44Gf57WM6aiTPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IHRy
aWFuZ2xlOyI+44Gv44GC44KK44G+44GZ44GLPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRl
eHQtZW1waGFzaXM6IG9wZW4gZG90OyI+44Gq44KJ44K/44Kk44OI44Or44GoPC9zcGFuPjxzcGFu
IHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG91YmxlLWNpcmNsZTsiPuOCouOD
ieODrOOCueOBoOOBkeOBp+OBqjwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhh
c2lzOiBvcGVuIHNlc2FtZTsiPuOBj+OAgeioquWVj+OBl+OBn+OCpjwvc3Bhbj48c3BhbiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHRyaWFuZ2xlOyI+44Kn44OW44Oa44O844K4
44Gu44Kz44Oz44OGPC9zcGFuPuODs+ODhOOBi+OCieOCguaknOe0ouOBmeOCi+OBk+OBqOOBjOOB
p+OBjeOBvuOBmeOAggorPC9kaXY+CisKKzxkaXYgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1scjsiPgorICAgIOOBm+OBo+OBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQt
ZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij7jgY/opovjgaTjgZHjgZ/jgZk8L3NwYW4+PHNwYW4gc3R5
bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3BlbiBncmVlbjsiPuOBsOOCieOBl+OBhDwvc3Bh
bj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBjaXJjbGU7Ij7oqJjkuovjgYzj
gak8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZG90OyI+44GT44Gr
44GC44GjPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJsZS1j
aXJjbGU7Ij7jgZ/jgYvlv5jjgozjgabjgZc8L3NwYW4+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4
dC1lbXBoYXNpczogc2VzYW1lOyI+44G+44Gj44Gf57WM6aiTPC9zcGFuPjxzcGFuIHN0eWxlPSIt
d2Via2l0LXRleHQtZW1waGFzaXM6IHRyaWFuZ2xlOyI+44Gv44GC44KK44G+44GZ44GLPC9zcGFu
PjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG90OyI+44Gq44KJ44K/
44Kk44OI44Or44GoPC9zcGFuPjxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9w
ZW4gZG91YmxlLWNpcmNsZTsiPuOCouODieODrOOCueOBoOOBkeOBp+OBqjwvc3Bhbj48c3BhbiBz
dHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHNlc2FtZTsiPuOBj+OAgeioquWVj+OB
l+OBn+OCpjwvc3Bhbj48c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIHRy
aWFuZ2xlOyI+44Kn44OW44Oa44O844K444Gu44Kz44Oz44OGPC9zcGFuPuODs+ODhOOBi+OCieOC
guaknOe0ouOBmeOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOAggorPC9kaXY+CisKKzxkaXYgc3R5
bGU9ImxpbmUtaGVpZ2h0OiAyOyI+CisgICAg44Gb44Gj44GL44GP6KaL44Gk44GR44Gf44GZ44Gw
44KJ44GX44GE6KiY5LqLPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZmlsbGVk
OyI+44GM44Gp44GT44Gr44GC44Gj44Gf44GL5b+Y44KM44Gm44GX44G+PC9zcGFuPuOBo+OBn+e1
jOmok+OBr+OBguOCiuOBvuOBmeOBizxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6
IG9wZW47IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogdW5kZXI7Ij7jgarjgonjgr/j
gqTjg4jjg6vjgajjgqLjg4njg6zjgrnjgaDjgZHjgafjgarjgY/jgIE8L3NwYW4+6Kiq5ZWP44GX
44Gf44Km44Kn44OW44Oa44O844K444Gu44Kz44Oz44OG44Oz44OE44GL44KJ44KC5qSc57Si44GZ
44KL44GT44Go44GM44Gn44GN44G+44GZ44CCCis8L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvdGV4dC9lbXBoYXNpcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4
dC9lbXBoYXNpcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Vt
cGhhc2lzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTAgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9VVRGLTgiPgorPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgICBmb250LXNpemU6IDI0
cHg7CisgICAgfQorCisgICAgZGl2IHsKKyAgICAgICAgYm9yZGVyOiBzb2xpZDsKKyAgICAgICAg
d2lkdGg6IDM2MHB4OworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgbWFyZ2luOiA4cHg7
CisgICAgfQorCisgICAgc3Bhbjo6c2VsZWN0aW9uIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYnJvd247CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgfQorCisgICAgI3NwZWNpYWwt
c3Bhbjo6c2VsZWN0aW9uIHsKKyAgICAgICAgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLWNvbG9yOiBs
aWdodGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8ZGl2PgorICAgIExvcmVtIGlwc3VtIGRvbG9y
IHNpdCBhbWV0LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6ICdAaWdu
b3JlZCc7Ij5jb25zZWN0ZXR1ciBhZGlwaXNjaW5nPC9zcGFuPgorICAgIGVsaXQuIEFsaXF1YW0K
KyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4
dC1lbXBoYXNpcy1wb3NpdGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9i
b3J0aXMgZXUgaWFjdWxpcyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8
ZGl2IHN0eWxlPSJ0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyI+CisgICAgTG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1l
bXBoYXNpczogJ0AnOyI+Y29uc2VjdGV0dXIgYWRpcGlzY2luZzwvc3Bhbj4KKyAgICBlbGl0LiBB
bGlxdWFtCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogJypkb2VzIG5v
dCBtYXR0ZXInOyAtd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRpb246IHVuZGVyOyI+b2RpbyBz
YSYjeDAzMDA7cGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFjdWxpcyB2ZWwsIHNjZWxl
cmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8ZGl2PgorICAgIExvcmVtIDxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IGZpbGxlZCByZWQ7Ij5pcHN1bTwvc3Bhbj4KKyAgICA8
c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIGdyZWVuOyI+ZG9sb3I8L3Nw
YW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogY2lyY2xlOyI+c2l0
PC9zcGFuPgorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdDsiPmFt
ZXQ8L3NwYW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IGRvdWJs
ZS1jaXJjbGU7Ij5jb25zZWN0ZXR1cjwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBzZXNhbWU7Ij5hZGlwaXNjaW5nPC9zcGFuPgorICAgIDxzcGFuIHN0eWxl
PSItd2Via2l0LXRleHQtZW1waGFzaXM6IHRyaWFuZ2xlOyI+ZWxpdDwvc3Bhbj4uCisKKyAgICA8
c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBvcGVuIGRvdDsiPkFsaXF1YW08L3Nw
YW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG91Ymxl
LWNpcmNsZTsiPm9kaW88L3NwYW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBo
YXNpczogb3BlbiBzZXNhbWU7Ij5zYXBpZW48L3NwYW4+LAorICAgIDxzcGFuIHN0eWxlPSItd2Vi
a2l0LXRleHQtZW1waGFzaXM6IG9wZW4gdHJpYW5nbGU7Ij5sb2JvcnRpczwvc3Bhbj4KKyAgICBl
dSBpYWN1bGlzIHZlbCwgc2NlbGVyaXNxdWUgbmVjIGRvbG9yLgorPC9kaXY+CisKKzxkaXYgc3R5
bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyI+CisgICAgTG9yZW0gPHNw
YW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogZmlsbGVkIHJlZDsiPmlwc3VtPC9zcGFu
PgorICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZ3JlZW47Ij5k
b2xvcjwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiBjaXJj
bGU7Ij5zaXQ8L3NwYW4+CisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczog
ZG90OyI+YW1ldDwvc3Bhbj4sCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNp
czogZG91YmxlLWNpcmNsZTsiPmNvbnNlY3RldHVyPC9zcGFuPgorICAgIDxzcGFuIHN0eWxlPSIt
d2Via2l0LXRleHQtZW1waGFzaXM6IHNlc2FtZTsiPmFkaXBpc2Npbmc8L3NwYW4+CisgICAgPHNw
YW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogdHJpYW5nbGU7Ij5lbGl0PC9zcGFuPi4K
KworICAgIDxzcGFuIHN0eWxlPSItd2Via2l0LXRleHQtZW1waGFzaXM6IG9wZW4gZG90OyI+QWxp
cXVhbTwvc3Bhbj4sCisgICAgPHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3Bl
biBkb3VibGUtY2lyY2xlOyI+b2Rpbzwvc3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10
ZXh0LWVtcGhhc2lzOiBvcGVuIHNlc2FtZTsiPnNhcGllbjwvc3Bhbj4sCisgICAgPHNwYW4gc3R5
bGU9Ii13ZWJraXQtdGV4dC1lbXBoYXNpczogb3BlbiB0cmlhbmdsZTsiPmxvYm9ydGlzPC9zcGFu
PgorICAgIGV1IGlhY3VsaXMgdmVsLCBzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuCis8L2Rpdj4KKwor
PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6IDI7Ij4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwKKyAgICA8c3BhbiBzdHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnQCc7Ij5jb25z
ZWN0ZXR1ciBhZGlwaXNjaW5nPC9zcGFuPgorICAgIGVsaXQuIEFsaXF1YW0KKyAgICA8c3BhbiBz
dHlsZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1w
b3NpdGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFj
dWxpcyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8ZGl2PgorICAgIExv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LAorICAgIDxzcGFuIGlkPSJmaXJzdC1zcGFuIiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnQCc7Ij5jb25zZWN0ZXR1ciBhZGlwaXNjaW5nPC9z
cGFuPgorICAgIGVsaXQuIEFsaXF1YW0KKyAgICA8c3BhbiBpZD0ic3BlY2lhbC1zcGFuIiBzdHls
ZT0iLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAnKic7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3Np
dGlvbjogdW5kZXI7Ij5vZGlvIHNhcGllbjwvc3Bhbj4sCisgICAgbG9ib3J0aXMgZXUgaWFjdWxp
cyB2ZWwsIHNjZWxlcmlzcXVlIG5lYyBkb2xvci4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIGdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZp
cnN0LXNwYW4iKS5maXJzdENoaWxkLCAxMCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwZWNp
YWwtc3BhbiIpLmZpcnN0Q2hpbGQsIDcpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC90ZXh0L2VtcGhhc2lzLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACithYzBlYTc4MTZjOTgzOTFmMDQ0ZjcxMWQ5OTU5NmIwZgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFz
aXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvZW1waGFzaXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkxIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCisgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcp
IHtESVZ9IGF0ICg4LDgpIHNpemUgMzY2eDE0NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDAp
XQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykgc2l6ZSAyNzZ4MjgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCAyNzY6ICJMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMTd4MjgK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNDUpIHNpemUgMjE3eDI4CisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMyw0NSkgd2lkdGggMjE3OiAiY29uc2VjdGV0dXIgYWRpcGlz
Y2luZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNDUpIHNpemUgMTM1eDI4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw0NSkgd2lkdGggNjogIiAiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDIyNiw0NSkgd2lkdGggMTI5OiAiZWxpdC4gQWxpcXVhbSIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgyOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMyw3Mykgc2l6ZSAxMTF4MjgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgzLDczKSB3aWR0aCAxMTE6ICJvZGlvIHNhcGllbiIKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxMTQsNzMpIHNpemUgMzM4eDcwCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEx
NCw3Mykgd2lkdGggMTI6ICIsICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTI2LDczKSB3aWR0
aCAyMTU6ICJsb2JvcnRpcyBldSBpYWN1bGlzIHZlbCwiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDMsMTE1KSB3aWR0aCAyMTE6ICJzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuIgorICAgICAgUmVuZGVy
QmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMzkwLDgpIHNpemUgMzY2eDE0NiBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykg
c2l6ZSAyNzZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywzKSB3aWR0aCAyNzY6ICJMb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAyMTd4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNDUp
IHNpemUgMjE3eDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw0NSkgd2lkdGggMjE3OiAi
Y29uc2VjdGV0dXIgYWRpcGlzY2luZyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgy
MjAsNDUpIHNpemUgMTM1eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw0NSkgd2lkdGgg
NjogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyNiw0NSkgd2lkdGggMTI5OiAiZWxpdC4g
QWxpcXVhbSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgy
OAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMyw3Mykgc2l6ZSAxMTF4MjgKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDczKSB3aWR0aCAxMTE6ICJvZGlvIHNhXHh7MzAwfXBp
ZW4iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE0LDczKSBzaXplIDMzOHg3MAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsNzMpIHdpZHRoIDEyOiAiLCAiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDEyNiw3Mykgd2lkdGggMjE1OiAibG9ib3J0aXMgZXUgaWFjdWxpcyB2ZWws
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDExNSkgd2lkdGggMjEwOiAic2NlbGVyaXNxdWUg
bmVjIGRvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDgsMTcw
KSBzaXplIDM2NngxNjIgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgzLDE4KSBzaXplIDcxeDI4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDMsMTgpIHdpZHRoIDcxOiAiTG9yZW0gIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59
IGF0ICgwLDApIHNpemUgNTl4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDc0
LDE4KSBzaXplIDU5eDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQsMTgpIHdpZHRoIDU5
OiAiaXBzdW0iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTMzLDE4KSBzaXplIDZ4
MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMzLDE4KSB3aWR0aCA2OiAiICIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDUxeDI4CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxMzksMTgpIHNpemUgNTF4MjgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxMzksMTgpIHdpZHRoIDUxOiAiZG9sb3IiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTkwLDE4KSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkwLDE4KSB3
aWR0aCA2OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDIz
eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxOTYsMTgpIHNpemUgMjN4MjgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTYsMTgpIHdpZHRoIDIzOiAic2l0IgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIxOSwxOCkgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDIxOSwxOCkgd2lkdGggNjogIiAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSA0OHgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MjI1LDE4KSBzaXplIDQ4eDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI1LDE4KSB3aWR0
aCA0ODogImFtZXQiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjczLDE4KSBzaXpl
IDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjczLDE4KSB3aWR0aCA2OiAiLCIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgyOAorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMyw2MSkgc2l6ZSAxMTF4MjgKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgzLDYxKSB3aWR0aCAxMTE6ICJjb25zZWN0ZXR1ciIKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxMTQsNjEpIHNpemUgNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MTQsNjEpIHdpZHRoIDY6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMTAweDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMjAsNjEpIHNp
emUgMTAweDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTIwLDYxKSB3aWR0aCAxMDA6ICJh
ZGlwaXNjaW5nIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIyMCw2MSkgc2l6ZSA2
eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIyMCw2MSkgd2lkdGggNjogIiAiCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzMngyOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMjI2LDYxKSBzaXplIDMyeDI4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMjI2LDYxKSB3aWR0aCAzMjogImVsaXQiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMjU4LDYxKSBzaXplIDEyeDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDI1OCw2MSkg
d2lkdGggMTI6ICIuICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDg1eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNzAsNjEpIHNpemUgODV4
MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNzAsNjEpIHdpZHRoIDg1OiAiQWxpcXVhbSIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNTUsNjEpIHNpemUgNngyOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzNTUsNjEpIHdpZHRoIDY6ICIsIgorICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgNDN4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDMsMTAzKSBzaXplIDQzeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywxMDMp
IHdpZHRoIDQzOiAib2RpbyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NiwxMDMp
IHNpemUgNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg0NiwxMDMpIHdpZHRoIDY6ICIgIgor
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNjJ4MjgKKyAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUyLDEwMykgc2l6ZSA2MngyOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDUyLDEwMykgd2lkdGggNjI6ICJzYXBpZW4iCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTE0LDEwMykgc2l6ZSAxMngyOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMTQsMTAzKSB3aWR0aCAxMjogIiwgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgNzR4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEyNiwx
MDMpIHNpemUgNzR4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjYsMTAzKSB3aWR0aCA3
NDogImxvYm9ydGlzIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwMCwxMDMpIHNp
emUgMzM4eDU2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIwMCwxMDMpIHdpZHRoIDY6ICIgIgor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgyMDYsMTAzKSB3aWR0aCAxMzU6ICJldSBpYWN1bGlzIHZl
bCwiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMTMxKSB3aWR0aCAyMTE6ICJzY2VsZXJpc3F1
ZSBuZWMgZG9sb3IuIgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMzkw
LDE3MCkgc2l6ZSAzNjZ4MTYyIFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywzKSBzaXplIDcxeDI4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDMsMykgd2lkdGggNzE6ICJMb3JlbSAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSA1OXgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
NzQsMykgc2l6ZSA1OXgyOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDc0LDMpIHdpZHRoIDU5
OiAiaXBzdW0iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTMzLDMpIHNpemUgNngy
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzMsMykgd2lkdGggNjogIiAiCisgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA1MXgyOAorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTM5LDMpIHNpemUgNTF4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMzksMykgd2lkdGggNTE6ICJkb2xvciIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxOTAsMykgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MCwzKSB3aWR0aCA2
OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDIzeDI4Cisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxOTYsMykgc2l6ZSAyM3gyOAorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE5NiwzKSB3aWR0aCAyMzogInNpdCIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgyMTksMykgc2l6ZSA2eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDIxOSwzKSB3aWR0aCA2OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDQ4eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjUsMykgc2l6
ZSA0OHgyOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIyNSwzKSB3aWR0aCA0ODogImFtZXQi
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjczLDMpIHNpemUgNngyOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyNzMsMykgd2lkdGggNjogIiwiCisgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMTF4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDMsNDYpIHNpemUgMTExeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw0Nikg
d2lkdGggMTExOiAiY29uc2VjdGV0dXIiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTE0LDQ2KSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE0LDQ2KSB3aWR0aCA2
OiAiICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEwMHgyOAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIwLDQ2KSBzaXplIDEwMHgyOAorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCw0Nikgd2lkdGggMTAwOiAiYWRpcGlzY2luZyIKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNDYpIHNpemUgNngyOAorICAgICAgICAg
IHRleHQgcnVuIGF0ICgyMjAsNDYpIHdpZHRoIDY6ICIgIgorICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMzJ4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDIyNiw0Nikgc2l6ZSAzMngyOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIyNiw0Nikg
d2lkdGggMzI6ICJlbGl0IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1OCw0Nikg
c2l6ZSAxMngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgyNTgsNDYpIHdpZHRoIDEyOiAiLiAi
CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA4NXgyOAorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjcwLDQ2KSBzaXplIDg1eDI4CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjcwLDQ2KSB3aWR0aCA4NTogIkFsaXF1YW0iCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMzU1LDQ2KSBzaXplIDZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMzU1LDQ2KSB3aWR0aCA2OiAiLCIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAo
MCwwKSBzaXplIDQzeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDg5KSBz
aXplIDQzeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMyw4OSkgd2lkdGggNDM6ICJvZGlv
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ2LDg5KSBzaXplIDZ4MjgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNDYsODkpIHdpZHRoIDY6ICIgIgorICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgNjJ4MjgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDUyLDg5KSBzaXplIDYyeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTIsODkp
IHdpZHRoIDYyOiAic2FwaWVuIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExNCw4
OSkgc2l6ZSAxMngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTQsODkpIHdpZHRoIDEyOiAi
LCAiCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA3NHgyOAorICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTI2LDg5KSBzaXplIDc0eDI4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTI2LDg5KSB3aWR0aCA3NDogImxvYm9ydGlzIgorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwMCw4OSkgc2l6ZSAzMzh4NzAKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMjAwLDg5KSB3aWR0aCA2OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjA2
LDg5KSB3aWR0aCAxMzU6ICJldSBpYWN1bGlzIHZlbCwiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDMsMTMxKSB3aWR0aCAyMTE6ICJzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuIgorICAgICAgUmVuZGVy
QmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoOCwzNDgpIHNpemUgMzY2eDE5OCBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMTMp
IHNpemUgMjc2eDI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMTMpIHdpZHRoIDI3NjogIkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDIxN3gyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMyw2
MSkgc2l6ZSAyMTd4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDYxKSB3aWR0aCAyMTc6
ICJjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIyMCw2MSkgc2l6ZSAxMzV4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjIwLDYxKSB3aWR0
aCA2OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI2LDYxKSB3aWR0aCAxMjk6ICJlbGl0
LiBBbGlxdWFtIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTEx
eDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzLDEwOSkgc2l6ZSAxMTF4MjgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDEwOSkgd2lkdGggMTExOiAib2RpbyBzYXBpZW4i
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE0LDEwOSkgc2l6ZSAzMzh4NzYKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTE0LDEwOSkgd2lkdGggMTI6ICIsICIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTI2LDEwOSkgd2lkdGggMjE1OiAibG9ib3J0aXMgZXUgaWFjdWxpcyB2ZWws
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDE1Nykgd2lkdGggMjExOiAic2NlbGVyaXNxdWUg
bmVjIGRvbG9yLiIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDM5MCwz
NDgpIHNpemUgMzY2eDE0NiBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMykgc2l6ZSAyNzZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMywzKSB3aWR0aCAyNzY6ICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwiCisgICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMTd4MjgKKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsNDUpIHNpemUgMjE3eDI4CisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMyw0NSkgd2lkdGggMjE3OiAiY29uc2VjdGV0dXIgYWRpcGlzY2luZyIKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjAsNDUpIHNpemUgMTM1eDI4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDIyMCw0NSkgd2lkdGggNjogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDIyNiw0NSkgd2lkdGggMTI5OiAiZWxpdC4gQWxpcXVhbSIKKyAgICAgICAgUmVuZGVySW5saW5l
IHtTUEFOfSBhdCAoMCwwKSBzaXplIDExMXgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMyw3Mykgc2l6ZSAxMTF4MjgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDczKSB3
aWR0aCAxMTE6ICJvZGlvIHNhcGllbiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MTQsNzMpIHNpemUgMzM4eDcwCisgICAgICAgICAgdGV4dCBydW4gYXQgKDExNCw3Mykgd2lkdGgg
MTI6ICIsICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTI2LDczKSB3aWR0aCAyMTU6ICJsb2Jv
cnRpcyBldSBpYWN1bGlzIHZlbCwiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMTE1KSB3aWR0
aCAyMTE6ICJzY2VsZXJpc3F1ZSBuZWMgZG9sb3IuIgorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlv
biAxMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMTAge0RJ
Vn0gb2YgYm9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA3IG9mIGNoaWxkIDAgeyN0ZXh0
fSBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxMCB7RElWfSBvZiBib2R5CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVjdGVk
LmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Rl
eHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLWV4cGVj
dGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitlMmZmMThjN2VjZTAzZGQ2
YTdjMDVhYWVhOGY5MDhiZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZW1w
aGFzaXMtdmVydGljYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTIzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICg3OTIsMCkgc2l6
ZSA4eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4eDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIChm
bG9hdGluZykge0RJVn0gYXQgKDgsOCkgc2l6ZSAxNTR4MzY2IFtib3JkZXI6ICgzcHggc29saWQg
IzAwMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQsMykgc2l6ZSAxOXgy
NzIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMykgd2lkdGggMjcyOiAiXHh7MzA1Qn1ceHsz
MDYzfVx4ezMwNEJ9XHh7MzA0Rn1ceHs4OThCfVx4ezMwNjR9XHh7MzA1MX1ceHszMDVGfVx4ezMw
NTl9XHh7MzA3MH1ceHszMDg5fVx4ezMwNTd9XHh7MzA0NH1ceHs4QTE4fVx4ezRFOEJ9IgorICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDl4MzQ1CisgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCwyNzUpIHNpemUgNDl4MzQ1CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTQsMjc1KSB3aWR0aCA3MzogIlx4ezMwNEN9XHh7MzA2OX1ceHszMDUzfVx4
ezMwNkJ9IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ0LDMpIHdpZHRoIDE2NDogIlx4ezMw
NDJ9XHh7MzA2M31ceHszMDVGfVx4ezMwNEJ9XHh7NUZEOH1ceHszMDhDfVx4ezMwNjZ9XHh7MzA1
N31ceHszMDdFfSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NCwxNjcpIHNpemUg
NDZ4MzI4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ0LDE2Nykgd2lkdGggMTY0OiAiXHh7MzA2
M31ceHszMDVGfVx4ezdENEN9XHh7OUExM31ceHszMDZGfVx4ezMwNDJ9XHh7MzA4QX1ceHszMDdF
fVx4ezMwNTl9IgorICAgICAgICAgIHRleHQgcnVuIGF0ICg3MSwzKSB3aWR0aCAxOTogIlx4ezMw
NEJ9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTl4MzIyCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3MSwyMikgc2l6ZSAxOXgzMjIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3MSwyMikgd2lkdGggMzIyOiAiXHh7MzA2QX1ceHszMDg5fVx4
ezMwQkZ9XHh7MzBBNH1ceHszMEM4fVx4ezMwRUJ9XHh7MzA2OH1ceHszMEEyfVx4ezMwQzl9XHh7
MzBFQ31ceHszMEI5fVx4ezMwNjB9XHh7MzA1MX1ceHszMDY3fVx4ezMwNkF9XHh7MzA0Rn1ceHsz
MDAxfSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3MSwzNDQpIHNpemUgNzZ4MzYw
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDM0NCkgd2lkdGggMTk6ICJceHs4QTJBfSIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTAxLDMpIHdpZHRoIDM0NTogIlx4ezU1NEZ9XHh7MzA1N31c
eHszMDVGfVx4ezMwQTZ9XHh7MzBBN31ceHszMEQ2fVx4ezMwREF9XHh7MzBGQ31ceHszMEI4fVx4
ezMwNkV9XHh7MzBCM31ceHszMEYzfVx4ezMwQzZ9XHh7MzBGM31ceHszMEM0fVx4ezMwNEJ9XHh7
MzA4OX1ceHszMDgyfVx4ezY5MUN9IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjgsMykgd2lk
dGggMjAwOiAiXHh7N0QyMn1ceHszMDU5fVx4ezMwOEJ9XHh7MzA1M31ceHszMDY4fVx4ezMwNEN9
XHh7MzA2N31ceHszMDREfVx4ezMwN0V9XHh7MzA1OX1ceHszMDAyfSIKKyAgICAgIFJlbmRlckJs
b2NrIChmbG9hdGluZykge0RJVn0gYXQgKDE3OCw4KSBzaXplIDE1N3gzNjYgW2JvcmRlcjogKDNw
eCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCwzKSBz
aXplIDE5eDU1CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDMpIHdpZHRoIDU1OiAiXHh7MzA1
Qn1ceHszMDYzfVx4ezMwNEJ9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMTl4MTE0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCw1OCkgc2l6
ZSAxOXgxMTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCw1OCkgd2lkdGggMTE0OiAiXHh7
MzA0Rn1ceHs4OThCfVx4ezMwNjR9XHh7MzA1MX1ceHszMDVGfVx4ezMwNTl9IgorICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTl4NzYKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDE0LDE3Mikgc2l6ZSAxOXg3NgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDE0LDE3Mikgd2lkdGggNzY6ICJceHszMDcwfVx4ezMwODl9XHh7MzA1N31ceHszMDQ0fSIK
KyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDc2CisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCwyNDgpIHNpemUgMTl4NzYKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxNCwyNDgpIHdpZHRoIDc2OiAiXHh7OEExOH1ceHs0RThCfVx4ezMwNEN9
XHh7MzA2OX0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgz
NTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDMyNCkgc2l6ZSA0OXgzNTgK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwzMjQpIHdpZHRoIDM3OiAiXHh7MzA1M31ceHsz
MDZCfSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0NCwzKSB3aWR0aCAzNzogIlx4ezMwNDJ9
XHh7MzA2M30iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgx
MTQKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ0LDQwKSBzaXplIDE5eDExNAor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ0LDQwKSB3aWR0aCAxMTQ6ICJceHszMDVGfVx4ezMw
NEJ9XHh7NUZEOH1ceHszMDhDfVx4ezMwNjZ9XHh7MzA1N30iCisgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXg5NAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoNDQsMTU0KSBzaXplIDE5eDk0CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDQsMTU0
KSB3aWR0aCA5NDogIlx4ezMwN0V9XHh7MzA2M31ceHszMDVGfVx4ezdENEN9XHh7OUExM30iCisg
ICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgzMzYKKyAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ0LDI0OCkgc2l6ZSA0OXgzMzYKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg0NCwyNDgpIHdpZHRoIDkxOiAiXHh7MzA2Rn1ceHszMDQyfVx4ezMwOEF9
XHh7MzA3RX1ceHszMDU5fSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NCwzKSB3aWR0aCAx
OTogIlx4ezMwNEJ9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
MTl4MTMzCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3NCwyMikgc2l6ZSAxOXgx
MzMKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NCwyMikgd2lkdGggMTMzOiAiXHh7MzA2QX1c
eHszMDg5fVx4ezMwQkZ9XHh7MzBBNH1ceHszMEM4fVx4ezMwRUJ9XHh7MzA2OH0iCisgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXgxNTIKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDc0LDE1NSkgc2l6ZSAxOXgxNTIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3NCwxNTUpIHdpZHRoIDE1MjogIlx4ezMwQTJ9XHh7MzBDOX1ceHszMEVDfVx4ezMw
Qjl9XHh7MzA2MH1ceHszMDUxfVx4ezMwNjd9XHh7MzA2QX0iCisgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgzNTkKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDc0LDMwNykgc2l6ZSA0OXgzNTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NCwz
MDcpIHdpZHRoIDU1OiAiXHh7MzA0Rn1ceHszMDAxfVx4ezhBMkF9IgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDEwNCwzKSB3aWR0aCA3MzogIlx4ezU1NEZ9XHh7MzA1N31ceHszMDVGfVx4ezMw
QTZ9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTl4MTcwCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDQsNzYpIHNpemUgMTl4MTcwCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTA0LDc2KSB3aWR0aCAxNzA6ICJceHszMEE3fVx4ezMwRDZ9
XHh7MzBEQX1ceHszMEZDfVx4ezMwQjh9XHh7MzA2RX1ceHszMEIzfVx4ezMwRjN9XHh7MzBDNn0i
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTA0LDI0Nikgc2l6ZSA0NngzNTIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTA0LDI0Nikgd2lkdGggMTA5OiAiXHh7MzBGM31ceHszMEM0
fVx4ezMwNEJ9XHh7MzA4OX1ceHszMDgyfVx4ezY5MUN9IgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMzEsMykgd2lkdGggMjAwOiAiXHh7N0QyMn1ceHszMDU5fVx4ezMwOEJ9XHh7MzA1M31ceHsz
MDY4fVx4ezMwNEN9XHh7MzA2N31ceHszMDREfVx4ezMwN0V9XHh7MzA1OX1ceHszMDAyfSIKKyAg
ICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDM1MSw4KSBzaXplIDE1M3gzNjYg
W2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg3LDMpIHNpemUgMTl4NTUKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywzKSB3aWR0aCA1
NTogIlx4ezMwNUJ9XHh7MzA2M31ceHszMDRCfSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDE5eDExNAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
Nyw1OCkgc2l6ZSAxOXgxMTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDU4KSB3aWR0aCAx
MTQ6ICJceHszMDRGfVx4ezg5OEJ9XHh7MzA2NH1ceHszMDUxfVx4ezMwNUZ9XHh7MzA1OX0iCisg
ICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOXg3NgorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNywxNzIpIHNpemUgMTl4NzYKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDE3Mikgd2lkdGggNzY6ICJceHszMDcwfVx4ezMwODl9XHh7MzA1N31ceHsz
MDQ0fSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDc2Cisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDI0OCkgc2l6ZSAxOXg3NgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDcsMjQ4KSB3aWR0aCA3NjogIlx4ezhBMTh9XHh7NEU4Qn1ceHsz
MDRDfVx4ezMwNjl9IgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
NDl4MzU4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDMyNCkgc2l6ZSA0OXgz
NTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDMyNCkgd2lkdGggMzc6ICJceHszMDUzfVx4
ezMwNkJ9IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM3LDMpIHdpZHRoIDM3OiAiXHh7MzA0
Mn1ceHszMDYzfSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5
eDExNAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzcsNDApIHNpemUgMTl4MTE0
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzcsNDApIHdpZHRoIDExNDogIlx4ezMwNUZ9XHh7
MzA0Qn1ceHs1RkQ4fVx4ezMwOEN9XHh7MzA2Nn1ceHszMDU3fSIKKyAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDk0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgzNywxNTQpIHNpemUgMTl4OTQKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywx
NTQpIHdpZHRoIDk0OiAiXHh7MzA3RX1ceHszMDYzfVx4ezMwNUZ9XHh7N0Q0Q31ceHs5QTEzfSIK
KyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDMzNgorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzcsMjQ4KSBzaXplIDQ5eDMzNgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDM3LDI0OCkgd2lkdGggOTE6ICJceHszMDZGfVx4ezMwNDJ9XHh7MzA4
QX1ceHszMDdFfVx4ezMwNTl9IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY3LDMpIHdpZHRo
IDE5OiAiXHh7MzA0Qn0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSAxOXgxMzMKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDY3LDIyKSBzaXplIDE5
eDEzMworICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY3LDIyKSB3aWR0aCAxMzM6ICJceHszMDZB
fVx4ezMwODl9XHh7MzBCRn1ceHszMEE0fVx4ezMwQzh9XHh7MzBFQn1ceHszMDY4fSIKKyAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDE1MgorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNjcsMTU1KSBzaXplIDE5eDE1MgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDY3LDE1NSkgd2lkdGggMTUyOiAiXHh7MzBBMn1ceHszMEM5fVx4ezMwRUN9XHh7
MzBCOX1ceHszMDYwfVx4ezMwNTF9XHh7MzA2N31ceHszMDZBfSIKKyAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDM1OQorICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNjcsMzA3KSBzaXplIDQ5eDM1OQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY3
LDMwNykgd2lkdGggNTU6ICJceHszMDRGfVx4ezMwMDF9XHh7OEEyQX0iCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoOTcsMykgd2lkdGggNzM6ICJceHs1NTRGfVx4ezMwNTd9XHh7MzA1Rn1ceHsz
MEE2fSIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE5eDE3MAor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOTcsNzYpIHNpemUgMTl4MTcwCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOTcsNzYpIHdpZHRoIDE3MDogIlx4ezMwQTd9XHh7MzBENn1c
eHszMERBfVx4ezMwRkN9XHh7MzBCOH1ceHszMDZFfVx4ezMwQjN9XHh7MzBGM31ceHszMEM2fSIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5NywyNDYpIHNpemUgNDl4MzUyCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDk3LDI0Nikgd2lkdGggMTA5OiAiXHh7MzBGM31ceHszMEM0fVx4
ezMwNEJ9XHh7MzA4OX1ceHszMDgyfVx4ezY5MUN9IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MjcsMykgd2lkdGggMjAwOiAiXHh7N0QyMn1ceHszMDU5fVx4ezMwOEJ9XHh7MzA1M31ceHszMDY4
fVx4ezMwNEN9XHh7MzA2N31ceHszMDREfVx4ezMwN0V9XHh7MzA1OX1ceHszMDAyfSIKKyAgICAg
IFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDUyMCw4KSBzaXplIDE4OXgzNjYgW2Jv
cmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxNCwzKSBzaXplIDE5eDI3MgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwzKSB3aWR0aCAy
NzI6ICJceHszMDVCfVx4ezMwNjN9XHh7MzA0Qn1ceHszMDRGfVx4ezg5OEJ9XHh7MzA2NH1ceHsz
MDUxfVx4ezMwNUZ9XHh7MzA1OX1ceHszMDcwfVx4ezMwODl9XHh7MzA1N31ceHszMDQ0fVx4ezhB
MTh9XHh7NEU4Qn0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA1
NXgzNDUKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0LDI3NSkgc2l6ZSA1NXgz
NDUKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwyNzUpIHdpZHRoIDczOiAiXHh7MzA0Q31c
eHszMDY5fVx4ezMwNTN9XHh7MzA2Qn0iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTAsMykg
d2lkdGggMTY0OiAiXHh7MzA0Mn1ceHszMDYzfVx4ezMwNUZ9XHh7MzA0Qn1ceHs1RkQ4fVx4ezMw
OEN9XHh7MzA2Nn1ceHszMDU3fVx4ezMwN0V9IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDUwLDE2Nykgc2l6ZSA1NXgzMjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTAsMTY3KSB3
aWR0aCAxNjQ6ICJceHszMDYzfVx4ezMwNUZ9XHh7N0Q0Q31ceHs5QTEzfVx4ezMwNkZ9XHh7MzA0
Mn1ceHszMDhBfVx4ezMwN0V9XHh7MzA1OX0iCisgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDMp
IHdpZHRoIDE5OiAiXHh7MzA0Qn0iCisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAxOXgzMjIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDg2LDIyKSBz
aXplIDE5eDMyMgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDIyKSB3aWR0aCAzMjI6ICJc
eHszMDZBfVx4ezMwODl9XHh7MzBCRn1ceHszMEE0fVx4ezMwQzh9XHh7MzBFQn1ceHszMDY4fVx4
ezMwQTJ9XHh7MzBDOX1ceHszMEVDfVx4ezMwQjl9XHh7MzA2MH1ceHszMDUxfVx4ezMwNjd9XHh7
MzA2QX1ceHszMDRGfVx4ezMwMDF9IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDg2
LDM0NCkgc2l6ZSA5MXgzNjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsMzQ0KSB3aWR0aCAx
OTogIlx4ezhBMkF9IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjIsMykgd2lkdGggMzQ1OiAi
XHh7NTU0Rn1ceHszMDU3fVx4ezMwNUZ9XHh7MzBBNn1ceHszMEE3fVx4ezMwRDZ9XHh7MzBEQX1c
eHszMEZDfVx4ezMwQjh9XHh7MzA2RX1ceHszMEIzfVx4ezMwRjN9XHh7MzBDNn1ceHszMEYzfVx4
ezMwQzR9XHh7MzA0Qn1ceHszMDg5fVx4ezMwODJ9XHh7NjkxQ30iCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE1OCwzKSB3aWR0aCAyMDA6ICJceHs3RDIyfVx4ezMwNTl9XHh7MzA4Qn1ceHszMDUz
fVx4ezMwNjh9XHh7MzA0Q31ceHszMDY3fVx4ezMwNER9XHh7MzA3RX1ceHszMDU5fVx4ezMwMDJ9
IgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNpcy1leHBl
Y3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5h
cnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9lbXBoYXNp
cy1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZ
QUFBQ2Fkb0p3QUFBQzdtbERRMUJKUTBNZ1VISnZabWxzWlFBQWVBR0YKVk05ckUwRVUvalp1cWRB
aUNGcHJEcko0a0NKSldhdG9SZFEyL1JGaWF3emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlPVGkwU3Jl
UmUyaApCLytBSG5yd1pDOUtoVnBGS042cktHS2hGeTN4elc1TXRxWHF3TTUrODk0MzczMXZkdDhB
RFhMU05QV0FCT1FOeDFLaUVXbHNmRUpxCi9JZ0FqcUlKUVRRbFZkdnNUaVFHUVlOeitYdm4ySG9Q
Z1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFBNEVlYTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZ
OHV5UE9VNTVlTUcxRHlzOXhGa2lmRUExTGM1L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RC
Mmx1WnNiSQpFTDFQa0thN3pPNnJZcUdjVHZZT2tMMmQ5SDVPczk0K3dpSENDeG10UDBhNGpaNzFq
TlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0eHFwCitEWENGRjhRVFNlaVZISFpMZzN4bUs3OVZ2Sktn
bkNRT01wa1lZQnpXa2hQMTB4dStMcUhCWDBtMXhPdjRuZFdVZUY1anhObjN0VGQKNzBYYUFxOHdE
aDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQQm94TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050
dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhRZjRxcjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVa
bTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1YXNlWHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1
WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1OXNmenM5NGk3UExyWFdjNjJKaXpkV201ZG4KL1dwSSsr
NnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtURW1kb3JuSVltWHhTN3hrdGhMcXd2aVlHM0hDSjJWaGlu
U2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZVWi9EUFZSbEJuTTBsU0o5My9DS21RMG5ia09iL3FQMjhm
OEYrVDNpdWVmS0FJdmJPREltYnB0VTNIdkVLRmxwVzV6CnJnSVh2OUY5OExadWE2TitPUHdFV0R5
ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5PV2xzMDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJW
TEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZmRXAwcGxrL3F2OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2
YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZSNEFleDlCYmdrTmRaMmdNSGRIUVozbjkzRkZ0a0hkeHZj
WlhGWUZyZEZGbHY4dzkzbGd4L2JiNURGWFFaYjNBWjNsOEUxCi8zblBjR3JTZGF1NlV0M1ZmYnZ2
ZmZNODl5YVZuSndrYjFLbmN5ckp5U2hlbktNakFrU0FDQkFCSWtBRWlBQVJJQUpFZ0FpMEFZRlIK
MjFBR2l5QUNSSUFJRUFFaVFBU0lBQkVnQWtTQUNDZ0NWRUE0RUlnQUVTQUNSSUFJRUFFaVFBU0lB
QkZvR3dKVVFOb0dOUXNpQWtTQQpDQkFCSWtBRWlBQVJJQUpFZ0FvSXh3QVJJQUpFZ0FnUUFTSkFC
SWdBRVNBQ2JVT0FDa2pib0daQlJJQUlFQUVpUUFTSUFCRWdBa1NBCkNGQUI0UmdnQWtTQUNCQUJJ
a0FFaUFBUklBSkVvRzBJVUFGcEc5UXNpQWdRQVNKQUJJZ0FFU0FDUklBSUVBRXFJQndEUklBSUVB
RWkKUUFTSUFCRWdBa1NBQ0xRTkFTb2diWU9hQlJFQklrQUVpQUFSSUFKRWdBZ1FBU0pBQllSamdB
Z1FBU0pBQklnQUVTQUNSSUFJRUlHMgpJVUFGcEcxUXN5QWlRQVNJQUJFZ0FrU0FDQkFCSWtBRXFJ
QndEQkFCSWtBRWlBQVJJQUpFZ0FnUUFTTFFOZ1NvZ0xRTmFoWkVCSWdBCkVTQUNSSUFJRUFFaVFB
U0lBQlVRamdFaVFBU0lBQkVnQWtTQUNCQUJJa0FFMm9ZQUZaQzJRYzJDaUFBUklBSkVnQWdRQVNK
QUJJZ0EKRVJqUUxBU2pqREpLc3l5WW53Z1FBU0pBQk5xSWdQZStxZElvOTV1Q2o1bUpBQkVnQW0x
SG9GbTVYM1dGdVFKU05hTGtSd1NJQUJFZwpBa1NBQ0JBQklrQUVpRUF1QWxSQWNxRmhBaEVnQWtT
QUNCQUJJa0FFaUFBUklBSlZJOUQwRnF5d1FwMjJ2QlBXaldFaVFBU0lRSDlHCm9GWGJwaWozKy9P
b1l0dUpBQkhvWkFSYUpmZXJhRE5YUUtwQWtUeUlBQkVnQWtTQUNCQUJJa0FFaUFBUmlFS0FDa2dV
VENRaUFrU0EKQ0JBQklrQUVpQUFSSUFKRW9Bb0VxSUJVZ1NKNUVBRWlRQVNJQUJFZ0FrU0FDQkFC
SWhDRkFCV1FLSmhJUkFTSUFCRWdBa1NBQ0JBQgpJa0FFaUVBVkNGQUJxUUxGRWp3Ky9QQkROM1Rv
MEJJNStoZnBzODgrNjRZUEg5NVVvMy85OVZmMzRJTVB1bUhEaGpYRnA5V1pPUlphCmpURDVFNEhP
UUlEdmV2MStvTnl2anc5VGlVQmZSS0JTQmVUU1N5OTFxNisrdXB0eHhobVR2eVdYWE5JZGROQkI3
cWVmZnVxTCtKVnUKMDJLTExlWVdYWFJSZCsrOTk1Yk8yMWN6UFBQTU0yNlhYWFp4czgwMm01dC8v
dm5keHg5LzNGQlRIMzc0WWJmMTFsdTdLYWVjMG1IYwpkYnFpeDdIUVVEY3pVNGNoUUxsZjNDRjgx
M3RpUkxuUE9VRFBVY0dZL29SQXBXWjROOXRzTTRlL0JSWll3RUc0akRQT09PN3BwNTkyCkUwMDBV
WC9DdEc1YjU1MTNYdjNDUDgwMDA5U2w2MCtKYzg4OXR6dmdnQVBjaFJkZXFNMGVNS0N4WVFuRmJ0
WlpaM1dQUHZxbysreXoKejF3bm01OURRemtXK3RNbzc3dHRwZHd2N2x1KzZ6MHhvdHpuSEtEbnFH
Qk1mMEtnMGhVUUF3N0NGbTc2NmFlbjhtR2cvTzRQR1RMRQpmZlRSUi9xMVA1WFVieCtoY0VBaG0y
NjY2UlNEUmhVUUtCeVRUejY1VHV6QnFOUHZKNmczRnJDTjdOaGpqKzF6WTZLdnRxdlBkVlFECkRh
TGN6d2V0M3J1ZW42dHZwMUR1ejlhamcvdXFmT3lyN2VyUmdZd29oVUJMRkpBeHh4eFRLekg2NktP
WHFreC9JVzUwZ3QzWDhSbDEKMUJIRDBmeEcyMnY0ZHZvS0NOcG5kVTIzOVpCRERuRzMzbnByT3Jy
cm4vdHF1N3ErWXlwb0FPVitmUkR6M3ZYNnVmcCtxc2w3OHh0dApzZUZMdWQ4b2dxM0xSN25mT215
N21YTkxGSkIyQTlMcFg3cWJ3ZVBubjM4dXpQN0REejhVMG5RcVFkYlpvRTc3QVdsbWZEWFNOeGRk
CmRKRTc2cWlqR3U2eVgzNzVwZW1EL0EwWFhpZGpzKzJxdzVwSi9SQ0JadDdMVG9lTGNyLzNlNmla
OFVXNVA3TC9LUGRIWXNGUUxRSWQKcVlCY2ZQSEZidVdWVjNhcnJMS0ttMnV1dWR4cXE2M21icnp4
eHRxYXl4UE9sK3kxMTE1dW1XV1djYi85OXBzNytPQ0QzUlJUVE9FMgoyR0NEaEJhQ0hOcjNpaXV1
NkNhYmJESzM4TUlMdXpQT09FUHBFeUlKdlB2dXUrNllZNDV4Zi96akh6WDYvdnZ2ZDJ1dHRaYWJl
dXFwCjNTS0xMT0x3RFBmKysrKzdJNDg4MGcwYU5Nak5QdnZzYnIvOTlvdmU2dlAxMTErN3l5Ky8z
SzIwMGtydWtrc3VVWDc0aHdranZuYmoKQVBYeXl5L3Z2dm5tRzIzTGZQUE5wK2RvL3ZDSFAyUWVx
RDcxMUZQZHNzc3U2dzQ4OEVBM2VQQmd0L2JhYTdzTExyaEErVjU5OWRWdQo2YVdYMWpwdXQ5MTJT
Vms0WndFc1VQYzU1cGdqaVVlZ0hSaFlnYWVkZHByMkwvYVBMN1hVVXU2d3d3NVRISkNlcFlERWpn
bmpYOCtQCjVSVXp2dkxLcWRjM3lKTTNGczQ1NXh3ZEIvanhlK3l4eDNTOFlzeCs4c2tuZVVVbDhS
aEQ2SE1jNklmaGg0VVdXc2dkZi96eFNib0YKcXU3bm1IZXNtWFpadmVuM2JRU3FmQzlqeGlUUXJQ
cGR5T3FodkhlZGNwOXkzOFpMTS9LUmN0OVFwTjkxQ01oRXB5a25EZmIyWjR5MgoybW9yalpNOXdS
WVY1Y3VQaHBlSnRKOXp6am45RzIrOG9YbmtTNEtYU2FyeTIzYmJiUk0rNTU1N3JoZmxRT1BsTUp2
ZmM4ODl2U2dNClhyWjkrUWtubk5DTGNQZWZmLzY1bHdtWmwwbS9sejJJL3J2dnZ2TWJiN3l4NXBI
SmZzTHJubnZ1OFN1c3NJTEdqelhXV0Y0bXczN0wKTGJmMG9pVDR2LzN0YnhvdmlvMEhuVXo0dlNn
cS9yenp6dk15aWRlMGswNDZLZUdWRjNqeHhSZVY3M2pqamFkNXpqLy8vSVJVck1oNApPVUN0OFRQ
Tk5KTmZicm5sL000NzcremxESUNYeWFmR3kvWUdMNGVya3p5WFhYYVpuMlNTU1R6d2dSTUZUSEU2
OU5CREV4cVpmR3BlClVYaVNPQVNlZU9JSmpVZS9tV3NIQmlnTDljVDRFQVhPZi9IRkYxbzgrZ2FZ
MnpqNjRJTVByRnErekppd1RKdHNzb255QWthaEs4TXIKWm55RnZNTndVZC9VR3dzLy92aWp2K3Fx
cTdUK0dKUGZmdnV0L2dHM2V1N09PKy8wbzQwMm1qL3V1T01TTW94N1lCcmlVSFUveDc1agpqYlly
YVF3RFRTTmc3MWY0M2pmS05Jc1g1WDVQTk91OTY1VDdsUHMyWWhxVmo1VDdoaUQ5UEFTeVpIVWVi
YnZqUjg1QUd5dzVxM0dOCi9oQmg4Z1IrdDkxMlcwMXRNTW1XbFJCTmsrVzhKRTAwZjQzRHhBdVRO
cmgzM25uSFErakQ3YnJycnFwSTZNUHYvK1NMbCtaQk9aaU0KbVlOeUludElOZTJLSzY2d2FQVXhn
UWM5Sm9TZ015ZW1kRFZlVEw1YVZLRy8zbnJyYVo1UUFVR20yMisvWGVPaGFEejMzSE1KSHdnbQpL
MTlXZXBKNE1YZXNtQ1FSRW5qbGxWZThXSk5Lb202KytXYmxtVlpBdnYvK2U0MUhtMExYRGd6d280
dHk1ZXQrV0xRcWpHZzcwc1JtCmZwSldka3dnWTU0Q1VwWlgwZmhLS3BrS3hQUU5zdVNOaFJ0dXVF
RnhrQlhBRk9mOHh4MTIyRUh6UUdrMkp5czRHdmZYdi83Vm90U3YKc3AvTHZHT050S3VtNG54b0Nn
RzhXL2JYRkNQSmJIemdtNlBjTnlSNitubnZPdVgrTDU1eWY4UjRhVVErVXU3M2ZOY1lVNHRBbHF5
dQpwZWk5cDQ3WmdpV1RJaWRmNy9WUUxyWVZoVTRFbExOdFJQdnZ2MytTSktzRkdwNTAwa21kQ0hn
Tnc1S1NyS0M0dDk5KzI1MTU1cGx1CjNISEhkZklGT1BtNysrNjdFOHRjRHp6d1FNSnI3TEhIZHJK
eW9zL1k4aFU2YklHQys4dGYvdUpBWjI2ZWVlYlJJTFpseGJyeHh4OWYKU2RQYmpOQUdPSmlSTmI1
NEhtT01NZHlKSjU2SW9CT0Z5WDMxMVZjYUhqaHdvQk5GUzgzWHdzSUVITzdSQ0xlZmFhVDhTNWRs
eitZYgpYYXN4d0xZSWJCZkQxaTlzWVF1ZEtKRnVoaGxtMENpclZ5TmpJdVFaaGh2aFZXOThoYnpU
NGRpK3lSc0x4czl3c09kNnZxelV1WDMyCjJVZTNEUnJkQkJOTW9FRmM4aFc2cXZxNTdEdG1kU2pU
THN0RHYyOGlVUFY3V1haTVZ2VXVGUFZPM3J0T3VVKzVueDQ3WmVRajVYNGEKUFQ1M0V3SWRvNEE4
Ly96elRyYWI2Q1RVckZtRVFPSThCcHhzejFFenRnaWJNZ0RGSVcxQkEvdm5zY2NXQ2dnT2hJVi84
aVhjeVJZYgozUzhQUGtWT3RrMWxrdGo5SnFoM0t4M093ZUQ4Q3R4cnI3Mm12bnh0ZEppMEgzMzAw
VHFabDFVampjZEZmcTF3VldEdzhzc3ZxMkk0Cnl5eXpaRllSN1FsZEkyTWl6QitHRytGVmIzeUZ2
TlBocXZxbXpBOFJsTHAvL2V0ZkRoT2ROOTk4MC8zakgvL1FjeUNvRy9hZ3g3b3kKL2R6b08xYW1Y
YkgxSmwxM0lsRDFlOW5vbU14Q3I4eTdrSlcvMlRqSy9Sa3lyUVJtelFYeXNLNTZmT1dWZzNqSy9S
OWN2YmtWNVg2OQowZE0vMHhxNzhhMEZXTm5FT3ExSVdGSDRPbzRKS3I3Mmd4YTNYZGR6bU96Q3dU
WTlEam8zNDh5Y2NQb0ZTajgzVTBaUlhxenNmUHJwCnA4bmhlUnd3eG0zcUcyMjBrWHZxcWFmMFlM
bWNHM0Z5SHNWWmZZdDRsa2szbnVrMnA1L3I4WHpwcFpjMEdhczY5Wnp4ckhKTVZNbXIKWHQyUlZs
WGZHQTVGNVZtNm5KdFM0d1hJZC9qaGgrdjdBcU1IWmZpVTZlZEczN0V5OWJHMjBlK2JDRlQ5WGpZ
NkpyUFFMZk11Wk9XdgpJbzV5dnllS1plWUNWWSt2bnJVWkdVTzVQeEtMckJEbGZoWXEvVHV1MTFk
QVlQRUpYMmh4YVNHY25PSEFwdUlldlFMRlJBNklhN3hkCldOZURLSWl3Slc5OEFla0w3c3N2djlS
bWhKYXJsbGhpQ1ZVK3R0bG1HMTBCT3YzMDA5VVNWcWUyRjZ0UWNHKzk5VlpVRmFzY0UxWHkKaXFs
OHUvdEd6ZzI1UC8zcFQ3cFNKdWRzbkcwZmk2bHJvelI5N1IxckZBZm1LNDhBNVg0Y1pwVDd6YzBG
S1Bmanhsa1pLc3I5TW1pUgp0aDRDdmE2QWlHVXIzWmFEbFFwb3lITG9PdFBrN0FzdnZLQmJ0TER0
eWM0SzFHdVlUZFJobGpadkN3ck05dHI1aVhxOGVqc05kMlc4Cjk5NTcrbVhkWG40NUtLL1ZFa3RZ
VGl4eXVUdnV1RVBQdHR4MDAwM3UxVmRmcmFseXA3UVJXd3Jnbm5ubUdWVTBheW9aUE5pWGtpckgK
UkpXOGdxcG1Cc3YwVFNhRDN5TU5oM28wbHJibGxsdXFxVjZZaFc2WGEvUWRLOU91ZHJXRjViUVhB
Y3I5WXJ3cDk1dWZDMUR1RjQregpzaFNVKzJVUkkzMGVBaTFSUUhEWU9NYUoxUWYzMEVNUDZhRnJu
T1BZZnZ2dE5SdnVxa2k3aHg5K1dLUDIzWGZmZEZMbWlna09zZytVCmc5cTRQd0ZiazZEWWhPNklJ
NDdRQTk3cGN3Y2hqWVd0UFZWTTVIRmZDWno1Vm9iNVdXVmdRb3M2NEs0TWMxQ3N4QVNxUGVwOUlI
dnYKdmJjKzR3d0FuSjFSU1Nza1lpMUwwN0hTRkh0K3BRb01GbHh3UVNjbWsxWHB3MTBxb1VQL2ZQ
YlpaeHBsQ21Pall5SnJCYTFSWHFoUQpGcit3N3Vsd1ROOGdqNDBCODQyUEtablljaGZqMElkUFB2
bWtrdG8yTnp4WW5QVmREQytqelJxSDZmeGwzN0dZZG1GYjRlT1BQNTR1CmlzOWRnSUNObmFLcVV1
NzNSQ2pyZmFQY2Q2N01YQ0JMVGxQdTl4eHJXVEgyN21hTnd6UTk1WDRhRVQ0M2pJQzh0RTA1S1Rn
eHlXaU0KRmw5OGNZMlRnOU5lSnBVV3JYZEF5T1JTNzdPUVE3SnE5amE4MjBPV203MXNIZEY0bUNj
MEp4TTBENU9rc3NmU3d5eXR1YnZ1dWt2TApFU1hDZi9UUlJ4YWQrRmRlZWFXWHI2MUtJNWFsdkh3
ZDluSnhvUmRyVVY0dTQxUFRyMFlzbHF5OGJQTlNXcG5FV2JUNmRoY0l6THVHCmJ0aXdZVW9QTTRK
b1Y0eERPNENaM0hSZFF5NlRSWTFIbWx3aW1LU2hETmx5cHZlWEpKRVNrTXY3dkNnY1laU1hDK2lV
MXVvaUZyTzgKSEtSVXZyZ25SU3lBZVZuMThiSmx5OHNaR28zZlk0ODkxSHd2R0xVREE1aFlOblBI
TU9HS2Rzc1pGcjBiWkp4eHh0RTZ3WXp0TmRkYwpvMjByT3lhUWFZRUZGbEErNFowb2lDL0xxMmg4
Z1dlV2kra2I1TXNiQzJMSlIrc1BQRVJCOTNJSnBzZFlydWZzSGhtNU5GUEhqeWg0CmFvSWFXTXRo
ZWc4VGovLzV6MytVUlpYOVhPWWRLMnJYdGRkZXErM0dPeUFXN09vMWwya05JSkFscXh0Z28xbXll
Rkh1NTZPWjk2NVQKN20vbEtmZEhqSnNpK1pnMXVpajNzMUJoWEloQWxxd08wM3N6UE5LSWU0TzFD
QnVIT3g1V1hYWFZaQktCTkV6cTVjdW5Ub1JOR1FqegoyRVRUaXNmbGRPdXZ2NzVlSnJqNzdydDcr
UUxpMTFsbkhiL0ZGbHZvaFd4R2gwdjJvRlFZTC96NG5Yenl5WmFjK0xnZlJGWUNFanBNCnlNUmNx
Y2RkR09iRUhLOWZZNDAxRWhxNWhkM2pEbzNodzRkN3NUS1Y1QmVMV242MzNYWlRwVXEyT25uY3ky
SGxyN25tbXY2KysrNHoKbGoxOFhQNG5xemRlRG1Ccm5tbW1tY2FmY01JSkhrb0NuUDBRUVFIYmFh
ZWQvTkp5Z1NKc3g4dDJNMVUwb0lTRkR1WEpDbzlmZDkxMQovVmxubmVWMzNIRkh6WU83SDBJM1pN
Z1FMOHZRU1ptb2czenRVRVVQUE9UMllTOWYybjA3TUxCNllXSS80NHd6SnRqaElzbGJicmxGCjd6
VUJwcmdqeFM0cFJKN1lNWUc3UlRiZmZQT0U3N1RUVHVzUE9lU1FCT015dkdMSGw3VXA5SXY2cG1n
c2dOZW1tMjZxN1lCeURTVXgKM2Y5aGVRaER1YlIrbm0rKytmd3BwNXlpZWNSOHRTcmhjajdFeTBw
WVMvbzU1aDJ6K3Racmw2eHk2a1dpZUtjV1cyd3h5MEsvSWdSTQpWc0Z2MW9XOEtQY3A5K3Y5OXRs
WW85eXZQd2NBVHZYa28rRVkrcFQ3SVJvTVp5RVF5dXFzOU42TUd3V0ZTd1ViZHVGKzdpWloxZFFC
CjI0dGtVcTZXZk9RMjhPU09qaHFpeUFmVUM5WlJjUEFSZDJ5WWVkWEk3RzBoKys5Ly8rdlFUdFFQ
QjRweHR3Z3d3SmFsTE10ZzJMS0UKKzFGd0x3aTJYRTAxMVZSMUxZUEJRcEpNK2hOZTJPWmtXMkxh
MHNDTVFuQ3VCVzJURyswMUZWdU96Tnh3QnJuaVVkV1lxSEo4cGV0YQp0bS9TK2UwWi9Ucnh4Qk9Y
R3ZzZmYveXhtMktLS1l5Rit1M282ekx2V0wxMm9WOUVpWGJZSWltMy9OYTBndy9OSVZDbHJLNlNW
OWlxCkt0L0xNbU15ckVNN3c1VDdUcTA3VXU2UEhIWDE1T05JcXRvUTVYNHRIbndhaVVDclpQWElF
aG9QZGF3QzBuaVR1ak5uK29lb08xdkIKV2hPQjVoSEFaWld5dGNESlZyem1tWkZEZ2tDVlAwUlY4
a29xMkE4RGxQdjlzTlBaNUV3RUtQY3pZV2s2c3BObGRVc09vVGVOR0JrUQpBU0xRTHhIQXlvZWMw
YUx5MFM5N240MG1Ba1NnUHlKQXVkOGZlOTI1anJtSXNIL0NQN0xWSDM3NG9UN0l1Wk9Sa1F3UmdY
Nkd3T0RCCmc1MlplZXhuVFdkeit5RUNsUHY5c05QWjVCNElVTzczZ0tSZlJIQUZwQU82V1E1UE96
azByRFhCUll4aUljczk4c2dqSFZBelZvRUkKdEJjQktoL3R4WnVsOVI0Q2xQdTloejFMN2l3RUtQ
Yzdxei9hVlJ1ZUFXa1gwblhLRWF0SURwZE9oVzcwMFVkM2d3WU5DcU1ZSmdKRQpnQWcwakVDVmU0
R3I1TlZ3ZzdvOEkrVitsM2NncTA4RXVnQ0JUcGJWVkVDNllBQ3hpa1NBQ0JDQlpoR284b2VvU2w3
TnRvdjVpUUFSCklBSkVJQnVCVHBiVjNJS1YzV2VNSlFKRWdBZ1FBU0pBQklnQUVTQUNSS0FGQ0xS
VUFmbmhoeC9jZDk5OUYxM3RWdExIOEk2aHNjYkUKMGhiUkZhV1hLYTlLWGxadWxoOWJEdkxHME1i
UVZNa3JwcnlxYUdMckRUcHpNV1ViTFgwaTBHa0lsQjIvcmFTUDRSMURZeGpIMGhiUgpGYVdYS2E5
S1hsWnVsaDliRHZMRzBNYlFWTWtycHJ5cWFHTHJEVHB6TVdVYkxYMGkwQmNRcU53S2x0elk3TTQ5
OTF5SGkrOXd3ZHkzCjMzNnJsd0N1dGRaYWJ1MjExKzZCV1N2cFkzakgwRmlsWTJtTDZJclN5NVJY
SlM4ck44dVBMUWQ1WTJoamFLcmtGVk5lVlRTeDlRYWQKdVppeWpaWStFZWcwQk1xTzMxYlN4L0NP
b1RHTVkybUw2SXJTeTVSWEpTOHJOOHVQTFFkNVkyaGphS3JrRlZOZVZUU3g5UWFkdVppeQpqWlkr
RWVoekNNaHRzVTA1QVFRM3FldWZySGI0OWRkZjM5OTMzMzNLODZXWFh2SnlxNmVYeTViOFF3ODk1
UC9mLy90L05XVzFrajZHCmR3eU5WVGlXdG9qdXNzc3VpOEtvaUErd2pLRkIvV1BwcksxcHYweitH
Tm9ZbXRoNngvQnFKMDFzdlVPTVkrb1gwak5NQkJwQndPUTAKL0daZHlLdnMrRzBsZlF6dkdCckRK
NWEyaUk1eXY5cmZxeUs4WTM4ZnErS0Q4UkxEeThaVkkvUmhYb2FKUUN3Q29heU96ZE11dXFaLwpp
Y0xHN2JiYmJ2NzIyMi8zdi96eWkxOXV1ZVg4TGJmYzRzODg4MHcvNzd6emFudE9Qdm5rbW5hMWtq
Nkdkd3lOVlRpV3RvaHVxYVdXCmlzS29pQSt3aktGQi9XUHBySzFwdjB6K0dOb1ltdGg2eC9CcUow
MXN2VU9NWStvWDBqTk1CQnBCSUpUVmplUVA4NFM4eW83ZlZ0TEgKOEk2aHNiYkcwaGJSVWU1WCsz
dFZoSGZzNzJOVmZEQmVZbmpadUdxRVBzekxNQkdJUlNDVTFiRjUya1ZYNlJtUW9VT0hPaEcwN3Ji
YgpibE96c2l1dHRKS1RGUkMzNnFxckNnYk9qVG5tbU9yYnYxYlN4L0NPb1NsYjF5S2ViNy85ZGhS
R1JYeUFaUXdONmg5TFoyMU4rMlh5Cng5REcwTVRXTzRaWE8ybGk2eDFpSEZPL2tKNWhJdEJKQ0pR
ZHY2MmtqK0VkUTJQNHh0SVcwVkh1Vi90N1ZZUjM3TzlqVlh3d1htSjQKMmJocWhEN015ekFSNkFz
SVZLcUFpTmJrUmh0dE5IZjMzWGM3V1FGUmZPNjg4MDZkY0gveHhSZHV5aW1uck1Hc2xmUXh2R05v
ck1LeAp0RVYwQXdZTWlNS29pQSt3aktGQi9XUHBySzFwdjB6K0dOb1ltdGg2eC9CcUowMXN2VU9N
WStvWDBqTk1CRG9KZ2JManQ1WDBNYnhqCmFBemZXTm9pT3NyOWFuK3ZpdkNPL1gyc2lnL0dTd3d2
RzFlTjBJZDVHU1lDZlFHQjBRNFYxMHhERGp2c3NDUTdWanFtbTI0Nk45Tk0KTTdraFE0YTR6ejc3
ekgzeXlTZTY4b0ZiWHpmYmJETUhRV3p1OGNjZmJ4bDlETytubm5vcXV2d1lmbWhiRWQzNDQ0L3Za
cGhoaGtLTQppdmdBeTlqNngvQUsrOFg2eC93eStXTm9xNngzREs5MjBzU01nV2JmQStzWCtrU2dE
QUtockc1UzdMdVFGK1UrNVQ3bGZ2RVlvTnd2Ckk2MUlXeFVDb2F4dVZ1NVhWYWVFajJqdFRUbGhs
QnhDLy9EREQ3MVl1L0kvL3ZpalIxZ1VFT1g5L1BQUEorR3dzRmJTeC9DT29iSDYKeHRJVzBSV2xs
eW12U2w1V2JwWWZXdzd5eHRERzBGVEpLNmE4cW1oaTZ3MDZjekZsR3kxOUl0QW9BcUdzYnBTSDVR
dDVsUjIvcmFTUAo0UjFEWSsyTXBTMmlLMG92VTE2VnZLemNMRCsySE9TTm9ZMmhxWkpYVEhsVjBj
VFdHM1RtWXNvMld2cEVvRkVFUWxuZEtJOVc1YXY4Ckp2VFhYbnZOeWNGek4zRGdRRGZ6ekRPNzRj
T0hPK3gvblh2dXVkMXFxNjBtV05TNlZ0TEg4STZoc1JySDBoYlJGYVdYS2E5S1hsWnUKbGg5YkR2
TEcwTWJRVk1rcnByeXFhR0xyRFRwek1XVWJMWDBpMEFnQ1ZkNkltK1pWZHZ5MmtqNkdkd3lOWVJ4
TFcwUlhsRjZtdkNwNQpXYmxaZm13NXlCdERHME5USmErWThxcWlpYTAzNk16RmxHMjA5SWxBSXdp
a1pYVWpQRnFWcDNJRnhDb3FsckRjTysrOG8rYyt4aGxuCkhJdk85VnRKSDhNN2hzWXFIMHRiUkZl
VVhxYThLbmxadVZsK2JEbklHME1iUTFNbHI1anlxcUtKclRmb3pNV1ViYlQwaVVBWkJLcjgKSWNy
alZYYjh0cEkraG5jTWpXRWNTMXRFVjVSZXByd3FlVm01V1g1c09jZ2JReHREVXlXdm1QS3Fvb210
TitqTXhaUnR0UFNKUUJrRQo4bVIxR1I2dG9tMlpBdEtxQ3BNdkVTQUNSSUFJbEVlZ3loK2lLbm1W
YndsekVBRWlRQVNJUUF3Q25TeXJLN1dDRlFNR2FZZ0FFU0FDClJJQUlFQUVpUUFTSUFCSG92d2hR
QWVtL2ZjK1dFd0VpUUFTSUFCRWdBa1NBQ0JDQnRpTkFCYVR0a0xOQUlrQUVpQUFSSUFKRWdBZ1EK
QVNMUWZ4R2dBdEovKzU0dEp3SkVnQWdRQVNKQUJJZ0FFU0FDYlVlQUNramJJV2VCUklBSUVBRWlR
QVNJQUJFZ0FrU2cveUpBQmFULwo5ajFiVGdTSUFCRWdBa1NBQ0JBQklrQUUybzRBRlpDMlE5Ni9D
M3oyMldmMWNzb1FCYmtSMWcwZE9qU01hamhjSmEraVNyU3pyS0s2Ck5KTCs2NisvdWdjZmZOQU5H
emFzUi9iZWJ0dkhIMy9jbzA1NUVaM2Nqcnc2TTU0STlDY0VLUGM3cDdjN1dWNVM3bmZPT0dsTFRa
cTkKWWwwcTZlMnZXVjdNM3pjUmVQcnBwLzNPTysvc1o1MTFWaDByTXVHdGFlakFnUU0xL3A1Nzdx
bUpiK1NoU2w1RjViZXpyS0s2bEVsLwo2S0dIL0ZaYmJlVW5uWFJTeGYzU1N5L3RrYjAzMi9iRER6
LzRxYWVlMnN0RnBqM3FGVVowZWp2Q3VuWkMyT1EwL0daZGxieWFyUXZ6CmR5WUNsUHVkMVMrZExp
OHA5MXN6WGpwWlZuTUZSSHFIcnJVSXpEMzMzTzZBQXc1dzc3Ly92aFkwWU1DQW1nTG5uWGRlTjhr
a2s3aHAKcHBtbUpyNlJoeXA1RlpYZnpyS0s2bEltZmRGRkYzWC8rdGUvM0ZSVFRhWFp3b3VLakU5
dnR1MS8vL2QvM1FjZmZPQk9QLzEwcTA2bQozK250eUt3MEk0bEFQMEdBY3Irek9yclQ1U1hsZm1l
Tmw3YlVwbG1kU3lySkZaQWNFSC81NVJjdkU3MmMxUGpvcXZqRWw5Z2F5dGxuCm4xM0hTdGFYN1o5
Ly9ybXlRcXZrVlZTcGRwWlZWSmV5NlJ0c3NFSHVDZ2g0NWJXdDFlTnhrVVVXMFhxSlV1cS8vZmJi
d21ZMTJvNUMKeG4yTW9FcFpYU1d2UGdhenIrcjlxSXBQYitOTHVkL2JQVkJiZnFQeXN0WGprWEsv
dHArcWV1cGtXYzBWRU9tZFZybEREam5FM1hycgpyVTJ6cjRwUDB4VnBrc0dvbzQ0WWJ1YUg3Tkty
SW1GYTJYQ1Z2SXJLYm1kWlJYVXBtMjUxejFvQkFTOUxUL050NVhoOCtPR0huU3pGCnU4a21tOHg5
L3ZubjdwSkxMa2tYMytQWjZsbTJIVDBZTVlJSVZJQkFWZTlIVlh3cWFGSlRMRXplbXg4eXMzYzNq
R3MwWENXdm9qcTAKczZ5aXVwUk50N3FYbFpldEhJK1UrMlY3c1cvUXQxd0IrZTIzMzFxT2xHaUto
V1ZnVWxPMXE5ZTJpeTY2eUIxMTFGRk5GMWtWbjdBaQpNWGlGOUdGWXZvTDBPRVFlcHFmRFAvMzBV
enJLNVFtK0hvUTVFZkpsUGljbExqcDJMTlRyMzdpU2FxbGljY2Nod1U1MXJSaVBZVnRQCk8rMDB0
K3V1dTdwdHR0bEdvLy9uZi80SEJ4WkNrcGFFVVVhNm5QUnpvd1dYZldjYUxhZVQ4bFg5N21TMUxh
Wi9ZdC8xTFA1NWNmWGEKVnRYN1VSV2ZzQTB4ZUlYMFlianNHS2JjSDRsZUxPNlUrNVQ3STBkTlB3
bkp5OUdVRTVoMHV3VDgwT0ZnNjhZYmIrdzMzWFJUditTUwpTL29kZHRqQjR4QlVsaE5oNjFkYWFT
Vy84c29yK3pubm5OT3Z1dXFxZnNpUUlUV2tQLzc0bzcvNTVwdTlURXc4bHVyZ1VNWXl5eXpqCnh4
MTNYTC9LS3F2NGp6NzZxQ1lQSGs0NTVSU2wrZnZmLys3WFcyODl2OVphYS9uenp6Ky9oazZFcGYv
SFAvN2hWMWhoQlQyWXU5QkMKQzNuWmYrNUZJTlRRMlVOUjI4NCsrMnd2azJ6Rlpmenh4L2ZnaHor
eDhHQXNmRXlaOWZoY2RkVlZmcW1sbHZLenpUYWIzM2JiYlJPKwpGMXh3Z2JZRDhWajZEdDFUVHoz
bDk5eHpUODJIdGgxMDBFRis4c2tuOSt1dnYzNUlsaG4rejMvK28vbTIzMzU3THhORXYrQ0NDL3Jq
Cmpqc3VreGFScDU1NnF2WW5lUC81ejMvMmh4NTZhSElJWGZiM0ovbUdEeC91TDd2c01yL2lpaXY2
aXkrK09Jbkg5aCtVaWNQU3l5MjMKblAvNjY2KzF2bkkyd2NzWEhEOW8wQ0QveUNPUEpQUUk1UEV5
b3BpeEFOcWkvZ1ZOWGxtTmpsUHdSUHZ4SG1DY3l2NXBIYXRISEhHRQp2K21tbS93ZGQ5emhQLzMw
VTVEVmRUSGp5aGhzc3NrbU9rYUJmK2p5MmxadlBJYjVHdzFqWE1qS2gvYjFtMisrNmVXTHFkWVA3
MzA5ClY3WWRJUyswZmQxMTEvV2JiNzY1K3BCQmlNT1l3eUZhdUViZU5lU0xmV2V3SmZIb280LzJm
L2pESDVETjMzZmZmWDdOTmRmMGNrYkgKTDd6d3d2cU0rUGZlZTg5alBFRCs0ZjNlZDk5OXZVeUdr
UlRsOG1SMVZPWVVVUjZ2bUhmSFdGSHVUNnEvQytuZm1ucnZXU05qa1hLLwplQTZBTVJremR2TmtJ
K1crdmRYbGZjcjk3cEg3NVh1M2ZvNWFyYUUrYldacStvY0lFOXV0dDk1YUo3WHk5VW56WU9JOXdR
UVQrTkZICkg3MUdDY0VrYy9EZ3dhcDB2UEhHRzBxTFBKdHR0cGxPUE1LSjllMjMzKzZYWFhaWmpa
ZkR5bjYzM1hiVHlTbUU5L3p6ejYveG1EeUUKRGhNSjdDTzNldURIR3J3eEdUWW4yeno4MGtzdjdT
Ky8vSEpWT0w3NzdqdFZuTkF1dENOMHNXMkRNTUlQQlVleHZvMEFBQ0FBU1VSQgpWSGhBcWNFK2R2
elpaQ0cyekNJK3h4OS92SmFCU1d2b25uamlDWTFIK2ViT1BmZGN0U3lFT0V4dW9ZaEFHVU9mVERq
aGhMcHYyV2pUCi9wMTMzdWxIRzIyMEdvVURlSUZYZXZLS05rSnBnSUx3eFJkZktDdmdkdGhoaHlW
MU1nWGt4UmRmMVBqeHhodFAwMExGRUQ4R2NtaE8KNDJlYWFTYWRFTUtTMXJISEhxdVRNcFE5NXBo
aitrY2ZmVlRMcU1jTEJERmpJYlovNjVYVnlEaEYvV1MxekU4ODhjUmV6Ti9pMGIvMQoxbHQrb29r
bTB2WXZ2dmppT2puR1JLS2VpeDFYeGlOcjRsNnZiVVhqMGZnMjZ1TzkzR1dYWFpMc21JU2puL0VP
MVhObDJ3RmVHS2RRCnBoZFlZQUgvMldlZkplenZ1dXN1TFJQbGhuaVhlZGZBTFBhZGdlVTN0QS9s
alRYV1dQbytiTG5sbGw2Mm52bS8vZTF2R2ovRkZGTjQKMEVIK0hYUE1NZjY4ODg3VGp3dkljOUpK
SnlWMUx3cUEzdjZLYUl2U2pROTh1TmgzQjdTVSsvVi9hNHJlc3pKamtYSy9lQTRRTzNicgp5VWJL
ZmJ6WmpUbksvZTZSKzQzMWNINnVrVFBVZkpxNktla2ZvblBPT1VkWEVmQ2xJSFJRSmtBYmZqVkhH
SEczM1haYlNLb0t3MXh6CnphVnArRXBtRGw5RnJUeE1GTXhoNG9VVkIzd1p4eGRnYzZ1dnZyb0hu
OUM5OHNvclhpd3lKVkg0bW84Zi9OQzkrKzY3U1RtaGFkZ3kKYmJ2aGhodVVCMVptMHE1TW1mWDQ0
TXN3OEVncklOOS8vMzFTLzdCc09ZK2k4VkFtb0NEQjRlc3JCR3M5aDlVcmxJTkprVGw4SFViYwpY
Ly82VjR0U0g0b0Q0aDk3N0xHYWVCeGdnOEtBTkp0a0d3RysrQ00rVkVDUUJxR09lT1I3N3JubmpO
empCeHB0UmhwV3dFS1h4eXRtCkxKVHBYNVNaVjFiWmNRbzgwRWFzQW9VTzR3UnQzR2VmZmNMbzNI
Q1pjUVVtV1JOM1k1N1h0bnJqMGZJMjR1TzloZW5kRjE1NElja08KdVlEMjR5L3MvNFRnOTBBajdZ
QmNBZDhiYjd3eHpVNFZRYVNGQ2tqWmQ2M01PNE9QSHBCZEtQT0tLNjZvcVkrTmN5Z3BvRE4zNzcz
MwpLajFXbDJNZCtOdGZiSjQ4T3VNREg2N011ME81UHhMVnZOK2FldTlaMmJGSXVWOS9EbEJtN0tM
bjhtUWo1ZjdJY1IwYm90enZMcmtmCjI2K3hkSldlQVpFZlNMZi8vdnU3ZGRaWng4bldJL2x0R3Vs
T09PRUVkOTExMTdtZGR0cEpJMEVybXE4ZWRKVXZleU1KSlNTVE1iZmQKZHR0cEhQaVpreS8xR3NR
WmdqQ1BmRGwyY3NlRXd6N1YxMTkvM2NpZDNHWGdaSEt0Sm1EbEs0Zkd5OVlGSjFZZ05QejIyMis3
TTg4OAowOGtXTGlkZnlKTy91KysrMjhuWFo2VjU0SUVIMUMvVE5zM3crNy8wZVljeVpkYmpVeS9O
eWpUZmFHVWxRWU55LzRNVElhcmg2YWFiCnpzbTJOeVBKOU9WTHJKTkpzSk1Wa3lSZFZyUTBqQXVt
ek9Gc3hvRUhIdWptbUdNT0p5c2dGcTIrS0QxdWhobG0wSEM2WGpaVzB2R28KSnh6NmRwNTU1dEV3
L28weHhoanV4Qk5QMUdkUkVOMVhYMzJWcE9YeEtob0xqZlJ2WGxsbHg2bXM0amhScWpDVFM5cUJn
S3g4NlBNegp6enhURTUvMTBPaTR5dUtGdUx5MkdYMjZyeXkrVWYvYWE2L1ZjU2dmREJJV3NnMUt4
eElpY0Jha0VaZlZEbUM5MzM3N09ZeEoyUjdZCmcrMlVVMDZwY1ZsdFRNZlpzL25HTFBhZEFmM1lZ
NC90Yk15c3R0cHF4a0o5MlphbC9sLys4aGVsczBSN0g4eTB0Y1gzaGwvbTNhSGMKTC82dENmc3dQ
YTdxcFJtdCtVWkx1WjgvQnlnemRnM1BMSm1DTkh1SGdYL00vSVJ5M3puSy9SRnoybTZVKy9ZK05P
Tlhxb0JnTWlyYgpHZHdzczh6U28wNllzSzY5OXRwdW5ISEcwYlRubjMvZXliWWtuWlNhVllZd2sw
MTJaYnVPazdNZFlWSm1XTGJ4YUR3bUYrWmtLNUJPCk1tUi90VTZJNVl1cUpzbVdMZlhsSzcwcUxW
QkFjRmd4L0pPdmRFNldyNTFzejFMYU1tMno4dUduZnd6S2xGbVBUNWdXRzhaRUJ3NkMKTXNzaVNS
NGZLQlM0TndLQ1Y3N3lPRGt2NCtUOGlKTEwyWXdrMjhzdnYrd3dFYzdxZnhCaHdsZVZ3MFFWbHBM
Z1hudnR0VUsyUldPaAowZjR0TERoRmtEVk9vV0RCM1gvLy9hcUlXQmJaSHFSQm14QmJmSmJmNkxq
SzRoVVRseDdYTVhucTBjaVpJU2RmK1oyc2dDUi8rSGdnCjU4RTBHejRReUJtWWVpeWkwOEFYTjcz
TCtRcG5pblIwNWtqQzJIZW1pSjJObHpTZGZTQ0JETzF0VitiZG9kd3YvcTBKKzdPSzk0eHkKZnpT
WE53Y29NM2JEZmlrYnR2YzRuSjlRN2p0SHVaODlrbXk4cEZNN1NlNm42OWJJYysyTmNJMXdDUExn
eHdVT1h4V0tuRTBhOHliQworRnFPQ1N0V0xrQWJNd2xMbHlrSHY1MXNWWEFiYmJTUmsrMFVUcmE0
T0RsSDRHVGZ0Sk96RHc0VFpqaGN1aVpuUTlMWmE1N0x0QzNNCm1QNEJLVk5tUFQ1aFdqdkNja2JI
SFh6d3dhcFFIWDc0NGRvM2NnNmtSc0Y2NmFXWHRDcFlvYWpuMHBqVW82MlhodFViVEVwbFAzODkK
TWswckdndU45bTlod1JFRVVLYkVZSUNUN1lGT3pnNDQyYmFudWVRY2lPSXNaeFVLdVRRNnJnb1o1
eEJVMVlkZy8rU1RUenBNQkNBMwpaR3RnanhMeGdVSzJGVG81bktzcmJEMElTa1pBeVlIRCtHbWxp
M2xuaXNxSG5JSkw0NTErTHVMVHl2UXk3dzdsZnZGdlRkaFh2ZDNQCk1XT1ljai9zc2ZndzVUN2xm
dDVvNlFhNW4xZjNNdkdWcm9EWWx4WTVIMUJZaCttbm4xNXA1QXhDajYwblNJQmlJb2N5bGFhWmlj
SVMKU3l5aHlnZk1lb0luYmxmR1NneWNMYVhhRDZoRzV2d3IwN1ljRmhwZHBzeDZmTnFaSnZ2djNa
Lys5Q2RkY1pBekhzNlc5Tk4xd0FvUwpIQ2JPN1hCZmZ2bWxGb092elRHdTNsaW9xbjlqNnBGRmcy
MS8yQTZFbFpvcnI3elNpUlU0TmVNTXZCZGJiTEdzTERWeDNUaXVyQUg0CkNpWkdFZHgvLy92ZnpE
OHhWS0drZUhleHphOVpaNU82Vm01ZmluMW5tbTFMSitRdjgrNVE3by80U05jSi9WWlVoOWd4VExs
ZmhHUisKT3VVKzVYNys2T2o3S1pVcUlMWi9XdzUyNnRmY05Ielk0NDZ0RkhCWWRjQkVBRXVTUTRj
T1RaUHFOZ3hzTDhDU2s1MGQ2RUZVRUNFSApPcFZDTEdFNXNSemp4SlNwOGhPenB1N1ZWMTlOOXBl
TDZWb1hiaVVLMmVLclAxWmh5clF0ekcrVEhZdXp5WEpNbVpZSGZwcFBtR2JuClc4SzRLc05iYnJt
bCsrU1RUM1RmZkQyK2hoSE9MRUN4ekhQMTJwS1hKeDB2aDllY21DVjFXTm13eVhlYUpud3VHZ3RX
OTVpeEcvS3QKS2l3bVY1MGNLTmJ0YlZqUndSSXNsQkNzM3NXNFJzZFZETzhzbWlyNkVIeXhGUXFy
SG1KeExxc1lqUk9MZCtwak8yYldDa2x1eHB5RQptV2VlV1ZPd0tvb3RvMm1YUG9zVHBzZSthN0h2
VE1pN1c4TmwzaDNLL2VMZm1uQWMxSHZQWXNkaXlLOU1PSFlNVy85VDdwZEJkd1F0CjVUN2xmdmxS
MDNkeVZLcUE0TWRsdnZubTB3bTczUC9nTUdFd2h3biszbnZ2clZ0TkVJZHpDTGExNU1JTEx6U3l4
TWZObUhCaTZ6NkoKcXpjeHlOcUdnMG0rV01oSzh1TmdHT29BaDdNTWVCNG9COVV4dWNiV3JIQi9K
bWpFNXI0ZWVNWldzREp0UTE2YkZLZjNyWmNwc3g0ZgpwTmwrUUNoVG9jTldIampnbGJWSHZCNk9J
UitFa1I5YlpPQnNxUjFoaXd1L1NNdmRJRTVNL0dyL0gzbmtrU0JMSExDMXlWNWEyYk8rCk16L0o5
SHNnNjRjV0NnWEtGdk8rTmVUR3czeExMQm9MWmZzWGZLME04NjJzZXZpbWFTMFBqRE5nR3hiR29W
aDEwckZwaHhxTnBwNWYKZGx5QlYwdzkwL1hORzlkaDNSNS8vSEZWOE1PNHZEQldQNkI0MlpmeExE
b3h4K3pzM0pZWkh3anB5cllEZlMzMzMrajdMbWFkUTFaNgpKZ3p5QUM3a1crWmRLL1BPMUJTZThX
RHZWOVk3a0VIZUsxRmwzaDNLL2VMZkduUml2ZmVzekZnTUIwUTRuc1A0ckhDWk1VeTVQd0xCCmV2
aW01YWhoVHJrL1lpZU00Ukg2bFB0TzUxSWhKbjB1TEM5TlUwNEFxVEh0aU1zRzVReUF4dUVPRGx6
eXRlR0dHM3BacHZkaWVhYW0KTE5sQzQyVTdqNXFnaE1sVmMvS3k2c1dDdUx4UEpxNFdyUmZQV1ht
aTNDVHhvTWVsWFVqNzk3Ly9uY1Rqb2o1Uk9KSm5CSERQZ0d6cAowc3ZPOEN6YlhaSkxBOFd5ak5a
eHI3MzIwb3UrWUJZVjVtUE5sV21iSE1iVytzaWhlNzM3UkE0WWExbGx5NnpIUjZ3L2VmbFNydVhn
ClhnOVp6dld5WXFPWE5jcVpHWTNmWTQ4OVBFd1B3OWtkQjZKUVpWN2FxRVFaLyt3K0RseUFkdlhW
VjN0Ukx0UjBNVXlIb2w5aE1oS1gKcnNIQmRLcVpGSVZaV0ZGVTFKd3A3Z1lCRnVnam1NUzk1cHBy
a3BKZ3Foanh1QXNqZE1oci9ZMXl6UTBiTmt6N0VCZGRwbDBlcjVpeApVS1ovVVc1ZVdiZ2cwZW9k
TTA1bG43WFM0K0pJc2Y3bXhmS2JsM00ySHZiK3hVcElEN1BGNlRiYmM1bXhqRHk0QXdQMWhCMzJ0
TXRyClc3M3hDQjVpTlU1NXdxeXdUT1RUYkd1ZXdRdVhpT0pPbnlLSDk5WXd2Zjc2NjJ2SUcya0g3
Zzh5ZnJqdkJ6akRERFR1SHJGM0tqVEQKVy9aZEsvUE95RmF3NU5KRlVmSnIybVozZ2NEVWNPandE
cUQrd0ZrVStqQXBOMnp0aGQrc1MvTXE4KzVRN2p0ZjlGdFQ3ejByT3hZcAo5K3ZQQWNxTVhidzNl
YktSY24rRVBLTGNkM3BaYk5GY3FSdmxmck8vRytuOFRmOFNwWCtJVUFBbWpqWXBRTHFZVS9XNDNU
WEw0Ykk2CjNKWXRYOGI4N3J2djdtVTF4SXNaWDcvRkZsdm81WDJXQjNidlpTOThNbW5BSkZaV1Ni
d2NhbFI2cXdmS3hjM1JjSmhNeUFxSEtrRm4KblhXVzMzSEhIYjFZdFVwdU9EYmV1Qk5EdmlvbHZE
R0J4dDBMdUU4ajdjcTBEYmZBbzE2WThFTVJnS0prcmt5Wjlmamd4bmo1QXFubAo0SUpHM0k0c1gw
MVZzVVA3Y2JzMmJ0REdaQlkvZW9ZVExyYzcrZVNUclRwMWZTZzJWb2FzY09udDhtZ0xKc3V5UmNE
TCtSQXZxekFKCkQvemd6VGpqakVsWnVQandsbHR1MFR0WmNHOEhKbnJvZDF5WWlQcWF3b3I2aTds
bWp4OVlPRk5Bb0tUS2x5THRPOWhnbHkxNXFsaUcKZUJieGloMExNZjFicjZ4R3hpbmFJYWFoRTd5
c2o4ekhKWjRZTHpFdVpsemhqaGJjL0czOHA1MTJXbi9JSVljbzd2WGFadVhYRzQvQQpUODVhNmNX
ajFvK1dML1J4bVI3YWhUckkxMTRQcFQ5cklvMnhpelJUcUkwZXNxTFpkdUErQ2h0N1VJN1hXR01O
ajNzWjhJRUM1ZGhOCjZGYnYySGNOOUxIdkRCUTJsR3Q5Z2N0VWNjOEQ3bEhDN2VnbWwweFJ3NldK
a0c5NGp5d1B4alp1VHk5eVJnKy9XWmZGSytiZHNYSXAKOTBkOHVLdjNXMVB2UFlzZGk1VDdjWE9B
bUxGYlR6WlM3bFB1UTdiMWRibHY4cnNxZnhRd2toK1RobDI0UnpYTkN0dVA1SWRHNzNFSQo2YklL
dzFZcEVRSnE5UWZtTWN0c1A4bmloemhzKzhHZElqSVIwaTFYMkcrWlowMExkWWNsb1crKytVYnZu
TENEbFhtOFk5dUdyVjY0CnB5U3JQV1hLck1jSGRaU3Y2RTRtL1lsNVhXeHpzbVg4dkRhVWpaY2I3
WjNjeWx5VHJWNDVPS09CZy85eXdaem1BV1ptT3JlR1NjNEQKRGlWakxPRE9BeHlJeEtGaGpCTnM4
d0xmTXE3TVdBRGYyUDR0VTRjOFdvd0QzSGNESzIwNHI0UjJZaHpDOGhOOHZCZllraGhqTEFGbAps
QmxYZVhVcWlxODNIdVhyclo1aFFWczYzUUZqV1UzUU8wak1laHUyZzRraTRtQk13N1oraGUwbzg2
NlZmV2ZDY3FvT2h6SVlZNlFaClY0OVhtWGVIY24rZW12dGQwbjFTN3owRGJabXhtT1lkKzF4MkRG
UHV4eUZMdVIrSFV5dW9LUGRiZ1dwNW5pMVZRTXBYaHptSXdFZ0UKMGdySXlKUytGY0krWUppZ2xk
dTVjeHNHTTlHeW1sVmE4Y3BseUlSY0JJb1VrTnlNSFo1UVQya29XL1VxZVpVdG0vUjlHd0hLL1pI
OQpTN2svRW90V2h5ajNXNDF3VC83bFBpUDN6TThZSWtBRW1rQUFsdytlZWVhWmlVVzJMRmI0Q29x
VnU3S3JQbG04R0VjRWlBQVJJQUs5Cml3RGxmdS9pejlJN0E0RktMeUxzakNheEZuMEZBWmhvaFpQ
OThIMmxTVDNhZ1R0dXNOMFBGdGV3M1dyUW9FRnV0dGxtYzdDdC8raWoKajZxSmF0a243djduZi82
blIxNUd0QVlCczV5WFpVR3VOU1dTS3hFZ0FvWUE1VDdsdm8yRmR2cVUrKzFFKy9leVpCOWlVMDdZ
SkljaAptMkxFekVRZ1FFQW0zMzZsbFZaS3hoWXNiOEhvUUY5MGFKY3N0WHNjQnJmM0NZZFRjU0Q1
dXV1dXF6RmUwQmZiM3lsdGd2RUVHRHV3ClBsaDExVlY3SEVUdmxMbzJVZzlyRi94bVhaVzhtcTBM
OC9jZEJDajNLZmZiUFpvcDk5dU4rTWp5ZUFaRWZrbnBPZzhCc1RqaWNObGcKNkVZZmZYUmRJUWpq
K2xvWWQ3cGdxeFV1MzhUS0IxMzdFTUNGcUdLUnJLWkEzTGxnRjYzVkpIVGhRNVhuTnFyazFZVlFz
c290UW9CeQpuM0svUlVNcmx5M2xmaTQwTFUrZ0F0SnlpRmtBRVNBQ1JLRDNFYWhTYWFpU1YrOGp3
eG9RQVNKQUJQb21BcDBzcTNrSXZXK09PYmFLCkNCQUJJa0FFaUFBUklBSkVnQWgwSkFKVVFEcXlX
MWdwSWtBRWlBQVJJQUpFZ0FnUUFTTFFOeEdnQXRJMys1V3RJZ0pFZ0FnUUFTSkEKQklnQUVTQUNI
WWtBRlpDTzdCWldpZ2dRQVNKQUJJZ0FFU0FDUklBSTlFMEVPbDRCZWZiWlozdmNBd0U3NGJCYzBK
ZGR0N1R4MTE5LwpkUTgrK0tBYk5teFkwOTN4L2ZmZnUrZWVlNjVwUHExZzBDMzlFZFAyYm1oTHZY
SFZEZlZQOTBPOTlxUnArZXhjSjh2OW0yNjZ5V0VNCnRzSjF5OWl1Y2p4VDdyZGlKUFhrMlExanE5
NjQ2b2I2cDFHdjE1NDBiYjk4SG1tUnQ3R1FnSmJZelcrTVE4OWNUei85dE45NTU1MzkKckxQT3Fy
eGxjbHRETkhEZ1FJMi81NTU3YXVMNzBrT250L0doaHg3eVcyMjFsWjkwMGttMUx5Njk5TktHNFQv
NzdMTTk3bHdZWjV4eAovQVliYk5Bd24xWm03UFQrS05QMlRtNUx6TGpxNVBxbit5R21QZWs4clhx
dVVsWlh5Y3ZhMncxeS84c3Z2L1JpSmx2djdIbmxsVmVzCjZwWDVuVDYycXh6UGxQdVZEWnNvUnAw
OHRtTEdWU2ZYUDkwQk1lMUo1Mm5WY3l0a2RWVjE3Y2dWa0xubm50c2RjTUFCN3YzMzN4ZnMKWEkv
N0VPYWRkMTQzeVNTVHVHbW1tVWJUKytLL1RtL2pvb3N1NnY3MXIzKzVxYWFhU3VFUFRiMlY3WS8x
MWx2UDRVYnc3Nzc3empYRApwMnk1WmVnN3ZULzZTbHRpeGxVMzlVVk1lOHIwWFYrbTdRYTVQK0dF
RTdycnI3L2U0Y3Ztc3NzdTYzQnZUNVd1MDhkMmxlT1pjci9LCmtWUE1xNVBIVnN5NDZ1VDZwOUdQ
YVU4NlQzOTg3a2dGQkJld1FibkFwQlF1ZlNIYmtDRkQzRWNmZmVSbW0yMjJQdHRubmQ1R0tBcVQK
VHo2NWcxQ0FFNDI0NGI2QU1ybk1Nc3RvL21iNE5GeUIzek5pVW5Ic3NjZG1zdW4wL3Npc2RFNWtK
N2NsWmx4MWN2M1RrTWUwSjUybgp2ejUzaTl4Zlk0MDEzSXN2dnVoazFkYjk1UzkvY2ErOTlscGxY
ZGJwWTd2SzhVeTVYOW13aVdMVXlXTXJabHgxY3YzVEhSRFRublNlCi92amNrUXFJZFFSdWhJWXoz
K0xocDVXU01LMnZoTHVoalZaSHZIRE51TkZHRzAyek44dW5tVG9jY3NnaDd0WmJiODFsWVczTkpl
aWkKaEU1dmk5VXZienhZZXJkQWJ2WE5hMCszdEtNZDlUUjViMzVZcHVFWXh2VkdlS0tKSm5LeWhj
aGRjY1VWN3NRVFQzUS8vdmhqWmRYbwpsRGJXYTVEVnNkbnhUTGxmRCtYcTA2emZxdWRjRFVlclg5
NjRzdlJxU21zOUY2dHZYbnRhWDRQT0xxSGpGSkNmZnZxcEIySzkyWGsvCi9QQkRqL3FrSTM3NTVa
Y2VCK1hUTkZuUFAvLzhjMVoweStONmM1V2g1WTByS0NDdjdSZGRkSkU3NnFpakNuTFhUNDRaSy9V
NWRFNXEKMlRIOTIyKy9kVTdscFNaOXFTODZDdGdXVmFaYjVmNzg4OC92VGovOWREZm1tR05HSTBP
NUh3MVZaWVNVKzNGUVV1N0g0VVNxYWhCbwptUUp5OGNVWHU1VlhYdG10c3NvcWJxNjU1bktycmJh
YXUvSEdHM05yZmRwcHB5bnRacHR0NXBaYWFpbDMyR0dIT2J3TWNLRUM4dlhYClg3dkxMNy9jcmJU
U1N1NlNTeTdKNUZlMjdDd21wNTU2cXU3eFBmREFBOTNnd1lQZDJtdXY3UzY0NElJYVVud3RYM3Jw
cGQwdXUremkKRGpyb0lMZlFRZ3U1NDQ4L3ZvWUdiUURkMWx0djdaWmZmbm4zelRmZnVJTVBQdGpO
Tjk5OFRnNWR1ei84NFE4OUxIb1Z0UkUvWVBoYQp2K0tLSzdySkpwdk1MYnp3d3U2TU04NXc0U1FR
UCtpMzNIS0wyM2JiYmQyZ1FZTzBUcGRkZHBtMmFmenh4OWZ0QXg5Ly9IRk5YVnZ4CjBFaGZ2UG5t
bTA0T283dUpKNTVZMjRjd3R0eGx1VmorY3NEVjdiWFhYcnJWQ3ppaEQ2YVlZZ290NTV4enp0SCt3
WS9VWTQ4OXBuZ0MKMDA4KytVU0xMT3FQbUxHU1ZYZkV4ZlRsMVZkZnJlTnM5dGxuZDl0dHQxM0M2
c0lMTDlReGdQZzU1cGdqaWE4WEtHcEx6SmdPK1dOTQpiYkxKSm02TExiWndmLzd6bjkyT08rN29I
bjc0NFlTa3lycURhVkg5RyttTHUrNjZ5MkhQN3ZUVFQ2OS91KysrdS92cXE2K1NOa0EyCnpURERE
TzZQZi95amUvenh4NVA0bUw1TGlQdEpJUFo5TkRnbzl3Mko0ckVkTTk0bzkwZmlpUkRsL2dnOGl1
UW01Zjcwam5LLzl0MXAKeTVOTXVwcHlVa20xZ2dRZlRvU2tsd203bjNQT09mMGJiN3loY2ZJMTBv
dGlvWFF5SWRZNCt5ZVRRYldtSkpOay84VVhYMmkwN01YMwpvb0FrZkQvNDRBT05sMzIzR2ovZWVP
TnAydm5ubjI5czFDOWJkazNtNEVFbVZWNzJwM3JVR3c1MVJQMFBQZlRRaE9yT08rLzBzbnpzCmp6
dnV1Q1JPRkNPdEYvS2JnM1VvbWR4by9Fd3p6ZVNYVzI0NXRmQWxadzI4VEhJMVhyNmUrVWNmZlZT
ekZMWHg4ODgvOTZMMGVKUUYKbk9UZ3R0OTQ0NDJWanlnNVZxeS8vZmJidlJ5UzFIZzVUK04zMjIw
M3hWbSsxbm41YXFmeG9pQW05STBHWlBLcHZNSTJnMWZadnBDSgpxdkpCMnpCMjFsMTNYYi81NXB0
N1VSSTBYaWFIWHBTUXBKcGwrSjk3N3JsKzZxbW5WajV5ME5YdnVlZWVmcTIxMXZLamp6NjZsME9s
Cml1RlZWMTJsNlN1c3NJTC85dHR2OVEvOVh0UWZNV01scVhRcUVOdVh5Q2FLcmRaUEZPOGFMazg4
OFlURzIvdFhrNWg2S0dwTDdKZ0cKVzR3OWpMZjExMTgvZVU5RW9mVVRURENCNGdvcklPWWFxWHZX
dUNxcWZ6Tjk4Y0FERDNqNTBLRllpZ0pzVlU5OGpCdjVrVTZleS9RZApNbVcxSjJIV3BrQmFWamRU
YkpwWG1mY1I1Vkx1TzArNTd6M2xmdjV2T042VFJtUW44b1d1U0c1UzdsUHVoK09sbmVFUldrTVRK
YVovCmlEQWhSOXh0dDkxV3d4V1RlVmtKMFRUWjdwS2tZWUlPZXZueW5NUWhJQ3NIS3FDUkp2YWZh
OUxFZW9ibVNTc2daY3V1WVJvOHJMNzYKNmxyWElNckQ1S0pZNWtxaWR0aGhCNjJEck1Ja2NUQWpp
ZnIrOWE5L1RlSVFnREtBZVB6Z3lEMFhTWnJzRy9hWVVDSk5EbUVuOFFqawp0WEhYWFhmMVcyNjVa
UTN0dSsrK3F6ekFKelJOaklrVTR2QW5YM21UUEpnOFliSWwreE85ZkRGTDRoc0o1RTJzeXZhRi9S
Q05OZFpZClBqUzdqTFpOTysyMDJvYWRkdG9wcVdKWi9wZzhBZ2NvalZBMjRONTU1eDFWTUJDKzRZ
WWJORjFXN1BEWXcrWDFSOHhZNmNIczk0Z3kKZlhuenpUZHIvZElLaU5qUTEzaTBMZGJsdGFYTW1K
WlZJelhCUEh6NDhKcGk4WUVCZFVIL21HdWs3bm5qQ2p6ejZ0OU1YNER2aGh0dQpxSFUvNXBoajhK
ZzRqRUV4dHBBOEkxQ203MEJmcnoxSWI0ZER2OWhmcytVWkgvaHdaZDlIeW4zS2ZZd2J5bjJnNEgz
ZWIzZ2pzbk1FCng1Ny84K1FtNVQ3bGZzL1IwcDZZU3JkZ3dZeXFyQkxvQVhHWUtBd2Q5c2phOXBI
OTk5OWZrK1NybWNNV0oyd2ZzVzFDbGdlSDA3RHQKQVM3Y2dvVm5iQ0dDQytQTGxxME1jdjZKdldt
MWNnSlR3TENNQkFlTFc5Z0taTzV2Zi91YjIyZWZmWng4U2Jjb0oxOS9OWXhMdEVJbgpkMlhvbzl4
cjR1YVpaNTRrYVl3eHh0QURqSWdReGFGbTIwZFdHOTkrKzIxMzVwbG51bkhISGRmSjE5N2s3KzY3
NzNZNEZBa25YM0xWCnh6K1lqSVFEVG1GL1lHc1Q2b0x0WWErLy9yclNWUG12bWI0UUlhbDFzL3FJ
OHFGTG8zakdPUTE1TGRSY2I1bHhocnl5K2dUUG9TOVEKQmh5c3JNbHFpNGJ0WHppbUxBNStWbjhn
UG1hc2dDN3R5dmFsNVUvWHo1N05ON3A2Zmw1YllzYzAraGZ2OERycnJKUGdZdVdkY01JSgo3cnJy
cm5PaUxGcFU0cWZyYU0vbUo0UUZnYno2TjlvWFZoeTJVc0xKaXBtT000dkh0aUpzWlRUWGFOOVov
cjdtbDMzZktmY3A5OVB2CkFPVis5bSs0NFpTV2tmWnN2dEhWOC9Qa0p1VSs1WDY5Y2RQS3RFb1Zr
T2VmZjk3SjloVlZIT3owZjFoNW02ekxsaXJkMC8veXl5ODcKL0pqUE1zc3NJVmtTTmdzWlNVU2RR
Tm15NjdCeWNzR2VROWxISDMyMEtrYXltcVBrT0hCb0Rrb1Q3c0hBU3kwckRlNGYvL2lIbmdOQgpP
dlpieGpxY2o4RTVEcmdpYzQ0NG53Q2xBUW9JRHRtR2YvSUZVaWRPc29VcHFtalp4cVowVlZwdnNZ
S2I2UXRaQVRFMmliL0VFa3RvCkdCTWQrVkxrR3VFLzl0aGpLdzhvWlZuV2RheXdNZ0lkZVdMR2l2
RU8vU3I3TXVUYlREaDJURVBCL3V5enp6TGZXeWpoT0MrRjgwM3QKZG8zMmhkVVQ0MnlCQlJiUTkx
QzJKV2cwRkY2Y09aUHRnRWFtNTRTcWVnOFRwbDBjS1BzK1V1NDdQUmRKdVQ5eTBGUHUvK0RLL29h
UApSSys1RU9VKzVYNXpJNmp4M0FNYXo5b3pwMDJnOHlaNFdOSEF4QjZyQ3FDMWl3YXhFbERQeFV3
S3k1WTk1WlJUNWhhSncrVDMzbnV2CjIyaWpqZHhUVHoybEIzM2xablozMGtrbk9UazNrT1NUTXk1
Nm1CbjFPL3p3dzdWdG1LekUxRGRoSWdGOGlmLzAwMDlyRHBHSDZSYkcKRHpjYzd0N0FZZjFPZFZY
MkJkcTR5Q0tMcUpVWktFdFFjS3ZtSCtKWXR1OWl4MHBZQnNLZDJwY3hZeG9UVGpnb2hKM2tHdTJM
c0ExNAp6MlVMcFpwWWxmTmFEb29JeGg5V0RjMTFhdDlaL2RydGwzMGZLZmRIOUJEbGZ2NXZNQkNp
M0cvZm0weTVUN25mdnRFMnNxUktWMEJnClJRWk85dGJYYkdHdzRxQ1kySmNPQ0Y5OHdZZDc2NjIz
aktSaHYyelpSUVhoYXlpVWoyMjIyVWEvbU1QVUlyN3NtcE96SE81UGYvcVQKcmw3SWZ1WmtpNCts
bC9HLy9QSkxKY2VYaUhyT2xsQnRBbGlQdGpmVHF1NExiTjlEMjZHb1l1dFkxZnlieGFwb3JHVHg3
OFMrakIzVAp0cG9FQ3pPZDVocnBpN0FOY2xaRHR6UCsrOS8vZG5MMnpKMTMzbmx1KysyM0QwbVNi
V2VkL2g3V1ZMcUZEMlhmUjhyOUVaMUJ1VjkvClVGTHUxOGVucWxUS2ZhZVdITEdOblhLL3FsRVZ4
NmRTQlFSZjV2RUZHVitxaHc0ZDJxTUdMN3p3Z243QlJrZGpOUVRiaitDZWVlWVoKVlZwNlpQZzlJ
dWFyZE5teTg4cENQQzZYZ3NOTnJaaUEzSEhISFRvcHVlbW1tOXlycjc2cWFYSVFYTTIwN3JmZmZ2
cmM2RCtZVFh6dgp2ZmZVaEs5TlN2TjRtWUlDYzhCNTI3eGdYdGJPcmVUeGFYVjhsWDJCdW1MTEQx
YUlZTElZVy91cTVoL2lFVFBXUXZxWXNSTFNXN2pSCnZteGwzOGFPYVh0dllWWmJqRE5Za3hJZjI1
WndSaW50V2xsM2xOVm9YNFQxeE5ZeDRJQnpDdGdTSVFZUkhKU2EwRFhhZHlHUHZoUXUKK3o3YStL
SGNwOXl2OXg1UTdvOUVwNVd5azNMZjZaWmh5djJSNDYxZG9Vb1ZFT3l2dDYrRnVLTWc3ZXgrZ0gz
MzNWZVRGbHh3UVNmbQpMWFhDZk9TUlI5YVFRNG5CUG5PNDlHUmJURGhxdlBsNEtGdTJNc2o1aHdt
K1dJcEtVbkdBZSsrOTk5Wm5uUGZBTnFBbm4zeFNuMTk2CjZhV0V6dUl3ZWNseVdVSUVreWJRNDk2
VDBGbmJ6RWNhNmpGUURzampmZ3BzRlVtZjN6amlpQ04wbGNET3ptQWltT2RDdm1rYWJEOEwKN3p0
SXA0ZlBXV1ZVMlJjb0N3b2dGQU83WTZVWi9sbjFSUm1tL0VIUnlYS0dsL2xHVXpSV2pDN3RsKzFM
TXpKZ0NyRHhNd1VBN2NLNApqSEhXQnZPUnA4eVl4b1FUOTloZ1BJc1pYb2N6WGVid3J1SmR3ZDBr
NWhxcGUxNC9nYWZWMjN3cnA5RytzUHptNHdBOXhodHV1TWI5CkptbFh0dStRdjE1N2tGN21uUU45
SjdteTd5UGwvZ2hsbVhLLy9paW0zSGVKY1JuS2ZjcjkrbTlMbDZiS0QyTlRUcHFOV2E3K2daRXMK
SzN1eE9LUW1YbUYrMXB4TUZqeE1uTW8rYlM4VFo0dFdjNzB3QndzZU1HMHBrM2d2VzUvMHpncjVi
V3JaK3dBQUlBQkpSRUZVR3FueApNSzk1elRYWEpIbkFCL1J5YzNVU2gwRFpzbXN5Qnc5eUVhS1hT
VlFRNDcxWXlQR3liY3pMQkV2ajdXNFAyYWVxcGdSRmdWTHp1R2lMCmJGRlJzNjcvK2M5L2xCWnRN
b3hnZHRBY3pNMkNKKzd4U0x1OE5sNTU1WlhKZlFWaVVjdkxDb3lYQy9hOFdPbnljakdobWk4Mlhv
ODgKOGtoU3J0MmxnalQweFZSVFRhVnBzdVJvNU9wZmUrMjFTUjZ4dUZXVGx2VWdoM2FWWHF4UzFT
U1g3WXYvKzcvL1V6N2doN3pteEVpQgp0ZzMzd29TdUxIK1lJVVlmaUhKV2M1K0k4VVE1U01lWXd4
MFc5OTkvdndmVzV2TDZJMmFzR0krMFg2WXY1V0k4Yi9mZjRCNFRzWHptClpiWEx5eFpCTCtlWnRP
NTc3TEdIbW90T2w1Tit6bXRMbVRFTmpHUkxuSmFMTzNOd2J3dk0yR0xzWTB5R3JwRzY1NDByOE0y
cmZ6TjkKRWRZWFlkd0hnN2JZM1VUcDlESjloN3oxMmxQMm5VdlhKZmJaWkJEOFpsMmFWOW4zRVdi
YUtmY3A5eW4zNi8rR055STc4OTd0UExsSgp1VDhTTWNyOWtWaTBJOVQwTDFINmh3aVZ4bzgyTGlp
VEwyTmVicGYwc2hyaXhXU25sNitKZXNGYnVtR1lITTQ0NDR3Nm1RRS9YUG9sCnQzanJYUnk0SHdQ
M2ZZQW5MbDJUMVpOazRvTUw5c1RzcDhkTGFxNXMyWll2OU5kY2MwMHZLdzA2cVRycnJMTzgzTzdz
eGJxVXh6MGYKNWpBQmxDL0JXbWY1R3V4UE9lVVVuZGlMcVdGVkVPUjhpSmV2RmtwdUNnZ1VNOXhs
QVY2d3lTM2IwRlRSZ1VKZ0xxYU51TWRDdmlvbgplT0dIWEV3Q2U5d0pZVTYrcVByRkZsc3NvWUVT
Snl0UVhnNk1hbDlZdjJGaUpGdkxMSnZTNElJK3BDTi9uc085TGJnbzBQamdyZzY1Cm5iM2h2c0M5
TDFEaWdDbXdGNVBIWHM3Y2VMbGQyNXNpbDY1TGJGL2pNaWNvYTFiWHhSZGYzSjk4OHNscGRuN1RU
VGRWR2lncG1NeWoKWDRyNkkyYXM5Q2dvaUlqcFN5TWZNbVJJTXVZdzl2RXV5RmRVVmZoUkR6RVg2
MlVGeDhoNytFVnRLVE9td1J6ajJpYld3RlpNSFB1egp6ejY3UjdtSWlLMTd2WEZWVlA5bSt5S3NP
Q1pHa0ZmMVhFemYxV3VQOGNaN0dmUE9HWDJqdm8xLytNMjZMRjZ4NzZPVlRibFB1VSs1ClArTGpi
ZFp2dUwwbnNiTFQ2Tk4ra2R5azNCK0pHT1grU0N6YUVSb0ZoY2lQU2NNdTNET2Zab1Z0VERKSlVl
dFFjdXQzY2k5RlhtRTQKQzRHRDZuSnJ0WkpnTzR5WktzekxreGRmdHV5UUQ3WTI0UUNjS0RZT1c2
NWt0Y0RsV2MyUzI1K2QzTllkWnRjdFk3YWxCd24vL2U5LwpIZHFQTzBCdzRBdFdZRkEvYkQvTHN4
aFd3ekRqQVZqREdzODMzM3lqZk8xZ2NBWnA2U2pVRFFlTXNhWEx6SkdXWmhKa0tOc1hzSzZFCisw
bG1ubm5tS0hPdVpma0hWZXNSUkgvRDRoRzJsY1M0TW1NbGoxL1p2bnhEcksrSndwNk1IV3g3Q3Nk
YlhqbXg4VEZqT3VTRjkxUW0KbjJvZ0lKUUhJWTJGVzFuM0t2ckM2b2srd2Z0djI4Y3NQdTJYN2J0
MGZudXUrcDB6dnFFZjlnM3EzWXlyeDZ2cyswaTVIOThUVlkyMwpyQktySG9ObHh3SGwvZ2hUOFZs
OWc3aFd5azd3cDl6WEx6T1UreGdNYlhJdFZVRGExSWFPTHlhdGdIUjhoYVdDdUNCU2xtYWRySngw
ClEzVlpSeUxROVFpMCtwMnJwelNVQmE5S1htWEw3aFo2eXYxdTZTbldrd2owSGdMZEpQZXJScW5T
UStoVlY0NzhlZ2NCckh6ZzVuY3EKSDcyRFAwdnRmd2p3bmV0L2ZkNXBMZVlZN0xRZVlYMzZPZ0w5
L1oycjlDTEN2ajVZR20wZjdoT0FHejU4ZUtNczJwcHY4T0RCemt5Tgp0clZnRmtZRStpa0NmT2Y2
WHNkVDd2ZTlQbVdMaUVDVkNQUjN1YzhWa0NwSFV3WXZPWVRxNUlDNnB1Q0NSckhjNWNRNlZRWmw1
MFJSCitlaWN2bUJOK2djQ2ZPZjZWajlUN3ZldC9tUnJpRUFyRU9qdmNwOW5RRm94cWdLZVlvSEM0
YkxCMEluRkd6ZG8wS0F3aW1FaVFBU0kKUUVzUnFQTGNScFc4V3Ryb1htSk91ZDlMd0xOWUlrQUVh
aERvWkZsTkJhU21xL2hBQklnQUVlaWJDRlQ1UTFRbHI3NkpObHRGQklnQQpFZWg5QkRwWlZuTUxW
dStQRDlhQUNCQUJJa0FFaUFBUklBSkVnQWowR3dSYXFvRElKVU5PTG5NckJXWk1ucXBvaWlvV1V3
NTR4TktWCm9ZM2hHVU1UdHJFc2ZaaVhZU0pBQkloQURBS055Sm1ZUEZYUkZMVWhwaHp3aUtVclF4
dkRNNFltYkdOWitqQXZ3MFNBQ0JDQlZpSFEKTWdVRVF1L1NTeTkxMTE5L3ZaTWJ1cVBxSDVPbktw
cWlDc1dVQXg2eGRHVm9ZM2pHMElSdExFc2Y1bVdZQ0JBQkloQ0RRQ055SmlaUApWVFJGYllncEJ6
eGk2Y3JReHZDTW9RbmJXSlkrek1zd0VTQUNSS0NWQ0xSRUFZRzUyZU9QUDE0VkQ5eHUrczkvL3RQ
aGx1SjZMaVpQClZUVDE2b0cwbUhMSzBKV2hqU2s3aGdabG1pdExiL25vRXdFaVFBUmlFV2hFenNU
a3FZcW1xQjB4NVlCSExGMFoyaGllTVRSaEc4dlMKaDNrWkpnSkVnQWkwR29HVzNBTXk5dGhqdS9m
ZWUwK1ZEZ2hCS0NFREJ0UXZLaVpQVlRSRm9NYVVBeDZ4ZEdWb1kzakcwSVJ0TEVzZgo1bVdZQ0JB
QkloQ0RRQ055SmlaUFZUUkZiWWdwQnp4aTZjclF4dkNNb1FuYldKWSt6TXN3RVNBQ1JLRFZDTlRY
Q2hvc0hhc2RXMnl4CmhYdnR0ZGZjaEJOTzZNWVpaeHozNjYrL3V0RkdHeTJYWTB5ZXFtaHlLL0Y3
UWt3NUlJMmxLME1id3pPRzV2ZW1xRmVXUHN6TE1CRWcKQWtRZ0JvRkc1RXhNbnFwb2l0b1FVdzU0
eE5LVm9ZM2hHVU1UdHJFc2ZaaVhZU0pBQkloQXF4Rm9xUm5lb1VPSHV2SEdHOC9OTTg4OAowZTJJ
eVZNVlRWR2xZc29CajFpNk1yUXhQR05vd2phV3BRL3pNa3dFaUVCM0kxQ2xPY1o2dkJxUk16RjVx
cUlwNnNXWWNzQWpscTRNCmJRelBHSnF3aldYcHc3d01Fd0VpME4wSTFKUFZ2ZDJ5bGlvZ3ZkMDRs
azhFaUFBUklBSWpFS2p5aDZoS1h1d2ZJa0FFaUFBUmFBMEMKblN5clczSUl2VFV3a2lzUklBSkVn
QWdRQVNKQUJJZ0FFU0FDM1k0QUZaQnU3MEhXbndnUUFTSkFCSWdBRVNBQ1JJQUlkQkVDVkVDNgpx
TE5ZVlNKQUJJZ0FFU0FDUklBSUVBRWkwTzBJVUFIcDloNWsvWWtBRVNBQ1JJQUlFQUVpUUFTSVFC
Y2hRQVdraXpxTFZTVUNSSUFJCkVBRWlRQVNJQUJFZ0F0Mk9BQldRYnU5QjFwOElFQUVpUUFTSUFC
RWdBa1NBQ0hRUkFsUkF1cWl6V0ZVaVFBU0lBQkVnQWtTQUNCQUIKSXREdENGQUI2ZlllWlAySkFC
RWdBa1NBQ0JBQklrQUVpRUFYSVVBRnBJczZpMVVsQWtTQUNCQUJJa0FFaUFBUklBTGRqZ0FWa0c3
dgpRZGFmQ0JBQklrQUVpQUFSSUFKRWdBaDBFUUo5VGdINTlkZGYzWU1QUHVpR0RSdlcwbTc0OE1N
UDNkQ2hRMXRhQnBrM2pzQ3p6ejdyCmhnOGYzamdEeWRtdXNkUlVKWm1aQ0JDQnRyMnJsUHVkUGRn
bzl6dTdmMWc3SWhBaTBHY1VrSWNmZnRodHZmWFdic29wcDNSTExybGsKeTVXRHhSWmJ6QzI2NktM
dTNudnZEZkZrdUJjUmVPYVpaOXd1dSt6aVpwdHROamYvL1BPN2p6Lyt1S0hhdEhzc05WUkpaaUlD
Uk1DMQorMTJsM08rOFFVZTUzM2w5d2hvUmdSZ0VCc1FRZFFNTmxJRlpaNTNWUGZyb28rNnp6ejV6
bzR3eVNrdXJQZSs4OCtvWDltbW1tYWFsCjVaQjVQQUp6enoyM08rQ0FBOXlGRjE2b21RWU1hR3g0
dDNzc3hiZVFsRVNBQ0lRSXRQdGRwZHdQMGUrTU1PVitaL1FEYTBFRXlpTFEKWjFaQW9IQk1Qdm5r
RGo4UWNONzdzbGlVb2g4eVpJajc2S09QOUd0N3FZd2tiaGtDVURpZ0VFNDMzWFJhUnFNS1NMdkhV
c3NBSVdNaQowTWNSYVBlN1NybmZlUU9LY3IveitvUTFJZ0l4Q1BRWkJjUWFhNVBPVnErQW9Ed3J5
OHFtM3hrSWpEcnFpR0Z0ZnFPMXN2NXR4MWhxCnRJN01Sd1NJd0VoWjNJNTMxZVFDY2U4c0JFemVt
OTlvN2F4LzJ6R1dHcTBqOHhHQnZvQkFTeFdRSDM3NElRcWozMzc3TFlxdTNVVE4KcnFMRXRoL2xw
TXRLUDdlNzdYbmx0YUplVmZUL1R6LzkxS1BLbmZZRDBncnNlalNhRVVTZ2x4R0lsWHRWdlBldGFH
cXo3MmxzKzFGTwp1cXowY3l2YTF3alBWdFNyaXY2bjNHK2tONW1IQ0hRR0FpMVJRRTQ5OVZTMzdM
TEx1Z01QUE5BTkhqellyYjMyMnU2Q0N5N28wZUxMCkxydk1iYkxKSm02TExiWndmLzd6bjkyT08r
Nm9od3JUaEQvLy9MTTc1SkJEM0lvcnJ1Z21tMnd5dC9EQ0M3c3p6ampEbFJWZ3NYeWUKZnZwcHQ5
ZGVlN2xsbGxsR3l6ajQ0SVBkRkZOTTRUYllZQU90MnRkZmYrMHV2L3h5dDlKS0s3bExMcmtrWFYw
WDIzN3dXRys5OWR5VwpXMjZwT0syeXlpcktkL25sbDNldzVnRjM5ZFZYdTZXWFh0ck5QdnZzYnJ2
dHRrdkt3amtINElINE9lYVlJNG0zUUd4YmpUNzBJZFJ2CnVlVVd0KzIyMjdwQmd3WnBFdm9LZlRy
KytPTzdWVmRkTmZPQWQ5a3lZL3MvckZzNmZOcHBwem5ndHRsbW03bWxsbHJLSFhiWVllNlgKWDM1
UnNpd0Y1T0tMTDNZcnI3eXk1cGxycnJuY2FxdXQ1bTY4OGNZMDI2am5XRjVGNHltcU1CSVJnUTVI
SUZidXhiNzNaZVZKSGp5eApmSXJlVThwOXluMk1NY3I5dkRlTjhVU2dKQUx5WmFNcEo4WGhzSVgr
Z1pIOHVQaEpKcG5FeTFjZzVTdEtncGZKb1QvMDBFT1Rjc1M4CnFSZUxWWDc5OWRkUDZNUmlrWjln
Z2duODZLT1A3aDk2NktHRTl2UFBQL2N5QWZjeVdmZkk5OTEzMy9tTk45NVl5d09QdEJPRlJ0TlEK
ajlERjhqbjMzSFA5MUZOUHJUemtjSnZmYzg4OS9WcHJyYVgxbW5EQ0NmMXp6ejNuWlpMcnh4dHZQ
S1U1Ly96encyS2kyZzlNdHQ5KwplNy9BQWd0NE9UQ2Y1TC9ycnJ1VUovQjg2cW1ua3Zqamp6OWU0
MFhoU2VJUWVPS0pKeEw2TUNHMnJXR2VNSHo3N2JkN1VUYVV0NXlwCjhMdnR0cHZmYXF1dC9PbW5u
KzdGdXBUR3l5USt6T0xMbEZtbS8yc0tDUjZBSWVva0NwTC80b3N2TkFWODBUYzJIai80NElNa2gw
eEMKdkNqRGZzNDU1L1J2dlBHR3htT01ZbXlDWHBTdGhOWUNlV09wREsraThTVEtraFZIbndpMEZB
RjdMK0EzNjlLOEtQZUxmL2NvOStOLwo5L1BHSitWK0hqS01Kd0xaQ0tSbGRUWlY3OFEyL1V1VWJ0
enFxNi91NWN0eVRXdGVlZVVWTDlhSmtyaHp6am5IVHpycHBGN3VhVWppCkVNQWtFUHlPTys2NEpI
N1hYWGYxc2tLUVBDUHc3cnZ2SnBQTWUrNjVweVl0YjlKWWhzK3R0OTZxL0VjYmJUUi8xVlZYS2Y5
MzNubkgKdi9qaWkwbFpzbktoTkdrRkpLYjlGMTEwa2VhVkwrOEpQd3RNUFBIRW1oWXFJRGZmZkxQ
R3BSV1E3Ny8vWHVPQldlakt0RFhNRjRiZgpmUFBOaERjVUkzTlFOR1Jsd2NzK1dTOHJKUmJ0eTVS
WnB2K1RBbEtCU3krOVZPdjMyR09QMWFSZ1FqL21tR05xbXRqc1Q5SXdwb0RUCmJiZmRsc1FoQUNV
RTR4VnA2SmZRNVkybHNyeGl4bE5ZTHNORW9CVUlZSXpiWDdQOGpROTh1Qmk1VithOUx5TlBVSDdl
dTFxR1Q4eDcKU3JsUHVSLzdHeEl6bmpCMjZZaEFLeEZJeStwV2xsV1dkKzNNdFd4dW9VODNEZ0lm
Y2Z2dnY3OFB2KzdLOHJaeS8vYmJiMVg1a08xRQpQVXI3NnF1di9IWFhYZWRCQS9mV1cyL3BSSGZu
blhmMm1IQ0dmeE5OTkpHV2M4UVJSOVR3eWZvaEtzc0hDaFBhSU51dWROV2xwb0RmCkgvRDFIVFN5
dGF3bXVhajltUEJPTmRWVUhzb04ycHQyK0VJUHZvWVgwazBCU2E4NmdCZG9vUkNZSzl0V3k1ZjJz
YXFRNW0wMGNzK0cKcHIzMDBrc2FWYWJNTXYxdjVhVjlLRDR6ekRDRGw2MW42U1I5dHZxSmxUSjlS
cG5qamp1dWppV3NYcVRkaVNlZXFPM0J5bGZvc3NaUwpJN3hpeGxOWUxzTkVvQlVJNEgyMnYyYjVH
eC80Y0VWeXI4eDdYMGFlV0R1eTN0V3lmR0xlVThwOTV5bjM0MzVEWXNhVGpWLzZSS0JWCkNLUmxk
YXZLYVlSdjVXZEFSRUE3bVZ5N280OCtXczhQeU5jQ2FiL1RpK0hnNDJ3RDd1bVlaWlpaOEZqalpB
dVduaGNaWjV4eE5GNisKYnV0K2ZwazhPcGxzMS96SlYyZ24yMXYwZkVRTms0eUhzbnpHSG50czVT
SmJybHhaaXhwRjdaZFZGSWZiZEhHT0JlMnQycFZ0YXlQbAp5L1l6emZiamp6K3FYNmJNTXYyZlY3
ZVhYMzdadmYzMjI1bGpDSGt3L2tMMy9QUFBPNWtBT1ZGYU1pMlh5Ulk3SlpjdFcycGFPY3liCkRq
ZkNxNW54bEM2ZnowU2dFeEVva250bDN2c3k4cVFlRm1YNU5QT2VGcldmY2ovK2R6K3ZUeW4zODVC
aFBCSG9UZ1FhdTZtdFRsc1gKV21naHZSMThvNDAyY3JLTlNBOUt5d3FHTytta2s1eWM3M0NZd01I
SldZNDZYRVlrUWVEQTRXNFBIREp1MUZYRko2YjhvdmEvOE1JTAp5c2J1cW9qaFdZYW1uVzIxZXBV
cHMwei9HLyswTDEvZ05HcU1NY1pJSjlVODJ5SDAxMTU3VGVQemxFa29KbEJhNUF5SkErMlVVMDVa
Cnd5ZDhxSkpYeUpkaEl0RE5DQlRKdlRMdmZSbDVVZyt6cXZqVUs4UFNpdHBQdVIvL3UyK1lwbjNL
L1RRaWZDWUMzWTFBNVNzZ2dHT0oKSlpaUTVXT2JiYmJSRlFRNXZLd3JHMGl6cjB5d09GTGtZSEVK
em42OGl1anowcXZpazhjL0hWK3YvVFlwZnYvOTk5UFpLbmx1ZDF0Ugo2VEpsbHVuL1BFQ3dHZ1lu
V3l6eVNHcmlwNTkrZW4yV2N6ellMMUtUaGdjb0ptT05OWmJHRnltR1ZmTHFVUkZHRUlFdVJxQ2Uz
Q3Z6CjNwZVJKL1hncW9wUHZUTEN0SHJ0cDl3ZnNhc2c1bmMveERRTVUrNkhhREJNQkxvZmdjb1Zr
Q3V1dUVKUkVVdFk3cnp6em5OMzNIR0gKay9NYTdxYWJibkt2dnZxcWcrbFRPSmcrbFQyU0dnNy9Z
WUlJTTQxd1psNFdKbnhoQWpITHdVUXV2bHpYYzFYeHFWZUdwUlcxZithWgpaMVpTckE1aEsxcmFa
VTJRamFhb25hQnJaMXV0WG1YS0xOUC94ai90RzQ5bm5ubkdRYW5JYy9hamp4VTBoTEZsYk9qUW9U
M0k4WFVTClc3UXdUckVhVXM5VnlhdGVPVXdqQXQyRVFKSGNzM2VXY3A5eXYraDNQMi9jMnhpaTNN
OURpUEZFb0xzUXFGd0JnYklnbHBJU0ZIQjMKeE41Nzc2M1BZbGxKdDFQTk45OThxalNJR1Y2SGZm
Zm1vR1NBRm5kYndDSHZ3SUVEM1NlZmZPS3dqY3ZPSEJpOUhFQjMySVlUN3ZuUAptc0Ezd2dkbFpQ
R3lzc1Vjb0FiTnQvaVk5azgrK2VUYWxtT1BQZGF5cVkvN0s5Qld1TEJzVEl6aG9NQ0Z6Z1E1YURH
QmhtdTByU0ZmCmhNUHkwMm5wTnBjcEV4UDQyUDVQbDJ2UEN5NjRvQk1UeVRxR2pqenlTSXRXSDJQ
RUZEdFRXbkdXUjh3ZWF6cnVUMG03aHg5K1dLUDIKM1hmZm1xUXNEQnJsQmNaWi9NSUNIMy84OFI1
OUhLWXpUQVE2RllFWXVSZjczcGVSSjRaSDFydlZDQi93eStKbDVaanNNOS9pWTlwUAp1Ui8zdTIr
WXB2MitLUGNwODlPOXpPZCtoWUFJMjZhY2dGVmpXVVV1Zy9PaVJOVHczR1dYWGJ4c2JmRXlJZFI0
M1BNaGlvUG13NTBoCjY2NjdydDl3d3cyOUxOUDcvZmJicnlidmxWZGVxVmFlVU00ODg4eWo2WEpK
b0llbEk3bUlyOGJTRmpMaWJnM1FodmVPSUw0TUg3dVAKUXhRYmI1YVV3Q04wY3ZtZGxuUFVVVWVG
MFQ2bS9iaFB3M0REWFNiWFhudXRoem5mTmRkY003bGZKRFREQzJ0WmR1OEk3aVc1Kys2Nwp2YXo4
ZU5uaTV1VzhndkxhWTQ4OVBLeHV3SlZwYTAzbGc0ZEhIbmtrcVdONG40Yjg4S29WTDlULzMvLytk
NUtqVEpsbCtqOHBJQldBCktVU1lBa1k5WUlIbnlTZWYxTHRUNURDb0Z5TUdHZy9Ub05kY2M0M20v
UExMTC8xTU04MmtlWERQaVRtMEIzMHBlN2k5S0M4V3JYN2UKV0NyTEsyWThQZkRBQTFwbm1CQVdK
YlNtSG53Z0FsVWdZRElIZnJNdXpTdEc3cFY1Nzh2SUU3UWw3MTB0d3lmbVBhWGNwOXpINzA3TQpi
MGpSZUtMTWIxWUtNWDhNQW1sWkhaT25YVFJOL3hLbEc0ZEp0S3hhcUZKeDFsbG5lYm5kWEM4U0RN
M0tvbkdZTU5xUEJuamdYcEN6Cnp6NDdzOTI0aThQTTdvSVdBbUNmZmZieHVBZkRuRmc4OFp0dnZu
a3lhWjUyMm1uOUlZY2NVbVBxTm9ZUEx2MkRvbVB0V256eHhmM0oKSjU5c3hlamxmL0tsUEZHZ2NG
SGZDU2Vja0pRVDIzN2NKV0ZLR0NiTWE2eXhodDV2QWtVTlphZnhHakpraUpmVkEwMURtYWdEVE1w
aQpVbzB5NVhaVy8rbW5ueWIxakdsclFwd0szSHZ2dlg2eHhSWkxNTUJFWGxZSnZCekE5dXVzczA0
U2ovNlRyWFZKN2pKbGx1bi9wSUJVCkFBSit4aGxuVE9xRGl5UGxCbmU5MTBOdXNWZWx6aTRwUkZh
RWNma2xMcFRjZmZmZHZheUdhSHUyMkdLTHhQUXo2R0xHVWl5dm92R0UKOHVDQWg1eEYwY3M0czh3
emo2RGlmeUxRT0FJbTArQTM2OUs4WXVWZW1mYytScDdFdktzeGZJcmVVMXo2U3JrLzRtTWo1WDd4
YjBqUgplTUw3UjVuZnJCUmkvaGdFMHJJNkprKzdhUFFDQ2FsZ3c4NzIyWU9CVkZxM0ZzbFhYQ2VU
S0ljdFYzTG5SVjJyUWpKcGRqS1pjN1BPCk9xdnUwOCtyQ0hqRHFzazMzM3pqUkVGSURyUG4wZWZG
VjhVbmp6KzJBTVcyWHhRb04yellNQ2QzZitoV012REVJV2U1YU5IaHNKN2MKT3Q2akdMbkYyOG1r
T3pFUGpHMUdkdGd5VGR6cXRxYkx3M1BaTW1QN1A2c3NpM3Z2dmZjVUQ3bkhRNlBBYzdMSkpyUGtI
ajYyQ0lydwoxNjE3TUllTWJWV051aXA1d2JRd1RCemovQlFkRWFnYWdiU3Nib1ovbWxjWnVZZHlZ
OS83c3ZJa3IwMVY4Y25qWDZiOWxQdngvWitICk4rTDdndHlueksvWHcweXJBb0cwcks2Q1oxVThL
bGRBcXFwWWYrVlRwSUQwVjF6WWJpSkFCSnBEb01vZm9pcDVOZGVxdnBHYmNyOXYKOUNOYlFRUTZE
WUZPbHRXVkgwTHZOUEJaSHlKQUJJZ0FFU0FDUklBSUVBRWlRQVE2QndFcUlKM1RGMW9Uc3lCbVZx
MDZySHFzRGhFZwpBa1NBQ0ZTTUFPVit4WUNTSFJFZ0FoMlBBQldRRHVraXNXeWxwb2J0aG5pWWw0
Vzljem9pUUFTSUFCSG9td2hRN3ZmTmZtV3JpQUFSCktFYUFaMENLTVdvTEJTN0lTOXVXeC8wZmR2
bFNXeXJCUW9nQUVlaXpDRlM1RjdoS1huMFc4SWlHVWU1SGdFUVNJa0FFR2thZ2syWDEKZ0laYmxa
RXhiR2hHTXFPSUFCRWdBa1NnanlGQXVkL0hPcFROSVFKRWdBaTBBUUZ1d1dvRHlDeUNDQkFCSWtB
RWlBQVJJQUpFZ0FnUQpnUkVJVUFIaFNDQUNSSUFJRUFFaVFBU0lBQkVnQWtTZ2JRZzBmUWFrYlRW
bFFVU0FDQkFCSWtBRWlBQVJJQUpFZ0FoMFBRSmNBZW42CkxtUURpQUFSSUFKRWdBZ1FBU0pBQklo
QTl5QkFCYVI3K29vMUpRSkVnQWdRQVNKQUJJZ0FFU0FDWFk4QUZaQ3U3MEkyZ0FnUUFTSkEKQkln
QUVTQUNSSUFJZEE4Q1ZFQzZwNjlZVXlKQUJJZ0FFU0FDUklBSUVBRWkwUFVJVUFIcCtpNWtBNGdB
RVNBQ1JJQUlFQUVpUUFTSQpRUGNnUUFXa2UvcUtOU1VDUklBSUVBRWlRQVNJQUJFZ0FsMlBBQldR
cnU5Q05vQUlFQUVpUUFTSUFCRWdBa1NBQ0hRUEFsUkF1cWV2CldGTWlRQVNJQUJFZ0FrU0FDQkFC
SXREMUNGQUI2Zm91WkFPSUFCRWdBa1NBQ0JBQklrQUVpRUQzSUVBRnBIdjZpalVsQWtTQUNCQUIK
SWtBRWlBQVJJQUpkandBVmtLN3ZRamFBQ0JBQklrQUVpQUFSSUFKRWdBaDBEd0pVUUxxbnIxaFRJ
a0FFaUFBUklBSkVnQWdRQVNMUQo5UWhRQWVuNkxtUURpQUFSSUFKRWdBZ1FBU0pBQkloQTl5QkFC
YVI3K29vMUpRSkVnQWdRQVNKQUJJZ0FFU0FDWFk4QUZaQ3U3MEkyCmdBZ1FBU0pBQklnQUVTQUNS
SUFJZEE4Q0E1cXQ2aWlqak5Jc0MrWW5Ba1NBQ0JDQk5pTGd2VytxTk1yOXB1QmpaaUpBQkloQTJ4
Rm8KVnU1WFhXR3VnRlNOS1BrUkFTSkFCSWdBRVNBQ1JJQUlFQUVpa0lzQUZaQmNhSmhBQklnQUVT
QUNSSUFJRUFFaVFBU0lRTlVJTkwwRgpLNnhRcHkzdmhIVmptQWdRQVNMUW54Rm8xYllweXYzK1BL
cllkaUpBQkRvWmdWYkovU3JhekJXUUtsQWtEeUpBQklnQUVTQUNSSUFJCkVBRWlRQVNpRUtBQ0Vn
VVRpWWdBRVNBQ1JJQUlFQUVpUUFTSUFCR29BZ0VxSUZXZ1NCNUVnQWdRQVNKQUJJZ0FFU0FDUklB
SVJDRkEKQlNRS0poSVJBU0pBQklnQUVTQUNSSUFJRUFFaVVBVUNsUjVDcjZKQ2ZaN0hiNzg1OThz
dnpvMHhSbjVUWTJnc2R5eHRMSjN4VGZ2Tgo1ay96aytkblAzclduZmZrZVc3VVVVWjFhODI1bGx0
NjROSVpWQ09qTG5uNkV2ZmN4OCs1WDMvNzFlMjc1TDV1aW5HbkdKbjRleWlXClp3d3ZzSXpsMTZN
aXlQdnNzKzdhYTY5MUcyNjRvWnR6empsclNINFRQSysvL25yMzl0dHZ1MjIyMmNaTk1NRUVOZW4x
OHRZUVpqeUEKOXk4eXhzYW9OOFl5OGlHcTFYbWI0WjlUWlVZVEFmZnJyNys2Ung1NXhFMHh4UlJ1
dHRsbWF4a2lIMzc0b1h2cnJiZmNuLzcwcDVhVgpRY2FOSXdDNU9lT01NL2FRcDJVNHRtc3NsYWtU
YVlsQW4wUkFMSmcwNVFRVTNHaWxmMDB4NmcrWm4zbkcrK21tODM3U1NiMi83YmJzCkZzZlFXTTVZ
MmxnNjQ1djJtODJmNWlmUFAvN3lvei9vem9QOGR6OTk1My8rOVdkL3pQM0grQSsvL2pDRGNrVFVy
YS9lNm9lOFBFUWYKUHY3bVkzLzRQWWYzb0kzbEdjTUx6R1A1OWFpSVJGeDg4Y1hKZXlGV0tQeDEx
MTFYUTdiYWFxc2w2Wk5NTW9uLyt1dXZrL1NpdkFsaApSdUFaNmF2cFpJeE5LbVBzdHJ3eGxwRVBV
YTNPMnd6L25Db3p1Z1FDSnFmaE4rdXE1TlZNWFI1NjZDRy8xVlpiNlhoSG5TNjk5TkptCjJCWG1I
VGh3b0w2Mzk5eHpUeUV0Q2RxRHdOTlBQKzEzM25sblArdXNzMnJmREJzMnJLR0MyejJXR3Fva014
R0JrZ2gwaXF6T3FuYlQKdjBTZDNMaXNCdmRxM0Q3NzRQN2hFWDhiYkpCZGxSZ2F5eGxMRzB0bmZO
TitzL25UL09UNXVoZXU4Mjk5K1ZhU0FrWGtuTWZQU1o3VApnWk1mUHJrbTZ2OWUrai8vK3VldjE4
VEY4b3poQmNheC9Hb3E4ZnZEWW9zdGxpZ1llRWRXWG5ubGhFeStvUHBSUngyMUp2MkNDeTVJCjB1
dmxUWWh5QXZ0SVg5azd1VUhlR091bHZNM1VMYWZLakM2QmdJMEwrTTI2S25rMVV4ZFpVZk1mZi95
eG4yZWVlWFRjWDNiWlpjMncKSzh5TER3ZjRZUERLSzY4VTBwS2dQUWo4L1BQUC9yMzMzdlBqakRP
T2pvRTMzbmlqb1lMYlBaWWFxaVF6RVlHU0NIU0tyTTZxTnMrQQpTTyswelMyMDBNaWl3dkRJV09m
QytEQWMwbGc0VEEvRGxtNSttQmFHTGIzSUQvT0U0YUo4ZGRKLy9QVkhOOWFBc1JLS0FhTU9jTC84
CkpsdlRjbHphbHZXWUE4WjA0Qkc2V0o0eHZNQTNsbDlZQnd0Lzk5MTNGbFQvbTIrK1NaNS8rT0VI
M2VxVVJFamcyMisvVFI3cjVVMkkKY2dJTEJmMFRoblBJYTZKRCtqQmNRNVR6RU5LSDRaQThqQS9E
SVEzRFJLQU1BbmlYSjU5OGNqZnZ2UE5xTnZtUks1TzlOTzJRSVVQYwpSeDk5MU5KdFhxVXIxYzh6
REJnd3dFMHp6VFJPVm40VkNUdzM0dG85bGhxcEkvTVFnYjZFUUdOdmFsOUNvSjF0R1R4NHhQckhW
MTg1CnQ5VlcyU1hIMEZqT1dOcFlPdU9iOXB2Tm4rWW56MnZNc1lZN2RlaXBicDhsOW5FUS9CYy9m
YkZiZGZaVk15aEhSQTJjYUtCNy9QM0gKM2FCcEJya2ZmdmxCd3l2TXNrSU5mU3pQR0Y1Z0hNdXZw
aEsvUCtCY3gyNjc3WllrYmJmZGRrbDQ5dGxuZDMvKzg1L2QvZmZmcjNGagpqejIyMjJTVFRaTDBl
bmtUb3B6QVlPa3JUTUsra2pFbVcxTnlxTEtqVzUyM0dmN1pOV1lzRVJpQmdFMDYweDhYV29HUGxk
VUszdVRaCk9BS3lxcXlaelcrVWsvVnZPOFpTbzNWa1BpTFFGeEFZQmNzaXpUUWtmRW1iWk5WTU5a
aTNDeEc0NTgxNzNQOCs5Nzl1OUZGSGQwdk4KdUpRYlBJOG9hRG51Ti8rYk8vNmg0OTJuMzMzcXZ2
emhTMVZjWnAxazFoN1VNVHhqZVlGNURMOGVsZmc5UXM1ZzZFSHpqVGZlV0JXTwprQTZySE9lZmY3
Nzc0SU1QM0U0NzdaUjh2VE9hZW5tTmhqNFJLSU5BbGJLNkhpK3M4STAxMXNqVnpidzZ3aUJCczVO
RjQ3M3BwcHU2Cnl5Ky8zTWtXckJwbDN0TEwrUGdkQzl0WEppOW9ZOXR2djVkaFdjMldYYmF1c2ZT
dHFGY1YvZi9UVHo4bHhqYm1tbXN1OTlKTEw3bjMKMzMvZlRUMzExTEZONjBGWDVWZ0M4MVpnMTZQ
U2pDQUNPUWlrNVVzT1dlOUV5OHZSbEpOOTl6RU9BQUFnQUVsRVFWUmE2NzVMK0hSRQpnQWdRQVNM
UW1RaFVLYXV6ZUoxeXlpbCttV1dXOFgvLys5LzlldXV0NTlkYWF5MHZTbllQTUhCUVhKUnlMeE05
ditTU1Mvb2RkdGpCCjR3Qncyc25rMHYvakgvL3dLNnl3Z2g0eWwyMTcvdlRUVC9kaXBTaE42bVVG
VVgrSHNzNkF4UEo1NnFtbi9KNTc3dW1YV21vcExlT2cKZ3c3eXNyM0xyNy8rK2xyZThPSERQZml2
dU9LS2FtUWlYWW5ZOW9QSHV1dXU2emZmZkhQMWNUNE1jY3N0dDV6SGdXcTRxNjY2U3VzaApGcjM4
dHR0dW14U0ZzMkxBQS9HeWtwckVXeUMyclVZZitqLysrS08vK2VhYnZhekEra1VXV1VTVDBGZm8w
M0hISGRldnNzb3FYcmFmCmhWazBYTGJNMlA3dlVWQVFjZXFwcCtxNU92U05yQ2I3UXc4OU5EbUVM
aDkxQXNvUndZc3V1c2l2dE5KS21rY3NFdnBWVjEzVnkzYTYKSG5TSXFEZVdrQjdMcTJnOGdSY2RF
V2cxQWxteXV0Vmx4dkp2V212bzVNYkZna0E2SWtBRWlFQmZSNkJLV1ozbWhRazBEbWZMMTMrRgpF
UWQ2Tjl0c001MFlHcTVRSExiZWVtdWQwQnNkRHBDTENXby8rdWlqMXlnaG4zLyt1Vjk2NmFXOXJH
cW9NaUFyaHFxMG9GendTTHU4ClNXTXNuM1BQUGRmTFYzTlZZdWFlZTI1VlJLQkFvVjRUVGppaGYr
NjU1L3hoaHgzbXh4dHZQS1ZKSzFZeDdRY20yMisvdlY5Z2dRWDgKWjU5OWxqVGhycnZ1U2o3aVlk
SnE3dmpqajlkNFRKeEQ5OFFUVHlUMFlYeHNXOE04WWZqMjIyLzN5eTY3clBLV014VmV0cENxaFRF
bwpmZlBQUDcvR2g4WTBrTGRNbVdYNlA2eFhHQWFHc0hvMmFOQWcvOFVYWDJnUytLSnZiRXlHQ2dn
T3FNdldUdytsNDQzZkQ2ZGo3R0ZzCmdqNVU3cXljdkxGVWhsZlJlQkl6NlZZY2ZTTFFVZ1RzdllE
ZmFhN3BHblZ5NHpvTmJOYUhDQkFCSXRCYkNGUXBxOU84Vmw5OWRTOWIKWUdxYUJrdFJCeHh3UUJK
M3pqbm42RW9HVmhKQ2gwa2crQjEzM0hGSjlLNjc3dXEzM0hMTDVCbUJkOTk5TjVsa3BzM2c1azBh
eS9DNQo5ZFpibGY5b280Mm1LeEFvODUxMzN2RXZ2dmdpZ3Vxd3NvTzZwaFdRbVBianl6bnkzbmpq
amNZdThTZWVlR0pOQ3hVUXJFYUFQcTJBCmZQLzk5eHFQdE5DVmFXdVlMd3kvK2VhYkNXOG9SdWFn
YU1oV0RpL25JenhXUE15VktiTk0veHYvdEkvVkU3VDdzY2NlcTBuQ2hIN00KTWNmVU5MbXJKVW5E
bUFKOTJpUTVsQkNNVjZTaFgwS1hONWJLOG9vWlQyRzVEQk9CVmlDQU1XNS9yZURmREU5YXdaS2Vv
U01DUklBSQpFSUhHRVpEN01aeE0xSjBvSEhvcElEamhRa0F4QmExTWNlWnAvLzMzZCt1c3M0NGJm
L3p4YXdvNjRZUVRuTnlUbzJlaGtJRExPYzg4Cjgwd24yMzcwVEllc0xxaC85OTEzdTRrbW1ranpQ
dkRBQXpVOHNoN0s4cGxwcHBtVWpkeWg0MFRSMERBc0s0V1hpRnJkdzMzVklDeHEKdjJ4dmN2dnR0
NThUNWFiSGVURGtuM0xLS2VGbG5qMUpsMlhQNWlOZjJiWWlUNWFUMVI2TkJtOVpEVWxJUkVGeWNz
K0dYbkQ2K3V1dgphM3laTXN2MGYxSm9LaUFyRU83QUF3OTBjOHd4aDVNVmtKcFU0RHJEREROb25P
R0NNbVZybHNPaDhyQXRJQkpseFpsaEVJekxJdGNJCnI1anhWRlF1MDRsQVgwYUFDa2hmN2wyMmpR
Z1FBU0xRQmdSZ2NRMlR3S09QUGxvbmh6Q2lBQ2RiZDlUSERkV3k3Y2pOTXNzcytoeisKa3kxWWJ1
MjExM1p5ajROR3k5ZHRuZWhDQVpFdjFUVi84aFhheWZZV0o5dXpRaGFaNGJKOFlJME9EcFB3c29m
amk5b1A1UXkzcUMrOAo4TUpOM2RLZDJWQ0pMTnZXUEQ3MTRtWDdtU1pEbVlJclUyYVovbGZtR2Y5
ZWZ2bGxWYlN5eGhESU1mNUM5L3p6ejZ0NWN5Z21adGtxClRKY3Rkdm9JUXlBd3JWelBOY0tybWZG
VXJ5NU1Jd0o5QlFHYTRlMHJQY2wyRUFFaVFBUjZDUUhjNjNMdnZmZTZqVGJheU1rMklpY0gKdFoz
Y1R1MU9PdWtrSitjb0hDWndjUGlTWE9RdzBZVEQzUjZ5VjcrSVBEZTlLajY1QlFRSlJlMS80WVVY
bE5ydXFnaXlWaEpzWjF1dAp3bVhLTE5QL3hqL3R3OElWM0JoampKRk9xbm0yRlpEWFhudE40L09V
U1NnbVVGcmtESWtEcmExQzFURDcvYUZLWGxuOEdVY0UraU1DClhBSHBqNzNPTmhNQklrQUVLa1pn
aVNXV1VPVUQ5OWhnMGllSGwzVmxBOFhZMTJDeDhsUllxbTF6c2tscllZWWNncXI0NUxEdkVWMnYK
L1RZcGhvbllWcmgydHhWdEtGTm1tZjdQd3dlcllYQnZ2ZlZXSGtsTi9QVFRUNi9QY280SGgyVnEw
dkNBTVdybW9vc1V3eXA1OWFnSQpJNGhBUDBXQUNrZy83WGcybXdnUUFTSlFGUUpYWEhHRnNoSkxX
TzY4ODg1emQ5eHhoNTdYdU9tbW05eXJyNzdxY0VjRG5CekFkbkk0ClhjUGhQMHdRY2RZRERudjg0
Y1RrclB2NjY2ODFuUDUzOE1FSEoyZE4wbW4yWEJVZjQxZlBMMnIvekRQUHJObXhPb1N0YUdtWE5V
RTIKR255aEwzTHRiS3ZWcFV5WlpmcmYrS2Q5NC9ITU04ODRLQlY1enBROXJLQWhqQzFqUTRjTzdV
R09WYWx2di8xV3g2bWRIK2xCOUh0RQpsYnp5eW1BOEVlaHZDRkFCNlc4OXp2WVNBU0pBQkNwR0FN
cUNXRXBLdU9MUTc5NTc3NjNQWWxsSnQxUE5OOTk4cWpUSTNRMTZBYWNSClE4a0FyZHhyb1ZISU8x
QU90WC95eVNlNmpjdk9IQmo5RVVjY29kdHd3ajMvV1JQNFJ2aWdqQ3hlVmpZdXo0TXozK0pqMmk5
M2l1aGsKK05oamo3VnM2b3NGSjIwckhzS3k3Y0E5RkxqUW1RSUhXa3lnNFJwdGE4Z1g0YkQ4ZEZx
NnpXWEt4QVErdHYvVDVkcnpnZ3N1Nk1SRQpzbzZoSTQ4ODBxTFZ4eGd4eGM2VVZwemxFYlBIbW43
aGhSZlcwT1BoNFljZjFyaDk5OTIzSmkwTGcwWjVnWEVXdjdEQXh4OS9YSlgwCk1JNWhJdEF2RUpD
WG95a25JSFdzaWErbUd0YWl6TEJSL3Nnamo3U0llL2V6bGE5Yi9xdXZ2bXFxSVRESktGWnlQTXlB
ZHJMaldPamsKM3VsN2RhdFNWcWQ1NGZJK1VTSnFRTnRsbDEyOGJHM3hNaUhVZUZ3MktQdjM5ZmND
ZDRiZ01yNE5OOXpReS9ZY0x4YWlhdkplZWVXVgphdllWNWN3enp6eWF2dGRlZStrRmZMZ0lNSDJQ
QXU3V0FDMHVwQXRkR1Q1Mkg0Y29OcGtYN29Fdkx1TkRPVWNkZFZSWWpGNGFXTlIrCjNLZGh1T0V1
azJ1dnZWYk4rYTY1NXBySi9TS2hHVjdJUWJ0M0JCY2tpaFV3THlzL2VsR2duRmRRWG52c3NVY2k1
OHEwdGFieXdRTisKbTZ5T2tFL21jUC9HVkZOTnBXbi8vdmUvTGRxWEtiTk0veWNGcEFJd3B3dFR3
S2dqVEFBLytlU1RIcGpoYmhBeFlxRHhNSWw4elRYWAphTTR2di96U2l6VXF6WU43VHN5aFBlaExY
RzRweW90RnE1ODNsc3J5aWhsUCtKMUNXMkJDV0JUdW1ucndnUWhVZ1lDOXovQTd6VFZkCm83Qnhs
MXh5aVY5dHRkVzhMR2NtZjdJdjFvdnB2QjR2ZWFjQjBhNzZ5SmM5RlRocE8vYnRLcjhUeThIdHYz
SmdOYm5KZHRpd1lRMVYKRXo5dytDRVNNNXFLTVd6R2Q3TGpXT2prM3VsN2RRdGxkYk90Uy9QQ0pC
cmpHVXJGV1dlZDVYZmNjVWU5U05CdTlyYnlNR0cwQ1I1NAo0RjA5Kyt5ekxibkd4MjNnc2dxZzd6
Sm9NZkhjWjU5OVBPN0JNQ2VXbVBSR2NhdlB0Tk5PNnc4NTVKQ2FqeGd4ZkhEcEh4UWQ0N1A0CjRv
djdrMDgrMllyeHVQeFB2cFFuQ2hRdTZoUHp3VWs1c2UzSFhSS21oR0hDdk1ZYWErajlKbERVVUhZ
YUw5eldMYXNIbW9ZeVVRZGMKaUlkSk5jcTgrT0tML2FlZmZwclVNNmF0Q1hFcUlFWUUvR0tMTFpa
Z2dJbThyQko0T1lEdHhYeHlFby8razYxMVNlNHlaWmJwLzZTQQpWQUFUK3hsbm5ER3BEeTZPdk9X
V1cvUmVEOXphamp0YTdKSkNaRVVZTjZiTEtvYmZmZmZkdmF5R2FIdTIyR0lMTHl0SUNmZVlzUlRM
CnEyZzhXYUhBUTg2aTZHV2N6WDU0TTU3MGlVQ0lnTWswK0ozbVJrR0ZwR0lOTzl0dkNRYkdTZ1NV
d3o1Tm1GVjg3NzMzRXR2dERSZlMKaHpLS1VIY3lVWGJ5cFVudDVQZWhwalhjRkd4QmtCdVJGUTlZ
eVpFYmE1MU1aa3J6dy9pVEgyUGRqb0FEck5oVExwZEtsZWJUcmd3YwpDKzFDbXVVQWdTeFozU2d5
YVY3WUFvTzdGV1FTNWJEbFNyNlcxN1VxaFBkVUpuTjZ0MFRJSzEwZnZOT3d0dlROTjk4NFVSQ1N3
K3hwCnVxTG5xdmprbFZPbS9hSkFPZm5Jb3ZlTG1FVW5ISEtXaXhZZER1bWI2ZUt3TE1oRW1YUW41
b0d4emNnT2dZZDBDTGU2cmVueUdpa3oKdHYrenlySTR6QzF3a0Z4dXNOY284Snhzc3Nrc3VZZVBM
WUl5NFZmTFZ6Q0hqRzFWamJvcWVlRStGWmc0eHZrcE9pSlFOUUtoZklWcwo2Q1RYRWdVRWt6NGN5
c01oTlRPZDEwbU43dTI2WU1LZFpaZTh0K3ZWMitWanZHQi9NdzRZRmxrbHFWZFgyZGJoNUt1Y2t4
VVF0K21tCm05WWo3ZlcwdkxHQWc2ZTRvRTIrK1BaNkhhdXNRRjl0VjVVWXRZcFhsVDlFVmZKcVZY
dTdpVytSQXRKTmJXRmRpUUFSNkJ3RU9sbFcKdCtRUU9yNkV3Y0grTzExUEJLaDg5TVFFTWZpYUZm
cjYwTUEvd3pkODhScGcwNVlzVnRkMFliS054TjE2NjYzcDZLNS83cXZ0NnZxTwpZUU9JQUJFZ0Fr
U0FDTFFSZ1pZb0lHMnN2eGJWYWN0S1ZiWmY5dnNXc2pQNzZJV0VIVWp3MDA4LzlhaFZweWtPell5
dlJ2cm1vb3N1CmNuTEl0UWN1c1JGWVZSaytmSGdzZWR2b21tMVgyeXJLZ29oQW14RXdDMkptMWFy
TnhiTTRJa0FFaUVEYkVlaElCVVFPMXJtVlYxN1oKaVpVS3RSOHZCOXZWZm53YUhleVhGY3NvVGc2
ZXFWbEUySWFmWW9vcDNBWWJiSkNRWWdLUHI2NjRtUmY3UTdIMzg0d3p6dWhoUmhINwpiNDg1NWhq
M3h6LytVZlBlZi8vOWJxMjExdEw5cFlzc3NvakRNeHd1a29JSndFR0RCcW5aU0xIZWtweDlVWUk2
LzdCdjkvTExMM2NyCnJiU1Nrd1A3Q1NVbWpQamFMWlpSM1BMTEw2LzduZEVXbUMzRU9aby8vT0VQ
bVhiTVR6MzFWRDN2SUlmODNlREJnL1hTTDVpRGhMdjYKNnF2ZDBrc3ZyWFhjYnJ2dGtySmdqaEJZ
d09TbDJYRzN4SFpnWUdXZGR0cHAycis0NlZnczZMakREanZNQVFlNExBVWtka3dZLzNwKwpMSytZ
OFpWWFRyMitRWjY4c1hET09lZm9PSURTSTRjaWRieGl6TUlrYVpIREdFS2ZpL1VoZDlCQkJ6bmN6
aXlISVh0a3E3cWZZOTZ4Clp0clZvd0dNSUFKOUJBR3hiS1dtaHUyR2VQeTI0UHdrSFJFZ0FrU2d6
eU1nRTUybW5BQ1VXS013UnJCRWhIaFk3eWpqWU4xREp0SisKempubjlITG9UclBLRjJRdmsxVGx0
KzIyMnlic3pqMzNYQytIenpRZVZqQmdwbEFVQmkvYnZ0VGFoVXhtdlh4VlVrc3NNdW4zc3ZmYwpp
NUQzRzIrOHNlYUJHVVJ6c0VpMXdnb3JhTHpjak9wbE11eTMzSEpMRDZ0ZWYvdmIzelJlRkJzUE9y
Rjk3a1ZSOFhMWmxwZEp2S2FkCmROSkp4aXJYZi9IRkY1V3ZtVldFcFE1enNOYTA2S0tMS2k5WU4x
bHV1ZVhVS3BUWWkvY3krZFI0bU9sNzlORkhMWXVYQTlZZXBpeUIKRHh6TUNnS24wQXdsTEhHZ0gw
VGhTZkloQUlzdTFtK1cwQTRNVUJicWlmRWhDbHhpcVFSOUE4eXRUcUg1eHpKand0b2laNUNVRnpB
SwpYUmxlTWVNcjVCMkdpL3FtM2xpQVNVaFlsUUVXR0pPdzBvSS80RmJQM1hubm5SN21RMkZseHh6
R1BmaUVPRlRkejdIdldLUHRzcmJRCmJ4NEJlNy9nTit1cTVOVnNYYm81UDh6ZXducGYrQ2NYNUhW
emsxaDNJa0FFT2dpQlRwYlZUZjhTWlRXdVVRVUVreWZ3ZzYzdjBHR1MKTGJlZ2FwcHM0MGlTNUl1
dnhtSGloVWtibkJ4Zzlwamd3Y0ZPT0JTSjBNblhYODJEY2pBWk13ZmxSUGJqYTVvY29MZG85VEdC
QnowbQpoS0F6QjdPRmlGOXl5U1V0cXRCZmI3MzFORStvZ0NBVGJKU0RGeFNONTU1N0x1R0RpWnVW
THlzOVNUeE1KQUtUME9IZWl3TU9PQ0NKCnV2bm1tNVZuV2dHQkdVdVVoYi9RdFFNREtGc29GeVlQ
UXdlRkVXMUgyb2NmZnBna2xSMFR5SmluZ0pUbFZUUytra3FtQWpGOWd5eDUKWStHR0cyNVFIR0Nu
UHRidHNNTU9tZ2RLc3ptWTlBU2VmLzNyWHkxSy9Tcjd1Y3c3MWtpN2Fpck9oNllRd0Zpd3Y2WVlT
V2JqQTUrTwpDQkFCSWtBRU9oT0JUcGJWQTZSeUhlRmtVdVRrNjcxYWg4SU5xNkhEb1hac0kvcjcz
Ly91OXQ5L2Z5ZjJ1elZaVmd2VUYxdnlUaVp6CkdqYnJTVEJ0ZCthWlorcE5xUElGT0dTblpvSGxV
aUVubHdEcGxoVWt5bVZZYXBZUHQ2bGl5MWZvc0FYcVAvLzVqL3ZMWC81U1l3WVMKWmlIaHNDMHIx
cG5weFBRMkk3UUJidFpaWjFWems4WVBaaHBQUFBGRUxWOFVKalZ6Q2ZPQk1GTXJOdUtkS0J6dW4v
LzhwNW9XbkcyMgoyV3EybnhtUGRGbjJiTDdSdFJvRGJOWEJkakZzL2NJV3R0RGhWbU81UDBiTlUx
cTlHaGtUSWM4dzNBaXZldU1yNUowT3gvWk4zbGd3CmZvYURQZGZ6WmFYT1RUREJCTHB0ME9qd0RQ
ZnNzODlhbFBwVjlYUFpkOHdxVWFaZGxvZCs1eU1BODdzbWEyRlFBa1pJc0kwVmNpblAKeGVTcGlp
YXZEb3d2andENkJBNnlMcy9GMElSNVcwbGZqM2VqYWFoN3ZieGgyeGdtQWtTZ0p3SWRvNERnM2dZ
Y3dKdDU1cGt6VGRUaQpod3dLaUd6UGNSOTk5SkhhbU1kRUNnNFRjck9nWkUzRS9ubWNLUmgzM0hG
ZCtpQ3dmQWxYTXRucVplUjFmZGpvem5KeVNaWkd0L3JnCm9LeDA2UGtWMkRtWFM2SDBYSUNzTXVs
WmxxT1BQdHJKSlV6dVgvLzZsNU1WbWt3YjhsbDFMeHRYQlFhdzU0OUpLODcyWkRrb0lhRnIKWkV5
RStjTndJN3pxamErUWR6cGNWZCtVbWFoRHFjTVlnTU9QSXM0Q3ZmNzY2L3FNOHlheHJrdy9OL3FP
bFdsWGJMMUoxN3NJWUx4Qgp6dUlEa2NsYmZEaVNTd25kZi8vN1h5Y1h3ZldvWUV5ZXFtaDZGSjRS
Z1ROZlVKcGtTMjlHNnNpbzNxQ0xMZE5xV1piZThzWDZPT01tCjMzdjE0MWhlbmhpYU1HOHI2ZXZ4
YmpRTmRhK1hOMndidzBTQUNQUkVvR01VRUV5czRkS0toRlVaWDhjeFFjVTlBcUNkY3NvcExTblQK
eDJRWFRzNmhPQngwYnNhWk9lSDB4Q245M0V3WlJYbXhzZ01GUk00Q0tDa09HTXNXTUxmUlJodTVw
NTU2U2crV3kyM2lUczZqdE1UOApjUlVZMkowd2R2bFdYcHNOMXlySFJKVzg4dXB0OFZYMWplRmdm
SXQ4T1RmbFlMd0ErUTQvL0hCOVgyRDBvQXlmTXYzYzZEdFdwajVGCmJXWjY3eU53MzMzM09ibWwy
ODB5eXl5NkdvdExDREU1eGNydzVwdHY3bVJMcVpQYnEzVUYyV29iazBkdUl0ZkwrdXJ4amFGSmwy
MTEKQ0gzSTFkMTIyMDFYeEhGWkhReWI3TFRUVG1vRXBMZnBZdXRtOVN4TGIvbGlmUmhrZ1l5RFF6
L0NpRWpheGRDRWVWcEpYNDkzbzJtbwplNzI4WWRzWUpnSkVJQWVCWm5ldENkdGtQN0R4S25NR1JM
N09lakVaNm1VN2xQTEJPUUFSb01ZcThSRW5xeGxLODlaYmIyazh6bnVnCmZGbmlUK2dzY01vcHAy
amF2dnZ1YTFHRnZteUQwanlvVCtoa0M1VEd5eGZtTUZvUHRxTjhVWVpxNHVzOUdEYnlaYStHVEg3
MHRBeloKMWxVVGJ3K3kxSjFaTjlreTVyZlpaaHN2aXB1bXI3cnFxcGJGMnhrUXNTaVd4Q0dBTXpX
b3Qwd0VhK0x4MEVvTTdQeUgvSGoxS1BmLwpzM2NtY1B0VjArTGY5M0lOY1ZHVUNEOUQzRndrS1du
aUltU3FSRGRSNmlvVkZ3a05TSkVwWTdsUkt0Y1F5bEJSU2JNb3BHNlpHaFNwCnk3OHVGVEpreXJE
LzY3dTBqdjJjOXd6N25PYzg3M3ZlOTEzcjgzbmZmWjY5MTE1Nzc3WDMyV2NQYXlBQzR3UFVTN3lp
YTNxZk1VSEcKS2gyUVByU2F4cGRXc09WZlU5K1F0VzRzbUs0RXVpUzVJR0pXY2RWVlY0MTc3TEZI
a1lYM0JINktOYlVpemg2RzZPZXU3MWlmZGxsOQpQWnllQTR3Ris1dVdtdEVoRkxIS0tCN1ExWkJF
T25menZQLysrK3Y4TGxiWkpvck15YlB4eGh1MzBzM0JLWmM5VVpIa3gvbm5ueDh4ClRpSWUyblh1
Uk9mdjJHT1BUVEQrOXJnUWVMbGxXbVc3NGx1K3RoQ0RJZWlVMGJmODhVeGNDams0ODRYZlZKZSth
ZFM5S1cvYU5uOTIKRGl3MEI5SzVlcUhyVWk1L3djM3dpbVVyRmN2aHBvS1RVVkc2cmpRNUs1WkJW
RVFMc1NkdVE5ckFUTXh5aFY4bmdzSnBzVXdrYmFRVwpQQjFmR2RkZGQ1MmVPcG5lQUo3bUFiR0VG
Y1FpVnpqcnJMTlV0K1dVVTA0SlYxMTExVVNkeDlKR1JNa0F6RXppN2J3TzdJUjh5REV4CkpLMjZl
bHQ4bDc2eFBGV2g4YUVxclJ3bnhoYlVWQzltb2VjTCtyNWpYZG8xWDIzeGN2cHpnQnNLekg1ai9q
bnRXNTZKKyt4blB4dncKOUcybXBOR3phOHVEdVhCd3hGaEhMZDBjbkhMWlRhMFVTNFJxdnBvYmN6
RXNFdVFBUitkVlRPT21zQkI0dVdWYVBidmlXNzYyRUY4KwoyMisvdmZZei9RdXY2SWNVY25EbUM3
K3BMbjNUcUh0VDNyUnQvdXdjY0E3VWMyQW1HeENValhOQVRrU0RtQjlVcFd2ME9IYmJiVGZOClZw
N1FpSlFUSFUyVEd3ME4wMyt5cTBwLzZqT0s3UGNYQlRrK2VvZ21zYkZKNFMxdmVVdEFGS2lzZDVE
aTJMTzFaNGlGdkp3YUtWa0wKclF3THE4cGdRVXNkOEpWaHdNYktuRmNSUjN2MzJtc3ZUVGJGT05O
UktXOUl4RnFXNHNHM1hQMlZJWGl3empycnFIdzFiU3gvMU9rZgpGaWFBYlJqN2pvbXE4ZENYRnZX
cG9rZDhIZVQwRFhsdERGaG85R3lUaWNoZER0Q0hpSTBBSnViR3M4VlozeEhYQm9aYk5RN0xlYnUr
Cll6bnRRcXp3b29zdUtoZmx2MGZNQVE2RU1PckJZVWdaNUZaTzV5azJFM0lqcDhuTVIyMTV3T0hR
Z0xtc2ptNE9Ebk5rV25hNWZ1WGYKR0o3QXNBZmZJcjROSE83dzdTbjc1bGdJdk53eXJVMWQ4UzFm
WGNpOHpKeXk2YWFiRmloczFCQUJOc2VuT1RoRlpubVlKWDRUYlE3MAo2dHJTbEVZN20rZ2FIOUky
K3JOendEbFF3d0ZaWEUwRlFuYk90ZjVHRzIya2NlTDRMeUtHWWlBTHJTZ3ZyL3F6NEdvZXM3ZXBi
dy81CmlFV1pORFVlczdRRzVNTWtLYUk3bUtVMUVObGVMVWMrRkZFVTB5MjZDTGsrbDFNYXhVRzBT
VTZIb3pndVZKRXRjY1lYTWYxcUlQTEsKaFJpVExPSXNXa1B6QllKb1R3by8rTUVQbERaaVk3UXJC
MmdIUEJOUDF4UG9NaGxxUEdseW1saWtVWWJvZjZqL2tpSlNIa1R1TnNxRwpJNDJLY3Rxb3VGWVh4
Q0xNN3doK1VzNDU1NXdvdHo0cXNvWFlHR1h0dWVlZUVmTzl3SHp3QUJQTFp1NFlFNjYwV3o1Z0tv
NGtUaGUxClRvZ2VIWGZjY1ZxbnJtT0NUSTk4NUNPVlR1b1RoZml1dE5yR0Z6U3JJS2R2eUZjM0Zr
UlJYK3NQUC9BUElMTEdsYUlnYWRseTRxbDUKeEdtbWpoL1o0S2tKYW5ndHl2UVI4U2V4NUtaWmh1
em5MdTlZVzd1T1AvNTRiUVBqVWl6WXBjM3o1d0U0QUYvdGIxcHlSb2RRbklxcQp6eVJFRnNzZ0d3
ajFRd09PaWJieUhyYmxFY2VWNmhQcWlDT09VTlBxVlhSemNQQ0JrNVpkcGxQM0d4OU1adEphVHJ1
ak9LK3RSRjBJCnZOd3lyY0pkOFMxZk9lU2JMWnUrY25RVVl4ZjZYU0VoQnljbE1FdjhKdHF5aWFw
dFMxTWEzODhtdXFRN09BZkd4SUYwcmg1VHZhakwKMUViYzA4WWg0NDhPUWhxSGJvS2NmT3BDMkRZ
RGFib3ROSTB4eU4rS3hSUjFKb2c4dTl5R3hLMjMzanFLNlYxMXlHWjRPTmxqVTJHMAoyUFNJUXFJ
bEZ5SCtRZVFtb01CalFiYjMzbnRIZkdFWW9CK3d4UlpiRkRqb1RLQS93UWRUckV3VitkRkJFVVZG
M1ZTSnFGUEVMNGVWCnYrV1dXMFpSeURPU2MwS2MvNkdQSXJjdW1rZVVOdU43M3ZNZWxYRUcyVFln
Yk1CRStWRWRLT0luUWs0S2RhUEJKaXdGeXBNYm52aWMKNXp3bmlxV1orSktYdkVUemlQV1RGQzJL
cVY1MUNFazlLWk02eUNtM2J2U2dJVjdCbzV5MHF3N09ySGxnRldOaHYyTEZpb0ozT0pJVQpTMTdx
MXdTZTRpT0ZjV0NRT3lid0xTSktyd1hkTmRaWUl4NXd3QUVGajZHWFN5dDNmRmtkMDdDdGI5ckdB
clJFekVIYndlYWFUV0s1Ci85UHllR1p6S1NmR21nZWREL1F6eUNQbXEzVVR2c0VHRytnSGR4WmpQ
ZWNkcy9vMnRRdTVkVkdDMXpac3VPR0dsc1hEZ1RoZ2N4WGgKdEpEUzRtQUh2VExDZEY3RjN3eHpM
V21wZnlMS3pzbkRHR2lqbTROVExqdW43UngwTVJkUlBuTUJqajZyWUNId2NzdTArbmJGdDN4cApL
RVk4Vk5jbmpVdWYwYk5oWGtlM3B3N0FTVGN3T1RUNzRqZlJKZzNkb1pTMjFia3BEUnlScHREdnMr
R1h3M0lieStuKzJ6a3czeHhJCjUrcjVMcnV0UE5WQ2xncjJCdVJBRGFRd2U1dzY1T3FjSzFLdXdj
VWJ1SnJhN1V1VWVtR3g1K2FiYjFaeEx6T3YycGZlTFBKaHFwSjIKNGxzRXF6RllrSUVIbUlTc3Nn
d21INVdBbVV1NTVWQXhCU3pQTkZrR3UwWXNKTW1pdjZERk5iS0p4TXlpUFRrMHVlcW1iZUxSWHRF
UgpPWkpiczlxc1E0NkpJV21WSzl5MWI4cjU3VGZpSnl1dnZIS25zUzhLL0dHMTFWWXpFaHJPUjE5
M2VjZWEya1cvWUVJVUVVbFo5RTIwCnczOU14NEVoNStxVUZ2TTBmN0x4RG5Jcm9hS3RqQWZlQTNH
UUdVNDg4Y1FnTjNNQkVVd0Q1cnUyUEpoUVI3eXdpVzRPVHJsc3EwTmIKK0xuUGZTN0lEWXlhaGVm
WkxNU1Y4eTBFWG02WlZ0ZXUrSmJQUWtUU01QTnRZcjBXYnlIZklmUk9FRmRyd2tGTW1ERUM1TkRz
aTk5RQptelRFN0JBRHRycFlPNXJTd01IRXVoenNCRG00c3l3VElYeEk2enlSNkQrY0F3dkFnWFN1
SG5LTlBrUlRScnNCR2FKeGk0bEdlUU95Cm1PcnVkWFVPRE1rQm5GV3ltQkZSdkNISkxudGFRMzZJ
eXJTKzhJVXZxTDhQTmh6b2ZRRG8zK0VIQkpPdFplZXVwT2ZrR1FxSDh2ckEKdGRkZUc4eTViVlAr
aGNETExkUHEzUlhmOHNtdFFFRDNzc21ocE53c2EzK0tCRVNsem83UkVwSGlnTzhxRHA3YWFKS25E
NzVJQTZnVAo0cXI2VWs4YytuS3d3L1BqSC8vNG9yNU5hZFRGMG5sTzgvRTdCYXR6VmZrcG5qODdC
K2FEQStXNWVqN0t6QzNETnlDNW5Kb3hubTlBClpzeGdKNzhvT01ETkJ3cytySG81RE11QklUOUVW
YlM0d1JROUhqVW13VWtidDVraUl0cDRxNW1UWnlpY1libnAxSndEemdIbndQZzUKVURWWGo2WFd2
Z0VaU1UvZ3pSd1A0WmlyeEZ1NGczTmdPWElBVVVrejc3c2Myei9MTmcvNUlScVMxaXpiN0xTZEE4
NEI1OEJ5NXNDWQo1K3FabU9GZHpwM2RwKzJpUEIxRWFWaXo0aDlETEdTRmIzempHMzFJZVI3bndL
TG1nRzgrRm5YM2VlV2RBODRCNTRCendEbVF4UUcvCkFjbGkwMnlSeENwU3dObGdDaWc4cnJmZWVt
bVVQenNIbkFQT2dkNGNHUElrYkVoYXZSdmtHWjBEemdIbmdIT2drUU5qbnF0OUE5TFkKZFo3b0hI
QU9PQWVXQmdlRy9CQU5TV3RwY05kYjRSeHdEamdIeHNlQk1jL1ZMb0kxdnZIaU5YSU9PQWVjQTg0
QjU0Qnp3RG5nSEhBTwpMRmtPM0hZV0xSTUhQOEhzcG92alB6VzVKMDZkMUtkRnVid3V1SlkzTjgv
UWVKU2ZRM05zT0YzNVp2Z2VMbDRPNEdzREVHZVZHbGI5CmE4THBtMVpWanNjNUI1d0R6Z0huZ0hQ
QU9lQWNTRGt3dUFqV2h6Lzg0WENITzl3aFBQLzV6dzkvL3ZPZnRTeWNDWDd5azU5VUIxWGkKNWJ3
b3Z3dXVaY3JOTXpRZTVlZlFIQnRPVjc0WnZvZUxtd1Aybm4zbU01K3BiVWdUVHQrMDJzSThZY0U1
TU9SVi9KQzBGcHd4WGdIbgpnSFBBT2JCRU9URG11WHBRRWF5dmZPVXI2c243Y1k5N25IcXZ4ZE0y
ZjNpeXhYRVBIc2hQTyswMDdlWXV1RFl1Y3ZNTWpVZjVPVFRmCitjNTN0clovUG5HbTRiWHgzRUlj
aXVFSjk3TExMck9vMmpBSE53ZUhBbkx3eG9hVFcrK1VnVGx0U1BHYm5zODc3N3p3MmM5K1Z2L08K
UGZmY1N0UW1uTDVwbFFWNXBIT2dCd2N1dWVTUzhPdGYvM29pNTA5Lyt0Tnd3UVVYVE1RdHRSK0xw
WTEvK2N0Znd0ZSs5alYxRkRodApIL3orOTc4UGwxNTY2YlJrWnBKL3NmUkhUdU1YUTF1YXh0Vmlx
SCs1SDVyYVU4WmRsci9GWWRSVUlFeUw5dmV1ZDcwcnltUVMxMXByCnJTTE8waDd5a0lmRTMvM3Vk
L0ZOYjNxVGx0Y0YxeXFZbTJkb1BNclBvZm1VcHp5bHRmM3ppVE1OcjQzbkZvcDU0TGorK3V0cnYy
NjQKNFlieDg1Ly92Q1hOQ1hOd2MzQWduSU0zTnB6Y2VxZU15MmxEaWwvM0xCTmVYTUlsOTNvQUFD
QUFTVVJCVkhmZGRZdjNUN3hRUitKUwphTUxwbTViU24rYjVONy81VFh6ZDYxNFh4VXR5Zk85NzN6
dW43bVhhMy8zdWQrTXJYdkdLK01wWHZqS0toK09KNUthMEZERVh6L0o4CjdHTWZpM3Z0dFZkODFh
dGVGYSsvL25xTHJnMjc0aHVocnJ5d2ZIV2h6Y1dFMDhLUXRLd3UzL25PZCtKLy91ZC94alhYWEZQ
SHIzaVUKdGlRTlJaeFE0OHY5UElHMHlIK012WTFmLy9yWDQzLzh4My9FdTkvOTd0b1hILy80eDN0
ei9JZ2pqb2ppT1QydXROSktjZHR0dCsxTgpaNVlaeDk0Zlhkbys1cmJraktzeDE3L2NEem50S2Vl
WjFlOVp6TlZEMVhYcUwxSGFPTkg3aUNKcVZTeCswalNlUC9HSlQ4U1BmdlNqCmtROU5MdTYxMTE2
cmJiM2hoaHV5OG9nL2pmaWhEMzJvdFI2NWVMbjFQZXl3dytMTFgvN3llT2loaDlhMmZ6NXhwdUYx
M2VCaVFiVFIKUmhzVjdYdmhDMStvRzY0cS9CemNIQnhvNStDTkRTZTMzaW52Y3RxUTRsYzkvL2Qv
LzNmUlAvYis4VDZrMElUVE55MmxQODN6dTkvOQo3aWo2SjBwQy9PTkVGdTkxOE1jLy9qSHV0OTkr
ZXJEeHB6LzlLUjUwMEVGUlRza1V2U2t0cFplTFozbE9QLzMwZVBMSkordFA1cVFECkR6elFraXJE
cnZncGtTNjhTUFBWUGR0NElKd1docVJsZGFFUHI3dnVPbDJRUXYrYWE2NnhKQTJmK2N4bnhsVldX
U1YrLy92Zm40aGYKU2ovRzNzYS8vdld2a1hIL3NJYzlUT2NadmpOOTRlYy8vM25jYmJmZGxNN3pu
dmU4dm1SbW1tL3MvZEdsOFdOdVM4NjRHblA5eS8yUQowNTV5bmxuOW5zVmNQVlJkQnhYQmtoMXFr
SStEdExjYTVFUXJQUGpCRHc2eU93eTV1S1lNUzk2Y1BMZTczZTBDT2lkdDljakZ5NjN2ClJSZGRG
T1RrT1h6em05K3NicnpFemlmT05MeXVhOENkNzN6bklJdXZzR0xGQ2tVNSt1aWpnM3hBS3RGemNI
TndJSjZETnphYzNIcW4Kek10cFE0cGZmcFlOVEhqOTYxOWZqdFk0RTJkcHdwSEZYMjMrcGpTalBh
ZmdqaEcvL2Uxdnc5M3VkcmRpZk9FSDU2YWJicXFsY3NvcApwNFFYdi9qRkt0cUpzUXU1Q1Frbm5Y
U1M0amVscFFSejhTelA5NzczdlNBZlF2MjU2cXFyaG5YV1dTZklRdG1TNTRSZDhZMUFWMTVZCnZz
VWMwb2YzdnZlOXczM3VjeDl0QnI5VFlPNlJHeWY5aHFUeFMrbDU3RzFFbnB4eC8vQ0hQMXpaTGd1
UjN1eVh6V1RBT0Ewd0RSMGwKTU1VL3VmVU5pRVpYd2RqN282ck9kWEZqYmt2T3VCcHovY3M4ejJs
UE9jOXkvRDNvQm9TUDdiLys2Ny9XOHBFMGNKNzYxS2RxbUlOcgpPQTk5NkVPejhzaUpacENUdE5a
NjVPTGwxbmZqalRmV2pkVW1tMnhTMi83NXhKbUcxN1VOa0FRK0dwLys5S2ZWc2hsNHh4OS92UEs3
CktrOE9iZzRPdEhQd3hvYVRXKytVZHpsdFNQSFQ1N2UrOWEwQk9ka3lzR2dqRFdqQ2VjNXpubE9i
dnluTmFKZkw3ZnFiOXhZSG5MbkEKTzR6QkN3TVdyR2I0b2luTjhBbHo4U3hQcXRCSDNPMXZmM3Vs
WWVubHNDdSs1ZS9LQzh1M0ZNSi8vTWUvZlpZc1ROdFUzcFNrYVV2bAplVEcwMGVwWUh0OWQrNERE
UW1CYU9sM0xUZkVQT09DQUlEZVZhZFRFczdWMUluS1IvaGg3VzZ4K2RlUEIwaGNMKzYyK2RlMVpM
TzJZClZUMEgzWUQ4K01jL0RzOSs5ck9EeUozUHFTOG5oYVNKckh0NHdBTWVFSEp4VjE1NVphVkZt
SlBuRjcvNFJlQ3ZyUjY1ZUxuMTNXR0gKSGNMVlYxOGRDT3ZhUDU4NDAvQjZUdWVWSWpiWVlJT3cw
MDQ3YWV3OTczblB4a1ZqRG00T0RvWGw0STBOSjdmZXlzeGIvK1cwSWNYbgptYkYzeUNHSGxLT0wz
NlNkYzg0NWpUaE5DcjVOYWREKzRROS9XSlRWOTRIYkR4SHZDTC82MWErVXhJOSs5S053cHp2ZHFa
YmNGbHRzCkVUN3lrWThVcDZjaXJoVkVwbHp4bTlKU2dybDRsb2RiV0c0eWdULzg0US82TERwdmxq
d243SXB2QkxyeXd2SXQxdkNXVzI2WlUvV0YKL0dqVHQyM0FacmZQN1IrYnk0V0FoYnhsV0lqMnBt
WFd0VjFFck1QYjN2YTJGTFh6Yzg1WTZVeDBnVEowSGRNaWFyUkFOYTB1ZGluMQpSWFVMbDFpc3ZK
aFRnYkJEWlRnSmtka1dFWWo0czUvOUxNb0NOYTYyMm1wUnJtdjFtVGc1T1ZjY0N1eUNheFhNelRN
MFhtNTlrVmR2CmEvOTg0c0NIM0xvYnJ2RzZMYnp4eGhzakN2WEl1TGRCRG00T0R1WGs0STBOSjdm
ZUtSOXoycERpYjczMTFzVjdtTDZUNmZPOTduV3YKVnB3VXY4dXpXTHBMcTlQN0dhWHVsNzcwcGFx
RWpqSTZSaTJhUURaVktrZitzcGU5TElySjRRblVwclFVTVJlUFBDanBpelU0VlVJWAo4YTlZVnBS
TzZmYkJUL04zNVVXYXQrbzU3YytxOUM1eGRiVFFtZHQ4ODgzajA1NzJORFZHZ3BLeGlFN1Vra1pu
RGx3eCt4dzMzWFRUCitNWTN2ckZRUXYvSlQzNVM1Sk9GdnVvUXl1MTVyVjVRMTdJTDRza0R1b0Vp
RnFRR0JwNzczT2ZHcmJiYUtxSVhsWUpZRjR4aTZWSEgKSFhwL2NyaW1Sa3BTSE5sa1JQQlEyTjVz
czgxVWp3MTlKUkZkaW5JcUdrVzhNSDdqRzk5SXM4UzJOc29tTGU2Ly8vNDY3NklFam9HSgpEM3pn
QXhPR0d1UkdMMzd4aTErTU8rKzhjM3owb3grdDlGRVVwMDJ5bVk5UGYvclRzd3duVEZTczRzY0xY
dkFDblV2cWRFQnkrNEozCmxyR0VEZ2c2UDR3RDJYeXJranZQcHROVnJrSXUvVzkvKzl2eDFhOSt0
ZllYN3k1OXdKb0UyaWpCeXlaWHl4ZHJuY3BQZUlxT0M5RFcKSHpsanBWeHYrNTNUbDZ5WEdHY2lC
aDUzMldVWHl4ckYxTCtPQWVJeDdwTURiVzNKR2ROcE9Zd3BjYlVRdDk5Kyt5aFNIM0gzM1hlUApL
RjRiOUsxNzNiaHFxMytmdmpqNzdMT2pIUFpGRWZuVVA0eVovUEtYdjdRbXFEN3ZmZTk3WHpXK2s2
NlBjdnJPaU5TMXg5TG5JNnliCnErZWo3TFl5cHRaR0xEZU9qdzJUWXJwd0VIbm1lUERCQit2aVBL
MVFGMXpMbDV0bmFEekt6NkU1TnB5dWZETjhEeGNQQjhUeHBTN2UKV01EVi9iSGd1Y3RkN3FJTG56
S09wWkZleG1sS0s5Tlp5c3JCaTJjMDFOZTBQRmZYWTdhbmxHbXg0TjVtbTIxMDA4RkNFcERUeUNp
Mwp2cnJBU3hkUXBLR2t5ZUtjOFNWNlBrVHBRaHJMZlViYk5pQWlCcXZXRTBWSFN0UEtHNEt1Wld0
aEZmOVlUSXNJcE5hYlpPcEkvZGtVCkdiQm9FYkdoaVEySEdWNUpGK01zMEI3NzJNZHFmZVhHWHpj
aFdQZ1NYWVBDU3AySTc4VUxMN3hRU2JlMVVXN3NvNWl5VitNcUxLU3gKS01rQ0VGNjk2RVV2c3Vy
Rk04ODhNejdoQ1UvUWVOR25VUXR4OEpsdjh0cHJyNjN4YlBpbWhicUZWZGUrc0EwSWJjTjZwb2g2
Um95YgpjSGhKMjFnQXNoRTM2RUwvcUtPT2luYm9JaUxKdWhGaFF5bGludkd1ZDcycjhwQ0ZNdVZ3
bU1ZNmhULzZ2YTAvY3NhSzFia2M1dllsCitUQkVRZjNZMUtkdzhjVVhhenhwYmREV2x0d3hUVG1N
UGNZYkd6amViNEFORzk4TitKcHVRdnJVdldwY3RkVi9tcjc0NmxlL1dteEMKemZpSk51cldmNHli
OUpDMVM5OUJvcW85S2YzNWVHYU0yTjk4bE5lbGpQYlIyMExOR3BhK0NFd1lSeDU1Wkh6Zis5NFhS
VHhEVHhyUwpTU1FsMlFYWDh1WG1HUnFQOG5Ob2pnMm5LOThNMzBQbmdITmc2WENnYXE3dTI3b3lM
Y3lVRTNmR0dXZE1rR1NSSXZwN21zYXB0UUVMCmRQRFRrMFhTUkFRa3NqQW5yWHo2elkwRThlVU5T
TmV5clE3bDhGblBlcGJXTlkxblU4MU5uQUVudmRSQkRIQllsRnAxSkc3WFhYY3QKNG5oZ00wQTg3
UkUvRjBVYXR4UXNLRW5qWmlLRnVqWnkwNEpVUVFwWWlJUUdmNmxwWWhaU0Z2K2xMMzJweU1MaWlS
Ti9ibUE0eFowRwo2aFpXWGZ2Q05pQ2l5elZ4bTBqYjFsaGpEVzBITjZJR1hlbXplSVFYYkJyWmJB
Q1lQR2RSQzJCT25uUnVocXFncmo5eXhrb1ZQZUs2CjlDVzNXZFN2dkFIaGdOZjZ1SzZjY254ZFc3
cU1hZFoxM0w1eEk1RUNCd3pVaC80eDZGUDN1bkVGemJyNlQ5TVgwT1gyamJwalJURUYKeGlBM2xp
bDA2VHZ5TmJVbnBUdkxaeHNuaEdPRHFXczA1c2FOamRsZUgrZUFjOEE1c0ZBY0dIS3VUbWx4YW94
NER3dGJUcWpMZ0Q4WAo4RG1OQmxqODN1OSs5NHYvOGkvL1VrYlYzNGlXZ005QlRncWM1Qk9QQ0lw
QjE3SXRYMVhJNGdMNnIzM3RhM1VqWkRpWWpUZTQ0b29yCjR0NTc3ejJ4QU9QR2gzejRSMHBCTENK
cVBDWnJ5M0Q1NVpkckd2bFNzWStxTm9vdWxQS1dHeFEyYnVrZjRrclFlTXRiM2xJVXdZMFMKY1d3
MnltQzhwUjNUUU5YQ3FrOWYyQVlFVVo0eWNGdEVPL0FUd3ExRUgvcHNJS0hCalFxbjkyV3dEUWlp
Z2xWUTFSL2c1WXlWS25wZAorOUlXOGVWYkt6YjJkWDFjVlM1eGRXM0pIZFB3bjgwSG9xZGxFTDI5
ZU1JSkoyZ2ZXVnFmdWxlTks2TlhWLysrZldGMHVRV0Jsdzk2CjBJTjBuRm04R0ZmUkEzVDczYlh2
eU5mVUhxTTc2NUMyMmQrc3krcEtmMUFsZEdta2czUEFPZUFjY0E0c0l3NWNkdGxsUVJZblFUWVYK
d2F5K3BNMFhzUmY5S1NKVmFrYjN5aXV2VklNaThzRlAwWXBuczR4VVJEUThkQzI3Z1ZTUUJZNmFj
SC83Mjk4ZVJEUXN5RzJPb292bwpVcEZOTmsxQmRJQ0M2QXdFdVdrSW9wTVJSSzlBMHpGeG5RdFlk
YnpIUGU2aDZHMEdIT1NXU0syN1laQkJGcDRUZjNMaUhFVFVLSWdJClUxYlJtUG9Hc1A0Mk5FelRG
NmsxTzZzWFZpTUJFVGNMY2hvZCt0Qy80eDN2cURSRTVLcXczS2dScFg5ZERSN2tqSlZTRWZwenlM
NnMKb3Q4bkxuZE1YM0xKSlVGOHQ0U3E5MVpFc05Ud2oyd1crMVJocWp4OSs4SUtaWnc5OHBHUFZF
TXFJbzZtMGJLUURpSmFHVVFjME5EQwpHUHV1cU53aWZaZzB0TDVJRytIVmRnNDRCNXdEem9HRjRZ
QXRvS3ZNNWxJak5pWnNLdVFFV2oveS8vZC8vNmNWeFJkVEUrUXNDcnVXCmpkVytPc0I2NFZlKzhw
V3czWGJiQlZGZVZuUHhjdXNRUkg5eHd0S2YzSGlFTjd6aERXbzZWaHhSYXR0WXJPVFVOeTBiZnlk
aW5DWEkKNlg0YVBlZVpEUnVBN3cwc0tZNFZodXdMMmloSzlJV1phemE0UTlOUCtkaTE3M0xIU2xv
R3oyUHR5NXd4elFZUVlFTTRKdWpiRjJrYgplTTlGaERLSVlZSWdSaU1DR3hIR24xbGhCWGVzZlpl
Mlk3RTkrdzNJWXVzeHI2OXp3RG5nSEJnUkIwUlJXR3VEeVhKT0RzdkF4c1JPCnVGbDBjNG9QWUda
NVd1aGFkbHQ1bklheStSQXJVbnBpTHNyYmVySnIrVVNYUTgyQmMzc2hvbEJxVXQ3U3VvWWllcVZa
T0lGdUFtNWIKQUZzQU51RXVaTnJRZllHUEhkck9SblhOTmRjTVE5T2ZsbGR0WTZXSy9oajdNbmRN
MjIyU2lDUldOVzFCNC9yMFJWcGhFWlZTSjdnbgpubmlpK3NMNjBJYytOTWZKOGhqN0xtM0RZbnoy
RGNoaTdEV3ZzM1BBT2VBY0dBa0hPSm5uQkJteG5pcC9NYUx2b0NKYStEYmhOZ1R4CkkrQzczLzJ1
K29XcWEwYk9xWFRYc3V2S0l2NllZNDdSWkp5QnNnQTU2Nnl6ZEZGeXlpbW5CTEUwcDJuNFB4SVQy
V0hmZmZmVjMzMy8KaVI1TXVPNjY2OVJubEMxczZtalpCa1YwWDBLZG1CYzNNdHd3TFNRTTJSZTBB
NUVmYm9qV1gzOTlGZTBibW43S3E1eXhsdUxuakpVVQozNTc3OXVVcyt6WjNUTnQ3KzRVdmZDR0li
bzAxcVFnNWZCQ0xWTVZ2ZTVobDNTbWpiMTlZL1FnUkhZTVBvc01XRUdzVTgrcUJUVTBLCmZmc3Vw
ZUhQa3h6d0RjZ2tQL3lYYzhBNTRCeHdEblRnQVBMMXUrMjJtK2JBTVdRWnpqLy9mSTNhWjU5OU5N
UXByWmkzMUFXektIcE8Kb0xPSlFjNGNLQysyVFZUSlFuQzZsazJlT21DQkw1YWlpbVF4Wnh2MjJt
c3YvWTIrQjJKQW9saXV2MFZ4dDhDek9CWXZWVkMxQUdQUgpCTDZZSFo3SVltMnprRVRxZ1VOTE5q
NklpcFQxTjBRQlhXOEpUSGVtNmhiS0NrbnBXcHlGaUorWmswMkxxd3VyeWhpeUx5aVhEU0FiCkF6
SG5xdFdZaG41VmZTRnFtejgyT2xWZy9MTFFjTnJHaXVHVnc2NTl5YVlkc0EydzBiTU5BTzFpWE9h
QXRjRkM4blFaMDJ3QUgvR0kKUitoN0syWjRBenBkQnJ5cnZDdmlsOFNpZFBQT2p5NTFyK3NuNkZp
OUxTUU82TnNYZjh2OTkvOWliVTNIbXhqTkNEdnV1T1BmRTI1OQo2dHAzWkd0cUQrbGQzam53bHh3
SWc2WUNZUWgzN3ZvM0ZTSFA3Qnh3RGpnSG5BTXo0NEROMDRUVFFwa1dscHp3ZDRFbExNelBHc2hp
ClFVMmM0dUJORnM0V3JlWjZ3WVVPVm15d0dJWFRPQ3pkWVBXSWVNeHJIbmZjY1VVZVRLVVNMNTZy
aXpnZXVwWTlrVG41Z2RNM1dVUWwKTVRIaTRCSkhaYkxBMG5qejdZR1RQeXc0WVNsSFRrNjEzU0tp
b21aZGNlb0dtQlVzNmd5dUFjNHJvWWtmanpMVXRmSFlZNDh0L0JWZwpWVXR1WU9Kclh2TWFkVktI
YzBiTUZ4dmc0SkF5K1ROZktxVFJGNnV2dnJyR2k2aUpvV3Q0L1BISEYza09QL3p3aWJTcUg2SzBx
L2lwCmp4VHd1dllGam51cEovVElhL0RqSC85WTI0WmZtQlM2MHNjTU1mUXh3MXUycWdaZHlpR2RN
WWNQaS9QT095L0NhNE82L3NnWkswYWoKSEhicFM2eExtZjhiSENxZUk0NVg1YlpMSFUyS1BwUFdm
Yzg5OTR4WSsycUR1clowR2RQd1NFVGl0Rng4NXVDM0JUTzJqSDNHWkFwOQo2bDQzcnFCYlYvOXAr
aUt0TDgvNGc2RXQ1cHVvbk42bDc4amIxSjZ1NzF5NUxybS9HZC8ybDV0bnZ2Q20vaEpad3dnZG5B
TnRIQkN4Cmk4akVsQUlmeWJKWDREUzl5L09RdE5yS25jK3kydXJTSjUxRkN5WUlxejVlQzkyMnFz
VkNYUnZIM0k2Nk9pOUUvSkJ6ZFJVdFB0bzQKS0pPVDZyakhIbnRFdVEySlcyKzlkWlRUeEFuem5O
WjJGb2NyVnF3b1BvNDQvVHIxMUZQVkZ3ZitNZkQzQVUyY3JzbnRTYkh3d2NIZQplOTd6bm9sNXBH
dlpWb2MwM0hMTExhUGNOT2lpNm9NZi9HQjh5VXRlRXNXNmxQcjVNRHdXZ0hJU3JIV1cwK0NJQjJZ
VzlwZ21sZE42CjlheU1ZMURBTmlCc3pQQmxBUzE4R1dDQ21JME8rUXh5Mm9nZkN6TzdDLy9ad0dF
U09IWDZLeWVxYWc3WStvZE5uTnhBUlZIZzFyNncKZUJaR0lscG14U3NPanVSSUw1c1RMcERrQWI4
dE9BbzBPdmpxT09DQUEzcjNCZTh1bXpoNEN1KzMzWGJiK094blAxc2RxdHBHTGkyZgo1OXkreGhF
ZW16V3I2MFliYlRSaFZ0WG9ZZ0lZSERZcExPYnBsN2IreUJrclJyOHF6T2xMeTRkell4dHpqSDNl
QmN4ZE02Nm94OGMrCjlyRW9OemlHUGlkc2EwdVhNUTF4eHJVdHJPRWJwbm54S2w4RnVYVnZHbGR0
OVorMkw5SjZzeUZtdm1xQ25MNXJhby9SNXIzTWVlY00KdjI5bzQ1OXdiREIxamNiY3VMRXhlN25X
Qnp2NjJMQVhSVUtkNkRrQlRJRVBEK01vZGFhVnBuZDVIcEpXVzdueldWWmJYYnFrYzRyRgpTVE1m
RHZpT1g0RXlMR1Ric0hHUHp3Z2NoalhCMk52UlZQZUZTQnR5cm02aUpTSlVlZ3ZDQmlNOTFhNXJN
dzYveERKV2tTeWlSc1Z6CjE0ZXVaYWYwR1hjQWRlWTJwdXdJTWNXdDJpQ1huYlBaQnNUOGdJak9S
eFM5aGtwL0ZDbnRwbWNXeHpqUlk0R0ROL1FoQWQ3UlowOTgKNGhNSElkdTFMMFFjU1BsRG1BTmQ2
VGZSdkVaOHVlU01WYVBSWmF4WW5uTFl0Uyt2dnZycWliRlRIbTlsK2wxLzU0enBsQ2J2S1lkWAo2
VVk2VFUrZloxbjNJZnJDNmtwYjJPQzJRZGUrcTZNMzlEdFhWVTdUWEYyRlA1OXh2Z0daVDI0djA3
STRyZUhqYTZJVlRQWXBQUE9aCno0eGM1MWFkeEtkNE9jOUQwbW9yYno3TGFxdExsM1Ftenh0dXVL
RTRIUlRGd1RuWkY3SnRlTXhtMGl4ZjZaY3JPZloybE91NzBMK0gKL0JBTlNXdWgrVEtyOHNzYmtG
bVZNeVJkdkw1ekN1emdISEFPekE4SFp2M09qWG11ZGlWMDZaMVpBY3FINHMxMWF2SkQwWm02SWow
Sgo0SnhNcm80REpqZ0JmcWNnMTdUcW9FeTg5S2JSdlo2SHBOVldnZmtzcTYwdVhkSlI3RngxMVZY
VnJ3RDVaSnFkazcycGJiTWVqNGNlCmVxalc1OGdqajJ5ME9UOXRPK1kwMmlPY0E4dVlBeWl6TXdl
TDJOWXk1b0kzM1Rrd2Z4eFk3dStjYjBCbU9OWkVOamFjZnZycFU1Y3cKRkoycEt6SWxBWE5VWm1G
S3Jyd3BTZE82UGc5SnE2M3MrU3lyclM1ZDA2M3VMT1Nyd05MTGFiTWNqMWhNa2l0MTlSS05SYUtq
ano2NgpYUHljMzFiUHJ1MllROGdqbkFNRGNrQkV1SlNhaU1vTVNIVjJwTGJaWmhzMVJUcTdFcHl5
YzhBNWtISmd1Yjl6TTkrQWlKaEV5dStaClBGZWQ0SllMWWxFek5EUzFUY1JJZ2xocm1icklvZWlr
RmNuaFY0cWZQb3ZTWU9qeVFjWGVmUm5xRm9wbHZMcmZkZVl1Ni9ETDhibGoKb2FsL3l6UnpmdWZ5
dmNwc1p3NzkrY0NaeFhoTTYvMys5NzgvaUZVa2RRUkgvUHZlOTc3S0c1bzB6eERQOUUyNWY4cS8r
NWJUOVozcApXNDduR3c4SFJFY2ppSUs2VmdnSGpYd0x4TkRHZUNwWVVSUHpjMUNSNUZIT0FlZkFE
RGl3M04rNW1XMUFjRWlEZDBteEtCQTIzWFRUCklCWkZndG1ETC9laldIRUlUM3ZhMDRLWVdWTW5W
U0ovSG5CMmt3SUxXYkdRRW5iWlpaZXczbnJyYVJKbFlKc1pXOTdQZU1ZemdzaTEKcDFuMEdYRU9j
RjcvK3RjSGRwdGlZVVB0UnFlSUxHZzUxUlZ6aG5yeXV1NjY2NGJERGp1c3NEdWQ0dkxjMWpaRVIx
NzBvaGZwZ29ZUApFZlQ0dzQ2N1FVNlpUWFRFckdNUXF5cHFkMXNzc0JqWklKWm50QjNZNHk0UGJq
eVlpdW5HSUJabXRHMDRyMXB0dGRXQ1dCNHA4dGM5CmNKTkRlV0tXTXV5MzMzN3FRTXZzczFmbFlT
RkpmKzZ3d3c1QnpPU3B2WHNXWWtDNkFjRisrQ2MvK2NtdytlYWJUNXgyZzB1WjhQSEoKVDM1eXVQ
bm1td1AxeFE0NVRvTndUbFYyZWxaSHkrcVhNeGJBYmV0ZmNPcks2anRPb2NscFArK0JtRFVNb3Jp
cVl4VS9DVi84NGhmRAoyV2VmWGZoSEFMY09jc1pWWFY2THIydGIwM2kwdk5PRW5CaWZjY1laT204
d1gzQlRocjhGc1liVGkyeGRPMUppakQyeFRLUW52OHdQCmpGbmlHSE00UWdQNnZHdmt5MzFuUkFr
N0hIVFFRZUV4ajNrTTJZS1lBZzFiYmJWVkVFWDhJT1plOVRmeG9xZ2RHQS9NZjd6Zk9NTWIKYXBN
RWZZZmhPTURZM1gvLy9ZTVlTdEEvdmtGMlV6ZGNLVTdKT2VBY2NBNHNZZzdJQjJ3cWtLYXJ3aWdo
SUtlM1VSYU5hbzdSckJPZwo4SHFYdTl4RlRZNWh1Y1pBRmt0UlB2cHhyYlhXaXFhWVRCNVp0Q3BO
Mld3WXFscFZrVWxjNHpGRjk0cFh2RUl0K1h6Z0F4K0lhNis5CnRzYkw0cTNBNTBFV2txcmNiUFZB
YVJYYXFlMXlFZk5RODRpeTZOQzZZMWtFKyt5MGgzYWtrTnMyN04xanFnMGEySlhHcWdkL2xBL2sK
bHRsR0J6T0RsQ0dMOTdTYWFrS1FlUDRNampycUtMVXNSQnptTHJFcExvc2M3UlBNWnNxQzMxRG5o
TEw0VlJPRjRpRzBTSU5mMElMSApLZEJHTEN6SklxbXdKZ0hmc09kdWRjTEVLNEExRitMTnpqbG1O
dzJ3ekdUMnlURTN1TmxtbTZrbExkR3BpYktaVTFxM3YvM3Q0NFVYClhxaFptbWlCa0RNV2N2dTNx
U3g4SUhRZHA5UVAzd1lycjd4eVlYbm5Sei82VVdGeUUvT1IyRnZITWs4VDVJNHJveUVIQkhQNnNL
bHQKYmVQUjZQWU5lUy94dTJDQWVVWEdETzlRRTNSdEI3UVlwK0k4VDgxSllvbkV3UHdHVUc3Szd5
N3ZHclJ5M3hrc3Y5RSt5cnZESGU2Zwo3d04rSldRekdsLzV5bGRxdkJ3U3FJVTR4cFZzVktKNDZZ
NnlBZEcwZ3c4KzJLcmVHdHI3UnpndERFbHIycnA0ZnVlQWM4QTU0QnlvCjVzQ1k1K3FwdjBUbHhz
a3BxWnIzTEp1SVl6TUJicnFJNVprNE9mV2M0QndiaG9jKzlLR2Foa1VjQS9GR3EzSGtZYUZnd01K
TFR0WFYKTHJxY1FGdTBPcktDVGdwWVdzTHFnQUZPc1BqZ3A0QlpTR3RYYWhxMlM5cysvL25QS3cy
YzU1U2hTNWxOZE9Sa1hNc29iMEN3QzIvMQpUOHVXRTFtTng5NDVHeVFBVTZjc09wdGc5OTEzMTN3
c2lnd3dyVXNadSs2NnEwVnB5TWFCZU14RXBzQUdodzBEYVdYemx0akdKejdkCmdKQ1h4VHp4NUx2
MDBrc0xjaXlFYVROcGNwdFR4UE5RUnd0NytHMWpvVXYvTnBYVmRaekNEOXFJUTdFVUdDZTBFVnYv
T2RCbFhFR3YKYXVGdTVkVHhzV2s4V3Q0K0llOHRwbmN2di96eUlqdnpBdTNuTCszL0F1SFdoejd0
WUY2QnJ0eTBsc25wUnBDMGRBUFM5VjNyOHM1dwo2Q0duNDFvZjhaQTlVUjhiNTJ4U1VyT3IrSHVn
anB0c3Nza0VmdE1QOE8ydkNTOG56ZWdRT2pnSG5BUE9BZWZBT0RrdzVybDYwaHlSCjFIUWFrQTlr
ZU8xclh4dkUrWlNLUmFXMHhIR1VpamNnNWdTQUt5ZWVlaTNOOVhRS3NoZ0xpQlc5NmxXdlVucUlj
UUZ5VXE4aElqeHAKSGprNUR1SmpJb2gvaVNEMnBndlJJL0ZsRUxEbUl4dU84T1kzdnpuSXdsdXRm
SmpJa1hoQkRlTDFOY2hKcUlyZEtQRmIvNG5EcHlCMgp3WU00YWxQUm95NXRTK21rNGtiRWR5bXpp
VTVUbXBWcG9lSEtUWUkraXY4SEZUdmhoMW1tTXB5cVVFNWlnOXhncVZpSXBmTWJNREVWCm5oSC9R
ZFFOMFM4VGt5TWVnUGZpZ0V2N3FGd3ZST2lBY2p6MUJPaGJSSklNeEJOcmVPOTczNnVpT2JKQkRP
TFlzQmdiZGJUYXhrS2YKL3EwcnErczRsVnVjSUpzcVZuTFdSQTNsNWlNZ05pYk9HeWZpcTM3MEhW
ZFZ0SWlyYTV2aGwvdks0dnVHNGhVMnlFMm9pbUFhRGJuMQowckYwNVpWWHFpNElJbUJkb2FvZDhC
cnhKY1lrNHFGbEVBL0RRV3pCenhtUDRKWGJiYjh0TkZxNTd3ejQ0bmxYeDYvY3hBVEVUMU5BCjFC
QVJOUEhOb0hpV1p1OERZbGxqQVhIQUZ6NzN1YzhGY2E2bDh6cGlTSEpBRU9UR2RVNFZ1K0JhNXR3
OFErTlJmZzdOc2VGMDVadmgKZTdoNE9TQ0hYMXA1dm5kMTBJVFRONjJ1TEk5M0RqUnhZTkFOQ0l0
UlBxSVBldENENXBUSmdoWDlDNFBMTHJzc2lGaFNlT0FESDFncApHNHNNTkJzUUVkZFJFNjBzQ3Bw
QXhIZzBtY1dGZ1lnQ3FTN0gyOS8rZHRVZmVjYzczaEhrSkRHSXlKYWlvSitCcnNHZDduUW50Ynhq
CitRamxka1ovc2lnQ3VyUk5NOXo2cjd3dzZWSm1FNTAwTGZlWmhRN0FBcm5LRWxVZEhUWVU4QTVn
Z3Zyd2h6K3NHejErSTJkdndFS1IKaFRCeTlGWEFnbThva05zTTFkY1JEN0JCdlB5cWprMFQ3YmF4
MExkL204cXNTcXNhcDJ5d0FHVC9HYjlzd0FIeE5xdGgyOWdIcWUrNAowZ0o2L0N1UDZ4NGtKckt3
MGNMOHA5eUFUTVNqMjhXNFFpOEhSZDU3M09NZUUrbDlmc2lOWDBEZmhNVzliYVQ3MEduS2svdk9O
TkVnCnpjWkxHWThERW9BNWRBekFuQ0FpWkVFOGZPdWNTcDE0MzlHbmtkdXJJQjdTaTJwMndiVk11
WG1HeHFQOEhKcGp3K25LTjhQM2NIRnoKUUc3THRRSG9yZFZCRTA3ZnRMcXlQTjQ1ME1TQlFUY2di
Q29BVHBQYmdFVWpVTGNRNXJTY0Q1akk1ZXNDTTJjUlZpN3pVWTk2VkJCUgpoYkRkZHRzRkVhZFE1
V3p4eUIxRWJscFA2VmpZQUE5LytNTlZXYnFjUC8zZHBXMXB2dkpDclV1WlRYVFN0UGw0dnVhYWEx
UUpuUFljCmVPQ0J4ZUlpYlI4S3d3QTNGRTJRNW1uQ2Ewdmo5b1lOaU1qenQ2R3EwbnpUV09qYnY2
MEZaeUN3bVVLcFdNUURWZG5jTm5DaUI2SjgKNW9hdURmcU9xemE2ZGVsRDlTSDB4V0diYnZDWk4w
UTBjRTZSS08rS1dHRTQ0b2dqOUladERrTEhDTnZrNU56K2RTUTlnWjd6emt4awpxUGpCYlFKUTVu
ZjVkMFhXZVl2aXZlSkdabzAxMWdpaXQ2T0dCQ2djUlg3UjBkTzVsMXNjRVNmVCtUZ1gxeHFRUzU4
RGxoemF1WGk1CjljWFhFd1k2bXRvL256alQ4TnA0YnVFSFAvaEJ2V0htWnM1dTNTeXRIT2JnNXVC
QU53ZHZiRGk1OVU3NWx0T0dGTC9wbVFPc3ozNzIKczRweTdybm5xdkdYTW40VFR0KzBjaG4rMnpt
UXpZRnBwZGFrb0VLdUdQbGxmcU04MmdZaTJxUzR5TDZiY25hYWh6aTVtVkFjRkhJQgpFWXZRMy9M
eFRWSDFXVFlibW9adVFobFFNdDE1NTUyamJIWVVSMDVWRlVYTUpPcnZmZmJacDV4bHp1OHViU096
eWNxamU1QkNsektiCjZKQm1jdWxsNVh0MGFPaUhNcC9ROXlCZW5FMmxWV3A5bHR1QktJN3I0aDU3
N0ZIZzBpZlFFcXRVUlp6cGY5QVhWWUN4QWZKZ2xDQUYKbE5hSmwxUEVORHEyZVJLV2EyYk5sK29i
MWRFeXduVmpvV3YvUXErdXo1ZHlXd0FBSUFCSlJFRlVyRDdqRkUveElnNFVVVGltTG5nago1amZQ
T2RCMVhFR3pTWGVpcm0xMTR6cW5qblU0TzRrT0Zncm9kU0FIQ05yUDZJaWtPbDZHMzdVZDF0Y2Ji
TENCa1pnSWJaeW1jMG5YCmR5MzNuYkdDUmR4d3psZ21UVVFOTlY1dUlBMVZRd3dtOE03SXdjeEVm
Tk1QOE8ydkNTOG56ZWdRb3N1SDNwbnhMVTFEV1Y0MmxxcGMKRDkwdXVGYVAzRHhENCtYV0YvMmN0
dmJQSnc2R1BYTHJicmpHNjNMSU4wTnVDblhjYkxqaGh2cGRLK1BZN3h6Y0hCem81ZUNORFNlMwoz
c2F2UHZocDN2U1orY0NNcy9EKzhRMG1Mb1Vtbkw1cEtmMXBua1dTUW5WeldZc3g1NVhyWHFZdFlz
bHFpQWhESGFtZUxuaE5hU21kClhEekxJOVphbzl6d1JwSE1pZGRmZjcxRjE0WmQ4WTFRVjE1WXZy
b3duWS9yY0JZcWZtb053clJ4My9yV3QzU2lrcHVMS0NleWM5ckUKcG9KRktpRDZGYnBBSnIrWTU1
MkRpOUlwYVNKcVVLUjFYZGhocVNrRkZOZWhCMTNSRjRtbWxNM2lPbDNFcG5uRTVLeGFpT3JTTnZM
YgpRbTJMTGJaSXlYVXFzNGtPYWJZbzR1T1d3dEFiRURFRnFqd3o2MVdVVmJVQnVlaWlpNHIrRjFH
c3RFcjZiQXNVTVVjOGtWYTMyRzNhCmdJaW9rbHJ3S205MjZtaTFqWVd1L1VzRDZzcnFPazZoeFlR
citsTlJ6QmVyeFM3R0t1OUlMblFaeTBhejY4S2RmSFhqMm1oMkRSbFQKY2lJZHE4YUwwV0orc0hu
RzVnOUxJK3phRHZISG9QUTQvSkFidEpTVVBvdjRsS1pYYlVCeTM3WGNkOFlLWDh3YkVOSDdpR1lW
ei9vcApEYkZBaDlJLy9NekZ4UkFJd0dGRlRoNDI0RmdIYTZ0SExsNXVmY1ZjZThUNGc0Z1FGbU0w
YlR2UDg0a3pEYTl0TEpaREZrUlk0ck4yCnZmQ0ZMOVFOVnhtUDN6bTRPVGhEMHNvcGJ5aWMzSHFE
WjVCVHR1SFdoUmh3c2Y2eGtQY2hoU2Fjdm1rcC9XbWVzVElvNHQxS0FnTTIKTE43cmdHOC82eklP
TnJDa2ltVkFNMnpUbEpiU3k4V3pQSHhmUlo5WWZ6SW5pUlNJSlZXR1hmRlRJbDE0a2VhcmU3YnhR
RGcyR05RUApDS0pNK0dtUXhaVEsvS0svWVNBdm1jb0hJMm9Db0lkZ29pWDRyaWlEK1F5UkhYR1JK
TXdybnNzUFZXSTR5T1dLaGF3Q0ZjVjFaSlFCCmRCbjRMYWZvNnA4RDBTd1psQVV1RDI5NXkxdFVu
QWhSc0M1dEk2OHB2eUlpbEVLWE1wdm9rR1p5NENnL3BvQW9Ed0MvcW1URW0vaVkKMHVHWi9JaklB
Q1ppeGJQRm9YaHVzTTQ2NjZqQ0tmMlB2NElVNEMzNlFRQmpJUVhyT3d2VE5KNmhWd1k1eFZhbGR6
bkJtMGd5R2haYQpZdHRZNk5xLzBMVXlMTFN5bXZoYnhyVThMMzNwUzFVTWkzRW9DMm9kbTZiTWJq
aE5ZZGR4QmEyY2VwYnJXemV1MDdySlJsU1ZkdE80CnVtZDBQOFNTVTdqdmZlOWJoeExFSEhPaHQ0
WHhnVEowYlFkOUxZY08rcjRqR3BNQ09tSG1yeWVsMitWZDYvTE9wR1ZYUGR2N1ZmVU8KVk9GYkhH
Skw5TU44QUhPb3pUbFY1V0VjUkc1ZDFSOUdMaTd6TTBEZW5EeUlmVEpQdDlVakZ5KzN2dkFZSDA4
MkgycWxTLy9tRTJjYQpYcGVxWGZ4RUR3bGpMaXRXck5BNC9CWFp0N3RBdXZVaEJ6Y0hCM0k1ZUdQ
RHlhMzNyZXpTSUtjTktYNzVtZThweGwvS1FKdzVEVzdDCmtkdjMydnhOYVVhN1hHN1gzOHlYeks4
MnZqQmdJNGQ0dFdST09lVVVOVktFS0NYaXVlS1NJWWpFZ09JM3BhVUVjL0VzRDNxRFppQ0UKYndk
ckhVUnM2NkFydnRIcHlndkx0MWpEUVRjZ0RBYmt0Sm5rNWJSTEYrMDQrVUlIQXgwTzVKbk4yUllN
dy9rV2xwbFlISjUxMWxrRgpEL253WTAxRlRyZFZFZDBTN09OQ09rcWtCdnlXS3pIOWFSOHVmdkR4
cG93VTJCUWgrODJpaHZxZ29JNDh0WnlzcXRNdnJIaXhTV0dqCmhBVXNMR2dCWGR2R0J3eEE5NFRO
RkxRKzlhbFBkU3FUL0hWMFNFTW1sOGtMeTE4NEdKU3JTSFYraGZkbzA1bkJlUjhmSmNCQ1hoeloK
eFd0YzJ6OFU5RVZVUmRFb0F4bFRsSUZQUFBGRTVRbDZDanpMamw4WEFJY2Nja2pCS3lZR3VWblFz
WUJqT1Y0dVFFUzVBbGFQREd6QgpWMWNuTmo0bTIwb2VObHkwUy95MXFPS3kwU0dzbzlVMkZycjJi
MU5aWGNjcFk1YjNockVvWm8wTHEyMVlqanZoaEJPS3NaMjJzL3pjClpTeGJYdE43S1c5Z205cldO
QjdKOTdXdmZVMlZ1MW5rbHpmZlZxNkZJa0toMXEzUWdXa0RuRmtDakNlNWhabEE3OW9PeHJTSWZD
a04KTmlBaW5xbDhaaDVpdnNLWlpCbTZ2R3RkM2huS1lVNnlEMjdacXBVZDRsZ2JyVjY4OHdDVytu
RFNtUUpqQnV0VEtOa2pZejVyNEdOYgpaZW5LeWlVTkhDd2c1dUlhUGNaR1RoNE9PSGpITForVm5Z
YWs1ZUxsMW5mampUZldqUldiNkRxWVQ1eHBlRjFYZitKWFdXVVYxYzh5Cm5VM21iOXNjbC9QbDRP
Ymc1SmFiUTJzK2NYTHJuZkl0cDM0cGZ2ck1ZVis2SHJJMDFrUjJFTmlFSXo2bWF2TTNwUmx0SzY5
dnlEZ3kKWGJjY0dyekRHTHd3NE52TndSSFFsR2I0WGZBc1Qxbm5Ea014bEZVSFhmR05UbGRlV0w1
Rkc4cmlmU3FRaG5NdG9YOUdDTkVac2VCVAp4Q05lSUFzc1M1NElFVmNSQ3lsUlRudFZ4MEJ1UTZL
WThZMWllbGVkOXhteW5PaEZaRkN0TEhRckVNMFFaWGJGdDNqS2xkMnRaa01YClJVN1AxSW1iZklp
akxJS2pLQXVxS0lEUkpjUW5ob2xtUVVjR3RQcGVRSzYzREYzYXR2MzIyMnQ5RVVuYmM4ODlKM1Jk
dXBUWlJJZHIKUVZuc2FUazRhRVNHVWdaeGxJMmQ2dUp3bFltWUNkZDZzb2dxK01lVnVtd1d5czJy
L0gzT09lY1VaYUR6Z1JpRG5JeEhNWldzWW5USQowc3NpdHNpTCtKQ2NaaFJseVVjeGloZDc5Y01o
Q3lQMTkwRy9YM3p4eFZwZjJiQVc5WmRGZHhTenVrb0xYdE1mdEVWdUNMVHY4RThoCkJncFVGcE02
R0xUUnloMExPZjNiVkZhZmNVbzd4RFIwd1M4Ynl4YUtwYWJDYjR1MXR5N01HVmRjY1NOR1lmUkZl
VFllY01BQnl2ZW0KdGxtWlRlTVIvcUZyUloydEh5MWZHaUllQUE1MWtGdVZLSnRiRmQ5SWNYaG03
SktHcm9QVkYzejBrYVp0QnpvRE52WldXbW1saUxnawpvajl5UUtGbHBTSlkxQ1gzWFFNMzk1MUJG
NDV5clczb2N5RmFpVWlvYkVpTGVRbDlPSnl2b3NQRS9NWjdaSGtZMjZKMFNyRUt6SXZ5ClFkZDA1
a3dEd3llY0ZsSmFpRUNnbTRNNFpCclBzNXdVYWhyakMraUNxeGs2NU1tbG5ZdVhXOThuUGVsSnJl
MmZUNXhwZUcwOHJ3dHgKemt1L2l2WEtPcFFpUGdjM0J3ZUNPWGhqdzhtdGQ4R3d6SGFtK0t4L0VD
VXR2M2YybS9tTjczRVRqdUYyRGFHZGZ2ZlRlblY5Wmk0MgprV001a0lzNFRxNERPY2pVZWNTKy8r
Q2FubkJUV2tvdkY4L3l5Q0ZyNGR1TWRhRnN2aXlwTXV5S254THB3b3MwWDkxejJxOTFPQXNWClAv
V1hxS2x4eVByTGFmREV3cnV1b1h4WWNUelhWZmE5amg3eDVnR2RnWTFUTVpNVHJNckRZSlpUTHgx
a3lCYTJRVzdicnJubW11TEYKS3RQc1VtWVRIZWpLaWVpRTRsYWRUa3U1RGwxK1Z5bGVOWlhEWWs1
T2RJc2k0RmtYc0EwSUd5Y0FSVzJVZTBVY3BRc1p4ZTB5RnNpUQoyNytkSzFLUmdYSEF4cEd4enpo
bEFTcG1GRlVPVnF3SXFRRUZObkc1MEdWYzVkSXM0eldOUno0R3ZNK0xBWGpYMldqSWFWWlIzYm9O
CmlDRjBlZGU2dmpOV3hyUWgvR2M4aWYrUWdsVFRYRjBnWlQ2a3ROZ0lZalNCelNJR0JUQ2tnRjRk
ejhTeEtRWUg2SUpyVmNuTk16UmUKYm4wNTVHbHIvM3ppVE1OcjQzbGR5THlJSGhReTdtMlFnNXVE
UXprNWVHUER5YTEzeXNlY05xVDRITmFtNzJMVk04WTdxdUtIaU1zeApPSlRXdCs2WmVaSkRScjZE
T0lxdU92eE44M0xBSTJLQThXVXZlNWwrSzNQVCt1Q1JoelVIaGtCUVF1ZmdWYVJKVWxKem5ydmlw
d1M2CjhpTE5XL1djOW5OVitrTEdxVGtwcVdCdlNLK2FwQ0c5NlhoRzUwQ1pBNGpiSUYrTitBdStC
Sllxb1A4aEMrRWdpcSsxVGR4aGh4MkMKTEdKcXpWYlhadlNFemh4QUgwVTJ6eW82YUQ2RE9oTVpR
UVprd0JFMXhiOEtNT1JjWGFZbEh1WFZCNUNjUWhmaUVZeHBuRWZpRjhycQpRRDI2NElJUDVPWVpH
aSszN0p4eTV4TkhtZGFCYjRidjRlTGhBSzRNeEJCS1k0VmxJYTk2VVlpVW96T1JncVZaWElyVGxH
YjRGb29DCmV5RXFibkVlam9jRDVibDZQRFdUYnhLN24ya3FOT2JHVGRNdXo3dndIRmdPR3hCc3I2
UGZnRjROK2tkVmdJNklXTWNLSWtaWGxleHgKQTNOZ0tXeEFNS0NCcnB2Y1FoVGNHWEt1cnFLRkRo
ZjZZQ3hlK0t5dzRNR2hyTnlJRkhXd2h5NjRYZlBrMHM3Rm8vd2MzTEhoZE9XYgo0WHZvSEhBT0xC
ME9WTTNWWTJtZGIwREcwaE5lanprY0VMMFI5YXJPZ2hBUDYwc1JSSlJKYjNpWUpNU21lY0FDQ0ly
ZUlqSVdMcnp3CnduREJCUmVvVWorR0JUQTQ0REI3RHFCRXp1bjkxNy8rOVNBNkZMTXZjQVlsNEpn
U2Ird3BEUGtoR3BKV1drZC9kZzQ0QjV3RHpvSGgKT0REbXVYcFFLMWpEc2N3cExYY09pQnh6RUdW
M1pRUFdrcmdoRVA4TlM0NHRvbUFmUkZZL1lHMEVFU3VSNlZWVDFpeDhFZG5nQkZrVQp0bjN6TVE4
OUwzTEZBVFBJYkQ0QXJMeUlzNnA1S0huNElzcWJqK0ZMY0lyT0FlZUFjOEE1NEJ6b3p3Ry9BZW5Q
Tzg4NVF3NklOYVk1CjVsQXgxY2NOd1ZJR1RPSmk2bElzZmVuTngxSnU2OWpheG0yVEtQQlBWQXY3
OURsbWdpY3lqZlRIa0NkaFE5SWFLYnU4V3M0QjU0QnoKWU5GellNeHp0VzlBRnYzdzhnWTRCNXdE
em9GMkRnejVJUnFTVm52TkhjTTU0Qnh3RGpnSCtuQmd6SFAxYmZzMHFDMFBTck9mK01RbgpGSTNU
WEU2dUVTVXhKMlpWK1hQeURJVlRWYjdIOWVNQWZRS0l2eFVOcS83bDRLVDVab25mUkx0dkduVnZ5
cHUyelorZEE4NEI1NEJ6CndEbmdISEFPTEhjT0RINERnamRoRkdqRlJyT0dNQml2a1hqa3hScUtP
QjJjdy9PY1BFUGh6Q204SWdJdjdteWE4Q3JiQkF1QmwxdW0KMWJzcnZ1WExEVi85NmxlcnhadjN2
dmU5dFZseWNOTE1zOFJ2b3QwM2pibzM1VTNiNXMvT2dZWGl3SkFuWVVQU1dpaCtlTG5PQWVlQQpj
MkNwYzJETWMvV2dHeER4QXEwS25OaDkvK1FuUHhsV1gzMTFYWnlLTTdvZ25wZlZsNE40UEEvaUhL
dm9jL0hnMjVwSEhKdUZ0ZFphClMrM0oxOUhOd1NtWFhWUWllVUFHL0FsUGVFSVFqK2xCSE9FRjhU
Z2M4Tk1nbnBJVHJLQ3k0dk9ObDFzM3EyaFhmTXVYRzJKQ0ZyNEQKNkN4Z1RyWU1PVGhwbmxuaU45
SHVtMGJkbS9LbWJmTm41OEJDY21ESUQ5R1F0QmFTSjE2MmM4QTU0QnhZeWh3WTlWeU5INUJwUURx
dQo4TElwanEvaXIzNzFxL2ltTjcxcHd2dTVMSVRqL3Z2dkgvR2F2ZDkrKzAwVWw1Tm40NDAzYnFX
YmcxTXVlNklpeVkvenp6OC9pa090CmVOTk5ONmxYYWp5L0hudnNzUW5HM3g0WEFpKzNUS3RzVjN6
TDF4Ymk2WFBYWFhmVmZxWi9lUzU3S00vQlNjdVpKWDRUN2I1cDFMMHAKYjlvMmYzWU9MRFFIMHJs
NjJyb01TV3ZhdW5qKzhYTkFyTW5wTnp5dDZVOSs4cE1vbGczVHFON1BROUpxcThSOGx0Vldsejdw
Zi83egpuK05Ydi9yVitQM3ZmMzlPOW9WdUcxN0FjMkhNN2NodHczemdqWG11NW9aaUtrZ2JKMkpT
OGFpampvby8vL25QNTlBVUowMVJQR2JHCkk0NDRJdklNL094blA0dHRlY1QvUVpUYmt5Z2lQclYw
YzNES1pjK3BZQ25pNnF1dmpzOTg1ak4xMDhSQTMzbm5uYU00OXlwaHhiZ1EKZUxsbFdtVzc0bHUr
cGhCK3l1MVZnU0szQUZITXhSYS9lY2pCU1RQTUVyK0pkdCswUG0xTTIrdlB6b0g1NUVBNlYwOWI3
cEMwcHEyTAo1eDhuQjBUOE40cFo2N2ptbW12cUllVVBmdkNEaVlxSzNxREdmL25MWDU2STcvTmpT
RnB0NWM5bldXMTE2Wkl1Zm8yaWVFNlBkNy83CjNaWHZILy80eCtka1g4aTJpZWgrdk5lOTdoWEY3
UDZjZXFVUlkyOUhXdGN4UEk5NXJoN1VEd2hpT0wvODVTL0RLcXVzSW0yZWhGVlgKWFRYODRoZS9V
REVxRTl2QjVHaGJIbkFlL3ZDSHE1SnZIZDBjbkhMWms3V2Ird3YvREs5NzNldFVsK1UydDdtTitt
S1EyNFE1ZmdFVwpBaSszVEd0VlYzekxWeGYrNWplL1VmRzBUVGZkdEVEWlpKTk53cmUvL2UwZ3Qx
d2FsNE5UWkphSFdlSTMwYjd1dXV0cTI5S1VSanViCjZCb2YwamI2czNQQU9lQWNXQzRjUUllU2J5
Z2kyTUJ0Ynp0cDg0YnZPdC8wZTkvNzNsT3paRWhhYlpXWno3TGE2dElsL2JHUGZXeDQKeHp2ZW9h
THg1RXRGYzR6T1FyYnRVNS82VkpBYm1QQ0JEM3pBcWxNWmpyMGRsWlgyeUVvT0RMb0J1ZUtLSzhJ
OTczblBjTzIxMTg0cApqRTJIN0c0RE9PWWtDNzJPdGp5UGVNUWpBazdwSHZhd2g5WFN6Y0VwbHoy
bmdoVVJPSU43MUtNZUZlU2tRRk8zMldhYjhMV3ZmVzBPCjVrTGc1WlpwbGUyS2IvbXF3bmUvKzkx
aHp6MzNuSlAwcWxlOUtwQUc1T0NrQkdhSjMwUjd1KzIycTIxTFV4bzBtK2lTNXVBY2NBNHMKUHc2
SVdHWjQ1enZmT1hYRGg2SXpkVVY2RW1ERHdlYmlQdmU1ajFJb2IwQk9Qdm5rSUNJM2pkWXhjNHNl
a2xaYm1mTlpWbHRkdXFTego0ZUFnbUUwR0lLZnpjN0kzdFczVzQvSFFRdy9WK2h4NTVKR0ZNOWc1
RlpTSWFkdFJSZFBqRm9ZRGcyNUEySGhnNVlvZExKYXdESDcvCis5K0h3dzQ3TER6M3VjL1YwNUIv
L3VkLzFpU1V3dHZ5b0x3T3pvNDc3bGhMTndlblhMYlZyUzNjWTQ4OUFoYTQvdmpIUHdZUkdTczIK
VCtWOEM0R1hXNmJWdFN1KzVVdERFZWNLVEVRWUdpZ0ROeTFNYW5pVWJzUDU0UTkvV0dUUG9ka1h2
NGsyZFVWUnZ3cWEwbWduTjJxTQpoeVkrcEhXdUtzUGpuQVBPZ2FYSGdRTU9PQ0NjZnZycFV6ZHNL
RHBUVjJSS0FwamlCeXhNeVpVM0pXbGExK2NoYWJXVlBaOWx0ZFdsCmE3clZ2ZW9HQkZxV1hxWTd5
L0dJZEFscnhudmM0eDc2YlQzNjZLUEx4Yy81YmZYczJvNDVoRHhpNFRnZ0M2MnBRR3F1OG9TRVlq
VksKOVFCdXZQSEcrTmEzdmpXKzYxM3ZpbklTRk4vODVqZEg0dEFSK05hM3ZqVlJYazRlRk1ESjIw
UTNCNmRjOWtSRkduNmNjTUlKOGFsUApmV3A4eGpPZUVXKzU1WlpheklYQXl5M1RLdDBWMy9KWmlM
STV5dmwxSUNKNFVXNjJXbkZlL09JWEZ5UnlhUGJGYjZKTm12anZpQ2x0CnExUlRHamc3N2JTVDZp
WVpmam1FRDFWMHkzaisyemt3WHh4STUrcHB5MnlqSlFjUTB4YlJtaC9qRjIwZ2gxOXRLSjNUbTly
MmtZOTgKSk1xQ0tJcWx4ODUwMHd4RDBVbHA1dkFyeFUrZi8vU25QODFSSWsvVHk4OXlZRmRFOFQx
Z3ZJZ29WaEhYNTZIcDI1dERMM2NzTlBWdgpUamxsbkZ5K28yczZIL0NDRjd4QSswTjh0V1VYTjR2
eG1CYisvT2MvUDRxcmhyalBQdnRvM1JnemJYenIwNDYwVEo0cG8xeE8rWGM1ClQrN3ZydTlNTHQy
dWVHMXpkVmQ2UStKUENtVktUYWNCeEpXUW16Lzg4TVBEN3J2dnJ0ZDkwSk9OZzhhUnZzNDY2MHdV
a1pOSGxNSEQKRjc3d2hVYTZPVGpsc2ljcTB2RGoyYzkrZGxoLy9mV0xxK1E2MUlYQXl5M1Q2dHdW
My9JUmNxSXZCZ1pVampTTlQ1OWxjNks2RVRLUgpWT29DR1M0M0NLS1VxS2RpYlRUSjB3Zi83TFBQ
cnEwdjljUnN0RmhuQ1R6anQ4WjBqSnJTcUF2cG5OZ0FhVDZOU1A1Wm5ac2NjQ2JvCi91Z2NXUFFj
d0FIdHFhZWVxdTgxemprUjkrQ0dHaEhRTW56c1l4OEx5SDF6Z25uTk5kZm9iU0xmRGVaeUExbDBC
dDdqNDQ4L1huWE0KTHJyb0luVnlLNFlqVkRRWGMrbXlPRklmVTVhSEVIRU9PV3dKNjY2N2J2anhq
MzhjWkhFWG52V3Nad1d4YmxpZ3lRSWhpR0dSSUphWQp3c1VYWDZ6NmlMdnNzb3QrdTZwTzY5dmFo
dWdJOVpjUHROYU5zZ0Z1UXhCOUFYTEtiS0xEN1RJU0JzakswM1l4K3FKMDRRRzhoSS93Cjg4b3Jy
OVI0L3VFTENqRmlSSm5KejBtMkdJTlJjL09mL3ZTbkM3eXFCK3IrdHJlOUxUejBvUThOdDd2ZDdk
VGt1Q3o4d210ZTg1b3EKOVBEKzk3OC9mUEdMWHd4SU9WREhKejNwU2NwN2tOT1RhdlRuVGpycEpL
MlhMRDUxaklCRFA5SGYxRXVVa2NQblB2YzUvZDU4L3ZPZgpWM0Z0dnVHVXNjRUdHNEN1VUVmTDBu
UEdBcmh0L1F0T1hWbDl4eWswT2UyWEE5Unc1enZmT1Z4KytlWGhJUTk1U0ZodnZmVlUvQnNmCmFy
UlpGTWRCcllXY2NWV2IrZGFFdXJZMWpVY2IxMjIwbTlKLyt0T2ZoalBPT0VQSEpHc0JPYmpXdmo3
dHROUEMwNTcydEthc2xXbDEKN1VpUmNlZkEyTHJUbmU0VWZ2dmIzNnJJRitQNm94LzlhSGpQZTk0
VDFsNTc3ZkNaejN5bTg3dEdHYm52REpJOWpEbm1xUXN2dkZEZgpMY3ErNElJTFZIVHhrRU1PQ2Vq
Wm9rUEYrMDE5MFMzZGV1dXR3OXZmL3ZhSjl5bHQyNko2bm5ZM0k0MHRia0NNRmpjVjdHYTVCY0Z5
CkZNL0VOVUZPbnFGd211cmhhYzRCNTRCellDbHlvR3F1N3R2T01pMU9qVEZkTGlLNEVXczJBTllP
NzNLWHUwUng2aHF4WEdQQXlhRG8KMCtsTnFTeVlOWm84Tyt5d2czNUxaQk5ncVBITU04K000bTlK
NDBXZklMN2lGYTlRU3o2eUNJK3lTTkI0V2FRVStEeklSejNLWVVKUgpEMDQwb2YzR043Nnh3SlBE
Z1NnTCtDZ0xFVFdsL2J2Zi9TNXlDa3U3YUVjS3VXM2oxRjhXemtvRDArMnlzTkUvTzFITkxiT05q
dWlYCmFSbWJiNzU1V3Mwb215aU5wdzBHV0tYRXNoQnhvaFFleFdGcTNHcXJyYlJQUkFRNk5wMjZ5
MFlnaWdFV2xXUXdldkFMV3ZBNEJkcUkKaFNWWk9CZTMzL0FOay96Zzg0ZUpWK0I3My91ZXhzdUNX
K094UW1pQVpTWlJNdFo0RVhXTm0yMjJtVnJTUXBKQ05uUWFMNHZ5S0FzMgp6ZEpFQzRTY3NaRGJ2
MDFsOVJtbjFFODJkM0hsbFZlT3Nnam5aeFJkMlhpM3U5MU4yN25SUmh2RjV6em5PVkdNdTJoYTNi
L2NjV1g1CnEyNE9tdHJXTmg2TmJ0K1E5L0psTDN0WmtYM0xMYmZVOXZNT05VSFhka0NMY1NxSGh2
R1JqM3praEZYVkwzM3BTMW9tNHpUbGQ1ZDMKRGZxNTd3eVczMmdmNWQzaERuZlE5d0dwQ3RtTXhs
ZSs4cFVhTDQ2N0kzak1md2NkZEpCS0Fjbm1WTk1PUHZoZ2lzc0NlLzhJeHdaVAoxMmpNalJzYnM3
MCt6Z0huZ0hOZ29UZ3c1RnhkcGlXbnBHcmVVMDdvSnBySFpnSmN4SEVOZUNaT1RqMHRTa00ySVhM
U3JtbHlFbG1rCklTWnA1YkZRTUdEaGhiaVR5SUpQaU1iS1RZZlNNVHhDZkI2SVJhWWk2dVV2Zjdt
S1VSWVI4aUFua2tVNXFXbllMbTJUazNxbDhmU24KUHowbHJjOWR5bXlpSXpjTVdrWjVBNEtJa2ZF
cExWeE9aRFdlelFRYkpBQlRweXc2bTBCdWN6UWZpeUlEVE90U0JpS3FLYkJ4SUY1dQpXZEpvM2VD
d1lTRE5GdG1HSUhxWkdwOXVRRWhqTVE4KytTNjk5RkpEanl5RWFUTnA0aUM0aU9laGpsYk9XT2pT
djAxbGRSMm44SU0yCkl0NmRBdU9FTnU2OTk5NXBkTzF6bDNFRmthcUZ1eEd2NDJQVGVMUzhmVUxF
NnRnZ3k4MVBrWjE1Z2ZiemwvWi9nWERyUTU5Mk1LOUEKVnlScXl1UjBJMGhhdWdIcCtxNTFlV2M0
OUdEdW9zeGpqamxtb2o0Mnp0bWtnR2NnVWh1S0wxWkhMYW8xaEw3OXRTTFBNOEtnU3VqUwpTQWZu
Z0hQQU9lQWNXRVlja0E5a2VPMXJYNnVpQVdaZ3hKcVBTQUVpQmk5OTZVczFDbHc1OFZSRlZ6blpN
elFOWlRFV1JHOUtuNkZuCmdMRVNBQkdlTkkrY0hBZnhNYUZpT3hpYk1Mai8vZThmWkhHdEptRGxk
RnVqRVlQY2R0dHQ5Um1STE1TRUViOUFCTUwrRUUrUzAyZkYKRVVkdEduWnBtMmE0OVY4cWJrUlVs
ektiNkRTbFdaa1dHaTVHTXdERWVEREdBbUNaQ2l1VVRTQW5zVUVXd1VGdVRBbzB1ZEhTNTBzdQp1
YVNJUS94SEhBcXJnUlpFaDFMQWhEMm05b0Z5dld5c2xPTk4zSWkreGZxbEFTSmc0ZzlNZjhvR01Z
alRZMHRTa1M5K2xHbTFqWVUrCi9WdFg3NjdqRkxFYjJWUnhDRnkwZ3dlNStkRGZpQWUzUWQ5eFZV
ZTNybTJHWCthdnhmY05FYTFrSENMaVp5QzNYb1d4SC9IeFp0R2QKd3FwMndPdDk5OTAzTUNaVEZ3
SkdHQXV1UUZVYnkzSDIyMEtqa2Z2T2dIL0hPOTR4MkpoSnhVNUpRK1FmRUYweXhkTWY4cy9lQnpO
dApiZkdMTmZRTnlHTHRPYSszYzhBNTRCd1lBUWRZakNLN1hXVVJqZ1VyZW1jcnJiU1MxdlN5eXk1
VG1Xc1dwV2JGSm0yQ0xYYlJIOEJFCmF4c2dOdyt3dURBUVVTQmRaQ0FuellJWStYSUF1VzRBWFFo
MERkaUFZSGtuL1VQK0hMMEtFYzlTM0M1dDB3eTMvaXN2VExxVTJVUW4KVGN0OVpxRURzTmlwMG0y
cG80TzVmUHhHc0ppVDAvMncvLzc3aC8zMjIwL1JrYk0zUU4rRWhYQlYvNFBEZ204b1lLR0twU1Fn
eDhwZwoyMWpvMjc5ZDIxTTFUdGxnQWVMRWQyTDhpbmlReHR1Q1dIL1UvT3M3cm1ySXRVYVh4M1Zy
aGhZRTlIUGtsRjkxWDlCLzRZL0RBekg0Cm96azVITURhNUJBQVhmUk4wTTJ5amZRUWRGTWF1ZTlN
bXFmcTJjWkxPYzBPU05CYldRb3dxQkw2VW1DSXQ4RTU0Qnh3RGpnSDhqbkEKcGdMZ05Ma05iTkZZ
dHhCbVk4S0NsWnNMY0hNV1llVXlNV3lDZ1FuOCtPQWNWVVJjZ25qa0RpSTNIVVFmcFZEUVJrRmVk
RVBLMlNkKwpkMmxibXJHOFVET2w4Snd5bStpa2FmUHhMRG82NFExdmVJT2VDaDk0NElIYU55andw
dTNEbHhmQURVVVRwSG1hOE5yU3VMMWhVU3J5Ci9HMm9xc2pkTkJiNjltOXJ3UmtJYktaUU9CZnhR
Rlc4RjdFOXpZWFBOTjRCREp5MFFkOXgxVWEzTG4yb1BvUytXRUFOYkFDWk42cU0KSVhCQWdRc0hE
Q1p3d3pZdHNMa0J6Qy9OdFBUcTh1ZThNM1Y1TFo1NUNpanp1L3piOEJkcjZEY2dpN1hudk43T0Fl
ZUFjMkFFSExBVApkcXd0dGNGOTczdGZSY0hDVVZuMGhBUTJKcUtVcVRqVExCUTIzbmhqM1h6c3ZQ
UE9TaFBMVWR6RUFDYWVZWXRQamF6NTE2VnROU1EwCnVrdVpUWFRtTTAzazc5WGFGRGNPV05GNndL
MmlYT1U2Y0lNRXNIQ2VEeEFUNTFxTU9UUnVLN05wTEF6VnYyMTFxRXRIN0E5eElHNXEKc0lTRkkw
Q3Nqc0h2S3N0eFpUcUxjVnhaRzdqOUVLTUlRZHdqVlA3aCtCbmczVVhNYjFxd3hmc3N4WmR5MzVs
cDI3SlU4dnNHWktuMApwTGZET2VBY2NBNHNBQWRNZmh0VDZaem1sb0dOQnFJVUFEY0FMQVFRbWNM
Y1pCazRwVVM4QUZFRDB4MG80N1Q5Rm9WT1JjR3N0dmlQCkNtZWRkWmJTTytXVVU4SlZWMTFWeUpm
allEWVZKVXJwY3VyUExVeVh0cVg1YmJGamNiWll6aW5UOGhDVzZhUnBwdCtTeGczNXZOTk8KTzZr
SmZlVG1tOEI0aE00Q0c4czZhR3BMWFo1eVBPWnVNZlhQTFpjdHZzczQ2ZSsyc1dCMXp4bTdLZDJo
bmxkZmZmVWdDc1VxM3NhTgpEcUkzYkVLNHZjdUJ2dU1xaDNZVnpoQjlDRjFFb2JqMVNNMWlsOHNU
aTNjYWhUaG0xUTFKR2IvdDl3TWYrRUJGNFZZVWtkRXlWQjJJCkdFN3V1NWI3emhqZDVSNzZCbVM1
andCdnYzUEFPZUFjbUlJRGJDb2U4WWhINklKZHpQQ3Evd2NqeHdKL3I3MzJVbEVUNHRCRE1ORVMK
Yk51WHdmenI0RWZJb0dsaFVDV0d3eUpmTEdSWmRsVmNwdzRBdWd3b3NxT2NMR2JkVlRRcjFSOEJC
OThnaUJNaEJ0T2xiZVMxUlhGWgpicjFMbVUxMFNETTVjRFpUS2RqbUQzNVZ5WWczOFRHbHd6UDVF
WkVCVE1TS1o0dExUNlR4VXlFbWZyWC94ZlErYUFYQVcxdnNsVGQ3CjFuY1dGcGx1ZmFoYTlMR2hv
R3d4N3p1QmJqUXN0TVMyc2RDMWY2RnJaVmhvWlRYeHQ0eHJlVERPZ0JnV0lvSmkxVW5IcGlrbUcw
NVQKMkhWY1FTdW5udVg2MW8zcnRHNzQ2Q21QeVRROWZlYjJnNDJYM1lpbWFmWXM1cGdMdlMwelBt
QnBoRjNiUVYvanQ0UXhLV2FkVTFLcQpFOFo4VUtiYjVWM3I4czVNRkY3eHc5NnZxbmVnQXIySVF0
eVFmbGcwSUowNEZVaERaMnJpUzA1VjVuaGd4WjY0T0krYXF0NWp6N3hZCjJvZ2RlYkVZbzJZdXAr
V3B5SUpHa1FtZGxzeE04aStXL3NocC9HSm9TOU80V2d6MUwvZERVM3ZLdUxQNlBlUmNYYWFGbnc5
WnRPdTMKQUI4YytDOTQzdk9lRjBYRUpjb0ora1NUUklRbWlqaVBtcUNmQjVOSEFBQWdBRWxFUVZU
RTVLcUJMSG9pNW12bGRGdE5ybG84YzcyVgpSOThiZ0M4bnlKcDI0b2tuV25SODNPTWVGMlhEVWZ6
bUFUOERJdElWWlJHczhTTHVvaVo4b1N1V1piU080bHd2aXJVc05ZdEtmeGwwCmFac29ZMnQ5Uk9s
ZWZaK0lnbkdrTEtCTG1VMTB4UHBUbEpOeUxRZS9IaUxHRStYR0pvcTRXUlNkR1kzZmM4ODlpem5a
ZkJ6SWhpcUsKWXI4MXF6VTBmeHlQZnZTam96aGxVNzllY3NLci9VYS9ZcHBWbk1VcEhVeW5ta2xS
ek1MS1JrWE5tZUliQkY3QVowemlIbmZjY1VXNQo5RFh4K01KSWdielczNVJySUk1cnRRL3gxMUtH
T2xvNVk2RkwvMUp1WFZsZHg2bm9DbWc3OGUwZzF0K2lXSDZMb21jVDhUMGgxcUhtCm1DMHV0OWwr
ZHhsWDVNRUhCdnpGLzBZWjZ0cldOQjZod1JvQW1wZ1Z4bDliRTBCTERFQ29UNThtUE5KNGIyMHNp
Q08rQ2ZRKzdjQi8Ka05IRDN3OTh4Z3cwdmtmc25Vck44SFo5MTdxOE15SUtGa1hrVk9zam0veUp0
cGt2RUV3TnA4QTdZSHkydWN6U2FZdTFUYXo4V1hRUgpSOXJZWU9vYVdZT0hiQnkyeHVWRUlJcVZD
R1VlVEU5QlRxODBYa3p4cGRGTDZubnNiV1RTNXVNaUpoTzFMN0FEM3hkRXlTeUsxUXY5ClVJbXB6
TDVrWnBwdjdQM1JwZkZqYmt2T3VCcHovY3Y5a05PZWNwNVovUjV5cnE2aXhjTFJGZ1drTXpmd2Js
ZkJUVGZkcEU0TDViUTMKN3JISEhsRnVRNko0K0kwNzdyaWpPdSt6UE5pOUYxbjQ0aVBLSWxadVNh
SW9xQ3UrMVlOeVJjUktzN0dZWUl5d0NjSUo3a3RlOHBJbwpWcTBpMzVVVThJa2hKNXdGYlJiUStG
N0FuMFladXJSdCsrMjNWNW9zK05rSXNGRXk2RkptRXgwUjA0bHlvcXZsNEtCUmJveWluSnJxCnhv
NzJpNWY1S0xjd3VwaGxnMlY4d3JtZGVGaTI2alNHYkd5c0RMbmhpdi8xWC8rbGJXR3hMS0k0VWJ5
UlJ6bnhMbWl3MFZteFlrVlIKRm80UFR6MzFWUFhKZ3Q4T0ZucjBPdzRUcWE5dFdLbS9tR3N1RGhw
dEE4SW1WVzRJdE8vd1R5RWllYnF4VFBuWlJpdDNMT1QwYjFOWgpmY1lwN2VCN1ozMVREbkhpeVhq
SmdaeHhoWStXRjc3d2hVVjVhNnl4Ump6Z2dBT1U3MDF0cy9LYnhpUDhZekZOblZtMDE0R0lSQ29P
CmJaVmJsY2ltdjd5UUppOWpselRiVUJzK2M4VzA3Y0FQa1kwOU5zZGJiTEdGK2dEaWdJSnl5dk5F
N3J0R3ZYUGZHVFpzbEd0OWpqTlYKZkk3Z1IwbXM5eFh6a20zVTVCWlI1emZlSTh2RDJENzMzSE1w
Vm9GNUVhZXZwRE5uR2hnKzRkaGc2aHJOb25GTXBDTG5XWnljY0ZLUQpndGhNVmsrM09KZGFxakQy
TmpKNTR1bllQbTRpNDkyN0szaTU4RTdLV09MVWRJd3c5djdvd3JNeHR5Vm5YSTI1L3VWK3lHbFBP
YytzCmZnODVWemZSNGdTVXVabTJ0d0h2UHJjZ0xGNjVHUmtDY0dnSVFJL1R6TElEdkxRTTZvaERQ
aFkxM01DMlFXN2IrR2JWdGFkTG1VMTAKcUt2NFAxRlA3bGJ2c2lOSWk1OG1yTG8xYVNvSGg0NmM3
aHEwbllnYm5vVzJBZUhiQXJBVzRHWmN4RkVNSlR2c01oWWdtdHUvMlJWbwpRR1Fjc0JGajdETk9X
WUJ5NDhQbWtaTjZiclRZeE9WQ2wzR1ZTN09NMXpRZThlTE8rN3dZZ0hlZGpZYUlZeFhWcmR1QUdF
S1hkNjNyCk8yTmxUQnZDZjhhVCtBOHBTRFhOMVFYU0FqMk1jZ05pdkRDMzgzaHRMUU9ibEtVT2k2
R05kb0l6elEwSS9jZzFNaS9LUXQ2QUlIWWgKZHU5cmg5Vmk2SS9heXBjU3h0Nld0bkUxOXZxWDJG
MmNkRTc3bnBUcGR2azk1SWRvU0ZwZDJ1QzRTNThENVEzSVVtMHhOM1BjK0RVQgp0dzU5Tmw1Tk5E
MnRtZ050RzVEcVhPT0xmZDNyWGhkUE91bWtvbUpqbnF0SHJZUnV0dUl0RkVZV1VPWEVxa2hjSWcr
TG9ZMVd4Mm10Clk2RHdDVXhMWjVxdWwrdm9jUHJwcDllU3NMYldJaXlpaExHM3hlcFhOeDRzZmJH
dzNPcGIxNTdGMGc2dnAzUEFPVEE5QjNBK0tITDYKaFVXMktvb1lUTUFQVHRYNnB3cmY0NXdER05B
UVBiWWdvcXFMZ2htamMwU0ltVDBza0tTd2tCOXRiSnliWGZxMFR1bXpuSnlyTTUydQozalhsRkZj
ZFk2VzA1dU5adHNZTHV0Q2ZqemJXbFZIWDlvOSs5S05xZngyckluMGhaNnowcFQzZiticU9hYm4r
SDlXSGNpbjF4WHozCnZaZm5IRmhJRG1DaUZSQXhyNFdzeGt6TGx0UDJnQThTRm93MzMzeHpXRys5
OVhUaHlMeDE0WVVYcW9scURpM2U5NzczemJRZVR2enYKSERETGVWVVc1UDZPTmU0bmZLZVlhZVp4
MS9SdnRadlpEWWpJTVFaUnJBbGlWVUZ0cVl2Y2RzRFdkaDI4Ly8zdlYxdzgwNHJsQ2pXegp4eUlJ
U0RjZ21QTERFK3ZtbTI4ZWpqNzY2RXB5WGN1dUlvS1pPQmFqZU9Da1UzRmloVW0vRkRndEYrWEdJ
Sllhd243NzdhZTJ5Y1dDClJZcWk1dDNBdzk3MWs1LzhaSjFzc0RHUDJVcFJnQXJycjcvK0hIdjRi
VzFrNDhKcFBSNStjUksxN3JycmhzTU9PNnd3RDBnRjJNaUoKQW1EWVpaZGRkSElqRGx2OHRBbVRl
cUwwSFVTSGcraVpRcCsrNE9SSFJIREN5aXV2ck8zaldXUXFLK3VaUzEva1BZTW90UVZSNGxJKwow
UWVycmJhYWxuUGtrVWRxLzdBNUVWbHc1U2M4RlhsZ0xiT3RQM0xHU21YbEpUS25MMFV1V01jWjVo
cEZBYlFnSllxN09nYUl6NTEwCjJ0cVNNNmFMQ3NnRFl3cnprU0pLb0E2MVJLd2dtQ2xWOElhc08v
VGE2dCtuTDBSbU5tRHlFWk9RL0ltaVl4QkZTb3BUWUc3Q0o4VmoKSHZPWUNST0hPWDFuTkR4MERq
Z0gyam5BL0N2SzdvcUlUeEdjOG9sMXFmYU1pd3hERk93RDg0NFlTZ2g4dzhRQWc2NEpjRDdJT21t
cgpyYlpTSHpiNEJYR1lMUWRFY1Z6TklPT1JIY0NVTkQ1dEZpUGtyZ05HMDdaQ1VLem5nelNrME1x
SGhIeVVveXpZNDFwcnJSVlJXQUprClZ4OWxZNkY0c2lEV09QdUg0aFRXbE9RRVFDMWtFSS9Nbzlq
NUx1aWE2VVdVQllrM2MybFkxVWloYTlscDN2UVpoV3BNU1ZKdmdEcFMKLzlSczNkbG5ueDJ4Y29K
RkJRUFpHR21kVTRWc1pMN05OQnRXUFRiYmJETzE4Q1YycUtNc2NoVWYwM1Z5NnFGazJ0b291M1Mx
Q2tKWgo4QWxsS3N3UzBnK1lsVE5Bc1ZNMkd4cVBsUkZ4NnFOOFJybHQ3YlhYMW5nc0wwd0xtSW1q
N0xUTjBPemFGeWpmUVVjMmREcDJzR0NECnhRN1pKR2k4TEF3blRFaDJvWC9VVVVmRmU5M3JYa29I
cFQ1TVY4b0VyeFlqc01JREQ3RWlRdmxQZWNwVDFBcVBuSUpvdjdmMVI4NVkKcWVOeGJsK1NIOU9N
MUU4MjNoUGtzRjVDUEg5dDBOYVczREZOT1l3OXhwdjRmU2plRTR3U1lBVUZTeHhZZnpMb1UvZXFj
ZFZXLzJuNgpBcXNrY3RDaGZKUU5zRlc5Q0JrM3Nqa3JmbmZwT3pKVnRhY2dOazhQTms1eXhrcGJs
WWFrMVZhV3B5OGZEb2dQQTUwN21EL3NEd01CClN4Mnc5SWxsTjc1ckR2UExBY3duMjFpelVCeWl6
bThsWmxqYW1PZnE5bFZMQzJQS2pXTkJUaHgyd1ZOZ01TOWVSelZOeEYyS0pCYm8KNEpjbkdSU0NX
WmlUVnJaaWdrays0c3Nia0s1bEY1VW9QV0Rxa2JxbWdGVVhsSHNNZHQ5OWQ2MkQzTUpZbEZwVm9G
Njc3cnByRWNjRAptd0hpYWMrbGwxNWFwR0dCZ1FVbGFaaFhTNkd1amRoWXh4WjdDbGdkZ1FaL3FX
bGlGbElXajJVRUF4WlBMTGJraWpmS1RZbEY5d3JyCkZsWmQrOEkySUNMdUZsT3p5N1FOYzRHMEE1
T01CbDNwczNpRUJwdEdNMjJJY1FNV3RRQTI3VW5IRG5vVjFQVkh6bGlwb2tkY2w3N0UKUWdyMUsy
OUFNQmxLUEgrNVVOZVdMbU5hYm8zVXpHclpHZzRIRE5TRi9qSG9VL2U2Y1FYTnV2cFAweGZReFFJ
YmRUL29vSVA0V1FCagpFSE9rS1hUcE8vSTF0U2VsTzh0bkd5ZGR4a3BkZllha1ZWZUd4enNIbkFQ
T0FlZkFkQndZODF3OXFBZ1dWMWh5U3hDUVhTekwwc3ZpCnV4QWZFWWM3d3BPL2laOGc0c1MxRVRL
UUthQ1VqTmdEa0lwZzhkdThjcWJ4WGN1R1RoMklEZmtnQzlNZ0d3NzE3Z29laWoySUFobUkKbzVn
Z051UDFxdFRpVEFkRVRBWmFsSVppRDE5RDhXc1N4TFJna1lhdWkzbjRsSTNEaE5oSFZSdkZnWThx
cm9sdGFCVjlrUk5mRGJsQwpOSStkY3BKYjBEZVBxdkFwN1E5RW02Z0xJbTVpV3E3QUgrcGhtcjZR
eGFYV3plb2ltdzhWaWVFM2VocnlLcXErVFpkeFJsNnV2QUg2CmdqSUE1SERscGs2ZjdWODZwaXlP
c0tvL2lNOFpLK0NWb1d0Zld2NXkvZXkzaFliWEZOYTFKWGRNMDcrOHc0Z05HQzByVCt6NWh4Tk8K
T0NIZzRiY001VHJhYnd2TCtIVy9yY3h5dnI1OVllVWdTZ25JalptT000dEhSQUpSUm9PK2ZXZjVQ
WFFPT0FlY0E4NEI1OEJ5NThDZwpHNURMTHJzc29NRER4c0dzdnFRTVJxNFJFSkVxbGVtLzhzb3JB
eC96Qnozb1FTbGE4V3lXa1lxSWhvZXVaVGVRQ2lJU0ZpaGJITUxvCnhraHVjeFJkUkplS2JHeWF4
R1NyTHNEUVdkaC8vLzFWRHdRRTVOUnpRVzVhVk04QmZMbUNiY3lHZkN5YkJqWWdLS3VsZjNMaXJB
c24KRVdGcXBHR0pKbHNxdHpBV05WZzRUVjlVS2Z4dnZQSEdXamNXdm5JYUhmclFSK0VQWUZQV1pG
V2t2S2pWVEEzL2NzWktWZlloKzdLSwpmcCs0M0RITkJsdnNqVmUrdDJ6QzBaZEN2Mm0rb1c5ZldE
MFpaK0xRVHQ5REVVZlRhRGE4Nkp5Sk9LQ2hxWjdRVU85aFFkUWZuQVBPCkFlZUFjOEE1c0l3NE1L
Z1ZMRnRBMXkzdzJKaXdzQmY1Y2YzSWk3TWlaWFhaNmxXWi96bUx3cTVsWTk2dURoNzFxRWNGOFd3
YXR0dHUKdXlBT2dsVFJWenl6aDRNUFBuakNhcFhvdUFTVW1hbmZnUWNlcUcxanNaSlQzN1JzVHVM
RjgrZUVFbm1hYnM5czJBQVJCd2tvNjQ4VgpodXdMMnZqb1J6ODZjSVBHWm9rTjd0RDBVejUyN2J2
Y3NaS1d3Zk5ZK3pKblRMTUJCTmdRamduNjlrWGFCdDV6RWFFTTRzRTdpTDVXCllDUEMrT1BXMEdD
c2ZXZjE4OUE1NEJ4d0RqZ0huQU5qNThDZ055QllrQUd3WHNISllSblltTmdKTjR0dVR2QUI4YUJa
UnUzOHUydloKYlFWd0dzcm1RN3lSNm9tNUtHL3J5YTdsRTEyT3NNRUdHK2p0aGVpeEZDSStsdDRs
RkkrNWl0NW13Y0JFVDJ3QjJLV00rY1FkdWkvWQpmTkIyTnFxSWpnMU5mMXJldEkyVkt2cGo3TXZj
TVcyM1NWZ1dHeHYwNll1MERhS3JvZUtNSjU1NFlzQWM2SWMrOUtHdzIyNjdwU2lGCjJOblkzOE9K
U3ZzUDU0Qnp3RG5nSEhBT2pJZ0RnMjVBT0pubkJKbVQ2Z3N1dUdCT004V3lnSjVnbzYvQWJRamlS
d0FtejlpMDFFSE8KcVhUWHN1dktJdjZZWTQ3UlpMR0VwUXVRczg0NlN4Y2xwNXh5U3JqcXFxczBU
UlRCMVV6cnZ2dnVxNy83L3NOYzduWFhYYWNtZkcxUgpXa2ZMTmlpWUE2NFQ4K0pHaGh1bWhZUWgr
NEoySVBMRERSRW1peEh0RzVwK3lxdWNzWmJpNTR5VkZOK2UrL2JsTFBzMmQwemJlNHU1ClNESE9Z
RTBxUWc0ZjBFOHF3eXpyVGxsOSt5S3RKNkpqOEVHczBRVEVHc1VnUW1CVGswTGZ2a3RwK1BNeTQ0
RDR5UkhiNk0yTnpzRXgKQ3JtNHVYaEd0eHhPbTc5TVQzNWZjdjBsWVk5VDl3aDduclpuK01yL2Zx
VUNZekxxNk84Y0hmWStjKy93NnROZkhXNzRiYlhwK0Z5YQpPYlFvUFpmZVpFMy85b3Z2RlRxS1Yx
eHh4WnhrL0NVZGYvenhLazFSNWVla0tlOGNZcVVJYUxPZTZBT3p6anNOL1Q3dDhUeUxnd09ECmJr
Q1FyN2ZUUW53VWxNSDhBK3l6eno2YXRNNDY2d1F4YjZrTFptd3ZwOEFtQmpsem9MellaakFERnZM
Y3RXenkxQUVMZkxFVVZTU2oKd0wzWFhudnBiL1E5RUFQNjVqZS9xYi9UU2NiaVdMeFVRZFVDakVV
VCtHSmVlQ0tMdGMxQ0VxbkgvZTkvZjkzNElDcFMxdC9BcVJHMwpCS1k3VTNVTFpZV2tkQzNPUXNU
UHhCeWkvV3dNcThvWXNpOG9uQTBnR3dQenNUSU4vYXI2VW9adC90am9WSUh4eTBMRGFSc3JobGNP
CnUvYWxHUm13RGJEUnN3MEE3V0pjNW9DMXdVTHlkQm5UYkFEeFk4TjRGak84cXRObDVmS3U4cTdn
bThTZ1Q5M3IrZ21hVm04THJaeSsKZldINUxVU0JudkdHZ1FqOG01U2hhOStSdjZrOXBIZDU1OEIz
V0VRY3dDakppaFVoM1B2ZUlaeDVablhGYzNBc1p5NXVMcDdSTFlmVAo1aS9UazkrMy9PV1c4Sm5M
UGhNTzJ1eWc4SzZudkN0ODQ5cHZoT3R2cnZieFJQWXpmbmhHV09XT3E0UjNQdm1kWWQ5TjlnMUhY
SFRFCkhLcTVOSE5vUVR5WDNweUtTQVMreWRBVjVYdk8ydVp6bi92Y0JOcVdXMjZwUmxCZTlhcFhx
ZFFFVGdnTjJ2SWFYbFhJeG1XRmpERXgKdVM5RHJHYU1WV1dVdUZubm5ZWitUWlU5ZXFsd1FENk1V
NEh3QVZrci9ZT1FpQk5GL0YxZzRoWHpzd2F5V0ZBVHB5S25IV1hoYk5GcQpyaGRjYUdEYVVoYnhV
VVNmMUdlRm5FWnFQT1kxanp2dXVDSVBwbExCRnlkRlJSd1BYY3VleUp6OEVFZUlVUlpSU1V5TVlp
RW5pdGhZCmxBV1d4cHR2RDVFUGo1aVFsUTJVbXNlbExTS2lvbVpkVHp2dE5NV2xUY1lqY0Ewd053
dE4vSGlVb2E2Tnh4NTdiT0d2UUN4cVJibUIKaWVKZ0w0cVZyaWlPQ1NQbWl3MndiMjNsbWk4VjB1
aUwxVmRmWGRORTFNVFFOWlRUbVNMUDRZY2ZQcEZXOVVPVWRoVmZUbndta3J2Mgp4VWtubmFSMG9F
ZGVBekZTb0czRC8wc0tYZWxqaGhoZXlPWnN3cCtJMGFRYzBobHoyQUkvNzd6eklydzJxT3VQbkxG
aU5NcGhsNzRVCngzaUYveHY4bUlqbHN5aTNYVkZFQktQb00ybmQ5OXh6ejRpNTZEYW9hMHVYTVEy
UFpMT3I1ZUl6Qjc4dG1MRmw3RE1tVStoVDk3cHgKQmQyNitrL1RGMmw5ZWNZZkRHMjU2YWFieWtu
NnUwdmZrYUdwUFYzZnVjb0taVVRhWEVBNExReEphOXE2akQ3LzNuc2prUHkzdjIyMwpyYTV1RG83
bHpNWE54VE82NVhEYS9HVjY4dnVFeTArSVAvcmxqNHFVMzkzeXUzamtSVWNXdjhzUGg1eC95RVRV
U1ZlY0ZLLyt4ZFVUCmNiazBjMmhCT0pmZVJDVnUvU0dPQkhWT3RQY2o5YlVsb3VaUnhOQW4wdVhR
cENEVGxMZEFxbmtRaTV3RlhiSFdXWU5WSFQzcnZOUFEKcjY2eHgzYmhnSTNGSWViOUx1WG00RTc5
SmFwcUhCOXRISlRKU1hVVXI4SlJia09pbU95TWNwcW9UdDdLRldOeEtMdjM0Z1hDNlpkNAo4Vlpm
SFBqSHdOOEhOSEc2SnJjbnhjSUhCM3RpOWpPeXdESG9XcmJsUzBNNXBZaHkwNkNMcWc5KzhJTlJ2
RHRIc1M2bGZqNE1qd1dnCm5BUnJuZVUwT0lyM1ZsM1lpNmRxM1NDSWZraVUwMnBGdHcwSUd6TjhX
VUFMWHdZaWhxWWJIVFlFQmpsdHhJK0ZuQ29YL0dMVHcwdU8KVHdnRE9WR042WVRHSms1dW9OVFpF
WDFoL2NiQ1NFVExMSnZpNEVpT2RQTFhBWDViY0JSb2RQRFZjY0FCQi9UdUN6Wk9iT0xnS2J4bgpF
aFZyU25IVFRUZU50cEVyMXlXM3IzR0V4MmJONnJyUlJodkZRdzZaL0xCQmUvdnR0MWNjTmlrczV1
bVh0djdJR1N2bGVxZS9jL3JTCjhFOCsrZVJpekRIMmVSZHdYTVc0b2g1aUxqYktEWTZoenduYjJ0
SmxURU9jY1cwTGEzZ3JKbzZqS0cvUEtaZUkzTG8zamF1MitrL2IKRjJuRjJSQXpYelZCVHQ4MXRj
ZG84MTdtdkhPRzN6ZTA4VTg0TFF4SmE5cTZqRDQvQnhtMkFTbjVtQ25xbm9OanlMbTR1WGhHdHh4
TwptNzlNVDM0ZmU4bXhVVzQ4aXBSYi9ueExQT3pDdzRyZjVZZjNmZU45RTFHblgzVjYvTjZOMzV1
SXk2V1pRd3ZDdWZRbUtuSHJqM1ErCjVCM2grMlVneGl1S2I1QzlQNGNlZXFnbFQ4eWw1YndGVXMw
REJ5SkdzK3pIcUNaTEVUM3J2TlBRTHlycEQ3MDVZT09DY0d3d2RZMmEKR2ljaVZIb0x3Z1lqUGRX
dVl3SU92OFF5VnBGODQ0MDNGczlkSDdxV25kTEhhU0pBbmJtTktUdENUSEd2di83dms2bkZsNTJ6
MlFhRQpSVEFnT2g5UnJpWFZtN1RsNlJxeU9NYUpIZ3Njc1ViVU5Yc2pQcnlqejU3NHhDYzI0dVVt
ZHUwTEVRZFMvaERtUUZmNlRUU3Z1ZWFhCnJMRnFOTHFNRmN0VERydjJwZmh1bVJnNzVmRldwdC8x
ZDg2WVRtbnlubkx6a202azAvVDBlWloxSDZJdnJLNjBoUTF1RzNUdHV6cDYKUTc5elZlVTB6ZFZW
K0UxeFE5SnFLbWRKcEhFcmZjd3hNWEtqZk91M1pVNjdjbkFzVXk1dUxwN1JMWWZUNWkvVGs5Ky92
ZVczOGFEegpEaXJtaXFNdVBtcmlScVNjNWNRclRvei9jOTNmUEtILy9rKy9qMjg5OTYxbGxHeWFP
YlFnM3JXT2FZVTRpRXpmamRSUk1YaHNTQ3lkCkcxYWNBaHUwNVRXOHFwQURQQkhubGlGMnVBeXh2
NjFmcXZDcTRtYWRkeHI2VmZYMXVHNGNzUEZHT0RiNEJ5b2tGZXNOcWRMdWxLUjYKMTJIc0diLzFy
VytGZGRkZFY1MFFZbWxvTVFBT0lrVWtKOGpOeVdLb3J0ZlJPYkRvT1REcmQyN0l1WHBJV291KzQ3
d0JuVGp3NWYvOQpjdmpVcFo4Sy8vU1AveFFldCtKeFladUhiVk9iLzYveHIrSGRYMzkzK05udmZo
WisrWWRmaHIwMzNqdXN1Y3FhYy9CemFPYlNnbmdPCnZUbVZ1RFVDdjJIb2ZvaG9kWkFOeHdRYXBz
dEZva1AxNXRBMXd4cG9DazE1VXp4L2RnN2tjbURNYzdWdlFISjdjUXE4eGJZQlFabWQKaVJGclFB
N09BZWZBN0Rrd0grL2NrQitpSVduTm5ydGVnblBBT2VBY1dKNGNHUE5jUGFnand1WFp2ZTJ0eHA4
QVVHVjJyejMzL0dOcwpzODAyd1V5TnpuL3BYcUp6WVBseHdOKzU1ZGZuM21MbmdIUEFPYkNjT1RD
b0dkN2x6TWk2dG91T1JoRFpUazNHMTRsWTdncGluYW9PCmZSVHh2dmtZUlRkNEpaWVJCL3lkVzBh
ZDdVMTFEamdIbkFQT2dlQWlXRE1lQkdLNVo0NXpJTEY0RTlaYmI3MFpsK3prblFQT0FlZkEKM3pr
dzVGWDhrTFQrWGtOL2NnNDRCNXdEem9FaE9URG11ZG8zSUVQMnROTnlEamdIbkFNajVjQ1FINklo
YVkyVVhWNHQ1NEJ6d0Rtdwo2RGt3NXJuYVJiQVcvZkR5QmpnSG5BUE9BZWVBYzhBNTRCeHdEamdI
Rmc4SGZBT3llUHJLYStvY2NBNDRCNXdEemdIbmdIUEFPZUFjCldQUWM4QTNJb3U5Q2I0Qnp3RG5n
SEhBT09BZWNBODRCNTRCellQRnd3RGNnaTZldnZLYk9BZWVBYzhBNTRCeHdEamdIbkFQT2dVWFAK
Z1NXM0FmbkxYLzRTdnZhMXI0VWYvT0FITSswY2ZIdGNjTUVGTXkzRGlmZm53Q1dYWERLMTM1WDVH
a3Y5VytrNW5RUE9nY1hBQWY5ZQpOUGZTY3BxdmZTdzBqd1ZQWFQ0Y1dESWJrUFBQUHorODZFVXZD
dmU4NXozREpwdHNNdlBOd1lZYmJoZ2UrOWpIaHE5ODVTdkxaN1NNCnZLWGYvZTUzdzh0ZTlyTHc0
QWMvT0t5OTl0cmhoaHR1NkZYaitSNUx2U3JwbVp3REkrSEF4ei8rOGZDc1p6MHJyRml4b3ZoakR0
NXYKdi8zbW1DQWZTWlhudlJyK3Zaakw4dVU2WC90WW1Ec1dQR1o1Y21ESmVFSm5NN0RtbW11R0N5
KzhNUHo4NXo4UHFlbXhXWFR0d3gvKwpjRDFodi9lOTd6MEw4azZ6QndmKzlWLy9OYnp1ZGE4TEgv
bklSelQzYlcvYmIzalA5MWpxMFZUUDRod1lEUWQyMkdHSHdOOGpIL25JCndLSnlwWlZXQ3QvNXpu
ZkMzZTUydDlIVWNhRXI0dCtMdVQyd1hPZHJId3R6eDRMSExFOE9MSmtiRURZY3E2NjZhdURsQm1L
TU0rM1IKazA4K09WeC8vZlY2Mmo3VGdweDROZ2ZZY0xBaHZNOTk3cU41K201QTVuc3NaVGZRRVow
REkrYUF6YjMzdmU5OWZmTlI2aWYvWHBRWQpJaitYNjN6ZE5CWVErMzNuTzk4NWwxbUxQR2FwdG11
UmQ4dUNWMy9KYkVDTWs3Ym9uUFVOQ09WWldWYTJoK1Bnd0QvKzQ5K0d0WVY5CmEyWDlPeDlqcVc4
ZFBaOXpZQ3djdVAzdGI2OVYrYWQvK3FleFZHbFU5YkQ1WkZTVkdrRmxiSjYyc0crVmpMK0xZYjYy
dXBiYmVzQUIKQjRUVFR6KzlITDNvZnkvVmRpMzZqbG5nQnN4MEEvS0hQL3docTNsLy9ldGZzL0Rt
RzJuYVc1VGM5bE5PdWF6eTcvbHVlMTE1czZqWApFUDEveXkyM3pLbnkyRDVFcytEZG5FWjdoSE5n
bVhCZ0tiOVBmL3JUbjFwN01mZjcwa3BvQVJDVytuemRwMjgrK3RHUGhyZTk3VzI5CmUrUFBmLzd6
MUlaWGVoZmVrSEhhZGpXUTlxUkZ6b0daYkVBT1BmVFE4SVFuUENHOC92V3ZEOXRzczAxNDlyT2ZI
VDc4NFEvUFlkVW4KUHZHSjhJSVh2Q0RzdU9PT1lkTk5OdzB2ZWNsTEFnckFaV0F5WmdmOTFLYytO
ZHpqSHZjSTY2Njdiampzc01OQzE0VnJMaDNrbDEvegptdGVFZi91M2Y5TXkzdkNHTjRUVlZsc3Ri
THZ0dGxxMTMvem1OK0dUbi94azJIenp6Y1BSUng5ZHJtN0liVDgwbnZ2YzU0YWRkdHBKCitmVDBw
ejlkNlQ3NXlVOE9XQVVCUHZPWno0VEhQLzd4NFNFUGVVaDQ4WXRmWEpTRm5nUDhJUDVmL3VWZmlu
aDd5RzJyNGFjaEg0ZFQKVHowMTdMTExMbUc5OWRiVEpQcUtQdjNuZi83bjhJeG5QS05Td2J0cm1i
bjluOWF0L1B6Kzk3OC93RGRrMEIvM3VNZUZONzNwVFlHSgpHS2phZ0h6c1l4OExUM3ZhMHpUUFF4
LzYwUERNWno0emZPRUxYeWlUemZxZFM2dHRQR1VWNWtqT2dTWE9nU0hmcDl5NTZOcHJydzBICkhY
UlFlTXhqSHFQY1BlKzg4OEpXVzIwVjduV3ZlNFZIUC9yUmdkL0EvLzNmLzRXM3Z2V3RPaDh5NSs2
Nzc3NXpEbzBVc2VKZjNmZUMKZVlyVGJveW5NT2ZmZlBQTmdXL05JeDd4Q05XaldYLzk5U3VOcVRS
OVgvcDhMK2FEQjhhV3BUNWZOL1VOUEtnYkMwY2VlYVNPQXpiVgovL00vLzZOckhOWTVOOTU0bzdH
dU5tUU1zVWJBQUF1R0h4NzFxRWVGZDcvNzNYUHdoKzdubkhkc21uYk5hWUJITEQwT3lJQ2ZDb1Fq
CktGdm9INFJrVVJsWFdXV1ZLQ2NBU2xjMkNWRVdoL0dOYjN4alVZN0lBMGFaZE9PLy8vdS9GM2hp
c1NqZTVTNTNpWEo5SDcvKzlhOFgKdUwvNHhTK2l2RnhSRnV1UmZMLzczZS9pODUvL2ZDMFBHbVdR
RFkybVVZOFVjdWtjZGRSUlVUNCtTa09VNU9LclgvM3FLQjhrcmRkZAo3M3JYZU9tbGwwWlo1TVk3
My9uT2l2UGYvLzNmYVRGWjdZY251KzIyV3hTbHpTZ0s4MFgrTDMzcFMwb1Rmbjc3Mjk4dTRtVXkw
WGpaCjhCUnhQRng4OGNVRmZwcVEyOVkwVC9wODVwbG5SdGxzS0czUnFZaXZlTVVyNG4vOHgzL0VE
M3pnQTFHc1MybThMT0xUTExGTG1WMzYKZjZLUTVBYzhwRTZ5UVlvMzNYU1Rwa0NYdnJIeCtKT2Yv
S1RJSVpObGxNMXdYR3V0dGVJMTExeWo4WXhSeGliNHN0a3FjTzJoYml4MQpvZFUybm1RUllzVjU2
QnlZS1Fmc3ZTQ2NGcXBvOFQ0U0w3b2duY2dQL1Q3bHprVmYvdktYNDFPZThoU3Q4eDN1Y0FlZE8r
UXdLTXFoClVuemxLMStwOFhMd0ZNRmpQcFNOU3Z6UWh6NFVaUU9pYVFjZmZIQnJPNy8zdmUvVmZp
L0VlbGdVZ3hkSzZ3RVBlRURjYkxQTjRuLysKNTM5RzBRR0lzdmpVZUJGcmkySllwU2duNS92YTVY
c3hIenlnOHN0aHZtN3JtNmF4OE1jLy9qRisrdE9mMWo1blRQNzJ0Ny9WUC9qVwpCR2VmZlhhOHpX
MXVFOS8xcm5jVmFLeVZlQS9UTmREUS9aejdqdlZ0VjlFWWY1aWFBMVZ6OWRSRUJ5SXc5WmVvM0Rn
eHh4amxaSG1pCmV0Ly8vdmVqV0NjcTRtUlhITzkrOTd2SFgvLzYxMFVjRHl3Q29aZStUQzkvK2Nz
akg0VVVaQ2V2ZU9EeVlxVlF0MmpzUWtkT0ZKUSsKTHphVEF2RC8vdC8vaTB3Z0JuSnpvVGpsRFVo
TysrVktVdlBLeWJ1Uks4S1ZWMTVaMDlJTnlCZS8rRVdOSzI5QWZ2LzczMnM4ZkVpaApTMXZUZk9u
ei8vN3YveGEwMlJnWk1QSEl6VUlVR2RZb055VVdIYnVVMmFYL2l3SktEM3k4YWJlY0ZrMmtzS0Ru
bzAyYTJGc3YwaGhUCnhKMXh4aGxGSEE5c1FoaXZwTkV2S2RTTnBhNjBjc1pUV3E0L093ZG13UUhH
dVAxTlM5L29FQnIwM1lBTS9UNTFtWXM0MEdJdW94M0gKSEhPTU5VVkQ1bHZpV1JDQ1p5Q20xelZl
VEExYlZHdFk5NzNnc0ljeW1MTTQzREpnNFdibHkwMjhSY2VjNzB2WDc4Vjg4R0E1ek5jNQpmVU5I
MW8yRnozLys4em9XNUVhLzZPKzJoOTEzMzEzenNHazJrQnQzamR0MTExMHRTc01oKzduTE85YW5Y
Uk1WOXg5VGNZRDV4ZjZtCklqU0R6SU9MWU4zLy92Y1BzbEJYYzZoeUlpM3REbW9weXNTWDVDVUly
MzN0YThQV1cyK3Q0anlLY091Lzk3em5QZUdFRTA0SUwzM3AKU3pYbXh6LytjVGo4OE1QRG5lNTBw
eUM3K2VMdm5OWGlXUkVBQUNBQVNVUkJWSFBPS2F5c2ZQV3JYMDFKVkQ1M3BTT25VVXBITmtrcQpJ
c1VQTEN2SjZYbEJIMUVrb0N6bTA5WisrYkRvOWIxc2JsVHNyQ0I0NndOK1RJQXkzYW80dzdFUW5L
NXRKVThWeUcyUFJrTWIwU3NECjJTQ3B1V1BFQjY2KyttcU43bEptbC82M01zc2hWNytJOXlGNlpp
SmloZ05mNzNlLysrbFA0d3RseWcyY0dnMUkyd0lTaXJNbTJzYTQKYklNK3RITEdVMXU1bnU0Y1dJ
b2NHUHA5NmpJWHdjODczdkdPd2VZNnhERlRRQVFLZU9JVG42aDRsdmF3aHoxTUh4SEx5b1c2N3dY
ZgpHQUFUOGthWDM3ZTczZTNDZTkvN1hoNkRITEtGWC8zcVYvcmM5bjFScEZ2LzJmeG5jZmJiUW91
Zk5RK1d5M3lkMnpkMVk4SDZvOXcvCkZsOFZ5azFkMkh2dnZWVnMwTkpGa2tRZlRZemI0b2ZxNTY3
dm1KWGZwVjJXeDhPbHpZSEJOeUJ5Q2haWUJMNzk3Vy9YeGFHY09Dc0gKY1F3SDhGTGdwK05CRDNx
US9rNy84ZUtnTDRJZGVRQlpTQmE2YkVCUTZrci81TlFzaUhpTHlqNm1OS3FldTlMaFJRWDRNSFcx
ek5IVwpmalpuZUVKRnZ0TW1pcW82OTQzcjJ0WSs1WWo0bVdaak13VjBLYk5ML3l2eGluOVhYbm1s
YnJTcXhoRG9qTDhVTHJ2c3NpQlgycm94CnFiSStnc3czSUNKYmFsbzV6VnQrN2tOcm12RlVMdDkv
T3dlV0VnZUdmcCs2ekVWdGZMUjVyb3huL2syWVUyWUo2S2loOHdqODhJYy8KMUxEdCs2SklBLzRi
Z2dmTFpiNGVxbSs2TE5RNWhIdkhPOTZoaDdraXRSRDIzMzkvMVFOaENLQnZrZ3RkK3Judk85YWxY
Ym4xZHJ6Rgp6WUYrbnRvYTJvd0NGTjdCdDl0dXV5QmlSS29vTFhLdFFlUmxBK1laK2VBQW5IeTFB
Uk1YZ0gxNWxJejd3bEIwY3NwdmEvL2xsMSt1ClpNeFhSUTdOTGpqejJWYXJWNWN5dS9TLzBTK0hW
MXh4aFVaeFN0Z0VOdUhaeDd0dU04bU5DWnNXYnV6QXRWdW9LdHBEMHFxaTczSE8KZ2VYRWdhSGZw
eTV6VVJ1ZnpaeXd6U09HWC81dDhiTUkrVTc4N0djL0t3eXV0SDFmaHE3REVEeFlMdlAxVUgzVGRY
eUpUcU1hTHlEZgpnUWNlcU44eUROeDBvZE9sbi91K1kxM3FNL1E0ZG5yajVNRGdOeUEwYytPTk45
Yk54ODQ3NzZ3M0NLSzhyRGNicE5scE1KYUIyc0N1CkttM1Iyb1pmbHo0VW5UcjY1ZmltOXR0TDJP
WDZ2a3kvNmZkOHQ1VzZkQ216Uy8vWHRaT2JNT0JIUC9wUkhjcEVQSTdSQU5IalFXQjkKSW8wZmJF
eEVDVlhqMnphR1E5S2FVeEdQY0E0c0V3NWc4WWtUMnFIZnB5NXowV0pnOVM5LytVdXRabXJwc09u
N01zWTJMYWY1ZXI3NwpSdlNHd2dZYmJLQTNaYUpuRTB6Y2Q1YmpZS205WTdQa2xkTnU1c0RnR3hC
UjVOTVN4UkpXRUlzaDRheXp6bEo5alZOT09TVmNkZFZWCmdXdGxBTk9ub3B5dXoray9Gb2pvZXdB
MjZXTEN0KzQ2RWJPRnBtdVMwa21maDZLVDBxeDdibXYvQXgvNFFNM0s3UkNpYUdXb1dpQWIKVGxz
N3dadlB0bHE5dXBUWnBmK05mamswR3QvOTduZDFVMUZPdDkrMjJlTUdqV2RFeGk2NDRBSkxMa0p1
cFJDblFMVEM5RWVLeE5MRAprTFJLcFAybmMyRFpjQUFUMzhpU0QvMCtkWm1MeHM1c3pLRmZkOTEx
YWxiVkZuMXQzNWUwVFRuZml4Ui9Wcy9MWmI3dTBqZE52TGJ2ClZoT09wZTBrSnZ3eDFZdFo2UG1D
dnU5WWwzYk5WMXU4bklYbHdPQWJFRFlMWWltcGFCVkt2M3Z0dFpmK1JrYVJEdzUyenBrY3hReXYK
eXQwYk1wc01jTEd6RHBEMy9xTFV6Z3VHR0pmcEhCaitXOTd5RmxYV1MyWCtxeGJ3ZmVoUVJoVXRL
MXZNNCttamhSYWYwLzVWVjExVgoyeUxtRmkyYmh1aTdtTjN2dEd5VE9XWURsNEp0NE1BMWVlUyti
VTNwOHB5V1gwNHJ0N2xMbVYzNnYxeXUvVjVublhXQ21FaldNWVJ0Ci9oUVlJN2F4czAwcnVqeGk5
bGpSOEo5U0J2TTlzODgrKzB3a1ZmR2dMeTBJVjlGTEM3em9vb3QwazU3RytiTnpZTEZ3QUdYakhC
Q3IKT0VGTXJhdlM5ZER2VTVlNXFLMnUxcDRoRnZJMloxcFlMcnVxREJhMDFBSGZSZ1p0M3hmd3Vu
d3ZqRzVkT0FRUGx1cDhYZVpaVHQrUQp4OGFBaFViSE5wbUkzT1VBMy94dmZ2T2JpbXBpYnZ5d09P
dTdIRnFHV3pVT3kvbTd2bU01N1VKc24rK2Z3ekxqZ0N5S3BnSmgxNFNKCkwzRUdGMlVUTVVGVEhP
UkVFVzJKc2lEVWVQeDhpUHkrNXNObnlIT2U4NXo0dk9jOUw0cDRUcFNkL0VUZVk0ODlWczIrVW81
WUNkRjAKY1JJWUgvemdCMGR4eEJjeHU1b0N2alhBVGYyT2tONkZqdm5qa0kxTnZQNzY2MVB5eFRP
bThpaEhQSmNXY1R6a3RCOS9Hc1kzZkprYwpmL3p4RVhPK1cyNjVaZUZmSkRYREt4WlFpbmo4a29n
VnNDZzNQMUZFM0tMb0t5aXRQZmZjTTJMdUdPalNWczFROGU4YjMvaEdVY2ZVCm40Wk1tbkgxMVZm
WHRCTlBQTEhJMmFYTUx2MWZGRkI2d0p5dW1jL0VKS0JNdXVvN1JSUUJveGd4MFBwaEZ2RzQ0NDdU
bkNMS0VPVjYKV3ZOZyt0S0E5dENYSXI4YlpmTmkwUnJXamFXdXRITEdrMWh6MHpwampsTTJvUlAx
OEIvT2dTRTRZSE1PNGJSUVJXdWpqVGJTTVN5SwoweFAralhqSG1QdnhaeUZLc3ZvT3BuNTNobjZm
dXN4Rklnb2JSUVJUNnkyTHVBbTJtQzhRekhHbjhJTWYvS0I0VisyYmxxWlhQZGQ5Ckw1aTNqSmZp
UkxESVNobDhNL0Y1bFVMTzk2WHI5MkkrZUxEVTV1dTBUK3c1cDIvQXJSc0xjaU9vWTRIdkY5OUlj
WUtwMzNLalh4V2EKSHhseG1oa1pQM0lncDI0TCtEYXluc0lFN21tbm5hWlpoK3puTHU5WVc3dFkv
OWc3SUZaUHE1cnBjVk53d0hoTE9EYVl1a2JseHJHSQpsbHNMM1ZSODhJTWZqT0xkUEQ1ZUhBbGlt
em9GSmw1YjRFRUR2eUJISEhGRWlsSTg0NHREVG5XS1FjckxKYWJuSW40d0RNUXlRM3poCkMxOVk0
S3l4eGhwUnZLZEhKbU9ESERvNGNXS2pZKzNpbzNySUlZY1lDWFgrSnlmbHhRWUtSMzFpUHJnb0o3
ZjkyTDYzVFJnVHpoWmIKYkJIeGI4SkhoN0xML0RyNTVKUFZ3UmRwbEVrZDVOUkNGOVdVS1Y2RW81
eWNGUFhNYVd1QlhIckF6djJHRzI1WThJQ0Z2TndTUkZFWQpqV0krdVlpbi8wUzByc2pkcGN3dS9W
OFVVSHBnWWI5aXhZcWlQamlPRkEvdTZ0Y0QyL2xzNnN4SklWbDV4dm1sbkxyR1BmYllJOHB0CmlM
Wm54eDEzVktkUFJqNW5MT1hTYWh0UFZpYjhZQ0dFTTg1MHpGcTZoODZCYVRsZ2N4cmh0SkRTd3Nm
RE01N3hqT0k5SkkyeExDZWYKZW5BaW9oY1RhYVRid1lEVlkrajNLV2N1WXRQUHZHdHR3YmtxUGpU
d1R5VldISXR2amxoaFZHZXNPSTFsdm1OdXNUek12ZWVlZTY0MQpZMDZJczlpbTc0VnRRRGdjRWZQ
eitxM0VUNFNJZ3VwQkhwdTNGSEsvTDduZmkvbmdnZFYvS2MzWDFxWTBiT3VidHJFQXJlMjMzMTdI
CkZvZWZIQ3FXK3o4dGoyY09JMFdxUVBPSVpFbjhyLy82TDgwanB1WDE0RmIwUTZKSVRzUlo5SFBP
TzJiMWJXb1hhd3RSZ3RjMnNPNXcKR0pZRE5sY1JqZzMrZ1FwSnhYcERLdGNIS1VSZzhLMGdpNmlB
eUpXY2xqZGFGZUs2VVQ0K2FnYzlwVld1RUxTeHZvRHlJdmJTVFptNQpqTmYyZXlnNmRlVjBhYjlz
b0lLY2RLbC9FYlBvaEZLbWJFUUNTdnBtdWpndDZ4cXhlQ0dMN3NJOE1HSkdkc1daNHZFODY3YVd5
K3RUClptNy9WNVZsY2NoSm8wZ3VIdXcxQ3BwbXZ0SncwaEFSUWZud3E3VVF6Q0VqQnRJWGhxU0ZU
RHptRU5HZmNuQU9ETTJCZEg1bGJwZ0cKaHFTVjFtUEk5MmtoNXIrMExUblAzL3JXdDlRa085ODBG
SW94VGdJUEVERmxUaXREbCs4TGVidDhMOHBsemVyM1VwbXZ5L3pwMmpmbAovUGFiZFJQK3RycDhs
MjY0NFlhdzJtcXJHUWtObTlZR0U0aFQvT2p5ampXMWl6SFBtZ2V4ZXZIdVBrV05QR3VaQTdPYXE4
dmw5UGs5CitBYWtUeVU4ejk4NTBMWUIrVHVtUHprSG5BUE9nWHdPRFBraEdwSldmZ3VXSG1aNUE3
TDBXdWd0Y2c3a2NRRG53aUpTRmtUaUlpK0QKWTJWeFlNeHo5ZHdqbHF3bU9aSnp3RG5nSEhBT09B
ZWNBODRCNTRCellEb09jUE1oZXIyKytaaU9qWXN1OStDT0NCY2RCMFpXWWE0aQpBYk5xTmJMcWVY
V2NBODRCNTRCellDQU8vUFNuUDFWS29uY3lFRVVuNHh4WWZCellacHR0Q2hjQ2k2LzJYdU8rSFBB
YmtMNmNHemlmCktKT3BxV0h6RUk5NVdmeGNPRGdIbkFQT0FlZkEwdU9BR0xzSW9qU3NEY05KcWxo
VURHSjljT2sxMUZ2a0hHamhnUGtXYVVIejVDWEcKQWRjQkdVbUg0aUJQTEY1TTFBWjc3dWJFYVNM
QmZ6Z0huQVBPZ1k0Y0dGSVdlRWhhSFp1eFpOREZLbExBMldBS1lnMG9yTGZlZW1tVQpQenNIbkFQ
T2dkNGNHUE5jUGFnSVZ0clEzdHp5ak00QjU0Qnp3RG13YURqZzgvNmk2U3F2cUhQQU9lQWNHQTBI
WEFSck5GM2hGWEVPCk9BZWNBODRCNTRCendEbmdISEFPTEgwTytBWms2ZmV4dDlBNTRCeHdEamdI
bkFQT0FlZUFjOEE1TUJvT1RLMERNcHFXZUVXY0E4NEIKNTRCendEbmdISEFPT0FlY0E4NkIwWFBB
YjBCRzMwVmVRZWVBYzhBNTRCeHdEamdIbkFQT0FlZkEwdUdBYjBDV1RsOTZTNXdEemdIbgpnSFBB
T2VBY2NBNDRCNXdEbytlQWIwQkczMFZlUWVlQWM4QTU0Qnh3RGpnSG5BUE9BZWZBMHVHQWIwQ1dU
bDk2UzV3RHpnSG5nSFBBCk9lQWNjQTQ0QjV3RG8rZUFiMEJHMzBWZVFlZUFjOEE1NEJ4d0RqZ0hu
QVBPQWVmQTB1R0FiMENXVGw5NlM1d0R6Z0huZ0hQQU9lQWMKY0E0NEI1d0RvK2VBYjBCRzMwVmVR
ZWVBYzhBNTRCeHdEamdIbkFQT0FlZkEwdUdBYjBDV1RsOTZTNXdEemdIbmdIUEFPZUFjY0E0NApC
NXdEbytlQWIwQkczMFZlUWVlQWM4QTU0Qnh3RGpnSG5BUE9BZWZBMHVHQWIwQ1dUbDk2UzV3RHpn
SG5nSFBBT2VBY2NBNDRCNXdECm8rZUFiMEJHMzBWZVFlZUFjOEE1NEJ4d0RqZ0huQVBPQWVmQTB1
R0FiMENXVGw5NlM1d0R6Z0huZ0hQQU9lQWNjQTQ0QjV3RG8rZUEKYjBCRzMwVmVRZWVBYzhBNTRC
eHdEamdIbkFQT0FlZkEwdUdBYjBDV1RsOTZTNXdEemdIbmdIUEFPZUFjY0E0NEI1d0RvK2VBYjBC
RwozMFZlUWVlQWM4QTU0Qnh3RGpnSG5BUE9BZWZBMHVIQWJhZHR5ai84d3o5TVM4THpPd2VjQTg0
QjU4QThjaURHT0ZWcFB1OVB4VDdQCjdCeHdEamdINXAwRDA4NzdRMWZZYjBDRzVxalRjdzQ0QjV3
RHpnSG5nSFBBT2VBY2NBNDRCMm81NEJ1UVd0WjRnblBBT2VBY2NBNDQKQjV3RHpnSG5nSFBBT1RB
MEI2WVd3VW9yTkxicm5iUnUvdXdjY0E0NEI1WXpCMllsTnVYei9uSWVWZDUyNTRCellNd2NtTlc4
UDBTYgovUVprQ0M0NkRlZUFjOEE1NEJ4d0RqZ0huQVBPQWVlQWN5Q0xBLytmdmV1QXI2TFkrZ2RD
Q2FIM0RnRXBLazBwS29pSVBoRVVHNHE5Cm9RODd6L1o4bjFpeDkvcnNIVkZRc0lPS0lnajZSQVM3
RkpYZWUwc2dFRUxJZnVkL0xyTnNObnYzenQ2N045d2tjL2lSM1owNWMyYm0Kek96ZU9UT25HQUZF
aTAwR3lYREFjTUJ3d0hEQWNNQnd3SERBY01Cd3dIQWdEQTRZQVNRTUxob2FoZ09HQTRZRGhnT0dB
NFlEaGdPRwpBNFlEaGdOYUhEQUNpQmFiREpMaGdPR0E0WURoZ09HQTRZRGhnT0dBNFlEaFFCZ2NN
QUpJR0Z3ME5Bd0hEQWNNQnd3SERBZWljR0R0CjJyVTBjK2JNS0xrbWVmYnMyWlNkblowUUkvYnMy
VVBUcDArbkJRc1dKRVFuMllYTlhFZzJodzM5a3NJQkk0Q1VsSkV5N1RRY01Cd3cKSEVoQkRyejEx
bHQwOHNrblU4dVdMZTMvdlh2M3B0dHZ2NTN5OHZKU3NNWEYzNlNlUFh2U0VVY2NRZDk4ODAzeFY1
NmlOZjd4eHg4MApiTmd3YXR1MkxYWHUzSm5XcjE4ZlYwdG56SmhCbDE1NktUVnMySkF3NzFKZDBE
TnpJYTVoTm9WS0lRZENkY05iQ3ZsanVtUTRZRGhnCk9HQTQ0TU9CQ3krOGtQQy9TNWN1aEVWbFJr
WUcvZjc3NzFTclZpMmZVbVVycTJQSGpyTEQzNlJKazdMVmNaL2VIbnp3d1hUcnJiZlMKRzIrOElW
Z1ZLc1MzSElGZzE2Wk5HNW8xYXhadDJyU0pVdG50S0RwcTVvTFBwREJaWllvRDVnU2tUQTIzNmF6
aGdPR0E0VUJ5T0lDRgpGYUI1OCtaRytIQ3hlTUtFQ2JSdTNUclo3WGRsbGRsSENCd1F5Sm8xYXlZ
OGlGY0FnY0JSdjM1OVdkaURVS3JIcGZHYkMxQWplK1NSClIwcmRuQ2l0L1NwMUExWE1IVElDU0RF
ejNGUm5PR0E0WURoUUdqbFF1WEpsNlZiRmloVkxZL2NTN2xPOEMreUVLMDV4QXVYTFI1WWgKNmhw
dmN4Vi9VLzBFQlAxVGJYWDNkY1NJRWZUbGwxKzZrMHY4YzJudFY0a2ZtUDNjQVNPQTdPY0JNTlVi
RGhnT0dBNFlEZ1RuUUtydgpkQWZ2MGI0U3UzZnYzdmNRNVM0M056ZEtUdW9uZTlrR3BacmdrTWo4
aW1kc1JvNGNTUTg4OEVEY2c1ZWZuNSt3SVgvY2xmc1VUTFJmClBxUk5WZ25uZ0JGQVN2Z0FtdVli
RGhnT0dBNlVCZzY4K2VhYmRNSUpKOUNKSjU1SUJ4MTBFSjEwMGtuMDZhZWZGdWthN0V0dXV1a20K
NnR1M0x4VVVGTkFkZDl4QkRSbzBvTFBQUHR2R3hRSWV1Njc5Ky9lbmV2WHFVZGV1WGVuNTU1OFhm
QnVKYjFhdVhFa1BQZlFRSFhiWQpZWkw4di8vOWowNDc3VFJxM0xneGRldldqZkFNV0wxNk5kMS8v
LzNVdlh0M2F0ZXVIUTBmUGx4YjFXZmJ0bTAwZXZSb0dqQmdBSTBhCk5Vcm80UThXak5qdGhnRjF2
Mzc5YVB2MjdkS1hUcDA2aVIxTmp4NDlQQTJxbjNubUdUcm1tR1BvdHR0dW96UFBQSk1HRFJwRXI3
LysKdXRBZE4yNGNIWDMwMGRMR3l5Njd6SzRMZGhiZ0JkcmV2bjE3T3gwM3hjRURWZUd6eno0cjR3
dWJvVDU5K3REZGQ5OHRmRUMrbHdDaQpPeWNVZmIrckxpMmQrUld0SHIreFFabG9jK0hsbDErV2VR
Q2g1OGNmZjVUNWlqbTdZY09HYUZYWjZaaERHSE1ZOU1QeHc2R0hIa3FQClBmYVluYTl1d2g1bm5Y
Y3NrWDZwZHB0cktlWUFUL2lFZ0ZsanFmOEpFVEtGRFFjTUJ3d0hEQWVTeGdIMW5jWTFVZkNpZGNr
bGw4aHYKQWR1Q0JDTFBDeG1MRjlMV2dRY2VhQzFac2tUSzhnNnl4WXRVb1RkMDZGQ2IzaXV2dkdL
eGNDRHBiTVJzL2Z2Zi83WllZTEJZN2N1cQpXYk9teFl0NmEvUG16Ull2eUN4ZTlGdXNlMjd0MkxI
RE91Kzg4NlFNTC9adFd0T21UYk9PUC81NFNVOVBUN2Q0TVd3TkdUTEVZaUhCCnV2NzY2eVdkQlJz
TGVMemd0MWhRc1Y1OTlWV0xGL0dTOStTVFQ5cTBvdDM4K2VlZlFyZGF0V3BTNXJYWFhyTlIyWHVZ
eFFiVWt0NnEKVlN2cnVPT09zNjY1NWhxTGJRQXNYbnhLT3F1MVdXeGNiWmQ1KysyM3JUcDE2bGpn
RDRBRk1PSFRYWGZkWmVQdzRsUEtzc0JqcCtIbQo1NTkvbG5UbitCY0hEMUEzMm9uNXdRS2N0V1hM
RmlUSjJJRG5haTZ0V2JORzB2RW55SnhRaGM0Ly8zeWhCUjQ1SVFndG5mbmxwTzI4Cmp6VTJmbk5o
MTY1ZDF0aXhZNlg5bUpNNU9UbnlIM3p6Z3lsVHBsaHBhV25XbzQ4K2FxTmgzb09uVGo2RVBjNjY3
MWk4L2JJN1kyNFMKNW9CNnY1enZmY0pFUXlLUThDOVJLbmN1SkI0Wk1vWURoZ09HQXlXZUEyRitx
NzFveFN1QVlQRUVlcE1tVFNyRVl5eXkrU1JFOGxpTgp3ODdqSFY5Snc4SUxpemJBaWhVckxDendB
UC82MTc5RWtKQ0h2WDk0OTFmS29CNHN4aFJBT0dGOWZNa2JNMmFNU3BZckZ2REF4NElRCmVBclls
YTZrczh0WGxSVHpPbmp3WUNuakZFQlE2S3V2dnBKMENCcHo1c3l4NldEaHB1cm5reDQ3bmQwZEMw
L3NCTDZaUDMrK3hkNmsKN0tUUFAvOWNhTG9Ga0owN2QwbzYrdVNFNHVBQmhDM1V5N3Y3enFwRllF
VGZrY2Z4TWV5OG9ITUNCYU1KSUVGcHhacGZkaU5kTnpwagpneUxSNXNMSEgzOHNmT0FUUUJmbDZJ
OVhYbm1sbElIUXJJQlBjQ1R0OHNzdlYwbHlEWE9jZzd4ajhmU3JVTVBOUTBJY3dMdWwvaWRFCktB
bUZqUW9XajR3Qnd3SERBY01CdzRIaTV3QXZpb2gzNzhVb0YycEZUb0JSdTFJanV1V1dXK3dzUGky
USs3cDE2eEl2NXVRZW5wVDQKQklXV0wxOU9MN3p3QWxXdFdwVjRCOWorUDNYcVZOc3oxM2ZmZldm
VHFsS2xDdkhKaVR4RDVjc0pVSUVDSEh2c3NRUThCUjA2ZEpCYgpxR1hwUXZYcTFRWFZyV2FFUGdE
Z1JsYlJ4WE9sU3BYb2lTZWV3QzJ4d0VSWldWbHluNW1aU1N4b2lmdGFlQllDSUk2R1UvMU1Fdm1Q
CnV5NzFySzRLTDlrOGdLb08xTVdnK2dVVk5pZXdFRWt0V3JTUUpOV3VlT2FFazZielBoNWFmdlBM
U2R0OXJ6czIwZWFDb3FmNG9KNzkKcm54U1IvLzNmLzhuYW9NS3IwYU5HbktMNEk1T0NHdWNnNzVq
cWcxQitxWEttR3ZwNW9BUlFJcDVmRTBVVkgrR200aTQvdnd4dVlZRApwWWtEYytmT0pWWTNrVVdv
bDJjZzJHTUFXRDFIM05qaVhna0RFQnpjbnBPZ1B3L2JDZ2dnTUFSMi91ZWRjR0lWRzlHWEI1MVl3
R3BUCm5pZ3F2Z25hblV5QUhRenNWd0NMRmkyU0s1OHlFUmJ0RHo3NG9Dem0rZFJJMGhISUx4a1FC
Zy8rL3Z0dkVRd1BPT0FBenlhaVAwNkkKWjA0NHl6dnY0NkhsTjcrY3ROMzNZWTFOa0lVNmhMcUhI
MzZZSU5Rc1hicVU3cnp6VHJFRFFkdGdiNklMUWNZNTNuY3NTTDkwMjIzdwpTallING92OEU2WFBp
SWdMSXpnRW8xSUFuL0F3RnNTTGdWMmRzZzZJZ29vUEJYYTFXRSs1ckxORCtvLzVBbU0xR05NdFhM
aVFGaXhZClFHb1hKd2lERUJFWEM0eng0OGRMUUNyTVIrd09waXFZdVpDcUkyUGFWVndjVUF0cnR5
Q2g2c2Z1T0JhbzJPMEhMcUpkK3dFV3V3REUKSklHaGN5S2czQW03RjA3dTUwVHFpRlVXSnpzYk4y
NjBqZWRoWUl4bzZ1ZWVleTc5OXR0dllsak9kaVBFOWlpazJodUxacEI4UmRQZApaL2V6SDgyLy92
cExzbVA5L2l1YVljNkpNR241OVJGNVlZMk40a09zK2xRKzIwMko4d0tVdStlZWUrUjlnZE9ESUhT
Q2pITzg3MWlRCjlxaSttV3ZwNWtDb0p5RDQ0Q1BJRG5hSWNFeUhEeWU4bU54MzMzMUcrTmc3ai9E
RHlFYUVFb0NwZEU4dC9kNnBpTGhLcGNGckoxU0gKR2lMaVlqZW9VYU5HZ3A3cUh6d3pGM1JHMWVD
VVJnN0E0eE4yYUxGQkJXQWJEaGdtRk9rcUJCTTJFSmQwRmJDdUNKSWpRYW0zWU9lNwpOTURXclZ1
bEcwN1BWVWNlZWFRSUgvLzg1ei9sQk9pNTU1NFRUMWlwMmwrY1FnR1dMVnVtMWNRdzUwU1l0SFFh
WDl4anczWkRkUGpoCmg4dEpHVGJjbFBxWVRsdmp4U2x0NzFpOGZERGxFdWRBcUFLSWFnNFdWZ0M4
L09xNFd1V1Y5YXRmRk5TeXloc0lIQ1lpYnVIUkw2MlIKWTB0cnZ3cVBubm1LeFFIMmJDV2JWUGl0
d0VZQkcxMTd1cHlkTjIrZXFHamhkMFRaQ3ZqUlZndDF1S1dOcG9JQ3Q3M0tmc0tQMXY3TwpRNnlN
VmF0V3ljNjZXdlN4b2J3MEM1dFk3SkdMSmsrZUxMK3huMzMybVp3ZU85dWNLbjJFS2hrQUo5MFFO
S09CMmpBS2MwNkVTU3RhCnUxVjZrTEZSWmJ5dWlnOWVlZTYwSVVPR2lLdGV1SVV1TG9qM0hRdlNy
K0xxaTZsbi8zSWdLUUlJakFjQjZsaHYvM1l4OVdxUGQ0Yy8KOVhvU2JvdVVHb2E2eGt0ZDhiY2tm
UEJVVzkxOUxhMlJZMHRydjl6alZ4YWZZV3lzQSt3Vmg3Ny8vbnN4dW9ZZHh4VlhYQ0hGRUt2QwpE
VkNyQk54ODg4M3VMTThURXhpeVo3S2hOdUluUURVSmdvMFQxR204Mis3QWlhUHVWWC9DV01nalhn
bEFYVlVkNnVwVkJ4YTBhQU5pClpTaUFZTVV1VU5XanhBUDV6My8rSTg5UTdRV29UVCtvc3pxQnZX
WEpJMDZhZE8xWHd1REJJWWNjUWpqbFJoOFJTOFVKR0o5Tm16WkoKa2hJWTQ1MFRYaWRvOGRKQ2c3
em9PZHZ1dnRjWkc1UlJjMEJkRlIwbFpFSnpSQWN3aHIvODhvdWdLalUzUEtnME5YWTZ0QlN1MXp4
MApsdy82anVuMEMycUZQLzMwazdzcTgxemFPY0F2V1VMQS9Dbmk0aXRlZDR6eE5vUmY1SGlMcG53
NTNnV0wyVWE0Vnl5cEFIZVRDaEFICkFQT0pWYkZVVWx6WGFPNFk0eUxHaFJLWlgvR01EUy9FTEJh
ZUxQYStFMWVUK2NmRVlxODVjWlZOWnFGRSs1WE10cFVGMmw3ZjZuajcKN1VXclY2OWU4djZ5NGJU
RmkwcWJOTjRmWGx4S1BBdTJCUlMzdDg3WUhxeG1aTEhxaUtURExhMENsSU5MVXRhdHQ1emZpYSsv
L2xycQpZU0hDV3JkdW5VSzNyKys4ODQ2OFAyZ2plNWF5ZUhmWTRzQ0ZGdHVEV1J5TVQxeS9LbVI4
YTNqRFEranhJazRseTFYRkFzSDN4QWxzCm95YjRjQitMZnVrQStvSDJjS1RyUXVpOFdKUjA1TEg5
cEoySE9samxUT0tYMklsOHc4SDdMQlk0bkVrV0I2QVRYTlVXdlBzcTdnamkKcExBSE1JdFBmU3hX
MmJMWWhrYnF1K0dHRzhSOUx3Z1ZCdy9nWXBrM1c2UnV1SEJGdjltR1JXS0RaR1JrU0RyYzJMNy8v
dnZTdDZCegpBb1c2ZE9raWRKd3hVWkFlbEZhcytRV2FYcUF6TmlnWGJTNncycnEwSC94Z0FkM2lJ
SmdXNXJJZnFEZ3lIRFJUNWc4TGVPS0NHcnhtClkzb0xMbkMvK09JTElSSG1PQWQ1eDJMMTY0TVBQ
cEIrNHgxZ0QzWiszVFY1Y1hBQWZGWC80eWllMUNLRkhZTEhVWlhxR0s0S0VoVkEKNFBNZFBzdzVL
cTRFcHhvNGNLREZxa3VLdkgzRkJ3d2ZXTHo0TExsYkhBWFVxbCsvdm5YV1dXZlpPRmpBNDBjUHZ0
elo1YUg4bUxITwpyT0RiU0h3RFAvTHNXY1JpMTR1Uy9PMjMzMXFubm5xcXhmWUVFaFFLendBK0Vy
ZDRGODNDQzQ4Zk5ONlowMTZnWm1kblMzQWcvQWh5ClZGYWhoejlZTU9JakFiNGhHQlYrU05BWFBq
NldqemFDTi8zd3d3ODJ2cnI1NzMvL2E4RkgvSTAzM2lpK3hSR1FTL21aaDM5ODhBVnQKZFA3WTh5
Nk44QUxwQ0tqbGhPTGdnYXFQSThiSytHS3NqanJxS0FzL0d1eUtVbDRVWjBBcWhhODdKNEFmU3dE
UnBhVXp2MVQ3M0ZlLwpzUUZ1dExudzBrc3YyWXNuM2ptUytZb0YyUHIxNjkxVkZIbkdITUtZODQ2
eXhFTGduY2RDQWFwVWdiREhXZWNkUzZSZnF0M21taGdICnZMN1Y4VkowMGtLTUIzeWpuV2xZMUdQ
K1lpRU1ZZHFaaDN1MTBGVDFJemdkdmdXOFkyMWRkOTExRm9UVjAwOC8zYnI0NG9zbElKdkMKUTVB
OUNCV0tIb1NlcDU1NlNtWGJWM3ovK0NUQXhzT0NqTjJWV3M0TkFYYkhhNTF5eWlrMkRuNXZFRU1E
N3laK0MxUjU5cWhsWFh2dAp0U0pVc2FxVGZITlYvZmlOVUw4TmR1V09Hd1QvdzI4RUcyQkxQYXhx
YWozKytPUDJCb0VTUUNDQVhYMzExUlk3SnBGdk9hdWJpYURoCjN2eEFmWHpDWTUxeHhobldpeSsr
YUYxMTFWVlNCckVmbklEZlMveCtvSjJvRTIzQTd3enFBUTM4L3ZCT3UxVWNQRkR0d3NLK1pjdVcK
TnI4UlNITGl4SWtTMXdTL1kvanRVa0VLVVVaM1RpQzJ5RVVYWFdUVGJkcTBxVFZpeEFpYngwRm82
YzR2MVNmbk5kYll4Sm9Mb0hYQgpCUmRJUHlCY1EwaDBqNyt6UHR4RHVGVGozS2xUSnd1L095akQ3
cXZsdldQN0VJdFB3cEl5empydm1HcXZYNy80bEZNQ2lXS3VzbU1XClZjUmNRK0tBK2xiaG1tcVFj
SXU4T2hldkFJSVBwSW1JYXlMaU9nV1FJSE5DdlZ6UkJKQWd0RXhFWEwzb3p5WWlycHAxcVgvMSts
YkgKMitvd2FUbmJnSk1UbklKZ3NZcWQ2MFFBQ3pFRUo4UUNGVUhZVWhHVUFBS2hDb0FOTG5aRlht
U0RUTFVkd1JrQjRBMDJTSnpCK3hTTwo4N3A0OGVKQ3RDQmM3VzlBVUVqbktUZXJ5L2syS2N3NUVT
WXRkNk9Eam8yN3ZIcGVzbVJKNExudmRSSllIR01kNUIzejZ4ZkdCZTk4CnZLZitpbmZtV3BRRHlm
cFdGNjBwZUVwS0NTQmhSeXdORXEwVFAxRHFpTmhFeENVcldUekFiaWxlQ0N3S25NQysreTBURVRm
Q2tYZ2kKeDVxSXVNN1paTzY5T0JEbUQxR1l0THphV2xiUzNBSklXZW0zNmFmaGdKc0R0OTU2cThV
dTlOM0o1amxCRHFUeXR6b3BSdWpjNGNBUQpkc1RTb05FNnc0b1NHcXZqeWlETGJTQnRJdUthaUxq
dXVlT2VJKzU4NTdPSmlPdmtocmszSERBY01Cd3dIQ2dwSElCekNGWUxKN1lECktpbE5OdTBNZ1FN
cEk0Q0VIYkUwM21pZFhqd05FaVhVcTN5aWFTWWliZ3ZpMDZraWJQU0trbHdFYVc5QzJQTXJXajFJ
WnhYRVVLSVYKQnhGQVRFUmN2eEV4ZVlZRHFja0JWcUdTdDZ1UktRQUFJQUJKUkVGVWhyRzZUR28y
MExUS2NLQVlPTUNxOXdTWHdnYktGZ2VLcnVyMgpVLy9EamxnYWI3Uk9yKzRyZDhMdUJhSDcyYXRz
V0drbUltNVJUZ2FKa2h6Mi9DcmFtbjBwSmlMdVBsNTQzUlhuZStOVnYwa3pIRWdGCkRtQ1RqSTJH
cFNtSWo4RWVzb2gxNEFrQlZRMFlEcFFsRHFqWUltV3B6NmF2UlB2OUJNUkV4TldiaG14MEtJak9G
N1c0bzY3cXRUUTYKbG9tSU95ZzZjeExNTVJGeEUyU2dLVzQ0VU13Y1FMd2o5dEFvTVZFUUZ3WHhG
YnhPZW91NVdhWTZ3d0hEQWNPQll1SEFmajhCUVVSYwpSS1oxUnl4MTd3SWxFaEgzdHR0dUkyVjc0
ZVFxNm1YM3I2SXU0MHhQdGZ0b0VYSFBPKzg4VWhGeDJmTVRzZHRLVWhGeDJhV3QzUTJkCjRFSTJj
aEp2M0JGeG16ZHY3bG1iMmlFUGMwNkVTY3V6MFk1RUJCRFRIUnRIc1NLM2lnOUZNandTOW5kRTND
RHZXSkIrZVhUVkpCa08KbEFvT3NDdjNwUGRqVFBmdVNhL0RWSkI4RHRRYzlXUHlLekUxR0E0VU13
ZVNjZ0xDN2s2MXVtRWk0aFpsazVld1lDTGlFbkZjZ0NMTQppaFlsbVoxR0ZNRTFFWEdMc01RelFi
MjdYdlBRWGNCRXhIVnp4RHdiRGhnT0dBNFlEaGdPR0E3b2NDQXBBZ2o3SHBlNllXREhjUUxzCmRt
QmhDSlVyNkw1eW9DQ0M0UkVINWJQekgzcm9JZUpBU2NUQjhtank1TWwyT3NwOTlORkhCTjE2RHJw
bnAzTzBXTGxuLzlMRWdkcnMKZE56QWJvT0RTUkYyVzluMUsyRzM2WlpiYmlHT0lrc2NnSTg0QUJP
eDJ6ZTdETWVlSUE1OEpNL3NvOXhPeHczeUFEQmtkb0xxSjlTagowQzhkWUovbmd1WnVyeXJMMFhq
cHZmZmVVNC9FUVlUa2hBZzc2azRQRVZnb2dsOU9RRHRoSzZKT2o5aTNQTUdBSHUza1NNQTBiZG8w
Ck9mSi8rdW1uaVNQaVNsR2NBaWsrSnBzSEhGeUpPR2lZcUJsd1lEcmk0RjcwNjYrL0VnZlJJZzZv
UlRrNU9kSW1Ea1JHSEIxVjdvUE8KQ1JSUzR3VGVPU0VvTGNVWHIvbmxwT3UrMXhrYmxJazJGK0FO
Qk1CKy9nbENGdWJxdSsrK0sybGVmemhRR25IQUtjbkNPR1ArUUovOAprMDgrRVY0dlc3Wk03ci84
OGt2QkNXdWNnNzVqc2ZyMTRZY2ZFZ2NrSXc0R1NoeGt6YXVySnEwRWNBQ3FsdkJxcUF2SnhOZWhy
WU9qCitxS0xHd3N2Vm42UStuUnBsYTlVUUducEJZcDA0R3VROGpxNE9qaG9wQTVlcXVIb3R0czVD
RHA5Y09LYmU4T0JrczZCVUZXdzNuNzcKYlZrb1FaOFZ3SkZXaVNPVEV4WklFQ0t3d0hUdlRuUEVj
NXVIMktWbXYrakVrWnhwOE9EQjRoV0JvemtUUjNVVk9saFljVVJad2VkbwpzdmF1T0hackJ3MGFS
QnhKbDdCNFZYRE9PZWNROUd4QkQ0dFMvSWVPTFlTWXUrKysyMWE5bWo1OU9qM3l5Q1BFUVhXa0tF
Y2dKWTRoClFyMTc5eWFPbWs0Y09WdlNjV0lEK2hDZU9ESTVjZHdTU2QrMWF4ZHhwRS9pcU96RVVi
MGx6ZjBIL1JvM2Jwd3RXRDM3N0xQRWNTOEkKS21nMWF0U3cwU0dBUVZCQXZlRGRyRm16Nk54eno2
V0hIMzdZeHNGTjdkcTFaYUVKNGFKZnYzNnlpSWVhR2xTd2xOY3UwSDNublhkRQo4QUsvY0gvaGhS
Zks0ZzVDR0VkdUpmQVhhbHpGd1FPMEcyMmROR21TZUlyaWFPaUUveHdSbDlBKzhCU0NFYnhiL2VN
Zi93QTZCWmtUClAvMzBrOUNEUUFQZ1lJSXkzekRlNEVVUVdqcnpTeXJ4K0JOcmJHTE5CYWltWVQ3
aGZjSjhncUNHOXZnQmhHM01XWTYyUy9mZWV5OXgKSkZ3UjVDRWt2UHJxcXlLTWp4NDlPdlJ4MW4z
SDBQWlkvZUtJemJKeEFBRnUxS2hSeExGTi9McHM4bEtJQS9oMjRuMkRzTjY0Y1dQNQoxc01SQ041
bGZKdmRrRXg4SGRvNk9Lck51cml4OEdMbEI2bFBseFp4RVBvMmd6WlN0U2E3YU9mR2lsU2hTZ0ZW
YjVsTEs2ZlY0disxClZaWFJyMEhLNitEcTRLQTFPbmlwaHFQYmJpZTNkZnJneERmM2hnT2xpQVBs
V0NBb3FxOFNvSU5PZmU0RVNSV3FGU2NuV0toaDE3eHIKMTY2eWVDeUVFT0FCN2NLUElVNHBjQ3FB
bUIrcEJqZ0pRRC9SUGhnVTR4UUdQTURpSEVLVUd5RDBRSURKeXNxaXBVdVhVcU5HamV4VApEVGN1
bnJFd2FObXlwVTFyMjdadG5uWXhYbVdUbGNaUmY2VTlXTEFBSUxEV3ExY3ZhblZoem9rd2Fia2JI
SFJzM09YVk04WVZ3Z3dFCkoxM0F5VnFEQmcwS29SZkhXQWQ1eC96NmhYR0JBQW0vOEZPbVRDblVE
L09RR0FmQy9GWTdhZUcwWXdpNzBCdzJiSmdJelBqV3BxZW4KeTRueXpwMDdDZTg1TnBRVUlDMVor
RHEwQnc0Y3FGMi9EajMwTFJZZU5vbzR5RnBNSHNXaUExN3F0MzhuTGZ1cUtjMGZXNTgyL0ZaZApC
STg5dThwUnBScDdxRUxsQXFyU1lEZXRtQkpkQ0Vsam5DUHVXcXBWWGdkMzlYYzF0ZWlGUlV1bnZy
Qnd3RWVkZGp2NUhRVGYySUNvCnI0ZTVCdVhBU1IzMnJSL0RYS01IYlljWC9yNldlZVh1eHpUc3lo
OTMzSEhpR1NUSUFzeXJ5Zml4UFBEQUE2azdHK1Nsb3ZEaDFXYnMKQnNOdzJrdjRBRDZFRHdCNDA2
VkxGMS9oQTNnNFdYSFM4akxLQjE1eFF0T21UV1czVk5YcEozd0FKOHc1RVNZdDFYNTFEVG8ycXB6
NwptcG1aR1VqNFFIbTM4SUcwNGhqcklPK1lYNzh3TGxDL1JHQkZBeVdEQThPSEQ1Y1R0MTY5ZXNr
Skp6WTdKazZjS0tldFBYdjJGQUhFCjJaTms0dXZRMXNGUjdkWEZqWVgzOHNzdmEvRW9GaDBJSURv
NGtmWVBwMFVmMWFPTmYxU2pZNStiTDZjZ1RZN01wbDczTEtHTnM2dFIKUnYwODFVM1A2eUgvV3FW
ZFhnZFhCd2NOMGNGTE5SemRkanNacmRNSEo3NjVOeHdvYlJ4SVdRR2t0REhhOU1kd3dIQWdOZ2RN
Uk56WQpQRW8xakpreloxS2ZQbjFFdFJJZSs2QldpMU11N05RRGxFQ3UycDFNZkIzYU9qaEIyeHFM
NXZMbHk3VjRGSXNPZUttREUybi9URnIvClN6VnFkRVEybGE5bzBab1pOYWxhNDEyRVhYL0FudDMr
UC85MU8rWm9sOWZCMWNGQnUzVHdVZzFIdDkzQVU2RFRCNFZycm9ZRHBaRUQKL2wrZzB0ampGTzJU
aVlpYm9nTmptbFdzSERBUmNZdVYzYUZVaG1OOXFNcE9uVHBWVHExQkZPcHpFRXJnMkVNNXZGQ1ZK
Uk5maDdZTwpUdEMyeHFJSjIwTWRIc1dpQTE3cTRFVGFiNUZWVUk0YWR0OUdhMmRGN0F3YkhyYU4x
djlhblNwVno2ZmNUYkZNUUlPVTE4SFZ3VUhMCmRmQlNEVWUzM1pHUmlmelY2WU1UMzl3YkRwUXVE
cVJ4SEl5N0V1a1NqTGtWSkVoS2tTbHpWM2dGZzRjbWVHM0t6czRXUTNzWUQ4T2oKbFFIRGdiTEVn
VmhxZUdXSkYySDNOY3h2dFpNV1RqcndyWUthSnh5R2JOcTBTVHk4WWJjZTN6WTR2bkFHMklPemlH
VGg2OUNHZHpuZAorblhvb1creDhLQUcyYUpGaTVnOGlrVUh2TlJ2LzArMDhwdEZsTE9xRWpYcmsw
V1ZhdVpUZXAxOEt0aGRqdXAyeUtFbG45Y2xhMCs1CnFOT3M3c0U3YU1mNlNscmxkWERydE4rcFJT
OHNXanIxaFlVRFB1cTAyOG52SVBqcGd5NlBPazRtdzNEQWp3Tmpuay9kTlhyS0dxSDcKTWJTMDVj
RnpFVlFYbkFBQkJEWXJCZ3dIREFjTUI4TGdnTk53SEx2b2lZQ1RGazV2NGJGczdOaXhjdUtCYnhk
c2VlQ1ZEODR4Y08rRQpkZXZXSlExZmg3WU9qbXF2TG00c1BIaDIwK0ZSTERyZ3BRNU9wUDNyYU1X
MEEybjY4RlppZUY2UVg0N3lzaXRRalZZNytmU2pvdHlyCmZucGQwK3ZzcGg2M0x0Y3FyNE9yZzRO
MjZPQ2xHbzV1dTUxODF1bUR3amRHNklvVDVocVVBNmxzaEc0RWtLQ2phZkFOQnd3SERBZEsKSUFl
Y1FrT1lBZ2hvTFZxMGlGNTQ0UVdDZzRIV3JWdkxTUzdzSHVERjc2U1RUaXJDcldUaTY5RFd3VkdO
MXNXTmhSY3JQMGg5dXJURwpuOWFKMmc3ZVFEbXJLOUgyVlpXcFl0VTlsTkVvajdJV3A3TXRTQzFW
WmRScnRXYTd0TXZyNE9yZ29ERTZlS21Hbzl0dUo3TjErZ0I4Ckk0QTR1V2J1ZzNEQUNDQkJ1R1Z3
RFFjTUJ3d0hEQWRDNTBBeUJSRFYyUHo4ZkZxeFlvWFlmV1JrWktqa3FOZGs0dXZRMXNGUmpkZkYK
allVWEt6OUlmYkZvamRsN2lsNHV6YUtNaG5tVXU3a2k3Y2tOYnZvWnBMd09yZzRPK0tDRGwybzR1
dTFXNDZ5RGJ3UVFKN2ZNZlJBTwpHQUVrQ0xjTXJ1R0E0WURoZ09GQTZCd29EZ0VrOUVZYmdnbHhR
QWtnQ1JFeGhmYzdCNHdBc3QrSG9NUTJJSlVGa09CYklTVjJHRXpECkRRY01Cd3dIREFjTUJ3d0hE
QWNNQnd3SERBZjJOd2VNQUxLL1I4RFViemhnT0dBNFlEaGdPR0E0WURoZ09HQTRVSVk0WUFTUU1q
VFkKcHF1R0E0WURoZ09HQTRZRGhnT0dBNFlEaGdQN213TkdBTm5mSTJEcU54d3dIREFjTUJ3d0hE
QWNNQnd3SERBY0tFTWNNQUpJR1JwcwowMVhEQWNNQnd3SERBY01Cd3dIREFjTUJ3NEg5ellHa0Np
QzV1Ym0wWThjTzdUNG1FMStIdGc2TzZvd3ViaXk4V1BsQjZndVRscXJYCjY2cGJEOHJxNE9yZ2hF
bExwNzZ3Y0hUYkRUd0ZPblVyWEhNMUhEQWNNQnd3SERBY01Cd3dIQ2hwSEtnUWRvTUxDZ3JvbFZk
ZW9TVkwKbGxEanhvMHBKeWVIL3Y3N2J6cnR0Tk5vMEtCQlJhcExKcjRPYlIwYzFXaGQzRmg0c2ZL
RDFCY21MVld2MTFXM0hwVFZ3ZFhCQ1pPVwpUbjFoNGVpMkczZ0tkT3BXdU9acU9HQTRZRGhRa2po
UXM4MU95bGxUaWZKejB1eG1wOWZkVFZVYjU5R21PVlh0dEhodndxUVZxdzNGCldWZXN0c1NUdjJm
UEh2cjc5eCtvWnQwRzFMUmwyMElrdG14WVMrdlhMS1AyblE4dmxGNWNEMXMzcmFkYTNDNGRTT1Yr
NkxUZjRIQ2MKSDQ1aWF5WENDS2R2ZVp4MkRCa3loSVlORzBaSEhYV1VDQjdwNmVtMFpjc1cycmx6
SjYxYXRZb0dEeDVzVjRlMFpPSHIwQjQ0Y0tCMgovVHIwMExkWWVJc1hMNmJ4NDhmSDVGRXNPdUNs
YnZ0MWFEbkh4UjZndlRkQnl1dmdodGx1SFZyRmlhTXpCeEo5RDl6alk1NE5CM1E0CjRQeFdKL2pa
cHpCcDZiVGQ0TVRIZ2YwWkI2UldteDNVNXZTTjFMaG5ObFZ2dm92R245YUJ0cTlNdHp0eXl2alpW
SzFKSGsyK3ZCMnQKLzZXNm5SN1BUWmkwWXRWZm5IV3B0b1FSQitUUDMyYlFsKysvUWpPL0hrL2Jz
amJUdng4YVJjZWNmSUdxUXE2WDltdEY2MWN2b3dkSApUcVZPUFk0dWxKZnNoOTE1dXdqMVB6bDJG
dFZyMUN4cWRhbmVqNmdOMzA4WlpTWU95UERodytteXl5NmpYcjE2VWI5Ky9lUVVaT0xFCmlYVGho
UmRTejU0OVJRQnhqa0V5OFhWbzYrQ285dXJpeHNKNytlV1h0WGdVaXc0V3NUbzRhTDh1bnVxcit4
cWt2QTZ1RG81dXUzVm8KRlNlT2JydWRQTlpwbnhQZjNCc09HQTRZRHFRNkI3S1dWS0c1cnplaUt2
VjNTMU90UGVVS05UbHJVUlhhbFpWR096ZFVMSlFlejBPWQp0R0xWWDV4MXhXcExrUHdEdXh4Qmw5
ejRNTld1MTJodnNjTGpnY1NXYlR0U3RacTFxVTZESmtGSWg0TDd6ZWZ2MHBhTmErblRkNTd6CnBa
ZnEvZkJ0dk1rc3hJRlFiVUJtenB4SmZmcjBvVW1USmxGZVhoNE5HRENBbGk1ZEtqdjFxTFZ5NWNx
RktrOG12ZzV0SFJ6VllGM2MKV0hqTGx5L1g0bEVzT3VDbERnN2FyNHVuK3VxK0JpbXZnNnVEbzl0
dUhWckZpYVBiYmllUGRkcm54RGYzaGdPR0E2bkxBYWlHUFBMSQpJd2szTUN3NkNUY2tUZ0lRT0ha
dXJFUTcxa1VFakFLWEFQTE5EVzNvdytPNzBMWVYrMDVGNHF5S3dxUVZxdzNGV1Zlc3RnVEp4Nmxs
CnpUcjFSY2lJbEN1cS9ETGkrUWswK3R0MVJWU3pnSS81K1A1cmljL3JhRzMrZFBRemt2WEZleTlU
N3M3b3RzT0o5aU5hL1NhOStEa1EKcWdDQ1kvMjB0RFNhT25VcUhYZmNjZEtiS1ZPbXlJSWJhbGdO
R3pZczFNTms0dXZRMXNGUkRkYkZqWVZYb1VJRkxSN0ZvZ05lNnVDZwovYnA0cXEvdWE1RHlPcmc2
T0xydDFxRlZuRGk2N1hieVdLZDlUbnh6YnpoZ09KQzZIQmd4WWdSOStlV1hDVGN3TERvSk55UkJB
cGExCmQ2ZTlvQ2doOTZsSVVRejlsREJweGFxMU9PdUsxWmFnK1dtOEJvbEEwUk1RcE8vTDM0dTI5
ekw2MlJIMHkvVEU1M1ZocXBFbnFGWGwKN2NxbEdyWHEwdmFzTGZUMStGRmVhSVhTOXJVeldEOEtF
VEVQKzVVRGFYY3hKTktDdSsrKzJ5NE9YZnRtelpwUnExYXRhTUtFQ2JScAoweWJhc0dHRG5Iejgr
T09Qb29xRkJiaUNuMzc2S1duNE9yUi8rKzAzN2ZwMTZLRnZzZkNxVjY5T0xWcTBpTW1qV0hTZzFx
YmJmaDFhCnpuRlI0Nk91UWNycjRJYlpiaDFheFltak13Y3dkazUrNi9ETWlhL0d4VndOQjRKd3dQ
bXRUdkN6VDdGb3dhbUMwMDRrU0R0MWNTRzQKeDZvREh1WENmbmY4K2paeTVFaTY2YWFiNVB0Kzhj
VVg2M2FsQ0Y1WWRHYXp5dTgrd0k2MzkySnRINDczWGJrMGl5cGtGRkRCYnIwOQp5L0lWQ3NncWlO
VFY3cXdObEY0cm4vNTh1eEhsNzlobmhPNWRVL1RVY2hXNC9YdHBSc2VLbmxPK0VyZkpkUXJqaVYw
dWZqNTUwaU05CmV1WEtNNTRTMWx5RTBnZGQ3a3FKLy9IN3lSL1Mwdm16cWRkeHAxT3I5cDIxQ0Uz
K2FDUzk5dWhOMUxCWksvckhxUmRybFFtQ05QS0oKNFhSVS83T29FZE9mOSt0MFdyTjhJUTA4OXhy
Zjl6dWVmcmpiaEc4SXdQa2QwZm11dU9sNFBlL0p6NmZjSGR1cFlxWENtajlldU1sTQpHL1A4dmpW
Nm90LzlzTnNacWhINjJyVnI2Y29ycjZTeFk4ZUs0WG5GaWhXcFRwMDZORy9lUEdyVXFKSGNPenV3
YnQyNnBPSHIwTmJCClVlM1Z4WTJGdDN2M2JxMCt4NklEdnVyZ29QMjZlS3F2N211UThqcTRPamk2
N2RhaFZadzR1dTEyOGxpbmZVNThjMjg0RUE4SDNEK3kKOGRCUVphTFJldnZ0dHdsMmYrWExseGYx
MjQ0ZE85SkZGMTBrTm9DcXJMcSsrZWFiOU82Nzc4cVBQN3dtSG5EQUFmSnRQT21ra3hTSwpxUExp
RlAyRER6NlFEUmNJNjZqanRkZGVJMnhxSFgzMDBmVEdHMjlRZ3dhRlBlYzg4OHd6OU9HSEgxTFhy
bDBKYXEvNXZCZzQrZVNUCjZkSkxMN1ZwNDF0ODMzMzMwUTgvL0VBLy8veXpiQXdOSFRwVTJvRDJ1
eUZXMzJEZmg5OC9MR0N3MGRTbVRSc2hnZE9RK3ZYcnk3MU8Kblg1MG9GM3czSFBQMFpvMWE2VHY4
RGdKQUEvQVMvQVJZd1BQa3dBWW9kZHF1NE5hRGR4TWRRL09vY2xYdEtQT1Y2eW1ObWRzcEhVLwpW
YWZwdDdRV3ZHaC9HaCtSUlIwdVhVdFpTOUpaK0NoSERRN2RUa3NtMXFHL1dKandnblpucmFjbVIy
YlJiaFkwcXRUYlRXdG5WYWRXCkoyNFdJL1FQKzNlbTNFMFJkYXdLR1h1b1daK3RsTW50V3ZaRkhW
cnlXVjBoQjBHblVZOXNhbkg4RnFyYU1JKyt2ZWtBT3ZqaXRkU3MKNzFhcWtabExXK1puMEUrUHRD
amtPU3NhTGRXK2RtZXZwK2JIYktITmYyVlExVVo1Vkk3M1FGZDlXNU1XajYrblVPU2FlY0ltYm5z
MgpDMDVFVmRrNFBtdGh1clJyNCt4cU5sNjB1aUJ3TlR4c0c3VTRkZ3ZWYnIrVHZyandJQUs5QTA3
ZFNIVTc3S0IxUDFlakgrN09wRjFiCml0cTd0QnE0aVZyMjM4ekNXWG1xMlRxWHNwZW4wK1o1R2JU
bDd3emFrMWRPK2x6bG1WL3RObmpkNVBOY2Z2ZWwrOFM3MWNLNVAxUDkKeGkyby8rQ2hkTUxaVjhx
NzZDenoyTTBYMExSUHg3QVIrbHRzaEg2K25iVWpaNXNZcUUrZDhCWWRQZkE4RmpRdWtyd3Z4cjFN
ejk1OQpwZHhYeWFoR2pWdEU1dlc5cjN3cEtsMDJnVGh2NEhucm10TTYwV3VUbHJCeC9DYjY1L0d0
NVIyNjY4WFBxUHRSSjBTbEdyUWZUa0pUCko0eW1HVk0rb3ZRcVZWbmRLNGQyc2NwWDM1UE9weWtm
ajZSLy90L2pJcGo5NzR0eDlPbVk1MmpMaGpYVWtRM3lyNzBuOHE1OTllRWIKOU8zRWQybmR5aVdR
WE9qbHp5UHZtcUwvODNkZjByaVhINkRtQnh4RUZTcFdvcmsvLzQrT1lkcW5YM0tUUXBIcnhyVXJh
ZXFFdHdtQwpGQXp2NXpEZVIyODhUbi9QbmtsMTZ6ZWh5MjU1aWpwMk80bzJyVjlOa3o5NmcyWk0v
b2gyYk0rbVh2MU9wNHR2ZUxDUTBGU0lzT3NoCmxZM1FReFZBOE9GZHRHZ1J2ZkRDQzVTWm1VbXRX
N2VtN094cytRRTQrT0NEeWZuRG9uaVVUSHdkMmpvNFFkc2FpMmFzL0NEMWhVbEwKMWV0MTFhMEha
WFZ3ZFhEQ3BLVlRYMWc0dXUwR25nS2R1aFd1dVJvT3hNT0JhRUpER0xSd0tnQUhKTnUzYjZkUm8w
YkpxVGRPdjdFSQpoMmU4Yjc3NXhoWkNJQXljZDk1NU5IdjJiQkZXOEZ1eGE5Y3VLZi9XVzI4UmhB
QzFzSjQ4ZVRJOThNQURvdGJicEVrVDhhSzRiZHMyCjZzNEw2NWRlZW9uKytPTVBPdUdFRStqenp6
KzN1ekY2OUdpNjl0cHJhZlhxMWRJTy9DN2hOQUlDRHRTYUFGQUpobHY0eXkrL25NNDUKNXh5cEgv
V09HVE5HaEJRSU9BcDArd2E3eDQ4Ly9wak9QdnRzT3Y3NDQrbWpqejRTRWxXcVZKSEZnbTZkc2Vn
OC92ampjc29DRzBzSQpld3ArK2VVWDZ0YXRtenlpejRDWjkyVlM1eXRYaXpDUXRUaWRWbjlmazZv
MTIwVk5lMmRSZm01NSt1RFlMdlpKaFJSdy9HbllQWnVPCmVXNEIvZlpNVTF2Z2FEbGdNeDE1M3hM
Ni92Wk1XdnBGUkdpSUZMSG84RHVYVVMxMnQvdjExVzFwOTNaZTVmTkpRc2QvcnVINjF3aUsKRWtB
Z1NMUTRiak1kZE5FNnFzaW5Lai9jMDlJV0JyQm94NGxKdlU0NXRIMVZKZmFhVlpteWw2V0xDOStX
L2JkUW5RTjN5S0w4cTZIdAplWkZlVllTU2FMUlFhZWFBVGRUdFB5dm9vd0dkOTU3ZVdOVHo3cVcw
amVuT2VXV3ZvVFczOC9EYmw4a0p6NHc3TXdXdmNxM2RkTXJICmN5Z3QzYUxKbDdVakNDRis3VzUw
V0xZSWFnMjdiNk1kYkZTL1lrcHRwcmRIQkFrSWU3WGI3cVRWMDJ2UXRPdmFSdGkxOSsvQlE5YlEK
d2N5SFR3ZDNvTnpORlNtREJhUVQzNWxIbGFydm9RMi9WMlVibW9vMDU5WEdaTjB4dDFBNTV3TlVs
dTY3ZGhBTk9QTnk2blBpT1FSdgpVdis5Y3loOTg5azcxRy9RSlhUZGZmdm1Nc3A1TGR4WExQNkx2
dU1GOXdkdlBNcTc5amwwN2IydjB2R25SNFQxM1R5dmYvajZZM3I0CjMrZlFvYjM2MFczL2pjenJ5
dW1SZWUxc1N6ejNZNTY3bTdLM2JxUXJiNHZZZ053NzdEU2FPWFc4MUFVaEp4b0U3UWZvNEwxNDdw
NnIKUkZCNzRQV3ZxWHF0T2tMK2o1bFQ2ZFpML3lIMy8vM2dWMnA5WUJlNS81QUZndGNmK3c5MTdk
MmY3bmxwMzd1MmNONHZkUDJaM1FYbgowN243ZEF0Ly8rRnJ1dU95NDJuSWpRL1pBZ2VFUGJUVktm
RE4vdkViRVZKKy9mNHJPU0U1NjdKYmFPMnFKZFRsOEdOcEVkUCs1SzJuClJiZ2Ivc1E0d2dsR3R5
UDdVNDNhOWNRR1ovV3lCVFQwNWlmb3RJdXVsL3BqL1VsbEFZUy9FdUVDUHZLUFBmYVk3RGl0V0xG
QzdENHkKTWpLaVZwSk1mQjNhT2ppcThicTRzZkJpNVFlcEwweGFxbDZ2cTI0OUtLdURxNE1USmky
ZCtzTEMwVzAzOEJUbzFLMXd6ZFZ3SU5VNApnQVg3SjU5OElqdnd5dGtJZHYzUE91c3NldlhWVjJu
NjlPbTJBUExVVTAvUmUrKzlKODVLSUh3QVVBWkNCMDQ0Z04rN2QyOFJHbUJMCjJMWnRXOW5RZ2tD
QmVGTEhISE9NbERuMzNIT3BidDI2OU5WWFh4Rk9GbkRpRHNBSlBHemtWRHNnZU4xeHh4MEV0U1lG
RUVSYXNhb3cKQkNFQWhBUVlqa01BZWYzMTErWFVCcWNyQU4yK1ZhcFV5YTRUYWwvdTN6M2RPbVBS
d1dhZUYzaWxML3E0SHVXc3JVVEhQcnVBcXJmTQpwVTB2TjZaZm4ycEdWUnJreWVKZnFVbDUwV3R4
M0JZcXp4cFRXQmdyd0trQW9FSFg3WVVFa013VE50TUJwMnppbmY4REk4SUhrRmlkCmFPN3JqV1Zo
bmxhSkJhS0lURVRaUzlONVVkMUVoSlVXeDIwRnBnMUxKOWFWVTVKam4xOGczck5nOEoyMXVJcmsv
LzFPQStyenhDSnEKMGl1YkRyMTJKVTI1c3IwdkxSVENTUXJhdjA5MXJKd3M2RnVkdk1tdUU2Y1V6
WTdlU3ArYzBzbkcyN1cxSWkyYlhJZmFuTGFSNm5YWgpMZ0tJWDd2WHpxckJKeGVWNmJSUDUxQUdl
LzFhTWEwV3JlY1RKc0N5TCt2UUdWLy9UbzBPeitiVEY0dXMvSEtTbmw1bk4zVzZmQTJmCmpsUzNl
YnlEeDJySlozV28vVGtiYU1OdjFWajRpN2lqclNrbHZQKzgvZHdJVVkzcWUxSmtMa013dU9UZmo0
Z0E4aFh2bkIvTEp4bXgKWE9vMmIzMGduWHYxbmJSMHdXeWFQdW1EUWhWVjVIbXQxSWpTMGlyd3FV
SDA5VnloZ2hvUE9MbVpPTzRsZXVEMUtUYjJTZWRkSXdJSQpGdWZMRnM2bGxtMDYySG14YnZ6Nmdi
SlRQaGxGT05HQnNiMFNQcERlK2ZCanFGcU5XclE5dS9COGJOSEcrMTFyY1lCMytuZGZ2aWR4CjBH
clYzV2Z2RE05aWdMay9mMnVmT0dFODJuVTZqTTQ4cklZSWpFMDRIZ3Y0RHpqMmxBdHB4WksvNkpl
OUp5bDN2ZkFaWVV3QndCdCsKY1YvNi9xc1B0QVVRS1ppaWY0cWVNNGZVVUh5QThZRjNmNFNqa1U4
bXZnNXRIUnpWZGwzY1dIaXg4b1BVRnlZdFZhL1hWYmNlbE5YQgoxY0VKazVaT2ZXSGg2TFliZUFw
MDZsYTQ1bW80a0FvY1FQeW5XMjY1aFU0Ly9YUlJQWEsyQ2J2MVVJVzYrdXFySlJtNDBFUEdQRmVD
CmhNS0h3SUJURkFEb0thaFpNN0w4Z2lEaExGTzdkbTA1WWNHSkN1SXJLWUJROCtlZmY5S3R0OTRx
bm51UURpRUdKeE1BcUdUaGxMNXEKMWFxaXpnWFZLdnlIZWxPdFdyVUU1N3Z2dnBOcmtMNUpnYjEv
bktkTlNBcFNweDhkdnp4VnA3b3EzQncrU1FEa1pWV2c1Ynd6RDlpNQp2cElzM3VVaHlwKy8zbWxJ
ODk1c1NDdDVNYTFnOTk1QWdnZ3NxQUNMNmk3WHJHWjZsV256bjRXRENrTEFnUUFFMkhzb280cUpt
bFlrCncwNlNtMTNjVHNDMkZaVnQ0UVBQQmZubDZaY25JZ3Z5aHQxWnQ3N2FIaVFMUU9WTFlLK1FF
M2tneWxsZGlXcTJ5dVgyclNLeHNlQU0KZU4xYVBpbkNoN1QwQWpwazJDcGFNYlYyRWZ1VVg1NXN4
aXBnclduQis0WFYrNkxWdFh0N3BBM29weEkrMEk2OGJSV2tMK1c1VzlXYQo3bEpOWTlXc0hJSmd4
dE82RUd6OEk2THlWWXRQVFdMQit0WEw2Zk4zWHhCVklxanpxUCt6WjAybHF0VWo3ODI4WHlKek9S
WXQ1RmVwCkdoR2F5a1d6RlhJM1ZvZW9EODUwWGtnM1krRUg2a29LRHVsNUhEWE5iQ2VQNC9ra0lC
N3c2Z2RPaGtZK09WeFUwanF3YXBNYmxORGcKZm4rQTUrYUhGdzd3VHVWVGlUTXUvUThkOFkvVDhD
aVFVYTJHWEdGMzR3UUlGVldyUmNhb1I5K1RuRm5Vcm1NUGVjYUppQkkra05CaQpyekMybWRXeVNn
TkUzdlRTMEJQVEI4TUJ3d0hEQWNPQll1Y0FWS25nY0FTbmVHNm9VYU9HcURxcDlMbHo1MUpPVG82
bzUwSUljUU5PCk9HNjg4VWF4Y1lCdGxOdHpvaHUvV3JYSVlnMHFYQW91dWVRU2V2NzU1K25CQng4
VUZhV0hIMzVZVktJNmQ0NFkzTUoyQkVJTEJCQVkKcVR2aDBVY2ZsY2NERHp4UXJrSDY1cVRqWHFB
RXFkT1Bqak5QOXo1L1YyU2ZNUThMNUNoR3psNjB0ckhxazlxQnI5cDRGN1UrZFpPOQpnSzdJNmtV
S2F2REpDbXdyVm4wWFdXaXBkSFgxTzJWUk9Mclg3S1ZWS0hjcjc4S3pVVHRVeWJhd1hZY2ZMSjVR
ajlxZXVZRTZYTEtXClQwNnk2RmMrVVZqN1F3M2F1akJTRGlwamxXdnRFVlV2TngxRWJWODVMU0tv
dVBPQ1BzTytBNUJXY1orNkRnUXNRUDFEdGxGNVRsZW4KTkZ2bVIzYTduU2RQZ3VqeFo4R2NINm1B
M2VQQ2xnRmVwSnh3NlUyUnVkeXNWV1F1Ty9QaXZYZlA2M2pwcUhJVDJQWHU0WDFQcHVVTAo1Nmtr
dWZZNGVpQ3RXanBmQktxTHJuK0Fhckw2VWFLd1l0R2Z0SFhqT21yYnNUc3BvU0JSbXU3eXpWcTE1
OU9uaHlWNTNhcWw5TldICnI5UGFsWkhOa1oxc1k2TUw2V3hyNHdWVnEwYzJBMkMzVWhxZzZDOUFh
ZWlWNllQaGdPR0E0WURoUUxGd0FFSUZBS2NGc1FDMlRnQXYKSTIra3cwTWdYTGtqNWdCd1l3a2dL
T09HUXc4OVZHeE9vS0lGRDNqOSsvZW5hNjY1aHA1ODhrbFIwMUlHMmpDUWgwYzZQd2pTTnljZAo5
MEl0U0oxK2RKeDV4WEZmdGNrdTZud1Y3N2J5cnY0Zkx6WVJlNUZXckc2RlBXRUZzSTBBNElUQ0Yx
eW5FNzY0UHBrN09hNElCSkJ5CjRxM0tCNUd6WU1nOStmTDJkT1Q5aThVNEhLcG84OGZWcDUrZmFD
NnFVRFZiUjA0WmNCSlMzQUJoS250WlphclJjaGMxWWdQMjFkTWoKdStGVkcrZXhVRUcwOElQWWkr
NklhV282QUFBZ0FFbEVRVlNWUy8rV1prUE5CNm83eVFiM3ZFNmtQdGhSTE9OVGdWMjVPK2piTDhZ
VwpJVldldndNUXFyNWdGYTJ6cjdpdFNIN1FoT1dMSWtKT3ZZYlJvNndIcGVtRnY1YU4wOTkrNWc3
T0trY1gvT3NlL3RhbGlkRi9rYU11CnI4SjcweXBVMkt2MjZEcHhDcFAvUHRVWFcxYU1MMGF4dGNO
VVpEaGdPR0E0WURoUUFqa0Erd25BNzcvL0hyUDF6WnMzRnh6WUJ5cEQKYVdjaENDYnA2UkU3QTdo
MGp4ZU9QUEpJRVQ3KytjOS9pckFEejFFd09nZkFReFZBQ1JmeUVPVlBrTDVGSVNISlFlcjBvMU9j
ZVRVUAoyRW45My95TGR2R0p3NHc3VzdFNms3YzcwVFIyYnd1bzJtamZLVlF5MjFtUkRiUUJNRTdY
Z1kyL1Y2T0o1eDFNaXo2dUt4NnVZT1RlCjU3RkZVblRQM3RPaDJ1d3BiSC9BRlBaS3R2N1hhblRF
aUtYaUNhdnBVVnZGWmdiOGRucmZpdGEyakl6SVhGN090aElsRFhENk1XakkKditrWk52cjIrdCs3
LzVuU0pYaWlncTFJb3FBVzcvQXFsU3hZdW1BTzNYak80UnpQcEI3ZDlQQmI0bFk0V1hXVkJycEdB
Q2tObzJqNgpZRGhnT0dBNHNKODRjTkJCQjBuTm4zNzZLYzJmUDc5SUt5Qm93TVlDZ0ZNSExBU2dN
alZ6NXN3aXVIRFpEaFV0MkdMZ05DUWVnQ0U1CkFLN0tZZEFPVDFxZzk5bG5uOUhDaFF1cGZmdjJr
ZzlqYzNqVThnSVlyZU1VSmtqZm5IVFVZa2VsQmFsVGxjSFZUY2VaaC9ZbEUzcmUKdFpUU2ErZlR2
SkdOZkt2SlpoZTlBTmdzWkxEcjNPaXc3OVFrT281L0R0emRaalRZelM1MXF4U3gyZkFxQ2E5ZGdM
enNDdUlSYk1yVgo3ZGdtSTAyOGdGVnJsaXZ1aFpIZjVLZ3NxdDZpc0FvVDBuSDBBODljeVlLZDdK
WVl4dWF6WDJrc0p6cTdkNlpKVkhjWXJ1dEFVMWI1CkFVeGlWUis0MGZXQ3QvNGJtY3RlZVVIVC9P
WmpFRnB3dmZ1L2lXT3AzMTVQVzE1bFQ3bmdXa25lc3BGeFBVNUl2TXI0cFRWcTNscXkKRi8vMUcz
dmRLanFtWGhzaWlsNEJqcVEwNEtsYmgxRDJsbzEwNXREaEd0Z0d4UWdnWmc0WURoZ09HQTRZRHNU
TkFRZ1ZuVHAxa2dVNwp2RjRoUm9VQ0xQRC84NS8vVUx0MjdTUUpCdVZYWEhHRjNDTjJoUnRtekpn
aFNUZmZmTE9kNWI4d0tLbzZBOEZpOCtiSXdoTkVZTGlPCk5nQ1dMbDBxejVsc3FBNDN3VkROY3Rx
UEFBZXhRZUNKQ3FwZ1FmcUdzdXFrWStQR2pYaTBBVzNRclJPRm90RkJuaktVaHpEbEJDWDgKZ1Y4
UTR0eFFMc0Q2UHkxOUQ5Vm1sN2NBcFdLRmU3akJCVWhRUUxsak5TZU96UUVYdi9DWTFlSFNmV09Q
Yk5nMlZLNlpMNWh3Uyt1RQpjbXIxb2E3T1RMNHZGN0hwTHBRS2dhSThHNzNQZnFsSm9mUm90QTQ0
WlNOVnFoR3BId1ZnSFA3bnFJWlN0aHBpZlN5cXd2WWdWYVR0CnZSOWFUT2tjdTBRQjJudm85YXRv
RzhmbGNFSzB1dno0YTVkeEV1TDdIc09YaXhyV2d2Y2FpRmN4dEU4WnM3dFFQUjg3SDNZTU5XalMK
VWhhOUw5eDdqWGhVY2lLKysrSjlFb3NDYzFtQjMvdGtzVHR0Z0lWZ0tBNm9zdmVrSllzWDE5Rmd3
WnlmYVBXeXduTXlHaTVPUHc3dQoycHZqbFRTUGhrSUhkam1DTXR0MWt2eVBSajVSQkM5b1AxcTI2
U2l1YlBOMzU5RUhyejFTaUI2Q0JtWnQyU0JwVHJySzVnS0JFWjBBCit4UUZjRnNNd0JWcVpRQjRz
Vkt3Nk05STJwNzhmWE5MNVVXNzV1L0ZoWDFQYVlZb3IzNXA3ckxwbStHQTRZRGhnT0ZBV0J5QU1U
bGkKY21EUkRqVXNMTm9IRHg1TXNNR0FEUWZjNHg1MjJHRjJkUTg5OUpCNFNJU2dnTk1KQmZqaFIr
d00ySERBRUYyQmMyR05ZTGNLZ0E5RApkUUFFQ3dWd3lZczZuQUNoQ0NwZFJ4eHhoTFFIQnVyWXpV
WGNFY1RPZ05jdEpTakJBeFk4YUFHQzlnM2V0Z0N3UFlFd0JWb0lFQWdlCjZOYUo4dEhvSUs5RGh3
NEU0M3Q0L2tMVTlXblRwdEdkZDk1SlR6Lzl0RzB6Z3hPY0JRc1dBSjEzOWlPcVViRG5xRnhiYnhH
MEp6Zk4KRHZiWDlmcVZITGRqQ3h0eU13L1pYVzBCcitlaGJ0V1U3eEdvRUVibVB6L2VYTkxiY3N5
TGJqY3RaM3VMSFJJQXNjY3R5NmxDbGNoaQp0dHROSzZnNUIrcFRnRmdiZ1BRb2Jhb3A4VUwyNGVQ
RW9ndmJveXpsd0lXci9yZlBNeGRvUktNRlllWGdJZnZtak5USFFzWU90aVBaCk9MdXFSRWFmZFg4
TDJzTkJGbXUzMjBrRHg4NmwzZzh2b2w1c00zTDZwTis1VCtWbzA5ekNucjJpMVZXZGJUa0FFRVRT
NnpyNWJCRmMKN2dJUTRGQUJEUHZCTHhqSUgzYmJNdkhVMVhIb0dqcndnblhVakFNbnFqSUszK3Rh
Z2VjVmd0SUI0QUhydXNIZDJOUFRMUnkxL0Q5MAorUW50Q0I2d3pybzhNcGRWZWFXdTVWNVVJejly
YzJRUnZuWFRlb1V1VjdoL0JTemgwNE0vZjV2QkxtVy9vMjgrZjFmUzhHZmVMOVBwCmhyTVBvNnRQ
N2NnTCtlaENDbkEzckZsQm43ejlORFZ2SFRrNVJWbzA2Tmk5ajJUaDFHTEdsSThMb1FYdFIzcEdW
VHIvbXJ1RXhnZXYKUDBwUDMvNVBkbWY3b1p3ZVBYRDlZRmJ6MmpjMnFpSzRBRVk1MkhVZ0V2d2Zz
NmF4ZmNlZEVxZWpWdDBHZ3ZZVzIzdXM0dGdjd0d2ZgorWEJKZTUxeDRaSjNMQWNrL09IclQxakFU
YVAxcTVmSlBRSVZBalp6Z01QdDJaSDU3ZlpxaGVDSGdPV0w1c3BWL1ZtN1lySGN3bDN3CnpwenRL
cm5FWHRQWUplSmRpYlQrN3J2dnRvc25TTXFtWTI1S0x3ZmdWUVo2MWNwSFAzcUtSUVgwc1JQUitW
WWNDNU9Xb2hudFdweDEKUld0REl1bFE0Y0FpQ1R2QWlLZmdoUDNkdC9YcjE0dVhJbWVib3QybmNq
K2l0WGwvcElmNXJYYlRnbTBIQXMwaXFqaUVBYmpCeGFJZgpYcVdjcHhub04ydzhFQmdRUnVaWWxH
T3U0VDlPSHVCYUYxSFBsUjNJdDk5K0s0TEJ5cFVyaFdVUVJscTFhaVVSMHVHeUY5NmxBS2dQCkts
dFl1Q01leWRkZmZ5Mkxmd1QvZzZDRDd3dlV3SlFOQ29Ra3FGZEJBSUk5Q2dTRldiTm1TUkJDSlV3
SllmNFRwRzg0NFVHL0VGbDkKNU1pUkJDOWdFS1lnN0FTcDA0OE92cDN3NklWdktmcUtPQ2lnL2NR
VFQ5Q0xMNzRvRWRKeDR0S2xTeGVxU0krTDRKQmVoNDIyZWJ1eApQc2UwZ0FlclRYT3FxZTVGdlNK
WVg1MkRjc1I0RzZjZ3NFbjQvYmttckdhMW0rcDIzTUVlc2ZMWXJxSytxRGR0WDFXWjF2OVduUnAy
CjIwYU5lMjZUaFRWaWhmdzF1cUVFRmN4YXhLNXZ2NnBEcTcrcktkRytEenhuSGFzMlJlS00xR0Ez
dVlDdEhPOERucUFRUVIwTGN3UWkKTE5oVGpnTVdyaFdWcVE2WHJxTmxrK3JRancrMllPekljUTVP
YWZ4b1FXQnEyR01iZTVyYXppY2hlOFNUVnkyMmJabHhSeXZhc2I2eQoxTHVEWFJLalhRaCtpRDRo
R2puYThOdlR6ZmkwcEpIZzRJOWZYWFU3NXZCcHlVcU8zaDRSTkJCekJlMVBxOGhCRHU5WUp0SFFR
UU11CmdSSHJBNjZBY2RJQnZqYnN0cDM1dkVPaXpDT1FZZU1qc3FrbHh5OXBNMmlEZU9kQ0hKVDBR
WmVqdUNka3NnRTYzTmorTnVNclFuUnQKQ0FQelo4OFM5YVpoZDczRXdtOGxLWWNUaWpkWk9FRjhE
UUFDMnUzSXlhWTJCM2VWZUJ0d2VUdnRzekVTeDJMRjRqOFpvNXpFNEVBTQpFTGowWGMybkFBaVNo
MmpoOENJMWFFaGtYb01XVkpxK2ZPOFZkaG1iSVc1b1Zkd1E1RGxoMGdldjBiM0RUcFhUZ2hWc0ZM
NHRpd05TCkh0S0w0NHhFMnFod1FlL3RaMGJRdDUrL0k1SEtrZjdUTjUvUjFrM3I1QlFqM242MDY5
UkRCSVhaUDA0alJJeWZOVzBDNFdUaXFqdWUKRndFT25xcE9QT2NxcWwwdmNrcUdmbVMyNjB4TDUv
L0J3c040NXQwa2dzSC9aUndJY09MWUZ3a0NFbUtJdEdyZlJmcU9LUEVMNS81RQpTLzcrZ3hEYzhh
QXVQZW1pNisrblRldFd5cGhBa0JrdytES0NSNjQzbjdxRlZpNzVXN3E4WnZraWlVdFNxMTRqK3Zq
TkorblRkNTZUCjA2dzFLeGFKNTY3Mm5RNW40V2Nxajk5d0VXU2dFZ1lCckc3RHBuSUNwdmptZFVV
Z1F3V3B0a1lQUFJLNjZxaTVHZzRvRGlCYThjc3YKdjB4ZmZ2bWw2R0JqWnc0UmtoVmdRWUZGQzNi
eVZQQXZsUmYwR2lhdFdIVVhaMTJ4MmhJa0gwSUhncjZOSHo5ZTNLZGlGL2lDQ3k0bwpSR0ovOWcw
Q0VlckhndEJQS0UzMWZoUmlhQW84T1BXM25Xb0c4VFROanhiVWo3RHd4enZ1eFBPcUI2cFNpT0FO
RlpHdVhidVNpdm5oCmhhdWJodm1EUlhwV1ZwWjhWeG8xYW1TZkRMaHBnQS93VUlVSTdqaFpVRWJu
Ymp6MXJOczNmTThnVEhuMUowaWRmblRRcGlWTGxsREwKbGkxdHIySlFlVlBxVzhnZnd4SGpFd1dj
bXV6YXN0Y3J6MTVpVUUvS1Y3RTNYQlZVcVovSEtqemxLSmVqZUFNcXM4Y3FHTExyQWs1UApUaGpO
TGxOWmFQbjhiQjZUZW5sVXFlWWVVZk1LNGtZWTlTbjN0b2daZ2hPSFhMYTU4SE52aTdaV3FwNHZj
VHRvcjVDajIrN2dlSmJFCklGbjlRMDJPMFpJbWdSY1JHVDZ0Y2dHZkd1MFJkYmQ2blhQb3M3TTZV
TTFSRVVIYnJ3N01LeXhvYzNkc2wzZ1J6dmdSZnVXQzVNRzEKYkxVYXRlMFlJODZ5aUVsU2hkM0hP
Z1A4T2ZOVDZYNVhMa2VtWndFTUxvcVY4SFB4c2MxWlVGaEZ6M3o0R3dzVW5ZczBGOElEMU4yVQpC
ei9ZM0dUc2padmlSc1lKa2pvaFVYbCsrQW9uR2RjeUZRazlHUXcwTkVzMkJ4Q2hGeW9OU3VmYjdm
OGZ1M2ZaMmRuVXBFbVRoRHNhCkpxMVlqU25PdW1LMUpVZysxRkN3T01RQ0gvRWJ2QmFKKzdOdlVG
bkI3ams4RjJHSFBCcWtlaitpdGJ1MHA5ZXJWNC93WHdkZ0tJNW8KNTJHQ09sM0Y0aCtuQUg2QXVh
OWlmdmpocVR6ZHZtVm1acW9pUmE1QjZ2U2pBOElRMUozZ0ZENmM2WW5jdTRVUDBJb21mQ0J2NTRi
Qwp1OWxCaEErVWQ4UE9qWlZvcDc5V2o3dUkvYXhpYStDMFllc0MvNWdoS0lTMkp0cGV1L0lZTjky
SHI2QUs3UDVYQlMzY3VxQm9nWjczCkxHRTVTTTkvTWVZVklvRW5FeG8yell4S3ZrRVRuRXlWRElC
dzVpVmsrTFcrVWJQQzcxbzA0UU0wM01JSDB2endrVjhXd2RpQUpISFUKb1JyeXlDT0ZqWjNpcVM0
c092SFVIVVlaQ0J3UUx0UnV0bHNBbVRCaGd1aHlLNzNuUk9vTWsxYXNkaFJuWGJIYUVpUWZQMVQx
NjljWAp0UTJVODlvTjkrdGJzdWZqTTg4OEk5M0JxWmxmYklsRSt4R0Vad2JYY01Cd3dIQWdMQTRn
K0dDN3dSc2tlbncwbW5KaXM1bFBrZmcwCnlZRGhRR25rZ0JGQWtqaXFJMGFNRUxXalJLc0lpMDZp
N1VpMHZEcTZWRmNuUGJkUTRzd0xlaDhtclZoMUYyZGRzZG9TTkYrMUhRdDUKTDFENTdyeGt6a2Vv
VlNFNk5YYWFvWjR6YXRRb2QvVkZubFU3Zy9hakNDR1RZRGhnT0xEZk9hQU11Q3RXTGIwZWdHQjNr
cC9MZGtGRAoxMUxucTFkUnM3NWJDSEZYWUhQVGR2QjZPdUt1Slp5M2hyMTlOZDd2NDFGV0dyQ2Q3
VkVBcFNYS2VFa1l0NlFMSUFWNzNib2xreGxlCk83anUrckNvQ1J2OCtnWUR4QWNlZUNEaEtzT2k0
MnlJRHIrYytNNzdmSFpYQjNVcFhjakxLK3BaSXRwQ1VaY212TndrQXJwendXOTgKNDZsZmwrODRZ
VWhWU01aOGRQYjEyV2VmcFgvOTYxK0VBSElBZVBiUjVadVRUdEI3MU9HdXgvMGNsS2JDRC9yT3FI
TG1hamhRMWpoUQo1K0FjYW45T3hBTlQxVWE3eFlDK2JzZVM3KzNIUFk0STZqamx5bmEwWWtvdGFu
M1NKZzZNdUpnOWNNMmo0OS80aTVweVRKS1YwMnJSCnpIdGJVajdIQlRHUVhBNzhNWE1xUGM4dWpH
RVhBaGo3MHYxaVJKN2NXZzExY0NCcEFnZzhqcHgvL3ZuaTdlU29vNDZpcTY2NlNqenUKZUxIOXpU
ZmZwQk5PT0lGT1BQRkU4VXdDYnlvSWF1VUVMR1FuVHB4SVE0Y09wZTU3RGV0UUI3eDlRTzkxNE1D
QkJNODVib0E2QjNCdQp1KzAyT3ZQTU15VWFMcnlpT0FFTFd1enE5dS9mWDNaZVlRejUvUFBQaXpj
SUo1NjZqOVUzcUk1Y2V1bWxzcUNCbHhiUXczLzRuVmVnClU2Y2ZuWEhqeG9uQk52enJ3eHVNQXRo
Wm9COUlWOEd2VkI1Y1pNSnRZOSsrZmFWdmNOWFlvRUVET3Z2c3N4VksxQ3NNeUdFZ1BtelkKTUxy
OTl0dkZWZVpqanowV0ZSOExTWXpuaFJkZVNIMzY5Q0Y0emNGQ0RPQVVRR0EwT1hyMGFCb3dZRUNo
M1c3Z29rN3dzVisvZm1JawppdllpM2tCR1JnYjE2TkdqU0NDemFMUlVJM1htQW5CampTOXdvdFVW
N3p3RlRlejI0ejA0NTV4enhDQVdrWnZ2di85Kyt2enp6Mm5LCmxDbGlyd0U4UDlDWlYzN2xrUmV0
YjM3ek1SWk5uWHg0UXBvMGFaSjhOL0M5d0VuWlgzLzlSVjk4OFlWTzhTSTQwZnJoUk1UY2c4dlkK
SVVPR3lQY0JjeFpwbUhQd01nU0k1MTFET2QxM0JoNmU0RFpXdWFyOTMvLytSNmVkZGhvMWJ0eFlY
TVRpR2JCNjlXcVpEL2orNGYwZQpQbng0RWFGSkVNMGZ3NEdTeW9FQ29qa2NsRy9TSmUzbC96cU9p
Mkd4SjZ6U0NQQkVObU5FSy9yNHhNNDAvclFPTko1ZDJJNDlzaXROCnU2NHRDeUMxdWN1bHM5K3BO
cGFWcTJUUU1TZGZRSStPbmk3L3o3N2lObmEvSFhHZ2tHcHRMWFh0NFYyK2hJQVpBZ3NwK1E5Q3ZI
dHIKOGFMUjRvQlVGdTgwQzIwV0RDeDJSMml4TDNUcisrKy90K3ZqeFpMRlFvSEZSb0FXZS9PUWRK
VGhSYXZRWTJIRHhtVlhneFlMRXBMTwo5Z1RXdGRkZWExMXl5U1VXRzZwYTdKSlEwbm54WnVQamho
ZVNGaHM1MnUzZ0hXMmh6YTdJYkR4Vzg3QjRZVzN4b2tQYXpqcm4xbm5uCm5TZjAwQThuNlBhTnZi
QllZOGVPRlJySEgzKzh4VUdoNUQvcUIraldHWXNPQ3dCU0J5L2VuYzIwMkFXa3BHTmNGTERYSTRz
WE5KTE8KUnVIV3YvLzliNHNYT1RJbWJLeHA4WUpmb1JhNTh1TFhZaTgxRnJ2VXRQUEFMOUFIajUy
QVBtSmNlSkZrc1NjY3lRTGZXQUN4MjhRRwp4cExPcmpNbG5YM2FTOTVycjcxbWsyTFBUQlliR1Vz
NkcxcGFiS2hxY2RBd2kyMXFMQmJtSkoyTlRTMDJwSTVKQ3dnNmMwRjNmUDNhCkhjODhSZnY0dE14
aXJ6a1dMOEx4YUMxYnRzemlnR1BTejE2OWVsbG5uSEdHeGJFRkpDL2FIOTE1cGNyekJvSFFkNDZo
WDk5aXpVZEYKTjk0cjNrc1djTzNpcDU1NnFyUVA3NUFmQk8wSGFHR2Vja0E4aTQyVUxUYkV0OG16
KzFhcEUzUGJ5ZThnN3hxSTZiNHo3UG5OUXY5UQpIN3VlbGZlQmhTR0xoVkhyK3V1dmwzVGVKTENB
aCs4ZkN5b1dSL2UyV0FDUnZDZWZmTkp1ZTZ3YjFLSCt4OEtObGEvbzREcTZXemZ6CjM4V0RXUHd6
K1lZRGhnT0dBOFhCQWVlM3VqanFDMUpINkNjZ3ZJZ1UzK1Q4STJuSGVvREJLeUxrWW5kMit2VHB6
SThJUFBYVVUvVGUKZSsvUmYvLzdYOHJNekpSRWVEQ0JpMUQ0YUFjTm5JNEE0Q2xGZVZIQ1RpQjJD
SEdTY2ZYVlY0djdWdXlxd3g4NjZsREFRb0M0WDFSZQpVWUNEWFhTbldoQk9QbmlCU3l4MHlJNHIz
REFxdzNIUS8rYWJieFE1MHUwYkFuS3BPcUdmamgxNy9GYzcvN3AxeHFJRDcxSmU0SldPCmt5T296
d0RnZGhLN3JRajZoV0JXOE4zdmpKUXFTSTQvR0NOZW5CZHlaUWt2U1FENDZYY0Nkbzh4VGkrODhJ
SWRzUmM3MlRpQlVqeFIKZklEM0dRVFF3dW1IRytBVzl0NTc3NVZrakRmbUNrNVZFQ3dNZGdJb0Ez
ZWIvL2QvL3ljNGZyU0FvRE1YZE1mWHI2NTQ1aW1DcWVHRQpDR09Dd0cwQXhEVEE2UkdnZCsvZTlQ
Nzc3OGYwNktNN3I0Um9sRDkrZllzMUg2T1ExRXJHZTR2NEMzaWZGU0JLTlFDbklvampFQVQ4Citn
RTZPRzFDZlRoaGdpY21CVGd0aGZ0VU4zaTlVOENKbHE3N3p1QlU4ZU9QUDVhQWQxQU5oQ01HdkQ4
WWV4WXVaSjdqWkJmcW5KOTkKOXBuRTFJQjZHcjZSQU1UTU1HQTRZRGhnT0dBNFlEaFEwamdRcWdB
Q2p6V0lLSHY2NmFjWDhrVU9wanorK09QMDRZY2YyZ3NNNFBLTwpwL3p3NGtmZkNWaW9LclVpMEZP
Z2ZLcGpBZXNzZ3dVRDNJcENiUWNMYWdVUWFoQ2dDaTVnc1lBRzRBZGVxUnd0WDc1Y0ZzcFZxMVlW
CnRSdmVDWmJyMUtsVDdjVXpBbFFCZ3ZSTkN1ejlveGJiS2kxSW5hb01ybTQ2Zm5rS1YxMFZMZ1F0
QUlMT1FlMEVBTTlVV0t6NUFlL0UKeWtJZlFwOENCTmdDS0RVVjNHTVJDVUVEcWw5S1RRN3BBQWc0
V0ZRRDNPMVNyaVBkNlNvNEhzWVdQdm9WWUNHTW9GdUFhUnc3QlA3KwpGVVNqRldzdXhETyswZW9L
T2svaERoZkNGTzhjcUc3SWxVOCs1SW80S3JFZzNua1ZqVzYwdmlsODkxaXA5SGl2V0VoakhtTGpR
UUdFCk9hVkdDRnVRZU1DckgrQTExSmN3SjZFZTZnWWxCSHIxMFoybW50VlYwZEo5WjRDUFRRODFa
NkIrNmdTb0dnS09QZmJZUWpFcTFQc0EKNGR5QTRZRGhnT0dBNFlEaFFFbmpRS2dDQ0JhamlDdHd3
QUVIRk9FREZxelFhY2RKQUFBN21xeWFKSXRTNWNYR1dVZ3RkaEVQQUR2RQpzWURWZUFRRml3c0Zy
QW9raXd6RUVzQ0NHRHVwQUVTUkJjQStBMElMQkJEc1Bqci9JNEl2ZGhteFF3a0kwamNwc1BlUGUy
RVNwRTQvCk9zNDgzWHNWWkF1TEhTOVBWTkhvWUJINDhNTVBpMUNKd0ZnNHRZQWRDQUI2OWdwd3Nv
S0ZzTmY0QThmdmxFWFIwTDFpb2FwaURTRHkKY0N5SU5SZmlIZDlZOWJyenZlWXBCQ3dBZFAyZDgx
ZkZNRkFMWWpjdDUzTzg4OHBKSThpOWUxNEhLZXVGQy9zY1ZrV2llZlBtMmYreAplUURiTGdBMkJ4
QUVMZ3dBWGRpYndDNUxDZEpoMEhYUzBIMW5uR1c4N3RWOGNlZXhlcDRrNFJ0cXdIREFjTUJ3d0hE
QWNLQ2tjYUJDCm1BMVdhaExZVFk0RmF0RVliU0dNM1hJc1dIRnlBVnlkUlppN3prTVBQVlJVcU00
OTkxeGlmVzR4em9aYUIxUWIyQjVGVkpGUUJ1cEUKU3QzRlRVTTlCK21iS29PcmU2R0dSVHBBcDA1
QjNQdkhUY2VaVnh6M1N6amlMdFRYMEk1NzdybEh4Z2JxVnM1MndXQVlnQk1LUDNDVwo4Y09MbFlm
VEd5eEtXWjgvRnFvWXpVT2RMdHBjaUhkOFkxYXNnUUJoQ2tiRjgrZlBGMk56R0VJRDJBNUUrTXky
Q2pHcHhEdXZZaEtPCmdoRFdHSUk4SW1GREFNUjNBNnB5YnNBR3hjNmRPMFZsQ2lkc2lRS0VISUNL
UzVNb3ZXamxkZDZaYUdWVk9yNVRBRGUvM2M4SzMxd04KQnd3SERBY01Cd3dIU2dJSFFqMEJVVHZz
OExZVUM1bzNieTRvSzFhc0tLSjZnZ3dJSm15VUtUaUpMQlNPUFBKSUVUNmdOdzJhaUs2TQpreGlB
VXM5UWkwOUpqUEluU04raWtKRGtJSFg2MFNuT3ZEbHo1dERoaHg4dUp3NXNIRjRrK3E1cUMwNlFB
Rmc0RndkczNicFZxbEZxCk9ySHE5SnNMWVkxdnJEWkV5NGZhSDlTQmNGTHp6anZ2RUFJQlF1OGYv
TzdaczJlMFluWjZTWnhYcXZFNC9XQ25DUFRycjc5Ni9vZjMKT2dEZVhhZU5seW9mOUtvVzc4bFVY
OUo5WjRLMnZhemcxMnl6a3lxNDRrQWdQa1RkanFYN3hBY25jek5uemt6NVljYkdJT3c1Rnl4WQpr
SEJic2JtQTl5VVZvYVNNaHc3dlNrSmYvT1pWU1dpL2V4ejgrdVBHTFl2UG9Rb2dTbjhiTG5TeG0r
c0c2TGhEbFFLQUV3QXNCS0J5CjR2WEJ4UzRsMUF1Z2FxQnNCOXowWWoyUEdUTkdVR0JrQ29QMnla
TW5DejBZY3k1Y3VORFdMNGV4dVZPVnlFa1h1LzZZUkVINjVpeXYKRmpzcVRTMldkZXBVWlhCMTAz
SG1vWDNKQlBiS0l5NkVvVGZ2QjRwSHNGbUFZQmtOL1BvU3JZdzdIWTRFVnExYUpTY2Jhdkh0eG5F
Kwp4NW9McXUwNmM5ZEpONno3Um8wYWliRTUxTnR3b2dQVkd3Z2hPTEhSZ1hqbmxRNXRMNXd3eGhC
MDhhT0NVdys0VzQ0RzdQRk9zcUNPCjZYVkNFcTFjdFBUV3JWdExGazVGb1RMcUJyY3Rqak5mOTEz
VGZXZWN0TXY2ZmEwMk82ajcveTJua3orYVF3UGZuVWZwdGZjNUZBRnYKRUNPaC84aS9xRUhYZldx
ZnBZMW4yR3hnNzMrRm5KK2tVaC9oQUFUdktqUVM0QnpENjdkYnQ3MXc2dzJiSjZqUzNuZmZmYnJG
aWhVdgoxY2NqQ0ROU3VTODY4eXFWMis4ZUI1Myt1TXVVeGVkUUJSQUlGWWpUZ0I5cGVMM0Nna0VC
RnZqd1lBUlZFd0RzRUpScWlmSnVwWEJ4CnhRQUNicjc1WnJuaWo5L0N3RXNOQjR0OFJGTldBTU4x
dEFFQVd3WThaN0toT3VKelFEWExxWDhQSEh3VW9VNEVWYkFnZlVOWnRTaDIKNjYwSHFkT1BEdktV
SGppRUtTY280US84OHRJUjkrT2prdzd1VVI0cU1nQ2xZb1Y3bGViY2tUN2trRVBFS3hER0g5NkZu
QURlcXNXZQpXOWhUWTZldXpuSzQ5MXIwUWFCQTNmQWU1UVJGUTExVlhxeTVFSFI4UVZmVm9hNnFM
ai8rdW5GVkdYaC93cnVCZVlqNE9aZ255akJaCjRmaGRnODRyME5KcHA3dTkwZWExczIwLy9mU1RD
UGpPdEdqM09QM0FRa2FkaUhyaFlVR203TGFVOHdFblh0QitZS3pobVE5elVubTgKVS9SZ0U2Ymk5
VGpwQm5uWGdyd3pxdDVvVi9WK2ViMEQwY3FVMVBTc0pWVm83dXVOcUVyOWlPRGhqditRdGFnSzdj
cEtvNTBiSW1wcApKYldmZnUzRzNNU0dHYnVhOTBQYmIzbDRGMkVQaUEwVFFDSWJFWENFQXUwR3FG
NG1RaWVaekVqMThRalM5MVR1aTg2OFN1WDJ1OGRCCnB6L3VNbVh4T1ZRQkJMcmFjRzJKUlR2VXNE
Qmg4SkhCTGk1MlRLRFBySUp0Z2RrSXZ0V0tQVE5oY1lqVENRWDQ0WWVMV05odzNIamoKalNyWlBs
VkJQblpPRmVCWkdhcERzRkNBSDIvVTRRUUlSZmpvWVlLZ1BUQlF4OGNQcWk3ZHVuVVRMMTVLVUlJ
SExIalFBZ1R0Rzd4dApBYkRMQ21FS3RONTk5OTFBZGFKOE5EcklneWNjN0pURDh4Y0NERTZiTmsw
TXhPRXhTTm5NNEFSSEhaT3JLM1RUdllJMmdxWWJZS0FQCjlTc0E2b0I3VWFnR2ZmTEpKOElUcUZ2
aEhrSFhJS2pCWGE3aUZYYXVvVmFEdVlEQWNrb1l1dTY2NndxNUQxVUx2bWh0Z3VDRGVoVkEKNEVL
LzREcjU1Sk5QVnNseWpVWXIxbHhRYmRhZHU2Z3NXbDFPQVZCbm5tTE80cjNCWEx6ODhzdGx6c0VG
c2ZJY3ArWjJvWTY2SG9MTQpaVlZVcVI2NkJWamtSK3ViMzN4RU9haGx3SE1UM24yMzhJMThKK0NV
REhOVm5UNDU4OXozQ0dZSndIeUMyMW9uQk8wSDVqUTg4QUVnCmdFQTlFeDc2OEIzQzk4cnBwbHVR
K0UrUWR5M0lPd1A2K0NaeHpCeXB5cTBXcGpaeFZCOEZpZjhvYjM5UVE5eSt2WFJFaW9iQXNYTmoK
SmRxeExpSmdGTGdDMEgxelF4djY4UGd1dEcxRlJEVlg4YUkwWFhIcWlmZGR2V2VwMWpmOFZrSjR4
L3NOY0FycFFkc0tRYXR2Mzc1UwpMQkU2UWV0MTQwTzRkMjlFS0p4VUh3L1ZUcDFyS3ZkRloxNmxj
dnZkL05mcGo3dE1tWHptRno4aFlLWVZDVzdGdStNUzRFdmxzVHRWCml4ZFludlVnV0IyQ0Z2SnVy
OFVMVTR0UFF5eDI0MnRkZlBIRkVyeFBGV0lEWW91UDRPeTZlT0ZwOGNMZVlnTjF3VmQxSWJBWXEx
aEoKTVFReTR4TU9DZUwyNG9zdldyd0l0dGlybGNVTFlrVldycXpXWVFkOUF4MWVqRm9jWDhKaTNk
UkNlSGdJMGplT1pTSHQ1WVc1ZGNNTgpOMGp3TTBVd1NKMStkUGlsdFBqSFFPcEJnRVkrTWJKNHNX
MnhZR2VoL3h4SHhlS0ZvSVZBYXJ5SXN2bUg0SFlzTEtqbStGN1pQc0d1CmcwKzRMSTdiSW4xaFY4
a1d2MmdXQ3lnV0wySnRHZ2ptMXJKbFM3c3VqcFZnY1JSN2l4ZWFGdi9nV0FnNGlIRkh3RVMwbHhm
OWR2dDUKMFcyeFcxMmhCVjVqUE5BWFBpR1FzZU1Gb3NVcWVSWUxpWVg0R1l1VzdselFHVisvdXVL
WnAzektZTEZyYUp0ZmFpNnJLNEo0WXI3bwpnTTY4WW85WjFrVVhYV1RYMTdScFU0dGppQWpmL2Zx
bTZ2ZWJqK0FmMjFwSjRGRTFqcXFjODRwZ2V1Z1grc2luS2hZTHR4YWZqRGxSCjVCNXpGM2tzVU52
dEJUNitGWW4yQTRFMTFkeGo3M3pXS2FlY1luRlVjb3MzS0tRdTkzZEM5MTFEdzNYZkdkNllrSHJW
V0NPWUtrZSsKdDdLenN5MFdTTzN2RWdzMUVud1ZRUlB4ZmNON3BNcGdibk04bmlLOGN5Y29mRndU
QlNldHNBTVJibDJTenMwajY4UCtuVXBzZ01ORQorWnZxNWIyQ2Y4YlQ1bkhqeHNrOFB1ZWNjK0lw
SGtvWmRteGhzWnZyVUdnWklvbHhJS3g1bFZncndpdWRDdjF4ZnF2RDYxazRsTXFCCkREY3dib0Nr
cDhCTkNqdWcyTm1EbTFFbm5zSjNYcUVxeFlzWDJVV0hlOHdnNmlkT09zNTdxRmdncGdqaVJHQ1hH
Y2ZHNm1UQWlZZDcKdEIyZWhMQ2JpTjFPWlNRTy9BQUFBQ0FBU1VSQlZKVHN4bFBQdW4xRHZZaFQ0
dFdmSUhYNjBVR2JjS3JCaTM3YnZTN1VuSlM2akdwegpvbGVjVUhCVTVrSmsvT3FCalFZTS96a0N1
NVFCejVUcjNFSkVvanhndHh0ekFlTUJJMFhzRG1PZUlQZ2I2QWFCSUhNQmRIWEhOMGdiCm91RmlI
aURlVGYvKy9VWDlBdjNFUElSeEpxNTRMM0NLNXQ0Rjk2TVhaQzVIbytPWDdqY2Y0WW9aSjNQT0FI
OSt0UFpuSG5pTWswSEUKSU1IcEZ3RHFZQ3lJeU1tZFV2MXl0akhJdXhiMG5YSFdFL2E5OHh2cy9s
WUhyY3RKaXdXUW9NV0w0SmV2VUVBRitaRjNldUQ3YzZsbQpaaTU5T0tBejVXN2NQK3BXNVN0eGUv
TDh2ekhsMGl4S1N5K2cvSnkwSXYwNWo5VVFvd0ZPWTVWM3MyZzR5VWpIbUR2SExaRTZFQ2dXClho
Qmgwd21WMFhnQko5dFExMllCUkp4dnhFc25WcmxvZlI4NWNxVFl0RUNGZGNxVUtiSEllT2JEK1lw
eW1PT0pVSUlTb1lJS2xUaGQKOStSUTBRMzZXK3pIamtUblZhcU5SYUw5OGVPVmJwN3puVS8wdTY5
YnB5NWVxRzU0M1pWaXNhbTc0TVJpQllISHdnUVZlUnVMZnhWVApJUnA5REZLc2dIek9zcnA5NHhN
WVo3RkM5MEhxOUtNRG9sQmxjMExZd2dkb3U0VVBwUG5Wd3p2clFMRkJkeTdZQlZ3MzBJdU9WemM2
CnlGeEF0YnJqNjJwaVhJK3crOEJISHorQ0FLKzVDamZSdWgvN0lQTXFyZ1p6SWIvNUdLL1RpSGpi
a2tnNWJEUjRDUmwrTklPOGEwSGYKR2I5NlMwSmVxNU0yVWN2ajJlNk90N1dxTnMyajdTc3IwNEwz
NjlIcTd5SnhTOXg5YUhmV2VtcHlaQmJ0M3BGR1ZlcnRwcld6cWxONQpYdGdMT0xiR0ttVHNvV1o5
dGxMbXdNMjA3SXM2dE9TenVtNVNGTFR1SWdRNG9kM1o2Nm41TVZ0bzgxOFpWTFZSSHBYalg4aFYz
OWFrCnhlUHIyZWlOajhpaURwZXVwYXdsNlZTd3V4dzFPSFE3TFpsWWgvNTZPMklYQVVRczVMQ2c1
Uk5KY2NnQmxXTFlUa0I5RUNxbHNKZDcKOXRsbmJmVldsTUZtenZqeDQwVWRHT3FsZkVxSlpCc2d1
TUF1OFljZmZpQStxUlRuTEVPSERxVXJyN3pTWGdSQ2ZSRDFJckFuMUg5aApqd1VoZ1UrZEplNFY0
bHJCNXRKclh0b1ZoWERESisraWNveHZFUVIyeElaQ085MkJOcDFWWVZNRE5wK0kxd1YxM24vODR4
L0VwKzJlCm00YTY5S0grQy9WcXhFbUNwMEUrNlJWMVYzeHJRUjl0d3FJTStkanNBa0NkR0dwbXNj
WUQ5bXRRM1VRNWJMcGd6S0VTN09kUVEvVlgKWnl6NWRFZzgvMEVORStPR3VHUUFqQi9VdWNGWDhG
ZTVZRmUwdmE2eCtvSStRN1VhNnJEWWlFRk1LZ2lXVUx2MkFzd3AxbXFRZVlkeApnMG9lNWlzTXhR
Rmh0aDMwWXJVL25yRmdUUTFSZDhaR0tRQUJ0QkZpUUcwVzQvMkVhaDQycnA5Ly9uazd1TExPMkFs
Qjh5YzJCL2psClN3aTRCdnhNeVArRUNKbkNoZ011RGtDZEIzTUxxbU9sRmFBNmd6N3l4ejlxRi9t
SHhtSTN0Vkh6VFVhNEhJaW1naFZ1TGNWUFRYMm4KY1UwVW5MU2dnalhtc0s3V3NxOXFXMUNmK3Zp
a2pxSTY5YzRSaDFxTFA2M0RWWkcxNEtONkxuV3FydGJDVCtwYUcrZG1XT09PN2hMSgo2OTdWK3Yy
RnhvS1BNaDhjMzFuU0o1elJRZEx6Y3NwTDNveTdXeGFpRmJ6dWJvWEtLeFd5NmJkbFdybGIweXkw
TzVMV1Zkci8rNHVOCmJmekpWN1MxOXVTVDlmT1RUZTIwNzI1ckplMUNlVVdMRjcwVzJ4bkt1dzBW
VXQ1Y3MzaWp3ZUlGamNVTFZrbm5UUkZyMXF4WlhOYXkKT0RpbXhRNDFMRDQ1bER5b3FUcUJUMzVG
QlpWUEhTeTJXYkI0dzhKaUlVVndlY0ZybzM3MTFWY1dMNjRsSFNxNWJJZG5zV3R2aTExWQpXeXhv
U3pyVS9CS0ZhS29sdkRpejJHMjJ4WnQ1RnI1YkFONlZ0bmdEUmVwbWdVblMxQitsZ3NVTGJDbHp4
aGxuaUhvb0MwaUN6NmVSCkZ0dkVLSFJSTDlhbHp3dDJpMC9maFE3VWdQRU41UURIRnA4K2ljbzNl
QWlWVmN4bERvSXFLdDlzcHlpcXZiSEdneGZnRm0rYVN0L1EKT0tqUm9vOXNXMmEzTmRxTjdsaWlQ
RlNuMGI0QkF3WVVJZ2RWV2ZVT0ZzcndlSWpWRnhaWUxhaUpReVZWQWVZWjZLT2ZUc0RjdzN5RAoy
anpHRmNDbnZLSk9DNzUrLy8zM05ubzhiZmVhVjdIYW44aFlRQVdXaFRqcEt3dFNkdHZWRGVZTkMy
ZnEwUW95ZGlqazFSK2JXREhkCnFIbUNhNnFCL3hrenQ5aUE0Y0QrNG9BeTRHWjkrUDNWaEtUWEM0
Y0kySVhIemlhQzdHR25GT3BtMkxuRXJndmJRaEVNMHBYUmROSWIKWkNxd1BlY3Bwd21HSmJFNTBQ
N2NkZFRpdUMzMDg2UE5LV2ROWlNsUXNMczh6Ynl2cFp3VXREbHRvNXhRS0VxWkoyeW1BMDdaUkQ4
KwoySUoyYjk5N0VHK1ZZeTlZaldsUDNsNjFYaXdMR0xLWHB0T2NWNXZRbXU5clJCSmNmNFBXN1Nw
dVA3WTRmZ3ZsYnE3SXB4cnFaN0VjCjE5dVl5bGZjMnhER1JCL0xzOFlWOEJSa0xZd1l4VGZvdXM4
WkFGUXY4TjRDb0ZJSjV4ellVWVdERTZoVDhvSlN2TEN4cmFIZzRQUWQKTHJpUjdnWFl1Y2ZKRzA1
R29QS0NiNFl5bkliekJBUlpCVUNMQUR2a0FOVExDMjV4cmdBdmUzQlNnaDF6RmxKQ2lhY2psYmor
b0o5UQpxOExKUldabXB1VGk5Qm03OTloZGh6dDhuRjY0QWU1OFlXVDgvdnZ2U3o3VVRuR0NEa2NW
VGsrSFFlampkQWdxVmdDY0VzQUJEcjZ2CmNPQ0FVeVR3VUoyTXd3a0oyNEhKZi9BbzFuamdaQXZx
M0tvOHlzQXhpcGNEQzJtQTQ0L3VXS0lJMUkyOUlGcTZGMjZzdm1DOFlJanYKVkU5WFRnWjRnNndR
U1p5a3dla014bEgxSGFkRlVLUER5UUNja0NpSTFzWm82YXFjK3hxci9ZbU1CV0tEc2YybFZJbFRK
U2NvRlhJVwpUdTNrSUdObkZ6STNVVG1ndnJSUkVVeUc0Y0QrNEFDT3hQRWpCc0NQRUk2SDhhTlIy
Z0NMQ2h3Rjg4NmYvUERpR0JpdXJIR1VqWmdrCldFRGdZdytiQ2dQSjVRQlVOSlE2SEdxQ0sybkV0
REhnendIWVFYUytZZzNiY0JDdCs2bDZJV1FzNWhkK0ZGRmZPbVJZUk5XaFhBV0wKdWx5em1nV0x5
clQ1ejZxRjhLMkNjcFN6Tm1LTHc2Y2doUUJxV2dLTzlLQjFGeUxvZXNoWlhZbHF0c3JsdHEyaWN1
VWpsY0RqMXZKSgp0VzNNdjk1cFNQUGViRWdycCsxVEtkdTkxd1lFd1JPZHdNNVg1QkUya0xCalV3
QVZGK1ZPR2tJQmJCUVZLSlZXTEdnVlFMM25oUmRlCklIaFhnK3FMK28vNXF0eER3OHVpQXFWQ0Fo
cEtyUk41c0VWRVc2QXFwTHlvcVRKaFhLRkdpbzBTTE9hZDlZSTJGcXZzdEVTcWdiMmIKRytCOURt
MVRBT0VEM2hJQkVDSjQ1MWJVVklQU3gvY1ZnTEZBSFFCcyttQlI2d1FudjUzcFh1T0IvRXdXcm5o
blhsUjRzSGdId0hPWgpXc3hLZ3NlZm9HT3BTTGpicDU3VlZlSDVYYVAxNWZycnJ5Y0l3dml0VWFC
c1FHYlBucTJTaFA4WU8veEdLVm9xVTNsc2hLRHJCbmNiCjFiTzZ1dkdqUGFzNjNlWGlIUXRWejdC
aHcrUVdRakxtbVFJSXloQmlGY1E3ZHFxOHVSYmxnQkZBaXZMRXBLUUFCN0RMaHgxQlB0S1YKLy9o
Qnd3OWJhUVM0aEI0MWFwUVlQc01nbWoyN2lRRTZlME9pUVlNR2hXWTRXaHA1RjJhZnNBT0tuV3Mx
NTNBaXRUK01oY1BzVTNIUQpxdG1hbzVaWEthQWRMRGk0WTNlZ2ZyVlloNDFIZXAzZFZLTmxydGhY
YkdQN0VDK0FFS0lMUWV2Mm83dDRRajBxNExWa2gwdlcwb0MzCi9xUkdSMFJPWHJjdXpMQ0xiVnVX
VHI4OTA0enlXUmlxMm5nWGRicHlOWFcrZXJYa1YyUTdGVjNBYVlDeWljUDc3Z2ZZaklIUUFBRUUK
UnJiTy82dzJJNmNMc0JIUUFiV1JBYWNjWVFPY1pPRFVFRFpnWHQ5cXRjQ0ZUWVBidGJpWEVUZDJw
d0VRYk9BVUloNzZPT1VBUUNqegpNNVoyTDJxbGtNOGZWbXNUT3hXNFR1L2V2YnZZclFBOWxqMVpt
R1BwMDd4QVdRaGlDL3NrTFBDWHNqMEhmbmR2di8xMm9RSGJDd1VRClJoRExDL1k4Ym9EQWd0OHFm
RU9MRytJZEM5Vk96RFBZWGVJOVZJNElJSWpBeVlMVERpc1Z4MDcxb2FSZVMrZUtycVNPaG1tM3pR
SEUKWkNtTDROd0ZMSXY5MzU5OVZ2RnU5bWNiU21MZDFadEZGck1XcTFCNUFRUVRMT3lodWxTTmNW
V2dRZVgxeXF1TXBPM2JqSXlLRXJSdQpwK3FVbStpV3Z6Tm84dVh0NmNqN0YxUHQ5anZwMkdjWDBQ
eHg5ZW5uSjVxVGxiK3ZiMVdiN0tMT1Y3SFF3ZTM3NDhVbUJJR3BGYXVVCkVlM0RjZFAyZXNaT1BM
enR3Ym1FSHlnalk2akZ3QmxGcW9JU3BLSXQ5Q0dZd0xnY0p3YkFkYXI4ZVBVSnZ3RTRPWUd3Qk1F
bWJQck8KT29NS0lJaFJCclUzeERpRHNUODhHT0wwOU1rbm4vVGR0RWpWc1dSN0hWRWhBeDlnaUkx
eHdnTGN5UmZsaFJFQ1lTcEJ2R1BoN0FQRwpEakc0RUk4TGFvd1FSREQvY0dxb0lGWEhUcld2SkY3
TkNVaEpIRFhUWnNNQnd3SERnUlRoUU02NmlNcFVSc004YmxGUnFjSGk5YlZ5CmFidGpmU1ZLWXhl
M2dLcU5FdCtGRDFxM1ZPenpaK1B2MVdqaWVRZlRvby9yc21EQlhySE8ya0I5SHR0M1FsSHpnSjNV
LzgyL2FOZlcKQ2pUanpsYVVzOXI3Rk1lbkNqc0xRU1FCMklIMkE2VjZvaGFBZnJqN013L3Vxd0ZR
bVhXcXNxZzJRVEJSSngwUXZtSUJoQS8wSFNwcgoySmdKbTM2cyttUGxZK2Njd2djQ21hSnZiT2d2
cHdCKzVWSnhMR0Z6aU0wWG5NakJZNWhTVzNQM1E1MG13Yk5ZcWtFOFkrSHNBengrClFaMFI5aTJ3
UFlYYTh4VlhYT0ZFc2RYT1V2MDlMTlRvRkg4d0FraUtENUJwbnVHQTRZRGhRQ3B6SUd0UkZWNXdF
Z3NXRnRYdG1GT2sKcVRWYjU0cUtWdDYyTkZIVHltYjN0WUJhYlhkU1JHZ3BVbVJ2UXV3VGhhQjFS
NnNKNlMwSDRCU0RLQys3QWh2UFo5S1VxOXNSMnR5MApkeGFmM09SS1hzKzdsbEo2N1h5YU4zS2Z5
MTNKQ1BnSHhzb3djc1h1clZxVVJpT2hCQlFZbXp0VllwejRNSUJXdGdqTzlPSzh4d2tOCmRzeHhZ
Z0dqY2pmTW16ZFBUakt3ME5OeDFRMlZINXdROWVqUlExUzZ3cWJ2Yko5enA5K1pIdTErekpneGtv
WHdBVmlzVHA0OFdSYXcKSENTVU9DaHZ0R0syc0JsMExKTTV0a09HREtFTkd6YlE4T0hEbzdZYkdW
QWJCTUEyY2Y3OCtYTHYvQU9oRS9aSmJraG0yMUZYdkdQaApiQ2RVeDhBSEdOSkRyUkdxMEVvRlVP
R1ZsUGRRdGJja1hJMEFVaEpHeWJUUmNNQnd3SEFnUlRtd2Uzc2FMZndnWW1nT3oxWnVxTmM1Cklw
VE1lek95YU44eVA0T3lGcWVMU2xhSFM5Y1VRaTlmc1lBcTEyUnJkZ2JFL25CQ09mVnJwYTZjR2JS
dUp6MzMvUUduYktSS05TSjEKSTI4OUc5VC9PYXFob0ZWcmtzZEJCL2RRN1FNajZpYzFPRkNpZ2pw
NzAyQmM3d1ZlQ3pBc21yRFljWHA0UWxtbGpxV3VTSVA5VzJabQpwaXdTb1NyaXR0K0FCejJjRWtC
dEJ1QjEraUFaL01kSlY2V3BLMVNLNEgxUEI3enFnSjJGMmpWV25yaWN0T0Q5QzRCWUh6cUFSVDBF
CkEzYm5LdWlKMFBkcUw0Z3E0UStDamhjb2ZxbXJ3b0VBZ2FDNENqQkc4SEFHV0xwMHFWeTkvZ1Fk
UytWa3dDM1VLQUVBL2RMMTFxZjYKb0s1b0g4ckM0eGdBOFdrVXFEVE1VUVVRQU9FZ0JmTVpYcTln
eTZNQWdqSDYzNjVkTzVWa08wZ0kwdlpvNHdTaXF0M3FxaXFLZHl4VQplWFdGQVQzbUd4eEV3UHVr
RzRLT0hjcjc5UWY1UWQ0NTRKYzJjSHpLUzF2WFRIOE1Cd3dIREFjTUI0cURBNzg5MjR5MnI2cEVy
WGtSCjMrZ3dwOXRzaTVyMVJXQy9LaHlvcjRFMEJUWVRQei9lWEx4bXRUMWpJM1c3YVRuYlhPemdF
NUVkMU9PVzVYSmFBc1J1TjYyZzVzZHUKc1p0ZnVWWmtNWlJlZTkraUNKbEI2cmFKZWR5VVp3SGk0
Q0ZyQytXa3MrSDhqblVWYWVQc3FyUW5ONDAyellsNDdlcDYvVXB4eWR2aApralhVN09pdDBoZW9s
RFhsZXdRcWRBSVdkbkIxcWdBTE1weFl3S1V1QXRjNUFUdlJBSTZ0WUNmREVRS01uYkU0Z29vTWRO
UGhqVWd0CitPQUI2OVpiYjdYeG5ZdFQ1Y29jbVZnTUtlTnY5eUlaQWZYNjl1MHJwdzB2dnZpaVRT
dmFqVkpEY1M4dUgzcm9JVkhod2FJUUFvUUMKMUEwWHVEanh1ZkhHRzFXeXJaSUZBMStuTnpDb2Nj
SHpGN3hld1VtSGdxRDBzWk1OZ0kyRGs2ZUtIanhYQWFCS0JRRUp2SFM2WS9VYQpEK0JqWVk2Mk9B
RUxjcWlXT2R2cnpNZDkwTEdFOXpRNERvRFhNZ1FGaE5jMEdJay8vZlRUdGcwTjVwTHFwN3MrNTdO
WFgrRFlRTm0rCmdUN21LVHhPUWhVSmpnU1dMVnNtOXdoVWlHZllTRURZaFJvV0JCSjRGb01kRE94
NTBEZTRPbFlRVDl1anpTdlE5R28vMHVNZEM1UjEKQXVaQ3YzNzl4RDJ6MC9oYzRRUWRPNVR6NjAv
UWQwNjFvMVJkK2NPUUVEQXpzTzBqL3hNaVpBb2JEaGdPR0E0WURpU05BK283ald1aQo0S1NsZ3U4
aG9PRFNTYld0WGR2U3JEL0hOTEMrSDlIU1dqNmxsclZvUWwzcjNTTlZjTDk5UVFDL3VxS2R0WDEx
Slc2S3JJMnRyWXZTCnJhK0h0YkcyTGs2MzF2NVl6VUxBUWREOC9QeURyTGx2TkxUeTg4b0piczc2
aXRiUFR6U3p4dlk1eEE3OEY3UnUxV2JuZGNYVW10YTIKVlpXc1paTnJXVFB2YjJIOS9WNTlhKzFQ
MWF6UHpqN0lydWVyeTl0Wld4YWtTenUyTEtoaS9maEljODdyYWkzNHNCNEhveU5ydyt5cQoxaWVu
ZGhUMnFrQ3FyRk52OGU2cUJCTGtCWnZGNmtjV0N3OFN2RTRRK1E4Q3kvSEpnTVdMTy9rdFJSQkJk
bTFxOGFKY29ValFQTjRSCnQzOXZlVUZvc2Z0VWErZk9uVFlPNzZoYTdNTGJ4bUVCeCtLRnRjVUcz
QmE3VDdYVDJldVB4ZXBDZGpuZzhBSkw4bEUrR3JDZ0lJRUMKMWZpenUxeUxZeU1VYXVlV0xWc2tV
QjJmV0Zqc1N0ZmkweENwbTNlVkpkaWZrelo3OTdMWTNiWEZpMW1MVDNrc2RtTnJzVGNsNjZpagpq
cksrK09JTEo2cDlyMHNmZ2ZBUXhGYTF0VmV2WGhiSEViSHBxQnYyZkNjNENNWjN3dzAzeUxqRUdv
OVRUejFWMm92QWlTeXdXVmRkCmRaV01MeS9NRlZuZkt3SWd4aHBMUllEam93aC8wQS9NQzh3VFhu
UmJtRmRvQjd1THRmZ0VSNkVYdWNicUM3dHp0dW56Q1lmRjd1K0YKQit3MldZTDBzWUJpc2FCcDA4
Vzh4dnhSZkdVWHh4WUxKbmErODBhMzdYN3pLbGI3RXgwTFozdkhqeDl2WVo3NmdjN1krZlZIMGRa
OQo1eFIrdkZjMVRyaW1HdUNMam9rVU56aDFKeE1rRlhjYlRFSERBY01Cd3dIREFYOE9oUG10ZHRM
aVJYeWhpcUhHQkxXa0FqN3AyUEpYCmhxaEpGVUp3UFZTcG44ZS9qT1VvZDJORnlhbGNLMStNdkYx
b1dvOUI2M1lTaGZvWDRwWlVyTFpIWE96bWJxcFlLT0NnRTdjeW44THMKMmhKcHIwcUh5aGpjOHdM
T1kxV21YMy85bFRqcXVjUUFnYUV2QWdOQ2JRZUIyS0o1aWxLMG9sM3hHd3R2UE51M2J4ZTZ5akE0
R242UQpkTFFOTzl0UTZWTHVTSU9VZCtPQ0hsUjVvQm9HUGtDRnlnL2dYUWs3L2ExYnQ5Wnk1eHFV
dmwvZE9CR0N4Nk5ZYlZRMG9BWUhJM21jCjJxQnNvMGFON0JNSmhSUHJHblFzY1lyVHNtVkxlKzVB
N1VtcGtNV3FTeWNmSjBRY2diNFFxbDhkVUZ0allWQWNCRGkvQjRVSTdIMUkKWnR2REdBdlZab3dK
eGxTcHZxbDA5elhvMkxuTHErZXczemxGMTNsMWpnM2FuVXBnQkpCVUdnM1RGc01Cd3dIRGdTUnhJ
TXdmSWljdAp0d0NTcE9hWEtMSmVBa2hKNkFCaTMwQ0Z5SzBhVmhMYWJ0cG9PRkFTT1pEc2Q4NzVy
VTQxQWNUWWdKVEVHV3ZhYkRoZ09HQTRZRGhnCk9CQWlCM0R5QVQxNEkzeUV5RlJEeW5EQWh3Tmwv
WjB6Z1FoOUpvZkpNaHd3SERBY01Cd3dISWlIQThvQVBEdmJhWlFmRDZYaUtYUG0KbVdmYWJtS0xw
MFpUaStGQTJlWkFXWC9uekFsSTJaNy9wdmVHQTRZRGhnT0dBeUZ6QUY2ZDJKaFhxTUtqRXp3TC9m
REREeUhYRWk0NQpGZWNnWEtxR211R0E0VUEwRHBUMWQ4N1lnRVNiR1NiZGNNQnd3SENnRkhFZ1RG
MWdKeTFqQTFKMGtyUm5kNlVJTnVnRXVQSHMzcjI3Ck04bmNHdzRZRGhnT0pKVUR6bTkxcXRtQUdB
RWtxVU52aUJzT0dBNFlEcVFHQjhMOElRcVRWbXB3eDdUQ2NNQnd3SENnOUhFZ2xiL1YKUmdXcjlN
MDMweVBEQWNNQnd3SERBY01Cd3dIREFjTUJ3NEdVNVlBUlFGSjJhRXpEREFjTUJ3d0hTaDRIQ2l5
T3lCZlEzN3hPbWJCdwpZbkZVcHg3UTBNVURMZ2ZjNDdnb0JiajFCUjA4SFJ4bkpVSHhuV1hOdmVH
QTRZRGhRTEk0WUFTUVpISFcwRFVjTUJ3d0hDaGpITUNpCi9NKzhQMm5oN29XVWIrVnI5VjZuVEZn
NHNScWtVdzlvNk9JQkZ3TEFXMis5UlI5OTlCRngxSElrZVlJT25nNk9rM2hRZkdkWmMyODQKWURo
Z09KQk1EaGdCSkpuY05iUU5Cd3dIREFmS0NBZDJXYnZvNTEwL2krQUI0V05tN3N5WVFvaE9tYkJ3
WWcyRFRqMmdvWXNIWExqZwpmZXl4eDBUd1FLVHZlKys5bHhDNTJRMDZlRG80VHJwQjhaMWx6YjNo
Z09HQTRVQ3lPV0RpZ0NTYnc0YSs0WURoZ09GQUdlQkFCYXBBCk9RVTV0S2ZjSHNyamZ4QkN5dk0v
UDlBcEV4YU9YenVRcDFOUEVEemdWcWxTaFZhdFdpVkNCd1FDQ0NFVktoVDkyZFhCMDhGQm5RcUMK
NHF0eTVtbzRZRGhnT0ZBY0hDajZKU3lPV2swZGhnT0dBNFlEaGdPbGlnTjdhQThkVk9rZ3lpcklv
a3JsS2xIRnRJcGs4VDgvMENrVApGbzVmTzVDblUwOFFQT0RpdE9QaWl5K21SWXNXVWMyYU5Ta2pJ
NFAyN05sRGFXbHB5TFpCQjA4SHh5YklOMEh4bldYTnZlR0E0WURoClFMSTVZTnp3SnB2RGhyN2hn
T0dBNFVBS2NDQk1kNHgrdE5ibXI2V0s1U3BTM2JTNjJyM1dLUk1XVHF4RzZkUURHcnA0d0owNWN5
WlYKcTFhTk9uVG9nTWVvb0lPbmcrT3NJQ2krczZ5NU54d3dIQ2paSFBEN1Z1L3ZuaGtCWkgrUGdL
bmZjTUJ3d0hDZ0dEZ1E1ZzlSbUxTSwpvZXVtQ3NNQnd3SERnVExKZ1ZUK1Z2c3I2SmJKNFRLZE5o
d3dIREFjTUJ3d0hEQWNNQnd3SERBY01CeElGZ2VNQUpJc3pocTZoZ09HCkE0WURoZ09HQTRZRGhn
T0dBNFlEaGdORk9HQUVrQ0lzTVFtR0E0WURoZ09HQTRZRGhnT0dBNFlEaGdPR0E4bmlnQkZBa3NW
WlE5ZHcKd0hEQWNNQnd3SERBY01Cd3dIREFjTUJ3b0FnSFVsNEFtVDE3dGdSemNyWjg3ZHExNGxY
RW1WYmE3a3RLSCtGU2N2cjA2YlJnd1lLRQpod0JSZ3VmTW1aTXduV1FRS0Nuam9kUDNrdEFYdjNs
VkV0cnZIZ2UvL3JoeHpiUGhnT0dBNFlEaGdPRkFhZWRBU2dvZ2YvenhCdzBiCk5vemF0bTFMblR0
M3B2WHIxeGNhaDU0OWU5SVJSeHhCMzN6elRhSDAwdlNRNm4yY01XTUdYWHJwcGRTd1lVUHEzYnQz
UWdMaHl5Ky8KVENlZGRCTFZxMWVQN3J2dnZwUWN4bFFmanlCTVMrVys2TXlyVkc2L2V4eDArdU11
WTU0TkJ3d0hEQWNNQnd3SFNqc0hVaklRNGNFSApIMHkzM25vcnZmSEdHOEovZCtUWWpoMDd5cWxJ
a3laTlN1MzRwSG9mSVFDMmFkT0daczJhUlpzMmJTS25xN2VnZ3pKNDhHRDY1WmRmCkpFcHdJblND
MWhzRVA5WEhvN1QwUldkZWxhU3gwT2xQa0xFenVJWURoZ09HQTRZRGhnT2xnUU1wZVFJQ2dRUENS
Yk5tellUSGJnRmsKd29RSnRHN2RPamtoS1EyRDROV0hWTzhqQklYNjllc1RGb01BeS9LUGVPelZS
NVZXcDA0ZDZ0dTNyendtUWtmUmkvY0tOWmxISG5uRQpzM2lxajRkbm82TWtwbkpmZE9aVktyZmZ6
WEtkL3JqTG1HZkRBY01Cd3dIREFjT0IwczZCbEJSQUZOUExsNDgwVDExVk9xNXVvY1NaClYxcnVT
MElmVlJzVFBibElTMHVUWVV1VVRpSmpQMkxFQ1ByeXl5K2prbEI5allwUWdqSlN2UytxZmRIbWc4
b3ZLU3hYN1kzV241TFMKRDlOT3d3SERBY01Cd3dIRGdUQTRrSElDU0Y1ZVhwRis3YzhmN2R6YzND
THRjU2ZrNStjWE1aUjM0M2c5Nzk2OTJ5czU2V243ODVRaAo2WjJMVVVHMHZvOGNPWkllZU9DQkdL
WDlzM1htaWorRjFNa05PcWNMQ2dwU3AvSGNrdEkwRmluRldOTVl3d0hEQWNNQnd3SERnUkE0CmtE
UUI1TTAzMzZRVFRqaUJUanp4UkRyb29JUEV5UGpUVHorTjJ1Um5uMzFXY0MrODhFTHEwNmNQM1gz
MzNZUkZFTUFwZ0d6YnRvMUcKang1TkF3WU1vRkdqUm5uU0MxcTNGNUZubm5tR2pqbm1HTHJ0dHR2
b3pEUFBwRUdEQnRIcnI3OWVDQlc3NVVjZmZiUVl6TjkrKysxMAo2S0dIMG1PUFBWWUlCMzBBSGd5
MisvWHJSOXUzYjZjNzdyaURPblhxUkJrWkdkU2pSNDhpQnR5eCtnakJCYnYxL2Z2M0Y4UHRybDI3
CjB2UFBQMC9PUlNBRXVZa1RKOUxRb1VPcGUvZnUwcWEzMzM1YitsUzllblVhT0hCZ0VlUCtRZzBQ
NlNHZXNWaTZkQ21kZmZiWlZMdDIKYmVrZjdxRnk1d1c2OUgvLy9YZTY2YWFiUk5VTGZNSVlOR2pR
UU9xQkVUekdCOExKanovK1NPQW4vbS9Zc0VHcWpEVWVPblBGcSsxSQoweG5MY2VQR3lUeHIxNjRk
WFhiWlpUWXAyRWhoRGlDOWZmdjJkcnJmVGF5KzZNeHBKMzNNcWZQUFA1OHV2dmhpT3Vxb28raXFx
NjRpCkdGNHJDTFB0b0Jtci9mR014ZGRmZnkxT0xabzNiMDc0ZjkxMTExRldWcGJxd3YrM2R5N2c5
ZzNsSDUvK3VVWW9GQ25YU0Nta0s3cnAKZm5PSkNNbTFVbTRsdWRWVEZGSWt1Z2dobGVKUkxrbFVL
RHdodjBKUzdyZmNVMEtLMG0zKzczZiszdlZmZTUyMTkxNno5MXJubk44NQpuM21lYzlaYXMyYmVk
K1l6cy9lZWQ2MlpkNEsrbTVaZGR0bncwcGUrTkZ4KytlVkZmSk8yS3hKejBpbUJ5Zkl5TmpkNllP
c1UvRFFUClh1YzFNN2VJazlXWGNzdEZlZ2pNT0FJMjZCb3JHQkJOL2s5L0VtUS95dEVHN0hIVlZW
ZU50OTEyVzVKdFR5T2pHUllwalEySVU1ei8KczhGZzNHNjc3YUlOa3VPRER6NllvdTBMSUpvQlVz
aTk5OTU3VS94MTExMlg0aGRlZU9GMDcvampqM2N4NlppcnV5ZHo2Y0lHVmRIVwpKVVNWVzBGbFZQ
bjMzMy8vSXRWUGYvclRhTk9HNHFHSEhsckVtV0dVeXFYOEhrNDg4Y1JvQzFGVC9Bb3JyQkJmLy9y
WHg1MTMzam5hCldvTm9nOXdVUC8vODgwZGJ6SjJ5REt2akF3ODhFTTNvaWRJbFRvOCsrbWpjY3Nz
dGt4d2JSTHZhZU41NTUwVXpvRks4cmFlSnUrMjIKVytKODVKRkhSdk1zbHVMTlFDelNqM3BpZzg4
a3ExeG55Y3B0Q3h1b0pqbXFtL3JPSnB0c0VyZmVldXRvUmtLS3Q0RmhOQ09rS0dhTwovR09QUFRZ
dXZmVFNTWTQ1T0loNzdMRkgzR2lqamVLODg4NGJGMTEwMGNUd2xGTk9TZmZmK01ZM3hrY2VlU1Q5
cWQySHRVZVR2bElVCnVuTFN0QzJWelF6YlZENHp2SHVrWEhIRkZTbGVuOEZoWVZoZG12WnA2Vkhm
VTMvYmJMUE5pcytKZWF1TGl5eXlTT0o2NmFXWEZzVVoKcGV4MS9XcFkrY2RwaTRzdnZqamFnNDdF
MGd6Z291eCtvbjVqeHBsZnhweTJVNmE2K2hUQ0p1bkV2NmViOUpWaFJXcFQxakJkZys2cgpuK24z
WS9IRkYwOXRwKy9iTHNQeXl5K2Y5Rng0NFlWZHFrRjJCZ0Y3dUpSK1U4MHBTbW9iY3dtZmtmdi9r
MDUyWC9wL3paeEJvRHNDCjArVzd1cTZHdzBjdGRibEtjZFhLYVVDdXVIUFBQYmVVS3FaQmlyMEpT
ZmRzdWt0eFR6OFlTbTlQbm9zNG5kaWJnNmlCdWU3WlU2ZWUKZStZMUtjVlhEWkJjM1QxQ1N4ZnJy
NzkrVkZuTDRjWWJiNHptbWF1SStzQUhQcERLWUc5aGlqaDlFYXE4NzMvLys0czRuY2dZVUx6cQpZ
L3RjRlBjZWUreXhxQUdsN3RraTdDSmVKLzNxdU91dXU4WnR0OTIySisxZGQ5MlZaRWhPK1lkUkF5
bkY2YytlOGhaNU5IalNZTXZtCnBVZDdVMUxFajNMU2IyQ1YyeFp1Z0N5d3dBS3gvQU9pdWkyenpE
S3BEanZ0dEZOUnhGejVHanlLZzR4R0dSc0tkOTU1WnpJd2RQNzkKNzM4LzNiYzNkcnFjRVBxMVI1
TytNa0hZNHhFNWJYbk9PZWVrOGxVTkVOczdKY1dyYmsxRHY3cms5R2w3YTVRR2ZROC8vSENQV2ox
ZwpVRm5VUGg1R0tYdS9maVdaL2NvL1RsdEk3dWFiYjU3Sy90blBmbGFYUlZBZk5HY0x4YlZPY3Rw
TzZRZlZSL2NuSTZoZC9HOWNmUzVICng2a01la2dndzNlMTFWWkxkYXMrQ0dtN2JPWXVQRDJjMHU4
QllYb1EwTU9vdSsrK085cU1ndFFIYm52OHdXZHU2U2E3TCtXV2ovUVEKR0lYQWRQbXVmNEFrdGdB
QUlBQkpSRUZVcml0N3ExT3c3R2w4c0xjRWFZRzRwaStWZ3cyK2kra2orKzY3YjdwbFh4eHBpcE9t
ai9nMApJYytqUmNtYTlxQlFub0tsYTAwaFVpakg1K3BPQXZyOHM2ZGN3WjYySmxmQWVoMnJvRDFK
TkJYSXc0Yy8vT0d3MTE1N0JYdVM3bEhCCm52Nm1jNzBHTGdkN09wY3U1YmJXZmlpTFcvUE5OMS80
d2hlK2tLN05jT2laOWxGWHh6dnV1Q01jZGRSUllhR0ZGZ3IyUTF2OFhYREIKQldHeHhSWkxjdXhK
YmlIZm51Nm5jM0VxdDRlbU5xa3NtaDUyNjYyM0Z1bmJPaG1uTFd4d21jcm1aVEhqSTAySjBiWFdh
VmduVHU1NgpjL3FaOHRyYkp4MkMya0k2Rk9SbHpkNjJwSFAvVis1VEhxZGpYWHNvdmtsZlVicHF5
RzFMejE4dG4xLzcwZE1OT3ZhclM5TStyZmJWClozampqVGN1dUxpK3d3NDdMSngrK3VuQmpFV1BL
bzdWTXZxMUg0dUVRMDc2bFgvVXRuQjEybnRJd2Q2WXBYN204WnJtcDZtTUhrWnQKTzgvUHNUMEM2
anR0ZWVOclVxcTV5UU5iay9yTWhEUnk4RERJYTJiVE9rNTJYMnBhTHRKQllLWVNhTlVBdWVhYWE0
Sk5YMG1HZzN0OQpLWVB6d2JwTnFVcHorbSs0NFlhZ0gvT1ZWbHFwbkt3NGQ4OUlSY1NBazF6ZEEw
UUZlNlVmcFB2Z2d3OU9ocEc5elVuSnRTbWlCeGxOCm4vdmM1OUlBVEdzV1B2bkpUd2F0QTFIUVBQ
V21RZXRqdEFHZndpMjMzREl3bTlZbnlHaVFBYUpGdHVVL2UrS2NCazQyaFdtZ0RMOXAKMDlqU3Fi
MkY4YWpXanVPMGhiMEJtVkNPZGRkZE44VnA0R3RQbzhNbzhoZGNjTUVrUTBaWm5WYzFWNW83R0c3
U1YxeDIrZGhtVzVibApqblBldEUvTHdOYmVMM1dmV3huaFdpK2w5VTJUSFVadEN5K24rdGthYTZ5
UlBvYzJIUzFGeStEVm1qT2JEdWpKMGpxaHRqNkhoVkJPCnhpTGd2emU1bjk5UmxMcXVVZktTcHpz
Qy9yM3V4MUUxZWZ0T1JsOGF0WXprZzhCTUlORHFSb1ErZ083M0JhQTNHaHJZNjYyQzB0NXoKenoy
Sm9kNEVEQXBOdmdoeWRXc0g3MzVCaThtMXkvb1dXMndScnJycXFyVFExOVp0aE1NUFB6ell1b0Vp
bTczcVRZdVpWYjVQZi9yVApxVzRhckRRcGJ5SEVUdlFrL3Y3NzcrOVpSRjYrNytjeTJCUzA5NFlX
NjAvWDBHWmJxSTR2ZXRHTGd0Nmd5VmlTZ2R1Mi9ETEgzTFpyCjJsZktPblErWGR1eVNaK1dBYWdn
ZzNBNmhWSGJvbHdIZmM1dENtVTQ1cGhqZ3EzWENqSkUxUC8wMXRERGRHMDdMOTlVSC9WZ3BPNUIK
UXJWY051Vmw0TU9BYXZySnVwYlJtZnM5VUM1YjAvcExqMEpaMTdpNnkrVm84N3lMY3JYUi9uSzJV
aDAvbEhtMnlXQlVXVjJ3RzdVcwo1SVBBZENMUTZoc1FlWkJSc0xuMVBWTVl2TUl5VFB5SFNZTnVm
VkVyM0g3NzdaNWs1R091N21HSzlEUlV4c2NPTyt5UWZpUnQ4WFo2CnN1djViQzFIZU5uTFhwYmVY
dGc2bG1LS2o5L1BPVDcwMEVNcCtUQlBSajcxeEFlQU9Ub21NMjNiYlNIalEzWFhENDJtanJVdGYx
dzIKdy9wS25menAySlpOKzdTL1RaSm5zZWtXUm1tTGNoMXNyVWFhem5qbW1XY0dlVHc2N3Jqandv
NDc3bGhPVWt3N20rNmZ3NTVDVDhKRgpVdzlrbWo0cXp2MDhwM2xSTlVWM21MYy9UenZvMkZUT0lF
OTVrdCtXQnpZOXBOSTAwRzIzM1RaNVdKU25TTVhKUzZKUDN4M1ZlMXpUCnV0YnhHdFZ6WXE3T3B1
MWZWMGFQYStvMTA5TTM5WmJvNlFjZG04b2ExcDhHNmVBZUJHWUZBYlBPeHdvR0tTMzgwdEVHMG9V
bkdYUEYKT1VHdUZtQXJuYTFYU1BmTXBXVzZ0cmNpMGFaaVRVZ3ZiMGhLYis1UWUrN0o2NG5pelMx
dUVaK3J1OGhZYzJJL0JqMnhXc0N0TWt1bgpMNUMycDZMcDJqMTBLWU1aVWluT1hPejI1TC95eWl0
VHZCWktWb01Xb3NzYmt6Mjk3YmxWVjBkZlNHMXpubU4xOGE5bnRtbGdhUUcvCnJ1VlZUR1cySjBK
K3V6aEtuKzVwNGZ3NG9XNXg3U2h0NFl2UXExN1NWTGFycjc0NmxkVUdsNm1vbzhqWGduUFYxOWJ5
MUZiWEY2RnYKc01FR3RmZnIya01KbS9TVk9vRzViZWtMdWVXbHF4ek1pTy9ieHVWMDVmTitkV25h
cDMvOTYxOG5uZnJjMnR1QXN1aDByc1djWlc5RQpvNVM5cmwrNW9uN2xIN1V0WEs0ZmJTMU1xdDlI
UHZLUjVLbk80LzJZMjNiS042ZytMcmZyby9xLy80MnJ5K1hvcUtERjM4TThCK1o0ClRtdkx5MWhU
T2NNODVlbTNTNTRaKzNsZ2JGSi9mUzdNbUkwMnpTL2FGTWFpQ2ZUNzRqenRvVmNSbitzOXJtbGRD
d1dWazFFOEorYm8KekduL1N0R0tTekhVNTcrSjEweGxNdU1veXl1bjh2VDdyT2JJR3RhZjVHU0hB
SUhKSU9EZkxmNWRQUms2bStyNHYxK1BwcWxyMGxVcgo1NTUwcXA2Z2xGVWZTcVczdFJWSmtqNkVj
bStwT0gweGw0TUdWaHBvNjU0dGxDN2ZpdmJrTE1YYjA4bWUrQnpkUFJrckY2OTczZXQ2CmZpQjAr
NkNERGtvNjlTVnRlM2tVaHBZdEFDOXluM0hHR1NtTkRLZHljQU9rR3E4MEo1eHdRc3J6Z3gvOG9K
eWx0bzd5V0dVTGJWTjYKdVFVV28zSTQ0SUFEb2swRks2TDA0eUIrZFFhSWZnUjFyODRBc1FYeEU3
eVNGVUlySis0Q1dEL0E1WkRiRm9NTUVGdW9uK3BRTm1wego1YnNCSWxlTmRVRXVhTVZqblhYV3Fi
dGQyeDVLT0t5djFBcXp5TnkybEl0SWxXL0ZGVmZzRWVuR21lNnBYellKZForZm5ENnRIMklaCjJk
S3BmbVJUS1F1MU1vemw1bmpPbkRsRjNDaGw3OWV2SkxTdS9Jb2Z0UzJVdHh6azRVaWZHZFh2aTEv
OFl2bFdPczl0TzJVYVZCL2QKei9uTUtmMG9RZlh4djFIeWwvTzRIQjBWbW5nZ3kvR2MxcGFYc1J3
NWJsaktzSzd6bEtkNmp1T0JUZDRmeGN2Mnc1S29ubUJUL05LOQpzZ0hpaG50VHozYzVkZTFSWHJx
dzlZeEZIMm5pT1RGSFowNzdsNHJVYzVyck5UUFhXNktVOVROQWNtVTE2VTg5bGVNQ0FoMFFxSDVY
CmQ2QmlaSkd0R3lCNk9tMGVoNUtMVnczV1BlakpoVnljNnNtN252cDdrTHRlVy9TVnZ2VDBaYWJC
dXI2RTlaVEQzZXJweCszVVUwLzEKTEVtT29Ock8xVVdjVG5KMTkyUXVYZGhHaUhIUFBmY3N4Y1Jv
SG5LaVRSdUw5aG8reGZ2ZUhucHFyTUd6REJSN3BaN3FZbE5Va2x2WApILy80eHltdEd5QXFzOUo2
ME5zVXlkVGdwQnJFcXE2T0o1OThjakU0MGh1VmZmYlpKOW9HZStuSnZtMUtWN3o5a0x6TExydXMr
REVwCnY2bFJXeXkxMUZMcG5rMDE2VkY5Mm1tbkZYbk00MWJQdmJvTE4yVE1LMVhQN2R5MmtBR20r
a3FlOG5yUW16Rzl0ZERUeDNMSWxlOVAKR1RXNEtPOG40aktsUi9yVjV6Umcvdm5QZng3RjJrTy85
bWpTVjF4RzlaalRscll4WHZIMFZRTjhHYjYybVdLMEtZTFIxak9sc3UrKworKzZ4aVh2UWZuWEo2
ZE5pWkZQaWtsNDkrZGErTFhKanE3NnZQbGtPbzVTOVg3K1MzSDdsSDZjdHl1WFZ1ZDQwcVM2K04x
SDFmazdiCktlK2crdVIrNXFwbGFYcXQvdTEvVGZQMFMrZHlkRlRRZDdmT3pUdGF6M2VRUCtEUTNq
cmFxOE0yMHB3Z1V2M0RQS2VsdlhkMFUyK1MKOVp1Zy9aSTA0Q3ovK1p2b0F3ODhzRWRPM2FBeFY0
NCtPNnFEOWg3UzAvcTYwTy90MjdENjYyR1J2blAxL2FQNlZvTy83WGRldXU4RwpTSFcvSnNsU09j
c1BsbkxyV3RYdjE0UGVtdXQ3V0hxdnYvNzZsRHhIWjA3N2UxbXFSeG4rdG80MDJsVGw2cTEwN2VY
ejczZnBOSWN0CnFTL3BvVWsxNk1HVzZxTTlvc3FocmkrTklxdEpmeXJyNVJ3Q1hSQlFIL2UvTHVT
UEk3TjFBMFNGMFplWU5palRKbSsycTNCNnltOHUKTzlPVFMzMlFxMEdEdytXV1c2NkFwTGNpdG90
MzJvdEQrMk5vdncvSjFLWnJlKys5ZHpIdzBRWjc1dmF6NXdzOVYzZTFMTHJlY01NTgowNXNHRGFx
T1B2cm9hTHM3Ui9NdTFmTzJRQU5BN1EyZ2h0WFQ0Qzk5NlV0cHcwTDl3T3FId2RhSHhKdHZ2am1K
ZHdORWhwbjJzcEFzClBVblRsNmtNSFJrRUhwclVVVS9uL0lkWSt2VmpiUzZCby9hRThHQ0w2T1Bh
YTY5ZE1KVVJwemNJdG9BN3FpMjhRMnBnZFBiWlozdTIKbEVaVHduUmYrZnNGN2R1aWpRSmRqdmJx
MkcrLy9VWnVDNzBOa3hFbnBuckxZeTZQbzNsVGlyYTdkblJEcmxxV3BtMnRxUXkrVDRESwpxN2Nj
Unh4eFJGVmMzR3FyclZKOU5FalFZRjd0TXF3OW12U1ZDWXBLRVUzYTBwT2JDOUNpejZudjY3T2dI
MWIxSzVYRDVpWkhjMmJnCnlTY2NoOVVscDA5THVQcTFENnpGVlFOTVc3dzlRYThpbXBaOVVMOGFW
djV4MjZKY2NCbkVldE15S0RScHUwSDFjZG42WERiNXpIbjYKVVkvK1dkVngzRkNWcGI2Z3o0M2kx
MXh6elo1Tkc2WExINFpVOTFpcEs0Y2VOa21PdnRQMDFyenVUdzhJeXFGdTBKZ3J4OStTOXB1bQpL
WDM5REpCaDlmZHBpeTk1eVV2S3hTN094elZBY3V0YUtLNmM2RHRWN012R2pTZXBUdHZOMFpuVC9x
NnZlclQxTWFsc2VnQlJGNXloCkd5RGEzRmQxcWI0MTlyeWFXYUg3K2l2dk5WYlhsMGFSMWFRL2VW
azRRcUFyQXQ3SGRaeHVZZXdTRGFxYzVybnFMWWdNalBKVDdYNFEKdE9GWGVUcEhkZTFIdjN4MThi
bTZ5eko4YXBQS3JMY3g1UytuY2pxZCs1ZGRPYjY2UHNNTkVGOERvazJUOUdYYTd5bGJXVmEvY3cy
Twp0VE8wQmpqbWphaGZzcEhpeFU1dDl0clh2bmFrL05WTXVXMGhJMVY4Nm96VnFteGQ1OHF2aytG
eHQ5a21WazM2cXFmUDZTdWVwM3JNCmJVdjljSmI3VHJXL1ZlWG5YamZwMDJXWitwenFhVi9aa0M3
Zkw1OTNXZlkyMnNMTHFycG9NRFlzNUxaZFAzbHRmK2JxOUF6NnJxNUwKUHlpdVRwWjJremNIRWNX
Z1RtOHc5TlJhUVErUmxNZmNsUThTbSs3NWROZnlKcS9ETXRVTkduUGxOQmt3OWpOQVZMNUI5ZGY2
Sk5WZgpEMVhxZ2crZVIzMERrbHZYdWpJb0xzY0F5ZEdaMC83OXl2YTk3MzB2TVRSMy9yVkpuS0Uy
cGxUUVcwb3g3emZ0VmcrOTNHaSs1SkpMCkNwbDFmV2tVV1UzNlU2R1VFd2gwUktEdXU3b2pWZGxp
VzNYRGF4WHRDVFkxSTdteTdJa2NjS0ZONThyQjk4Y294elU5ejlWZGxpdXYKU3dyYU04S2U4Slp2
VFRpMzEvVVQ0dHpEMFlRYmowZG8weVQ5alJQc0NkV0VUZlRHa1ZmT0szYm5uMzkrME1aMGJZVGN0
dEFlRW5JMQozRFRreWg4azE5NitETG85NFY1T1g1bVErZkdJM0xhME54NDlvb2IxdDU3RURTNXkr
N1ErcDAwL3ExMld2WTIyY0R4cUUzdkw2SmQ5Cmo3bHQxMDlRMjUrNWZucTZqSGNQWk5xZzFkYTJC
WGtPdERVRndkWThoQnpQYWQ2ZngvVXkxcGFjcHN3RzFWLzlSTUZkenplVjJUVGQKWk5kVjVjclJt
ZFArL2Vwc0R4alNMWnY2MVM5SlQzelZXNkszZ1NkeXI1ejJvQ3U1d3ZmNHVtT2JzdXJrRXdlQjJV
aWdWVGU4c3hIZwpUS3l6emE5T083L2J0SzJaV0QzcUJJRnBSMkJ1Lzh5ZGROSkppYWtNS2JrdTFn
TU1HWEEydlRQWVZOU2dEVmNWWkl6WTI3SjBYdjVuCmo4NkMzTE1xdUR0eTgzTFlkMU5YVy8rVTlw
TXF5NmlldHlXbktyZnVlbGo5YlJwUXltWnYxTk1tbmxVWnFuKy9ZRzg3KzkwcTRpZXoKcnE0MFIy
ZE8rN3Y4NnRGbG1PT041T3EvZXQrdjNkRFFReXlkYS84b2M0cmh0NHZqdGRkZW0vYVZVai9WSG1X
RFFwdXlCdW5oSGdSbQpFd0VNa0Vsb2JlMG5vR0JUWlNaQjIvZ3FOdDEwMCtTamZueEpTSUFBQkpv
UW1Ocy9jeklXek90ZVVkWDExbHN2MlBxMmRLMjNJQnJBCjJWcTVaRFRZK3NCZ1RqR0t0TnBmUTJs
WFdXV1ZGS2U4eTl1YlNKdmFGN1F4cEFhUTVTQmpUWHNDMmZTWklycHVBRCtLSEFtc2srV0sKYk1w
ZE92V2p4emVwdjNsMVRIVTU1SkJEUEZzNjJsU2dWRmRkbEhYN0d6Z1pjT1hnQnB6UzZ1bTl3cWgx
TGN2VmVWbC85VjYxemprNgpjOXEvcXRldmJXMVJzUFdocVEvWjlDK1BUa2YxRVp2R21NN1ZueFEw
ZzhIMzhORWJ1V3F3dFZjcHl0YlM5ZHlxWXpDcUxBbXVrMWRXCmFOc1JKQ085SE1jNUJHWUZBZnR3
akJVTVVwcG5xU05oSWdFdFhwTWJSZWVrZWJObGQ3SVRjeEFEQVFoQW9IMEMvaDNVeG5kMVZWWVQK
RDJRNW50UGE4aktXSTJlWXB6eTF5RGdlMkd4S1d2RTdzUDMyMjBkNVA5UGFDRGxQOFAxRnltNTRj
NzNINWRTMVgrL3l4ZUpxM3lhZQpFM04wNXJSL3YvTGxlczNNOVpZb3ZlNVlZMXpQamszNms5WU5p
YlZOSDUydzMxay9Cc1JESUlkQTliczZKMi9YYWNlMkdxWno1YnFHCjEwUytObHZVRjIvNVR3dkhD
UkNBQUFRbWswQ2IzOVZWV1UwOWtPVjRUbXZMeTFnVE9jTTg1YlhsZ1UxN1Niajdhcm44MXNhbmNy
NGkKZCt4aVdsNkVycjdSMUh1Yzk2TW1kZlcwMWVPb25oTnpkT2EwZjdWOGZxMkJmUk92bVo2K3Fi
ZkVKaDdybXNvYTFwKzhiT0poYTFIaQpJb3NzMHVOQjB1OXpoTUM0QktyZjFlUEthek4vMmlMYkNq
aHk4UG1XRW1BRkcxa09HU0VBQVFoQW9Ec0NiWDVYVjJWcENveWNBTmhUCis3VHczUGE4Q0xZL1Rk
L0ttTHZvWUlPNVlCNkswano5ZmduMW0zTEREVGNFMnlnem1CZkJZakY3di9UOTR0dVMwMDkrVHYz
TlhYcXcKUGFDU0V4Rk5KVlBRSW1jelJJSVpJR0gxMVZlZm9NYTg4d1ViZEFjdG5GYlFOQ05mQkY1
TjNIVmRxL3AwbmF1emFmdlg2Zkk0OHlhWgplTmcrSGlsS01nYzV3OUFVUVJ2d3A2bDdhNjIxVnBx
aTViSnlqMjNLc2oyb2dyMEJDMW8vUllCQTJ3U3EzOVZ0eXg5SEhnYklPUFRJCkN3RUlRR0F1SWRE
bUQxR2JzdVlTZkowV2M1Z0IwcWx5aEVNQUFqT1d3SFQrcnU1MEVib1cxMVVYcmcxcjVTWjUya3JU
Umxra28wbDUKWEZmVHRFM1NOVW5qZW5QTFdjN0hPUVFnQUFFSVFBQUNFSUFBQk5vaTBKa0Jvc0h4
aVNlZUdNNDQ0NHlnVjg1TlFwTThiYVVaVnA0bQplaVNqYWJxY3RFMWtOa2xUcm1OdStuSmV6aUVB
QVFoQW9Ec0M3a0hNdlZwMXB3bkpFSUFBQktZSGdVNE1FTG1idFVWWXlmQ3dYYnJECkFRY2NNTUdW
WXJYNlRmSzBsYWFxdTNyZFJJL3lORTJYazdhSnpDWnB5blhLVFYvT3l6a0VJQUFCQ0hSRDRJSUxM
a2l1aHZVN3FTRDMKc3RybmdnQUJDRUJncGhQb1pDZDA3WHFxQldKYW1LZkJyNzVjNTVsbnNLb21l
ZHBLTTZ4Um0raVJqS2JwY3RJMmtka2tUYm1PdWVuTAplVG1IQUFRZ0FJRnVDSmduckxEVlZsdWxQ
OWN3Nzd6eitpbEhDRUFBQWpPV3dHQ3JZTVJxeS9EWVpwdHR3aTIzM0pJOFRlaExWcnU1CmxqZU9x
b3B1a3FldE5GWGQxZXNtZXBTbmFicWN0RTFrTmtsVHJsTnUrbkplemlFQUFRZ01JbEJlNURnb0hm
Y2dBQUVJUUFBQ1RxQlQKTDFoejVzeEo3dVhrUHJGcGFKS25yVFREeXRSRWoyUTBUWmVUdG9uTUpt
bktkY3hOWDg3TE9RUWdNSGNUS0JzS2NwczZUaWpMR2tjTwplU0VBQVFoQVlISUlqUHU5MzNZcE96
VkEyaTRzOGlBQUFRaEFZRFFDWmFOaDNCK2lzcXpSU2tNdUNFQUFBaENZVEFMamZ1KzNYZFpPCnBt
QzFYVWprUVFBQ0VJREE5Q0V3M1g3SXBnOFpTZ0lCQ0VBQUFrMElkT0lGcTRsaTBrQUFBaENBQUFR
Z0FBRUlRQUFDczQ4QUJzanMKYTNOcURBRUlRQUFDRUlBQUJDQUFnU2tqZ0FFeVplaFJEQUVJUUFB
Q0VJQUFCQ0FBZ2RsSEFBTms5clU1TllZQUJDQUFBUWhBQUFJUQpnTUNVRWNBQW1UTDBLSVlBQkNB
QUFRaEFBQUlRZ01Ec0k0QUJNdnZhbkJwREFBSVFnQUFFSUFBQkNFQmd5Z2hnZ0V3WmVoUkRBQUlR
CmdBQUVJQUFCQ0VCZzloSEFBSmw5YlU2TklRQUJDRUFBQWhDQUFBUWdNR1VFTUVDbUREMktJUUFC
Q0VBQUFoQ0FBQVFnTVBzSVlJRE0KdmphbnhoQ0FBQVFnQUFFSVFBQUNFSmd5QWhnZ1U0WWV4UkNB
QUFRZ0FBRUlRQUFDRUpoOUJEQkFabCtiVTJNSVFBQUNFSUFBQkNBQQpBUWhNR1FFTWtDbERqMklJ
UUFBQ0VJQUFCQ0FBQVFqTVBnSVlJTE92emFreEJDQUFBUWhBQUFJUWdBQUVwb3dBQnNpVW9VY3hC
Q0FBCkFRaEFBQUlRZ0FBRVpoK0JHV2VBL09jLy93bVhYSEpKdU9tbW16cHR6VC84NFE5aHpwdzVu
ZXBBK09nRWZ2dmIzNGFISDM1NGRBR1cKYzdMNjBsaUZKRE1FSUFBQkNFQUFBaENZeXdqTUdBUGtG
Ny80UmRoKysrM0QwNS8rOVBDS1Y3eWljK05nN2JYWERpOS8rY3ZEUlJkZApOSmMxK2N3dDd0VlhY
eDEyMldXWHNQTEtLNGZWVjE4OS9QR1BmeHlwc3BQZGwwWXFKSmtnQUFFSVFBQUNFSURBWEVwZ25y
bTAzQk9LCkxXUGcyYzkrZHZqbEwzOFovdnpuUDRjblBPRUpFOUswR2ZIODV6OC9QV0YveGpPZTBh
WllaSTFCNEhuUGUxNzQyTWMrRms0NDRZUWsKWlo1NVJ1dmVrOTJYeHFneVdTRUFBUWhBQUFJUWdN
QmNSMkRHdkFHUndiSGtra3NHR1FZS01jWk9HK09zczg0Szk5MTNYM3JhM3FraQpoRGNtSUlOREJ1
RXpuL25NbEdkVUEyU3krMUxqQ3BJUUFoQ0FBQVFnQUFFSXpBQUNNOFlBOGJid1FXZlhiMENrejNX
NWJvN1RnOEQvCi9NLy9kV3MvamxvcWI5L0o2RXVqbHBGOEVJQUFCQ0FBQVFoQVlHNGowS2tCOG85
Ly9LTVJqLy8rOTcrTjBrMTJvbkhmb2pTdHYvUlUKZFZXdko3dnUvZlIxVWE0MjJ2K2YvL3puaENK
UE44T2hDM1lUS2swRUJDQUFBUWhBQUFJUW1PWUVPakZBdnZ6bEw0ZjExbHN2ZlB6agpIdytiYnJw
cGVNYzczaEcrL3ZXdlQwRHg3VzkvTzd6NzNlOE8yMnl6VFhqbEsxOFpQdmpCRHdZdEFLNkdmLzNy
WDJHLy9mWUxiM3JUCm04SVNTeXdSMWxwcnJmRFZyMzQxNUE1Y204cjV6VzkrRXo3NjBZK0cxN3pt
TlVuSEp6N3hpZkMwcHowdHZPdGQ3MHBGKyt0Zi94cSsKODUzdmhEZS8rYzNoVzkvNlZyVzRvV245
SmVPZDczeG4ySGJiYlJPbnQ3NzFyVW51Rzk3d2hpQXZUZ3JmL2U1M3c2dGYvZXF3eWlxcgpoUGU5
NzMyRkxxMXpFQS9GUCtjNXp5bmkvYVJwWFQxOSthakIvSTkrOUtQdzN2ZStON3o0eFM5T3Q5Uldh
dE1uUC9uSjRXMXZlMXZ0CkF1OWNuVTNidjF5MjZ2bFh2dktWSUc3dmVjOTd3cXRlOWFyd3FVOTlL
dno3My85T3llb01rRzkrODV2aExXOTVTOHJ6M09jK043ejkKN1c4UFAvemhENnRpRzEwM2xUV3NQ
elZTUmlJSVFBQUNFSUFBQkNBd1V3allVOW14Z25IUVlvdjBKMEUycUl4UGZlcFRvejM5VDNMTgpT
SWcyT0l6Nzc3OS9vY2ZjbTBieldCVTMyMnl6SXAxNUxJcUxMTEpJbkhmZWVlT2xsMTVhcEgzZ2dR
ZWlEY0NqRGRhajhqMzY2S054Cnl5MjNUUG9rb3hyTW9FbjNWSTV5YUNybjJHT1BqVXN2dlhTU1lZ
dWE0eDU3N0JFMzJtaWpWSzVGRjEwMC91NTN2NHMyeUkwTEw3eHcKU25QODhjZVgxVFNxdjVqc3VP
T09jWTAxMW9pMllMN0kvN09mL1N6SkZNK3JycnFxaVAvODV6K2Y0czNnS2VKMGNzVVZWeFRweXpl
YQoxcldjcDN4KzNubm5SVE0ya214YlV4RjMyMjIzdU4xMjI4VWpqend5bW5lcEZHK0QrSEtXbUtN
enAvMTdsSlF1eEZCbE1nTXBQdmpnCmcrbU81S3B0dkQvZWUrKzlSUTR6anFJWnczSFZWVmVOdDkx
Mlc0cFhIMVhmVkhvenRvcTBmdEt2TCtYSUd0YWZ6Rmh5ZFJ3aDBDa0IKLzF6b1NJQUFCQ0FBQVFo
TUpZR3hmNG1xUDJycnI3OSt0Q2ZMUFhXNjhjWWJvM2tuS3VLKzlyV3Z4Y1VYWHp6YVBnMUZuRTQw
Q0pTOApRdzg5dElqZmRkZGRvNzBoS0s1MWN0ZGRkeFdEekFzdnZMRG5YcjlCWTQ2Y24vemtKMG4r
RTUvNHhIaktLYWNrK1hmZWVXZTg3cnJyCkNsMzI1aUtscVJvZ1Rlci9qVzk4SStXMUorK0ZQRDk1
eWxPZWt1NlZEWkJ6emprbnhWVU5rTC8vL2U4cHZqcWd5S21yNjYwZWYvLzcKM3hleVpSaDVrS0Zo
YnhhaXJZK0k5cWJFbzJPT3pwejJMeFJVVGs0ODhjUlV2bC85NmxjOWR6U2duMy8rK2RNOTI2dWx1
S2MrSlU3bgpubnR1RWFjVEdTSHFyN3FuZGltSGZuMHBWMWFUL2xUV3l6a0V1aUNnUHU1L1hjaEhK
Z1FnQUFFSVFLQXBnZGFuWUMyLy9QTEJCdXJKCkhhbzlrYmJmdTVBOFJmbjBKWHVERWZiZGQ5K3c4
Y1licCtrOEtjSGovdzQ3N0xCdyt1bW5oNTEyMmluRjNISEhIZUdvbzQ0S0N5MjAKVU5CMEhmKzc0
SUlMd21LTExaYlNYSHp4eFdVUnRlZTVjbFpZWVlVa3g0eWtORVZLRi9Lc1pFL1BDL21haXFSUW5l
WXpyUDZQUGZaWQoyR2VmZllJWk4ybmFXU0h3OFJQdFk2SlFsVnNYNTJuOHFEUzVkVldldW1CdmUx
SzBaR3ZxbFFjemtKSzdZMDF6dXZYV1cxTjBqczZjCjluZWQxYU9tZW1sNm42YWUrUlF4VHlPdXl5
NjdiTHAwTHRKcGIrQ1MwNEJ5WFpUSWpKVmlhcHY2NWJBd2lxd20vV21ZWHU1REFBSVEKZ0FBRUlB
Q0JtVUtnZFFQRXBzV2t3ZlhCQngrY0JvZjJ4RG14MHNad0NscmJvSDA2VmxwcHBYUmQvbWRUc05K
NmtTYzk2VWtwMnA1dQpwL244TWtDMG9MdjhaMCtoZzAxdlNlc2p5akxxem5QbExMamdna21NQnVH
NW5wU0cxVi9HbVhaUjF6b1cxYmZ0a0Z2WFVmVGI5TE9VClRjYVVRbzdPblBaUHdtdiszWERERGNu
UXF1dERTaTRqcEJ5dXVlYWE4TWdqanlURHhEMWJsZS9iRkx0MGFWTzJrbXZsOHIzcStTaXkKeHVs
UFZmMWNRd0FDRUlBQUJDQUFnYm1kd0dnN3RRMm85UXRmK01LME8vZ1dXMndSYkJwUldpaTk4ODQ3
aDhNUFB6elkrbzZnQVp5QwpuaVFQQ3hwb0ttaHZEeTB5SGpXMEphZUovbUgxdi9iYWE1TVkzNnVp
aWN5Y05KTlpWeTlYanM2YzluZjUxZVAxMTErZm91YWJiNzdxCnJaNXJmd055eXkyM3BQaCt4cVRl
bU1obzBSczdwZlczVUQzQ0hyOW9VMWFkZk9JZ0FBRUlRQUFDRUlEQVRDZlEraHNRQVZ0MzNYV1QK
OGJIRERqdWtOd2kyZURtOTJkQTlmeG9zejBERGdrOXo4a0hyc1BUOTdyY2xwNS84YXZ5Zyt2dWcr
SjU3N3FsbWErVjZzdXVxUXVmbwp6R24vZmtEMEpremg5dHR2NzVla0ovNVp6M3BXdXJaMVBGcnox
SE5QRnpKTUZsaGdnUlEvekRCc1U5YUVnaEFCQVFoQUFBSVFnQUFFClpnR0IxZzJRazA0NktXRXpU
MWpodU9PT0MrZWZmMzVhcjNIMjJXZUhtMisrT2NqMXFZSmNuOXJpOUhSZS9xY0JvdFo2S0xoN1di
bncKbGV2YnVpQVh1YjdXcE82KzR0cVMwMDkrT1g1WS9WZGNjY1dVWEcrSE5CV3RHdW9HeUo1bVdE
MlZiakxyNnVYSzBablQvaTYvZW5RWgpWMTk5ZFpCUjBTKzRzYWMzYURyWGxMRTVjK1pNU0s2M1Vw
cWlwWFZGdm41a1FxTEhJOXFVMVU4SDhSQ0FBQVFnQUFFSVFHQW1FMmpkCkFKR3hZSjZTQ21aYTlM
dm5ubnVtYS9Pc2xLWlR2ZUFGTDBoR2c3bmhEWnAzNzBGR2h0SnFid3NGNVYzZUZyWC82VTkvQ3By
RzVXc08KUFAyQkJ4NFlOQTJuUE9lL2JnQS9paHpwcUpQbHVuMFBFajk2ZkpQNkw3bmtrcWt1aHh4
eWlHZExSeTNzVmwwVnlycDl3YjBNdUhKdwpBMDVwTllCV0dMV3VaYms2TCt1djNxdldPVWVuQnZC
TjI3K3ExNi9YWEhQTllDNlNVeDg2NktDRFBEb2QxVWZjc0hPalZXdDV6TzF4CnVxLzlVNnJCOTU3
WmUrKzllMjdWTVJoVmxnVFh5U3NydlB6eXk1T1JYbzdqSEFJUWdBQUVJQUFCQ013NEFqWW9HaXNZ
a0I3WGpyWVoKWERRam9rZm1McnZzRW0xcVM3UUJZWXJYUGg5bU9LUjgyak5razAwMmladHZ2bm0w
NlRuUlBFVDE1RDM1NUpPVDIxZnBXVzIxMWRKOQoyeVF3cnJ6eXl0RTI0b3ZWZlJTMHQ0YlNsdmNk
a2NBY09iNGZoeGsyOGI3Nzd1c3BqMS9ZNW5kSnoyYys4eG1QU3NjbTlkZCtHczVOCmU1bWNkdHBw
VWU1OE45eHd3Mkova2JJYjNyLzg1UzlGdlBZbE1TOWcwZDc4Ukp2aUZtMjlRcEsxKys2N1I3azdW
c2lwYThwUTgrK3kKeXk0cnlsamVUMFA3Ynl5MTFGTHAzcGxubmxua3pOR1owLzZGZ3NxSjNPbktG
YkE0eWdYd2xWZGVtZlpPMGQ0ZzVzUWd4Y3NsOHFtbgpucHB5UHZUUVE5RzhVYVU4MnVmRWcrcWp0
clMxTzlHTUY0OU94MzU5S1ZkV2svNWszdHhTbWVWQzJJelFubkp3QVlFMkNQaDNqbzRFCkNFQUFB
aENBd0ZRU0dQdVhxUHFqcGtHMHZiVklSc1hSUng4ZGJYZnp0SkdncmZub3FhY0dqRDdBa3d6dEMz
TE1NY2YwcFBFTDdjVmgKYndIU292TkpBQUFIVUVsRVFWVFNBRTFwTmZEY2E2KzlvdmJCOEdDZW1P
TFdXMjlkcEZsbW1XV2k3WjRlTlhqMzBFU09OdjJUb2VQMQpXbWVkZGVJUlJ4emhJdExtZi9ha3ZE
Q2d0RkdmdVE4dTlEU3R2L2FTY0NOTUErWU5OdGdnN1c4aVEwMjZxN3pPT3V1c2FHOFAwajNwClZC
bTBJWjRHMWRKcHUzTEgrKysvdnlobms3b1dpU3NuRjExMFVWeDc3YlVMQmhySTIxdUNhQXV3bzds
UEx1TFZmamExcnNpZG96T24KL1FzRmxSTU43SmRiYnJtaVBObzQwblp3VC90NjJDNzJ5YWp6VFFx
VlZlZmEvTkxlWXNRUGZlaEQwZDZHcFBwc3M4MDIwZDRnRmRLYgo5S1dtc29iMUoxY3FIcllXSlcz
R1dlNnpmcDhqQk1ZbDROOXBPaElnQUFFSVFBQUNVMG5nQ1ZKdVAwZ2pCNTluTHdFU3BTa3cybHZC
CkJsRkJVNjdzYWZsQXIwSTJhQTQybUV0N1M1UmxWUXNrMmZLMjlMZS8vUzJZZ1ZBc1pxK21HM2Jk
bHB4K2VuTHFid1pVdU9tbW05TCsKSXU3UlNZdWNiYVBGb0VYNjdycTRyTXQyOFE0MjZDN2NBMnVh
a1M4Q0w2ZlRlZGQxcmVvYlJXZlQ5cS9UNVhGMzMzMTM0bUU3Mktjbwp5VnhpaVNYODlvU2pwZ2ph
Z0Q5TjNaTTdaRTJyR2pXMEtVdjdxY2pGc2RaUEVTRFFOb0h5OTZ1K0d3Z1FnQUFFSUFDQnFTTFF1
Z0V5ClZSV1pLWHFIR1NBenBaN1VBd0lRbUZ3Q0dDQ1R5eHR0RUlBQUJDRFFuMERyaTlEN3ErSU9C
Q0FBQVFoQUFBSVFnQUFFSUREYkNXQ0EKVExNZTRCN0UzS3ZWTkNzZXhZRUFCQ0FBQVFoQUFBSVFn
TUJZQkRCQXhzTFhYbWJ6YkpWY0Rmc084WEl2cTMwdUNCQ0FBQVFnQUFFSQpRQUFDRUpoSkJGZ0RN
azFhVXh2a1ZmZlgwUDRmdnVuZU5Da214WUFBQk9aU0Fxd0JtVXNiam1KREFBSVFtSUVFTUVCbVlL
TlNKUWhBCkFBSlZBaGdnVlNKY1F3QUNFSURBVkJGZ0N0WlVrVWN2QkNBQUFRaEFBQUlRZ0FBRVpp
RUJESkJaMk9oVUdRSVFnQUFFSUFBQkNFQUEKQWxORkFBTmtxc2lqRndJUWdBQUVJQUFCQ0VBQUFy
T1FBQWJJTEd4MHFnd0JDRUFBQWhDQUFBUWdBSUdwSW9BQk1sWGswUXNCQ0VBQQpBaENBQUFRZ0FJ
RlpTQUFEWkJZMk9sV0dBQVFnQUFFSVFBQUNFSURBVkJIQUFKa3E4dWlGQUFRZ0FBRUlRQUFDRUlE
QUxDU0FBVElMCkc1MHFRd0FDRUlBQUJDQUFBUWhBWUtvSVlJQk1GWG4wUWdBQ0VJQUFCQ0FBQVFo
QVlCWVNtS2ZOT3BkMzJtMVRMcklnQUFFSVFBQUMKRUlBQUJDQUFnWmxCZ0RjZ002TWRxUVVFSUFB
QkNFQUFBaENBQUFUbUNnSVlJSE5GTTFGSUNFQUFBaENBQUFRZ0FBRUl6QXdDWTAvQgppakhPREJM
VUFnSVFnQUFFSUFBQkNFQUFBaERvbkFCdlFEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdK
amhDQUFBUWdBQUVJClFBQUNFSUJBNXdRd1FEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdK
amhDQUFBUWdBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUkKUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdK
amhDQUFBUWdBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZwpnRGdK
amhDQUFBUWdBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZ2dEZ0pq
aENBQUFRZ0FBRUlRQUFDCkVJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZ2dEZ0pq
aENBQUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUMKRUlBQUJDQUFBUWhBd0FsZ2dEZ0pq
aENBQUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSgpq
aENBQUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSmpo
Q0FBQVFnQUFFSVFBQUNFSUJBCjV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSmpo
Q0FBQVFnQUFFSVFBQUNFSUJBNXdRd1FEcEhqQUlJUUFBQ0VJQUEKQkNBQUFRaEF3QWxnZ0RnSmpo
Q0FBQVFnQUFFSVFBQUNFSUJBNXdRd1FEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdKamhD
QQpBQVFnQUFFSVFBQUNFSUJBNXdRd1FEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdKamhD
QUFBUWdBQUVJUUFBQ0VJQkE1d1F3ClFEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbGdnRGdKamhD
QUFBUWdBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUEKQVFoQXdBbGdnRGdKamhD
QUFBUWdBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZ2dEZ0pqaENB
QUFRZwpBQUVJUUFBQ0VJQkE1d1F3UURwSGpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZ2dEZ0pqaENB
QUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBICmpBSUlRQUFDRUlBQUJDQUFBUWhBd0FsZ2dEZ0pqaENB
QUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEEKd0FsZ2dEZ0pqaENB
QUFRZ0FBRUlRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSmpoQ0FB
QVFnQUFFSQpRQUFDRUlCQTV3UXdRRHBIakFJSVFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSmpoQ0FB
QVFnQUFFSVFBQUNFSUJBNXdRd1FEcEhqQUlJClFBQUNFSUFBQkNBQUFRaEF3QWxnZ0RnSmpoQ0FB
QVFnQUFFSVFBQUNFSUJBNXdRd1FEcEhqQUlJUUFBQ0VJQUFCQ0FBQVFoQXdBbjgKTHhWaTk0NXEv
MUg3QUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRp
c3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3RleHQvZW1waGFzaXMtdmVydGljYWwtZXhwZWN0ZWQucG5nCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
CgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFC
SlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRR
Mi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZw
RktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xz
ZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9I
aFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4Rmtp
ZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZy
WXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDAr
R0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUr
THFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdV
RUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFD
Skw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRw
TlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdq
RTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhH
UGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAx
dDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJw
dFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVn
cG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtF
NVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVs
RVFWUjRBZXg5QjlnVk5mWjMxdDQ3ZGhSczJGRHNGUlVMZHNXQ1lxOG85b2FDaUEzc1loY1Z4YlZq
QTFIRVhyQTNMR3Z2dmFEWQoyKzc2MzI4MzMva2RkKzdtenB2cEtYTmZrdWQ1M3p1VHlad2tKeWVa
YzVKVC9pSXBpWkFDQmdJR0FnWUNCZ0lHQWdZQ0JnSUdBZ1lDCkJnSUdIR0JnS2dkMWhDb0NCZ0lH
QWdZQ0JnSUdBZ1lDQmdJR0FnWUNCZ0lHR0FOQkFBbUVFREFRTUJBd0VEQVFNQkF3RURBUU1CQXcK
RUREZ0RBTkJBSEdHNmxCUndFREFRTUJBd0VEQVFNQkF3RURBUU1CQXdFQVFRQUlOQkF3RURBUU1C
QXdFREFRTUJBd0VEQVFNQkF3NAp3MEFRUUp5aE9sUVVNQkF3RURBUU1CQXdFREFRTUJBd0VEQVFN
QkFFa0VBREFRTUJBd0VEQVFNQkF3RURBUU1CQXdFREFRUE9NQkFFCkVHZW9EaFVGREFRTUJBd0VE
QVFNQkF3RURBUU1CQXdFREFRQkpOQkF3RURBUU1CQXdFREFRTUJBd0VEQVFNQkF3SUF6REFRQnhC
bXEKUTBVQkF3RURBUU1CQXdFREFRTUJBd0VEQVFNQkEwRUFDVFFRTUJBd0VEQVFNQkF3RURBUU1C
QXdFREFRTU9BTUEwRUFjWWJxVUZIQQpRTUJBd0VEQVFNQkF3RURBUU1CQXdFREFRQkJBQWcwRURB
UU1CQXdFREFRTUJBd0VEQVFNQkF3RUREakRRQkJBbktFNlZCUXdFREFRCk1CQXdFREFRTUJBd0VE
QVFNQkF3RUFTUVFBTUJBd0VEQVFNQkF3RURBUU1CQXdFREFRTUJBODR3RUFRUVo2Z09GUVVNQkF3
RURBUU0KQkF3RURBUU1CQXdFREFRTVRCTlFVQjhNL09VdmY2bFBZMEpMQWdZY1lFQktXYW1XTUdj
cW9TKzhuQU1EZ1VaeklDa1VxUlVHQXMzVwphamhDWXhJd0VFNUFFaEFUc2dNR0FnWUNCZ0lHQWdZ
Q0JnSUdBZ1lDQmdJR3pHTWdDQ0RtY1JvZ0Jnd0VEQVFNQkF3RURBUU1CQXdFCkRBUU1CQXdrWUND
b1lDVWd4bmQyMVNOVXRQL3ZmLys3bUdtbW1YeDNKZFFmTU5DRUFWdHFVeWJtVEZORHcwMUxZNkRL
K2xjWEdxM1MKaDVZZXZORDR3aGdJTkZzWVplRUZEeGhRNlRTY2dIZ1lBRmRWN3IzMzNtTFpaWmNW
Nzc3N3Jxc3F4Wmd4WThTNGNlUEUxMTkvM2ZoNwo2S0dIeEtHSEhpcis5YTkvY1RzR0R4NHNKazJh
MUhpT3NzaTcvdnJybmJXelRoVmRlZVdWM1BjSVAzVnFXMmlMT1F5MDUzR3U0N3ozCnNmNlpvNVkv
SVpudVF4M0h5VFRPc3VDMTUzbVkxWGNYendQTm1zSHlsRUNuUVFBeFF5dTFoRExMTExPSXRkZGVX
M1RwMHFYUlB1d1MKSDNEQUFlS1VVMDRSLy9uUGZ4cjVwaTYrK3VvcmNmenh4NHRubjMyMjhYZi8v
ZmVMTysrOFUweWVQSm1ydWVDQ0M4VFlzV01iejFGMgo5T2pSNHRwcnJ4VzJkN0gvOXJlL2lXMjMz
VlljZmZUUjRwLy8vS2VwYmxlQ3M5dHV1NGwrL2ZyeG1GUUNaT0ZsQ0VXZ2xaMTIya2w4CitPR0hG
bXJ3QzlKbC8zeU1zeXQ2citPODk3SCttYVptMDMyb3l6aTVva3ZkZVBpWWgvRjJ1RngzNG5YYnZn
ODBhd2JEVXdLZEJoVXMKTTdUaUZjcUFBUVBFd2dzdkxLYWVldXFtZGtRbkg1ZGRkbGtqLy9mZmZ4
ZS8vZmFiZU8rOTk4U3R0OTRxZHRsbGw4WXpFeGRUVFRXVgptR2VlZWNSMjIyM1hBUGQvLy9kL0xH
d3N0TkJDbkljanVKNDllNG9sbGxpaVVXYllzR0dpUjQ4ZVFqMmVhencwZU5HdFd6ZXh3dzQ3CkNP
elNnT2xmYXFtbERFTFBEMHBWclpoNTVwbkZ0Tk5PS3piZGRGTUc4TUlMTDRnaFE0Ync2ZFU1NTV5
VEg2aUZrbWdYQkpDVlZscUoKQmN2YmJydk5RaTMrUU5ydW4rOXhka1h2UHVkOW5kYS9zcFRzcWc4
K3gwbkZqU3U2ak9yMFBRK2pka1MvdHRlZHFCNmJ2NEZtemZNTwpVeHFkQmdIRTVneDFCUHZrazA4
VzAwOC9mUnNCNU9XWFgrWVdISHp3d1cxYThzY2ZmL0E3YlI0WXlNQXVteXIwdlBUU1MyMmczblRU
ClRhSkRodzZOZktoaHVVcWZmdnFwNk5Pbmp6ZmhBLzE4K09HSHhVOC8vU1JXWFhWVjhmLyszLzlq
ZTUxNzc3MVhISFhVVWVMYmI3OFYKMjJ5empkaC8vLzFkb1VTQUhrNDg4VVFCQVJWQ0Q0UWlOVUY0
WEcyMTFkU3NscnIyMWI4NmpMTXJldmMxNyt1Mi9wV1pHQzc3NEd1Ywo0bmh4UlplbzE5Yzg5TFh1
eEhGdDR6N1FySG1zVG1sMEdnUVE4elRrSENKc0p4WllZQUV4MTF4ek5kVWRNZlZQUHZsa1V6Nk9m
dzg1CjVCQ3gwVVliQ2FoRFlUZkdWTUlKeG9JTExpaFVvUWNuTFcrOTlWYWpDcWhaNFhoUlBRR0JR
T0lxUGZEQUErTENDeThVT0ptWmJycnAKWEZYYlZBOEVqS2VlZWtyY2Z2dnQ0c1VYWHhSTEw3MjBX
SEhGRmNWKysrMG5sbHh5eWFheUxtNGd3SjV4eGhtaWMrZk9mSUoxNnFtbgpObFVMbWxsdXVlVTQ3
NWRmZmhFenpEQ0ROOXcxTlN6bmphLysxV0djcTlMN1B2dnNJL2JkZDEvUnZYdjNSR3o3blBkMVd2
OFNFWlR4CndGVWZmSTVUSEFVdTZES3EwOWM4OUxYdVJQMjIrUnRvMWp6dllJTk92L25tRy9IbGwx
OHlqNUhrbE1nWG5RWUJ4T1lNZFFRYlJ0OW4Kbm5sbTB3a0kxSytlZi81NWNkWlpaNGs1NTV5enFT
WFlZZi9vbzQvRWxsdHV5WVRacVZPbnB1ZFZiM1E3YktxOUNRUVEzUW1JRGZXcgpHMis4a2UxZ0lH
aEE3L2lKSjU1Z28vd1JJMGFJT2VhWWc3c0tleEFJY08rLy83NjQrZWFiUmUvZXZjVXl5eXhURlEy
Wjc2Kzc3cm9DCmZ6ajVtREJoQXF2RC9mampqK0xOTjk5c01QdVpRQklLb0ovcnJiZGV3bE45OWpU
VFRNT0xsRW92T0oxNTU1MTN4QmRmZk1GakJqcDcKN3JubnhHeXp6U2JPUC85OHNkZGVlK21CMVRE
WFYvOXNqbk1jelRib0hTZXAxNUo5RnVZRlRzZVMxZ3ZiOC83Zi8vNjNnR0NNelkzNQo1NSsvMGZX
NnJYK05oaFc0Y05rSEgrUGtreTZqWVhBNUQ2TTY4ZXRyM1ZIYllPTzZQZEdzRGo4MmFGWlhUenpQ
RkozaTI5Mi9mMzlXCnVWOXNzY1hFRlZkY3dYd050Q3gweVF1ZEVqTVlVazB3UUVTQnNORDhsN2RK
OUVHVzVPbUtpNVBRSWNtMmc2L0phRmdTc3lDSjhaZWsKVmlNUE91Z2dTY2JlL0l4MCtpVVpoZWV0
b2xDNTRjT0hTMko4bTk2aFkwWFp0Mi9mUmg3WmYwaVN5aHYzdUNCamVUbDA2TkNtUEJNMwp4RHhM
TW9yalArQ0FiRk1rQ1Q4TjBOZGRkNTI4NktLTEd2ZTB1eS9YV1djZE9YNzgrRWFlN1l1cnI3NWFY
bnp4eFpLTzYrWEVpUlBsCm1tdXVLV2x4YjRPanZPMGd3VURTQ1ZkbWNUb0JhbE5tKysyM2w4VGdT
VnE0Sk1acGl5MjJrSU1HRFpJa3JFa1NrdVRiYjc4dFAvdnMKTTZZelVpRnI4MzZlaklqRzhWczFw
Y0h5MWIra1Bwa2VaMTA5TnVoOWhSVldhS3hMZFBJbFR6amhCUG5ycjc4MlZXOTczcFB3SWJIVwpr
VzJVSkE5NmpicHRyWDlwZE5Xb1BPZEZGaXhiZmRBMXo5YzQrYUpMSFE1c3owTmY2MDRXbmVsd2ta
U1hCYXM5MFd3U0RtelFiRkpkCnV2eXFkQW8raDdRcytQdE5HNnNTdkEyKzN4RnZVd2M2cmM0QjZE
QVg4a3BoSUd2UzY0Q1NoeXRKa2kwL3drZWFES3VaY2FRZFM4NEQKa2ZYcTFVdVMwWjhrdDI0U1pU
NysrR01kS0NONThROWNuRkdKS2lIcFBMcmtYMXNDQ0lDRFlhYVRCZm1QZi94RGtwcVRWQ2NlcVFF
dwpmdFRHUUpDam8wcjV5aXV2cU5sV3JpRWM3ckhISHBKT295UndCOEZ3OWRWWGw4ODg4NHdrbXd4
SnU4NE5vVEtyQVJCZ0JnNGN5TXdpCmhMNnNoTVdKUEpaSjBBcmVnK0JGcHgveXlDT1A1TDVIWXdT
YW9ST2lMSEM1bjVlaDh5VGdhYkI4OVUvWFZwUGpqTEdkYjc3NUpIbU8KMDFWbG5ONVZBU1RDTitn
QmRJTU5EaVNiOHg1ekYwSXhHSUxqamp1dXFjKzIxcitvbi9pdG1ySmcyZXFEcnQyK3hnbHRNYjBP
NTZITApPQTVjekVOZjYwNFduY1Z4a1hhZkJhdTkwR3dhRHZETU5NMW0xUmM5TjBHbkVEcEFpNis5
OWhwdnVtSU5KWFZ2K2ZqamozTTFkYURUCjRJYVhabG9ySnhoNEgzamdnZHdGZURpNS9QTExPZmdn
WE44U3c4MGVueEFMQk9wWThKUkZ6R1NpQ29VTlBKeDc3cm1zTWdIdlNlcmYKMWx0dnpVYlBOdXFN
dyt6WXNTT3JXMEdOaEhiNG0yeGVhSUZwWTNBTnoxaFFYNEk3WVp2cHJydnVFbHR0dFJXN0E5NTk5
OTBaVDNRQwp3c2JuYTYyMUZudkNJdUZFYkxqaGh1Szc3NzVMYlFyb1lKVlZWbUdWTy9vd3MzMVA2
Z3Ywa0FRT01mZmNjN1A2SG5SRDRRb1o3WUdiCll0aUNnRmFRU0dCbEZUVythYUYvZGVtZnlYRUcr
dUc4QVBUdy9mZmZhMGZEQmIzRERnaHFlU1RNYTl0Z1l0NkQvcUEyUUNlai9BZTEKMGJoYVlkM1hQ
eTF5WXBrKysrQnFuTkJsMzNUcGFoN1daZDJKa1puUjIxYW4yYnpJY0VHejhiYVlvbE80UTRZcU9Y
aENxR0RCN2hYcQpsNUhkYXgzb05OaUF4RWUveGU3ajNvclEvR3V1dVlZRDI4Rk5IbHlvcnJ6eXl0
d3JNSlZnWnVHQ0ZvYWxFRmhzSjdnR0JwTVBnM2MxCjBZNTdtenoxdWVsckdGSEQ0SjZrL3liUXNQ
dFE3VDFvYTRCZEJzTjdDWXpEYlNWUy9XSjdFOWgvWEhMSkpSd2poVTVjMkZ2TDAwOC8KM2FnV2do
ckdrWFl1QmJ5TzZCSmM5OEZBR0FJbmpNbm82RlpYVEp0M3pESEhDUHhGQ2UvREtRRUVFaGlsdzFF
QTRIYnQyalVxMGxLLwp2dnRuY3B3anhNT05OQVNBSklOQ2xMTkY3N0RUZ2xBTVd5QTRtMGhLSnVZ
OTVnYnNrYzQ3N3p5T1FYUDMzWGMzZWRkRDNYVmYvNUx3Cm8rYjc3SU9yY1lyNjY0c3VYYzlEMyt0
T2hHOWJ2NjFPczBYd1lvdG1kVzB3U2Fjd1BBY1BnMUFMaUxXR3pRYkVoWnQxMWxrYlZmdW0KMHlD
QU5JYWlkUzgyMjJ3elpoSmhSQVFHQVFiZk1HUmVkTkZGK1JjdVZMSFRqZmdjdSs2Nkt6T3lkUHpH
Z29xTFhvT3BSZjFxd29jdgpqWUZSeTVxNHZ1cXFxL2lFUURWZUJkejc3cnVQRFZ0eERVWisxS2hS
ekx4QllNSmt0WkhlZU9NTkZpb1Fpd1hlcE1Ca1lUd2dpT0FVCkFyaFJFOGJ4OWRkZlY3T2FycVBU
aThjZWU0eFB2T0RhdDJ5YWZmYlp1ZjhRUWlEdzdMbm5udUtHRzI0UWp6NzZhRm1RdFhyUFpmOU0K
ajdPS3lEVGhBK1ZzMER0TzViQ0xSaXFDYWxNU3I2dk9lOFRGd1FZS1BxSncyWTBQcUM3VmZmM1R0
VG1lNTdNUHJzWUpmZlpCbHo3bgpZVFRPTHRlZHFFN2J2NjFNczBWd1k0Tm1kZldicGxOU3ZlZE5a
ckw3WU8yS1F3ODlsRGRnd1U4a0pkZDBHZ1NRcEpGb29Yd2NFOEtqCkZSaFpTTGY0V01NbDcrR0hI
ODZxTlBqRmNWeDA0b0dnY21Bc2JTU2NJS2hKOVg2bDV1TTZYalorSHk5Zjl2NkhIMzVnWnBxTXI1
cEEKUUtVRGt6NDZJUUpUNXlMMkJxTENROVVKbnFTUTVwMTNYZ0dQRzNmY2NRZTc0bTFxSk4zZ1pB
UnVVTk1TR1lzTC9GVk5PQ1VEdnFJRQpvV2h2T2pGRGtNajJrRnoyejhZNDV4a0QwL1FPMVUyY3dt
RW5MY2xUWFh6dW1wajNVQlhBS1Z4V3F0UDZsOVhXcE9ldSt1QnpuSHpRCkpmRHRheDZxWSsxeTNW
SHJ0WG5keWpTYkZ5K21hVGF0WHROMFNuYUNYQjM0UVFnaENNdEFEbTZZRjB4cWgyczZEUUpJMGtp
MFVENzAKcExGckRyZHJFYU9JMkJzUnM0Q2RmVElzRmlCSVNNRWdRakp5ZHRKRE1DSmc5TlhBaEtq
NDU1OS9idGdZMkc0SWhBcW9Fb0hSUjl3TgpxTEJBR0VPYm9GT2V0aU5nbzIyb2o0ek1XSDhldnRS
eDBnRGhSM2NpQk1Gazh1VEpBcXBZTGhMMFF1RzZHYll5U05nUmdkcGVlMGt1CisrZHJuRTNUTzFT
Zm9zMkx2SFRnY3Q3WGVmM0xpeTlmZlhBNVRyN28wdGM4Vk1mZTVicWoxbXZ6T3RDc1dkN0JKcDFD
elZ4Vk5VK2kKQzlkMEdnU1FwSkZvb1h3SUh6QUdoU0h6YjcvOUpyRFREMllXdTEzNGc5b1I3QUpP
UC8xMERuSUh2VDl5bzJlbGgvRWROclFMQmxEdwozYSttc1dQSE5rNEFvdnkwWGRPb1RORmY2Rytp
THB3dVFMci80SU1QeEJwcnJDRndDZ1RWSXVpWnUwNklwd0JEZHl6Z0NEb0l1NVNSCkkwZUtCeDk4
a0NPalIrMkJrRWl1ZzFudEJlb3ZMaEo1U3hPTEw3NDQ3M2JESHpsTzFHQnZBQ0VTZXFRUVltKzU1
UlpXSFhQUkh0TjEKdU95ZmozRzJRZTk1aEErZjg3NU82MTlaZW5YVkIxL2o1SXN1TVI0KzVtR2NE
bHl1Ty9HNmJkMEhtalhMTzB5SmRCb0VFRnV6MHlGYwpIQk5TM0E4T1hnZFBUNUYrT0JaOS9DSGhO
R1R3NE1ITVVPSTBCRXc0MUlCTXAvZ0hEaDY2b2phb2RlR0VCdDZWOElmMmdzbU52NnVXCkwzc05X
NGF6eno1YlFCOFNhWk5OTm1HRFZ1aVdJNUJlZEdKVUZuNlo5MkQzY2M4OTk3RDNxOVZXVzQxQm5I
YmFhWUpjRnZNMVRqd1EKOE8yaGh4NFNHRStjMkxoTUVGUmhUd0o3RkRnUXdBa2E5TVE3VWNCS0NK
T3RubHoxejhjNCs2TDMrTngxT2UvcnRQNlZuUnV1K3VCcgpuSHpSSmNiRHh6elUwWUdyZFVkWHQ0
MjhRTE5tMVpLblNEcWxCU21rbW1DQUZnbU80WURmdkFrK25TbVN0eVFqNVRhdjlPblRwNDNmCmZC
UkMwRHY0ZzdhUnlOTlVtMENFdW5vUVk0SU01VGwrQUtuNVNOcGxsWFFhb1NzNnhlU1Ixd29lR3dS
NUFpN29SS2hkOXIwTW5TY2gKd2lTc3BEcE01N2ZIY2ZZMTcyMnRmeWJwS2d1V3JUN282TmJYT09u
YTRqdXZ2YzNETERvcmd1OHNXSUZtaTJDeld0bjJUS2QvQVdxSQoyRUtxQVFZaW13MDBKZSt3NEhR
QnUwdTZCSGV1TUhSMjZVTDFoUmRlWURVbmVOdkttN0RianQxMS9JWFUvakZRaHM2VHNHSVNWbElk
CklUOGJBNzdtdmEzMXp5UmRaY0d5MVFmZHFQa2FKMTFiUXA1WkRHVFJXWkhhc21BRm1pMkN6VkJX
eFlCS1cwRUFVVEhqK1ZvZG1Md0MKaU9jbWgrb0RCZ3Bqd0NTZG00UlZ1Q1BoaFhhTEFaTjBaUkpX
dTBWNDZGaGxESmlrTTVPd0tuY3NBR2hYR0ZCcHkzNGt1bmFGdXRicApEQVNZUng1NWhGMjRRb2Mv
cElDQmdJR0FnU2tGQSsxaC9Xc1BmWmhTNkMzMDgwOE1CSm9ObEZBRUEwRUFLWUt0Rml1THVDQXdU
bDk2CjZhVTVVS0hyNXNOOUo5ekh3dHRVWFJMYzM4TDlMb0lBaGhRdzBONHg0SVBlNnpMdmZhOS9K
bWpMWmg5OGpwTVB1alF4SGdGR05nWUMKeldiaktKVDRFd05CQUdtbmxJQmpMZ1RZUXdBN3VFNmRj
Y1labmZjVXdnZmN6U0xvNGQvKzlqZm45ZXNxbkhubW1kbEZNWHhpdzh0VQpTQUVEN1JrRFB1aTlE
dk8rRHV0ZlZicXkzUWVmNCtTRExxdU9SM2cvR3dPQlpyTnhGRXI4RHdQQkRlLy9jTkdTVjFDdml0
enV4anVBCjQxQzRUMFZNa1B2dXUwOTg5OTEzNHBOUFBtRVhxeEFNaGd3WndsSFQ0KytadkVmZDhC
ZU9RSUIxU1lpTEFwd2hGa2lkRTJLb0lCcDAKWFZMZDJtTWFMNzc2Wjd0ZUgvVHVhdDdYZmYzTFE2
TSsrK0JxbkhSNDhFR1h1blpFZWJibllWUlAvTmRYdmZGMkZMa1BOT3VQZC9CRgpMemJxRFFKSWtW
bFh3N0lmZnZpaElMZTZISzBhMGNXaFd2VCsrKyt6Wnl5Y2Vuei8vZmNzQUh6OTlkY3NqQ3l5eUNK
aXl5MjNGRjk4CjhZVjQ2YVdYeEdhYmJXYTFWd2d1aU1CMnM4d3lpOVY2MG9DVEd6dXgwRUlMTllv
ODlkUlRIQmdSL1I4NmRDaXJxUjErK09HTjU2NHUKZ0JzMXlCc0V4TnR1dTAzY2YvLzlQRDZSNmh5
Q1MwSll0QjJNc0c3dE1UME92dnJudXQ0NjBEdjY3R0xlMTMzOXkwUERQdnZnYXB5QQpCOTkwNlhv
ZVJtUHZxOTZvZmh1L2dXYnQ4UTZtNlFYd2Z2cnBKekhYWEhPbGtvTHBlbE1yaXg3U0xubElOY0VB
alVuaE9DQm8rbzAzCjNpaEpzSkRrK2xhT0d6ZE8vdmpqajQwZVhYUE5OZkxjYzg5dDNMdStPUG5r
aytYbW0yL3V1dHFtK3VDem5BSVB5akZqeHNnUkkwWkkKT3YyUnRQc21TUTFMbm5EQ0NmS3JyNzZT
TkVFbC9HMjdUTGZmZnJ1a2dJU1NnakpLVW9lUXBKWWdCd3dZSUVrNGJHb0dCUVBrTmovMwozSE5O
K1drMzc3enpUdHBqN1RPYjdWRXJMRXZuS296b3VnZ3NWLzJMMmhiOXVxNjNEdlJ1YTk1ZmV1bWxQ
RmNqM09MWHh2cFhoSzdVCnR1aXU4OEN5MFFkZFcrSjVMc2ZKTjEyNm5vY1JybDNWbTRmT29qWmwv
ZWFCMWQ1b1ZvY1RIelJya2w0bytLWGNacHR0Wk4rK2Zaay8KSERWcWxLNmJuR2V5M3NSSzZJRktX
L2tqM3FWQkRNK01ZRUFkbUtvQW4zLytlVW03KzVMc0x6allYMVY0WmQ5SGtNU0REanFvN091Rgoz
a053d3hOUFBGRk9talNwelh1MFl5T3Z2UEpLdWZ2dXU3TkFGQzlEMHI4a3IyRWN1SEhZc0dIeUgv
LzRSeHNZcGpQSUVGTXV0OXh5ClBDRWhwTkhwVldJVkZCbGRicnZ0dG9uUDFRZDBpaUxKOWtmTnlu
VnRxejN4eWszU2VSRllydm9YNzYrUGVuM1R1NDE1andDcW1OOGYKZmZSUkhNVnQ3cXV1ZjBYb3Fr
M2xzWXl5c0tyMklkWU03YTNyY2ZKSmx6N21JWkR1cXQ2eWRLWWpqTEt3V3BWbWRUaUk4bHpUckNs
NgpHVHQyckNSdEN1WjdubjMyV1E1c1BHSENCRWx4MTZLdU5mMmFxcmNKcU9aR3BhMWdoRTdZYUc4
SmFsZzMzWFNUb0krTGdGcldMNy84CjRxMkxVQi9xMkxHajlmcHhmRWpTZm1KUXhzVVdXMHpRTG9E
NDQ0OC94S0JCZ3dUMGo5VkU4MFQ4OE1NUDR0TlBQeFhISG51c29GMEQKOWJHVmE5aWhJRmdrTGRx
Q0lwK0xKWmRjTXJFZTJQSjgvUEhIaWMrakIzVENJeEFFc2t6N2JiUW5hbGNkZm4zMXozUzlVQjFj
YzgwMQpCWDFNRXRGcWc5N2gxdnZPTys4VUNHYVhsVXpPZTlwWTREa0xweHJRUSs3Y3VYTnE5WFZh
LzFJYm12TFFWUjljajVOUHV2UXhEekhFCnB1dE5JUnV2ajFxUlppT0VnVStpVFVjdHIyU0RacU42
ZGIrbTZBVnpHMEdxd2VzOCt1aWpZcDk5OW1GVmRLeW51bVNxWGgzc3BMd2cKZ0NSaHBvWHpZVWV3
Ly83Nzg4TFhzMmRQTVhyMGFHKzlJYW1hdlhEWmJBRDBHdzg3N0RDeDg4NDdDMHk2dUhBUjFmM3V1
KzhLVW1jUwo2NjY3YnBUVitPM2Z2ei9qaTA0L0JPMFdDRHFSYUR5emVUSDc3TE9MMVZkZlBiT0to
eDkrV0t5enpqcUo1VDcvL0hPeDZhYWJpbjc5CitnblkrV3kxMVZhSlpkTWVtR3BQV2gwK24vbnFu
OGw2WDMzMVZSWmFKMDZjbUlwS2svUU81bUtCQlJZUXZYcjE0azBOek91MFpHcmUKUXpBLzlOQkR4
WDc3N2NlMmJGMjdkazJybHAvVmFmM0xiR3hDQVZkOThERk9QdW5TeHp6RUVKdXNONEZrdkdlM0dz
MnFDTU02Z3czYgpaNTU1UnMxdVhKdWsyUWJRbEFzVDlBS2JEL0FXYjcvOXR0aDc3NzNGdGRkZUs5
QVBlS0JMU2licVRZS3R5dzlHNkRxc3RIZ2VtRkZTCk1STDRXTU10SGdqUVY4S3VBdHdBMjBqLy92
ZS94VlZYWGNWRzl6QW14MG5DZXV1dGwxalZVVWNkSlk0NDRvZzJ6MkdnajVPUkxiYlkKZ3A4dHZQ
RENZbzAxMW1oVHpsY0cyZkh3RHNhVFR6NnBiUUk4a21Dc3NZc0RvL2JodzRjenM2WXRiQ0F6cXow
R3F2QUt3bGYvOHRZTAoxOW9Rb3ROT3pJQkFrL1FPR3B0ampqbDRYSEFhaC9tUzlpRXpNZS9KUG9v
M0RLNjQ0Z3J4N2JmZmlqUE9PRU9NSERreWt6YnF0UDVsCk5qYWhnS3MrK0Jnbm4zU1pnTzZtYk5Q
enNBbDR5azNlZWxOQWVIM1VTalFiUnhUV3MyKysrWVk5aGNhZjRkNGt6ZXJnbDhuTG9oZHMKdGo3
eHhCTzhjVVIyd0lKVXljUXFxNndpZXZUb1VhYTZ4anRaOVRZSzVyblFxR2lGTEU4WW9QRnFHT2hV
YVFMRnQ1QXJycmlpcEFDQQpzbHUzYnBKVUZxcUFxL1F1akt1SmNhNEVJK2xsR056ZmNzc3QvUGlE
RHo1SXRUV2hVeUEyMVAvWHYvN1ZCdHdycjd3aVNUQnBrKzg3CmczWW41Y0NCQXlVeGZ2TEJCeDlN
YlE0eGFiSjM3OTd5amp2dVNDMVg1V0dSOXFUVlk0ck9VWWRKV0tiNmw5WjMzVE1iOWRxZ2Q4dzMK
NkJWRGp6Z3JtWmozdi83NnE2U1RUVW1uazVMVUp1WGt5Wk96cXVYbkp0WS9rM1JWQnBhSlB1UkJs
dXR4OGsyWGFUaXhNUS9UNm91ZQptYXEzREoxRmJZai9sb0hWU2pRYjd5K0ZKNUMwRWNrT2FlTFBi
TkJzdkk0aTkzbnBCYllyY0t4RHB6b044TGgrODgwM0cvZEZMdkxXCm13VlRwYTF3QWtMWWFHOXBv
NDAyNHVCL045OThNN3UvOVJtREF6cUlhVHVsd0QxMkhqcDA2TkRra2piUG1FRGxpTHhiaVJkZmZK
SGYKaDVTdlM3Q2RnRXJhU1NlZEpLYVpwaTNKUXljU3V3VjFTZVRCU293ZlAxNlF4d3AybVF5M3l2
UE1NMDlxOHc0ODhFQ0JQeHVwVEh0cwp0TU1XVEYvOXMxV3ZMWG9uWmpYM0VKaVk5M0RkRFJmalJW
T2QxcitpYlkvS3UrcUR5M0dxQTExRytGVi9iYzFEdFE3ZHRhOTZkVzB4CmtkZEtOQnZ2NzZLTExo
clA0bnRiTkt1dExDT3pLTDNBZGdWcDNubm5GYlRKeXFmSTVQU21LU1JCUnBYOHVHaTllV0JHWmRw
eVk5R1QKOE51eUdJRGFGZlFaY1d5NC9QTExNL1B0cXpOUTI0QnhkMUtDWWV2TEw3L01odDlKWlpM
eUVhUVBhaGxaQ2FvY1VFMkNFYnFhc0xnZwpKZ2lkbmdoTU1odUJkdFQ2OGx4RGFBUysxbDU3YlZZ
WEE0UGdNOVd0UGFaeDRhdC9OdXV0QTczYm5QZFpORkNuOVMrcnJVblBYZlhCCjVUalZnUzdqK0xZ
NUQrTjFxZmUrNmxYYllQbzYwS3k5b01GVjZBV2JybVdETGxlcE53OTlCUUVrRDVaYXRBd01xenAx
NmlUMjJtc3YKYnoxQThEd1lwMkYzSkVwMFJDY2dlTUJXQVpGNHliZC85TWpLN3lhYmJNSjJLRkV3
UkFnZThJU0ZRR25ZK1VBQVFOakp3TWdXSnlVVQpHMFRNTnR0c1Z0cVNCWFNYWFhiSkt1TDBlZDNh
WTdyenZ2cG5zOTQ2MEhzZDVuMGQxcitxOUdxN0R5N0hxUTUwR1I4UG0vTXdYcGQ2Cjc2dGV0UTIy
cmdQTm11Y2RmTkdMOVhxejlMWENjM2NZb0FXaG9kTmV0VmJ5ZHNBQmFLRFg2RE9SOGFva1QxeVNt
SDJPVFlGNEZ4U1YKWEpLaHQwd0xpbU96elJSVlhKTFEwYWdDZGlUay9VRSs4TUFEa2dRMnVmMzIy
emVlaFF2ekdEQko1eVpobWU5cFBTRDZvSGZmODc3cQorbWVTcnNyQ3F0cUhQTlRuYzV4ODBHVWVu
TFJxbWJKMHB1dHZXVmlCWmdQdm9LTW5OVStscmIvZ0FXV0VWQU1NNEFnelNsV0dCZDZTCkVNOEM4
U0NnZXVRN1FiWHA3cnZ2NXZnQk04d3dBeDhId2syc3poN0RSVnZKa0piYkFtOFFaSkRGSnpId2Vv
WFlLZkNJUlFJSWU1MUMKVzBNeWp3RlRkSTZXbVlSbHZxZjFnT2lMM24zTmV4UHJuMG02S2dQTFJC
L3lVcCt2Y2ZKRmwzbngwbXJseXRCWlVoL0x3QW8wRzNpSApKSHBTODFYYUNnS0lpaG5QMStyQVZC
RkE2bURMNEJtVm1kVkQ4Q0RQVXVLTEw3NFFxNjY2S3NjUXFZT3dsdG53ZGxEQUZKMERGU1poCnRR
UFVKblpoU3FKM0UrdWZTYm9xQTh0RUh4S0pvVVlQcGlTNnRJMzJNblNXMUtZeXNBTE5KbUV6NUtz
WVVHa3JDQ0FxWmp4ZnF3TlQKUlFEeDNJMVFmY0JBS2daTTBybEpXS21ORGcrbktBeVlwQ3VUc0th
b1FRaWRMWVFCazNSbUVsYWhUb1RDN1I0REttMzUxODlwOStnTwpIUXdZQ0JnSUdBZ1lDQmdJR0Fn
WUNCZ0lHQWdZaURBUUJKQUlFKzNnbDRMc2FYdUJPQkpwcm5DMUx4bktSSXdQUkc3ZVk0ODlCQVhG
Ck1RUzFHaGdLT2lRUSs2TU9xVzc0K2R2Zi9pYU9PZVlZamtOU0IveVlib092L3YzNDQ0L3M3dGww
Zi9MQTgwSHZQdWk2anV0Zm52RlIKeTdqdWc0OXhpdnJyZ3k1OXpVTmY2MDZFYTV1L2dXYk5ZOWZY
dkhST3A2VHFFMUpOTUVCa1hNa0xGZ1d2a3hTVWozdnozbnZ2U1VUSAozbm5ubmVYS0s2L00wZEFu
VFpya3BhY1BQL3d3OTB1TnlPbWxJZit0bENhM0pIZTdrb0lQK214R28rNjY0ZWZ5eXkvbjhYcjEx
VmNiCmJUUjVVWlhPMWJhVWdXVzdmMnI3b3VzLy92aERVbXdlU1c2bjVRc3Z2QkJsTy9uMVJlK3U2
ZHJrK2xlR3JwSUdzd2dzazMxSWFrODgKMy9VNFJmWDdvRXVmODlEMnVsT0V6cUl4U1BvdEFpdlFi
QklXcStYN21wY3U2VFNjZ05CTWF5OXA0NDAzRnJ2dnZqdkhzTmhtbTIwRQpMYllDMGNHeDIwOXVa
am5Rbm8rK2Z2NzU1MkxERFRjVThEbVBlQnNmZmZTUmoyWTA2a1JrMENPT09JSzloRzIyMldiaTZx
dXZGdi81CnozOGF6MTFmMUEwLy8vem5QOFdhYTY0cFZsaGhCZGVvY0ZLZmovNGhhQ1pvRFRGbjVw
dHZQaWY5akNyeFJZUWUyMDBBQUNBQVNVUkIKVk8rdTZicXU2MTgwRG5sK2ZmVEI5VGhGZVBCQmx6
N25vWTkxSjhLMXpkOUFzM1o0QjEvejBpbWRWcFBSd3RzbU1VQ0xSS1VURUxUbApsMTkra2M4OTkx
eWpXVHZ0dEpNa3hrZkMzN3VMOU5OUFAwa2k0S2FxY05wdy92bm55Lzc5Kzh1cHA1NWE5dXJWcStt
NTY1dC8vT01mCkVyczJwQm9teVNDS2NUNTY5R2dueldnRi9HQjg3cnp6VG12NE1FSG5VZVBLd0xM
ZHY2aHQ4ZCtMTDc1WWtpcWkvUGUvL3kyeHkzVEQKRFRmRWkxaTVkMEh2ZGFGclUrdGZHYnBLR3J5
aXNFejFRZGVldW93VDJ1YUNMblU0OERVUGJhODdSZWxNaDVzb3J5aXNRTE1SNXNyOQoxbWxldXFU
VDRBV0xabHBka3VvZGdNaTRjck5PTyswMFFXcFBBdjdXcDU5Kytzcnc4Z0RBYWN0Sko1MGtsbGhp
Q1Q1VklGVXdjYzAxCjEzRE1qeTIyMklLanNxKzMzbnA1UUJrdkE1eGVlZVdWZ29ReHNkUlNTNGxs
bGxsR1lCY09iVWFVZEJkeFNWemhCelkvYzgwMVZ5WU8KSDMvOGNZSHhBTzNSUjRUcFpjY2RkeFFr
dURKT1ZseHhSYkhiYnJzSnhFU0JMZEZMTDcwa2R0aGhCekh0dE5ObXdrNHFZSkxPczJENQo2Qi82
alpPT24zLytXVkFBemdZYWdGY0t3aW1lZmZaWjhjNDc3NGdUVHp4UkhIdnNzWTNuZVM0ZWVlUVI4
ZXV2di9KNG9lK2swc1Z1CnBIWHZ1cVIzVjNTTmVFS2JicnFwd0U1MlZxcXkvbVhSVlZiZDZ2TXFz
S3IwUVcxRGRGMkhjWEpKbDc3bW9ZOTFwd3FkUmZRUi9WYUIKMWFvMEcvVmQ5MnViWm0zTnkrdXV1
MDdRNWlxdmx6UE9PS1BvMTYrZldIZmRkUnRkOUUyblFRQnBESVgvaXlxVFB0NTZCTlVEOGVHRAo3
VXI0aU5xQUl6d3dTaDk4OEFFYnY0UFpvbWpqVFRFYklCaVJ2UXFyWXkyLy9QS0NUa21pMXl2OURo
OCtuTlhRb0hJV1R4OSsrS0dnCmFPZmk0SU1Qamo5eWVtOGJQMDg4OFlRWU9YS2t1UDc2NnpQNzlk
QkRENGtERHp5UWhTOHdkY0FiR0R3SWtVam5uWGNlQzJsd0lvQUUKQWVUSUk0OFV0SHN2T25YcXhI
bEYvNW1rOHl4WVB2b1g0WU5PL2NUcnI3L09xcEFReERFZmdGdW9SMjYzM1haaXBwbG1pb3JtK3Iz
dAp0dHNFQW1hU2JqQ3JNcTYvL3Zvc1NJT3VJZHpIazJ0NnQwM1hXRVBvZEZjY2NNQUJZdGxsbDQx
M3QrbSs2dnFYUlZkTmxXWGNsSVZWCnRROUp6Zkk5VHE3cDBzYzg5TEh1bEtVekhaMlVoZFdxTkt2
RGdacm5nbVpOejB2d1lEQm03OUNoZzFodXVlVjRzK3JHRzIva2pkZFYKVmxtRnUrZWJUZ1ZKZGlI
VkJBTkVFWlZWc05BVkdDK1J6WVg4L2ZmZnVXY3d2UE9Wb0hhbHF2T1FYcU1jTVdLRXZQMzIyK1hR
b1VObAoxNjVkV1JXS2Rvc3JOeEZINjdTckxNbkdSQXZyc2NjZVl6VXc3VU5QbWFieGM5OTk5OGxa
WjUxVjBvY2dkNCtnZmtaQkdTWFp3Y2pWClYxOWRmdi85OTQxM2FZR1NlKzY1WitNZUYxQmZvNTE4
Q1NQU01za1VuYVB1UExCYzkwL0ZDZWo2dGRkZTQvR0FFYnFhNEJRQ2MyQ1gKWFhhUlpHL0R2MUJM
MGFVMzNuaERrb2NTU1lKTFU1L3gvajMzM0NOeGhCOVBwdWw5NHNTSmtrNVRKVzBveEt0cWMyK2Fy
aSs0NEFLdQplK0RBZ1czcWltZVlXUC95MEZXODNxVDdNckJNOUNHcFBXcStqM0h5UVpjKzVxSHJk
YWNNbmFtMG9GNlhnZFdxTkl0K2t5Y3ZWbzNGCnJ5NlpwbGxkSFdxZWlYbEptaWVTTmx3bCtDTGFa
R1ErNit1dnY1YmdFZFRrazA2REFLS09oT2ZyTXBNKzN1U1hYMzVaMHM2b25EQmgKZ2lSM3FuTElr
Q0hNbE5PdW9TUVZFUG5XVzIvRlg3RjJUOGVLc2t1WExxenJHNjhFM3JyR2pCa1R6eTUxajBYaitP
T1BsMDg5OVpRYwpNR0JBSWd4NEJUdmpqRE1Tbjd0K1lCSS8wTUh0Mjdjdk02ZGs1TnpHRGlkUDMr
Njk5MTcyRHFhV2haMENkRUxqaVhaUXVMNTRmcDU3CkUzUWUxVk1FbHF2K1JXMVRmOGs1aEZTOXdF
RVF2K3V1dTFqWU8rZWNjK1JoaHgwbWFYZEtKbTBXWUs3QXM1M2FYMXpQTnR0c0RBT0MKWWp5WnBI
ZTBOMm8vTmhTUzJvazJtS1JyZUdJanRRSDU5Tk5QODlwMTJXV1h4YnZaZEc5cS9WUHgzRlJCaVp1
aXNFejFJYXVwdnNiSgpGMTBDSHo3bW9hdDFweWlkcGRGSFVWaXRTTE5xLzhHbzA2bC9vb2RDa3pT
cjFxdTdOalV2SVdoZ0UvcldXMjlsZm9BaTFmTTNoMVNBCmRkVktIM1E2RFJGYVNPMEVBL0F3dGZY
V1d3dGkrZ1h0bUlyVFR6KzlTZjJLZGtyRkJodHNJT2lqTHVhZmYzN3J2U2FDRnVRQ21PMEgKNHBY
aENEQTZCb3cvSzNLUE9zYU5HOGU2OU45Kys2MmdFNVhFMTZFSzFxMWJ0OFp6MklMUXdpbG9aMWZB
UHp6YUN2V1lxYVp5NHh6TwpGSDdRRDZpeGtWdGg3aHN4dEUzajN1aHd4Z1VKWitMU1N5OXRLdlh4
eHgrM1VYZUJkelhZenhBRHpUWTFUUy9VK01aWC8yQ3pBUnFEClo3RW9MYnp3d2dKL1VHbURiVWpu
enAyalI5cGYrbUt3S2xmOElYend3M1pKNThYTkpMM0RJMHRrendLN0tjeVhKRzllcHVnYUtnUlEK
dWFJZFBJRitrcEFteUhnL2pvTEdmZDNXdjBiRENseTQ3SU92Y2ZKRmw3N21vYTkxcHdEWlZTcmFp
alFiN3pDZFVndmE1QkR6ekRPUApXRzIxMWVLUDJXYlBGZTlnYWw1Kyt1bW5nazV1eEx2dnZpdG9j
NUp0QjlHM0pCdGNMM1NxRllWQ3BoY01FTlUzZGppTE5nQTdoWFBPCk9hY2t3Mk5KaGtXSnJ5KzY2
S0x5d2dzdlRIeHU4Z0hwdTdQYVJBUVRFamc4QUpsS1VBV0tka1FuVDU3TVI0eFFJMHBLVzI2NXBT
UmgKaFhlTWp6dnVPRlpUd3pFbFZMWklWNTlWaldoeXB1N3VKc0V1azI4U1A0TUdEWkswdUpRZVcr
d0FkZS9ldlUwM2V2VG8wZkRXaE4wVQpxTS90dDk5K2pMdDExbG1uVGZrOEdWWG9QQTQvTHl5WC9Z
dTNFYnRuNVBZNW5sM28vdm5ubjJmVnA3WFhYcnV4UnFEdkJ4MTBrTHovCi92c2xHZHUyZ1dlYTNz
a0dnK2N6Vkw3U2tpbTZwZzBGcGpXb21aSGRrU1FibXNScVRhOS9lZWtxc1VIS2c3eXdUUGRCYVlM
MjBzYzQKb1NHKzZOTEhQSFM1N3VTbE15MHh4REx6d21wVm1vMTFWNzc1NXB0OHdveFRabDB5VGJP
Nk9xSThVL01TWTBNYmlLeTZDOWpndlhDUwpITVdLaStyRHJ5ODZEU3BZNmloNHZzNDc2WFhOSk04
VEhHd3dTeitiRElkbEhqMXFYUjFGOHNBd1FUMkVES3NhcjhIT0FLb2NwaEx0CmFMSHFDdlFsd1lC
RENFbExFTDdnbGhqQjRLQlRIaGVHYUZkWGttR3doRkJpTzduQVQ5NCs0TWdYdGpoazVOejBDbXhC
YUhkZHZ2TEsKSzAzNVZXK3EwSG04N2p5d1hQZFBiU05vakF5bWVlR1A4c0ZZcS9NaXlzLzZKY2ND
SER4ejhPREJranlSeVlzdXVvZy9tbERsMGlVZgo5RzZEcm5YMkxmSCttbDcvOHRCVnZBMUo5M2xo
bWU1RFVudVE3MnVjVUxjUHV2UXhEMTJ2TzNucERHT1FsZkxDYW5XYXpjSkQ5TndWCnpkcVlsN0Iv
Z29vY2hBd0lXdkhrazA2REFCSWZEWS8zZVNlOXJvbGd4ci82Nml0K2hOMVFjamNyS1FoaGs4MEho
QlBVb1JxRjYyQlYKemNOaUQyTm02TnVxQ2ZGSlhNVStVT3VOcmlsZ2tpUjNzdnp4amZMVVg1elFr
RHRlU2FwcmFyYng2N3JoNTVSVFRtR21BRHZNZEd6Ygo2TzhsbDF3aXlWMXg0OTdVUlJVNmo3Y2hE
eXpYL1ZQYk9HclVLTm14WTBjMjhJL3ljWEtYdFZFUWxWVi9RVGZRNThWSkJQN0l5eGs3CkJGRExx
TmV1NmQwblhadGUvL0xRbFlycnRPdThzRXozSWFsTlBzY0piWEpObDZqVHh6eDB2ZTdrcFRQZ0l5
dmxoUlZvOWs5TW11QWQKZk0xTG4zUWFCSkNzbWVqd2VkNUpuOVdrazA4K21SbkpPKzY0ZzVrZmNz
Y3JzYnVQaFI5cU9rbWVkckxnNW4yT2t3NzBoWFFabTE2QgpzVGgyMmlFY2tkNG9xenA5OHNrbmt0
ekdOakZvVFM4WnZBRU9Ja05hSFZnd2QyaDNrcEdXN3AweWVYWENEeFpPbkhMZ1JBanFhMUIzCmdj
ZU1tMisrV1pLZGtJVGFndWxraXM3UnJpeFlQdm9YNFFzN1R6aHRnek1JTlpGT0xoczhxbmsycmwz
VGUxM28yc1Q2bDBWWFJjYXIKREN3VGZVaHFvKzl4Y2syWFB1YWhqM1duREowbDBVZ1pXSUZtcS9F
T1B1YWxiem9OQWtqU0RQU1FYMmJTNjVvSmIxYzRjZ1BELzllLwovbFhPUFBQTWNza2xsNVFVZ0Va
KytlV1h1bGVNNWtITmF0VlZWMjJqNG9SS3Z2amlDMG1HM3BLQzRqUXhqOWh0OTVuZ01RS25JL0Nt
ClpUdlZEVC9RT1kxY05xUHZzQ3NBTGZidTNkdUtZR2lLenRIV1BMQmM5dy90UXNLUk45cW5VMkhi
YXF1dFpKOCtmU1RGcldHM2lKaW4KMklrcTY5cjR6eHJ6LzdkQjczV2hheFByWHg2NnlvdnRNckJN
OUNHcGZYVVpKMTM3Yk5DbHIzbm9ldDBwUTJlNk1VQmVHVmlCWnF2eApEcjdtcFU4NkRZRUlhYWJW
SlpVTi9oTnZQL2w2Rm5Ua0xFaWZVQ0M0RFFrZllwTk5OdUVnYVBHeXZ1N2gxWVpzTmpoYU5DSjJ3
Nk9PCjJuOVg3YUxZQ3V3dERKNDhFSHdQRWNEcmtIemloM1pGT09vNWdoZlpTT280Ly9tdEsxOUxH
VmkyK3hmMUJwSGw0WW51N0xQUGpySWEKdjZSM0t4QTBFNTdwNEsyRWRtazVjajJpbzFOY2tFWTUw
eGUrNmQwRlhadFkvOHJRVmRKWWxZRmxvZzlKN2NtVDcyS2MxSGJZcE11Ngp6RVBiNjA0Wk9sUEhR
TDB1QXl2UXJIM2V3Y1c4ZEVtblFRQlJaNTNuNnpLVDNuT1RXN0o2VWtFVHBHTEVrYW5KYzVpZ29J
M3NnbGZGCmYwdDJyRVVhcmVMWmh3RFNJbWd5MXN4QTc4VlJHV2kwT002S3ZoSG9zaWpHMHNzSG1r
M0hqNG1uZ1dhclkxR2wweUNBVk1lbk1RanEKd0ZSbHpJdzFLZ0FLR0RDTUFaTjBiaEtXNFc0R2ND
Mk1BWk4wWlJKV0M2TTBOTjB5Qmt6U21VbFlscnNkd0xjWUJsVGFjaE54cmNVUQpGSm9iTUJBd0lN
UVBQL3dneURZa29DSmdJR0FnWUNCZ0lHQWdZR0FLd29DTDczOFFRS1lnZ3ZMWjFkR2pSNHN0dHRo
Q2tHY3VuODJvClhkM1FmWWFOQUNMWDF5MlJVYjZnZUJOaXlKQWhkV3Vha2ZhUVF3UkJ4dDlzSjJV
RVlBRFNCZ05oM3JkQlNTMHp3amk1RzVhdzdwakIKZFh1bTJUcndCUzYrLzBFQU1UTVhhZ0VGeGtQ
a1FyWk5XNUJQMFM4RitleHU4OHhWQm5uSUVPVGxRWkFMWGxkVnB0WkRRZDJZdWFZbwo2S25sYkQv
czFxMmJJRGU0Z3R3VEN3b1NaTHU2UXZBcEtLTWczK1NDM0NzS2NoMWI2TjFXS0x6d3dndXpvNGFW
VmxwSi9QYmJiMWFiCmpBL0tYbnZ0SlM2KytHTEdxZFhLTk1COTBidkxlVi9uOVU4ekpOb3NYMzF3
T1U1cXgxM1RwZTk1aUw2N1hIZFVYTnU2RGpSckhyTjEKNEF0Y2ZQK0RBR0tlZHJ4Qm5HNjY2Y1Nr
U1pQWTJ4Vk9HK0Q1Q29STUVja0Z4ZjhRVzI2NXBiZTJvZUs1NTU2YlQwSFVSbERzQ2ZYVwoyWFd2
WHIwRVJaQVdJMGFNYU5RSnU1dVBQLzY0Y2UvcUFqc05GQzFiTExQTU1xNnF6RlVQaE1YSEgzOWNY
SHZ0dGFKTGx5NjUzbW1sClFoUmhXMUJRUUZZemc2Y2Ntd256Y1AzMTF4ZEhISEdFb0NDRU5xdlN3
dlpKNzY3bWZkM1hQKzNBeERKOTlzSFZPS2xkZGsyWHZ1Y2gKK3U1eTNWRnhiZXM2MEN6NVdyZkFP
L2ptQzV4OC93bHhJZFVFQTdSQU5QeHZWMmtTSW1vaTBOOFpaNXdoRjF0c01RNHNoK2puQ0FEbApJ
dEVDSytFVC9PNjc3K1pnZzRqNlRPNUdKVEhZY3V1dHQ1Yjc3YmVmSkdGSTBzNnpuSGZlZWVYWXNX
TmROS3VwanNHREIwdGFPQ1V4CjEvTENDeStVdERzdFNXamptQ2xubm5sbVUxbmJON3Z1dWl0SHRi
WmRUeEg0NU1KWnpqUFBQUEwrKys4djhscXVzcWJvSEpXVmhZV2cKaTl0dXU2MWNZWVVWbk1UR1FW
dEoxVTV1dnZubXVIU2VYTkI3WGVhOWlmV3ZMRjNwQnJZTUxCTjkwTFVGZVhVWko3VEZCVjJpSGpY
NQpuSWMyMTUweWRLYmlSYjB1QXl2UTdNelNKTy9na3k5dzlmMFBYckJvcHRVbHFkNEJhREVvM1N6
RTE4Q3VkY2VPSGNYMjIyOHZwcDkrCit0S3d5cjRJbFMrY3VoQ1RKM0JFdS96eXkvTWZkdm9wd2ph
ZmhtRG5oSUlraWhWWFhKRlZZY3JXVmZROUNnd24xbHR2UGJaSHdXNzAKb29zdXl2ZkFHMDRoOXRs
bkh3SFZBQnZwMVZkZjVmNUdzRkgvMm11dnpiRWZwcDEyV2tFQjZzUkdHMjNFTVZIZWYvOTlBZC9x
M2J0MwpqNHJuL2tXY0NhaDJsVW1vRTZkbnNJL0FHSnBPcHVnYzdTb0xDM1l0RXlaTTRGTXduQkM2
U0QxNzloU0RCZzBTRzJ5d1FlbnFRTHVJCkc0Sis0dyt4V2haZmZQRlVlQzdwM2ZhOGYrMjExd1FK
amFuOU5iSCtsYVVyWGNQS3dETFJCMTFib3J3NmpKTkx1b3o2alY5Zjh4QjEKMjF4M3l0QVoycVJM
WldDMU9zM3E4QkRQczBXenR2aUNSeDk5VkZDUVp6SFZWRk1KaEJ3WU9IQ2dXR0tKSmVMZGFycDMr
ZjBQa2RCVgpzZC96TlZGQlkwZTNTbE93eStJN2tiMEo5K1d6eno1TGJBcE5PaTVEeG1TSlpZbytH
RGR1SEorNkpMMUhxamFTaENGNTQ0MDN0aW5TCnIxOC9TZnE1RW1Wc3BkdHZ2MTBTQXlxSndlZm85
R1Q3SVE4KytHQ3VFenRJQXdZTWtDZ1RKVklUNDFNajhrZ1JaV1grdnZYV1c1S0UKcU14eXVnSm9B
NmxGeUpkZmZsbjMyRWllS1RwSFk4ckF3c2tjVHVESXA3dVIvakNReHg5dmdvVnhRM1I1RWdUbDY2
Ky96aEhQU2FkVwo3cnZ2dnZLd3d3NlRwNTEyV3VORThyMzMzdU5UdUcrLy9iWUpSdndHcDRqRWdN
dUhIMzVZMGtlRkk2eVR6WmQ4NG9rbjRrVWI5NjdwCjNlYThSNy8zM250dlNYcjhqZjdwTGt5c2Yy
WG9TdGNXNUpXQlphSVBTZTFCdnU5eGNrV1hkWm1Id0xudGRhY01uYUZkdWxRR1ZpdlQKckE0SDhU
eWJOR3VETDNqaGhSZmtlZWVkSjhFUFVFQnEvdDZkZSs2NWt1dzU0MTFyM0x2Ky9nY0JwSUY2L3hk
bEpyMy9WdXRiQU1FRAovU0VqYjMwQnlxWGRJTG5BQWd0SWl1NlpXS2JJQXdvdUtFbkhYcEl4dC9Z
MVRDNDZZWkNiYnJxcHhJZEpYVEMvK3Vvck9lT01NMG9JCk1MYlRzR0hESk9sWDhvSkFkZ0dTdktJ
MHFuend3UWRaWmE2UlFSZDBFc0ZDVXg3QkNBenFnZ3N1eVBCVkdIbXZyN25tR3Exd2x2ZjkKUE9W
TTBubFJXTUExMUFDeElCdEw1NTh2NVNHSE5JSEQ0aytuZTB4VFVMc0N6VjF4eFJXTk1tUjdKUEVY
SmN5WE5kWllRMDZjT0RISwphdnJGUEhyNjZhZmxvWWNlMm1Cb2FWZEwwa21kSk05eUxPdzB2VUEz
cHVtZFRsNGtWRG0vLy83N2VGV05lMXZ6SGg5b3pCazZRV3FhCnQ0MktEVjhVcGF1MDZrM0NTcXVu
eURPZjQrU1NMdXN3RHpFdUx0WWRrM1JtRWxZUnVrd3JhNHRtMCtxTW5wbW0yUWl1K211YUw3anEK
cXF2a2ZmZmRKNDgrK21oSjNpejUyMEhPVnBqM1VldFZyMTEvLzRNQW9tTGY4M1VkSjMxWmxHQUhI
ZjBoTlNJdENFeG9VaDFoSFdCdApnWUtaRjF4d0FkdVMwQkdqOWswSUc0Y1FrNGdKQm9FSE5oL3Jy
cnV1QkZPRmhBbTYwMDQ3YWQrMWxmblVVMC9KblhmZXVRazhoQ2dJClNmRUUrNW5qampzdW50MjR4
MDQ3OUU5SjNVNlNTcEg4K2VlZkc4K0tYSnh3d2drU1FwRE5aSkxPaThJNjVaUlQrT1RBU1AvKytF
TksKMEJ2Uk9SMUx0QUVKWVFLbkc2QTNNbjZWV1B5ajlOQkREN1doTitqZHpqNzc3UExERHorTWlq
Vit4NHdadzdTcTloZlhzTlA1NXB0dgo1R09QUGRZb2l3dlQ5UDdkZDk4MWhQYnJyNytlaFp1bUN2
OTdZM3Jla3pvQTAvMXR0OTBteVl1ZXhBNmVpNlRpdVdwOUptRlZiVXYwCnZxOXg4a0dYUHVkaGhH
OFg2NDVKT2pNSks4SkIxVi9UTkt1MkIrc25UZ3VnbFJGUHBtazJEajkrYjRvdmdQQ0JidzYrSzBp
dy9jSm0KMVRQUFBCT3Zzbkh2K3ZzZkJKQUc2djFmVkozME9zYkZaNi8yMzMvL1JFWVlEQlYyaU1G
Z1ZFbFlNS0E2aGQxaEhEVmVkdGxsYmNDQgpPWWV4SStsRE5wNGhqMnd0Sk5tazhLUWsvY2pLYldr
QXoza0JRZVBKSjU5c0tnMGhvbi8vL2sxNXVEbnd3QU1sMmZTMHlVY0dWSWxXClgzMzF4czQ0akN6
TEp1elVnVm4rNElNUHlvTElmSzhxbmFzVkZJV0ZYU0V3QTVYVGl5OUtPcGI2VS9nZ1EvYTBOR3JV
S0huTU1jYzAKRllFZ3JCTjR5VFpKbXc4MXhlZ0RyUGFaN0liNEl3UDFyQ2pab1BjSkV5WTBWTWF3
cTZ5ZTJrWDFScittNWozVXl6QVhJUHlnVDVnRApVQjFLU2liWFB4WEhTZlhselM4Q3kyUWZzdHJu
ZXB4ODA2WHJlYWppMzhXNlU0VE8xTGJwcm92QWFrV2FqZmNaMzkwTk45eFFZaU5UClRUWm9Wb1d2
dXpiRkY0RG00RVFHYXIrOWUvZG05ZFh6NmJRZXZGSlNjdjM5RHdKSTBraDR5Qzh5NmVQTkF4TktN
UWJpMmJXOHg0NEMKR09hVFR6NjVVdnVnRXc1ZGVqSnlaeFVVVExRL3NDc2RTM2l1OHdCR1JuT1NE
TkRsckxQT3ltcE9zZGVzM21KWEFveCtQTUUyQVNwWApTTEFoZ0pyTzdydnZ6dDdNT25YcUZDL085
OEJubno1OUpMblJsSWNmZm5obEZSVXdteEIyS0RpaXRyNnFtVlhvUEY1M1VWZzRlWVA5ClRhVzVR
dU5DdWxWL0NoOTA0a1I2VS9GbU5lNHhOdVJrb2MycEJnVGlPUDFqOFlkbkxnakQ4WVF4d1drZFRz
TFVQa09JSVZmSlRaNjgKYk5BNzhIYmRkZGZ4a2I1cW94UnZaOXA5MFhuL3lTZWZ5TDU5KzdKS0lP
eWtvcDA4WFIybTF6OFZ4N3I2aXVUbGhXVzZEMFhhcUphMQpOVTQrNmRMSFBGUng2bUxkeVV0bmFy
dVNydlBDYWxXYWpmZjdwWmRlNHZVRktzeHFza0d6S3Z6NHRVbStBQ2Nwc1BmNCtPT1B1UnBzCjVH
RERNNzdwR1crRHkrOS9FRURpMlBkNG4zZlM2NXFJbzdhRERqcEk5NmgyZVRpbFdIWFZWVmx3cU5J
NEdPM0NwZS9Rb1VQbGtVY2UKV1hqWEhzSUtlWmlTT0haMG5WQXY5UGZWaE4xZDh2MHRuM3Z1T1RX
N2NXM0tWcVlCTU9VQ3V5Y2RPblJnbytlVVlxVWVWYUh6ZUlWbApZRUVZWFhycHBlVlpaNTBWQjVm
L0hpY094eDRyYWJCUzM0RktIWVRLZUlLOXh5MjMzTUxaa2FBSkJ3VFlsZDVqanozaXhma2VOaVRZ
CmJZUkF1c29xcThpampqcUtoWklJanZZbEpkTUV2VmV4blNrejc0RWJHSjJEZ1V4THB0ZS9NblNW
MUw2OHNFejNJYWs5V2ZrMngwbFgKdHd1NnJNTTh0TDN1NUtVejNSakU4L0xDYW1XYWpmZTV5TDBK
bXRYVlo0TXZnTzBNVHM4ZmVPQ0IxTk1QdFQydXZ2OUJBRkd4N3ZrNgo3NlJQYWlZTVhkT2syNy8v
L2Urc3lwRDB2b3Q4R05QQzhCeTY4YVlTZEJ1TEpqQTA4S2dESnM1MXV2enl5NW01QnpPcHFwUkF0
eDVlCnVMQmJWb2NFL01ER0lNMXJScGwyVnFWenRjNnlzRUIvc0pYQkNacXRCT1laSjJ4WStOVUVo
d2ZrNWxJaVBrNlJoSTg5VHNkZ0R3R2QKNVJ0dXVJRlBCL0lJcGo3cEhYMjBNZS9qdURPNS9wV2xx
M2liY0Y4RWxzays2TnFTbGVkaW5OUTJ1S0RMT3MxRG0rdE9FVHBUeDBCMwpYUVJXb0ZrZEJvdm4x
WTB2Y1BIOUQzRkFhS2JWSlpYeHZhMjJuU1JkUVliVkhCdUFka2pGZlBQTngxR2U0WjhiZnQvcGVJ
L2piOUFPCnUxaGtrVVhVVjUxY2svY2NRUjZCeE9tbm44NXhKcHhVcXFtRVBucUM5TW5GMUZOUExX
aFhXVlBDWGhicGxBb3lOQmJISG51c09QNzQKNHprdUJKMDBjR3dJMnZrV2RLTER2cnJ0dFNBL1pQ
SzZ4UkhRRWJjRk5HTXFua3hWT2xkN1VBVVc2WVNMM1hiYlRWeDk5ZFdDMVBkVQpzRWF1NlVSUzBJ
YUFJTTlxZ2d6RnhWcHJyY1Z3U2VnUjVFMks1MlNaaWtDL2dJZHhVZnVmQk1zbnZhTk5ydWE5eWZW
UHhTdXhFa21vCnpaVmZCSmJKUHVScW5GTEkxVGhGVmJxaXk3ck13NmpmdHRhZEluUVd0U1hwdHdp
c1FMTkpXTXlmWDBlK3dNWDNQNXlBRkJkVXJiMUIKNU5yWUxTdGJDWFo3RU4wYjBpdFVQeWpJSGNl
ZFFKUnZxQ3ZCeUNyUGptblorcFBlbXpScEV1dTNaL253VDNyZlZENU9nWWpwWkJmQQo5QUUwQmJZ
UUhPanhxM0U5RURVZVk0K3h3dEZ1blJKT1pkQTIrTEEzbFV6UWVkU1dxckEyM25oamlmZ2M5QkdO
UUJyNWhlNHcyZ1pqCmN5U2NYR0FPa3ZETkp5OG1ZOTl3QlFuL2ZOTzc2M2x2YXYyclNsZnFjQlNG
WmFvUGFodXlybDJQa3l1NnJNczhqT1BmeHJwVGxNN2kKYlZMdmk4SUtOS3Rpcjl4MUhma0MyOS8v
SUlDVW94VXJieFdkOUZZYVlRRW9ETHVnM3c2amI1OEpLay93QmdIakxKOHBMdmhBR0JrLwpmcndY
d1RBTEQyZ3JCQ01ZSUp0S0p1bThLcXkzMzM1YndwTlVKQ2lZNmlQZ3dDWkxGZlpQUGZWVVNhZHVQ
QmRNMXBNRXl6ZTkxMlhlCkorRW5MYjhxWGFtd1RjSlM0WnE2ZGoxT3J1blM5enpValpPTmRjY2tu
Wm1FcGV0LzFiejJTTE4xNUF0c2YvK0RDaGJOdExxa0lzZWUKZFdsem5uWVFFUXNLbXBhbnFMVXlG
TnRDVUJ3QlFRYTh4bFNKckRXMlpvREplNFlnejB5c3NtYWlhU2JwM0FRc2NtSWdldmJzS2Nndwoz
RVQzRW1IUVI1ZFZJbWVaWlpiRU1xWWUxSUhlNnpEdnkrTFRCRjFGZFp1RUZjRTArZXR5bk9wQWx5
N25ZZG80bVY1M1ROS1pTVmhwCk9DajdiRXFqMmJKNE12R2V6ZTkvRUVCTWpKQWhHSFdmOUlhNkdj
Qk00Umd3U2VjbVlVM2h3eEs2cjJEQUpGMlpoS1UwTVZ3R0REUmgKd0NTZG1ZVFYxTWh3TThWalFL
VXR2OXZTVS94UUJBUUVEUHdQQTZTR0pjaldRcEJ2OWY5bE9ycUNFZHlYWDM2WldSdXBpMldXQ1FV
QwpCZ0lHQWdZQ0JnSUdBZ2FxWThBRlgrRHIrejlOZGZRRUNIWENBRHdYREJreVJJQ2dEanZzTUxI
NDRvdlhxWG1oTFNrWUlEc0xnZkhyCjBhTkhtMUlVaEU2UVM5YzIrYVl5c0N0QnNUSEVjY2NkSjhq
MXJoWXNWTmd1dWVRU2NkZGRkd21LR3FzdFU5ZE1NdTRYRk45QUhISEUKRVlucWdCRDh5T2hPSEhE
QUFibThTNVh0SzBYZEZUaldIamh3b0lBSHRKRE1ZYUE5ckgvdG9RL21SdFFlSkJmenNFN3JqajFN
Q3Y1dQpCYjdERG9aZDhBVyt2djlCQUxGRE05NmdVbXdEWm16bW5YZGVGa0l1dmZSU2IyMXBsWW8v
L3ZoalFZR3F4TTQ3NzJ4ZFlJTTdXN2hQCm5XYWF0bE1QUWlQR2plS2E4RitFdjF0dnZaVmQ5bDUw
MFVVQ0xpVnRKTGdrSm9OcHNjSUtLd2lLeHEydDR0NTc3eFZubjMyMldINzUKNWJYUDY1dzUzWFRU
aWY3OSt3dUthU0lvTXJtMnFlU2hUVng1NVpWaWpqbm1ZRnJRRmpLUStlcXJyNG9aWjV5eGpmQkJI
bnNFZWNjUwp1KzY2cTRGYWtrRzRwUGZrVnRoNTBoN1d2L2JRaHpLajY1b3VYY3pET3EwN1pjWWs3
enVCWnF2eERyNzVBbC9mLzdaY1VGNktDK1ZxCml3SHNZR05CUUN5UWtMSXgwTGx6WndIbTg1eHp6
aEZ2dlBHR29HQ0EyUytWTFBIQkJ4OEljbmtwS05pZ0lJOWNYQ2RPSHBDaVdCU3YKdlBKS0UvU2xs
bHBLakJremh2UEFwT0tqWmlQcGhLSjRQZGdwZ1pEVWFnbnRSaHdUeEtGSkU3QVFFd1NDYU5WMC92
bm5pN25tbWtzcgphTUp2UGdTUUcyKzhzYW1hc1dQSGlqdnV1SVBqaHVBa3h0WTR1NlQzcGc0NnVt
a1A2MTk3NkVQUjRiWkJsNzdub2V0MXB5ak9UWllQCk5GdWVkNmdEWCtEait4OEVFSk16c0Vhd1pw
NTVackhFRWt2VW9rVlFiUUhERlUrd0o2Qm96aHlVY05sbGw0MC9kbmIvN0xQUENqQi8KQ09LSUlJ
RTJFN3h3SVpFZmZQN3QzcjI3V0hQTk5mbmE5ejk4TE8rNzc3NUVXNUEzMzN6VGR4TXIxZS9TRXh1
RUhBZ2dFQmh4NHZYdwp3dytMMVZkZm5kdWZKQUFobjJMNGNCbGJ3Z2VBdTZSMzdvem1IendSZ2Q1
c3BUcXRmMlg3V0ljKzJCNG5GVGMyNkxJTzg5RGx1cVBpCjA4ZTFLNXF0QzA5aGltYnJ3QmY0K1A0
SEFjVEhMSFZRSnhZQzI4eDAzbTVBdFNmYWlRSkQ5dEZISDRtSkV5ZUsxMTkvblNOdHp6cnIKck1L
WEFBS1ZISHlrS0VpY3VPMjIyNlpvRjcxZ05ySk9DRnhIanM5TFkzbks1VmxnZ1FNVEtiSzlpZ1JO
ekVmUWVkWDB5U2VmOEdrZAorb0pqYzRyUndvSk9Ycmd1NlIzUjJ1SFlZT1dWVitibUlkSTI1djBE
RHp6QWdoWnMxS0EzbnBTT091b29zZjMyMndzSTZVVlRuZGEvCm9tMlB5cnZxZzg5eGl2cHFpeTdy
TUE5ZHJqc1JQbjM5dXFMWk92QVV0bWpXNU5oUnZCbHg4Y1VYWi9YbzBnQUFJQUJKUkVGVWkyKy8K
L1ZaUW9FT0JOUlViWTdyazQvc2ZCQkRkU0xTRFBPeTZna0ZCZ20wQjlQY1hXR0FCc2RwcXF6bnZI
ZFRCWU56ODhzc3ZDK2o1d2k2RgpBcjh4ODJSNmQ0Z0NGTEVkUTU1T2Z2SEZGeHovWWFPTk51S1Rt
RHhIa0huZzVpa1RNYnJBQ1ZRUG9CNkUrdUhmSElzci9tREErTnR2CnY0a2ZmL3lSMWVsMHAwaTZ1
cjc2Nml1MjFZRE5TSkdFdXJOUzFPNnNjblY4Ym5XQkpVR1dwR21yM1g3aWlTY1FPRllzdDl4eWJN
c0MKeHY3NTU1L25lZDJ0VzdmTXVsM1QrM3p6elNlZzI0d1A0RHZ2dkNNZ1BHMjU1Wlo4TW52VFRU
ZUpEVGJZSUxYTjJKU0FxaUtNaFhmWgpaUmZScVZPbjFQTHF3enF0ZjJxN2lseTc2b1BQY1FJK1hO
TmxrVEhRbFMwNkQxdDkzZEhoSUNuUEZjMjY1Q2wwZmJWRnM5SDMxUVJmCkFPSGpyMy85cXpqNjZL
TjV6Y1g2TzJ6WU1IWk9CRjR3bm54OC80TUFFaCtGZG5LLzQ0NDdpcXV1dW9xbFhSQWh2Q2p0dWVl
ZUFoNFYKZkNTS05zMkIzaERzYmVUSWtleEpDU3BQSnRNamp6ekNldlZISG5sa29xRnhWQjkyTDNE
cTBhdFhMM0hCQlJja2VrYUt5cHYreFU3UgpUanZ0eElMWm9ZY2V5b3lscmc2bzRzdzAwMHk4YzNI
U1NTZnBpalRsd2I0RVFmWDY5dTNibEovbkJndFFsZ3BXdEVEbWdWZTNNbUJtCnMxS3AvdDErdXhE
MzN5OEUyWS9FVXlSZ2crWXhCN01FVGRBRWJIN2k2ZXV2djJhQkZQWkJ4eDkvUEF1cW9BczRLQUJ6
RDJZOVRXM0wKQkwzak5PZUZGMTVnVmNXOHdqcE9GL0dIMUxWclY3SFdXbXVKL2ZmZlA5Njl4SHNJ
S2V1dHR4NzM4NTU3N2hGNzdiV1h5QlBJc1c3cgpYMklIVXg2NDdJT3ZjWEpGbHo3bm9ZOTFKNFdz
ckQ1eVNiTXVlQW9kc2t6UXJBNHU4a3p5QlU4KythVFlkTk5OeGVEQmcxbmxlOVZWClYrVVRaM2l4
M0dHSEhkbzB3Y2YzUHdnZ2JZYWhmV1RnWXo5OCtIQ0JTUXBtRkFiUE9zYkdSMi9CaEptMlQ0SDNJ
SndVTExqZ2dwa24KSUppWVlQUTIyMnd6WnU2amo1TnJYSUI1UkFMVGl4TVBuRlRoWTRYMmdNRURR
NG5qKzd6cGxsdHVFUkJtZnYvOWQ5NHh6dnRlVkE1MQpaNmxnd1pWdHF5WXJDK3lJRVlLUUxzaDls
Ull0TTh3d0E4OURuRUJlZnZubGJCTVNIMmZNQi94Qm9JQURCTjA4aGE0eGJJVXdQdEZPCkZRU0Nn
dzgrV0R6enpEUGlwWmRlWXVaZTF3Z1Q5STZUT0JqSWI3UE5OcnlKc2Q5KysrbXFTczNyMkxFak8y
QklMYVI1aVBtQUV4RFEKTld6RzVwNTdiZ0ZHSjIxdTFIbjkwM1JSbStXckQ2N0d5U1ZkK3B5SFB0
WWRMVUU1eVBSRnMxVjVpc2NmZjF6QXpUeThRT0l2S1ptZwoyU1RZVWI0cHZnRHpHQm92K0o0c3Nz
Z2k0c01QUDJRSEorQ1JkTW5MOTUrWW41QnFnZ0VpQ2lpZzgxK1ZKdEZPdVNTRFYwbU1TUlV3CjF0
NGxxVnpTYVlVUitMUXpMRW05UzVMOWhxUUZSSjU3N3JtcGNFbjFRM2JwMGtXU2FnaVhveDBIZmkv
MUpZc1A2U2hYRW1NbFNUOWUKRGhnd1FOSU9kK0hheUs1R2txNThnM2JJM1d4aEdNUVU4L3QzM25s
bjRydTBBODFsVUxaS2ltZ2N2MVZURVZqRXNNbzgvU09HSWJ0WgpuMzBtWmMrZXNCaVJjckhGcE15
SkUyTGtKYW5XWmNPUGxTQUJXNUw5UkdPTW8zNlRtcVVrUVVUU3JsYnNqVDl2VGRFN0dkSExYMy85
CmxZRysrT0tMa2p4NWFldEx5NlFUUjRsKzVFM2tFcm1wS09odTFLaFJFdm4vL09jL201NnBOeWJX
dndpL3JtazA2b2VKUGtTd2l2NjYKR0NmZmRPbHlIcnBhZDZaa21xM0tVNUJxa3FUNFc1TFV3eE9u
aXltYVRheEFlV0NDTHlETkYvbm9vNDlLek9jK2ZmcklrMDgrV1k0WQpNVUxTWnBaUzA1K1h2cjcv
NFFTRVptMTdTdER4dzI0NmRreDk3ZXhIK0VROGkwaUZLTXI3K2VlZjJTQUtidWRnR0lXZFZmeENk
UWdHClVrWDB2S0ZmRHZlMENPaUcyQTJISEhJSTZ6aEdkYW0vOExoMXpESEhDT3lFd1JBMk1nakdy
ak14Vm1wUko5ZllqWUNCSlBRemNhUUwKdmVMRER6K2MxVTBRTEE4R3VraHcyWXJkaTdTRW5XRFlm
ZUIzNjYyM0ZtZWNjVVphY2UwejJKc2dRUVVMZFJLRHg4ZkIyQldKcmlNdgpXTFJZTmV5THRNQnFt
QW5uQjdUVTVtb1orcHlxWWdRUFpuVENLSWlXYVpJSk91SVFoSkJVMkRDOFJ2M3JyTE9PZ0lvZ1ZL
WkFyeGl6ClBBbEg4OWpSd2drSjlJK2poSUNRR0Jmc1BLckpOTDNERUJ5bkR6akdSMzFsWEh6RGN3
M3NuYUtFbldHMEUrNDdzeExVSytFcUd5Y2gKU1R0NGdGR245UytyVDBuUGZmZkI1amo1cGt2WDg5
RDN1cE5FWTZielhkR3NMWjRDNnh2YzRldHNJMHpUYkJydVRmSUY2QXRjNW1QZApCbitFdURmQUgw
NlM0OG5iOTcrTktCUXl2R0dBaUtLeHcxbW1FVFJSSk5rMGxIblZ5anYwSVpPa01pSkpYVUtTN1lj
a1JwcnZTVzJFCnBYSHNOdURFZ2hodTNzRS85ZFJUQzdXRGpLb2txWmRKaXFjZ0FaTU1jclh2MzM3
NzdaTDB6aVZOd0RiUHlaaE5FbVBUSnQ5MkJuWTQKa2ZiWVl3OUp3UVViMWVGa2lKZzh2a2YvM25y
ckxVbE1seVRCclZFbTZTSlBtYVIzc2J1OUdPM2tQL1hVVS9LODg4NlRKQWh5VVRxYQpacG9rb1pa
MzRGZGFhYVhHN3ZQa3laT1R3S1htVjZWekZYaGVXQlJkbXZ0eDRJRUhTaEowSlFWVGxLU2lLRTg0
NFFSSkh4N2UrUUlOCkFSNU9wRExURlZkSTJidTNsSGZja1ZvVStFT2k0SUtTVlA0WWR6aXhJcnNH
U2ZZTS9Bei9jQ0pISDRmR2Zmd0NPMVJrUjhLMFNyWlQKa3RTUTVIYmJiU2RCSXhRenBLbTRMWHJI
eVJCNXNHdXFTM2REbXdtU3ZLVkpjZ2doY1dwR3poQWtDZGZjWmpLV2wyZy9jRTZiQVJLNwp3MmVk
ZFpZT0RKOTBrQ0dsUFAzMDB4UG50dnFpeWZVdkwxMnA5U2RkRjRGbHNnOUo3WW55WFkrVFQ3cjBN
UStCWjVmclRoRTZpMmdnCjZiY0lMSmMwYTV1bmlPUERGczNHNjRudWJmQUZGTnRNa2xHN0pPRmIz
bi8vL1ZKM3d1L3IrNDlkdVpCcWdvRWlrMTdYWkJBWFJhclcKUGZLV1IzWVprbHp3eW9jZWVxakJ1
SnBzREpoRkNCQzZTWVY2VVA5Nzc3MlhXQ1haeUVneXJFMThidU1CblRMSWZ2MzZNZWk0QUlKTQp0
QmtKZ2dBUzdTNUpNdDdOeHhqekc5WCtnVW1NaENKVkFJbERKWHVRZUZhdSs2cDBybGFTRnhiVW5r
NDc3VFJXdDBQZndBUWpxZjBEClEzYkpKWmRJT2dIaFo1R2FIdCtVK0FlaEFZdzNVbnljYWFlTEJV
czhRejBZYzdRSkg0dWtoUFpCL1FqSDZoQTh3TnpqU0YwVm1PcEMKN3hEdTVweHpUa2s3aXl4QVlJ
NTk5OTEzVGZNVUFqUDZDeUZEbHlBc2tqNTAwenU2Y2xHZXlmVXZMMTFGZGFmOUZvRmxzZzlwYllx
ZQp1Um9ubjNUcFl4NUcrSFc1N2hTaHM2aDlTYjlGWUxtbVdkQ1NUWjRpd29scm1xMExYK0R5K3g4
RWtJamFhdkJiWk5Mcm1vdWRDT3pzCllzSFZKU3lHSWYwUEE5QWpCODdKc094L21aYXZvSDlKWG56
a2d3OCt5RFZSQUtJR3M2OVdqUk1ITXBUbkxMU1RYR1h5U1pGYXhzWTEKQkVXMGo5d2xNM2lWUVZm
cmUvLzk5NW1oVi9QeVhsZWxjN1dlb3JBd0I4Z1B1aVRQWnd3bXFYOG9SKzVmMWFvS1g1TXFuQ1Qx
UUg0dgpMb0Nvd0tDYml6UnUzRGhKUitZTjNIT201aC9GYldEN0x0Z05GVWsrNkwxSSsrSmxJMEV3
bnA5MGIzTDlLMHBYU1cxQ2ZoRllKdnVRCjFpYVR6NHFPVTd4dTIzUlpoM25vWXQwcFFtZnhNWWpm
RjRIVmlqUWI3Mi9SZTlNMFd4ZSt3UFgzUDlpQTBFeHJMNGwySEFYc0IyQmIKc09LS0s3S2VPZXdi
RUdnS2V0dkVOTEtOQUx6WmhDUWFFYitocCtzcXdlMHY0amNnOWdnU0NZdGFuVXhpakJ2NThQQUJl
d0hFT0xHWgp4bzhmTHhDUmxYYlZCYWxnY1ZWb255NlJBTlZ5UVJ2cGxJenRMeFpkZEZIMkZvWitJ
VStYWUYrVTF6NUQ5ejVpWDVCNkYrdmQ0bmxTClBaaWZzRzFBZ3YwTy9PZ2paZzZDWWlZbDZQWGly
MmhDVUVBa2wvUmV0STFxK2FJMmJPMWgvV3ZGUGhRZEozV01jVzJUTHVzd0QxMnUKTzNIY3VyaHZS
WnF0aWhmVE5Gc0h2c0RIOXo4SUlGVXBzV2J2dzhjK2VYUGd3SU13YUlLclRrUytoTXRaMm9WbEkr
ZWFOZGxiYzJpWApuK3QyeVpEQkZTdmlHa1FmYlVTeWh2RTkzTFNxYm5jUk5acDJXZGpGS3NyQXZT
NE0rRzBrR0tYaFF3MDN2akJDUjZ5R0tNSHdHUW0wCkEwTTJNT1V3VWtWTWh0bG5uNTBGWHJoNnJu
dUNZd2JFd2NHY2dCLzB5TWljZHI2NDZlaFQ1SmdBUnVnMzMzeXpRTENyc2duQjgwalYKcTJFY0Ry
ekI4UUkyQXFKeFJ0MTMzMzIzUUl3UDFJOUFrekJRaDB0ZEc4a0h2ZHZvUnhyTTlyRCt0WWMrcEkx
Ui9KbE51dlE5RDEydgpPM0hjdXJvUE5Gc04wejc1QXAvZi83L2c2S2thNnNMYnBqQ2c3cmlHWVRH
RjFXUTRZRFEzM25oajlocWxNdDNKYjloNVFycnhITU1FCkh5dnNsb0VPRU1VZURMN09LNGVwVnFC
ZWNpM0lYc2dnb0pJTmdoWTBHYVlMTW9abmdRanRBL01PNzJId0dnTGhxR2d5U2VkWnNDQzAKUWVB
WU8zWXNlNkNDZHpHY0tFVUpKeER3N0FUaEFQMENQSXdEMGpMTExDTVErSytNZ0FXZjhwSHdCbGp3
dmtQdWtkbnJrMjZjNGZzZAowY3hCay9pRGtHSTYxWVhlVGZmTEJyd3N1aXBTcDBsWVJlcHRsYkky
NmRMWFBQU3g3cGlrTTVPd1dvVU9pN1RUSnMxRzdiRE5GOVRoCit4OEVrR2kwYS9BYkpuME5CaUUw
d1RvR1ROSjVHaXdzc0RoV1JtQXBxTDJsSlp5QzRTOFNzQ0NrUUFnTWFjckVRQnBkRmNXSVNWaEYK
Nnc3bDNXUEExN3Bqa3M1TXduSS9BcUhHT21OQXBhMGdnTlJvcE5TQm1aSk9RRjUvL1hWV082Rmdl
cFhVWG1vMGxLRXBLUmd3U2VjbQpZYVUwT1R5eWdBSHNFa1BOVFIxREM5V1VBcW0ycWVwYWJCSldx
YzVVZktuTzQxU3hhKzNxZFpOMFpoS1dEeVFIbnNJSDF2UFZxZElXClJkRUtxVDFoQUlibVVDZEpT
OUEzaDIySTc0UVBPMFZZRnNzdHQ1eUFJUnQycXNsZHArOW1PYXVmM0trS2lpcnRyTDVRVWNCQW5U
QUEKeHBZaTlBcm82WnV5dzJxbDlTOXBMT3JXQnh2amxOVDNrTithR0tnTHpiWUhubUpLNGd1Q0FO
S2E4ejJ4MVRBNFIwUnRlTUhDVWJBdQpRYWVkWEgrS1FZTUdzVjYvcm95TFBFakMwSWVuSUlWczRI
ek9PZWV3VFlMTnVoRUpGTjZKN3J6elRvNU1iYk91TE5nd1JpZFh1MnpRCm5WVTJQRzlkRE1CajJJ
VVhYdWlGM3VwRTc5RUlna2tnOThUaWlTZWVFQlJFVVV5WU1FRlF6SnZvY2FYZlZsci9ranBhbHo3
WUhDY2YKZE9sekhpYU5kWHZKcnd2TjJ1UXBYTkhzRk1VWDBDSVRVazB3UUl0UncyZDhsU1lobU5v
ODg4d2pFZDB5bnNhTUdjUHhEUkM4REJHMgpFUlhhUmlMaFJ3dVdqTGNrN1piSUcyNjRRWkpyV2Zu
cHA1OUtFZ1k0OWdUdGdsb0pWaGh2eU5OUFA4MTRobjk0MzRuYzhjcWhRNGY2CmJvYlQrazNST1Jw
dEVwWk5KQ0ErRHdraE5xdEloRjBuZWtjanlldVh4RndudDhOeXl5MjM1Q0NNV0FOTUpSUHJuMG02
S2dQTFJCK3EKNHRQMk9QbWdTNS96c09wNFpMMWZoczZTWUphQlpadG02OEJUdUtMWjlzd1hxTFFW
M1BBU050cGJldlhWVjhXeHh4NHJLS0JjbTY3Qgp6dUxVVTA5bGowZndib1N5TmhKMk9GZFpaUlZ1
QTl3c3Z2dnV1K0tUVHo1aFY2TlF1ZXJhdGF1Z0tNanNSUW11U1MrNjZLSlMzb2JLCnRCMmVtMmFZ
WVFaVyt5cnp2c2wzNEFKdi9mWFhiNENFS3NwVlYxM0ZybG5ubm50dVFkR2dHV2VOQWc0dlNEamtN
ZnJvbzQ4RVJlRVcKaXl5eUNIdVN3dGlGVkF3RGlPL2h5NmpkSmIzZmVPT05IRXNHMkVFTUdkQU9S
VHBuOThPWTU2Q2ppUk1uOGlrdHl1TDBFeDdWdHQxMgoyMklJVFNsZGgvVXZwWG01SHRudVF4M0d5
U1ZkUmtqM09RK2pOclRYWDlzMFd3ZWV3aFhOMW9FdmNQTDlUNUtBUTc1N0ROREMxTmpSCnpWczdU
akxVaEJNR1loUWx1UjJWaUdxcFJrVkhCR1U4UjE3UG5qMWwvRjBWVHRWcnNtM2dpTk8wNFBNcEMr
azF0am5kSURVeFNVeTIKUkx0Y0owUVdmK1NSUjF4WEs0a0I0enJKMjVLa2dKQ1NiRi9rcUZHak9P
K1paNTZScEQ0bnYvcnFLNzQvNmFTVDVNaVJJNjIyRWZTZwpKdXd5WFhycHBaS0VJcm5ERGp0SVls
UWtmVmprRjE5OElUR0dtMnl5aWR4cnI3MGtxYzZwcnhXNkxrUG5TUldVaFVWTXNUemxsRlBrCjNu
dnZMZmZiYno5Sk1VSTQ4dnd4eHh3anYvMzIyNlRxU3VlVHExOUpBUWNiNzcvenpqdHk4T0RCL0hm
QUFRZElDbXpWZUpaMlFXb0EKa21LSDhLa2g1amNpOHVaSnJ1ajl4Qk5QNUdqdW5UdDNsaVJZeUEw
MjJJQlArTWpXUzZMdFNLUjJ5T3ZjZSsrOUp4RWhPaW1CL3NtZQpMZWt4NThmWE1GUHJYMW02MGpV
MkM1YXRQdWphRXVXNUhxZW8zdml2SzdxTTZ2VTlEMjJ1TzFsMEZ1RWd6MjhXTEI4MFd4ZWV3Z2JO
CjJ1SUxKaytlTEVtMVhWS0Fhdm5Ydi82MXpYcnIrL3NmVGtCb3ByVnlRZ0NiS0dBYVloYlFFYUZB
cEdmRU44QXUvNzc3N3N1MkhsMjYKZE9IZ2Q4Y2ZmN3lnWTJpT1MyQ3ozemo5UUxSUXVETlZ2UjVF
ZGFLZDJERzU4c29yUzBWMWp1REVmNGw1RkIwNmRJaG50N2xIbklXWgpaNTY1VGI3dERKdzZrUm9j
bndqMTY5ZVBxd09PcnIzMldrRk1QdHNLUlBoYWFxbWx4UDMzM3krSVFTN1VMQmlOSXJBZ01SbVo3
MEgzCmZ0bGxseFcvL2ZZYkJ5SkVnTUZOTjkxVVhIMzExV0x4eFJkdmVuK2hoUmJpSUlxSUZ3TFlN
QjZ1ZTRKRGhpV1dXSUtiQ2RwQWdFRlMKLzJPYkk5aEtZVmROalF0eTNYWFhNVDRRQ1gyeHhSYkwz
NzBmZmhBVThiTlJIczRGRUYva3M4OCtFNlNhSUVqZ0VDUXdzRzBXVHZ0dwpPakJreUJDZUd4Z3I3
RWdqQW5wYWV2bmxsd1hpR2tCSEdITnI0WVVYNWtDR2NER2MxVlpYOUU1Q0hjZXZ3ZWxyNzk2OU9R
aXEycWRmCmZ2bUZiWjV3NHJIa2trdXFqOXBjTDdqZ2d1TDU1NS9uUG1JZGk5WTV0V0JkMXorMWpW
blhQdnJnZXB5U2NHQ2JMbjNOUTEvclRoS2UKVGVmN29GbGZQRVVjZHpabzFnWmZnRzhFYmVJSTJq
RGs3d08wVUFZTUdNQWFNTkZhNnYzN24wY2FEbVhjWUlBSXZmQUpDRTRQY0pLdworZWFiUzRwaUxi
ZmJianY1Mm11dk5ScDgrKzIzeTJIRGhqWHVjWUdkYlRKQ2I4cHpmUU1kUjFwUStFVEdWTjNFb01r
ZGQ5eXhxZjlKCnNFbElrNlFLa3ZUWWF2N28wYU1scWFOSllrNGxCZk9UWjUxMUZ1L0d4eXM5L2ZU
VEphbGd4Yk5UNzJIM2cxMW5FZzVTeTBVUDBRYmcKQXJSSERLRWtBU1I2bFBoTEh4K0prNjJ5cVF5
ZEo5V1ZCWXVZZmFZSkNyUW95ZmtDOXhYNFQwc1V3VnhTZ01xMElzM1BIbjljeWozMgphTXA3OXRs
bkpVNEJWbHBwSlVrdUlTVUZsWlRFVEV2QXBxQ0VUV1d2dWVZYVNkNmdtdkxpTnovKytDT2ZldUJF
Q2ljTDZEZkdBUFdRCjhKbzVqMHpRTzA3dFNLVXEzclJDOTZlZGRwcWtqUkZKRWVrejM2UE5DUzVE
d3JFY1BueTRwS0NaYmZwcGEvM0xvcXZNeGlzRnNtRFoKNm9QU2hNS1hwc2NwcVFHMjZkTFhQUFN4
N21UUldkSVk2UEt6WU5XUlptM3dGRHJjbUtCWkhWelRmTUVWVjF3aHlkRUgyOXFSNnIyawp6VFhX
WExqdHR0c2ExZnYrL3NNelMwZzF3VURXcE05cUp0UVY0b3dUR0phZGQ5NjU2ZFh2di85ZXpqampq
UExlZSs5dHluZDE4OWhqCmowbmE1V2ZteVZTZHRJUEFqRHhVQzFTMXN5VDRVRlBiZi8vOVdkVm8x
MTEzbGJmY2NvdldhRC9wZlJQNTIyeXpEVE5qWksrakJRZGgKRWgreXZBa0djblJxSXNuV1FKTGRU
ZDdYV0RVR3dtdWFPb3dLREE0RVFLdGdETXVrcW5TdTFwa0ZDMGZNUng1NXBNU3hPVlI2eVAyMAor
cnIyR2lweFlKSnpxWmtSM3VTc3MwcmlqdHZBb3RNS3BrWFFKdG5Oc0NDa20zTjBDc050YkFOQXlZ
Q1JObzdUTVcvVlBsTzBkbFpUCmducENXcXBLNzZBTnFBTkNqUXdmc2pJSktsaFFPY1FjelpNaUFT
UXFDM3llZi83NThuRUlmSnBrY3YxVGNheXBxbEJXRVZnbSsxQ28Ka1VwaDIrT2tWTVhxd2xYVzRU
eDA2V01lK2xoM2l0Q1pPZ2E2NnlLdzZrQ3pWWG1LSjU5OGtsWFcxYzFiSFY2UVYzVXRUWUliNVp2
aQpDNkNxQzlXdUgzNzRnWjErUUdWMzNMaHhFbnlDbWpEZmZYMy9nd0Npam9UbjZ5S1RYdGRVN0pi
RHJrQk4yTW5xMzcrL21zWFhZRzVKCmxhTk52dTBNQ0FlcnI3NDY2OTZicUl0aW1yQ09JendNUWJB
aXRaWmNZRWw5UlpKUkxFOU1VamVTZENUSk84cHZ2ZlZXcnZlckZnSVQKQjd1RHRESG8xS21UaE81
OFZzTEg3dWlqajVaVFRUVVZNNmV3YTdDWm9FKzZ3QUlMbEs2aUtwMnJGWnVFRmNHRkRjdzAwMHlU
THBEOQo4b3VVZmZ2Q0RaY2s2VWFTTVViMGV0TXY2SFBOTmRka2VQRzVHUlhFcGtHV3JROTJ4eWhH
VHBQd2diNURrRWNkc1BsS1MxWHBIWFFZCmVkV0RzSU9kczZJSk5pL1lQY3dqQkFKMlhBQkJIdG9C
cjNIb2N6eVpYUDlNMGxVUldDYjdFTWRQM252YjQ2UzJ3eFZkMW1VZXFuMlAKWDFkZGQ0clFXYnp1
K0gwUldMNXAxZ1JQQVR1SkhqMTZzUDFqSEJmeCs2bzBHNGVuM3B2a0M3RDVETHZTN3QyN3k0TVBQ
cGczanJCNQpTT3JGYXBXRnIwMSsvNE1BVWhqOTlsNG9NdW5qcllBN1c5SjFiN1A3RDROUEdCOGhR
WVVDekFQRi81Q2tYODEvY1RpMjc2SDZOZSs4Cjh4b3hQQ2N2V2p5eFlOaUhCQ1ljdThSNUV0Ulhv
Qm9USmFpV1FERENSOEIyd3E1RXg0NGRKWVFkSEkzcUV1bktNM09KY2MxS01FUUcKWXdmNjZkYXRX
NE5SekhxdnpITzQ1cHlWZHZ5VFRtM3l3S3hDNTNINEptRkZzS0d1QlR3bUpqaCtvQk0wRmo0Z2dL
U2NDT0IwQXljdgpaUE9RQ0E0dXMvR2hTRXZZdVFKdDR3UkI3VE5vRm5RVXpZRWtHRlhwSGNJSFBv
NVFCY3NTbG5SdGdDTURzcldSY0FPZU42a0NDUHAzCjl0bG5TNmhaNnBMcDlVL0ZzYTYrSW5sNVla
bnVRNUUyUm1WdGoxTlVUL1RyaWk3ck1nK2pmdXQrcTY0N2VlbE1WM2M4THkrc090Q3MKQ1o0Q1RE
bDVuMlQrS0k2TCtIMVZtbzNEaSs1Tjh3VlF2OGVKTllSdk9GYkJKaFpPUlNnZVRsUmw0Vi9UMy84
Z2dCUWVBbnN2NUozMAp1aGJzUVRyb2NiMS9IRTlqWng5NnNFaGdhc2xRblhjdnNadUtZMHVYQ1V3
V21GZm93cHRJRUVESXFFcEN4UVhDeC9qeDQzT0RCU09uCkNpQjRFZmhDZkFLYkNhY1ZXMnl4QmJj
Ykp6YUlnNkJMNkJ2b0lhK1hJNVJEZnlCazJrclEyNGVLRnprMGFIZzBLbE5YRlRxUDEyY1MKRm1C
amtRWk1MTjZwaVlSNHVkcHFrb0o3SkJhRGpSRk9zZURWRENlT3VnUmRhdFNIMzdTRWp3aDJyM0NN
amgwNHZBUDdFakRtc0NISgpTaWJvSFo1dkpreVlrRTgxVFdrUTJrNnV0eVc4ZlJWSkVFRGdsUTAy
YkZrblBLYlhQNU4wbFJlVzZUNFV3VFhLdWhpbmVKdGMwR1dkCjVtRzgvOUc5aVhVbkw1MUZkYWI5
NW9YbG0yWk44eFJwT0ltZW1hRFpDRmIwYTRNdndNa1ErQm53ZXRpNGdlMGhWSG56OGhSUjI2SmYK
RzkvL0lJQkUySzNCYjk1SkgyOHFkS0xKb3hOL3JOVm5NQ2lHOFNzK0xMNFRoQitjMEJUWkFjM1Ra
cHhjWUZKRjZpRjUza0VaN01iRwpCWkM4NzFZcEIxc1RqRE41cE9CZGlYWFdXVWNMRGpZY0tBZThS
UWw5ckxKN0VjRXA4NHRGREhZVUZMY2hrMW5PZ2wrV3puVndUY0xDCjZSZlUyR0F6VWpWQjd4YkNH
Z3oyd1VSamQxT1hzQ0dBUHVTeE53SE40RFFUTkkrVENBaXBhSE1ldDhHKzZCMTlQdXl3d3lSNVZz
dlYKUnhWSHNBMkE4WG5XK21Wai9UTkpWM2xnMmVpRGlzczgxN2JIU2RjRzIzUlp0M21vdzRHcGRT
Y1BuZW5xMStYbGdlV2JabTN4RkRwOApxSGsyYUxidWZJR3Q3MzhRUUZUSzhueWRaOUxIbTRoZGV4
aEZRUThUREFxT0k4RzhZaWNjdW4rSU51NDdnWUhZY01NTjJZRFVkMXRRClAzWnlnV3NmQWdqVVpX
Q0Vpd2owTUVnR2s1cVU0Q0VMSHN0d05Bem1BREZDeWhwK0o5V1JsWS9kUXhqcGs2dFhlZjMxMXhz
NVlTbEQKNTBudE5BRUxKMUhBTFdMU2dPRTFrYUIvaTlOSG5NNUJkUXFxVXJxRXV1RTBBSWF5VVlJ
NlFKSzlDQVFWbkNEQ2swbVNPbElFSi9yMQpTZTg0U1ZwaGhSV2FCT21vWFZtL2VUWVZiSzEvSnVn
cTZsOFdMRnQ5aU9yUDgydDduSFJ0Y0VHWGRacUhjUnlZWG5leTZDeGVmOXA5CkZpemZOT3VMcDdC
RnMzWGxDMngvLy84Q0lpUmlDNmtHR0lqaVA2QXBlWWVGZGdFRUltYkR4ek5pQVNDV3hQb1VXWnVP
MlFRdEVvSUkKMjJpY2phSm9RanVJZ1JXOWV2VVNaSFJkOUhVcjVSR1JHYkZRRURlRmRQMnQxSkVG
RkhFMzROY2NrYzlKWU5RV0owTmZqcE5DdS9LQwpBa2R5OUhwdFFRdVpKSnh4M0FyRVNpSGhNVE5t
UTVFbWxLSHpKUGhsWVJFakw4aEZvYmpycnJzRUJjVGoyQ2Y3N0xNUHh3ZEpxcXRJClBna2RndFFE
R0RaOXREajJDSjFjYUVIUTZZaDQvLzMzeFZwcnJTWG9tRnVnSGFTdXBDMWJKdE1YdlNPR0RXMklD
QkttQkdMSTJFaTIKMXIreWRLWHJZeFlzVzMzUXRVV1g1MktjZFBXNm9NczZ6VVBnd09hNmswVm51
akZJeXN1QzVaTm1mZklVdG1tMkxueUJxKzkvT0FGSgoyd1p3L0l3V0E5Nlp4MitSQkRVT05TSENO
L1N0NFI3UFo4THhOMDVnc2x5RXVtNGo4QU1jbTdKRktkdCtlTjlLc2cwb0M3TVYzaXRMCjU3cSts
WVVGMndrWTZPWDF5S1NyTzA4ZVRpSngrb2ZUcktTRU1yRHRBRjJXMWM5TmdvMThIL1NPRXh6b2g3
czRzYk94L3BXbEs5MDQKNUlGbG93KzZ0c1R6WEk1VHZHNlhkRm1IZVlqKzIxeDM4dEJaZkF5Uzd2
UEE4a0d6dm5rS0Z6VGIzdmtDbGJiQ0NRaGhveTRwYTllaApMdTNNMnc3U1VSZkVlQWx5YVpyM0ZT
Zmx5T0JMa090VFFicTNnb3hqbmRTcHE0UVdmNEdkSkxMVDBUMXV0M2ttNmR3a0xGc0lmL1RSClJ3
WDVXUmZubm51dXJTcFM0YnFtZDV3c0VhUEFwNTZwRGF2eFE1TjBaUktXU1pUNUhpZlhkT2w3SHBv
Y094MHNrM1JtRXBhdXJXWHoKZlBNVUxtaTJ2Zk1GS20wRkFhVHNUTER3bmpvd0lNS1FBZ2JhSXda
TTBybEpXTzBSMTZGUDVUQmdrcTVNd2lyWG0vRFdsSUFCazNSbQpFdGFVZ1B2UXgvd1lVR2xycXZ5
dmhaSUJBd0VEQVFNQkF3RURBUU1CQXdFREFRTUJBd0VEMVRBUUJKQnErQXR2Qnd5MEN3eWtuYmg5
Cjhza240dHBycjJXamJSeEJoeFF3RURBUU1CQXdFREFRTU5BK01PRHIreDhFa1BaQlA3bDdBUWFT
QXRUa0xtK3JJTnBBcmgvRmhSZGUKS0NpbWdhMXFXaDR1dkdSQm45NTJJbWNCaWQ2NEtNcTZtR3V1
dWNRR0cyemd6WTZoYXYvaDZTb3B3UXNaUEUvdHUrKys3SVVxcVZ6SQpONGNCZUFQeWtlcXkvbFhw
dThzKytCcW5LdmlwMDd0aDNmbHpORnpRN0pURVU1am1DM3g5LzRNQVVxZlZ5a0piNEFLVUFnYUpz
ODgrClcyeXp6VGFDb25pS2poMDdDdklBWmFHMi9DQXBxck9ZZHRwcHhkWmJieTJHREJtUy8wVkRK
YkVnZnZubGw0YWdtUU5EUWVzRUJaQVUKSjUxMEVydUd4WGhSQUVCeDJXV1htYXRFQTRraWRqTURy
bmtrb0xNSjJ1bmN1WFBMR3N5ZmNzb3BZdFNvVWJydWNiOHV1dWdpY2V1dAp0d29LOUtjdFl6TVRI
ODZubjM1YTNIMzMzZFkyQitwQzczQVhUakdMeElBQkF3VEZNckdKVm9aZDEvV3ZTTWQ5OU1IVk9O
V0ZMakVlCk51WmhuZGVkSWpSWXRLd1BtblhGVS9pZ1dkdDhnYS92ZjczY0V4V2w4bENlbVJiRS9h
Q2daNHdOeEFGNThza24rWS9jNUlrT0hUb0kKQ2dRbUtMZ1pQei9paUNNRWRyUVhYbmhocjloRHZB
TXdJYlBPT3F2QWhIYWRzSU1BcGg2ZVlNQjBMcm5ra2s2YVFNSGoyQmM4UlJUbgpXQy80MEZPd09o
NnYxMTU3aldPNXJMYmFhaHkvaFNLdWl1T1BQMTRzdSt5eVlzVVZWN1RlUHRCT1dzSllMYkRBQW53
aUE2RjI4ODAzCkZ6UE1NRVBhSzdWNXR1NjY2NHBCZ3daeFRCcGRvekIvc0FnRDF5WVM2R3U2NmFi
VGdnSVZjSXpXQUFBZ0FFbEVRVlNlTVIreENmRFMKU3k4SjBNVFBQLy9NWlFjUEhpeUdEaDJxZmE5
S3BpOTZqN2NacW56bm5YZWVtR1dXV2NTaGh4NHFkdHBwcDNpUlF2Y1EybHB4L1ZNNwpXY2MrbUI0
bnRiL3F0VzI2OUQwUFhhODdLbTV0WHRlUlpsM3hGRFpvdGc1OGdaZnZQK2wraFZRVEROQ0NVVGdP
Q0RHd2tuYW01UlpiCmJDSHBaRVBPTWNjY2N2Lzk5NWZrOWxNaVdpaXBsOGcrZmZwd3pJT29teFI0
U3BLUUV0MWEvNFVQZGxvY211ckJQVEVnOHBoampwRVUKREs3cG1hdWJyNy8rbXZGOS92bm51NnBT
a2txREpHRkhrcEFoU2EySi93NDY2Q0E1WWNJRVNRc2JSODFHNUhHWDQ0UE83N2ZmZmh3TgpQRUlF
b215cmthaEJTeFM4VVc2eXlTWWNNYnhyMTY3eW5YZmVpWW9YK2kxRDUwa1Y1SVZGakwwa1JqVUpE
T2V2dE5KS0hJSDh1dXV1CmszVGlVN3AvQUlZWUl4ZGNjSUdrblVENTZxdXZ5c3N2djF6dXR0dHVz
a3VYTHBJQ0QwbzZjWkZqeG96aGVEMTBPc25qamNqSW9JRzAKQlBwQi9Kbzc3N3hUa2t2S1FwSHBm
ZEI3dkMrSVRIM3p6VGRMUlA3dDM3OS8vSEhUUFcwUVNGTFBiTXFMMzloYS8vTFNWYnc5dXZzcwpX
TGI2b0d0TDNqelQ0NVJXcjAyNjlEMFBYYTQ3V1hTV05nYnhaMW13Zk5Pc2I1N0NOTTNhNGd2dzNh
YVRadjRXa1J2cStEQTM3bjE5Ci80dEZ2R3MwTjF6WXdFRFdwRStxazQ0ZUplbm55eEVqUnJEUUVa
WDc5dHR2SmUwd05vS2J2ZkRDQy9LMDAwNlR0TnZLK1FnVVpqdVIKQWJPa25YSzU5OTU3eSsyMzM1
NFpiTFZPT3YxUWJ5dGZVL1QzUkJoZ2ZCQ2c4ZlBQUDIrVUlmVWladjRiR1E0dUtNb280Ly9LSzY5
cwpHaSswZmR0dHQ4MWt1ckthaUdCMllONktwTzdkdTh2eDQ4YzNYc0hDZGNJSkovQ1lyYnp5eWhJ
Q0I1MFNNUDd3VWErU3l0SzVyczY4CnNIYmNjVWQ1MWxsbk5VQ1F5cE1FazRWZ1dyZ2VPWEtrcE5N
ZFNhZE9zbHUzYnBKMjZadkdwdkZpMGdVSkJ2SFVvMGNQRm5CQlk5Z2cKSUJXdlJ1QkRpcEl1U1JW
SjB0RjYvTFhFZTlJbmx6ZmRkSk1rMVVGSjhXTllxTWM5NXJrdSthYjMwYU5IY3pEQ2lSTW5OcG9I
eHVIZQplKytWb1Ayc0lJWFlHSUNnQm9HUTFHTWFNT0lYTnRhL3ZIUVZiNHZ1UGc4c0czM1F0VVdY
NTJxY29ycGQwNlhQZWVoeTNjbERaOUVZClpQM21nZVdMWmwzekZNQ1ZDNW8xelJjZ2FPUHV1Ky9P
NnljMk5QR05PK3Fvb3hyOG9Fb0R2cjcvUVFCUlI4SHpkWjVKWDZTSmZmdjIKNVJNUTlSMnlMWkFV
Zkk4Rmdhd2RZZlc5TXRkZ1ZGSFgrKysvejY4LytPQ0RrbFJjT09wekdYaFo3K0MwQjBJT2RsZVRF
cGpwZGRaWgpwL0dZN0ZBa2RuUHFrRTQ4OFVSbWhxdTBCVHNwT1BFQ3JDS0pWUEl5R1VKOHlNZU5H
MWNFckxhc1NUclBDd3RDQlU1MTFBU0JuT3lQCitDUU93Z2xPSjI2NTVSYTFTTDdyTjkrVUpHRzNL
ZnZUVHoreElCZy9LY0x1V2UvZXZRdWRYa0FneEVjUUVkTngwb2wrZzVZQis2cXIKcm1wVGQ1Umht
dDdUQlB5b1RnZ1pwRG9vU2NWU2dsbm8yYk1uYjN3VTNXeUFrSUwwMldlZnlYUE9PVWVtN2VCRmRh
dS9WZGEvdkhTbAoxcGQwWFFWV2xUNGt0U2ZLOXpsT3B1a1NteTVKeWVjOGRMbnVWS0d6T082cXdM
SkpzNjU1Q2hVdnBtbFdoWjEyWFpZdndJWTBxZnBLCnNyT1YwTElndFdrK2tjZUpTRHo1K3Y0SEFT
UStFaDd2cTB6NmVMUHhzZGFwT09DanMrbW1tOHBKa3liRlh6RnlENFlEQ2NRT2RURHMKcnFucDdi
ZmZsa3Nzc1FSTDRtQ3FUQ1VJRWRpeFAvWFVVN1VTZmxUUDRvc3ZMc25qUTNRcnlZWkJmdlBOTjQx
NzlTSk5rRkhMbWJnbQovVXZlSmE4QzY0TVBQcERycmJjZU02ZFF6OG1iUUJQenp6OC9GOGQ3U2J2
TkVOeGFWUUFoVzZoTWhoK25pSVg3UitwVmRIUWlTUXJJCmkyNjUxMTU3U1l4M2tVUTYxM3hhUWs0
SmVIeWp0WUpzaWVTYkpBQmg5MHlYVE5FN2hBZWNST0QwZ3J6WDZhcmlQTkFPZVJOakFTc3EKQktH
NFg3OStmRXI3NmFlZlJ0bVp2NUVBRWhXRXdEaHMyTERHaGthVXIvdXR1djVGK01WdjFWUVdWdFUr
cExYYjl6aVpwa3VvSEtmUgpwUTRYTHVhaHkzV25MSjNwY0ZNV2xnMmFkY0ZUUUswVnArRllTNU9T
S1pwTmdxL0xyOElYUUUwWG03L2dzNkQxZ1JNUWJBS1R6V2xUClZUNi8vOEVMRnMyMDlwZ2Vmdmho
QVFPNGVJSkhJN0lCRWNSd3hoOFp1WWYzaTFWV1dZVmR0aEl6TEhiWVlZY211RXN2dmJSNDl0bG4K
eFlzdnZpaFdYWFZWUWZyeFRjK0wzdEJNRXJRekxLNi8vbnB4M0hISHNZRTNqTGQxQ2NaanRKaXg1
NjNvT2Q2SGNYVThrVHFTSUdZcgpubTN0SG9ib2E2NjVabW40bDF4eUNSdXF3NmdlSHF2bzVDazNy
TC8vL2Uvc2FRc3Z3TGg4NnFtbjFyNUx1NHpzdVV6N3NNYVp4R3lKCm1XZWVtYjE1a2IxUm90TUQy
dDNQM3dzNFRqampEQ0hJWVlBZy9KRTFkYTUzNlFNbjZJTWdGbHBvb1Z6bG8wSm9HNHdzNHk2cmlT
bG4KeHdVa2ZFWkZHNzhtNlQyaUt6Z2VnQk9MdUFjNStyQUpPajBTcEdvbTZNTW5oZzhmM21qSE5O
Tk1JOGdHUnBCNm9TQTdHMEdxYjQxbgpSUzdnbkFId1NUVkxnQmJUa3EvMUw2MU5SWi9aNkVNZHhz
a0dYWkpkbFpZdWszRHVZaDdXYWQxSndvUHBmQnMwNjRLbm9KTmxRUnUyCkFyKzZaSkptZGZDVDhx
cndCV2d6dmh1a3VjQWVJT0ZvaDA0REJkWmpOZm44L2djQlJCMkpkblFON3pxTExMS0k4eDdCaXhE
dFhBb3kKaEJkMEJLaXRmNTU1NWhGWXFNQlE0Tyt3d3c0VHBNZXVMWnVXU2J1cEF2NnI0ZW1MYkZz
NHBnanFUVXJ3RGdadlJ4dHV1R0dqQ0FTeQpHV2Vjc1hHUEM5cnBGYlJiSUk0ODhzaW1mSnMzRU1U
bW5YZmVVbFdBb2FXVEg0R0ZHb3d0OEY4a3dSMHloRFo4TU9PTXBRcUhUb3EwCndwcGFwbzdYd0Ur
RVcvamxUeEt3eUNhaERTMW8rMFB3U0ZvVTRvUVRoS0JGWHBEbktpSXNiZEY0SnR6dDBrbFNQRHZ6
SGg4TnVFR08KZXgwanRURkJLbDM4TEE3RUpMMlREUkI3YW9QQVRtcGY3QTFOclcrampUWml3UU1N
TG1MN1lFN0dFK1lUTmdvT1B2aGc5bjZWNVhWRgpmWjhNOUFWY0pVTUlnL2U2T0I3VXNyajJ0ZjdG
MjFIbDNrWWY2akJPcHVrU3duRVNYU2JoMzhVOHJOTzZrNFFIMC9rMmFOWUZUN0h4Cnhoc0x6QTJ5
aGRDaXhDVE5haXRJeUt6Q0YyQ1RCdCsweHg1N2pQdEd0bmo4alNmbk1rMjFlZjMrMDhRTnFTWVlJ
S3BvcUZkVWJSSjkKNUZsZG9Tb2MyKzlEdDVzWVF2WUdWVlRsQ2ZxTjhEU0VZMHJvOEY5OTlkV3B6
WVZxQ0RGQlRXWElIV2pqSGtlUlo1NTVKcXVLWkJuSQpObDR5ZEVHTW1ZVEJZdGtFdzJTbzZhaWVx
NHJBZ240cjFJK1NjQWh2UkZOTk5SWHI0eGVCcXl0cmtzN3p3TUs0MHFrY3E5ckJCaW9wClFXVVFh
ajZaaWVCSjhsUW1TYTJMQ0NxenVGb0Fhb0tnK2FJSitJZUtDUXcvU1dEbWRRSnFjekJtSjVlcFdy
VTUwL1JPcDRmc2ZTdk4KY0Q2UGFobTVtNVowaXNMOWdINHp4a2VYb0lJRm14UFl1RVRYdW5LNnZL
cnJYeDY2MHRXcnl5c0xxMm9mZEcySjhueU9rMm02aEZvZgoxRTNnUlM1dmNqRVBYYTg3WmVsTWg3
T3lzR3pTcks2ZHVyd3FQSVVPSHZKTTAyeFNQZkg4S253QkNjQnM4d0VuSzFDdHh1OGRkOXdoCllS
TVZUNzYrLzlVVlhPTTlDZmVsTVZCMjB1c3FoTUVxM0lycWlFMVgzbWZlQXc4OFFMeGNCOWFOTDlv
T2t1NGw3YmkyY2ZNYmh3T3YKUVRDMGdrRnJsR0M0Q0ZlNFNIQUxEQnNBdUVpbEk4bW9pTFBmajht
QWZ2YlpaMmM5VkdlVktoWEJPUUJzUEpJOFhJRUJYR3l4eFpRMwp5bCthcFBPOHNPQU1BWjZ0a2x3
K3c0WUNBcFp0d1JQMTB3bGNLZVNSMmlKNzBvTFhLN1IzOHVUSjhvb3JycENnblhpcU83MmpENWh2
CkdEOTR1dElsMkkxZ1F3QkcrMFZUMWZVdkwxM2xhVmRaV0ZYN2tLZHRXV1ZNajFOZDZOTFZQSFM1
N3BTbE14ME5sSVZWQjVwRmY2cncKRkhGOCtLUlpVM3dCcVdPbGJrNzYrdjRIQVNST2JSN3Z5MDU2
WFpOaCtBbG1lcW1sbHVJNEJMb3lkY29ETXdWRE1GdUo3RVBhdUtiOQo2S09QNUV3enpjUnhVK0FO
QzhicG1LaStFdUpCWUhjYnB4Q3VoU0NjRElIK0lKVHBFb3pic1h0aUlwbWs4N3l3MEg0SW02b0Fx
dlpsCjRNQ0JIUHREemJOeGpWMWF0QU1lU3Nva2JDaU1IVHVXUFdKaDF6ZUpYbHVCM3JGR25Yenl5
VTN4WjFTY0ZERllWOS9EZGRYMUx5OWQKeGV2VjNaZUZWYlVQdXJhVXlUTTVUbldoUzFmejBPVzZV
NWJPZERSUkZsWmRhQlo5TXNWVCtLWlpGM3lCcis5L0VFQjBzODlUWHRsSgpuOVJjcU9ORVB0Q2g4
b0JnTTVpVVUxckNyajZDKzhWVlBhQzJSTHIxa2d5VU9TWkVIZkFDRlNHS29DMGhFSkVUQVZheGNk
RXU3SzdqCkJFYVg0SnAyeXkyMzFEMHFsV2VTenZQQ2dxb2U0bkhFYVFBZHdLa0hna1BxVGhKS2RU
RGpKYkovNHZGRkhCNWNtejUxYVNWNnowQlYKcGNkVjFyKzhkSlduZ1ZWZ1ZlbERucmE1TEZNM3Vy
UTlENEZibCt0T0ZUcUwwMEVWV0lGbTQ5aXNmbStiTC9EMS9ROENTSFhhTUFhaAp5cVJQYXdRaW44
TytBRUlJMUZDbXBBUmRad1EwUzRwQmdGMzlKQmVtdnZDRVhYckVVWUNLQ3Z4M3UwbzZkOFRRRzkx
NTU1MDU4SjJwCmRwaWs4N3l3c09PSmZ1Z1NPUzZRbDE1NnFlNlJ0VHpNU2Fobm9QMXdCWjBXeTZO
SUkxcVIzb3YwcjB6Wk11dGZYcnJLMHg0VHNNcjAKSVUvYlhKV3BLMTNhbW9jUlhsMnVPeWJvTEdx
M0NWaUJaaU5zbXZtMXpSZjQrUDcvQmFnaFlndXBCaGlBUjZZb2hXR0pNRkh0RjU2ZAo0bTducWtH
Y2N0NG1GVFVCYnpHNzdiYWJJUHNJWXgwM1NlZFZZTkZwQ0hzUEl6VkY3cU94RHVZRWhQcmhEUTV1
cWVlZWUyNXg2S0dICjVud3p1VmlnOTJUY0ZIbFNoYTdpOVppRUZZZmRLdmQxcGtzYjh6QnRYR3l0
T3licHpDU3NORnpVK1ZtZGFkWUYzbHg4LzRNQTRtSWsKYzlZUkpuMU9SSVZpTFkwQmszUmVCUlpp
d3BBTlVNTkZiMHNqTlRUZUtBYXEwRlc4SVNaaHhXR0grOWJEZ0sxMXh5U2RtWVRWZWlNVQpXbXdU
QXlwdEJRSEVKcVlMd2xZSEpweUFGRVJlS040eUdEQko1eVpodFF3Q1EwT3RZOEFrWFptRVpiM2pv
WUtXeFlCSk9qTUpxMlVSCkdocHVCUU1xYlpuVHE3RFMxQUMwS0Fad3ZBdVZEa1R4Sm4vOVJWKzNW
aDd0Q3FrWkF3aWtpR2lsZFVvSU52am9vNDl5QUtNNnRTdTAKSldBZ0R3YnF1djdsYVh0VXBqMzBJ
ZXBMK0oweU1PQ0RadHNyVCtHVEwzRDkvUThDU0R0Ykg4aE5wMEJrV0FxY0k0NDQ0b2ltM3BFLwph
emdkYU1wemRVTkIxTVFLSzZ3Z0xyLzhjbGRWYXVzQkRzamdtS00ySTFLdHo0UzJkT3ZXVGZUdDIx
ZVErMEtmVFduVVBkOTg4d255CmlNRnFTWWlnMnQ0U0ZsZ0tRaWJJMWJFejRlK2hoeDVpV3hyb0ZM
dE92dW1kWEFVTENwNG9FSlhYUmFycitsZWs3ejc2NEhxY2ZOQ2wKejNub1k5MHBRbk5WeS9xZ1dk
YzhoU3VhOWNrWE9QLytFME1hVWswd1FJc0FlOFhCYjlYMDhzc3Z5NDRkTzNJOENYamlnRGNsdUhh
OQo3cnJycW9JdS9UNjhFTTA2NjZ5SnNTWktBeTc0SWx6T0FjZEhIWFZVd1RmTkY0ZDdQYlRscFpk
ZU1nKzhKRVE2UFdQWHhBaENaaU9aCnBQTXlzTzY1NXg3Rytmang0MjEwcncxTVJLUmRlKzIxNVRM
TExGTW9Xbk1iUUNVemZOSTc0dGtnSUNvODhDWEZtQ25acmRUWHFxNS8KWmVncXFVRmxZVlh0UTFK
N2RQayt4c2sxWGZxZWg3YlhuYkowcHFPSHNyQmMwaXphN1pxbmNFV3pQdmtDbDkvL2NBSkNNNjA5
SklyOAoyYVEyUTFHL3hZb3JyaWpJbGF1Z0dBNWl3UVVYRk8rLy83N1ljODg5dlhXWEFyQ0oxVlpi
VFV3Ly9mVGUyb0NLVjFsbEZVR3hQMFRuCnpwMjl0Z09WVSt3TlFjRUgrWFRJZTJQKzI0QzMzbnFM
NlFRRzJvTUdEUklVQ0trdVRUUFNEb3E3SWJwMDZTSTIzM3h6UWU2WmpjQk0KQTBKdWRzVldXMjBs
M243N2JZR2RVTmZKSjcyRHRsSC9MTFBNWW5YZXQ4TDZselh1UHZ2Z2FweFVITGltUzkvejBQVzZv
K0xhMXJWUApta1dmWFBNVXJtaldKMS9nOHZzL2pTM0NESERkWW9DQzFvblRUeitkaFF5NFRKMS8v
dm5GMWx0dkxVYU5HaVZ1dXVrbXNkQkNDNGxuCm5ubUcxU0hXWDM5OTBiMTdkN2NOcE5yUXJ0bG1t
ODE1dmJvS3dSQXR1K3l5dWtkTzg2QjZCVGV3dmx3RncwNklBdkN4WUJoMWZNS0UKQ1dMT09lZGsv
RXc5OWRSaTZOQ2gwYU4yOFR0eDRrUnh3QUVIaVB2dXUwL1F5YUJZWW9rbDJPN0ZadWNnZEFPbmRB
cFN1UnFNR1Z3awpnbjVCeDNtU1QzcEgzK2tFSkU4em04cmNkZGRkdkhtU1oyNjB3dnJYMURuTmpl
OCt1QmluZUxkZDA2WEplVWhCZlhrZVVqd2ZRU2Y3CjhhNjF1ZmV4N3JScGhPRU0zelRyZzZkd1Fi
T20rQUk2SkdLVmFncTZ6SnVjaXkyMldCTUYrUDcrQndHa2FUaGE5d1k3K21lY2NVYWIKRHVBVTVO
aGpqeFVqUjQ0VWI3enhocmp3d2d2RkR6Lzg0RVVBd1dRZ05iQTJiZlNSQVh5QklmU2RzQ3RtK2lR
R3hubGp4NDRWTyt5dwpRMmIzNXBsbkhuSDMzWGZ6S2NmWFgzOHRLTmlSSUhVTXNjOCsrN0N3aWcr
TTZyVWlFMkROQ21DQnZmNzY2MFd2WHIwRThQTGVlKzl4CmYzLy8vWGRCRWVjRkJTRVVoeHh5aVBW
Vy8vSEhIM3pxVXFVaW5KNVFjQyt4K09LTDh4OFlHdVNoYjlqZFRVdSs2UjA3N0VVVFJjNFcKMkkz
RHJtUFBuajFUWDIrRjlTKzFBL1N3RG4yd1BVNXhITGltU3hQekVPc2tkdjZYWEhKSm5vZWtQaXVR
cDg3RHVxdzdjWHlidnZkTgpzejU0Q2hjMGE0SXZnSTBydm0yZE9uVVNFRHl1dmZaYXRnRSs5ZFJU
RzNHOWZILy9nd0JpZWtaNmhIZmxsVmVLYmJmZFZzQ1FDQ2xpCktKOTY2aWsyZHQ1dXUrM0U4ODgv
ejR1bWoyWmlzVEFaMEM3ZUI3SjFZY1A3VTA0NWhYZTE0OC9WZXh6ZFFzVW9TbmdYREdtZW5hem8K
SFJPL3YvNzZxM0VCNUxqamptT2hJWThBZ2o1QTJOaDc3NzBGak44ZWVlUVI4Y29ycnpTZGVvQVJ2
UEhHR3dWMlVjQUFZOGNQdjNsMwozMDNncVN3TUxMRGJiTE1OT3ovNDRJTVBCRTUwNXBoakRqRm16
Qmp1UndRWFJ0SVFUcUtUQlp4SzVVNWZmU1ZJZ2hQaW9vc1NYNms2CnpsQVZBODdKbmtJY2R0aGhy
TTZGazB4c0tNRElHNDRNMHBKUGVzZThCOTZMSnFpTm9sK2tkeTNPT3Vzc1p2Q1dYbnJwUkRCMVgv
OFMKRzY0ODhOa0hWK09rZEpkVmFGeXV3eWJtNFlNUFBzamZVd1FPaFZvbDV1SEZGMS9jTkEvcnN1
Nm91TFoxN1p0bWJmSVVPcHk1V0V1cgowaW5hZmNzdHQ0aCsvZnFKU3k2NWhEZW84STNITnhzT0o3
YmZmdnRHMTN4Ky80TUEwaGlHMXIvWWRkZGR4WWdSSThUcnI3OHVQdi84CmM3WXZnTTNGOE9IRCtR
T09qN2pQM1d4ODRHelZUd2JUNHR4enp4VmdVS0IrbHBYV1dtc3RkbGVNWTNRc29MZmVlcXZZYkxQ
TmVIYzgKNjEyVHo3SFRrY1pVRmFucnh4OS81R2phVUx0Nzdybm5pcnpLNHdLOVU2anJuWGppaVkx
M3YvamlDL1lXZGVhWlozTFVjSGlRV21PTgpOWnFFdDBiaG1sNUF4UXEwZ1RSczJEQSsrWUlRaFRS
cDBpUWVjd1FIZ3dBR1dvQzZFSFkxYzZrTDB2dTBQUytJVTJaNFNmL3dRU21qCmhoVEJROFIwMkt5
c3V1cXFQTGVSUDNyMGFBRzRVTDJFY0lWK0ppVVQ5SDdiYmJleGtBNUJmWXN0dGtpcXFrMSsxWTBI
OUJsLzQ4YU4KRS9Ca3RQdnV1MnRQTCt1Ky9yVkJqQ2JEWng5Y2paUGFiZGQwYVdJZTRqdUJVem1z
alVoMzNIRUgyMTlDQTBHZGgzVllkMVJjMjdyMgpUYk1tZUlvMzMzeVRtWE40S3NRSmMxb3lRYk5w
OFBITUJGK0F6VlJvbkZ4RUcyTTRTY1pHMVVZYmJkVFlvRmJiQUJ4NitmN1RvaE5TClRUQkFCTUhl
ZWZCck9wR1VLK2tJempUWVF2QU9QUEJBdWNzdXV4UjZKMC9ocDU5K1d0SnVsQ1FHWEE0Y09ERFBL
NUlFTkVrNjlKSjIKWnVYR0cyOHNTWENUSkl6a2V0ZGtvVDU5K2toYUdDcURKT1pNTHJEQUFrdy9w
RFpWQ2g2OFhoRmpybjJYVGtVa3FlNXBueFhOTkVubgpSV0VSNHlCVjcxNTBzc0ROSndjTmtoZ0lT
YWVHK2J0ejg4MVN6ajIzbERQTUlPVTMzNlMraC9sSEg0TFVNbWtQNmNSR2tzcFZZMzJJCitnMzZK
WFV5U2J0YWFhOVhwbmV5SDJ2Z1JyMU9yZlMvRDJrWHJ0UzhKMkd3RFhnNmhaTzc3YmFiaEVlaklx
bm8raGZoRjc5Vmt5bFkKUmZ0UXROMCt4cW5xT3F6U29ucWQxSGRmODlERnVtT0t6b0E3VTdCczA2
d3BuZ0pyL3lhYmJDTEpSWDhTNlRUeXE5SnNBMURLaFFtKwpnTlN3ZWQwblcyQkpHNnlTNG90SUVw
WWxiVTVxYS9ieC9ROG5JRFRUMm1QQ2JpNVVzQ0FCZCtqUWdkVTI0QTFyeHgxM1pGMWpIMzBtCnFq
ZGFMZlJzc2V1RTNXd2NnZU9raDVpVHpEcWd5Z0xqWXhnaUkxNUtwTEtXK2FLRkF0QkpubmZlZVN0
QmhzMEdDWFlDZGczWXhiam0KbW10S3dTTVh6YXl1cEhzWjhVcGFQZUZVQTNZL1VJK0lVblI4anpF
NC92ampvK3owWDhSczZkTUhXNTkvbHV2Zlg5QWdwcjZEc2NsegpNcGNHQkk0a29NcWtldTRpb1ZQ
OC9QUFBBcjlKeVFTOWswdHZkbGFBdVlMVFJ1d0E1MDBtNWowQ2RrSU5FT01GK3M2eUphdmorcGNY
ClgxRTUxMzF3UFU0KzZMTHFQTVJPc1c0ZVFsMFE4eEMvOGVSejNZbTN4Zlo5SzlJc2NBSmJSN1I5
NVpWWFRrV1JDWnBOcmVDL0QwM3cKQmVDUGNDSUhGU3lvc1VJTG9Hdlhyc3dqNk5yZzQvc2ZCQkRk
U0xSb0hqN1M1NXh6RG52Q3dpSUpwZ3F1ZDZIVC94WHBxVU1nZ2ZHYwpxdi9uc3F2NHdKazRMbzNh
L05wcnI3SDNwcDEyMm9sVnFIQzh2dnp5eTBlUHRiL3c4QVJoaFhiTFVwazI3Y3NXTXVIdG9xcmRD
WFNvCkVYd1NmWUtRV2Nhb0hlM0FRZ1g5MENqQjVnUDZybVVNVXlNWWRmcEZFRXpRaWk3bFVyZUtY
aVFtaENhVUlHSVc1R3BPa0JRY1BVbjgKeGR4VUJaL0VnZ2tQY096LzZxdXZpdE5PTzQxZEkyTXVZ
VndnZENOeWZlL2V2YlZ2bXFKM3VQV0d1aHJvQXlxRFVNUEttNm95dGxDOQp3b2NVTHNUVGNGajM5
UzhQdm56MndkVTRBUSsrNk5MRVBNVDNGQnRmMkxDQVl3dXN2Mm56ME9lNms0Zm1xcGJ4VGJNbWVJ
clZWMTlkCllJMU5TNlpvTnEyTzZKa0p2aUQ2Sm9CUFduUE5OVmwxbXVLMGFMMS9ldnYrMDZJVFVr
MHdRTVRYT1BvczB5UUU1WG4yMldlMXIwSk4KaVpoVHJ3SHZ5T09RM0dPUFBiVHRLNXNKdGJJQkF3
WklNcDdPQklGQWFEMTY5R0NWbGN6Q2pnb1FReXdSdkNrdFFiVWdVaFZLSzFmbApHWDFBSlJsZU40
RkFvRDVhdkpyeVROeFVwWE8xRFhsaDRkaWN2SmRJMmhWcXZFNE9HWnJ1R3cveVh2ejhjOTZTRXNm
Z3FLOUtJa0ZECmtnMkVmT2VkZHlTNXFKV2tneTdKWmtlU2R6c3QyTHJRT3htU3M5cVV0cEVwbWYz
Nzk1ZERoZ3pKVFlNbTE3KzhkSlhTL01haklyQk0KOXFIUmdKd1hyc2JKSjEyYW1JZkVpRW95Ukpm
a3RFS1NCMEVKdFVBNm5kUE9RNWZyVGhFNnl5S0pJckI4MHF3Tm5rS0hHOWMwYTVvdgpJRytKa3V4
QUV2a0lYOS8vRUlpUVpscDdTTmlKZ1hRTFNWZVhLQkt6SUlZeTg0aFI5NjZwUEpyWXh1TmQ3TFhY
WG14Z3YrR0dHMlkyCkV5Y0VNQ0JVdmE1a3ZtUzVBSFowY2RLZ1M3VG9zZUUzbmtlcVFycHlWZlBn
eWhYRzVhUjMyZ1FLeDdYWXZjTzR0WG9pMnlDeHpqcnIKL0gvMnpnTnNscUxZKzYyaWdxS0FpS1NQ
ZERsRWtZeWk1QndsU3BCNHlGSFNJVXM0NUp4ek9JQmtsS0RnT1FUSlFZS1NEZ2dDQW9vbwpBcEww
NHFmM2VyLys2bGZYWG1mbm5kbWQzZW5wbnQxMzZubmVkeWQyOTFSWHoxUjNWZjNMVEQvOTlLMUh3
ZVNPZTBUZjFFTk9HNnhjCm5WYnE0REd1Ull6alBKTEpzd1pJZ2txRzJ4MHJjc2l6QzZoUDMxY1hl
ZTkzM0xPQ0J5QUNjdGlOQnVIOVYvZG5DTkZQOENDbVhQb1kKaHlUM0JZS1g3eTNCd2xnZ0FXWElH
b2V4M3p2ZFpLN3MrZGpqcmwrWjdmVzVROHVzYjcwQWJ4aHlVR1hwRVRHLy84MEVwRmRKck9uMQpD
QmF1RWZ2dHQ1OTU5ZFZYVzRvTVdORGsvd0RkSVRiaHR3MkdkaXlhVS9Dd1FkR3BFNjJ4eGhxS3pK
U2NoTkIvUnh4eGhHYXk1ME5ICjNFNlZoSHpndnd5NlVKSm1uMzEyalRjZ2FTVWZVaENpd0JEZllZ
Y2QxQ1VtZVcyZHQ4bVhBYm9YY1RKSnd1VE94QXMzeFNUaGYrdWIKY0dGNjZhV1hNb3ZGUkk1YkpJ
aDFXUitJNUUyNDE4bUtvMDRXNlM5YzVQS29MdkxPeEt0YnpFYldNK0FXVVpRRzRmM1g3VmxpUDBP
SQpmb0lITWVYUzF6amtHWkxqTUN1blZCM2VPOTFrcnV6NTJESWJTcWNJTGJNaDlZS1kzLzhtQnFU
c0NLelIvU2haNUFoZ0pRYWZQcksrCk1nR0JTSkpFY3JxWVJLQnN6TndSS0c5OGdNaVBRZEFabWFT
SkcyRUZBQmcrL29BNlJka09SZVNvWUJXZUlGL2cvNGpUb2M5b0k3N3YKODgwM1grVk53VG9HVkIr
VG5UUUI2NHpjVEp3NFVkdkpSQVdsRjJXNkUreHJ1cHlZKzR3RGNuODRuMWpYRmliREowbitEaVlp
Wk5zbQpXUk54RHNnRGlUdUJsL1JGVGxuaGcwM2VBT29ocG9QQXZ3OC8vTkFBY2VzTGp0bTF1Uzd5
VHF4S2lEaWl1ci8vWEw5MCtvMzVES0g2CkthWmNoaHlIZFhqdmRKSTFYK2RpeW13b25TSzB6SWJV
QzJKKy96OGhKcXpCOTYvd05aSWlsNU4wMFNqVExjN3FBUW9DQVdJb1h3Um4KSjkxUFlqd3FMa1Vv
WUwwRXNGYlJUdkpra0lnT1N3TnVPRzRWQmJRd1ZoNndJb1Vta0lXZWVPSUpWZFRvcTdMSVdLSGIz
MHQ5dnVTYwpPb3VXQldZL2s4OHN3anBJM2hTQktWUkxFQk1zOE5LUkI1OEVnc3E0Y2VNMGVSbmpn
QWt3YUd3Q1ZkazFrM21aZHNTVzkvdnZ2MS9sCm12d3hJY2pIKzYrb1hCVjVubjdLOHZFTVJkcVd2
Q1owUDhXU3k1RGpNT1I3cHg4NVMvWi9jcnVmc21MSWJHaWRJclRNRHFOZWtKU3QKWmdLU0hIV1J0
NU1kVTJZQ0V2a3htdW9iRG5Ua2dFODU5MWxXeDBaN1BJblZqZFhSMkJOeGo0ODBkRVg1bEN1ZlpR
MGRveU0rMExDTgpRNTl5NXJPc2lGM2NWRjFERGlSbHE1bUExS2lEa2gzVFRFQnExREZOVTd4eXdL
ZWMreXpMNjBNMmhRMDBCM3pLbGMreUJwcXBUZU1yCjVZQlBPZk5aVnFVUDNSUStjQnhJeWxZVGhE
NXczVmVzd2VEbWszd0dsSTQ2RXloTHhEcU1kcXBiZjRGdVFueUN3TDNtb25TTjlqNXIKbnI5L0Rn
aVVjUDgzRjdpemJ1T3BRSk5IWEZLSFo2aTZuMFk4ZEhOZ29EbFFCNWtkSnAwaUZqOURmZitiQ2No
QUQvZjh4aFBzRGNJUApmdThFTnRlTkpGK0pFUngxUlZTNjhNSUx6YTY3N2xxM0pnWnRUOTM2aXhn
RkF2SWxENFBDb09MZk8wekVDNWFrblJ0dXVLRW1FUnVtClo2dnpzemc1K3UxdmY2dEFFTVE5VlVG
MUcwLzlQR1BNWndqVlQvM3daWkR2R2ZiM1RreVpIVWFkSWhZL2czMy94ZFdub1pwd1FGNnMKcFJJ
UnBoOUQwQ25zTExQTVl1V2wxenBWZFVLN1ZrV3lRUkttUEpMQVh5dndzdmJJSTQvVVpIQXlVYktD
c0pSMythZzRIcnUvc3BncwpTcm9WR042c1UzMGY4eW5uWmN1U0FIQTd6VFRUV01tcjBmZnpORGNX
NTRBZ3Z0azk5dGhEa3lnSzhwY1ZxR2NyeW03eEFucTRzc3g0CktpdFh5V2FXS2F2TU15VGIwT3Qy
eUg3cXRXM0RjSDBWNzUweWNwYm1hWm15cXBUWjBhaFRWTW5QZEwrbjk2disvamNXRUJscHcwQVAK
UC94d0svZUhleDVRZkVCVUFvbERoTmlReUl4RVRBODg4SUM3cE5MZjIyKy9YWkYreG84ZnIxQ2p5
Y28rOWFsUGFaSTd5Y0NwN1FPTAorb3M5SkhaTGx0VnRteVJDYjd6eFJ0dGx3TWtDZzRyNzE3bm5u
bXNPT09BQXpjVUEzTjZKSjU3WWRtMFZPM1hwTDFBMjVLVXo0aEU1CkJsUXNLR0VFU3dQSGU5eHh4
eG5KbHF4d3ZldXNzNDU1N2JYWFJ0dzNhQWNXWDlVczIxa0FBQ0FBU1VSQlZIeHhzOXBxcTdWZ1lr
SEUKZXVTUlJ4cTNzeElkZWRwcHB4bkpESzJ5a3k0R2ZwTTBGRVFzTEd6QWhyUGFWcGJxTXA3S1BF
Zm9aNGpSVDJYNE0wejNEc3Q3SjdUTQpodFlwUXVzT29ma1orL3ZmQktIWDZLMldETTdKVWdvN05a
Vkp4bUdISGFhVEVHQjNVUnpKYTRGaVQzNkhSUlpaUlAvSWYwR0NMeDhmCi9VN3RjZWN3aTVMVGdq
WmtUWHdtVFpxazdTSHpaMVVFSERIWmxHZWRkVmFGSlNicDMwd3p6YVQxd2hmeUw1Q0Rnd25iWFhm
ZHBRbW0KRGp6d1FNMFJVVldiNnRKZlFCSHZzODgrNmc3RHBBeTN1SGZlZVVkNVFmSWw1NzYzL2Zi
YkszSVQrV1hlZSs4OW5UU1NPSS9zNHIxUwpHVGxQMTlXdExDYVpZdUV3UEFzRThnMDVUUEN0ZmYz
MTE4MDk5OXhqL3ZqSFArcEVuVEdEYXhCOUEzdzFrSXRWSjRIVVJnM1pQL2k0CjlkWmJhNloyOHNz
QU01d21YTi9JdDlNSm1wZEVic2hZRWZJOW5yckpWWkUydVd1S2x1WDdHVno5ZWI4eCtpbXZMY04y
UE1aN3A2aWMKRmVGMTBiSkN5eXh0RDZsVGhOWWRxdUFua3d4MEh2U2NLYWVjc3EzN1kzLy9td2xJ
VzNmRTNTazY2RHUxOHVPUFA5YVZhUktyb1V5Ugo0T3p5eXkvdmRJdjNjMHlla3MrQ1VydlhYbnNa
OE5memlBemxxNjY2YXR0OWVkZjJjNXc4RDZ6NHJiamlpcXBVempqampDT0tZWUpFCndrYnlRT3kv
Ly82YW8ySEVSWjRQVk5WZkR6MzBrQ0dEZVJHNjk5NTdqYmpDNlNSazg4MDNOd3N2dkhDckg2NjQ0
Z3J6L3Z2dmU4Mk4Ka3BTTlhpZmE2ZWZwVmhhKzdFeVMrRVhob3Q5SkJFanlKVjdJckRneG9XTHlu
cVFQUHZoQUoxeWYrOXpua29lYjdZSWNvRitaeEY5MwozWFU2b1V2ZnhnUVB5eHBaNTRFa3ppTEdJ
Sk5ISml0WWNvdVFyL0hVVGE2S3RNVmQwMnRadnA3QjFkL3BOMVkvZFdyVE1KeUw4ZDdwClZjNDY4
Ym5Yc3FxVzJaZzZSUXpkd1FjL3hkMWU5UmdXRmtteWl6N0llNVFGeHlURi9QN2pmdEZRVFRnZ1Fs
RXFCdVNWVjE1cGU1Sm4Kbm5uR3lzcDE2NWpNcnEwb1ZxMzlxallFaGNKdXRORkc5cXFycnJLaWFI
U3RCai9EMjI2N3JldDEzUzdBajMvUFBmZTBrbEN1MjZWVwpWZ1RzaEFrVHJBeDB2Vll5WDF0Wkpi
Y1hYM3l4SlQ0bEJGWFZYMmVlZWFiZGZmZmRTejNDajMvOFkzdklJWWZZZGRkZDE1NS8vdm1sCnlr
cmZYRmJPaytVVktZc1lBL3BYRUgyU3Q2cHNYbmJaWlZaVzZkdU85N3p6NFlmV0huMTBvZHRrTW00
ZmYveHhLNU9oUXRjUDBrVTMKM0hDREZlUTk2K0xNaUQyNysrNjdjeDlCWFB6c3NjY2UyeGFqbHJ5
WXNRZ2hpN0o0b0xGaXlmUHBiWi9qcVloY3BldlAyKytsTEovUAprTmVlMlAyVTE2NlF4ME9NdzlE
dm5WN2tyQnV2ZXlrcmhNekcwaW15K0ZTMTd1Q0xuOFNPeUVLa2xjVTF5NWdYNjc5OTRZVVg3TVNK
CkU3TWVxKzFZcU85L2VlZGJrZFNHNnNFQklGTkZ1ZEdWWGxZV25hc01iaEM0UWVGbXhHcGkxUVNp
MVVFSEhXUWsyRlQ5dlBQcVk0Yk8KTmF3eWk2S2JkMW1oNDZ3NGdkaUVheFhJRWQxSWd2UFZVc1Fx
T0g3b3JJN0w0TlFZQitKVFFwRHYvbUpWR2VRelZqaks5TE5NWE0zVApUejl0amovK2VEUDk5Tk9y
UzFZSWZsUlZCMmJuSFhiWXdjdzMzM3hhQldOREpxcEdsRitOOS9uMHB6L2RmOVhBWEl2VnpCUXNn
eFY5CnJFMTFSYWZybnhGR3M4Y1RKOFNZa2dVRnRhS1JVVDZMZ0hmZFpaZGRkT3dsVjF1enJsMS8v
ZlcxdnhndldPUndBOHdpMytNcHE0NnEKajRWNEJ2b2taajlWemNNaTVZY1loM1Y2N3hUaFNiL1ho
SkRacW5VS1lrU3g5QlAzMkkycTFoMTg4Uk0zZTk2dHVCR2pHMkNSUmsvcQpwaDhGL2Y2M1RYdWFu
YWdjRU1FdlpRRUJSV3JjdUhGV1hFenNZb3N0WmlYdXdjNDIyMngyMzMzMzFSVmdacjhoaWRtM0JI
Vm5Wdm4yCjIyL2J0ZGRlMjU1eXlpbVo1M3M1S01IUWR1ZWRkN2JpeTI5bGtCVys5ZkRERDdjU2xH
OGxWMHJoZTN4ZTZMTy9ubnJxS1N1dVV5by8KOUhzWkV0OTgrK0tMTDJvUnJFSi85YXRmTFZQY2lI
dkx5bm15d0g3S3V2bm1teTEvRUNoc0lOTDBSWTg4WXUyODgxcjdxVTlaKy9ycgpoWXZJUWpVSlpY
VXIzTWcrTDhUNnNkbG1tMWtCbE1ndDRjRUhIN1FTKzJFbHZpajNHazQ0QzBqeUlsWWZ0OXh5eTB6
a0xKL2pxUis1ClNyWXp1ZDFMV1Q2ZklkbUc5SGJNZmtxM0pkWis2SEZZOVh1bkZ6bnJ4dk5leWdv
bHM3UzVLcDBDQzRzczBscUorK3ZHR2oxZnBlN2cKaTU5NGxjaWtTbEVIc2JyTHdvMFYwQjByTVRR
ZG56SGs5Nzl4d2VyWUZXRlA5akxvaTdSTUF1SHN0Ny85N1NLWFZuYU5jOGRJVnNDTApHTmhkUGdC
bGlJbkRVVWNkWlk4NTVoajc5Ny8vWGNzVG4vN0NSVElCU3Jxb0ZiNnhvZ3Y3N1MvY3lLYWFhaXFk
ZklnL3ZaWGNDcVZhCktQRTY2dlpDSVdlY2NZYVdYYXJBMU0wKzVieWZzc2FPSGR1YVlGMTU1WlZX
NGtKU0xleXlLMHEyM1c4L2F6LzVTZkREckpYeThnaGwKT3owR0JPakFycjc2NmxaOGNpMzFMNy84
OGxaV1MrMTk5OTJYVjB4UHg0RlE1Y09USm82SlpjdktDcHM5Kyt5ejdkNTc3NjExbHgySAo2WHB3
dThUbExVMThBSStVQ1orQVlLZ0xaUHA4ZWo4OUFYSHR6bnEyOUwzczl6dWV1TGNmdWVLK0xDcFRW
cGxueUdwTDhsam9mb29wCmx6SEdZWkxYYkZmOTNpa2paK20ybGltclNwbWxuZW4zS2NmSzZoUzRI
QW5DWTJGWDhKQzZRNy84bFB4cVZ1SnU3ZjMzMzI5UFBmVlUKSzE0UnV1RGI3VHNUOHZzL2hRaGFR
MFBLQWN4dm1OeGlVaEp0UzJiMkdveiswNS8rMU1pQUx4d2tuZGQrK2Fob3dEU0I0d1NLWVRyYwpZ
b3N0OGk1dk8vN2hoeDhxQXBJTXpyYmpNWGY2N1M5YzJBQWI0Rmt3dHhaRkRzcDdWZ0xSK1FORlRl
SmtqT1JxeUx0MElJK0RmSGJUClRUZXB1OXJreVpNTkFYODlFUzVBY3I5QXpobXo2S0xHbkhOTzd1
MEUvK0graGR1UVE2ZkQxUS9lNGxwRVcvZ1ZTMkRwZm5PTitNcFgKdm1LV1dHSUphZHFpYW5vWDdI
eERVTDFEdzhORmFzRUZGOVJnZkpDbXhLSmd4Q0pweEZMcWlpajFpMHNiejV3a25ubWJiYll4TTg4
OApzeUhvOGZPZi8zenlkTWR0VVZ3TklCV004L1hXVzYvanRjbVQvWTZuWkJteHQ2dDhodEQ5RkZN
dVk0ekR0T3lFZk8razZ3NjVYNlhNCjhoeFY2QlNnZytLYUtIT1pycXdLclR2MHkwKytLN2lUaXpl
RHVycktncFBxQ0hQTU1VZkhad3o1L1c5UXNEcDJSZGlUQ0pxaklnUEIKWFp2OEZhdUFDaG13YThD
TXlzcUFLdHJpaXBXOExQZzIrVGJ3dThmM25Sd0JmQkRLa3NzcVM2d0xDaFhRbjZCL0ZhRkxMcmxF
OU1aegpEQXBvVEtwcmY5MTQ0NDBxTjhnUWNTQ3lTdTZOVFQ3azNEV21uN0x3ODBWQnh4Y1dHTUts
bDE1YWMzKzRNZ3Y5U2h5SmVlVVZZNzc2ClZTT090bDF2RVlBRUhZL0lKenlWb0VBdjZIUk13c1dD
TXFKK3hodCsvcUMrYmJycHBrWmNNdHMrM056QXBJQmNIRzVoZ0JpcVBBS2UKR25obStJMENNR2JN
bUVJVEpzYW9nQ0xvWkkrWUQ1RG9pc1pZMFI2VVpOcSs1cHByNWpXdDdiaXY4ZFNQWExVMUpMSFRh
MW0rbmlIUgpoSzZib2ZvcHRseUdIb2RKeGxmOTN1bFZ6cEp0UzIvM1dsWU1tYTFDcDBqeklXcy9o
TzdnbTUrODY0SFVaM0dTWEhEZEtOVDN2M0hCCnduNVhFeEtoYUpuKysybVNKSXRUTSs5Sko1MWtC
ZjdTNHN1SFN3NXhJQXNzc0lBRmJRcGtqcW9KRTZsTU1yUWFrTGh3TnhGRlFoRnYKNnVEcmpyc1dz
U21TMUtocVZuUXN2eTc5bGRkSStrcFdTOVJsSisrYWZvNlhsZk5rbmYyV2haK3RXTTJzVEZvdEp1
Y3FxUnVxQ2RsOQppN29WSmR0NSt1bW5xMzl2OGxqZU5yRVRkOTU1Wnd0eEN0Tzg1TVZSaEJSNDBZ
bEFzeE9MalpVUHI4WmxnS2lDTzAwYXVRN1VLNW1rCnRJcVNoSTVXSm5wV2dDRUtJYSswYnZ6WEJt
NFZ1RzBWSlovanFWKzV5bXByTDJYNWZJYXN0bkFzZGo4bDJ4VkNMbDE5ZFJpSFZiNTMKZXBFeng1
TzgzMTdLQ2lHemRkRXBRdWdPSWZpWjErL0o0eUcrLzgwRUpNbnh5TnU5RFBwMFU0RllreFhQdHNP
Q0dLUFFzbTd3aWduYwppdnRGVHgvMXRnSjcyQkZYSUsyYlp4THJoQ29zUGR4ZTZhVk14UERIalVs
MTY2OHNYakNKM0hiYmJiTk9sVHBXUnM3VEZaY3BpeUJvCnhnU3hHRlVTL3JlU1VWY2hzSUdLRm5j
aUs5blhMUk1JY1N1eWtnL0RyclRTU29XYklDaGV1cmpBczNlQ3VVMFhLSWh6VmpJdzIwTVAKUFZS
Q1dQYXp3T0IySTFrNTA4RFBFMDg4MFRKUmdqZ0dOTE80L2JYQkNhUFlFb0RPZTRmbm9uMEVka295
cjI3VmxEN3ZlenlWa2F2MAp3eFF0eS9jenBOdmg5bVAyazJ0RDhyZHF1WFIxMVdVY1Z2WGVLU3Bu
amgrZGZvdVdGVXBtYVdzZGRJcXFkWWVRL096VS81d0w4ZjF2CkppRGRlaUhnK2FLRFBxdEpmRlEy
MldRVFMxNERGQnlVRzVRcmxBMUhvRVFSQUNyWjBkMmh5bjVSVnBoNENDU3NCb2hYVmxHUEJZdkwK
bFpVNGtXaklWNjY1ZGVzdjF5NzN5K28xazQ5dXErUHUrbDUreThoNXVwNHlaZTI0NDQ0YUJKNHUw
L2MrT1Q4T09PQUFuV1JnRVJCZgpjQ3R4TllwWXgzaE41eWZwVkQ5NU5pU1psQ3Izb0o3MVFvQTFF
T3hlWk9MaHlpVkFuZllScEpra3dBbEFuNU40anVSaHRaTFFKeEx2CkVvUzNybkxmNDZtTVhMazJ1
ZCtpWmZsK0JsZC8xaS9XckJqOWxOV1dFSEpKdlhVWmgxVzlkNHJLV1ZZZnBJOFZMU3Vrek1iV0tV
TG8KRGlINW1lN3o1SDZvNzM4VEF5SWpyUzdVcTk5bHV0MHllOVlBVC96Q3lYVWdVSmNhVEl3ZnRT
TVJNdlhqZHZ1ajZSZmZlekl6azZPawpxQjk2bGZ5cGEzL2RjODg5R3J4TWZFQVZWRmJPazIzcXB5
d3hMUnRSb0RWZmhhREVKWXNMc2szY0Vablg4V0h1aGZCZi8vS1h2NnpBCkVtUVBKNHY3a2tzdVdi
Z0lTUTZxTVJYRW54UWw0clVJWnNkL2VOVlZWMjNkSmdnckdqOGliaTF0eDduZ1J6LzZrZm9henpu
bm5LM3IKUTJ6NEhFLzl5RlhlTS9aU2xzOW55R3VQT3g2cm4xejk3amVVWExyNjNHL29jVmoxZTZj
WE9YTTh5UHZ0cGF5UU1wdlgzcXFQaDlRZApZdk16NVBlL21ZQlVMYms5bE4vTG9PK2gyT2JTZjNF
QTVDSEphZEh3SXpJSGZNcDVQMlU5OE1BRFJseVJDZ1hqVmNHcTU1NTd6b2dMCmxDSTc5VnIrcEVt
VEZHU0N4S0lzTUJRbEppK2dFSUUrbDV4SWRMdGZMQzRhZEE1eW5lUVlVdlFxY2FreVlyblJ4S1ln
eDREdU5XelUKajF6bDhjQm5XWGwxRE9yeG1ISVplaHhXL2Q3eEtXYyt5eHBVMlV5MnU5RWRrdHdv
dDUyVXJXWUNVbzZYWHU5T2RneVdpb1lhRGd3agpCM3pLdWMreXF1UTFxMXFDdjI0Y09oMFRBYUJs
dTBFaSttb1RsaitzTHIvNXpXOTZ0b0JLVUtTUm1CVURNc3AwMDAxbkpCQlRKekZrCk14ZHNlVjlO
ckZVNVB1WEtaMW0xWXBLSHhvU1d5OWpqMEFQTGNvdndLV2MreThwdGNITmlWSElnS1Z1ZkhKVWNH
QVVQelFTR0ZSZFcKZVZBWUdtbzQ0SU1ENHFPcXhhQ1VzZ3FPVzBGRG5Ua0FyOEJnZi9ubGx4WFNH
SmRJOFdkVytGeHljZ2hxWGFYNWVnU0V3cHh3d2drRwpXTnZreTc5enEvOTlWaEowR2ZLRkFLRk4v
ZzdKY200a2NML1drNDloZVA4Tnd6UDhXNHBHYm9XV3k5ampjQ1FIaHUvSXNNdnM4UFZZCmIwL2sv
ZnN2QXROUVRUZ2dvcUNCZ2Z5V0pZS1pIbi84Y1N2NU5oUktGZlNkaHF3bCt5K29ZRmtrcTJNS1N4
b2lTRCtyL3BqSFpHVzgKVVBYaUg2b1p0QWxPSjVnZk5LVmV5YWVjK3l5cjErY29jajB5ZGZ6eHg3
ZGQ2dERwR0tQWFhudXRabUtmZDk1NUswT25JNlA0dXV1dQoyOWFHWWQ4cCsvN3pLVmY5bGxYMkdl
cmV4eUhsc2c3anNPcis2RmZPc3RyVmIxbkRMTFBEckR2RSt2NDNGaEFaYWNOSXJIUUs0cFVSCnhB
ME5YSjFxcXFtaVB5YUJYTGllRUR4TFp1WVlKRWhnWm8wMTFsQjNGSG1odEpxQU93dzh3NldFNUcw
a0tSeE5oSC8vVTA4OWxmbkkKOU5keXl5Mm5tV0pKMmtkaVFuei96enJyck1LSkh6TUxIZ1VIc1Jn
OC9mVFRtbEdlWkg0azRoTkVMTTAranJ4OTk3dmZOWklyUjEyYgpYbnJwSmU4Y3dkSkNzRHZXcXRG
RWRYei85Y3IvWVhpR3ZHY09MWmV4eDJFZUg0YnRlR2laRGFsVERMUHVFT3Y3MzhTQTFPZ053T0Ix
CkpLc1NiclBqcnlRV05KMG1GMlFodnYvKys0MWdyUnVDUjNHZFlGOVdYTTJSUng2cGs1T09GWlE4
aVZLTDBrVW1ka3p1a3BSUUVhZ2UKZmZSUlZYaFJ4bEJxUTVJa1VEUHJyYmVlRVF1UlR0S29teGNa
R2FQaEU0SHFCUG0rOGNZYklac1Z0YTVERGpuRWlPWEh3SnNzQWpscAoxMTEzTmUrKys2NzJuK1N0
TUJNblRsU1huS3pyT3gzclI4N3p5dk5aVmw0ZFpZK1QxWmI0anlRNm5lVExhSnU4TWQ2VHoxSzJU
dTVuCnZEUDJEai84Y1BPNXozM09SNUU5bFNHNVR3eEI3Q0Jva1gyWENUOHVld1RQaTBXbXA3THlM
cTdxL1pmc2k2THY0cncyZGl1cnFtZkkKYTAvNmVJaCtTdFlaU3k1ampjUGtzMWU1M1UzT2VxbTdX
MWt4WlRhbVRqR3N1a09zNzM4ekFlbGxWRlo4YmJkQm4xWDlzODgrYXk2NAo0QUpka1JhM0dQVXp4
OWY4azUvOHBCSE1mMVZDZ0p3RjZoRG9Uc2tzYk41Nzd6M3o1cHR2bWpYWFhOT3N2ZmJhV2NXV1Bv
YXljZXl4Cng1cmYvZTUzUnBLV3FhS0t3a3E5dSt5eWk1WlBlMUZrV1FWbUloS0tlSUZoSFNJMlpv
b3BwbWhWQ3k5UmprQWFrbHdMaWhyVU9obDQKUXpEcnpkdHZ2NjByNDBDdlZrM3JyNysrRWZONTdn
U0VGeTlXSVZieDZUZmlBSkx5Mmt2N2t2ZFZyZHoxMHE1aHUxWXl2YXVjOHk0SQpTY2d0S0YrU3A4
Uklwbm1OUStOOUFPUXhxRWZpZXFOeWRONTU1NW01NXBvcnQybXNrck53MFltcWV2K0ZsTkdxbnFF
VDN6Z1hzcCtTCmJZa2xsOGsyRE9QMnNNdHNIWFNLMkxwRFZYcEJyTzkvK1dBRDBTQWE4c01CZVNu
MkZRUHlneC84d000eXl5eFdWdkR0elRmZjNKWjUKK1BMTEw3ZW5uSEtLbndiMlVJcmtrTERmLy83
MzIrNWdYN0RuMjQ2UkZYYldXV2UxVHp6eFJOdnhLbmZJNUN4b1BwbFZuSDMyMlZZQwpialBQK1Q2
WWpzc1JWeHhOV0NlVElDdHVZRlpXSlN4SnF5UVBnMmFkOWwxL3NqejZJTmszWXFIU2VCbDNqVXhB
TkpHZW1HbzFtWjBFCk5MdFRQZi8ySytkWkZma3NLMW0rclBBbGQ1dnRnaHhBVGtoMktrcDE2NDRK
RXlaWS9QMlRKSGxFTElrVVpSRWdlYmh0V3l4dWxnenMKb2lpM0hVL3ZWUEgrOHlsWFJjcXE0aG5T
ZkVydXgraW5aUDNOZGpZSHlyeDNpc2haZHEwamp4WXBLN1RNMWtHbkNLRTd4TkFMWW4zLwptd25J
eUxFWDdVaVJRViswY1dSTVB1NjQ0K3gyMjIxblphV3g2RzFlcmtQWldHcXBwYXk0VzdUS1kzdk1t
REdaV1pqRkF1SWxTSlk2CmpqamlDTXVrcGhPSnI3MW1pZTkwVFloektQejBqYUFnMmE5OTdXdFdZ
aXVzV0xQYUZIL2E4ZkhISCtza1JDeElsVFNMek5oaTBiREoKajU5WXlUUlROMzFEWDhwS3RXYTJG
NWUrbmpKM1p6WFlwNXo3TEl1MlNteVNOcGxBOFVNUFBiU1NUUEJaUEJtR1kyTHR0RFBNTUlQbApJ
NTBrV1YyelpOWk4wN0xMTHF1Z0QrbmpicC8zaUNSVTFlenFidHVkNi9aYjl2M25VNjc2TGF2c00r
VHhxRTc5bE5mRzBYYmN4M3VuClh6bkw0blcvWlZVbHM3RjBpalJ2UXVnT29mV0NtTi8vWmdLU2xy
Q0krLzBPK25TVHhRWExmdTk3MzdNZ2Y0amJnNjRpcHErcGNwK1YKVFZiWWtvUkNKKzVXeVVPdGJh
d09BdkhaMnU5bkEyUXJWdVg1azJDeGprWEFIL0ZKdDVMbDJRcE1jV1hvUXgwYklTZkZIVTR0SGVJ
aQpaM2ZiYlRlTDBwOUhLUDZzQUZWQkVvQnZtV2gwb2p2dnZMTXZ4S3VzTW4zSk9XVVhMVXNDNmJP
YW9zZkVON3kxeW83MVM0QUlMRW9hCjFwNXR0dGttOTc1QlA4SDdRWUFFV3M5ZTlubXd3STRmUDc2
dEdOQlZzTTVtSWM4ZGVPQ0Jkb2tsbG1pN1BybUQwdUZJNGdZc1kwQVMKSXJwRHViOCszbjlGNVNx
M0VZa1QvWlRsNHhrU1RXamJyRXMvdFRVcXNlTmJMaE5GQjk4TStkN3BSODd5R05KUFdWWEtiTlU2
QmFpTwpMTUNKaTFNZVMvUjRDTjBodEY0UTgvc2YxamxZcExxaDZqbnd3eC8rVU5HdnBwNTZha1Y4
SW9GWUtKTFZlZzFtVGdhV0UzZHkxRkZICkdWbFJ6bTBHc1NIOTVpc2hKbUd2dmZZeW0yeXlpU0hR
Y09hWlo4NnR4NTBBRlFYL2MzSXdrQ0ZhTEVYbXlTZWZkS2VEL0JKL0F2b1cKdnU3RXlYenBTMS9L
clJmL1Y0SjVxeUNTMHkyd3dBSmE5RHZ2dkpOWkJYRUVnQWdNS3AxeHhobm03cnZ2em16K0s2Kzhv
cWhVSkFXYwpiNzc1TkZaaGhSVldNS0pNdDBBS01tOGNnSU04MndZYmJLQnhGL0lGYmJWWVZpbzFN
SjA4SklBdUFESlFob2dmUXBhcEswbndjUHZ0CnQ5ZVl0T1J4dHFtYkRNTkY1QXJrTlhLcENLeTQy
WDMzM1R1K0sySysvOUxQMk85K1ZjOVFsMzRLSlpmOTh0L1hmYVBwdlZPVnpJYlEKS1lqN0pHNE5R
SVp1VkxYdUVGb3ZpUG45YnlZZzNhUnRBTThUK0UyQUlVUUF1cmhFQkhzS0JxZjRFN1lwMHlTQWts
VlF6WjZjMVJEUQpsMUMrQ1pydmhWQmNLSnZKRFg4Z2ZBRVgyNDM0Q0VQZit0YTN6RlZYWGFXb1lB
U1hmZk9iMzlUSlFMZjdmWjduWlZOa3drUUFQd0g3ClZkRDc3Nyt2R2JuSjBnMDZXUlloUndRUUR5
cWh1QUtLa0VVU1k2TUlYK0x1WTVpME14a0ZacGhuQmhXdGFtSnlXUlhOTTg4OEdnZ08KOEFQQnY0
NllVRExKSW5CVmZMbk4vdnZ2NzA3MTljdmlBZndEdk1FUmt3dXhXT2lIM1IxTC9yNzIybXVLaXBX
Y0dDWFBwN2VaTkRsRgpvZE83SXViN0w5M21mdmVyZW9hNjlGTW91ZXlGLzFXTXd6cS9kM3JoVFpG
cnE1TFpFRG9GM3paeFJUSjVDM0R1K1VQcERpSDFncGpmCi8zOURBRGtPTjc4RHp3RXNBUWNkZEpD
aVhWMXl5U1hCMFp6SXM4R2tBaFFjTVZrYUlONXV1ZVdXVEw1aUhaSGtkcXJ3WlY3UTRTREsKeURU
VFRHTk9QLzEwZ3pMems1LzhSQkhCT3R5aXA0QUNUUkx0Sk5NenE3V2YrY3hua3FkcXNZM2kvT0tM
TDJvdWlTb2FSRTRXMEwrUQpGVmFaczRnWEloQzhnMHFUSjAvV2lYRmUrK24zeFJkZlhCVnlaRmVB
R3pyQ1crZVZrM1djajFZU2lRb1lVbFlMNzdqakRrV0Z3eElnCjVuKzEzcEd0bkltd1Q4S3lRLzA4
bnlPMmp6bm1HSVhGSnM4TGJTbER3UHd5anJCQU1pWjVabVJwenozM1ZDUzNyTEpCZndJT0hObnEK
UkZoSHI3dnVPaVB1V2dhOCttNFUrLzNYclgxRnpsZjFESFhxcHhCeW1lUjFqSEVZODcyVGZQWVEy
MVhKTEcydldxZFllZVdWelRycgpyTlBWR2xzbjNjR1hYaEQxKzkvUjRhMDVHWlFETXM1YVB1MWxL
cFlYclFZMlM4NE5LNnY4Vm5KYWxDbXU1M3ZGdkc0Rjl0ZSsrdXFyCkdsd3RMaGk1WllCeUl3cUls
V1J0dWRma25TQkE5ZUNERDdheWVxdHhMdmp5RnlGeHRiSXp6VFJUa1V1alhrTncyT2FiYjI0Rmly
UXYKL2hSdFBPaGtvS2ZKQzdqdEZyRUthWXpBVmx0dFpjVWlZTVU5eWNxcWR0czEvZXo0a25QcUxs
cVdRQmxiVWJKYnpSVTQ0UlpZQWVBRgpJTG9RYkUvQXRLeXVXK0tTaXRJLy8rZWY5dkI3RDdkdi9m
V3R6RnNJS2dSQVFOeWNOQ1pMVnZTc0xCQllVYXpicnBlOE01YU02R0twCmFEdmVhZWZYdi81MXA5
TjZqajZUU1VIbWRZd2Z5VkdTZVM1NUVGa1FhNkhHVFpHOVhTYjh5ZE82ZmVXVlY5cExMNzFVdDhu
K0xwWTkKSzZ0ckk2N2pBSWh2eEQ1MTRyTzRyK2g1NHNmb282TGs0LzFYVks2S3RLbWZzbnc4UTE3
YjZ0SlBvZVRTOFNIR09BejUzdWxIemh4dgowci85bEZXbHpJYlNLZEo4U08vWFFYZndyUmZFL1A0
M1FlaHBDWXU0MzgrZzc5WmM4ZSsya2dXNTIyWGV6Nis2NnFwV1ZsMTFBcEtHCmxYT1ZpVSsrRlpl
WDRPMTc0SUVIYWpzQkFaYjA5dHR2dCtMNlkyVWxYQlU2SmxwVkVvb2V3Y0JNNUJ4ZGZ2bmxWdHph
TEM5Y0pwS24Kbm5xcTloWEtNMkFDblFMbVhSbDV2ejdsdkVoWjRwcW42RXdFOXptQ3A2REVFWHdQ
bjVkY2NrbWRyQlBrWEhRaVMxbi84Ly8reHg1MQovMUgyNlB1UHpwMkFnR0xHT0tTdEFBa1F5SmhI
SjU5OHNrNkM4czRuajRzVnhYYWEzTHRyeXlLM2lHWFJFa3dMRUFFVERFbmdxZHVTCldORlZvYi93
VjZ3NVZuSi82S0tDSkR4dE8rOTJ1RzZaWlpaUnZpUHZlWFR1dWVlMlVNbnlydWwydk4vM1h4RzU2
bGEzTzErMnJINmYKd2RXZi9xMUxQNFdTUy9mOG9jZGg2UGRPV1RsemZPSzNiRm0rWlpZMjFVR25p
S1U3VktrWHhQeitOeE1RSkxzbVZIYlFweDlEWEpTcwpKQnRNSHc2eUw1bkZkZlU4UzVuakF5aEo3
YXlZNE50V3BZTTBUQ3FSb1B6YVRrQnV1dWttUmZxUmVJeFE3TEFva3NnZUNxMmpmZmJaCnB5MUhB
NGhGVER4WXBRZVJoUDEreWFlY0Z5a0w2ME0zUmIwZmxLOFAvdThIZHZlZjdtNS8vZTZ2N1lGM2Rl
YkhoeDkrcUlwN041NkIKU2dWL3V4RjVOTEFjL3ZqSFArNTJxVTU0c0lEUXo3U2pGMEtKNGowaUlB
a0twUXVhRmZ2WFgzKzlXa1NTME0yVXk4Y01LRjZzRmxrRQozQ2pXTkluVnN1TFNsM1dKdDJObDNu
OUY1S3BvUTh1VVZlWVpPcld2RHYzRVJEeVVYRHBlaEJ5SG9kODdaZVRNOGNmOWxpbXJLcG10Cmcw
NFJTM2VvVWkrSStmMXZKaUJ1eE5YZ3Q4eWdUemNma3lVUXZOMGdhZFAzVmJuUHFqTWZ2ckZqeHlx
MmY1NWxwTW8yVVBhUlJ4NXAKWjV4eHhxcXJHWmp5NlJkQkFtdkwxWUNMekpaYmJtbHh2MEpaeEVy
Z1hJUDRpT095MVMvNWxQTWlaYkdTZnNJSkoyaHpnWVhOSXFBSQpCVWt0NjlTSVk3aGNYZkNMQyt4
K2QreG4zL3ZiZTNiU3k1UHNUMS9xRGc4N29xQ01BNHhaSUpuemlBa2dycFU4dHdTNEZuSk5RdEdq
CmY1azByTERDQ3VybVJiNGNDUnJOcTZaMTNMbGI0WDZWSlBoSnVWa3dvMHhTMGdTMEtwTVk4YlhX
eFllc2E5TDNsTmt2Ky80cklsZEYKMjlkdldXV2ZvVnY3c3ZvZ1pEK0Zsc3R1L0VpZTl6RU9RNzkz
K3BXejVITzc3WDdMcWxwbVhmdmNiMmlkWWhoMWg1amYvODdSZnlLRgpEUTBlQndncUpTaWJ3RytR
Zk9wQ0JQcEtmcExvYlpwenpqazFTTFl1ZkluZER2cUZJSHpReXh3dHNzZ2lSdktrR0FMVUNCS1d2
Q251CmxBWVpTNjZNMW43ZE4zaUd1ZWVlMjRqTGg0NEx0dFBFT0FIdXNRaE5lbVdTbVc3SzZjeHBh
NXhtWG4zL1ZYUGJ5N2VaODljNXY4aXQKSGE4UnR6ZHo3NzMzbW9jZWVpanpPcEJhSkdHbEFYYWFv
SEpKWWxsb0xJbHZ0bDYvMldhYkdmNGsva1dSdmlTdmhvSkV5R1E4c3o0TwppcEpxWk1LcC9FdGVK
REZVR3FSUFc5S1VETGpubkh6Z3pEWFhYR05BR3dPTkszMCtmWC9aL2JxKy8zcDVyaERQa082SDBQ
MFVXaTZMCjh0L1hPQnlVOTA1UnZuUzdMb1RNcHRzUVdxY1lSdDBoNXZlL21ZQ2tKWG9JOWlXWTFr
aVc0Vm8rU1IwbVJGdHNzWVVSTjdCYThpZFcKbzJhZmZmYk1xcWViYnJyTTQ0TjBFQVVhSlJ1VUwr
Q2FzK2pUbi81MFZ3aEdkOThhWTlZdzQrOGZiMzc1eDErYUdUNC9nemxsdFZQYwpxYjUrbVZpQVND
VnVWYnBvc05oaWkyV1dBNElSZVd0QWpaUFlGU1B1bFpuWHBROHlpVWlTV0ZBVXBZN0ZBSlRPVGlR
SlFqVmZDRERRCkRwMExKQmh5MTREd0k3RXpuVzdYYzUvOTdHZDE0dEgxUWs4WDFQbjlWL1FSWXp4
RDZINktMWmZwdnZBOUR1disza2svZjluOUdESkwKbTBQcUZNT3FPOFQ2L244Q1UxWlp3V3Z1OThN
Qk1Qa2ROZDNpT05IOERoc0hmTXA1a2JMRTNVZ1REQUxsU2w0S2lQRWxmclZxYlNBSApEQkRES0NE
aU5xR0tQYXRDVlpNZ1dHbDd4TTFKSVNDQnJSWFVITy9WQ3NLY1dYdnR0UlhudnAvQ0pWNUxZVEJw
SjFZeUVtS0tlNTRtCjdSSVh2WDZLclAwOVJlU3E2RVA0TEt0b25ZTndYVjNrc3FweEdQcTlZL3JI
WkFBQUlBQkpSRUZVNDFQT2ZKWTFDTExZdERFY0I1S3kKMVNRaURNZjMydFJFc2ptU2o2RndOZFJ3
SU0wQjhsUU1FMkg5UUJsSVdoWk9PKzAwUStJeDhtN2NmLy85Um54NzFRV0x2QlVMTHJoZwo1UWtw
bVF4aHlTQVpwcUJLcVFXa2lza0gvVmpVdFN5dnozZllZUWNqZ1lxYXVYeXV1ZWJTcEpXOFE3RENE
Q0lOdy90dkdKNmhEbkpaCjVUaXM0M3NuNW5nZEJwbU55YjlRZFlmOC9qY1RrRkM5V3BONlNMWW55
RFpHWVBMTWpqdnUyRXhDSXZjTGJnZ2tvYXNUL2VVdmZ6R0MKRFY2N2R2WExvNldYWGxwalAwaGs1
NGhWZkt3Q0pNMWpSVWFnajlYRjZJVVhYakJqeG93eGtzZkNYVnJKTDhvN1dkYVpnT0QrVlNXVgov
YURnK3NXN2d2Z1JrZzF1czgwMmFnRUo2ZnJnaXovRDhQNGJobWVnUCtzZ2wxV093enErZDN5Tm8x
N0xHUmFaN2ZXNSs3MCtwbDRRCjh2dmZURUQ2bFpBQnZBOUZsejlldXZodTc3ZmZma2FTTXczZ2t3
eFBrL0VURnRRakkza1JESzRBZFNCQlZ6S0NscVJ4UkZnRUJQdTgKRHMzcXV3MVlQcGhVRU0vZ1NH
Q0d6UUVISEdBRTdjWjgvZXRmMThNQ2dXc2tMNDI1N2JiYnpMYmJidXN1SGZoZkpsVStYRHFacUFt
YQoxc0R5WXhqZWY4UHdERTZBaGwwdVIvdDd4L1h6TU1tc2U2YXFmMlBxQlNHLy8wMFFldFdTVktQ
eXA1cHFxamFMaDBDU21ubm1tYWRHCkxheXVLU0FnRVRpNy9QTExteEQrL1VXZlpQcnBwemVTdU0w
UUdKd095aXhhUmhYWFNZNFd0UkJJc2o1Rld5SjJRaktsVjFGVjVXV0MKOXZQODg4OGJnbXdkTVJr
aEtCM0ZQT21UeW5rc0VxeGVEZ3Q5OFl0ZmJGRGZwRE9INGYwM0RNL2d4dFd3eStWb2YrKzRmaDUw
bVkyaApPOFRXQzBKOS81c0ppQnNsbytRWEpSTDBHOXdxZURGc3Z2bm1sVDI1Wk04MnUrKyt1OWJG
S29qa01OQS9YTUNBQ1g3aWlTZk14aHR2CnJOZFUxb2gvRlR6ZmZQT1ppeTY2U05GNEpBTzd3WmU5
TGlTWnhzMTY2NjJuYm5GMzNIR0g4b3VKVWd6Q0lpWlk3a1l5bmh2Si8yRUkKMEFiMWFOQW5xc25K
UjVLdjZjbEg4dHl3YkV2ZW5kTHVMcjN3UXZJN21Ibm5uVGZ6RnVMT2dIekdIUTVyVXllU0pLWmRy
K2wwZjlhNQprTysvclBwOUhQUDFETEg3S2JSYyt1QjlyMldNNXZkT2tsZStaRGFHVGhGTGQ0aWhG
NFQrL2pjb1dNbFJFbms3cVF6NWNKbm85RGhNCkNKaUFWRWtvL0pMY1RWZWVlYlp2Zk9NYjZtZVBp
WThBUGNtOGJjQmNsMnpPWnYzMTE2K3lLVm8yZ2JTNEZ0MXd3dzFtMDAwM3JieSsKckFyd2U0WVhy
SEE0QWtrSUY2SG5ubnRPZWNHa0RlU2gwTVFFRWZjalloT3FKSjl5N3JPc0twOTVOSlZOcmc4QzZv
RndmdnZ0dDNYUgpnVjhtc3J6WDNBVDM1ei8vdVpsNTVwbHpXYlBUVGpzcGNJQmtzVGRUVGpsbDdu
WDluT2oyL3ZNcFZ6N0xTajVydDJkSVhwdTFQUWo5CmxOWHU1bGcyQjN6S21jK3lrcTB0SzdPeGRJ
cXFkWWM2NkFVeHZ2K05CU1E1T2tiUmR0V1REMWpKQjQ3VkF4UVJFcWlsRTEvaEZrTWcKcThzdjRJ
UDlrbTFaQTJRSkxrNlQ4MThINVNnV29aaUJ5RVFTTHY1WWhaUXMzSW93aEJWRU1zV2JQRXp1cXR2
ODVwdHZxckpZZFQyeAp5OGNDaHdzV0NSWWI4czhCNUJ1M1FzWTlRZlpZT1JkZmZQR1c2eU5qbEVr
dTFqVldSdk9JMkp5Tk50cElYUUJadFBDWi9ETEUreS92CnVYd2RML3NNZzlCUHZuaFZoM0thOTg3
L3VrR1c2WXNZT2dYdHJWcDNxSU5lRU9QNzMzeUJ5NHlHNXQ2dUhGaHh4UlZ6cjNucnJiZDAKaGRN
Tjd0d0xDNTRnaHdNcnJlKy8vNzZpRzZWdnc2MElLbElmOFNLenpUWmJ1Z2d2KzBDL3Z2amlpNFlZ
bkZsbW1VVlhpMGxDNTRqawpjSmhDZi9uTFg2cXIya0lMTGFRd3JWV2pEdUhyMnMwdHhyVnhrSDl4
UHlUd0h3V3NxajVPOHdlNVBPU1FRelFCNW9rbm50aVdkVDU5CjdhRHZreXVFak81NTlNNDc3NmdG
RkJTeWJvU2xjTnk0Y1FyUWNQTEpKNXRWVjExVkp6UGQ3bXZPZCtmQWFPeW5tT013eG51bnV4UU0K
M2hWVjZCVEVYMkwxWVZFd2EyRXFoTzRRV3krSThmMXZVTEFHYi93TlRZdVpjVHNFb2pJUGhXc0hz
TEdMTHJxb0tuaDU4UjNPSDVmZwp4MDUwMVZWWEdRWmpsYlRBQWdzb0F0T3ZmdlVyODUzdmZLZFZG
VHpCUlF3ckRhdjBXSTE0K2YzOTczOXZYVlBWQnBNaUprUkpBcTRXCnQ2d3JyN3hTQTdtVDV3WjFt
d2tvU2YvSWFrczI4UWtUSmxRZXBJM0xJY243cnI3NjZsRmhaZW9rRzMvNHd4L1U2cGwwOCtoMFBl
Zm0KbjM5K2MrQ0JCNXFQUHZwSWM3ZUVHQS9kMmpUczU0ZXhuMktPd3hqdm5XR1gwZlR6OWF0VHNH
QnkxRkZIbVdlZWVTWmRwTzZIMGgxaQo2Z1V4dnYvTkJDUlQzSnFESVRqdyt1dXZsMTdOSkg4RDdo
emJiYmVkb2hkaExjZ2psSG4rOHZ6SjhVOC85dGhqelIvLytFZGRhYzByCng5ZHhMQjI4K0ZaTVdJ
bVlkSkJuZ2JZUUJFNThESk1ydHdManErNnNjdkROWjhXWkNSMElVU3V2dkxKbUJvZGZUTnFBcnNV
ZnYrcjQKcEt5MitUeUc4dnE3My8xT0E2WHZ1dXN1elhGeHl5MjMrS3dpc3l5c2F2QVVsME5lOWdB
eFZFV01MZHo3Nmtqd1BwbVRwV2diVVM3SQpuZzBQODhadzBiS2E2N3B6b0lwK3FvTmNoaHlIU1M3
SGV1OGsyekRzMi8zcUZFdzhIbm5rRVVOY1doYUYxQjFpNlFWUnZ2K2lURFJVCkV3Nkk0RnYzVjVN
bVZkb004UkczVHo3NVpOOTFUSnc0MFo1MzNubDYvN3Z2dm10Rk9iWmlTczB0NzczMzNyT2l5R2Vl
bHlBd0s0SHcKVnR4eU1zOVhjZkNhYTY2eGt1Q3RpcUw3S2xPUWk2eE1NcXpFN1ZpWjFObS8vdld2
YmVYSXhNd0tSSzBWOTdDMjQ3M3VPQm5udHl6MQpVcGFZMTYyNHV0blRUei9kQ3F5d0ZaUVJmY1lQ
UHZqQS92ZC8vM2ZacHJUZEx6anVWaFNPdG1QME5YWHZ2Ly8rVnR6cDdBWWJiTkIyCjN1ZU9mTVNz
eEdGWWljR3dZc1h5V1hUcHNnUnd3VEoydTlIRkYxK3Nsd2dhbGhYM1NudnR0ZGQySE4vZHl1dmxm
Qzl5MWExY24yVjEKcTh2bitTcjZLYlJjeGg2SDlFZW85NDVQT2ZOWmxrK1o3RlpXdnpxRmVDSlk4
WHJRdjZ3NlF1b09zZlNDR04vL0pnWkVSbHBEL2prdwphZElrTStlY2M2b3JFYVYvL1BISGhwZ1By
QXY0NFdMZUY4WFBrSENuWHdLcUZnc0lyaG40Ylo1d3dna2pBdDNUWlR0VGF2STQ3a1ZZCkdmREJ4
SklTaXM0KysyeTF1TGo2Z0IxbFpUZkxCOVZkVStYdkY3N3dCVU9iYnJ6eHhzeUFYOXdYdUliVisw
RWtMQTc0K3U2Nzc3N2UKbTMvZUUrZVpyUmJleWt3ejVmK0NIMkN4SXNZRWRETUhOb0ExaTN3cXhE
NWcrZklCdFV5ODA1ZSs5S1VSejBPdUcyQk9WMWxsRmEyTAo1S05saUZWakVsTGlOa1hacTYyMm1w
bDIybWxIRkFtU1NpY1FCVmFCV2FVRWxLSWJ3VGVaZEJoaVJyQzhkWE9kN0ZaZWMvN2ZISWpWClQ2
SGxNdlk0aE9NaDN6di83dUhoMjZwU3B5Z0NUQk5LZDRpbEY4VDQvamNUa09FYnA3VjRJdEJ2Rmw1
NFlWVlltR1RnMmdNaTFnd3oKektCQjRBZzdmdmpPcGFLZlJoTXczUXRjTFFwTlVybS81NTU3ZEFM
QUJ3TGxzQisza0g3YXpUM2srNkRlbFZaYXFWWEVRdzg5cEw3dQplVEVzclFzcjJnQVdtUndOZVdo
REtLQW92TUFwRHlMaHdvUHk2NXZPZWZ3YzgrN2Yzalh2LzE4QlAvalhCQVE1WXdLQ2pBRTJBR0lS
CnJrUFhYMys5amduWEJreitTYkFCc1pLNFUxMS9nWWE4OU5KTE5UNG42K0taWnBwSkQrTlhYSWJ1
di85K2piMVljc2tsZGZKSnJCV3UKYTR6blJSWlpwSzFvRkZzeXpKTllrd1VHRmgyU0N3KzhDNWdF
NHVvSXBHWW5ZckVDZDhTNTU1NjcwMlhOdVQ0NEVMT2ZRc3BsSGNaaAp5UGRPSDZJd01MZUUwQ255
bUJGS2Q0aXBGOFQ0L2pjVGtEeUphNDZYNGdDcm95aElLR0NzK0hiQyt5OVZVUTgzczVMS2kwUmNP
M1NsCkg4Vnd2LzMyMHlEcmtPaFArSGd5K1FLZU5JbHNCU29OSytRa2lveEJRSjN5bDBXVEowL1cz
Q2trcmtTNUhFVDY5YTkvbldrdDZQZFoKL3ZuLy9tbU91TzhJczg0ODY1amJYcjdOekRWZGUzSkxy
RmtPWmhhbG5LQjNGM2lOVXNLS0h0YUx2L3psTDJxbEVKYzM1WEdSbFg0KwpWT1N5U2FLbnBaL0R5
YlJUK05Mbmsvc0VkMmRCVnpObXdLZ1hGelVOMEFTRjZ0WmJiMVVVTHlaT1gvM3FWOXNtOWNzdXU2
eE9UckFtCjh1d29EY2lNVzNnQUNZam5aUkxTalFnS2JhZ2FEc1RzcDlCeUdYc2Nobjd2VkNNeDhV
dU5xVk9FMEIxaTZ3VlJ2djlaL203TnNUZ2MKa0NFK3FtSkFRbk1abjM5ODcrR3pJRTlac1VDRWJv
TFdKOHFqdGtFc0htMzF5K1RJTHIzMDB2YmdndzlXSDNseGRiTGlxbU92dU9JSwpLeG1rMjY0TnRV
TnN6RUVISFdRbE9ONGVkOXh4WG56d2ZjcDVMMlVSM3dJdkhZbGJvS1VQaU1zNC9QRERyUVNpRjM2
K2lTOVB0THZjCnRvdjl6WHUvc1kvKy9sRjc5Yk5YdTJKSC9FcFF2OGJWU0JLdUVlZEVpYmMzM1hU
VGlPTjVCMFI1dDVLZ1QrVkhYT0pHeEprazd5UDIKQS81MGs1MDc3N3pUaXR0ZDh0Yld0aUN5V1Zr
dHQyS3RhQjFqUXlZWUZyL3BKNTU0b3UzNHNPejBJbGZkbnRsbldkM3FHb1R6c2VReQoxamdNOWQ3
eEtXYyt5eG9FbWV6V3hoQzZReDMxZ3FxLy80MEZSRVphUTZPREE4end5YnhPMHArMTFsb3Iya09U
bEkzVmExWWhrOFRxCk9LNHR1TzZBT0FVS3pYLzkxMytwK3c2L1pJWU9RV1NydmU2NjZ6UmpOWEVw
dFBPd3d3NGIrQndob0h6Z0JvVWIyVWtubmFTdVR5VE0KazJCd2pWRTY1WlJUTkJFa2lTSHhWYzhq
bVh5WU56NTZ3MXk0N29YbTNZL2ZOY2MvZEx5NWRMMUw4eTVYU3dkOW5vWGNoTnRmVWRjLwptVWdZ
VU41d240SElpNUhsbCt3YWduVU45SlpPQ2V1SWY4SzZkZXFwcDdyYjJuNlJPMksyY0w5S0VtNVJy
RWpLaHpsNXVObHVPTkNWCkE3SGtFb3RqakhFWTY3M1R0U09hQ3dweklJVHVVQmU5SU9qM3Y5dk1y
emtmamdNeUduVEZrdCtHR2c3QWdheFY4MEhuakU4NTc2V3MKT2VhWXc4ckV6MHF1RXlzWjUwZFlP
MERERWhjaEs1UFVqaXorNnovK2FyODM2WHQyL3p2M3Q0ZmVmYWg5NXovZjZYajlHbXVzb2RZVgpk
NUVvOVNQcWR1ZTYvUjU2NktGMnFhV1dzbWVlZVdhM1N5M0lMVHhQRm9IUXRlZWVleXB5SEphM1BC
S2x6VW9HWnl2SkU5c3VPZkxJCkk5VTZoM1ZrR0trWHVlcjIvRDdMNmxiWElKeVBKWmV4eG1Hbzk0
NVBPZk5aMWlESTVLQzFjWkQxZ3FSc2ZRTEd5NEdHYXNBQjV4OU8KVTVwdXFVR0hORTJvaEFNKzVi
eVhza0J1ZXZqaGh4WE5LU3NCSm5FT3hHU1FzVndVZlMvUExpNUtpaGlGRDdHelZtQmhJVENjbkM5
VgpFa0hnV0NxdytDVHB2dnZ1TTd2dnZydkdabUJ0Uy9Jd2VSM2J4RXhkY01FRkdzc0JVQU50Sm40
Rnl4SEI2YjBFemFmTHJ2TitraWRsCjM4VSt5Nm96ejRxMkxZWmN4aHlIb2Q0N1B1WE1aMWxGNWFL
NWJuUndJQ2xiVFNMQzBkSG56Vk0ySEJqMUhKRDhKUnJzblRYNWdEa2sKSThUbEREY3RINFR5RHFE
QWV1dXQxNXA4VUM1QjVpanZWUk9CM3BLM3BWVU5pUWxCbFFMOEFKY3JzV0owbkh4d0l5NWNFaTls
SG4zMApVYlBNTXNzb2Foc3VZOEFJazltOW9ZWUR2WElndEZ6R0hvZWgzenU5OWtkemZjT0JhQnpB
QXRKUVBUZ2dRdEM0WU5Xakt5cHZoZmplClc5eHBCS0swYTEwRXkrTzJVRFVKdXBFOS92ampyYUNE
VlZxVlR6bjNWWmJrazdFU28ySEYrdUh0MlNXZVI4Y3pia3hKSXVtaDVNR3cKSk5vRGFJRGtiTGc1
Q1dxY0ppMUxYbHRtbThSYUJLcnpiQkx6WkdVeVlXWFNZTVdDMFZleEpQdDgvUEhITGE1cXcwNis1
QW8rK1N4cgpHUGdlV2k1amo4Tk9mZWJ6dmVOVHpueVcxZW41bTNQdEhJaXBGOFQ0L2pjdVdETFM2
a0pKMDVTSVpWMmExYlNqQWc0QVQwb2dQSEM4CnJJZ0xDcE1oYVZZV0JLdjQrNnNyRERsVHlKOVNK
Wkd3N2ljLytZbDUvdm5uY3lGNXk5YnZVODdMbHZYTU04OFlRZmZTL0JhNEl3RU8KNEl0d1ZTS25p
aWp0SXhKa2tvZ1ROeWpjc1FqNmMwUmVHNG5OY0x1bGZsOTQ0UVdGeWFVUWNyZEkzSXY1NWplL1dh
ck0wWEp6V2JsSwo4c2xuV2NseUIzVTd0RnpHSG9kWi9WVEZlOGVublBrc0srdjVtMlBaSElpdEY0
VCsvamNUa0d3NWlISjBtQVk5Wm1jSjlsV0ZCemVPCk9oQlptTE9RaUdpYnJPNXFzc1FxMjhxa0Vo
Y2ZYR0dJTVNDWGc2eDhhNlpuRkVUUWpmZ3c0YkxqQ05jWE1tYVRIMFNDS04zaHluNUIKZ2lLelBF
bmdxc3JkNGxQTyt5bkxvWHlRQjJhNjZhWlRseXNRU0pKbFZjYmdWTUhFblJBZlFoNE80ay9JTnUr
ekhTZWNjSUxLOWM0Nwo3NXlxdVpwZHNPeGRyRXMxTllRcE5ka0haUmVEZkpibDYrbGo5MU5vdWV6
R3Q2ckhJZlZYL2Q3eEtXYyt5K3JHKzZMblkrb1VWZW9PCmRkSUxRbi8vRzdnbDZmMjZrQXpFbHJt
K0xtM3F0eDNrV0JnN2RxeWRjODQ1TGJrRXVwRzhYTHBkVXZxOEtOWldra0paWEVuRW1tQUYKYWxi
elAwakNOQ3ZXQnl1S3ZyckRsSzZvUXdINzc3Ky9GVDk4S3dxblhyWEpKcHRZV1pWV1Z4d09rQU9F
WEE4UWFFbVNUZDdTN2xBawpzUUZXRWlKV1dwMVBPZmRaVnFVUFBVb0taMHpKQk5wS2huYVYzMjZQ
RGM1OEhrbXNRTjZweW8vN2xDdWZaZmw2OEdIcEoxLzhHSVp5CmZNcVp6N0o4OFRhbVRsRzE3bEFY
dlNEMDk3K1pnUGdhSFI3S3FlT2dML3RZMjIrL3ZaVkFXQ3M1TFhLTHd1OHh4QVFFWDJEODRNWE4K
eVlwcmpEMzc3TFB0czg4K3EvRVZrZ1hhU3E0REs5bW9jOXZwNHdRdjBibm1ta3Y5L1o5NjZpa0xS
R015dnVQM3YvKzlsYndVOXNNUApQN1RiYmJlZFhXNjU1U3FmRkNXZjY1aGpqckVycnJoaThwRDNi
Wjl5N3JNczd3ODZTZ3NVRnh2N2xhOTh4WXBWcVNQY01KT1A4ZVBICjUzSnBsMTEyMGNXTFRqREJ1
VGVYUE9GVHJueVdWZkt4Mm00ZmhuNXFlNkJSdnVOVHpueVc1YnRiWXVnVVZlc09kZEVMUW4vL213
bUkKNzlGUm9ydzZEL3ArSDR1QVcxWkV4YlVvc3dpeWYyNjIyV2FaNS9vNVNNQXZsb004SXRnM2ph
RXRTZllzRTVCUU9RM0l4bjNiYmJkWgpTZkJuSDNua2tSRk41UmhXQ0JTNHFpZEU2Y29QT09BQXRW
eWxqL3ZjOXlublBzdnkrWXl1cklrVEoycXd1YmpldVVPNXYweEV5Yzh4CkRFU0dkSEtRQ05wWDV1
T1FuZjNiMy82MkZmZXp6UE1jSkVnZmk2WEU2R2p3ZSs2RkZaendLVmMreS9MOXFJUGVUMFg1TVJy
R29VODUKODFsVzBUNHFlbDFvbmNLMXEycmRvUTU2UWVqdmZ4TURJaU90TGxSSHY4c3FlUVBzS1Q2
SGQ5NTVwNWZnNmgvKzhJZWE1MEZXVGx2Qgp0OTNhVDdBMVdaNHZ1dWdpcysyMjIzYTczTnQ1WUZE
eCtTY2ZCSEVJODg4L3Y1Wk41dW5kZHR0Tk0zUExSTVNzdnZycVp0OTk5OVVNCjJONHE3MUFRZ2RH
eWVtMWtaYnJEVmVWTytaVHpYc3FTU1ovRzBteTExVlpHTEV2bEhxTGczZVFBSUlzdWtMZkVSSjEr
K3VrYWgwUTIKNkRSZGNza2xDcHQ3OTkxM0t5QkIrdnlnN2YvODV6ODM0a0pvcHA1NjZyYW1rOUZk
WEE4TjR6UVo3OVIya2V6QWo1MTIya2tQQS9zTApDTVBtbTI5dVpIS2V2dFQ3Zmk5eTFhMXluMlYx
cTZ1Zjg0UGNUMFdmTitZNERQWGU4U2xuUHNzcTJrYytydk90VTNScVV4VzZRMnk5CklQVDN2N0dB
dU9sdERYNUYySWNtQnFRYk8wVVJzL1BOTjU5OSsrMjN1MTFhNkR6dVZEZmRkSlBHVUJTNlFTNEMv
cFFZQzBGK0tIcEwKNmV2d2E4ZnRhNTk5OXRFNEZFbnVabVh5b1M1WHYvclZyelErUkpDUnRCNWlW
U1FIZzhvRXNLMjc3cnFybFVSNnBkdlFxUURpVXlUeApYS2RMU3AvektlZTlsb1ZiajN4Y0xieXVr
dWhuNEVaeDY4TWl4MG8vN25XU0ZOQk9uanhaczRoempmdVRqNW02S2w1NDRZVmVvWGlyCmZNWit5
b1lQZ3ZTaTFvMXU5Mk1CU1JLOEluWkJGZ3NxdHhUMUtsZkpkcWEzZlphVkxydXEvVUhwcDI3UFg1
ZHhHT0s5NDFQT2ZKYlYKclk5OG5TK2pVMkNwRlpSQS9UWVhhWTl2M1FFNXJZTmVFUHI3WHc5NElw
SDJoa1lIQjFqOXhOSWdpcFphUGxodEwwT2lTQ3FjNmFLTApMbW9XWEhEQm5ySkxTOEMzb2ozUmxo
QUU5Q29JUVNTRCs4VXZmbUZZaVo5bm5ubk1LcXVzWW9CZkZST3Z1Znp5eXhXMWFONTU1OVZrCmJ5
Qi9pTUtxbWFoQjRnQXRxMHFpZjJhYWFhWXFxNGhhTnZ5R3FueEcrWUFwa2hqd3lXUVBKeG1ndVBr
cGlwbE11STFNSm8zNEZCdjUKNkNnOEw2dU5yRHlSMkErclFITDFzUXl6U01DV1IvLzg1ei96VGxW
Mi9Mbm5ubFA1WFhmZGRWdVdqVjRxUXpZbE5rb3RoNS81ekdkNgp1Ylc1dGdjT1ZOMVBvZVN5THVN
UTFvZDQ3L1RReFVOMXFRK2Q0ckhISGpOWXFyQzBGaUdmdWtPZDlJTGczLzhpczczbW1qQWNFTUVm
CmFnc0lxODZzNUlzU3JVaFVaYmtxTHd0NzlORkhxeVZEQm80bE9JMlZpU0wwZ3gvOFFKTzBFZnd1
Q3BFVnQ1Y2l0NVcraHBnWGlKWGMKRlZaWVFWZkhzV29RRU9xSTFYQmt3UVhmc29MTzg0VWc0blh5
L1BaOTFlOVR6bnN0UzF6K0ZBVEExN1BrbFlQMUNnUTRWclZJN0VoUQpkaEtJZ1Q2V0NhaktLekZJ
NG9yWFFrYkxLN1BYNDBjZGRWU3JUT0pMaUMwU3R5WXJiazFXM1AvVTh1ZGtyTmV5ZTcyZThTYXVX
RlltCjJvVnZkUllRVmdldnZmWmFlOTU1NTlraXNUU0ZLK2h3WWE5eTFhR28xanVkTXV0T0lmb3Bw
RnpXWVJ6UzV5SGVPNk5SWm4zcEZFOCsKK2FRVnlQdENGcEFxZEllNjZBV2h2LzlUaU5BMjFIREFP
d2ZFMVVSWEtpa1kvSE53MzA4NjZTUWpDRSs2eWk4QnFxWHJYR2loaGN6VgpWMSt0ZnZWLyt0T2ZE
S3NTUlZaR1JjRTJFbXlsRmhnc0p5Um5rNEJZSXk1aEdndVNsUXl3ZEdQL1ZZQjhFTlV2SGw5MlNO
eWRqQVRoCm02bW1tc3F3K2pERkZGTVl0em9OVmo5NVNjamhnTDhwS3pSVjVlYjRWL1AwSisyem56
dzM2TnZ3ZU82NTUvYitHTGU5ZEp0Wlk4d2EKNWpPZit0K1YrUzkvK2N0bWp6MzJNQ1JkdStxcXF6
U2VZZmJaWjIvVis5V3ZmdFdJZTUxYUJHalRBdzg4a0ptRXNuVkR6Z2F5Z3N4awpFWEZGMDA4L3ZW
cmQyRjVwcFpXTVRIcU5RRDZxWlVZQ2tOV2lRQXhTTnhJd0JGMGRKSS9ORERQTW9HVmgyZWxHeUx1
NEc1cWJiNzVaCngrckdHMi9jN1phMjg0eFZjdUZzc2NVV1JoRGoyczQxTy80NEVMS2ZRc3BsSGNZ
aHZSVHF2ZU5QSXVwWFVwVTZCWG1naWxCVnVrT2QKOUlLUTMvL3NMMWVSbm1pdWFUalFnUU1FaE9O
aWdybjk1Sk5QTmdLNWFVNDc3VFJ2V1o2cEdrVm93b1FKSnZsaTZ0QWtQU1VvV2RvRwpzbjB6K1lB
SWFuM3d3UWVOb0ZLWnIzLzk2eHFvUEdiTUdEM24rOTliYjcxbFhFQWtaZU5TaFN2V3NjY2VxMGtJ
VVNaSkFnZ3h1Y0lkCmg0QnAvbDU5OWRYS0p5Q0NCbVp3OWNvaitoR1hOUklwVnBtME1hLytzc2RS
cEFVR3VXd3hiZmRmLy96MTVyRTNIek56ZjJsdXMrQU0KQzdiT2pSczN6c2hxbWZZeEUwZjYzazBn
WlZIVWlIVkVKNTdpYjY4VEZDWXNBQk1VSlNZM2dEamd0cGRGWkhWSHRubGVBdUFkRVFnUApIL2lZ
RnBsOENGeTBUb0JYWG5sbFRkakp1RU0ybWRDSWxjY1ZxNzlNa3BGdlpBTTVHVDkrdkQ0VGt3ZzMz
dHB1NkxERDg2R3NIbkxJCklSMnVhazcxdzRHWS9SUmFMbU9QUS9vbjVIdW5IM2tZaEh0QzZCU2Qr
RkNsN2xBWHZTRDQ5Ny91SnVIUjFENFIvcGE1ZnRDZkcxeHIKZ3N4NUpyRlVXUEVyanY1STVCc2hy
NGI0WEdhMlJSUjhLd3FadW9obFh1RGg0UGUrOXowcnFGL3FVb0lMRmk0d29wUmFUTUNPTUN2RAp0
MUR1TWE1ZWZvRTh4VjBnVFNSSFBQZmNjKzJxcTY1cVAvamdnL1RwbnZaOXlubXZaUkhJajl1ZUx6
cmowVFBzTFMvZVlnLysyY0VqCmluenp6VGMxaVNUOCt1VXZmMm1YWG5wcERaNFdhNTI2QytJT0JS
R3NMaE5mSzlZN2hhWTk4Y1FUdTdvQzROcUYzTGd5UmxTZWN3QTMKTVBMZ1pQVngxaTBrekdUY0FH
TktrQ2ZQSVpaTWRWYzQvL3p6UjhpbytGTGIvL04vL28rNk45STNXMis5ZFN1eFpsYjVkVDNXcTF4
MQplZzZmWlhXcXA1ZHpkZXVuS3VXeUR1TXd4SHZIcDV6NUxLc1h1ZXgwYlV5ZG9tcmRvUzU2UWVq
dmYvMmRVanRKNUpDZHErT2dMOE5pCkZIMEVXbFoveWhSVCtsNWVYSHZ1dWFjOTRvZ2p1c2FJZ0Vw
RnNrSnhiU2xkYjFZQnhKdVFoMFRjY2pUek90ZUllNXFpSTduclkwNUEKUUdwaTRnaHFDMzczWXJW
U1pLNHZmT0VMcWpURHk3TGtVODU3TFl1NEN4ZGJVT1k1bnYzVHMzYlgyM2Exajd6eGlIM2huUmZz
K1UrYwozeW9PdVJkM0t6dmJiTE1wd3BtNGZLa0NMMEhtcXJ6ek1XTk1FQWNpMWdJckszdUtoaVdy
MG5hTk5kYXdBa3JRbHB5eVZiQnNJSmVNCktTWXI1SzVoZ2xDVWlLVmcwc3Nra3UwaUJMSWNDdHha
WjUzVmRybkFDaXVLVzFaK0gyUUdlY0ZYZWxDcFY3bnE5SncreStwVVQ2L24KNnRKUFZjbGxuY1po
aVBlT1R6bnpXVmF2Y3RucCt0QTZSU2pkb1M1NlFlanZmek1CNlNUdGdjL1ZkZEFIWm9QWDZsRFFX
RkYrK2VXWApDNWZMSktRSzRrTXJMaWxhdExqTmFDTENySHF5SmlCTVVyS1V2YXo3eXg1Ny9mWFhG
ZktYUkloQXBvcHJrRmNMbGs4NTc3VXNpVUd3CjRuNVhpa1YzdjNxM1BmYUJZKzEvL2ZPLzdNZi85
YkhkL3NjQ2Z2RFBmNE1mWUxtNjdMTEwxRHJnd0Fhb0VDdkM0NDgvM3FvN0RUYkEKZmNoSTN1UkEv
TWdWMXRjOWMxRXJocXVRY1NBKzhUMUJYek5ScHMxcDJlTzV4RlhRNW8yVlRzbEFYWHZxL090NHpH
OVo4bGxXMmJhawo3NjlEUDFVbGwzVWFoeUhlT3o3bHpHZFphWmtibFAxUXVrUGQ5SUtRMy84bUJr
UkdXa1BEeXdFQ3lnODY2S0NlSG5EOTlkZnY2ZnFpCkZ3c1NrZGxoaHgzMGNvS0g1Y1dqY1FFa1hD
TlkyTUd2RXBER1BnSHFFQUgyNHU2aWNRTDRvUklzWHlYaDErL3FycktlR0dWTEZ0MUMKY1ErZDJy
YklUSXVZNjU2L3pwejB5RW5tdmIrOVp3NWQ3dEJXOERuMzBZL1RUanV0SnBFa1RnSWkwU1V3dThr
QVA5ZmZlb0g4QTZvWAp5R1ZSN3R1dWMrZW5uSEpLQXp5enVLdG9XUVNURnlWQldUR2k2Sm5ERHov
YzdMZmZmdWI3My8rK0pzSHNkcjlZTWpTT1JLeGhacEZGCkZtbGQvdUtMTDJwc0NjSDBXVlFrUUQz
cnZ1WllXQTdFN3FjcTViSk80ekRFZXllczVBeC9iYUYwaDdycEJTRy8vODBFWlBqSFVmT0UKTmVF
QXdidU9RUFJaY2NVVk5TaFpYTVBjNGRZdm1iT1RKSEVMeWQxbXUwOE9FQnlkbkFSa0ZRTnFHNmhr
ZWZUbHozM1pYTHJlcGVhagp2MzlrcHBseW1zekxaQlZKc2YvSmdnNHhjU0RIeDlpeFl6V2dtOGtF
Z1llUW0reVJIWjFBN1ljZWVzaXN0ZFphZWk3NUQ0WHFtbXV1ClNSNHF0QTJDR3JsbmJyenhSczA1
d3o0WnlEZmFhQ01GUCtpa2hJcExtQWFjQTVaQVFEbVp6UW1lSjVNNTdkeHR0OTBLdGFHNXFPRkEK
bWdNaDVMSXU0ekRVZXlmTjQyYS8vaHdZMVhyQm9KakRSa003WmFnTVRSRDZhT2l2NWhuNzQ0QlBP
ZSsxTEprQWRNeHpJaXY3R3FSZQpGZ0JBckF6cW5rUWNEWEVYc2dLcXVUZHd1M0tVNVdybnp2bjZs
WVNYbW8vazFsdHZiU3RTSmo5NlhKRGZ1cnBrRVNRdmlGYjIxNy8rCnRicGRQZjMwMDVyUGc5d2l3
MHE5eWxVblB2Z3NxMU05ZzNRdWxGeldaUnlHZU8vNGxET2ZaUTJTWERadHJaNERTZGxxTXFFTE54
cHEKT09BNGdEbFVsRSszNi8xWGdyelU5U3Bac0NSQk5CTHNsanlrdVNPQU1SVUVwYmJqelU0NUR1
QkdSQmJ5TkVteVFBTmNKNUN2Qng1NApZTXNkTG4xZDBYMVIyZzJ3dGJqWnlTdGRjM1VJSXBTNjFo
VXRvK3gxOTl4emorYVFBWEtWUERkSkloTTh1VGtFMVVwaG9KUG4wdHRZCmIzYmNjVWRERGhCSlpx
Z1F1d0xxMEJOa2NMck1abi8wY2lEWWh1emRBQUFnQUVsRVFWU2tYTlpoSE5MVG9kNDdvMWVxNGo5
NUdkMWgKMU9vRjFjOTNtaHFLY2tDRzBGQlpRRUNRY01HNDhJQmdLNEpaSldHZ0lrQ0Z5ajZlNUQr
cnVLZWVlcXJDaVNhUHUrM1hYbnZOYnJqaApobmJmZmZldEJENlViTTRnSHdGaEt2NzRWdkovS09x
VXhKMjBFTHFBYlpVWUVMdllZb3RaSUZ1SGpYektlYTlsc1dwUGNEMTlBTzhKCnNNY0s4UG5QZjE3
M2tkR3loUFZFNG82MG1DdXV1S0luc0FISnIyRkJJaWxEUEFQUEpwT0dycERKd1BpSzY1ZFgxRGRR
M3JLc0k4ZzEKWTc0T2djL2QrTnVyWEhVcXoyZFpuZXJwOVZ6b2Znb3RsN0hIWWJJL1FyeDNmTXFa
ejdLU2ZDaTdIVk9ucUZKM0dFMTZRVksybWhnUQo0VVpEMVhDQWJPZjRqTE1TVENEMWIzLzdXL1d0
SnhNMWdkU2RFdDVWMHlLajlaS0VjTWtsbHpRRTBwTG9EQ0pJa0FCZFZxcXV2LzU2CjlaRS8rK3l6
TlZqWFoxcysrOW5QYW9BeXZ2UDQ0ZU9iTHkrMnRpcFloU2Nob2t6ZTFFZGZKa3lhemJydElvODd4
SnZzdE5OT1J2STMKZUN5MW5rV1I2QStMMDZXWFhtcklCRTRzaGt3NE5UTTRnZjgraU1TQzIyMjNu
UmFGWEluaXBRbjhCTkxXTUNaYzhMbEFTdW8xWkVybgpHREVoOUQxSkEwa1MyRS9HZHNuWFlzNDQ0
d3hORWtpZ2VUZkNza0hNQy9FbnZnZ1pKK0JkSm5WbXhobG4xS0I1TEMwRUhNdmtRMEVoCk9OOVFY
QTZFN0tjWWNobHpIS1o3TnNSN0oxM25NTzdIMUNuUVdhclNIV0xxQlRHLy81OWdSanFNZ2pxSXor
UVVFOW8rYk4zeWozLzgKUTkxUWZDbzYvZll4bWRsNWtlQk9raVFtUkFUL0NsU3BackFXNk42ZXN6
Y255OHZhSm12MTdiZmZic2pxeWdSa3M4MDJNMlNhUmxuawpJNFdTS3BDNzV0NTc3eldnY09BdUJE
b1NTdVV5eXl5VFZXVHBZNUlZMFVnaUpHMUh0d0R0MHBWSkFUN2wzR2RaUHA0dFhRWnVUcmhBCmdY
VDIvdnZ2NndRa2ZVM1dQa0h3ZFJncldXMHJjZ3czUnVSY2ZQMzFjc2FVVzNod2dmbEZ5b2wxalUr
NThsbVdiMzRNZWo4VjVjZG8KR0ljKzVjeG5XVVg3cU5mcll1Z1VWZWtPTWZXQ21OLy84aURuWlcx
cXpmMHREc2dBSENvWHJOYURkZGdRcGN3SzdHeUhLL3lmMm56egp6YTJnQ1drd3NxQU9hYlpxVnd1
NURYQ0hxb3B3U2NNRkNKUHIxNzcyTlN1d3ZGWW1GK3FhUXBacEVoTEJFMGNFQU1zS2haVVZFcnZV
ClVrdHA4Szg3NSt2M2pUZmVVTGtqUTNzZTRjNXd6am5uV0ptMDVWMVMrTGhQT2ZkWlZ1RUhhQzRN
d29GOTl0bkhQdnp3dzBIcVNsZmkKVTY1OGxwVnVaeDMyWS9aVEhaNi9MbTN3S1djK3l3ck5ueXAx
aXFwMGg1aDZRY3p2ZitPQ0pTT3RJYjhjZU9HRkY4eUNDeTdZS2hSVAorQ3V2dkdKZWZmVlZkY1BD
OVVTeUs2dHJCbTVROG9JeWUrKzl0Njd5dDI3cWN3Tm94NFVXV3FoMU4vVUsycEFHNGVMK1FiRHhm
ZmZkClo0Qm5wRDBFQnNzSHRIWDl6RFBQck80NHJRT2VOM2hXVm9KMzMzMTNkVWxaYzgwMTFVV05k
ckZLTjlkY2N5bnNLWGxDK09QWW4vLzgKWjdYSTRMYUM2NWh2d2cwSlNzSUJwdXRnUll3MmI3Lzk5
a2JpWkxvR0xxZnZIMjM3a3NUS1NLYnl0c2RHTmhkWVlJRTJ5d1lXTGxhaAp5UmVDR1g1WUNUYzAz
REFaOTc4VlY4eEhIMzFVM1I0SlpvY25XY1E3aEZWT0xJTGtVSkhzOGxtWE5jYzhjbURZK3FrWmh4
NkZJMkpSCk1YU0trTHBEVEwwZzV2ZS9tWUJFSEZURFd2V0VDUlBNYzg4OXA4cUR6SzUxTWtJZUFS
VFhEei84MEZ4ODhjV2FERzZLS2FaUTlDZVUKa3FUSnQxKys0TFowNVpWWEdna2dieVZObTJlZWVU
VEc0anZmK1k1eFNCUDRjdUwzdU54eXk1bGtEZ1FTQU5KZWtxdTVRZGx2Vy9MdQo0MFhENUlmNER1
ckNQWWZraEJJMGJJNDc3ampsR1lvb0xsY29yQ2hxampiZGRGTXZmSExsdVY4dzZpRnlrM1Fpcmp2
cnJMT1VQMkxGCmFadGtkcnB2Tko0anJrTlc3NDFBOE9vRWc4a3ZlVFMrK2MxdkdvSEVOWi81ekdj
MEJvb1lER1R3Z1FjZWlCS0R3eVNYY2VpREdGTVMKM0s4eXpNSUM4c3ZZRnF1aXVoY3lvU0JCSS9Y
eC9DeE04SzRneGltUGlCOWJjY1VWTlM2TGQ4ZTIyMjZyc1NWNTF6Zkh1M05nRVBySgpsMXdPeWpq
czNtdWorNG9ZT2tWSTNTR21YaEQxK3k4UDNsQk5PQ0N2bUtGd3dTTG53ZkhISDI4bDBOZUNXdUZJ
bEdsOVBseU5mSk1rCldiT1NiZG9lZXVpaEZuZWhQQUlYZnVMRWlhM1RiNy85dGozMzNIUHRycnZ1
YXRkWlp4MXRuMWdvV3VkOWI0QTZ0UEhHRzF1Sk43RnIKcjcyMkpVOEUyL0FNVndieU5VZ0FzaFZy
ZzVWNEZOMFdYM3BGVXBJRWNMNmJvK1g5N1c5L3M2SVF0cFdONjh0Zi8vclh0bU51QjRRdwptZEM1
M1o1L2ZjcTV6N0o2ZnBBT055RDdrcXhQcnhBSVhQdWpILzFveE5XU2dGTGQ2bVIxejBxY1QwZTVI
WEZ6d1FNZ3R5QmpNaEhJCnZJT2NIaEtIcEc2QVltM0l2S2JvUWR6elpJS2grVVdPT3Vvb1Jab0Q4
V3JTcEVsV3JFRTlvM3ZKUWtWYjFjaWpKRzFVWG5ZYTQyMDMKOWJualU2NThsdFhuNDdUZFZvZCtD
aVdYZFJtSGJSMVEwWTVQT2ZOWmxvL0hyVnFuNEp1TFczYW5iMnlWdWtOTXZTRG05Ny9KQXlJagpy
U0cvSEdDRkV6UWZWdlpCclhDRXl4T3piZklLK0NKV1VRWFdWOTJWUktIWEZkWThhd3F1TGdUR3Jy
cnFxcTNxQ2ZRRmtVcGVMbW8xCndkUkw4SGxWeE1vZVBNREtRZDJzZnBNRGhHUFVqWlVJVnloNHlH
b3gyN1NiMVhTQzBxc2dBcDRwV3laaldqeHQvT2xQZjVxYk1WeGkKVWRTTnJZcTJWRkVtRmpHeWQ0
Y2t0NnJrNnFRUEpZYW1oZnoyNElNUEdwa1ltRnR1dVVWZGtMREtrYXNEOXlTZlJMbTRJT0xhUjA0
RQpSNkJ6SFgzMDBTcDdCTWlUWVYzaWt0enB2bjYvOWExdktaSVhNaXlUSzdQRUVrdW9mRE1lY1lV
QmJhc004UzVoVElDM2owV3BvZjQ0ClVJZCtDaVdYTWNkaGpQZE9meEpSLzd1cTFpbEE2ZU05K05C
REQyVXlvMnJkSWFaZUVQUDc3OGYybnRsbHpjR0dBKzBja0ZVR2RkSDQKd2hlKzBINml6NzNISDMv
Y3lNcXlUa0JBa0NKRzRaUlRUc2t0RFJoUVlpaHcvM0Rrb0ZjNWhndFUxWVRpeDBSTThvQVlXWG5R
aVFVKwo3c1N0b0tnQmhZdXJDc29XUHU5czgvS0Y1cHh6VHYydDRoOHVjc0FCQTV1S29yejg4c3VQ
cUVaV3NoUXBpMGtjU2lEdFQwNHdSOXhRCmt3TmljVEtycjc2NlR2QmNmNGRvbXV0bkpoVk02SkJS
WWo0RWZNQ0loY0Q4N0djL003UE9PcXMyQmRjbEpra29aZ0tDWU1SNm9uOCsKMmttOXdFMG5KLzVN
ZkltL3dNVUpOekg2RkxmSnNwVGx1amg1OG1SRGJCVXVEZjBTY1Z0UFB2bWsrZTUzdjl2aVdiOWxO
ZmVaVEJmVAowUDBVU2k1ampjTlk3NTNSSk4rK2RBcmNzWG4zQW9HZVJWWHJEckgxZ2xqZi8yWUNr
aVZ0elRIdkhHQUZnWGdIY2FId1ZqYktzcmhsCnFDS0hoWURjQzUwbU4yUVczM25ublRQcjd4Yi9r
SGxUSHdjWjZLeEc4OExEa2pCbXpCZ2p5QnFHNHovKzhZOWJKZUk3ejdGUWhBSk0KZmd4ZXdxd0U0
YitmSklLQmlWdkI0c1JxRGZEQmd6RDU0Qm5nTisxbWxXdU5OZFpJUGxacm04a1ZFeThzVGlpNXZk
TGt0eWViaFdkYwp1SFViNVNYQkJvQmNabUx4dTkvOXpweDAwa21xOUNPekRncGEzQUMxamNSREFE
WkEwTFV2UXJFRVpobkxIbG5lZ1hQbUZ3VVFPR2lBCkdJREpKUkErandoT3BoeXNHMHlXa1pPaXhM
Z0h2S0Fmb3MzaVhtbFdXV1VWcy8vKysvZFRSSE5QUVE2RTdxY1FjaGx6SE1aNDd4VHMKNnFHNHpL
ZE9RZDZ0VGxTMTdoQmJMNGoyL1pjQjJsQk5PQ0FEWUNoaVFMTFllY01OTjFnWjVKb05QZXQ4djhm
Kzh6Ly8wMG9lamE3Kwo4NkpRMittbW02NlZiWno2aUhNSVRSSk1aeVZRM2tvZUVpczVQNndvcGxZ
VVFudmRkZGRabVpSWVNRaW9FTDJpSENva0wzQzlFalNxCmNvRWZiRlVFSDJlYmJUYU5OU0dEZHBY
a1U4NkxsQ1dURCtXZktEeGRIMHNVYzgwaTN2WEN4QVYzdjNxM0hYdkxXUHZNVzgrMGp0TFAKWWxt
dzk5eHpqNVhBY3p0dTNEZ3JDb2tWeTVkZUk0cTF3aTJMMWMzS2hNZUtpNUwrMGNmMFJSRVNORG03
MTE1N3RWMUt1Y1JhT1pMQQpiU3VXTkx2QkJodFl5ZkdpOFVkaTZYQ245VmNtRjIzNzZSM0tKUGFD
TVFSTU5lT04rSXlzYk9mcGUyWENwVm5tZ1hyc2xXU3h3RXBTCjBLNWp1OWR5aTF4ZlJLNktsTU0x
UHNzcVdtZXYxMVhkVDdIa010WTRoUCtoM3pzKzVjeG5XYjNLWXRIcnE5SXAwdldIMEIxaTZ3V3gK
dnY5TkRJaU10SWFxNVlBTWFGM1Z4ZnFSOXNrdFd6UFpsaGRiYkxHdTZGQUhIWFNRcmtBbjNhOUlB
RWoyNlZERWlzMWpqejJtY0tURQpmMkJwSUZZR2Q2YVpacHBKMFlCSWRJVHZQSlljVnFheGxKQ2tF
RFFzNTRwVlJYdmhvN3dFTlR0NEp5dFNGWFZYWGFhVHVTSldMdUlpCnNQVDgvT2MvTDlTc0cxKzQw
Ynoyd1d0bWxpL00wbVlCb2EveHJjWEZDcmNrM09sd2M4SUtnb1dEcEpka2h5WXVBb3ZTQng5OG9H
aFIKV1BGSVdOaU5rRnZjeXRKSi9YQnp3cFVLaXd2dWU3aDdFVGRCdlZndnNDWTRtR3JHSmNodmpq
OVpkV0w1d3MyQmUzQjNoQzhrOFFUTgppeGlXYm9TMWh4Z3RtZHgydTNURWVkd1VzYlRseFhTTnVL
RTUwRGNIcXU2bldISVpheHpTRVc1Y2hYenY5QzBBQTNaamxUcEZtaFZWCjZ3NTEwQXVpZmYvVHM3
MW1QeDRIUlBCYnEyWHhXdUcvWmxaOVFjV0pSZUovcjN3VlA4NjJKa2lXWnJ2VlZsdTFXVVhhTHZD
OFE4SkIKY2EyeDhyRzNvc2dwR2hlcnp5UVpsRGdCclExRUxKbUFLSEtSS0taVzhvUlkyaCtLUUdS
S3JxQlhVYTlQT1M5U0Z1aE9hWlF2ZUpxSAo4aVVUUGl1dVdoMGYvVTkvL1pNOThLNEQ3UStmLzZI
OS9VZS90NmM4Y2tyYjlXS3lINEdDNVZDbVpPS2dhRzJnc1cyenpUYUt2c1kyClZnV2VCd3RESjhK
YUpyRXNWaVkyRmhTM1RuVDQ0WWUzSVhBaFgxamdkdGxsRnl0dVRWcmZJb3Nza2xzRWxqb1F0TVEx
ck8yYThlUEgKVzVsTVc5Q004b2hWZFJKOXV1Zk91NjZPeDR2SVZkRjIreXlyYUoyOVhCZWpuMExK
WmN4eEdQcTk0MVBPZkpiVml5d1d2VGFVVGhGQwpkNmlUWGhENis5OWtRaThxOFFHdXEvdWc3NGNG
d0h5ZWVlYVovZHpxN1I3QmdsZjNJaFQ2TktGSTRlNGt1UVowTW9JN0ZCbkthYmR2CkFtcVZTUkRR
cEk1UU5zWGlvRzRtZkxCd3laSVZjbmZheXFxMWxjQTRWUlpQUC8xMCs4d3ovM2J6YVYwMFlCcys1
YnhvV2ZCUThzQW8KcDRDR2xsWDVYSzVKWElRVlZMRGM4NC8rL2xHNy81MzcyejkvL0dmN3ovLzVw
OTNsdGwzc1gvL1JEbGw4OXRsbnQyVzh4NjBORnpzZwpqSm5jQUJzTmlRWE1IbkRBQWJwTjFudWVK
NCtRbTQwMjJraXY0VHFKaWNpN3RIVmNMQmR0VU5qSWsxaGJkT0tDK3hieTJHa1N3OWdSCnNJY1Jj
c2NrQ0hjc2lWdHExWlhjd0pWTUxIaFdjdDRrRHcvTWRsRzVLdkpBUHNzcVVsOHYxOFRxcDFCeUdY
c2Nobnp2K0pRem4yWDEKSW85RnJnMnBVNFRRSFVhYlhwQ1VyU1lJWGJqUlVIVWN3TFdJTE9jeGlT
U0V1SkRnOXBRbWlhOHdzZ3F0Z2V3a1RDT3duVUJrVUh0OAowekhISEtORjRuWWovcXZxd2dMeUVR
SEhRS1J5WG1JRjJoQ29DR1FFQVFnZWN1NktLNjVvSlZuMDNiNWhMbS9wcFpkV2xDOVF4a2o2CnVP
NjY2NDU0WE55Z0NNVEhOVTU4WW5OUnZtYWVlbWJ6MFQ4K01uZjg1Zzd6ODkvLzNHeS8yUFptNnM5
TTNWWWVyazk3N0xHSFpveVgKV0JCRmdNSXRDcFFWWUhFZGtSMmNhNHNRcmtqSUtMOUE5a3F1blk2
M0FmVkxzSGdTTEFCNWduRFRrb1dCcnU1TnpvME0xeTJ4bExUcQpJOUVneUZwNXlGYTRiZUZPeVBo
dnFMNGNpTkZQSWVVeTlqZ00vZDZwcjZUNWExbEluU0tFN2pDYTlZSlBNT1AwSnhwTlNXVTRrUFIx
CmJycWxEQ2NINDE0d3g0Rm9KZk02dnZYRWZFakN0dHpHTTBucEJYMG90NkRJSjN6S2VkR3lMci84
Y2lNclo0b0d0ZUdHRzJhaWZBa28KZ0FIdENUN3pDenh5SHYzdHYvOW1Ybm52RlkzN1NMYkJYUy9C
MDZyNFV3NXhSOFJMU0NDMjVwd1JWeXVGeEJYM0pKMUVnTUJDYmhxUQp1b0RubFZYcGp2RSt4STRV
eVFuRHhKYllqMDAzM2RRMXErZGY4bmVBam9SY0FtY0tQRE9UdEdXWFhWWlJzVUNWYzc3dVBSZGU0
eHVTCmZWcjJYZXl6ckJxenJIRFRRc3BsN0hFWThyM2pVODU4bGxWWU1Kb0xsUVBEcmhja1phdVpn
TlJJNkpNZFUvYWpWNlBIYXBveVlCd2cKSWVGWHZ2S1ZycXZqL1Q2V1R6a3ZXaFpLUFN2MjVMOUEy
UWYydGtxU3JQWnFSUU1nQWZDRnNXUEhLcGdBVmdjU1Q1S1Bob21FdVA1cApVRHB0QWdxWEFHOWdt
Y3VTK1BXcnhVS1FzZ3dCaHBDNDd4a21QYjBTOE1Ya2lBR21GNHNOVmtMeGpUWWsvaVM0ZmhpcHFG
d1ZlWGFmClpSV3ByODdYaEpiTDJPTXc1SHZIcDV6NUxLdk84dGkwYlNRSFFuNy9HeFNza2Z4dmpq
UWNHRFVjUUtFVXFGaE44a2FpTjFaZldKSEgKOUN3eEtZck9sSjRNNDZva01RMjZZajhvakdMaWNm
UE5OMnVicTE2eEY3OWhnK0lQVVJmdVVsZ2lzSGFSVEpKdFhMRWtCc01jZXVpaApPdUhZZGRkZE5V
K0hqOGtIOVVxUXI2Smt1Y2tIeCtoYkVOZDZKU1pMdUk4SmFJTmFoN0FrMGYvRE92bm9sVC9OOWNV
NUVGSXU2ekFPClE3NTNpdmRDYzJYRGdmL2xRT3p2ZjJNQnFaRWtOcXNPMVhVR2lsZGVGbXdKbEZW
L2VHSS9VQVJaaWE2YWdGb2xFVnhzd3NXR3BJTjgKS05ORTNBelF2S3ppSlROY0M2YS9PZXVzc3pS
elBBcDByK1JUem5zdEM3NHpnU0pKWUZWRTBqK1MvUUdUNi9vWUM4TGlpeSt1aVRPWgpsQWdLbGNZ
a3VjU2NRRUpqQlpFZ2M3UE9PdXVvcTFPZXZIWnJOeE1OWEtXWWNPRnU1b2lraDdmY2NvczU1WlJU
S3JOdXVib0cvYmRYCnVlcjB2RDdMNmxSUDNjK0Zsc3ZZNHpEWkh5SGVPejdsekdkWlNUNE00blpJ
M1NHMFhoRDcrNThQdVNMTG5nMkY1WUFNemhiQ1RkaWEKL2RmMnhCTlBXQ0EvNjBLeXNtekZkejIz
T1NSS0E2cFZGT3JjYTN5ZUlPR2QrTlpuRmdsUzBSWmJiR0ZsNVR3S2loQm9ZWkovd2Q1MQoxMTJa
N1pNZ1VwVlRrdHoxUXo3bDNHZFovVHhMMWowTzVleHZmL3ViQlVVRnFGMmdidUdwNU4xUUNOeXJy
NzU2eEsweVFiQVNENlM4CkpVRmh2MFJTSzVsRWp4aC9RRDVMUm5LdGd6WWg2eVJCbEFtUG9xMzFX
OTh3M3VkVHJueVdOY2k4RGkyWHNjZGg2TDd5S1djK3kvTEYKaDFnNlJVamRvUTU2UWNqdmY0T0NK
U090SWY4Y0FIa0gvL1o1NTUxWDNVSEdqQm5Uc1JMY092Q1hyNHBZa1FhVmlKWG9MQ0pSR2tuZAo4
bEI5c3U0cGM0eEVidnZ0dDUvNjBhZGRna0FxRW5oZzVSMG9YYmp0VkVXMEFWZWFaSUpHWWhSSVJp
Z1FxeHBzREJKU0ZpVlh5YkxPCmo5Wmp6cG9FM3lUUGpNWmdJUCtNQjJKUFNHemwwS2lTUFByV3Q3
NmxnZDI0eEsyMjJtckpVejF0WTBWQm5pVy9UTnQ5eUJrV3JRY2UKZUtDRitpWWZHME9pTkt4Y0RU
VWNxSklEb2VVeTlqaXNrcGVqc2V4WU9rVkkzU0cwWGhEOSsrOXJkdHFVVTU0RDhsSVpHZ3NJM0JB
bwpVN3ZVVWt0cDByUzhwRzljUnk0TWNseFVTU1JDcEMyZGlLUnBKRjRUVndFcndZc1dxMGhWUkdJ
MzhvOElKRzltRmVSbUVQOTl5NnExClpFck52S2FxZ3c4Ly9MQVZoVFMzK01ZQ2tzdWE1c1NRY01E
bnU5aG5XVVBDM3VZeEt1Q0FUem56V1piUFI0MmhVNFRVSGVxZ0Y0VDgKL2pkQjZETFNHcXFHQXdU
QWdwWURaQ2hJT2xsRVlDNHJ3bnZ1dVdmVzZaNlAvZm5QZjg2OEI4c0hxRDJPZ0wzRkp4a2tJZ0t4
eUxVaApMa1VLazBxUU1DdkN5ZndKN2o1ZnYvQ0RnR01YVy9HYjMveW1iUlVhNndJeEFKSVVUM09Z
RUFSY0JZbTdsNUhKbndFdThnckpNU0paCldjM0tLNitzZ2ROQXlOSS9lU1FUbzd4VHpmR0dBdzBI
R2c0MEhHZzQ0SlVETVhTS2tMcERhTDBnOXZlL0NVTDNPanpLRlpaMGFaRlYKZzNLRjFlaHVBcXVt
bTI2NkVZR3ZLTjBvNGVJUHJ4Q3BaWnNNektqNHpodmNsZ2lnVHBKWVB6UndHamNYUitSOVlJSkUv
Z1VTMUVsVwphRTMyaDZ0V1Z0SkNkNStQWDF5OVVQckpwd0NKaGNpY2ROSko1czAzMzlUMlNOWnVB
MlFsT1J3a2M3WUdKbGN4SVdLaVJkSTlOeEZ5Cno0WXNjZ3hYSUdCWGszeWozNWlvd0RjQzkzc2xu
M0x1czZ4ZW42TzVmbmc1NEZPdWZKWTF2Qnh2bnF3c0IzekttYyt5eWo1WDF2MmgKZEFycURxazdo
TllMWW4vL215QjBuL2JCa21XSnJBK1ZDMVluZG9nRndvb2Z2SDNzc2NjNlhWYjRIQUc4a2pqT0hu
SEVFWm51UTVMWApJdk40c2dMeDBiZTMzbnByOGxBbDJ4SmpZY1ZIUDllMVNxd3lWcENhclBpZVZs
Si9zbENCMnJYOE9SSnJrQlUvVkN0eEFucG9yYlhXCnNvY2RkcGc3cmIvT0JVdXljcmNkTDdyalU4
NTlsbFcwL1lOd1haNXJIMjBINUFDM2doLzg0QWNXV1d4b0pBZDh5cFhQc2thMmRMQ08KTkhKWlhY
LzVsRE9mWlZYM3hPMGxsOUVwY0x1VzJEczdlZkxrOWtKbEw1VHVFRU12aVAzOWIxeXdaS1ExRkpZ
RHJQd0ROWHJoaFJlYQpiM3pqRzZVcUoxZkZhYWVkWmdRaHc1Q1ZlWW9wcGhpUlJScFhJZ0p5T1ll
ckZmdFpKS2dwV1llOUh5T2o5SUlMTHFnV0lTd2ZhU0lBCkhBdE1YanZUMTVmWkIySVEvcDEvL3Zu
Nmg4c1hPVUNlZSs0NUZpY3lpMlpGQ0JlMm1XZWVPZk44Y3pBK0J4Z0xBRHRrRVFId3VQUUoKSXBa
YTNiS3VhWTQxSEtpQ0E0MWNWc0hWcHN5eU9zV2pqejVxamozMldDT0xhMjNNREtrN3hOQUxZbi8v
R3hTc05uRnJkcXJrZ0t4KwpHYkRaUVZlYU5HbVNXWHJwcFV0Vjk4SUxMNWp6emp0UDBhMVE2UGZm
ZjMrTkowa1hLbkNvNmtiRWNkeTB5T2ljUlZ5WGRrWEt1cTdzCk1lSlVRQjZDcnIvK2VyUFRUanVO
S0JMRUl2aFZOVTB6elRTcWlPSm01WWhNcU1sOWQ5ejl3aVBRT2dhUmlGdUIzMnV1dWFiWlpKTk4K
Y2gvaC92dnZOMklSeXoxZjl4UGtIQ0ZaSU1rbHM0aU02S0MrZ1piVlVNT0JVQndZclhJNVd0NDdv
ZVRJMWVOTHB5QnYwclRUVHF1NQptbHpaL0liVUhXTG9CYkcvLzgwRUpDbHR6YlkzRHZEQ1RjTEwz
bnZ2dlpya2oxVjFFcUxOTjk5OHBldWlEZ1lReVhTWWZLQXdac1VrCnVHelFCSnd6NDg4ajRpK3dQ
bFJOSk1KRDhXTzFKVS9SQjBJeUw2RGVaL3Z3cFpYY0UwWmMxNHlEMnlXRzV1Q0REOVo0bUU1MUVU
K3oKN3JycmRyb2srcm1YWG5ySjNIREREYTNra2xqTWtBZGtrTVIvWjU5OXRwbDY2cWxiejA2RFNV
d3BhQ1JHM0pTVUwyVWVnc0QralRmZQpPRk91aVBFUnhCRWRDMlFiOTBsOE9MdFo5T0FENDRXWUhz
bEpZN2JkZHR0VzRzU3N0aUFyOEdiKytlZFhIbVpkdy9QQ1cyS1hpa0FKCjA4WWtCSFJXbWMweC94
eUkxVTh4NVRMa09JejkzdkV2TWZGTHJGS253Qk1qeXhzanBPNFFReStJL3YwZjRmRFdISWpHQVJu
aVF4TUQKY3NrbGwxaHg0MUdmU25ueDYzT0phNCtWeVlKWC9vcnlaQ1hqc3lWdW9oTXR2UERDbGph
SmkxSG1aZmpGUytDZGxRR1plZDduUWJFQQpXVkh5TmRsZ2toODh3ODkrOWpONzlORkhXOEhuMXNT
SW92RDVySHBFV2NSeElIY2t5SE1rSzBGV0pveTZteFVENHE0amFWSS81RlBPCit5MkxQaURPSm90
Y2pJc1BHT1pMTDczVWltS2ZWWTFDTEY5MjJXWEsvMDVKTWpOdjduS1FSSU9DTHRlNlNsd01yQ0Nh
dGZZWk41S2oKUnhNa3lzUlRrMTdLaEtoMVBya0JKTFRrTDdGaXRiU0NDS05RMWVMeU1DTFJvYnRI
ckVjS0lVMkN3MDZFenpNeFczV2tmdVVxNjFsOApscFZWZnIvSFl2UlRMTG1NTlE3VGZWUGxlOGVu
blBrc0s4MkRmdmRENlJUcDlvWFNIV0xvQmJHLy80MEZSRVphUS80NXNQcnFxeXNTCkZURU9yQ0xJ
eTBOZFFuelhOUGZjY3h2K3VoRnVROGNjYzR6QkVwTkYxMTU3clNKU2dkWlZOVW1XYW9PTEQwbmdn
Q2lHWG43NVpVWHYKa3V6bjZpTDJ5aXV2NkFvMjFnbGMxZVFEbXBtOHJteGJrMmdueWJKY0VpOTVH
U2NQdDdZbHk3MjZzN1VPMUhRRHl4Z0laOGxWZGl4bQpvS1hodGtkU1BtZjVTVDhDMXJXeVJPelJO
ZGRjby9FMWFSUXpMSVM0Z3RFSHVLYjRKT1FIaTRZalZ2Zk9QUE5NdGJnQXJTeUJsV281CnhGS3g3
Nzc3NWxvK1dIVWtMZ2kwTnZsQUtrcmJILzd3QjdQMTFsdXJUSUlZbDZZVlZsakIvT2hIUDlJNEUy
S0ZrZ2hxN2xwOHEzRVIKTy83NDQ5Mmg1amN3QjJMMFV5eTVERDBPWTc5M0FvdFNrT3BDNlJUcGh3
bWxPOFRRQzZKLy85T3p2V1kvSGdkRThIVTFsTjloSUZiWQp4QTNEUHYvODg5RWZSd0xNMU1JaFN2
K0l0cEIwVDVSUksvRWhJODVWY1lDVmQxRStyY1REdElvLzU1eHpkSFhaSFlCMzh1TFRaSWlpCi9P
a0t0VHZuOHpkdkJRUlVFRWhlK3ZhUVF3NFpVU1ZXSi9xMkgvSXA1OTNLRWdWNlJCUHA3MDdrTEND
U0Z5YjNzbHR1dWNXSys1bGQKWUlFRnJNU1NXQ3dNV1lRbGkvN0xJNndMRXN5dnA2Kzc3am9yaW52
ZXBYYnMyTEdXdGhVaHlwUkpZc2RMSlJhcUsrcWJRRk5ickhBQwpFZDFXRmloYXlDam44Z2daRVRm
Q0VhY1pnMWlGV0pXdUszV1RxMTdhN2JPc1h1b3RlbTNJZm9vbGw2SEhZWXozams4NTgxbFdVVGtz
CmNsME1uU0tVN2hCREw0ajkvVzhzSURMU0dxcUdBNnl3OFZjSFlqVllzcHhuNXZmQTE1L2tnNHNz
c2tpUXBoTHNSaEIzTWdCNGd3MDIKMERpV1dXZWRWVmVteFJYTGlDdVdYblBYWFhkcHNzQXFHdWZp
QkVBUmNmNnV4RW1BRHc3Tk5OTk01cUtMTGpLUFAvNTRDMTJNYzZDTwo0YzlOTzR2NCtsZlI5aUps
a3VPRVFFV1hod1kvVzBBSXhvMGJaN2JiYnJ1T1JjZ0hNZk04OGpKKy9Qald1UmRmZk5ISWhNUmNl
ZVdWCjVydmYvVzdyT0Jza2x0cHl5eTFieDU1NjZpbno3TFBQcXF6QmU5REd4QlZKNHlxd09tVlpG
TnpOM0l2dlBzSHpKNTk4c3BsenpqbmQKcWJaZnJCYXNiTEhxU3o4dHNjUVNtWEx2K3I3dDV0U091
T1pwUWt6aVpaSTBac3dZQTJZOXo1ZlhqZzAzM0RCNWkyNGpNMXR0dFpVUgp0d2F6d3c0N2pEamZI
QWpQZ1ZEOUZGTXVRNC9EMk8rZDhGSVVwc1lZT2tVbzNTR0dYdUMrQWJHKy84MEVKTXk0YVdxSnpB
SGNjRkRHCjBnU0tGaTQ0aHg1NmFQcFVwZnRYWFhXVktvaXVFdG9ISWhZSkNGSDZMcjc0NGxZUVAr
MzcvdmUvN3k3MStvdHJFckNzdSsyMm13WmoKVS9oYmI3Mmx5aVhiRjF4d2dicnlvRGc2aFJ5SVlK
UmxsSHJRbE9wTXVBQ1NjQkl6dXFPOTk5N2JvQXpoQnJUNzdyc2JKbjlKVkMrVQpCeWdMQnBuSkJx
NThhY0tkYnM4OTk5U2dmQWRrQUwvRSt0ZUd0b1dyRlJPOU8rKzhVL3NhdHl3bW9rd3laNWxsbG5T
eG1mdTROeEUwCnppUUtzQUNDNkpORVh6RnhoSmc0ZnYzclgwK2VibTB6TVV1NnByVk9KRFk0ajd2
VzdiZmYzdVltUnVBNmZaK2NSQ2R1eTl6RWRRdGUKMDU3a0JDN3o0dVpnTkE1VTFVK3g1RExHT0l6
eDNva21NRU5lY1VqZEliUmVFUDM3TDRPem9acHdRTWJ4VUxsZzFZU3R1YzBRM0cwTgpsTSs5b0Rs
UkNRZDh5bm12WmVFYUlaTk9LNU1NZlRhSndiQ3lBbXdsQnFqMVIyQTA1Y3BFYk1UemMyK3l6dlMy
Qzk3blJvTFlKZlppClJCbkpBNEFRU0l4RThsRHVOc0dRNmZwd2FSR3JTRnRTUzF6TUpGZUxGWVhQ
eXNRNnR6eVpwRmdTZUhZaUVsUEtCTTdLaDlIS0JGbGQKcWlaTW1LQUI2VEpKN3ByYzA1Vk5rTDBn
YnRrRERqaWdyYTN1Zk4xK2szd3UyemFmWlpWdFM3ZjdxK3luV0hJWmF4d21lUjNpdmVOVAp6bnlX
bGVURHNHdzN1a1AvUFptVXJjWUNJdHhvYUhSeWdEd0lEZVZ6NEJlLytJWEN0T2E1Mk9UZldaOHpC
RnhMeHU4V1BMUDR2R29PCkd2SmpFTmlQcXhLQi9rblhLVkZZRkFJNUt3Z2Q5K1hPMEE4QUFDQUFT
VVJCVkxST2hDWEVFU3ZKam5mQTdSTEluU1lDMFowWlBIMnUKeUQ3UTBzQkhVd1l1VnhBSk4zR1RJ
MmljUVBzc2tvbUZJZDhMcmxTZENKaG9MRjJzbERGZUNOckhoWTNuSWJpY3Vqb1JZQVc0ckpIcwo4
cFJUVGpGWW54cXFId2RDOUZNc3VZd3hEbU8rZCtvblhjUFhvdEdnT3dUNS92Yy9qMm51OU0wQkdh
YXRGVTdmWlRmbE5Sem9sUU9TCm5FbXRBNnhjcGtuUWJOS0hDdS83bFBPeVpYV0NHYzU2SUhrcHQ4
Wm9zbTYyQVExSVF2dE9uRGpSQWxVc3VXZnNoUmRlbUZXY0ZUY28KaGNQTlBKazZtTFNBeU1USkFt
a3F5bFhxcXYvZGxYZ21LeE1ySzhrNk04K2ZjY1laQ3NHYmVUTGpJQkM5Z3VhbGYxaEQ4Z0wwQ1JJ
VgoxelV0Z1VCOStWRGI2YWVmM29vTFYwYXA5VDJVN051eXJmUlpWdG0ydVB0ajlWTU11WXc1RGgy
LzA3OVZ2SGQ4eXBuUHN0TFAzdXdQCkJnZENmUDg3TDErSkZEYlVjS0RoUUxVY0FCNlZwSDdFby9o
STBOaExhNEZKelZ2RlpsV1UrQkNDbjVQRTZ2a1dXMnhoQ0Y2VlBCWWEKRDVJOFg2ZHRZbXFBbVNW
V3dsa0lnT0FWQkRLenpETExkR3dxeWNUUy9VSENRREtwQXl1ZEpsYjVDU1IwUkhBNSsvQklGQTUz
dVBXTAoxUUsvK0hmZWVhZDFyTWdHOFNySVRGNXNCMldRSUpMbnpMSnd5T2ZQNEd0TUVzYWlOUHZz
czJ1ZmQ3dWVaeEwzTDQyZklkZ2Vhd2wxCkFhN1FVSDA0RUt1ZllzaGxqSEVZODcxVEh5bHJXbEtH
QXlIMGd0amYvMCtXWVZCemI4T0JJaHhBWWNXdEpVMEM4YW1CMTFuQnZ1bHIKUSswVEFBNVNVa2ph
WjU5OVZNa0g0Y2dSN2pHeXl1eDJLL3Nsd0oyZ2NseUIrRTMvcFkremp6S0pLdzd0VHJvY1ZkYklF
Z1h6UEFTaApJNFBrLytCUFZrU05KTlRyV2lxb2FWa2sxZ3lkQUlEa1JFQTVLRlBreWlDZ1BVbE1Q
cWhYWUU3VnpZdHpCTCtUKzJMNzdiZlhET200Ck1kSFBJSzNBMDA1RU1DUTVSY2cwM21ueVFSbGlI
ZEVBY1pmUEpWbXVKQlhVQUhKWjRVb2U5cklOSWhwSU5hQjdFYXd2TVFYTjVNTUwKWi8wV0VxdWZZ
c2hsakhFWTg3M2pWMUxxV1ZvZGRRcmZ1a01JdlNENjkzOHdqRUdqbzVVeTFGdnVIWVA4eExobkNP
eGg2eEVJd01OZApoS0RWSkhGOG9ZVVcwbndTNUFZSVRkUXZxOXhXNEZPdEtJL3Frb0pyaTZ5VWEw
YnlLdHZ6MkdPUHRZcW5IZFJKc0NRNVV3U0sxWXJpCmFFVXBiVjFUOWNhUmtwbWQzQTVrbTNWL3VQ
QnN2dm5tclgyTzR6b2dTYlpLTmNlbm5IY3JpMEJ5cnBHUFE2dk5vcEJZbCtlRUlQVEQKRGp1c2RT
NjVzZkhHR3lkM2U5N0cvVWtRc2V4M3Z2T2QxcjI0TDRtMXE3VlBIaERhUjA0WVVWbzA0M2pyWkdy
RHVUYWxEdWZ1U3J6SwppSE0zM25pakZiU3V3c0hqSXdvb2VDQXJnTC9ncmJXNHJKdGM5ZEpJbjJY
MVVtK1JhMlAwVTJpNWpERU9ZN3gzZk1xWno3S0t5R0czCmErcW1VMVNsTzhUU0MySjkveHNYTEJs
cERmbmxBTUc3VjE5OXRhNDg0d1pDb08vcHA1K3VBYm5BamlieklyRDZpeHNLVmhCV2pYd1QKSzlQ
TExiZWNFYlFnUXdBeHdjZWlmT29mQWNsa2lKNTMzbmsxa0JlSVZQSXd6REhISEhyY2QxdVM1UUZ0
dXZQT08yc0dhcDRkUzhJcQpxNnlpT1JkV1hubGxEZkx0dHNxZExLL3NOdjNBYWdncjhZNkFlNlVO
eVdOWUQ3SlcxZDA5Zy9Zckg3N01Ka3RTU2dPVVpobWFmLzc1CkZmNVhKdG10WW9ETUZRU1ZsalVH
ZUdVc0tiaERrV3REa2o3bTVnTEIrdFFMcFNGMlgzdnROY1BZbEtTWHZSVFQxN1VPQnJpdm01dWIK
Z25FZ1JqK0Zsc3ZZNHpDck02dDg3MlRWTitqSFl1Z1VNWFNIV0hwQnJPOS9Nd0VaOUpGWjAvYWZl
T0tKaXNDRE94TzVKQ1FRVlYxVQpCTzYwTlFIQk5RVUVuMXR2dmJWclBvS2lqd242VDFKQnhsOGVC
WThQN2NzdnY2eVRJQktoa2NnTmhDRGlHL0MxSlA0QzF5SW1TeWpaCjVGbVFsV3R2N1VxM245Z0tj
bjI4L3Zyckd2OUJJc1FiYnJnaE54NGpmYi92ZlNaQUtOd2d4amdpQm9RWFUvSVl1U053YVJnVVFo
NmcKeVpNbnQ5ck5oSTgvaVBpWCsrNjd6NUNJeWNYQ2NBL0lXY2dMYURaejVpVDgwd0k2L0VPV3hG
clV5cW5DcGVUQkFKMUs0R2cxOW1QRgpGVmMwa21WY1MxbHZ2ZlUwWnFKRGthVk9nZHd5R3RCYlNq
R3B1VGs0QjZxV3l4ampNT1o3SjNnSEJxb3d0RTRSUTNlSXBSZkUrdjQzCkU1QkFnMmUwVlVQQXIr
UlQwR3pIQk9kaStRQ0NrOVZmU0V5WVJzeCtxbkI5Kzl2ZjlzSWVRZW94KysyM256bjIyR1BOQWdz
c29HV1MKS08yNjY2N1RRRmhnUU1YbHBsVVhjU2xNUGxBMitVaVJMUmRGVkZ4eXpBa25uS0RIU1Jo
WEpmSEN3VHBERm5ZVVlDWnNXQjZ3am9Raworb01KQjRuMkhCRzhTU3hLOHRqY2M4K2RHZGpzN3Fu
YnIxTUVlTUc2YlZhWlhOWjNFbEFDeDBzL3UxVkpMSEZNT2haYmJESE5vbDdtCm1RUUZhOFR0VEVM
NHl5S1h4RERyWEhPczRVRERnZjQ0RUhvY3VuZE5yUGRPZjF5cTkxMmhkWXFZdWtOb3ZTRFc5Nyta
Z05SN3pBMTAKNjdBMHNJTE81QU1pMDdQTDlveDVrMEJnWExWOEVKbVptVHlneUtkWGVYRnQ0UzlK
S0p1NHZ3Z2NxVTQrT0FmQ0VkalhvUGl3WXI3WApYbnNsYjZsc0d4UWtMQXZ3NHM5Ly9yTTU2Nnl6
MURMeTVTOS8yV3kyMldhRzRPTXFDZGNjRk9LazVZajZjUG5oV0RLTE9GWWlMRmFnCk91R3lWWGRp
SWtIUU5zSGVqcEFWUnh4UG5uUEhtOStHQXcwSEdnNzB5NEhtdmRNdjV6cmZWNVZPd1hjZjEwRCsz
T0lsTFltcE80VFMKQzJKKy81c0pTR2Q1Yjg2VzRBQXJ5Vm1KeDRDQUhEOSt2SkZnV0VYaktWR0Yz
b3JyRWhPR2d3NDZTSk9kc1ZMU2pYQ3o0aU9Ca3ArawozWGJiVGQyeW1LRDRtaHdseTA5dmc3U0VL
eFp4SDJ1c3NZYjVyYmo4QUkySEJRWVhJQkxrOFpkR1dFcVhVMllmbHlvbU9la1lBL2o0CnhTOStV
UzAwcm54ZWlzVFJzTEluMmNRTk1RMTFKcDZwbVdEazl4Q3VhTWk2Y3ovTHY3STUwM0FnSEFjR1hT
NmI5MDQxc2xLVlRvRUYKWEhMakdMd3hraE9RcktjSW9UdUUxQXRpZnY5N2kyck02bzNtV01PQkhq
bUFteFRLTFQ2ZFpRZ1hLaFR6TDMzcFM1cnpBTXZCRGp2cwpVS2hJSUUvejhrQ1E0NEdZbFNvSmk0
Y2dUT2xraDN3YVdHNW1tR0VHelJwTmZBQkVjTHlnRnVuRWlzQjUzOFFrZ3NrT2tJWVFadGprCkg0
b3BmK2xqVERySXJRSC8zTDIrMnhhaVBENDI1RE9CRHlFSVY4QUhIM3d3UkZXNWRlQldoK3dUZDBM
TUNWbk9jVFY0L1BISGMrL3AKOTRSelEwbmZUOXdUd0JNTjFZTURkZWlua0hJWmV4eUdmdS9VUThx
cWJVVlpuUUpZYWhZQkFhenBSbFhxRGlIMWdqcDgvNXNKU0RkcAphODU3NVFEV2l1dXZ2MTd6SmlS
ZGUvcXBCQlFyRUU1QUdTSytnMWdLckJwRkNJc0pFNWNZeE9vZWl1K3l5eTZyRXc2c0RDanlQQU11
CmFyaUFPWnB4eGhrTjZGeE1SSHdUcTBsOCtNRXZ6L3JEVW9XVkkzbU82NGtWMlhycnJSVzVLVTk1
OGQzV0tzcmpPWlplZXVrUnEvODgKSTZaM1ZycDhFaDg0UG5SWXQ2b2l3QlArOHBlL3RJb0g1QUdG
aTRrNlFaVlkwMzcyczUvcEg1TUFMSlRrNnlqaTVzZGtWTEs2dDhwTwpiNEF5bDV6TTBRN3FaWndt
Q2JuNjJ0ZStscG5NTVhsZHMxME5CMkwwVTB5NVRITXh4RGhNMTVuY0QvM2VTZFk5ak5zK2RBclFN
SWtICjVGdmJqYXJTSFVMckJYWDQvamN1V04ya3JUbnZqUU80RkJFTWlBS1V6akRkVHlVb2o2d1lN
S0hCaXBDVjlUbXZYTWx4b2UwSUNYWHIKMmtMV2M0THhiN25sRmozRXBNTlpneDUrK0dGM1dlc1hK
Vjl3NVZ2N3ZqWUl2RWNoUmlFaDFpUHRnc1VFamFCekVzczVvbjMwWS9LWQpPMWZIWDlETmVNNHNB
dDJMNTBtN0h6SHBRa0hHSk0rS0dCTkVIOFJra3VCM3lvYXc0SUhHUnNEaHVISGpmRlNoNDJyUlJS
ZFZOd0tTCkFZSnNCcHFiNURSUktHd211a0Q5QWd5QjFRM0MvUUNyUkY2MmNzWVlDUkNKNWNJeStQ
Nzc3eXRrOWlhYmJOTEdXeVlvWkluSHRaTGsKakZ6TFJKc0ZBdmdNNmh6RTJNZnl3dVFIU0c0WEk2
WW5tMytWY3lCR1A5SG5zZVF5emRBUTQ3Qk83NTMwOHcvVHZtK2RvZ2h2cXRJZApRdXNGZGZqK054
T1FJaExYWEZPYUF5aGJyTDZTbFJwMElWKzAwa29yOVFWZGlnS05xeE01TG9xcy92cHFMK1VRUXdI
c0xvUXlJTWtICjlROFVMNGZPcENmbEg4cncwMDgvcmJ4engzei8vdXBYdjlMSldCcUJpVDVEQ1Uv
aTl1T3FrMXpsOXQwVzMrV1Ixd1ZpQlpZUGh3TkIKNEJod3VLeDhrWlhjRWREUXJJSXh1ZlZCck02
aDhHRFZnbTlNQ09obkpnVDMzSE9QV3NGd3hmTkZ1TzBkZmZUUlpzS0VDWXJtUnVacApaMmtFNElB
NEtVbThxUzZRQkY3ZWRkZGRScElnNnNTQldDVE9wUW1VTU5EamdOREdPa1FjRUJNSGpqUGhjRVE5
ckNMQ3V5dXV1RUw5CnFiSHlZWGtCOFE1ME53andDZUN2UVp0ckpoK09lK0YrWS9SVFRMbUVzNkhI
WWV6M1RqaHBpbGRUVlRwRnR5ZXFTbmVJcFJkRS9mNkwKQXRSUVRUZ2dncTlaa2ZrZEpwSlZDaXYr
NWxhVWpsbzlGdG5aQlpMVmluSnF4UW9RckcyQ3ltUWw0TnlTbFZwZVpyb3RnVytha1QzZApDTm9v
RXlRYkkyTXhiVHorK09QYm1qUnAwaVFyOFFOdHgzcmQ4U25uUmN1UzFYYTc3cnJyMnNzdXU2ejFK
eXZ6Vmxib1cvdWNrOG1ICkZVU3dybzhra00xV1VOTHNPdXVzWTBXcHQ0SWtrbnVQV0Evc2R0dHRa
MlVTWXNWRlVIa3FpcjhWWlQ3M25xd1RvdHhiUWZES09sWG8KbUV3V3JGZzYycTRWcUd4THhudVpW
S2dzdHAyVUhmRjN0Z0xEYkNXaHFKVllJRDB0RmprclVOZjJqanZ1c09KZWxiN0ZTbnlRRmV1SApG
Y3VKbnFNTTduY2tFeTRyN3BKV0p0ZnVVTzEraThwVmtZYjdMS3RJZlVXdnFVcy9oWkxMR09NdzVI
dkhwNXo1TEt1b1BQWnlYV3lkCm9ncmRvVzU2UVlqdi8zQnB1cjFJY0EydnJmdWc3NGRsS1BlU2Vk
bUszM2MvdDFkNkQyM2lSU0t1UjFaV0JhMjRJNDFRMEtwcUFJcXIKeEs5WXlZQ3RpaDE4RWhqaFZu
VW9aNExJWldYMTNNb0tSZXQ0bFJ1eVFtNWxsZHNLUkxJVjY0QVZseGw3MUZGSGVhL1NwNXdYTFV0
VworYTNBTHJjOUN5OVlBUzVvT3lhdWZGWmljZHFPcFhkazVkK0syMVpyc1lBMlNLWmVLeGFOOUtW
dCt5anNLQ1NRdURIMVBLbVVoSnBXCnJGRldMSGYybzQ4K2FpdTcyODY5OTk1ckpTbmlpTXVZVk1D
SHZBbnVWVmRkWmNVQ1p3V3NvTzFlc1hEWTMvLys5MWJjQnRxT3N5TnUKWGxaY0c2MzROSTg0SjlZ
K0hXOU05dXBNUmVXcXlEUDRMS3RJZlVXdnFVTS9oWlJMeDVlUTR6RGtlOGVublBrc3kvSGQxMjhk
ZElxcQpkSWVZZWtHTTczL2pnaVVqcmFIcU9BQUVxcXc4VjFkQmlaS0pleUFKSVhFcG9oQnBEaEQ4
NFhmWlpaY1NwUmE3RlgvUEpEa2VFZXRCCmpoVGNYWWhySVdkRktLaGJmUGJKTy9MQ0N5OW9EaFFD
am91Z2dpU2ZvNjdiQkQ1ajRqNy8vUE5iVGNTRW40NEJFUXVCNlJRWGhQc1UKTGt0cE56U1pFSml4
WThkcWZJeHplV3BWOUs4TjRpL0VBcUo3QkJ3U3lILzY2YWVyYTFnNi9pWjlyOXZuT1FBclFHN0Zx
cUR1WTBYdQp2ZnZ1dTlYZHk1WGpmdkVERm9YTTdZNzRKVkNSR0JqaVNYQ2xja1JnT2JFaHlFeWFj
RG5MUTlYQ0ZRdDNOSGpWVUZ3TzFLR2ZRc3FsCjQzYkljUmp5dmVPZWI5aC82NkJUVktVN3hOUUxZ
bnovbXduSXNJL1d5TThYQzJtcWw4Y21Ob0NnM05pRVVnY3NycXlDNkFRZ0wzaTYKeW5haXpCSTBU
SUE4aW1lTU5sVHhmRHZ1dUtNK0Q3N29qa2lvU0l4Q01zY0s4UjhFV2VjUkNoT0tkeGFKUlVBbk9W
bnd6ckw2WjU1NQo1aG56MGtzdmFkd1BzUTlNTm9uL3VlQ0NDeFFFUU55aE1oWDZyTHFJd3lEK2dt
RFhNODg4c3lzb0FKTXZndEY3SlNZZHRKa0oxcU9QClBxb3hNMHpTNTVoakRrM3dTRnhYVVFMYm5z
a09zU2ZESWxkRm4zMlFyZ3ZaVDZIbE12UTREUG5lR1NRWks5UFdPdWtVSVhTSGtIcEIKNk85L013
RXBNeEthZXhzT2VPUUFBZEw5S0lrZW05QXFTbHlLV3R1RHZvSENTelowZ3VtWlFEaktzb0FBdmN2
MVdJSFNTU3E1cnhNTQpMZWRSMU5PRWtrVndOdmxVbURSc3V1bW01dFJUVDFVckFBbzhmd1NBWTIy
aTdqUVFRYnE4NUQ2UWtDVE1KSmcrei9MQzlhQ1ppYnRMCnp3QVFXR3llZmZaWnMrU1NTNW9QUC96
UWlKdWdXbXg0RnZoVEpPa245V05ad3VweDdybm5kazMweGZVTnhlRkE2SDRLS1plaHgySHMKOTA0
Y0NXcHE5YzJCR0hwQnNPKy9MNys4cHB6eUhCREJiZm1WbHkrdEhpVVEzSjNsQzE2UDFzVnRCZjcz
YjcvOWR0eEdSS2pkcDV5WApLU3NyQm9UZ2Fza0Jvc0FFaHg5KytBanUzSGZmZmEweG1xeWJiVms5
R3RHZitKc0xLcFFHZVJPOEx3cTRCcXdMRXB5VlBCeHQ1Zi9ICmYveEh4d0IvWWtDU2RTNi8vUEtG
Z1Iwa0Y0aWxUcGxFdE5WWmRFZVVOMHNRTDMvRWY0aWlXdlJXSzNrUHJNRHl0Z1dpRjc0NTBvVkoK
UHBkdGdzK3l5cmFsMC8weCtpbVVYTlpsSE1ML3F0NDdQdVhNWjFtZFpLNmZjOE91VXd5N1hwQ1Vy
Y1lDSXR4b3FEb09rTzlDMElJVQo5eC9ZVGw4NUZmcHRNVENpSkY0amdTRSsrUGk0eHlMY1VIQjFB
dW9XM3ZTeThsMVZtM0d6d1IwTjF4dXl5MmE1eXBCZ1RvTG5qYUJGCnFidFdWVzBwV3k3NVU0aVRF
S1N6ek9kd0ZoRDhlUjBSdThCeDRHbHh0V0lWTTVrWWNzVVZWOVNZcHJTdkx2ZExrTHZXNWNweXE4
bXMKdkpMbG5sVWxMQ3RZT3lUNDNVdzExVlR1VXYxRkpybTJHMkdWSUE2a0Yyc1oxeEkzUW53TGNM
Z3ltZWxXVGR0NVhOUDQ2NVd3bEJCVApSZlpuckVBTjFaTURzZm9waEZ5R0hvZXgzenYxbERCL3JZ
cWxVNFRTSFdMcUJjRy8vLzNNUUp0N3F1R0FETkhXQ21jMU5jUXBWWElMCldGSHllbG8xcmJLbEVu
aXNmQWJwS1RZQmNVcS9BMjliRndJWml0VjhDYmdlMGFUYmI3OWQreEg0VlVuOGFNWDlaOFExM1E3
NGxQTXkKWmVXdFJBS04zSW1BendXQ1Z5YlQybmZpazJ3bGthU1Z3UFMyMnlUSm9BVnkxaEc4a3dt
dmxVQjRkNmp0ZDdiWlpsTUkyN2FEaVIwSgp2bFFyZ29PM1Rad3F0Q2s1U0t6a3pkRTJTd3lIM1dH
SEhkUXlVK2ptUGk3Qzhra2RrcGVrajd2ajNsSkdydEl0OTFsV3Vtd2YrN0g3CnFXcTVyTnM0ck9x
OTQxUE9mSmJsUTBiVFpjVFNLVUxwRGpIMWdwRGYvOFlDSWlPdG9XbzVRTFpTa3IyeGNsc0hJdk0z
eVFmWFdtc3QKQTBwSk10RmU2UGFSbEEwMG1wVlhYbG1Ea2dYMlZIM3RCUjVZclRTaDIwTjlvTVNR
d1hyMjJXY2ZVYjI0L2VocU51MGxxU1NXZ3JvVApnZjFZbWFhZGR0cTJwbUxwa0J3VkdnRHVUaFJK
dEVnQU9SWU1nci9mZmZmZE5xdUhLNGRmckgxa2dJYUlQUkZZWlpVMWttZW1DVDRTCnhFN0N2endp
K0xzTUlocjNFZ2RDT1ZqY2FCUFp5YkYwK1NhU0hwTGxmZWVkZCs2SUt1YTczcWE4M2poUWgzNnFX
aTVqamNOWTc1M2UKSkdBd3I0NmxVNFRTSFdMcUJVRy8vK21aWmJNZmp3UHlLdERWU1g0SGxmQmZU
QlArMytRUklHOUFrdElyeHNselByZEo4Sk1rRXNmaAozeStabU5VeVE0SzNXQ1N3cEpyWGdVUjI1
TndROXliNzI5LysxcEtZa044WVJNSThDVHpPclpwK25HNjY2U3dybC8yUVR6a3ZVeFlyCmtWZ3Vr
c1JxS1ZZQ0gwUzhCVllOOHFuSVpNNnllaWJ1U0NPU081SmNrSVNZV1hrNmZMUWpSaGtTekYvTDNE
OUZlVkZHcnRKMStDd3IKWFhiWi9VSHZweUxQWDdkeFdOVjd4NmVjK1N5clNCOTF1aWFtVGhGTGQ0
aXBGL2o2L3N0RXhoSTdtRTY0bTVTdFQ5RHhjcUNoR25BZwo2VzgvcU4xeXlTV1g2S292VmdWZ1J4
OTg4RUZGSUFMNUJ6OTRVYlExNzRZRTNPbzIxN1BxSzI0dmxmV0FLUEpHbEh1TlEySEZENlFqCm9Q
eFlpZDVvbzQyTWZCQVV2UWlrSkh6OFE4WmliTExKSnJveVRreUJLTU10YXd4Kzg4UUlzTXBlSlpG
elpPMjExOVpZR05DT0pNaGEKVjY3aGkwd3l0TTlZdVdjVlVSSWlxc1ZqeXkyM1ZLaGFZaGFLRW5L
QTlRVHlLZWU5bEVYdUR2SnZPT1FtQ1RaWHVaUEphTkhINlBrNgpyQXdmZlBDQlFpdGpPWkZKbS9J
T0dGdDh4Uys2NkNLTnVkbHp6ejF6WTI1NnJyUzVvVFFIZXBHcmJwWDVMS3RiWGMzNWJBN0VISWVo
CjNqcys1Y3huV2RrOVV2eG9USjBpbHU0UVNpK280dnVQdk10aW1wRmt5Z1k5RHg3S2dxclpkOTk5
dGRPVHNqVzRTKzJkcHN3RGVrNTYKWitBdElLeU96elRUVEZaY25OUmZIUjk0d1pWdjlRaW9KNkFC
T1JJbFRET1FrMTI2TEFsRXF0MXFxNjNzSzYrOE1xSW9WbEVrQUZpegpZWXV5TitJOEI4aE9MYmtZ
TE5td3NVaUVJREpHUzNDd3ZlR0dHOXFxNDlpc3M4N2FkcXlLSFprWVdGSElOUk84d01IYVZWWlp4
VXFRCmNxdXFDeSs4VUpHUDNJRTMzM3pUc2tMeTFGTlB1VU5kZnlYWm50MWpqejFhMS9tVTgxN0tZ
aVdVWjhQNkJlSVU5K0x2R3ByKzhJYy8KV0FuaXQvdnNzNC9HZzVEMXZxRjZjYUFYdWVyV2NwOWxk
YXVyT1YrY0E2SEdZYWozams4NTgxbFc4UjdKdmpLbVRrR0xZdWdPb2ZTQwpLcjcvSUNWaTdjZXpC
SDBQcnc1aVdtU1JWVHM0S1Z2TkJDUmI1cU1jVFhaTWxBWjRxbFJ5SVZnbUZ2d0MvWm1FNFNVUVY3
Sit0OVhFCmgwQldoNjM0NDdjZDcyVkhmUEhWbFVrUXJqcTZCa21TdU13SkN1WkNtYUZib0UzRkox
a0RySHVwdjk5ckJWbElBNXJUN2t6QVJzcEsKZ1FWeXNHcGlNa0VmWUNwZGRORkZ0ZTljblRmZmZM
T1YrQjIzcTc4UFBmU1FGVVFuS3pFVWJjZlRPN1Q5NElNUFZrVmZWaUJicDMzSwplYjlsSVdzU2Q2
RWZsMWJEaG5DRHlRM1F3dmZjYzg4UVBsMTFqOVN2WEdXMXlHZFpXZVVQNHJIUktwZFZ2bmQ4eXBu
UHNueklaOVU2CmhWajNGWFJGRUxaeW14dFNkd2lwRi9qKy9qUHBZQUlpT2FwMDhWSVMvZHBmL3ZL
WExmMHVLVnVmbEoyR0dnNTQ1UUR1T2xOTU1ZVzYKbCtDdVEzWk5SNWpqMGduZVNMU0RHMVMvcmpD
UFBmYVlHVDkrdkRua2tFTU1VSGw1Z2JxWTRhbGIwSnRjYy9SWDNqam1nQU1PTUdTaQpKaWdaTnky
WnhiZGRVOVVPcm1DNHBhWGJURkk1MmlXcloxVlYzU3BYSm9tR1BpREpISzV5OUowakFyWFRVTVZr
RDRlSG5mb0xPRm1KCi9WRzNNaUJmeGJMaWlxekZMKzVncTYyMldwczdXQzBhNXJrUnVCTktIaExs
ZnhaMHNPZnFXc1hoZmpsdTNEZ1RzczVXNWMxR1lRN0UKNnFkWWNsbVlNUlZkT0ZyZU83N1pWN1ZP
Y2V1dHR4cXkxc3ZDWDJiVFErc09JZlVDMzk5L2RCbGNyaTY0NEFKMXdjS05uR3p1V1dBLwovOVlN
TTluZUhHdzQwQjhISk1tYUNpRG9WMGw2NmFXWDJqSWg0eWVJSDZLWVdZM014Sk9YZHQxbW9vQ1M4
L3p6ejV0enpqbkhYSHZ0CnRZcmVsSFVqL3ZaNzc3MTNKdUtQd00wcWtwRkRTU0pHZ0h3SklRZ1Vw
YXlCK2Jwa2ppWm1nTGlaRUFRYUdMazl5TlNkSkFtUWJ1c3YKem9IUVFVNExFSld5aUw0bnF6ZjlB
aThuVFBqLzdaMTc4SFZsVmNjZmE1d3lSQlJLdVFTaHFLaWd4Q1hCUmtDSWk0WkFCZ29pQ01sVgpG
QkFFVXdoRGZOOFVSVkJVeUJzWDBjUkFTVUVTVUZJMEtWQlJFbTJ3RUNjdndOaEVNMTM4bzVuZCtx
N2F4MzNPNzl6UHN5L3JuTTh6Cjg3Ni9jOW43Mld0LzFyUDNlZForMXVVand6WmJtYzlrU0tvR2gz
aTAwVFMrTnRsa0U0OXZhdXI0dHBLV252YTBwM25HTkZWcnAzV1QKUUp0NmFucGN0bjBkZG5NRXhK
R3F6am1GcFRqM0IyYTZIZ1piRzNPSHB1Y0ZPWC8velpzaTJZcEhNcGZ1cExvaTVvYWZsTFhNQ3Aw
TwpvazBZSUd1UThFRU9Ba3BUcXFmZUNtU3VOajBSbFhXc3BodUtuandvMkZwQnVCWWJVdDEwNG1z
RlRhdEluSXdjRlZlelpkcjA3R2MvCmUraCs2bHRQM2NwQTZPcEdGanZpc2xRL2ErcTFWaExLb09q
cU1TMk94U2R3ZlFGYjFRMHl2MVl3dEo2VUQ2NU9LV1dyVXJXcXFRQ2gKMHJjcS9hNCtVNkQ2c0Ni
RDZicnJydk5WSmEwbzdiTExMc00yYStVejNSQXR3OGhZWTFmbnFYUFVEMCtPSmgzcWgwMkYvRlRZ
c082bQpZb2ZWcHNRQ3VyNXNhZHhUSzZzUVp4Tk5QemdhVTdNV1BXeENObzd4Q3dKTjZhbnRjZG4w
ZGZnTHdza25ZazNmZDZySFg0YlhkYzRwCmR0MTFWeTlRUE96Qll4dHpoNmJuQlRsLy8xV2dXS3Nx
TXZqTi9TcGRjODAxYVljZGRraEt2TEttMlVhMGpoQXc1WVFQUWhkS3hRWnMKdU9HR3hULzh3ei8w
a2JVbndGNklUVVhzY3JYTEw3KzhVRnJkVzIrOWRXU1hOdW4wd25xMjBqSjBHNldLczVvZ1E3K3Ir
ME16d0FwYgptVmx6bUlNUFByZ3c5N1UxbjlmeGdhMGtGZmFFM0ZQbVZmdVhYNnppVUg3NjA1OVdQ
MTc0ZGM1eFBrOWZLb3luL1d5VmFjMjV5RzlWCk1VdUtXYkVzWDRVWkRHdTJtZWNEcGFIV01XMzF5
SGRYTVVITGpqVlBWeFAzTWJlYVFva1dMcjc0WWsrNm9JUVEwcS9TZjlvUGpjZjYKNk5oVzgyU3FH
QmdGWWRxUFNHRTFhdHluVjBHR1pwaE9sTU4raUlvdUZQdWNLT2lRRGVZWlYwTzY4WTl5OWpYcUdJ
dDgzcFNldWpBdQptN3dPQjNWUzkzMG41empMMmRjZ2gzbmVOem1ucU1yWDF0eWh5WGxCbmIvL1N2
eGpuaEo5Y2JuVnNVVWFYcVBSbFZaOTJtMFhRVmZFCm1sa09wYmRWSE1FSFAvaEI5Nms4NXBoamZK
VkRSY20wUEtjMHVFMDIrU0xLRDlFeU1mVGlVU3liazZlY3RXQXBMd0FvOXkvSkpVdTkKN1NhM3Ar
MjIyeTRwdGtWUEV1cHVXc25RS3BEU0hUNzg4TU5KTVI1cWNsblRVMHN6N3JLS2tIT2N6OVBYbi8z
Wm43bXVsWFo1c0ltOQowZzZmYzg0NVBpNDBQdDcvL3ZjUGJqYnplOHNtbG13eW5pd0pRN0pLNkI3
Ykk3OVl4ZGZJOVMxM1U3cGZGVUxUaXFObGQwdFhYbmxsClg4RkZIVS91a0ZyUjB2Szc0cC9rcGpX
czZlbVlVaFpyVlVncm1pckd0ZDkrK3lYRitXaVpYVTByWFZwZGxENjBncVJqSDNyb29SNVQKSko5
Z1hWZUtCMU5zazFiM3RPOGhoeHl5UnFaaHgyL2pzM25HMVNnNWMvWTE2aGpUZnQ2Mm5wb2VsNE5j
bXI0T3E4ZXYrNzZUYzV6bAo3S3ZLWU43WGJjMHB1alIzcUd0ZTBPYnZQMW13cXVadXk2L3Q0Z3kv
QW1LVEdYOXFYbVk5dXZ2dXU3Mm9ubFlZek9kM3pWUDJKcEFyClBhK2ViSmROR1JyTUdDcVVrVXNX
dWxJQTJ3M1hWMjNNRjdUUVNrMmJUYW1FclJKNkl5S0lqY2JkRFRmYzRNZXppV3BoazgzaURXOTQK
ZzZmbXRRcmkyZVhJT2M3bjZVdGpVUVhZUmpWbCtWSldObVVGRzVXRlRFL2t5dlRDOWlNMWNUWERq
SnJDRER6L3B4VzNzaW16eXNjKwo5ckh5N2RpL1pyaE1QTTVnQjFyMTBKUG53YVp6ZTllNzNsVlkz
UnNmKzhxNk1xd3BlNG5rVlhZNTdhT21KMmJ2Zk9jN1BiMjJ4bythCk1vbzkrY2xQTGl6dW96RGp1
ZEIxcE1LYVpidnd3Z3VMajM3MG8rVmJ6NHBpaHU3UVZhamVSaTIrbUdkY2pSSTNaMStqampIdDUx
M1IKVTFQamNwQkxXOWVoNUtqN3ZwTnpuT1hzYTFBSHM3NXZjMDdScGJsREhmT0N0bi8vTVVCbXZS
cHEzTDVMRi8waXB6azRvWkxya3lZNAoxMTkvL1NMZFp0dlhmSEY3a3lsMUtsY1ZWYUtXcTVFVlJT
d3NaaUhic1didFNNYlJOdHRzNDJseFo5MTNudTNsWGlOam85cFVKOE9lCld0ZFdJeVBuT0ovVVY5
V0Z5Z29rRmJhcVZGZ3NrRmNrdHdRR2hkSWRsMm1pWlhpV0JwZmNqY1JtV0pPeFpsbFplZzhMSklQ
NXR4WXkKdGtlMXZmZmUyMVBoV3JhMnZrMDBrYmNpbkgyZmpYcGpzUlNGeGVnVU1uaDBMcFBhblhm
ZVdlaTR3NXBsZkhFWFNaMmpYQ0l0Wm1mWQpadTUySlZmSzhvRkN1WkhxdzFqeWhqNVhMUFZScGpa
V0h2dlNPTkUrY3BFY05LcHRkY1pyM1R6MDBFTmx0NTM1TzJsY3pTSm96cjVtCk9lNm9iZHZXVTlQ
anNzcWhxZXV3amZ0Ty9sRHljQUFBSUFCSlJFRlV6bkdXczY4cS8zbGZkMlZPMGRiY29hNTVRZHUv
L3hnZzgxNFIKTmV6WHRZdStobFBzUkpkNnFtdnVJVjZRenBZZnZhYUZKb0pxcWwraWlhbDg5SnR1
eXNkdFFidUZpdjIxM2NTaHJwWnpuRS9xUzAvZAo5VFJlLzdiZGR0dkNraFFVK2hIUlV6VTFGWjY4
NmFhYmVxY3EzMXZWcVJrVm42SEpzcVZJN0RNK1NobjA1SDhVTnd0Q0w4d0ZvMjhsClRnYzF0eVpm
YWVvSk1PYUZESkR5V0RxUGNiVTk5TU9pc1ZTdWJGVzcxZXJOc0xpajZqYmxhLzN3SzI1bDhPR0JW
bitVTTk5Y2VzcE4KZTMvRlV3Wk90Y21nVTZ6QllMTlV6WVZsWGh2OHVQWDNKV2Y5WGJUbDdHdFJX
YXI3dDZHbk5zZWx6cjJwNjdDTiswN09jWmF6citxWQppLzY2amJsREcvT0NVYjlqT2ZSWEhWdGt3
VElhdE5VaW9Qb1VWbm5jVTRUYXNtWlNMdnd6enp6VElTaDJ4ZHhGM0ZlOVNTcEtJYXhZCkMzdUNu
S3dDZXBPSEhucXNhaTJRb1JzRStWQnhCeTk5NlVzOW5rVnBjQldEWUJYSWU3RUhpckZSanZleUhY
amdnY2tNRUU5WnF5eHQKZzAxWndSUlRNYXhaMEg2eVZaQmhYM21kRjhYVERHWnBVNXBsWlNFYTFl
ZlF6dXhEVzVYd0xIUEtPQ0xmNE1HbStDdGxoVHZnZ0FNRwp2L0k2TjdicXMrYnpZUitJajFKQ0tu
NUtjVk5xT2crbFVMVWdkazlkT2JpZmZOMlZkYXZhZm1CcHBjdHNhdVhuaWlWUlJyelBmT1l6CjVV
ZjhiWkJBRzNwcWMxd0tyZUtSbXJnT3UzTGZhWEE0cmNTaG1wNDd0RFV2YU9yMy94Y1Z4MVppK0hD
U0VQZy9BaXFPcUJTKyt0ZUYKZHRCQkI2MHBSdGdGdWFMTElEM0w0RkN6MVFEWGQxbnZSWi9aaW9i
LzArdXluWGppaWVsdGIzdWJwNFcyT0lieVkvOWJUc0w3UHF5OAplZkRCQnl2dmZ2RlNFMzRGK0E4
MlcybnhqNGFsWWg3Y2R0aDdUZDRWUkc0VjYzdEdzd3d0bmZQNzN2ZStvWVVXN1NsMFV1MmJhWnFN
CkJsdTlTREowRkVDdnBxSmdTcTJzWUhPbHRxNDJHZEFLWUIxTTVxQlV3R1ZOSUJsMnRyS1N6QlhI
QzFTcFhnaXRXUUp0NktuTmNWblMKYmVvNjdNcDlwenh2L3VZajBPVGNZZG5uQmF5QTVCdVg5RFND
Z0FyWHFVSTViVFFCUFptajFVdmc3VzkvKzVvbjh3ODg4RUN2TGsxNQpkRnRtOXZvVktwQTUySVlW
cXFwdU0rcDdaYnNhVmxSU3F4ZVdKbmZOUkw3YTU2alhGaXVVekRVcW1TdE56L2pRdHNwMHBFcTZS
eDExClZHOVhyVGJvOC9YcjEzdDJPazBHaHhsRXZSMHFMOVNQQ29YSzJOQS9yZGpvUjFpVjVLdE5r
enV0Sko1eXlpblZqMzExeHdMNzAvYmIKYisrZnEwNk1NdUlwQTVlNWtTVmxHcU0xUjZBdFBiVTFM
cXRrbTd3T3krTzJlZDhwWlZpMnY2c3lwMWoyZVFFR3lMSmRtUjA4bjgwMgoyOHduSEtxTzJhV21w
OW42Y1ZCRjliYWIzRmxVdk0vODZsc1ZSYWwvOVhSYlQ3ejFoSHV3aWRYcHA1L3VybUtEMzNYNXZT
YnBLbmhaCkZzRXNaYjM5OXR0N24rbDhOU2xXMm1pNU9BMCszZGMrbHIwblBlOTV6eXQzNy91ckt2
SmJicmxsMzJmbEc0dEJHV3FFS3lXdHhhYVUKbTAzMTEycnMrT3FNWEVta3A4Rm1OV1NTbHU3bEpx
V21jOUU1S2UydWRMdlZWbHNsdVVTcE1KVFM2RTVhMVZFZlNydDd4QkZIK0wragpqejU2Nk1yaHVu
WHJmTXlvNEtMRm1XZzNiNUxsS1U5NWloZGpMRC9qYjNzRTJ0SlRXK095U3JySjYxREhiZnUrVXoz
M1pYcmQ5cHlpCnFibEQwL09DeG4vL2N3U1YwRWNlQW5hRDZBV1o1dW14TzczWUJWdTg1Q1V2OFJT
ZHlnUTBLcjFwMHhLZmROSkp4Wk9lOUtUQy9OeWIKUG5UZjhSVDBkZmpoaDN1cTRweUZHdnNPTXVV
YmM5M3hjV2lyQTMxN3ZQZTk3eTJVb3RiaUZZcW5QLzNwbmtHcWI0TXAzK1FjNTlQMApwWXhSQ2hB
ZkxJcG43bEplb0xJc0RqZ292Z0ptaHpYdFowdmp2V3ZWVmdNS2pTTnpMUnEydVgrbThhWENmOVVt
blZ2RlcwOXBXLzE4CjFHc0YwQjU3N0xHRmpqOUxVOUM5MVYvbzdhSzAwd3FrVjNZclphY2JsU21y
dDhNVUx4VFViMzdEbmxGTzNKUzIxMXpaQ3F1K1hteTYKNmFhRnNtWkZhdE9NcTJuUEoyZGYweDV6
MUhaZDBsTVQ0M0tRUTVQWFlkUDNuWnpqTEdkZmd6ckk5Yjd0T1VVVGM0YzI1Z1ZOL3Y0dgpudUlq
MTJpaW45NkVSaGYvTWpXbHQ5VUVSSG5RclpDWnAwRWRsZmF6eWZPMm9vZ3VqeklLcWJaQjIwM3Bp
bFZMb1d6bUt1RXBVc3YzClRmMVYxV3R6RjFwek9IUFo4UW16TWlDWkM4L2NrOHFjUDI3VDlDV0RW
Nm1ONzcvLy9zSldPWHJucGZPUVlUSnZLeWN6b3pKbVRlcjMKOHNzdjkvUzk1dEkwYVZQL1htbHY1
Mm1xUkdzcklGNkR4R0pEUE9YMEdXZWM0VjNKTUxFZy9TeFozMVRib2F3Vm9zNVZjMEg2VWYragpq
TGw1enFlSmZhWVpWOVBLa2JPdmFZODVicnV1NkttcGNUbU9oYjZyNnpwcytyNlRjNXpsN0dzUy8z
bStiM3RPMGVUY29lbDVRWk8vCi84czEwNTFuSkhkb242NWY5TE9pMGhNZ3BiZlZEVjdGMExxeTZx
SHowSk9GM1hmZjNaLytXcmFnV1U5dDRlMlZBck02V1ZPSHFyV2cKcDlIbUZsU1ltNFJQbXZWMFhU
L1VUVGFsb3JYc1IwTVBlZDk5OS9ucXg5QXZwL3d3NXppZjFOY2pqenhTbU45M29hYzZtdWhyNHEw
QwplYXIvb2RvdktnN1lSdE8xSUdQVDNKTWFPYnhXcldUMHYvdmQ3eTZVVTc2SnBuT1VvUnF4VFJw
WHM1eFR6cjVtT2U2MDI3YXBwemJHClpaVkxYZGRoRy9lZG5PTXNaMTlWM291KzdzS2NvczY1UXhm
bUJibCsvL1VBdFZvTHF0UjlkV3c5U2gvYUI3UU9FRkQybUxJdGcxcHMKc3VxcFpWL3ptdGVVcDlX
WnY1TEpMbzVrK2RwN3Z2Sk5DcWQ0Z3ovKzR6LzJERXgyVTNYZmVmbk5LeXVTR1VhZVJVaVpoS3hT
ZHBLLwphNVBOaXZFbGUzcVg5SGRZVTZZbmM2c1o5dFhJenhSL1VNWTY1Qnpuay9xeUg0c2t2MjhG
UVNzRnI1cmlKcFE5U24rVlBhcmF4OGdUCnlQaUZybTBGZGlzZTVaeHp6c25ZTTEzbElsQWRFNHZl
aTNQMmxldjg2TWZkREdxN0R0dTQ3K1FjWnpuN3lqbld1akNucUhQdTBJVjUKUVk3ZmY2WDRWdnlL
dWJkNzdLTlMyeXZlVUswNnRsZ0JzVitYcmpUVFRjOE5xeXN5TFNLSG51aXJxRjlUVFQ3NGxvSEhL
elNQTytZVgpWMXpoTGlteTBMdlE1QllrMlZVOTk0Lys2STlhRjhrQ2xMMkluUVRSMHg0dHlWcmdj
YUhWajNtYWxwQXRCV3R2MTV6amZKNis1REwxCnRhOTlyU2RQa3kra2Evc0JLNndlUXBPSDVWZ3pF
cGhuWEkwNlJNNitSaDJEejJjajBNWjFXUGQ5SitjNHk5blhiSm9adjNYVGM0cEIKYVpxY083UTFM
MWowOTE5RmErVmhvTis0Tys2NHc5MXZMUTE3WVlhTjQ2eU9MYkpnR1ExYVBRU1VLcy9jWE9ycGZL
QlhxMXllemovLwpmTGU0eDZXdTB4TVUxVFA0eUVjKzRxbEVCN3BwOUswS0lLb3BxNUV5TkNsclVm
WHBnTEtHcVFCYzAyM3JyYmRPZSsyMVZ6cnNzTU9TClhpdjdrZExGcW43RXJPMERIL2lBNzY5ODVs
MXBxZ015S3BOVjNUTGVlT09OU1ZtSWxERnIyWnV1U1ZyM0NheWludHE0RHR1ODczUi8KRkU0bllW
MXpDcVVabC9lQlZ2ZEh0YWJtRG0zUEN4YjkvZitQLy9nUEwvUXJMd2x6SDAvMlVOV0xLOHZUWTdC
UmlIQ1FDTyt6RWRETgo0cm5QZlc2dlB4VS9NNHZZSzQrcjh2Tnpudk9jWkZsOWZQTGQyMmlPRjZy
bG9NSnhsbFVsdmVjOTcvRWFDS082a2N2VnVlZWUyN3J4CklmbVVGMSt1U1hMRlVTRzZlKzY1eHcw
T3BibFZlbGlsVHozMDBFTTlwZXFvODZuamN4azlrazBHaDl6RVZFbDhWcGNyM2RDUE8rNDQKVDll
ckZLeGFncVdsM2pMMEtyQlFpbUdOSTFWRnJ4cldxM0R1a2M1eEZmVlV1b05FMGhPeXBsVFhuRUxw
a20xMXhYOXY5ZUJ0V0d0cQo3dEQydkdEUjMzL1ZvTks4NzlKTEwvWDA3NXR2dm5tU3dmL3J2Lzdy
YTdCaWdLeEJ3Z2U1Q09pSFRYVVRWTnZpelc5K3MxZHNWcFZwCnZWWTE1QXN1dU1EckVpajN0RllC
Wm0zcXd6SVp5WTNRRFE4VlpUdnd3QVBIZG1NWnI1S2V5bHRLMmJIYk5mSGx5U2VmN0xKb1JjYVcK
VzVPZVJNb3dzK0JrbjdDclNydXFUamZaZFBNNzlkUlR2V0RkdkVhRDlDTE9GdHp2aHQ3NzMvLytw
QUpndE5VaW9BY01kOTk5dDhjeApLZDVHL3l4OTgycEJDSEMyNkNtQWtoRFJDZFExcDFDc3drWWJi
WlJVSkhWVWEycnUwT2E4SU1mdnYySlo5UUJWc2F1V2hNam5menZ2CnZMTjdWYXhoTytqanh2djJD
Smh5bGlvR1pJc3R0aWpNbGFjd0M3aTQ5dHByMTRCVkZpaTc2T2RPNS9xNXozMnVrTCtobW1vc1dC
WG0KTmNjWTlvRTk0U2plOElZM0RQdXExYysrL2UxdkZ6YnBiMDBHZTdwVTdMUFBQa1dPckdCS3U2
ejBxeGJrdmVaOGNvN3pXZnVTVCtxUgpSeDVaMkVyWjBOU3dTcTJyakZsMXBXVldIUlZsT2xOTWpP
SitscjFwTEYxNDRZV0ZyWUI0blJCbGVJdlFaaDFYNDg0cFoxL2pqclBJCmQxSDFOTzg1TjMwZE5u
SGZ5VG5PY3ZZMXI0Nkc3VmZYbkVMM2ZjVmNUUHJ0YTJQdTBOUzhJTmZ2dnoxd0xwU211QnBucWRm
MzNudXYKcTdRNnRvZ0JNUnEwZWdqSXoxNVBRSlZWUWE1RWcwMXVHWllHTVZuS3dzR3ZwbnIvd2hl
KzBGMld6anJyTEhkWGtodldOTzNLSzY5MAoxeEFMV0o5bTg4YTJFUSt0SHJUVlZBWDg0b3N2enJM
cW9wVXVDejVQVm55eXJkTVpldHpkZHR2TnMzR2RkdHBwYStKcnRFd3NWN2hkCmQ5M1ZxM2JMNXpk
M2UvN3puKzhyQWFvT2JrWGhjbmZmbWY3a3pxQk1LUHFuSjR0V0JESjk4cE9mOU5XOXpnaUpJTzUy
c29wNmF2bzYKYlB1K3N5eER2YTQ1aGR5RDVJVXh5ZU9namJsRFUvT0NYTC8vY3JtVzI1VThPRFQv
dStXV1c5SldXMjJWbnZXc1o2MFpocmhnclVIQwpCN2tJZlB6akgwOWFqck5xejBPN3ZPcXFxNUxT
RmY3KzcvLyswTzhuZldnMU10S2IzdlNtU1p1dCtWN3BXRFVoc3NyU3lUSmhKYmtJCjZTSnZvOGs5
VFM1WTlzVEEveW5ZV3lsamRhTzF5dEtOaXFSWUd2bHZMbnZURFhLRERUWkl6M2pHTS9wT1Zjdncy
MisvdlNjb3NIb1oKU2VOei9mcjFmZHZNK3NacWovVFMvNWI3V2xIRVpCWElmV0l1SThTcWhYdHNs
Rkx5YnJubGx1Vm1ZZjlha2JCa1Q3dlMyV2VmSGZZYwpWa0h3VmRKVEY2N0RKdTg3eXpwKzY1NVRU
T0xXMU55aGpYbEI3dDkvelYrc250aFlwS3lBak1YRGw0c1FVRmFuVWNhSEZTZjBXQU05CmNaZHZa
ZE5OUWRWNm1uSFpaWmVsZDd6akhVMGYzbytuRlJ0TFZlZVp3ZzQrK0dDUGh6SFhuL1RHTjc0eGJi
TEpKa241eGg5NjZLSEcKWkZQOGpBdzZ5VkJ0bWlRclFQN21tMjkyZzdINlhjVFhNajQwR1pBQlcy
MTZZcVBZSUsyTUhYTElJZW10YjMxcjlldSsxMVpCUENubQp5TnlMa3FVY0hNbEZ6QlNuOU1VdmZq
Rjk4NXZmOU5WQUpXTDR5VTkra243djkzNHZXY1Y1OTVOVjUxb05ITmRVdTJSWUpwRngrN1R4Cm5S
NDZORGx1MnpqSFpUam1LdW1wQzlkaGsvZWRaUmlmdzg2aEMzT0t1dWNPYmMwTFd2bjlIK1pueDJm
dEVMQUxicWxpUUFZcEt1YmoKaGh0dUtPenB2c2NheUErMzdXYXVZZTZiYnRtb0doVkYvcWJtK3RC
M1RNVWVXTEUrLzB6VnFpMDdsbGZydHVEMHZ1M3FlbU5acjl4ZgozMjd5WG9YZEFzY0tTOGxYUFBy
UmorNk5TM3NDdGZEaGM0N3plZnE2OWRaYkN5dndPUEk4YkVWcTVIZjZ3cEltRkxhazNHTWlHWGJa
ClpaZEMrZE9ITlV1cldOZ3FtMWRoVit6UnExLzk2dUlGTDNoQjhZMXZmTU9yc3cvYlo5aG5GaXpz
WTJLU2ZNUDIxV2VXbWF5dzlOTkYKM2VQcDZxdXZMaXdqM1NneFFudyt6N2dhZFdJNSt4cDFqSGsr
NzRxZW1ocVhiVitIZGQ5M2NvNnpuSDNOTXphbjNhZk5PVVVkYzRjMgo1d1Z0L1A1VGlIRGFrZDdB
ZGxFdStsbFJLTmhXRXgrcjAxR1k3M3RoUy8remRsSGI5dllVc0xETUY0WDVQOVoyakZFZEt4amFN
b0lWCkgvclFod3JMUEZWWUxaRENza2IwTnJkODJvVnVjazBiUi9aMDM0c0dLWEdBcFI0c3JydnV1
c0w4T0F0THo5ZVRiWkVYT2NmNVBIMVoKZXVOaWp6MzI2SjNDajM3MG84TGNyU1lHSUdvSEJTbWFt
MVNmOFZIS0lLTkdOL0hCcG1LTzFXWXJJWDJGR2F2ZmpYc3RBNlE4bHJrdApGZ29hbkxXZGNNSUpo
Ym1lRmRKeFhjMWNyd3JMTk5mWHZSaG9BcWlDVkFyNDdIb3JPZXZ2b2kxblg0dktVdDIvUzNwcVls
eTJmUjNXCmZkL0pPYzV5OWxVZGM3bGVkMkZPVWRmY29lMTVRWk8vLzR2ZlhYT05LUHJwVFM1eS9P
aUJjM29DbWl6cHg2SHBwa3JzbXBSZGNza2wKYm5oRXlSQzBLS2VjUDI3ejlHVnVUTDRDcHhVbnF3
ZmdLenhhOWJFVWhCTlB6UUtwKzY3VDZ2SDFXdm9jYkRJd3EwMVpUVlR4M2xJdQpGNS85N0dlTEF3
NDRvTEI2T05WTmhyNnVHaUE2bGxhbUxKamUreG02dzhDSHFzU3NqSFF5b0pTbHBLNVd6WDZtaXJq
bVhsaFlVZ0kzCjhwVjl6RnpkT3I5Q1V0WHJvcHh5OXJXb0xOWDl1NktucHNabDI5ZGgzZmVkbk9N
c1oxL1ZNYmRzcit1WU95ejd2S0E2dHBxTmNyVWoKMHlEUU5RTDI5SzBWa1JTRHNNTU9PL2kvVmdS
WTBZTXFwa1dacmxSa2NkOTk5MDNtaXVLSkVLYXBSYU1rQWVPYUF2bWswMnBUc0x1NQpYSG1BdjdK
c3lmZGUyVUhNK1BBaWxMLzd1Ny9yVmVlciswenpXZ2tjVkhqejYxLy91bWN6VW9Ea3FHWS8vRjRV
U3RsZWxQUkFXVXJxCmFpcGtwWCtTVFZsbExDVnozL0ZVWCtacFQzdGFVbVlnWmJLanRVT2dDM3Bx
Y2x5MmZSM1dmZDlwWnhTdDlsSHJtRHVzMHJ3QUEyUzEKcjU5R3psNDNYZ1hoN3JmZmZoU2thNFE0
QnhsRlFObkdGR3duZzBEVjJwL3doQ2VNMm5UbzU2cGFQNjV0dDkxMmE3NVd5aytOZngxUApCU2N0
VmlRcENZT0N5aGRwajMvODQ1UEZXbml5QWxzTkdkdVZBdXJOZmN3enJFMUtOVG0yb3ltK05EZTBw
SXhlTWtCVTFIS3dLUUdBCmtpemNkZGRkR0NDRGNCcDgzd1U5TlRrdTI3d08yN2p2TkRpVUdqOFVj
NHJHa2RkendHVmJFb3Q4UHFiaG5udEg1UE1ZSnJ1bE5mVkEKWFFWWmRiVnA2Vk5GMDVxT3VSQVBI
ZHV5Y2hXV0hyaFFUTUl5dDV6amZKYStyTjVNTC9oN1hyNEs0Rlp5Z09weHk5Y0hIWFRRVk4zSwpC
Y3VlL0UrMWJYV2owZ1hMcXNwN0lQdTBzUlJLL0NBM3IxekI1M0lsT2ZmY2MwZkdjdDE1NTUzRnU5
NzFycXJvZmE4VmZDOW1uL3JVCnAvbys3OUtiVXFmNnUyakwyZGVpc2xUM2IxdFBUWS9MNnJucmRW
UFhZVlAzblp6akxHZGZnOXh6dmUvU25LS3V1Y015emd1cVkydngKdTJ1dTBVUS9mWk9hWmNPaHF1
VWFlTlA0MmJkNTdzcklZclVnaWlPT09NS3pCalVwaTZVdUxhdytSR0ZQNVZ1cGttMXBZRDNnWEJQ
TQphak8zSXE5a1B5ckxVM1hiYVY1WGIwRFRiRDl1bTFuNlV0YXhtMjY2YVZ4M1UzMm40Ry9wcVhy
c0Y3M29SY1cvL3V1L1R0eGZSb0NxCndpb1QzS3hOQm9pbDdpMHNKZkxVdThxWXRSV2ZtYkp0amV0
Y1A0aHZlY3RiUEtIRVBNa2tGTGhwS3lCdUNBNEwyQjkzN0NhL3ErcDIKMGVQbTdHdFJXYWJkdjI0
OXRUMHVtN3dPbTdydjVCeG5PZnVhZHN6TnVsM1g1aFIxelIyYW1oZTA4ZnVQQVRMcnFLOXgrd2dY
L2JTbgpiNzd5aFJYVDZXMnVKNkpXK0c5b2xxRGVSaDE1b1FEZExiYllvckFhRGNYM3YvLzlScVd5
bWlURjdydnYzdWd4cXdmVDVIai8vZmN2CnJHcHBZVFZjQ3F0aTNadG9tOXRTZGRPNVgrY2M1N1Aw
cFdEb1hDdHdNdElzOXFKUVVMcWVwSTVyTXR3VWRDNjlhdVZEQnE0VmFTcjIKM252djRvSUxMaWgr
K01NZmp0dTk5OTNmLy8zZjkxNVArK0s4ODg0ckxONWsyczNIYnFkZzRaTlBQdG16YnltZDhDeE5Q
MjVLUmF6MAp4UXBJejdVYU00c01zMnc3eTdpYTFHL092aVlkYTlIdm05SlRHK095cmV1d3FmdE96
bkdXczY5RngyUzVmNFE1UlYxemg2Ym1CVTMvCi9tT0FsS083QTMrN2VORXZndVdrazA3cVBYRit4
U3RlVVZpUnQwVzZhM1JmMVhxUXE0dGNzbksyaHg5K2VLZ1JwcWZCVnB5dStKTS8KK1JOL3ltMkJ1
OFc2ZGV1SzQ0NDd6ZzBCcFYydEduUTVaUnJXbDFJQTY4bWRVc3RhWVNUUDdwVHJpWFhPY1Q1TFg3
cUpqOU9uVWp2bQpiakpVZEIxVURaOHZmT0VMYnR3cXRmRSsrK3hUV0dCNmJWbWhsUGxIazcxRm1z
N0JDblo2SFJPdDhtZ1Y2Y1liYjV6WXBZd01wZCsyCndwckYwVWNmWFlpL25xeEhhTE9NcTBubms3
T3ZTY2VhNS9zMjlOVDB1R3p6T216cXZwTnpuT1hzYTU0eE9XcWZDSE9LZWVZT1hac1gKTlBYNy95
Z3AyZ1liclFNRUh2V29SL1drV0FhMUtFdlAyOS8rOW5URkZWY2tTem5xVmJhVmVTaEtzeWUyYWEr
OTlrcTJHcEJOWkRNaQowdXRlOTdxa2dFZ0ZCZDkzMzMzSmJqNWVFZHVLL3FVSEgzelFqL1dxVjcw
cUtXT1NHTnFrTDVuTFFsS2xiak1Jc3NreXFpTlZzZjdZCnh6NldsSjNKWElWR2JUYlQ1OUwveGh0
djdQdmtIT2V6OUdXKzJPbVZyM3hsTXBjeXo4Q2tJRzZ4dFNlalh1bGQzeXN3M09JbFpqcTMKY1J1
YlVaTk9QLzEwcjdDdUtyNDZucm4zSldYY3N2b3F2cXNDMGxYMVhwbXhsS2tuWjFPZ3NUSk5LZkJl
RmQ3bmFlYXJuM1FlaHgxMgpXTkw0dGRYTWRPbWxsODdUVlpoOVpobFhrMDRxWjErVGpoWGwrNmJI
Wlp2WFlWUDNuWnpqTEdkZk9jZGtsRG5GckhPSExzMExjdnorClcxMHQvMzNUYjU3Vk4wdG1PUHFj
UjJPaE9yWXdRSEplSFF2MlZWWE1NaGdnbW5ScW9tSSs4OG44TlQzbHFSVWlUT1orc2lDcDRidWIK
ZjNxeVZRTWY3RTk2MHBPR2I5U0JUMis3N1RiUFhpUWo1UERERDAvbTI5KzdLQzBRM1kyMU04NDRv
d09TNWhIQjZwc2tLL1NZcktpaApkNWh6bk0vYWw2NnJtMisrT2QxeHh4M0pncmlUUGYxTlZvalMw
OFZhZll6MHNwZTlMQ2xWYmM1bUt4MSsvcGJjd0kwZnE1cWVyUFpMCnFtYk1zc0RzWks1WmJuVG1Q
TGI2MGdSSWh1UXh4eHpqcVlkbjdWOFpaMndWeFkxaGMwdDBZMm1ERFRhWXRadFEyODg2cnNhZFhN
NisKeGgwbjJuZE5qOHMycjhNbTdqczV4MW5Pdm5LT3k2Ym5GRGxsbjlUWHNzd0xsUEZSUm94K0sv
UWJwNVR2ZXFDcERKSTc3N3h6YjY0agpIaGdnazBaRmc5OTM5YUtmRjhGRkYxMlVYdnZhMXlZTFBQ
ZFZFQmtmYW4vN3QzL3JULy9OcldqZXJ0ZnNweWRxNWpJa2w4Smtia3RwCnM4MDJXN05ObHovUWsz
Zno4VTlXRU5GclVyejYxYS91c3JoVHkyYUY2SHhTcjFvUWV2S3Zsbk9jNSt4cjZwT2FjME9OemFx
OGMzWXoKMTI0V3k1UmsrRmpzaHFmSW5hdVRHWGN5dDVla2h3SmF5WXZXcW5xUzNoWnBPZnRhUkk1
Uis3YXBwemJHWlp2WDRTZ2Q1UGc4NXpqTAoyVmVPY3l2N3FHdE9ZZFcvazFLWjYxcDQ3R01mV3g2
dTliOFI1d1Y2aUNxalF3L2M3cjMzWG45d3BibVpWdmkxR2w4ZFc3L1VPbUVFCldGb0NLdHFtSlRo
TnFsWDRyV3h5STlJVFg5VUt5TkZVVzBIMUJnNDU1SkJrdm92aGpBK3JudTBYcHk1UzFVZVFTMWIw
cGh1NmlqUloKZGloZllaQnVWcjFWYjd4TnMxRGhQNHZqU0JaajVEVkltamkrQ21xOS92V3ZUNW8w
MExwTG9FMDl0VEV1Mjd3T3V6c0tZa2hXMTV6Qwo0dHJTbVdlZTZTdmpYU0VSZFY2dzZhYWJ1cnVW
dkZCVUMwb1BIL1Z3VlM3UGd3MERaSkFJNzdNUjBCS2NZaG0rOHBXdnVNOTl0V09yCkkrRHVLSW9S
bWJkcDFjT0NHZDJkU1M0aXFqQXR0NlpvelRJcHVTdVc1Slp4ZHUyMTE3WnlDcGJlTmN0eDVXOHRk
eUxwUnMyQ01FTSsKQmM4Q28wT2RhQVhLZ3Q0OUZrUkZFZXR1bXRncW5rWkdpTzRCdEc0U2FGdFBU
WS9MYm1vQnFhWWhVTmVjUWc4dUZXZHBxY1duRWFPUgpiWnFlRitUNi9iZXNqdWxMWC9xU3I0QWNm
L3p4N2dIeG5lOTh4MWVYQnNGaGdBd1M0WDAyQW05Kzg1dVRBcXZsZTd2dnZ2dW1IWGZjCk1Xbkp2
V3h5bGJLYUFzbXlQNVVmemZSWGNTVmFMcjM0NG91VG5yaGJFVDhQdHAycGt3NXNyQW03bGl2Vi92
TS8velBkZi8vOWpVdWwKRzdCbFo4cHlYTVZVSEhua2tSNDBiOFdpUFBBN1M4ZEwwSW1NWmhsa1Np
aHcxbGxudVl0U2s2ZGxtZWg4U1Z4K3VuVTAvWUFyVUxScwpTcXFnYXZPS2M2SjFoMERYOUZUM3VC
d2szL1oxT0NnUDc2Y2pVTmVjd2xLaSs1TjZxN00wblNBTmJOWGt2Q0RuNzcvaURaVzR4d3J6CmV0
eW5GWnhObHNMZmc5SFhZRE4vU0ZwSENKaHllalVYT2lKU0ZqSE0vYVl3aTloVGVWYUxsOWxFeGV0
TVhIUE5OWE1kUnpuckxhdFcKWVV1bm5pcldqSkM1K21sN0orWGVWbjJFOWV2WGU1RzJiYmZkdG5H
UmZ2N3pueGUyV3RYSWNYT084NXg5TlhMeS8zK1EwMDQ3clhqaQpFNTlZYUF3MzNjNC8vL3hDcVNM
cmFHWkFGNm9SVXRiNXNNeGJmbjNXY2F3Nis4dzVybkwybGV1Y3U2aW5Pc2ZsS0c1dFhvZWpaSnIz
Cjg1empMR2RmODU3UHVQM3FtbE9NTzJiVDN6VTVMNmpqOTkreWZCYmYvT1kzQzB2NlVsZ3NTQTlm
ZFd6Vms0N0lqa0NEUUVsQUdYTjIKMkdHSHRPZWVlNVlmK1YvRmJ1aUovN3hOOFNXTHVIRE5lOXpj
KyttSmdWS2I2cW0wZktJVkI5SjBVNkN3RlpwTFNoUlFCb3NQeXFDVgpHVDNOMWovYVlnU2UvdlNu
dXp1VXhyRGRtWDBWVU12VzB2OXpuL3ZjeFRxZnNMZmNIK3RxV3YxNitjdGZudjdnRC83QVZ6MDBw
alcyCmFkMGkwRVU5MVRrdVI5RnY4em9jSlJPZlR5WlExNXhpOHBHYjI2TEplVUVkdi8rUGU5emoz
T3RsSERHeVlJMmowL0IzMWVBNFRVcVcKcFZraHUyUlBlOU94eHg3YmQwcEtSYXFzUE1xQmJaWEgr
NzVieFRmS0dMVE5OdHQ0aWxZdFh6YmRaSUFvUmtCTHYwcVhweUF5R1lnSwppbGZTQU1YWTZFYjEz
ZTkrTnozbEtVK1pXN3ljNHp4blgzT2YwSkFkclVwNnNxZEtIcE9rdndxZVZEcHEvWDNBNnBBb01Z
UHF3R2lwCldzdmY0bHpXZTVFN3lsRkhIYldtMTd2dXVzdGR0OVo4MGNFUC92cXYvenBaOFVGUGRh
eHhKUC9xdXRKdjEzSDZPY2RWenI1eW4ydDAKUFUzaXNVclhZYzV4bHJPdlNUcWE1L3RWbWxNME5T
OW80L2NmQTJTZTBWL1RQbDIvNk9jOWJjVm5LQmhWaGUwT1BmUlFqOWY0N0djLwo2OFhaVkxEbnhC
TlBuTGZycGRydjR4Ly9lTHIxMWx1VDB0aTEyWlEyV1UvalZTZEROeVU5cGRjVFU2VTJWbkM1bm00
djBuS084NXg5CkxYSk9nL3ZxUjBOcHBoVjhyU0JmeFVESkQxYlhnTG5ZcGV1dnZ6NzkrTWMvVG1l
ZmZmYmdyaVBmYXhWUmhyeGlucVNIUlp2ODRGVWsKOUNVdmVVbXZTT1NpZldwLzVYdzNsMEwzK1gz
VG05NlVQdjNwVDN1ZEZXVjFrZUdxSjJOZGJ6bkhWYzYrY25McnFwNXlqc3NJMTJFdQpuZVljWnpu
N3luVisxWDVXYVU3UjlMeWd5ZDkvTGYvVE9rTEFMckNsakFFUlhzdTZVMWcxek9MWnozNTJZY1Zw
Q2l2QVYxaHF0bzZRCmIxOE1xNDFTMkJQalFuNlR5OTV5anZOWitsSzhoZUpzckFoaG9WZ2tXOUVw
YkdXbnNFcmtoZFZkS2N3b3pvcmVKbEtGQmZZWFZqeXIKMTY4K3N4VS9qNGV5RmNEZTU5TzhzRUJ1
dnovODhpLy9jbkh5eVNjWFAvdlp6NmJaYmV3MmxwMmtNTGN2ajlzd2w4aXgyMDc3cFFXSworcVpX
ZkxLd3RMKzkzV3lseDYvN3V1SlBlZ2ZLOEdLV2NUWHBjRG43bW5Tc1diN3ZzcDV5anN1MnI4T203
anM1eDFuT3ZtWVprN05zCnV3cHppbVdjRjFUSEZnYklMQ08rNW0ycmlxbjVVSFRmSVFLYXBGb2U4
ZzVKVks4b09jZjVySDNKR05DazJQeHJDL1AvOWlRSTZzT3EKbnhkV05MUFdFOWNFWDBhbXBTZjJZ
OXZxMzB6SEt3MlE4cHd0cjNwaHF5R0ZWU3FmcVovQmpTMERXNkcrYkhXaXNGV1p3YTluZm04Wgow
QXFML1hDajVzWWJiK3piMzl6TUNvdHhjU093NzR1T3ZTa1o2KytpTFdkZmk4cFMzYi9yZXNvOUxz
dHpiK002Yk9LK2szT2M1ZXlyCjVNN2YyUWdzNjd5Z09yWVd2N3R1Y3EwV0FBQWdBRWxFUVZUT3hw
U3R4eENvS21iTVpud0ZnZEFFY283emVmdlMwN1BYdmU1MWhiSTAKYVNWT1QwbnJibGRmZlhWaFB2
ZCttSFhyMWhVdmZlbExaenJrb0FGU25ydlZqdWxsblpxcHc4ckdNb0RWbnhVTnJIdzYzMHZMQTE5
WQpiRXZ4cTcvNnE0VW11UmRlZUdHZmZGZGRkVlZoc1U0TEcwN3pTVGZkWGlWYi9WMjA1ZXhyVVZt
cSswZlFVODV4V1o1N205ZGhuZmVkCm5PTXNaMThsZC81Q1FBU3FZNHM2SUVhRGxwZUF4cGdLNnFu
cThtQ3pwN1VlUS9DbmYvcW5TYTlwRUdpYXdFTVBQZVN4R2FvOHIwUUkKeWpwVjlYbXVTeDdGOTVU
SkZyYmNjc3QwMjIyM0xYUW9CWFZiR3RGMHd3MDNKSnZzTDlTWEt0YWZjODQ1ZnQwdTFKSHRyUGlQ
YjMvNwoyeDR3TDdrVTc2S2crN0s5K01VdjlrRDhSYysvN0krLzh4R0lvS2VjNDdLazFOWjEyTlo5
cHp6dnlIK1pVMFRXM21qWk1VQkdzK0diCk9RbG9NbWY1bnowSWQ3QUxwWGxWWmhJVksvdWYvL21m
d2E5NTN4S0Jhdkc0bGtSbzdMREt5cVJVc1k5NXpHTWFPNllPSktOYzFlSEYKK3ZiYmIxOW8vR3Rp
cGttOUNqM21Tb3RzcXpKVHB3Qlc4Z2hsOFJyVlpCekp5UHJBQno2UXZ2clZyL1psNzFJUStvWWJi
dWhCK0tQMgo1L05tQ0VUUVU4NXhLYXB0WFlkdDNYZWFHVW4xSG9VNVJiMTgyL3I5eHdDcFY2OHIy
N3N5L3d3MlpWVTY3N3p6MG1jKzg1bDA2cW1uCnBoTk9PQ0dwVWpLdGZRSlcwREVwelN0dGVnS3Fj
YkhwcHBzbVZYcWRwcG5MVmZxYnYva2JOeGl1dmZiYWlUblNoL1g1akdjOEk1bGIKaXYvVDZ6YWEw
Z1RyYWE3NXRZODkvT2FiYis3bk83aVJzcXc4OHNnalhodG84RHZlTjA5Z1dmUTA3YmlNZmgzT2V0
OXBma1RWYzBUbQpGUFZ3VmE5dC9mNnZuU1hXZDQ3MHZJSUVWQ2hROVEyVUR0RUNjSlA1ZzN1TkNV
M2NWQU5FYVVubENxTUpEYTA5QW5KRE91T01NM29DCi9KK3JadSt0djdqdnZ2dlNlOTd6SHEvcDBQ
L05hcjdUSk5veVVmbjRub2FBVmlydXVlY2VyM3V6Ly83N3A5MTIyMjJhM1hyYnlIalgKcW9kV1A5
cG9XckZVMnVDZGR0ckozU2VmL09Rbmp4VkRxMHhLR1d3WmpYcmJxWjZNMG00cmxiTnF6ZERhSnhC
ZFQ3T095K2pYNGF6MwpuZlpIV0Y0Sm1GUGs1YW5lMnZyOXB4SjZmbDJ1Ykk4cXNxYmM4bzk5N0dP
VHBSNU15bCt0ejFSTHdvSjh2UmFDNm9DVVRaTXAxVXI0Cnk3Lzh5NlNZRUUxSWpqdnVPUDlYYnNQ
Zlpnam9SMDJUUThYbHFPNkhDdU5kZXVtbHJqK3RVc240c0t3MFhzTkIzODFTdjZLWk01aDgKbE05
Ly92UHBoUzk4NGVRTnA5emlrRU1PU1paUngydWtUTG1MeDVxbzBLT2xBazZYWFhiWnRMdjVkcXJY
MFZiVHFvdHE5NXgxMWxsZQpIOGJTYVU4VVJZYUtCYUdudmZiYUsxbVdNV2Vsb3BhdmVjMXIwbHZm
K3RhSis3TkJNd1FpNjJtZWNTbXFjdWxwNmpyc3duMm5tWkdVCi95ak1LZkl6SGRaalc3Ly9GQ0lj
cG8yV1Bxc0d3ZzU3QXQyU1dETWZWbTRtZSsrOWQ3SWMxbW5YWFhkTmYvN25mKzRySGFxNks5L3YK
bTIrKzJRMlVQZmZjczdjeWN0MTExN2xiaWI1NzlLTWZQZk14MldFeEFuS0gwL2lUejM2MXFlQ1RB
cDMxMUZBcldKcDRWc2RwZGR0eApyL1dVc3F5RVhkMS8wWEUrYlY5eUYxTGN3cm5ubmp0T3pOcS8w
MHJneTE3MnNuVDg4Y2RuTllicUZQeHpuL3Rjc3BvcHlXcWx1UEh4CnhqZStNVm1OajZuSGdSNUd5
SGpWUXdpNWpTMGFNRi9udVpaOVR6dXV5dTNIL2MzWjE3ampMUHBkTkQwdE1pNmJ1ZzZidk8va0hH
YzUKKzFwMFhHcC81aFE1S0k3dUkvZnZ2eEtNeUNWU2JuT2FPK2czNDZsUGZhb0xVQjFiR0NDamRk
TDROMVhGTERveGExejR5Z0V2dU9BQwpIM0F5UEN3ZHAyZkZVUUJlT2ZHd2VndnVBNjdWRWpXNXNm
ektyL3lLR3llVmJualpJSUhmL3UzZjlnRHAzL21kMytrN3FtNzhWaStqCmw3MnA3OHNwMzN6M3U5
OU43M3puTzczcXRuYkpPYzZuN1V2WGsxYmZaT2hXOTVueUZMSnNwdFVTM1pTMTZyZmpqanRtNmJP
SlRxeUEKb0s5NDZSclY2cGlsTDA2LzhSdS8wY1NoV3p0R2RZd3NlaS9PMlZkclFEcDQ0SG5IWlpQ
WFlaUDNuWnpqTEdkZk9ZWU9jNG9jRkVmMwprZlAzWDdHa1gvbktWOXhWMkdwTEtZOTVldC83M3Bj
T091Z2duMHRVeHhZR3lHaWROUDVOVlRHTC91ZzFMbnpsZ1BKUnYvZmVlMzBWClJPNVltbkFwdmtD
QjUycHl1ZnJ2Ly81dmY2S3U5M0xWa3V1UDFXTndpMW1mMFpvaklQWldEVHRaWFlEc0IxWE1nOXll
emovLy9KNXIKWGM1eFBrdGZlZ3FqZUNTNSsvM21iLzVtMzdscXFmOUxYL3BTMm15enpkSUJCeHpR
OTEydU4zZmVlYWU3R1ZvbDgxeGRkcW9mM2JQawpWcWF4dE8rKys2NlJUWUgzMjIyM25UK1VXUE5s
eHo2WVpWeE5FajFuWDVPT05jMzN5NlNuYWM1M2NKdW1yOE9tN2pzNXgxbk92Z2I1CnovT2VPY1U4
MUtiYkovZnZ2MWJIOWZ1cWROZWFVK2czVlhFN1NwNGdJNlE2dG9nQm1VNUhiRFVsQWNVSHlOMUdL
eDV5MlZHd3FkSWUKeXQvMjVKTlA5bDYrOWExdnVUdE8rVjQxQTJTb0RNdHlNZVZoMld3QkFnODg4
SUFIRnFzTCtlZy84WWxQWEtDMy85dFZMZzU2YXZXVwp0N3pGMDkzSzdhanRwbVFIU253Z056S2w0
TlVZMVhqVk9aY3BaZVVtOW8vLytJL0pDdVZsRjFlQmZzdmM5TU55K3VtbnU2dmI0SGtxCnZ1and3
dzlQQng1NG9EK0EwRW9LclIwQ3E2Nm5wcS9EdHU4NzdZeXlmRWRsVHBHUDViQ2Vjdi8reS9qWWZm
ZmQwOFliYit6QjdmcHQKdmVXV1d6eGo1T0R4TVVBR2lmQitJUUtLNGRCa1U3RUVjdG00OHNvcjAr
TWYvL2krUHJVRXJxZWt0RzRRVUFZeUZjalRrOUViYjd3eAp2ZXBWci9JbkY3LzFXNzgxbDRCYTNk
cGpqejI4M29zNldMOSt2UWV2ejlWWnhwMWs0Q29MbTR3aTFhbFJXbWdsU05CaytOZCs3ZGY4ClNj
MjIyMjZiTnRsa2s0eEhYYTJ1Wk1ESjdiTGFOSzYwQXFxbllGcnF2L3p5eTlOSko1MVUzWVRYRFJO
QVQ4MEI1NzZ6R0d2bUZJdngKbTdSMzd0Ly9ILzNvUjE3N1NaNHUrcjNkWUlNTjBuT2U4eHgvNERj
b0N3YklJQkhlTDBSQU1RT2FhTWpuVHhNUFplN1JEVVQrdXNxcQpwS2JKbjFyNVh1NWFnN0VIdmdI
L05VSkFUeWowdEVJdVNDb2VwNmFNUjZlY2NzcGN4MWVzaitKR3RQejZpbGU4SXAxNTVwbHo5VlBY
ClRyb2g2Z2tOclQ0Q0NqcVhNYWVtVkx4SzJhc01XbXBhQVZVR01mMDRUVXJsNnp2d1gyMEUwRk50
YU5kMHpIMW5EWktwUG1CT01SV20KdVRmSy9mdi96R2MrMDJNRWxmQmw2NjIzZHJmbjczM3ZlNTZF
WkZCSURKQkJJcnlmbTRBeTViemdCUzl3aTdkYVdWTXVXWExya2N2Vgp6My8rYzNlRFVWeUFNZ0Vw
NDVWV1JIUnpwclZEUUpXcHRSTHcwWTkrMUlPa0pZVU1SaGtRODZ5Q3lNVkRjVDIwMVNEdzR4Ly8y
STFYCnJYaks5VTdaaVZRdlJ1bDJsUTFQNzVVQnIyd3FCS2RsZi8xUUtVV3ZZbTUwMzloKysrM0xU
ZmhiQXdIMFZBTlV1cXlWQUhPS1d2RjYKNTdsLy8rVnlyL1l2Ly9JdjZlNjc3M1pQQTduWXErYmJZ
Q01JZlpCSWkrK3J3VGxhUFlqV0ZNdXh3dzQ3dU5oeXNaTDdsUVpqZVM0NgpQMlcrdXZycXEzMzE0
NUpMTGtudmZ2ZTcrNEtTb3Azek1zaXJwNkFLRGxPdEJxVk9WdE5UYW1VN1V1cGFCUTZYVGFsVXRX
STFUUjJJCmNwL0J2em5IZWM2K0J1WGsvWFFFNUhLbnlhMk1DZ1dmeTQxUGZ2WWFTM3J5SldOV2hV
Zkxla0JLTnFHbmJsb1JVVDJRKysrL1A5MXcKd3cyZFdwWEtPYTV5OWpXZFJvWnZ0WXg2R242bXEv
bHB6bkdXczY5RnRNR2NZaEY2MCszYjV1OC9LeURUNllpdHBpQlFHaC9hVkNzZwpWY05EbjJtZ0t3
UFJYL3pGWDNpUXJ5YXh6My8rODkwSXdRVkxoTnBwY3BkU3Z2cnl5WVdra0srKzBpVXJkYTIrMHdx
V3NtWDg1Q2MvCjhRbWxsbGVWMllvR0FRWDBLOGU3VWkrcTZZbWFVaThyKzRtU1VKUk40MG1HUjNV
MVJOL0xTQm1NR3luMzRXOCtBdWdwSDB0NmFvWUEKYzRyNk9iZjUrNDhCVXI5K1YvSUljcnZTMC9L
eXFaSzJKck5YWEhHRkZ5ZlU1NnA2cmdBb0ZTdlU4dHgrKyszbmxaT1ZPNXJXSEFFOQo3VHJ4eEJQ
ZGZhWjZWT2xMdnZwNkNxVW4zRC85NlU4OW05bEdHMjNrcmpYVmJiditXcG10VkFSdjFkcEZGMTNr
UmtEMW10S1RjQVdGCkt6QlF4UVZ6TmNVUUtaaS96UG9qWTBOWnh3NCsrR0EvaE1hUENsdVdxMnlx
eVNJWFRHVkxvelZIb0F0NmFuSmNOa2QyN1pGVzliNnoKbHNUaW56Q25XSnpoc0I3YS9QM0hBQm1t
RVQ1Ym1JQ3E2c29mWENuMFZIeE5HWWNVVENZM24ybzc1NXh6a2laSENsVFdEMk9abXJlNgp6U0t2
VmZkQmt5SUZSbXRWNWcvLzhBL2Q4S2srbVpXTU8rMjBrOWVya08vNktyWjE2OVk1bjhGejE4MUpx
eUg2RjdsZGRkVlZIbU9nCm9QaGxic284SXI5cHhWUnB4ZXJ2L3U3djNEVks0N3AwcTFBZEVoVUps
U3RrcnFiVlRqMWtVRnlIc3FncHJrTXVtRHJHa1VjZTZZZlIKY1RmY2NNTmV3Vkg1Q0NzYkU2MDVB
bTNwcWExeDJSelo0VWRhbGZ2TzhMUFArMm5UYzRwVm1qdTA5ZnZQM1Qvdk5VSnYvMDlBcmxYeQor
MWJSSjZYY0hFekZXd1gxOHBlLzNKK1M2dW5vb0lGUzNXNmUxM3A2THhlUHN2amJpMS84WXErOHJo
L2lja0ttTkt5YVBNbFFXdVdtCnA5SEwybmJaWlJlUE9WQXRDbzBGalRXdEJKUTFUK1JhcHN4ZmNn
ODY3YlRUd3Ezd2xIb2JyTGV5Ly83N2UvckRjcXhydS9KMWVlNzYKN1BycnIwKzc3YmFidTAzcC9h
enQ2MS8vdXNkdzNIYmJiWjdTV1lIbXV1WTFwclRTb2lZWElGVlFMOThyM2JHQ0UwdDVaajBtMjg5
TwpvQzA5dFRVdVp5ZVVkNDlWdWUva3BUYTh0NmJuRktzMmQyamo5eDhEWlBoWTU5TUZDV2hDbzZZ
bm90TTByVkxvWCs2bUxEejZWemE1CmZTalY3S1JKeit0Zi8vcWs2cXY3N0xOUHVTdC9BeFA0d1E5
KzRCbll5bFBRay9oUGZlcFRYcTMxcnJ2dVN0Ly8vdmQ5Y2l4WFFNVzgKUkd3SzV0WXE0aE9lOEFR
ZjMxcUJWQ0lCWFZkS2VhMlZQbVdxa2l1RG1pYWpNc1MxT25uc3NjZTZvZktGTDN6QlV5alBldjZm
L3ZTbgowd2tubk9BRnA3U3ZudnlxTDdsaHFuODFyWGdvT1VYNVhnWWcyZThjVFdQL3RhR25Oc2Rs
WTJCSEhHZ1Y3anNqVGozN3gwM1BLWmc3ClpGZmhtZzR4UU5ZZzRZTmxJYUFuR0ovODVDZVRLbk9x
YVVLbUltZ3FES1dLemZKSjExTlpaZTlSVld4Tm1QN3BuLzdKVjBnME9WVm0KSGdYTTZ5a1dMVFlC
VGJZVjUxS3VoT2xzampubUdIY1ZVc3lDREUwWm5Cb2JVWnRXRi9iY2M4OCtRMTRya0dWVHVtdjlV
NFlxdWNUcwp2UFBPL3BXTUFxMFNxcW1QV1p0U2E4dWdVeUI2TmZtRVB0ZS9MMy81eTI3b0tQdVZE
SjR5RmtmWDM3aVYwVm5sWVB2eEJOclNVMXZqCmNqeU5acjVkaGZ0T015U2JQUXB6aDRaNDJ3OENy
U01FVE9YS3Zldi9PaUxTMG9saEtVSDd6c21DNEozMzE3NzJ0YjdQZVZNZmdYS00KNisraWJkcStM
TTZvTUVOenplSHNoNll3dzNUTjUxRS9xSjZMclQ0VXIzemxLNHRiYjcyMWR6bzI2ZmZ4YnNWQWU1
L044OExjMVFyegp5ZlpkcmRCb1lZYU52N2FNS3NWWHYvcFZmMjJKQzRxYmJyckpYOXRFck5obW0y
Mkt2L3Fydnlxc0xvaC9wbXZ2a1VjZThkZGQrMi9hCmNUV04zRG43bXVaNG83WnBVMDl0ak10UkhK
cjh2TW43VHM1eGxyT3ZKbm5YZVN6bURubm9Wc2NXS3lCR2c3YThCSlNGUkNzZmNqMVIKVUs2QzBC
VUhjTjU1NS9sSjZ6czFYRUVjdzFMK3AzZ1B1U0VOSzZwWXhpUE1jK0xmK01ZM3ZOamUyOTcyTmkr
b04wOGZ1ZmVSaTQyQwowSlYwUWE1V20yKyt1V2Vka2p1QlZuZis2Ny8reXcrcCtJdXl5U1ZLcXhP
S2o1cW1YWFBOTlI3Y2JnYUZwODlWOXJxeVZWZEFkR3o5Cmt4eXErWEhxcWFkNnJOZFJSeDNscTQ2
REsxSmxIL3l0aDBDYmVtcGpYTlpEY2ZwZVYrbStNejJWT0ZzeWQ2aGZWeGdnOVRQbUNDMFMKVU9h
TUJ4OThzT2RhbzBCelRjVGttNjYvY2tsUjA0U3NUQnNzdDVWcnI3MDJhV0twQUhWYWJBSnlzU3VM
S1g3bk85L0pWbkZieS9TYQp1Q3VHUkJXOXU5Q1VPcm5hTkphVlM3OTBMU3V2QlZ1SjZHV2dVdUM5
clZSNHdvalNMYXZhUi9XMUNvZHV2ZlhXN3JvNHJIWkgxUURSCmZqSStsR1JDV2RSa2dLaGRkdGxs
SHBlbHVCVFZCdEhFdUpvbTJEZml2MW9KTksybnRzZGxyVEJIZEw1Szk1MFJDRUovek55aGZ2VmgK
Z05UUG1DTzBTRUNUcjJveEk2VWpWZFh2Y2tJbVAzUTlMVmIxNXJKcFFxWmdYc1VJTEZMeHUreVB2
KzBTMEJQK0xiYll3ck5lS1MzdAo5dHR2NzRhRDZzOHMwcFJ1VnBsWkZFUFJsYVpNWGdxb1YyeVRW
anRVK0ZQWnJXNjU1UmFQZjlIcWlBcFBsY2FBNUZhTkZ6MnRIV2Q4CjNIUFBQVzQ0YVBWQ1FlNjZi
b1kxVFd4TFExN0ZDQlZmbzVXVm80OCt1cmU1TWw4cFc5WmhoeDNtZFVoay9KdGJWcTgrVUc5RFh0
UkcKb0drOXRUMHVhd001cHVOVnV1K013UkQySytZTzlhc09BNlIreGh5aFJRSUtRbGYySGJuZ2FF
TDIrYzkvUHNsMVJnVVJGWkQ4ei8vOAp6ejRobFR0STJSU0lyZ3c5R0I4bGtkaC9wVXROeUpWRnBY
UzUwZ1JZd2RpVHNxRk5Pbk5ONXJ2VTl0MTMzM1RnZ1FmMnprdjFkYXJ0Clc5LzZWcDlCcnU4MFVW
SVNobEh0aTEvOG9ydGNYWExKSlI1a2Zzb3BwN2d4TW14N0JUcXJLWUhEdi8zYnY2VVBmdkNEZlVI
eDVUNHkKUW1SMHlQRFhLdU9peG1EWkwzK25JOUMwbnRvZWw5TlJ5YnZWS3QxMzhwTHJSbS9NSGVy
WEF3WkkvWXc1UW9zRTlKUzEyZ1luWkJhTQo2MFVJcTl2ODdHYy82OVdIcUg3TzY1Z0VOdDU0WTM5
aXI2ZjQ4a1ZYMHdUWWdxVzlka1hNc3hvdXRZeUZ4ejN1Y2I0eW95MlVkbHFHCnRpcmFxOG40UHVL
SUkveDErWi9HdTFhSVJqVTlDZnpFSno3aEZjdFZuT3Zzczg4ZTZab280MTByR3RNYWR0UEduWXlT
amMvbkk5QzAKbnRvZWwvTlJXbXl2VmJydkxFYXFtM3N6ZDZoZkx4Z2c5VFBtQ0MwU2tKLzV3dzgv
M0p1UUtiMnVxaStYUlFmbEkxOEdwSmRpNm9udwp0dHR1Vzc3bGIzQUNxdnVpbUFkTnBNdksyeXFV
cDlpRDQ0OC8zdU1SVkpSUFNRcTBXcWE0RGxWTXoxMFVzd21NY3IvNjhJYy8zSE94ClVyeUZKa0l5
UUZUZlJQRXFTc0ZiYlphTkt1MjQ0NDdWai9wZWk0UDYvUGQvLy9lMDBVWWI5WDAzK0NZaXM4RnpX
SVgzVGV1cDdYSFoKaGs1WDZiN1RCdCs2ajhuY29XN0NLV0dBMU0rWUk3UklRSk5LdWR0b1FxbW1I
MElGMGFycEthQXFZTXM5b05yazM3Nzc3cnRYUCtKMQpZQUtxQTZOSmVOVmRhdE5OTjNXWHJBc3Z2
TkRqSk9RdVZHMGFGeGRjY0VIMW94Q3ZGZHUwMVZaYmVjMFRDYXg0SmhWWFZOTXFoZ29PCktvYWoy
bjc0d3gvMmF1VlVQeDk4UGNuNEdOeWU5eEFvQ2F6aXVGeWwrMDZwNTJYNnk5eWhmbTFpZ05UUG1D
TzBTRUN1SUVxeFd3WUsKeS9XbW5JaXFLT0V3ZHhKVnJ5Mk5sQlpGNTlBWkNjaVkwTXBXdFNtTnJG
WUk5RS8rMmpJOEZTZWtpWFpadkxLNmZlVFg4dm5YZUZjTQpWTFVwQzV5QzBKLzV6R2RXUCtZMUJC
b2hzT3pqY3RYdk80ME1vcG9Pd3R5aEpyQ1ZiakZBS2pCNHVUb0VOTm04L2ZiYmZYV2tldGFhCmpP
bHB1RElsMFphSGdPcS9qR3NLVWwrR1ZMREtRS1U0RGZuY3E1VkcxMFVYWFpUV3JWdm5sYzRWRjNM
Ly9mZDc0TGt5VmNsQTMybW4KbmNiaDRUc0lMRVJnVmNmbHF0eDNGaG9jd1habTdwQlBZUmdnK1Zq
U1V3Y0o2SWRQcVVmbHo2bW0xWTNuUGU5NUh2ZHg1WlZYZWpDdApKbVIzM0hGSFVqQ3VZZ0EwRVIx
VzQ2Q0RwNGRJRU9nam9OejFTaXN0LzNNMXVWK3A5b2RXOUY3MG9oZjVaNnJKb0xpUGd3OCsyR3Qv
ClhIWFZWU09EeW4wSC9vUEFnZ1FZbHdzQ1pQZkdDVEIzcUIvNW8xUmN2ZjdEY0lScENGUXp4NkNX
YVloTjNtYjkrdldlN1VpKzhHcEsKeGZybEwzL1pLNkx2c2NjZWZSMm9ZSnF5QkNuOTNyaWczTDZk
ZURNemdaempQR2RmTTU5SUIzZFFrTG1TTGh4d3dBRTk2VFNtaDlYNAowQ3FJZ3ZJVk0wTHJKNUJ6
WE9Yc3ExL0tPTzhZbC9Yckt1YzR5OWxYL1dkZXp4R1lPOVREdFRxMk1FRHFZVHhYcjFYRllJRE1o
WEROClRsclZrSjl4MWFkZjJZQVVsRHpZeEx5cWc4SHZlWitIUUpYeG91TThaMTk1em81ZWxvRkF6
bkdWczY5bFlNczUxRU1nNXpqTDJWYzkKWjF0L3I4d2Q2bUZjSFZzWUlQVXducXZYcW1JV25aak5K
UUE3UWFBQkFqbkhlYzYrR2poMURoR0VRTTV4bGJPdklQZ1Fzd1VDT2NkWgp6cjVhUU1FaE8weWdP
cmFJQWVtb29xcEs2cWlJaUFXQlRoSGdtdW1VT2hCbUNBSEc2QkFvZk5ScEFvelpUcXNudEhDL0ZG
cDZoSWNBCkJDQUFBUWhBQUFJUWdBQUVRaEhBQUFtbExvU0ZBQVFnQUFFSVFBQUNFSUJBYkFMRWdN
VFdIOUpEQUFJUWdBQUVJQUFCQ0VBZ0ZBRlcKUUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NH
ejlJVDBFSUFBQkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUQpnRUJzQWhnZ3Nm
V0g5QkNBQUFRZ0FBRUlRQUFDRUFoRkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZSURFMWgv
U1F3QUNFSUFBCkJDQUFBUWhBSUJRQkRKQlE2a0pZQ0VBQUFoQ0FBQVFnQUFFSXhDYUFBUkpiZjBn
UEFRaEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWgKQUFFSVFBQUNFSUFBQkNBUW13QUdTR3o5SVQw
RUlBQUJDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZwpzZldIOUJD
QUFBUWdBQUVJUUFBQ0VBaEZBQU1rbExvUUZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFoL1NRd0FD
RUlBQUJDQUFBUWhBCklCUUJESkJRNmtKWUNFQUFBaENBQUFRZ0FBRUl4Q2FBQVJKYmYwZ1BBUWhB
QUFJUWdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFBQUMKRUlBQUJDQVFtd0FHU0d6OUlUMEVJQUFC
Q0VBQUFoQ0FBQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VCc0FoZ2dzZldIOUJDQQpBQVFn
QUFFSVFBQUNFQWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUJDRUFBQXJFSllJREUxaC9TUXdBQ0VJQUFC
Q0FBQVFoQUlCUUJESkJRCjZrSllDRUFBQWhDQUFBUWdBQUVJeENhQUFSSmJmMGdQQVFoQUFBSVFn
QUFFSUFDQlVBUXdRRUtwQzJFaEFBRUlRQUFDRUlBQUJDQVEKbXdBR1NHejlJVDBFSUFBQkNFQUFB
aENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdnc2ZXSDlCQ0FBQVFnQUFFSQpR
QUFDRUFoRkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZSURFMWgvU1F3QUNFSUFBQkNBQUFR
aEFJQlFCREpCUTZrSllDRUFBCkFoQ0FBQVFnQUFFSXhDYUFBUkpiZjBnUEFRaEFBQUlRZ0FBRUlB
Q0JVQVF3UUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejkKSVQwRUlBQUJDRUFBQWhDQUFB
UkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZ3NmV0g5QkNBQUFRZ0FBRUlRQUFDRUFo
RgpBQU1rbExvUUZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFoL1NRd0FDRUlBQUJDQUFBUWhBSUJR
QkRKQlE2a0pZQ0VBQUFoQ0FBQVFnCkFBRUl4Q2FBQVJKYmYwZ1BBUWhBQUFJUWdBQUVJQUNCVUFR
d1FFS3BDMkVoQUFFSVFBQUNFSUFBQkNBUW13QUdTR3o5SVQwRUlBQUIKQ0VBQUFoQ0FBQVJDRWNB
QUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VCc0FoZ2dzZldIOUJDQUFBUWdBQUVJUUFBQ0VBaEZBQU1r
bExvUQpGZ0lRZ0FBRUlBQUJDRUFBQXJFSllJREUxaC9TUXdBQ0VJQUFCQ0FBQVFoQUlCUUJESkJR
NmtKWUNFQUFBaENBQUFRZ0FBRUl4Q2FBCkFSSmJmMGdQQVFoQUFBSVFnQUFFSUFDQlVBUXdRRUtw
QzJFaEFBRUlRQUFDRUlBQUJDQVFtd0FHU0d6OUlUMEVJQUFCQ0VBQUFoQ0EKQUFSQ0VjQUFDYVV1
aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdnc2ZXSDlCQ0FBQVFnQUFFSVFBQUNFQWhGQUFNa2xMb1FG
Z0lRZ0FBRQpJQUFCQ0VBQUFyRUpZSURFMWgvU1F3QUNFSUFBQkNBQUFRaEFJQlFCREpCUTZrSllD
RUFBQWhDQUFBUWdBQUVJeENhQUFSSmJmMGdQCkFRaEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWhB
QUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejlJVDBFSUFBQkNFQUFBaENBQUFSQ0VjQUEKQ2FVdWhJVUFC
Q0FBQVFoQUFBSVFnRUJzQWhnZ3NmV0g5QkNBQUFRZ0FBRUlRQUFDRUFoRkFBTWtsTG9RRmdJUWdB
QUVJQUFCQ0VBQQpBckVKWUlERTFoL1NRd0FDRUlBQUJDQUFBUWhBSUJRQkRKQlE2a0pZQ0VBQUFo
Q0FBQVFnQUFFSXhDYUFBUkpiZjBnUEFRaEFBQUlRCmdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFB
QUNFSUFBQkNBUW13QUdTR3o5SVQwRUlBQUJDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUEKQkNBQUFR
aEFBQUlRZ0VCc0FoZ2dzZldIOUJDQUFBUWdBQUVJUUFBQ0VBaEZBQU1rbExvUUZnSVFnQUFFSUFB
QkNFQUFBckVKWUlERQoxaC9TUXdBQ0VJQUFCQ0FBQVFoQUlCUUJESkJRNmtKWUNFQUFBaENBQUFR
Z0FBRUl4Q2FBQVJKYmYwZ1BBUWhBQUFJUWdBQUVJQUNCClVBUXdRRUtwQzJFaEFBRUlRQUFDRUlB
QUJDQVFtd0FHU0d6OUlUMEVJQUFCQ0VBQUFoQ0FBQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEEKQUFJ
UWdFQnNBaGdnc2ZXSDlCQ0FBQVFnQUFFSVFBQUNFQWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUJDRUFB
QXJFSllJREUxaC9TUXdBQwpFSUFBQkNBQUFRaEFJQlFCREpCUTZrSllDRUFBQWhDQUFBUWdBQUVJ
eENhQUFSSmJmMGdQQVFoQUFBSVFnQUFFSUFDQlVBUXdRRUtwCkMyRWhBQUVJUUFBQ0VJQUFCQ0FR
bXdBR1NHejlJVDBFSUFBQkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnMK
QWhnZ3NmV0g5QkNBQUFRZ0FBRUlRQUFDRUFoRkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZ
SURFMWgvU1F3QUNFSUFBQkNBQQpBUWhBSUJRQkRKQlE2a0pZQ0VBQUFoQ0FBQVFnQUFFSXhDYUFB
UkpiZjBnUEFRaEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWhBQUVJClFBQUNFSUFBQkNBUW13QUdT
R3o5SVQwRUlBQUJDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZ3Nm
V0gKOUJDQUFBUWdBQUVJUUFBQ0VBaEZBQU1rbExvUUZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFo
L1NRd0FDRUlBQUJDQUFBUWhBSUJRQgpESkJRNmtKWUNFQUFBaENBQUFRZ0FBRUl4Q2FBQVJKYmYw
Z1BBUWhBQUFJUWdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFBQUNFSUFBCkJDQVFtd0FHU0d6OUlU
MEVJQUFCQ0VBQUFoQ0FBQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VCc0FoZ2dzZldIOUJD
QUFBUWcKQUFFSVFBQUNFQWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUJDRUFBQXJFSllJREUxaC9TUXdB
Q0VJQUFCQ0FBQVFoQUlCUUJESkJRNmtKWQpDRUFBQWhDQUFBUWdBQUVJeENhQUFSSmJmMGdQQVFo
QUFBSVFnQUFFSUFDQlVBUXdRRUtwQzJFaEFBRUlRQUFDRUlBQUJDQVFtd0FHClNHejlJVDBFSUFB
QkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdnc2ZXSDlCQ0FBQVFn
QUFFSVFBQUMKRUFoRkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZSURFMWgvU1F3QUNFSUFB
QkNBQUFRaEFJQlFCREpCUTZrSllDRUFBQWhDQQpBQVFnQUFFSXhDYUFBUkpiZjBnUEFRaEFBQUlR
Z0FBRUlBQ0JVQVF3UUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejlJVDBFCklBQUJDRUFB
QWhDQUFIeXU1dE1BQUFoV1NVUkJWQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VCc0FoZ2dz
ZldIOUJDQUFBUWcKQUFFSVFBQUNFQWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUJDRUFBQXJFSllJREUx
aC9TUXdBQ0VJQUFCQ0FBQVFoQUlCUUJESkJRNmtKWQpDRUFBQWhDQUFBUWdBQUVJeENhQUFSSmJm
MGdQQVFoQUFBSVFnQUFFSUFDQlVBUXdRRUtwQzJFaEFBRUlRQUFDRUlBQUJDQVFtd0FHClNHejlJ
VDBFSUFBQkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdnc2ZXSDlC
Q0FBQVFnQUFFSVFBQUMKRUFoRkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZSURFMWgvU1F3
QUNFSUFBQkNBQUFRaEFJQlFCREpCUTZrSllDRUFBQWhDQQpBQVFnQUFFSXhDYUFBUkpiZjBnUEFR
aEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejlJVDBFCklB
QUJDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZ3NmV0g5QkNBQUFR
Z0FBRUlRQUFDRUFoRkFBTWsKbExvUUZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFoL1NRd0FDRUlB
QUJDQUFBUWhBSUJRQkRKQlE2a0pZQ0VBQUFoQ0FBQVFnQUFFSQp4Q2FBQVJKYmYwZ1BBUWhBQUFJ
UWdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFBQUNFSUFBQkNBUW13QUdTR3o5SVQwRUlBQUJDRUFB
CkFoQ0FBQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VCc0FoZ2dzZldIOUJDQUFBUWdBQUVJ
UUFBQ0VBaEZBQU1rbExvUUZnSVEKZ0FBRUlBQUJDRUFBQXJFSllJREUxaC9TUXdBQ0VJQUFCQ0FB
QVFoQUlCUUJESkJRNmtKWUNFQUFBaENBQUFRZ0FBRUl4Q2FBQVJKYgpmMGdQQVFoQUFBSVFnQUFF
SUFDQlVBUXdRRUtwQzJFaEFBRUlRQUFDRUlBQUJDQVFtd0FHU0d6OUlUMEVJQUFCQ0VBQUFoQ0FB
QVJDCkVjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdnc2ZXSDlCQ0FBQVFnQUFFSVFBQUNF
QWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUIKQ0VBQUFyRUpZSURFMWgvU1F3QUNFSUFBQkNBQUFRaEFJ
QlFCREpCUTZrSllDRUFBQWhDQUFBUWdBQUVJeENhQUFSSmJmMGdQQVFoQQpBQUlRZ0FBRUlBQ0JV
QVF3UUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejlJVDBFSUFBQkNFQUFBaENBQUFSQ0Vj
QUFDYVV1CmhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZ3NmV0g5QkNBQUFRZ0FBRUlRQUFDRUFoRkFB
TWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUoKWUlERTFoL1NRd0FDRUlBQUJDQUFBUWhBSUJRQkRK
QlE2a0pZQ0VBQUFoQ0FBQVFnQUFFSXhDYUFBUkpiZjBnUEFRaEFBQUlRZ0FBRQpJQUNCVUFRd1FF
S3BDMkVoQUFFSVFBQUNFSUFBQkNBUW13QUdTR3o5SVQwRUlBQUJDRUFBQWhDQUFBUkNFY0FBQ2FV
dWhJVUFCQ0FBCkFRaEFBQUlRZ0VCc0FoZ2dzZldIOUJDQUFBUWdBQUVJUUFBQ0VBaEZBQU1rbExv
UUZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFoL1MKUXdBQ0VJQUFCQ0FBQVFoQUlCUUJESkJRNmtK
WUNFQUFBaENBQUFRZ0FBRUl4Q2FBQVJKYmYwZ1BBUWhBQUFJUWdBQUVJQUNCVUFRdwpRRUtwQzJF
aEFBRUlRQUFDRUlBQUJDQVFtd0FHU0d6OUlUMEVJQUFCQ0VBQUFoQ0FBQVJDRWNBQUNhVXVoSVVB
QkNBQUFRaEFBQUlRCmdFQnNBaGdnc2ZXSDlCQ0FBQVFnQUFFSVFBQUNFQWhGQUFNa2xMb1FGZ0lR
Z0FBRUlBQUJDRUFBQXJFSllJREUxaC9TUXdBQ0VJQUEKQkNBQUFRaEFJQlFCREpCUTZrSllDRUFB
QWhDQUFBUWdBQUVJeENhQUFSSmJmMGdQQVFoQUFBSVFnQUFFSUFDQlVBUXdRRUtwQzJFaApBQUVJ
UUFBQ0VJQUFCQ0FRbXdBR1NHejlJVDBFSUFBQkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFB
UWhBQUFJUWdFQnNBaGdnCnNmV0g5QkNBQUFRZ0FBRUlRQUFDRUFoRkFBTWtsTG9RRmdJUWdBQUVJ
QUFCQ0VBQUFyRUpZSURFMWgvU1F3QUNFSUFBQkNBQUFRaEEKSUJRQkRKQlE2a0pZQ0VBQUFoQ0FB
QVFnQUFFSXhDYUFBUkpiZjBnUEFRaEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWhBQUVJUUFBQwpF
SUFBQkNBUW13QUdTR3o5SVQwRUlBQUJDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFB
SVFnRUJzQWhnZ3NmV0g5QkNBCkFBUWdBQUVJUUFBQ0VBaEZBQU1rbExvUUZnSVFnQUFFSUFBQkNF
QUFBckVKWUlERTFoL1NRd0FDRUlBQUJDQUFBUWhBSUJRQkRKQlEKNmtKWUNFQUFBaENBQUFRZ0FB
RUl4Q2FBQVJKYmYwZ1BBUWhBQUFJUWdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFBQUNFSUFBQkNB
UQptd0FHU0d6OUlUMEVJQUFCQ0VBQUFoQ0FBQVJDRWNBQUNhVXVoSVVBQkNBQUFRaEFBQUlRZ0VC
c0FoZ2dzZldIOUJDQUFBUWdBQUVJClFBQUNFQWhGQUFNa2xMb1FGZ0lRZ0FBRUlBQUJDRUFBQXJF
SllJREUxaC9TUXdBQ0VJQUFCQ0FBQVFoQUlCUUJESkJRNmtKWUNFQUEKQWhDQUFBUWdBQUVJeENh
QUFSSmJmMGdQQVFoQUFBSVFnQUFFSUFDQlVBUXdRRUtwQzJFaEFBRUlRQUFDRUlBQUJDQVFtd0FH
U0d6OQpJVDBFSUFBQkNFQUFBaENBQUFSQ0VjQUFDYVV1aElVQUJDQUFBUWhBQUFJUWdFQnNBaGdn
c2ZXSDlCQ0FBQVFnQUFFSVFBQUNFQWhGCkFBTWtsTG9RRmdJUWdBQUVJQUFCQ0VBQUFyRUpZSURF
MWgvU1F3QUNFSUFBQkNBQUFRaEFJQlFCREpCUTZrSllDRUFBQWhDQUFBUWcKQUFFSXhDYUFBUkpi
ZjBnUEFRaEFBQUlRZ0FBRUlBQ0JVQVF3UUVLcEMyRWhBQUVJUUFBQ0VJQUFCQ0FRbXdBR1NHejlJ
VDBFSUFBQgpDRUFBQWhDQUFBUkNFY0FBQ2FVdWhJVUFCQ0FBQVFoQUFBSVFnRUJzQWhnZ3NmV0g5
QkNBQUFRZ0FBRUlRQUFDRUFoRkFBTWtsTG9RCkZnSVFnQUFFSUFBQkNFQUFBckVKWUlERTFoL1NR
d0FDRUlBQUJDQUFBUWhBSUJRQkRKQlE2a0pZQ0VBQUFoQ0FBQVFnQUFFSXhDYUEKQVJKYmYwZ1BB
UWhBQUFJUWdBQUVJQUNCVUFRd1FFS3BDMkVoQUFFSVFBQUNFSUFBQkNBUW04RC9BaUQvTWIwMmtW
UnRBQUFBQUVsRgpUa1N1UW1DQwoK
</data>
<flag name="review"
          id="67863"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>