<?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>179573</bug_id>
          
          <creation_ts>2017-11-10 18:30:04 -0800</creation_ts>
          <short_desc>Clean up old URL parser remnants</short_desc>
          <delta_ts>2017-11-15 09:33:52 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1370626</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-10 18:30:04 -0800</bug_when>
    <thetext>Clean up old URL parser remnants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370627</commentid>
    <comment_count>1</comment_count>
      <attachid>326670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-10 18:32:01 -0800</bug_when>
    <thetext>Created attachment 326670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370649</commentid>
    <comment_count>2</comment_count>
      <attachid>326677</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-10 20:40:36 -0800</bug_when>
    <thetext>Created attachment 326677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370652</commentid>
    <comment_count>3</comment_count>
      <attachid>326678</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-10 22:05:38 -0800</bug_when>
    <thetext>Created attachment 326678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370797</commentid>
    <comment_count>4</comment_count>
      <attachid>326678</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-12 17:54:14 -0800</bug_when>
    <thetext>Comment on attachment 326678
Patch

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

Looks OK, except I think this breaks the context menu’s handling of some special characters.

&gt; Source/WebCore/platform/URL.cpp:547
&gt; +    for (size_t i = 0; i &lt; input.length(); ++i) {
&gt; +        if (UNLIKELY(shouldEncode(input[i]))) {
&gt; +            CString utf8 = input.utf8();
&gt; +            StringBuilder builder;
&gt; +            builder.reserveCapacity(utf8.length() + 2);
&gt; +            for (size_t j = 0; j &lt; utf8.length(); j++) {
&gt; +                auto c = utf8.data()[j];
&gt; +                if (shouldEncode(c)) {
&gt; +                    builder.append(&apos;%&apos;);
&gt; +                    builder.append(upperNibbleToASCIIHexDigit(c));
&gt; +                    builder.append(lowerNibbleToASCIIHexDigit(c));
&gt; +                } else
&gt; +                    builder.append(c);
&gt; +            }
&gt; +            return builder.toString();
&gt; +        }
&gt; +    }
&gt; +    return input;

It’s inelegant to have the algorithm for actually encoding nested inside an if statement in the middle of a loop (containing a second loop!). We should separate the two loops, putting them into separate functions or lambdas if we want to avoid booleans. Another idea (see below) is to use one loop to compute the length, and another to do the encoding, then there’s a clean place to exit between the two.

It’s not quite right to use size_t to iterate a String; indices into WTF::String are unsigned, not size_t, so it’s slightly wasteful to explicitly use the bigger type.

This loop looks to me like it will be pretty slow, but I guess that’s OK. Here are some thoughts on performance:

- Calling a function pointer once per character seems like it will be pretty expensive. But maybe it’s OK for the way we are using this.

- Converting to UTF-8 using String::utf8 means allocating and destroying a CStringBuffer. That’s costly and we can make sure we have code that converts to UTF-8 in streaming fashion without a buffer.

- Returning a String that is then used to concatenate with other strings means allocating and destroying a StringImpl. If this was turned into a StringConcatenate StringTypeAdapter then callers could concatenate this with other strings and only allocate one buffer for the entire result, eliminating this extra StringImpl.

- Calling CString::length and CString::data each time through a loop is not so great. They both do null checks on m_buffer and dereference it each time; I am not sure the compiler will be smart enough to hoist all of that out of the loop, given that we are calling a function through a function pointer each time through.

- I don’t fully understand the rationale for the StringBuilder::reserveCapacity call. It seems to make the assumption that exactly one character needs to be percent-encoded. That makes it likely we will need to reallocate the StringBuffer. If we split the function into two halves as I suggested above, we could compute the exact correct length the first time through instead of stopping on the first character we should encode. Then we could use String::createUninitialized instead of StringBuilder to make the string, if we aren’t doing the StringTypeAdapter thing yet.

&gt; Source/WebCore/platform/URL.cpp:666
&gt; +    auto questionMarkOrNumberSign = [] (UChar c) {
&gt; +        return c == &apos;?&apos; || c == &apos;#&apos;;
&gt; +    };

Could use the word &quot;character&quot;. I don’t think it would be any harder to read.

&gt; Source/WebCore/platform/URL.cpp:667
&gt; +    URLParser parser(makeString(m_string.left(m_portEnd), percentEncodeCharacters(path, questionMarkOrNumberSign), m_string.substring(m_pathEnd)));

makeString can work with StringView arguments instead of String arguments, so we could cut down on string allocations here by using StringView::substring instead of String::left and String::substring.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:65
&gt; -    String encoded = encodeWithURLEscapeSequences(searchString);
&gt; -    encoded.replace(ASCIILiteral { &quot;%20&quot; }, ASCIILiteral { &quot;+&quot; });
&gt;  
&gt; -    String url = &quot;http://www.google.com/search?q=&quot; + encoded + &quot;&amp;ie=UTF-8&amp;oe=UTF-8&quot;;
&gt; +    URL url(URL(), &quot;https://www.google.com/search?q=&quot; + searchString + &quot;&amp;ie=UTF-8&amp;oe=UTF-8&quot;);

This doesn’t seem quite right.

I understand that the URL parser will escape characters that would make the URL illegal otherwise, such as control characters, non-ASCII characters, and spaces. But there is other escaping that is needed to successfully convey an arbitrary search string to the server. Four examples:

&quot;#&quot; needs to be represented as &quot;%23&quot;, otherwise it will be treated as the end of the query, and the part after it will be treated as the fragment
&quot;%&quot; needs to be represented as &quot;%25&quot; if it comes before valid hex digits, otherwise it will be treated as a the start of an escape sequence
&quot;&amp;&quot; needs to be represented as &quot;%26&quot;, otherwise it will be treated as the end of the string, delimiting another argument
&quot;+&quot; needs to be represented as &quot;%2B&quot;, otherwise it will be treated as a space

After this change I don’t think we can correctly do searches for strings containing those characters. If we wanted the URL class to help us, using URL::setQuery instead of concatenating would take care of &quot;#&quot;, but not the other characters. I don’t think the URL class has the functions needed to deal with these other issues.

The comment in the ChangeLog does not offer rationale for why we now decided to use &quot;%20&quot; rather than &quot;+&quot;. We went out of our way to send the shorter form before; this patch removes the code without comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371445</commentid>
    <comment_count>5</comment_count>
      <attachid>326891</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 10:56:44 -0800</bug_when>
    <thetext>Created attachment 326891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371455</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 11:08:53 -0800</bug_when>
    <thetext>&gt; It’s not quite right to use size_t to iterate a String; indices into
&gt; WTF::String are unsigned, not size_t, so it’s slightly wasteful to
&gt; explicitly use the bigger type.
They both would fit into one register, so they would be just as fast.  I changed it to unsigned, but I think we should instead change the String operator[] and length to use size_t instead of unsigned.

&gt; - Converting to UTF-8 using String::utf8 means allocating and destroying a
&gt; CStringBuffer. That’s costly and we can make sure we have code that converts
&gt; to UTF-8 in streaming fashion without a buffer.
This could definitely be improved, but this is the same as what we do now.

&gt; - Returning a String that is then used to concatenate with other strings
&gt; means allocating and destroying a StringImpl. If this was turned into a
&gt; StringConcatenate StringTypeAdapter then callers could concatenate this with
&gt; other strings and only allocate one buffer for the entire result,
&gt; eliminating this extra StringImpl.
I added this optimization everywhere in this file.

&gt; - I don’t fully understand the rationale for the
&gt; StringBuilder::reserveCapacity call. It seems to make the assumption that
&gt; exactly one character needs to be percent-encoded. That makes it likely we
&gt; will need to reallocate the StringBuffer. If we split the function into two
&gt; halves as I suggested above, we could compute the exact correct length the
&gt; first time through instead of stopping on the first character we should
&gt; encode. Then we could use String::createUninitialized instead of
&gt; StringBuilder to make the string, if we aren’t doing the StringTypeAdapter
&gt; thing yet.
I was optimistically hoping that we would only need to encode one character, and if we need to encode more then we can allocate again.  I removed this maybe-optimization-maybe-regression.

&gt; I understand that the URL parser will escape characters that would make the
&gt; URL illegal otherwise, such as control characters, non-ASCII characters, and
&gt; spaces. But there is other escaping that is needed to successfully convey an
&gt; arbitrary search string to the server. 
We also need to encode non-ASCII characters.  I remove this change and use the user info set to encode these queries, which isn&apos;t completely correct, but it&apos;s about as incorrect as what we used to do and it&apos;s non-standardized anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371469</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-14 11:15:41 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/224823/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371888</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:33:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/35561963&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326670</attachid>
            <date>2017-11-10 18:32:01 -0800</date>
            <delta_ts>2017-11-10 20:40:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179573-20171110183200.patch</filename>
            <type>text/plain</type>
            <size>40470</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTExLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
b2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gd2UgdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgVVJMUGFyc2Vy
LCB3ZSBrZXB0IHRoZSBvbGQgY2hhcmFjdGVyIHRhYmxlcyB3aGljaCB3ZXJlIGxlc3Mgc3BlYy1j
b25mb3JtYW50LgorICAgICAgICBSZW1vdmluZyB0aGVtIGFuZCB0cmFuc2l0aW9uaW5nIHRvIFVS
TFBhcnNlcidzIHRhYmxlIG1ha2VzIG1vcmUgd2ViIHBsYXRmb3JtIHRlc3RzIHBhc3MhCisKKyAg
ICAgICAgKiBmaWxlYXBpL0Jsb2JVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlVSTDo6
Y3JlYXRlQmxvYlVSTCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpjcmVh
dGVGaWxlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VVJMOjpzZXRQcm90b2NvbCk6CisgICAgICAgIChXZWJDb3JlOjpwZXJjZW50RW5jb2RlQ2hh
cmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldFVzZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VVJMOjpzZXRQYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0UGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcm90b2NvbElzSW50ZXJuYWwpOgorICAgICAgICAoKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2NoZW1lRmlyc3RDaGFyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzU2NoZW1lQ2hhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c0JhZENoYXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNUYWJOZXdsaW5lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEVzY2FwZWRDaGFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZFByb3RvY29sKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjppc0lu
VXNlckluZm9FbmNvZGVTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZUF1
dGhvcml0eSk6CisgICAgICAgICogcGxhdGZvcm0vVVJMUGFyc2VyLmg6CisKIDIwMTctMTEtMTAg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEltcGxlbWVudCBnZXRBbmltYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYlVSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iVVJMLmNwcAkocmV2aXNpb24gMjI0NzAwKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBTdHJpbmcgQmxvYlVS
TDo6Z2V0SWRlbnRpZmllcihjb25zdCBVUkwmCiBVUkwgQmxvYlVSTDo6Y3JlYXRlQmxvYlVSTChj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBBU1NFUlQoIW9yaWdpblN0cmluZy5p
c0VtcHR5KCkpOwotICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgZW5jb2RlV2l0aFVS
TEVzY2FwZVNlcXVlbmNlcyhvcmlnaW5TdHJpbmcpICsgJy8nICsgY3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZygpOworICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgb3JpZ2luU3RyaW5n
ICsgJy8nICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwogICAgIHJldHVybiBVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlz
aW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSwxMSArMjE1LDYgQEAgYm9vbCBB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogVVJMIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjpjcmVhdGVGaWxlVVJMKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBGSVhNRTog
Q2FuIHdlIGp1c3QgdXNlIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggaW5zdGVhZD8KLQotICAg
IC8vIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggZnVuY3Rpb24gaXMgbm90IHN1aXRhYmxlIGJl
Y2F1c2UgVVJMOjpzZXRQYXRoIHVzZXMgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcywgd2hp
Y2ggaXQgbm90ZXMKLSAgICAvLyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBhbmQgJz8n
LiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGZvciBvdXIgcHVycG9zZXMgYmVjYXVzZQotICAgIC8vIGFw
cCBjYWNoZSBtZWRpYSBmaWxlcyBhcmUgYWx3YXlzIGNyZWF0ZWQgd2l0aCBlbmNvZGVGb3JGaWxl
TmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpLgotCiAjaWYgVVNFKENGKSAmJiBQTEFU
Rk9STShXSU4pCiAgICAgVVJMIHVybChhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1Q
YXRoKDAsIHBhdGguY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga0NGVVJMV2luZG93c1BhdGhTdHls
ZSwgZmFsc2UpKS5nZXQoKSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCShy
ZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSwyNzYgKzU1LDYgQEAgdHlwZWRlZiBWZWN0b3I8VUNoYXIsIDUxMj4g
VUNoYXJCdWZmZXI7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkUG9ydE51bWJlciA9
IDB4RkZGRjsKIAotZW51bSBVUkxDaGFyYWN0ZXJDbGFzc2VzIHsKLSAgICAvLyBhbHBoYSAKLSAg
ICBTY2hlbWVGaXJzdENoYXIgPSAxIDw8IDAsCi0KLSAgICAvLyAoIGFscGhhIHwgZGlnaXQgfCAi
KyIgfCAiLSIgfCAiLiIgKQotICAgIFNjaGVtZUNoYXIgPSAxIDw8IDEsCi0KLSAgICAvLyBtYXJr
ICAgICAgICA9ICItIiB8ICJfIiB8ICIuIiB8ICIhIiB8ICJ+IiB8ICIqIiB8ICInIiB8ICIoIiB8
ICIpIgotICAgIC8vIHVucmVzZXJ2ZWQgID0gYWxwaGFudW0gfCBtYXJrCi0gICAgLy8gKCB1bnJl
c2VydmVkIHwgZXNjYXBlZCB8ICI7IiB8ICI6IiB8ICImIiB8ICI9IiB8ICIrIiB8ICIkIiB8ICIs
IiApCi0gICAgVXNlckluZm9DaGFyID0gMSA8PCAyLAotCi0gICAgLy8gYWxudW0gfCAiLiIgfCAi
LSIgfCAiJSIKLSAgICAvLyBUaGUgYWJvdmUgaXMgd2hhdCB0aGUgc3BlY2lmaWNhdGlvbiBzYXlz
LCBidXQgd2UgYXJlIGxlbmllbnQgdG8KLSAgICAvLyBtYXRjaCBleGlzdGluZyBwcmFjdGljZSBh
bmQgYWxzbyBhbGxvdzoKLSAgICAvLyAiXyIKLSAgICBIb3N0bmFtZUNoYXIgPSAxIDw8IDMsCi0K
LSAgICAvLyBoZXhkaWdpdCB8ICI6IiB8ICIlIgotICAgIElQdjZDaGFyID0gMSA8PCA0LAotCi0g
ICAgLy8gIiMiIHwgIj8iIHwgIi8iIHwgbnVsCi0gICAgUGF0aFNlZ21lbnRFbmRDaGFyID0gMSA8
PCA1LAotCi0gICAgLy8gbm90IGFsbG93ZWQgaW4gcGF0aAotICAgIEJhZENoYXIgPSAxIDw8IDYs
Ci0KLSAgICAvLyAiXHQiIHwgIlxuIiB8ICJcciIKLSAgICBUYWJOZXdsaW5lID0gMSA8PCA3Ci19
OwotCi1uYW1lc3BhY2UgVVJMSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg
Y2hhcmFjdGVyQ2xhc3NUYWJsZVsyNTZdID0gewotICAgIC8qIDAgbnVsICovIFBhdGhTZWdtZW50
RW5kQ2hhciwgICAgLyogMSBzb2ggKi8gQmFkQ2hhciwKLSAgICAvKiAyIHN0eCAqLyBCYWRDaGFy
LCAgICAvKiAzIGV0eCAqLyBCYWRDaGFyLAotICAgIC8qIDQgZW90ICovIEJhZENoYXIsICAgIC8q
IDUgZW5xICovIEJhZENoYXIsICAgIC8qIDYgYWNrICovIEJhZENoYXIsICAgIC8qIDcgYmVsICov
IEJhZENoYXIsCi0gICAgLyogOCBicyAqLyBCYWRDaGFyLCAgICAgLyogOSBodCAqLyBCYWRDaGFy
IHwgVGFiTmV3bGluZSwgICAgICAgICAgICAgICAgLyogMTAgbmwgKi8gQmFkQ2hhciB8IFRhYk5l
d2xpbmUsCi0gICAgLyogMTEgdnQgKi8gQmFkQ2hhciwgICAgLyogMTIgbnAgKi8gQmFkQ2hhciwg
ICAgLyogMTMgY3IgKi8gQmFkQ2hhciB8IFRhYk5ld2xpbmUsCi0gICAgLyogMTQgc28gKi8gQmFk
Q2hhciwgICAgLyogMTUgc2kgKi8gQmFkQ2hhciwKLSAgICAvKiAxNiBkbGUgKi8gQmFkQ2hhciwg
ICAvKiAxNyBkYzEgKi8gQmFkQ2hhciwgICAvKiAxOCBkYzIgKi8gQmFkQ2hhciwgICAvKiAxOSBk
YzMgKi8gQmFkQ2hhciwKLSAgICAvKiAyMCBkYzQgKi8gQmFkQ2hhciwgICAvKiAyMSBuYWsgKi8g
QmFkQ2hhciwgICAvKiAyMiBzeW4gKi8gQmFkQ2hhciwgICAvKiAyMyBldGIgKi8gQmFkQ2hhciwK
LSAgICAvKiAyNCBjYW4gKi8gQmFkQ2hhciwgICAvKiAyNSBlbSAqLyBCYWRDaGFyLCAgICAvKiAy
NiBzdWIgKi8gQmFkQ2hhciwgICAvKiAyNyBlc2MgKi8gQmFkQ2hhciwKLSAgICAvKiAyOCBmcyAq
LyBCYWRDaGFyLCAgICAvKiAyOSBncyAqLyBCYWRDaGFyLCAgICAvKiAzMCBycyAqLyBCYWRDaGFy
LCAgICAvKiAzMSB1cyAqLyBCYWRDaGFyLAotICAgIC8qIDMyIHNwICovIEJhZENoYXIsICAgIC8q
IDMzICAhICovIFVzZXJJbmZvQ2hhciwKLSAgICAvKiAzNCAgIiAqLyBCYWRDaGFyLCAgICAvKiAz
NSAgIyAqLyBQYXRoU2VnbWVudEVuZENoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM2ICAkICovIFVz
ZXJJbmZvQ2hhciwgICAgLyogMzcgICUgKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwg
SVB2NkNoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM4ICAmICovIFVzZXJJbmZvQ2hhciwgICAgLyog
MzkgICcgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQwICAoICovIFVzZXJJbmZvQ2hhciwgICAg
LyogNDEgICkgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQyICAqICovIFVzZXJJbmZvQ2hhciwg
ICAgLyogNDMgICsgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciwKLSAgICAvKiA0NCAgLCAq
LyBVc2VySW5mb0NoYXIsCi0gICAgLyogNDUgIC0gKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hh
ciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA0NiAgLiAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNDcgIC8gKi8gUGF0aFNlZ21l
bnRFbmRDaGFyLAotICAgIC8qIDQ4ICAwICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogNDkgIDEgKi8gU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAgICAKLSAgICAvKiA1MCAgMiAq
LyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAot
ICAgIC8qIDUxICAzICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIg
fCBJUHY2Q2hhciwKLSAgICAvKiA1MiAgNCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwg
SG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDUzICA1ICovIFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1NCAgNiAqLyBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAg
IC8qIDU1ICA3ICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJ
UHY2Q2hhciwKLSAgICAvKiA1NiAgOCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDU3ICA5ICovIFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1OCAgOiAqLyBVc2Vy
SW5mb0NoYXIgfCBJUHY2Q2hhciwgICAgLyogNTkgIDsgKi8gVXNlckluZm9DaGFyLAotICAgIC8q
IDYwICA8ICovIEJhZENoYXIsICAgIC8qIDYxICA9ICovIFVzZXJJbmZvQ2hhciwKLSAgICAvKiA2
MiAgPiAqLyBCYWRDaGFyLCAgICAvKiA2MyAgPyAqLyBQYXRoU2VnbWVudEVuZENoYXIgfCBCYWRD
aGFyLAotICAgIC8qIDY0ICBAICovIDAsCi0gICAgLyogNjUgIEEgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAg
ICAKLSAgICAvKiA2NiAgQiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlcklu
Zm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNjcgIEMgKi8gU2NoZW1l
Rmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQ
djZDaGFyLAotICAgIC8qIDY4ICBEICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA2OSAgRSAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
IHwgSVB2NkNoYXIsCi0gICAgLyogNzAgIEYgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8qIDcxICBH
ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFt
ZUNoYXIsCi0gICAgLyogNzIgIEggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3MyAgSSAqLyBTY2hlbWVGaXJzdENo
YXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDc0
ICBKICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0
bmFtZUNoYXIsCi0gICAgLyogNzUgIEsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8
IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3NiAgTCAqLyBTY2hlbWVGaXJz
dENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8q
IDc3ICBNICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIsCi0gICAgLyogNzggIE4gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3OSAgTyAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAg
IC8qIDgwICBQICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODEgIFEgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1l
Q2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4MiAgUiAqLyBTY2hl
bWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAot
ICAgIC8qIDgzICBTICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODQgIFQgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4NSAgVSAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
LAotICAgIC8qIDg2ICBWICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5m
b0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODcgIFcgKi8gU2NoZW1lRmlyc3RDaGFyIHwg
U2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4OCAgWCAq
LyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLCAKLSAgICAvKiA4OSAgWSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDkwICBaICovIFNjaGVtZUZpcnN0Q2hh
ciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogOTEg
IFsgKi8gMCwKLSAgICAvKiA5MiAgXCAqLyAwLCAgICAvKiA5MyAgXSAqLyAwLAotICAgIC8qIDk0
ICBeICovIDAsCi0gICAgLyogOTUgIF8gKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAot
ICAgIC8qIDk2ICBgICovIDAsCi0gICAgLyogOTcgIGEgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8q
IDk4ICBiICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogOTkgIGMgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAot
ICAgIC8qIDEwMCAgZCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDEwMSAgZSAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2
NkNoYXIsCi0gICAgLyogMTAyICBmICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogMTAzICBnICov
IFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNo
YXIsCi0gICAgLyogMTA0ICBoICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDEwNSAgaSAqLyBTY2hlbWVGaXJzdENo
YXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDEw
NiAgaiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyLCAKLSAgICAvKiAxMDcgIGsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMDggIGwgKi8gU2NoZW1l
Rmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0g
ICAgLyogMTA5ICBtICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTEwICBuICovIFNjaGVtZUZpcnN0Q2hhciB8IFNj
aGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDExMSAgbyAq
LyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLAotICAgIC8qIDExMiAgcCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMTMgIHEgKi8gU2NoZW1lRmlyc3RD
aGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAx
MTQgIHIgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhv
c3RuYW1lQ2hhciwgCi0gICAgLyogMTE1ICBzICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNo
YXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTE2ICB0ICovIFNjaGVt
ZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAot
ICAgIC8qIDExNyAgdSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDExOCAgdiAqLyBTY2hlbWVGaXJzdENoYXIgfCBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMTkgIHcg
Ki8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1l
Q2hhciwKLSAgICAvKiAxMjAgIHggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTIxICB5ICovIFNjaGVtZUZpcnN0
Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyog
MTIyICB6ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIsIAotICAgIC8qIDEyMyAgeyAqLyAwLAotICAgIC8qIDEyNCAgfCAqLyAwLCAg
IC8qIDEyNSAgfSAqLyAwLCAgIC8qIDEyNiAgfiAqLyBVc2VySW5mb0NoYXIsICAgLyogMTI3IGRl
bCAqLyBCYWRDaGFyLAotICAgIC8qIDEyOCAqLyBCYWRDaGFyLCAvKiAxMjkgKi8gQmFkQ2hhciwg
LyogMTMwICovIEJhZENoYXIsIC8qIDEzMSAqLyBCYWRDaGFyLAotICAgIC8qIDEzMiAqLyBCYWRD
aGFyLCAvKiAxMzMgKi8gQmFkQ2hhciwgLyogMTM0ICovIEJhZENoYXIsIC8qIDEzNSAqLyBCYWRD
aGFyLAotICAgIC8qIDEzNiAqLyBCYWRDaGFyLCAvKiAxMzcgKi8gQmFkQ2hhciwgLyogMTM4ICov
IEJhZENoYXIsIC8qIDEzOSAqLyBCYWRDaGFyLAotICAgIC8qIDE0MCAqLyBCYWRDaGFyLCAvKiAx
NDEgKi8gQmFkQ2hhciwgLyogMTQyICovIEJhZENoYXIsIC8qIDE0MyAqLyBCYWRDaGFyLAotICAg
IC8qIDE0NCAqLyBCYWRDaGFyLCAvKiAxNDUgKi8gQmFkQ2hhciwgLyogMTQ2ICovIEJhZENoYXIs
IC8qIDE0NyAqLyBCYWRDaGFyLAotICAgIC8qIDE0OCAqLyBCYWRDaGFyLCAvKiAxNDkgKi8gQmFk
Q2hhciwgLyogMTUwICovIEJhZENoYXIsIC8qIDE1MSAqLyBCYWRDaGFyLAotICAgIC8qIDE1MiAq
LyBCYWRDaGFyLCAvKiAxNTMgKi8gQmFkQ2hhciwgLyogMTU0ICovIEJhZENoYXIsIC8qIDE1NSAq
LyBCYWRDaGFyLAotICAgIC8qIDE1NiAqLyBCYWRDaGFyLCAvKiAxNTcgKi8gQmFkQ2hhciwgLyog
MTU4ICovIEJhZENoYXIsIC8qIDE1OSAqLyBCYWRDaGFyLAotICAgIC8qIDE2MCAqLyBCYWRDaGFy
LCAvKiAxNjEgKi8gQmFkQ2hhciwgLyogMTYyICovIEJhZENoYXIsIC8qIDE2MyAqLyBCYWRDaGFy
LAotICAgIC8qIDE2NCAqLyBCYWRDaGFyLCAvKiAxNjUgKi8gQmFkQ2hhciwgLyogMTY2ICovIEJh
ZENoYXIsIC8qIDE2NyAqLyBCYWRDaGFyLAotICAgIC8qIDE2OCAqLyBCYWRDaGFyLCAvKiAxNjkg
Ki8gQmFkQ2hhciwgLyogMTcwICovIEJhZENoYXIsIC8qIDE3MSAqLyBCYWRDaGFyLAotICAgIC8q
IDE3MiAqLyBCYWRDaGFyLCAvKiAxNzMgKi8gQmFkQ2hhciwgLyogMTc0ICovIEJhZENoYXIsIC8q
IDE3NSAqLyBCYWRDaGFyLAotICAgIC8qIDE3NiAqLyBCYWRDaGFyLCAvKiAxNzcgKi8gQmFkQ2hh
ciwgLyogMTc4ICovIEJhZENoYXIsIC8qIDE3OSAqLyBCYWRDaGFyLAotICAgIC8qIDE4MCAqLyBC
YWRDaGFyLCAvKiAxODEgKi8gQmFkQ2hhciwgLyogMTgyICovIEJhZENoYXIsIC8qIDE4MyAqLyBC
YWRDaGFyLAotICAgIC8qIDE4NCAqLyBCYWRDaGFyLCAvKiAxODUgKi8gQmFkQ2hhciwgLyogMTg2
ICovIEJhZENoYXIsIC8qIDE4NyAqLyBCYWRDaGFyLAotICAgIC8qIDE4OCAqLyBCYWRDaGFyLCAv
KiAxODkgKi8gQmFkQ2hhciwgLyogMTkwICovIEJhZENoYXIsIC8qIDE5MSAqLyBCYWRDaGFyLAot
ICAgIC8qIDE5MiAqLyBCYWRDaGFyLCAvKiAxOTMgKi8gQmFkQ2hhciwgLyogMTk0ICovIEJhZENo
YXIsIC8qIDE5NSAqLyBCYWRDaGFyLAotICAgIC8qIDE5NiAqLyBCYWRDaGFyLCAvKiAxOTcgKi8g
QmFkQ2hhciwgLyogMTk4ICovIEJhZENoYXIsIC8qIDE5OSAqLyBCYWRDaGFyLAotICAgIC8qIDIw
MCAqLyBCYWRDaGFyLCAvKiAyMDEgKi8gQmFkQ2hhciwgLyogMjAyICovIEJhZENoYXIsIC8qIDIw
MyAqLyBCYWRDaGFyLAotICAgIC8qIDIwNCAqLyBCYWRDaGFyLCAvKiAyMDUgKi8gQmFkQ2hhciwg
LyogMjA2ICovIEJhZENoYXIsIC8qIDIwNyAqLyBCYWRDaGFyLAotICAgIC8qIDIwOCAqLyBCYWRD
aGFyLCAvKiAyMDkgKi8gQmFkQ2hhciwgLyogMjEwICovIEJhZENoYXIsIC8qIDIxMSAqLyBCYWRD
aGFyLAotICAgIC8qIDIxMiAqLyBCYWRDaGFyLCAvKiAyMTMgKi8gQmFkQ2hhciwgLyogMjE0ICov
IEJhZENoYXIsIC8qIDIxNSAqLyBCYWRDaGFyLAotICAgIC8qIDIxNiAqLyBCYWRDaGFyLCAvKiAy
MTcgKi8gQmFkQ2hhciwgLyogMjE4ICovIEJhZENoYXIsIC8qIDIxOSAqLyBCYWRDaGFyLAotICAg
IC8qIDIyMCAqLyBCYWRDaGFyLCAvKiAyMjEgKi8gQmFkQ2hhciwgLyogMjIyICovIEJhZENoYXIs
IC8qIDIyMyAqLyBCYWRDaGFyLAotICAgIC8qIDIyNCAqLyBCYWRDaGFyLCAvKiAyMjUgKi8gQmFk
Q2hhciwgLyogMjI2ICovIEJhZENoYXIsIC8qIDIyNyAqLyBCYWRDaGFyLAotICAgIC8qIDIyOCAq
LyBCYWRDaGFyLCAvKiAyMjkgKi8gQmFkQ2hhciwgLyogMjMwICovIEJhZENoYXIsIC8qIDIzMSAq
LyBCYWRDaGFyLAotICAgIC8qIDIzMiAqLyBCYWRDaGFyLCAvKiAyMzMgKi8gQmFkQ2hhciwgLyog
MjM0ICovIEJhZENoYXIsIC8qIDIzNSAqLyBCYWRDaGFyLAotICAgIC8qIDIzNiAqLyBCYWRDaGFy
LCAvKiAyMzcgKi8gQmFkQ2hhciwgLyogMjM4ICovIEJhZENoYXIsIC8qIDIzOSAqLyBCYWRDaGFy
LAotICAgIC8qIDI0MCAqLyBCYWRDaGFyLCAvKiAyNDEgKi8gQmFkQ2hhciwgLyogMjQyICovIEJh
ZENoYXIsIC8qIDI0MyAqLyBCYWRDaGFyLAotICAgIC8qIDI0NCAqLyBCYWRDaGFyLCAvKiAyNDUg
Ki8gQmFkQ2hhciwgLyogMjQ2ICovIEJhZENoYXIsIC8qIDI0NyAqLyBCYWRDaGFyLAotICAgIC8q
IDI0OCAqLyBCYWRDaGFyLCAvKiAyNDkgKi8gQmFkQ2hhciwgLyogMjUwICovIEJhZENoYXIsIC8q
IDI1MSAqLyBCYWRDaGFyLAotICAgIC8qIDI1MiAqLyBCYWRDaGFyLCAvKiAyNTMgKi8gQmFkQ2hh
ciwgLyogMjU0ICovIEJhZENoYXIsIC8qIDI1NSAqLyBCYWRDaGFyCi19OwotfQotCi1lbnVtIFBl
cmNlbnRFbmNvZGVDaGFyYWN0ZXJDbGFzcyB7Ci0gICAgLy8gQ2xhc3MgbmFtZXMgbWF0Y2ggdGhl
IFVSTCBTdGFuZGFyZDsgZWFjaCBjbGFzcyBpcyBhIHN1cGVyc2V0IG9mIHRoZSBwcmV2aW91cyBv
bmUuCi0gICAgUGVyY2VudEVuY29kZVNpbXBsZSA9IDI1NSwKLSAgICBQZXJjZW50RW5jb2RlRGVm
YXVsdCA9IDEyNywKLSAgICBQZXJjZW50RW5jb2RlUGFzc3dvcmQgPSA2MywKLSAgICBQZXJjZW50
RW5jb2RlVXNlcm5hbWUgPSAzMSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBl
cmNlbnRFbmNvZGVDbGFzc1RhYmxlWzI1Nl0gPSB7Ci0gICAgLyogMCBudWwgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgICAgLyogMSBzb2ggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMiBz
dHggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMyBldHggKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwKLSAgICAvKiA0IGVvdCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA1IGVucSAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA2IGFjayAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAgICAvKiA3IGJlbCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDggYnMgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgICAgIC8qIDkgaHQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAg
IC8qIDEwIG5sICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDExIHZ0ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMTIgbnAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyog
MTMgY3IgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMTQgc28gKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgICAgLyogMTUgc2kgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNiBk
bGUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxNyBkYzEgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgICAvKiAxOCBkYzIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxOSBkYzMgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMCBkYzQgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgICAvKiAyMSBuYWsgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyMiBzeW4gKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgICAvKiAyMyBldGIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAg
ICAvKiAyNCBjYW4gKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyNSBlbSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAgICAvKiAyNiBzdWIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAy
NyBlc2MgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyOCBmcyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAgICAvKiAyOSBncyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzMCBy
cyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzMSB1cyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLAotICAgIC8qIDMyIHNwICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDMzICAh
ICovIDAsCi0gICAgLyogMzQgICIgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzUg
ICMgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzYgICQgKi8gMCwKLSAgICAvKiAz
NyAgJSAqLyAwLAotICAgIC8qIDM4ICAmICovIDAsCi0gICAgLyogMzkgICcgKi8gMCwKLSAgICAv
KiA0MCAgKCAqLyAwLAotICAgIC8qIDQxICApICovIDAsCi0gICAgLyogNDIgICogKi8gMCwKLSAg
ICAvKiA0MyAgKyAqLyAwLAotICAgIC8qIDQ0ICAsICovIDAsCi0gICAgLyogNDUgIC0gKi8gMCwK
LSAgICAvKiA0NiAgLiAqLyAwLAotICAgIC8qIDQ3ICAvICovIFBlcmNlbnRFbmNvZGVQYXNzd29y
ZCwKLSAgICAvKiA0OCAgMCAqLyAwLCAgICAvKiA0OSAgMSAqLyAwLCAgICAvKiA1MCAgMiAqLyAw
LCAgICAvKiA1MSAgMyAqLyAwLAotICAgIC8qIDUyICA0ICovIDAsICAgIC8qIDUzICA1ICovIDAs
ICAgIC8qIDU0ICA2ICovIDAsICAgIC8qIDU1ICA3ICovIDAsCi0gICAgLyogNTYgIDggKi8gMCwg
ICAgLyogNTcgIDkgKi8gMCwKLSAgICAvKiA1OCAgOiAqLyBQZXJjZW50RW5jb2RlVXNlcm5hbWUs
Ci0gICAgLyogNTkgIDsgKi8gMCwKLSAgICAvKiA2MCAgPCAqLyBQZXJjZW50RW5jb2RlRGVmYXVs
dCwKLSAgICAvKiA2MSAgPSAqLyAwLAotICAgIC8qIDYyICA+ICovIFBlcmNlbnRFbmNvZGVEZWZh
dWx0LAotICAgIC8qIDYzICA/ICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDY0ICBA
ICovIFBlcmNlbnRFbmNvZGVQYXNzd29yZCwKLSAgICAvKiA2NSAgQSAqLyAwLCAgICAvKiA2NiAg
QiAqLyAwLCAgICAvKiA2NyAgQyAqLyAwLCAgICAvKiA2OCAgRCAqLyAwLAotICAgIC8qIDY5ICBF
ICovIDAsICAgIC8qIDcwICBGICovIDAsICAgIC8qIDcxICBHICovIDAsICAgIC8qIDcyICBIICov
IDAsCi0gICAgLyogNzMgIEkgKi8gMCwgICAgLyogNzQgIEogKi8gMCwgICAgLyogNzUgIEsgKi8g
MCwgICAgLyogNzYgIEwgKi8gMCwKLSAgICAvKiA3NyAgTSAqLyAwLCAgICAvKiA3OCAgTiAqLyAw
LCAgICAvKiA3OSAgTyAqLyAwLCAgICAvKiA4MCAgUCAqLyAwLAotICAgIC8qIDgxICBRICovIDAs
ICAgIC8qIDgyICBSICovIDAsICAgIC8qIDgzICBTICovIDAsICAgIC8qIDg0ICBUICovIDAsCi0g
ICAgLyogODUgIFUgKi8gMCwgICAgLyogODYgIFYgKi8gMCwgICAgLyogODcgIFcgKi8gMCwgICAg
LyogODggIFggKi8gMCwKLSAgICAvKiA4OSAgWSAqLyAwLCAgICAvKiA5MCAgWiAqLyAwLAotICAg
IC8qIDkxICBbICovIDAsCi0gICAgLyogOTIgIFwgKi8gUGVyY2VudEVuY29kZVBhc3N3b3JkLAot
ICAgIC8qIDkzICBdICovIDAsCi0gICAgLyogOTQgIF4gKi8gMCwKLSAgICAvKiA5NSAgXyAqLyAw
LAotICAgIC8qIDk2ICBgICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDk3ICBhICov
IDAsICAgIC8qIDk4ICBiICovIDAsICAgIC8qIDk5ICBjICovIDAsICAgIC8qIDEwMCAgZCAqLyAw
LAotICAgIC8qIDEwMSAgZSAqLyAwLCAgICAvKiAxMDIgIGYgKi8gMCwgICAgLyogMTAzICBnICov
IDAsICAgIC8qIDEwNCAgaCAqLyAwLAotICAgIC8qIDEwNSAgaSAqLyAwLCAgICAvKiAxMDYgIGog
Ki8gMCwgICAgLyogMTA3ICBrICovIDAsICAgIC8qIDEwOCAgbCAqLyAwLAotICAgIC8qIDEwOSAg
bSAqLyAwLCAgICAvKiAxMTAgIG4gKi8gMCwgICAgLyogMTExICBvICovIDAsICAgIC8qIDExMiAg
cCAqLyAwLAotICAgIC8qIDExMyAgcSAqLyAwLCAgICAvKiAxMTQgIHIgKi8gMCwgICAgLyogMTE1
ICBzICovIDAsICAgIC8qIDExNiAgdCAqLyAwLAotICAgIC8qIDExNyAgdSAqLyAwLCAgICAvKiAx
MTggIHYgKi8gMCwgICAgLyogMTE5ICB3ICovIDAsICAgIC8qIDEyMCAgeCAqLyAwLAotICAgIC8q
IDEyMSAgeSAqLyAwLCAgICAvKiAxMjIgIHogKi8gMCwKLSAgICAvKiAxMjMgIHsgKi8gMCwKLSAg
ICAvKiAxMjQgIHwgKi8gMCwKLSAgICAvKiAxMjUgIH0gKi8gMCwKLSAgICAvKiAxMjYgIH4gKi8g
MCwKLSAgICAvKiAxMjcgZGVsICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTI4ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAx
MzAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTMxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMTMyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEzMyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAxMzQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTM1ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEz
NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxMzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMTM5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTQwICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDE0MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNDIgKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMTQzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTQ0
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAxNDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQ3ICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsCi0gICAgLyogMTQ4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0OSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAxNTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTUxICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTUyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDE1MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTQgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMTU1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTU2ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDE1NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTggKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMTU5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MTYwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAxNjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTYzICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMTY0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2NSAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAxNjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTY3ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTY4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDE2OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzAgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMTcxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTcyICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDE3MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzQgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMTc2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3NyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAxNzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc5ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsCi0gICAgLyogMTgwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4MSAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTgz
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg0ICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsIC8qIDE4NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODYgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMTg3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg4ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTAg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTkxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0g
ICAgLyogMTkyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5MyAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAvKiAxOTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTk1ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMTk2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5NyAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MTk5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjAwICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDIwMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMDIgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMjAzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjA0ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwNSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAy
MDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjA3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMjA4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwOSAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAyMTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjExICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjEyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIx
MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMjE1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjE2ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDIxNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTggKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMjE5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjIw
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAyMjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjIzICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsCi0gICAgLyogMjI0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyNSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAyMjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjI3ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjI4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDIyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzAgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMjMxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjMyICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDIzMyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzQgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMjM1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MjM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAyMzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjM5ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMjQwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI0MSAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAyNDIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjQzICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDI0NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNDYgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMjQ3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ4ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDI0OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNTAgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjUxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMjUyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1MyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAyNTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjU1ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUKLX07Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1NjaGVtZUZpcnN0Q2hhcihVQ2hh
ciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0ZXJDbGFzc1Rh
YmxlW2NdICYgU2NoZW1lRmlyc3RDaGFyKTsgfQotc3RhdGljIGlubGluZSBib29sIGlzU2NoZW1l
Q2hhcihVQ2hhciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0
ZXJDbGFzc1RhYmxlW2NdICYgU2NoZW1lQ2hhcik7IH0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Jh
ZENoYXIodW5zaWduZWQgY2hhciBjKSB7IHJldHVybiBVUkxJbnRlcm5hbDo6Y2hhcmFjdGVyQ2xh
c3NUYWJsZVtjXSAmIEJhZENoYXI7IH0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1RhYk5ld2xpbmUo
VUNoYXIgYykgeyByZXR1cm4gYyA8PSAweGZmICYmIChVUkxJbnRlcm5hbDo6Y2hhcmFjdGVyQ2xh
c3NUYWJsZVtjXSAmIFRhYk5ld2xpbmUpOyB9Ci0KLVN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBl
U2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZywgUGVyY2VudEVuY29kZUNo
YXJhY3RlckNsYXNzIHdoYXRUb0VuY29kZSk7Ci0KIC8vIENvcGllcyB0aGUgc291cmNlIHRvIHRo
ZSBkZXN0aW5hdGlvbiwgYXNzdW1pbmcgYWxsIHRoZSBzb3VyY2UgY2hhcmFjdGVycyBhcmUKIC8v
IEFTQ0lJLiBUaGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3QgYmUgbGFyZ2UgZW5vdWdoLiBOdWxs
IGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQKIC8vIGluIHRoZSBzb3VyY2Ugc3RyaW5nLCBhbmQgbm8g
YXR0ZW1wdCBpcyBtYWRlIHRvIG51bGwtdGVybWluYXRlIHRoZSByZXN1bHQuCkBAIC02NTEsMTcg
KzM4MSwxNyBAQCBib29sIFVSTDo6c2V0UHJvdG9jb2woY29uc3QgU3RyaW5nJiBzKQogICAgIC8v
IEZpcmVmb3ggYW5kIElFIHJlbW92ZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCAnOicuCiAg
ICAgc2l6ZV90IHNlcGFyYXRvclBvc2l0aW9uID0gcy5maW5kKCc6Jyk7CiAgICAgU3RyaW5nIG5l
d1Byb3RvY29sID0gcy5zdWJzdHJpbmcoMCwgc2VwYXJhdG9yUG9zaXRpb24pOwotCi0gICAgaWYg
KCFpc1ZhbGlkUHJvdG9jb2wobmV3UHJvdG9jb2wpKQorICAgIGF1dG8gY2Fub25pY2FsaXplZCA9
IFVSTFBhcnNlcjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUobmV3UHJvdG9jb2wpOworICAgIGlm
ICghY2Fub25pY2FsaXplZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2lz
VmFsaWQpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG5ld1Byb3RvY29s
LCAiOiIsIG1fc3RyaW5nKSk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0cmluZygq
Y2Fub25pY2FsaXplZCwgIjoiLCBtX3N0cmluZykpOwogICAgICAgICAqdGhpcyA9IHBhcnNlci5y
ZXN1bHQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgVVJMUGFyc2VyIHBh
cnNlcihtYWtlU3RyaW5nKG5ld1Byb3RvY29sLCBtX3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVF
bmQpKSk7CisgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKCpjYW5vbmljYWxpemVkLCBt
X3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVFbmQpKSk7CiAgICAgKnRoaXMgPSBwYXJzZXIucmVz
dWx0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03OTUsNiArNTI1LDI4IEBAIHZvaWQgVVJM
OjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGgKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1
bHQoKTsKIH0KIAorc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhjb25zdCBT
dHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKK3sKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYgKFVOTElL
RUxZKHNob3VsZEVuY29kZShpbnB1dFtpXSkpKSB7CisgICAgICAgICAgICBDU3RyaW5nIHV0Zjgg
PSBpbnB1dC51dGY4KCk7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSh1dGY4Lmxlbmd0aCgpICsgMik7CisgICAg
ICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHV0ZjgubGVuZ3RoKCk7IGorKykgeworICAg
ICAgICAgICAgICAgIGF1dG8gYyA9IHV0ZjguZGF0YSgpW2pdOworICAgICAgICAgICAgICAgIGlm
IChzaG91bGRFbmNvZGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyUnKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodXBwZXJOaWJibGVUb0FT
Q0lJSGV4RGlnaXQoYykpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsb3dl
ck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gaW5wdXQ7Cit9CisKIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0cmluZyYgdXNlcikK
IHsKICAgICBpZiAoIW1faXNWYWxpZCkKQEAgLTgwNSw3ICs1NTcsNyBAQCB2b2lkIFVSTDo6c2V0
VXNlcihjb25zdCBTdHJpbmcmIHVzZXIpCiAKICAgICB1bnNpZ25lZCBlbmQgPSBtX3VzZXJFbmQ7
CiAgICAgaWYgKCF1c2VyLmlzRW1wdHkoKSkgewotICAgICAgICBTdHJpbmcgdSA9IGVuY29kZVdp
dGhVUkxFc2NhcGVTZXF1ZW5jZXModXNlciwgUGVyY2VudEVuY29kZVVzZXJuYW1lKTsKKyAgICAg
ICAgU3RyaW5nIHUgPSBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyh1c2VyLCBVUkxQYXJzZXI6Omlz
SW5Vc2VySW5mb0VuY29kZVNldCk7CiAgICAgICAgIGlmIChtX3VzZXJTdGFydCA9PSBtX3NjaGVt
ZUVuZCArIDEpCiAgICAgICAgICAgICB1ID0gIi8vIiArIHU7CiAgICAgICAgIC8vIEFkZCAnQCcg
aWYgd2UgZGlkbid0IGhhdmUgb25lIGJlZm9yZS4KQEAgLTgzMiw3ICs1ODQsNyBAQCB2b2lkIFVS
TDo6c2V0UGFzcyhjb25zdCBTdHJpbmcmIHBhc3N3b3JkCiAKICAgICB1bnNpZ25lZCBlbmQgPSBt
X3Bhc3N3b3JkRW5kOwogICAgIGlmICghcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFN0
cmluZyBwID0gIjoiICsgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXNzd29yZCwgUGVy
Y2VudEVuY29kZVBhc3N3b3JkKSArICJAIjsKKyAgICAgICAgU3RyaW5nIHAgPSAiOiIgKyBwZXJj
ZW50RW5jb2RlQ2hhcmFjdGVycyhwYXNzd29yZCwgVVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNv
ZGVTZXQpICsgIkAiOwogICAgICAgICBpZiAobV91c2VyRW5kID09IG1fc2NoZW1lRW5kICsgMSkK
ICAgICAgICAgICAgIHAgPSAiLy8iICsgcDsKICAgICAgICAgLy8gRWF0IHRoZSBleGlzdGluZyAn
QCcgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGFkZCBvdXIgb3duLgpAQCAtOTA1LDEzICs2NTcsMTQg
QEAgdm9pZCBVUkw6OnNldFBhdGgoY29uc3QgU3RyaW5nJiBzKQogICAgIGlmICghbV9pc1ZhbGlk
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogZW5jb2RlV2l0aFVSTEVzY2FwZVNl
cXVlbmNlcyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBhbmQgJz8nLCBzbyBmcmFnbWVu
dCBhbmQgcXVlcnkgcGFydHMKLSAgICAvLyBtYXkgYmUgaW5hZHZlcnRlbnRseSBhZmZlY3RlZC4K
LSAgICBTdHJpbmcgcGF0aCA9IHM7CisgICAgU3RyaW5nIHBhdGggPSBzLnN0cmlwTWF0Y2hlZENo
YXJhY3RlcnMoW10oVUNoYXIgYykgeyByZXR1cm4gY30pOwogICAgIGlmIChwYXRoLmlzRW1wdHko
KSB8fCBwYXRoWzBdICE9ICcvJykKICAgICAgICAgcGF0aCA9ICIvIiArIHBhdGg7CiAKLSAgICBV
UkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3BvcnRFbmQpLCBlbmNv
ZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHBhdGgpLCBtX3N0cmluZy5zdWJzdHJpbmcobV9wYXRo
RW5kKSkpOworICAgIGF1dG8gcXVlc3Rpb25NYXJrT3JOdW1iZXJTaWduID0gW10gKFVDaGFyIGMp
IHsKKyAgICAgICAgcmV0dXJuIGMgPT0gJz8nIHx8IGMgPT0gJyMnOworICAgIH07CisgICAgVVJM
UGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQobV9wb3J0RW5kKSwgcGVyY2Vu
dEVuY29kZUNoYXJhY3RlcnMocGF0aCwgcXVlc3Rpb25NYXJrT3JOdW1iZXJTaWduKSwgbV9zdHJp
bmcuc3Vic3RyaW5nKG1fcGF0aEVuZCkpKTsKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsK
IH0KIApAQCAtOTI1LDEzICs2NzgsNiBAQCBTdHJpbmcgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2Vz
KGNvbnN0IFN0CiAgICAgcmV0dXJuIGRlY29kZUVzY2FwZVNlcXVlbmNlczxVUkxFc2NhcGVTZXF1
ZW5jZT4oc3RyaW5nLCBlbmNvZGluZyk7CiB9CiAKLS8vIENhdXRpb246IFRoaXMgZnVuY3Rpb24g
ZG9lcyBub3QgYm91bmRzIGNoZWNrLgotc3RhdGljIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hh
ciomIGJ1ZmZlciwgdW5zaWduZWQgY2hhciBjKQotewotICAgICpidWZmZXIrKyA9ICclJzsKLSAg
ICBwbGFjZUJ5dGVBc0hleChjLCBidWZmZXIpOwotfQotCiBTdHJpbmcgVVJMOjpzZXJpYWxpemUo
Ym9vbCBvbWl0RnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgaWYgKG9taXRGcmFnbWVudCkKQEAgLTEw
MzMsNTAgKzc3OSw2IEBAIGJvb2wgaG9zdHNBcmVFcXVhbChjb25zdCBVUkwmIGEsIGNvbnN0IFUK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3RyaW5nIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5j
ZXMoY29uc3QgU3RyaW5nJiBub3RFbmNvZGVkU3RyaW5nLCBQZXJjZW50RW5jb2RlQ2hhcmFjdGVy
Q2xhc3Mgd2hhdFRvRW5jb2RlKQotewotICAgIENTdHJpbmcgYXNVVEY4ID0gbm90RW5jb2RlZFN0
cmluZy51dGY4KCk7Ci0KLSAgICBDaGFyQnVmZmVyIGJ1ZmZlcihhc1VURjgubGVuZ3RoKCkgKiAz
ICsgMSk7Ci0gICAgY2hhciogcCA9IGJ1ZmZlci5kYXRhKCk7Ci0KLSAgICBjb25zdCBjaGFyKiBz
dHIgPSBhc1VURjguZGF0YSgpOwotICAgIGNvbnN0IGNoYXIqIHN0ckVuZCA9IHN0ciArIGFzVVRG
OC5sZW5ndGgoKTsKLSAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7Ci0gICAgICAgIHVuc2lnbmVk
IGNoYXIgYyA9ICpzdHIrKzsKLSAgICAgICAgaWYgKHBlcmNlbnRFbmNvZGVDbGFzc1RhYmxlW2Nd
ID49IHdoYXRUb0VuY29kZSkKLSAgICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAqcCsrID0gYzsKLSAgICB9Ci0KLSAgICBBU1NFUlQo
cCAtIGJ1ZmZlci5kYXRhKCkgPD0gc3RhdGljX2Nhc3Q8aW50PihidWZmZXIuc2l6ZSgpKSk7Ci0K
LSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgpKTsKLX0K
LQotU3RyaW5nIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoY29uc3QgU3RyaW5nJiBub3RF
bmNvZGVkU3RyaW5nKQotewotICAgIENTdHJpbmcgYXNVVEY4ID0gbm90RW5jb2RlZFN0cmluZy51
dGY4KCk7Ci0KLSAgICBDaGFyQnVmZmVyIGJ1ZmZlcihhc1VURjgubGVuZ3RoKCkgKiAzICsgMSk7
Ci0gICAgY2hhciogcCA9IGJ1ZmZlci5kYXRhKCk7Ci0KLSAgICBjb25zdCBjaGFyKiBzdHIgPSBh
c1VURjguZGF0YSgpOwotICAgIGNvbnN0IGNoYXIqIHN0ckVuZCA9IHN0ciArIGFzVVRGOC5sZW5n
dGgoKTsKLSAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIg
YyA9ICpzdHIrKzsKLSAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkKLSAgICAgICAgICAgIGFwcGVu
ZEVzY2FwZWRDaGFyKHAsIGMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAqcCsrID0gYzsK
LSAgICB9Ci0KLSAgICBBU1NFUlQocCAtIGJ1ZmZlci5kYXRhKCkgPD0gc3RhdGljX2Nhc3Q8aW50
PihidWZmZXIuc2l6ZSgpKSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCksIHAg
LSBidWZmZXIuZGF0YSgpKTsKLX0KLQogYm9vbCBVUkw6OmlzSGllcmFyY2hpY2FsKCkgY29uc3QK
IHsKICAgICBpZiAoIW1faXNWYWxpZCkKQEAgLTExMDYsNyArODA4LDcgQEAgYm9vbCBwcm90b2Nv
bElzSW50ZXJuYWwoY29uc3QgU3RyaW5nQ2xhcwogICAgICAgICBpc0xlYWRpbmcgPSBmYWxzZTsK
IAogICAgICAgICAvLyBTa2lwIGFueSB0YWJzIGFuZCBuZXdsaW5lcy4KLSAgICAgICAgaWYgKGlz
VGFiTmV3bGluZSh1cmxbaV0pKQorICAgICAgICBpZiAodXJsW2ldID09ICdcdCcgfHwgdXJsW2ld
ID09ICdccicgfHwgdXJsW2ldID09ICdcbicpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBpZiAoIXByb3RvY29sW2pdKQpAQCAtMTEzMCwyMSArODMyLDYgQEAgaW5saW5lIGJvb2wg
VVJMOjpwcm90b2NvbElzKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBXZWJDb3JlOjpwcm90b2Nv
bElzSW50ZXJuYWwoc3RyaW5nLCBwcm90b2NvbCk7CiB9CiAKLWJvb2wgaXNWYWxpZFByb3RvY29s
KGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCi17Ci0gICAgLy8gUkZDMzk4NjogQUxQSEEgKiggQUxQ
SEEgLyBESUdJVCAvICIrIiAvICItIiAvICIuIiApCi0gICAgaWYgKHByb3RvY29sLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghaXNTY2hlbWVGaXJzdENoYXIocHJv
dG9jb2xbMF0pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdW5zaWduZWQgcHJvdG9jb2xM
ZW5ndGggPSBwcm90b2NvbC5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
cHJvdG9jb2xMZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWlzU2NoZW1lQ2hhcihwcm90b2Nv
bFtpXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVl
OwotfQotCiAjaWZuZGVmIE5ERUJVRwogCiB2b2lkIFVSTDo6cHJpbnQoKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCShyZXZpc2lvbiAyMjQ3MDApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MjksNiArNDI5LDExIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgc2hvdWxkUGVyY2VudEUK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgVVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNv
ZGVTZXQoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6aXNJblVzZXJJbmZvRW5jb2Rl
U2V0KGMpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCBVUkxQYXJzZXI6
OlJlcG9ydFN5bnRheFZpb2xhdGlvbiByZXBvcnRTeW50YXhWaW9sYXRpb24+CiBBTFdBWVNfSU5M
SU5FIHZvaWQgVVJMUGFyc2VyOjphZHZhbmNlKENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5
cGU+JiBpdGVyYXRvciwgY29uc3QgQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0
ZXJhdG9yRm9yU3ludGF4VmlvbGF0aW9uUG9zaXRpb24pCiB7CkBAIC0yMDg2LDEwICsyMDkxLDEw
IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZUF1dGhvcml0eShDb2RlUG9pbnQKICAgICAgICAgICAg
IGFwcGVuZFRvQVNDSUlCdWZmZXIoJzonKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPGlzSW5Vc2VySW5mb0VuY29kZVNldD4oaXRlcmF0
b3IpOworICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxXZWJDb3JlOjppc0luVXNlckluZm9FbmNv
ZGVTZXQ+KGl0ZXJhdG9yKTsKICAgICB9CiAgICAgZm9yICg7ICFpdGVyYXRvci5hdEVuZCgpOyBh
ZHZhbmNlKGl0ZXJhdG9yKSkKLSAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8aXNJblVzZXJJbmZv
RW5jb2RlU2V0PihpdGVyYXRvcik7CisgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPFdlYkNvcmU6
OmlzSW5Vc2VySW5mb0VuY29kZVNldD4oaXRlcmF0b3IpOwogICAgIG1fdXJsLm1fcGFzc3dvcmRF
bmQgPSBjdXJyZW50UG9zaXRpb24oaXRlcmF0b3IpOwogICAgIGlmICghbV91cmwubV91c2VyRW5k
KQogICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX3VybC5tX3Bhc3N3b3JkRW5kOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBVUkxFbmNv
ZGVkRm9ybSYpOwogCiAgICAgc3RhdGljIGNvbnN0IFVJRE5BJiBpbnRlcm5hdGlvbmFsRG9tYWlu
TmFtZVRyYW5zY29kZXIoKTsKKyAgICBzdGF0aWMgYm9vbCBpc0luVXNlckluZm9FbmNvZGVTZXQo
VUNoYXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTcGVjaWFsU2NoZW1l
KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IG1heWJlQ2Fub25pY2FsaXplU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTExLTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4g
dXAgb2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51Q2xpZW50Ojpz
ZWFyY2hXaXRoR29vZ2xlKToKKwogMjAxNy0xMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBJZ25vcmUgSFNUUyBmb3IgcGFydGl0aW9uZWQsIGNyb3Nz
LW9yaWdpbiBzdWJyZXNvdXJjZSByZXF1ZXN0cwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwCShyZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MSwxNCArNjEsMTIgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdv
bwogewogICAgIFN0cmluZyBzZWFyY2hTdHJpbmcgPSBmcmFtZS0+ZWRpdG9yKCkuc2VsZWN0ZWRU
ZXh0KCk7CiAgICAgc2VhcmNoU3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgIFN0cmluZyBl
bmNvZGVkID0gZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhzZWFyY2hTdHJpbmcpOwotICAg
IGVuY29kZWQucmVwbGFjZShBU0NJSUxpdGVyYWwgeyAiJTIwIiB9LCBBU0NJSUxpdGVyYWwgeyAi
KyIgfSk7CiAKLSAgICBTdHJpbmcgdXJsID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/
cT0iICsgZW5jb2RlZCArICImaWU9VVRGLTgmb2U9VVRGLTgiOworICAgIFVSTCB1cmwgPSBVUkwo
VVJMKCksICJodHRwczovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIgKyBzZWFyY2hTdHJpbmcg
KyAiJmllPVVURi04Jm9lPVVURi04Iik7CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5w
YWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3Np
bmdVc2VyR2VzdHVyZSk7Ci0gICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnVybFNl
bGVjdGVkKFVSTCB7IFVSTCB7IH0sIHVybCB9LCB7IH0sIG51bGxwdHIsIExvY2tIaXN0b3J5OjpO
bywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgIHBhZ2UtPm1haW5G
cmFtZSgpLmxvYWRlcigpLnVybFNlbGVjdGVkKHVybCwgeyB9LCBudWxscHRyLCBMb2NrSGlzdG9y
eTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIH0KIH0KICNlbmRp
ZgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ3MTkpCisr
KyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTctMTEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBvbGQgVVJMIHBhcnNlciByZW1uYW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTczCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvdXJsL3VybC1zZXR0ZXJzLWV4cGVjdGVkLnR4dDoKKwogMjAxNy0xMS0xMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtTZXJ2aWNlIFdvcmtl
cnNdIEltcGxlbWVudCBiZXR0ZXIgc3VwcG9ydCBmb3IgIkNsZWFyIFJlZ2lzdHJhdGlvbiIgYWxn
b3JpdGhtCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3VybC91cmwtc2V0dGVycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLXNldHRlcnMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyMjQ3MDApCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3VybC91cmwtc2V0dGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTQ5NSwyMSArNDk1LDIxIEBAIFBBU1MgPGFyZWE+OiBTZXR0aW5nIDxodHRwczovL2V4YW1w
bGUubmUKIFBBU1MgVVJMOiBTZXR0aW5nIDxodHRwczovL2V4YW1wbGUubmV0I25hdj4ucGF0aG5h
bWUgPSAnLi4vaG9tZScgCiBQQVNTIDxhPjogU2V0dGluZyA8aHR0cHM6Ly9leGFtcGxlLm5ldCNu
YXY+LnBhdGhuYW1lID0gJy4uL2hvbWUnIAogUEFTUyA8YXJlYT46IFNldHRpbmcgPGh0dHBzOi8v
ZXhhbXBsZS5uZXQjbmF2Pi5wYXRobmFtZSA9ICcuLi9ob21lJyAKLUZBSUwgVVJMOiBTZXR0aW5n
IDxodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJF
XGJcJTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2
IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvJTI1MkUvYi8lMjUyZS4vYz9sYW5nPWZy
I25hdiIKLUZBSUwgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZy
I25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0
ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhh
bXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2Ev
JTI1MkUvYi8lMjUyZS4vYz9sYW5nPWZyI25hdiIKLUZBSUwgPGFyZWE+OiBTZXR0aW5nIDxodHRw
Oi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJl
LlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQg
Z290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvJTI1MkUvYi8lMjUyZS4vYz9sYW5nPWZyI25hdiIK
LUZBSUwgVVJMOiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9s
YW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2Vn
bWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMkVcYlwlMmUuXGM/bGFu
Zz1mciNuYXYiIGJ1dCBnb3QgInZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9cXGFcJTI1
MkVcYlwlMjUyZS5cYz9sYW5nPWZyI25hdiIKLUZBSUwgPGE+OiBTZXR0aW5nIDx2aWV3LXNvdXJj
ZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJF
XGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lh
bCcgVVJMcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1w
bGUubmV0L1xcYVwlMkVcYlwlMmUuXGM/bGFuZz1mciNuYXYiIGJ1dCBnb3QgInZpZXctc291cmNl
K2h0dHA6Ly9leGFtcGxlLm5ldC9cXGFcJTI1MkVcYlwlMjUyZS5cYz9sYW5nPWZyI25hdiIKLUZB
SUwgPGFyZWE+OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9s
YW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2Vn
bWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMkVcYlwlMmUuXGM/bGFu
Zz1mciNuYXYiIGJ1dCBnb3QgInZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9cXGFcJTI1
MkVcYlwlMjUyZS5cYz9sYW5nPWZyI25hdiIKK0ZBSUwgVVJMOiBTZXR0aW5nIDxodHRwOi8vZXhh
bXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBc
IGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJo
dHRwOi8vZXhhbXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIKK0ZBSUwgPGE+OiBTZXR0aW5nIDxo
dHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJc
JTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBi
dXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIKK0ZBSUwgPGFyZWE+
OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUg
PSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFs
JyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xh
bmc9ZnIjbmF2IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIK
K1BBU1MgVVJMOiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9s
YW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2Vn
bWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyAKK1BBU1MgPGE+OiBTZXR0aW5n
IDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5h
bWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9y
IG5vbi0nc3BlY2lhbCcgVVJMcyAKK1BBU1MgPGFyZWE+OiBTZXR0aW5nIDx2aWV3LXNvdXJjZSto
dHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJc
JTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcg
VVJMcyAKIEZBSUwgVVJMOiBTZXR0aW5nIDxhOi8+LnBhdGhuYW1lID0gJ1wwAQkKLVxyHyAhIiMk
JSYnKCkqKywtLi8wOTo7PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2Vu
dCBlbmNvZGluZyB3aXRoIHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVz
IGFyZSByZW1vdmVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUy
MiUyMyQlJicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVD
MiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTA5JTBBJTBEJTFGJTIw
ISUyMiUyMyQlMjUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+
JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IgorXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/
QEFaW1xdXl9gYXp7fH1+f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhl
IGRlZmF1bHQgZW5jb2RlIHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6
OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMz
JUE5IiBidXQgZ290ICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0l
M0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMzJTgyJUMyJTgwJUMzJTgyJUMyJTgxJUMz
JTgzJUMyJTg5JUMzJTgzJUMyJUE5IgogRkFJTCA8YT46IFNldHRpbmcgPGE6Lz4ucGF0aG5hbWUg
PSAnXDABCQotXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/QEFaW1xdXl9gYXp7fH1+f8KAwoHD
icOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhlIGRlZmF1bHQgZW5jb2RlIHNldC4g
VGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJh
Oi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8l
NjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IiBidXQgZ290ICJhOi8lMDAl
MDElMDklMEElMEQlMUYlMjAhJTIyJTIzJCUyNSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltc
XF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiCitcch8gISIjJCUm
JygpKissLS4vMDk6Ozw9Pj9AQVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQg
ZW5jb2Rpbmcgd2l0aCB0aGUgZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBh
cmUgcmVtb3ZlZC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIl
MjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIl
ODAlQzIlODElQzMlODklQzMlQTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYn
KCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzMlODIlQzIl
ODAlQzMlODIlQzIlODElQzMlODMlQzIlODklQzMlODMlQzIlQTkiCiBGQUlMIDxhcmVhPjogU2V0
dGluZyA8YTovPi5wYXRobmFtZSA9ICdcMAEJCi1cch8gISIjJCUmJygpKissLS4vMDk6Ozw9Pj9A
QVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQgZW5jb2Rpbmcgd2l0aCB0aGUg
ZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBhcmUgcmVtb3ZlZC4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8wOTo7
JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMl
QTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUwOSUwQSUwRCUxRiUyMCElMjIlMjMkJTI1JicoKSorLC0u
LzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4
OSVDMyVBOSIKLUZBSUwgVVJMOiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1l
ID0gJyUyZSUyRSVjMyU4OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxl
ZnQgYXMtaXMsIGluY2x1ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIg
YnV0IGdvdCAiaHR0cDovL2V4YW1wbGUubmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIK
LUZBSUwgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUy
RSVjMyU4OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMs
IGluY2x1ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIgYnV0IGdvdCAi
aHR0cDovL2V4YW1wbGUubmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIKLUZBSUwgPGFy
ZWE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4
OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1
ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJodHRwOi8vZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIgYnV0IGdvdCAiaHR0cDov
L2V4YW1wbGUubmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIKK1xyHyAhIiMkJSYnKCkq
KywtLi8wOTo7PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNv
ZGluZyB3aXRoIHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSBy
ZW1vdmVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQl
JicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVD
MiU4MSVDMyU4OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSor
LC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMyU4MiVDMiU4MCVD
MyU4MiVDMiU4MSVDMyU4MyVDMiU4OSVDMyU4MyVDMiVBOSIKK1BBU1MgVVJMOiBTZXR0aW5nIDxo
dHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4OXTDqScgQnl0ZXMgYWxy
ZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1ZGluZyAlMkUgb3V0c2lk
ZSBkb3R0ZWQgc2VnbWVudHMuIAorUEFTUyA8YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5l
dD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQtZW5j
b2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdtZW50
cy4gCitQQVNTIDxhcmVhPjogU2V0dGluZyA8aHR0cDovL2V4YW1wbGUubmV0Pi5wYXRobmFtZSA9
ICclMmUlMkUlYzMlODl0w6knIEJ5dGVzIGFscmVhZHkgcGVyY2VudC1lbmNvZGVkIGFyZSBsZWZ0
IGFzLWlzLCBpbmNsdWRpbmcgJTJFIG91dHNpZGUgZG90dGVkIHNlZ21lbnRzLiAKIFBBU1MgVVJM
OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJz8nID8gbmVlZHMgdG8g
YmUgZW5jb2RlZCAKIFBBU1MgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhu
YW1lID0gJz8nID8gbmVlZHMgdG8gYmUgZW5jb2RlZCAKIFBBU1MgPGFyZWE+OiBTZXR0aW5nIDxo
dHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJz8nID8gbmVlZHMgdG8gYmUgZW5jb2RlZCAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326677</attachid>
            <date>2017-11-10 20:40:36 -0800</date>
            <delta_ts>2017-11-10 22:05:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179573-20171110204035.patch</filename>
            <type>text/plain</type>
            <size>40400</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTExLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
b2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gd2UgdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgVVJMUGFyc2Vy
LCB3ZSBrZXB0IHRoZSBvbGQgY2hhcmFjdGVyIHRhYmxlcyB3aGljaCB3ZXJlIGxlc3Mgc3BlYy1j
b25mb3JtYW50LgorICAgICAgICBSZW1vdmluZyB0aGVtIGFuZCB0cmFuc2l0aW9uaW5nIHRvIFVS
TFBhcnNlcidzIHRhYmxlIG1ha2VzIG1vcmUgd2ViIHBsYXRmb3JtIHRlc3RzIHBhc3MhCisKKyAg
ICAgICAgKiBmaWxlYXBpL0Jsb2JVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlVSTDo6
Y3JlYXRlQmxvYlVSTCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpjcmVh
dGVGaWxlVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VVJMOjpzZXRQcm90b2NvbCk6CisgICAgICAgIChXZWJDb3JlOjpwZXJjZW50RW5jb2RlQ2hh
cmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldFVzZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VVJMOjpzZXRQYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0UGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcm90b2NvbElzSW50ZXJuYWwpOgorICAgICAgICAoKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2NoZW1lRmlyc3RDaGFyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmlzU2NoZW1lQ2hhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c0JhZENoYXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNUYWJOZXdsaW5lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEVzY2FwZWRDaGFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZFByb3RvY29sKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjppc0lu
VXNlckluZm9FbmNvZGVTZXQpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZUF1
dGhvcml0eSk6CisgICAgICAgICogcGxhdGZvcm0vVVJMUGFyc2VyLmg6CisKIDIwMTctMTEtMTAg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEltcGxlbWVudCBnZXRBbmltYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYlVSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iVVJMLmNwcAkocmV2aXNpb24gMjI0NzAwKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBTdHJpbmcgQmxvYlVS
TDo6Z2V0SWRlbnRpZmllcihjb25zdCBVUkwmCiBVUkwgQmxvYlVSTDo6Y3JlYXRlQmxvYlVSTChj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBBU1NFUlQoIW9yaWdpblN0cmluZy5p
c0VtcHR5KCkpOwotICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgZW5jb2RlV2l0aFVS
TEVzY2FwZVNlcXVlbmNlcyhvcmlnaW5TdHJpbmcpICsgJy8nICsgY3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZygpOworICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgb3JpZ2luU3RyaW5n
ICsgJy8nICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwogICAgIHJldHVybiBVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlz
aW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSwxMSArMjE1LDYgQEAgYm9vbCBB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogVVJMIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjpjcmVhdGVGaWxlVVJMKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBGSVhNRTog
Q2FuIHdlIGp1c3QgdXNlIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggaW5zdGVhZD8KLQotICAg
IC8vIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggZnVuY3Rpb24gaXMgbm90IHN1aXRhYmxlIGJl
Y2F1c2UgVVJMOjpzZXRQYXRoIHVzZXMgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcywgd2hp
Y2ggaXQgbm90ZXMKLSAgICAvLyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBhbmQgJz8n
LiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGZvciBvdXIgcHVycG9zZXMgYmVjYXVzZQotICAgIC8vIGFw
cCBjYWNoZSBtZWRpYSBmaWxlcyBhcmUgYWx3YXlzIGNyZWF0ZWQgd2l0aCBlbmNvZGVGb3JGaWxl
TmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpLgotCiAjaWYgVVNFKENGKSAmJiBQTEFU
Rk9STShXSU4pCiAgICAgVVJMIHVybChhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1Q
YXRoKDAsIHBhdGguY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga0NGVVJMV2luZG93c1BhdGhTdHls
ZSwgZmFsc2UpKS5nZXQoKSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCShy
ZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSwyNzYgKzU1LDYgQEAgdHlwZWRlZiBWZWN0b3I8VUNoYXIsIDUxMj4g
VUNoYXJCdWZmZXI7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkUG9ydE51bWJlciA9
IDB4RkZGRjsKIAotZW51bSBVUkxDaGFyYWN0ZXJDbGFzc2VzIHsKLSAgICAvLyBhbHBoYSAKLSAg
ICBTY2hlbWVGaXJzdENoYXIgPSAxIDw8IDAsCi0KLSAgICAvLyAoIGFscGhhIHwgZGlnaXQgfCAi
KyIgfCAiLSIgfCAiLiIgKQotICAgIFNjaGVtZUNoYXIgPSAxIDw8IDEsCi0KLSAgICAvLyBtYXJr
ICAgICAgICA9ICItIiB8ICJfIiB8ICIuIiB8ICIhIiB8ICJ+IiB8ICIqIiB8ICInIiB8ICIoIiB8
ICIpIgotICAgIC8vIHVucmVzZXJ2ZWQgID0gYWxwaGFudW0gfCBtYXJrCi0gICAgLy8gKCB1bnJl
c2VydmVkIHwgZXNjYXBlZCB8ICI7IiB8ICI6IiB8ICImIiB8ICI9IiB8ICIrIiB8ICIkIiB8ICIs
IiApCi0gICAgVXNlckluZm9DaGFyID0gMSA8PCAyLAotCi0gICAgLy8gYWxudW0gfCAiLiIgfCAi
LSIgfCAiJSIKLSAgICAvLyBUaGUgYWJvdmUgaXMgd2hhdCB0aGUgc3BlY2lmaWNhdGlvbiBzYXlz
LCBidXQgd2UgYXJlIGxlbmllbnQgdG8KLSAgICAvLyBtYXRjaCBleGlzdGluZyBwcmFjdGljZSBh
bmQgYWxzbyBhbGxvdzoKLSAgICAvLyAiXyIKLSAgICBIb3N0bmFtZUNoYXIgPSAxIDw8IDMsCi0K
LSAgICAvLyBoZXhkaWdpdCB8ICI6IiB8ICIlIgotICAgIElQdjZDaGFyID0gMSA8PCA0LAotCi0g
ICAgLy8gIiMiIHwgIj8iIHwgIi8iIHwgbnVsCi0gICAgUGF0aFNlZ21lbnRFbmRDaGFyID0gMSA8
PCA1LAotCi0gICAgLy8gbm90IGFsbG93ZWQgaW4gcGF0aAotICAgIEJhZENoYXIgPSAxIDw8IDYs
Ci0KLSAgICAvLyAiXHQiIHwgIlxuIiB8ICJcciIKLSAgICBUYWJOZXdsaW5lID0gMSA8PCA3Ci19
OwotCi1uYW1lc3BhY2UgVVJMSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg
Y2hhcmFjdGVyQ2xhc3NUYWJsZVsyNTZdID0gewotICAgIC8qIDAgbnVsICovIFBhdGhTZWdtZW50
RW5kQ2hhciwgICAgLyogMSBzb2ggKi8gQmFkQ2hhciwKLSAgICAvKiAyIHN0eCAqLyBCYWRDaGFy
LCAgICAvKiAzIGV0eCAqLyBCYWRDaGFyLAotICAgIC8qIDQgZW90ICovIEJhZENoYXIsICAgIC8q
IDUgZW5xICovIEJhZENoYXIsICAgIC8qIDYgYWNrICovIEJhZENoYXIsICAgIC8qIDcgYmVsICov
IEJhZENoYXIsCi0gICAgLyogOCBicyAqLyBCYWRDaGFyLCAgICAgLyogOSBodCAqLyBCYWRDaGFy
IHwgVGFiTmV3bGluZSwgICAgICAgICAgICAgICAgLyogMTAgbmwgKi8gQmFkQ2hhciB8IFRhYk5l
d2xpbmUsCi0gICAgLyogMTEgdnQgKi8gQmFkQ2hhciwgICAgLyogMTIgbnAgKi8gQmFkQ2hhciwg
ICAgLyogMTMgY3IgKi8gQmFkQ2hhciB8IFRhYk5ld2xpbmUsCi0gICAgLyogMTQgc28gKi8gQmFk
Q2hhciwgICAgLyogMTUgc2kgKi8gQmFkQ2hhciwKLSAgICAvKiAxNiBkbGUgKi8gQmFkQ2hhciwg
ICAvKiAxNyBkYzEgKi8gQmFkQ2hhciwgICAvKiAxOCBkYzIgKi8gQmFkQ2hhciwgICAvKiAxOSBk
YzMgKi8gQmFkQ2hhciwKLSAgICAvKiAyMCBkYzQgKi8gQmFkQ2hhciwgICAvKiAyMSBuYWsgKi8g
QmFkQ2hhciwgICAvKiAyMiBzeW4gKi8gQmFkQ2hhciwgICAvKiAyMyBldGIgKi8gQmFkQ2hhciwK
LSAgICAvKiAyNCBjYW4gKi8gQmFkQ2hhciwgICAvKiAyNSBlbSAqLyBCYWRDaGFyLCAgICAvKiAy
NiBzdWIgKi8gQmFkQ2hhciwgICAvKiAyNyBlc2MgKi8gQmFkQ2hhciwKLSAgICAvKiAyOCBmcyAq
LyBCYWRDaGFyLCAgICAvKiAyOSBncyAqLyBCYWRDaGFyLCAgICAvKiAzMCBycyAqLyBCYWRDaGFy
LCAgICAvKiAzMSB1cyAqLyBCYWRDaGFyLAotICAgIC8qIDMyIHNwICovIEJhZENoYXIsICAgIC8q
IDMzICAhICovIFVzZXJJbmZvQ2hhciwKLSAgICAvKiAzNCAgIiAqLyBCYWRDaGFyLCAgICAvKiAz
NSAgIyAqLyBQYXRoU2VnbWVudEVuZENoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM2ICAkICovIFVz
ZXJJbmZvQ2hhciwgICAgLyogMzcgICUgKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwg
SVB2NkNoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM4ICAmICovIFVzZXJJbmZvQ2hhciwgICAgLyog
MzkgICcgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQwICAoICovIFVzZXJJbmZvQ2hhciwgICAg
LyogNDEgICkgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQyICAqICovIFVzZXJJbmZvQ2hhciwg
ICAgLyogNDMgICsgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciwKLSAgICAvKiA0NCAgLCAq
LyBVc2VySW5mb0NoYXIsCi0gICAgLyogNDUgIC0gKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hh
ciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA0NiAgLiAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNDcgIC8gKi8gUGF0aFNlZ21l
bnRFbmRDaGFyLAotICAgIC8qIDQ4ICAwICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogNDkgIDEgKi8gU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAgICAKLSAgICAvKiA1MCAgMiAq
LyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAot
ICAgIC8qIDUxICAzICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIg
fCBJUHY2Q2hhciwKLSAgICAvKiA1MiAgNCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwg
SG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDUzICA1ICovIFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1NCAgNiAqLyBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAg
IC8qIDU1ICA3ICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJ
UHY2Q2hhciwKLSAgICAvKiA1NiAgOCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDU3ICA5ICovIFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1OCAgOiAqLyBVc2Vy
SW5mb0NoYXIgfCBJUHY2Q2hhciwgICAgLyogNTkgIDsgKi8gVXNlckluZm9DaGFyLAotICAgIC8q
IDYwICA8ICovIEJhZENoYXIsICAgIC8qIDYxICA9ICovIFVzZXJJbmZvQ2hhciwKLSAgICAvKiA2
MiAgPiAqLyBCYWRDaGFyLCAgICAvKiA2MyAgPyAqLyBQYXRoU2VnbWVudEVuZENoYXIgfCBCYWRD
aGFyLAotICAgIC8qIDY0ICBAICovIDAsCi0gICAgLyogNjUgIEEgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAg
ICAKLSAgICAvKiA2NiAgQiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlcklu
Zm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNjcgIEMgKi8gU2NoZW1l
Rmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQ
djZDaGFyLAotICAgIC8qIDY4ICBEICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA2OSAgRSAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
IHwgSVB2NkNoYXIsCi0gICAgLyogNzAgIEYgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8qIDcxICBH
ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFt
ZUNoYXIsCi0gICAgLyogNzIgIEggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3MyAgSSAqLyBTY2hlbWVGaXJzdENo
YXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDc0
ICBKICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0
bmFtZUNoYXIsCi0gICAgLyogNzUgIEsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8
IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3NiAgTCAqLyBTY2hlbWVGaXJz
dENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8q
IDc3ICBNICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIsCi0gICAgLyogNzggIE4gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3OSAgTyAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAg
IC8qIDgwICBQICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODEgIFEgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1l
Q2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4MiAgUiAqLyBTY2hl
bWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAot
ICAgIC8qIDgzICBTICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODQgIFQgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4NSAgVSAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
LAotICAgIC8qIDg2ICBWICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5m
b0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODcgIFcgKi8gU2NoZW1lRmlyc3RDaGFyIHwg
U2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4OCAgWCAq
LyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLCAKLSAgICAvKiA4OSAgWSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDkwICBaICovIFNjaGVtZUZpcnN0Q2hh
ciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogOTEg
IFsgKi8gMCwKLSAgICAvKiA5MiAgXCAqLyAwLCAgICAvKiA5MyAgXSAqLyAwLAotICAgIC8qIDk0
ICBeICovIDAsCi0gICAgLyogOTUgIF8gKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAot
ICAgIC8qIDk2ICBgICovIDAsCi0gICAgLyogOTcgIGEgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8q
IDk4ICBiICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogOTkgIGMgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAot
ICAgIC8qIDEwMCAgZCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDEwMSAgZSAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2
NkNoYXIsCi0gICAgLyogMTAyICBmICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogMTAzICBnICov
IFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNo
YXIsCi0gICAgLyogMTA0ICBoICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDEwNSAgaSAqLyBTY2hlbWVGaXJzdENo
YXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDEw
NiAgaiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyLCAKLSAgICAvKiAxMDcgIGsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMDggIGwgKi8gU2NoZW1l
Rmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0g
ICAgLyogMTA5ICBtICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTEwICBuICovIFNjaGVtZUZpcnN0Q2hhciB8IFNj
aGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDExMSAgbyAq
LyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLAotICAgIC8qIDExMiAgcCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMTMgIHEgKi8gU2NoZW1lRmlyc3RD
aGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAx
MTQgIHIgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhv
c3RuYW1lQ2hhciwgCi0gICAgLyogMTE1ICBzICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNo
YXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTE2ICB0ICovIFNjaGVt
ZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAot
ICAgIC8qIDExNyAgdSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDExOCAgdiAqLyBTY2hlbWVGaXJzdENoYXIgfCBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMTkgIHcg
Ki8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1l
Q2hhciwKLSAgICAvKiAxMjAgIHggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVz
ZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTIxICB5ICovIFNjaGVtZUZpcnN0
Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyog
MTIyICB6ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIsIAotICAgIC8qIDEyMyAgeyAqLyAwLAotICAgIC8qIDEyNCAgfCAqLyAwLCAg
IC8qIDEyNSAgfSAqLyAwLCAgIC8qIDEyNiAgfiAqLyBVc2VySW5mb0NoYXIsICAgLyogMTI3IGRl
bCAqLyBCYWRDaGFyLAotICAgIC8qIDEyOCAqLyBCYWRDaGFyLCAvKiAxMjkgKi8gQmFkQ2hhciwg
LyogMTMwICovIEJhZENoYXIsIC8qIDEzMSAqLyBCYWRDaGFyLAotICAgIC8qIDEzMiAqLyBCYWRD
aGFyLCAvKiAxMzMgKi8gQmFkQ2hhciwgLyogMTM0ICovIEJhZENoYXIsIC8qIDEzNSAqLyBCYWRD
aGFyLAotICAgIC8qIDEzNiAqLyBCYWRDaGFyLCAvKiAxMzcgKi8gQmFkQ2hhciwgLyogMTM4ICov
IEJhZENoYXIsIC8qIDEzOSAqLyBCYWRDaGFyLAotICAgIC8qIDE0MCAqLyBCYWRDaGFyLCAvKiAx
NDEgKi8gQmFkQ2hhciwgLyogMTQyICovIEJhZENoYXIsIC8qIDE0MyAqLyBCYWRDaGFyLAotICAg
IC8qIDE0NCAqLyBCYWRDaGFyLCAvKiAxNDUgKi8gQmFkQ2hhciwgLyogMTQ2ICovIEJhZENoYXIs
IC8qIDE0NyAqLyBCYWRDaGFyLAotICAgIC8qIDE0OCAqLyBCYWRDaGFyLCAvKiAxNDkgKi8gQmFk
Q2hhciwgLyogMTUwICovIEJhZENoYXIsIC8qIDE1MSAqLyBCYWRDaGFyLAotICAgIC8qIDE1MiAq
LyBCYWRDaGFyLCAvKiAxNTMgKi8gQmFkQ2hhciwgLyogMTU0ICovIEJhZENoYXIsIC8qIDE1NSAq
LyBCYWRDaGFyLAotICAgIC8qIDE1NiAqLyBCYWRDaGFyLCAvKiAxNTcgKi8gQmFkQ2hhciwgLyog
MTU4ICovIEJhZENoYXIsIC8qIDE1OSAqLyBCYWRDaGFyLAotICAgIC8qIDE2MCAqLyBCYWRDaGFy
LCAvKiAxNjEgKi8gQmFkQ2hhciwgLyogMTYyICovIEJhZENoYXIsIC8qIDE2MyAqLyBCYWRDaGFy
LAotICAgIC8qIDE2NCAqLyBCYWRDaGFyLCAvKiAxNjUgKi8gQmFkQ2hhciwgLyogMTY2ICovIEJh
ZENoYXIsIC8qIDE2NyAqLyBCYWRDaGFyLAotICAgIC8qIDE2OCAqLyBCYWRDaGFyLCAvKiAxNjkg
Ki8gQmFkQ2hhciwgLyogMTcwICovIEJhZENoYXIsIC8qIDE3MSAqLyBCYWRDaGFyLAotICAgIC8q
IDE3MiAqLyBCYWRDaGFyLCAvKiAxNzMgKi8gQmFkQ2hhciwgLyogMTc0ICovIEJhZENoYXIsIC8q
IDE3NSAqLyBCYWRDaGFyLAotICAgIC8qIDE3NiAqLyBCYWRDaGFyLCAvKiAxNzcgKi8gQmFkQ2hh
ciwgLyogMTc4ICovIEJhZENoYXIsIC8qIDE3OSAqLyBCYWRDaGFyLAotICAgIC8qIDE4MCAqLyBC
YWRDaGFyLCAvKiAxODEgKi8gQmFkQ2hhciwgLyogMTgyICovIEJhZENoYXIsIC8qIDE4MyAqLyBC
YWRDaGFyLAotICAgIC8qIDE4NCAqLyBCYWRDaGFyLCAvKiAxODUgKi8gQmFkQ2hhciwgLyogMTg2
ICovIEJhZENoYXIsIC8qIDE4NyAqLyBCYWRDaGFyLAotICAgIC8qIDE4OCAqLyBCYWRDaGFyLCAv
KiAxODkgKi8gQmFkQ2hhciwgLyogMTkwICovIEJhZENoYXIsIC8qIDE5MSAqLyBCYWRDaGFyLAot
ICAgIC8qIDE5MiAqLyBCYWRDaGFyLCAvKiAxOTMgKi8gQmFkQ2hhciwgLyogMTk0ICovIEJhZENo
YXIsIC8qIDE5NSAqLyBCYWRDaGFyLAotICAgIC8qIDE5NiAqLyBCYWRDaGFyLCAvKiAxOTcgKi8g
QmFkQ2hhciwgLyogMTk4ICovIEJhZENoYXIsIC8qIDE5OSAqLyBCYWRDaGFyLAotICAgIC8qIDIw
MCAqLyBCYWRDaGFyLCAvKiAyMDEgKi8gQmFkQ2hhciwgLyogMjAyICovIEJhZENoYXIsIC8qIDIw
MyAqLyBCYWRDaGFyLAotICAgIC8qIDIwNCAqLyBCYWRDaGFyLCAvKiAyMDUgKi8gQmFkQ2hhciwg
LyogMjA2ICovIEJhZENoYXIsIC8qIDIwNyAqLyBCYWRDaGFyLAotICAgIC8qIDIwOCAqLyBCYWRD
aGFyLCAvKiAyMDkgKi8gQmFkQ2hhciwgLyogMjEwICovIEJhZENoYXIsIC8qIDIxMSAqLyBCYWRD
aGFyLAotICAgIC8qIDIxMiAqLyBCYWRDaGFyLCAvKiAyMTMgKi8gQmFkQ2hhciwgLyogMjE0ICov
IEJhZENoYXIsIC8qIDIxNSAqLyBCYWRDaGFyLAotICAgIC8qIDIxNiAqLyBCYWRDaGFyLCAvKiAy
MTcgKi8gQmFkQ2hhciwgLyogMjE4ICovIEJhZENoYXIsIC8qIDIxOSAqLyBCYWRDaGFyLAotICAg
IC8qIDIyMCAqLyBCYWRDaGFyLCAvKiAyMjEgKi8gQmFkQ2hhciwgLyogMjIyICovIEJhZENoYXIs
IC8qIDIyMyAqLyBCYWRDaGFyLAotICAgIC8qIDIyNCAqLyBCYWRDaGFyLCAvKiAyMjUgKi8gQmFk
Q2hhciwgLyogMjI2ICovIEJhZENoYXIsIC8qIDIyNyAqLyBCYWRDaGFyLAotICAgIC8qIDIyOCAq
LyBCYWRDaGFyLCAvKiAyMjkgKi8gQmFkQ2hhciwgLyogMjMwICovIEJhZENoYXIsIC8qIDIzMSAq
LyBCYWRDaGFyLAotICAgIC8qIDIzMiAqLyBCYWRDaGFyLCAvKiAyMzMgKi8gQmFkQ2hhciwgLyog
MjM0ICovIEJhZENoYXIsIC8qIDIzNSAqLyBCYWRDaGFyLAotICAgIC8qIDIzNiAqLyBCYWRDaGFy
LCAvKiAyMzcgKi8gQmFkQ2hhciwgLyogMjM4ICovIEJhZENoYXIsIC8qIDIzOSAqLyBCYWRDaGFy
LAotICAgIC8qIDI0MCAqLyBCYWRDaGFyLCAvKiAyNDEgKi8gQmFkQ2hhciwgLyogMjQyICovIEJh
ZENoYXIsIC8qIDI0MyAqLyBCYWRDaGFyLAotICAgIC8qIDI0NCAqLyBCYWRDaGFyLCAvKiAyNDUg
Ki8gQmFkQ2hhciwgLyogMjQ2ICovIEJhZENoYXIsIC8qIDI0NyAqLyBCYWRDaGFyLAotICAgIC8q
IDI0OCAqLyBCYWRDaGFyLCAvKiAyNDkgKi8gQmFkQ2hhciwgLyogMjUwICovIEJhZENoYXIsIC8q
IDI1MSAqLyBCYWRDaGFyLAotICAgIC8qIDI1MiAqLyBCYWRDaGFyLCAvKiAyNTMgKi8gQmFkQ2hh
ciwgLyogMjU0ICovIEJhZENoYXIsIC8qIDI1NSAqLyBCYWRDaGFyCi19OwotfQotCi1lbnVtIFBl
cmNlbnRFbmNvZGVDaGFyYWN0ZXJDbGFzcyB7Ci0gICAgLy8gQ2xhc3MgbmFtZXMgbWF0Y2ggdGhl
IFVSTCBTdGFuZGFyZDsgZWFjaCBjbGFzcyBpcyBhIHN1cGVyc2V0IG9mIHRoZSBwcmV2aW91cyBv
bmUuCi0gICAgUGVyY2VudEVuY29kZVNpbXBsZSA9IDI1NSwKLSAgICBQZXJjZW50RW5jb2RlRGVm
YXVsdCA9IDEyNywKLSAgICBQZXJjZW50RW5jb2RlUGFzc3dvcmQgPSA2MywKLSAgICBQZXJjZW50
RW5jb2RlVXNlcm5hbWUgPSAzMSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBl
cmNlbnRFbmNvZGVDbGFzc1RhYmxlWzI1Nl0gPSB7Ci0gICAgLyogMCBudWwgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgICAgLyogMSBzb2ggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMiBz
dHggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMyBldHggKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwKLSAgICAvKiA0IGVvdCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA1IGVucSAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA2IGFjayAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAgICAvKiA3IGJlbCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDggYnMgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgICAgIC8qIDkgaHQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAg
IC8qIDEwIG5sICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDExIHZ0ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMTIgbnAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyog
MTMgY3IgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMTQgc28gKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgICAgLyogMTUgc2kgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNiBk
bGUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxNyBkYzEgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgICAvKiAxOCBkYzIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxOSBkYzMgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMCBkYzQgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgICAvKiAyMSBuYWsgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyMiBzeW4gKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgICAvKiAyMyBldGIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAg
ICAvKiAyNCBjYW4gKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyNSBlbSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAgICAvKiAyNiBzdWIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAy
NyBlc2MgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyOCBmcyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAgICAvKiAyOSBncyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzMCBy
cyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzMSB1cyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLAotICAgIC8qIDMyIHNwICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDMzICAh
ICovIDAsCi0gICAgLyogMzQgICIgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzUg
ICMgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzYgICQgKi8gMCwKLSAgICAvKiAz
NyAgJSAqLyAwLAotICAgIC8qIDM4ICAmICovIDAsCi0gICAgLyogMzkgICcgKi8gMCwKLSAgICAv
KiA0MCAgKCAqLyAwLAotICAgIC8qIDQxICApICovIDAsCi0gICAgLyogNDIgICogKi8gMCwKLSAg
ICAvKiA0MyAgKyAqLyAwLAotICAgIC8qIDQ0ICAsICovIDAsCi0gICAgLyogNDUgIC0gKi8gMCwK
LSAgICAvKiA0NiAgLiAqLyAwLAotICAgIC8qIDQ3ICAvICovIFBlcmNlbnRFbmNvZGVQYXNzd29y
ZCwKLSAgICAvKiA0OCAgMCAqLyAwLCAgICAvKiA0OSAgMSAqLyAwLCAgICAvKiA1MCAgMiAqLyAw
LCAgICAvKiA1MSAgMyAqLyAwLAotICAgIC8qIDUyICA0ICovIDAsICAgIC8qIDUzICA1ICovIDAs
ICAgIC8qIDU0ICA2ICovIDAsICAgIC8qIDU1ICA3ICovIDAsCi0gICAgLyogNTYgIDggKi8gMCwg
ICAgLyogNTcgIDkgKi8gMCwKLSAgICAvKiA1OCAgOiAqLyBQZXJjZW50RW5jb2RlVXNlcm5hbWUs
Ci0gICAgLyogNTkgIDsgKi8gMCwKLSAgICAvKiA2MCAgPCAqLyBQZXJjZW50RW5jb2RlRGVmYXVs
dCwKLSAgICAvKiA2MSAgPSAqLyAwLAotICAgIC8qIDYyICA+ICovIFBlcmNlbnRFbmNvZGVEZWZh
dWx0LAotICAgIC8qIDYzICA/ICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDY0ICBA
ICovIFBlcmNlbnRFbmNvZGVQYXNzd29yZCwKLSAgICAvKiA2NSAgQSAqLyAwLCAgICAvKiA2NiAg
QiAqLyAwLCAgICAvKiA2NyAgQyAqLyAwLCAgICAvKiA2OCAgRCAqLyAwLAotICAgIC8qIDY5ICBF
ICovIDAsICAgIC8qIDcwICBGICovIDAsICAgIC8qIDcxICBHICovIDAsICAgIC8qIDcyICBIICov
IDAsCi0gICAgLyogNzMgIEkgKi8gMCwgICAgLyogNzQgIEogKi8gMCwgICAgLyogNzUgIEsgKi8g
MCwgICAgLyogNzYgIEwgKi8gMCwKLSAgICAvKiA3NyAgTSAqLyAwLCAgICAvKiA3OCAgTiAqLyAw
LCAgICAvKiA3OSAgTyAqLyAwLCAgICAvKiA4MCAgUCAqLyAwLAotICAgIC8qIDgxICBRICovIDAs
ICAgIC8qIDgyICBSICovIDAsICAgIC8qIDgzICBTICovIDAsICAgIC8qIDg0ICBUICovIDAsCi0g
ICAgLyogODUgIFUgKi8gMCwgICAgLyogODYgIFYgKi8gMCwgICAgLyogODcgIFcgKi8gMCwgICAg
LyogODggIFggKi8gMCwKLSAgICAvKiA4OSAgWSAqLyAwLCAgICAvKiA5MCAgWiAqLyAwLAotICAg
IC8qIDkxICBbICovIDAsCi0gICAgLyogOTIgIFwgKi8gUGVyY2VudEVuY29kZVBhc3N3b3JkLAot
ICAgIC8qIDkzICBdICovIDAsCi0gICAgLyogOTQgIF4gKi8gMCwKLSAgICAvKiA5NSAgXyAqLyAw
LAotICAgIC8qIDk2ICBgICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDk3ICBhICov
IDAsICAgIC8qIDk4ICBiICovIDAsICAgIC8qIDk5ICBjICovIDAsICAgIC8qIDEwMCAgZCAqLyAw
LAotICAgIC8qIDEwMSAgZSAqLyAwLCAgICAvKiAxMDIgIGYgKi8gMCwgICAgLyogMTAzICBnICov
IDAsICAgIC8qIDEwNCAgaCAqLyAwLAotICAgIC8qIDEwNSAgaSAqLyAwLCAgICAvKiAxMDYgIGog
Ki8gMCwgICAgLyogMTA3ICBrICovIDAsICAgIC8qIDEwOCAgbCAqLyAwLAotICAgIC8qIDEwOSAg
bSAqLyAwLCAgICAvKiAxMTAgIG4gKi8gMCwgICAgLyogMTExICBvICovIDAsICAgIC8qIDExMiAg
cCAqLyAwLAotICAgIC8qIDExMyAgcSAqLyAwLCAgICAvKiAxMTQgIHIgKi8gMCwgICAgLyogMTE1
ICBzICovIDAsICAgIC8qIDExNiAgdCAqLyAwLAotICAgIC8qIDExNyAgdSAqLyAwLCAgICAvKiAx
MTggIHYgKi8gMCwgICAgLyogMTE5ICB3ICovIDAsICAgIC8qIDEyMCAgeCAqLyAwLAotICAgIC8q
IDEyMSAgeSAqLyAwLCAgICAvKiAxMjIgIHogKi8gMCwKLSAgICAvKiAxMjMgIHsgKi8gMCwKLSAg
ICAvKiAxMjQgIHwgKi8gMCwKLSAgICAvKiAxMjUgIH0gKi8gMCwKLSAgICAvKiAxMjYgIH4gKi8g
MCwKLSAgICAvKiAxMjcgZGVsICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTI4ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAx
MzAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTMxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMTMyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEzMyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAxMzQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTM1ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEz
NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxMzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMTM5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTQwICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDE0MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNDIgKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMTQzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTQ0
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAxNDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQ3ICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsCi0gICAgLyogMTQ4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0OSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAxNTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTUxICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTUyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDE1MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTQgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMTU1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTU2ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDE1NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTggKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMTU5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MTYwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAxNjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTYzICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMTY0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2NSAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAxNjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTY3ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTY4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDE2OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzAgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMTcxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTcyICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDE3MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzQgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMTc2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3NyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAxNzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc5ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsCi0gICAgLyogMTgwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4MSAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTgz
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg0ICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsIC8qIDE4NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODYgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMTg3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg4ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTAg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTkxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0g
ICAgLyogMTkyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5MyAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAvKiAxOTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTk1ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMTk2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5NyAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MTk5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjAwICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDIwMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMDIgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMjAzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjA0ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwNSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAy
MDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjA3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMjA4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwOSAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAyMTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjExICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjEyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIx
MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMjE1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjE2ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDIxNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTggKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMjE5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjIw
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAyMjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjIzICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsCi0gICAgLyogMjI0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyNSAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAyMjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjI3ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjI4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDIyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzAgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMjMxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjMyICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDIzMyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzQgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMjM1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MjM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAyMzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjM5ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMjQwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI0MSAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAyNDIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjQzICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDI0NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNDYgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMjQ3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ4ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDI0OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNTAgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjUxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMjUyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1MyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAyNTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjU1ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUKLX07Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1NjaGVtZUZpcnN0Q2hhcihVQ2hh
ciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0ZXJDbGFzc1Rh
YmxlW2NdICYgU2NoZW1lRmlyc3RDaGFyKTsgfQotc3RhdGljIGlubGluZSBib29sIGlzU2NoZW1l
Q2hhcihVQ2hhciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0
ZXJDbGFzc1RhYmxlW2NdICYgU2NoZW1lQ2hhcik7IH0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Jh
ZENoYXIodW5zaWduZWQgY2hhciBjKSB7IHJldHVybiBVUkxJbnRlcm5hbDo6Y2hhcmFjdGVyQ2xh
c3NUYWJsZVtjXSAmIEJhZENoYXI7IH0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1RhYk5ld2xpbmUo
VUNoYXIgYykgeyByZXR1cm4gYyA8PSAweGZmICYmIChVUkxJbnRlcm5hbDo6Y2hhcmFjdGVyQ2xh
c3NUYWJsZVtjXSAmIFRhYk5ld2xpbmUpOyB9Ci0KLVN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBl
U2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZywgUGVyY2VudEVuY29kZUNo
YXJhY3RlckNsYXNzIHdoYXRUb0VuY29kZSk7Ci0KIC8vIENvcGllcyB0aGUgc291cmNlIHRvIHRo
ZSBkZXN0aW5hdGlvbiwgYXNzdW1pbmcgYWxsIHRoZSBzb3VyY2UgY2hhcmFjdGVycyBhcmUKIC8v
IEFTQ0lJLiBUaGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3QgYmUgbGFyZ2UgZW5vdWdoLiBOdWxs
IGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQKIC8vIGluIHRoZSBzb3VyY2Ugc3RyaW5nLCBhbmQgbm8g
YXR0ZW1wdCBpcyBtYWRlIHRvIG51bGwtdGVybWluYXRlIHRoZSByZXN1bHQuCkBAIC02NTEsMTcg
KzM4MSwxNyBAQCBib29sIFVSTDo6c2V0UHJvdG9jb2woY29uc3QgU3RyaW5nJiBzKQogICAgIC8v
IEZpcmVmb3ggYW5kIElFIHJlbW92ZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCAnOicuCiAg
ICAgc2l6ZV90IHNlcGFyYXRvclBvc2l0aW9uID0gcy5maW5kKCc6Jyk7CiAgICAgU3RyaW5nIG5l
d1Byb3RvY29sID0gcy5zdWJzdHJpbmcoMCwgc2VwYXJhdG9yUG9zaXRpb24pOwotCi0gICAgaWYg
KCFpc1ZhbGlkUHJvdG9jb2wobmV3UHJvdG9jb2wpKQorICAgIGF1dG8gY2Fub25pY2FsaXplZCA9
IFVSTFBhcnNlcjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUobmV3UHJvdG9jb2wpOworICAgIGlm
ICghY2Fub25pY2FsaXplZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2lz
VmFsaWQpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG5ld1Byb3RvY29s
LCAiOiIsIG1fc3RyaW5nKSk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0cmluZygq
Y2Fub25pY2FsaXplZCwgIjoiLCBtX3N0cmluZykpOwogICAgICAgICAqdGhpcyA9IHBhcnNlci5y
ZXN1bHQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgVVJMUGFyc2VyIHBh
cnNlcihtYWtlU3RyaW5nKG5ld1Byb3RvY29sLCBtX3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVF
bmQpKSk7CisgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKCpjYW5vbmljYWxpemVkLCBt
X3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVFbmQpKSk7CiAgICAgKnRoaXMgPSBwYXJzZXIucmVz
dWx0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03OTUsNiArNTI1LDI4IEBAIHZvaWQgVVJM
OjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGgKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1
bHQoKTsKIH0KIAorc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhjb25zdCBT
dHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKK3sKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYgKFVOTElL
RUxZKHNob3VsZEVuY29kZShpbnB1dFtpXSkpKSB7CisgICAgICAgICAgICBDU3RyaW5nIHV0Zjgg
PSBpbnB1dC51dGY4KCk7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSh1dGY4Lmxlbmd0aCgpICsgMik7CisgICAg
ICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHV0ZjgubGVuZ3RoKCk7IGorKykgeworICAg
ICAgICAgICAgICAgIGF1dG8gYyA9IHV0ZjguZGF0YSgpW2pdOworICAgICAgICAgICAgICAgIGlm
IChzaG91bGRFbmNvZGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyUnKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodXBwZXJOaWJibGVUb0FT
Q0lJSGV4RGlnaXQoYykpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsb3dl
ck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gaW5wdXQ7Cit9CisKIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0cmluZyYgdXNlcikK
IHsKICAgICBpZiAoIW1faXNWYWxpZCkKQEAgLTgwNSw3ICs1NTcsNyBAQCB2b2lkIFVSTDo6c2V0
VXNlcihjb25zdCBTdHJpbmcmIHVzZXIpCiAKICAgICB1bnNpZ25lZCBlbmQgPSBtX3VzZXJFbmQ7
CiAgICAgaWYgKCF1c2VyLmlzRW1wdHkoKSkgewotICAgICAgICBTdHJpbmcgdSA9IGVuY29kZVdp
dGhVUkxFc2NhcGVTZXF1ZW5jZXModXNlciwgUGVyY2VudEVuY29kZVVzZXJuYW1lKTsKKyAgICAg
ICAgU3RyaW5nIHUgPSBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyh1c2VyLCBVUkxQYXJzZXI6Omlz
SW5Vc2VySW5mb0VuY29kZVNldCk7CiAgICAgICAgIGlmIChtX3VzZXJTdGFydCA9PSBtX3NjaGVt
ZUVuZCArIDEpCiAgICAgICAgICAgICB1ID0gIi8vIiArIHU7CiAgICAgICAgIC8vIEFkZCAnQCcg
aWYgd2UgZGlkbid0IGhhdmUgb25lIGJlZm9yZS4KQEAgLTgzMiw3ICs1ODQsNyBAQCB2b2lkIFVS
TDo6c2V0UGFzcyhjb25zdCBTdHJpbmcmIHBhc3N3b3JkCiAKICAgICB1bnNpZ25lZCBlbmQgPSBt
X3Bhc3N3b3JkRW5kOwogICAgIGlmICghcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFN0
cmluZyBwID0gIjoiICsgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXNzd29yZCwgUGVy
Y2VudEVuY29kZVBhc3N3b3JkKSArICJAIjsKKyAgICAgICAgU3RyaW5nIHAgPSAiOiIgKyBwZXJj
ZW50RW5jb2RlQ2hhcmFjdGVycyhwYXNzd29yZCwgVVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNv
ZGVTZXQpICsgIkAiOwogICAgICAgICBpZiAobV91c2VyRW5kID09IG1fc2NoZW1lRW5kICsgMSkK
ICAgICAgICAgICAgIHAgPSAiLy8iICsgcDsKICAgICAgICAgLy8gRWF0IHRoZSBleGlzdGluZyAn
QCcgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGFkZCBvdXIgb3duLgpAQCAtOTA1LDEzICs2NTcsMTQg
QEAgdm9pZCBVUkw6OnNldFBhdGgoY29uc3QgU3RyaW5nJiBzKQogICAgIGlmICghbV9pc1ZhbGlk
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogZW5jb2RlV2l0aFVSTEVzY2FwZVNl
cXVlbmNlcyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBhbmQgJz8nLCBzbyBmcmFnbWVu
dCBhbmQgcXVlcnkgcGFydHMKLSAgICAvLyBtYXkgYmUgaW5hZHZlcnRlbnRseSBhZmZlY3RlZC4K
ICAgICBTdHJpbmcgcGF0aCA9IHM7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8IHBhdGhbMF0g
IT0gJy8nKQogICAgICAgICBwYXRoID0gIi8iICsgcGF0aDsKIAotICAgIFVSTFBhcnNlciBwYXJz
ZXIobWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fcG9ydEVuZCksIGVuY29kZVdpdGhVUkxFc2Nh
cGVTZXF1ZW5jZXMocGF0aCksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BhdGhFbmQpKSk7CisgICAg
YXV0byBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24gPSBbXSAoVUNoYXIgYykgeworICAgICAgICBy
ZXR1cm4gYyA9PSAnPycgfHwgYyA9PSAnIyc7CisgICAgfTsKKyAgICBVUkxQYXJzZXIgcGFyc2Vy
KG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3BvcnRFbmQpLCBwZXJjZW50RW5jb2RlQ2hhcmFj
dGVycyhwYXRoLCBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24pLCBtX3N0cmluZy5zdWJzdHJpbmco
bV9wYXRoRW5kKSkpOwogICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogfQogCkBAIC05MjUs
MTMgKzY3OCw2IEBAIFN0cmluZyBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoY29uc3QgU3QKICAg
ICByZXR1cm4gZGVjb2RlRXNjYXBlU2VxdWVuY2VzPFVSTEVzY2FwZVNlcXVlbmNlPihzdHJpbmcs
IGVuY29kaW5nKTsKIH0KIAotLy8gQ2F1dGlvbjogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBib3Vu
ZHMgY2hlY2suCi1zdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyKiYgYnVmZmVyLCB1
bnNpZ25lZCBjaGFyIGMpCi17Ci0gICAgKmJ1ZmZlcisrID0gJyUnOwotICAgIHBsYWNlQnl0ZUFz
SGV4KGMsIGJ1ZmZlcik7Ci19Ci0KIFN0cmluZyBVUkw6OnNlcmlhbGl6ZShib29sIG9taXRGcmFn
bWVudCkgY29uc3QKIHsKICAgICBpZiAob21pdEZyYWdtZW50KQpAQCAtMTAzMyw1MCArNzc5LDYg
QEAgYm9vbCBob3N0c0FyZUVxdWFsKGNvbnN0IFVSTCYgYSwgY29uc3QgVQogICAgIHJldHVybiB0
cnVlOwogfQogCi1TdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhjb25zdCBTdHJp
bmcmIG5vdEVuY29kZWRTdHJpbmcsIFBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJDbGFzcyB3aGF0VG9F
bmNvZGUpCi17Ci0gICAgQ1N0cmluZyBhc1VURjggPSBub3RFbmNvZGVkU3RyaW5nLnV0ZjgoKTsK
LQotICAgIENoYXJCdWZmZXIgYnVmZmVyKGFzVVRGOC5sZW5ndGgoKSAqIDMgKyAxKTsKLSAgICBj
aGFyKiBwID0gYnVmZmVyLmRhdGEoKTsKLQotICAgIGNvbnN0IGNoYXIqIHN0ciA9IGFzVVRGOC5k
YXRhKCk7Ci0gICAgY29uc3QgY2hhciogc3RyRW5kID0gc3RyICsgYXNVVEY4Lmxlbmd0aCgpOwot
ICAgIHdoaWxlIChzdHIgPCBzdHJFbmQpIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0
cisrOwotICAgICAgICBpZiAocGVyY2VudEVuY29kZUNsYXNzVGFibGVbY10gPj0gd2hhdFRvRW5j
b2RlKQotICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgICpwKysgPSBjOwotICAgIH0KLQotICAgIEFTU0VSVChwIC0gYnVmZmVyLmRh
dGEoKSA8PSBzdGF0aWNfY2FzdDxpbnQ+KGJ1ZmZlci5zaXplKCkpKTsKLQotICAgIHJldHVybiBT
dHJpbmcoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRhKCkpOwotfQotCi1TdHJpbmcgZW5j
b2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhjb25zdCBTdHJpbmcmIG5vdEVuY29kZWRTdHJpbmcp
Ci17Ci0gICAgQ1N0cmluZyBhc1VURjggPSBub3RFbmNvZGVkU3RyaW5nLnV0ZjgoKTsKLQotICAg
IENoYXJCdWZmZXIgYnVmZmVyKGFzVVRGOC5sZW5ndGgoKSAqIDMgKyAxKTsKLSAgICBjaGFyKiBw
ID0gYnVmZmVyLmRhdGEoKTsKLQotICAgIGNvbnN0IGNoYXIqIHN0ciA9IGFzVVRGOC5kYXRhKCk7
Ci0gICAgY29uc3QgY2hhciogc3RyRW5kID0gc3RyICsgYXNVVEY4Lmxlbmd0aCgpOwotICAgIHdo
aWxlIChzdHIgPCBzdHJFbmQpIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOwot
ICAgICAgICBpZiAoaXNCYWRDaGFyKGMpKQotICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIo
cCwgYyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgICpwKysgPSBjOwotICAgIH0KLQotICAg
IEFTU0VSVChwIC0gYnVmZmVyLmRhdGEoKSA8PSBzdGF0aWNfY2FzdDxpbnQ+KGJ1ZmZlci5zaXpl
KCkpKTsKLQotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRh
KCkpOwotfQotCiBib29sIFVSTDo6aXNIaWVyYXJjaGljYWwoKSBjb25zdAogewogICAgIGlmICgh
bV9pc1ZhbGlkKQpAQCAtMTEwNiw3ICs4MDgsNyBAQCBib29sIHByb3RvY29sSXNJbnRlcm5hbChj
b25zdCBTdHJpbmdDbGFzCiAgICAgICAgIGlzTGVhZGluZyA9IGZhbHNlOwogCiAgICAgICAgIC8v
IFNraXAgYW55IHRhYnMgYW5kIG5ld2xpbmVzLgotICAgICAgICBpZiAoaXNUYWJOZXdsaW5lKHVy
bFtpXSkpCisgICAgICAgIGlmICh1cmxbaV0gPT0gJ1x0JyB8fCB1cmxbaV0gPT0gJ1xyJyB8fCB1
cmxbaV0gPT0gJ1xuJykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmICghcHJv
dG9jb2xbal0pCkBAIC0xMTMwLDIxICs4MzIsNiBAQCBpbmxpbmUgYm9vbCBVUkw6OnByb3RvY29s
SXMoY29uc3QgU3RyaW5nCiAgICAgcmV0dXJuIFdlYkNvcmU6OnByb3RvY29sSXNJbnRlcm5hbChz
dHJpbmcsIHByb3RvY29sKTsKIH0KIAotYm9vbCBpc1ZhbGlkUHJvdG9jb2woY29uc3QgU3RyaW5n
JiBwcm90b2NvbCkKLXsKLSAgICAvLyBSRkMzOTg2OiBBTFBIQSAqKCBBTFBIQSAvIERJR0lUIC8g
IisiIC8gIi0iIC8gIi4iICkKLSAgICBpZiAocHJvdG9jb2wuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFpc1NjaGVtZUZpcnN0Q2hhcihwcm90b2NvbFswXSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB1bnNpZ25lZCBwcm90b2NvbExlbmd0aCA9IHByb3Rv
Y29sLmxlbmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBwcm90b2NvbExlbmd0
aDsgaSsrKSB7Ci0gICAgICAgIGlmICghaXNTY2hlbWVDaGFyKHByb3RvY29sW2ldKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KICNpZm5k
ZWYgTkRFQlVHCiAKIHZvaWQgVVJMOjpwcmludCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyOSw2ICs0MjksMTEg
QEAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBzaG91bGRQZXJjZW50RQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBVUkxQYXJzZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldChVQ2hhciBj
KQoreworICAgIHJldHVybiBXZWJDb3JlOjppc0luVXNlckluZm9FbmNvZGVTZXQoYyk7Cit9CisK
IHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIFVSTFBhcnNlcjo6UmVwb3J0U3ludGF4
VmlvbGF0aW9uIHJlcG9ydFN5bnRheFZpb2xhdGlvbj4KIEFMV0FZU19JTkxJTkUgdm9pZCBVUkxQ
YXJzZXI6OmFkdmFuY2UoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0ZXJhdG9y
LCBjb25zdCBDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3JGb3JTeW50
YXhWaW9sYXRpb25Qb3NpdGlvbikKIHsKQEAgLTIwODYsMTAgKzIwOTEsMTAgQEAgdm9pZCBVUkxQ
YXJzZXI6OnBhcnNlQXV0aG9yaXR5KENvZGVQb2ludAogICAgICAgICAgICAgYXBwZW5kVG9BU0NJ
SUJ1ZmZlcignOicpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgdXRm
OFBlcmNlbnRFbmNvZGU8aXNJblVzZXJJbmZvRW5jb2RlU2V0PihpdGVyYXRvcik7CisgICAgICAg
IHV0ZjhQZXJjZW50RW5jb2RlPFdlYkNvcmU6OmlzSW5Vc2VySW5mb0VuY29kZVNldD4oaXRlcmF0
b3IpOwogICAgIH0KICAgICBmb3IgKDsgIWl0ZXJhdG9yLmF0RW5kKCk7IGFkdmFuY2UoaXRlcmF0
b3IpKQotICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxpc0luVXNlckluZm9FbmNvZGVTZXQ+KGl0
ZXJhdG9yKTsKKyAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8V2ViQ29yZTo6aXNJblVzZXJJbmZv
RW5jb2RlU2V0PihpdGVyYXRvcik7CiAgICAgbV91cmwubV9wYXNzd29yZEVuZCA9IGN1cnJlbnRQ
b3NpdGlvbihpdGVyYXRvcik7CiAgICAgaWYgKCFtX3VybC5tX3VzZXJFbmQpCiAgICAgICAgIG1f
dXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fcGFzc3dvcmRFbmQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkxQYXJzZXIuaAkocmV2aXNpb24gMjI0NzAwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBTdHJpbmcgc2VyaWFsaXplKGNvbnN0IFVSTEVuY29kZWRGb3JtJik7CiAK
ICAgICBzdGF0aWMgY29uc3QgVUlETkEmIGludGVybmF0aW9uYWxEb21haW5OYW1lVHJhbnNjb2Rl
cigpOworICAgIHN0YXRpYyBib29sIGlzSW5Vc2VySW5mb0VuY29kZVNldChVQ2hhcik7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1NwZWNpYWxTY2hlbWUoY29uc3QgU3RyaW5n
JiBzY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gbWF5YmVDYW5vbmljYWxpemVTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwpJbmRleDog
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMTEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBvbGQgVVJMIHBh
cnNlciByZW1uYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc5NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29n
bGUpOgorCiAyMDE3LTExLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIElnbm9yZSBIU1RTIGZvciBwYXJ0aXRpb25lZCwgY3Jvc3Mtb3JpZ2luIHN1YnJl
c291cmNlIHJlcXVlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAJKHJl
dmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDE0ICs2MSwx
MiBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29vCiB7CiAgICAgU3Ry
aW5nIHNlYXJjaFN0cmluZyA9IGZyYW1lLT5lZGl0b3IoKS5zZWxlY3RlZFRleHQoKTsKICAgICBz
ZWFyY2hTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCk7Ci0gICAgU3RyaW5nIGVuY29kZWQgPSBlbmNv
ZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHNlYXJjaFN0cmluZyk7Ci0gICAgZW5jb2RlZC5yZXBs
YWNlKEFTQ0lJTGl0ZXJhbCB7ICIlMjAiIH0sIEFTQ0lJTGl0ZXJhbCB7ICIrIiB9KTsKIAotICAg
IFN0cmluZyB1cmwgPSAiaHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIgKyBlbmNvZGVk
ICsgIiZpZT1VVEYtOCZvZT1VVEYtOCI7CisgICAgVVJMIHVybCA9IFVSTChVUkwoKSwgImh0dHBz
Oi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIHNlYXJjaFN0cmluZyArICImaWU9VVRGLTgm
b2U9VVRGLTgiKTsKIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAg
ICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KTsKLSAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkudXJsU2VsZWN0ZWQoVVJMIHsg
VVJMIHsgfSwgdXJsIH0sIHsgfSwgbnVsbHB0ciwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVy
KCkudXJsU2VsZWN0ZWQodXJsLCB7IH0sIG51bGxwdHIsIExvY2tIaXN0b3J5OjpObywgTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgfQogfQogI2VuZGlmCkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcxOSkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAxNy0xMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIENsZWFuIHVwIG9sZCBVUkwgcGFyc2VyIHJlbW5hbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1NzMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy91
cmwvdXJsLXNldHRlcnMtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTExLTEwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10gSW1wbGVtZW50
IGJldHRlciBzdXBwb3J0IGZvciAiQ2xlYXIgUmVnaXN0cmF0aW9uIiBhbGdvcml0aG0KSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL3VybC1zZXR0
ZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtc2V0dGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDIyNDcwMCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL3VybC1zZXR0ZXJzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDk1LDIxICs0
OTUsMjEgQEAgUEFTUyA8YXJlYT46IFNldHRpbmcgPGh0dHBzOi8vZXhhbXBsZS5uZQogUEFTUyBV
Ukw6IFNldHRpbmcgPGh0dHBzOi8vZXhhbXBsZS5uZXQjbmF2Pi5wYXRobmFtZSA9ICcuLi9ob21l
JyAKIFBBU1MgPGE+OiBTZXR0aW5nIDxodHRwczovL2V4YW1wbGUubmV0I25hdj4ucGF0aG5hbWUg
PSAnLi4vaG9tZScgCiBQQVNTIDxhcmVhPjogU2V0dGluZyA8aHR0cHM6Ly9leGFtcGxlLm5ldCNu
YXY+LnBhdGhuYW1lID0gJy4uL2hvbWUnIAotRkFJTCBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFt
cGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwg
aXMgYSBzZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0
dHA6Ly9leGFtcGxlLm5ldC8vYS8lMjUyRS9iLyUyNTJlLi9jP2xhbmc9ZnIjbmF2IgotRkFJTCA8
YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFt
ZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNp
YWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/
bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8vYS8lMjUyRS9iLyUyNTJl
Li9jP2xhbmc9ZnIjbmF2IgotRkFJTCA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5l
dC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBz
ZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9l
eGFtcGxlLm5ldC8vYS8lMjUyRS9iLyUyNTJlLi9jP2xhbmc9ZnIjbmF2IgotRkFJTCBVUkw6IFNl
dHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5w
YXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRl
ciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ2aWV3LXNv
dXJjZStodHRwOi8vZXhhbXBsZS5uZXQvXFxhXCUyRVxiXCUyZS5cYz9sYW5nPWZyI25hdiIgYnV0
IGdvdCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMjUyRVxiXCUyNTJlLlxj
P2xhbmc9ZnIjbmF2IgotRkFJTCA8YT46IFNldHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFt
cGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwg
aXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJ2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvXFxhXCUy
RVxiXCUyZS5cYz9sYW5nPWZyI25hdiIgYnV0IGdvdCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1w
bGUubmV0L1xcYVwlMjUyRVxiXCUyNTJlLlxjP2xhbmc9ZnIjbmF2IgotRkFJTCA8YXJlYT46IFNl
dHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5w
YXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRl
ciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ2aWV3LXNv
dXJjZStodHRwOi8vZXhhbXBsZS5uZXQvXFxhXCUyRVxiXCUyZS5cYz9sYW5nPWZyI25hdiIgYnV0
IGdvdCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMjUyRVxiXCUyNTJlLlxj
P2xhbmc9ZnIjbmF2IgorRkFJTCBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21l
P2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50
IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0
dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxl
Lm5ldC8vYS9jP2xhbmc9ZnIjbmF2IgorRkFJTCA8YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxl
Lm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMg
YSBzZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6
Ly9leGFtcGxlLm5ldC8vYS9jP2xhbmc9ZnIjbmF2IgorRkFJTCA8YXJlYT46IFNldHRpbmcgPGh0
dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwl
MmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1
dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8vYS9jP2xhbmc9ZnIjbmF2IgorUEFTUyBVUkw6IFNl
dHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5w
YXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRl
ciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIAorUEFTUyA8YT46IFNldHRpbmcgPHZpZXctc291cmNl
K2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVc
YlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFs
JyBVUkxzIAorUEFTUyA8YXJlYT46IFNldHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxl
Lm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMg
Km5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIAogRkFJTCBV
Ukw6IFNldHRpbmcgPGE6Lz4ucGF0aG5hbWUgPSAnXDABCQotXHIfICEiIyQlJicoKSorLC0uLzA5
Ojs8PT4/QEFaW1xdXl9gYXp7fH1+f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdp
dGggdGhlIGRlZmF1bHQgZW5jb2RlIHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKiss
LS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMz
JTg5JUMzJUE5IiBidXQgZ290ICJhOi8lMDAlMDElMDklMEElMEQlMUYlMjAhJTIyJTIzJCUyNSYn
KCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIl
ODElQzMlODklQzMlQTkiCitcch8gISIjJCUmJygpKissLS4vMDk6Ozw9Pj9AQVpbXF1eX2Bhent8
fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQgZW5jb2Rpbmcgd2l0aCB0aGUgZGVmYXVsdCBlbmNv
ZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBhcmUgcmVtb3ZlZC4gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBB
WltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiIGJ1dCBnb3Qg
ImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1e
XyU2MGF6JTdCfCU3RH4lN0YlQzMlODIlQzIlODAlQzMlODIlQzIlODElQzMlODMlQzIlODklQzMl
ODMlQzIlQTkiCiBGQUlMIDxhPjogU2V0dGluZyA8YTovPi5wYXRobmFtZSA9ICdcMAEJCi1cch8g
ISIjJCUmJygpKissLS4vMDk6Ozw9Pj9AQVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVURi04IHBl
cmNlbnQgZW5jb2Rpbmcgd2l0aCB0aGUgZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFuZCBuZXds
aW5lcyBhcmUgcmVtb3ZlZC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUy
MCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4l
N0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUwOSUwQSUwRCUx
RiUyMCElMjIlMjMkJTI1JicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8
JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIKK1xyHyAhIiMkJSYnKCkqKywtLi8wOTo7
PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNvZGluZyB3aXRo
IHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSByZW1vdmVkLiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0u
LzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4
OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5Ojsl
M0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMyU4MiVDMiU4MCVDMyU4MiVDMiU4
MSVDMyU4MyVDMiU4OSVDMyU4MyVDMiVBOSIKIEZBSUwgPGFyZWE+OiBTZXR0aW5nIDxhOi8+LnBh
dGhuYW1lID0gJ1wwAQkKLVxyHyAhIiMkJSYnKCkqKywtLi8wOTo7PD0+P0BBWltcXV5fYGF6e3x9
fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNvZGluZyB3aXRoIHRoZSBkZWZhdWx0IGVuY29k
ZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSByZW1vdmVkLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFa
W1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIgYnV0IGdvdCAi
YTovJTAwJTAxJTA5JTBBJTBEJTFGJTIwISUyMiUyMyQlMjUmJygpKissLS4vMDk6OyUzQz0lM0Ul
M0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IgotRkFJ
TCBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMz
JTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5j
bHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdtZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC8lMmUlMkUlYzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRw
Oi8vZXhhbXBsZS5uZXQvJTI1MmUlMjUyRSUyNWMzJTI1ODl0JUMzJUE5IgotRkFJTCA8YT46IFNl
dHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBC
eXRlcyBhbHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUy
RSBvdXRzaWRlIGRvdHRlZCBzZWdtZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6
Ly9leGFtcGxlLm5ldC8lMmUlMkUlYzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRwOi8vZXhhbXBs
ZS5uZXQvJTI1MmUlMjUyRSUyNWMzJTI1ODl0JUMzJUE5IgotRkFJTCA8YXJlYT46IFNldHRpbmcg
PGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBh
bHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRz
aWRlIGRvdHRlZCBzZWdtZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFt
cGxlLm5ldC8lMmUlMkUlYzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQv
JTI1MmUlMjUyRSUyNWMzJTI1ODl0JUMzJUE5IgorXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/
QEFaW1xdXl9gYXp7fH1+f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhl
IGRlZmF1bHQgZW5jb2RlIHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6
OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMz
JUE5IiBidXQgZ290ICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0l
M0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMzJTgyJUMyJTgwJUMzJTgyJUMyJTgxJUMz
JTgzJUMyJTg5JUMzJTgzJUMyJUE5IgorUEFTUyBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxl
Lm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQt
ZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdt
ZW50cy4gCitQQVNTIDxhPjogU2V0dGluZyA8aHR0cDovL2V4YW1wbGUubmV0Pi5wYXRobmFtZSA9
ICclMmUlMkUlYzMlODl0w6knIEJ5dGVzIGFscmVhZHkgcGVyY2VudC1lbmNvZGVkIGFyZSBsZWZ0
IGFzLWlzLCBpbmNsdWRpbmcgJTJFIG91dHNpZGUgZG90dGVkIHNlZ21lbnRzLiAKK1BBU1MgPGFy
ZWE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4
OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1
ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIAogUEFTUyBVUkw6IFNldHRpbmcgPGh0
dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnPycgPyBuZWVkcyB0byBiZSBlbmNvZGVkIAog
UEFTUyA8YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnPycgPyBu
ZWVkcyB0byBiZSBlbmNvZGVkIAogUEFTUyA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxl
Lm5ldD4ucGF0aG5hbWUgPSAnPycgPyBuZWVkcyB0byBiZSBlbmNvZGVkIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326678</attachid>
            <date>2017-11-10 22:05:38 -0800</date>
            <delta_ts>2017-11-14 10:56:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179573-20171110220537.patch</filename>
            <type>text/plain</type>
            <size>43349</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTExLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
b2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gd2UgdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgVVJMUGFyc2Vy
LCB3ZSBrZXB0IHRoZSBvbGQgY2hhcmFjdGVyIHRhYmxlcyB3aGljaCB3ZXJlIGxlc3Mgc3BlYy1j
b25mb3JtYW50LgorICAgICAgICBSZW1vdmluZyB0aGVtIGFuZCB0cmFuc2l0aW9uaW5nIHRvIFVS
TFBhcnNlcidzIHRhYmxlIG1ha2VzIG1vcmUgd2ViIHBsYXRmb3JtIHRlc3RzIHBhc3MhCisKKyAg
ICAgICAgKiBmaWxlYXBpL0Jsb2JVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlVSTDo6
Y3JlYXRlQmxvYlVSTCk6CisgICAgICAgIFRoZXJlJ3Mgbm8gbmVlZCB0byBwZXJjZW50LWVuY29k
ZSBhbiBvcmlnaW4uICBJdCdzIGFscmVhZHkgYXNjaWksIGFuZCBpZiBpdCdzIG5vdCwgdGhlbiB0
aGUgVVJMUGFyc2VyIHdpbGwgZXNjYXBlIGl0LgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6Y3JlYXRlRmlsZVVSTCk6CisgICAgICAgIFJlbW92ZWQgY29tbWVudCB0aGF0IG5v
IGxvbmdlciBhcHBsaWVzLgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpVUkw6OnNldFByb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBlcmNlbnRFbmNv
ZGVDaGFyYWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0VXNlcik6CisgICAgICAg
IChXZWJDb3JlOjpVUkw6OnNldFBhc3MpOgorICAgICAgICBQZXJjZW50IGVuY29kZSB0aGUgdXNl
cmluZm8gY2hhcmFjdGVyIHNldCBmcm9tIHRoZSBVUkxQYXJzZXIgYWNjb3JkaW5nIHRvIGh0dHBz
Oi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jc2V0LXRoZS11c2VybmFtZSBhbmQgaHR0cHM6Ly91cmwu
c3BlYy53aGF0d2cub3JnLyNzZXQtdGhlLXBhc3N3b3JkCisgICAgICAgIChXZWJDb3JlOjpVUkw6
OnNldFBhdGgpOgorICAgICAgICBBID8gb3IgYSAjIGFyZSB0aGUgb25seSB0d28gY2hhcmFjdGVy
cyB0aGF0IG5lZWQgdG8gYmUgcHJlLWVuY29kZWQgd2hlbiBzZXR0aW5nIHRoZSBwYXRoIGJlY2F1
c2UgdGhleSBpbmRpY2F0ZSB0aGUKKyAgICAgICAgYmVnaW5uaW5nIG9mIGEgcXVlcnkgb3IgZnJh
Z21lbnQuICBBbGwgb3RoZXIgY2hhcmFjdGVycyB3aWxsIGJlIGVuY29kZWQgaWYgbmVjZXNzYXJ5
IGR1cmluZyBwYXJzaW5nLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xJc0ludGVybmFsKToK
KyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1NjaGVtZUZpcnN0Q2hh
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1NjaGVtZUNoYXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6aXNCYWRDaGFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmlzVGFiTmV3bGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFc2NhcGVk
Q2hhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjplbmNvZGVXaXRoVVJMRXNjYXBlU2Vx
dWVuY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRQcm90b2NvbCk6IERl
bGV0ZWQuCisgICAgICAgIFJlbW92ZSBhIGJ1bmNoIG9mIG9sZCB1bnVzZWQgZnVuY3Rpb25zLgor
ICAgICAgICAqIHBsYXRmb3JtL1VSTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxQ
YXJzZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJz
ZXI6OnBhcnNlQXV0aG9yaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIuaDoKKyAg
ICAgICAgRXhwb3NlIGEgZmV3IGZ1bmN0aW9ucyBmb3IgVVJMLmNwcCB0byB1c2UuCisKIDIwMTct
MTEtMTAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
IEFuaW1hdGlvbnNdIEltcGxlbWVudCBnZXRBbmltYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYlVSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9CbG9iVVJMLmNwcAkocmV2aXNpb24gMjI0NzAwKQorKysgU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9CbG9iVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBTdHJpbmcg
QmxvYlVSTDo6Z2V0SWRlbnRpZmllcihjb25zdCBVUkwmCiBVUkwgQmxvYlVSTDo6Y3JlYXRlQmxv
YlVSTChjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBBU1NFUlQoIW9yaWdpblN0
cmluZy5pc0VtcHR5KCkpOwotICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgZW5jb2Rl
V2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhvcmlnaW5TdHJpbmcpICsgJy8nICsgY3JlYXRlQ2Fub25p
Y2FsVVVJRFN0cmluZygpOworICAgIFN0cmluZyB1cmxTdHJpbmcgPSAiYmxvYjoiICsgb3JpZ2lu
U3RyaW5nICsgJy8nICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwogICAgIHJldHVybiBV
UkwoUGFyc2VkVVJMU3RyaW5nLCB1cmxTdHJpbmcpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJ
KHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSwxMSArMjE1LDYgQEAg
Ym9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogVVJMIEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpjcmVhdGVGaWxlVVJMKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBG
SVhNRTogQ2FuIHdlIGp1c3QgdXNlIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggaW5zdGVhZD8K
LQotICAgIC8vIGZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGggZnVuY3Rpb24gaXMgbm90IHN1aXRh
YmxlIGJlY2F1c2UgVVJMOjpzZXRQYXRoIHVzZXMgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNl
cywgd2hpY2ggaXQgbm90ZXMKLSAgICAvLyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBh
bmQgJz8nLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGZvciBvdXIgcHVycG9zZXMgYmVjYXVzZQotICAg
IC8vIGFwcCBjYWNoZSBtZWRpYSBmaWxlcyBhcmUgYWx3YXlzIGNyZWF0ZWQgd2l0aCBlbmNvZGVG
b3JGaWxlTmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpLgotCiAjaWYgVVNFKENGKSAm
JiBQTEFURk9STShXSU4pCiAgICAgVVJMIHVybChhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVT
eXN0ZW1QYXRoKDAsIHBhdGguY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwga0NGVVJMV2luZG93c1Bh
dGhTdHlsZSwgZmFsc2UpKS5nZXQoKSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwCShyZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NSwyNzYgKzU1LDYgQEAgdHlwZWRlZiBWZWN0b3I8VUNoYXIs
IDUxMj4gVUNoYXJCdWZmZXI7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkUG9ydE51
bWJlciA9IDB4RkZGRjsKIAotZW51bSBVUkxDaGFyYWN0ZXJDbGFzc2VzIHsKLSAgICAvLyBhbHBo
YSAKLSAgICBTY2hlbWVGaXJzdENoYXIgPSAxIDw8IDAsCi0KLSAgICAvLyAoIGFscGhhIHwgZGln
aXQgfCAiKyIgfCAiLSIgfCAiLiIgKQotICAgIFNjaGVtZUNoYXIgPSAxIDw8IDEsCi0KLSAgICAv
LyBtYXJrICAgICAgICA9ICItIiB8ICJfIiB8ICIuIiB8ICIhIiB8ICJ+IiB8ICIqIiB8ICInIiB8
ICIoIiB8ICIpIgotICAgIC8vIHVucmVzZXJ2ZWQgID0gYWxwaGFudW0gfCBtYXJrCi0gICAgLy8g
KCB1bnJlc2VydmVkIHwgZXNjYXBlZCB8ICI7IiB8ICI6IiB8ICImIiB8ICI9IiB8ICIrIiB8ICIk
IiB8ICIsIiApCi0gICAgVXNlckluZm9DaGFyID0gMSA8PCAyLAotCi0gICAgLy8gYWxudW0gfCAi
LiIgfCAiLSIgfCAiJSIKLSAgICAvLyBUaGUgYWJvdmUgaXMgd2hhdCB0aGUgc3BlY2lmaWNhdGlv
biBzYXlzLCBidXQgd2UgYXJlIGxlbmllbnQgdG8KLSAgICAvLyBtYXRjaCBleGlzdGluZyBwcmFj
dGljZSBhbmQgYWxzbyBhbGxvdzoKLSAgICAvLyAiXyIKLSAgICBIb3N0bmFtZUNoYXIgPSAxIDw8
IDMsCi0KLSAgICAvLyBoZXhkaWdpdCB8ICI6IiB8ICIlIgotICAgIElQdjZDaGFyID0gMSA8PCA0
LAotCi0gICAgLy8gIiMiIHwgIj8iIHwgIi8iIHwgbnVsCi0gICAgUGF0aFNlZ21lbnRFbmRDaGFy
ID0gMSA8PCA1LAotCi0gICAgLy8gbm90IGFsbG93ZWQgaW4gcGF0aAotICAgIEJhZENoYXIgPSAx
IDw8IDYsCi0KLSAgICAvLyAiXHQiIHwgIlxuIiB8ICJcciIKLSAgICBUYWJOZXdsaW5lID0gMSA8
PCA3Ci19OwotCi1uYW1lc3BhY2UgVVJMSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGNoYXIgY2hhcmFjdGVyQ2xhc3NUYWJsZVsyNTZdID0gewotICAgIC8qIDAgbnVsICovIFBhdGhT
ZWdtZW50RW5kQ2hhciwgICAgLyogMSBzb2ggKi8gQmFkQ2hhciwKLSAgICAvKiAyIHN0eCAqLyBC
YWRDaGFyLCAgICAvKiAzIGV0eCAqLyBCYWRDaGFyLAotICAgIC8qIDQgZW90ICovIEJhZENoYXIs
ICAgIC8qIDUgZW5xICovIEJhZENoYXIsICAgIC8qIDYgYWNrICovIEJhZENoYXIsICAgIC8qIDcg
YmVsICovIEJhZENoYXIsCi0gICAgLyogOCBicyAqLyBCYWRDaGFyLCAgICAgLyogOSBodCAqLyBC
YWRDaGFyIHwgVGFiTmV3bGluZSwgICAgICAgICAgICAgICAgLyogMTAgbmwgKi8gQmFkQ2hhciB8
IFRhYk5ld2xpbmUsCi0gICAgLyogMTEgdnQgKi8gQmFkQ2hhciwgICAgLyogMTIgbnAgKi8gQmFk
Q2hhciwgICAgLyogMTMgY3IgKi8gQmFkQ2hhciB8IFRhYk5ld2xpbmUsCi0gICAgLyogMTQgc28g
Ki8gQmFkQ2hhciwgICAgLyogMTUgc2kgKi8gQmFkQ2hhciwKLSAgICAvKiAxNiBkbGUgKi8gQmFk
Q2hhciwgICAvKiAxNyBkYzEgKi8gQmFkQ2hhciwgICAvKiAxOCBkYzIgKi8gQmFkQ2hhciwgICAv
KiAxOSBkYzMgKi8gQmFkQ2hhciwKLSAgICAvKiAyMCBkYzQgKi8gQmFkQ2hhciwgICAvKiAyMSBu
YWsgKi8gQmFkQ2hhciwgICAvKiAyMiBzeW4gKi8gQmFkQ2hhciwgICAvKiAyMyBldGIgKi8gQmFk
Q2hhciwKLSAgICAvKiAyNCBjYW4gKi8gQmFkQ2hhciwgICAvKiAyNSBlbSAqLyBCYWRDaGFyLCAg
ICAvKiAyNiBzdWIgKi8gQmFkQ2hhciwgICAvKiAyNyBlc2MgKi8gQmFkQ2hhciwKLSAgICAvKiAy
OCBmcyAqLyBCYWRDaGFyLCAgICAvKiAyOSBncyAqLyBCYWRDaGFyLCAgICAvKiAzMCBycyAqLyBC
YWRDaGFyLCAgICAvKiAzMSB1cyAqLyBCYWRDaGFyLAotICAgIC8qIDMyIHNwICovIEJhZENoYXIs
ICAgIC8qIDMzICAhICovIFVzZXJJbmZvQ2hhciwKLSAgICAvKiAzNCAgIiAqLyBCYWRDaGFyLCAg
ICAvKiAzNSAgIyAqLyBQYXRoU2VnbWVudEVuZENoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM2ICAk
ICovIFVzZXJJbmZvQ2hhciwgICAgLyogMzcgICUgKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyIHwgSVB2NkNoYXIgfCBCYWRDaGFyLAotICAgIC8qIDM4ICAmICovIFVzZXJJbmZvQ2hhciwg
ICAgLyogMzkgICcgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQwICAoICovIFVzZXJJbmZvQ2hh
ciwgICAgLyogNDEgICkgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDQyICAqICovIFVzZXJJbmZv
Q2hhciwgICAgLyogNDMgICsgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciwKLSAgICAvKiA0
NCAgLCAqLyBVc2VySW5mb0NoYXIsCi0gICAgLyogNDUgIC0gKi8gU2NoZW1lQ2hhciB8IFVzZXJJ
bmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA0NiAgLiAqLyBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNDcgIC8gKi8gUGF0
aFNlZ21lbnRFbmRDaGFyLAotICAgIC8qIDQ4ICAwICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogNDkgIDEgKi8gU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAgICAKLSAgICAvKiA1
MCAgMiAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNo
YXIsIAotICAgIC8qIDUxICAzICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFt
ZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1MiAgNCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9D
aGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDUzICA1ICovIFNjaGVtZUNo
YXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1NCAg
NiAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIs
IAotICAgIC8qIDU1ICA3ICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNo
YXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1NiAgOCAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFy
IHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDU3ICA5ICovIFNjaGVtZUNoYXIg
fCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA1OCAgOiAq
LyBVc2VySW5mb0NoYXIgfCBJUHY2Q2hhciwgICAgLyogNTkgIDsgKi8gVXNlckluZm9DaGFyLAot
ICAgIC8qIDYwICA8ICovIEJhZENoYXIsICAgIC8qIDYxICA9ICovIFVzZXJJbmZvQ2hhciwKLSAg
ICAvKiA2MiAgPiAqLyBCYWRDaGFyLCAgICAvKiA2MyAgPyAqLyBQYXRoU2VnbWVudEVuZENoYXIg
fCBCYWRDaGFyLAotICAgIC8qIDY0ICBAICovIDAsCi0gICAgLyogNjUgIEEgKi8gU2NoZW1lRmly
c3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZD
aGFyLCAgICAKLSAgICAvKiA2NiAgQiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwg
VXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNjcgIEMgKi8g
U2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hh
ciB8IElQdjZDaGFyLAotICAgIC8qIDY4ICBEICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNo
YXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA2OSAg
RSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5h
bWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNzAgIEYgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8q
IDcxICBHICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBI
b3N0bmFtZUNoYXIsCi0gICAgLyogNzIgIEggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3MyAgSSAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAg
IC8qIDc0ICBKICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIsCi0gICAgLyogNzUgIEsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1l
Q2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3NiAgTCAqLyBTY2hl
bWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAot
ICAgIC8qIDc3ICBNICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogNzggIE4gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA3OSAgTyAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
LAotICAgIC8qIDgwICBQICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5m
b0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODEgIFEgKi8gU2NoZW1lRmlyc3RDaGFyIHwg
U2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4MiAgUiAq
LyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLAotICAgIC8qIDgzICBTICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODQgIFQgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4NSAg
VSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5h
bWVDaGFyLAotICAgIC8qIDg2ICBWICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBV
c2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogODcgIFcgKi8gU2NoZW1lRmlyc3RD
aGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4
OCAgWCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyLCAKLSAgICAvKiA4OSAgWSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFy
IHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDkwICBaICovIFNjaGVtZUZp
cnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAg
LyogOTEgIFsgKi8gMCwKLSAgICAvKiA5MiAgXCAqLyAwLCAgICAvKiA5MyAgXSAqLyAwLAotICAg
IC8qIDk0ICBeICovIDAsCi0gICAgLyogOTUgIF8gKi8gVXNlckluZm9DaGFyIHwgSG9zdG5hbWVD
aGFyLAotICAgIC8qIDk2ICBgICovIDAsCi0gICAgLyogOTcgIGEgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAot
ICAgIC8qIDk4ICBiICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogOTkgIGMgKi8gU2NoZW1lRmly
c3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZD
aGFyLAotICAgIC8qIDEwMCAgZCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsIAotICAgIC8qIDEwMSAgZSAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
IHwgSVB2NkNoYXIsCi0gICAgLyogMTAyICBmICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNo
YXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogMTAz
ICBnICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0
bmFtZUNoYXIsCi0gICAgLyogMTA0ICBoICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIg
fCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDEwNSAgaSAqLyBTY2hlbWVG
aXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAg
IC8qIDEwNiAgaiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFy
IHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMDcgIGsgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2No
ZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMDggIGwgKi8g
U2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hh
ciwgCi0gICAgLyogMTA5ICBtICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2Vy
SW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTEwICBuICovIFNjaGVtZUZpcnN0Q2hh
ciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDEx
MSAgbyAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9z
dG5hbWVDaGFyLAotICAgIC8qIDExMiAgcCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFy
IHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMTMgIHEgKi8gU2NoZW1l
Rmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAg
ICAvKiAxMTQgIHIgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hh
ciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTE1ICBzICovIFNjaGVtZUZpcnN0Q2hhciB8IFNj
aGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTE2ICB0ICov
IFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNo
YXIsIAotICAgIC8qIDExNyAgdSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDExOCAgdiAqLyBTY2hlbWVGaXJzdENo
YXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAx
MTkgIHcgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhv
c3RuYW1lQ2hhciwKLSAgICAvKiAxMjAgIHggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hh
ciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTIxICB5ICovIFNjaGVt
ZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0g
ICAgLyogMTIyICB6ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDEyMyAgeyAqLyAwLAotICAgIC8qIDEyNCAgfCAq
LyAwLCAgIC8qIDEyNSAgfSAqLyAwLCAgIC8qIDEyNiAgfiAqLyBVc2VySW5mb0NoYXIsICAgLyog
MTI3IGRlbCAqLyBCYWRDaGFyLAotICAgIC8qIDEyOCAqLyBCYWRDaGFyLCAvKiAxMjkgKi8gQmFk
Q2hhciwgLyogMTMwICovIEJhZENoYXIsIC8qIDEzMSAqLyBCYWRDaGFyLAotICAgIC8qIDEzMiAq
LyBCYWRDaGFyLCAvKiAxMzMgKi8gQmFkQ2hhciwgLyogMTM0ICovIEJhZENoYXIsIC8qIDEzNSAq
LyBCYWRDaGFyLAotICAgIC8qIDEzNiAqLyBCYWRDaGFyLCAvKiAxMzcgKi8gQmFkQ2hhciwgLyog
MTM4ICovIEJhZENoYXIsIC8qIDEzOSAqLyBCYWRDaGFyLAotICAgIC8qIDE0MCAqLyBCYWRDaGFy
LCAvKiAxNDEgKi8gQmFkQ2hhciwgLyogMTQyICovIEJhZENoYXIsIC8qIDE0MyAqLyBCYWRDaGFy
LAotICAgIC8qIDE0NCAqLyBCYWRDaGFyLCAvKiAxNDUgKi8gQmFkQ2hhciwgLyogMTQ2ICovIEJh
ZENoYXIsIC8qIDE0NyAqLyBCYWRDaGFyLAotICAgIC8qIDE0OCAqLyBCYWRDaGFyLCAvKiAxNDkg
Ki8gQmFkQ2hhciwgLyogMTUwICovIEJhZENoYXIsIC8qIDE1MSAqLyBCYWRDaGFyLAotICAgIC8q
IDE1MiAqLyBCYWRDaGFyLCAvKiAxNTMgKi8gQmFkQ2hhciwgLyogMTU0ICovIEJhZENoYXIsIC8q
IDE1NSAqLyBCYWRDaGFyLAotICAgIC8qIDE1NiAqLyBCYWRDaGFyLCAvKiAxNTcgKi8gQmFkQ2hh
ciwgLyogMTU4ICovIEJhZENoYXIsIC8qIDE1OSAqLyBCYWRDaGFyLAotICAgIC8qIDE2MCAqLyBC
YWRDaGFyLCAvKiAxNjEgKi8gQmFkQ2hhciwgLyogMTYyICovIEJhZENoYXIsIC8qIDE2MyAqLyBC
YWRDaGFyLAotICAgIC8qIDE2NCAqLyBCYWRDaGFyLCAvKiAxNjUgKi8gQmFkQ2hhciwgLyogMTY2
ICovIEJhZENoYXIsIC8qIDE2NyAqLyBCYWRDaGFyLAotICAgIC8qIDE2OCAqLyBCYWRDaGFyLCAv
KiAxNjkgKi8gQmFkQ2hhciwgLyogMTcwICovIEJhZENoYXIsIC8qIDE3MSAqLyBCYWRDaGFyLAot
ICAgIC8qIDE3MiAqLyBCYWRDaGFyLCAvKiAxNzMgKi8gQmFkQ2hhciwgLyogMTc0ICovIEJhZENo
YXIsIC8qIDE3NSAqLyBCYWRDaGFyLAotICAgIC8qIDE3NiAqLyBCYWRDaGFyLCAvKiAxNzcgKi8g
QmFkQ2hhciwgLyogMTc4ICovIEJhZENoYXIsIC8qIDE3OSAqLyBCYWRDaGFyLAotICAgIC8qIDE4
MCAqLyBCYWRDaGFyLCAvKiAxODEgKi8gQmFkQ2hhciwgLyogMTgyICovIEJhZENoYXIsIC8qIDE4
MyAqLyBCYWRDaGFyLAotICAgIC8qIDE4NCAqLyBCYWRDaGFyLCAvKiAxODUgKi8gQmFkQ2hhciwg
LyogMTg2ICovIEJhZENoYXIsIC8qIDE4NyAqLyBCYWRDaGFyLAotICAgIC8qIDE4OCAqLyBCYWRD
aGFyLCAvKiAxODkgKi8gQmFkQ2hhciwgLyogMTkwICovIEJhZENoYXIsIC8qIDE5MSAqLyBCYWRD
aGFyLAotICAgIC8qIDE5MiAqLyBCYWRDaGFyLCAvKiAxOTMgKi8gQmFkQ2hhciwgLyogMTk0ICov
IEJhZENoYXIsIC8qIDE5NSAqLyBCYWRDaGFyLAotICAgIC8qIDE5NiAqLyBCYWRDaGFyLCAvKiAx
OTcgKi8gQmFkQ2hhciwgLyogMTk4ICovIEJhZENoYXIsIC8qIDE5OSAqLyBCYWRDaGFyLAotICAg
IC8qIDIwMCAqLyBCYWRDaGFyLCAvKiAyMDEgKi8gQmFkQ2hhciwgLyogMjAyICovIEJhZENoYXIs
IC8qIDIwMyAqLyBCYWRDaGFyLAotICAgIC8qIDIwNCAqLyBCYWRDaGFyLCAvKiAyMDUgKi8gQmFk
Q2hhciwgLyogMjA2ICovIEJhZENoYXIsIC8qIDIwNyAqLyBCYWRDaGFyLAotICAgIC8qIDIwOCAq
LyBCYWRDaGFyLCAvKiAyMDkgKi8gQmFkQ2hhciwgLyogMjEwICovIEJhZENoYXIsIC8qIDIxMSAq
LyBCYWRDaGFyLAotICAgIC8qIDIxMiAqLyBCYWRDaGFyLCAvKiAyMTMgKi8gQmFkQ2hhciwgLyog
MjE0ICovIEJhZENoYXIsIC8qIDIxNSAqLyBCYWRDaGFyLAotICAgIC8qIDIxNiAqLyBCYWRDaGFy
LCAvKiAyMTcgKi8gQmFkQ2hhciwgLyogMjE4ICovIEJhZENoYXIsIC8qIDIxOSAqLyBCYWRDaGFy
LAotICAgIC8qIDIyMCAqLyBCYWRDaGFyLCAvKiAyMjEgKi8gQmFkQ2hhciwgLyogMjIyICovIEJh
ZENoYXIsIC8qIDIyMyAqLyBCYWRDaGFyLAotICAgIC8qIDIyNCAqLyBCYWRDaGFyLCAvKiAyMjUg
Ki8gQmFkQ2hhciwgLyogMjI2ICovIEJhZENoYXIsIC8qIDIyNyAqLyBCYWRDaGFyLAotICAgIC8q
IDIyOCAqLyBCYWRDaGFyLCAvKiAyMjkgKi8gQmFkQ2hhciwgLyogMjMwICovIEJhZENoYXIsIC8q
IDIzMSAqLyBCYWRDaGFyLAotICAgIC8qIDIzMiAqLyBCYWRDaGFyLCAvKiAyMzMgKi8gQmFkQ2hh
ciwgLyogMjM0ICovIEJhZENoYXIsIC8qIDIzNSAqLyBCYWRDaGFyLAotICAgIC8qIDIzNiAqLyBC
YWRDaGFyLCAvKiAyMzcgKi8gQmFkQ2hhciwgLyogMjM4ICovIEJhZENoYXIsIC8qIDIzOSAqLyBC
YWRDaGFyLAotICAgIC8qIDI0MCAqLyBCYWRDaGFyLCAvKiAyNDEgKi8gQmFkQ2hhciwgLyogMjQy
ICovIEJhZENoYXIsIC8qIDI0MyAqLyBCYWRDaGFyLAotICAgIC8qIDI0NCAqLyBCYWRDaGFyLCAv
KiAyNDUgKi8gQmFkQ2hhciwgLyogMjQ2ICovIEJhZENoYXIsIC8qIDI0NyAqLyBCYWRDaGFyLAot
ICAgIC8qIDI0OCAqLyBCYWRDaGFyLCAvKiAyNDkgKi8gQmFkQ2hhciwgLyogMjUwICovIEJhZENo
YXIsIC8qIDI1MSAqLyBCYWRDaGFyLAotICAgIC8qIDI1MiAqLyBCYWRDaGFyLCAvKiAyNTMgKi8g
QmFkQ2hhciwgLyogMjU0ICovIEJhZENoYXIsIC8qIDI1NSAqLyBCYWRDaGFyCi19OwotfQotCi1l
bnVtIFBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJDbGFzcyB7Ci0gICAgLy8gQ2xhc3MgbmFtZXMgbWF0
Y2ggdGhlIFVSTCBTdGFuZGFyZDsgZWFjaCBjbGFzcyBpcyBhIHN1cGVyc2V0IG9mIHRoZSBwcmV2
aW91cyBvbmUuCi0gICAgUGVyY2VudEVuY29kZVNpbXBsZSA9IDI1NSwKLSAgICBQZXJjZW50RW5j
b2RlRGVmYXVsdCA9IDEyNywKLSAgICBQZXJjZW50RW5jb2RlUGFzc3dvcmQgPSA2MywKLSAgICBQ
ZXJjZW50RW5jb2RlVXNlcm5hbWUgPSAzMSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBj
aGFyIHBlcmNlbnRFbmNvZGVDbGFzc1RhYmxlWzI1Nl0gPSB7Ci0gICAgLyogMCBudWwgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgICAgLyogMSBzb2ggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAg
LyogMiBzdHggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMyBldHggKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwKLSAgICAvKiA0IGVvdCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA1
IGVucSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiA2IGFjayAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAgICAvKiA3IGJlbCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDggYnMg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgIC8qIDkgaHQgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgICAgIC8qIDEwIG5sICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDExIHZ0ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTIgbnAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
ICAgLyogMTMgY3IgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMTQgc28gKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgICAgLyogMTUgc2kgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAv
KiAxNiBkbGUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxNyBkYzEgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgICAvKiAxOCBkYzIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAxOSBk
YzMgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMCBkYzQgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgICAvKiAyMSBuYWsgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyMiBzeW4g
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyMyBldGIgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwKLSAgICAvKiAyNCBjYW4gKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAvKiAyNSBlbSAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAyNiBzdWIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
ICAvKiAyNyBlc2MgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyOCBmcyAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAgICAvKiAyOSBncyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAv
KiAzMCBycyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzMSB1cyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLAotICAgIC8qIDMyIHNwICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8q
IDMzICAhICovIDAsCi0gICAgLyogMzQgICIgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAg
LyogMzUgICMgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzYgICQgKi8gMCwKLSAg
ICAvKiAzNyAgJSAqLyAwLAotICAgIC8qIDM4ICAmICovIDAsCi0gICAgLyogMzkgICcgKi8gMCwK
LSAgICAvKiA0MCAgKCAqLyAwLAotICAgIC8qIDQxICApICovIDAsCi0gICAgLyogNDIgICogKi8g
MCwKLSAgICAvKiA0MyAgKyAqLyAwLAotICAgIC8qIDQ0ICAsICovIDAsCi0gICAgLyogNDUgIC0g
Ki8gMCwKLSAgICAvKiA0NiAgLiAqLyAwLAotICAgIC8qIDQ3ICAvICovIFBlcmNlbnRFbmNvZGVQ
YXNzd29yZCwKLSAgICAvKiA0OCAgMCAqLyAwLCAgICAvKiA0OSAgMSAqLyAwLCAgICAvKiA1MCAg
MiAqLyAwLCAgICAvKiA1MSAgMyAqLyAwLAotICAgIC8qIDUyICA0ICovIDAsICAgIC8qIDUzICA1
ICovIDAsICAgIC8qIDU0ICA2ICovIDAsICAgIC8qIDU1ICA3ICovIDAsCi0gICAgLyogNTYgIDgg
Ki8gMCwgICAgLyogNTcgIDkgKi8gMCwKLSAgICAvKiA1OCAgOiAqLyBQZXJjZW50RW5jb2RlVXNl
cm5hbWUsCi0gICAgLyogNTkgIDsgKi8gMCwKLSAgICAvKiA2MCAgPCAqLyBQZXJjZW50RW5jb2Rl
RGVmYXVsdCwKLSAgICAvKiA2MSAgPSAqLyAwLAotICAgIC8qIDYyICA+ICovIFBlcmNlbnRFbmNv
ZGVEZWZhdWx0LAotICAgIC8qIDYzICA/ICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8q
IDY0ICBAICovIFBlcmNlbnRFbmNvZGVQYXNzd29yZCwKLSAgICAvKiA2NSAgQSAqLyAwLCAgICAv
KiA2NiAgQiAqLyAwLCAgICAvKiA2NyAgQyAqLyAwLCAgICAvKiA2OCAgRCAqLyAwLAotICAgIC8q
IDY5ICBFICovIDAsICAgIC8qIDcwICBGICovIDAsICAgIC8qIDcxICBHICovIDAsICAgIC8qIDcy
ICBIICovIDAsCi0gICAgLyogNzMgIEkgKi8gMCwgICAgLyogNzQgIEogKi8gMCwgICAgLyogNzUg
IEsgKi8gMCwgICAgLyogNzYgIEwgKi8gMCwKLSAgICAvKiA3NyAgTSAqLyAwLCAgICAvKiA3OCAg
TiAqLyAwLCAgICAvKiA3OSAgTyAqLyAwLCAgICAvKiA4MCAgUCAqLyAwLAotICAgIC8qIDgxICBR
ICovIDAsICAgIC8qIDgyICBSICovIDAsICAgIC8qIDgzICBTICovIDAsICAgIC8qIDg0ICBUICov
IDAsCi0gICAgLyogODUgIFUgKi8gMCwgICAgLyogODYgIFYgKi8gMCwgICAgLyogODcgIFcgKi8g
MCwgICAgLyogODggIFggKi8gMCwKLSAgICAvKiA4OSAgWSAqLyAwLCAgICAvKiA5MCAgWiAqLyAw
LAotICAgIC8qIDkxICBbICovIDAsCi0gICAgLyogOTIgIFwgKi8gUGVyY2VudEVuY29kZVBhc3N3
b3JkLAotICAgIC8qIDkzICBdICovIDAsCi0gICAgLyogOTQgIF4gKi8gMCwKLSAgICAvKiA5NSAg
XyAqLyAwLAotICAgIC8qIDk2ICBgICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAotICAgIC8qIDk3
ICBhICovIDAsICAgIC8qIDk4ICBiICovIDAsICAgIC8qIDk5ICBjICovIDAsICAgIC8qIDEwMCAg
ZCAqLyAwLAotICAgIC8qIDEwMSAgZSAqLyAwLCAgICAvKiAxMDIgIGYgKi8gMCwgICAgLyogMTAz
ICBnICovIDAsICAgIC8qIDEwNCAgaCAqLyAwLAotICAgIC8qIDEwNSAgaSAqLyAwLCAgICAvKiAx
MDYgIGogKi8gMCwgICAgLyogMTA3ICBrICovIDAsICAgIC8qIDEwOCAgbCAqLyAwLAotICAgIC8q
IDEwOSAgbSAqLyAwLCAgICAvKiAxMTAgIG4gKi8gMCwgICAgLyogMTExICBvICovIDAsICAgIC8q
IDExMiAgcCAqLyAwLAotICAgIC8qIDExMyAgcSAqLyAwLCAgICAvKiAxMTQgIHIgKi8gMCwgICAg
LyogMTE1ICBzICovIDAsICAgIC8qIDExNiAgdCAqLyAwLAotICAgIC8qIDExNyAgdSAqLyAwLCAg
ICAvKiAxMTggIHYgKi8gMCwgICAgLyogMTE5ICB3ICovIDAsICAgIC8qIDEyMCAgeCAqLyAwLAot
ICAgIC8qIDEyMSAgeSAqLyAwLCAgICAvKiAxMjIgIHogKi8gMCwKLSAgICAvKiAxMjMgIHsgKi8g
MCwKLSAgICAvKiAxMjQgIHwgKi8gMCwKLSAgICAvKiAxMjUgIH0gKi8gMCwKLSAgICAvKiAxMjYg
IH4gKi8gMCwKLSAgICAvKiAxMjcgZGVsICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MTI4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAxMzAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTMxICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMTMyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEzMyAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAxMzQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTM1ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDEzNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxMzggKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMTM5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTQwICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDE0MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNDIgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMTQ0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0NSAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAxNDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQ3ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsCi0gICAgLyogMTQ4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0OSAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTUx
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTUyICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsIC8qIDE1MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTQgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMTU1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTU2ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE1NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTgg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTU5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0g
ICAgLyogMTYwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2MSAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAvKiAxNjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTYzICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMTY0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE2NSAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MTY3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTY4ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDE2OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzAgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMTcxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTcyICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAx
NzQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMTc2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3NyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAxNzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc5ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTgwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4
MSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMTgzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg0ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDE4NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODYgKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMTg3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTg4
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAxOTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTkxICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsCi0gICAgLyogMTkyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5MyAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAxOTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTk1ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMTk2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDE5NyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTggKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMTk5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjAwICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDIwMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMDIgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMjAzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyog
MjA0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwNSAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAyMDYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjA3ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsCi0gICAgLyogMjA4ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwOSAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAyMTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjExICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjEyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDIxMyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTQgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMjE1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjE2ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDIxNyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTggKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjE5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAg
LyogMjIwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyMSAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAyMjIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjIzICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsCi0gICAgLyogMjI0ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIyNSAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMjYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjI3
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjI4ICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsIC8qIDIyOSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzAgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMjMxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjMyICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzMyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzQg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjM1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0g
ICAgLyogMjM2ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzNyAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAvKiAyMzggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjM5ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsCi0gICAgLyogMjQwICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI0MSAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNDIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MjQzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ0ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDI0NSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNDYgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMjQ3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogMjQ4ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI0OSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAy
NTAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjUxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMjUyICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1MyAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAyNTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjU1ICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUKLX07Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1NjaGVtZUZpcnN0Q2hh
cihVQ2hhciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0ZXJD
bGFzc1RhYmxlW2NdICYgU2NoZW1lRmlyc3RDaGFyKTsgfQotc3RhdGljIGlubGluZSBib29sIGlz
U2NoZW1lQ2hhcihVQ2hhciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpj
aGFyYWN0ZXJDbGFzc1RhYmxlW2NdICYgU2NoZW1lQ2hhcik7IH0KLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc0JhZENoYXIodW5zaWduZWQgY2hhciBjKSB7IHJldHVybiBVUkxJbnRlcm5hbDo6Y2hhcmFj
dGVyQ2xhc3NUYWJsZVtjXSAmIEJhZENoYXI7IH0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1RhYk5l
d2xpbmUoVUNoYXIgYykgeyByZXR1cm4gYyA8PSAweGZmICYmIChVUkxJbnRlcm5hbDo6Y2hhcmFj
dGVyQ2xhc3NUYWJsZVtjXSAmIFRhYk5ld2xpbmUpOyB9Ci0KLVN0cmluZyBlbmNvZGVXaXRoVVJM
RXNjYXBlU2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZywgUGVyY2VudEVu
Y29kZUNoYXJhY3RlckNsYXNzIHdoYXRUb0VuY29kZSk7Ci0KIC8vIENvcGllcyB0aGUgc291cmNl
IHRvIHRoZSBkZXN0aW5hdGlvbiwgYXNzdW1pbmcgYWxsIHRoZSBzb3VyY2UgY2hhcmFjdGVycyBh
cmUKIC8vIEFTQ0lJLiBUaGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3QgYmUgbGFyZ2UgZW5vdWdo
LiBOdWxsIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQKIC8vIGluIHRoZSBzb3VyY2Ugc3RyaW5nLCBh
bmQgbm8gYXR0ZW1wdCBpcyBtYWRlIHRvIG51bGwtdGVybWluYXRlIHRoZSByZXN1bHQuCkBAIC02
NTEsMTcgKzM4MSwxNyBAQCBib29sIFVSTDo6c2V0UHJvdG9jb2woY29uc3QgU3RyaW5nJiBzKQog
ICAgIC8vIEZpcmVmb3ggYW5kIElFIHJlbW92ZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCAn
OicuCiAgICAgc2l6ZV90IHNlcGFyYXRvclBvc2l0aW9uID0gcy5maW5kKCc6Jyk7CiAgICAgU3Ry
aW5nIG5ld1Byb3RvY29sID0gcy5zdWJzdHJpbmcoMCwgc2VwYXJhdG9yUG9zaXRpb24pOwotCi0g
ICAgaWYgKCFpc1ZhbGlkUHJvdG9jb2wobmV3UHJvdG9jb2wpKQorICAgIGF1dG8gY2Fub25pY2Fs
aXplZCA9IFVSTFBhcnNlcjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUobmV3UHJvdG9jb2wpOwor
ICAgIGlmICghY2Fub25pY2FsaXplZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFtX2lzVmFsaWQpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG5ld1By
b3RvY29sLCAiOiIsIG1fc3RyaW5nKSk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0
cmluZygqY2Fub25pY2FsaXplZCwgIjoiLCBtX3N0cmluZykpOwogICAgICAgICAqdGhpcyA9IHBh
cnNlci5yZXN1bHQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgVVJMUGFy
c2VyIHBhcnNlcihtYWtlU3RyaW5nKG5ld1Byb3RvY29sLCBtX3N0cmluZy5zdWJzdHJpbmcobV9z
Y2hlbWVFbmQpKSk7CisgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKCpjYW5vbmljYWxp
emVkLCBtX3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVFbmQpKSk7CiAgICAgKnRoaXMgPSBwYXJz
ZXIucmVzdWx0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03OTUsNiArNTI1LDI4IEBAIHZv
aWQgVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGgKICAgICAqdGhpcyA9IHBhcnNl
ci5yZXN1bHQoKTsKIH0KIAorc3RhdGljIFN0cmluZyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhj
b25zdCBTdHJpbmcmIGlucHV0LCBib29sKCpzaG91bGRFbmNvZGUpKFVDaGFyKSkKK3sKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKHNob3VsZEVuY29kZShpbnB1dFtpXSkpKSB7CisgICAgICAgICAgICBDU3RyaW5n
IHV0ZjggPSBpbnB1dC51dGY4KCk7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CisgICAgICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSh1dGY4Lmxlbmd0aCgpICsgMik7
CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHV0ZjgubGVuZ3RoKCk7IGorKykg
eworICAgICAgICAgICAgICAgIGF1dG8gYyA9IHV0ZjguZGF0YSgpW2pdOworICAgICAgICAgICAg
ICAgIGlmIChzaG91bGRFbmNvZGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyUnKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodXBwZXJOaWJi
bGVUb0FTQ0lJSGV4RGlnaXQoYykpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjKSk7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gaW5wdXQ7Cit9CisKIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0cmluZyYg
dXNlcikKIHsKICAgICBpZiAoIW1faXNWYWxpZCkKQEAgLTgwNSw3ICs1NTcsNyBAQCB2b2lkIFVS
TDo6c2V0VXNlcihjb25zdCBTdHJpbmcmIHVzZXIpCiAKICAgICB1bnNpZ25lZCBlbmQgPSBtX3Vz
ZXJFbmQ7CiAgICAgaWYgKCF1c2VyLmlzRW1wdHkoKSkgewotICAgICAgICBTdHJpbmcgdSA9IGVu
Y29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXModXNlciwgUGVyY2VudEVuY29kZVVzZXJuYW1lKTsK
KyAgICAgICAgU3RyaW5nIHUgPSBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyh1c2VyLCBVUkxQYXJz
ZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldCk7CiAgICAgICAgIGlmIChtX3VzZXJTdGFydCA9PSBt
X3NjaGVtZUVuZCArIDEpCiAgICAgICAgICAgICB1ID0gIi8vIiArIHU7CiAgICAgICAgIC8vIEFk
ZCAnQCcgaWYgd2UgZGlkbid0IGhhdmUgb25lIGJlZm9yZS4KQEAgLTgzMiw3ICs1ODQsNyBAQCB2
b2lkIFVSTDo6c2V0UGFzcyhjb25zdCBTdHJpbmcmIHBhc3N3b3JkCiAKICAgICB1bnNpZ25lZCBl
bmQgPSBtX3Bhc3N3b3JkRW5kOwogICAgIGlmICghcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIFN0cmluZyBwID0gIjoiICsgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXNzd29y
ZCwgUGVyY2VudEVuY29kZVBhc3N3b3JkKSArICJAIjsKKyAgICAgICAgU3RyaW5nIHAgPSAiOiIg
KyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhwYXNzd29yZCwgVVJMUGFyc2VyOjppc0luVXNlcklu
Zm9FbmNvZGVTZXQpICsgIkAiOwogICAgICAgICBpZiAobV91c2VyRW5kID09IG1fc2NoZW1lRW5k
ICsgMSkKICAgICAgICAgICAgIHAgPSAiLy8iICsgcDsKICAgICAgICAgLy8gRWF0IHRoZSBleGlz
dGluZyAnQCcgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGFkZCBvdXIgb3duLgpAQCAtOTA1LDEzICs2
NTcsMTQgQEAgdm9pZCBVUkw6OnNldFBhdGgoY29uc3QgU3RyaW5nJiBzKQogICAgIGlmICghbV9p
c1ZhbGlkKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogZW5jb2RlV2l0aFVSTEVz
Y2FwZVNlcXVlbmNlcyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlICcjJyBhbmQgJz8nLCBzbyBm
cmFnbWVudCBhbmQgcXVlcnkgcGFydHMKLSAgICAvLyBtYXkgYmUgaW5hZHZlcnRlbnRseSBhZmZl
Y3RlZC4KICAgICBTdHJpbmcgcGF0aCA9IHM7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8IHBh
dGhbMF0gIT0gJy8nKQogICAgICAgICBwYXRoID0gIi8iICsgcGF0aDsKIAotICAgIFVSTFBhcnNl
ciBwYXJzZXIobWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fcG9ydEVuZCksIGVuY29kZVdpdGhV
UkxFc2NhcGVTZXF1ZW5jZXMocGF0aCksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BhdGhFbmQpKSk7
CisgICAgYXV0byBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24gPSBbXSAoVUNoYXIgYykgeworICAg
ICAgICByZXR1cm4gYyA9PSAnPycgfHwgYyA9PSAnIyc7CisgICAgfTsKKyAgICBVUkxQYXJzZXIg
cGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3BvcnRFbmQpLCBwZXJjZW50RW5jb2Rl
Q2hhcmFjdGVycyhwYXRoLCBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24pLCBtX3N0cmluZy5zdWJz
dHJpbmcobV9wYXRoRW5kKSkpOwogICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogfQogCkBA
IC05MjUsMTMgKzY3OCw2IEBAIFN0cmluZyBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoY29uc3Qg
U3QKICAgICByZXR1cm4gZGVjb2RlRXNjYXBlU2VxdWVuY2VzPFVSTEVzY2FwZVNlcXVlbmNlPihz
dHJpbmcsIGVuY29kaW5nKTsKIH0KIAotLy8gQ2F1dGlvbjogVGhpcyBmdW5jdGlvbiBkb2VzIG5v
dCBib3VuZHMgY2hlY2suCi1zdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyKiYgYnVm
ZmVyLCB1bnNpZ25lZCBjaGFyIGMpCi17Ci0gICAgKmJ1ZmZlcisrID0gJyUnOwotICAgIHBsYWNl
Qnl0ZUFzSGV4KGMsIGJ1ZmZlcik7Ci19Ci0KIFN0cmluZyBVUkw6OnNlcmlhbGl6ZShib29sIG9t
aXRGcmFnbWVudCkgY29uc3QKIHsKICAgICBpZiAob21pdEZyYWdtZW50KQpAQCAtMTAzMyw1MCAr
Nzc5LDYgQEAgYm9vbCBob3N0c0FyZUVxdWFsKGNvbnN0IFVSTCYgYSwgY29uc3QgVQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1TdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhjb25z
dCBTdHJpbmcmIG5vdEVuY29kZWRTdHJpbmcsIFBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJDbGFzcyB3
aGF0VG9FbmNvZGUpCi17Ci0gICAgQ1N0cmluZyBhc1VURjggPSBub3RFbmNvZGVkU3RyaW5nLnV0
ZjgoKTsKLQotICAgIENoYXJCdWZmZXIgYnVmZmVyKGFzVVRGOC5sZW5ndGgoKSAqIDMgKyAxKTsK
LSAgICBjaGFyKiBwID0gYnVmZmVyLmRhdGEoKTsKLQotICAgIGNvbnN0IGNoYXIqIHN0ciA9IGFz
VVRGOC5kYXRhKCk7Ci0gICAgY29uc3QgY2hhciogc3RyRW5kID0gc3RyICsgYXNVVEY4Lmxlbmd0
aCgpOwotICAgIHdoaWxlIChzdHIgPCBzdHJFbmQpIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBj
ID0gKnN0cisrOwotICAgICAgICBpZiAocGVyY2VudEVuY29kZUNsYXNzVGFibGVbY10gPj0gd2hh
dFRvRW5jb2RlKQotICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgICpwKysgPSBjOwotICAgIH0KLQotICAgIEFTU0VSVChwIC0gYnVm
ZmVyLmRhdGEoKSA8PSBzdGF0aWNfY2FzdDxpbnQ+KGJ1ZmZlci5zaXplKCkpKTsKLQotICAgIHJl
dHVybiBTdHJpbmcoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRhKCkpOwotfQotCi1TdHJp
bmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhjb25zdCBTdHJpbmcmIG5vdEVuY29kZWRT
dHJpbmcpCi17Ci0gICAgQ1N0cmluZyBhc1VURjggPSBub3RFbmNvZGVkU3RyaW5nLnV0ZjgoKTsK
LQotICAgIENoYXJCdWZmZXIgYnVmZmVyKGFzVVRGOC5sZW5ndGgoKSAqIDMgKyAxKTsKLSAgICBj
aGFyKiBwID0gYnVmZmVyLmRhdGEoKTsKLQotICAgIGNvbnN0IGNoYXIqIHN0ciA9IGFzVVRGOC5k
YXRhKCk7Ci0gICAgY29uc3QgY2hhciogc3RyRW5kID0gc3RyICsgYXNVVEY4Lmxlbmd0aCgpOwot
ICAgIHdoaWxlIChzdHIgPCBzdHJFbmQpIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0
cisrOwotICAgICAgICBpZiAoaXNCYWRDaGFyKGMpKQotICAgICAgICAgICAgYXBwZW5kRXNjYXBl
ZENoYXIocCwgYyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgICpwKysgPSBjOwotICAgIH0K
LQotICAgIEFTU0VSVChwIC0gYnVmZmVyLmRhdGEoKSA8PSBzdGF0aWNfY2FzdDxpbnQ+KGJ1ZmZl
ci5zaXplKCkpKTsKLQotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZl
ci5kYXRhKCkpOwotfQotCiBib29sIFVSTDo6aXNIaWVyYXJjaGljYWwoKSBjb25zdAogewogICAg
IGlmICghbV9pc1ZhbGlkKQpAQCAtMTEwNiw3ICs4MDgsNyBAQCBib29sIHByb3RvY29sSXNJbnRl
cm5hbChjb25zdCBTdHJpbmdDbGFzCiAgICAgICAgIGlzTGVhZGluZyA9IGZhbHNlOwogCiAgICAg
ICAgIC8vIFNraXAgYW55IHRhYnMgYW5kIG5ld2xpbmVzLgotICAgICAgICBpZiAoaXNUYWJOZXds
aW5lKHVybFtpXSkpCisgICAgICAgIGlmICh1cmxbaV0gPT0gJ1x0JyB8fCB1cmxbaV0gPT0gJ1xy
JyB8fCB1cmxbaV0gPT0gJ1xuJykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlm
ICghcHJvdG9jb2xbal0pCkBAIC0xMTMwLDIxICs4MzIsNiBAQCBpbmxpbmUgYm9vbCBVUkw6OnBy
b3RvY29sSXMoY29uc3QgU3RyaW5nCiAgICAgcmV0dXJuIFdlYkNvcmU6OnByb3RvY29sSXNJbnRl
cm5hbChzdHJpbmcsIHByb3RvY29sKTsKIH0KIAotYm9vbCBpc1ZhbGlkUHJvdG9jb2woY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCkKLXsKLSAgICAvLyBSRkMzOTg2OiBBTFBIQSAqKCBBTFBIQSAvIERJ
R0lUIC8gIisiIC8gIi0iIC8gIi4iICkKLSAgICBpZiAocHJvdG9jb2wuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFpc1NjaGVtZUZpcnN0Q2hhcihwcm90b2NvbFsw
XSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB1bnNpZ25lZCBwcm90b2NvbExlbmd0aCA9
IHByb3RvY29sLmxlbmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBwcm90b2Nv
bExlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICghaXNTY2hlbWVDaGFyKHByb3RvY29sW2ldKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
ICNpZm5kZWYgTkRFQlVHCiAKIHZvaWQgVVJMOjpwcmludCgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyOSw2ICs0
MjksMTEgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBzaG91bGRQZXJjZW50RQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorYm9vbCBVUkxQYXJzZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldChV
Q2hhciBjKQoreworICAgIHJldHVybiBXZWJDb3JlOjppc0luVXNlckluZm9FbmNvZGVTZXQoYyk7
Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIFVSTFBhcnNlcjo6UmVwb3J0
U3ludGF4VmlvbGF0aW9uIHJlcG9ydFN5bnRheFZpb2xhdGlvbj4KIEFMV0FZU19JTkxJTkUgdm9p
ZCBVUkxQYXJzZXI6OmFkdmFuY2UoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0
ZXJhdG9yLCBjb25zdCBDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3JG
b3JTeW50YXhWaW9sYXRpb25Qb3NpdGlvbikKIHsKQEAgLTIwODYsMTAgKzIwOTEsMTAgQEAgdm9p
ZCBVUkxQYXJzZXI6OnBhcnNlQXV0aG9yaXR5KENvZGVQb2ludAogICAgICAgICAgICAgYXBwZW5k
VG9BU0NJSUJ1ZmZlcignOicpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgdXRmOFBlcmNlbnRFbmNvZGU8aXNJblVzZXJJbmZvRW5jb2RlU2V0PihpdGVyYXRvcik7Cisg
ICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPFdlYkNvcmU6OmlzSW5Vc2VySW5mb0VuY29kZVNldD4o
aXRlcmF0b3IpOwogICAgIH0KICAgICBmb3IgKDsgIWl0ZXJhdG9yLmF0RW5kKCk7IGFkdmFuY2Uo
aXRlcmF0b3IpKQotICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxpc0luVXNlckluZm9FbmNvZGVT
ZXQ+KGl0ZXJhdG9yKTsKKyAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8V2ViQ29yZTo6aXNJblVz
ZXJJbmZvRW5jb2RlU2V0PihpdGVyYXRvcik7CiAgICAgbV91cmwubV9wYXNzd29yZEVuZCA9IGN1
cnJlbnRQb3NpdGlvbihpdGVyYXRvcik7CiAgICAgaWYgKCFtX3VybC5tX3VzZXJFbmQpCiAgICAg
ICAgIG1fdXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fcGFzc3dvcmRFbmQ7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAkocmV2aXNpb24gMjI0NzAwKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgc2VyaWFsaXplKGNvbnN0IFVSTEVuY29kZWRGb3Jt
Jik7CiAKICAgICBzdGF0aWMgY29uc3QgVUlETkEmIGludGVybmF0aW9uYWxEb21haW5OYW1lVHJh
bnNjb2RlcigpOworICAgIHN0YXRpYyBib29sIGlzSW5Vc2VySW5mb0VuY29kZVNldChVQ2hhcik7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1NwZWNpYWxTY2hlbWUoY29uc3Qg
U3RyaW5nJiBzY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gbWF5YmVDYW5vbmljYWxpemVTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcwMCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTEtMTAgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBvbGQg
VVJMIHBhcnNlciByZW1uYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc5NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdp
dGhHb29nbGUpOgorICAgICAgICBUaGVyZSdzIG5vIG5lZWQgdG8gcGVyY2VudC1lbmNvZGUgdGhl
IFVSTCBiZWZvcmUgcGFyc2luZy4gIFRoZSBVUkxQYXJzZXIgZG9lcyB0aGF0LgorICAgICAgICBB
bHNvLCB1c2UgaHR0cHMgaWYgd2UgZG8gZW5kIHVwIHNlYXJjaGluZyB3aXRoIGdvb2dsZS4KKwog
MjAxNy0xMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJZ25vcmUgSFNUUyBmb3IgcGFydGl0aW9uZWQsIGNyb3NzLW9yaWdpbiBzdWJyZXNvdXJjZSBy
ZXF1ZXN0cwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCShyZXZpc2lvbiAy
MjQ3MDApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxNCArNjEsMTIgQEAgdm9p
ZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvbwogewogICAgIFN0cmluZyBzZWFy
Y2hTdHJpbmcgPSBmcmFtZS0+ZWRpdG9yKCkuc2VsZWN0ZWRUZXh0KCk7CiAgICAgc2VhcmNoU3Ry
aW5nLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgIFN0cmluZyBlbmNvZGVkID0gZW5jb2RlV2l0aFVS
TEVzY2FwZVNlcXVlbmNlcyhzZWFyY2hTdHJpbmcpOwotICAgIGVuY29kZWQucmVwbGFjZShBU0NJ
SUxpdGVyYWwgeyAiJTIwIiB9LCBBU0NJSUxpdGVyYWwgeyAiKyIgfSk7CiAKLSAgICBTdHJpbmcg
dXJsID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT0iICsgZW5jb2RlZCArICImaWU9
VVRGLTgmb2U9VVRGLTgiOworICAgIFVSTCB1cmwoVVJMKCksICJodHRwczovL3d3dy5nb29nbGUu
Y29tL3NlYXJjaD9xPSIgKyBzZWFyY2hTdHJpbmcgKyAiJmllPVVURi04Jm9lPVVURi04Iik7CiAK
ICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1
cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7Ci0gICAgICAgIHBh
Z2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnVybFNlbGVjdGVkKFVSTCB7IFVSTCB7IH0sIHVybCB9
LCB7IH0sIG51bGxwdHIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8s
IE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CisgICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnVybFNlbGVjdGVk
KHVybCwgeyB9LCBudWxscHRyLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgIH0KIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gMjI0NzIzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTEtMTAgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1
cCBvbGQgVVJMIHBhcnNlciByZW1uYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6Cisg
ICAgICAgIFRoZXJlJ3Mgbm8gbmVlZCB0byBwZXJjZW50LWVuY29kZSB0aGUgVVJMIGJlZm9yZSBw
YXJzaW5nLiAgVGhlIFVSTFBhcnNlciBkb2VzIHRoYXQuCisgICAgICAgIEFsc28sIHVzZSBodHRw
cyBpZiB3ZSBkbyBlbmQgdXAgc2VhcmNoaW5nIHdpdGggZ29vZ2xlLgorCiAyMDE3LTExLTA5ICBD
aHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KIAogICAgICAgICBVc2UgZW51
bSBjbGFzc2VzIHdpdGhpbiBGaWxlU3lzdGVtCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQuY3BwCShyZXZpc2lvbiAyMjQ3MDApCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDE0ICs1OSwxMiBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29vCiB7
CiAgICAgU3RyaW5nIHNlYXJjaFN0cmluZyA9IGZyYW1lLT5lZGl0b3IoKS5zZWxlY3RlZFRleHQo
KTsKICAgICBzZWFyY2hTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCk7Ci0gICAgU3RyaW5nIGVuY29k
ZWQgPSBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHNlYXJjaFN0cmluZyk7Ci0gICAgZW5j
b2RlZC5yZXBsYWNlKEFTQ0lJTGl0ZXJhbCB7ICIlMjAiIH0sIEFTQ0lJTGl0ZXJhbCB7ICIrIiB9
KTsKIAotICAgIFN0cmluZyB1cmwgPSAiaHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIg
KyBlbmNvZGVkICsgIiZpZT1VVEYtOCZvZT1VVEYtOCI7CisgICAgVVJMIHVybChVUkwoKSwgImh0
dHBzOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIHNlYXJjaFN0cmluZyArICImaWU9VVRG
LTgmb2U9VVRGLTgiKTsKIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewog
ICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKTsKLSAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkudXJsU2VsZWN0ZWQoVVJM
IHsgVVJMIHsgfSwgdXJsIH0sIHsgfSwgbnVsbHB0ciwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkubG9h
ZGVyKCkudXJsU2VsZWN0ZWQodXJsLCB7IH0sIG51bGxwdHIsIExvY2tIaXN0b3J5OjpObywgTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDcxOSkKKysrIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
Ny0xMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIENsZWFuIHVwIG9sZCBVUkwgcGFyc2VyIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1NzMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy91cmwv
dXJsLXNldHRlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICBXZSdyZSBtb3JlIHNwZWMgY29tcGxp
YW50ISAgSG9vcmF5IQorCiAyMDE3LTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10gSW1wbGVtZW50IGJldHRlciBzdXBwb3J0
IGZvciAiQ2xlYXIgUmVnaXN0cmF0aW9uIiBhbGdvcml0aG0KSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL3VybC1zZXR0ZXJzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3VybC91cmwtc2V0dGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyNDcwMCkKKysrIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL3VybC1zZXR0ZXJz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDk1LDIxICs0OTUsMjEgQEAgUEFTUyA8
YXJlYT46IFNldHRpbmcgPGh0dHBzOi8vZXhhbXBsZS5uZQogUEFTUyBVUkw6IFNldHRpbmcgPGh0
dHBzOi8vZXhhbXBsZS5uZXQjbmF2Pi5wYXRobmFtZSA9ICcuLi9ob21lJyAKIFBBU1MgPGE+OiBT
ZXR0aW5nIDxodHRwczovL2V4YW1wbGUubmV0I25hdj4ucGF0aG5hbWUgPSAnLi4vaG9tZScgCiBQ
QVNTIDxhcmVhPjogU2V0dGluZyA8aHR0cHM6Ly9leGFtcGxlLm5ldCNuYXY+LnBhdGhuYW1lID0g
Jy4uL2hvbWUnIAotRkFJTCBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xh
bmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50IGRl
bGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6
Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5l
dC8vYS8lMjUyRS9iLyUyNTJlLi9jP2xhbmc9ZnIjbmF2IgotRkFJTCA8YT46IFNldHRpbmcgPGh0
dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwl
MmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1
dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8vYS8lMjUyRS9iLyUyNTJlLi9jP2xhbmc9ZnIjbmF2
IgotRkFJTCA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIj
bmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGltaXRl
ciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFt
cGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8vYS8l
MjUyRS9iLyUyNTJlLi9jP2xhbmc9ZnIjbmF2IgotRkFJTCBVUkw6IFNldHRpbmcgPHZpZXctc291
cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwl
MkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVj
aWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ2aWV3LXNvdXJjZStodHRwOi8vZXhh
bXBsZS5uZXQvXFxhXCUyRVxiXCUyZS5cYz9sYW5nPWZyI25hdiIgYnV0IGdvdCAidmlldy1zb3Vy
Y2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMjUyRVxiXCUyNTJlLlxjP2xhbmc9ZnIjbmF2Igot
RkFJTCA8YT46IFNldHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xh
bmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdt
ZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvXFxhXCUyRVxiXCUyZS5cYz9sYW5n
PWZyI25hdiIgYnV0IGdvdCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMjUy
RVxiXCUyNTJlLlxjP2xhbmc9ZnIjbmF2IgotRkFJTCA8YXJlYT46IFNldHRpbmcgPHZpZXctc291
cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwl
MkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVj
aWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ2aWV3LXNvdXJjZStodHRwOi8vZXhh
bXBsZS5uZXQvXFxhXCUyRVxiXCUyZS5cYz9sYW5nPWZyI25hdiIgYnV0IGdvdCAidmlldy1zb3Vy
Y2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMjUyRVxiXCUyNTJlLlxjP2xhbmc9ZnIjbmF2Igor
RkFJTCBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5w
YXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGltaXRlciBmb3Ig
J3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5l
dC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8vYS9jP2xhbmc9
ZnIjbmF2IgorRkFJTCA8YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9
ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBzZWdtZW50IGRlbGlt
aXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9l
eGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9leGFtcGxlLm5ldC8v
YS9jP2xhbmc9ZnIjbmF2IgorRkFJTCA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5l
dC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgYSBz
ZWdtZW50IGRlbGltaXRlciBmb3IgJ3NwZWNpYWwnIFVSTHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC9hL2M/bGFuZz1mciNuYXYiIGJ1dCBnb3QgImh0dHA6Ly9l
eGFtcGxlLm5ldC8vYS9jP2xhbmc9ZnIjbmF2IgorUEFTUyBVUkw6IFNldHRpbmcgPHZpZXctc291
cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwl
MkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVj
aWFsJyBVUkxzIAorUEFTUyA8YT46IFNldHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxl
Lm5ldC9ob21lP2xhbmc9ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMg
Km5vdCogYSBzZWdtZW50IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIAorUEFTUyA8
YXJlYT46IFNldHRpbmcgPHZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9ob21lP2xhbmc9
ZnIjbmF2Pi5wYXRobmFtZSA9ICdcYVwlMkVcYlwlMmUuXGMnIFwgaXMgKm5vdCogYSBzZWdtZW50
IGRlbGltaXRlciBmb3Igbm9uLSdzcGVjaWFsJyBVUkxzIAogRkFJTCBVUkw6IFNldHRpbmcgPGE6
Lz4ucGF0aG5hbWUgPSAnXDABCQotXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/QEFaW1xdXl9g
YXp7fH1+f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhlIGRlZmF1bHQg
ZW5jb2RlIHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0Ul
M0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IiBidXQg
Z290ICJhOi8lMDAlMDElMDklMEElMEQlMUYlMjAhJTIyJTIzJCUyNSYnKCkqKywtLi8wOTo7JTND
PSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTki
Citcch8gISIjJCUmJygpKissLS4vMDk6Ozw9Pj9AQVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVU
Ri04IHBlcmNlbnQgZW5jb2Rpbmcgd2l0aCB0aGUgZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFu
ZCBuZXdsaW5lcyBhcmUgcmVtb3ZlZC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUw
MSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdC
fCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUxRiUy
MCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4l
N0YlQzMlODIlQzIlODAlQzMlODIlQzIlODElQzMlODMlQzIlODklQzMlODMlQzIlQTkiCiBGQUlM
IDxhPjogU2V0dGluZyA8YTovPi5wYXRobmFtZSA9ICdcMAEJCi1cch8gISIjJCUmJygpKissLS4v
MDk6Ozw9Pj9AQVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQgZW5jb2Rpbmcg
d2l0aCB0aGUgZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBhcmUgcmVtb3Zl
ZC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkq
KywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODEl
QzMlODklQzMlQTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUwOSUwQSUwRCUxRiUyMCElMjIlMjMkJTI1
JicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVD
MiU4MSVDMyU4OSVDMyVBOSIKK1xyHyAhIiMkJSYnKCkqKywtLi8wOTo7PD0+P0BBWltcXV5fYGF6
e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNvZGluZyB3aXRoIHRoZSBkZWZhdWx0IGVu
Y29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSByZW1vdmVkLiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5OjslM0M9JTNFJTNG
QEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIgYnV0IGdv
dCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xc
XV5fJTYwYXolN0J8JTdEfiU3RiVDMyU4MiVDMiU4MCVDMyU4MiVDMiU4MSVDMyU4MyVDMiU4OSVD
MyU4MyVDMiVBOSIKIEZBSUwgPGFyZWE+OiBTZXR0aW5nIDxhOi8+LnBhdGhuYW1lID0gJ1wwAQkK
LVxyHyAhIiMkJSYnKCkqKywtLi8wOTo7PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRG
LTggcGVyY2VudCBlbmNvZGluZyB3aXRoIHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5k
IG5ld2xpbmVzIGFyZSByZW1vdmVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAx
JTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8
JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTA5JTBB
JTBEJTFGJTIwISUyMiUyMyQlMjUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBh
eiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IgotRkFJTCBVUkw6IFNldHRpbmcg
PGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBh
bHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRz
aWRlIGRvdHRlZCBzZWdtZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFt
cGxlLm5ldC8lMmUlMkUlYzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQv
JTI1MmUlMjUyRSUyNWMzJTI1ODl0JUMzJUE5IgotRkFJTCA8YT46IFNldHRpbmcgPGh0dHA6Ly9l
eGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBl
cmNlbnQtZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRl
ZCBzZWdtZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC8l
MmUlMkUlYzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvJTI1MmUlMjUy
RSUyNWMzJTI1ODl0JUMzJUE5IgotRkFJTCA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxl
Lm5ldD4ucGF0aG5hbWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQt
ZW5jb2RlZCBhcmUgbGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdt
ZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9leGFtcGxlLm5ldC8lMmUlMkUl
YzMlODl0JUMzJUE5IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvJTI1MmUlMjUyRSUyNWMz
JTI1ODl0JUMzJUE5IgorXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/QEFaW1xdXl9gYXp7fH1+
f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhlIGRlZmF1bHQgZW5jb2Rl
IHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpb
XFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IiBidXQgZ290ICJh
Oi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8l
NjBheiU3QnwlN0R+JTdGJUMzJTgyJUMyJTgwJUMzJTgyJUMyJTgxJUMzJTgzJUMyJTg5JUMzJTgz
JUMyJUE5IgorUEFTUyBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUg
PSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUgbGVm
dCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdtZW50cy4gCitQQVNTIDxh
PjogU2V0dGluZyA8aHR0cDovL2V4YW1wbGUubmV0Pi5wYXRobmFtZSA9ICclMmUlMkUlYzMlODl0
w6knIEJ5dGVzIGFscmVhZHkgcGVyY2VudC1lbmNvZGVkIGFyZSBsZWZ0IGFzLWlzLCBpbmNsdWRp
bmcgJTJFIG91dHNpZGUgZG90dGVkIHNlZ21lbnRzLiAKK1BBU1MgPGFyZWE+OiBTZXR0aW5nIDxo
dHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4OXTDqScgQnl0ZXMgYWxy
ZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1ZGluZyAlMkUgb3V0c2lk
ZSBkb3R0ZWQgc2VnbWVudHMuIAogUEFTUyBVUkw6IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5l
dD4ucGF0aG5hbWUgPSAnPycgPyBuZWVkcyB0byBiZSBlbmNvZGVkIAogUEFTUyA8YT46IFNldHRp
bmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUgPSAnPycgPyBuZWVkcyB0byBiZSBlbmNv
ZGVkIAogUEFTUyA8YXJlYT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5hbWUg
PSAnPycgPyBuZWVkcyB0byBiZSBlbmNvZGVkIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326891</attachid>
            <date>2017-11-14 10:56:44 -0800</date>
            <delta_ts>2017-11-14 11:02:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179573-20171114105643.patch</filename>
            <type>text/plain</type>
            <size>45306</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTExLTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
b2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIFdoZW4gd2UgdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgVVJMUGFyc2VyLCB3
ZSBrZXB0IHRoZSBvbGQgY2hhcmFjdGVyIHRhYmxlcyB3aGljaCB3ZXJlIGxlc3Mgc3BlYy1jb25m
b3JtYW50LgorICAgICAgICBSZW1vdmluZyB0aGVtIGFuZCB0cmFuc2l0aW9uaW5nIHRvIFVSTFBh
cnNlcidzIHRhYmxlIG1ha2VzIG1vcmUgd2ViIHBsYXRmb3JtIHRlc3RzIHBhc3MhCisKKyAgICAg
ICAgKiBmaWxlYXBpL0Jsb2JVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlVSTDo6Y3Jl
YXRlQmxvYlVSTCk6CisgICAgICAgIFRoZXJlJ3Mgbm8gbmVlZCB0byBwZXJjZW50LWVuY29kZSBh
biBvcmlnaW4uICBJdCdzIGFscmVhZHkgYXNjaWksIGFuZCBpZiBpdCdzIG5vdCwgdGhlbiB0aGUg
VVJMUGFyc2VyIHdpbGwgZXNjYXBlIGl0LgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6Y3JlYXRlRmlsZVVSTCk6CisgICAgICAgIFJlbW92ZWQgY29tbWVudCB0aGF0IG5vIGxv
bmdlciBhcHBsaWVzLgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVUkw6OnNldFByb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBlcmNlbnRFbmNvZGVD
aGFyYWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0VXNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpVUkw6OnNldFBhc3MpOgorICAgICAgICBQZXJjZW50IGVuY29kZSB0aGUgdXNlcmlu
Zm8gY2hhcmFjdGVyIHNldCBmcm9tIHRoZSBVUkxQYXJzZXIgYWNjb3JkaW5nIHRvIGh0dHBzOi8v
dXJsLnNwZWMud2hhdHdnLm9yZy8jc2V0LXRoZS11c2VybmFtZSBhbmQgaHR0cHM6Ly91cmwuc3Bl
Yy53aGF0d2cub3JnLyNzZXQtdGhlLXBhc3N3b3JkCisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNl
dFBhdGgpOgorICAgICAgICBBID8gb3IgYSAjIGFyZSB0aGUgb25seSB0d28gY2hhcmFjdGVycyB0
aGF0IG5lZWQgdG8gYmUgcHJlLWVuY29kZWQgd2hlbiBzZXR0aW5nIHRoZSBwYXRoIGJlY2F1c2Ug
dGhleSBpbmRpY2F0ZSB0aGUKKyAgICAgICAgYmVnaW5uaW5nIG9mIGEgcXVlcnkgb3IgZnJhZ21l
bnQuICBBbGwgb3RoZXIgY2hhcmFjdGVycyB3aWxsIGJlIGVuY29kZWQgaWYgbmVjZXNzYXJ5IGR1
cmluZyBwYXJzaW5nLgorICAgICAgICAoV2ViQ29yZTo6cHJvdG9jb2xJc0ludGVybmFsKToKKyAg
ICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1NjaGVtZUZpcnN0Q2hhcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1NjaGVtZUNoYXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6aXNCYWRDaGFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Omlz
VGFiTmV3bGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFc2NhcGVkQ2hh
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjplbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVu
Y2VzKToKKyAgICAgICAgRW5jb2RlIGNoYXJhY3RlcnMgbmVlZGVkLiAgSSB1c2VkIHRoZSB1c2Vy
IGluZm8gc2V0IG9mIGNoYXJhY3RlcnMgYmVjYXVzZSB0aGF0IHdhcyBtb3N0IHNpbWlsYXIgdG8g
dGhlIEJhZENoYXIgc2V0IG9mIHRoZSBvbGQgcGFyc2VyLgorICAgICAgICBUaGlzIGlzbid0IHN0
YW5kYXJkaXplZCwgYW5kIGl0J3Mgb25seSB1c2VkIGZvciB0aGUgc2VhcmNoIGNvbnRleHQgbWVu
dSBpdGVtIHdoaWNoIGNlcnRhaW5seSBpc24ndCBzdGFuZGFyZGl6ZWQuCisgICAgICAgIChXZWJD
b3JlOjppc1ZhbGlkUHJvdG9jb2wpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgYSBidW5jaCBv
ZiBvbGQgdW51c2VkIGZ1bmN0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNvZGVTZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZUF1dGhvcml0eSk6CisgICAgICAgICog
cGxhdGZvcm0vVVJMUGFyc2VyLmg6CisgICAgICAgIEV4cG9zZSBhIGZldyBmdW5jdGlvbnMgZm9y
IFVSTC5jcHAgdG8gdXNlLgorCiAyMDE3LTExLTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWVyZ2UgTmV0d29ya1Byb2Nlc3M6OkVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24gYW5kIE5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRlRGF0
YVN0b3JlIGludG8gb25lIG1lc3NhZ2UgdHlwZQpJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JV
UkwuY3BwCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JV
UkwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIFN0cmluZyBCbG9iVVJMOjpn
ZXRJZGVudGlmaWVyKGNvbnN0IFVSTCYKIFVSTCBCbG9iVVJMOjpjcmVhdGVCbG9iVVJMKGNvbnN0
IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIEFTU0VSVCghb3JpZ2luU3RyaW5nLmlzRW1w
dHkoKSk7Ci0gICAgU3RyaW5nIHVybFN0cmluZyA9ICJibG9iOiIgKyBlbmNvZGVXaXRoVVJMRXNj
YXBlU2VxdWVuY2VzKG9yaWdpblN0cmluZykgKyAnLycgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCk7CisgICAgU3RyaW5nIHVybFN0cmluZyA9ICJibG9iOiIgKyBvcmlnaW5TdHJpbmcgKyAn
LycgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CiAgICAgcmV0dXJuIFVSTChQYXJzZWRV
UkxTdHJpbmcsIHVybFN0cmluZyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkocmV2aXNpb24g
MjI0NzU3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDExICsyMTUsNiBAQCBib29sIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsCiBVUkwgQXBwbGljYXRpb25DYWNoZUhvc3Q6
OmNyZWF0ZUZpbGVVUkwoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIC8vIEZJWE1FOiBDYW4g
d2UganVzdCB1c2UgZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aCBpbnN0ZWFkPwotCi0gICAgLy8g
ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aCBmdW5jdGlvbiBpcyBub3Qgc3VpdGFibGUgYmVjYXVz
ZSBVUkw6OnNldFBhdGggdXNlcyBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzLCB3aGljaCBp
dCBub3RlcwotICAgIC8vIGRvZXMgbm90IGNvcnJlY3RseSBlc2NhcGUgJyMnIGFuZCAnPycuIFRo
aXMgZnVuY3Rpb24gd29ya3MgZm9yIG91ciBwdXJwb3NlcyBiZWNhdXNlCi0gICAgLy8gYXBwIGNh
Y2hlIG1lZGlhIGZpbGVzIGFyZSBhbHdheXMgY3JlYXRlZCB3aXRoIGVuY29kZUZvckZpbGVOYW1l
KGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkuCi0KICNpZiBVU0UoQ0YpICYmIFBMQVRGT1JN
KFdJTikKICAgICBVUkwgdXJsKGFkb3B0Q0YoQ0ZVUkxDcmVhdGVXaXRoRmlsZVN5c3RlbVBhdGgo
MCwgcGF0aC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBrQ0ZVUkxXaW5kb3dzUGF0aFN0eWxlLCBm
YWxzZSkpLmdldCgpKTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAJKHJldmlz
aW9uIDIyNDc1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDI3NiArNTUsNiBAQCB0eXBlZGVmIFZlY3RvcjxVQ2hhciwgNTEyPiBVQ2hh
ckJ1ZmZlcjsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRQb3J0TnVtYmVyID0gMHhG
RkZGOwogCi1lbnVtIFVSTENoYXJhY3RlckNsYXNzZXMgewotICAgIC8vIGFscGhhIAotICAgIFNj
aGVtZUZpcnN0Q2hhciA9IDEgPDwgMCwKLQotICAgIC8vICggYWxwaGEgfCBkaWdpdCB8ICIrIiB8
ICItIiB8ICIuIiApCi0gICAgU2NoZW1lQ2hhciA9IDEgPDwgMSwKLQotICAgIC8vIG1hcmsgICAg
ICAgID0gIi0iIHwgIl8iIHwgIi4iIHwgIiEiIHwgIn4iIHwgIioiIHwgIiciIHwgIigiIHwgIiki
Ci0gICAgLy8gdW5yZXNlcnZlZCAgPSBhbHBoYW51bSB8IG1hcmsKLSAgICAvLyAoIHVucmVzZXJ2
ZWQgfCBlc2NhcGVkIHwgIjsiIHwgIjoiIHwgIiYiIHwgIj0iIHwgIisiIHwgIiQiIHwgIiwiICkK
LSAgICBVc2VySW5mb0NoYXIgPSAxIDw8IDIsCi0KLSAgICAvLyBhbG51bSB8ICIuIiB8ICItIiB8
ICIlIgotICAgIC8vIFRoZSBhYm92ZSBpcyB3aGF0IHRoZSBzcGVjaWZpY2F0aW9uIHNheXMsIGJ1
dCB3ZSBhcmUgbGVuaWVudCB0bwotICAgIC8vIG1hdGNoIGV4aXN0aW5nIHByYWN0aWNlIGFuZCBh
bHNvIGFsbG93OgotICAgIC8vICJfIgotICAgIEhvc3RuYW1lQ2hhciA9IDEgPDwgMywKLQotICAg
IC8vIGhleGRpZ2l0IHwgIjoiIHwgIiUiCi0gICAgSVB2NkNoYXIgPSAxIDw8IDQsCi0KLSAgICAv
LyAiIyIgfCAiPyIgfCAiLyIgfCBudWwKLSAgICBQYXRoU2VnbWVudEVuZENoYXIgPSAxIDw8IDUs
Ci0KLSAgICAvLyBub3QgYWxsb3dlZCBpbiBwYXRoCi0gICAgQmFkQ2hhciA9IDEgPDwgNiwKLQot
ICAgIC8vICJcdCIgfCAiXG4iIHwgIlxyIgotICAgIFRhYk5ld2xpbmUgPSAxIDw8IDcKLX07Ci0K
LW5hbWVzcGFjZSBVUkxJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjaGFy
YWN0ZXJDbGFzc1RhYmxlWzI1Nl0gPSB7Ci0gICAgLyogMCBudWwgKi8gUGF0aFNlZ21lbnRFbmRD
aGFyLCAgICAvKiAxIHNvaCAqLyBCYWRDaGFyLAotICAgIC8qIDIgc3R4ICovIEJhZENoYXIsICAg
IC8qIDMgZXR4ICovIEJhZENoYXIsCi0gICAgLyogNCBlb3QgKi8gQmFkQ2hhciwgICAgLyogNSBl
bnEgKi8gQmFkQ2hhciwgICAgLyogNiBhY2sgKi8gQmFkQ2hhciwgICAgLyogNyBiZWwgKi8gQmFk
Q2hhciwKLSAgICAvKiA4IGJzICovIEJhZENoYXIsICAgICAvKiA5IGh0ICovIEJhZENoYXIgfCBU
YWJOZXdsaW5lLCAgICAgICAgICAgICAgICAvKiAxMCBubCAqLyBCYWRDaGFyIHwgVGFiTmV3bGlu
ZSwKLSAgICAvKiAxMSB2dCAqLyBCYWRDaGFyLCAgICAvKiAxMiBucCAqLyBCYWRDaGFyLCAgICAv
KiAxMyBjciAqLyBCYWRDaGFyIHwgVGFiTmV3bGluZSwKLSAgICAvKiAxNCBzbyAqLyBCYWRDaGFy
LCAgICAvKiAxNSBzaSAqLyBCYWRDaGFyLAotICAgIC8qIDE2IGRsZSAqLyBCYWRDaGFyLCAgIC8q
IDE3IGRjMSAqLyBCYWRDaGFyLCAgIC8qIDE4IGRjMiAqLyBCYWRDaGFyLCAgIC8qIDE5IGRjMyAq
LyBCYWRDaGFyLAotICAgIC8qIDIwIGRjNCAqLyBCYWRDaGFyLCAgIC8qIDIxIG5hayAqLyBCYWRD
aGFyLCAgIC8qIDIyIHN5biAqLyBCYWRDaGFyLCAgIC8qIDIzIGV0YiAqLyBCYWRDaGFyLAotICAg
IC8qIDI0IGNhbiAqLyBCYWRDaGFyLCAgIC8qIDI1IGVtICovIEJhZENoYXIsICAgIC8qIDI2IHN1
YiAqLyBCYWRDaGFyLCAgIC8qIDI3IGVzYyAqLyBCYWRDaGFyLAotICAgIC8qIDI4IGZzICovIEJh
ZENoYXIsICAgIC8qIDI5IGdzICovIEJhZENoYXIsICAgIC8qIDMwIHJzICovIEJhZENoYXIsICAg
IC8qIDMxIHVzICovIEJhZENoYXIsCi0gICAgLyogMzIgc3AgKi8gQmFkQ2hhciwgICAgLyogMzMg
ICEgKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDM0ICAiICovIEJhZENoYXIsICAgIC8qIDM1ICAj
ICovIFBhdGhTZWdtZW50RW5kQ2hhciB8IEJhZENoYXIsCi0gICAgLyogMzYgICQgKi8gVXNlcklu
Zm9DaGFyLCAgICAvKiAzNyAgJSAqLyBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2
Q2hhciB8IEJhZENoYXIsCi0gICAgLyogMzggICYgKi8gVXNlckluZm9DaGFyLCAgICAvKiAzOSAg
JyAqLyBVc2VySW5mb0NoYXIsCi0gICAgLyogNDAgICggKi8gVXNlckluZm9DaGFyLCAgICAvKiA0
MSAgKSAqLyBVc2VySW5mb0NoYXIsCi0gICAgLyogNDIgICogKi8gVXNlckluZm9DaGFyLCAgICAv
KiA0MyAgKyAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyLAotICAgIC8qIDQ0ICAsICovIFVz
ZXJJbmZvQ2hhciwKLSAgICAvKiA0NSAgLSAqLyBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwg
SG9zdG5hbWVDaGFyLAotICAgIC8qIDQ2ICAuICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA0NyAgLyAqLyBQYXRoU2VnbWVudEVu
ZENoYXIsCi0gICAgLyogNDggIDAgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3Ru
YW1lQ2hhciB8IElQdjZDaGFyLCAKLSAgICAvKiA0OSAgMSAqLyBTY2hlbWVDaGFyIHwgVXNlcklu
Zm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsICAgIAotICAgIC8qIDUwICAyICovIFNj
aGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAg
LyogNTEgIDMgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQ
djZDaGFyLAotICAgIC8qIDUyICA0ICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0
bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogNTMgIDUgKi8gU2NoZW1lQ2hhciB8IFVzZXJJ
bmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8qIDU0ICA2ICovIFNjaGVt
ZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyog
NTUgIDcgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZD
aGFyLAotICAgIC8qIDU2ICA4ICovIFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFt
ZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogNTcgIDkgKi8gU2NoZW1lQ2hhciB8IFVzZXJJbmZv
Q2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8qIDU4ICA6ICovIFVzZXJJbmZv
Q2hhciB8IElQdjZDaGFyLCAgICAvKiA1OSAgOyAqLyBVc2VySW5mb0NoYXIsCi0gICAgLyogNjAg
IDwgKi8gQmFkQ2hhciwgICAgLyogNjEgID0gKi8gVXNlckluZm9DaGFyLAotICAgIC8qIDYyICA+
ICovIEJhZENoYXIsICAgIC8qIDYzICA/ICovIFBhdGhTZWdtZW50RW5kQ2hhciB8IEJhZENoYXIs
Ci0gICAgLyogNjQgIEAgKi8gMCwKLSAgICAvKiA2NSAgQSAqLyBTY2hlbWVGaXJzdENoYXIgfCBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsICAgIAot
ICAgIC8qIDY2ICBCICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0No
YXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwKLSAgICAvKiA2NyAgQyAqLyBTY2hlbWVGaXJz
dENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNo
YXIsCi0gICAgLyogNjggIEQgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJ
bmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLAotICAgIC8qIDY5ICBFICovIFNjaGVt
ZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJ
UHY2Q2hhciwKLSAgICAvKiA3MCAgRiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwg
VXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogNzEgIEcgKi8g
U2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hh
ciwKLSAgICAvKiA3MiAgSCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlcklu
Zm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDczICBJICovIFNjaGVtZUZpcnN0Q2hhciB8
IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogNzQgIEog
Ki8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1l
Q2hhciwKLSAgICAvKiA3NSAgSyAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNl
ckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDc2ICBMICovIFNjaGVtZUZpcnN0Q2hh
ciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogNzcg
IE0gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3Ru
YW1lQ2hhciwKLSAgICAvKiA3OCAgTiAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwg
VXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDc5ICBPICovIFNjaGVtZUZpcnN0
Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyog
ODAgIFAgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhv
c3RuYW1lQ2hhciwKLSAgICAvKiA4MSAgUSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFy
IHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDgyICBSICovIFNjaGVtZUZp
cnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAg
LyogODMgIFMgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8
IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4NCAgVCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVD
aGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDg1ICBVICovIFNjaGVt
ZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0g
ICAgLyogODYgIFYgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hh
ciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA4NyAgVyAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hl
bWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDg4ICBYICovIFNj
aGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIs
IAotICAgIC8qIDg5ICBZICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5m
b0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogOTAgIFogKi8gU2NoZW1lRmlyc3RDaGFyIHwg
U2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiA5MSAgWyAq
LyAwLAotICAgIC8qIDkyICBcICovIDAsICAgIC8qIDkzICBdICovIDAsCi0gICAgLyogOTQgIF4g
Ki8gMCwKLSAgICAvKiA5NSAgXyAqLyBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAg
LyogOTYgIGAgKi8gMCwKLSAgICAvKiA5NyAgYSAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVD
aGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAgLyogOTgg
IGIgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3Ru
YW1lQ2hhciB8IElQdjZDaGFyLCAKLSAgICAvKiA5OSAgYyAqLyBTY2hlbWVGaXJzdENoYXIgfCBT
Y2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyIHwgSVB2NkNoYXIsCi0gICAg
LyogMTAwICBkICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hhciwgCi0gICAgLyogMTAxICBlICovIFNjaGVtZUZpcnN0
Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIgfCBJUHY2Q2hh
ciwKLSAgICAvKiAxMDIgIGYgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJ
bmZvQ2hhciB8IEhvc3RuYW1lQ2hhciB8IElQdjZDaGFyLCAKLSAgICAvKiAxMDMgIGcgKi8gU2No
ZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwK
LSAgICAvKiAxMDQgIGggKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZv
Q2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTA1ICBpICovIFNjaGVtZUZpcnN0Q2hhciB8
IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTA2ICBq
ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFt
ZUNoYXIsIAotICAgIC8qIDEwNyAgayAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwg
VXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDEwOCAgbCAqLyBTY2hlbWVGaXJz
dENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAv
KiAxMDkgIG0gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8
IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMTAgIG4gKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1l
Q2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAgLyogMTExICBvICovIFNj
aGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIs
Ci0gICAgLyogMTEyICBwICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5m
b0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDExMyAgcSAqLyBTY2hlbWVGaXJzdENoYXIg
fCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFyLAotICAgIC8qIDExNCAg
ciAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5h
bWVDaGFyLCAKLSAgICAvKiAxMTUgIHMgKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8
IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMTYgIHQgKi8gU2NoZW1lRmly
c3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwgCi0gICAg
LyogMTE3ICB1ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVtZUNoYXIgfCBVc2VySW5mb0NoYXIg
fCBIb3N0bmFtZUNoYXIsCi0gICAgLyogMTE4ICB2ICovIFNjaGVtZUZpcnN0Q2hhciB8IFNjaGVt
ZUNoYXIgfCBVc2VySW5mb0NoYXIgfCBIb3N0bmFtZUNoYXIsIAotICAgIC8qIDExOSAgdyAqLyBT
Y2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlckluZm9DaGFyIHwgSG9zdG5hbWVDaGFy
LAotICAgIC8qIDEyMCAgeCAqLyBTY2hlbWVGaXJzdENoYXIgfCBTY2hlbWVDaGFyIHwgVXNlcklu
Zm9DaGFyIHwgSG9zdG5hbWVDaGFyLCAKLSAgICAvKiAxMjEgIHkgKi8gU2NoZW1lRmlyc3RDaGFy
IHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3RuYW1lQ2hhciwKLSAgICAvKiAxMjIg
IHogKi8gU2NoZW1lRmlyc3RDaGFyIHwgU2NoZW1lQ2hhciB8IFVzZXJJbmZvQ2hhciB8IEhvc3Ru
YW1lQ2hhciwgCi0gICAgLyogMTIzICB7ICovIDAsCi0gICAgLyogMTI0ICB8ICovIDAsICAgLyog
MTI1ICB9ICovIDAsICAgLyogMTI2ICB+ICovIFVzZXJJbmZvQ2hhciwgICAvKiAxMjcgZGVsICov
IEJhZENoYXIsCi0gICAgLyogMTI4ICovIEJhZENoYXIsIC8qIDEyOSAqLyBCYWRDaGFyLCAvKiAx
MzAgKi8gQmFkQ2hhciwgLyogMTMxICovIEJhZENoYXIsCi0gICAgLyogMTMyICovIEJhZENoYXIs
IC8qIDEzMyAqLyBCYWRDaGFyLCAvKiAxMzQgKi8gQmFkQ2hhciwgLyogMTM1ICovIEJhZENoYXIs
Ci0gICAgLyogMTM2ICovIEJhZENoYXIsIC8qIDEzNyAqLyBCYWRDaGFyLCAvKiAxMzggKi8gQmFk
Q2hhciwgLyogMTM5ICovIEJhZENoYXIsCi0gICAgLyogMTQwICovIEJhZENoYXIsIC8qIDE0MSAq
LyBCYWRDaGFyLCAvKiAxNDIgKi8gQmFkQ2hhciwgLyogMTQzICovIEJhZENoYXIsCi0gICAgLyog
MTQ0ICovIEJhZENoYXIsIC8qIDE0NSAqLyBCYWRDaGFyLCAvKiAxNDYgKi8gQmFkQ2hhciwgLyog
MTQ3ICovIEJhZENoYXIsCi0gICAgLyogMTQ4ICovIEJhZENoYXIsIC8qIDE0OSAqLyBCYWRDaGFy
LCAvKiAxNTAgKi8gQmFkQ2hhciwgLyogMTUxICovIEJhZENoYXIsCi0gICAgLyogMTUyICovIEJh
ZENoYXIsIC8qIDE1MyAqLyBCYWRDaGFyLCAvKiAxNTQgKi8gQmFkQ2hhciwgLyogMTU1ICovIEJh
ZENoYXIsCi0gICAgLyogMTU2ICovIEJhZENoYXIsIC8qIDE1NyAqLyBCYWRDaGFyLCAvKiAxNTgg
Ki8gQmFkQ2hhciwgLyogMTU5ICovIEJhZENoYXIsCi0gICAgLyogMTYwICovIEJhZENoYXIsIC8q
IDE2MSAqLyBCYWRDaGFyLCAvKiAxNjIgKi8gQmFkQ2hhciwgLyogMTYzICovIEJhZENoYXIsCi0g
ICAgLyogMTY0ICovIEJhZENoYXIsIC8qIDE2NSAqLyBCYWRDaGFyLCAvKiAxNjYgKi8gQmFkQ2hh
ciwgLyogMTY3ICovIEJhZENoYXIsCi0gICAgLyogMTY4ICovIEJhZENoYXIsIC8qIDE2OSAqLyBC
YWRDaGFyLCAvKiAxNzAgKi8gQmFkQ2hhciwgLyogMTcxICovIEJhZENoYXIsCi0gICAgLyogMTcy
ICovIEJhZENoYXIsIC8qIDE3MyAqLyBCYWRDaGFyLCAvKiAxNzQgKi8gQmFkQ2hhciwgLyogMTc1
ICovIEJhZENoYXIsCi0gICAgLyogMTc2ICovIEJhZENoYXIsIC8qIDE3NyAqLyBCYWRDaGFyLCAv
KiAxNzggKi8gQmFkQ2hhciwgLyogMTc5ICovIEJhZENoYXIsCi0gICAgLyogMTgwICovIEJhZENo
YXIsIC8qIDE4MSAqLyBCYWRDaGFyLCAvKiAxODIgKi8gQmFkQ2hhciwgLyogMTgzICovIEJhZENo
YXIsCi0gICAgLyogMTg0ICovIEJhZENoYXIsIC8qIDE4NSAqLyBCYWRDaGFyLCAvKiAxODYgKi8g
QmFkQ2hhciwgLyogMTg3ICovIEJhZENoYXIsCi0gICAgLyogMTg4ICovIEJhZENoYXIsIC8qIDE4
OSAqLyBCYWRDaGFyLCAvKiAxOTAgKi8gQmFkQ2hhciwgLyogMTkxICovIEJhZENoYXIsCi0gICAg
LyogMTkyICovIEJhZENoYXIsIC8qIDE5MyAqLyBCYWRDaGFyLCAvKiAxOTQgKi8gQmFkQ2hhciwg
LyogMTk1ICovIEJhZENoYXIsCi0gICAgLyogMTk2ICovIEJhZENoYXIsIC8qIDE5NyAqLyBCYWRD
aGFyLCAvKiAxOTggKi8gQmFkQ2hhciwgLyogMTk5ICovIEJhZENoYXIsCi0gICAgLyogMjAwICov
IEJhZENoYXIsIC8qIDIwMSAqLyBCYWRDaGFyLCAvKiAyMDIgKi8gQmFkQ2hhciwgLyogMjAzICov
IEJhZENoYXIsCi0gICAgLyogMjA0ICovIEJhZENoYXIsIC8qIDIwNSAqLyBCYWRDaGFyLCAvKiAy
MDYgKi8gQmFkQ2hhciwgLyogMjA3ICovIEJhZENoYXIsCi0gICAgLyogMjA4ICovIEJhZENoYXIs
IC8qIDIwOSAqLyBCYWRDaGFyLCAvKiAyMTAgKi8gQmFkQ2hhciwgLyogMjExICovIEJhZENoYXIs
Ci0gICAgLyogMjEyICovIEJhZENoYXIsIC8qIDIxMyAqLyBCYWRDaGFyLCAvKiAyMTQgKi8gQmFk
Q2hhciwgLyogMjE1ICovIEJhZENoYXIsCi0gICAgLyogMjE2ICovIEJhZENoYXIsIC8qIDIxNyAq
LyBCYWRDaGFyLCAvKiAyMTggKi8gQmFkQ2hhciwgLyogMjE5ICovIEJhZENoYXIsCi0gICAgLyog
MjIwICovIEJhZENoYXIsIC8qIDIyMSAqLyBCYWRDaGFyLCAvKiAyMjIgKi8gQmFkQ2hhciwgLyog
MjIzICovIEJhZENoYXIsCi0gICAgLyogMjI0ICovIEJhZENoYXIsIC8qIDIyNSAqLyBCYWRDaGFy
LCAvKiAyMjYgKi8gQmFkQ2hhciwgLyogMjI3ICovIEJhZENoYXIsCi0gICAgLyogMjI4ICovIEJh
ZENoYXIsIC8qIDIyOSAqLyBCYWRDaGFyLCAvKiAyMzAgKi8gQmFkQ2hhciwgLyogMjMxICovIEJh
ZENoYXIsCi0gICAgLyogMjMyICovIEJhZENoYXIsIC8qIDIzMyAqLyBCYWRDaGFyLCAvKiAyMzQg
Ki8gQmFkQ2hhciwgLyogMjM1ICovIEJhZENoYXIsCi0gICAgLyogMjM2ICovIEJhZENoYXIsIC8q
IDIzNyAqLyBCYWRDaGFyLCAvKiAyMzggKi8gQmFkQ2hhciwgLyogMjM5ICovIEJhZENoYXIsCi0g
ICAgLyogMjQwICovIEJhZENoYXIsIC8qIDI0MSAqLyBCYWRDaGFyLCAvKiAyNDIgKi8gQmFkQ2hh
ciwgLyogMjQzICovIEJhZENoYXIsCi0gICAgLyogMjQ0ICovIEJhZENoYXIsIC8qIDI0NSAqLyBC
YWRDaGFyLCAvKiAyNDYgKi8gQmFkQ2hhciwgLyogMjQ3ICovIEJhZENoYXIsCi0gICAgLyogMjQ4
ICovIEJhZENoYXIsIC8qIDI0OSAqLyBCYWRDaGFyLCAvKiAyNTAgKi8gQmFkQ2hhciwgLyogMjUx
ICovIEJhZENoYXIsCi0gICAgLyogMjUyICovIEJhZENoYXIsIC8qIDI1MyAqLyBCYWRDaGFyLCAv
KiAyNTQgKi8gQmFkQ2hhciwgLyogMjU1ICovIEJhZENoYXIKLX07Ci19Ci0KLWVudW0gUGVyY2Vu
dEVuY29kZUNoYXJhY3RlckNsYXNzIHsKLSAgICAvLyBDbGFzcyBuYW1lcyBtYXRjaCB0aGUgVVJM
IFN0YW5kYXJkOyBlYWNoIGNsYXNzIGlzIGEgc3VwZXJzZXQgb2YgdGhlIHByZXZpb3VzIG9uZS4K
LSAgICBQZXJjZW50RW5jb2RlU2ltcGxlID0gMjU1LAotICAgIFBlcmNlbnRFbmNvZGVEZWZhdWx0
ID0gMTI3LAotICAgIFBlcmNlbnRFbmNvZGVQYXNzd29yZCA9IDYzLAotICAgIFBlcmNlbnRFbmNv
ZGVVc2VybmFtZSA9IDMxLAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGVyY2Vu
dEVuY29kZUNsYXNzVGFibGVbMjU2XSA9IHsKLSAgICAvKiAwIG51bCAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAgICAvKiAxIHNvaCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAyIHN0eCAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAzIGV0eCAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LAotICAgIC8qIDQgZW90ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDUgZW5xICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDYgYWNrICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAg
IC8qIDcgYmVsICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsCi0gICAgLyogOCBicyAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAgICAgLyogOSBodCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAgLyog
MTAgbmwgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgICAgLyogMTEgdnQgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwKLSAgICAvKiAxMiBucCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAxMyBj
ciAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgICAvKiAxNCBzbyAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAgICAvKiAxNSBzaSAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDE2IGRsZSAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgIC8qIDE3IGRjMSAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAgIC8qIDE4IGRjMiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgIC8qIDE5IGRjMyAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDIwIGRjNCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAg
IC8qIDIxIG5hayAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgIC8qIDIyIHN5biAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAgIC8qIDIzIGV0YiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8q
IDI0IGNhbiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgIC8qIDI1IGVtICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsICAgIC8qIDI2IHN1YiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAgIC8qIDI3IGVz
YyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLAotICAgIC8qIDI4IGZzICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsICAgIC8qIDI5IGdzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDMwIHJzICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsICAgIC8qIDMxIHVzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
Ci0gICAgLyogMzIgc3AgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogMzMgICEgKi8g
MCwKLSAgICAvKiAzNCAgIiAqLyBQZXJjZW50RW5jb2RlRGVmYXVsdCwKLSAgICAvKiAzNSAgIyAq
LyBQZXJjZW50RW5jb2RlRGVmYXVsdCwKLSAgICAvKiAzNiAgJCAqLyAwLAotICAgIC8qIDM3ICAl
ICovIDAsCi0gICAgLyogMzggICYgKi8gMCwKLSAgICAvKiAzOSAgJyAqLyAwLAotICAgIC8qIDQw
ICAoICovIDAsCi0gICAgLyogNDEgICkgKi8gMCwKLSAgICAvKiA0MiAgKiAqLyAwLAotICAgIC8q
IDQzICArICovIDAsCi0gICAgLyogNDQgICwgKi8gMCwKLSAgICAvKiA0NSAgLSAqLyAwLAotICAg
IC8qIDQ2ICAuICovIDAsCi0gICAgLyogNDcgIC8gKi8gUGVyY2VudEVuY29kZVBhc3N3b3JkLAot
ICAgIC8qIDQ4ICAwICovIDAsICAgIC8qIDQ5ICAxICovIDAsICAgIC8qIDUwICAyICovIDAsICAg
IC8qIDUxICAzICovIDAsCi0gICAgLyogNTIgIDQgKi8gMCwgICAgLyogNTMgIDUgKi8gMCwgICAg
LyogNTQgIDYgKi8gMCwgICAgLyogNTUgIDcgKi8gMCwKLSAgICAvKiA1NiAgOCAqLyAwLCAgICAv
KiA1NyAgOSAqLyAwLAotICAgIC8qIDU4ICA6ICovIFBlcmNlbnRFbmNvZGVVc2VybmFtZSwKLSAg
ICAvKiA1OSAgOyAqLyAwLAotICAgIC8qIDYwICA8ICovIFBlcmNlbnRFbmNvZGVEZWZhdWx0LAot
ICAgIC8qIDYxICA9ICovIDAsCi0gICAgLyogNjIgID4gKi8gUGVyY2VudEVuY29kZURlZmF1bHQs
Ci0gICAgLyogNjMgID8gKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogNjQgIEAgKi8g
UGVyY2VudEVuY29kZVBhc3N3b3JkLAotICAgIC8qIDY1ICBBICovIDAsICAgIC8qIDY2ICBCICov
IDAsICAgIC8qIDY3ICBDICovIDAsICAgIC8qIDY4ICBEICovIDAsCi0gICAgLyogNjkgIEUgKi8g
MCwgICAgLyogNzAgIEYgKi8gMCwgICAgLyogNzEgIEcgKi8gMCwgICAgLyogNzIgIEggKi8gMCwK
LSAgICAvKiA3MyAgSSAqLyAwLCAgICAvKiA3NCAgSiAqLyAwLCAgICAvKiA3NSAgSyAqLyAwLCAg
ICAvKiA3NiAgTCAqLyAwLAotICAgIC8qIDc3ICBNICovIDAsICAgIC8qIDc4ICBOICovIDAsICAg
IC8qIDc5ICBPICovIDAsICAgIC8qIDgwICBQICovIDAsCi0gICAgLyogODEgIFEgKi8gMCwgICAg
LyogODIgIFIgKi8gMCwgICAgLyogODMgIFMgKi8gMCwgICAgLyogODQgIFQgKi8gMCwKLSAgICAv
KiA4NSAgVSAqLyAwLCAgICAvKiA4NiAgViAqLyAwLCAgICAvKiA4NyAgVyAqLyAwLCAgICAvKiA4
OCAgWCAqLyAwLAotICAgIC8qIDg5ICBZICovIDAsICAgIC8qIDkwICBaICovIDAsCi0gICAgLyog
OTEgIFsgKi8gMCwKLSAgICAvKiA5MiAgXCAqLyBQZXJjZW50RW5jb2RlUGFzc3dvcmQsCi0gICAg
LyogOTMgIF0gKi8gMCwKLSAgICAvKiA5NCAgXiAqLyAwLAotICAgIC8qIDk1ICBfICovIDAsCi0g
ICAgLyogOTYgIGAgKi8gUGVyY2VudEVuY29kZURlZmF1bHQsCi0gICAgLyogOTcgIGEgKi8gMCwg
ICAgLyogOTggIGIgKi8gMCwgICAgLyogOTkgIGMgKi8gMCwgICAgLyogMTAwICBkICovIDAsCi0g
ICAgLyogMTAxICBlICovIDAsICAgIC8qIDEwMiAgZiAqLyAwLCAgICAvKiAxMDMgIGcgKi8gMCwg
ICAgLyogMTA0ICBoICovIDAsCi0gICAgLyogMTA1ICBpICovIDAsICAgIC8qIDEwNiAgaiAqLyAw
LCAgICAvKiAxMDcgIGsgKi8gMCwgICAgLyogMTA4ICBsICovIDAsCi0gICAgLyogMTA5ICBtICov
IDAsICAgIC8qIDExMCAgbiAqLyAwLCAgICAvKiAxMTEgIG8gKi8gMCwgICAgLyogMTEyICBwICov
IDAsCi0gICAgLyogMTEzICBxICovIDAsICAgIC8qIDExNCAgciAqLyAwLCAgICAvKiAxMTUgIHMg
Ki8gMCwgICAgLyogMTE2ICB0ICovIDAsCi0gICAgLyogMTE3ICB1ICovIDAsICAgIC8qIDExOCAg
diAqLyAwLCAgICAvKiAxMTkgIHcgKi8gMCwgICAgLyogMTIwICB4ICovIDAsCi0gICAgLyogMTIx
ICB5ICovIDAsICAgIC8qIDEyMiAgeiAqLyAwLAotICAgIC8qIDEyMyAgeyAqLyAwLAotICAgIC8q
IDEyNCAgfCAqLyAwLAotICAgIC8qIDEyNSAgfSAqLyAwLAotICAgIC8qIDEyNiAgfiAqLyAwLAot
ICAgIC8qIDEyNyBkZWwgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxMjggKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMTI5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEzMCAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxMzEgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAg
ICAvKiAxMzIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTMzICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDEzNCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxMzUgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwKLSAgICAvKiAxMzYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTM3ICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDEzOCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAx
MzkgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNDAgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMTQxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0MiAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAxNDMgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNDQgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQ1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE0
NiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNDcgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwK
LSAgICAvKiAxNDggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTQ5ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDE1MCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNTEgKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNTIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTUz
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE1NCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAxNTUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNTYgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMTU3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE1OCAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAxNTkgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNjAg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTYxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDE2MiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNjMgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwKLSAgICAvKiAxNjQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTY1ICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDE2NiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNjcgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNjggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MTY5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3MCAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAxNzEgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxNzIgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMTczICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE3NCAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAxNzUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAx
NzYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTc3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDE3OCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxNzkgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwKLSAgICAvKiAxODAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTgxICovIFBlcmNl
bnRFbmNvZGVTaW1wbGUsIC8qIDE4MiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxODMgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxODQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMTg1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE4NiAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAxODcgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAxODggKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwgLyogMTg5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5MCAqLyBQ
ZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTEgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAv
KiAxOTIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTkzICovIFBlcmNlbnRFbmNvZGVTaW1w
bGUsIC8qIDE5NCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTUgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwKLSAgICAvKiAxOTYgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMTk3ICovIFBl
cmNlbnRFbmNvZGVTaW1wbGUsIC8qIDE5OCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAxOTkg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMDAgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwgLyogMjAxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwMiAqLyBQZXJjZW50RW5jb2Rl
U2ltcGxlLCAvKiAyMDMgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMDQgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwgLyogMjA1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIwNiAq
LyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMDcgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAg
ICAvKiAyMDggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjA5ICovIFBlcmNlbnRFbmNvZGVT
aW1wbGUsIC8qIDIxMCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMTEgKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwKLSAgICAvKiAyMTIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjEzICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIxNCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAy
MTUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMTYgKi8gUGVyY2VudEVuY29kZVNp
bXBsZSwgLyogMjE3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIxOCAqLyBQZXJjZW50RW5j
b2RlU2ltcGxlLCAvKiAyMTkgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMjAgKi8g
UGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjIxICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIy
MiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMjMgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwK
LSAgICAvKiAyMjQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjI1ICovIFBlcmNlbnRFbmNv
ZGVTaW1wbGUsIC8qIDIyNiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMjcgKi8gUGVyY2Vu
dEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMjggKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjI5
ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzMCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAv
KiAyMzEgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMzIgKi8gUGVyY2VudEVuY29k
ZVNpbXBsZSwgLyogMjMzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDIzNCAqLyBQZXJjZW50
RW5jb2RlU2ltcGxlLCAvKiAyMzUgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyMzYg
Ki8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjM3ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8q
IDIzOCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyMzkgKi8gUGVyY2VudEVuY29kZVNpbXBs
ZSwKLSAgICAvKiAyNDAgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjQxICovIFBlcmNlbnRF
bmNvZGVTaW1wbGUsIC8qIDI0MiAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNDMgKi8gUGVy
Y2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyNDQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyog
MjQ1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI0NiAqLyBQZXJjZW50RW5jb2RlU2ltcGxl
LCAvKiAyNDcgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAyNDggKi8gUGVyY2VudEVu
Y29kZVNpbXBsZSwgLyogMjQ5ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1MCAqLyBQZXJj
ZW50RW5jb2RlU2ltcGxlLCAvKiAyNTEgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwKLSAgICAvKiAy
NTIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjUzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUs
IC8qIDI1NCAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAyNTUgKi8gUGVyY2VudEVuY29kZVNp
bXBsZQotfTsKLQotc3RhdGljIGlubGluZSBib29sIGlzU2NoZW1lRmlyc3RDaGFyKFVDaGFyIGMp
IHsgcmV0dXJuIGMgPD0gMHhmZiAmJiAoVVJMSW50ZXJuYWw6OmNoYXJhY3RlckNsYXNzVGFibGVb
Y10gJiBTY2hlbWVGaXJzdENoYXIpOyB9Ci1zdGF0aWMgaW5saW5lIGJvb2wgaXNTY2hlbWVDaGFy
KFVDaGFyIGMpIHsgcmV0dXJuIGMgPD0gMHhmZiAmJiAoVVJMSW50ZXJuYWw6OmNoYXJhY3RlckNs
YXNzVGFibGVbY10gJiBTY2hlbWVDaGFyKTsgfQotc3RhdGljIGlubGluZSBib29sIGlzQmFkQ2hh
cih1bnNpZ25lZCBjaGFyIGMpIHsgcmV0dXJuIFVSTEludGVybmFsOjpjaGFyYWN0ZXJDbGFzc1Rh
YmxlW2NdICYgQmFkQ2hhcjsgfQotc3RhdGljIGlubGluZSBib29sIGlzVGFiTmV3bGluZShVQ2hh
ciBjKSB7IHJldHVybiBjIDw9IDB4ZmYgJiYgKFVSTEludGVybmFsOjpjaGFyYWN0ZXJDbGFzc1Rh
YmxlW2NdICYgVGFiTmV3bGluZSk7IH0KLQotU3RyaW5nIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXMoY29uc3QgU3RyaW5nJiBub3RFbmNvZGVkU3RyaW5nLCBQZXJjZW50RW5jb2RlQ2hhcmFj
dGVyQ2xhc3Mgd2hhdFRvRW5jb2RlKTsKLQogLy8gQ29waWVzIHRoZSBzb3VyY2UgdG8gdGhlIGRl
c3RpbmF0aW9uLCBhc3N1bWluZyBhbGwgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzIGFyZQogLy8gQVND
SUkuIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBiZSBsYXJnZSBlbm91Z2guIE51bGwgY2hh
cmFjdGVycyBhcmUgYWxsb3dlZAogLy8gaW4gdGhlIHNvdXJjZSBzdHJpbmcsIGFuZCBubyBhdHRl
bXB0IGlzIG1hZGUgdG8gbnVsbC10ZXJtaW5hdGUgdGhlIHJlc3VsdC4KQEAgLTY1MSwxNyArMzgx
LDE3IEBAIGJvb2wgVVJMOjpzZXRQcm90b2NvbChjb25zdCBTdHJpbmcmIHMpCiAgICAgLy8gRmly
ZWZveCBhbmQgSUUgcmVtb3ZlIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0ICc6Jy4KICAgICBz
aXplX3Qgc2VwYXJhdG9yUG9zaXRpb24gPSBzLmZpbmQoJzonKTsKICAgICBTdHJpbmcgbmV3UHJv
dG9jb2wgPSBzLnN1YnN0cmluZygwLCBzZXBhcmF0b3JQb3NpdGlvbik7Ci0KLSAgICBpZiAoIWlz
VmFsaWRQcm90b2NvbChuZXdQcm90b2NvbCkpCisgICAgYXV0byBjYW5vbmljYWxpemVkID0gVVJM
UGFyc2VyOjptYXliZUNhbm9uaWNhbGl6ZVNjaGVtZShuZXdQcm90b2NvbCk7CisgICAgaWYgKCFj
YW5vbmljYWxpemVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW1faXNWYWxp
ZCkgewotICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobmV3UHJvdG9jb2wsICI6
IiwgbV9zdHJpbmcpKTsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKCpjYW5v
bmljYWxpemVkLCAiOiIsIG1fc3RyaW5nKSk7CiAgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3Vs
dCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBVUkxQYXJzZXIgcGFyc2Vy
KG1ha2VTdHJpbmcobmV3UHJvdG9jb2wsIG1fc3RyaW5nLnN1YnN0cmluZyhtX3NjaGVtZUVuZCkp
KTsKKyAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcoKmNhbm9uaWNhbGl6ZWQsIG1fc3Ry
aW5nLnN1YnN0cmluZyhtX3NjaGVtZUVuZCkpKTsKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQo
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTc5NSw2ICs1MjUsMzIgQEAgdm9pZCBVUkw6OnNl
dEhvc3RBbmRQb3J0KGNvbnN0IFN0cmluZyYgaAogICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgp
OwogfQogCitzdGF0aWMgU3RyaW5nIHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKGNvbnN0IFN0cmlu
ZyYgaW5wdXQsIGJvb2woKnNob3VsZEVuY29kZSkoVUNoYXIpKQoreworICAgIGF1dG8gZW5jb2Rl
ID0gW3Nob3VsZEVuY29kZV0gKGNvbnN0IFN0cmluZyYgaW5wdXQpIHsKKyAgICAgICAgQ1N0cmlu
ZyB1dGY4ID0gaW5wdXQudXRmOCgpOworICAgICAgICBhdXRvKiBkYXRhID0gdXRmOC5kYXRhKCk7
CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYXV0byBsZW5ndGggPSB1
dGY4Lmxlbmd0aCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbGVuZ3RoOyBq
KyspIHsKKyAgICAgICAgICAgIGF1dG8gYyA9IGRhdGFbal07CisgICAgICAgICAgICBpZiAoc2hv
dWxkRW5jb2RlKGMpKSB7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyUnKTsKKyAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChj
KSk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobG93ZXJOaWJibGVUb0FTQ0lJSGV4
RGlnaXQoYykpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGgoKTsgKytp
KSB7CisgICAgICAgIGlmIChVTkxJS0VMWShzaG91bGRFbmNvZGUoaW5wdXRbaV0pKSkKKyAgICAg
ICAgICAgIHJldHVybiBlbmNvZGUoaW5wdXQpOworICAgIH0KKyAgICByZXR1cm4gaW5wdXQ7Cit9
CisKIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0cmluZyYgdXNlcikKIHsKICAgICBpZiAoIW1f
aXNWYWxpZCkKQEAgLTgwNSwxMyArNTYxLDEzIEBAIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0
cmluZyYgdXNlcikKIAogICAgIHVuc2lnbmVkIGVuZCA9IG1fdXNlckVuZDsKICAgICBpZiAoIXVz
ZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFN0cmluZyB1ID0gZW5jb2RlV2l0aFVSTEVzY2FwZVNl
cXVlbmNlcyh1c2VyLCBQZXJjZW50RW5jb2RlVXNlcm5hbWUpOworICAgICAgICBTdHJpbmcgdSA9
IHBlcmNlbnRFbmNvZGVDaGFyYWN0ZXJzKHVzZXIsIFVSTFBhcnNlcjo6aXNJblVzZXJJbmZvRW5j
b2RlU2V0KTsKICAgICAgICAgaWYgKG1fdXNlclN0YXJ0ID09IG1fc2NoZW1lRW5kICsgMSkKICAg
ICAgICAgICAgIHUgPSAiLy8iICsgdTsKICAgICAgICAgLy8gQWRkICdAJyBpZiB3ZSBkaWRuJ3Qg
aGF2ZSBvbmUgYmVmb3JlLgogICAgICAgICBpZiAoZW5kID09IG1faG9zdEVuZCB8fCAoZW5kID09
IG1fcGFzc3dvcmRFbmQgJiYgbV9zdHJpbmdbZW5kXSAhPSAnQCcpKQogICAgICAgICAgICAgdS5h
cHBlbmQoJ0AnKTsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3RyaW5n
LmxlZnQobV91c2VyU3RhcnQpLCB1LCBtX3N0cmluZy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAg
ICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcoU3RyaW5nVmlldyhtX3N0cmluZykubGVmdCht
X3VzZXJTdGFydCksIHUsIFN0cmluZ1ZpZXcobV9zdHJpbmcpLnN1YnN0cmluZyhlbmQpKSk7CiAg
ICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IFJlbW92ZSAnQCcgaWYgd2Ugbm93IGhhdmUgbmVpdGhlciB1c2VyIG5vciBwYXNzd29yZC4KQEAg
LTgxOSw3ICs1NzUsNyBAQCB2b2lkIFVSTDo6c2V0VXNlcihjb25zdCBTdHJpbmcmIHVzZXIpCiAg
ICAgICAgICAgICBlbmQgKz0gMTsKICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwYXJzZSBp
biB0aGUgZXh0cmVtZWx5IGNvbW1vbiBjYXNlIHdoZXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gbWFr
ZSBhIGNoYW5nZS4KICAgICAgICAgaWYgKG1fdXNlclN0YXJ0ICE9IGVuZCkgewotICAgICAgICAg
ICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQobV91c2VyU3RhcnQp
LCBtX3N0cmluZy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICAgICAgVVJMUGFyc2VyIHBhcnNl
cihtYWtlU3RyaW5nKFN0cmluZ1ZpZXcobV9zdHJpbmcpLmxlZnQobV91c2VyU3RhcnQpLCBTdHJp
bmdWaWV3KG1fc3RyaW5nKS5zdWJzdHJpbmcoZW5kKSkpOwogICAgICAgICAgICAgKnRoaXMgPSBw
YXJzZXIucmVzdWx0KCk7CiAgICAgICAgIH0KICAgICB9CkBAIC04MzIsMTMgKzU4OCwxMyBAQCB2
b2lkIFVSTDo6c2V0UGFzcyhjb25zdCBTdHJpbmcmIHBhc3N3b3JkCiAKICAgICB1bnNpZ25lZCBl
bmQgPSBtX3Bhc3N3b3JkRW5kOwogICAgIGlmICghcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIFN0cmluZyBwID0gIjoiICsgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXNzd29y
ZCwgUGVyY2VudEVuY29kZVBhc3N3b3JkKSArICJAIjsKKyAgICAgICAgU3RyaW5nIHAgPSAiOiIg
KyBwZXJjZW50RW5jb2RlQ2hhcmFjdGVycyhwYXNzd29yZCwgVVJMUGFyc2VyOjppc0luVXNlcklu
Zm9FbmNvZGVTZXQpICsgIkAiOwogICAgICAgICBpZiAobV91c2VyRW5kID09IG1fc2NoZW1lRW5k
ICsgMSkKICAgICAgICAgICAgIHAgPSAiLy8iICsgcDsKICAgICAgICAgLy8gRWF0IHRoZSBleGlz
dGluZyAnQCcgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGFkZCBvdXIgb3duLgogICAgICAgICBpZiAo
ZW5kICE9IG1faG9zdEVuZCAmJiBtX3N0cmluZ1tlbmRdID09ICdAJykKICAgICAgICAgICAgIGVu
ZCArPSAxOwotICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVm
dChtX3VzZXJFbmQpLCBwLCBtX3N0cmluZy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICBVUkxQ
YXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcoU3RyaW5nVmlldyhtX3N0cmluZykubGVmdChtX3VzZXJF
bmQpLCBwLCBTdHJpbmdWaWV3KG1fc3RyaW5nKS5zdWJzdHJpbmcoZW5kKSkpOwogICAgICAgICAq
dGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBSZW1vdmUg
J0AnIGlmIHdlIG5vdyBoYXZlIG5laXRoZXIgdXNlciBub3IgcGFzc3dvcmQuCkBAIC04NDYsNyAr
NjAyLDcgQEAgdm9pZCBVUkw6OnNldFBhc3MoY29uc3QgU3RyaW5nJiBwYXNzd29yZAogICAgICAg
ICAgICAgZW5kICs9IDE7CiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcGFyc2UgaW4gdGhl
IGV4dHJlbWVseSBjb21tb24gY2FzZSB3aGVyZSB3ZSBhcmUgbm90IGdvaW5nIHRvIG1ha2UgYSBj
aGFuZ2UuCiAgICAgICAgIGlmIChtX3VzZXJFbmQgIT0gZW5kKSB7Ci0gICAgICAgICAgICBVUkxQ
YXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3VzZXJFbmQpLCBtX3N0cmlu
Zy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3Ry
aW5nKFN0cmluZ1ZpZXcobV9zdHJpbmcpLmxlZnQobV91c2VyRW5kKSwgU3RyaW5nVmlldyhtX3N0
cmluZykuc3Vic3RyaW5nKGVuZCkpKTsKICAgICAgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3Vs
dCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtODkxLDEwICs2NDcsMTAgQEAgdm9pZCBVUkw6OnNl
dFF1ZXJ5KGNvbnN0IFN0cmluZyYgcXVlcnkpCiAgICAgLy8gYWNjZXNzIHRvIHRoZSBkb2N1bWVu
dCBpbiB0aGlzIGZ1bmN0aW9uLgogICAgIC8vIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2MTE3Ngog
ICAgIGlmICgocXVlcnkuaXNFbXB0eSgpIHx8IHF1ZXJ5WzBdICE9ICc/JykgJiYgIXF1ZXJ5Lmlz
TnVsbCgpKSB7Ci0gICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0cmluZyhtX3N0cmluZy5s
ZWZ0KG1fcGF0aEVuZCksICI/IiwgcXVlcnksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3F1ZXJ5RW5k
KSkpOworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcoU3RyaW5nVmlldyhtX3N0
cmluZykubGVmdChtX3BhdGhFbmQpLCAiPyIsIHF1ZXJ5LCBTdHJpbmdWaWV3KG1fc3RyaW5nKS5z
dWJzdHJpbmcobV9xdWVyeUVuZCkpKTsKICAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3Ry
aW5nLmxlZnQobV9wYXRoRW5kKSwgcXVlcnksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3F1ZXJ5RW5k
KSkpOworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcoU3RyaW5nVmlldyhtX3N0
cmluZykubGVmdChtX3BhdGhFbmQpLCBxdWVyeSwgU3RyaW5nVmlldyhtX3N0cmluZykuc3Vic3Ry
aW5nKG1fcXVlcnlFbmQpKSk7CiAgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogICAg
IH0KIApAQCAtOTA1LDEzICs2NjEsMTQgQEAgdm9pZCBVUkw6OnNldFBhdGgoY29uc3QgU3RyaW5n
JiBzKQogICAgIGlmICghbV9pc1ZhbGlkKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhN
RTogZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBl
ICcjJyBhbmQgJz8nLCBzbyBmcmFnbWVudCBhbmQgcXVlcnkgcGFydHMKLSAgICAvLyBtYXkgYmUg
aW5hZHZlcnRlbnRseSBhZmZlY3RlZC4KICAgICBTdHJpbmcgcGF0aCA9IHM7CiAgICAgaWYgKHBh
dGguaXNFbXB0eSgpIHx8IHBhdGhbMF0gIT0gJy8nKQogICAgICAgICBwYXRoID0gIi8iICsgcGF0
aDsKIAotICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fcG9y
dEVuZCksIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMocGF0aCksIG1fc3RyaW5nLnN1YnN0
cmluZyhtX3BhdGhFbmQpKSk7CisgICAgYXV0byBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24gPSBb
XSAoVUNoYXIgY2hhcmFjdGVyKSB7CisgICAgICAgIHJldHVybiBjaGFyYWN0ZXIgPT0gJz8nIHx8
IGNoYXJhY3RlciA9PSAnIyc7CisgICAgfTsKKyAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJp
bmcoU3RyaW5nVmlldyhtX3N0cmluZykubGVmdChtX3BvcnRFbmQpLCBwZXJjZW50RW5jb2RlQ2hh
cmFjdGVycyhwYXRoLCBxdWVzdGlvbk1hcmtPck51bWJlclNpZ24pLCBTdHJpbmdWaWV3KG1fc3Ry
aW5nKS5zdWJzdHJpbmcobV9wYXRoRW5kKSkpOwogICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgp
OwogfQogCkBAIC05MjUsMTMgKzY4Miw2IEBAIFN0cmluZyBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5j
ZXMoY29uc3QgU3QKICAgICByZXR1cm4gZGVjb2RlRXNjYXBlU2VxdWVuY2VzPFVSTEVzY2FwZVNl
cXVlbmNlPihzdHJpbmcsIGVuY29kaW5nKTsKIH0KIAotLy8gQ2F1dGlvbjogVGhpcyBmdW5jdGlv
biBkb2VzIG5vdCBib3VuZHMgY2hlY2suCi1zdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihj
aGFyKiYgYnVmZmVyLCB1bnNpZ25lZCBjaGFyIGMpCi17Ci0gICAgKmJ1ZmZlcisrID0gJyUnOwot
ICAgIHBsYWNlQnl0ZUFzSGV4KGMsIGJ1ZmZlcik7Ci19Ci0KIFN0cmluZyBVUkw6OnNlcmlhbGl6
ZShib29sIG9taXRGcmFnbWVudCkgY29uc3QKIHsKICAgICBpZiAob21pdEZyYWdtZW50KQpAQCAt
MTAzMyw0OCArNzgzLDkgQEAgYm9vbCBob3N0c0FyZUVxdWFsKGNvbnN0IFVSTCYgYSwgY29uc3Qg
VQogICAgIHJldHVybiB0cnVlOwogfQogCi1TdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVl
bmNlcyhjb25zdCBTdHJpbmcmIG5vdEVuY29kZWRTdHJpbmcsIFBlcmNlbnRFbmNvZGVDaGFyYWN0
ZXJDbGFzcyB3aGF0VG9FbmNvZGUpCitTdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNl
cyhjb25zdCBTdHJpbmcmIGlucHV0KQogewotICAgIENTdHJpbmcgYXNVVEY4ID0gbm90RW5jb2Rl
ZFN0cmluZy51dGY4KCk7Ci0KLSAgICBDaGFyQnVmZmVyIGJ1ZmZlcihhc1VURjgubGVuZ3RoKCkg
KiAzICsgMSk7Ci0gICAgY2hhciogcCA9IGJ1ZmZlci5kYXRhKCk7Ci0KLSAgICBjb25zdCBjaGFy
KiBzdHIgPSBhc1VURjguZGF0YSgpOwotICAgIGNvbnN0IGNoYXIqIHN0ckVuZCA9IHN0ciArIGFz
VVRGOC5sZW5ndGgoKTsKLSAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7Ci0gICAgICAgIHVuc2ln
bmVkIGNoYXIgYyA9ICpzdHIrKzsKLSAgICAgICAgaWYgKHBlcmNlbnRFbmNvZGVDbGFzc1RhYmxl
W2NdID49IHdoYXRUb0VuY29kZSkKLSAgICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAqcCsrID0gYzsKLSAgICB9Ci0KLSAgICBBU1NF
UlQocCAtIGJ1ZmZlci5kYXRhKCkgPD0gc3RhdGljX2Nhc3Q8aW50PihidWZmZXIuc2l6ZSgpKSk7
Ci0KLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgpKTsK
LX0KLQotU3RyaW5nIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoY29uc3QgU3RyaW5nJiBu
b3RFbmNvZGVkU3RyaW5nKQotewotICAgIENTdHJpbmcgYXNVVEY4ID0gbm90RW5jb2RlZFN0cmlu
Zy51dGY4KCk7Ci0KLSAgICBDaGFyQnVmZmVyIGJ1ZmZlcihhc1VURjgubGVuZ3RoKCkgKiAzICsg
MSk7Ci0gICAgY2hhciogcCA9IGJ1ZmZlci5kYXRhKCk7Ci0KLSAgICBjb25zdCBjaGFyKiBzdHIg
PSBhc1VURjguZGF0YSgpOwotICAgIGNvbnN0IGNoYXIqIHN0ckVuZCA9IHN0ciArIGFzVVRGOC5s
ZW5ndGgoKTsKLSAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNo
YXIgYyA9ICpzdHIrKzsKLSAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkKLSAgICAgICAgICAgIGFw
cGVuZEVzY2FwZWRDaGFyKHAsIGMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAqcCsrID0g
YzsKLSAgICB9Ci0KLSAgICBBU1NFUlQocCAtIGJ1ZmZlci5kYXRhKCkgPD0gc3RhdGljX2Nhc3Q8
aW50PihidWZmZXIuc2l6ZSgpKSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCks
IHAgLSBidWZmZXIuZGF0YSgpKTsKKyAgICByZXR1cm4gcGVyY2VudEVuY29kZUNoYXJhY3RlcnMo
aW5wdXQsIFVSTFBhcnNlcjo6aXNJblVzZXJJbmZvRW5jb2RlU2V0KTsKIH0KIAogYm9vbCBVUkw6
OmlzSGllcmFyY2hpY2FsKCkgY29uc3QKQEAgLTExMDYsNyArODE3LDcgQEAgYm9vbCBwcm90b2Nv
bElzSW50ZXJuYWwoY29uc3QgU3RyaW5nQ2xhcwogICAgICAgICBpc0xlYWRpbmcgPSBmYWxzZTsK
IAogICAgICAgICAvLyBTa2lwIGFueSB0YWJzIGFuZCBuZXdsaW5lcy4KLSAgICAgICAgaWYgKGlz
VGFiTmV3bGluZSh1cmxbaV0pKQorICAgICAgICBpZiAodXJsW2ldID09ICdcdCcgfHwgdXJsW2ld
ID09ICdccicgfHwgdXJsW2ldID09ICdcbicpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBpZiAoIXByb3RvY29sW2pdKQpAQCAtMTEzMCwyMSArODQxLDYgQEAgaW5saW5lIGJvb2wg
VVJMOjpwcm90b2NvbElzKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBXZWJDb3JlOjpwcm90b2Nv
bElzSW50ZXJuYWwoc3RyaW5nLCBwcm90b2NvbCk7CiB9CiAKLWJvb2wgaXNWYWxpZFByb3RvY29s
KGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCi17Ci0gICAgLy8gUkZDMzk4NjogQUxQSEEgKiggQUxQ
SEEgLyBESUdJVCAvICIrIiAvICItIiAvICIuIiApCi0gICAgaWYgKHByb3RvY29sLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghaXNTY2hlbWVGaXJzdENoYXIocHJv
dG9jb2xbMF0pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdW5zaWduZWQgcHJvdG9jb2xM
ZW5ndGggPSBwcm90b2NvbC5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
cHJvdG9jb2xMZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWlzU2NoZW1lQ2hhcihwcm90b2Nv
bFtpXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVl
OwotfQotCiAjaWZuZGVmIE5ERUJVRwogCiB2b2lkIFVSTDo6cHJpbnQoKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCShyZXZpc2lvbiAyMjQ3NTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MjksNiArNDI5LDExIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgc2hvdWxkUGVyY2VudEUK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgVVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNv
ZGVTZXQoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6aXNJblVzZXJJbmZvRW5jb2Rl
U2V0KGMpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCBVUkxQYXJzZXI6
OlJlcG9ydFN5bnRheFZpb2xhdGlvbiByZXBvcnRTeW50YXhWaW9sYXRpb24+CiBBTFdBWVNfSU5M
SU5FIHZvaWQgVVJMUGFyc2VyOjphZHZhbmNlKENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5
cGU+JiBpdGVyYXRvciwgY29uc3QgQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0
ZXJhdG9yRm9yU3ludGF4VmlvbGF0aW9uUG9zaXRpb24pCiB7CkBAIC0yMDg2LDEwICsyMDkxLDEw
IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZUF1dGhvcml0eShDb2RlUG9pbnQKICAgICAgICAgICAg
IGFwcGVuZFRvQVNDSUlCdWZmZXIoJzonKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPGlzSW5Vc2VySW5mb0VuY29kZVNldD4oaXRlcmF0
b3IpOworICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxXZWJDb3JlOjppc0luVXNlckluZm9FbmNv
ZGVTZXQ+KGl0ZXJhdG9yKTsKICAgICB9CiAgICAgZm9yICg7ICFpdGVyYXRvci5hdEVuZCgpOyBh
ZHZhbmNlKGl0ZXJhdG9yKSkKLSAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8aXNJblVzZXJJbmZv
RW5jb2RlU2V0PihpdGVyYXRvcik7CisgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPFdlYkNvcmU6
OmlzSW5Vc2VySW5mb0VuY29kZVNldD4oaXRlcmF0b3IpOwogICAgIG1fdXJsLm1fcGFzc3dvcmRF
bmQgPSBjdXJyZW50UG9zaXRpb24oaXRlcmF0b3IpOwogICAgIGlmICghbV91cmwubV91c2VyRW5k
KQogICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX3VybC5tX3Bhc3N3b3JkRW5kOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBVUkxFbmNv
ZGVkRm9ybSYpOwogCiAgICAgc3RhdGljIGNvbnN0IFVJRE5BJiBpbnRlcm5hdGlvbmFsRG9tYWlu
TmFtZVRyYW5zY29kZXIoKTsKKyAgICBzdGF0aWMgYm9vbCBpc0luVXNlckluZm9FbmNvZGVTZXQo
VUNoYXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTcGVjaWFsU2NoZW1l
KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IG1heWJlQ2Fub25pY2FsaXplU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjQ3OTUpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTExLTEzICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4g
dXAgb2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51Q2xpZW50Ojpz
ZWFyY2hXaXRoR29vZ2xlKToKKyAgICAgICAgVXNlIGh0dHBzIGlmIHdlIGRvIGVuZCB1cCBzZWFy
Y2hpbmcgd2l0aCBnb29nbGUuCisKIDIwMTctMTEtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIG1hdGNoUmVnaXN0cmF0aW9uIGRvZXMgbm90IG5lZWQgdG8g
Z28gdG8gU3RvcmFnZVByb2Nlc3MgaWYgbm8gc2VydmljZSB3b3JrZXIgaXMgcmVnaXN0ZXJlZApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCShyZXZpc2lvbiAyMjQ3NTcpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgV2ViQ29udGV4
dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb28KICAgICBTdHJpbmcgZW5jb2RlZCA9IGVuY29kZVdp
dGhVUkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNoU3RyaW5nKTsKICAgICBlbmNvZGVkLnJlcGxhY2Uo
QVNDSUlMaXRlcmFsIHsgIiUyMCIgfSwgQVNDSUlMaXRlcmFsIHsgIisiIH0pOwogCi0gICAgU3Ry
aW5nIHVybCA9ICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIGVuY29kZWQgKyAi
JmllPVVURi04Jm9lPVVURi04IjsKKyAgICBTdHJpbmcgdXJsID0gImh0dHBzOi8vd3d3Lmdvb2ds
ZS5jb20vc2VhcmNoP3E9IiArIGVuY29kZWQgKyAiJmllPVVURi04Jm9lPVVURi04IjsKIAogICAg
IGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBVc2VyR2VzdHVyZUlu
ZGljYXRvciBpbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDc5MCkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTEx
LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgQ2xlYW4gdXAgb2xkIFVSTCBwYXJzZXIgcmVtbmFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTU3MworCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29n
bGUpOgorICAgICAgICBVc2UgaHR0cHMgaWYgd2UgZG8gZW5kIHVwIHNlYXJjaGluZyB3aXRoIGdv
b2dsZS4KKwogMjAxNy0xMS0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTW9yZSBpczw+IGFuZCBkb3duY2FzdDw+LCBsZXNzIHN0YXRpY19jYXN0PD4KSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAJKHJldmlzaW9uIDIyNDc1NykKKysrIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xp
ZW50OjpzZWFyY2hXaXRoR29vCiAgICAgU3RyaW5nIGVuY29kZWQgPSBlbmNvZGVXaXRoVVJMRXNj
YXBlU2VxdWVuY2VzKHNlYXJjaFN0cmluZyk7CiAgICAgZW5jb2RlZC5yZXBsYWNlKEFTQ0lJTGl0
ZXJhbCB7ICIlMjAiIH0sIEFTQ0lJTGl0ZXJhbCB7ICIrIiB9KTsKIAotICAgIFN0cmluZyB1cmwg
PSAiaHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIgKyBlbmNvZGVkICsgIiZpZT1VVEYt
OCZvZT1VVEYtOCI7CisgICAgU3RyaW5nIHVybCA9ICJodHRwczovL3d3dy5nb29nbGUuY29tL3Nl
YXJjaD9xPSIgKyBlbmNvZGVkICsgIiZpZT1VVEYtOCZvZT1VVEYtOCI7CiAKICAgICBpZiAoUGFn
ZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
aW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDc1NykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0xMS0xMyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIENs
ZWFuIHVwIG9sZCBVUkwgcGFyc2VyIHJlbW5hbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1NzMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLXNldHRlcnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICBXZSdyZSBtb3JlIHNwZWMgY29tcGxpYW50ISAgSG9vcmF5
IQorCiAyMDE3LTExLTEyICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIFVURi0zMiB2YXJpYW50IHRleHQgZW5jb2RpbmdzCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwt
c2V0dGVycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLXNldHRlcnMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyMjQ3NTcpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3VybC91cmwtc2V0dGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ5NSwy
MSArNDk1LDIxIEBAIFBBU1MgPGFyZWE+OiBTZXR0aW5nIDxodHRwczovL2V4YW1wbGUubmUKIFBB
U1MgVVJMOiBTZXR0aW5nIDxodHRwczovL2V4YW1wbGUubmV0I25hdj4ucGF0aG5hbWUgPSAnLi4v
aG9tZScgCiBQQVNTIDxhPjogU2V0dGluZyA8aHR0cHM6Ly9leGFtcGxlLm5ldCNuYXY+LnBhdGhu
YW1lID0gJy4uL2hvbWUnIAogUEFTUyA8YXJlYT46IFNldHRpbmcgPGh0dHBzOi8vZXhhbXBsZS5u
ZXQjbmF2Pi5wYXRobmFtZSA9ICcuLi9ob21lJyAKLUZBSUwgVVJMOiBTZXR0aW5nIDxodHRwOi8v
ZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxj
JyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290
ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvJTI1MkUvYi8lMjUyZS4vYz9sYW5nPWZyI25hdiIKLUZB
SUwgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0
aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdz
cGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQv
YS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvJTI1MkUvYi8l
MjUyZS4vYz9sYW5nPWZyI25hdiIKLUZBSUwgPGFyZWE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBs
ZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlz
IGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJodHRw
Oi8vZXhhbXBsZS5uZXQvL2EvJTI1MkUvYi8lMjUyZS4vYz9sYW5nPWZyI25hdiIKLUZBSUwgVVJM
OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25h
dj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxp
bWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidmll
dy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMkVcYlwlMmUuXGM/bGFuZz1mciNuYXYi
IGJ1dCBnb3QgInZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9cXGFcJTI1MkVcYlwlMjUy
ZS5cYz9sYW5nPWZyI25hdiIKLUZBSUwgPGE+OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8v
ZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxj
JyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidmlldy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xc
YVwlMkVcYlwlMmUuXGM/bGFuZz1mciNuYXYiIGJ1dCBnb3QgInZpZXctc291cmNlK2h0dHA6Ly9l
eGFtcGxlLm5ldC9cXGFcJTI1MkVcYlwlMjUyZS5cYz9sYW5nPWZyI25hdiIKLUZBSUwgPGFyZWE+
OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25h
dj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxp
bWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidmll
dy1zb3VyY2UraHR0cDovL2V4YW1wbGUubmV0L1xcYVwlMkVcYlwlMmUuXGM/bGFuZz1mciNuYXYi
IGJ1dCBnb3QgInZpZXctc291cmNlK2h0dHA6Ly9leGFtcGxlLm5ldC9cXGFcJTI1MkVcYlwlMjUy
ZS5cYz9sYW5nPWZyI25hdiIKK0ZBSUwgVVJMOiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQv
aG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzIGEgc2Vn
bWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJodHRwOi8vZXhh
bXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIKK0ZBSUwgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhh
bXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBc
IGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2IiBidXQgZ290ICJo
dHRwOi8vZXhhbXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIKK0ZBSUwgPGFyZWE+OiBTZXR0aW5n
IDxodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJF
XGJcJTJlLlxjJyBcIGlzIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yICdzcGVjaWFsJyBVUkxzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvYS9jP2xhbmc9ZnIjbmF2
IiBidXQgZ290ICJodHRwOi8vZXhhbXBsZS5uZXQvL2EvYz9sYW5nPWZyI25hdiIKK1BBU1MgVVJM
OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25h
dj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxp
bWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyAKK1BBU1MgPGE+OiBTZXR0aW5nIDx2aWV3LXNv
dXJjZStodHRwOi8vZXhhbXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFc
JTJFXGJcJTJlLlxjJyBcIGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3Bl
Y2lhbCcgVVJMcyAKK1BBU1MgPGFyZWE+OiBTZXR0aW5nIDx2aWV3LXNvdXJjZStodHRwOi8vZXhh
bXBsZS5uZXQvaG9tZT9sYW5nPWZyI25hdj4ucGF0aG5hbWUgPSAnXGFcJTJFXGJcJTJlLlxjJyBc
IGlzICpub3QqIGEgc2VnbWVudCBkZWxpbWl0ZXIgZm9yIG5vbi0nc3BlY2lhbCcgVVJMcyAKIEZB
SUwgVVJMOiBTZXR0aW5nIDxhOi8+LnBhdGhuYW1lID0gJ1wwAQkKLVxyHyAhIiMkJSYnKCkqKywt
Li8wOTo7PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNvZGlu
ZyB3aXRoIHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSByZW1v
dmVkLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJico
KSorLC0uLzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4
MSVDMyU4OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTA5JTBBJTBEJTFGJTIwISUyMiUyMyQl
MjUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgw
JUMyJTgxJUMzJTg5JUMzJUE5IgorXHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/QEFaW1xdXl9g
YXp7fH1+f8KAwoHDicOpJyBVVEYtOCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhlIGRlZmF1bHQg
ZW5jb2RlIHNldC4gVGFicyBhbmQgbmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0Ul
M0ZAQVpbXFxdXl8lNjBheiU3QnwlN0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IiBidXQg
Z290ICJhOi8lMDAlMDElMUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpb
XFxdXl8lNjBheiU3QnwlN0R+JTdGJUMzJTgyJUMyJTgwJUMzJTgyJUMyJTgxJUMzJTgzJUMyJTg5
JUMzJTgzJUMyJUE5IgogRkFJTCA8YT46IFNldHRpbmcgPGE6Lz4ucGF0aG5hbWUgPSAnXDABCQot
XHIfICEiIyQlJicoKSorLC0uLzA5Ojs8PT4/QEFaW1xdXl9gYXp7fH1+f8KAwoHDicOpJyBVVEYt
OCBwZXJjZW50IGVuY29kaW5nIHdpdGggdGhlIGRlZmF1bHQgZW5jb2RlIHNldC4gVGFicyBhbmQg
bmV3bGluZXMgYXJlIHJlbW92ZWQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhOi8lMDAlMDEl
MUYlMjAhJTIyJTIzJCUmJygpKissLS4vMDk6OyUzQz0lM0UlM0ZAQVpbXFxdXl8lNjBheiU3Qnwl
N0R+JTdGJUMyJTgwJUMyJTgxJUMzJTg5JUMzJUE5IiBidXQgZ290ICJhOi8lMDAlMDElMDklMEEl
MEQlMUYlMjAhJTIyJTIzJCUyNSYnKCkqKywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6
JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiCitcch8gISIjJCUmJygpKissLS4v
MDk6Ozw9Pj9AQVpbXF1eX2Bhent8fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQgZW5jb2Rpbmcg
d2l0aCB0aGUgZGVmYXVsdCBlbmNvZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBhcmUgcmVtb3Zl
ZC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkq
KywtLi8wOTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODEl
QzMlODklQzMlQTkiIGJ1dCBnb3QgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8w
OTo7JTNDPSUzRSUzRkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzMlODIlQzIlODAlQzMlODIl
QzIlODElQzMlODMlQzIlODklQzMlODMlQzIlQTkiCiBGQUlMIDxhcmVhPjogU2V0dGluZyA8YTov
Pi5wYXRobmFtZSA9ICdcMAEJCi1cch8gISIjJCUmJygpKissLS4vMDk6Ozw9Pj9AQVpbXF1eX2Bh
ent8fX5/woDCgcOJw6knIFVURi04IHBlcmNlbnQgZW5jb2Rpbmcgd2l0aCB0aGUgZGVmYXVsdCBl
bmNvZGUgc2V0LiBUYWJzIGFuZCBuZXdsaW5lcyBhcmUgcmVtb3ZlZC4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImE6LyUwMCUwMSUxRiUyMCElMjIlMjMkJSYnKCkqKywtLi8wOTo7JTNDPSUzRSUz
RkBBWltcXF1eXyU2MGF6JTdCfCU3RH4lN0YlQzIlODAlQzIlODElQzMlODklQzMlQTkiIGJ1dCBn
b3QgImE6LyUwMCUwMSUwOSUwQSUwRCUxRiUyMCElMjIlMjMkJTI1JicoKSorLC0uLzA5OjslM0M9
JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4OSVDMyVBOSIK
LUZBSUwgVVJMOiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUy
RSVjMyU4OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMs
IGluY2x1ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJodHRwOi8vZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIgYnV0IGdvdCAi
aHR0cDovL2V4YW1wbGUubmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIKLUZBSUwgPGE+
OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4OXTD
qScgQnl0ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1ZGlu
ZyAlMkUgb3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJo
dHRwOi8vZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIgYnV0IGdvdCAiaHR0cDovL2V4
YW1wbGUubmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIKLUZBSUwgPGFyZWE+OiBTZXR0
aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4OXTDqScgQnl0
ZXMgYWxyZWFkeSBwZXJjZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1ZGluZyAlMkUg
b3V0c2lkZSBkb3R0ZWQgc2VnbWVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8v
ZXhhbXBsZS5uZXQvJTJlJTJFJWMzJTg5dCVDMyVBOSIgYnV0IGdvdCAiaHR0cDovL2V4YW1wbGUu
bmV0LyUyNTJlJTI1MkUlMjVjMyUyNTg5dCVDMyVBOSIKK1xyHyAhIiMkJSYnKCkqKywtLi8wOTo7
PD0+P0BBWltcXV5fYGF6e3x9fn/CgMKBw4nDqScgVVRGLTggcGVyY2VudCBlbmNvZGluZyB3aXRo
IHRoZSBkZWZhdWx0IGVuY29kZSBzZXQuIFRhYnMgYW5kIG5ld2xpbmVzIGFyZSByZW1vdmVkLiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0u
LzA5OjslM0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMiU4MCVDMiU4MSVDMyU4
OSVDMyVBOSIgYnV0IGdvdCAiYTovJTAwJTAxJTFGJTIwISUyMiUyMyQlJicoKSorLC0uLzA5Ojsl
M0M9JTNFJTNGQEFaW1xcXV5fJTYwYXolN0J8JTdEfiU3RiVDMyU4MiVDMiU4MCVDMyU4MiVDMiU4
MSVDMyU4MyVDMiU4OSVDMyU4MyVDMiVBOSIKK1BBU1MgVVJMOiBTZXR0aW5nIDxodHRwOi8vZXhh
bXBsZS5uZXQ+LnBhdGhuYW1lID0gJyUyZSUyRSVjMyU4OXTDqScgQnl0ZXMgYWxyZWFkeSBwZXJj
ZW50LWVuY29kZWQgYXJlIGxlZnQgYXMtaXMsIGluY2x1ZGluZyAlMkUgb3V0c2lkZSBkb3R0ZWQg
c2VnbWVudHMuIAorUEFTUyA8YT46IFNldHRpbmcgPGh0dHA6Ly9leGFtcGxlLm5ldD4ucGF0aG5h
bWUgPSAnJTJlJTJFJWMzJTg5dMOpJyBCeXRlcyBhbHJlYWR5IHBlcmNlbnQtZW5jb2RlZCBhcmUg
bGVmdCBhcy1pcywgaW5jbHVkaW5nICUyRSBvdXRzaWRlIGRvdHRlZCBzZWdtZW50cy4gCitQQVNT
IDxhcmVhPjogU2V0dGluZyA8aHR0cDovL2V4YW1wbGUubmV0Pi5wYXRobmFtZSA9ICclMmUlMkUl
YzMlODl0w6knIEJ5dGVzIGFscmVhZHkgcGVyY2VudC1lbmNvZGVkIGFyZSBsZWZ0IGFzLWlzLCBp
bmNsdWRpbmcgJTJFIG91dHNpZGUgZG90dGVkIHNlZ21lbnRzLiAKIFBBU1MgVVJMOiBTZXR0aW5n
IDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJz8nID8gbmVlZHMgdG8gYmUgZW5jb2Rl
ZCAKIFBBU1MgPGE+OiBTZXR0aW5nIDxodHRwOi8vZXhhbXBsZS5uZXQ+LnBhdGhuYW1lID0gJz8n
ID8gbmVlZHMgdG8gYmUgZW5jb2RlZCAKIFBBU1MgPGFyZWE+OiBTZXR0aW5nIDxodHRwOi8vZXhh
bXBsZS5uZXQ+LnBhdGhuYW1lID0gJz8nID8gbmVlZHMgdG8gYmUgZW5jb2RlZCAK
</data>

          </attachment>
      

    </bug>

</bugzilla>