<?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>129372</bug_id>
          
          <creation_ts>2014-02-26 08:24:14 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Fix positioning grid items using named grid lines/areas</short_desc>
          <delta_ts>2014-02-28 10:31:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mihnea</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984743</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-26 08:24:14 -0800</bug_when>
    <thetext>Currently our code assumes that a &lt;custom-ident&gt; in -webkit-grid-{column|row}-{start|end} and -webkit-grid-{column|row} is always a grid area. That&apos;s wrong because the &lt;custom-ident&gt; could be also a explicitly named grid line.

Our resolution code is not correct either. The specs mandates us to:
    * first we try to match any existing grid area.
    * if there is a named grid line with the name &lt;custom-ident&gt;-{start|end} for -webkit-grid-{column|row}-{start|end} defined before the grid area then we use it instead of the grid area.
    * otherwise if there is a named grid line we resolve to the first such line.
    * otherwise we treat it as &apos;auto&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985196</commentid>
    <comment_count>1</comment_count>
      <attachid>225376</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-27 09:12:23 -0800</bug_when>
    <thetext>Created attachment 225376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985297</commentid>
    <comment_count>2</comment_count>
      <attachid>225376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-27 12:13:32 -0800</bug_when>
    <thetext>Comment on attachment 225376
Patch

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

review- because of the GridPosition object storage management issues

&gt; Source/WebCore/css/StyleResolver.cpp:1402
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return false;

It’s much better to remove the default case and put the ASSERT_NOT_REACHED after the switch statement. That way some compilers (clang and gcc at least) can warn fi we add a new enum value and forgot to include it in the switch statement.

&gt; Source/WebCore/css/StyleResolver.cpp:1406
&gt; +GridPosition* StyleResolver::adjustNamedGridItemPosition(const NamedGridAreaMap&amp; gridAreaMap, const NamedGridLinesMap&amp; namedLinesMap, const GridPosition&amp; position, GridPositionSide side) const

This return value should be std::unique_ptr, not a raw pointer. Or maybe we should return a GridPosition rather than a pointer to one.

&gt; Source/WebCore/css/StyleResolver.cpp:1411
&gt; +    GridPosition* adjustedPosition = nullptr;

This local variable should be std::unique_ptr, not a raw pointer.

&gt; Source/WebCore/css/StyleResolver.cpp:1419
&gt; +    String namedGridAreaOrGridLine = position.namedGridLine();
&gt; +    const bool hasStartSuffix = namedGridAreaOrGridLine.endsWith(&quot;-start&quot;);
&gt; +    const bool hasEndSuffix = namedGridAreaOrGridLine.endsWith(&quot;-end&quot;);
&gt; +    const bool isStartSide = side == ColumnStartSide || side == RowStartSide;
&gt; +    const bool hasStartSuffixForStartSide = hasStartSuffix &amp;&amp; isStartSide;
&gt; +    const bool hasEndSuffixForEndSide = hasEndSuffix &amp;&amp; !isStartSide;
&gt; +    const size_t suffixLength = hasStartSuffix ? strlen(&quot;-start&quot;) : strlen(&quot;-end&quot;);

I’m not sure I understand the use of const here. Why mark all the bools and the size_t const, but not the String? I suggest omitting all of these const.

&gt; Source/WebCore/css/StyleResolver.cpp:1433
&gt; +            adjustedPosition = new GridPosition();

This should be using std::make_unique. Also, I suggest allocating the GridPosition object outside the if statements, since we always allocate one in every code path.

&gt; Source/WebCore/css/StyleResolver.cpp:1485
&gt; +        GridPosition* adjustedPosition = adjustNamedGridItemPosition(gridAreaMap, namedGridLines, position, side); \
&gt; +        if (adjustedPosition)                                           \
&gt; +            style.setGridItem##Prop(*adjustedPosition);                 \

It looks to me like there is a storage leak here. adjustNamedGridItemPosition returns a newly allocated grid position, and we never deallocate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985511</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 02:03:14 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 225376 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225376&amp;action=review
&gt; 
&gt; review- because of the GridPosition object storage management issues

Yeah I had that patch with OwnPtr/PassOwnPtr stuff but don&apos;t know how I uploaded the one with raw pointers. Anyway I would update it to a more C++11 version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985527</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 03:33:34 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 225376 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225376&amp;action=review

&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1406
&gt; &gt; +GridPosition* StyleResolver::adjustNamedGridItemPosition(const NamedGridAreaMap&amp; gridAreaMap, const NamedGridLinesMap&amp; namedLinesMap, const GridPosition&amp; position, GridPositionSide side) const
&gt; 
&gt; This return value should be std::unique_ptr, not a raw pointer. Or maybe we should return a GridPosition rather than a pointer to one.

The reason why I&apos;m returning a pointer is because sometimes I want to return the nullptr, which means that the position shouldn&apos;t be adjusted as it&apos;s correct as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985560</commentid>
    <comment_count>5</comment_count>
      <attachid>225376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-28 07:55:00 -0800</bug_when>
    <thetext>Comment on attachment 225376
Patch

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

&gt;&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1406
&gt;&gt;&gt; +GridPosition* StyleResolver::adjustNamedGridItemPosition(const NamedGridAreaMap&amp; gridAreaMap, const NamedGridLinesMap&amp; namedLinesMap, const GridPosition&amp; position, GridPositionSide side) const
&gt;&gt; 
&gt;&gt; This return value should be std::unique_ptr, not a raw pointer. Or maybe we should return a GridPosition rather than a pointer to one.
&gt; 
&gt; The reason why I&apos;m returning a pointer is because sometimes I want to return the nullptr, which means that the position shouldn&apos;t be adjusted as it&apos;s correct as it is.

That’s what I thought when I originally saw the function, but I looked carefully at the implementation you posted in this patch, and it never returns a nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985563</commentid>
    <comment_count>6</comment_count>
      <attachid>225376</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 08:12:56 -0800</bug_when>
    <thetext>Comment on attachment 225376
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1441
&gt; +        return adjustedPosition;

So this is the point were we precisely return nullptr. If none of the conditions above is true (neither the if nor the else) then adjustedPosition is left unchanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985566</commentid>
    <comment_count>7</comment_count>
      <attachid>225466</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 08:16:09 -0800</bug_when>
    <thetext>Created attachment 225466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985595</commentid>
    <comment_count>8</comment_count>
      <attachid>225376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-28 09:31:33 -0800</bug_when>
    <thetext>Comment on attachment 225376
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1441
&gt;&gt; +        return adjustedPosition;
&gt; 
&gt; So this is the point were we precisely return nullptr. If none of the conditions above is true (neither the if nor the else) then adjustedPosition is left unchanged.

I see. I misread the code above as &quot;else&quot; rather than else if.

This code would be much clearer without the adjustedPosition local variable. All these various branches should end in return statements for clarity. Then this code would say return nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985603</commentid>
    <comment_count>9</comment_count>
      <attachid>225466</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-28 09:39:43 -0800</bug_when>
    <thetext>Comment on attachment 225466
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1411
&gt; +    std::unique_ptr&lt;GridPosition&gt; adjustedPosition;

Code would read clearer if the unique_ptr for position was local to each clause and return statement. Having a shared one declared up here makes the code hard to read for no good reason.

&gt; Source/WebCore/css/StyleResolver.cpp:1430
&gt; +        StringBuilder gridLineNameBuilder;
&gt; +        gridLineNameBuilder.append(namedGridAreaOrGridLine);
&gt; +        if (isStartSide &amp;&amp; !hasStartSuffix)
&gt; +            gridLineNameBuilder.append(&quot;-start&quot;);
&gt; +        else if (!isStartSide &amp;&amp; !hasEndSuffix)
&gt; +            gridLineNameBuilder.append(&quot;-end&quot;);
&gt; +
&gt; +        String gridLineName = gridLineNameBuilder.toString();

A StringBuilder is not helpful for a single append that we then convert back to a string. This code would be more direct and also more efficient:

    String gridLineName;
    if (isStartSide &amp;&amp; !hasStartSuffix)
        gridLineName = namedGridAreaOrGridLine + &quot;-start&quot;;
    else if (!isStartSide &amp;&amp; !hasEndSuffix)
        gridLineName = namedGridAreaOrGridLine + &quot;-end&quot;;
    else
        gridLineName = namedGridAreaOrGridLine;

And this idiom would be efficient if we added an overload of String::append for const char*; but without one it would do an extra string allocation (sadly):

    String gridLineName = namedGridAreaOrGridLine;
    if (isStartSide &amp;&amp; !hasStartSuffix)
        gridLineName.append(&quot;-start&quot;);
    else if (!isStartSide &amp;&amp; !hasEndSuffix)
        gridLineName.append(&quot;-end&quot;);

If we did stick with StringBuilder I would suggest appendLiteral instead of append.

&gt; Source/WebCore/css/StyleResolver.cpp:1434
&gt; +            adjustedPosition = std::make_unique&lt;GridPosition&gt;();
&gt; +            adjustedPosition-&gt;setExplicitPosition(1, gridLineName);

So here it would say:

    auto adjustedPosition = std::make_unique&lt;GridPosition&gt;();
    adjustedPosition-&gt;setExplicitPosition(1, gridLineName);
    return adjustedPosition;

&gt; Source/WebCore/css/StyleResolver.cpp:1438
&gt; +            adjustedPosition = std::make_unique&lt;GridPosition&gt;();
&gt; +            adjustedPosition-&gt;setNamedGridArea(gridAreaName);

Here it would say:

    auto adjustedPosition = std::make_unique&lt;GridPosition&gt;();
    adjustedPosition-&gt;setNamedGridArea(gridAreaName);
    return adjustedPosition;

&gt; Source/WebCore/css/StyleResolver.cpp:1441
&gt; +        return adjustedPosition;

Here it would say:

    return nullptr;

&gt; Source/WebCore/css/StyleResolver.cpp:1447
&gt; +        adjustedPosition = std::make_unique&lt;GridPosition&gt;();
&gt; +        adjustedPosition-&gt;setExplicitPosition(1, namedGridAreaOrGridLine);
&gt; +        return adjustedPosition;

Here it would say:

    auto adjustedPosition = std::make_unique&lt;GridPosition&gt;();
    adjustedPosition-&gt;setExplicitPosition(1, gridLineName);
    return adjustedPosition;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985627</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 10:29:24 -0800</bug_when>
    <thetext>Committed r164869: &lt;http://trac.webkit.org/changeset/164869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985632</commentid>
    <comment_count>11</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-28 10:31:43 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 225466 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225466&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1411
&gt; &gt; +    std::unique_ptr&lt;GridPosition&gt; adjustedPosition;
&gt; 
&gt; Code would read clearer if the unique_ptr for position was local to each clause and return statement. Having a shared one declared up here makes the code hard to read for no good reason.
&gt; 

Yeah very nice suggestion. I finally applied it and converted the if-else in two ifs as they&apos;re both returning.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225376</attachid>
            <date>2014-02-27 09:12:23 -0800</date>
            <delta_ts>2014-02-28 09:31:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129372-20140227181219.patch</filename>
            <type>text/plain</type>
            <size>46478</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAxZDEzYzhkMDRiODU3
ODMzYzRjZGRjODY2NTAwZTkyN2E5YWZkMS4uOGQ3NzllMjAzYmZlMmNlMmFlOTVmNzRkNzkxNjE5
ZTAwMjJjNTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTAyLTI3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEZpeCBwb3NpdGlvbmluZyBncmlkIGl0ZW1zIHVzaW5nIG5hbWVkIGdyaWQgbGlu
ZXMvYXJlYXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTM3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE91ciBjb2RlIHdhcyBhc3N1bWluZyB0aGF0IGEgPGN1c3RvbS1pZGVudD4gaW4KKyAgICAgICAg
LXdlYmtpdC1ncmlkLXtjb2x1bW58cm93fS17c3RhcnR8ZW5kfSBhbmQKKyAgICAgICAgLXdlYmtp
dC1ncmlkLXtjb2x1bW58cm93fSB3YXMgYWx3YXlzIGEgZ3JpZCBhcmVhIG5hbWUuIFRoYXQncwor
ICAgICAgICB3cm9uZyBiZWNhdXNlIHRoZSA8Y3VzdG9tLWlkZW50PiBjb3VsZCBiZSBhbHNvIGEg
ZXhwbGljaXRseSBuYW1lZAorICAgICAgICBncmlkIGxpbmUgb3IgdGhlIGFuIGltcGxpY2l0bHkg
bmFtZWQgZ3JpZCBsaW5lIGNyZWF0ZWQgYnkgYSBncmlkCisgICAgICAgIGFyZWEgZGVmaW5pdGlv
bi4KKworICAgICAgICBUaGUgc3R5bGUgcmVzb2x1dGlvbiBjb2RlIHdhcyBub3QgY29ycmVjdCBl
aXRoZXIuIFRoaXMgcGF0Y2ggZml4ZXMKKyAgICAgICAgaXQgc28gaXQgbm93IG1hdGNoZXMgdGhl
IHNwZWMsIHdoaWNoIG1lYW5zIHRoYXQ6CisgICAgICAgIC0gZmlyc3Qgd2UgdHJ5IHRvIG1hdGNo
IGFueSBleGlzdGluZyBncmlkIGFyZWEuCisgICAgICAgIC0gdGhlbiBpZiB0aGVyZSBpcyBhIG5h
bWVkIGdyaWQgbGluZSB3aXRoIHRoZSBuYW1lCisgICAgICAgIDxjdXN0b20taWRlbnQ+LXtzdGFy
dHxlbmR9IGZvciAtd2Via2l0LWdyaWQte2NvbHVtbnxyb3d9LXtzdGFydHxlbmR9CisgICAgICAg
IGRlZmluZWQgYmVmb3JlIHRoZSBncmlkIGFyZWEgdGhlbiB3ZSB1c2UgaXQgaW5zdGVhZCBvZiB0
aGUgZ3JpZAorICAgICAgICBhcmVhLgorICAgICAgICAtIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBh
IG5hbWVkIGdyaWQgbGluZSB3ZSByZXNvbHZlIHRvIHRoZSBmaXJzdCBzdWNoIGxpbmUuCisgICAg
ICAgIC0gb3RoZXJ3aXNlIHdlIHRyZWF0IGl0IGFzICdhdXRvJy4KKworICAgICAgICBGaXhpbmcg
dGhpcyB1bmNvdmVyZWQgYSBidWcgaW4gR3JpZFBvc2l0aW9uLCB3ZSB3ZXJlIG5vdCB1c2luZyB0
aGUKKyAgICAgICAgbmFtZSBvZiB0aGUgc3RvcmVkIGdyaWQgYXJlYSB0byBjaGVjayBpZiB0d28g
R3JpZFBvc2l0aW9ucyB3ZXJlCisgICAgICAgIHRoZSBzYW1lLgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMt
d2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3JpZExpbmVEZWZpbmVkQmVmb3Jl
R3JpZEFyZWEpOiBOZXcgZnVuY3Rpb24gdG8gY2hlY2sgaWYKKyAgICAgICAgYSBnaXZlbiBuYW1l
ZCBncmlkIGxpbmUgd2FzIGRlZmluZWQgYmVmb3JlIGFuIGltcGxpY2l0IG5hbWVkIGdyaWQKKyAg
ICAgICAgbGluZSBjcmVhdGVkIGJ5IGEgZ3JpZCBhcmVhIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24pOiBOZXcK
KyAgICAgICAgZnVuY3Rpb24gdGhhdCBhZGp1c3RzIHRoZSBwb3NpdGlvbiBvZiBhIEdyaWRQb3Np
dGlvbiBwYXJzZWQgYXMgYQorICAgICAgICBncmlkIGFyZWEuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjphZGp1c3RHcmlkSXRlbVBvc2l0aW9uKTogVXNlIHRoZSBuZXcKKyAgICAg
ICAgZnVuY3Rpb24gYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uIHRvIGFkanVzdCB0aGUgcG9z
aXRpb25zIG9mCisgICAgICAgIG5hbWVkIGdyaWQgbGluZXMuCisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0
eWxlKTogVXNlIEdyaWRQb3NpdGlvbjo6IG5hbWVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JSb3dFbmRDb2x1bW5FbmRTaWRlKTogTW92ZWQgZnJvbSBSZW5kZXJHcmlkLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjpvcGVyYXRvcj09KTogVXNlIHRo
ZSBuYW1lZCBncmlkIGxpbmUgdG8gY2hlY2sgZXF1YWxpdHkuCisKIDIwMTQtMDItMjUgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlk
IExheW91dF0gQWRkIEVOQUJMRSBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggMzMxMmYyN2FjZjdmOGRiYTZhN2ZkMTg3NGU4MzM5MzdjMzVmNWE1Ny4uOWMwYzM2N2I2
Mjc3ZTA0MzhiM2NiYmI3ZWU3NWE0MDhmYmZmODUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcApAQCAtOSw2ICs5LDcgQEAKICAqIENvcHlyaWdodCAoYykgMjAxMSwgQ29kZSBB
dXJvcmEgRm9ydW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzYsNiAr
MTM3LDcgQEAKICNpbmNsdWRlIDxiaXRzZXQ+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0
aW9uLmgiCkBAIC0xMzc1LDYgKzEzNzcsNzkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RS
ZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXIKIH0K
IAogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCitzdGF0aWMgaW5saW5lIGJvb2wgZ3JpZExp
bmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEoY29uc3QgU3RyaW5nJiBncmlkTGluZU5hbWUsIGNvbnN0
IFN0cmluZyYgZ3JpZEFyZWFOYW1lLCBjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1h
cCwgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNNYXAsIEdyaWRQb3NpdGlvblNp
ZGUgc2lkZSkKK3sKKyAgICBBU1NFUlQobmFtZWRMaW5lc01hcC5jb250YWlucyhncmlkTGluZU5h
bWUpKTsKKyAgICAvLyBHcmlkIGxpbmUgaW5kZXhlcyBhcmUgaW5zZXJ0ZWQgaW4gb3JkZXIuCisg
ICAgc2l6ZV90IG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPSBHcmlkUG9zaXRpb246OmFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUobmFtZWRMaW5lc01hcC5nZXQoZ3JpZExpbmVOYW1lKVsw
XSwgc2lkZSk7CisKKyAgICBBU1NFUlQoZ3JpZEFyZWFNYXAuY29udGFpbnMoZ3JpZEFyZWFOYW1l
KSk7CisgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRpbmF0ZXMgPSBncmlk
QXJlYU1hcC5nZXQoZ3JpZEFyZWFOYW1lKTsKKworICAgIC8vIEdyaWRDb29yZGluYXRlIHJlZmVy
cyB0byB0cmFja3Mgd2hpbGUgdGhlIGluZGV4ZXMgaW4gbmFtZWRMaW5lc01hcCByZWZlciB0byBs
aW5lcywgdGhhdCdzIHdoeSB3ZSBuZWVkIHRvIGFkZCAxIHRvCisgICAgLy8gdGhlIGdyaWQgY29v
cmRpbmF0ZSB0byBnZXQgdGhlIGVuZCBsaW5lIGluZGV4LgorICAgIHN3aXRjaCAoc2lkZSkgewor
ICAgIGNhc2UgQ29sdW1uU3RhcnRTaWRlOgorICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZp
cnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMuY29sdW1ucy5pbml0aWFsUG9zaXRp
b25JbmRleDsKKyAgICBjYXNlIENvbHVtbkVuZFNpZGU6CisgICAgICAgIHJldHVybiBuYW1lZEdy
aWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLmZpbmFs
UG9zaXRpb25JbmRleDsKKyAgICBjYXNlIFJvd1N0YXJ0U2lkZToKKyAgICAgICAgcmV0dXJuIG5h
bWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MuaW5p
dGlhbFBvc2l0aW9uSW5kZXg7CisgICAgY2FzZSBSb3dFbmRTaWRlOgorICAgICAgICByZXR1cm4g
bmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMucm93cy5m
aW5hbFBvc2l0aW9uSW5kZXg7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK0dyaWRQb3NpdGlvbiog
U3R5bGVSZXNvbHZlcjo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGNvbnN0IE5hbWVkR3Jp
ZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5l
c01hcCwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRl
KSBjb25zdAoreworICAgIEFTU0VSVChwb3NpdGlvbi5pc05hbWVkR3JpZEFyZWEoKSk7CisgICAg
Ly8gVGhlIFN0eWxlQnVpbGRlciBhbHdheXMgdHJlYXRzIDxjdXN0b20taWRlbnQ+IGFzIGEgbmFt
ZWQgZ3JpZCBhcmVhLiBXZSBtdXN0IGRlY2lkZSBoZXJlIGlmIHRoZXkgYXJlIGdvaW5nIHRvIGJl
CisgICAgLy8gcmVzb2x2ZWQgdG8gZWl0aGVyIGEgZ3JpZCBhcmVhIG9yIGEgZ3JpZCBsaW5lLgor
ICAgIEdyaWRQb3NpdGlvbiogYWRqdXN0ZWRQb3NpdGlvbiA9IG51bGxwdHI7CisKKyAgICBTdHJp
bmcgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUgPSBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCk7Cisg
ICAgY29uc3QgYm9vbCBoYXNTdGFydFN1ZmZpeCA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmVu
ZHNXaXRoKCItc3RhcnQiKTsKKyAgICBjb25zdCBib29sIGhhc0VuZFN1ZmZpeCA9IG5hbWVkR3Jp
ZEFyZWFPckdyaWRMaW5lLmVuZHNXaXRoKCItZW5kIik7CisgICAgY29uc3QgYm9vbCBpc1N0YXJ0
U2lkZSA9IHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRlOwor
ICAgIGNvbnN0IGJvb2wgaGFzU3RhcnRTdWZmaXhGb3JTdGFydFNpZGUgPSBoYXNTdGFydFN1ZmZp
eCAmJiBpc1N0YXJ0U2lkZTsKKyAgICBjb25zdCBib29sIGhhc0VuZFN1ZmZpeEZvckVuZFNpZGUg
PSBoYXNFbmRTdWZmaXggJiYgIWlzU3RhcnRTaWRlOworICAgIGNvbnN0IHNpemVfdCBzdWZmaXhM
ZW5ndGggPSBoYXNTdGFydFN1ZmZpeCA/IHN0cmxlbigiLXN0YXJ0IikgOiBzdHJsZW4oIi1lbmQi
KTsKKyAgICBTdHJpbmcgZ3JpZEFyZWFOYW1lID0gaGFzU3RhcnRTdWZmaXhGb3JTdGFydFNpZGUg
fHwgaGFzRW5kU3VmZml4Rm9yRW5kU2lkZSA/IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLnN1YnN0
cmluZygwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5sZW5ndGgoKSAtIHN1ZmZpeExlbmd0aCkg
OiBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZTsKKworICAgIGlmIChncmlkQXJlYU1hcC5jb250YWlu
cyhncmlkQXJlYU5hbWUpKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgZ3JpZExpbmVOYW1lQnVp
bGRlcjsKKyAgICAgICAgZ3JpZExpbmVOYW1lQnVpbGRlci5hcHBlbmQobmFtZWRHcmlkQXJlYU9y
R3JpZExpbmUpOworICAgICAgICBpZiAoaXNTdGFydFNpZGUgJiYgIWhhc1N0YXJ0U3VmZml4KQor
ICAgICAgICAgICAgZ3JpZExpbmVOYW1lQnVpbGRlci5hcHBlbmQoIi1zdGFydCIpOworICAgICAg
ICBlbHNlIGlmICghaXNTdGFydFNpZGUgJiYgIWhhc0VuZFN1ZmZpeCkKKyAgICAgICAgICAgIGdy
aWRMaW5lTmFtZUJ1aWxkZXIuYXBwZW5kKCItZW5kIik7CisKKyAgICAgICAgU3RyaW5nIGdyaWRM
aW5lTmFtZSA9IGdyaWRMaW5lTmFtZUJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKG5h
bWVkTGluZXNNYXAuY29udGFpbnMoZ3JpZExpbmVOYW1lKSAmJiBncmlkTGluZURlZmluZWRCZWZv
cmVHcmlkQXJlYShncmlkTGluZU5hbWUsIGdyaWRBcmVhTmFtZSwgZ3JpZEFyZWFNYXAsIG5hbWVk
TGluZXNNYXAsIHNpZGUpKSB7CisgICAgICAgICAgICAvLyBVc2UgdGhlIGV4cGxpY2l0bHkgZGVm
aW5lZCBncmlkIGxpbmUgZGVmaW5lZCBiZWZvcmUgdGhlIGdyaWQgYXJlYSBpbnN0ZWFkIG9mIHRo
ZSBncmlkIGFyZWEuCisgICAgICAgICAgICBhZGp1c3RlZFBvc2l0aW9uID0gbmV3IEdyaWRQb3Np
dGlvbigpOworICAgICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbi0+c2V0RXhwbGljaXRQb3NpdGlv
bigxLCBncmlkTGluZU5hbWUpOworICAgICAgICB9IGVsc2UgaWYgKGhhc1N0YXJ0U3VmZml4Rm9y
U3RhcnRTaWRlIHx8IGhhc0VuZFN1ZmZpeEZvckVuZFNpZGUpIHsKKyAgICAgICAgICAgIC8vIFJl
bmRlcmVyIGV4cGVjdHMgdGhlIGdyaWQgYXJlYSBuYW1lIGluc3RlYWQgb2YgdGhlIGltcGxpY2l0
IGdyaWQgbGluZSBuYW1lLgorICAgICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbiA9IG5ldyBHcmlk
UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGFkanVzdGVkUG9zaXRpb24tPnNldE5hbWVkR3JpZEFy
ZWEoZ3JpZEFyZWFOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhZGp1c3RlZFBv
c2l0aW9uOworICAgIH0KKworICAgIGlmIChuYW1lZExpbmVzTWFwLmNvbnRhaW5zKG5hbWVkR3Jp
ZEFyZWFPckdyaWRMaW5lKSkgeworICAgICAgICBhZGp1c3RlZFBvc2l0aW9uID0gbmV3IEdyaWRQ
b3NpdGlvbigpOworICAgICAgICBhZGp1c3RlZFBvc2l0aW9uLT5zZXRFeHBsaWNpdFBvc2l0aW9u
KDEsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKTsKKyAgICAgICAgcmV0dXJuIGFkanVzdGVkUG9z
aXRpb247CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBHcmlkUG9zaXRpb24oKTsKK30KKwogdm9p
ZCBTdHlsZVJlc29sdmVyOjphZGp1c3RHcmlkSXRlbVBvc2l0aW9uKFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlKSBjb25zdAogewogICAgIGNvbnN0IEdy
aWRQb3NpdGlvbiYgY29sdW1uU3RhcnRQb3NpdGlvbiA9IHN0eWxlLmdyaWRJdGVtQ29sdW1uU3Rh
cnQoKTsKQEAgLTEzOTMsMTcgKzE0NjgsMjcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RH
cmlkSXRlbVBvc2l0aW9uKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUKICAg
ICAgICAgc3R5bGUuc2V0R3JpZEl0ZW1Sb3dFbmQoR3JpZFBvc2l0aW9uKCkpOwogICAgIH0KIAot
ICAgIC8vIFVua25vd24gbmFtZWQgZ3JpZCBhcmVhIGNvbXB1dGUgdG8gJ2F1dG8nLgotICAgIGNv
bnN0IE5hbWVkR3JpZEFyZWFNYXAmIG1hcCA9IHBhcmVudFN0eWxlLm5hbWVkR3JpZEFyZWEoKTsK
KyAgICAvLyBJZiB0aGUgZ3JpZCBwb3NpdGlvbiBpcyBhIHNpbmdsZSA8Y3VzdG9tLWlkZW50PiB0
aGVuIHRoZSBzcGVjIG1hbmRhdGVzIHVzIHRvIHJlc29sdmUgaXQgZm9sbG93aW5nIHRoaXMgc3Rl
cHM6CisgICAgLy8gICAgICogSWYgdGhlcmUgaXMgYSBuYW1lZCBncmlkIGFyZWEgY2FsbGVkIDxj
dXN0b20taWRlbnQ+IHJlc29sdmUgdGhlIHBvc2l0aW9uIHRvIHRoZSBhcmVhJ3MgY29ycmVzcG9u
ZGluZyBlZGdlLgorICAgIC8vICAgICAgICAgKiBJZiBhIGdyaWQgYXJlYSB3YXMgZm91bmQgd2l0
aCB0aGF0IG5hbWUsIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gPGN1c3RvbS1pZGVudD4tc3RhcnQg
b3IgPGN1c3RvbS1pZGVudD4tZW5kIChkZXBlbmRpbmcKKyAgICAvLyBvbiB0aGUgY3NzIHByb3Bl
cnR5IGJlaW5nIGRlZmluZWQpIHNwZWNpZmllZCBiZWZvcmUgdGhlIGdyaWQgYXJlYS4gSWYgdGhh
dCdzIHRoZSBjYXNlIHJlc29sdmUgdG8gdGhhdCBncmlkIGxpbmUuCisgICAgLy8gICAgICogT3Ro
ZXJ3aXNlIGNoZWNrIGlmIHRoZXJlIGlzIGEgZ3JpZCBsaW5lIG5hbWVkIDxjdXN0b20taWRlbnQ+
LgorICAgIC8vICAgICAqIE90aGVyd2lzZSB0cmVhdCBpdCBhcyBhdXRvLgorICAgIGNvbnN0IE5h
bWVkR3JpZExpbmVzTWFwJiBuYW1lZEdyaWRDb2x1bW5MaW5lcyA9IHBhcmVudFN0eWxlLm5hbWVk
R3JpZENvbHVtbkxpbmVzKCk7CisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3Jp
ZFJvd0xpbmVzID0gcGFyZW50U3R5bGUubmFtZWRHcmlkUm93TGluZXMoKTsKKyAgICBjb25zdCBO
YW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1hcCA9IHBhcmVudFN0eWxlLm5hbWVkR3JpZEFyZWEo
KTsKIAotI2RlZmluZSBDTEVBUl9VTktOT1dOX05BTUVEX0FSRUEocHJvcCwgUHJvcCkgXAotICAg
IGlmIChwcm9wLmlzTmFtZWRHcmlkQXJlYSgpICYmICFtYXAuY29udGFpbnMocHJvcC5uYW1lZEdy
aWRMaW5lKCkpKSBcCi0gICAgICAgIHN0eWxlLnNldEdyaWRJdGVtIyNQcm9wKEdyaWRQb3NpdGlv
bigpKTsKKyNkZWZpbmUgQURKVVNUX0dSSURfUE9TSVRJT05fTUFZQkUocG9zaXRpb24sIFByb3As
IG5hbWVkR3JpZExpbmVzLCBzaWRlKSBcCisgICAgaWYgKHBvc2l0aW9uLmlzTmFtZWRHcmlkQXJl
YSgpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEdyaWRQ
b3NpdGlvbiogYWRqdXN0ZWRQb3NpdGlvbiA9IGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihn
cmlkQXJlYU1hcCwgbmFtZWRHcmlkTGluZXMsIHBvc2l0aW9uLCBzaWRlKTsgXAorICAgICAgICBp
ZiAoYWRqdXN0ZWRQb3NpdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICAgICAgc3R5bGUuc2V0R3JpZEl0ZW0jI1Byb3AoKmFkanVzdGVkUG9z
aXRpb24pOyAgICAgICAgICAgICAgICAgXAorICAgIH0KIAotICAgIENMRUFSX1VOS05PV05fTkFN
RURfQVJFQShjb2x1bW5TdGFydFBvc2l0aW9uLCBDb2x1bW5TdGFydCk7Ci0gICAgQ0xFQVJfVU5L
Tk9XTl9OQU1FRF9BUkVBKGNvbHVtbkVuZFBvc2l0aW9uLCBDb2x1bW5FbmQpOwotICAgIENMRUFS
X1VOS05PV05fTkFNRURfQVJFQShyb3dTdGFydFBvc2l0aW9uLCBSb3dTdGFydCk7Ci0gICAgQ0xF
QVJfVU5LTk9XTl9OQU1FRF9BUkVBKHJvd0VuZFBvc2l0aW9uLCBSb3dFbmQpOworICAgIEFESlVT
VF9HUklEX1BPU0lUSU9OX01BWUJFKGNvbHVtblN0YXJ0UG9zaXRpb24sIENvbHVtblN0YXJ0LCBu
YW1lZEdyaWRDb2x1bW5MaW5lcywgQ29sdW1uU3RhcnRTaWRlKTsKKyAgICBBREpVU1RfR1JJRF9Q
T1NJVElPTl9NQVlCRShjb2x1bW5FbmRQb3NpdGlvbiwgQ29sdW1uRW5kLCBuYW1lZEdyaWRDb2x1
bW5MaW5lcywgQ29sdW1uRW5kU2lkZSk7CisgICAgQURKVVNUX0dSSURfUE9TSVRJT05fTUFZQkUo
cm93U3RhcnRQb3NpdGlvbiwgUm93U3RhcnQsIG5hbWVkR3JpZFJvd0xpbmVzLCBSb3dTdGFydFNp
ZGUpOworICAgIEFESlVTVF9HUklEX1BPU0lUSU9OX01BWUJFKHJvd0VuZFBvc2l0aW9uLCBSb3dF
bmQsIG5hbWVkR3JpZFJvd0xpbmVzLCBSb3dFbmRTaWRlKTsKIH0KICNlbmRpZiAvKiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKSAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBh
YjdkZTQzYzc3NTc2NDQwMjRhMzUxMDE5ZWNkODA0ZjVmYzI5YzNhLi4yNWE4YTg0M2ZmOGY4Y2Nh
OWExY2Q1MmMzNWNmN2FmNWJjMDU3YTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
QEAgLTI5Niw2ICsyOTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlVG9BZGp1c3QsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHls
ZSwgRWxlbWVudCopOwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgdm9pZCBhZGp1
c3RHcmlkSXRlbVBvc2l0aW9uKFJlbmRlclN0eWxlJiBzdHlsZVRvQWRqdXN0LCBjb25zdCBSZW5k
ZXJTdHlsZSYgcGFyZW50U3R5bGUpIGNvbnN0OworICAgIEdyaWRQb3NpdGlvbiogYWRqdXN0TmFt
ZWRHcmlkSXRlbVBvc2l0aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmLCBjb25zdCBOYW1lZEdy
aWRMaW5lc01hcCYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0
OwogI2VuZGlmCiAKICAgICBib29sIGZhc3RSZWplY3RTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGZjYWZl
MDRjYzljOWI4NzRjNDE5MWM3N2U5YmUwNzA4MGIxZWQ3YWMuLjgyNzcxNzk4ZjU1MDg3ZjY0YzAz
ZmE2NWU3ZjFlMjA2YjBiNzEyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKQEAgLTg5MywyMCArODkzLDYgQEAgUGFzc093blB0cjxHcmlkU3Bhbj4gUmVuZGVyR3Jp
ZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94KgogICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgR3JpZFNwYW4ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIHJlc29s
dmVkRmluYWxQb3NpdGlvbikpOwogfQogCi1pbmxpbmUgc3RhdGljIHNpemVfdCBhZGp1c3RHcmlk
UG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uKQot
ewotICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uID8gcmVzb2x2ZWRQb3NpdGlvbiAtIDEgOiAw
OwotfQotCi1zdGF0aWMgc2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoc2l6ZV90IHJl
c29sdmVkUG9zaXRpb24sIFJlbmRlckdyaWQ6OkdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAg
ICAvLyBBbiBpdGVtIGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4t
MS10aCBjZWxsLgotICAgIGlmIChzaWRlID09IFJlbmRlckdyaWQ6OkNvbHVtbkVuZFNpZGUgfHwg
c2lkZSA9PSBSZW5kZXJHcmlkOjpSb3dFbmRTaWRlKQotICAgICAgICByZXR1cm4gYWRqdXN0R3Jp
ZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShyZXNvbHZlZFBvc2l0aW9uKTsKLQotICAg
IHJldHVybiByZXNvbHZlZFBvc2l0aW9uOwotfQotCiBzaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2
ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0
aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwpAQCAtOTE3LDcgKzkwMyw3IEBAIHNpemVfdCBS
ZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zCiAgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgY29uc3Qgc2l6ZV90IGxhc3RMaW5lID0gZXhwbGlj
aXRHcmlkU2l6ZUZvclNpZGUoc2lkZSk7Ci0gICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRp
b25Gb3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsKKyAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6
YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShsYXN0TGluZSwgc2lkZSk7CiAgICAgfQogCiAgICAg
c2l6ZV90IG5hbWVkR3JpZExpbmVJbmRleDsKQEAgLTkyNSw3ICs5MTEsNyBAQCBzaXplX3QgUmVu
ZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlk
UG9zaXRpb24mIHBvcwogICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbjxzaXpl
X3Q+KHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpLCBpdC0+dmFsdWUuc2l6ZSgpKSAtIDE7CiAg
ICAgZWxzZQogICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KGl0LT52
YWx1ZS5zaXplKCkgLSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpLCAwKTsKLSAgICBy
ZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpdC0+dmFsdWVbbmFtZWRHcmlkTGluZUlu
ZGV4XSwgc2lkZSk7CisgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9u
Rm9yU2lkZShpdC0+dmFsdWVbbmFtZWRHcmlkTGluZUluZGV4XSwgc2lkZSk7CiB9CiAKIHNpemVf
dCBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKQEAgLTkzOSw3ICs5
MjUsNyBAQCBzaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcgogCiAgICAgICAgIC8vIEhhbmRsZSA8aW50
ZWdlcj4gZXhwbGljaXQgcG9zaXRpb24uCiAgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZl
KCkpCi0gICAgICAgICAgICByZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShwb3NpdGlv
bi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUpOworICAgICAgICAgICAgcmV0dXJuIEdyaWRQ
b3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShwb3NpdGlvbi5pbnRlZ2VyUG9zaXRp
b24oKSAtIDEsIHNpZGUpOwogCiAgICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gYWJz
KHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSAtIDE7CiAgICAgICAgIGNvbnN0IHNpemVfdCBl
bmRPZlRyYWNrID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoc2lkZSk7CkBAIC05NDgsNyArOTM0
LDcgQEAgc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29u
c3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3IKICAgICAgICAgaWYgKGVuZE9mVHJhY2sgPCBy
ZXNvbHZlZFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgcmV0dXJu
IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9zaXRpb24s
IHNpZGUpOworICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKGVuZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBzaWRlKTsKICAgICB9CiAgICAg
Y2FzZSBOYW1lZEdyaWRBcmVhUG9zaXRpb246CiAgICAgewpAQCAtMTA0OCw3ICsxMDM0LDcgQEAg
UGFzc093blB0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5h
bWVkR3JpZExpbmVQb3NpdGlvbkFnYWkKICAgICAgICAgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBv
c2l0aW9uSW5kZXggPSBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gLSBncmlkTGluZXMu
YmVnaW4oKTsKIAogICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjptaW4oZ3JpZExpbmVz
LnNpemUoKSAtIDEsIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ICsgcG9zaXRp
b24uc3BhblBvc2l0aW9uKCkgLSAxKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRHcmlkTGluZVBvc2l0
aW9uID0gYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShncmlkTGluZXNb
Z3JpZExpbmVJbmRleF0pOworICAgIHNpemVfdCByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBH
cmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoZ3Jp
ZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKICAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9u
IDwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQogICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9z
aXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247CiAgICAgcmV0dXJuIEdyaWRTcGFuOjpj
cmVhdGUocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggMTlkMGY4NDJlNjlkN2U5
ZTU4N2YyY2NjZTA3MDlkMGExOGUwODkxNi4uZDc1MTM5MzgxOGIzODcxOGUxNDk5ZDVkODVhYmEz
Y2E4MzRmNzZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC01NSwx
MyArNTUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGF2b2lkc0Zsb2F0cygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29sbGFwc2VB
bm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAot
ICAgIGVudW0gR3JpZFBvc2l0aW9uU2lkZSB7Ci0gICAgICAgIENvbHVtblN0YXJ0U2lkZSwKLSAg
ICAgICAgQ29sdW1uRW5kU2lkZSwKLSAgICAgICAgUm93U3RhcnRTaWRlLAotICAgICAgICBSb3dF
bmRTaWRlCi0gICAgfTsKLQogICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgY29sdW1uUG9z
aXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5Qb3NpdGlvbnM7IH0KICAgICBjb25zdCBW
ZWN0b3I8TGF5b3V0VW5pdD4mIHJvd1Bvc2l0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcm93UG9z
aXRpb25zOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRp
b24uaAppbmRleCBmNTM5Yjg5NWQxNDJkMWVjN2U5ZDQwMWVlYTA0NTQxYjY0NTlmMTdmLi4xNjI0
YzBjMTI3ZjFjNjdlNWIyMmViZTI5MmUyZDFhNTk5YzQxYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCkBAIC00NSw2ICs0NSwxMyBAQCBlbnVt
IEdyaWRQb3NpdGlvblR5cGUgewogICAgIE5hbWVkR3JpZEFyZWFQb3NpdGlvbiAvLyA8aWRlbnQ+
CiB9OwogCitlbnVtIEdyaWRQb3NpdGlvblNpZGUgeworICAgIENvbHVtblN0YXJ0U2lkZSwKKyAg
ICBDb2x1bW5FbmRTaWRlLAorICAgIFJvd1N0YXJ0U2lkZSwKKyAgICBSb3dFbmRTaWRlCit9Owor
CiBjbGFzcyBHcmlkUG9zaXRpb24gewogcHVibGljOgogICAgIEdyaWRQb3NpdGlvbigpCkBAIC01
Myw2ICs2MCwyMCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIHN0YXRpYyBpbmxpbmUg
c2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoc2l6ZV90IHJl
c29sdmVkUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbiA/
IHJlc29sdmVkUG9zaXRpb24gLSAxIDogMDsKKyAgICB9CisKKyAgICBzdGF0aWMgc2l6ZV90IGFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24sIEdyaWRQb3Np
dGlvblNpZGUgc2lkZSkKKyAgICB7CisgICAgICAgIC8vIEFuIGl0ZW0gZmluaXNoaW5nIG9uIHRo
ZSBOLXRoIGxpbmUgYmVsb25ncyB0byB0aGUgTi0xLXRoIGNlbGwuCisgICAgICAgIGlmIChzaWRl
ID09IENvbHVtbkVuZFNpZGUgfHwgc2lkZSA9PSBSb3dFbmRTaWRlKQorICAgICAgICAgICAgcmV0
dXJuIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUocmVzb2x2ZWRQb3Np
dGlvbik7CisKKyAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb247CisgICAgfQorCiAgICAg
Ym9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gaW50ZWdlclBvc2l0aW9uKCkgPiAwOyB9
CiAKICAgICBHcmlkUG9zaXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
QEAgLTEwMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
R3JpZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3R5cGUg
PT0gb3RoZXIubV90eXBlICYmIG1faW50ZWdlclBvc2l0aW9uID09IG90aGVyLm1faW50ZWdlclBv
c2l0aW9uOworICAgICAgICByZXR1cm4gbV90eXBlID09IG90aGVyLm1fdHlwZSAmJiBtX2ludGVn
ZXJQb3NpdGlvbiA9PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbiAmJiBtX25hbWVkR3JpZExpbmUg
PT0gb3RoZXIubV9uYW1lZEdyaWRMaW5lOwogICAgIH0KIAogICAgIGJvb2wgc2hvdWxkQmVSZXNv
bHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZjU5OGYzMWYzMTZi
NmUzMDgxNTk1NDUxMzQ1ODA3ODQwMGY2OGMzLi44YWUwZTcyOWNmNGQ2N2U4YzljODRiMzJkNzA2
MDRhYWU2YWU3MmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTQtMDItMjcgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NTUyBHcmlkIExh
eW91dF0gRml4IHBvc2l0aW9uaW5nIGdyaWQgaXRlbXMgdXNpbmcgbmFtZWQgZ3JpZCBsaW5lcy9h
cmVhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgYSBuZXcgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdlIGNvcnJlY3RseSBwb3NpdGlvbiBncmlk
IGl0ZW1zCisgICAgICAgIHVzaW5nIG5hbWVkIGdyaWQgbGluZXMsIGdyaWQgYXJlYXMgYW5kIGFs
c28gd2l0aCB0aGUgaW1wbGljaXQKKyAgICAgICAgbmFtZWQgZ3JpZCBsaW5lcyBjcmVhdGVkIGJ5
IGdyaWQgYXJlYXMuCisKKyAgICAgICAgSSdtIGFsc28gaW1wb3J0aW5nIGEgdGVzdCBmcm9tIEJs
aW5rIHRoYXQgY2hlY2tzIHRoYXQgd2UgY2FuCisgICAgICAgIGR5bmFtaWNhbGx5IGNoYW5nZSB0
aGUgcG9zaXRpb24gb2YgYSBncmlkIGl0ZW0gYnkgY2hhbmdpbmcgdGhlCisgICAgICAgIG5hbWUg
b2YgdGhlIGdyaWQgbGluZXMgdXNlZCB0byBwb3NpdGlvbiBpdC4KKworICAgICAgICAqIGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1wb3NpdGlvbi1jaGFuZ2VkLWR5bmFtaWMtZXhwZWN0
ZWQudHh0OgorICAgICAgICBNZXJnZWQgZnJvbSBCbGluayByMTUzOTEzIGJ5IDxqY2hhZmZyYWl4
QGNocm9taXVtLm9yZz4uCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LXBvc2l0aW9uLWNoYW5nZWQtZHluYW1pYy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2Nz
cy1ncmlkLWxheW91dC9uYW1lZC1ncmlkLWxpbmVzLXdpdGgtbmFtZWQtZ3JpZC1hcmVhcy1yZXNv
bHV0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvbmFtZWQtZ3JpZC1saW5lcy13aXRoLW5hbWVkLWdyaWQtYXJlYXMtcmVzb2x1dGlvbi5odG1s
OiBBZGRlZC4KKwogMjAxNC0wMi0yNSAgTW9ydGVuIFN0ZW5zaG9ybmUgIDxtc3RlbnNob0BvcGVy
YS5jb20+CiAKICAgICAgICAgW05ldyBNdWx0aWNvbHVtbl0gLXdlYmtpdC1jb2x1bW4tYnJlYWst
aW5zaWRlOmF2b2lkIGRvZXNuJ3Qgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXBvc2l0aW9uLWNoYW5nZWQtZHluYW1pYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRp
b24tY2hhbmdlZC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGEyZWQ0NTAxZjFi
NTY4YWEyMjQ5ZTBhMGZiYWRiNDEwNjBiOGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXBvc2l0aW9uLWNoYW5nZWQtZHluYW1p
Yy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5MCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdl
IHByb3Blcmx5IHJlY29tcHV0ZSBvdXIgaW50ZXJuYWwgZ3JpZCB3aGVuIGEgZ3JpZCBpdGVtIGlz
IG1vdmVkLgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdl
ZC1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYyM2IyYTkwYjQ0NDNhYTcxZjM4YjUxZDAzZDFi
NTcxNmE0YjU0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtaXRlbS1wb3NpdGlvbi1jaGFuZ2VkLWR5bmFtaWMuaHRtbApAQCAtMCwwICsx
LDE5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dy
aWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9n
cmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisuZ3Jp
ZCB7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICJjb2wiIDUwcHggImNvbCIg
MTAwcHggImNvbCIgMjAwcHggImNvbCI7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3M6
ICJyb3ciIDcwcHggInJvdyIgMTQwcHggInJvdyIgMjgwcHggInJvdyI7Cit9CisuZGlmZmVyZW50
TmFtZWRHcmlkTGluZXMgeworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAiY29s
MSIgNTBweCAiY29sMiIgMTAwcHggImNvbDMiIDIwMHB4ICJjb2w0IjsKKyAgICAtd2Via2l0LWdy
aWQtdGVtcGxhdGUtcm93czogInJvdzEiIDcwcHggInJvdzIiIDE0MHB4ICJyb3czIiAyODBweCAi
cm93NCI7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1s
YXlvdXQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RQb3NpdGlvbihwb3Np
dGlvbiwgc2l6ZSkKK3sKKyAgICBncmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoImdyaWQiKVswXS5maXJzdENoaWxkOworICAgIGdyaWRJdGVtLnN0eWxlLndlYmtpdEdy
aWRDb2x1bW4gPSBwb3NpdGlvbi5jb2x1bW47CisgICAgZ3JpZEl0ZW0uc3R5bGUud2Via2l0R3Jp
ZFJvdyA9IHBvc2l0aW9uLnJvdzsKKyAgICBncmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhw
ZWN0ZWQtd2lkdGgiLCBzaXplLndpZHRoKTsKKyAgICBncmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRh
dGEtZXhwZWN0ZWQtaGVpZ2h0Iiwgc2l6ZS5oZWlnaHQpOworICAgIGNoZWNrTGF5b3V0KCIuZ3Jp
ZCIpOworfQorCitmdW5jdGlvbiB1cGRhdGVHcmlkSXRlbVBvc2l0aW9uKCkKK3sKKyAgICAvLyBU
ZXN0IHdpdGggdGhlIHNhbWUgdHlwZSBvZiBwb3NpdGlvbnMuCisgICAgLy8gMS4gRXhwbGljaXQg
Z3JpZCBsaW5lcy4KKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6
ICcxIC8gMicgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKyAgICB0ZXN0
UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAzJywgJ3Jvdyc6ICcxIC8gMicgfSwgeyAnd2lkdGgn
OiAnMTUwJywgJ2hlaWdodCc6ICc3MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzEgLyAyJywgJ3Jvdyc6ICcxIC8gMycgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0Jzog
JzIxMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gMicsICdyb3cnOiAn
MSAvIDInIH0sIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICc3MCcgfSk7CisKKyAgICB0ZXN0
UG9zaXRpb24oeyAnY29sdW1uJzogJzIgLyAzJywgJ3Jvdyc6ICcxIC8gMycgfSwgeyAnd2lkdGgn
OiAnMTAwJywgJ2hlaWdodCc6ICcyMTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4n
OiAnMSAvIDMnLCAncm93JzogJzEgLyAzJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0Jzog
JzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAzJywgJ3Jvdyc6
ICcxIC8gMycgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICcyMTAnIH0pOworICAgIHRl
c3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzIgLyAzJyB9LCB7ICd3aWR0
aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzE0MCcgfSk7CisKKyAgICAvLyAyLiBzcGFucy4KKyAgICB0
ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyBzcGFuIDInLCAncm93JzogJzEgLyBzcGFuIDEn
IH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlv
bih7ICdjb2x1bW4nOiAnMSAvIHNwYW4gMScsICdyb3cnOiAnMSAvIHNwYW4gMScgfSwgeyAnd2lk
dGgnOiAnNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1
bW4nOiAnMiAvIHNwYW4gMScsICdyb3cnOiAnMSAvIHNwYW4gMScgfSwgeyAnd2lkdGgnOiAnMTAw
JywgJ2hlaWdodCc6ICc3MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcyIC8g
c3BhbiAxJywgJ3Jvdyc6ICcxIC8gc3BhbiAyJyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0
JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAvIDMn
LCAncm93JzogJ3NwYW4gMiAvIDMnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnMjEw
JyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMSAvIDMnLCAncm93Jzog
J3NwYW4gMiAvIDMnIH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMjEwJyB9KTsKKwor
ICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAyIC8gMycsICdyb3cnOiAnc3BhbiAx
IC8gMycgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICcxNDAnIH0pOworICAgIHRlc3RQ
b3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAyIC8gMycsICdyb3cnOiAnc3BhbiAyIC8gMycgfSwg
eyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICcyMTAnIH0pOworCisgICAgLy8gMy4gTmFtZWQg
Z3JpZCBsaW5lcywgY2hhbmdpbmcgdGhlIGV4cGxpY2l0IHBvc2l0aW9uLgorICAgIHRlc3RQb3Np
dGlvbih7ICdjb2x1bW4nOiAnMSAvIDIgImNvbCInLCAncm93JzogJzEgLyAyICJyb3ciJyB9LCB7
ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdj
b2x1bW4nOiAnMSAvIDMgImNvbCInLCAncm93JzogJzEgLyAyICJyb3ciJyB9LCB7ICd3aWR0aCc6
ICcxNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4n
OiAnMSAvIDIgImNvbCInLCAncm93JzogJzEgLyAzICJyb3ciJyB9LCB7ICd3aWR0aCc6ICc1MCcs
ICdoZWlnaHQnOiAnMjEwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAy
ICJjb2wiJywgJ3Jvdyc6ICcxIC8gMiAicm93IicgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0
JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAiY29sIiAvIDQn
LCAncm93JzogJzEgInJvdyIgLyA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQ5
MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcyICJjb2wiIC8gNCcsICdyb3cn
OiAnMSAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsK
KworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMiAiY29sIiAvIDQnLCAncm93JzogJzIg
InJvdyIgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisgICAg
dGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcyICJjb2wiIC8gNCcsICdyb3cnOiAnMSAicm93IiAv
IDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKworICAgIC8vIDQu
IE5hbWVkIGdyaWQgbGluZXMsIGNoYW5naW5nIHRoZSBuYW1lIG9mIHRoZSBncmlkIGxpbmVzLgor
ICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMgImNvbCInLCAncm93JzogJzEgLyAy
ICJyb3ciJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKyAgICB0ZXN0
UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAzICJpbnZhbGlkIicsICdyb3cnOiAnMSAvIDIgInJv
dyInIH0sIHsgJ3dpZHRoJzogJzUwJywgJ2hlaWdodCc6ICc3MCcgfSk7CisKKyAgICB0ZXN0UG9z
aXRpb24oeyAnY29sdW1uJzogJzEgLyA0ICJjb2wiJywgJ3Jvdyc6ICcxIC8gNCAiaW52YWxpZCIn
IH0sIHsgJ3dpZHRoJzogJzM1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlv
bih7ICdjb2x1bW4nOiAnMSAvIDQgImNvbCInLCAncm93JzogJzEgLyA0ICJyb3ciJyB9LCB7ICd3
aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAn
Y29sdW1uJzogJzIgImludmFsaWQiIC8gNCcsICdyb3cnOiAnMSAicm93IiAvIDQnIH0sIHsgJ3dp
ZHRoJzogJzM1MCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJzIgImNvbCIgLyA0JywgJ3Jvdyc6ICcxICJyb3ciIC8gNCcgfSwgeyAnd2lkdGgnOiAn
MzAwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6
ICcyICJjb2wiIC8gNCcsICdyb3cnOiAnMiAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcs
ICdoZWlnaHQnOiAnNDIwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgImNv
bCIgLyA0JywgJ3Jvdyc6ICcyICJpbnZhbGlkIiAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdo
ZWlnaHQnOiAnNDkwJyB9KTsKKworICAgIC8vIDUuIFNwYW4gbmFtZWQgZ3JpZCBsaW5lcywgY2hh
bmdpbmcgdGhlIGdyaWQgbGluZSBudW1iZXIuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6
ICcxIC8gc3BhbiAzICJjb2wiJywgJ3Jvdyc6ICcxIC8gc3BhbiAyICJyb3ciJyB9LCB7ICd3aWR0
aCc6ICczNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVt
bic6ICcxIC8gc3BhbiAyICJjb2wiJywgJ3Jvdyc6ICcxIC8gc3BhbiAyICJyb3ciJyB9LCB7ICd3
aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAn
Y29sdW1uJzogJzIgLyBzcGFuIDMgImNvbCInLCAncm93JzogJzEgLyBzcGFuIDIgInJvdyInIH0s
IHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnMjEwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24o
eyAnY29sdW1uJzogJzIgLyBzcGFuIDMgImNvbCInLCAncm93JzogJzEgLyBzcGFuIDEgInJvdyIn
IH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNzAnIH0pOworCisgICAgdGVzdFBvc2l0
aW9uKHsgJ2NvbHVtbic6ICdzcGFuIDIgImNvbCIgLyAzJywgJ3Jvdyc6ICdzcGFuIDIgInJvdyIg
LyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisgICAgdGVzdFBv
c2l0aW9uKHsgJ2NvbHVtbic6ICdzcGFuIDEgImNvbCIgLyAzJywgJ3Jvdyc6ICdzcGFuIDIgInJv
dyIgLyA0JyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICB0
ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAiY29sIiAvIDMnLCAncm93JzogJ3NwYW4g
MiAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDIwJyB9KTsKKyAg
ICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAiY29sIiAvIDMnLCAncm93JzogJ3Nw
YW4gMyAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDkwJyB9KTsK
KworICAgIC8vIFRlc3QgdHJhbnNpdGlvbiBhY3Jvc3MgZ3JpZCBsaW5lcyB0eXBlcy4KKyAgICAv
LyAxLiBFeHBsaWNpdCA8LT4gc3BhbnMuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcx
IC8gMycsICdyb3cnOiAnMSAvIDInIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNzAn
IH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIHNwYW4gMycsICdyb3cnOiAn
MSAvIDInIH0sIHsgJ3dpZHRoJzogJzM1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworCisgICAgdGVz
dFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gMycsICdyb3cnOiAnMSAvIHNwYW4gMicgfSwgeyAn
d2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICcyMTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdj
b2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEgLyAyJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVp
Z2h0JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAxIC8g
MycsICdyb3cnOiAnMSAvIDInIH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNzAnIH0p
OworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEgLyAyJyB9
LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlv
bih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAn
LCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8g
MycsICdyb3cnOiAnc3BhbiAyIC8gNCcgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICc0
MjAnIH0pOworCisgICAgLy8gMi4gU3BhbiA8LT4gbmFtZWQgZ3JpZCBsaW5lcy4KKyAgICB0ZXN0
UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAiY29sIiAzJywgJ3Jvdyc6ICcxIC8gc3BhbiA0JyB9
LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBvc2l0aW9u
KHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAzJywgJ3Jvdyc6ICcxIC8gc3BhbiA0JyB9LCB7ICd3aWR0
aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJzEgLyAiY29sIiAzJywgJ3Jvdyc6ICcxIC8gc3BhbiAzJyB9LCB7ICd3aWR0aCc6ICcx
NTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcx
IC8gImNvbCIgMycsICdyb3cnOiAnMSAvICJyb3ciIDMnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdo
ZWlnaHQnOiAnMjEwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAx
IC8gMycsICdyb3cnOiAnc3BhbiAyIC8gNCcgfSwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6
ICc0MjAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAiY29sIiAvIDMnLCAn
cm93JzogJ3NwYW4gMiAvIDQnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDIwJyB9
KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAxIC8gMycsICdyb3cnOiAn
ImNvbCIgMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKyAg
ICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMSAvIDMnLCAncm93JzogJ3NwYW4gMSAv
IDQnIH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMjgwJyB9KTsKKworICAgIC8vIDMu
IE5hbWVkIGdyaWQgbGluZXMgdG8gc3BhbiBuYW1lZCBncmlkIGxpbmUuCisgICAgdGVzdFBvc2l0
aW9uKHsgJ2NvbHVtbic6ICcxIC8gImNvbCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAn
d2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdj
b2x1bW4nOiAnMSAvIHNwYW4gImNvbCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAnd2lk
dGgnOiAnMzUwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2Nv
bHVtbic6ICcxIC8gImNvbCIgMycsICdyb3cnOiAnMSAvIHNwYW4gInJvdyIgMycgfSwgeyAnd2lk
dGgnOiAnMTUwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1
bW4nOiAnMSAvICJjb2wiIDMnLCAncm93JzogJzEgLyAicm93IiAzJyB9LCB7ICd3aWR0aCc6ICcx
NTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzog
J3NwYW4gImNvbCIgMSAvIDMnLCAncm93JzogJ3NwYW4gMiAvIDQnIH0sIHsgJ3dpZHRoJzogJzEw
MCcsICdoZWlnaHQnOiAnNDIwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEg
ImNvbCIgLyAzJywgJ3Jvdyc6ICdzcGFuIDIgLyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVp
Z2h0JzogJzQyMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gImNv
bCIgMSAvIDMnLCAncm93JzogJyJjb2wiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVp
Z2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICdzcGFuICJjb2wi
IDEgLyAzJywgJ3Jvdyc6ICdzcGFuICJjb2wiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAn
aGVpZ2h0JzogJzI4MCcgfSk7CisKKyAgICAvLyA0LiBFeHBsaWNpdCA8LT4gbmFtZWQgZ3JpZCBs
aW5lcy4KKyAgICAvLyBXZSBuZWVkIHRvIG1vZGlmeSB0aGUgZ3JpZCdzIGRlZmluaXRpb25zIHNv
IHRoYXQgd2UgaGF2ZSBleHBsaWNpdCBhbmQgbmFtZWQgZ3JpZCBsaW5lcyBub3QgbWF0Y2ggYW55
bW9yZS4KKyAgICB2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCJncmlkIilbMF07CisgICAgZ3JpZEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZGlmZmVyZW50
TmFtZWRHcmlkTGluZXMiKTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvICJj
b2w0IiAzJywgJ3Jvdyc6ICcxIC8gNCcgfSwgeyAnd2lkdGgnOiAnMzUwJywgJ2hlaWdodCc6ICc0
OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEg
LyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0
UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAiY29sNCIgMycsICdyb3cnOiAnMSAvIDQnIH0sIHsg
J3dpZHRoJzogJzM1MCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAn
Y29sdW1uJzogJzEgLyAiY29sNCIgMycsICdyb3cnOiAnMSAvICJyb3czIiA0JyB9LCB7ICd3aWR0
aCc6ICczNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJyJjb2wyIiAxIC8gNCcsICdyb3cnOiAnMSAicm93MiIgLyA0JyB9LCB7ICd3aWR0aCc6
ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6
ICcxIC8gNCcsICdyb3cnOiAnMSAicm93MiIgLyA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVp
Z2h0JzogJzQyMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJyJjb2wyIiAx
IC8gNCcsICdyb3cnOiAnMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkw
JyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJyJjb2wyIiAxIC8gNCcsICdyb3cn
OiAnMSAicm93MiIgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7
CisKKyAgICAvLyA1LiBTcGFuIDwtPiBzcGFuIG5hbWVkIGdyaWQgbGluZXMuCisgICAgdGVzdFBv
c2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAiY29sNCIgMicsICdyb3cnOiAnMyAvIHNwYW4g
MScgfSwgeyAnd2lkdGgnOiAnMzUwJywgJ2hlaWdodCc6ICcyODAnIH0pOworICAgIHRlc3RQb3Np
dGlvbih7ICdjb2x1bW4nOiAnMSAvIHNwYW4gMicsICdyb3cnOiAnMyAvIHNwYW4gMScgfSwgeyAn
d2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICcyODAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsg
J2NvbHVtbic6ICcxIC8gc3BhbiAiY29sNCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAn
d2lkdGgnOiAnMzUwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdj
b2x1bW4nOiAnMSAvIHNwYW4gImNvbDQiIDMnLCAncm93JzogJzEgLyBzcGFuICJyb3czIiA0JyB9
LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRp
b24oeyAnY29sdW1uJzogJ3NwYW4gMiAvIDQnLCAncm93JzogJ3NwYW4gMSAvIDQnIH0sIHsgJ3dp
ZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnMjgwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJ3NwYW4gImNvbDEiIDIgLyA0JywgJ3Jvdyc6ICdzcGFuIDEgLyA0JyB9LCB7ICd3aWR0
aCc6ICczNTAnLCAnaGVpZ2h0JzogJzI4MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJ3NwYW4gMiAvIDQnLCAncm93JzogJ3NwYW4gMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzMw
MCcsICdoZWlnaHQnOiAnMjgwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3Nw
YW4gMiAvIDQnLCAncm93JzogJ3NwYW4gInJvdzIiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAn
LCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICAvLyA2LiBFeHBsaWNpdCB0byBzcGFuIG5hbWVk
IGdyaWQgbGluZS4KKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6
ICcyIC8gc3BhbiAicm93MyIgMScgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzE0MCcg
fSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAiY29sMyIgMicsICdy
b3cnOiAnMiAvIHNwYW4gInJvdzMiIDEnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAn
MTQwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDInLCAncm93Jzog
JzIgLyBzcGFuICJyb3czIiA0JyB9LCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTQwJyB9
KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6ICcyIC8gNCcg
fSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRp
b24oeyAnY29sdW1uJzogJ3NwYW4gImNvbDIiIDEgLyA0JywgJ3Jvdyc6ICdzcGFuICJyb3cxIiAz
IC8gNCcgfSwgeyAnd2lkdGgnOiAnMzAwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQ
b3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDQnLCAncm93JzogJ3NwYW4gInJvdzEiIDMgLyA0JyB9
LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRp
b24oeyAnY29sdW1uJzogJ3NwYW4gImNvbDIiIDEgLyA0JywgJ3Jvdyc6ICdzcGFuICJyb3cxIiAz
IC8gNCcgfSwgeyAnd2lkdGgnOiAnMzAwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQ
b3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAiY29sMiIgMSAvIDQnLCAncm93JzogJzMgLyA0JyB9
LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzI4MCcgfSk7Cit9Cit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIHVwZGF0ZUdyaWRJdGVtUG9zaXRpb24sIGZhbHNlKTsKKzwvc2Ny
aXB0PgorPGJvZHk+CisKKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSBwcm9wZXJseSByZWNv
bXB1dGUgb3VyIGludGVybmFsIGdyaWQgd2hlbiBhIGdyaWQgaXRlbSBpcyBtb3ZlZC48L3A+CisK
KzxkaXYgY2xhc3M9ImdyaWQiPjxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSI+PC9kaXY+PC9k
aXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMtd2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFt
ZWQtZ3JpZC1saW5lcy13aXRoLW5hbWVkLWdyaWQtYXJlYXMtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjNhMDgzMzA1MjUzNmQwYTM5N2JiYjQ4OGE2M2JkNTdkZGMxMWEzNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVk
LWdyaWQtbGluZXMtd2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSByZXNvbHZlIG5hbWVk
IGdyaWQgbGluZSBwZXIgdGhlIHNwZWNpZmljYXRpb24uCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L25hbWVkLWdyaWQtbGluZXMtd2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMt
d2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzdlMWI0
YjBjMjFhYjc5ZDEyZTFkOGQxNDMxOGNjNWJlMmY3NGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lcy13aXRoLW5hbWVk
LWdyaWQtYXJlYXMtcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsMTk5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5h
YmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJl
bD0ic3R5bGVzaGVldCI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCisgIC5ncmlkQXJlYXMg
eworICAgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWFyZWFzOiAiLiBhIGEiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJjIGEgYSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi4gLiBkIjsKKyAgfQorCisgIC5ncmlkTm9MaW5lTmFtZXMgeworICAgICAg
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggMTAwcHggMjAwcHg7CisgICAgICAt
d2Via2l0LWdyaWQtdGVtcGxhdGUtcm93czogNTBweCAxMDBweCAyMDBweDsKKyAgfQorCisgIC5n
cmlkVW5pcXVlTmFtZXMgeworICAgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICJh
IiA1MHB4ICJiIiAiYi1zdGFydCIgMTAwcHggImMiIDIwMHB4ICJkIjsKKyAgICAgIC13ZWJraXQt
Z3JpZC10ZW1wbGF0ZS1yb3dzOiAiZSIgNTBweCAiZiIgMTAwcHggImciICJnLXN0YXJ0IiAyMDBw
eCAiaCI7CisgIH0KKworICAuZ3JpZFdpdGhOYW1lZExpbmVCZWZvcmVHcmlkQXJlYSB7CisgICAg
ICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogImEtc3RhcnQiICJjLXN0YXJ0IiA1MHB4
ICJkLXN0YXJ0IiAxMDBweCAyMDBweDsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dz
OiAiYy1zdGFydCIgNTBweCAiZC1zdGFydCIgMTAwcHggMjAwcHg7CisgIH0KKworICAuZ3JpZFdp
dGhOYW1lZExpbmVBZnRlckdyaWRBcmVhIHsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zOiA1MHB4IDEwMHB4ICJhLXN0YXJ0IiAyMDBweDsKKyAgICAgIC13ZWJraXQtZ3JpZC10
ZW1wbGF0ZS1yb3dzOiA1MHB4IDEwMHB4ICJjLXN0YXJ0IiAyMDBweDsKKyAgfQorCisgIC5ncmlk
V2l0aEVuZExpbmVzIHsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4
IDEwMHB4ICJhLWVuZCIgMjAwcHggImMtZW5kIjsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1yb3dzOiA1MHB4ICJjLWVuZCIgMTAwcHggImQtZW5kIiAyMDBweDsKKyAgfQorCisgIC5ncmlk
UmVwZWF0ZWROYW1lcyB7CisgICAgICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogImQt
c3RhcnQiIDUwcHggImQtc3RhcnQiIDEwMHB4ICJkLXN0YXJ0IiAyMDBweDsKKyAgICAgIC13ZWJr
aXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHB4ICJjLWVuZCIgMTAwcHggImMtZW5kIiAyMDBweCAi
Yy1lbmQiOworICB9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2No
ZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNoZWNrTGF5
b3V0KCcuZ3JpZCcpIj4KKworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdlIHJlc29sdmUgbmFt
ZWQgZ3JpZCBsaW5lIHBlciB0aGUgc3BlY2lmaWNhdGlvbi48L3A+CisKKzwhLS0gQ2hlY2sgcG9z
aXRpb25pbmcgdXNpbmcgdW5pcXVlIGdyaWQtbGluZSBuYW1lcyAtLT4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiByZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZFVuaXF1ZU5hbWVzIj4K
KyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29s
dW1uOiBiOyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBlOyIgZGF0
YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAi
IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRU
b0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYi1zdGFydDsiIGRhdGEtb2Zm
c2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogZy1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9
IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRVbmlxdWVOYW1l
cyI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlk
LWNvbHVtbjogYiAvIGQ7IiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMzAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1yb3c6
IGcgLyBoOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYzsg
LXdlYmtpdC1ncmlkLXJvdzogZjsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0i
NTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+
PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gQ2hlY2sgcG9zaXRpb25pbmcgdXNpbmcg
dW5pcXVlIGdyaWQtbGluZSBuYW1lcyBtaXhlZCB3aXRoIGludGVnZXJzIC0tPgorPGRpdiBzdHls
ZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkVW5pcXVlTmFt
ZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3Jp
ZC1jb2x1bW46IGIgLyA0OyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93
OiAzIC8gaDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IDI7
IC13ZWJraXQtZ3JpZC1yb3c6IGc7IiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0i
MTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAi
PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQt
Z3JpZC1jb2x1bW46IGE7IC13ZWJraXQtZ3JpZC1yb3c6IDI7IiBkYXRhLW9mZnNldC14PSIwIiBk
YXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSIxMDAiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8IS0tIENoZWNrIHRoYXQg
d2l0aG91dCBuYW1lZCBncmlkQXJlYXMgdGhlcmUgYXJlIG5vIGltcGxpY2l0IGdyaWQtbGluZSBu
YW1lcyBkZWZpbmVkIC0tPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRp
diBjbGFzcz0iZ3JpZCBncmlkVW5pcXVlTmFtZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGMtc3RhcnQ7IiBkYXRhLW9mZnNl
dC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1l
eHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBmLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0iMCIg
ZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHls
ZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYy1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogZi1lbmQi
IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNp
emVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGItZW5kOyAtd2Via2l0
LWdyaWQtcm93OiBoLXN0YXJ0IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4K
KyAgPC9kaXY+Cis8L2Rpdj4KKworPCEtLSBDaGVjayB0aGF0IGdyaWRBcmVhJ3MgaW1wbGljaXQg
bmFtZXMgYXJlIHdlbGwgZGVmaW5lZCAtLT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2
ZSI+CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjog
YS1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogZC1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBk
YXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBz
dHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYS1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogZDsi
IGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogZC1zdGFydDsg
LXdlYmtpdC1ncmlkLXJvdzogYy1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZz
ZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gQ2hlY2sgcG9zaXRpb25pbmcg
dXNpbmcgZ3JpZCBhcmVhcyAtLT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+Cisg
IDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAgPGRpdiBj
bGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogZDsiIGRh
dGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNp
emVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1yb3c6IGQ7IiBkYXRhLW9mZnNldC14
PSIwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBjOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0
YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVp
Z2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0i
LXdlYmtpdC1ncmlkLXJvdzogYzsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9k
aXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+
CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYTsi
IGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSIzMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
c2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogYTsiIGRhdGEtb2Zmc2V0
LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iMTUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBhOyAtd2Via2l0LWdyaWQtcm93OiBhOyIg
ZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjE1MCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+
CisKKzwhLS0gVXNlIGdyaWQgYXJlYSdzIGltcGxpY2l0IGxpbmUgbmFtZXMgaWYgZGVmaW5lZCBi
ZWZvcmUgZXhwbGljaXRseSBuYW1lZCBncmlkIGxpbmVzIC0tPgorPGRpdiBzdHlsZT0icG9zaXRp
b246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdpdGhOYW1l
ZExpbmVBZnRlckdyaWRBcmVhIj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0
eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBkOyIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdl
YmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1j
b2x1bW46IGM7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVj
dGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBjOyIgZGF0
YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUw
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlk
QXJlYXMgZ3JpZFdpdGhOYW1lZExpbmVBZnRlckdyaWRBcmVhIj4KKyAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uLXN0YXJ0OiBhLXN0YXJ0
OyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93LXN0YXJ0OiBjLXN0YXJ0
OyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rp
dj4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3Jp
ZCBncmlkQXJlYXMgZ3JpZFdpdGhOYW1lZExpbmVBZnRlckdyaWRBcmVhIj4KKyAgICA8ZGl2IGNs
YXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBhOyIgZGF0
YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMw
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBkOyIgZGF0YS1vZmZzZXQteD0i
MCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYTsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRh
dGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+
CisKKzwhLS0gVXNlIGV4cGxpY2l0bHkgbmFtZWQgZ3JpZCBsaW5lcyBpZiB0aGV5J3JlIGRlZmlu
ZWQgYmVmb3JlIHRoZSBncmlkIGFyZWEgLS0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRp
dmUiPgorICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBcmVhcyBncmlkV2l0aE5hbWVkTGluZUJlZm9y
ZUdyaWRBcmVhIj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Vi
a2l0LWdyaWQtY29sdW1uOiBkOyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQt
cm93OiBkOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMzAwIj48L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBjOyIg
ZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
NTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6
ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogYzsiIGRhdGEtb2Zmc2V0LXg9
IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMTUwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0i
cG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdp
dGhOYW1lZExpbmVCZWZvcmVHcmlkQXJlYSI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRB
cmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbi1zdGFydDogZC1zdGFydDsiIGRhdGEtb2Zm
c2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdy1zdGFydDogZC1zdGFydDsiIGRhdGEtb2Zm
c2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYg
c3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEFyZWFz
IGdyaWRXaXRoTmFtZWRMaW5lQmVmb3JlR3JpZEFyZWEiPgorICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGE7IiBkYXRhLW9mZnNldC14
PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNTAiIGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zm
c2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjMwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdl
YmtpdC1ncmlkLWNvbHVtbjogYTsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9
IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNTAiIGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PSIzMDAiPjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8IS0tIENoZWNr
IHRoYXQgYSAiLXN0YXJ0IiBpZGVudCBpbiBhIGVuZCBjb2x1bW4gb3IgYSAiLWVuZCIgaWRlbnQg
aW4gYSBzdGFydCBjb2x1bW4gaXMgbm90IHRyZWF0ZWQgYXMgYSBpbXBsaWNpdCBncmlkIGxpbmUg
b2YgYSBncmlkIGFyZWEgLS0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICA8
ZGl2IGNsYXNzPSJncmlkIGdyaWRBcmVhcyBncmlkTm9MaW5lTmFtZXMiPgorICAgIDxkaXYgY2xh
c3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGEgLyBhLXN0
YXJ0OyAtd2Via2l0LWdyaWQtcm93OiBkLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEt
b2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0iMjAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxl
PSItd2Via2l0LWdyaWQtY29sdW1uOiBkIC8gZC1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogYy1z
dGFydDsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYzsg
LXdlYmtpdC1ncmlkLXJvdzogYSAvIGEtc3RhcnQ7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Vi
a2l0LWdyaWQtY29sdW1uOiBkOyAtd2Via2l0LWdyaWQtcm93OiBjIC8gYy1zdGFydDsiIGRhdGEt
b2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIw
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisK
KzwhLS0gQ2hlY2sgdGhhdCB3ZSBwcm9wZXJ0bHkgcmVzb2x2ZSBleHBsaWNpdCAiLWVuZCIgbGlu
ZXMgaW5zaWRlIGdyaWQgYXJlYXMgLS0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUi
PgorICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRBcmVhcyBncmlkV2l0aEVuZExpbmVzIj4KKyAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBh
IiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGE7IC13ZWJraXQt
Z3JpZC1yb3c6IGMiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBk
OyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYTsgLXdlYmtp
dC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+
CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gQ2hlY2sgdGhhdCB3ZSBhbHdheXMgcGljayB0aGUg
Zmlyc3QgZGVmaW5pdGlvbiB3aGVuIG11bHRpcGxlIGdyaWQgbGluZXMgaGF2ZSB0aGUgc2FtZSBu
YW1lIC0tPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0i
Z3JpZCBncmlkQXJlYXMgZ3JpZFJlcGVhdGVkTmFtZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGQ7IC13ZWJraXQtZ3JpZC1y
b3c6IGMiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSIzNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGQtc3Rh
cnQgLyBkLWVuZDsgLXdlYmtpdC1ncmlkLXJvdzogYy1zdGFydCAvIGMtZW5kIiBkYXRhLW9mZnNl
dC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMzUwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBjOyAtd2Via2l0LWdyaWQtcm93OiBk
IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rp
dj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225466</attachid>
            <date>2014-02-28 08:16:09 -0800</date>
            <delta_ts>2014-02-28 09:39:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129372-20140228171606.patch</filename>
            <type>text/plain</type>
            <size>46517</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhkY2ZjZmRlZTc1MmYx
OTBkNjM2MWI3ZTQ2NDZkNDBiZDU0YjExNC4uMjM2NTc3OTU5MjUzNmNmNDgyZmNjNTA3NGI1NWJl
NTFmYzYwZDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTAyLTI3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEZpeCBwb3NpdGlvbmluZyBncmlkIGl0ZW1zIHVzaW5nIG5hbWVkIGdyaWQgbGlu
ZXMvYXJlYXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTM3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE91ciBjb2RlIHdhcyBhc3N1bWluZyB0aGF0IGEgPGN1c3RvbS1pZGVudD4gaW4KKyAgICAgICAg
LXdlYmtpdC1ncmlkLXtjb2x1bW58cm93fS17c3RhcnR8ZW5kfSBhbmQKKyAgICAgICAgLXdlYmtp
dC1ncmlkLXtjb2x1bW58cm93fSB3YXMgYWx3YXlzIGEgZ3JpZCBhcmVhIG5hbWUuIFRoYXQncwor
ICAgICAgICB3cm9uZyBiZWNhdXNlIHRoZSA8Y3VzdG9tLWlkZW50PiBjb3VsZCBiZSBhbHNvIGEg
ZXhwbGljaXRseSBuYW1lZAorICAgICAgICBncmlkIGxpbmUgb3IgdGhlIGFuIGltcGxpY2l0bHkg
bmFtZWQgZ3JpZCBsaW5lIGNyZWF0ZWQgYnkgYSBncmlkCisgICAgICAgIGFyZWEgZGVmaW5pdGlv
bi4KKworICAgICAgICBUaGUgc3R5bGUgcmVzb2x1dGlvbiBjb2RlIHdhcyBub3QgY29ycmVjdCBl
aXRoZXIuIFRoaXMgcGF0Y2ggZml4ZXMKKyAgICAgICAgaXQgc28gaXQgbm93IG1hdGNoZXMgdGhl
IHNwZWMsIHdoaWNoIG1lYW5zIHRoYXQ6CisgICAgICAgIC0gZmlyc3Qgd2UgdHJ5IHRvIG1hdGNo
IGFueSBleGlzdGluZyBncmlkIGFyZWEuCisgICAgICAgIC0gdGhlbiBpZiB0aGVyZSBpcyBhIG5h
bWVkIGdyaWQgbGluZSB3aXRoIHRoZSBuYW1lCisgICAgICAgIDxjdXN0b20taWRlbnQ+LXtzdGFy
dHxlbmR9IGZvciAtd2Via2l0LWdyaWQte2NvbHVtbnxyb3d9LXtzdGFydHxlbmR9CisgICAgICAg
IGRlZmluZWQgYmVmb3JlIHRoZSBncmlkIGFyZWEgdGhlbiB3ZSB1c2UgaXQgaW5zdGVhZCBvZiB0
aGUgZ3JpZAorICAgICAgICBhcmVhLgorICAgICAgICAtIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBh
IG5hbWVkIGdyaWQgbGluZSB3ZSByZXNvbHZlIHRvIHRoZSBmaXJzdCBzdWNoIGxpbmUuCisgICAg
ICAgIC0gb3RoZXJ3aXNlIHdlIHRyZWF0IGl0IGFzICdhdXRvJy4KKworICAgICAgICBGaXhpbmcg
dGhpcyB1bmNvdmVyZWQgYSBidWcgaW4gR3JpZFBvc2l0aW9uLCB3ZSB3ZXJlIG5vdCB1c2luZyB0
aGUKKyAgICAgICAgbmFtZSBvZiB0aGUgc3RvcmVkIGdyaWQgYXJlYSB0byBjaGVjayBpZiB0d28g
R3JpZFBvc2l0aW9ucyB3ZXJlCisgICAgICAgIHRoZSBzYW1lLgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMt
d2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3JpZExpbmVEZWZpbmVkQmVmb3Jl
R3JpZEFyZWEpOiBOZXcgZnVuY3Rpb24gdG8gY2hlY2sgaWYKKyAgICAgICAgYSBnaXZlbiBuYW1l
ZCBncmlkIGxpbmUgd2FzIGRlZmluZWQgYmVmb3JlIGFuIGltcGxpY2l0IG5hbWVkIGdyaWQKKyAg
ICAgICAgbGluZSBjcmVhdGVkIGJ5IGEgZ3JpZCBhcmVhIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24pOiBOZXcK
KyAgICAgICAgZnVuY3Rpb24gdGhhdCBhZGp1c3RzIHRoZSBwb3NpdGlvbiBvZiBhIEdyaWRQb3Np
dGlvbiBwYXJzZWQgYXMgYQorICAgICAgICBncmlkIGFyZWEuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjphZGp1c3RHcmlkSXRlbVBvc2l0aW9uKTogVXNlIHRoZSBuZXcKKyAgICAg
ICAgZnVuY3Rpb24gYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uIHRvIGFkanVzdCB0aGUgcG9z
aXRpb25zIG9mCisgICAgICAgIG5hbWVkIGdyaWQgbGluZXMuCisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0
eWxlKTogVXNlIEdyaWRQb3NpdGlvbjo6IG5hbWVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JSb3dFbmRDb2x1bW5FbmRTaWRlKTogTW92ZWQgZnJvbSBSZW5kZXJHcmlkLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjpvcGVyYXRvcj09KTogVXNlIHRo
ZSBuYW1lZCBncmlkIGxpbmUgdG8gY2hlY2sgZXF1YWxpdHkuCisKIDIwMTQtMDItMjggIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBGaW5ldHVuZSBjYXB0aW9ucyBtZW51IGFzIHBlciBkZXNpZ24gdGVhbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGE3ZDMwMGZmYjE2MjFjMWNkMjg4M2QzYTVlOGFlYWQ0
NmY2OWNmOTguLmVjMTc3NmM4ZWE2YzIyMGMwZTFkMzkwNWEzYTgxZjI2ZDQ1MjE1ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTksNiArOSw3IEBACiAgKiBDb3B5cmln
aHQgKGMpIDIwMTEsIENvZGUgQXVyb3JhIEZvcnVtLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMTM2LDYgKzEzNyw3IEBACiAjaW5jbHVkZSA8Yml0c2V0PgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogI2lu
Y2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgpAQCAtMTM3Niw2ICsxMzc4LDc4IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSYgcGFyCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorc3RhdGlj
IGlubGluZSBib29sIGdyaWRMaW5lRGVmaW5lZEJlZm9yZUdyaWRBcmVhKGNvbnN0IFN0cmluZyYg
Z3JpZExpbmVOYW1lLCBjb25zdCBTdHJpbmcmIGdyaWRBcmVhTmFtZSwgY29uc3QgTmFtZWRHcmlk
QXJlYU1hcCYgZ3JpZEFyZWFNYXAsIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZExpbmVz
TWFwLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgQVNTRVJUKG5hbWVkTGluZXNNYXAu
Y29udGFpbnMoZ3JpZExpbmVOYW1lKSk7CisgICAgLy8gR3JpZCBsaW5lIGluZGV4ZXMgYXJlIGlu
c2VydGVkIGluIG9yZGVyLgorICAgIHNpemVfdCBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9u
ID0gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKG5hbWVkTGluZXNNYXAu
Z2V0KGdyaWRMaW5lTmFtZSlbMF0sIHNpZGUpOworCisgICAgQVNTRVJUKGdyaWRBcmVhTWFwLmNv
bnRhaW5zKGdyaWRBcmVhTmFtZSkpOworICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBncmlkQXJl
YUNvb3JkaW5hdGVzID0gZ3JpZEFyZWFNYXAuZ2V0KGdyaWRBcmVhTmFtZSk7CisKKyAgICAvLyBH
cmlkQ29vcmRpbmF0ZSByZWZlcnMgdG8gdHJhY2tzIHdoaWxlIHRoZSBpbmRleGVzIGluIG5hbWVk
TGluZXNNYXAgcmVmZXIgdG8gbGluZXMsIHRoYXQncyB3aHkgd2UgbmVlZCB0byBhZGQgMSB0bwor
ICAgIC8vIHRoZSBncmlkIGNvb3JkaW5hdGUgdG8gZ2V0IHRoZSBlbmQgbGluZSBpbmRleC4KKyAg
ICBzd2l0Y2ggKHNpZGUpIHsKKyAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKKyAgICAgICAgcmV0
dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNv
bHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXg7CisgICAgY2FzZSBDb2x1bW5FbmRTaWRlOgorICAg
ICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRp
bmF0ZXMuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgY2FzZSBSb3dTdGFydFNpZGU6
CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFD
b29yZGluYXRlcy5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OworICAgIGNhc2UgUm93RW5kU2lk
ZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJl
YUNvb3JkaW5hdGVzLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OworICAgIH0KKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxH
cmlkUG9zaXRpb24+IFN0eWxlUmVzb2x2ZXI6OmFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihj
b25zdCBOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1hcCwgY29uc3QgTmFtZWRHcmlkTGluZXNN
YXAmIG5hbWVkTGluZXNNYXAsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3Np
dGlvblNpZGUgc2lkZSkgY29uc3QKK3sKKyAgICBBU1NFUlQocG9zaXRpb24uaXNOYW1lZEdyaWRB
cmVhKCkpOworICAgIC8vIFRoZSBTdHlsZUJ1aWxkZXIgYWx3YXlzIHRyZWF0cyA8Y3VzdG9tLWlk
ZW50PiBhcyBhIG5hbWVkIGdyaWQgYXJlYS4gV2UgbXVzdCBkZWNpZGUgaGVyZSBpZiB0aGV5IGFy
ZSBnb2luZyB0byBiZQorICAgIC8vIHJlc29sdmVkIHRvIGVpdGhlciBhIGdyaWQgYXJlYSBvciBh
IGdyaWQgbGluZS4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFBvc2l0aW9uPiBhZGp1c3RlZFBv
c2l0aW9uOworCisgICAgU3RyaW5nIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lID0gcG9zaXRpb24u
bmFtZWRHcmlkTGluZSgpOworICAgIGJvb2wgaGFzU3RhcnRTdWZmaXggPSBuYW1lZEdyaWRBcmVh
T3JHcmlkTGluZS5lbmRzV2l0aCgiLXN0YXJ0Iik7CisgICAgYm9vbCBoYXNFbmRTdWZmaXggPSBu
YW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLWVuZCIpOworICAgIGJvb2wgaXNTdGFy
dFNpZGUgPSBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZTsK
KyAgICBib29sIGhhc1N0YXJ0U3VmZml4Rm9yU3RhcnRTaWRlID0gaGFzU3RhcnRTdWZmaXggJiYg
aXNTdGFydFNpZGU7CisgICAgYm9vbCBoYXNFbmRTdWZmaXhGb3JFbmRTaWRlID0gaGFzRW5kU3Vm
Zml4ICYmICFpc1N0YXJ0U2lkZTsKKyAgICBzaXplX3Qgc3VmZml4TGVuZ3RoID0gaGFzU3RhcnRT
dWZmaXggPyBzdHJsZW4oIi1zdGFydCIpIDogc3RybGVuKCItZW5kIik7CisgICAgU3RyaW5nIGdy
aWRBcmVhTmFtZSA9IGhhc1N0YXJ0U3VmZml4Rm9yU3RhcnRTaWRlIHx8IGhhc0VuZFN1ZmZpeEZv
ckVuZFNpZGUgPyBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5zdWJzdHJpbmcoMCwgbmFtZWRHcmlk
QXJlYU9yR3JpZExpbmUubGVuZ3RoKCkgLSBzdWZmaXhMZW5ndGgpIDogbmFtZWRHcmlkQXJlYU9y
R3JpZExpbmU7CisKKyAgICBpZiAoZ3JpZEFyZWFNYXAuY29udGFpbnMoZ3JpZEFyZWFOYW1lKSkg
eworICAgICAgICBTdHJpbmdCdWlsZGVyIGdyaWRMaW5lTmFtZUJ1aWxkZXI7CisgICAgICAgIGdy
aWRMaW5lTmFtZUJ1aWxkZXIuYXBwZW5kKG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKTsKKyAgICAg
ICAgaWYgKGlzU3RhcnRTaWRlICYmICFoYXNTdGFydFN1ZmZpeCkKKyAgICAgICAgICAgIGdyaWRM
aW5lTmFtZUJ1aWxkZXIuYXBwZW5kKCItc3RhcnQiKTsKKyAgICAgICAgZWxzZSBpZiAoIWlzU3Rh
cnRTaWRlICYmICFoYXNFbmRTdWZmaXgpCisgICAgICAgICAgICBncmlkTGluZU5hbWVCdWlsZGVy
LmFwcGVuZCgiLWVuZCIpOworCisgICAgICAgIFN0cmluZyBncmlkTGluZU5hbWUgPSBncmlkTGlu
ZU5hbWVCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChuYW1lZExpbmVzTWFwLmNvbnRh
aW5zKGdyaWRMaW5lTmFtZSkgJiYgZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEoZ3JpZExp
bmVOYW1lLCBncmlkQXJlYU5hbWUsIGdyaWRBcmVhTWFwLCBuYW1lZExpbmVzTWFwLCBzaWRlKSkg
eworICAgICAgICAgICAgLy8gVXNlIHRoZSBleHBsaWNpdGx5IGRlZmluZWQgZ3JpZCBsaW5lIGRl
ZmluZWQgYmVmb3JlIHRoZSBncmlkIGFyZWEgaW5zdGVhZCBvZiB0aGUgZ3JpZCBhcmVhLgorICAg
ICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8R3JpZFBvc2l0aW9u
PigpOworICAgICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbi0+c2V0RXhwbGljaXRQb3NpdGlvbigx
LCBncmlkTGluZU5hbWUpOworICAgICAgICB9IGVsc2UgaWYgKGhhc1N0YXJ0U3VmZml4Rm9yU3Rh
cnRTaWRlIHx8IGhhc0VuZFN1ZmZpeEZvckVuZFNpZGUpIHsKKyAgICAgICAgICAgIC8vIFJlbmRl
cmVyIGV4cGVjdHMgdGhlIGdyaWQgYXJlYSBuYW1lIGluc3RlYWQgb2YgdGhlIGltcGxpY2l0IGdy
aWQgbGluZSBuYW1lLgorICAgICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbiA9IHN0ZDo6bWFrZV91
bmlxdWU8R3JpZFBvc2l0aW9uPigpOworICAgICAgICAgICAgYWRqdXN0ZWRQb3NpdGlvbi0+c2V0
TmFtZWRHcmlkQXJlYShncmlkQXJlYU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IGFkanVzdGVkUG9zaXRpb247CisgICAgfQorCisgICAgaWYgKG5hbWVkTGluZXNNYXAuY29udGFp
bnMobmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpKSB7CisgICAgICAgIGFkanVzdGVkUG9zaXRpb24g
PSBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRQb3NpdGlvbj4oKTsKKyAgICAgICAgYWRqdXN0ZWRQb3Np
dGlvbi0+c2V0RXhwbGljaXRQb3NpdGlvbigxLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSk7Cisg
ICAgICAgIHJldHVybiBhZGp1c3RlZFBvc2l0aW9uOworICAgIH0KKworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPEdyaWRQb3NpdGlvbj4oKTsKK30KKwogdm9pZCBTdHlsZVJlc29sdmVyOjph
ZGp1c3RHcmlkSXRlbVBvc2l0aW9uKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5
bGUmIHBhcmVudFN0eWxlKSBjb25zdAogewogICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgY29sdW1u
U3RhcnRQb3NpdGlvbiA9IHN0eWxlLmdyaWRJdGVtQ29sdW1uU3RhcnQoKTsKQEAgLTEzOTQsMTcg
KzE0NjgsMjcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RHcmlkSXRlbVBvc2l0aW9uKFJl
bmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUKICAgICAgICAgc3R5bGUuc2V0R3Jp
ZEl0ZW1Sb3dFbmQoR3JpZFBvc2l0aW9uKCkpOwogICAgIH0KIAotICAgIC8vIFVua25vd24gbmFt
ZWQgZ3JpZCBhcmVhIGNvbXB1dGUgdG8gJ2F1dG8nLgotICAgIGNvbnN0IE5hbWVkR3JpZEFyZWFN
YXAmIG1hcCA9IHBhcmVudFN0eWxlLm5hbWVkR3JpZEFyZWEoKTsKKyAgICAvLyBJZiB0aGUgZ3Jp
ZCBwb3NpdGlvbiBpcyBhIHNpbmdsZSA8Y3VzdG9tLWlkZW50PiB0aGVuIHRoZSBzcGVjIG1hbmRh
dGVzIHVzIHRvIHJlc29sdmUgaXQgZm9sbG93aW5nIHRoaXMgc3RlcHM6CisgICAgLy8gICAgICog
SWYgdGhlcmUgaXMgYSBuYW1lZCBncmlkIGFyZWEgY2FsbGVkIDxjdXN0b20taWRlbnQ+IHJlc29s
dmUgdGhlIHBvc2l0aW9uIHRvIHRoZSBhcmVhJ3MgY29ycmVzcG9uZGluZyBlZGdlLgorICAgIC8v
ICAgICAgICAgKiBJZiBhIGdyaWQgYXJlYSB3YXMgZm91bmQgd2l0aCB0aGF0IG5hbWUsIGNoZWNr
IHRoYXQgdGhlcmUgaXMgbm8gPGN1c3RvbS1pZGVudD4tc3RhcnQgb3IgPGN1c3RvbS1pZGVudD4t
ZW5kIChkZXBlbmRpbmcKKyAgICAvLyBvbiB0aGUgY3NzIHByb3BlcnR5IGJlaW5nIGRlZmluZWQp
IHNwZWNpZmllZCBiZWZvcmUgdGhlIGdyaWQgYXJlYS4gSWYgdGhhdCdzIHRoZSBjYXNlIHJlc29s
dmUgdG8gdGhhdCBncmlkIGxpbmUuCisgICAgLy8gICAgICogT3RoZXJ3aXNlIGNoZWNrIGlmIHRo
ZXJlIGlzIGEgZ3JpZCBsaW5lIG5hbWVkIDxjdXN0b20taWRlbnQ+LgorICAgIC8vICAgICAqIE90
aGVyd2lzZSB0cmVhdCBpdCBhcyBhdXRvLgorICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBu
YW1lZEdyaWRDb2x1bW5MaW5lcyA9IHBhcmVudFN0eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVzKCk7
CisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3JpZFJvd0xpbmVzID0gcGFyZW50
U3R5bGUubmFtZWRHcmlkUm93TGluZXMoKTsKKyAgICBjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBn
cmlkQXJlYU1hcCA9IHBhcmVudFN0eWxlLm5hbWVkR3JpZEFyZWEoKTsKIAotI2RlZmluZSBDTEVB
Ul9VTktOT1dOX05BTUVEX0FSRUEocHJvcCwgUHJvcCkgXAotICAgIGlmIChwcm9wLmlzTmFtZWRH
cmlkQXJlYSgpICYmICFtYXAuY29udGFpbnMocHJvcC5uYW1lZEdyaWRMaW5lKCkpKSBcCi0gICAg
ICAgIHN0eWxlLnNldEdyaWRJdGVtIyNQcm9wKEdyaWRQb3NpdGlvbigpKTsKKyNkZWZpbmUgQURK
VVNUX0dSSURfUE9TSVRJT05fTUFZQkUocG9zaXRpb24sIFByb3AsIG5hbWVkR3JpZExpbmVzLCBz
aWRlKSBcCisgICAgaWYgKHBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkUG9z
aXRpb24+IGFkanVzdGVkUG9zaXRpb24gPSBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oZ3Jp
ZEFyZWFNYXAsIG5hbWVkR3JpZExpbmVzLCBwb3NpdGlvbiwgc2lkZSk7IFwKKyAgICAgICAgaWYg
KGFkanVzdGVkUG9zaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgIHN0eWxlLnNldEdyaWRJdGVtIyNQcm9wKCphZGp1c3RlZFBvc2l0
aW9uKTsgICAgICAgICAgICAgICAgIFwKKyAgICB9CiAKLSAgICBDTEVBUl9VTktOT1dOX05BTUVE
X0FSRUEoY29sdW1uU3RhcnRQb3NpdGlvbiwgQ29sdW1uU3RhcnQpOwotICAgIENMRUFSX1VOS05P
V05fTkFNRURfQVJFQShjb2x1bW5FbmRQb3NpdGlvbiwgQ29sdW1uRW5kKTsKLSAgICBDTEVBUl9V
TktOT1dOX05BTUVEX0FSRUEocm93U3RhcnRQb3NpdGlvbiwgUm93U3RhcnQpOwotICAgIENMRUFS
X1VOS05PV05fTkFNRURfQVJFQShyb3dFbmRQb3NpdGlvbiwgUm93RW5kKTsKKyAgICBBREpVU1Rf
R1JJRF9QT1NJVElPTl9NQVlCRShjb2x1bW5TdGFydFBvc2l0aW9uLCBDb2x1bW5TdGFydCwgbmFt
ZWRHcmlkQ29sdW1uTGluZXMsIENvbHVtblN0YXJ0U2lkZSk7CisgICAgQURKVVNUX0dSSURfUE9T
SVRJT05fTUFZQkUoY29sdW1uRW5kUG9zaXRpb24sIENvbHVtbkVuZCwgbmFtZWRHcmlkQ29sdW1u
TGluZXMsIENvbHVtbkVuZFNpZGUpOworICAgIEFESlVTVF9HUklEX1BPU0lUSU9OX01BWUJFKHJv
d1N0YXJ0UG9zaXRpb24sIFJvd1N0YXJ0LCBuYW1lZEdyaWRSb3dMaW5lcywgUm93U3RhcnRTaWRl
KTsKKyAgICBBREpVU1RfR1JJRF9QT1NJVElPTl9NQVlCRShyb3dFbmRQb3NpdGlvbiwgUm93RW5k
LCBuYW1lZEdyaWRSb3dMaW5lcywgUm93RW5kU2lkZSk7CiB9CiAjZW5kaWYgLyogRU5BQkxFKENT
U19HUklEX0xBWU9VVCkgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggYWI3
ZGU0M2M3NzU3NjQ0MDI0YTM1MTAxOWVjZDgwNGY1ZmMyOWMzYS4uOTg1NDM1MDk3NjMwMTA2Zjcy
YzQzZTU3NGRjMjQzODMwZTczY2EzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBA
IC0yOTYsNiArMjk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkanVzdFJlbmRlclN0eWxlKFJl
bmRlclN0eWxlJiBzdHlsZVRvQWRqdXN0LCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUs
IEVsZW1lbnQqKTsKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIHZvaWQgYWRqdXN0
R3JpZEl0ZW1Qb3NpdGlvbihSZW5kZXJTdHlsZSYgc3R5bGVUb0FkanVzdCwgY29uc3QgUmVuZGVy
U3R5bGUmIHBhcmVudFN0eWxlKSBjb25zdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFBvc2l0
aW9uPiBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYs
IGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0
aW9uU2lkZSkgY29uc3Q7CiAjZW5kaWYKIAogICAgIGJvb2wgZmFzdFJlamVjdFNlbGVjdG9yKGNv
bnN0IFJ1bGVEYXRhJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAKaW5kZXggZmNhZmUwNGNjOWM5Yjg3NGM0MTkxYzc3ZTliZTA3MDgwYjFlZDdhYy4uODI3NzE3
OThmNTUwODdmNjRjMDNmYTY1ZTdmMWUyMDZiMGI3MTJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcApAQCAtODkzLDIwICs4OTMsNiBAQCBQYXNzT3duUHRyPEdyaWRT
cGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5k
ZXJCb3gqCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmlkU3BhbihyZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbiwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKSk7CiB9CiAKLWlubGluZSBzdGF0aWMgc2l6
ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoc2l6ZV90IHJlc29s
dmVkUG9zaXRpb24pCi17Ci0gICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb24gPyByZXNvbHZlZFBv
c2l0aW9uIC0gMSA6IDA7Ci19Ci0KLXN0YXRpYyBzaXplX3QgYWRqdXN0R3JpZFBvc2l0aW9uRm9y
U2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiwgUmVuZGVyR3JpZDo6R3JpZFBvc2l0aW9uU2lk
ZSBzaWRlKQotewotICAgIC8vIEFuIGl0ZW0gZmluaXNoaW5nIG9uIHRoZSBOLXRoIGxpbmUgYmVs
b25ncyB0byB0aGUgTi0xLXRoIGNlbGwuCi0gICAgaWYgKHNpZGUgPT0gUmVuZGVyR3JpZDo6Q29s
dW1uRW5kU2lkZSB8fCBzaWRlID09IFJlbmRlckdyaWQ6OlJvd0VuZFNpZGUpCi0gICAgICAgIHJl
dHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHJlc29sdmVkUG9z
aXRpb24pOwotCi0gICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb247Ci19Ci0KIHNpemVfdCBSZW5k
ZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQ
b3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKIHsKICAgICBB
U1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CkBAIC05MTcsNyArOTAz
LDcgQEAgc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9t
U3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiBwb3MKICAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9z
aXRpdmUoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBjb25zdCBzaXplX3QgbGFz
dExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShzaWRlKTsKLSAgICAgICAgcmV0dXJuIGFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGFzdExpbmUsIHNpZGUpOworICAgICAgICByZXR1cm4g
R3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsK
ICAgICB9CiAKICAgICBzaXplX3QgbmFtZWRHcmlkTGluZUluZGV4OwpAQCAtOTI1LDcgKzkxMSw3
IEBAIHNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0
eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zCiAgICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9
IHN0ZDo6bWluPHNpemVfdD4ocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCksIGl0LT52YWx1ZS5z
aXplKCkpIC0gMTsKICAgICBlbHNlCiAgICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6
bWF4PGludD4oaXQtPnZhbHVlLnNpemUoKSAtIGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24o
KSksIDApOwotICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtu
YW1lZEdyaWRMaW5lSW5kZXhdLCBzaWRlKTsKKyAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1
c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRMaW5lSW5kZXhdLCBzaWRl
KTsKIH0KIAogc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUo
Y29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25z
dApAQCAtOTM5LDcgKzkyNSw3IEBAIHNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0
aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyCiAKICAgICAgICAg
Ly8gSGFuZGxlIDxpbnRlZ2VyPiBleHBsaWNpdCBwb3NpdGlvbi4KICAgICAgICAgaWYgKHBvc2l0
aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMSwgc2lkZSk7CisgICAgICAgICAg
ICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHBvc2l0aW9u
LmludGVnZXJQb3NpdGlvbigpIC0gMSwgc2lkZSk7CiAKICAgICAgICAgc2l6ZV90IHJlc29sdmVk
UG9zaXRpb24gPSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsKICAgICAgICAg
Y29uc3Qgc2l6ZV90IGVuZE9mVHJhY2sgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShzaWRlKTsK
QEAgLTk0OCw3ICs5MzQsNyBAQCBzaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcgogICAgICAgICBpZiAo
ZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gMDsKIAot
ICAgICAgICByZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShlbmRPZlRyYWNrIC0gcmVz
b2x2ZWRQb3NpdGlvbiwgc2lkZSk7CisgICAgICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFkanVz
dEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9zaXRpb24sIHNpZGUp
OwogICAgIH0KICAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3NpdGlvbjoKICAgICB7CkBAIC0xMDQ4
LDcgKzEwMzQsNyBAQCBQYXNzT3duUHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlUm93
RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaQogICAgICAgICBmaXJzdExpbmVB
ZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlv
biAtIGdyaWRMaW5lcy5iZWdpbigpOwogCiAgICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6
Om1pbihncmlkTGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9u
SW5kZXggKyBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOwotICAgIHNpemVfdCByZXNvbHZl
ZEdyaWRMaW5lUG9zaXRpb24gPSBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRT
aWRlKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7CisgICAgc2l6ZV90IHJlc29sdmVkR3JpZExp
bmVQb3NpdGlvbiA9IEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29s
dW1uRW5kU2lkZShncmlkTGluZXNbZ3JpZExpbmVJbmRleF0pOwogICAgIGlmIChyZXNvbHZlZEdy
aWRMaW5lUG9zaXRpb24gPCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCiAgICAgICAgIHJlc29s
dmVkR3JpZExpbmVQb3NpdGlvbiA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKICAgICByZXR1
cm4gR3JpZFNwYW46OmNyZWF0ZShyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3Jp
ZExpbmVQb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAx
OWQwZjg0MmU2OWQ3ZTllNTg3ZjJjY2NlMDcwOWQwYTE4ZTA4OTE2Li5kNzUxMzkzODE4YjM4NzE4
ZTE0OTlkNWQ4NWFiYTNjYTgzNGY3NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmgKQEAgLTU1LDEzICs1NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYXZvaWRz
RmxvYXRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBjYW5Db2xsYXBzZUFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgZW51bSBHcmlkUG9zaXRpb25TaWRlIHsKLSAgICAgICAgQ29sdW1u
U3RhcnRTaWRlLAotICAgICAgICBDb2x1bW5FbmRTaWRlLAotICAgICAgICBSb3dTdGFydFNpZGUs
Ci0gICAgICAgIFJvd0VuZFNpZGUKLSAgICB9OwotCiAgICAgY29uc3QgVmVjdG9yPExheW91dFVu
aXQ+JiBjb2x1bW5Qb3NpdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtblBvc2l0aW9uczsg
fQogICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgcm93UG9zaXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV9yb3dQb3NpdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbi5oCmluZGV4IGY1MzliODk1ZDE0MmQxZWM3ZTlkNDAxZWVhMDQ1NDFi
NjQ1OWYxN2YuLjE2MjRjMGMxMjdmMWM2N2U1YjIyZWJlMjkyZTJkMWE1OTljNDFhMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKQEAgLTQ1LDYg
KzQ1LDEzIEBAIGVudW0gR3JpZFBvc2l0aW9uVHlwZSB7CiAgICAgTmFtZWRHcmlkQXJlYVBvc2l0
aW9uIC8vIDxpZGVudD4KIH07CiAKK2VudW0gR3JpZFBvc2l0aW9uU2lkZSB7CisgICAgQ29sdW1u
U3RhcnRTaWRlLAorICAgIENvbHVtbkVuZFNpZGUsCisgICAgUm93U3RhcnRTaWRlLAorICAgIFJv
d0VuZFNpZGUKK307CisKIGNsYXNzIEdyaWRQb3NpdGlvbiB7CiBwdWJsaWM6CiAgICAgR3JpZFBv
c2l0aW9uKCkKQEAgLTUzLDYgKzYwLDIwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAg
c3RhdGljIGlubGluZSBzaXplX3QgYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5k
U2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiByZXNv
bHZlZFBvc2l0aW9uID8gcmVzb2x2ZWRQb3NpdGlvbiAtIDEgOiAwOworICAgIH0KKworICAgIHN0
YXRpYyBzaXplX3QgYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShzaXplX3QgcmVzb2x2ZWRQb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsKKyAgICAgICAgLy8gQW4gaXRlbSBm
aW5pc2hpbmcgb24gdGhlIE4tdGggbGluZSBiZWxvbmdzIHRvIHRoZSBOLTEtdGggY2VsbC4KKyAg
ICAgICAgaWYgKHNpZGUgPT0gQ29sdW1uRW5kU2lkZSB8fCBzaWRlID09IFJvd0VuZFNpZGUpCisg
ICAgICAgICAgICByZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lk
ZShyZXNvbHZlZFBvc2l0aW9uKTsKKworICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbjsK
KyAgICB9CisKICAgICBib29sIGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiBpbnRlZ2VyUG9z
aXRpb24oKSA+IDA7IH0KIAogICAgIEdyaWRQb3NpdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQpAQCAtMTAzLDcgKzEyNCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBHcmlkUG9zaXRpb24mIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fdHlwZSA9PSBvdGhlci5tX3R5cGUgJiYgbV9pbnRlZ2VyUG9zaXRpb24gPT0gb3Ro
ZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgICAgIHJldHVybiBtX3R5cGUgPT0gb3RoZXIubV90
eXBlICYmIG1faW50ZWdlclBvc2l0aW9uID09IG90aGVyLm1faW50ZWdlclBvc2l0aW9uICYmIG1f
bmFtZWRHcmlkTGluZSA9PSBvdGhlci5tX25hbWVkR3JpZExpbmU7CiAgICAgfQogCiAgICAgYm9v
bCBzaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSBjb25zdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDBlNTE4Yzg3NjQyNDc1MjI0NTc1MjQxM2UwNzcxZGM2N2JkYWYzMjAuLjU3NTZlOGIxOGY0Njgw
ZjQ5N2NmZjgzYTBkZjk2NmYwYTY3YWY4MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNC0w
Mi0yNyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ1NTIEdyaWQgTGF5b3V0XSBGaXggcG9zaXRpb25pbmcgZ3JpZCBpdGVtcyB1c2luZyBuYW1l
ZCBncmlkIGxpbmVzL2FyZWFzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjkzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBhIG5ldyB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgd2UgY29ycmVjdGx5
IHBvc2l0aW9uIGdyaWQgaXRlbXMKKyAgICAgICAgdXNpbmcgbmFtZWQgZ3JpZCBsaW5lcywgZ3Jp
ZCBhcmVhcyBhbmQgYWxzbyB3aXRoIHRoZSBpbXBsaWNpdAorICAgICAgICBuYW1lZCBncmlkIGxp
bmVzIGNyZWF0ZWQgYnkgZ3JpZCBhcmVhcy4KKworICAgICAgICBJJ20gYWxzbyBpbXBvcnRpbmcg
YSB0ZXN0IGZyb20gQmxpbmsgdGhhdCBjaGVja3MgdGhhdCB3ZSBjYW4KKyAgICAgICAgZHluYW1p
Y2FsbHkgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiBhIGdyaWQgaXRlbSBieSBjaGFuZ2luZyB0aGUK
KyAgICAgICAgbmFtZSBvZiB0aGUgZ3JpZCBsaW5lcyB1c2VkIHRvIHBvc2l0aW9uIGl0LgorCisg
ICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXBvc2l0aW9uLWNoYW5nZWQt
ZHluYW1pYy1leHBlY3RlZC50eHQ6CisgICAgICAgIE1lcmdlZCBmcm9tIEJsaW5rIHIxNTM5MTMg
YnkgPGpjaGFmZnJhaXhAY2hyb21pdW0ub3JnPi4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0bWw6IERpdHRvLgorICAg
ICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMtd2l0aC1uYW1lZC1n
cmlkLWFyZWFzLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy1ncmlkLWxheW91dC9uYW1lZC1ncmlkLWxpbmVzLXdpdGgtbmFtZWQtZ3JpZC1hcmVhcy1y
ZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE0LTAyLTI3ICBCZW5qYW1pbiBQb3VsYWluICA8
YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDb21waWxlIGF0dHJpYnV0ZSB2YWx1ZSBt
YXRjaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLXBvc2l0aW9uLWNoYW5nZWQtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWlj
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGEyZWQ0NTAxZjFiNTY4YWEyMjQ5ZTBhMGZiYWRi
NDEwNjBiOGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1pdGVtLXBvc2l0aW9uLWNoYW5nZWQtZHluYW1pYy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5MCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdlIHByb3Blcmx5IHJlY29tcHV0
ZSBvdXIgaW50ZXJuYWwgZ3JpZCB3aGVuIGEgZ3JpZCBpdGVtIGlzIG1vdmVkLgorCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNT
CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tcG9zaXRpb24tY2hhbmdlZC1keW5hbWljLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTYyM2IyYTkwYjQ0NDNhYTcxZjM4YjUxZDAzZDFiNTcxNmE0YjU0NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1w
b3NpdGlvbi1jaGFuZ2VkLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDE5MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwg
MSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHls
ZXNoZWV0Ij4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisuZ3JpZCB7CisgICAgLXdlYmtpdC1n
cmlkLXRlbXBsYXRlLWNvbHVtbnM6ICJjb2wiIDUwcHggImNvbCIgMTAwcHggImNvbCIgMjAwcHgg
ImNvbCI7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3M6ICJyb3ciIDcwcHggInJvdyIg
MTQwcHggInJvdyIgMjgwcHggInJvdyI7Cit9CisuZGlmZmVyZW50TmFtZWRHcmlkTGluZXMgewor
ICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAiY29sMSIgNTBweCAiY29sMiIgMTAw
cHggImNvbDMiIDIwMHB4ICJjb2w0IjsKKyAgICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93czog
InJvdzEiIDcwcHggInJvdzIiIDE0MHB4ICJyb3czIiAyODBweCAicm93NCI7Cit9Cis8L3N0eWxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RQb3NpdGlvbihwb3NpdGlvbiwgc2l6ZSkKK3sKKyAg
ICBncmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImdyaWQiKVswXS5m
aXJzdENoaWxkOworICAgIGdyaWRJdGVtLnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSBwb3NpdGlv
bi5jb2x1bW47CisgICAgZ3JpZEl0ZW0uc3R5bGUud2Via2l0R3JpZFJvdyA9IHBvc2l0aW9uLnJv
dzsKKyAgICBncmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBzaXpl
LndpZHRoKTsKKyAgICBncmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0
Iiwgc2l6ZS5oZWlnaHQpOworICAgIGNoZWNrTGF5b3V0KCIuZ3JpZCIpOworfQorCitmdW5jdGlv
biB1cGRhdGVHcmlkSXRlbVBvc2l0aW9uKCkKK3sKKyAgICAvLyBUZXN0IHdpdGggdGhlIHNhbWUg
dHlwZSBvZiBwb3NpdGlvbnMuCisgICAgLy8gMS4gRXhwbGljaXQgZ3JpZCBsaW5lcy4KKyAgICB0
ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6ICcxIC8gMicgfSwgeyAnd2lk
dGgnOiAnNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzEgLyAzJywgJ3Jvdyc6ICcxIC8gMicgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6
ICc3MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6
ICcxIC8gMycgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisgICAgdGVz
dFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gMicsICdyb3cnOiAnMSAvIDInIH0sIHsgJ3dpZHRo
JzogJzUwJywgJ2hlaWdodCc6ICc3MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzIgLyAzJywgJ3Jvdyc6ICcxIC8gMycgfSwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6
ICcyMTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93Jzog
JzEgLyAzJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0
ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAzJywgJ3Jvdyc6ICcxIC8gMycgfSwgeyAnd2lk
dGgnOiAnMTUwJywgJ2hlaWdodCc6ICcyMTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1
bW4nOiAnMSAvIDMnLCAncm93JzogJzIgLyAzJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0
JzogJzE0MCcgfSk7CisKKyAgICAvLyAyLiBzcGFucy4KKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJzEgLyBzcGFuIDInLCAncm93JzogJzEgLyBzcGFuIDEnIH0sIHsgJ3dpZHRoJzogJzE1
MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAv
IHNwYW4gMScsICdyb3cnOiAnMSAvIHNwYW4gMScgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0
JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMiAvIHNwYW4gMScs
ICdyb3cnOiAnMSAvIHNwYW4gMScgfSwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc3MCcg
fSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcyIC8gc3BhbiAxJywgJ3Jvdyc6ICcx
IC8gc3BhbiAyJyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAg
ICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAvIDMnLCAncm93JzogJ3NwYW4gMiAv
IDMnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnMjEwJyB9KTsKKyAgICB0ZXN0UG9z
aXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMSAvIDMnLCAncm93JzogJ3NwYW4gMiAvIDMnIH0sIHsg
J3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnMjEwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7
ICdjb2x1bW4nOiAnc3BhbiAyIC8gMycsICdyb3cnOiAnc3BhbiAxIC8gMycgfSwgeyAnd2lkdGgn
OiAnMTUwJywgJ2hlaWdodCc6ICcxNDAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4n
OiAnc3BhbiAyIC8gMycsICdyb3cnOiAnc3BhbiAyIC8gMycgfSwgeyAnd2lkdGgnOiAnMTUwJywg
J2hlaWdodCc6ICcyMTAnIH0pOworCisgICAgLy8gMy4gTmFtZWQgZ3JpZCBsaW5lcywgY2hhbmdp
bmcgdGhlIGV4cGxpY2l0IHBvc2l0aW9uLgorICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAn
MSAvIDIgImNvbCInLCAncm93JzogJzEgLyAyICJyb3ciJyB9LCB7ICd3aWR0aCc6ICc1MCcsICdo
ZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMgImNv
bCInLCAncm93JzogJzEgLyAyICJyb3ciJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0Jzog
JzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDIgImNvbCInLCAn
cm93JzogJzEgLyAzICJyb3ciJyB9LCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMjEwJyB9
KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyICJjb2wiJywgJ3Jvdyc6ICcx
IC8gMiAicm93IicgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKworICAg
IHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAiY29sIiAvIDQnLCAncm93JzogJzEgInJvdyIg
LyA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBv
c2l0aW9uKHsgJ2NvbHVtbic6ICcyICJjb2wiIC8gNCcsICdyb3cnOiAnMSAicm93IiAvIDQnIH0s
IHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKworICAgIHRlc3RQb3NpdGlv
bih7ICdjb2x1bW4nOiAnMiAiY29sIiAvIDQnLCAncm93JzogJzIgInJvdyIgLyA0JyB9LCB7ICd3
aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2Nv
bHVtbic6ICcyICJjb2wiIC8gNCcsICdyb3cnOiAnMSAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzog
JzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKworICAgIC8vIDQuIE5hbWVkIGdyaWQgbGluZXMs
IGNoYW5naW5nIHRoZSBuYW1lIG9mIHRoZSBncmlkIGxpbmVzLgorICAgIHRlc3RQb3NpdGlvbih7
ICdjb2x1bW4nOiAnMSAvIDMgImNvbCInLCAncm93JzogJzEgLyAyICJyb3ciJyB9LCB7ICd3aWR0
aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzEgLyAzICJpbnZhbGlkIicsICdyb3cnOiAnMSAvIDIgInJvdyInIH0sIHsgJ3dpZHRoJzog
JzUwJywgJ2hlaWdodCc6ICc3MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzog
JzEgLyA0ICJjb2wiJywgJ3Jvdyc6ICcxIC8gNCAiaW52YWxpZCInIH0sIHsgJ3dpZHRoJzogJzM1
MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAv
IDQgImNvbCInLCAncm93JzogJzEgLyA0ICJyb3ciJyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVp
Z2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgImludmFs
aWQiIC8gNCcsICdyb3cnOiAnMSAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzM1MCcsICdoZWln
aHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgImNvbCIgLyA0
JywgJ3Jvdyc6ICcxICJyb3ciIC8gNCcgfSwgeyAnd2lkdGgnOiAnMzAwJywgJ2hlaWdodCc6ICc0
OTAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcyICJjb2wiIC8gNCcsICdy
b3cnOiAnMiAicm93IiAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDIwJyB9
KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgImNvbCIgLyA0JywgJ3Jvdyc6ICcy
ICJpbnZhbGlkIiAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsK
KworICAgIC8vIDUuIFNwYW4gbmFtZWQgZ3JpZCBsaW5lcywgY2hhbmdpbmcgdGhlIGdyaWQgbGlu
ZSBudW1iZXIuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAzICJjb2wi
JywgJ3Jvdyc6ICcxIC8gc3BhbiAyICJyb3ciJyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0
JzogJzIxMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAyICJj
b2wiJywgJ3Jvdyc6ICcxIC8gc3BhbiAyICJyb3ciJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVp
Z2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgLyBzcGFu
IDMgImNvbCInLCAncm93JzogJzEgLyBzcGFuIDIgInJvdyInIH0sIHsgJ3dpZHRoJzogJzMwMCcs
ICdoZWlnaHQnOiAnMjEwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzIgLyBz
cGFuIDMgImNvbCInLCAncm93JzogJzEgLyBzcGFuIDEgInJvdyInIH0sIHsgJ3dpZHRoJzogJzMw
MCcsICdoZWlnaHQnOiAnNzAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICdz
cGFuIDIgImNvbCIgLyAzJywgJ3Jvdyc6ICdzcGFuIDIgInJvdyIgLyA0JyB9LCB7ICd3aWR0aCc6
ICcxNTAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6
ICdzcGFuIDEgImNvbCIgLyAzJywgJ3Jvdyc6ICdzcGFuIDIgInJvdyIgLyA0JyB9LCB7ICd3aWR0
aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29s
dW1uJzogJ3NwYW4gMiAiY29sIiAvIDMnLCAncm93JzogJ3NwYW4gMiAicm93IiAvIDQnIH0sIHsg
J3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDIwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAn
Y29sdW1uJzogJ3NwYW4gMiAiY29sIiAvIDMnLCAncm93JzogJ3NwYW4gMyAicm93IiAvIDQnIH0s
IHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKworICAgIC8vIFRlc3QgdHJh
bnNpdGlvbiBhY3Jvc3MgZ3JpZCBsaW5lcyB0eXBlcy4KKyAgICAvLyAxLiBFeHBsaWNpdCA8LT4g
c3BhbnMuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gMycsICdyb3cnOiAnMSAv
IDInIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3Np
dGlvbih7ICdjb2x1bW4nOiAnMSAvIHNwYW4gMycsICdyb3cnOiAnMSAvIDInIH0sIHsgJ3dpZHRo
JzogJzM1MCcsICdoZWlnaHQnOiAnNzAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVt
bic6ICcxIC8gMycsICdyb3cnOiAnMSAvIHNwYW4gMicgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hl
aWdodCc6ICcyMTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAn
cm93JzogJzEgLyAyJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzcwJyB9KTsKKwor
ICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAxIC8gMycsICdyb3cnOiAnMSAvIDIn
IH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNzAnIH0pOworICAgIHRlc3RQb3NpdGlv
bih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEgLyAyJyB9LCB7ICd3aWR0aCc6ICcxNTAn
LCAnaGVpZ2h0JzogJzcwJyB9KTsKKworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAv
IDMnLCAncm93JzogJzEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQ5MCcg
fSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gMycsICdyb3cnOiAnc3BhbiAy
IC8gNCcgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdodCc6ICc0MjAnIH0pOworCisgICAgLy8g
Mi4gU3BhbiA8LT4gbmFtZWQgZ3JpZCBsaW5lcy4KKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzEgLyAiY29sIiAzJywgJ3Jvdyc6ICcxIC8gc3BhbiA0JyB9LCB7ICd3aWR0aCc6ICcxNTAn
LCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8g
c3BhbiAzJywgJ3Jvdyc6ICcxIC8gc3BhbiA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0
JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAiY29sIiAz
JywgJ3Jvdyc6ICcxIC8gc3BhbiAzJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQ5
MCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gImNvbCIgMycsICdyb3cn
OiAnMSAvICJyb3ciIDMnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnMjEwJyB9KTsK
KworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnc3BhbiAxIC8gMycsICdyb3cnOiAnc3Bh
biAyIC8gNCcgfSwgeyAnd2lkdGgnOiAnMTAwJywgJ2hlaWdodCc6ICc0MjAnIH0pOworICAgIHRl
c3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAiY29sIiAvIDMnLCAncm93JzogJ3NwYW4gMiAvIDQn
IH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnNDIwJyB9KTsKKworICAgIHRlc3RQb3Np
dGlvbih7ICdjb2x1bW4nOiAnc3BhbiAxIC8gMycsICdyb3cnOiAnImNvbCIgMSAvIDQnIH0sIHsg
J3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAn
Y29sdW1uJzogJ3NwYW4gMSAvIDMnLCAncm93JzogJ3NwYW4gMSAvIDQnIH0sIHsgJ3dpZHRoJzog
JzEwMCcsICdoZWlnaHQnOiAnMjgwJyB9KTsKKworICAgIC8vIDMuIE5hbWVkIGdyaWQgbGluZXMg
dG8gc3BhbiBuYW1lZCBncmlkIGxpbmUuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcx
IC8gImNvbCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hl
aWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIHNwYW4g
ImNvbCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAnd2lkdGgnOiAnMzUwJywgJ2hlaWdo
dCc6ICc0OTAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gImNvbCIg
MycsICdyb3cnOiAnMSAvIHNwYW4gInJvdyIgMycgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hlaWdo
dCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvICJjb2wiIDMn
LCAncm93JzogJzEgLyAicm93IiAzJyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzIx
MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gImNvbCIgMSAvIDMn
LCAncm93JzogJ3NwYW4gMiAvIDQnIH0sIHsgJ3dpZHRoJzogJzEwMCcsICdoZWlnaHQnOiAnNDIw
JyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgImNvbCIgLyAzJywgJ3Jvdyc6
ICdzcGFuIDIgLyA0JyB9LCB7ICd3aWR0aCc6ICcxNTAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisK
KyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gImNvbCIgMSAvIDMnLCAncm93Jzog
JyJjb2wiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7Cisg
ICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICdzcGFuICJjb2wiIDEgLyAzJywgJ3Jvdyc6ICdz
cGFuICJjb2wiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICcxMDAnLCAnaGVpZ2h0JzogJzI4MCcgfSk7
CisKKyAgICAvLyA0LiBFeHBsaWNpdCA8LT4gbmFtZWQgZ3JpZCBsaW5lcy4KKyAgICAvLyBXZSBu
ZWVkIHRvIG1vZGlmeSB0aGUgZ3JpZCdzIGRlZmluaXRpb25zIHNvIHRoYXQgd2UgaGF2ZSBleHBs
aWNpdCBhbmQgbmFtZWQgZ3JpZCBsaW5lcyBub3QgbWF0Y2ggYW55bW9yZS4KKyAgICB2YXIgZ3Jp
ZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJncmlkIilbMF07Cisg
ICAgZ3JpZEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZGlmZmVyZW50TmFtZWRHcmlkTGluZXMiKTsK
KworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvICJjb2w0IiAzJywgJ3Jvdyc6ICcx
IC8gNCcgfSwgeyAnd2lkdGgnOiAnMzUwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQ
b3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDMnLCAncm93JzogJzEgLyA0JyB9LCB7ICd3aWR0aCc6
ICcxNTAnLCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1u
JzogJzEgLyAiY29sNCIgMycsICdyb3cnOiAnMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzM1MCcsICdo
ZWlnaHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAiY29s
NCIgMycsICdyb3cnOiAnMSAvICJyb3czIiA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0
JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJyJjb2wyIiAxIC8g
NCcsICdyb3cnOiAnMSAicm93MiIgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0Jzog
JzQyMCcgfSk7CisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gNCcsICdyb3cnOiAn
MSAicm93MiIgLyA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisK
KyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJyJjb2wyIiAxIC8gNCcsICdyb3cnOiAnMSAv
IDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnNDkwJyB9KTsKKyAgICB0ZXN0UG9z
aXRpb24oeyAnY29sdW1uJzogJyJjb2wyIiAxIC8gNCcsICdyb3cnOiAnMSAicm93MiIgLyA0JyB9
LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICAvLyA1LiBTcGFu
IDwtPiBzcGFuIG5hbWVkIGdyaWQgbGluZXMuCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6
ICcxIC8gc3BhbiAiY29sNCIgMicsICdyb3cnOiAnMyAvIHNwYW4gMScgfSwgeyAnd2lkdGgnOiAn
MzUwJywgJ2hlaWdodCc6ICcyODAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAn
MSAvIHNwYW4gMicsICdyb3cnOiAnMyAvIHNwYW4gMScgfSwgeyAnd2lkdGgnOiAnMTUwJywgJ2hl
aWdodCc6ICcyODAnIH0pOworCisgICAgdGVzdFBvc2l0aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3Bh
biAiY29sNCIgMycsICdyb3cnOiAnMSAvIHNwYW4gNCcgfSwgeyAnd2lkdGgnOiAnMzUwJywgJ2hl
aWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIHNwYW4g
ImNvbDQiIDMnLCAncm93JzogJzEgLyBzcGFuICJyb3czIiA0JyB9LCB7ICd3aWR0aCc6ICczNTAn
LCAnaGVpZ2h0JzogJzIxMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3Nw
YW4gMiAvIDQnLCAncm93JzogJ3NwYW4gMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWln
aHQnOiAnMjgwJyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gImNvbDEi
IDIgLyA0JywgJ3Jvdyc6ICdzcGFuIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICczNTAnLCAnaGVpZ2h0
JzogJzI4MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAvIDQn
LCAncm93JzogJ3NwYW4gMSAvIDQnIH0sIHsgJ3dpZHRoJzogJzMwMCcsICdoZWlnaHQnOiAnMjgw
JyB9KTsKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3NwYW4gMiAvIDQnLCAncm93Jzog
J3NwYW4gInJvdzIiIDEgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAnLCAnaGVpZ2h0JzogJzQyMCcg
fSk7CisKKyAgICAvLyA2LiBFeHBsaWNpdCB0byBzcGFuIG5hbWVkIGdyaWQgbGluZS4KKyAgICB0
ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6ICcyIC8gc3BhbiAicm93MyIg
MScgfSwgeyAnd2lkdGgnOiAnNTAnLCAnaGVpZ2h0JzogJzE0MCcgfSk7CisgICAgdGVzdFBvc2l0
aW9uKHsgJ2NvbHVtbic6ICcxIC8gc3BhbiAiY29sMyIgMicsICdyb3cnOiAnMiAvIHNwYW4gInJv
dzMiIDEnIH0sIHsgJ3dpZHRoJzogJzE1MCcsICdoZWlnaHQnOiAnMTQwJyB9KTsKKworICAgIHRl
c3RQb3NpdGlvbih7ICdjb2x1bW4nOiAnMSAvIDInLCAncm93JzogJzIgLyBzcGFuICJyb3czIiA0
JyB9LCB7ICd3aWR0aCc6ICc1MCcsICdoZWlnaHQnOiAnMTQwJyB9KTsKKyAgICB0ZXN0UG9zaXRp
b24oeyAnY29sdW1uJzogJzEgLyAyJywgJ3Jvdyc6ICcyIC8gNCcgfSwgeyAnd2lkdGgnOiAnNTAn
LCAnaGVpZ2h0JzogJzQyMCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3Nw
YW4gImNvbDIiIDEgLyA0JywgJ3Jvdyc6ICdzcGFuICJyb3cxIiAzIC8gNCcgfSwgeyAnd2lkdGgn
OiAnMzAwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4n
OiAnMSAvIDQnLCAncm93JzogJ3NwYW4gInJvdzEiIDMgLyA0JyB9LCB7ICd3aWR0aCc6ICczNTAn
LCAnaGVpZ2h0JzogJzQ5MCcgfSk7CisKKyAgICB0ZXN0UG9zaXRpb24oeyAnY29sdW1uJzogJ3Nw
YW4gImNvbDIiIDEgLyA0JywgJ3Jvdyc6ICdzcGFuICJyb3cxIiAzIC8gNCcgfSwgeyAnd2lkdGgn
OiAnMzAwJywgJ2hlaWdodCc6ICc0OTAnIH0pOworICAgIHRlc3RQb3NpdGlvbih7ICdjb2x1bW4n
OiAnc3BhbiAiY29sMiIgMSAvIDQnLCAncm93JzogJzMgLyA0JyB9LCB7ICd3aWR0aCc6ICczMDAn
LCAnaGVpZ2h0JzogJzI4MCcgfSk7Cit9Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IHVwZGF0ZUdyaWRJdGVtUG9zaXRpb24sIGZhbHNlKTsKKzwvc2NyaXB0PgorPGJvZHk+CisKKzxw
PlRoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSBwcm9wZXJseSByZWNvbXB1dGUgb3VyIGludGVybmFs
IGdyaWQgd2hlbiBhIGdyaWQgaXRlbSBpcyBtb3ZlZC48L3A+CisKKzxkaXYgY2xhc3M9ImdyaWQi
PjxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSI+PC9kaXY+PC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVk
LWdyaWQtbGluZXMtd2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lcy13aXRo
LW5hbWVkLWdyaWQtYXJlYXMtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNh
MDgzMzA1MjUzNmQwYTM5N2JiYjQ4OGE2M2JkNTdkZGMxMWEzNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMtd2l0aC1u
YW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSByZXNvbHZlIG5hbWVkIGdyaWQgbGluZSBwZXIgdGhl
IHNwZWNpZmljYXRpb24uCisKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQt
bGluZXMtd2l0aC1uYW1lZC1ncmlkLWFyZWFzLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZXMtd2l0aC1uYW1lZC1ncmlkLWFy
ZWFzLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzdlMWI0YjBjMjFhYjc5ZDEyZTFkOGQx
NDMxOGNjNWJlMmY3NGNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lcy13aXRoLW5hbWVkLWdyaWQtYXJlYXMtcmVzb2x1
dGlvbi5odG1sCkBAIC0wLDAgKzEsMTk5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3Jp
cHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCisgIC5ncmlkQXJlYXMgeworICAgICAgLXdlYmtpdC1n
cmlkLXRlbXBsYXRlLWFyZWFzOiAiLiBhIGEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjIGEgYSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4gLiBk
IjsKKyAgfQorCisgIC5ncmlkTm9MaW5lTmFtZXMgeworICAgICAgLXdlYmtpdC1ncmlkLXRlbXBs
YXRlLWNvbHVtbnM6IDUwcHggMTAwcHggMjAwcHg7CisgICAgICAtd2Via2l0LWdyaWQtdGVtcGxh
dGUtcm93czogNTBweCAxMDBweCAyMDBweDsKKyAgfQorCisgIC5ncmlkVW5pcXVlTmFtZXMgewor
ICAgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICJhIiA1MHB4ICJiIiAiYi1zdGFy
dCIgMTAwcHggImMiIDIwMHB4ICJkIjsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dz
OiAiZSIgNTBweCAiZiIgMTAwcHggImciICJnLXN0YXJ0IiAyMDBweCAiaCI7CisgIH0KKworICAu
Z3JpZFdpdGhOYW1lZExpbmVCZWZvcmVHcmlkQXJlYSB7CisgICAgICAtd2Via2l0LWdyaWQtdGVt
cGxhdGUtY29sdW1uczogImEtc3RhcnQiICJjLXN0YXJ0IiA1MHB4ICJkLXN0YXJ0IiAxMDBweCAy
MDBweDsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiAiYy1zdGFydCIgNTBweCAi
ZC1zdGFydCIgMTAwcHggMjAwcHg7CisgIH0KKworICAuZ3JpZFdpdGhOYW1lZExpbmVBZnRlckdy
aWRBcmVhIHsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDEwMHB4
ICJhLXN0YXJ0IiAyMDBweDsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHB4
IDEwMHB4ICJjLXN0YXJ0IiAyMDBweDsKKyAgfQorCisgIC5ncmlkV2l0aEVuZExpbmVzIHsKKyAg
ICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDEwMHB4ICJhLWVuZCIgMjAw
cHggImMtZW5kIjsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHB4ICJjLWVu
ZCIgMTAwcHggImQtZW5kIiAyMDBweDsKKyAgfQorCisgIC5ncmlkUmVwZWF0ZWROYW1lcyB7Cisg
ICAgICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogImQtc3RhcnQiIDUwcHggImQtc3Rh
cnQiIDEwMHB4ICJkLXN0YXJ0IiAyMDBweDsKKyAgICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1y
b3dzOiA1MHB4ICJjLWVuZCIgMTAwcHggImMtZW5kIiAyMDBweCAiYy1lbmQiOworICB9CisKKzwv
c3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNoZWNrTGF5b3V0KCcuZ3JpZCcpIj4KKwor
PHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdlIHJlc29sdmUgbmFtZWQgZ3JpZCBsaW5lIHBlciB0
aGUgc3BlY2lmaWNhdGlvbi48L3A+CisKKzwhLS0gQ2hlY2sgcG9zaXRpb25pbmcgdXNpbmcgdW5p
cXVlIGdyaWQtbGluZSBuYW1lcyAtLT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+
CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZFVuaXF1ZU5hbWVzIj4KKyAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBiOyIgZGF0YS1vZmZz
ZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBlOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0
YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVp
Z2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0i
LXdlYmtpdC1ncmlkLWNvbHVtbjogYi1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdl
YmtpdC1ncmlkLXJvdzogZy1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9
IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAi
PjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRp
dmUiPgorICA8ZGl2IGNsYXNzPSJncmlkIGdyaWRVbmlxdWVOYW1lcyI+CisgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYiAvIGQ7IiBk
YXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
MzAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNp
emVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1yb3c6IGcgLyBoOyIgZGF0YS1vZmZz
ZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYzsgLXdlYmtpdC1ncmlkLXJvdzog
ZjsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQt
d2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwvZGl2Pgor
PC9kaXY+CisKKzwhLS0gQ2hlY2sgcG9zaXRpb25pbmcgdXNpbmcgdW5pcXVlIGdyaWQtbGluZSBu
YW1lcyBtaXhlZCB3aXRoIGludGVnZXJzIC0tPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0
aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkVW5pcXVlTmFtZXMiPgorICAgIDxkaXYgY2xh
c3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGIgLyA0OyIg
ZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiAzIC8gaDsiIGRhdGEtb2Zm
c2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IDI7IC13ZWJraXQtZ3JpZC1yb3c6
IGc7IiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGE7IC13
ZWJraXQtZ3JpZC1yb3c6IDI7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2
PgorICA8L2Rpdj4KKzwvZGl2PgorCis8IS0tIENoZWNrIHRoYXQgd2l0aG91dCBuYW1lZCBncmlk
QXJlYXMgdGhlcmUgYXJlIG5vIGltcGxpY2l0IGdyaWQtbGluZSBuYW1lcyBkZWZpbmVkIC0tPgor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlk
VW5pcXVlTmFtZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13
ZWJraXQtZ3JpZC1jb2x1bW46IGMtc3RhcnQ7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNl
dC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUw
Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0
LWdyaWQtcm93OiBmLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+
CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNv
bHVtbjogYy1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogZi1lbmQiIGRhdGEtb2Zmc2V0LXg9IjAi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5
bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGItZW5kOyAtd2Via2l0LWdyaWQtcm93OiBoLXN0YXJ0
IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRo
PSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4K
KworPCEtLSBDaGVjayB0aGF0IGdyaWRBcmVhJ3MgaW1wbGljaXQgbmFtZXMgYXJlIHdlbGwgZGVm
aW5lZCAtLT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9
ImdyaWQgZ3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRU
b0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYS1zdGFydDsgLXdlYmtpdC1n
cmlkLXJvdzogZC1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIxNTAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9k
aXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlk
LWNvbHVtbjogYS1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjUw
IiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogZC1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzog
Yy1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhw
ZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwv
ZGl2PgorPC9kaXY+CisKKzwhLS0gQ2hlY2sgcG9zaXRpb25pbmcgdXNpbmcgZ3JpZCBhcmVhcyAt
LT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9ImdyaWQg
Z3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRB
cmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogZDsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIg
ZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5
bGU9Ii13ZWJraXQtZ3JpZC1yb3c6IGQ7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15
PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAw
Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0
LWdyaWQtY29sdW1uOiBjOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzog
YzsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9k
aXY+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9Imdy
aWQgZ3JpZEFyZWFzIGdyaWROb0xpbmVOYW1lcyI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYTsiIGRhdGEtb2Zmc2V0LXg9IjUw
IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzMDAiIGRhdGEtZXhwZWN0
ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBz
dHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogYTsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0
LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTUw
Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0
LWdyaWQtY29sdW1uOiBhOyAtd2Via2l0LWdyaWQtcm93OiBhOyIgZGF0YS1vZmZzZXQteD0iNTAi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMwMCIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjE1MCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gVXNlIGdyaWQg
YXJlYSdzIGltcGxpY2l0IGxpbmUgbmFtZXMgaWYgZGVmaW5lZCBiZWZvcmUgZXhwbGljaXRseSBu
YW1lZCBncmlkIGxpbmVzIC0tPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAg
PGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdpdGhOYW1lZExpbmVBZnRlckdyaWRBcmVh
Ij4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQt
Y29sdW1uOiBkOyIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLXJvdzogZDsi
IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGM7IiBkYXRhLW9m
ZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBjOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0
YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0iMTAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0icG9zaXRp
b246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdpdGhOYW1l
ZExpbmVBZnRlckdyaWRBcmVhIj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0
eWxlPSItd2Via2l0LWdyaWQtY29sdW1uLXN0YXJ0OiBhLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0i
NTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEi
IHN0eWxlPSItd2Via2l0LWdyaWQtcm93LXN0YXJ0OiBjLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0i
MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0i
cG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdp
dGhOYW1lZExpbmVBZnRlckdyaWRBcmVhIj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBhOyIgZGF0YS1vZmZzZXQteD0iNTAiIGRh
dGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMwMCIgZGF0YS1leHBlY3RlZC1o
ZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxl
PSItd2Via2l0LWdyaWQtcm93OiBkOyIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0i
MTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1n
cmlkLWNvbHVtbjogYTsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBk
YXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjMwMCIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gVXNlIGV4cGxp
Y2l0bHkgbmFtZWQgZ3JpZCBsaW5lcyBpZiB0aGV5J3JlIGRlZmluZWQgYmVmb3JlIHRoZSBncmlk
IGFyZWEgLS0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICA8ZGl2IGNsYXNz
PSJncmlkIGdyaWRBcmVhcyBncmlkV2l0aE5hbWVkTGluZUJlZm9yZUdyaWRBcmVhIj4KKyAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBk
OyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjMwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBkOyIgZGF0YS1vZmZz
ZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRh
LWV4cGVjdGVkLWhlaWdodD0iMzAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBjOyIgZGF0YS1vZmZzZXQteD0iMCIg
ZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQt
aGVpZ2h0PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHls
ZT0iLXdlYmtpdC1ncmlkLXJvdzogYzsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9
IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTUwIj48
L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZl
Ij4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3JpZFdpdGhOYW1lZExpbmVCZWZvcmVH
cmlkQXJlYSI+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtp
dC1ncmlkLWNvbHVtbi1zdGFydDogZC1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSI1MCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdl
YmtpdC1ncmlkLXJvdy1zdGFydDogZC1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zm
c2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZSI+CisgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZEFyZWFzIGdyaWRXaXRoTmFtZWRMaW5l
QmVmb3JlR3JpZEFyZWEiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9
Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGE7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15
PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1n
cmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwMCI+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjog
YTsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9
IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIzMDAi
PjwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8IS0tIENoZWNrIHRoYXQgYSAiLXN0YXJ0IiBp
ZGVudCBpbiBhIGVuZCBjb2x1bW4gb3IgYSAiLWVuZCIgaWRlbnQgaW4gYSBzdGFydCBjb2x1bW4g
aXMgbm90IHRyZWF0ZWQgYXMgYSBpbXBsaWNpdCBncmlkIGxpbmUgb2YgYSBncmlkIGFyZWEgLS0+
Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICA8ZGl2IGNsYXNzPSJncmlkIGdy
aWRBcmVhcyBncmlkTm9MaW5lTmFtZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGEgLyBhLXN0YXJ0OyAtd2Via2l0LWdyaWQt
cm93OiBkLXN0YXJ0OyIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAwIj48L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29s
dW1uOiBkIC8gZC1zdGFydDsgLXdlYmtpdC1ncmlkLXJvdzogYy1zdGFydDsiIGRhdGEtb2Zmc2V0
LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYzsgLXdlYmtpdC1ncmlkLXJvdzog
YSAvIGEtc3RhcnQ7IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBk
OyAtd2Via2l0LWdyaWQtcm93OiBjIC8gYy1zdGFydDsiIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0
YS1vZmZzZXQteT0iNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIwMCIgZGF0YS1leHBlY3RlZC1o
ZWlnaHQ9IjEwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzwhLS0gQ2hlY2sgdGhhdCB3
ZSBwcm9wZXJ0bHkgcmVzb2x2ZSBleHBsaWNpdCAiLWVuZCIgbGluZXMgaW5zaWRlIGdyaWQgYXJl
YXMgLS0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICA8ZGl2IGNsYXNzPSJn
cmlkIGdyaWRBcmVhcyBncmlkV2l0aEVuZExpbmVzIj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRv
R3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtY29sdW1uOiBhIiBkYXRhLW9mZnNldC14PSI1
MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iNTAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIg
c3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGE7IC13ZWJraXQtZ3JpZC1yb3c6IGMiIGRhdGEt
b2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAw
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Via2l0LWdyaWQtcm93OiBkOyIgZGF0YS1vZmZzZXQteD0i
MCIgZGF0YS1vZmZzZXQteT0iMTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVh
IiBzdHlsZT0iLXdlYmtpdC1ncmlkLWNvbHVtbjogYTsgLXdlYmtpdC1ncmlkLXJvdzogZDsiIGRh
dGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+
CisKKzwhLS0gQ2hlY2sgdGhhdCB3ZSBhbHdheXMgcGljayB0aGUgZmlyc3QgZGVmaW5pdGlvbiB3
aGVuIG11bHRpcGxlIGdyaWQgbGluZXMgaGF2ZSB0aGUgc2FtZSBuYW1lIC0tPgorPGRpdiBzdHls
ZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXJlYXMgZ3Jp
ZFJlcGVhdGVkTmFtZXMiPgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgc3R5bGU9
Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGQ7IC13ZWJraXQtZ3JpZC1yb3c6IGMiIGRhdGEtb2Zmc2V0
LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzNTAiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InNpemVkVG9Hcmlk
QXJlYSIgc3R5bGU9Ii13ZWJraXQtZ3JpZC1jb2x1bW46IGQtc3RhcnQgLyBkLWVuZDsgLXdlYmtp
dC1ncmlkLXJvdzogYy1zdGFydCAvIGMtZW5kIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNl
dC15PSI1MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMzUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
MTAwIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIHN0eWxlPSItd2Vi
a2l0LWdyaWQtY29sdW1uOiBjOyAtd2Via2l0LWdyaWQtcm93OiBkIiBkYXRhLW9mZnNldC14PSIw
IiBkYXRhLW9mZnNldC15PSIxNTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgo=
</data>
<flag name="review"
          id="249605"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>