<?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>128145</bug_id>
          
          <creation_ts>2014-02-03 17:16:04 -0800</creation_ts>
          <short_desc>REGRESSION: missing underline under CJK text</short_desc>
          <delta_ts>2014-06-09 14:19:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>128127</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Wittenbergh">phiw2</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>phiw2</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yuki.sekiguchi</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>976125</commentid>
    <comment_count>0</comment_count>
      <attachid>223048</attachid>
    <who name="Philippe Wittenbergh">phiw2</who>
    <bug_when>2014-02-03 17:16:04 -0800</bug_when>
    <thetext>Created attachment 223048
screenshot of Japanese text

Split from bug 128127

Underline under CJK text is sometimes missing, or only partly drawn

Screenshot from: http://www.jma.go.jp/jma/index.html
non-retina display

I can’t find an example right now of underline crossing characters in a worse way that Safari 7 / 10.9.1

I think it was on yahoo.co.jp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976385</commentid>
    <comment_count>1</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-04 09:33:02 -0800</bug_when>
    <thetext>This is caused by https://bugs.webkit.org/show_bug.cgi?id=127331

Setting this depending on https://bugs.webkit.org/show_bug.cgi?id=128127 because moving underlines farther from text might solve this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976386</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-04 09:33:23 -0800</bug_when>
    <thetext>Thanks for filing this, Philippe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976400</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-02-04 09:48:35 -0800</bug_when>
    <thetext>Consider this: https://bugzilla.mozilla.org/show_bug.cgi?id=770780#c29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979008</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-10 12:50:55 -0800</bug_when>
    <thetext>*** Bug 128518 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002629</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-04-21 12:55:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/16471190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010910</commentid>
    <comment_count>6</comment_count>
      <attachid>231862</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-05-21 23:38:58 -0700</bug_when>
    <thetext>Created attachment 231862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012350</commentid>
    <comment_count>7</comment_count>
      <attachid>231862</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-05-28 20:24:16 -0700</bug_when>
    <thetext>Comment on attachment 231862
Patch

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

&gt; Source/WebCore/platform/graphics/Font.cpp:1087
&gt; +    UBlockCode blockCode = ublock_getCode(baseCharacter);

Add comment about why we&apos;re using ublock_getCode (perhaps as opposed to u_getIntPropertyValue and UCHAR_IDEOGRAPHIC)

In addition, this ICU call may be too slow to call for every glyph in every underlined text run. Perhaps we should cache the output of this function?

&gt; Source/WebCore/platform/graphics/WidthIterator.cpp:276
&gt; +        int currentCharacter = textIterator.currentCharacter();

Could perhaps move this up above the other calls to currentCharacter()

&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:549
&gt; +        Path path;
&gt; +        std::pair&lt;float, float&gt; extents;

These can be moved into the switch block, provided you add extra scoping {}s

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:104
&gt;  class SVGGlyphToPathTranslator final : public GlyphToPathTranslator {

This code path seems untested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013434</commentid>
    <comment_count>8</comment_count>
      <attachid>231862</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-04 18:34:13 -0700</bug_when>
    <thetext>Comment on attachment 231862
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1087
&gt;&gt; +    UBlockCode blockCode = ublock_getCode(baseCharacter);
&gt; 
&gt; Add comment about why we&apos;re using ublock_getCode (perhaps as opposed to u_getIntPropertyValue and UCHAR_IDEOGRAPHIC)
&gt; 
&gt; In addition, this ICU call may be too slow to call for every glyph in every underlined text run. Perhaps we should cache the output of this function?

Fixed.

I&apos;m not sure, but it seems that implementing a cache is outside the scope of this patch. I&apos;ve added a FIXME and filed https://bugs.webkit.org/show_bug.cgi?id=133529 regarding this.

&gt;&gt; Source/WebCore/platform/graphics/WidthIterator.cpp:276
&gt;&gt; +        int currentCharacter = textIterator.currentCharacter();
&gt; 
&gt; Could perhaps move this up above the other calls to currentCharacter()

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:549
&gt;&gt; +        std::pair&lt;float, float&gt; extents;
&gt; 
&gt; These can be moved into the switch block, provided you add extra scoping {}s

Fixed.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:104
&gt;&gt;  class SVGGlyphToPathTranslator final : public GlyphToPathTranslator {
&gt; 
&gt; This code path seems untested.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013435</commentid>
    <comment_count>9</comment_count>
      <attachid>232515</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-04 18:39:58 -0700</bug_when>
    <thetext>Created attachment 232515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013681</commentid>
    <comment_count>10</comment_count>
      <attachid>232515</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-05 16:23:35 -0700</bug_when>
    <thetext>Comment on attachment 232515
Patch

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

&gt; Source/WebCore/platform/graphics/Font.cpp:1057
&gt; +bool advanceByConsumingBaseCharacterInSequence(const UChar*&amp; iterator, const UChar* end, UChar32&amp; baseCharacter)

We already have U16_NEXT, so I don’t think we need this.

&gt; Source/WebCore/platform/graphics/Font.cpp:1076
&gt; +GlyphToPathTranslator::GlyphUnderlineType sharedUnderlineType(const TextRun&amp; textRun, const GlyphBuffer&amp; glyphBuffer, int index)

Not sure I understand the meaning of the word “shared” here.

&gt; Source/WebCore/platform/graphics/Font.cpp:1079
&gt; +    // We want to SkipDescenders in general. However, skipping descenders on CJK characters leads to undesirable renderings,
&gt; +    // so we want to draw through CJK characters (on a character-by-character basis).

Please say “skip descenders” rather than SkipDescenders.

&gt; Source/WebCore/platform/graphics/Font.cpp:1086
&gt; +        if (!advanceByConsumingBaseCharacterInSequence(characterPointer, textRun.characters16() + textRun.length(), baseCharacter))
&gt; +            return GlyphToPathTranslator::DrawOverGlyph;

Normally we just use U16_NEXT to implement something like this. We’d write:

    unsigned offset = glyphBuffer.offsetInString(index);
    U16_NEXT(textRun.characters16(), offset, textRun.length(), baseCharacter);

&gt; Source/WebCore/platform/graphics/Font.cpp:1091
&gt; +    // FIXME: we may need to cache the output of this ICU call. https://bugs.webkit.org/show_bug.cgi?id=133529

This seems like a strange comment; makes me feel fear but doesn’t give me information to know if I should be afraid or not. Did you do performance testing yet?

&gt; Source/WebCore/platform/graphics/Font.h:103
&gt; +    enum GlyphUnderlineType {
&gt; +        SkipDescenders,
&gt; +        SkipGlyph,
&gt; +        DrawOverGlyph
&gt; +    };

This would read nicely all on one line.

For most new enums we are using enum class.

&gt; Source/WebCore/platform/graphics/Font.h:108
&gt; +    virtual void increment() = 0;

I think advance would be a clearer name for this than increment.

&gt; Source/WebCore/platform/graphics/Font.h:111
&gt; +GlyphToPathTranslator::GlyphUnderlineType sharedUnderlineType(const TextRun&amp;, const GlyphBuffer&amp;, int index);

Is int the right type for the index? Why not unsigned?

As I asked above, what does “shared” mean in this function name?

&gt; Source/WebCore/platform/graphics/Font.h:359
&gt; +bool advanceByConsumingBaseCharacterInSequence(const UChar*&amp; iterator, const UChar* end, UChar32&amp; baseCharacter);

If you did want to put this in a header, it definitely wouldn’t be Font.h -- this is just a basic UTF-16 helper function. But luckily, we don’t need this because ICU already has a function for this.

&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:127
&gt; +    void add(Glyph glyph, const SimpleFontData* font, float width, int offsetInString = -1, const FloatSize* offset = 0)

What does -1 mean here?

&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:198
&gt; +        ASSERT(m_offsetsInString.get());

I’m surprised we need the get() here.

&gt; Source/WebCore/platform/graphics/WidthIterator.cpp:175
&gt; +        int currentCharacter = textIterator.currentCharacter();

Is int the right type for this?

&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:264
&gt; -
&gt; +    

You shouldn’t land this whitespace change.

&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:272
&gt; +    if (!advanceByConsumingBaseCharacterInSequence(iterator, end, baseCharacter))
&gt; +        return false;

Here’s how to write this using U16_NEXT:

    unsigned i = 0;
    U16_NEXT(iterator, i, end - iterator, baseCharacter);
    if (U_IS_SURROGATE(baseCharacter))
        return false;
    iterator += i;

We can possibly even leave out the U_IS_SURROGATE check.

&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:521
&gt; +    glyphBuffer.saveOffsetsInString();

What guarantees that everyone adding to this glyph buffer will add an offset, rather than passing in -1?

&gt; Source/WebCore/platform/graphics/win/UniscribeController.cpp:362
&gt; +            glyphBuffer-&gt;add(glyph, fontData, advance, -1, &amp;size);

This magic -1 is unclear.

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:118
&gt; +    AffineTransform getCurrentTransform();

This should be named currentTransform() to follow WebKit naming conventions. Or just transform(). After all, we call it path(), not currentPath().

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:120
&gt; +    const TextRun* m_textRun;

This should be const TextRun* const, I think; m_stoppingPoint, m_scale, and m_isVerticalText are all marked const, so why not this as well?

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:156
&gt; +    

Should not add this whitespace here.

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:278
&gt; +    auto translator(createGlyphToPathTranslator(*fontData, nullptr, glyphBuffer, from, numGlyphs, point));

I think this would read better with = than with () syntax:

    auto translator = createGlyphToPathTranslator(*fontData, nullptr, glyphBuffer, from, numGlyphs, point);

&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:279
&gt;      while (translator-&gt;containsMorePaths()) {

This looks like it should be a for loop. Even if the initialization of the translator is too long to put inside, I think this is better than the while:

    for (; translator-&gt;containsMorePaths(); translator-&gt;increment()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013896</commentid>
    <comment_count>11</comment_count>
      <attachid>232515</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-06 17:49:44 -0700</bug_when>
    <thetext>Comment on attachment 232515
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1057
&gt;&gt; +bool advanceByConsumingBaseCharacterInSequence(const UChar*&amp; iterator, const UChar* end, UChar32&amp; baseCharacter)
&gt; 
&gt; We already have U16_NEXT, so I don’t think we need this.

Done.

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1076
&gt;&gt; +GlyphToPathTranslator::GlyphUnderlineType sharedUnderlineType(const TextRun&amp; textRun, const GlyphBuffer&amp; glyphBuffer, int index)
&gt; 
&gt; Not sure I understand the meaning of the word “shared” here.

It was supposed to mean that both (substantial) implementations of GlyphToPathTranslator::underlineType() simply call this function. I had originally tried to move it into the base class, but it didn&apos;t work because of the DummyGlyphToPathTranslator. I&apos;ve renamed this function to something more descriptive.

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1079
&gt;&gt; +    // so we want to draw through CJK characters (on a character-by-character basis).
&gt; 
&gt; Please say “skip descenders” rather than SkipDescenders.

Done.

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1086
&gt;&gt; +            return GlyphToPathTranslator::DrawOverGlyph;
&gt; 
&gt; Normally we just use U16_NEXT to implement something like this. We’d write:
&gt; 
&gt;     unsigned offset = glyphBuffer.offsetInString(index);
&gt;     U16_NEXT(textRun.characters16(), offset, textRun.length(), baseCharacter);

Done.

&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1091
&gt;&gt; +    // FIXME: we may need to cache the output of this ICU call. https://bugs.webkit.org/show_bug.cgi?id=133529
&gt; 
&gt; This seems like a strange comment; makes me feel fear but doesn’t give me information to know if I should be afraid or not. Did you do performance testing yet?

I will do this before I commit, and adjust the comment accordingly.

&gt;&gt; Source/WebCore/platform/graphics/Font.h:103
&gt;&gt; +    };
&gt; 
&gt; This would read nicely all on one line.
&gt; 
&gt; For most new enums we are using enum class.

Done.

&gt;&gt; Source/WebCore/platform/graphics/Font.h:108
&gt;&gt; +    virtual void increment() = 0;
&gt; 
&gt; I think advance would be a clearer name for this than increment.

Done.

&gt;&gt; Source/WebCore/platform/graphics/Font.h:111
&gt;&gt; +GlyphToPathTranslator::GlyphUnderlineType sharedUnderlineType(const TextRun&amp;, const GlyphBuffer&amp;, int index);
&gt; 
&gt; Is int the right type for the index? Why not unsigned?
&gt; 
&gt; As I asked above, what does “shared” mean in this function name?

The GlyphToPathTranslators already use an int to determine where in the string they are translating (m_index in both implementations). The code was already using ints before I started refactoring it. https://bugs.webkit.org/show_bug.cgi?id=133594

&gt;&gt; Source/WebCore/platform/graphics/Font.h:359
&gt;&gt; +bool advanceByConsumingBaseCharacterInSequence(const UChar*&amp; iterator, const UChar* end, UChar32&amp; baseCharacter);
&gt; 
&gt; If you did want to put this in a header, it definitely wouldn’t be Font.h -- this is just a basic UTF-16 helper function. But luckily, we don’t need this because ICU already has a function for this.

Done.

&gt;&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:127
&gt;&gt; +    void add(Glyph glyph, const SimpleFontData* font, float width, int offsetInString = -1, const FloatSize* offset = 0)
&gt; 
&gt; What does -1 mean here?

I&apos;ve changed this to used a constant with a descriptive name.

&gt;&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:198
&gt;&gt; +        ASSERT(m_offsetsInString.get());
&gt; 
&gt; I’m surprised we need the get() here.

We don&apos;t. Done.

&gt;&gt; Source/WebCore/platform/graphics/WidthIterator.cpp:175
&gt;&gt; +        int currentCharacter = textIterator.currentCharacter();
&gt; 
&gt; Is int the right type for this?

int is the return type of currentCharacter(). https://bugs.webkit.org/show_bug.cgi?id=133592

&gt;&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:264
&gt;&gt; +    
&gt; 
&gt; You shouldn’t land this whitespace change.

I blame Xcode. Done.

&gt;&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:272
&gt;&gt; +        return false;
&gt; 
&gt; Here’s how to write this using U16_NEXT:
&gt; 
&gt;     unsigned i = 0;
&gt;     U16_NEXT(iterator, i, end - iterator, baseCharacter);
&gt;     if (U_IS_SURROGATE(baseCharacter))
&gt;         return false;
&gt;     iterator += i;
&gt; 
&gt; We can possibly even leave out the U_IS_SURROGATE check.

Now that I know about U16_NEXT, changing this function at all is unrelated to this patch. I&apos;ll save simplifying this function for another patch. https://bugs.webkit.org/show_bug.cgi?id=133591

&gt;&gt; Source/WebCore/platform/graphics/mac/FontMac.mm:521
&gt;&gt; +    glyphBuffer.saveOffsetsInString();
&gt; 
&gt; What guarantees that everyone adding to this glyph buffer will add an offset, rather than passing in -1?

I updated the platform-independent Font::getGlyphsAndAdvancesForSimpleText, and I updated the mac implementation of Font::getGlyphsAndAdvancesForComplexTest. However, you&apos;re right, I can&apos;t guarantee that every port will update these indices correctly. In order to combat that, I&apos;ve added a guard to the code that uses these indices to take an early out if we don&apos;t get a valid offset.

&gt;&gt; Source/WebCore/platform/graphics/win/UniscribeController.cpp:362
&gt;&gt; +            glyphBuffer-&gt;add(glyph, fontData, advance, -1, &amp;size);
&gt; 
&gt; This magic -1 is unclear.

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:118
&gt;&gt; +    AffineTransform getCurrentTransform();
&gt; 
&gt; This should be named currentTransform() to follow WebKit naming conventions. Or just transform(). After all, we call it path(), not currentPath().

I&apos;ve elected for transform(). Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:120
&gt;&gt; +    const TextRun* m_textRun;
&gt; 
&gt; This should be const TextRun* const, I think; m_stoppingPoint, m_scale, and m_isVerticalText are all marked const, so why not this as well?

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:156
&gt;&gt; +    
&gt; 
&gt; Should not add this whitespace here.

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:278
&gt;&gt; +    auto translator(createGlyphToPathTranslator(*fontData, nullptr, glyphBuffer, from, numGlyphs, point));
&gt; 
&gt; I think this would read better with = than with () syntax:
&gt; 
&gt;     auto translator = createGlyphToPathTranslator(*fontData, nullptr, glyphBuffer, from, numGlyphs, point);

Done.

Is there some guide about when to use which syntax?

&gt;&gt; Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp:279
&gt;&gt;      while (translator-&gt;containsMorePaths()) {
&gt; 
&gt; This looks like it should be a for loop. Even if the initialization of the translator is too long to put inside, I think this is better than the while:
&gt; 
&gt;     for (; translator-&gt;containsMorePaths(); translator-&gt;increment()) {

Done. Putting the initialization in the for() line doesn&apos;t make it that unreadable, and it limits the scope of the variable, so I&apos;ve chosen to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014224</commentid>
    <comment_count>12</comment_count>
      <attachid>232515</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-09 14:12:28 -0700</bug_when>
    <thetext>Comment on attachment 232515
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/Font.cpp:1091
&gt;&gt;&gt; +    // FIXME: we may need to cache the output of this ICU call. https://bugs.webkit.org/show_bug.cgi?id=133529
&gt;&gt; 
&gt;&gt; This seems like a strange comment; makes me feel fear but doesn’t give me information to know if I should be afraid or not. Did you do performance testing yet?
&gt; 
&gt; I will do this before I commit, and adjust the comment accordingly.

Looks like there isn&apos;t a performance hit with the current code. I&apos;ll remove the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014226</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-09 14:19:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/169715</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>223048</attachid>
            <date>2014-02-03 17:16:04 -0800</date>
            <delta_ts>2014-02-03 17:16:04 -0800</delta_ts>
            <desc>screenshot of Japanese text</desc>
            <filename>nightly.png</filename>
            <type>image/png</type>
            <size>70455</size>
            <attacher name="Philippe Wittenbergh">phiw2</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAMcAAAJgCAIAAACx4eDuAAAWrGlDQ1BJQ0MgUHJvZmlsZQAAWAmt
WHk8VV/33ufc0XVxueZ5nud5SOZ5njOU4ZpnFxFSSYSKJCRD5jFKoXwbhAYlokQ0KAkRKoqQ31Fv
ve8f7/vfb38+95znrrP2uPbeaz0LAPYL3pGRoTAJgLDwGKq9iT7/Hlc3ftxrAAEUoAdMgN2bEh2p
Z2trCf5n+fYc0UbKU5mdtv6n2n//wOjrF00BALJFPvv4RlPCEHwV+VVRIqkxAKD2IHKhuJjIHZyE
YGYqMkAE5+zggN+4agf7/MbXfuk42hsgOv0A4Ine3tQAAGjHEDn/fkoA0g7tGgBYpnDfoHAAmIgI
3k0J9PYFgH1njtJhYRE7OB7B4j7/0U7Af2Bvb5+/bXp7B/zFv+eC1EQ6NgyKjgz1PvDrz//nIyw0
FlmvX0UAeRIDqab2yBuPrFlxSITFXxzuY23zRx6EzOgPDow1dfqDKdEGyFr+ruvrbWjxB8eGOOn9
wd5UBP1LJyjGzPEPpkbY/20/PNR6Z+1+jSHQz+wv9os2cvgj9w8yNvuDEwIdXf7g/UHO1n9wdIjD
3zEkBBr8lVNj7f+O2Z9q/HeOYdFIzX/1S/H+d18xgY6mf+S+foZGf7BfuNPf8UTG6P9tJzL01/7+
NX6/UJO/8uj9Dn/rxlAd/8qDvc139usv/cgY279rAoKAFfAGlBi/eGSfAWAQEXmAGhQQGMOvh5wM
P36zcIqsNL+ivIIyADvnbEcHgK/2v84PxDr4b1kC0peOJ2LTqH/LXKsBuHgIAA7Sv2WCbwAgCwJw
rYkSS93/uz30zgsDCIABMAMOwAuEgDiQAYpAFWgBXWAEzIENcASuYB+ggEAQBqggDiSBIyANZIEc
cBYUgTJQCerARdAKOsANcAfcA4/AEzACJsAkmAbzYBl8AxsQBOEgOogMcUB8kAgkBSlC6tBuyAiy
hOwhV8gLCoDCoVgoCToKZUG5UBFUDtVDl6Hr0B2oDxqCXkBvoTnoC/QDRsFEmBnmgUVhOVgd1oMt
YEd4LxwAR8EJcCp8Ci6EK+AmuB2+Az+CR+BJeB5eRQEULYoVJYCSQamjDFA2KDeUP4qKSkZlovJR
FahmVCfqPuopahK1gFpHY9FkND9aBq2FNkU7oSnoKHQy+gS6CF2Hbkf3op+i36KX0T8xdBhujBRG
E2OG2YMJwMRh0jD5mBpMG+YuZgQzjfmGxWJZsWJYNawp1hUbjE3EnsCWYFuwXdgh7BR2FYfDceCk
cNo4G5w3LgaXhjuHa8Ldxg3jpnFreFo8H14Rb4x3w4fjU/D5+Ab8Lfwwfga/QUOiEaHRpLGh8aU5
QJNNU0XTSTNIM02zQWAkiBG0CY6EYMIRQiGhmXCX8JLwlZaWVpBWg9aONoj2MG0h7SXaB7RvadeJ
TERJogHRgxhLPEWsJXYRXxC/0tHRidLp0rnRxdCdoqun66F7TbdGT6aXpTej96U/RH+evp1+mH6R
gYZBhEGPYR9DAkM+wxWGQYYFEg1JlGRA8iYlk86TrpNGSauMZEYFRhvGMMYTjA2MfYyzTDgmUSYj
Jl+mVKZKph6mKTKKLEQ2IFPIR8lV5LvkaWYssxizGXMwcxbzReYB5mUWJhZlFmeWeJbzLDdZJllR
rKKsZqyhrNmsrazPWX+w8bDpsfmxZbA1sw2zfWfnYtdl92PPZG9hH2H/wcHPYcQRwnGao4PjFSea
U5LTjjOOs5TzLucCFzOXFheFK5OrlWucG+aW5LbnTuSu5O7nXuXh5THhieQ5x9PDs8DLyqvLG8yb
x3uLd46PzLebL4gvj+8230d+Fn49/lD+Qv5e/mUBbgFTgViBcoEBgQ1BMUEnwRTBFsFXQgQhdSF/
oTyhbqFlYT5hK+Ek4UbhcREaEXWRQJECkfsi30XFRF1E00U7RGfF2MXMxBLEGsVeitOJ64hHiVeI
P5PASqhLhEiUSDyRhCVVJAMlz0sOSsFSqlJBUiVSQ9IYaQ3pcOkK6VEZooyezH6ZRpm3sqyylrIp
sh2yi3LCcm5yp+Xuy/2UV5EPla+Sn1BgUjBXSFHoVPiiKKlIUTyv+EyJTslY6ZDSNaXPylLKfsql
ymMqZBUrlXSVbpUtVTVVqmqz6pyasJqXWrHaqDqzuq36CfUHGhgNfY1DGjc01jVVNWM0WzWXtGS0
QrQatGZ3ie3y21W1a0pbUNtbu1x7cjf/bq/dF3ZP6gjoeOtU6LzTFdL11a3RndGT0AvWa9Jb1JfX
p+q36X830DQ4aNBliDI0Mcw0HDBiMnIyKjJ6bSxoHGDcaLxsomKSaNJlijG1MD1tOmrGY0Yxqzdb
NlczP2jea0G0cLAosnhnKWlJtey0gq3Mrc5YvbQWsQ637rABNmY2Z2xe2YrZRtn+Y4e1s7U7b/fB
XsE+yf6+A9nB06HB4ZujvmO244STuFOsU7czg7OHc73zdxdDl1yXyT1yew7ueeTK6Rrkes0N5+bs
VuO26m7kftZ92kPFI83j+V6xvfF7+/Zx7gvdd9OTwdPb84oXxsvFq8Fr09vGu8J71cfMp9hnmWJA
KaDM++r65vnO+Wn75frN+Gv75/rPBmgHnAmYC9QJzA9cCDIIKgr6HGwaXBb8PcQmpDZkO9QltCUM
H+YVdj2cKTwkvDeCNyI+YihSKjItcjJKM+ps1DLVgloTDUXvjb4Ww4wENP2x4rHHYt/u373//P61
OOe4K/GM8eHx/QckD2QcmEkwTqhORCdSEruTBJKOJL09qHewPBlK9knuPiR0KPXQ9GGTw3VHCEdC
jjxOkU/JTVk56nK0M5Un9XDq1DGTY41p9GnUtNF0rfSy4+jjQccHMpQyzmX8zPTNfJgln5WftXmC
cuLhSYWThSe3T/mfGshWzS7NweaE5zw/rXO6LpcxNyF36ozVmfY8/rzMvJWznmf78pXzywoIBbEF
k4WWhdfOCZ/LObdZFFg0cl7/fEsxd3FG8fcS35LhUt3S5jKesqyyHxeCLoyVm5S3V4hW5FdiK/dX
fqhyrrpfrV5dX8NZk1WzVRteO1lnX9dbr1Zf38DdkN0IN8Y2zjV5ND25aHjxWrNMc3kLa0vWJXAp
9tLHy16Xn7datHZfUb/SfFXkanEbuS2zHWo/0L7cEdgxec312tB18+vdnVqdbf/I/lN7Q+DG+Zss
N7NvEW6l3tq+nXB7tSuya+FOwJ2pbs/uiZ49Pc967XoH7lrcfXDP+F7Pfb37tx9oP7jRp9l3/aH6
w45Hqo/a+1X62x6rPG4bUB1oH1QbvPZE40nn0K6hW8M6w3eeGj6998zs2aMR65Gh507Px0Y9RifH
fMdmX4S++Dy+f3xj4vBLzMvMV6RX+a+5X1e8kXjTMqk6efOt4dv+dw7vJqYoU/Pvo99vTqd+oPuQ
P8M3Uz+rOHtjznjuyUf3j9PzkfMbC2mfGD8VL4ovXl3SXepf3rM8/Zn6efvLia8cX2tXlFe6V21X
X38L+7bxPXONY61uXX39/g+XHzMbcZu4zcItia3OnxY/X26HbW9HelO9f8UCKOQJ+/sD8KUWADpX
JFZ4AgCB/ncc/EsDCZOR4B3e0UPiGWYgAnYBN5AM6sEExAslQ3NwBAqPuoFOwQRiQ3FH8B0EHG0I
8R29D8MnxnQyD3MrqxXbOEcw5wZ3Bi8XX6uAteAn4XxRA7EFiVwpfekl2TJ5Y4UFpdMqSqoP1T01
3muF7ZrbvU9nUE9Pv8Tgs5GosYvJcdM2s/cWJEt1K4p1mk297WO7RQc6RyknI2dPl8Q9Ba6X3frd
p/fC+7g9tb28vFN8yii3fMf9PgfgA7mDZIN3h1iFuob5h8dEJEeeiCqmNkRfR07W+P5XcRPxLw6M
JYwljidNHHyV/O7Q3OEvRzaP0qRyHpNJ00/fezwh41xmR9bYiZ+nBLNNc8JPF+X2nFk8y5lvVBBe
ePZce9H4+c0S9lLlMosLXuXUisOVRVVN1T01I7Wzdd8a4EZiE/kiezNXC/clzsssraQrhKvQ1fW2
lfbVju3r+E7SP6w3OG9y3+K6zdnFfoelm7GHrpdwF3cPcx/1AN0H+j4+7HqU1x/4ePcAy8DC4L0n
VUMpw5SnJs9kRphHtp/PjY6O9b1oGo+dUJ1Ye9n1KuO18xuRN6uTD94Wv4ucMnjP8n52uuND6ozN
LP1sM7J/XnwMn0fPn19QWRj6FLFIv9iyZL/0bbn4s/7nuS85X7W+zq2cWzVbXf/W8N19jbjWtR77
Q/rH9EblJmVLdGvpZ8c2ZXv7l/1xCN8TBOrAAcSCEvAIApATdBUWgCtQKqgp9GVMCbYcdxP/g+BG
20WnSX+bZMH4lOzDvMAayPaOw51zgNua5wGfOf+Q4F6hRZFEMYJ4maSi1H2ZPbJT8qEKX5WilD+q
uqrd05DTzNR6r629+4jOTd13+sCA21DVyM442OSgaY5Zufkli1uWfVbD1uM2b2yn7GbtFxyWHL86
rTivuWy50ruJuKt7mO/dty/S86BXhne+TymlxrfJr9W/I+BWYHdQX/BQyIvQd2Gfwj9HzEaORz2k
dkY3xVyIzdt/PC45Pu5AVEJIYmBS0MGQ5IhD8YePHslOKTpanXrp2PW03vTh49MZ61n0J8RO6p3y
yI7JOXG6Ovf2meG82bM/CgiF7OdEitTOmxa7l4SVHizLvFBQXl5RX9lSdbX6Wk1HbVvdlfrLDXWN
VU2lF2uar7R0X3py+WXrzJWlq9/atjpQ12iu03cy/toRfLdEbkt3yd2R7ObqoelZ752+++zenfst
D8r6sh8efkTt9328Z8Bq0OCJ1pDKsORTtmfg2dzIi+f3RtvGKl+cGU+ZiHjp/srwteQbhjefJ4fe
Nr1Lm/J8rzZNmp760DGTPus0Jzj36ePV+fiFXQs/P3UtHl7SW4aX+z+3fqn4mr2SuOr/zeq7/Brj
2hJyb5RuRG8abbFszfxs+5f9IYADJMCH8AQLhMecBO3gAyQKJUCjsDH8AOWOBuhuTC42DheNT6Yp
IHTSztBx0lsxpJI6GOfIrMzaLOGsJWz9HDCnFlci9y1ewKfLnyJwX4hW2EbklOgjcazELskwqXzp
WzKTsj/kmRSkFJWVVJWFVOhVvqm+UutVb9A4qRmuZblLWptGe3r3bZ1C3Ug9Y31u/a8GfYalRtHG
Fib8pljTZbMx8zsWDZZnrBKsvWyMbaXsGO2+27906HZsdDrjnOQStMfJVd9N0Z3dfcmja2/OPk9P
eS/I66l3tU88xcpX0Pe736B/XcDRQM8gnWD+EBAyGdoZdip8b4RcJBw5FnWZmhntF6MXyxO7ur8/
rjL+wAHzBI6E94kXk6IPGiVrHlI7rHJEIUXyKH8qyzHssdW0d+kDxzszKjIzs6JPuJ/UPyWdzZ7D
cJqUy3iGMY90lj6fUIApBIVb5zaKfpz/UbxVCpXRXCCX81dIVgpXMVStVb+vGay9VddcX9lQ3FjY
dO5iaXNNy6VLdy4PtX648rON2I5v3+pYvbZ6/Xvn1g3cTRZk76h3md/x6A7rOdibdbfgXtn96gd3
+t48QvULPjYe8B9Mf1I/9Gh44RlxRPq55WjY2CnkDhmYWH1l8/rqJPfbk1N070s+6M9i5qbnPy1y
LEd+mVk9vmazIf9TcOf8/86H7PgErCoA1csAuCDew1wCgCI7AISPILkSJQBs6QBw1ADwswQAH4wE
UOOxv/5DAdiDcHAclCOccQC8B+sQPSSEMEIriALFQ9lQNXQDegYtwFiYD9aEnWEqnANfhPvheYTJ
SaEsUWGobNRlhLN9Q3OgtdE+6OPoZvQz9AZGCGOBicGUYR4iHEwIa4s9hLCutzgyzhSXjLuKW8CL
4Sn4C/g3NLw0PjR1NJ8JhoQCwjytAW0R7QrRlthCR08XRfecfhd9FQMDQxLDPGkvaYjRmPEGkwpT
C1ma3MAsztzIIsnSyCrL2samzXaf3Yl9hiOBk5GzkcuUa4Y7k0eW5xlvMp843zD/IQE5gVeCp4TM
hInCQyLnRH3EpMS+i9+VyJP0kVKUhqWfyVTJRssZybPIv1e4onhUyVlZQnldpV+1Qi1O3UZDSGNT
c0Tr0q4s7eDdljoKutx6OL0v+nMGrw1fGI0bvzL5YLpqtm6BtyRbiVir29jbUu1y7W84zDpxOdu6
ZO0ZdGNx9/Bo3gd5OniVe09RJH2j/G4HkAIDg+6GiIVmha1EeEY+oepGt8VK7L8Qz3LgVKJo0nLy
ncP5KQGp2mmk9NcZzVnxJ/WyiTmDuefyPPK5C7aKFIuppaUXHlUsV5NrleodGxMu1rWMtbJe9Whv
v95441OXRI/3vfS++v7ewfHhuZGfL8gvGd7g3xGn6WZZ5lkXmT7jvs5/61s/s7nvl/9QQeKGRFCI
5AwegneI9RkgYUgTsoX8kQzAGagB6oYmoBWYHpZA7hMKnAKXw93wFAqNEkWZI7Y/jWpDjaO20SJo
S3QMuhjh5YsYdowBJhxzHtOHWcOKI6w7C3sbu4KwbF9cKe4FnhXvjC/EjyN2D6BpJcAEd8IVWgba
MNp+ogwxl7hO50M3gFj9IoMAQwGJRDrJSMuYxUTPdIbMSa5mlmX+h0WX5T6rPesbtjC2n+xnOKQ4
ejl9uGCuGm4LhEeW8FrwrvPV8bsKEAW6BGOFVIVRwk9FakWTxOzEJSRQEq8lr0udlY6WsZOVlSPK
zcs/UKhWTFXyVzZTkVPlUEOpLaqPatzWbNDK25WsHbTbWcdEV0tPTl/IQMCQx4jXWMRE1lTbzNLc
2SLQMs7qhHWlTZftpD3aQcbR3emE822XTVdtt8Pu9/ay7fPz7PBa91GnxPte94cCzAOLghZDjELL
wjYj3CPvUEWjc2LW9/vHDR3QS/gnyfLgwqH0IzIpw6kH08TShzOOZMmdeHMqJ0f/9MqZurPOiBcb
KWoqzix1v6BUQVv5sbq3trb+VOPhi4ktSZczr5S29XYsdQrdcL5V0vWhR/9u9QO2hwWPRQe7hj1H
cKPt4yYvk143TM5MiU5HzPR9lF24sCTyuW3F7tvGes2m1y/7awE/kAEawAPEb8BI7KgJOUPRUA7U
DD2GPiF2V4Cd4ES4EsnhrKD4UBaoOFQVagjxKrJoT/RpxN7fMdIYH8w5zDCWDmuGTcfex9HgrHH5
uNd4KXwi/jENP00CzRhBj3CRloc2h4ghHiJu0iXTw/SZDKwMNSRN0jBjGBMtUxPZnrzGXMmizzLF
epxNjm2MPY1DjWOes4LLnZuNe5Qnn9eVj4fvLX+dQJSghhCD0Ibwgsg70Rdiw+KDEgOSAwg/fy4z
LjspNyv/SWFFcVuZpCKv6qGWrt6qMaGF3aWo7bn7tE6/HkHf2qDE8Kuxs0m3Ga+5loWP5XGrNutZ
W0E7T/sah2UnPec8lyVXG7cWD+a9yfumvSy8C3xmfDX8sv0/BpoGNYWQQxPCpiIsItupfNEZMcv7
98TdOCCQkJckeXDkUNwR/pS7qcFphPSqDO3MJye8Tn7KTszZzs3MYzibXcBe2F10tNikZKOsuXxf
JU3V5Rrn2o36C42mTavNVZdckEh0sK2ww/c6sfPaDddbNLcv3dnXQ+rtuRfzQLJv6tGFx3sHeZ68
Ha54FvhceXTzRc+E2cue1xpvLr0Vendyamna7EPRzNs5vo+W85ELpz6VLNYuNSyXf877kvjVe0Vv
lW919Vvf97Nrnuti6ws/Lm1EbSptLm3V/8zdsX+0v5LijvcAEFEfST++3t7+KgoALheArdPb2xsV
29tblQjZeAlAV+jvHPuOMpYEQHHIDvpv5f8A00Vhp55UaUUAAAGdaVRYdFhNTDpjb20uYWRvYmUu
eG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAg
Q29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0
PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAv
Ij4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE5OTwvZXhpZjpQaXhlbFhEaW1lbnNp
b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MDg8L2V4aWY6UGl4ZWxZRGltZW5z
aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K
+mOIhAAAQABJREFUeAHsXQdck8f7P0NIwjJhyd5bUESBKoqoaJ21Yp11oD/Ftgra4mildbdgHVQL
WCtacRVEC9QiaAUtIChDtuy9AoRIQhLIeOH/vzeLAEHR4qDm9MN77703nnvu+z537+We5xnV2PoM
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
QmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231862</attachid>
            <date>2014-05-21 23:38:58 -0700</date>
            <delta_ts>2014-06-04 18:39:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128145-20140521233834.patch</filename>
            <type>text/plain</type>
            <size>35062</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc1ZDg4NmVmYTMzM2Nk
Y2RhZThjZTFiZDcwM2IxYjIxYThkYTBjNC4uNjdjM2MwYTAzMzhhZjFlNzc0ZGEzODExMjQ2MzM5
NjkyMTdjZDZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE0LTA1LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogbWlzc2luZyB1bmRlcmxpbmUgdW5kZXIgQ0pLIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIHRoZSBHbHlw
aFRvUGF0aFRyYW5zbGF0b3Igd2hpY2ggaXMgdXNlZCB0byBmaW5kIGludGVyc2VjdGlvbnMgb2YK
KyAgICAgICAgZ2x5cGhzIGFuZCB1bmRlcmxpbmVzLiBJdCB3YXMgbW9kaWZpZWQgdG8gYWxsb3cg
Zm9yIHF1ZXJ5aW5nIHRoZXNlIHBpZWNlcyBvZgorICAgICAgICBpbmZvcm1hdGlvbjoKKyAgICAg
ICAgMSkgVGhlIGV4dGVudHMgb2YgdGhlIGdseXBoLiBUaGlzIGNhbiBiZSB1c2VkIHRvIG1ha2Ug
dGhlIHVuZGVybGluZXMgc2tpcCBhbiBlbnRpcmUKKyAgICAgICAgZ2x5cGgsIHdob2xlc2FsZQor
ICAgICAgICAyKSBXaGF0IGtpbmQgb2Ygc2tpcHBpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHVzZWQK
KyAgICAgICAgMykgVGhlIFBhdGggd2hpY2ggcmVwcmVzZW50cyB0aGUgZ2x5cGgKKyAgICAgICAg
VGhlcmUgYXJlIHRocmVlIHNraXBwaW5nIGJlaGF2aW9yczoKKyAgICAgICAgMSkgKFNraXBEZXNj
ZW5kZXJzKSBUaGUgcHJldmlvdXMgYmVoYXZpb3IKKyAgICAgICAgMikgKFNraXBHbHlwaCkgTWFr
ZSB0aGUgdW5kZXJsaW5lIHNraXAgb3ZlciB0aGUgZW50aXJlIGdseXBoLCB1c2luZyB0aGUgZXh0
ZW50cygpIGZ1bmN0aW9uCisgICAgICAgIDMpIChEcmF3T3ZlckdseXBoKSBNYWtlIHRoZSB1bmRl
cmxpbmUgcGxvdyB0aHJvdWdoIHRoZSBnbHlwaCwgaWdub3JpbmcgYW55IGRlc2NlbmRlcnMKKwor
ICAgICAgICBDYWxjdWxhdGluZyB3aGljaCB1bmRlcmxpbmluZyBiZWhhdmlvciB0byB1c2UgZGVw
ZW5kcyBvbiB3aGF0IHRoZSBiYXNlIGNvZGVwb2ludCB0aGF0CisgICAgICAgIG9yaWdpbmF0ZWQg
dGhhdCBnbHlwaCBpcy4gVGhpcyBtZWFucyB0aGF0IHdlIGhhdmUgdG8gbWFwIGZyb20gZ2x5cGhz
IHRvIGNoYXJhY3RlcnMsCisgICAgICAgIHNvbWV0aGluZyB3aGljaCBpcyBub250cml2aWFsIHRv
IGRvLiBJbiBvcmRlciB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIHRoaXMgcGF0Y2ggYWRkcworICAg
ICAgICBhbiBvcHRpb25hbCB2ZWN0b3IgdG8gR2x5cGhCdWZmZXIgd2hpY2ggcmVwcmVzZW50cyB0
aGUgbG9jYXRpb24gaW4gdGhlIG9yaWdpbmFsIHN0cmluZworICAgICAgICBmcm9tIHdoaWNoIGEg
cGFydGljdWxhciBnbHlwaCBvcmlnaW5hdGVkLiBUaGVuLCB3aGVuIG91ciBXaWR0aEl0ZXJhdG9y
IGNvZGUgYWRkcworICAgICAgICBnbHlwaHMgdG8gdGhlIEdseXBoQnVmZmVyLCB3ZSBjYW4gaW5j
bHVkZSB0aGUgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgd2UgYXJlCisgICAgICAgIGlu
IHRoZSBpbnB1dCBzdHJpbmcuIE9uY2UgdGhpcyBkYXRhIGlzIGF2YWlsYWJsZSwgdGhlIEdseXBo
UGF0aFRyYW5zbGF0b3IgY2FuIGxvb2sgdXAKKyAgICAgICAgdGhlIGJhc2UgY29kZXBvaW50IGZy
b20gd2hpY2ggdGhpcyBnbHlwaCBvcmlnaW5hdGVzLCBhbmQgY2FuIHJ1biBJQ1UgZnVuY3Rpb25z
IG9uIHRoYXQKKyAgICAgICAgY29kZXBvaW50LgorCisgICAgICAgIFdlIGNhbiB1c2UgdGhlIElD
VSB1YmxvY2tfZ2V0Q29kZSgpIGZ1bmN0aW9uIHRvIGZpbmQgd2hpY2ggVW5pY29kZSBibG9jayBh
IHBhcnRpY3VsYXIKKyAgICAgICAgY29kZXBvaW50IGNvbWVzIGZyb20uIElmIHRoZSBjb2RlcG9p
bnQgY29tZXMgZnJvbSBhIENKSyBibG9jaywgd2Ugd2lsbCB1c2UKKyAgICAgICAgRHJhd092ZXJH
bHlwaDsgb3RoZXJ3aXNlLCB3ZSB3aWxsIHVzZSBTa2lwRGVzY2VuZGVycy4KKworICAgICAgICBU
ZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWR2YW5jZUJ5Q29uc3Vt
aW5nQmFzZUNoYXJhY3RlckluU2VxdWVuY2UpOiBSZWZhY3RvcmVkIGZyb20KKyAgICAgICAgYWR2
YW5jZUJ5Q29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UgaW5zaWRlIENvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRVbmRlcmxpbmVUeXBlKTogTG9vayB1
cCB0aGUgYmFzZSBjb2RlcG9pbnQgZnJvbSB3aGljaCB0aGlzIGdseXBoCisgICAgICAgIG9yaWdp
bmF0ZXMsIGNhbGwgdWJsb2NrX2dldENvZGUgdG8gZ2V0IGl0cyBVbmljb2RlIGJsb2NrLCB0aGVu
IHJldHVybgorICAgICAgICBhIEdseXBoVW5kZXJsaW5lVHlwZSBhY2NvcmRpbmdseS4gVGhpcyBj
b2RlIGlzIHNoYXJlZCBiZXR3ZWVuIFNWRyBhbmQgbm9uLVNWRy4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Lmg6IE5ldyB2aXJ0dWFsIGZ1bmN0aW9ucyBpbiBHbHlwaFRvUGF0aFRy
YW5zbGF0b3IsIGFzIHdlbGwgYXMKKyAgICAgICAgZnVuY3Rpb24gc2lnbmF0dXJlcyBmb3IgdGhl
IGFib3ZlIHR3byBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhC
dWZmZXIuaDogQWRkIGFuIG9wdGlvbmFsIGluc3RhbmNlIG1lbWJlciBmb3IgdGhlIGxvY2F0aW9u
CisgICAgICAgIGZyb20gd2l0aGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgZnJvbSB3aGljaCBhIHBh
cnRpY3VsYXIgZ2x5cGggb3JpZ2luYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OkdseXBoQnVmZmVy
OjpjbGVhcik6IFVwZGF0ZWQgZm9yIG5ldyBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpHbHlw
aEJ1ZmZlcjo6YWRkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6c2F2
ZU9mZnNldHNJblN0cmluZyk6IE9wdC1pbiB0byB1c2luZyB0aGUgbmV3IHZhcmlhYmxlCisgICAg
ICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6b2Zmc2V0SW5TdHJpbmcpOiBOZXcgdmFyaWFibGUg
YWNjZXNzb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oOiBTVkcgbmVl
ZHMgdGhlIFRleHRSdW4gdG8gdXNlIHNoYXJlZFVuZGVybGluZVR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWR0
aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOiBVc2UgR2x5cGhCdWZmZXIncyBuZXcgdmFyaWFi
bGUgKGlmIHByZXNlbnQpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWR2YW5jZUJ5Q29tYmluaW5n
Q2hhcmFjdGVyU2VxdWVuY2UpOiBVc2UgcmVmYWN0b3JlZAorICAgICAgICBhZHZhbmNlQnlDb25z
dW1pbmdCYXNlQ2hhcmFjdGVySW5TZXF1ZW5jZSgpLgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxl
eFRleHRDb250cm9sbGVyOjphZHZhbmNlKTogVXNlIEdseXBoQnVmZmVyJ3MgbmV3IHZhcmlhYmxl
IChpZiBwcmVzZW50KS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5t
bTogSW1wbGVtZW50IG5ldyBHbHlwaFRvUGF0aFRyYW5zbGF0b3IgZnVuY3Rpb25zLgorICAgICAg
ICAoV2ViQ29yZTo6TWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpwYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6ZXh0ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OnVuZGVybGluZVR5cGUpOiBDYWxscyBzaGFy
ZWRVbmRlcmxpbmVUeXBlKCkuCisgICAgICAgIChXZWJDb3JlOjpNYWNHbHlwaFRvUGF0aFRyYW5z
bGF0b3I6Om1vdmVUb05leHRWYWxpZEdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0dseXBo
VG9QYXRoVHJhbnNsYXRvcjo6aW5jcmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRh
c2hlc0ZvckludGVyc2VjdGlvbnNXaXRoUmVjdCk6IEFzayB0aGUgdHJhbnNsYXRvciB3aGF0IGtp
bmQgb2YgdW5kZXJsaW5lCisgICAgICAgIGJlaGF2aW9yIHNob3VsZCBiZSB1c2VkLiBSZWFjdCBh
Y2NvcmRpbmdseS4KKyAgICAgICAgKFdlYkNvcmU6Ok1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6
bmV4dFBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWFjR2x5cGhUb1BhdGhUcmFu
c2xhdG9yOjppbmNyZW1lbnRJbmRleCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5p
c2NyaWJlQ29udHJvbGxlcjo6c2hhcGVBbmRQbGFjZUl0ZW0pOiBVcGRhdGUgdG8gbmV3IHNpZ25h
dHVyZSBvZiBHbHlwaEJ1ZmZlcjo6YWRkKCkKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcDogSW1wbGVtZW50IG5ldyBHbHlwaFRvUGF0aFRyYW5z
bGF0b3IgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xh
dG9yOjpTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5
cGhUb1BhdGhUcmFuc2xhdG9yOjpnZXRDdXJyZW50VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OmV4dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6TWFj
R2x5cGhUb1BhdGhUcmFuc2xhdG9yOjp1bmRlcmxpbmVUeXBlKTogQ2FsbHMgc2hhcmVkVW5kZXJs
aW5lVHlwZSgpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpt
b3ZlVG9OZXh0VmFsaWRHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaFRvUGF0aFRy
YW5zbGF0b3I6OmluY3JlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVy
aW5nQ29udGV4dDo6Y3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0OjpkcmF3U1ZHR2x5cGhzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6bmV4dFBhdGgpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjppbmNyZW1lbnRJbmRl
eCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5n
Q29udGV4dC5oOiBTVkcgbmVlZHMgdGhlIFRleHRSdW4gdG8gdXNlIHNoYXJlZFVuZGVybGluZVR5
cGUuCisKIDIwMTQtMDUtMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBHYXJiYWdlIHdoZW4gcnViYmVyLWJhbmRpbmcgYXQgdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBw
YWdlIHpvb21lZCB0byBub24taW50ZWdyYWwgc2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDc5ODBjNjAwODg3MzIwMDgxZTAxN2Y2ZGRmMjc5Y2Ux
NzM4OTZiZDYuLjM0ZmY5MDc1MzcxMzMzM2RhNWVmMThiY2YwMjVjNTE4NWZiNDFlMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0xMDUzLDUgKzEwNTMs
NjggQEAgYm9vbCBGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKIAogICAg
IHJldHVybiB0cnVlOwogfQorICAgIAorYm9vbCBhZHZhbmNlQnlDb25zdW1pbmdCYXNlQ2hhcmFj
dGVySW5TZXF1ZW5jZShjb25zdCBVQ2hhciomIGl0ZXJhdG9yLCBjb25zdCBVQ2hhciogZW5kLCBV
Q2hhcjMyJiBiYXNlQ2hhcmFjdGVyKQoreworICAgIEFTU0VSVChpdGVyYXRvciA8IGVuZCk7CisK
KyAgICBiYXNlQ2hhcmFjdGVyID0gKml0ZXJhdG9yKys7CisKKyAgICBpZiAoVTE2X0lTX1NVUlJP
R0FURShiYXNlQ2hhcmFjdGVyKSkgeworICAgICAgICBpZiAoIVUxNl9JU19MRUFEKGJhc2VDaGFy
YWN0ZXIpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoaXRlcmF0b3Ig
PT0gZW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBVQ2hhciB0cmFpbCA9
ICppdGVyYXRvcisrOworICAgICAgICBpZiAoIVUxNl9JU19UUkFJTCh0cmFpbCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJhc2VDaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBM
RU1FTlRBUlkoYmFzZUNoYXJhY3RlciwgdHJhaWwpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKyAgICAKK0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6R2x5cGhVbmRlcmxpbmVUeXBlIHNoYXJl
ZFVuZGVybGluZVR5cGUoY29uc3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgR2x5cGhCdWZmZXIm
IGdseXBoQnVmZmVyLCBpbnQgaW5kZXgpCit7CisgICAgVUNoYXIzMiBiYXNlQ2hhcmFjdGVyOwor
ICAgIGlmICh0ZXh0UnVuLmlzOEJpdCgpKQorICAgICAgICBiYXNlQ2hhcmFjdGVyID0gdGV4dFJ1
bi5jaGFyYWN0ZXJzOCgpW2dseXBoQnVmZmVyLm9mZnNldEluU3RyaW5nKGluZGV4KV07CisgICAg
ZWxzZSB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJQb2ludGVyID0gdGV4dFJ1bi5j
aGFyYWN0ZXJzMTYoKSArIGdseXBoQnVmZmVyLm9mZnNldEluU3RyaW5nKGluZGV4KTsKKyAgICAg
ICAgaWYgKCFhZHZhbmNlQnlDb25zdW1pbmdCYXNlQ2hhcmFjdGVySW5TZXF1ZW5jZShjaGFyYWN0
ZXJQb2ludGVyLCB0ZXh0UnVuLmNoYXJhY3RlcnMxNigpICsgdGV4dFJ1bi5sZW5ndGgoKSwgYmFz
ZUNoYXJhY3RlcikpCisgICAgICAgICAgICByZXR1cm4gR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpE
cmF3T3ZlckdseXBoOworICAgIH0KKyAgICAKKyAgICBVQmxvY2tDb2RlIGJsb2NrQ29kZSA9IHVi
bG9ja19nZXRDb2RlKGJhc2VDaGFyYWN0ZXIpOworICAgIHN3aXRjaCAoYmxvY2tDb2RlKSB7Cisg
ICAgY2FzZSBVQkxPQ0tfQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQ6CisgICAgY2FzZSBVQkxPQ0tf
Q0pLX1NZTUJPTFNfQU5EX1BVTkNUVUFUSU9OOgorICAgIGNhc2UgVUJMT0NLX0VOQ0xPU0VEX0NK
S19MRVRURVJTX0FORF9NT05USFM6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFk6
CisgICAgY2FzZSBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQToKKyAg
ICBjYXNlIFVCTE9DS19DSktfVU5JRklFRF9JREVPR1JBUEhTOgorICAgIGNhc2UgVUJMT0NLX0NK
S19DT01QQVRJQklMSVRZX0lERU9HUkFQSFM6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX0NPTVBBVElC
SUxJVFlfRk9STVM6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRF
TlNJT05fQjoKKyAgICBjYXNlIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NV
UFBMRU1FTlQ6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX1NUUk9LRVM6CisgICAgY2FzZSBVQkxPQ0tf
Q0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQzoKKyAgICBjYXNlIFVCTE9DS19DSktf
VU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9EOgorICAgIGNhc2UgVUJMT0NLX0lERU9HUkFQ
SElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlM6CisgICAgY2FzZSBVQkxPQ0tfTElORUFSX0JfSURF
T0dSQU1TOgorICAgIGNhc2UgVUJMT0NLX0VOQ0xPU0VEX0lERU9HUkFQSElDX1NVUFBMRU1FTlQ6
CisgICAgY2FzZSBVQkxPQ0tfSElSQUdBTkE6CisgICAgY2FzZSBVQkxPQ0tfS0FUQUtBTkE6Cisg
ICAgY2FzZSBVQkxPQ0tfQk9QT01PRk86CisgICAgY2FzZSBVQkxPQ0tfQk9QT01PRk9fRVhURU5E
RUQ6CisgICAgY2FzZSBVQkxPQ0tfSEFOR1VMX0pBTU86CisgICAgY2FzZSBVQkxPQ0tfSEFOR1VM
X0NPTVBBVElCSUxJVFlfSkFNTzoKKyAgICBjYXNlIFVCTE9DS19IQU5HVUxfU1lMTEFCTEVTOgor
ICAgIGNhc2UgVUJMT0NLX0hBTkdVTF9KQU1PX0VYVEVOREVEX0E6CisgICAgY2FzZSBVQkxPQ0tf
SEFOR1VMX0pBTU9fRVhURU5ERURfQjoKKyAgICAgICAgcmV0dXJuIEdseXBoVG9QYXRoVHJhbnNs
YXRvcjo6RHJhd092ZXJHbHlwaDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gR2x5cGhU
b1BhdGhUcmFuc2xhdG9yOjpTa2lwRGVzY2VuZGVyczsKKyAgICB9Cit9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAppbmRleCBmY2RkNjhmNjBhMjA3YTNkMTAzNzgy
YzdiNjAwNWZhNTRjZDQ1ZjFlLi43ZThmMmU3ZGExMWM5NDhjN2YzZjYxYTk1NDlhNzk1OTZmZjYx
MWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCkBAIC05NiwxMCAr
OTYsMTkgQEAgc3RydWN0IEdseXBoT3ZlcmZsb3cgewogCiBjbGFzcyBHbHlwaFRvUGF0aFRyYW5z
bGF0b3IgewogcHVibGljOgorICAgIGVudW0gR2x5cGhVbmRlcmxpbmVUeXBlIHsKKyAgICAgICAg
U2tpcERlc2NlbmRlcnMsCisgICAgICAgIFNraXBHbHlwaCwKKyAgICAgICAgRHJhd092ZXJHbHlw
aAorICAgIH07CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zTW9yZVBhdGhzKCkgPSAwOwotICAg
IHZpcnR1YWwgUGF0aCBuZXh0UGF0aCgpID0gMDsKKyAgICB2aXJ0dWFsIFBhdGggcGF0aCgpID0g
MDsKKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IGV4dGVudHMoKSA9IDA7Cisg
ICAgdmlydHVhbCBHbHlwaFVuZGVybGluZVR5cGUgdW5kZXJsaW5lVHlwZSgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgPSAwOwogICAgIHZpcnR1YWwgfkdseXBoVG9QYXRoVHJh
bnNsYXRvcigpIHsgfQogfTsKK0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6R2x5cGhVbmRlcmxpbmVU
eXBlIHNoYXJlZFVuZGVybGluZVR5cGUoY29uc3QgVGV4dFJ1biYsIGNvbnN0IEdseXBoQnVmZmVy
JiwgaW50IGluZGV4KTsKIAogY2xhc3MgRm9udCB7CiBwdWJsaWM6CkBAIC0zNDcsNiArMzU2LDcg
QEAgcHJpdmF0ZToKIHZvaWQgaW52YWxpZGF0ZUZvbnRHbHlwaHNDYWNoZSgpOwogdm9pZCBwcnVu
ZVVucmVmZXJlbmNlZEVudHJpZXNGcm9tRm9udEdseXBoc0NhY2hlKCk7CiB2b2lkIGNsZWFyV2lk
dGhDYWNoZXMoKTsKK2Jvb2wgYWR2YW5jZUJ5Q29uc3VtaW5nQmFzZUNoYXJhY3RlckluU2VxdWVu
Y2UoY29uc3QgVUNoYXIqJiBpdGVyYXRvciwgY29uc3QgVUNoYXIqIGVuZCwgVUNoYXIzMiYgYmFz
ZUNoYXJhY3Rlcik7CiAKIGlubGluZSBGb250Ojp+Rm9udCgpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAppbmRleCAzMzNjMzRkMjllNjU5NTEz
NjFkODhlOTA1M2U0ZDA0MjM1MzliZmI3Li44ZDI1OGU3MzM3N2Q5MmY0ZmFjYTk5YjY4MzQ5ODQw
NjNkNDRkOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
bHlwaEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBo
QnVmZmVyLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGljOgogICAgICAgICBtX2ZvbnREYXRhLmNs
ZWFyKCk7CiAgICAgICAgIG1fZ2x5cGhzLmNsZWFyKCk7CiAgICAgICAgIG1fYWR2YW5jZXMuY2xl
YXIoKTsKKyAgICAgICAgaWYgKG1fb2Zmc2V0c0luU3RyaW5nKQorICAgICAgICAgICAgbV9vZmZz
ZXRzSW5TdHJpbmctPmNsZWFyKCk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBtX29mZnNl
dHMuY2xlYXIoKTsKICNlbmRpZgpAQCAtMTIyLDcgKzEyNCw3IEBAIHB1YmxpYzoKICNlbmRpZgog
ICAgIH0KIAotICAgIHZvaWQgYWRkKEdseXBoIGdseXBoLCBjb25zdCBTaW1wbGVGb250RGF0YSog
Zm9udCwgZmxvYXQgd2lkdGgsIGNvbnN0IEZsb2F0U2l6ZSogb2Zmc2V0ID0gMCkKKyAgICB2b2lk
IGFkZChHbHlwaCBnbHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGZsb2F0IHdpZHRo
LCBpbnQgb2Zmc2V0SW5TdHJpbmcgPSAtMSwgY29uc3QgRmxvYXRTaXplKiBvZmZzZXQgPSAwKQog
ICAgIHsKICAgICAgICAgbV9mb250RGF0YS5hcHBlbmQoZm9udCk7CiAKQEAgLTE0OSwxMCArMTUx
LDEzIEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOwogI2Vu
ZGlmCisgICAgICAgIAorICAgICAgICBpZiAob2Zmc2V0SW5TdHJpbmcgPj0gMCAmJiBtX29mZnNl
dHNJblN0cmluZykKKyAgICAgICAgICAgIG1fb2Zmc2V0c0luU3RyaW5nLT5hcHBlbmQob2Zmc2V0
SW5TdHJpbmcpOwogICAgIH0KICAgICAKICNpZiAhVVNFKFdJTkdESSkKLSAgICB2b2lkIGFkZChH
bHlwaCBnbHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIEdseXBoQnVmZmVyQWR2YW5j
ZSBhZHZhbmNlKQorICAgIHZvaWQgYWRkKEdseXBoIGdseXBoLCBjb25zdCBTaW1wbGVGb250RGF0
YSogZm9udCwgR2x5cGhCdWZmZXJBZHZhbmNlIGFkdmFuY2UsIGludCBvZmZzZXRJblN0cmluZyA9
IC0xKQogICAgIHsKICAgICAgICAgbV9mb250RGF0YS5hcHBlbmQoZm9udCk7CiAjaWYgVVNFKENB
SVJPKQpAQCAtMTY0LDYgKzE2OSw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIG1fYWR2
YW5jZXMuYXBwZW5kKGFkdmFuY2UpOworICAgICAgICAKKyAgICAgICAgaWYgKG9mZnNldEluU3Ry
aW5nID49IDAgJiYgbV9vZmZzZXRzSW5TdHJpbmcpCisgICAgICAgICAgICBtX29mZnNldHNJblN0
cmluZy0+YXBwZW5kKG9mZnNldEluU3RyaW5nKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTc5LDYg
KzE4NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIEdseXBoQnVmZmVyQWR2YW5jZSYgbGFzdEFkdmFu
Y2UgPSBtX2FkdmFuY2VzLmxhc3QoKTsKICAgICAgICAgbGFzdEFkdmFuY2Uuc2V0V2lkdGgobGFz
dEFkdmFuY2Uud2lkdGgoKSArIHdpZHRoKTsKICAgICB9CisgICAgCisgICAgdm9pZCBzYXZlT2Zm
c2V0c0luU3RyaW5nKCkKKyAgICB7CisgICAgICAgIG1fb2Zmc2V0c0luU3RyaW5nLnJlc2V0KG5l
dyBWZWN0b3I8aW50LCAyMDQ4PigpKTsKKyAgICB9CisgICAgCisgICAgaW50IG9mZnNldEluU3Ry
aW5nKGludCBpbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX29mZnNldHNJblN0
cmluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiAoKm1fb2Zmc2V0c0luU3RyaW5nKVtpbmRleF07
CisgICAgfQogCiBwcml2YXRlOgogICAgIHZvaWQgc3dhcChpbnQgaW5kZXgxLCBpbnQgaW5kZXgy
KQpAQCAtMjA2LDYgKzIyNSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEdseXBoQnVmZmVyR2x5
cGgsIDIwNDg+IG1fZ2x5cGhzOwogICAgIFZlY3RvcjxHbHlwaEJ1ZmZlckFkdmFuY2UsIDIwNDg+
IG1fYWR2YW5jZXM7CiAgICAgR2x5cGhCdWZmZXJBZHZhbmNlIG1faW5pdGlhbEFkdmFuY2U7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxpbnQsIDIwNDg+PiBtX29mZnNldHNJblN0cmluZzsK
ICNpZiBQTEFURk9STShXSU4pCiAgICAgVmVjdG9yPEZsb2F0U2l6ZSwgMjA0OD4gbV9vZmZzZXRz
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKaW5k
ZXggNWQwYzg3ZDZkODdkYTUzMWE3NTk2NGViYjVjOTQ0Zjg2ZWM0YTIwMy4uMzcyMDg0NTZlYjNj
OWMzNjVkYzU2MmZjMzVlMDM0YzBlMTUyNTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIGRyYXdTVkdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgU2ltcGxl
Rm9udERhdGEqLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9tLCBpbnQgdG8sIGNvbnN0IEZs
b2F0UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgZmxvYXQgZmxvYXRXaWR0aFVz
aW5nU1ZHRm9udChjb25zdCBGb250JiwgY29uc3QgVGV4dFJ1biYsIGludCYgY2hhcnNDb25zdW1l
ZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIGFw
cGx5U1ZHS2VybmluZyhjb25zdCBTaW1wbGVGb250RGF0YSosIFdpZHRoSXRlcmF0b3ImLCBHbHlw
aEJ1ZmZlciosIGludCBmcm9tKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPEdseXBoVG9QYXRoVHJhbnNsYXRvcj4gY3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9y
KGNvbnN0IFNpbXBsZUZvbnREYXRhJiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50
IG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8R2x5cGhUb1BhdGhUcmFuc2xhdG9yPiBjcmVhdGVHbHlwaFRvUGF0
aFRyYW5zbGF0b3IoY29uc3QgU2ltcGxlRm9udERhdGEmLCBjb25zdCBUZXh0UnVuKiwgY29uc3Qg
R2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IG51bUdseXBocywgY29uc3QgRmxvYXRQb2ludCYp
IGNvbnN0ID0gMDsKICNlbmRpZgogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKaW5kZXggZDk3Y2Y3YTBlOGVmMTk4Nzky
NmQxNDMwMDllYmYxNDA2NGUwNzk5Ny4uOTM3MTBkYWUyYzBkZTEwOTk1YWZhNDk2NDIxZTE2Y2Zk
YmQ1MDg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lk
dGhJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lk
dGhJdGVyYXRvci5jcHAKQEAgLTIzNSw5ICsyMzUsOSBAQCBpbmxpbmUgdW5zaWduZWQgV2lkdGhJ
dGVyYXRvcjo6YWR2YW5jZUludGVybmFsKFRleHRJdGVyYXRvciYgdGV4dEl0ZXJhdG9yLCBHbHlw
aAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyLT5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZm9yVGV4dEVtcGhhc2lzKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChmb250RGF0YS0+emVy
b1dpZHRoU3BhY2VHbHlwaCgpLCBmb250RGF0YSwgbV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKGZv
bnREYXRhLT56ZXJvV2lkdGhTcGFjZUdseXBoKCksIGZvbnREYXRhLCBtX2V4cGFuc2lvblBlck9w
cG9ydHVuaXR5LCB0ZXh0SXRlcmF0b3IuY3VycmVudENoYXJhY3RlcigpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2x5cGhCdWZmZXItPmFkZChmb250RGF0YS0+c3BhY2VHbHlwaCgpLCBmb250RGF0YSwg
ZXhwYW5zaW9uQXRUaGlzT3Bwb3J0dW5pdHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChmb250RGF0YS0+c3BhY2VHbHlwaCgpLCBmb250RGF0
YSwgZXhwYW5zaW9uQXRUaGlzT3Bwb3J0dW5pdHksIHRleHRJdGVyYXRvci5jdXJyZW50Q2hhcmFj
dGVyKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+ZXhwYW5kTGFzdEFkdmFuY2UoZXhwYW5z
aW9uQXRUaGlzT3Bwb3J0dW5pdHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjcy
LDYgKzI3Miw4IEBAIGlubGluZSB1bnNpZ25lZCBXaWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJu
YWwoVGV4dEl0ZXJhdG9yJiB0ZXh0SXRlcmF0b3IsIEdseXBoCiAKICAgICAgICAgaWYgKG1fZm9y
VGV4dEVtcGhhc2lzICYmICFGb250OjpjYW5SZWNlaXZlVGV4dEVtcGhhc2lzKGNoYXJhY3Rlcikp
CiAgICAgICAgICAgICBnbHlwaCA9IDA7CisgICAgICAgIAorICAgICAgICBpbnQgY3VycmVudENo
YXJhY3RlciA9IHRleHRJdGVyYXRvci5jdXJyZW50Q2hhcmFjdGVyKCk7CiAKICAgICAgICAgLy8g
QWR2YW5jZSBwYXN0IHRoZSBjaGFyYWN0ZXIgd2UganVzdCBkZWFsdCB3aXRoLgogICAgICAgICB0
ZXh0SXRlcmF0b3IuYWR2YW5jZShhZHZhbmNlTGVuZ3RoKTsKQEAgLTMwNSw3ICszMDcsNyBAQCBp
bmxpbmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUludGVybmFsKFRleHRJdGVyYXRv
ciYgdGV4dEl0ZXJhdG9yLCBHbHlwaAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGdseXBoQnVm
ZmVyKQotICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgZm9udERhdGEsIChydGwg
PyBvbGRXaWR0aCArIGxhc3RSb3VuZGluZ1dpZHRoIDogd2lkdGgpKTsKKyAgICAgICAgICAgIGds
eXBoQnVmZmVyLT5hZGQoZ2x5cGgsIGZvbnREYXRhLCAocnRsID8gb2xkV2lkdGggKyBsYXN0Um91
bmRpbmdXaWR0aCA6IHdpZHRoKSwgY3VycmVudENoYXJhY3Rlcik7CiAKICAgICAgICAgbGFzdFJv
dW5kaW5nV2lkdGggPSB3aWR0aCAtIG9sZFdpZHRoOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCmluZGV4IGMxZWNkOGRhNjAyNTlkYWJkMzA2MTA0NmVlYzUxNmE5MzYyNmY1MWIuLmY3NTA4
YzI2YTdiNTA0ODY2NWIyMjI5MzY5YTc5NGQ1MWMwMmI0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXIuY3BwCkBAIC0yNjEsMjUgKzI2MSwxNSBAQCBpbnQgQ29tcGxleFRleHRDb250cm9sbGVy
OjpvZmZzZXRGb3JQb3NpdGlvbihmbG9hdCBoLCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzKQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQotCisgICAgCiBzdGF0
aWMgYm9vbCBhZHZhbmNlQnlDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciom
IGl0ZXJhdG9yLCBjb25zdCBVQ2hhciogZW5kLCBVQ2hhcjMyJiBiYXNlQ2hhcmFjdGVyLCB1bnNp
Z25lZCYgbWFya0NvdW50KQogewogICAgIEFTU0VSVChpdGVyYXRvciA8IGVuZCk7CiAKICAgICBt
YXJrQ291bnQgPSAwOwotCi0gICAgYmFzZUNoYXJhY3RlciA9ICppdGVyYXRvcisrOwotCi0gICAg
aWYgKFUxNl9JU19TVVJST0dBVEUoYmFzZUNoYXJhY3RlcikpIHsKLSAgICAgICAgaWYgKCFVMTZf
SVNfTEVBRChiYXNlQ2hhcmFjdGVyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKGl0ZXJhdG9yID09IGVuZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgVUNoYXIgdHJhaWwgPSAqaXRlcmF0b3IrKzsKLSAgICAgICAgaWYgKCFVMTZfSVNfVFJBSUwo
dHJhaWwpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBiYXNlQ2hhcmFjdGVy
ID0gVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGJhc2VDaGFyYWN0ZXIsIHRyYWlsKTsKLSAgICB9Cisg
ICAgCisgICAgaWYgKCFhZHZhbmNlQnlDb25zdW1pbmdCYXNlQ2hhcmFjdGVySW5TZXF1ZW5jZShp
dGVyYXRvciwgZW5kLCBiYXNlQ2hhcmFjdGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gQ29uc3VtZSBtYXJrcy4KICAgICB3aGlsZSAoaXRlcmF0b3IgPCBlbmQpIHsKQEAgLTUy
OSw3ICs1MTksNyBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2YW5jZSh1bnNpZ25l
ZCBvZmZzZXQsIEdseXBoQnVmZmVyKiBnbHlwaEJ1ZmZlciwgRwogICAgICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyICYmICFtX2NoYXJhY3RlckluQ3Vy
cmVudEdseXBoKQotICAgICAgICAgICAgICAgIGdseXBoQnVmZmVyLT5hZGQobV9hZGp1c3RlZEds
eXBoc1trXSwgY29tcGxleFRleHRSdW4uZm9udERhdGEoKSwgYWRqdXN0ZWRBZHZhbmNlKTsKKyAg
ICAgICAgICAgICAgICBnbHlwaEJ1ZmZlci0+YWRkKG1fYWRqdXN0ZWRHbHlwaHNba10sIGNvbXBs
ZXhUZXh0UnVuLmZvbnREYXRhKCksIGFkanVzdGVkQWR2YW5jZSwgY29tcGxleFRleHRSdW4uaW5k
ZXhBdChtX2dseXBoSW5DdXJyZW50UnVuKSk7CiAKICAgICAgICAgICAgIHVuc2lnbmVkIG9sZENo
YXJhY3RlckluQ3VycmVudEdseXBoID0gbV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaDsKICAgICAg
ICAgICAgIG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGggPSBzdGQ6Om1pbihtX2N1cnJlbnRDaGFy
YWN0ZXIgLSBjb21wbGV4VGV4dFJ1bi5zdHJpbmdMb2NhdGlvbigpLCBnbHlwaEVuZE9mZnNldCkg
LSBnbHlwaFN0YXJ0T2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udE1hYy5tbQppbmRleCA3NWRlNDVlY2YwNzA3YWNmMTY3N2Y0ZDg3NmVmNzgyYzU5
NDk3ODMxLi4xZDJjMzg1OGIxYTkxMGRiNDhhNGU4MmY5YmVhOGMzYmQ1OGIyZTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQpAQCAtNDQ4
LDggKzQ0OCw5IEBAIHN0YXRpYyB2b2lkIGZpbmRQYXRoSW50ZXJzZWN0aW9ucyh2b2lkKiBzdGF0
ZUFzVm9pZFBvaW50ZXIsIGNvbnN0IENHUGF0aEVsZW1lbnQqCiAKIGNsYXNzIE1hY0dseXBoVG9Q
YXRoVHJhbnNsYXRvciBmaW5hbCA6IHB1YmxpYyBHbHlwaFRvUGF0aFRyYW5zbGF0b3IgewogcHVi
bGljOgotICAgIE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5
cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHRleHRPcmlnaW4pCisgICAgTWFjR2x5cGhUb1Bh
dGhUcmFuc2xhdG9yKGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlciwgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbikKICAgICAgICAgOiBtX2lu
ZGV4KDApCisgICAgICAgICwgbV90ZXh0UnVuKHRleHRSdW4pCiAgICAgICAgICwgbV9nbHlwaEJ1
ZmZlcihnbHlwaEJ1ZmZlcikKICAgICAgICAgLCBtX2ZvbnREYXRhKGdseXBoQnVmZmVyLmZvbnRE
YXRhQXQobV9pbmRleCkpCiAgICAgICAgICwgbV90cmFuc2xhdGlvbihDR0FmZmluZVRyYW5zZm9y
bVNjYWxlKENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9uKHRleHRPcmlnaW4ueCgpLCB0
ZXh0T3JpZ2luLnkoKSksIDEsIC0xKSkKQEAgLTQ2MSwzMSArNDYyLDQ1IEBAIHByaXZhdGU6CiAg
ICAgewogICAgICAgICByZXR1cm4gbV9pbmRleCAhPSBtX2dseXBoQnVmZmVyLnNpemUoKTsKICAg
ICB9Ci0gICAgdmlydHVhbCBQYXRoIG5leHRQYXRoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXRoIHBhdGgoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+
IGV4dGVudHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEdseXBoVW5kZXJsaW5lVHlwZSB1bmRl
cmxpbmVUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgbW92ZVRvTmV4dFZhbGlkR2x5cGgoKTsKLSAgICB2b2lkIGluY3JlbWVu
dEluZGV4KCk7CiAKICAgICBpbnQgbV9pbmRleDsKKyAgICBjb25zdCBUZXh0UnVuJiBtX3RleHRS
dW47CiAgICAgY29uc3QgR2x5cGhCdWZmZXImIG1fZ2x5cGhCdWZmZXI7CiAgICAgY29uc3QgU2lt
cGxlRm9udERhdGEqIG1fZm9udERhdGE7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbV90cmFuc2xh
dGlvbjsKIH07CiAKLVBhdGggTWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpuZXh0UGF0aCgpCitQ
YXRoIE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6cGF0aCgpCiB7CiAgICAgUmV0YWluUHRyPENH
UGF0aFJlZj4gcmVzdWx0ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVQYXRoRm9yR2x5cGgobV9mb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCksIG1fZ2x5cGhCdWZmZXIuZ2x5cGhBdChtX2lu
ZGV4KSwgJm1fdHJhbnNsYXRpb24pKTsKLSAgICBpbmNyZW1lbnRJbmRleCgpOwogICAgIHJldHVy
biBhZG9wdENGKENHUGF0aENyZWF0ZU11dGFibGVDb3B5KHJlc3VsdC5nZXQoKSkpOwogfQogCitz
dGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OmV4dGVudHMo
KQoreworICAgIENHUG9pbnQgYmVnaW5uaW5nID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3Jt
KENHUG9pbnRNYWtlKDAsIDApLCBtX3RyYW5zbGF0aW9uKTsKKyAgICBDR1NpemUgZW5kID0gQ0dT
aXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0obV9nbHlwaEJ1ZmZlci5hZHZhbmNlQXQobV9pbmRleCks
IG1fdHJhbnNsYXRpb24pOworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDxm
bG9hdD4oYmVnaW5uaW5nLngpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYmVnaW5uaW5nLnggKyBlbmQu
d2lkdGgpKTsKK30KKworYXV0byBNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OnVuZGVybGluZVR5
cGUoKSAtPiBHbHlwaFVuZGVybGluZVR5cGUKK3sKKyAgICByZXR1cm4gc2hhcmVkVW5kZXJsaW5l
VHlwZShtX3RleHRSdW4sIG1fZ2x5cGhCdWZmZXIsIG1faW5kZXgpOworfQorCiB2b2lkIE1hY0ds
eXBoVG9QYXRoVHJhbnNsYXRvcjo6bW92ZVRvTmV4dFZhbGlkR2x5cGgoKQogewogICAgIGlmICgh
bV9mb250RGF0YS0+aXNTVkdGb250KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpbmNyZW1lbnRJ
bmRleCgpOworICAgIGluY3JlbWVudCgpOwogfQogCi12b2lkIE1hY0dseXBoVG9QYXRoVHJhbnNs
YXRvcjo6aW5jcmVtZW50SW5kZXgoKQordm9pZCBNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6Omlu
Y3JlbWVudCgpCiB7CiAgICAgZG8gewogICAgICAgICBHbHlwaEJ1ZmZlckFkdmFuY2UgYWR2YW5j
ZSA9IG1fZ2x5cGhCdWZmZXIuYWR2YW5jZUF0KG1faW5kZXgpOwpAQCAtNTAzLDYgKzUxOCw3IEBA
IERhc2hBcnJheSBGb250OjpkYXNoZXNGb3JJbnRlcnNlY3Rpb25zV2l0aFJlY3QoY29uc3QgVGV4
dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvCiAgICAgICAgIHJldHVybiBEYXNoQXJyYXkoKTsKIAog
ICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGdseXBoQnVmZmVyLnNhdmVPZmZzZXRz
SW5TdHJpbmcoKTsKICAgICBmbG9hdCBkZWx0YVg7CiAgICAgaWYgKGNvZGVQYXRoKHJ1bikgIT0g
Rm9udDo6Q29tcGxleCkKICAgICAgICAgZGVsdGFYID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JT
aW1wbGVUZXh0KHJ1biwgMCwgcnVuLmxlbmd0aCgpLCBnbHlwaEJ1ZmZlcik7CkBAIC01MTgsOSAr
NTM0LDkgQEAgRGFzaEFycmF5IEZvbnQ6OmRhc2hlc0ZvckludGVyc2VjdGlvbnNXaXRoUmVjdChj
b25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG8KICAgICBib29sIGlzU1ZHID0gZmFsc2U7
CiAgICAgRmxvYXRQb2ludCBvcmlnaW4gPSBGbG9hdFBvaW50KHRleHRPcmlnaW4ueCgpICsgZGVs
dGFYLCB0ZXh0T3JpZ2luLnkoKSk7CiAgICAgaWYgKCFmb250RGF0YS0+aXNTVkdGb250KCkpCi0g
ICAgICAgIHRyYW5zbGF0b3IgPSBzdGQ6Om1vdmUoc3RkOjptYWtlX3VuaXF1ZTxNYWNHbHlwaFRv
UGF0aFRyYW5zbGF0b3I+KGdseXBoQnVmZmVyLCBvcmlnaW4pKTsKKyAgICAgICAgdHJhbnNsYXRv
ciA9IHN0ZDo6bW92ZShzdGQ6Om1ha2VfdW5pcXVlPE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcj4o
cnVuLCBnbHlwaEJ1ZmZlciwgb3JpZ2luKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHRyYW5zbGF0
b3IgPSBzdGQ6Om1vdmUocnVuLnJlbmRlcmluZ0NvbnRleHQoKS0+Y3JlYXRlR2x5cGhUb1BhdGhU
cmFuc2xhdG9yKCpmb250RGF0YSwgZ2x5cGhCdWZmZXIsIDAsIHJ1bi5sZW5ndGgoKSwgb3JpZ2lu
KSk7CisgICAgICAgIHRyYW5zbGF0b3IgPSBzdGQ6Om1vdmUocnVuLnJlbmRlcmluZ0NvbnRleHQo
KS0+Y3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9yKCpmb250RGF0YSwgJnJ1biwgZ2x5cGhCdWZm
ZXIsIDAsIHJ1bi5sZW5ndGgoKSwgb3JpZ2luKSk7CiAgICAgICAgIGlzU1ZHID0gdHJ1ZTsKICAg
ICB9CiAgICAgRGFzaEFycmF5IHJlc3VsdDsKQEAgLTUyOSwxMiArNTQ1LDI3IEBAIERhc2hBcnJh
eSBGb250OjpkYXNoZXNGb3JJbnRlcnNlY3Rpb25zV2l0aFJlY3QoY29uc3QgVGV4dFJ1biYgcnVu
LCBjb25zdCBGbG9hdFBvCiAgICAgICAgIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBsb2NhbEZvbnRE
YXRhID0gZ2x5cGhCdWZmZXIuZm9udERhdGFBdChpbmRleCk7CiAgICAgICAgIGlmICghbG9jYWxG
b250RGF0YSB8fCAoIWlzU1ZHICYmIGxvY2FsRm9udERhdGEtPmlzU1ZHRm9udCgpKSB8fCAoaXNT
VkcgJiYgbG9jYWxGb250RGF0YSAhPSBmb250RGF0YSkpCiAgICAgICAgICAgICBicmVhazsgLy8g
VGhlIGFkdmFuY2VzIHdpbGwgZ2V0IGFsbCBtZXNzZWQgdXAgaWYgd2UgZG8gYW55dGhpbmcgb3Ro
ZXIgdGhhbiBiYWlsIGhlcmUuCi0gICAgICAgIFBhdGggcGF0aCA9IHRyYW5zbGF0b3ItPm5leHRQ
YXRoKCk7Ci0gICAgICAgIENHUGF0aEFwcGx5KHBhdGgucGxhdGZvcm1QYXRoKCksICZpbmZvLCAm
ZmluZFBhdGhJbnRlcnNlY3Rpb25zKTsKLSAgICAgICAgaWYgKGluZm8ubWluWCA8IGluZm8ubWF4
WCkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpbmZvLm1pblggLSBsaW5lRXh0ZW50cy54
KCkpOwotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpbmZvLm1heFggLSBsaW5lRXh0ZW50cy54
KCkpOworICAgICAgICBQYXRoIHBhdGg7CisgICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+
IGV4dGVudHM7CisgICAgICAgIHN3aXRjaCAodHJhbnNsYXRvci0+dW5kZXJsaW5lVHlwZSgpKSB7
CisgICAgICAgIGNhc2UgR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpTa2lwRGVzY2VuZGVyczoKKyAg
ICAgICAgICAgIHBhdGggPSB0cmFuc2xhdG9yLT5wYXRoKCk7CisgICAgICAgICAgICBDR1BhdGhB
cHBseShwYXRoLnBsYXRmb3JtUGF0aCgpLCAmaW5mbywgJmZpbmRQYXRoSW50ZXJzZWN0aW9ucyk7
CisgICAgICAgICAgICBpZiAoaW5mby5taW5YIDwgaW5mby5tYXhYKSB7CisgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChpbmZvLm1pblggLSBsaW5lRXh0ZW50cy54KCkpOworICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoaW5mby5tYXhYIC0gbGluZUV4dGVudHMueCgpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdseXBoVG9QYXRoVHJh
bnNsYXRvcjo6U2tpcEdseXBoOgorICAgICAgICAgICAgZXh0ZW50cyA9IHRyYW5zbGF0b3ItPmV4
dGVudHMoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZXh0ZW50cy5maXJzdCAtIGxpbmVF
eHRlbnRzLngoKSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGV4dGVudHMuc2Vjb25kIC0g
bGluZUV4dGVudHMueCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdseXBo
VG9QYXRoVHJhbnNsYXRvcjo6RHJhd092ZXJHbHlwaDoKKyAgICAgICAgICAgIC8vIE5vdGhpbmcg
dG8gZG8KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIHRyYW5zbGF0b3It
PmluY3JlbWVudCgpOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRy
b2xsZXIuY3BwCmluZGV4IDdjNmIwYmM0MTcxMDFmZjhhMDA2OTkzNzFhNTBmMTM5M2UzYTEwODEu
LjViY2YzNDUwN2FkMDcwMzk0MjgwOTVhMGM4ZDZmNWNiYWExMzVlMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29u
dHJvbGxlci5jcHAKQEAgLTM1OSw3ICszNTksNyBAQCBib29sIFVuaXNjcmliZUNvbnRyb2xsZXI6
OnNoYXBlQW5kUGxhY2VJdGVtKGNvbnN0IFVDaGFyKiBjcCwgdW5zaWduZWQgaSwgY29uc3QgUwog
ICAgICAgICAvLyB0cmFuc2xhdGlvbi4KICAgICAgICAgaWYgKGdseXBoQnVmZmVyKSB7CiAgICAg
ICAgICAgICBGbG9hdFNpemUgc2l6ZShvZmZzZXRYLCAtb2Zmc2V0WSk7Ci0gICAgICAgICAgICBn
bHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgYWR2YW5jZSwgJnNpemUpOworICAgICAg
ICAgICAgZ2x5cGhCdWZmZXItPmFkZChnbHlwaCwgZm9udERhdGEsIGFkdmFuY2UsIC0xLCAmc2l6
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBGbG9hdFJlY3QgZ2x5cGhCb3VuZHMgPSBmb250RGF0
YS0+Ym91bmRzRm9yR2x5cGgoZ2x5cGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBkNzNh
MmE0MTZiMGMzYzQzMjkyYjA5NGEzN2RlZWVhZTlmN2RlODQ0Li45MmI4N2ZmMTUyMzRiMzlkZGI1
OWUyYmIyM2NjZTEwZWUxY2M4M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTAzLDE2
ICsxMDMsMjEgQEAgYm9vbCBTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6YXBwbHlTVkdLZXJu
aW5nKGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSwKIAogY2xhc3MgU1ZHR2x5cGhUb1Bh
dGhUcmFuc2xhdG9yIGZpbmFsIDogcHVibGljIEdseXBoVG9QYXRoVHJhbnNsYXRvciB7CiBwdWJs
aWM6Ci0gICAgU1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IEdseXBoQnVmZmVyJiBnbHlw
aEJ1ZmZlciwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNvbnN0IFNWR0ZvbnREYXRhJiBzdmdG
b250RGF0YSwgU1ZHRm9udEVsZW1lbnQmIGZvbnRFbGVtZW50LCBjb25zdCBpbnQgZnJvbSwgY29u
c3QgaW50IG51bUdseXBocywgZmxvYXQgc2NhbGUsIGJvb2wgaXNWZXJ0aWNhbFRleHQpOworICAg
IFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBUZXh0UnVuKiwgY29uc3QgR2x5cGhCdWZm
ZXImLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgU1ZHRm9udERhdGEmLCBTVkdGb250RWxlbWVu
dCYsIGNvbnN0IGludCBmcm9tLCBjb25zdCBpbnQgbnVtR2x5cGhzLCBmbG9hdCBzY2FsZSwgYm9v
bCBpc1ZlcnRpY2FsVGV4dCk7CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjb250YWluc01v
cmVQYXRocygpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbV9pbmRleCAhPSBtX3N0
b3BwaW5nUG9pbnQ7CiAgICAgfQotICAgIHZpcnR1YWwgUGF0aCBuZXh0UGF0aCgpIG92ZXJyaWRl
OworICAgIAorICAgIHZpcnR1YWwgUGF0aCBwYXRoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBz
dGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBleHRlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBH
bHlwaFVuZGVybGluZVR5cGUgdW5kZXJsaW5lVHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVUb05leHRWYWxpZEdseXBo
KCk7Ci0gICAgdm9pZCBpbmNyZW1lbnRJbmRleCgpOworICAgIEFmZmluZVRyYW5zZm9ybSBnZXRD
dXJyZW50VHJhbnNmb3JtKCk7CiAKKyAgICBjb25zdCBUZXh0UnVuKiBtX3RleHRSdW47CiAgICAg
Y29uc3QgR2x5cGhCdWZmZXImIG1fZ2x5cGhCdWZmZXI7CiAgICAgY29uc3QgU1ZHRm9udERhdGEm
IG1fc3ZnRm9udERhdGE7CiAgICAgRmxvYXRQb2ludCBtX2N1cnJlbnRQb2ludDsKQEAgLTEyNiw4
ICsxMzEsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IGJvb2wgbV9pc1ZlcnRpY2FsVGV4dDsKIH07
CiAKLVNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNv
bnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNv
bnN0IFNWR0ZvbnREYXRhJiBzdmdGb250RGF0YSwgU1ZHRm9udEVsZW1lbnQmIGZvbnRFbGVtZW50
LCBjb25zdCBpbnQgZnJvbSwgY29uc3QgaW50IG51bUdseXBocywgZmxvYXQgc2NhbGUsIGJvb2wg
aXNWZXJ0aWNhbFRleHQpCi0gICAgOiBtX2dseXBoQnVmZmVyKGdseXBoQnVmZmVyKQorU1ZHR2x5
cGhUb1BhdGhUcmFuc2xhdG9yOjpTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3IoY29uc3QgVGV4dFJ1
biogdGV4dFJ1biwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludCwgY29uc3QgU1ZHRm9udERhdGEmIHN2Z0ZvbnREYXRhLCBTVkdGb250RWxlbWVu
dCYgZm9udEVsZW1lbnQsIGNvbnN0IGludCBmcm9tLCBjb25zdCBpbnQgbnVtR2x5cGhzLCBmbG9h
dCBzY2FsZSwgYm9vbCBpc1ZlcnRpY2FsVGV4dCkKKyAgICA6IG1fdGV4dFJ1bih0ZXh0UnVuKQor
ICAgICwgbV9nbHlwaEJ1ZmZlcihnbHlwaEJ1ZmZlcikKICAgICAsIG1fc3ZnRm9udERhdGEoc3Zn
Rm9udERhdGEpCiAgICAgLCBtX2N1cnJlbnRQb2ludChwb2ludCkKICAgICAsIG1fZ2x5cGhPcmln
aW4obV9zdmdGb250RGF0YS5ob3Jpem9udGFsT3JpZ2luWCgpICogc2NhbGUsIG1fc3ZnRm9udERh
dGEuaG9yaXpvbnRhbE9yaWdpblkoKSAqIHNjYWxlKQpAQCAtMTQ3LDMyICsxNTMsNDQgQEAgU1ZH
R2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3IoY29uc3QgR2x5
cGhCdWZmZXImIGdseXBoQnVmZmUKICAgICB9CiAgICAgbW92ZVRvTmV4dFZhbGlkR2x5cGgoKTsK
IH0KLQotUGF0aCBTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3I6Om5leHRQYXRoKCkKKyAgICAKK0Fm
ZmluZVRyYW5zZm9ybSBTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OmdldEN1cnJlbnRUcmFuc2Zv
cm0oKQogewotICAgIGlmIChtX2lzVmVydGljYWxUZXh0KSB7Ci0gICAgICAgIG1fZ2x5cGhPcmln
aW4uc2V0WChtX3N2Z0dseXBoLnZlcnRpY2FsT3JpZ2luWCAqIG1fc2NhbGUpOwotICAgICAgICBt
X2dseXBoT3JpZ2luLnNldFkobV9zdmdHbHlwaC52ZXJ0aWNhbE9yaWdpblkgKiBtX3NjYWxlKTsK
LSAgICB9Ci0KICAgICBBZmZpbmVUcmFuc2Zvcm0gZ2x5cGhQYXRoVHJhbnNmb3JtOwogICAgIGds
eXBoUGF0aFRyYW5zZm9ybS50cmFuc2xhdGUobV9jdXJyZW50UG9pbnQueCgpICsgbV9nbHlwaE9y
aWdpbi54KCksIG1fY3VycmVudFBvaW50LnkoKSArIG1fZ2x5cGhPcmlnaW4ueSgpKTsKICAgICBn
bHlwaFBhdGhUcmFuc2Zvcm0uc2NhbGUobV9zY2FsZSwgLW1fc2NhbGUpOworICAgIHJldHVybiBn
bHlwaFBhdGhUcmFuc2Zvcm07Cit9CiAKK1BhdGggU1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpw
YXRoKCkKK3sKICAgICBQYXRoIGdseXBoUGF0aCA9IG1fc3ZnR2x5cGgucGF0aERhdGE7Ci0gICAg
Z2x5cGhQYXRoLnRyYW5zZm9ybShnbHlwaFBhdGhUcmFuc2Zvcm0pOwotICAgIGluY3JlbWVudElu
ZGV4KCk7CisgICAgZ2x5cGhQYXRoLnRyYW5zZm9ybShnZXRDdXJyZW50VHJhbnNmb3JtKCkpOwog
ICAgIHJldHVybiBnbHlwaFBhdGg7CiB9CiAKK3N0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IFNWR0ds
eXBoVG9QYXRoVHJhbnNsYXRvcjo6ZXh0ZW50cygpCit7CisgICAgQWZmaW5lVHJhbnNmb3JtIGds
eXBoUGF0aFRyYW5zZm9ybSA9IGdldEN1cnJlbnRUcmFuc2Zvcm0oKTsKKyAgICBGbG9hdFBvaW50
IGJlZ2lubmluZyA9IGdseXBoUGF0aFRyYW5zZm9ybS5tYXBQb2ludChtX2N1cnJlbnRQb2ludCk7
CisgICAgRmxvYXRTaXplIGVuZCA9IGdseXBoUGF0aFRyYW5zZm9ybS5tYXBTaXplKEZsb2F0U2l6
ZShtX2dseXBoQnVmZmVyLmFkdmFuY2VBdChtX2luZGV4KSkpOworICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcihiZWdpbm5pbmcueCgpLCBiZWdpbm5pbmcueCgpICsgZW5kLndpZHRoKCkpOworfQor
CithdXRvIFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6dW5kZXJsaW5lVHlwZSgpIC0+IEdseXBo
VW5kZXJsaW5lVHlwZQoreworICAgIEFTU0VSVChtX3RleHRSdW4pOworICAgIHJldHVybiBzaGFy
ZWRVbmRlcmxpbmVUeXBlKCptX3RleHRSdW4sIG1fZ2x5cGhCdWZmZXIsIG1faW5kZXgpOworfQor
CiB2b2lkIFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6bW92ZVRvTmV4dFZhbGlkR2x5cGgoKQog
ewogICAgIGlmIChtX2dseXBoICYmICFtX3N2Z0dseXBoLnBhdGhEYXRhLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGluY3JlbWVudEluZGV4KCk7CisgICAgaW5jcmVtZW50KCk7CiB9
CiAKLXZvaWQgU1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjppbmNyZW1lbnRJbmRleCgpCit2b2lk
IFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6aW5jcmVtZW50KCkKIHsKICAgICBkbyB7CiAgICAg
ICAgIGlmIChtX2dseXBoKSB7CkBAIC0xOTQsNiArMjEyLDExIEBAIHZvaWQgU1ZHR2x5cGhUb1Bh
dGhUcmFuc2xhdG9yOjppbmNyZW1lbnRJbmRleCgpCiAgICAgICAgIEFTU0VSVChtX3N2Z0dseXBo
LnRhYmxlRW50cnkgPT0gbV9nbHlwaCk7CiAgICAgICAgIFNWR0dseXBoRWxlbWVudDo6aW5oZXJp
dFVuc3BlY2lmaWVkQXR0cmlidXRlcyhtX3N2Z0dseXBoLCAmbV9zdmdGb250RGF0YSk7CiAgICAg
fSB3aGlsZSAoKCFtX2dseXBoIHx8IG1fc3ZnR2x5cGgucGF0aERhdGEuaXNFbXB0eSgpKSAmJiBt
X2luZGV4IDwgbV9zdG9wcGluZ1BvaW50KTsKKyAgICAKKyAgICBpZiAoY29udGFpbnNNb3JlUGF0
aHMoKSAmJiBtX2lzVmVydGljYWxUZXh0KSB7CisgICAgICAgIG1fZ2x5cGhPcmlnaW4uc2V0WCht
X3N2Z0dseXBoLnZlcnRpY2FsT3JpZ2luWCAqIG1fc2NhbGUpOworICAgICAgICBtX2dseXBoT3Jp
Z2luLnNldFkobV9zdmdHbHlwaC52ZXJ0aWNhbE9yaWdpblkgKiBtX3NjYWxlKTsKKyAgICB9CiB9
CiAKIGNsYXNzIER1bW15R2x5cGhUb1BhdGhUcmFuc2xhdG9yIGZpbmFsIDogcHVibGljIEdseXBo
VG9QYXRoVHJhbnNsYXRvciB7CkBAIC0yMDEsMTMgKzIyNCwyNCBAQCBjbGFzcyBEdW1teUdseXBo
VG9QYXRoVHJhbnNsYXRvciBmaW5hbCA6IHB1YmxpYyBHbHlwaFRvUGF0aFRyYW5zbGF0b3Igewog
ICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICB2aXJ0dWFsIFBhdGggbmV4
dFBhdGgoKSBvdmVycmlkZQorICAgIHZpcnR1YWwgUGF0aCBwYXRoKCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIHJldHVybiBQYXRoKCk7CiAgICAgfQorICAgIHZpcnR1YWwgc3RkOjpwYWlyPGZs
b2F0LCBmbG9hdD4gZXh0ZW50cygpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3BhaXIoMC5mLCAwLmYpOworICAgIH0KKyAgICB2aXJ0dWFsIEdseXBoVW5kZXJsaW5l
VHlwZSB1bmRlcmxpbmVUeXBlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBEcmF3
T3ZlckdseXBoOworICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgfQogfTsKIAotc3RkOjp1bmlxdWVfcHRyPEdseXBoVG9QYXRoVHJhbnNsYXRv
cj4gU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRv
cihjb25zdCBTaW1wbGVGb250RGF0YSYgZm9udERhdGEsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlw
aEJ1ZmZlciwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
KSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEdseXBoVG9QYXRoVHJhbnNsYXRvcj4gU1ZHVGV4dFJ1
blJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBTaW1w
bGVGb250RGF0YSYgZm9udERhdGEsIGNvbnN0IFRleHRSdW4qIHRleHRSdW4sIGNvbnN0IEdseXBo
QnVmZmVyJiBnbHlwaEJ1ZmZlciwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIFNWR0ZvbnRFbGVtZW50KiBmb250RWxlbWVudCA9
IDA7CiAgICAgU1ZHRm9udEZhY2VFbGVtZW50KiBmb250RmFjZUVsZW1lbnQgPSAwOwpAQCAtMjIy
LDcgKzI1Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHbHlwaFRvUGF0aFRyYW5zbGF0b3I+IFNWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVHbHlwaFRvCiAKICAgICBmbG9hdCBzY2FsZSA9
IHNjYWxlRW1Ub1VuaXRzKGZvbnREYXRhLnBsYXRmb3JtRGF0YSgpLnNpemUoKSwgZm9udEZhY2VF
bGVtZW50LT51bml0c1BlckVtKCkpOwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZH
R2x5cGhUb1BhdGhUcmFuc2xhdG9yPihnbHlwaEJ1ZmZlciwgcG9pbnQsICpzdmdGb250RGF0YSwg
KmZvbnRFbGVtZW50LCBmcm9tLCBudW1HbHlwaHMsIHNjYWxlLCBpc1ZlcnRpY2FsVGV4dCk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yPih0ZXh0
UnVuLCBnbHlwaEJ1ZmZlciwgcG9pbnQsICpzdmdGb250RGF0YSwgKmZvbnRFbGVtZW50LCBmcm9t
LCBudW1HbHlwaHMsIHNjYWxlLCBpc1ZlcnRpY2FsVGV4dCk7CiB9CiAKIHZvaWQgU1ZHVGV4dFJ1
blJlbmRlcmluZ0NvbnRleHQ6OmRyYXdTVkdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGEsIGNvbnN0IEdseXBoQnVmZmVyJiBnbHlw
aEJ1ZmZlciwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
KSBjb25zdApAQCAtMjQxLDkgKzI3NSw5IEBAIHZvaWQgU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRl
eHQ6OmRyYXdTVkdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTCiAgICAg
QVNTRVJUKGFjdGl2ZVBhaW50aW5nUmVzb3VyY2UpOwogCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VN
b2RlIHJlc291cmNlTW9kZSA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IFRleHRNb2Rl
U3Ryb2tlID8gQXBwbHlUb1N0cm9rZU1vZGUgOiBBcHBseVRvRmlsbE1vZGU7Ci0gICAgYXV0byB0
cmFuc2xhdG9yKGNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRvcigqZm9udERhdGEsIGdseXBoQnVm
ZmVyLCBmcm9tLCBudW1HbHlwaHMsIHBvaW50KSk7CisgICAgYXV0byB0cmFuc2xhdG9yKGNyZWF0
ZUdseXBoVG9QYXRoVHJhbnNsYXRvcigqZm9udERhdGEsIG51bGxwdHIsIGdseXBoQnVmZmVyLCBm
cm9tLCBudW1HbHlwaHMsIHBvaW50KSk7CiAgICAgd2hpbGUgKHRyYW5zbGF0b3ItPmNvbnRhaW5z
TW9yZVBhdGhzKCkpIHsKLSAgICAgICAgUGF0aCBnbHlwaFBhdGggPSB0cmFuc2xhdG9yLT5uZXh0
UGF0aCgpOworICAgICAgICBQYXRoIGdseXBoUGF0aCA9IHRyYW5zbGF0b3ItPnBhdGgoKTsKICAg
ICAgICAgaWYgKGFjdGl2ZVBhaW50aW5nUmVzb3VyY2UtPmFwcGx5UmVzb3VyY2UoZWxlbWVudFJl
bmRlcmVyLCBzdHlsZSwgY29udGV4dCwgcmVzb3VyY2VNb2RlKSkgewogICAgICAgICAgICAgZmxv
YXQgc3Ryb2tlVGhpY2tuZXNzID0gY29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCk7CiAgICAgICAg
ICAgICBpZiAocmVuZGVyZXIoKS5pc1NWR0lubGluZVRleHQoKSkKQEAgLTI1MSw2ICsyODUsNyBA
QCB2b2lkIFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0OjpkcmF3U1ZHR2x5cGhzKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgUwogICAgICAgICAgICAgYWN0aXZlUGFpbnRpbmdSZXNv
dXJjZS0+cG9zdEFwcGx5UmVzb3VyY2UoZWxlbWVudFJlbmRlcmVyLCBjb250ZXh0LCByZXNvdXJj
ZU1vZGUsICZnbHlwaFBhdGgsIDApOwogICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhp
Y2tuZXNzKHN0cm9rZVRoaWNrbmVzcyk7CiAgICAgICAgIH0KKyAgICAgICAgdHJhbnNsYXRvci0+
aW5jcmVtZW50KCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggNTM2ODFmOTI1
ZDU0OTY1Y2ZlZTUzMmM1ZTEyMjY5NDNiNGQzY2M0My4uZDBiOTFmNmNiMzQ4ZWU3M2NjNjFkNDkz
OGJhMTRkNDY0YzBhY2E2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaApAQCAtNjAsNyArNjAsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgflNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0KCkgeyB9CiAK
ICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdseXBo
VG9QYXRoVHJhbnNsYXRvcj4gY3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IFNpbXBs
ZUZvbnREYXRhJiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IG51bUdseXBocywg
Y29uc3QgRmxvYXRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPEdseXBoVG9QYXRoVHJhbnNsYXRvcj4gY3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9y
KGNvbnN0IFNpbXBsZUZvbnREYXRhJiwgY29uc3QgVGV4dFJ1biosIGNvbnN0IEdseXBoQnVmZmVy
JiwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdCBvdmVy
cmlkZTsKICNlbmRpZgogCiAgICAgUmVuZGVyT2JqZWN0JiBtX3JlbmRlcmVyOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFk
ZjdiNjBjNGY5N2MxNTY5YjkwMDNlNTE2NWExZGU4MDM0MTkxMjguLmMyZTFiNzRiNmFlM2UwNzlj
MDY5NDZlZGIyZTNlODBhZTdiM2I3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNS0y
MSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT046IG1pc3NpbmcgdW5kZXJsaW5lIHVuZGVyIENKSyB0ZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0
aGF0IHVuZGVybGluZXMgdW5kZXIgQ0pLIHRleHQgZG9uJ3Qgc2tpcCBvdmVyIGRlc2NlbmRlcnMu
CisKKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRl
Y29yYXRpb24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3Rl
eHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1jamsuaHRtbDogQWRk
ZWQuCisKIDIwMTQtMDUtMjAgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLiBBY3R1YWxseSBlbmFibGUgc25hcHNob3QgdGVzdHMgb24gbWFj
IHdrMi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1j
amstZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1j
amstZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzdmZjFlZWZkOTYyMDgzNTNhNTYxYTE5Njhj
YzEyZTA0NWU5ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0
aW9uLXNraXAtaW5rLWNqay1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB1bmRlcmxpbmVzIHVuZGVy
IENKSyB0ZXh0IGRvIG5vdCBza2lwIG92ZXIgbG93LWhhbmdpbmcgY3VydmVzIGluIHRoZSBnbHlw
aHMuCis8ZGl2IHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLXdlYmtpdC10ZXh0
LWRlY29yYXRpb24tc2tpcDogbm9uZSI+Cis8cD7pq5Tnj77mtarmvKvmhJvmg4XopovorYnmsLjm
gYbmib/oq77ouKLotbDljIXljIXpnaLpnaLmlLbmr5vlrZToqo3orZjkuJbnlYzokZflkI3nkZ7l
o6vohZXpjLblk4HniYznvo7nmb3mipfogIHmnIDlvLfntYTlkIjljbPnnIvmjqjku4s8L3A+Cis8
cD7lpJboo4Xjgavnm67nq4vjgaTlgrfjga/mhJ/jgZjjgonjgozjgb7jgZvjgpPjgYzjgYLjgY/j
gb7jgafkuK3lj6Tlk4HjgafjgZnjga7jgafmlrDlk4Hjgajmr5TjgbnjgozjgbDkvb/nlKjmhJ/j
ga/jgYLjgovjgajmgJ3jgYTjgb7jgZk8L3A+Cis8cD7snbzshJzsmrjsmKzrprztlL3qs7Xsm5Ds
mKzrprztlL3tmYDsl5DshJztjrzss5Dsp4DripTsnYTthrXtlbTsi6Dqs6Hqt7jrn7DrhIjrpbzs
sqvqs7XqsJztlaDsmIjsoJXsnbTslrTshJzsg4jroZzsmrTsnYzslYXsnLzroZzqtIDqsJ08L3A+
Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWlu
ay1jamsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1jamsuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMDQxMDJlMjJlMzJhYWM0MzE4MDFmMGYyYTRhNDAyNTliOWRhMTc3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRl
Y29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWNq
ay5odG1sCkBAIC0wLDAgKzEsNyBAQAorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorVGhpcyB0ZXN0
IG1ha2VzIHN1cmUgdGhhdCB1bmRlcmxpbmVzIHVuZGVyIENKSyB0ZXh0IGRvIG5vdCBza2lwIG92
ZXIgbG93LWhhbmdpbmcgY3VydmVzIGluIHRoZSBnbHlwaHMuCis8ZGl2IHN0eWxlPSJ0ZXh0LWRl
Y29yYXRpb246IHVuZGVybGluZTsiPgorPHA+6auU54++5rWq5ryr5oSb5oOF6KaL6K2J5rC45oGG
5om/6Ku+6Lii6LWw5YyF5YyF6Z2i6Z2i5pS25q+b5a2U6KqN6K2Y5LiW55WM6JGX5ZCN55Ge5aOr
6IWV6Yy25ZOB54mM576O55m95oqX6ICB5pyA5by357WE5ZCI5Y2z55yL5o6o5LuLPC9wPgorPHA+
5aSW6KOF44Gr55uu56uL44Gk5YK344Gv5oSf44GY44KJ44KM44G+44Gb44KT44GM44GC44GP44G+
44Gn5Lit5Y+k5ZOB44Gn44GZ44Gu44Gn5paw5ZOB44Go5q+U44G544KM44Gw5L2/55So5oSf44Gv
44GC44KL44Go5oCd44GE44G+44GZPC9wPgorPHA+7J287ISc7Jq47Jis66a87ZS96rO17JuQ7Jis
66a87ZS97ZmA7JeQ7ISc7Y687LOQ7KeA64qU7J2E7Ya17ZW07Iug6rOh6re465+w64SI66W87LKr
6rO16rCc7ZWg7JiI7KCV7J207Ja07ISc7IOI66Gc7Jq07J2M7JWF7Jy866Gc6rSA6rCdPC9wPgor
PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232515</attachid>
            <date>2014-06-04 18:39:58 -0700</date>
            <delta_ts>2014-06-09 14:12:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128145-20140604183934.patch</filename>
            <type>text/plain</type>
            <size>39409</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2YThkMjY2ODFkZTc4
MTcyNTFkNzQzMmMzZDhiZDNlMTdiMjBiOS4uMThmNTliYTMxMjhjOTVkM2I3NDJmZDEwZDdkNzNk
ZTU5NWY5NDg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE0LTA1LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogbWlzc2luZyB1bmRlcmxpbmUgdW5kZXIgQ0pLIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIHRoZSBHbHlw
aFRvUGF0aFRyYW5zbGF0b3Igd2hpY2ggaXMgdXNlZCB0byBmaW5kIGludGVyc2VjdGlvbnMgb2YK
KyAgICAgICAgZ2x5cGhzIGFuZCB1bmRlcmxpbmVzLiBJdCB3YXMgbW9kaWZpZWQgdG8gYWxsb3cg
Zm9yIHF1ZXJ5aW5nIHRoZXNlIHBpZWNlcyBvZgorICAgICAgICBpbmZvcm1hdGlvbjoKKyAgICAg
ICAgMSkgVGhlIGV4dGVudHMgb2YgdGhlIGdseXBoLiBUaGlzIGNhbiBiZSB1c2VkIHRvIG1ha2Ug
dGhlIHVuZGVybGluZXMgc2tpcCBhbiBlbnRpcmUKKyAgICAgICAgZ2x5cGgsIHdob2xlc2FsZQor
ICAgICAgICAyKSBXaGF0IGtpbmQgb2Ygc2tpcHBpbmcgYmVoYXZpb3Igc2hvdWxkIGJlIHVzZWQK
KyAgICAgICAgMykgVGhlIFBhdGggd2hpY2ggcmVwcmVzZW50cyB0aGUgZ2x5cGgKKyAgICAgICAg
VGhlcmUgYXJlIHRocmVlIHNraXBwaW5nIGJlaGF2aW9yczoKKyAgICAgICAgMSkgKFNraXBEZXNj
ZW5kZXJzKSBUaGUgcHJldmlvdXMgYmVoYXZpb3IKKyAgICAgICAgMikgKFNraXBHbHlwaCkgTWFr
ZSB0aGUgdW5kZXJsaW5lIHNraXAgb3ZlciB0aGUgZW50aXJlIGdseXBoLCB1c2luZyB0aGUgZXh0
ZW50cygpIGZ1bmN0aW9uCisgICAgICAgIDMpIChEcmF3T3ZlckdseXBoKSBNYWtlIHRoZSB1bmRl
cmxpbmUgcGxvdyB0aHJvdWdoIHRoZSBnbHlwaCwgaWdub3JpbmcgYW55IGRlc2NlbmRlcnMKKwor
ICAgICAgICBDYWxjdWxhdGluZyB3aGljaCB1bmRlcmxpbmluZyBiZWhhdmlvciB0byB1c2UgZGVw
ZW5kcyBvbiB3aGF0IHRoZSBiYXNlIGNvZGVwb2ludCB0aGF0CisgICAgICAgIG9yaWdpbmF0ZWQg
dGhhdCBnbHlwaCBpcy4gVGhpcyBtZWFucyB0aGF0IHdlIGhhdmUgdG8gbWFwIGZyb20gZ2x5cGhz
IHRvIGNoYXJhY3RlcnMsCisgICAgICAgIHNvbWV0aGluZyB3aGljaCBpcyBub250cml2aWFsIHRv
IGRvLiBJbiBvcmRlciB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIHRoaXMgcGF0Y2ggYWRkcworICAg
ICAgICBhbiBvcHRpb25hbCB2ZWN0b3IgdG8gR2x5cGhCdWZmZXIgd2hpY2ggcmVwcmVzZW50cyB0
aGUgbG9jYXRpb24gaW4gdGhlIG9yaWdpbmFsIHN0cmluZworICAgICAgICBmcm9tIHdoaWNoIGEg
cGFydGljdWxhciBnbHlwaCBvcmlnaW5hdGVkLiBUaGVuLCB3aGVuIG91ciBXaWR0aEl0ZXJhdG9y
IGNvZGUgYWRkcworICAgICAgICBnbHlwaHMgdG8gdGhlIEdseXBoQnVmZmVyLCB3ZSBjYW4gaW5j
bHVkZSB0aGUgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgd2UgYXJlCisgICAgICAgIGlu
IHRoZSBpbnB1dCBzdHJpbmcuIE9uY2UgdGhpcyBkYXRhIGlzIGF2YWlsYWJsZSwgdGhlIEdseXBo
UGF0aFRyYW5zbGF0b3IgY2FuIGxvb2sgdXAKKyAgICAgICAgdGhlIGJhc2UgY29kZXBvaW50IGZy
b20gd2hpY2ggdGhpcyBnbHlwaCBvcmlnaW5hdGVzLCBhbmQgY2FuIHJ1biBJQ1UgZnVuY3Rpb25z
IG9uIHRoYXQKKyAgICAgICAgY29kZXBvaW50LgorCisgICAgICAgIFdlIGNhbiB1c2UgdGhlIElD
VSB1YmxvY2tfZ2V0Q29kZSgpIGZ1bmN0aW9uIHRvIGZpbmQgd2hpY2ggVW5pY29kZSBibG9jayBh
IHBhcnRpY3VsYXIKKyAgICAgICAgY29kZXBvaW50IGNvbWVzIGZyb20uIElmIHRoZSBjb2RlcG9p
bnQgY29tZXMgZnJvbSBhIENKSyBibG9jaywgd2Ugd2lsbCB1c2UKKyAgICAgICAgRHJhd092ZXJH
bHlwaDsgb3RoZXJ3aXNlLCB3ZSB3aWxsIHVzZSBTa2lwRGVzY2VuZGVycy4KKworICAgICAgICBU
ZXN0OiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWR2YW5jZUJ5Q29uc3Vt
aW5nQmFzZUNoYXJhY3RlckluU2VxdWVuY2UpOiBSZWZhY3RvcmVkIGZyb20KKyAgICAgICAgYWR2
YW5jZUJ5Q29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UgaW5zaWRlIENvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRVbmRlcmxpbmVUeXBlKTogTG9vayB1
cCB0aGUgYmFzZSBjb2RlcG9pbnQgZnJvbSB3aGljaCB0aGlzIGdseXBoCisgICAgICAgIG9yaWdp
bmF0ZXMsIGNhbGwgdWJsb2NrX2dldENvZGUgdG8gZ2V0IGl0cyBVbmljb2RlIGJsb2NrLCB0aGVu
IHJldHVybgorICAgICAgICBhIEdseXBoVW5kZXJsaW5lVHlwZSBhY2NvcmRpbmdseS4gVGhpcyBj
b2RlIGlzIHNoYXJlZCBiZXR3ZWVuIFNWRyBhbmQgbm9uLVNWRy4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Lmg6IE5ldyB2aXJ0dWFsIGZ1bmN0aW9ucyBpbiBHbHlwaFRvUGF0aFRy
YW5zbGF0b3IsIGFzIHdlbGwgYXMKKyAgICAgICAgZnVuY3Rpb24gc2lnbmF0dXJlcyBmb3IgdGhl
IGFib3ZlIHR3byBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhC
dWZmZXIuaDogQWRkIGFuIG9wdGlvbmFsIGluc3RhbmNlIG1lbWJlciBmb3IgdGhlIGxvY2F0aW9u
CisgICAgICAgIGZyb20gd2l0aGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgZnJvbSB3aGljaCBhIHBh
cnRpY3VsYXIgZ2x5cGggb3JpZ2luYXRlcy4KKyAgICAgICAgKFdlYkNvcmU6OkdseXBoQnVmZmVy
OjpjbGVhcik6IFVwZGF0ZWQgZm9yIG5ldyBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpHbHlw
aEJ1ZmZlcjo6YWRkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6c2F2
ZU9mZnNldHNJblN0cmluZyk6IE9wdC1pbiB0byB1c2luZyB0aGUgbmV3IHZhcmlhYmxlCisgICAg
ICAgIChXZWJDb3JlOjpHbHlwaEJ1ZmZlcjo6b2Zmc2V0SW5TdHJpbmcpOiBOZXcgdmFyaWFibGUg
YWNjZXNzb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oOiBTVkcgbmVl
ZHMgdGhlIFRleHRSdW4gdG8gdXNlIHNoYXJlZFVuZGVybGluZVR5cGUuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWR0
aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOiBVc2UgR2x5cGhCdWZmZXIncyBuZXcgdmFyaWFi
bGUgKGlmIHByZXNlbnQpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWR2YW5jZUJ5Q29tYmluaW5n
Q2hhcmFjdGVyU2VxdWVuY2UpOiBVc2UgcmVmYWN0b3JlZAorICAgICAgICBhZHZhbmNlQnlDb25z
dW1pbmdCYXNlQ2hhcmFjdGVySW5TZXF1ZW5jZSgpLgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxl
eFRleHRDb250cm9sbGVyOjphZHZhbmNlKTogVXNlIEdseXBoQnVmZmVyJ3MgbmV3IHZhcmlhYmxl
IChpZiBwcmVzZW50KS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5t
bTogSW1wbGVtZW50IG5ldyBHbHlwaFRvUGF0aFRyYW5zbGF0b3IgZnVuY3Rpb25zLgorICAgICAg
ICAoV2ViQ29yZTo6TWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpwYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6ZXh0ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OnVuZGVybGluZVR5cGUpOiBDYWxscyBzaGFy
ZWRVbmRlcmxpbmVUeXBlKCkuCisgICAgICAgIChXZWJDb3JlOjpNYWNHbHlwaFRvUGF0aFRyYW5z
bGF0b3I6Om1vdmVUb05leHRWYWxpZEdseXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY0dseXBo
VG9QYXRoVHJhbnNsYXRvcjo6aW5jcmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRh
c2hlc0ZvckludGVyc2VjdGlvbnNXaXRoUmVjdCk6IEFzayB0aGUgdHJhbnNsYXRvciB3aGF0IGtp
bmQgb2YgdW5kZXJsaW5lCisgICAgICAgIGJlaGF2aW9yIHNob3VsZCBiZSB1c2VkLiBSZWFjdCBh
Y2NvcmRpbmdseS4KKyAgICAgICAgKFdlYkNvcmU6Ok1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6
bmV4dFBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWFjR2x5cGhUb1BhdGhUcmFu
c2xhdG9yOjppbmNyZW1lbnRJbmRleCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5p
c2NyaWJlQ29udHJvbGxlcjo6c2hhcGVBbmRQbGFjZUl0ZW0pOiBVcGRhdGUgdG8gbmV3IHNpZ25h
dHVyZSBvZiBHbHlwaEJ1ZmZlcjo6YWRkKCkKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRSdW5SZW5kZXJpbmdDb250ZXh0LmNwcDogSW1wbGVtZW50IG5ldyBHbHlwaFRvUGF0aFRyYW5z
bGF0b3IgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xh
dG9yOjpTVkdHbHlwaFRvUGF0aFRyYW5zbGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5
cGhUb1BhdGhUcmFuc2xhdG9yOjpnZXRDdXJyZW50VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OmV4dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6TWFj
R2x5cGhUb1BhdGhUcmFuc2xhdG9yOjp1bmRlcmxpbmVUeXBlKTogQ2FsbHMgc2hhcmVkVW5kZXJs
aW5lVHlwZSgpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpt
b3ZlVG9OZXh0VmFsaWRHbHlwaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaFRvUGF0aFRy
YW5zbGF0b3I6OmluY3JlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UnVuUmVuZGVy
aW5nQ29udGV4dDo6Y3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0OjpkcmF3U1ZHR2x5cGhzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6bmV4dFBhdGgpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjppbmNyZW1lbnRJbmRl
eCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5n
Q29udGV4dC5oOiBTVkcgbmVlZHMgdGhlIFRleHRSdW4gdG8gdXNlIHNoYXJlZFVuZGVybGluZVR5
cGUuCisKIDIwMTQtMDYtMDMgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
IAogICAgICAgICBQYXN0aW5nIG11bHRpcGxlIHBob3RvcyBvbiBpT1Mgb25seSBwYXN0ZXMgb25l
IHBob3RvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDc5
ODBjNjAwODg3MzIwMDgxZTAxN2Y2ZGRmMjc5Y2UxNzM4OTZiZDYuLjAyZmI4NjBkNzFjZTUyODBl
MWNiOTljODdlYmEzODA4NGQ3ZGE3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCkBAIC0xMDUzLDUgKzEwNTMsNzMgQEAgYm9vbCBGb250OjpjYW5SZWNlaXZl
VGV4dEVtcGhhc2lzKFVDaGFyMzIgYykKIAogICAgIHJldHVybiB0cnVlOwogfQorICAgIAorYm9v
bCBhZHZhbmNlQnlDb25zdW1pbmdCYXNlQ2hhcmFjdGVySW5TZXF1ZW5jZShjb25zdCBVQ2hhciom
IGl0ZXJhdG9yLCBjb25zdCBVQ2hhciogZW5kLCBVQ2hhcjMyJiBiYXNlQ2hhcmFjdGVyKQorewor
ICAgIEFTU0VSVChpdGVyYXRvciA8IGVuZCk7CisKKyAgICBiYXNlQ2hhcmFjdGVyID0gKml0ZXJh
dG9yKys7CisKKyAgICBpZiAoVTE2X0lTX1NVUlJPR0FURShiYXNlQ2hhcmFjdGVyKSkgeworICAg
ICAgICBpZiAoIVUxNl9JU19MRUFEKGJhc2VDaGFyYWN0ZXIpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBpZiAoaXRlcmF0b3IgPT0gZW5kKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBVQ2hhciB0cmFpbCA9ICppdGVyYXRvcisrOworICAgICAgICBpZiAo
IVUxNl9JU19UUkFJTCh0cmFpbCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGJhc2VDaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBMRU1FTlRBUlkoYmFzZUNoYXJhY3RlciwgdHJh
aWwpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKyAgICAKK0dseXBoVG9QYXRoVHJhbnNs
YXRvcjo6R2x5cGhVbmRlcmxpbmVUeXBlIHNoYXJlZFVuZGVybGluZVR5cGUoY29uc3QgVGV4dFJ1
biYgdGV4dFJ1biwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBpbnQgaW5kZXgpCit7
CisgICAgLy8gV2Ugd2FudCB0byBTa2lwRGVzY2VuZGVycyBpbiBnZW5lcmFsLiBIb3dldmVyLCBz
a2lwcGluZyBkZXNjZW5kZXJzIG9uIENKSyBjaGFyYWN0ZXJzIGxlYWRzIHRvIHVuZGVzaXJhYmxl
IHJlbmRlcmluZ3MsCisgICAgLy8gc28gd2Ugd2FudCB0byBkcmF3IHRocm91Z2ggQ0pLIGNoYXJh
Y3RlcnMgKG9uIGEgY2hhcmFjdGVyLWJ5LWNoYXJhY3RlciBiYXNpcykuCisgICAgVUNoYXIzMiBi
YXNlQ2hhcmFjdGVyOworICAgIGlmICh0ZXh0UnVuLmlzOEJpdCgpKQorICAgICAgICBiYXNlQ2hh
cmFjdGVyID0gdGV4dFJ1bi5jaGFyYWN0ZXJzOCgpW2dseXBoQnVmZmVyLm9mZnNldEluU3RyaW5n
KGluZGV4KV07CisgICAgZWxzZSB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJQb2lu
dGVyID0gdGV4dFJ1bi5jaGFyYWN0ZXJzMTYoKSArIGdseXBoQnVmZmVyLm9mZnNldEluU3RyaW5n
KGluZGV4KTsKKyAgICAgICAgaWYgKCFhZHZhbmNlQnlDb25zdW1pbmdCYXNlQ2hhcmFjdGVySW5T
ZXF1ZW5jZShjaGFyYWN0ZXJQb2ludGVyLCB0ZXh0UnVuLmNoYXJhY3RlcnMxNigpICsgdGV4dFJ1
bi5sZW5ndGgoKSwgYmFzZUNoYXJhY3RlcikpCisgICAgICAgICAgICByZXR1cm4gR2x5cGhUb1Bh
dGhUcmFuc2xhdG9yOjpEcmF3T3ZlckdseXBoOworICAgIH0KKyAgICAKKyAgICAvLyB1X2dldElu
dFByb3BlcnR5VmFsdWUgd2l0aCBVQ0hBUl9JREVPR1JBUEhJQyBkb2Vzbid0IHJldHVybiB0cnVl
IGZvciBKYXBhbmVzZSBvciBLb3JlYW4gY29kZXBvaW50cy4KKyAgICAvLyBJbnN0ZWFkLCB3ZSBj
YW4gdXNlIHRoZSAiVW5pY29kZSBhbGxvY2F0aW9uIGJsb2NrIiBmb3IgdGhlIGNoYXJhY3Rlci4K
KyAgICAvLyBGSVhNRTogd2UgbWF5IG5lZWQgdG8gY2FjaGUgdGhlIG91dHB1dCBvZiB0aGlzIElD
VSBjYWxsLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNTI5Cisg
ICAgVUJsb2NrQ29kZSBibG9ja0NvZGUgPSB1YmxvY2tfZ2V0Q29kZShiYXNlQ2hhcmFjdGVyKTsK
KyAgICBzd2l0Y2ggKGJsb2NrQ29kZSkgeworICAgIGNhc2UgVUJMT0NLX0NKS19SQURJQ0FMU19T
VVBQTEVNRU5UOgorICAgIGNhc2UgVUJMT0NLX0NKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTjoK
KyAgICBjYXNlIFVCTE9DS19FTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTOgorICAgIGNh
c2UgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZOgorICAgIGNhc2UgVUJMT0NLX0NKS19VTklGSUVE
X0lERU9HUkFQSFNfRVhURU5TSU9OX0E6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX1VOSUZJRURfSURF
T0dSQVBIUzoKKyAgICBjYXNlIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTOgor
ICAgIGNhc2UgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0ZPUk1TOgorICAgIGNhc2UgVUJMT0NL
X0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0I6CisgICAgY2FzZSBVQkxPQ0tfQ0pL
X0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19TVVBQTEVNRU5UOgorICAgIGNhc2UgVUJMT0NLX0NK
S19TVFJPS0VTOgorICAgIGNhc2UgVUJMT0NLX0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5T
SU9OX0M6CisgICAgY2FzZSBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05f
RDoKKyAgICBjYXNlIFVCTE9DS19JREVPR1JBUEhJQ19ERVNDUklQVElPTl9DSEFSQUNURVJTOgor
ICAgIGNhc2UgVUJMT0NLX0xJTkVBUl9CX0lERU9HUkFNUzoKKyAgICBjYXNlIFVCTE9DS19FTkNM
T1NFRF9JREVPR1JBUEhJQ19TVVBQTEVNRU5UOgorICAgIGNhc2UgVUJMT0NLX0hJUkFHQU5BOgor
ICAgIGNhc2UgVUJMT0NLX0tBVEFLQU5BOgorICAgIGNhc2UgVUJMT0NLX0JPUE9NT0ZPOgorICAg
IGNhc2UgVUJMT0NLX0JPUE9NT0ZPX0VYVEVOREVEOgorICAgIGNhc2UgVUJMT0NLX0hBTkdVTF9K
QU1POgorICAgIGNhc2UgVUJMT0NLX0hBTkdVTF9DT01QQVRJQklMSVRZX0pBTU86CisgICAgY2Fz
ZSBVQkxPQ0tfSEFOR1VMX1NZTExBQkxFUzoKKyAgICBjYXNlIFVCTE9DS19IQU5HVUxfSkFNT19F
WFRFTkRFRF9BOgorICAgIGNhc2UgVUJMT0NLX0hBTkdVTF9KQU1PX0VYVEVOREVEX0I6CisgICAg
ICAgIHJldHVybiBHbHlwaFRvUGF0aFRyYW5zbGF0b3I6OkRyYXdPdmVyR2x5cGg7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIEdseXBoVG9QYXRoVHJhbnNsYXRvcjo6U2tpcERlc2NlbmRl
cnM7CisgICAgfQorfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgK
aW5kZXggZmNkZDY4ZjYwYTIwN2EzZDEwMzc4MmM3YjYwMDVmYTU0Y2Q0NWYxZS4uN2U4ZjJlN2Rh
MTFjOTQ4YzdmM2Y2MWE5NTQ5YTc5NTk2ZmY2MTFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaApAQCAtOTYsMTAgKzk2LDE5IEBAIHN0cnVjdCBHbHlwaE92ZXJmbG93
IHsKIAogY2xhc3MgR2x5cGhUb1BhdGhUcmFuc2xhdG9yIHsKIHB1YmxpYzoKKyAgICBlbnVtIEds
eXBoVW5kZXJsaW5lVHlwZSB7CisgICAgICAgIFNraXBEZXNjZW5kZXJzLAorICAgICAgICBTa2lw
R2x5cGgsCisgICAgICAgIERyYXdPdmVyR2x5cGgKKyAgICB9OwogICAgIHZpcnR1YWwgYm9vbCBj
b250YWluc01vcmVQYXRocygpID0gMDsKLSAgICB2aXJ0dWFsIFBhdGggbmV4dFBhdGgoKSA9IDA7
CisgICAgdmlydHVhbCBQYXRoIHBhdGgoKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0PiBleHRlbnRzKCkgPSAwOworICAgIHZpcnR1YWwgR2x5cGhVbmRlcmxpbmVUeXBl
IHVuZGVybGluZVR5cGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudCgpID0gMDsK
ICAgICB2aXJ0dWFsIH5HbHlwaFRvUGF0aFRyYW5zbGF0b3IoKSB7IH0KIH07CitHbHlwaFRvUGF0
aFRyYW5zbGF0b3I6OkdseXBoVW5kZXJsaW5lVHlwZSBzaGFyZWRVbmRlcmxpbmVUeXBlKGNvbnN0
IFRleHRSdW4mLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBpbmRleCk7CiAKIGNsYXNzIEZvbnQg
ewogcHVibGljOgpAQCAtMzQ3LDYgKzM1Niw3IEBAIHByaXZhdGU6CiB2b2lkIGludmFsaWRhdGVG
b250R2x5cGhzQ2FjaGUoKTsKIHZvaWQgcHJ1bmVVbnJlZmVyZW5jZWRFbnRyaWVzRnJvbUZvbnRH
bHlwaHNDYWNoZSgpOwogdm9pZCBjbGVhcldpZHRoQ2FjaGVzKCk7Citib29sIGFkdmFuY2VCeUNv
bnN1bWluZ0Jhc2VDaGFyYWN0ZXJJblNlcXVlbmNlKGNvbnN0IFVDaGFyKiYgaXRlcmF0b3IsIGNv
bnN0IFVDaGFyKiBlbmQsIFVDaGFyMzImIGJhc2VDaGFyYWN0ZXIpOwogCiBpbmxpbmUgRm9udDo6
fkZvbnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKaW5kZXggMzMzYzM0ZDI5ZTY1OTUxMzYxZDg4ZTkwNTNlNGQwNDIzNTM5YmZiNy4uOGQy
NThlNzMzNzdkOTJmNGZhY2E5OWI2ODM0OTg0MDYzZDQ0ZDlhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCkBAIC04Myw2ICs4Myw4IEBAIHB1
YmxpYzoKICAgICAgICAgbV9mb250RGF0YS5jbGVhcigpOwogICAgICAgICBtX2dseXBocy5jbGVh
cigpOwogICAgICAgICBtX2FkdmFuY2VzLmNsZWFyKCk7CisgICAgICAgIGlmIChtX29mZnNldHNJ
blN0cmluZykKKyAgICAgICAgICAgIG1fb2Zmc2V0c0luU3RyaW5nLT5jbGVhcigpOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICAgICAgbV9vZmZzZXRzLmNsZWFyKCk7CiAjZW5kaWYKQEAgLTEyMiw3
ICsxMjQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIGFkZChHbHlwaCBn
bHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGZsb2F0IHdpZHRoLCBjb25zdCBGbG9h
dFNpemUqIG9mZnNldCA9IDApCisgICAgdm9pZCBhZGQoR2x5cGggZ2x5cGgsIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBmb250LCBmbG9hdCB3aWR0aCwgaW50IG9mZnNldEluU3RyaW5nID0gLTEsIGNv
bnN0IEZsb2F0U2l6ZSogb2Zmc2V0ID0gMCkKICAgICB7CiAgICAgICAgIG1fZm9udERhdGEuYXBw
ZW5kKGZvbnQpOwogCkBAIC0xNDksMTAgKzE1MSwxMyBAQCBwdWJsaWM6CiAjZWxzZQogICAgICAg
ICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICNlbmRpZgorICAgICAgICAKKyAgICAgICAgaWYgKG9m
ZnNldEluU3RyaW5nID49IDAgJiYgbV9vZmZzZXRzSW5TdHJpbmcpCisgICAgICAgICAgICBtX29m
ZnNldHNJblN0cmluZy0+YXBwZW5kKG9mZnNldEluU3RyaW5nKTsKICAgICB9CiAgICAgCiAjaWYg
IVVTRShXSU5HREkpCi0gICAgdm9pZCBhZGQoR2x5cGggZ2x5cGgsIGNvbnN0IFNpbXBsZUZvbnRE
YXRhKiBmb250LCBHbHlwaEJ1ZmZlckFkdmFuY2UgYWR2YW5jZSkKKyAgICB2b2lkIGFkZChHbHlw
aCBnbHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIEdseXBoQnVmZmVyQWR2YW5jZSBh
ZHZhbmNlLCBpbnQgb2Zmc2V0SW5TdHJpbmcgPSAtMSkKICAgICB7CiAgICAgICAgIG1fZm9udERh
dGEuYXBwZW5kKGZvbnQpOwogI2lmIFVTRShDQUlSTykKQEAgLTE2NCw2ICsxNjksOSBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogICAgICAgICBtX2FkdmFuY2VzLmFwcGVuZChhZHZhbmNlKTsKKyAgICAg
ICAgCisgICAgICAgIGlmIChvZmZzZXRJblN0cmluZyA+PSAwICYmIG1fb2Zmc2V0c0luU3RyaW5n
KQorICAgICAgICAgICAgbV9vZmZzZXRzSW5TdHJpbmctPmFwcGVuZChvZmZzZXRJblN0cmluZyk7
CiAgICAgfQogI2VuZGlmCiAKQEAgLTE3OSw2ICsxODcsMTcgQEAgcHVibGljOgogICAgICAgICBH
bHlwaEJ1ZmZlckFkdmFuY2UmIGxhc3RBZHZhbmNlID0gbV9hZHZhbmNlcy5sYXN0KCk7CiAgICAg
ICAgIGxhc3RBZHZhbmNlLnNldFdpZHRoKGxhc3RBZHZhbmNlLndpZHRoKCkgKyB3aWR0aCk7CiAg
ICAgfQorICAgIAorICAgIHZvaWQgc2F2ZU9mZnNldHNJblN0cmluZygpCisgICAgeworICAgICAg
ICBtX29mZnNldHNJblN0cmluZy5yZXNldChuZXcgVmVjdG9yPGludCwgMjA0OD4oKSk7CisgICAg
fQorICAgIAorICAgIGludCBvZmZzZXRJblN0cmluZyhpbnQgaW5kZXgpIGNvbnN0CisgICAgewor
ICAgICAgICBBU1NFUlQobV9vZmZzZXRzSW5TdHJpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4g
KCptX29mZnNldHNJblN0cmluZylbaW5kZXhdOworICAgIH0KIAogcHJpdmF0ZToKICAgICB2b2lk
IHN3YXAoaW50IGluZGV4MSwgaW50IGluZGV4MikKQEAgLTIwNiw2ICsyMjUsNyBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxHbHlwaEJ1ZmZlckdseXBoLCAyMDQ4PiBtX2dseXBoczsKICAgICBWZWN0
b3I8R2x5cGhCdWZmZXJBZHZhbmNlLCAyMDQ4PiBtX2FkdmFuY2VzOwogICAgIEdseXBoQnVmZmVy
QWR2YW5jZSBtX2luaXRpYWxBZHZhbmNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8aW50
LCAyMDQ4Pj4gbV9vZmZzZXRzSW5TdHJpbmc7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIFZlY3Rv
cjxGbG9hdFNpemUsIDIwNDg+IG1fb2Zmc2V0czsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDVkMGM4N2Q2ZDg3ZGE1MzFhNzU5NjRlYmI1
Yzk0NGY4NmVjNGEyMDMuLjM3MjA4NDU2ZWIzYzljMzY1ZGM1NjJmYzM1ZTAzNGMwZTE1MjUyZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKQEAgLTIyMSw3
ICsyMjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkcmF3U1ZHR2x5cGhzKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IFNpbXBsZUZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXIm
LCBpbnQgZnJvbSwgaW50IHRvLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3QgPSAwOwogICAgICAg
ICB2aXJ0dWFsIGZsb2F0IGZsb2F0V2lkdGhVc2luZ1NWR0ZvbnQoY29uc3QgRm9udCYsIGNvbnN0
IFRleHRSdW4mLCBpbnQmIGNoYXJzQ29uc3VtZWQsIFN0cmluZyYgZ2x5cGhOYW1lKSBjb25zdCA9
IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhcHBseVNWR0tlcm5pbmcoY29uc3QgU2ltcGxlRm9u
dERhdGEqLCBXaWR0aEl0ZXJhdG9yJiwgR2x5cGhCdWZmZXIqLCBpbnQgZnJvbSkgY29uc3QgPSAw
OwotICAgICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHbHlwaFRvUGF0aFRyYW5zbGF0b3I+
IGNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBTaW1wbGVGb250RGF0YSYsIGNvbnN0
IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQm
KSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdseXBoVG9QYXRo
VHJhbnNsYXRvcj4gY3JlYXRlR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IFNpbXBsZUZvbnRE
YXRhJiwgY29uc3QgVGV4dFJ1biosIGNvbnN0IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCBu
dW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdCA9IDA7CiAjZW5kaWYKICAgICB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3Iu
Y3BwCmluZGV4IGQ5N2NmN2EwZThlZjE5ODc5MjZkMTQzMDA5ZWJmMTQwNjRlMDc5OTcuLjc3N2Rj
Mjk3OGRiZjk3Y2JkMTc3M2ZmNmEwY2JmYjAwNTNjNmNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCkBAIC0xNzIsNyArMTcy
LDggQEAgaW5saW5lIHVuc2lnbmVkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2VJbnRlcm5hbChUZXh0
SXRlcmF0b3ImIHRleHRJdGVyYXRvciwgR2x5cGgKICAgICBDaGFyYWN0ZXJzVHJlYXRlZEFzU3Bh
Y2UgY2hhcmFjdGVyc1RyZWF0ZWRBc1NwYWNlOwogICAgIHdoaWxlICh0ZXh0SXRlcmF0b3IuY29u
c3VtZShjaGFyYWN0ZXIsIGNsdXN0ZXJMZW5ndGgpKSB7CiAgICAgICAgIHVuc2lnbmVkIGFkdmFu
Y2VMZW5ndGggPSBjbHVzdGVyTGVuZ3RoOwotICAgICAgICBjb25zdCBHbHlwaERhdGEmIGdseXBo
RGF0YSA9IGdseXBoRGF0YUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIHJ0bCwgdGV4dEl0ZXJhdG9y
LmN1cnJlbnRDaGFyYWN0ZXIoKSwgYWR2YW5jZUxlbmd0aCk7CisgICAgICAgIGludCBjdXJyZW50
Q2hhcmFjdGVyID0gdGV4dEl0ZXJhdG9yLmN1cnJlbnRDaGFyYWN0ZXIoKTsKKyAgICAgICAgY29u
c3QgR2x5cGhEYXRhJiBnbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoY2hhcmFjdGVy
LCBydGwsIGN1cnJlbnRDaGFyYWN0ZXIsIGFkdmFuY2VMZW5ndGgpOwogICAgICAgICBHbHlwaCBn
bHlwaCA9IGdseXBoRGF0YS5nbHlwaDsKICAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIGZv
bnREYXRhID0gZ2x5cGhEYXRhLmZvbnREYXRhOwogCkBAIC0yMzUsMTYgKzIzNiwxNiBAQCBpbmxp
bmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUludGVybmFsKFRleHRJdGVyYXRvciYg
dGV4dEl0ZXJhdG9yLCBHbHlwaAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdseXBoQnVm
ZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdseXBoQnVmZmVyLT5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZm9yVGV4dEVt
cGhhc2lzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXIt
PmFkZChmb250RGF0YS0+emVyb1dpZHRoU3BhY2VHbHlwaCgpLCBmb250RGF0YSwgbV9leHBhbnNp
b25QZXJPcHBvcnR1bml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bHlwaEJ1ZmZlci0+YWRkKGZvbnREYXRhLT56ZXJvV2lkdGhTcGFjZUdseXBoKCksIGZvbnREYXRh
LCBtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5LCBjdXJyZW50Q2hhcmFjdGVyKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChmb250RGF0YS0+c3BhY2VHbHlwaCgpLCBmb250RGF0
YSwgZXhwYW5zaW9uQXRUaGlzT3Bwb3J0dW5pdHkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChmb250RGF0YS0+c3BhY2VHbHlwaCgpLCBmb250
RGF0YSwgZXhwYW5zaW9uQXRUaGlzT3Bwb3J0dW5pdHksIGN1cnJlbnRDaGFyYWN0ZXIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnbHlwaEJ1ZmZlci0+ZXhwYW5kTGFzdEFkdmFuY2UoZXhwYW5zaW9uQXRUaGlzT3Bw
b3J0dW5pdHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgcHJldmlvdXNFeHBhbnNpb24gPSBtX2V4cGFuc2lvbjsKICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAobV9ydW4uYWxsb3dzVHJhaWxpbmdFeHBhbnNp
b24oKSB8fCAobV9ydW4ubHRyKCkgJiYgdGV4dEl0ZXJhdG9yLmN1cnJlbnRDaGFyYWN0ZXIoKSAr
IGFkdmFuY2VMZW5ndGggPCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fcnVuLmxlbmd0aCgpKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3J1bi5ydGwoKSAmJiB0ZXh0SXRlcmF0b3IuY3Vy
cmVudENoYXJhY3RlcigpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9ydW4uYWxsb3dz
VHJhaWxpbmdFeHBhbnNpb24oKSB8fCAobV9ydW4ubHRyKCkgJiYgY3VycmVudENoYXJhY3RlciAr
IGFkdmFuY2VMZW5ndGggPCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fcnVuLmxlbmd0aCgpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3J1bi5ydGwoKSAmJiBjdXJyZW50Q2hhcmFjdGVy
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9leHBhbnNpb24gLT0gbV9leHBhbnNpb25Q
ZXJPcHBvcnR1bml0eTsKICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICs9ICFtX3J1bi5h
cHBseVdvcmRSb3VuZGluZygpID8gbV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSA6IHJvdW5kZihw
cmV2aW91c0V4cGFuc2lvbikgLSByb3VuZGYobV9leHBhbnNpb24pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9pc0FmdGVyRXhwYW5zaW9uID0gdHJ1ZTsKQEAgLTI1NCw3ICsyNTUsNyBAQCBp
bmxpbmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUludGVybmFsKFRleHRJdGVyYXRv
ciYgdGV4dEl0ZXJhdG9yLCBHbHlwaAogCiAgICAgICAgICAgICAgICAgLy8gQWNjb3VudCBmb3Ig
d29yZCBzcGFjaW5nLgogICAgICAgICAgICAgICAgIC8vIFdlIGFwcGx5IGFkZGl0aW9uYWwgc3Bh
Y2UgYmV0d2VlbiAid29yZHMiIGJ5IGFkZGluZyB3aWR0aCB0byB0aGUgc3BhY2UgY2hhcmFjdGVy
LgotICAgICAgICAgICAgICAgIGlmICh0cmVhdEFzU3BhY2UgJiYgKGNoYXJhY3RlciAhPSAnXHQn
IHx8ICFtX3J1bi5hbGxvd1RhYnMoKSkgJiYgKHRleHRJdGVyYXRvci5jdXJyZW50Q2hhcmFjdGVy
KCkgfHwgY2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkgJiYgbV9mb250LT53b3JkU3BhY2luZygp
KQorICAgICAgICAgICAgICAgIGlmICh0cmVhdEFzU3BhY2UgJiYgKGNoYXJhY3RlciAhPSAnXHQn
IHx8ICFtX3J1bi5hbGxvd1RhYnMoKSkgJiYgKGN1cnJlbnRDaGFyYWN0ZXIgfHwgY2hhcmFjdGVy
ID09IG5vQnJlYWtTcGFjZSkgJiYgbV9mb250LT53b3JkU3BhY2luZygpKQogICAgICAgICAgICAg
ICAgICAgICB3aWR0aCArPSBtX2ZvbnQtPndvcmRTcGFjaW5nKCk7CiAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBtX2lzQWZ0ZXJFeHBhbnNpb24gPSBmYWxzZTsKQEAgLTI2Niw3
ICsyNjcsNyBAQCBpbmxpbmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUludGVybmFs
KFRleHRJdGVyYXRvciYgdGV4dEl0ZXJhdG9yLCBHbHlwaAogCiAgICAgICAgIGlmIChtX2FjY291
bnRGb3JHbHlwaEJvdW5kcykgewogICAgICAgICAgICAgYm91bmRzID0gZm9udERhdGEtPmJvdW5k
c0ZvckdseXBoKGdseXBoKTsKLSAgICAgICAgICAgIGlmICghdGV4dEl0ZXJhdG9yLmN1cnJlbnRD
aGFyYWN0ZXIoKSkKKyAgICAgICAgICAgIGlmICghY3VycmVudENoYXJhY3RlcikKICAgICAgICAg
ICAgICAgICBtX2ZpcnN0R2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWF4PGZsb2F0PigwLCAtYm91bmRz
LngoKSk7CiAgICAgICAgIH0KIApAQCAtMzA1LDcgKzMwNiw3IEBAIGlubGluZSB1bnNpZ25lZCBX
aWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwoVGV4dEl0ZXJhdG9yJiB0ZXh0SXRlcmF0b3Is
IEdseXBoCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZ2x5cGhCdWZmZXIpCi0gICAgICAgICAg
ICBnbHlwaEJ1ZmZlci0+YWRkKGdseXBoLCBmb250RGF0YSwgKHJ0bCA/IG9sZFdpZHRoICsgbGFz
dFJvdW5kaW5nV2lkdGggOiB3aWR0aCkpOworICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChn
bHlwaCwgZm9udERhdGEsIChydGwgPyBvbGRXaWR0aCArIGxhc3RSb3VuZGluZ1dpZHRoIDogd2lk
dGgpLCBjdXJyZW50Q2hhcmFjdGVyKTsKIAogICAgICAgICBsYXN0Um91bmRpbmdXaWR0aCA9IHdp
ZHRoIC0gb2xkV2lkdGg7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggYzFlY2Q4
ZGE2MDI1OWRhYmQzMDYxMDQ2ZWVjNTE2YTkzNjI2ZjUxYi4uZjc1MDhjMjZhN2I1MDQ4NjY1YjIy
MjkzNjlhNzk0ZDUxYzAyYjRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTI2
MSwyNSArMjYxLDE1IEBAIGludCBDb21wbGV4VGV4dENvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0
aW9uKGZsb2F0IGgsIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9Ci0KKyAgICAKIHN0YXRpYyBib29sIGFkdmFuY2VC
eUNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiYgaXRlcmF0b3IsIGNvbnN0
IFVDaGFyKiBlbmQsIFVDaGFyMzImIGJhc2VDaGFyYWN0ZXIsIHVuc2lnbmVkJiBtYXJrQ291bnQp
CiB7CiAgICAgQVNTRVJUKGl0ZXJhdG9yIDwgZW5kKTsKIAogICAgIG1hcmtDb3VudCA9IDA7Ci0K
LSAgICBiYXNlQ2hhcmFjdGVyID0gKml0ZXJhdG9yKys7Ci0KLSAgICBpZiAoVTE2X0lTX1NVUlJP
R0FURShiYXNlQ2hhcmFjdGVyKSkgewotICAgICAgICBpZiAoIVUxNl9JU19MRUFEKGJhc2VDaGFy
YWN0ZXIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoaXRlcmF0b3Ig
PT0gZW5kKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBVQ2hhciB0cmFpbCA9
ICppdGVyYXRvcisrOwotICAgICAgICBpZiAoIVUxNl9JU19UUkFJTCh0cmFpbCkpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGJhc2VDaGFyYWN0ZXIgPSBVMTZfR0VUX1NVUFBM
RU1FTlRBUlkoYmFzZUNoYXJhY3RlciwgdHJhaWwpOwotICAgIH0KKyAgICAKKyAgICBpZiAoIWFk
dmFuY2VCeUNvbnN1bWluZ0Jhc2VDaGFyYWN0ZXJJblNlcXVlbmNlKGl0ZXJhdG9yLCBlbmQsIGJh
c2VDaGFyYWN0ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBDb25zdW1lIG1h
cmtzLgogICAgIHdoaWxlIChpdGVyYXRvciA8IGVuZCkgewpAQCAtNTI5LDcgKzUxOSw3IEBAIHZv
aWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKHVuc2lnbmVkIG9mZnNldCwgR2x5cGhC
dWZmZXIqIGdseXBoQnVmZmVyLCBHCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
ICAgICBpZiAoZ2x5cGhCdWZmZXIgJiYgIW1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGgpCi0gICAg
ICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChtX2FkanVzdGVkR2x5cGhzW2tdLCBjb21wbGV4
VGV4dFJ1bi5mb250RGF0YSgpLCBhZGp1c3RlZEFkdmFuY2UpOworICAgICAgICAgICAgICAgIGds
eXBoQnVmZmVyLT5hZGQobV9hZGp1c3RlZEdseXBoc1trXSwgY29tcGxleFRleHRSdW4uZm9udERh
dGEoKSwgYWRqdXN0ZWRBZHZhbmNlLCBjb21wbGV4VGV4dFJ1bi5pbmRleEF0KG1fZ2x5cGhJbkN1
cnJlbnRSdW4pKTsKIAogICAgICAgICAgICAgdW5zaWduZWQgb2xkQ2hhcmFjdGVySW5DdXJyZW50
R2x5cGggPSBtX2NoYXJhY3RlckluQ3VycmVudEdseXBoOwogICAgICAgICAgICAgbV9jaGFyYWN0
ZXJJbkN1cnJlbnRHbHlwaCA9IHN0ZDo6bWluKG1fY3VycmVudENoYXJhY3RlciAtIGNvbXBsZXhU
ZXh0UnVuLnN0cmluZ0xvY2F0aW9uKCksIGdseXBoRW5kT2Zmc2V0KSAtIGdseXBoU3RhcnRPZmZz
ZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
CmluZGV4IGMzM2EyMDhhMTc2OGU5ZjU1MjA5YjdlOTBmYjUyMWRkOTg2NWUyYTcuLmU1MzMzM2Rk
YjEwNDc3NzRlMmY1ZDQ3NTk1NTUyYTRjNDdlOGEwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCkBAIC00NDgsOCArNDQ4LDkgQEAgc3Rh
dGljIHZvaWQgZmluZFBhdGhJbnRlcnNlY3Rpb25zKHZvaWQqIHN0YXRlQXNWb2lkUG9pbnRlciwg
Y29uc3QgQ0dQYXRoRWxlbWVudCoKIAogY2xhc3MgTWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yIGZp
bmFsIDogcHVibGljIEdseXBoVG9QYXRoVHJhbnNsYXRvciB7CiBwdWJsaWM6Ci0gICAgTWFjR2x5
cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3Qg
RmxvYXRQb2ludCYgdGV4dE9yaWdpbikKKyAgICBNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3IoY29u
c3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgR2x5cGhCdWZmZXImIGdseXBoQnVmZmVyLCBjb25z
dCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luKQogICAgICAgICA6IG1faW5kZXgoMCkKKyAgICAgICAg
LCBtX3RleHRSdW4odGV4dFJ1bikKICAgICAgICAgLCBtX2dseXBoQnVmZmVyKGdseXBoQnVmZmVy
KQogICAgICAgICAsIG1fZm9udERhdGEoZ2x5cGhCdWZmZXIuZm9udERhdGFBdChtX2luZGV4KSkK
ICAgICAgICAgLCBtX3RyYW5zbGF0aW9uKENHQWZmaW5lVHJhbnNmb3JtU2NhbGUoQ0dBZmZpbmVU
cmFuc2Zvcm1NYWtlVHJhbnNsYXRpb24odGV4dE9yaWdpbi54KCksIHRleHRPcmlnaW4ueSgpKSwg
MSwgLTEpKQpAQCAtNDYxLDMxICs0NjIsNDUgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX2luZGV4ICE9IG1fZ2x5cGhCdWZmZXIuc2l6ZSgpOwogICAgIH0KLSAgICB2aXJ0dWFs
IFBhdGggbmV4dFBhdGgoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhdGggcGF0aCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZXh0ZW50cygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgR2x5cGhVbmRlcmxpbmVUeXBlIHVuZGVybGluZVR5cGUoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBt
b3ZlVG9OZXh0VmFsaWRHbHlwaCgpOwotICAgIHZvaWQgaW5jcmVtZW50SW5kZXgoKTsKIAogICAg
IGludCBtX2luZGV4OworICAgIGNvbnN0IFRleHRSdW4mIG1fdGV4dFJ1bjsKICAgICBjb25zdCBH
bHlwaEJ1ZmZlciYgbV9nbHlwaEJ1ZmZlcjsKICAgICBjb25zdCBTaW1wbGVGb250RGF0YSogbV9m
b250RGF0YTsKICAgICBDR0FmZmluZVRyYW5zZm9ybSBtX3RyYW5zbGF0aW9uOwogfTsKIAotUGF0
aCBNYWNHbHlwaFRvUGF0aFRyYW5zbGF0b3I6Om5leHRQYXRoKCkKK1BhdGggTWFjR2x5cGhUb1Bh
dGhUcmFuc2xhdG9yOjpwYXRoKCkKIHsKICAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiByZXN1bHQg
PSBhZG9wdENGKENURm9udENyZWF0ZVBhdGhGb3JHbHlwaChtX2ZvbnREYXRhLT5wbGF0Zm9ybURh
dGEoKS5jdEZvbnQoKSwgbV9nbHlwaEJ1ZmZlci5nbHlwaEF0KG1faW5kZXgpLCAmbV90cmFuc2xh
dGlvbikpOwotICAgIGluY3JlbWVudEluZGV4KCk7CiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dQYXRo
Q3JlYXRlTXV0YWJsZUNvcHkocmVzdWx0LmdldCgpKSk7CiB9CiAKK3N0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+IE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6ZXh0ZW50cygpCit7CisgICAgQ0dQb2lu
dCBiZWdpbm5pbmcgPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dQb2ludE1ha2UoMCwg
MCksIG1fdHJhbnNsYXRpb24pOworICAgIENHU2l6ZSBlbmQgPSBDR1NpemVBcHBseUFmZmluZVRy
YW5zZm9ybShtX2dseXBoQnVmZmVyLmFkdmFuY2VBdChtX2luZGV4KSwgbV90cmFuc2xhdGlvbik7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PGZsb2F0PihiZWdpbm5pbmcu
eCksIHN0YXRpY19jYXN0PGZsb2F0PihiZWdpbm5pbmcueCArIGVuZC53aWR0aCkpOworfQorCith
dXRvIE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6dW5kZXJsaW5lVHlwZSgpIC0+IEdseXBoVW5k
ZXJsaW5lVHlwZQoreworICAgIHJldHVybiBzaGFyZWRVbmRlcmxpbmVUeXBlKG1fdGV4dFJ1biwg
bV9nbHlwaEJ1ZmZlciwgbV9pbmRleCk7Cit9CisKIHZvaWQgTWFjR2x5cGhUb1BhdGhUcmFuc2xh
dG9yOjptb3ZlVG9OZXh0VmFsaWRHbHlwaCgpCiB7CiAgICAgaWYgKCFtX2ZvbnREYXRhLT5pc1NW
R0ZvbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGluY3JlbWVudEluZGV4KCk7CisgICAgaW5j
cmVtZW50KCk7CiB9CiAKLXZvaWQgTWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjppbmNyZW1lbnRJ
bmRleCgpCit2b2lkIE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6aW5jcmVtZW50KCkKIHsKICAg
ICBkbyB7CiAgICAgICAgIEdseXBoQnVmZmVyQWR2YW5jZSBhZHZhbmNlID0gbV9nbHlwaEJ1ZmZl
ci5hZHZhbmNlQXQobV9pbmRleCk7CkBAIC01MDMsNiArNTE4LDcgQEAgRGFzaEFycmF5IEZvbnQ6
OmRhc2hlc0ZvckludGVyc2VjdGlvbnNXaXRoUmVjdChjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0
IEZsb2F0UG8KICAgICAgICAgcmV0dXJuIERhc2hBcnJheSgpOwogCiAgICAgR2x5cGhCdWZmZXIg
Z2x5cGhCdWZmZXI7CisgICAgZ2x5cGhCdWZmZXIuc2F2ZU9mZnNldHNJblN0cmluZygpOwogICAg
IGZsb2F0IGRlbHRhWDsKICAgICBpZiAoY29kZVBhdGgocnVuKSAhPSBGb250OjpDb21wbGV4KQog
ICAgICAgICBkZWx0YVggPSBnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvclNpbXBsZVRleHQocnVuLCAw
LCBydW4ubGVuZ3RoKCksIGdseXBoQnVmZmVyKTsKQEAgLTUxOCw5ICs1MzQsOSBAQCBEYXNoQXJy
YXkgRm9udDo6ZGFzaGVzRm9ySW50ZXJzZWN0aW9uc1dpdGhSZWN0KGNvbnN0IFRleHRSdW4mIHJ1
biwgY29uc3QgRmxvYXRQbwogICAgIGJvb2wgaXNTVkcgPSBmYWxzZTsKICAgICBGbG9hdFBvaW50
IG9yaWdpbiA9IEZsb2F0UG9pbnQodGV4dE9yaWdpbi54KCkgKyBkZWx0YVgsIHRleHRPcmlnaW4u
eSgpKTsKICAgICBpZiAoIWZvbnREYXRhLT5pc1NWR0ZvbnQoKSkKLSAgICAgICAgdHJhbnNsYXRv
ciA9IHN0ZDo6bW92ZShzdGQ6Om1ha2VfdW5pcXVlPE1hY0dseXBoVG9QYXRoVHJhbnNsYXRvcj4o
Z2x5cGhCdWZmZXIsIG9yaWdpbikpOworICAgICAgICB0cmFuc2xhdG9yID0gc3RkOjptb3ZlKHN0
ZDo6bWFrZV91bmlxdWU8TWFjR2x5cGhUb1BhdGhUcmFuc2xhdG9yPihydW4sIGdseXBoQnVmZmVy
LCBvcmlnaW4pKTsKICAgICBlbHNlIHsKLSAgICAgICAgdHJhbnNsYXRvciA9IHN0ZDo6bW92ZShy
dW4ucmVuZGVyaW5nQ29udGV4dCgpLT5jcmVhdGVHbHlwaFRvUGF0aFRyYW5zbGF0b3IoKmZvbnRE
YXRhLCBnbHlwaEJ1ZmZlciwgMCwgZ2x5cGhCdWZmZXIuc2l6ZSgpLCBvcmlnaW4pKTsKKyAgICAg
ICAgdHJhbnNsYXRvciA9IHN0ZDo6bW92ZShydW4ucmVuZGVyaW5nQ29udGV4dCgpLT5jcmVhdGVH
bHlwaFRvUGF0aFRyYW5zbGF0b3IoKmZvbnREYXRhLCAmcnVuLCBnbHlwaEJ1ZmZlciwgMCwgZ2x5
cGhCdWZmZXIuc2l6ZSgpLCBvcmlnaW4pKTsKICAgICAgICAgaXNTVkcgPSB0cnVlOwogICAgIH0K
ICAgICBEYXNoQXJyYXkgcmVzdWx0OwpAQCAtNTI5LDEyICs1NDUsMjcgQEAgRGFzaEFycmF5IEZv
bnQ6OmRhc2hlc0ZvckludGVyc2VjdGlvbnNXaXRoUmVjdChjb25zdCBUZXh0UnVuJiBydW4sIGNv
bnN0IEZsb2F0UG8KICAgICAgICAgY29uc3QgU2ltcGxlRm9udERhdGEqIGxvY2FsRm9udERhdGEg
PSBnbHlwaEJ1ZmZlci5mb250RGF0YUF0KGluZGV4KTsKICAgICAgICAgaWYgKCFsb2NhbEZvbnRE
YXRhIHx8ICghaXNTVkcgJiYgbG9jYWxGb250RGF0YS0+aXNTVkdGb250KCkpIHx8IChpc1NWRyAm
JiBsb2NhbEZvbnREYXRhICE9IGZvbnREYXRhKSkKICAgICAgICAgICAgIGJyZWFrOyAvLyBUaGUg
YWR2YW5jZXMgd2lsbCBnZXQgYWxsIG1lc3NlZCB1cCBpZiB3ZSBkbyBhbnl0aGluZyBvdGhlciB0
aGFuIGJhaWwgaGVyZS4KLSAgICAgICAgUGF0aCBwYXRoID0gdHJhbnNsYXRvci0+bmV4dFBhdGgo
KTsKLSAgICAgICAgQ0dQYXRoQXBwbHkocGF0aC5wbGF0Zm9ybVBhdGgoKSwgJmluZm8sICZmaW5k
UGF0aEludGVyc2VjdGlvbnMpOwotICAgICAgICBpZiAoaW5mby5taW5YIDwgaW5mby5tYXhYKSB7
Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluZm8ubWluWCAtIGxpbmVFeHRlbnRzLngoKSk7
Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluZm8ubWF4WCAtIGxpbmVFeHRlbnRzLngoKSk7
CisgICAgICAgIHN3aXRjaCAodHJhbnNsYXRvci0+dW5kZXJsaW5lVHlwZSgpKSB7CisgICAgICAg
IGNhc2UgR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpTa2lwRGVzY2VuZGVyczogeworICAgICAgICAg
ICAgUGF0aCBwYXRoID0gdHJhbnNsYXRvci0+cGF0aCgpOworICAgICAgICAgICAgQ0dQYXRoQXBw
bHkocGF0aC5wbGF0Zm9ybVBhdGgoKSwgJmluZm8sICZmaW5kUGF0aEludGVyc2VjdGlvbnMpOwor
ICAgICAgICAgICAgaWYgKGluZm8ubWluWCA8IGluZm8ubWF4WCkgeworICAgICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoaW5mby5taW5YIC0gbGluZUV4dGVudHMueCgpKTsKKyAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKGluZm8ubWF4WCAtIGxpbmVFeHRlbnRzLngoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdseXBo
VG9QYXRoVHJhbnNsYXRvcjo6U2tpcEdseXBoOiB7CisgICAgICAgICAgICBzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0PiBleHRlbnRzID0gdHJhbnNsYXRvci0+ZXh0ZW50cygpOworICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChleHRlbnRzLmZpcnN0IC0gbGluZUV4dGVudHMueCgpKTsKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoZXh0ZW50cy5zZWNvbmQgLSBsaW5lRXh0ZW50cy54KCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBHbHlwaFRvUGF0aFRyYW5z
bGF0b3I6OkRyYXdPdmVyR2x5cGg6CisgICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvCisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICB0cmFuc2xhdG9yLT5pbmNyZW1lbnQo
KTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9VbmlzY3JpYmVDb250cm9sbGVyLmNwcApp
bmRleCA3YzZiMGJjNDE3MTAxZmY4YTAwNjk5MzcxYTUwZjEzOTNlM2ExMDgxLi41YmNmMzQ1MDdh
ZDA3MDM5NDI4MDk1YTBjOGQ2ZjVjYmFhMTM1ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vVW5pc2NyaWJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1VuaXNjcmliZUNvbnRyb2xsZXIuY3Bw
CkBAIC0zNTksNyArMzU5LDcgQEAgYm9vbCBVbmlzY3JpYmVDb250cm9sbGVyOjpzaGFwZUFuZFBs
YWNlSXRlbShjb25zdCBVQ2hhciogY3AsIHVuc2lnbmVkIGksIGNvbnN0IFMKICAgICAgICAgLy8g
dHJhbnNsYXRpb24uCiAgICAgICAgIGlmIChnbHlwaEJ1ZmZlcikgewogICAgICAgICAgICAgRmxv
YXRTaXplIHNpemUob2Zmc2V0WCwgLW9mZnNldFkpOwotICAgICAgICAgICAgZ2x5cGhCdWZmZXIt
PmFkZChnbHlwaCwgZm9udERhdGEsIGFkdmFuY2UsICZzaXplKTsKKyAgICAgICAgICAgIGdseXBo
QnVmZmVyLT5hZGQoZ2x5cGgsIGZvbnREYXRhLCBhZHZhbmNlLCAtMSwgJnNpemUpOwogICAgICAg
ICB9CiAKICAgICAgICAgRmxvYXRSZWN0IGdseXBoQm91bmRzID0gZm9udERhdGEtPmJvdW5kc0Zv
ckdseXBoKGdseXBoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZDczYTJhNDE2YjBjM2M0
MzI5MmIwOTRhMzdkZWVlYWU5ZjdkZTg0NC4uOTJiODdmZjE1MjM0YjM5ZGRiNTllMmJiMjNjY2Ux
MGVlMWNjODNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEwMywxNiArMTAzLDIxIEBA
IGJvb2wgU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQ6OmFwcGx5U1ZHS2VybmluZyhjb25zdCBT
aW1wbGVGb250RGF0YSogZm9udERhdGEsCiAKIGNsYXNzIFNWR0dseXBoVG9QYXRoVHJhbnNsYXRv
ciBmaW5hbCA6IHB1YmxpYyBHbHlwaFRvUGF0aFRyYW5zbGF0b3IgewogcHVibGljOgotICAgIFNW
R0dseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBTVkdGb250RGF0YSYgc3ZnRm9udERhdGEsIFNW
R0ZvbnRFbGVtZW50JiBmb250RWxlbWVudCwgY29uc3QgaW50IGZyb20sIGNvbnN0IGludCBudW1H
bHlwaHMsIGZsb2F0IHNjYWxlLCBib29sIGlzVmVydGljYWxUZXh0KTsKKyAgICBTVkdHbHlwaFRv
UGF0aFRyYW5zbGF0b3IoY29uc3QgVGV4dFJ1biosIGNvbnN0IEdseXBoQnVmZmVyJiwgY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IFNWR0ZvbnREYXRhJiwgU1ZHRm9udEVsZW1lbnQmLCBjb25zdCBp
bnQgZnJvbSwgY29uc3QgaW50IG51bUdseXBocywgZmxvYXQgc2NhbGUsIGJvb2wgaXNWZXJ0aWNh
bFRleHQpOwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNNb3JlUGF0aHMoKSBv
dmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIG1faW5kZXggIT0gbV9zdG9wcGluZ1BvaW50
OwogICAgIH0KLSAgICB2aXJ0dWFsIFBhdGggbmV4dFBhdGgoKSBvdmVycmlkZTsKKyAgICAKKyAg
ICB2aXJ0dWFsIFBhdGggcGF0aCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjpwYWlyPGZs
b2F0LCBmbG9hdD4gZXh0ZW50cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgR2x5cGhVbmRlcmxp
bmVUeXBlIHVuZGVybGluZVR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5jcmVt
ZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3ZlVG9OZXh0VmFsaWRHbHlwaCgpOwotICAgIHZv
aWQgaW5jcmVtZW50SW5kZXgoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q3VycmVudFRyYW5z
Zm9ybSgpOwogCisgICAgY29uc3QgVGV4dFJ1biogbV90ZXh0UnVuOwogICAgIGNvbnN0IEdseXBo
QnVmZmVyJiBtX2dseXBoQnVmZmVyOwogICAgIGNvbnN0IFNWR0ZvbnREYXRhJiBtX3N2Z0ZvbnRE
YXRhOwogICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50UG9pbnQ7CkBAIC0xMjYsOCArMTMxLDkgQEAg
cHJpdmF0ZToKICAgICBjb25zdCBib29sIG1faXNWZXJ0aWNhbFRleHQ7CiB9OwogCi1TVkdHbHlw
aFRvUGF0aFRyYW5zbGF0b3I6OlNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBHbHlwaEJ1
ZmZlciYgZ2x5cGhCdWZmZXIsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBTVkdGb250
RGF0YSYgc3ZnRm9udERhdGEsIFNWR0ZvbnRFbGVtZW50JiBmb250RWxlbWVudCwgY29uc3QgaW50
IGZyb20sIGNvbnN0IGludCBudW1HbHlwaHMsIGZsb2F0IHNjYWxlLCBib29sIGlzVmVydGljYWxU
ZXh0KQotICAgIDogbV9nbHlwaEJ1ZmZlcihnbHlwaEJ1ZmZlcikKK1NWR0dseXBoVG9QYXRoVHJh
bnNsYXRvcjo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IFRleHRSdW4qIHRleHRSdW4s
IGNvbnN0IEdseXBoQnVmZmVyJiBnbHlwaEJ1ZmZlciwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQs
IGNvbnN0IFNWR0ZvbnREYXRhJiBzdmdGb250RGF0YSwgU1ZHRm9udEVsZW1lbnQmIGZvbnRFbGVt
ZW50LCBjb25zdCBpbnQgZnJvbSwgY29uc3QgaW50IG51bUdseXBocywgZmxvYXQgc2NhbGUsIGJv
b2wgaXNWZXJ0aWNhbFRleHQpCisgICAgOiBtX3RleHRSdW4odGV4dFJ1bikKKyAgICAsIG1fZ2x5
cGhCdWZmZXIoZ2x5cGhCdWZmZXIpCiAgICAgLCBtX3N2Z0ZvbnREYXRhKHN2Z0ZvbnREYXRhKQog
ICAgICwgbV9jdXJyZW50UG9pbnQocG9pbnQpCiAgICAgLCBtX2dseXBoT3JpZ2luKG1fc3ZnRm9u
dERhdGEuaG9yaXpvbnRhbE9yaWdpblgoKSAqIHNjYWxlLCBtX3N2Z0ZvbnREYXRhLmhvcml6b250
YWxPcmlnaW5ZKCkgKiBzY2FsZSkKQEAgLTE0NywzMiArMTUzLDQ0IEBAIFNWR0dseXBoVG9QYXRo
VHJhbnNsYXRvcjo6U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yKGNvbnN0IEdseXBoQnVmZmVyJiBn
bHlwaEJ1ZmZlCiAgICAgfQogICAgIG1vdmVUb05leHRWYWxpZEdseXBoKCk7CiB9Ci0KLVBhdGgg
U1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpuZXh0UGF0aCgpCisgICAgCitBZmZpbmVUcmFuc2Zv
cm0gU1ZHR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpnZXRDdXJyZW50VHJhbnNmb3JtKCkKIHsKLSAg
ICBpZiAobV9pc1ZlcnRpY2FsVGV4dCkgewotICAgICAgICBtX2dseXBoT3JpZ2luLnNldFgobV9z
dmdHbHlwaC52ZXJ0aWNhbE9yaWdpblggKiBtX3NjYWxlKTsKLSAgICAgICAgbV9nbHlwaE9yaWdp
bi5zZXRZKG1fc3ZnR2x5cGgudmVydGljYWxPcmlnaW5ZICogbV9zY2FsZSk7Ci0gICAgfQotCiAg
ICAgQWZmaW5lVHJhbnNmb3JtIGdseXBoUGF0aFRyYW5zZm9ybTsKICAgICBnbHlwaFBhdGhUcmFu
c2Zvcm0udHJhbnNsYXRlKG1fY3VycmVudFBvaW50LngoKSArIG1fZ2x5cGhPcmlnaW4ueCgpLCBt
X2N1cnJlbnRQb2ludC55KCkgKyBtX2dseXBoT3JpZ2luLnkoKSk7CiAgICAgZ2x5cGhQYXRoVHJh
bnNmb3JtLnNjYWxlKG1fc2NhbGUsIC1tX3NjYWxlKTsKKyAgICByZXR1cm4gZ2x5cGhQYXRoVHJh
bnNmb3JtOworfQogCitQYXRoIFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6cGF0aCgpCit7CiAg
ICAgUGF0aCBnbHlwaFBhdGggPSBtX3N2Z0dseXBoLnBhdGhEYXRhOwotICAgIGdseXBoUGF0aC50
cmFuc2Zvcm0oZ2x5cGhQYXRoVHJhbnNmb3JtKTsKLSAgICBpbmNyZW1lbnRJbmRleCgpOworICAg
IGdseXBoUGF0aC50cmFuc2Zvcm0oZ2V0Q3VycmVudFRyYW5zZm9ybSgpKTsKICAgICByZXR1cm4g
Z2x5cGhQYXRoOwogfQogCitzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBTVkdHbHlwaFRvUGF0aFRy
YW5zbGF0b3I6OmV4dGVudHMoKQoreworICAgIEFmZmluZVRyYW5zZm9ybSBnbHlwaFBhdGhUcmFu
c2Zvcm0gPSBnZXRDdXJyZW50VHJhbnNmb3JtKCk7CisgICAgRmxvYXRQb2ludCBiZWdpbm5pbmcg
PSBnbHlwaFBhdGhUcmFuc2Zvcm0ubWFwUG9pbnQobV9jdXJyZW50UG9pbnQpOworICAgIEZsb2F0
U2l6ZSBlbmQgPSBnbHlwaFBhdGhUcmFuc2Zvcm0ubWFwU2l6ZShGbG9hdFNpemUobV9nbHlwaEJ1
ZmZlci5hZHZhbmNlQXQobV9pbmRleCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoYmVn
aW5uaW5nLngoKSwgYmVnaW5uaW5nLngoKSArIGVuZC53aWR0aCgpKTsKK30KKworYXV0byBTVkdH
bHlwaFRvUGF0aFRyYW5zbGF0b3I6OnVuZGVybGluZVR5cGUoKSAtPiBHbHlwaFVuZGVybGluZVR5
cGUKK3sKKyAgICBBU1NFUlQobV90ZXh0UnVuKTsKKyAgICByZXR1cm4gc2hhcmVkVW5kZXJsaW5l
VHlwZSgqbV90ZXh0UnVuLCBtX2dseXBoQnVmZmVyLCBtX2luZGV4KTsKK30KKwogdm9pZCBTVkdH
bHlwaFRvUGF0aFRyYW5zbGF0b3I6Om1vdmVUb05leHRWYWxpZEdseXBoKCkKIHsKICAgICBpZiAo
bV9nbHlwaCAmJiAhbV9zdmdHbHlwaC5wYXRoRGF0YS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpbmNyZW1lbnRJbmRleCgpOworICAgIGluY3JlbWVudCgpOwogfQogCi12b2lkIFNW
R0dseXBoVG9QYXRoVHJhbnNsYXRvcjo6aW5jcmVtZW50SW5kZXgoKQordm9pZCBTVkdHbHlwaFRv
UGF0aFRyYW5zbGF0b3I6OmluY3JlbWVudCgpCiB7CiAgICAgZG8gewogICAgICAgICBpZiAobV9n
bHlwaCkgewpAQCAtMTk0LDYgKzIxMiwxMSBAQCB2b2lkIFNWR0dseXBoVG9QYXRoVHJhbnNsYXRv
cjo6aW5jcmVtZW50SW5kZXgoKQogICAgICAgICBBU1NFUlQobV9zdmdHbHlwaC50YWJsZUVudHJ5
ID09IG1fZ2x5cGgpOwogICAgICAgICBTVkdHbHlwaEVsZW1lbnQ6OmluaGVyaXRVbnNwZWNpZmll
ZEF0dHJpYnV0ZXMobV9zdmdHbHlwaCwgJm1fc3ZnRm9udERhdGEpOwogICAgIH0gd2hpbGUgKCgh
bV9nbHlwaCB8fCBtX3N2Z0dseXBoLnBhdGhEYXRhLmlzRW1wdHkoKSkgJiYgbV9pbmRleCA8IG1f
c3RvcHBpbmdQb2ludCk7CisgICAgCisgICAgaWYgKGNvbnRhaW5zTW9yZVBhdGhzKCkgJiYgbV9p
c1ZlcnRpY2FsVGV4dCkgeworICAgICAgICBtX2dseXBoT3JpZ2luLnNldFgobV9zdmdHbHlwaC52
ZXJ0aWNhbE9yaWdpblggKiBtX3NjYWxlKTsKKyAgICAgICAgbV9nbHlwaE9yaWdpbi5zZXRZKG1f
c3ZnR2x5cGgudmVydGljYWxPcmlnaW5ZICogbV9zY2FsZSk7CisgICAgfQogfQogCiBjbGFzcyBE
dW1teUdseXBoVG9QYXRoVHJhbnNsYXRvciBmaW5hbCA6IHB1YmxpYyBHbHlwaFRvUGF0aFRyYW5z
bGF0b3IgewpAQCAtMjAxLDEzICsyMjQsMjQgQEAgY2xhc3MgRHVtbXlHbHlwaFRvUGF0aFRyYW5z
bGF0b3IgZmluYWwgOiBwdWJsaWMgR2x5cGhUb1BhdGhUcmFuc2xhdG9yIHsKICAgICB7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgdmlydHVhbCBQYXRoIG5leHRQYXRoKCkgb3Zl
cnJpZGUKKyAgICB2aXJ0dWFsIFBhdGggcGF0aCgpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBy
ZXR1cm4gUGF0aCgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+
IGV4dGVudHMoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWly
KDAuZiwgMC5mKTsKKyAgICB9CisgICAgdmlydHVhbCBHbHlwaFVuZGVybGluZVR5cGUgdW5kZXJs
aW5lVHlwZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gRHJhd092ZXJHbHlwaDsK
KyAgICB9CisgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudCgpIG92ZXJyaWRlCisgICAgeworICAg
IH0KIH07CiAKLXN0ZDo6dW5pcXVlX3B0cjxHbHlwaFRvUGF0aFRyYW5zbGF0b3I+IFNWR1RleHRS
dW5SZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVHbHlwaFRvUGF0aFRyYW5zbGF0b3IoY29uc3QgU2lt
cGxlRm9udERhdGEmIGZvbnREYXRhLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGlu
dCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKK3N0
ZDo6dW5pcXVlX3B0cjxHbHlwaFRvUGF0aFRyYW5zbGF0b3I+IFNWR1RleHRSdW5SZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGVHbHlwaFRvUGF0aFRyYW5zbGF0b3IoY29uc3QgU2ltcGxlRm9udERhdGEm
IGZvbnREYXRhLCBjb25zdCBUZXh0UnVuKiB0ZXh0UnVuLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5
cGhCdWZmZXIsIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCkgY29uc3QKIHsKICAgICBTVkdGb250RWxlbWVudCogZm9udEVsZW1lbnQgPSAwOwogICAgIFNW
R0ZvbnRGYWNlRWxlbWVudCogZm9udEZhY2VFbGVtZW50ID0gMDsKQEAgLTIyMiw3ICsyNTYsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8R2x5cGhUb1BhdGhUcmFuc2xhdG9yPiBTVkdUZXh0UnVuUmVuZGVy
aW5nQ29udGV4dDo6Y3JlYXRlR2x5cGhUbwogCiAgICAgZmxvYXQgc2NhbGUgPSBzY2FsZUVtVG9V
bml0cyhmb250RGF0YS5wbGF0Zm9ybURhdGEoKS5zaXplKCksIGZvbnRGYWNlRWxlbWVudC0+dW5p
dHNQZXJFbSgpKTsKIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0dseXBoVG9QYXRo
VHJhbnNsYXRvcj4oZ2x5cGhCdWZmZXIsIHBvaW50LCAqc3ZnRm9udERhdGEsICpmb250RWxlbWVu
dCwgZnJvbSwgbnVtR2x5cGhzLCBzY2FsZSwgaXNWZXJ0aWNhbFRleHQpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0dseXBoVG9QYXRoVHJhbnNsYXRvcj4odGV4dFJ1biwgZ2x5cGhC
dWZmZXIsIHBvaW50LCAqc3ZnRm9udERhdGEsICpmb250RWxlbWVudCwgZnJvbSwgbnVtR2x5cGhz
LCBzY2FsZSwgaXNWZXJ0aWNhbFRleHQpOwogfQogCiB2b2lkIFNWR1RleHRSdW5SZW5kZXJpbmdD
b250ZXh0OjpkcmF3U1ZHR2x5cGhzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgU2lt
cGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBHbHlwaEJ1ZmZlciYgZ2x5cGhCdWZmZXIsIGlu
dCBmcm9tLCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKQEAg
LTI0MSw5ICsyNzUsOSBAQCB2b2lkIFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0OjpkcmF3U1ZH
R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgUwogICAgIEFTU0VSVChhY3Rp
dmVQYWludGluZ1Jlc291cmNlKTsKIAogICAgIFJlbmRlclNWR1Jlc291cmNlTW9kZSByZXNvdXJj
ZU1vZGUgPSBjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBUZXh0TW9kZVN0cm9rZSA/IEFw
cGx5VG9TdHJva2VNb2RlIDogQXBwbHlUb0ZpbGxNb2RlOwotICAgIGF1dG8gdHJhbnNsYXRvcihj
cmVhdGVHbHlwaFRvUGF0aFRyYW5zbGF0b3IoKmZvbnREYXRhLCBnbHlwaEJ1ZmZlciwgZnJvbSwg
bnVtR2x5cGhzLCBwb2ludCkpOworICAgIGF1dG8gdHJhbnNsYXRvcihjcmVhdGVHbHlwaFRvUGF0
aFRyYW5zbGF0b3IoKmZvbnREYXRhLCBudWxscHRyLCBnbHlwaEJ1ZmZlciwgZnJvbSwgbnVtR2x5
cGhzLCBwb2ludCkpOwogICAgIHdoaWxlICh0cmFuc2xhdG9yLT5jb250YWluc01vcmVQYXRocygp
KSB7Ci0gICAgICAgIFBhdGggZ2x5cGhQYXRoID0gdHJhbnNsYXRvci0+bmV4dFBhdGgoKTsKKyAg
ICAgICAgUGF0aCBnbHlwaFBhdGggPSB0cmFuc2xhdG9yLT5wYXRoKCk7CiAgICAgICAgIGlmIChh
Y3RpdmVQYWludGluZ1Jlc291cmNlLT5hcHBseVJlc291cmNlKGVsZW1lbnRSZW5kZXJlciwgc3R5
bGUsIGNvbnRleHQsIHJlc291cmNlTW9kZSkpIHsKICAgICAgICAgICAgIGZsb2F0IHN0cm9rZVRo
aWNrbmVzcyA9IGNvbnRleHQtPnN0cm9rZVRoaWNrbmVzcygpOwogICAgICAgICAgICAgaWYgKHJl
bmRlcmVyKCkuaXNTVkdJbmxpbmVUZXh0KCkpCkBAIC0yNTEsNiArMjg1LDcgQEAgdm9pZCBTVkdU
ZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6ZHJhd1NWR0dseXBocyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFMKICAgICAgICAgICAgIGFjdGl2ZVBhaW50aW5nUmVzb3VyY2UtPnBvc3RB
cHBseVJlc291cmNlKGVsZW1lbnRSZW5kZXJlciwgY29udGV4dCwgcmVzb3VyY2VNb2RlLCAmZ2x5
cGhQYXRoLCAwKTsKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhzdHJv
a2VUaGlja25lc3MpOwogICAgICAgICB9CisgICAgICAgIHRyYW5zbGF0b3ItPmluY3JlbWVudCgp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDUzNjgxZjkyNWQ1NDk2NWNmZWU1
MzJjNWUxMjI2OTQzYjRkM2NjNDMuLmQwYjkxZjZjYjM0OGVlNzNjYzYxZDQ5MzhiYTE0ZDQ2NGMw
YWNhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dFJ1
blJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIH5TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dCgpIHsgfQogCiAjaWYgRU5BQkxF
KFNWR19GT05UUykKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHbHlwaFRvUGF0aFRyYW5z
bGF0b3I+IGNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBTaW1wbGVGb250RGF0YSYs
IGNvbnN0IEdseXBoQnVmZmVyJiwgaW50IGZyb20sIGludCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0
UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHbHlw
aFRvUGF0aFRyYW5zbGF0b3I+IGNyZWF0ZUdseXBoVG9QYXRoVHJhbnNsYXRvcihjb25zdCBTaW1w
bGVGb250RGF0YSYsIGNvbnN0IFRleHRSdW4qLCBjb25zdCBHbHlwaEJ1ZmZlciYsIGludCBmcm9t
LCBpbnQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIFJlbmRlck9iamVjdCYgbV9yZW5kZXJlcjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0N2MzNjcwYzZkNmJl
OWViYjRiMmUwZGQzZjk5NDcyYTc5MzM3MDFlLi5hZjBiNDY0MDllMDQzODRjZmI5MTYxOTBmYWYz
Mzc4MDlhZTI0YjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMjEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OOiBt
aXNzaW5nIHVuZGVybGluZSB1bmRlciBDSksgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB1bmRlcmxp
bmVzIHVuZGVyIENKSyB0ZXh0IGRvbid0IHNraXAgb3ZlciBkZXNjZW5kZXJzLgorCisgICAgICAg
ICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNr
aXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWNqay1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLmh0bWw6IEFkZGVkLgorCiAyMDE0
LTA1LTI3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgTGlzdHMgc3R5bGVkIHdpdGggU1ZHIGZvbnRzIGFyZSBub3QgcmVuZGVyZWQgYXMgZXhwZWN0
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3Jlc291cmNlcy9MaXRoZXJ1bS5zdmcgYi9MYXlv
dXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRp
b24tc2tpcC9yZXNvdXJjZXMvTGl0aGVydW0uc3ZnCmluZGV4IDk1NmI0ZTYxNTgzZDhiMjU4MzYz
YTQ0ZGQyZTA3NTc4NTNhMjUzODMuLmYxNzc5MmQ4MGIyNWY0OGVjM2FlYzU5MjZkYzRiNmFlMjE3
M2QyZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL3RleHQtZGVjb3JhdGlvbi1za2lwL3Jlc291cmNlcy9MaXRoZXJ1bS5zdmcKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1k
ZWNvcmF0aW9uLXNraXAvcmVzb3VyY2VzL0xpdGhlcnVtLnN2ZwpAQCAtNyw2ICs3LDE1IEBACiA8
Zm9udC1mYWNlIHVuaXRzLXBlci1lbT0iNTYiIGFzY2VudD0iNTYiIGRlc2NlbnQ9Ii0yOCIvPgog
PGdseXBoIHVuaWNvZGU9InwiIGhvcml6LWFkdi14PSI1NiIgZD0iTTIwIC0yOHY4NGgxNnYtODR6
Ii8+CiA8Z2x5cGggdW5pY29kZT0iXyIgaG9yaXotYWR2LXg9IjU2IiBkPSJNMSAtNXYxaDU0di0x
eiIvPgorPGdseXBoIHVuaWNvZGU9IumrlCIgaG9yaXotYWR2LXg9IjU2IiBkPSJNMjAgLTI4djg0
aDE2di04NHoiLz4KKzxnbHlwaCB1bmljb2RlPSLnj74iIGhvcml6LWFkdi14PSI1NiIgZD0iTTIw
IC0yOHY4NGgxNnYtODR6Ii8+Cis8Z2x5cGggdW5pY29kZT0i5rWqIiBob3Jpei1hZHYteD0iNTYi
IGQ9Ik0yMCAtMjh2ODRoMTZ2LTg0eiIvPgorPGdseXBoIHVuaWNvZGU9IuWkliIgaG9yaXotYWR2
LXg9IjU2IiBkPSJNMjAgLTI4djg0aDE2di04NHoiLz4KKzxnbHlwaCB1bmljb2RlPSLoo4UiIGhv
cml6LWFkdi14PSI1NiIgZD0iTTIwIC0yOHY4NGgxNnYtODR6Ii8+Cis8Z2x5cGggdW5pY29kZT0i
44GrIiBob3Jpei1hZHYteD0iNTYiIGQ9Ik0yMCAtMjh2ODRoMTZ2LTg0eiIvPgorPGdseXBoIHVu
aWNvZGU9IuydvCIgaG9yaXotYWR2LXg9IjU2IiBkPSJNMjAgLTI4djg0aDE2di04NHoiLz4KKzxn
bHlwaCB1bmljb2RlPSLshJwiIGhvcml6LWFkdi14PSI1NiIgZD0iTTIwIC0yOHY4NGgxNnYtODR6
Ii8+Cis8Z2x5cGggdW5pY29kZT0i6rO1IiBob3Jpei1hZHYteD0iNTYiIGQ9Ik0yMCAtMjh2ODRo
MTZ2LTg0eiIvPgogPC9mb250PgogPC9kZWZzPgogPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24t
c2tpcC90ZXh0LWRlY29yYXRpb24tc2tpcC1pbmstY2prLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWY5MTYyMjlmZWZlZTdlODg1NWExNjc4NDQ2N2E5ZDMzYjBiNGFjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3Rl
eHQtZGVjb3JhdGlvbi1za2lwL3RleHQtZGVjb3JhdGlvbi1za2lwLWluay1jamstZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZh
bWlseTogJ0xpdGhlcnVtJzsKKyAgICBzcmM6IHVybCgiLi9yZXNvdXJjZXMvTGl0aGVydW0uc3Zn
IikgZm9ybWF0KHN2ZykKK30KKzwvc3R5bGU+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CitUaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IHVuZGVybGluZXMgdW5kZXIgQ0pLIHRleHQgZG8gbm90IHNr
aXAgb3ZlciBsb3ctaGFuZ2luZyBjdXJ2ZXMgaW4gdGhlIGdseXBocy4KKzxkaXYgc3R5bGU9InRl
eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBu
b25lIj4KKzxwPumrlOePvua1qua8q+aEm+aDheimi+itieawuOaBhuaJv+irvui4oui1sOWMheWM
hemdoumdouaUtuavm+WtlOiqjeitmOS4lueVjOiRl+WQjeeRnuWjq+iFlemMtuWTgeeJjOe+jueZ
veaKl+iAgeacgOW8t+e1hOWQiOWNs+eci+aOqOS7izwvcD4KKzxwPuWkluijheOBq+ebrueri+OB
pOWCt+OBr+aEn+OBmOOCieOCjOOBvuOBm+OCk+OBjOOBguOBj+OBvuOBp+S4reWPpOWTgeOBp+OB
meOBruOBp+aWsOWTgeOBqOavlOOBueOCjOOBsOS9v+eUqOaEn+OBr+OBguOCi+OBqOaAneOBhOOB
vuOBmTwvcD4KKzxwPuydvOyEnOyauOyYrOumvO2UveqzteybkOyYrOumvO2Uve2ZgOyXkOyEnO2O
vOyzkOyngOuKlOydhO2Gte2VtOyLoOqzoeq3uOufsOuEiOulvOyyq+qzteqwnO2VoOyYiOygleyd
tOyWtOyEnOyDiOuhnOyatOydjOyVheycvOuhnOq0gOqwnTwvcD4KKzxkaXYgc3R5bGU9ImZvbnQt
ZmFtaWx5OiBMaXRoZXJ1bSI+Cis8cD7pq5Tnj77mtao8L3A+Cis8cD7lpJboo4Xjgas8L3A+Cis8
cD7snbzshJzqs7U8L3A+Cis8L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAv
dGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLWNqay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNv
cmF0aW9uLXNraXAtaW5rLWNqay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmYzkxNDkxNWVhNzk4OTMyZTM1
NWRlNTg4ODQ3ZDdjM2NlMzUxMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LWRlY29yYXRpb24tc2tpcC90ZXh0
LWRlY29yYXRpb24tc2tpcC1pbmstY2prLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPHN0eWxlPgor
QGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdMaXRoZXJ1bSc7CisgICAgc3JjOiB1cmwo
Ii4vcmVzb3VyY2VzL0xpdGhlcnVtLnN2ZyIpIGZvcm1hdChzdmcpCit9Cis8L3N0eWxlPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB1bmRlcmxpbmVz
IHVuZGVyIENKSyB0ZXh0IGRvIG5vdCBza2lwIG92ZXIgbG93LWhhbmdpbmcgY3VydmVzIGluIHRo
ZSBnbHlwaHMuCis8ZGl2IHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPgorPHA+
6auU54++5rWq5ryr5oSb5oOF6KaL6K2J5rC45oGG5om/6Ku+6Lii6LWw5YyF5YyF6Z2i6Z2i5pS2
5q+b5a2U6KqN6K2Y5LiW55WM6JGX5ZCN55Ge5aOr6IWV6Yy25ZOB54mM576O55m95oqX6ICB5pyA
5by357WE5ZCI5Y2z55yL5o6o5LuLPC9wPgorPHA+5aSW6KOF44Gr55uu56uL44Gk5YK344Gv5oSf
44GY44KJ44KM44G+44Gb44KT44GM44GC44GP44G+44Gn5Lit5Y+k5ZOB44Gn44GZ44Gu44Gn5paw
5ZOB44Go5q+U44G544KM44Gw5L2/55So5oSf44Gv44GC44KL44Go5oCd44GE44G+44GZPC9wPgor
PHA+7J287ISc7Jq47Jis66a87ZS96rO17JuQ7Jis66a87ZS97ZmA7JeQ7ISc7Y687LOQ7KeA64qU
7J2E7Ya17ZW07Iug6rOh6re465+w64SI66W87LKr6rO16rCc7ZWg7JiI7KCV7J207Ja07ISc7IOI
66Gc7Jq07J2M7JWF7Jy866Gc6rSA6rCdPC9wPgorPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IExp
dGhlcnVtIj4KKzxwPumrlOePvua1qjwvcD4KKzxwPuWkluijheOBqzwvcD4KKzxwPuydvOyEnOqz
tTwvcD4KKzwvZGl2PgorPC9kaXY+Cg==
</data>
<flag name="review"
          id="257011"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>