<?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>227789</bug_id>
          
          <creation_ts>2021-07-07 21:05:48 -0700</creation_ts>
          <short_desc>Remove more custom binding code with GenerateAddOpaqueRoot</short_desc>
          <delta_ts>2021-07-08 16:09:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775599</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-07 21:05:48 -0700</bug_when>
    <thetext>Now that we have added GenerateAddOpaqueRoot, use in more IDL files and get rid of custom bindings code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775600</commentid>
    <comment_count>1</comment_count>
      <attachid>433114</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-07 21:17:42 -0700</bug_when>
    <thetext>Created attachment 433114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775769</commentid>
    <comment_count>2</comment_count>
      <attachid>433114</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 13:16:36 -0700</bug_when>
    <thetext>Comment on attachment 433114
Patch

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

&gt; Source/WebCore/dom/AbortController.h:43
&gt; +    void* opaqueRoot() const { return m_signal.ptr(); }

Can&apos;t we use `GenerateAddOpaqueRoot=signal` in the IDL to avoid having to add a new opaqueRoot() function? I think we may need to add a WTF::getPtr() call in the generated bindings if missing to convert the reference into a pointer but otherwise, I don&apos;t see why it wouldn&apos;t work?

Same comment may apply to other classes in this patch.

&gt; Source/WebCore/html/track/TrackListBase.cpp:70
&gt; +    return m_element.get()-&gt;opaqueRoot();

why .get()? Doesn&apos;t seem needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775777</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 13:37:33 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 433114 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433114&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/AbortController.h:43
&gt; &gt; +    void* opaqueRoot() const { return m_signal.ptr(); }
&gt; 
&gt; Can&apos;t we use `GenerateAddOpaqueRoot=signal` in the IDL to avoid having to
&gt; add a new opaqueRoot() function? I think we may need to add a WTF::getPtr()
&gt; call in the generated bindings if missing to convert the reference into a
&gt; pointer but otherwise, I don&apos;t see why it wouldn&apos;t work?
&gt; 
&gt; Same comment may apply to other classes in this patch.

I guess we could do that although I&apos;m somewhat worried that people might make signal() function not thread safe in the future.

&gt; &gt; Source/WebCore/html/track/TrackListBase.cpp:70
&gt; &gt; +    return m_element.get()-&gt;opaqueRoot();
&gt; 
&gt; why .get()? Doesn&apos;t seem needed.

m_element-&gt;opaqueRoot() will assert because of the thread safety check in WeakPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775782</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 13:51:22 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; (In reply to Chris Dumez from comment #2)
&gt; &gt; Comment on attachment 433114 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=433114&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/AbortController.h:43
&gt; &gt; &gt; +    void* opaqueRoot() const { return m_signal.ptr(); }
&gt; &gt; 
&gt; &gt; Can&apos;t we use `GenerateAddOpaqueRoot=signal` in the IDL to avoid having to
&gt; &gt; add a new opaqueRoot() function? I think we may need to add a WTF::getPtr()
&gt; &gt; call in the generated bindings if missing to convert the reference into a
&gt; &gt; pointer but otherwise, I don&apos;t see why it wouldn&apos;t work?
&gt; &gt; 
&gt; &gt; Same comment may apply to other classes in this patch.
&gt; 
&gt; I guess we could do that although I&apos;m somewhat worried that people might
&gt; make signal() function not thread safe in the future.
&gt; 
&gt; &gt; &gt; Source/WebCore/html/track/TrackListBase.cpp:70
&gt; &gt; &gt; +    return m_element.get()-&gt;opaqueRoot();
&gt; &gt; 
&gt; &gt; why .get()? Doesn&apos;t seem needed.
&gt; 
&gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; WeakPtr.

Seems like either this is unsafe or we should allow operator-&gt;() to get called from the GC thread?
I am still a bit unclear on what safe to do on the GC thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775784</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 13:54:09 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; WeakPtr.
&gt; 
&gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; called from the GC thread?
&gt; I am still a bit unclear on what safe to do on the GC thread.

Maybe? But the fact this is explicit is a good thing. We don&apos;t want people to start doing &quot;interesting&quot; things in GC threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775792</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 14:02:13 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #5)
&gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; &gt; WeakPtr.
&gt; &gt; 
&gt; &gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; &gt; called from the GC thread?
&gt; &gt; I am still a bit unclear on what safe to do on the GC thread.
&gt; 
&gt; Maybe? But the fact this is explicit is a good thing. We don&apos;t want people
&gt; to start doing &quot;interesting&quot; things in GC threads.

I thought that dereferencing a WeakPtr on the GC thread was unsafe, which is why it has a threading assertion. Your code is working around that by calling get() but then still dereferencing.

In my book, you are already doing an &quot;interesting&quot; thing on the GC thread and I don&apos;t personally understand why it is safe (although it may well be).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775793</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 14:03:49 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Ryosuke Niwa from comment #5)
&gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; &gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; &gt; &gt; WeakPtr.
&gt; &gt; &gt; 
&gt; &gt; &gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; &gt; &gt; called from the GC thread?
&gt; &gt; &gt; I am still a bit unclear on what safe to do on the GC thread.
&gt; &gt; 
&gt; &gt; Maybe? But the fact this is explicit is a good thing. We don&apos;t want people
&gt; &gt; to start doing &quot;interesting&quot; things in GC threads.
&gt; 
&gt; I thought that dereferencing a WeakPtr on the GC thread was unsafe, which is
&gt; why it has a threading assertion. Your code is working around that by
&gt; calling get() but then still dereferencing.
&gt; 
&gt; In my book, you are already doing an &quot;interesting&quot; thing on the GC thread
&gt; and I don&apos;t personally understand why it is safe (although it may well be).

BTW, the previous code was calling `root(wrapped().element())` which looked safer to me at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775795</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 14:08:11 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; (In reply to Ryosuke Niwa from comment #5)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; &gt; &gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; &gt; &gt; &gt; WeakPtr.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; &gt; &gt; &gt; called from the GC thread?
&gt; &gt; &gt; &gt; I am still a bit unclear on what safe to do on the GC thread.
&gt; &gt; &gt; 
&gt; &gt; &gt; Maybe? But the fact this is explicit is a good thing. We don&apos;t want people
&gt; &gt; &gt; to start doing &quot;interesting&quot; things in GC threads.
&gt; &gt; 
&gt; &gt; I thought that dereferencing a WeakPtr on the GC thread was unsafe, which is
&gt; &gt; why it has a threading assertion. Your code is working around that by
&gt; &gt; calling get() but then still dereferencing.
&gt; &gt; 
&gt; &gt; In my book, you are already doing an &quot;interesting&quot; thing on the GC thread
&gt; &gt; and I don&apos;t personally understand why it is safe (although it may well be).
&gt; 
&gt; BTW, the previous code was calling `root(wrapped().element())` which looked
&gt; safer to me at least.

In JSNodeCustom.h, we see that:

inline void* root(Node* node)
{
    return node ? node-&gt;opaqueRoot() : nullptr;
}

inline void* root(Node&amp; node)
{
    return root(&amp;node);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775797</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 14:09:00 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Ryosuke Niwa from comment #5)
&gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; &gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; &gt; &gt; WeakPtr.
&gt; &gt; &gt; 
&gt; &gt; &gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; &gt; &gt; called from the GC thread?
&gt; &gt; &gt; I am still a bit unclear on what safe to do on the GC thread.
&gt; &gt; 
&gt; &gt; Maybe? But the fact this is explicit is a good thing. We don&apos;t want people
&gt; &gt; to start doing &quot;interesting&quot; things in GC threads.
&gt; 
&gt; I thought that dereferencing a WeakPtr on the GC thread was unsafe, which is
&gt; why it has a threading assertion. Your code is working around that by
&gt; calling get() but then still dereferencing.
&gt; 
&gt; In my book, you are already doing an &quot;interesting&quot; thing on the GC thread
&gt; and I don&apos;t personally understand why it is safe (although it may well be).

To be honest, none of these are safe. Our DOM GC implementation is pretty badly broken. It&apos;s somewhat shocking we haven&apos;t gotten a lot of crashes from it so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775809</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-08 14:28:04 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #5)
&gt; &gt; &gt; &gt; (In reply to Chris Dumez from comment #4)
&gt; &gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; &gt; &gt; &gt; &gt; m_element-&gt;opaqueRoot() will assert because of the thread safety check in
&gt; &gt; &gt; &gt; &gt; &gt; WeakPtr.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Seems like either this is unsafe or we should allow operator-&gt;() to get
&gt; &gt; &gt; &gt; &gt; called from the GC thread?
&gt; &gt; &gt; &gt; &gt; I am still a bit unclear on what safe to do on the GC thread.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Maybe? But the fact this is explicit is a good thing. We don&apos;t want people
&gt; &gt; &gt; &gt; to start doing &quot;interesting&quot; things in GC threads.
&gt; &gt; &gt; 
&gt; &gt; &gt; I thought that dereferencing a WeakPtr on the GC thread was unsafe, which is
&gt; &gt; &gt; why it has a threading assertion. Your code is working around that by
&gt; &gt; &gt; calling get() but then still dereferencing.
&gt; &gt; &gt; 
&gt; &gt; &gt; In my book, you are already doing an &quot;interesting&quot; thing on the GC thread
&gt; &gt; &gt; and I don&apos;t personally understand why it is safe (although it may well be).
&gt; &gt; 
&gt; &gt; BTW, the previous code was calling `root(wrapped().element())` which looked
&gt; &gt; safer to me at least.
&gt; 
&gt; In JSNodeCustom.h, we see that:
&gt; 
&gt; inline void* root(Node* node)
&gt; {
&gt;     return node ? node-&gt;opaqueRoot() : nullptr;
&gt; }
&gt; 
&gt; inline void* root(Node&amp; node)
&gt; {
&gt;     return root(&amp;node);
&gt; }

I see. I didn&apos;t remember that code. I completely agree you code is not less safe than it used to be then. I still think it would look much nicer if you used GenerateAddOpaqueRoot=foo instead of introducing new opaqueRoot() functions.

However, if you disagree, feel free to land as is, I still think this is a good improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775814</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 14:51:33 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt;
&gt; I see. I didn&apos;t remember that code. I completely agree you code is not less
&gt; safe than it used to be then. I still think it would look much nicer if you
&gt; used GenerateAddOpaqueRoot=foo instead of introducing new opaqueRoot()
&gt; functions.
&gt; 
&gt; However, if you disagree, feel free to land as is, I still think this is a
&gt; good improvement.

Oh sure, I&apos;m making that change. It looks like the patch never got uploaded? Will land with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775815</commentid>
    <comment_count>12</comment_count>
      <attachid>433166</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 14:52:06 -0700</bug_when>
    <thetext>Created attachment 433166
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775816</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 14:52:53 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 433166 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775817</commentid>
    <comment_count>14</comment_count>
      <attachid>433167</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 15:08:10 -0700</bug_when>
    <thetext>Created attachment 433167
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775829</commentid>
    <comment_count>15</comment_count>
      <attachid>433170</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-08 15:26:29 -0700</bug_when>
    <thetext>Created attachment 433170
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775845</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 16:08:28 -0700</bug_when>
    <thetext>Committed r279761 (239532@main): &lt;https://commits.webkit.org/239532@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433170.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775846</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-08 16:09:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/80348006&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433114</attachid>
            <date>2021-07-07 21:17:42 -0700</date>
            <delta_ts>2021-07-08 14:52:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227789-20210707211741.patch</filename>
            <type>text/plain</type>
            <size>35824</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQxNjRiMWUzODczNmYw
MTg3NWRjZmQ3YTRjMmVhMjFlZjg1ZDczMy4uZGYyMjQ3ZjhjZDQwN2NhY2I5ZDA0YjQ2OWIyOTA0
ZTU2YWNlODI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTA3ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIGN1c3Rv
bSBiaW5kaW5nIGNvZGUgd2l0aCBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc4OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBHZW5lcmF0ZUFkZE9wYXF1ZVJv
b3QgZXh0ZW5kZWQgSURMIG9wdGlvbiB0byByZW1vdmUgbW9yZSBjdXN0b20gYmluZGluZ3MgY29k
ZS4KKworICAgICAgICBBbHNvIG1hZGUgR2VuZXJhdGVBZGRPcGFxdWVSb290IGRlZmF1bHQgdG8g
dXNlIHdyYXBwZWQgb2JqZWN0J3Mgb3BhcXVlUm9vdCBmdW5jdGlvbi4KKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgor
ICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0Fib3J0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIGRvbS9BYm9ydENvbnRyb2xsZXIuaWRsOgorICAgICAgICAq
IGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRsOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9U
cmFja0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpvcGFxdWVSb290KTog
QWRkZWQuCisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuaDoKKyAgICAgICAgKiBodG1s
L3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFz
ZTo6b3BhcXVlUm9vdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tM
aXN0QmFzZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5pZGw6CisgICAgICAg
ICogaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGw6CisKIDIwMjEtMDctMDEgIEplYW4tWXZl
cyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIExhc3QgZmV3IHNl
Y29uZHMgb2YgJ2F1ZGlvL3dlYm07IGNvZGVjcz12b3JiaXMnIGFwcGVuZGVkIHRvIGEgU2FtcGxl
QnVmZmVyIGFyZSBub3QgcGxheWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDJlYmMyNzllNTFhYzAwOTcw
N2EyYTcyY2JiNTgzZjNlYWZjMzQ5MzUuLjNjYmZhNWFiNWE0YmY1ODQ0OTZhYjYxMzNjZTMwOGQ0
OTkyM2JhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC01MDAsNyArNTAwLDYgQEAgYmluZGluZ3MvanMv
RE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcAogYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmNw
cAogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAogYmluZGluZ3MvanMvSURCQmluZGluZ1V0
aWxpdGllcy5jcHAKLWJpbmRpbmdzL2pzL0pTQWJvcnRDb250cm9sbGVyQ3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNBYm9ydFNpZ25hbEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQWJzdHJhY3RS
YW5nZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcApA
QCAtNTA4LDggKzUwNyw2IEBAIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVm
ZmVyQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCi1iaW5kaW5n
cy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb1dvcmtsZXRQcm9jZXNzb3JDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTYxMiwxNCArNjA5LDEwIEBAIGJp
bmRpbmdzL2pzL0pTU3RhdGljUmFuZ2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hl
ZXRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKLWJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNw
cAotYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNU
cmFja0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKIGJpbmRp
bmdzL2pzL0pTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1Vu
ZG9JdGVtQ3VzdG9tLmNwcAotYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAotYmlu
ZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViQW5p
bWF0aW9uQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNzQ0OWZjNjQ5YmE4ZjQ2NzZlN2I3ZGM5NjM2ZWU3Mzk0YjlkYmQyYi4uNTYxYzVhZTYwMWIx
YWMzYzcyOWZmNTY2ODUwM2NmNWMyYWE5ZTkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUyMyw3ICs1NTIzLDYgQEAKIAkJ
RkQzMTYwQUIxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkNvbnZvbHZlclN0YWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3NTEyQjAyNkY3
MDBDMUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyU3RhZ2UuaCAqLzsgfTsKIAkJRkQzMTYwQUQxMkIw
MjZGNzAwQzFBMzU5IC8qIFJldmVyYklucHV0QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3NzEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiSW5wdXRCdWZmZXIuaCAqLzsgfTsKIAkJRkQzMTYwQUYxMkIwMjZGNzAwQzFBMzU5IC8qIFZl
Y3Rvck1hdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZEMzE2MDc5MTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggKi87IH07Ci0JCUZEMzE2
MEJGMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MEI5MTJCMDI3MkEwMEMxQTM1
OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuaCAqLzsgfTsKIAkJRkQzNTkxOTAxMzhEQjIyMDAwRTFF
QkVDIC8qIEF1ZGlvUGFyYW1UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQzNTkxOEUxMzhEQjIyMDAwRTFFQkVDIC8qIEF1ZGlvUGFyYW1U
aW1lbGluZS5oICovOyB9OwogCQlGRDQ1QTk0RjE3NUQzRjNFMDBDMjFFQzggLyogU2hhcGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDhBODdGMTc1
RDM5MjYwMDJDRDM2MCAvKiBTaGFwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZENDVBOTUyMTc1RDNGM0UwMEMyMUVDOCAvKiBTaGFwZU91dHNp
ZGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDA4QTg4NzE3NUQzOTI2MDAyQ0QzNjAgLyogU2hhcGVPdXRzaWRlSW5mby5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01OTkyLDcgKzU5OTEsNiBA
QAogCQkwN0I1QTJEOTE0NjQzMjBBMDBBODFFQ0UgLyogSlNUZXh0VHJhY2tMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjVBMkRBMTQ2NDMyMEEwMEE4MUVDRSAvKiBK
U1RleHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0
VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjVBMzA2MTQ2ODUz
NzEwMEE4MUVDRSAvKiBUZXh0VHJhY2tMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBU
ZXh0VHJhY2tMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCNUEzMEMx
NDY4N0Q3MTAwQTgxRUNFIC8qIEpTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0xpc3RDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0I3MTE2QTFEODk5RTYzMDA5RjBGRkIgLyogQ2Fw
dHVyZURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0dXJlRGV2
aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjcxMTZCMUQ4OTlFNjMwMDlG
MEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3QjcxMTZDMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0dXJlRGV2aWNlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAxNSw3ICs2MDEzLDYgQEAK
IAkJMDdENkE0RjExQkVENUY4ODAwMTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENkE0RjIxQkVENUY4
ODAwMTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RDZBNEY2MUJGMjMwN0QwMDE3NDE0NiAvKiBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaDsgcGF0aCA9IHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OwotCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0Ug
LyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTlFMTJEMThGNUUyNzYwMDExQTNBNCAv
KiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzQ0LDcgKzc3NDEsNiBAQAogCQkzRkJDNEFGMjE4
OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThF
IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2luLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudE9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0MTA5MzgyODIzNDc3OTlBMDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYm9ydENvbnRy
b2xsZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyQzIz
NDc4NTBFMDA5NDI4QkEgLyogSlNBYm9ydFNpZ25hbEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDEwQThFRjQyNEY4MjNCOTAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBUZXh0RW5jb2RlclN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MEE4RUY2MjRGODIzQkEwMDRGOTA3MCAvKiBUZXh0RW5jb2RlclN0cmVhbS5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNj
cmlwdDsgcGF0aCA9IFRleHRFbmNvZGVyU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQ2MjksMTAgKzE0NjI1LDYgQEAKIAkJQkUyMzQ4MEIxOEE5ODcwMzAwRTRCNkU4
IC8qIERhdGFDdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFDdWUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRTYxMDM5QjE4QTlENjEyMDBERDUwRDcgLyogSlNE
YXRhQ3VlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YUN1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFNjEwMzlDMThBOUQ2MTIwMERE
NTBENyAvKiBKU0RhdGFDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNE
YXRhQ3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJFNkRGNzA4MTcxQ0EyQzUw
MERENTJCOCAvKiBKU1ZpZGVvVHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xpc3RD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWaWRlb1Ry
YWNrTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJFNkRGNzBF
MTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9U
cmFja0xpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJFODU1RjdGMDcwMUU4MzUwMDIzOTc2OSAvKiBXZWJDb3JlVmlldy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVmlldy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkU4
NTYwNTEwNzAxRjkxMTAwMjM5NzY5IC8qIFdlYkNvcmVWaWV3Lm0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYkNvcmVWaWV3Lm07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCRTg4
RTBCRjE3MTVDRTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmFja0xpc3RCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTY1LDcgKzIzMTU3LDYgQEAKIAkJN0MzRDhFRTQxRTA4QkFCRTAw
MjNCMDg0IC8qIEdDIC8gV3JhcHBpbmcgT25seSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJNDEwOTM4MjgyMzQ3Nzk5QTAwOTQyOEJBIC8qIEpTQWJvcnRD
b250cm9sbGVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0MTA5MzgyQzIzNDc4NTBFMDA5NDI4QkEgLyog
SlNBYm9ydFNpZ25hbEN1c3RvbS5jcHAgKi8sCiAJCQkJOTM1NUVGNTMyNTNBNEQ1QTAwNkZGNEE0
IC8qIEpTQWJzdHJhY3RSYW5nZUN1c3RvbS5jcHAgKi8sCiAJCQkJNzFFRkNFREUyMDJCMzlDNzAw
RDdDNDExIC8qIEpTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcCAqLywKQEAgLTIzMTczLDggKzIz
MTY0LDYgQEAKIAkJCQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNw
cCAqLywKIAkJCQk0NkMzQThEMzI1NDhENEI3MDBDOEM1M0EgLyogSlNBdWRpb0J1ZmZlckN1c3Rv
bS5jcHAgKi8sCiAJCQkJNDY2NTM2RkEyNjRDOEREMTAwQUFEMUQ3IC8qIEpTQXVkaW9Ob2RlQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCRTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNr
Q3VzdG9tLmNwcCAqLywKLQkJCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1Ry
YWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJODNGMzdBNjcyNTM2QjIxQjAwRkY1RjNCIC8qIEpT
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKIAkJCQk1NzYwODI1NjIwMTFCRTAy
MDAxMTY2NzggLyogSlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwICovLAogCQkJCTQ2
OEI4QkRFMjVDQzg0OTMwMEY2NzgyMiAvKiBKU0Jhc2VBdWRpb0NvbnRleHRDdXN0b20uY3BwICov
LApAQCAtMjMyMzksMTUgKzIzMjI4LDExIEBACiAJCQkJQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVD
IC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgKi8sCiAJCQkJODM4ODY5RUIxQ0U4MUU5RTAwRDE2
QTlFIC8qIEpTVGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNF
IC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAqLywKLQkJCQkwN0UxMTZCMDE0ODlDOUExMDBF
QzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICovLAotCQkJCTA3QjVBMzBDMTQ2ODdENzEw
MEE4MUVDRSAvKiBKU1RleHRUcmFja0xpc3RDdXN0b20uY3BwICovLAogCQkJCTA3MDMzNEU4MTQ1
QTFGMzUwMDhEOEQ0NSAvKiBKU1RyYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQkwNzg0NjM4NDE0NUIx
QjhFMDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5oICovLAogCQkJCTUxNkJCNzkyMENFOTFFNjgw
MDUxMkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAogCQkJCTRCQUZEMEUyMjE5MjYw
NEQwMEMwQUI2NCAvKiBKU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcCAqLywKIAkJCQlG
NEUxOTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8sCi0JCQkJ
QkU2REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0N1c3RvbS5jcHAgKi8sCi0J
CQkJQkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xpc3RDdXN0b20uY3Bw
ICovLAogCQkJCTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBKU1dlYkFuaW1hdGlvbkN1c3Rv
bS5jcHAgKi8sCiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8q
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKQEAgLTMxNzc3LDggKzMxNzYy
LDYgQEAKIAkJCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9j
ZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgzMTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QUFBQTNEMjVEMzYzMjAwMEJB
RjQyRiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Q1NTk2
OTIxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjgxOEQ4QTM0OTAwNjM3NDZE
IC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRFMkQ1
NUIxNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1
c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MTgxY2M0MGMwZTkwZmI2
ZDVhYzdhNTk5ZWUwNDAxZDU1MWVhOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYm9ydENvbnRyb2xs
ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSogQ29weXJp
Z2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0qIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0qIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0qIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Fib3J0Q29u
dHJvbGxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZp
c2l0b3I+Ci12b2lkIEpTQWJvcnRDb250cm9sbGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihW
aXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgp
LnNpZ25hbCgpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBYm9y
dENvbnRyb2xsZXIpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjQ4NzRjNDI5ZDQyMzgyYTYxMmIyMGEyNzg3ZGNmMjIyMDJlYWNkZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykKLQotI2lu
Y2x1ZGUgIkpTQXVkaW9UcmFjay5oIgotCi0jaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgotCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFZpc2l0b3I+Ci12b2lkIEpTQXVkaW9UcmFjazo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRy
ZW4oVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdCgm
d3JhcHBlZCgpKSk7Ci19Ci0KLURFRklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpTQXVk
aW9UcmFjayk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjZhMTdjZWIzZmZkOTc3NjA1ZWI2MzhlZTE5
YTEwMDZlMmUyY2M0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0b20uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShWSURFTykKLQotI2luY2x1ZGUgIkpTQXVkaW9UcmFja0xpc3QuaCIKLQotI2luY2x1ZGUg
IkVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU05vZGVDdXN0b20uaCIKLQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
Pgotdm9pZCBKU0F1ZGlvVHJhY2tMaXN0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9y
JiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KHdyYXBwZWQoKS5l
bGVtZW50KCkpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBdWRp
b1RyYWNrTGlzdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjYTM5MzM5ODBkMjg0NTQ3MzFkNzhjOTI3MDQ4MmY1ZmJl
OTk5YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykK
LQotI2luY2x1ZGUgIkpTVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RleHRUcmFja0N1ZUxp
c3QuaCIKLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZv
aWQgSlNUZXh0VHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwotfQotCi1E
RUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFjayk7Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWZmNTcxYzIzMjY2MjQzOGViNWEyNGJiMDNhMGU3OWZiOGRmMTQ2Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykKLQotI2luY2x1ZGUg
IkpTVGV4dFRyYWNrTGlzdC5oIgotCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkpT
Tm9kZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBK
U0M7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12b2lkIEpTVGV4dFRyYWNrTGlzdDo6
dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9y
LmFkZE9wYXF1ZVJvb3Qocm9vdCh3cmFwcGVkKCkuZWxlbWVudCgpKSk7Ci19Ci0gICAgCi1ERUZJ
TkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFja0xpc3QpOwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVmlkZW9UcmFja0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ5NTUyYzNiOTQwODI4MjM0NmYzYmFmZmMxZWY3NDFlYzE5NzBkNDYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNpbmNsdWRlICJKU1ZpZGVv
VHJhY2suaCIKLQotI2luY2x1ZGUgIkpTVHJhY2tDdXN0b20uaCIKLQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
Pgotdm9pZCBKU1ZpZGVvVHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZp
c2l0b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwot
fQotCi1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVvVHJhY2spOwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDQ4NDQyN2FlOWJmODc3YjVhNmJjNDY3ZjllMDlkZWM3MjZlNGQ5Zi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0K
LSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNWaWRlb1RyYWNrTGlzdC5oIgotI2lu
Y2x1ZGUgIkpTTm9kZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5h
bWVzcGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12b2lkIEpTVmlkZW9U
cmFja0xpc3Q6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0g
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3Qod3JhcHBlZCgpLmVsZW1lbnQoKSkpOwotfQot
Ci1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVvVHJhY2tMaXN0KTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzcxODYyNGJhMTA1MmE4
N2Y3OTQ4NDIxNjNlZTBiMjVmZTBjZDJkMi4uZWYxYmJhYTkzMmJlNTU1M2M2NTU0ZGY4ZTlkODcy
ODU5YmExNTcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTQ4OTAsNiArNDg5MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH0pIHsKICAgICAgICAgICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntHZW5lcmF0ZUFkZE9w
YXF1ZVJvb3R9OworICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJvcGFxdWVSb290IiBpZiAk
ZnVuY3Rpb25OYW1lIGVxICJWQUxVRV9JU19NSVNTSU5HIjsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCh0aGlzT2JqZWN0LT53cmFwcGVk
KCkuJHtmdW5jdGlvbk5hbWV9KCkpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1JlcG9ydEV4dHJhTWVtb3J5Q29zdH0pIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuaAppbmRleCAwYWQyZjQyYjkwY2ZjZTQ5NTFjMmQw
NjQxNzg2MTk0ODc1MzliMDBlLi4xMDE3MTk2Y2Y0NWE1M2QwMWQyNzJiNzJlOGVlNDEzMTAwZDYz
ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEFib3J0Q29udHJvbGxlcj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKICAgICB+QWJvcnRDb250cm9sbGVyKCk7CiAKKyAgICB2b2lkKiBv
cGFxdWVSb290KCkgY29uc3QgeyByZXR1cm4gbV9zaWduYWwucHRyKCk7IH0KKwogICAgIEFib3J0
U2lnbmFsJiBzaWduYWwoKTsKICAgICB2b2lkIGFib3J0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fi
b3J0Q29udHJvbGxlci5pZGwKaW5kZXggNmE5OTgxOTAwNDk4MWJhOTQ1NDNjYTJkYzQwMTI1NzQ1
NzgwM2NkNC4uNjc1ZDFiOTQyYjE5Y2JkY2Y1MWVmZDI5NmM4MjAxNDE2ZDVjMWExNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKIFsKICAg
ICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290CiBd
IGludGVyZmFjZSBBYm9ydENvbnRyb2xsZXIgewogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBjb25zdHJ1Y3RvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmlkbAppbmRleCA4YTVmMmM4N2Y2ZjY2MWVjNWE0OTViMzZlMjY3NzhiM2Q2YTNlMzNm
Li4zOTM0NjY2ZjVmYzA2MjE3ZDNlM2VlOWM1ZTAxZDRjYTczMWMwZWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBDb25k
aXRpb25hbD1WSURFTywKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKICAgICBHZW5l
cmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlv
biwKKyAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50
ZXJmYWNlIEF1ZGlvVHJhY2sgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCmluZGV4IDU2
YmIxN2M2ZGU3MzhjMjgwZmZmMTI4ZTFkZGQ3NmRlMDQ2YzQ3NTcuLmM0NTU0Y2YyZDIwN2Y2M2Zh
N2UzOTlkYWU0NzQ5ZTZjOTEyNzQ3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFja0xpc3QuaWRsCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVs
ZW1lbnRSb290LAotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgIEdlbmVyYXRlQWRkT3Bh
cXVlUm9vdCwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgQXVkaW9UcmFja0xpc3Qg
OiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCmluZGV4IGVkYTU5YmM0
M2UxNTI4MmVhYmNkMGJjYTgzYjgzMWZkMjhlOTkyZTkuLmFhMWIwNGEyNzJjOTkyZjEyZWNiNzEw
ODNlNjcwOTU4OGVjMmI4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5p
ZGwKQEAgLTMxLDcgKzMxLDcgQEAgZW51bSBUZXh0VHJhY2tLaW5kIHsgInN1YnRpdGxlcyIsICJj
YXB0aW9ucyIsICJkZXNjcmlwdGlvbnMiLCAiY2hhcHRlcnMiLCAibWV0YWQKICAgICBDb25kaXRp
b25hbD1WSURFTywKICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBHZW5lcmF0ZUlz
UmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAg
ICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiAgICAg
RXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFRleHRUcmFjayA6IEV2ZW50VGFyZ2V0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCmluZGV4IDk5Y2UzZDRj
OGExMTNjNWNhNzhkMzZjNmEwZWNiNmJiODdiZThhYTMuLmRmOWNiZTEzMGJjYTczYmE2NDBmOTc4
YzkxZWYxNDQ0YzIxMTFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tMaXN0LmlkbApAQCAtMjcsNyArMjcsNyBAQAogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBD
b25kaXRpb25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9v
dCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Qs
CiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFRleHRUcmFja0xpc3QgOiBFdmVudFRh
cmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCmluZGV4IDA5YjBiN2FjMjg2MDBkNzA2
MWEwM2QzNzc1ODc0YjVlMDQxYjFiNWYuLmU4Zjk1ZjkzMzEwM2FkODQyYWQ4MjcxMzM2MmYzNTFm
NmRkODc3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTc1
LDYgKzc1LDEzIEBAIEVsZW1lbnQqIFRyYWNrQmFzZTo6ZWxlbWVudCgpCiAgICAgcmV0dXJuIG1f
bWVkaWFFbGVtZW50LmdldCgpOwogfQogCit2b2lkKiBUcmFja0Jhc2U6Om9wYXF1ZVJvb3QoKQor
eworICAgIGlmIChhdXRvKiBhc3NvY2lhdGVkRWxlbWVudCA9IGVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50LT5vcGFxdWVSb290KCk7CisgICAgcmV0dXJuIHRoaXM7
Cit9CisKIHZvaWQgVHJhY2tCYXNlOjpzZXRNZWRpYUVsZW1lbnQoV2Vha1B0cjxIVE1MTWVkaWFF
bGVtZW50PiBlbGVtZW50KQogewogICAgIG1fbWVkaWFFbGVtZW50ID0gZWxlbWVudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5oCmluZGV4IDIxMDdkNDA1N2E5OGUwOThjOTMyMzVh
ZmQ2NGI4YjBiZjMwYWIyY2YuLmFmNDU0NDFkOTM3OTQwOTU0YzU2YjY5YzVhMWFjZmI0MWI1YTJl
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaApAQCAtNDksOSArNDksMTAg
QEAgcHVibGljOgogICAgIGVudW0gVHlwZSB7IEJhc2VUcmFjaywgVGV4dFRyYWNrLCBBdWRpb1Ry
YWNrLCBWaWRlb1RyYWNrIH07CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
OyB9CiAKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKTsKKyAgICB2b2lkKiBvcGFxdWVS
b290KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhRWxlbWVudChXZWFrUHRyPEhUTUxNZWRp
YUVsZW1lbnQ+KTsKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1lZGlhRWxlbWVudCgp
IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9Ci0gICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50
KCk7CiAKICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldElkKGNvbnN0IEF0b21TdHJpbmcmIGlkKSB7IG1faWQgPSBp
ZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKaW5kZXgg
ZDQ0OWVlZjAzM2Q4NjZjNGYyZWRmOWE4ODkxMzgxZjViMmUxYzEzNC4uMzYxYTAwNmVjNTUxY2U0
M2NhZDEwN2Y3NzdjYTY2NzBmMTRhYjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0xpc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RyYWNrTGlzdEJhc2UuY3BwCkBAIC02NSw2ICs2NSwxMSBAQCBFbGVtZW50KiBUcmFja0xpc3RC
YXNlOjplbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9lbGVtZW50LmdldCgpOwogfQogCit2
b2lkKiBUcmFja0xpc3RCYXNlOjpvcGFxdWVSb290KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9l
bGVtZW50LmdldCgpLT5vcGFxdWVSb290KCk7Cit9CisKIHVuc2lnbmVkIFRyYWNrTGlzdEJhc2U6
Omxlbmd0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5iYW5kVHJhY2tzLnNpemUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKaW5kZXggZGQ2OTkzZmY4MGIy
ZWQ4MTc3MGM4OTRiZjFmOWUzYTg5ODU0MDU0MC4uZmEwMGY4NjBmYmY5MDhkM2QyMDc3ZTFkMmRi
ODYyOWIyMGE0MmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFj
a0xpc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNl
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRWxl
bWVudCgpOwogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdDsKKyAgICB2b2lkKiBvcGFxdWVS
b290KCkgY29uc3Q7CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtZWRpYUVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KIAogICAgIC8vIE5lZWRzIHRvIGJlIHB1Ymxp
YyBzbyB0cmFja3MgY2FuIGNhbGwgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suaWRsCmluZGV4IDJhNDY2NjgyMmMxODE4OGRhNWEyMzE3ODhmNmEwNGY3NDU3MTJhZmUuLjc0
NzIzZGJhZGQ1ZTllMzcxYzNmMmQxNjdiYmQ3NTE3MjE1NThjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbApAQCAtMjYsNyArMjYsNyBAQAogWwogICAgIENvbmRp
dGlvbmFsPVZJREVPLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAot
ICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgIEdlbmVyYXRlQWRkT3BhcXVlUm9vdCwKICAg
ICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgVmlkZW9UcmFjayB7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBpZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrTGlzdC5pZGwKaW5kZXggNTU0NmZkMjg4YTFkNGJmNzU4MDViNzEzOTMxYzZmNzZjYTM0
OTA2ZS4uYWIyYjdlNmMyM2ViZTBlM2I4MGI2NzNhYjk1OThhNDE3ODhkZTdkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwKQEAgLTI3LDcgKzI3LDcg
QEAKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rp
b24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGlu
dGVyZmFjZSBWaWRlb1RyYWNrTGlzdCA6IEV2ZW50VGFyZ2V0IHsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433166</attachid>
            <date>2021-07-08 14:52:06 -0700</date>
            <delta_ts>2021-07-08 15:08:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227789-20210708145206.patch</filename>
            <type>text/plain</type>
            <size>35730</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQxNjRiMWUzODczNmYw
MTg3NWRjZmQ3YTRjMmVhMjFlZjg1ZDczMy4uZGY4ZGNmODdiN2QzMGZjZmRhMDI3NjliODA1NDZh
ZWFlMGViODI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTA3ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIGN1c3Rv
bSBiaW5kaW5nIGNvZGUgd2l0aCBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc4OQorCisgICAgICAgIFJldmll
d2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFVzZSBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Qg
ZXh0ZW5kZWQgSURMIG9wdGlvbiB0byByZW1vdmUgbW9yZSBjdXN0b20gYmluZGluZ3MgY29kZS4K
KworICAgICAgICBBbHNvIG1hZGUgR2VuZXJhdGVBZGRPcGFxdWVSb290IGRlZmF1bHQgdG8gdXNl
IHdyYXBwZWQgb2JqZWN0J3Mgb3BhcXVlUm9vdCBmdW5jdGlvbi4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0Fib3J0Q29udHJv
bGxlci5oOgorICAgICAgICAqIGRvbS9BYm9ydENvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIGh0
bWwvdHJhY2svQXVkaW9UcmFjay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNr
TGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRsOgorICAgICAgICAq
IGh0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UcmFj
a0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpvcGFxdWVSb290KTogQWRk
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuaDoKKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RyYWNrTGlzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6
b3BhcXVlUm9vdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0
QmFzZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5pZGw6CisgICAgICAgICog
aHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGw6CisKIDIwMjEtMDctMDEgIEplYW4tWXZlcyBB
dmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIExhc3QgZmV3IHNlY29u
ZHMgb2YgJ2F1ZGlvL3dlYm07IGNvZGVjcz12b3JiaXMnIGFwcGVuZGVkIHRvIGEgU2FtcGxlQnVm
ZmVyIGFyZSBub3QgcGxheWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDJlYmMyNzllNTFhYzAwOTcwN2Ey
YTcyY2JiNTgzZjNlYWZjMzQ5MzUuLjNjYmZhNWFiNWE0YmY1ODQ0OTZhYjYxMzNjZTMwOGQ0OTky
M2JhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC01MDAsNyArNTAwLDYgQEAgYmluZGluZ3MvanMvRE9N
R0NPdXRwdXRDb25zdHJhaW50LmNwcAogYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmNwcAog
YmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAKLWJpbmRpbmdzL2pzL0pTQWJvcnRDb250cm9sbGVyQ3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNBYm9ydFNpZ25hbEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQWJzdHJhY3RSYW5n
ZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcApAQCAt
NTA4LDggKzUwNyw2IEBAIGJpbmRpbmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVy
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCi1iaW5kaW5ncy9q
cy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3Vz
dG9tLmNwcAogYmluZGluZ3MvanMvSlNBdWRpb1dvcmtsZXRQcm9jZXNzb3JDdXN0b20uY3BwCiBi
aW5kaW5ncy9qcy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pz
L0pTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTYxMiwxNCArNjA5LDEwIEBAIGJpbmRp
bmdzL2pzL0pTU3RhdGljUmFuZ2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRD
dXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1Rl
eHRUcmFja0N1ZUN1c3RvbS5jcHAKLWJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAot
YmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNUcmFj
a0N1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1VuZG9J
dGVtQ3VzdG9tLmNwcAotYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAotYmluZGlu
Z3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViQW5pbWF0
aW9uQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzQ0OWZjNjQ5YmE4ZjQ2NzZlN2I3ZGM5NjM2ZWU3Mzk0YjlkYmQyYi4uNTYxYzVhZTYwMWIxYWMz
YzcyOWZmNTY2ODUwM2NmNWMyYWE5ZTkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUyMyw3ICs1NTIzLDYgQEAKIAkJRkQz
MTYwQUIxMkIwMjZGNzAwQzFBMzU5IC8qIFJldmVyYkNvbnZvbHZlclN0YWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3NTEyQjAyNkY3MDBD
MUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyU3RhZ2UuaCAqLzsgfTsKIAkJRkQzMTYwQUQxMkIwMjZG
NzAwQzFBMzU5IC8qIFJldmVyYklucHV0QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA3NzEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJi
SW5wdXRCdWZmZXIuaCAqLzsgfTsKIAkJRkQzMTYwQUYxMkIwMjZGNzAwQzFBMzU5IC8qIFZlY3Rv
ck1hdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDc5MTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggKi87IH07Ci0JCUZEMzE2MEJG
MTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MEI5MTJCMDI3MkEwMEMxQTM1OSAv
KiBBdWRpb0ZpbGVSZWFkZXJNYWMuaCAqLzsgfTsKIAkJRkQzNTkxOTAxMzhEQjIyMDAwRTFFQkVD
IC8qIEF1ZGlvUGFyYW1UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzNTkxOEUxMzhEQjIyMDAwRTFFQkVDIC8qIEF1ZGlvUGFyYW1UaW1l
bGluZS5oICovOyB9OwogCQlGRDQ1QTk0RjE3NUQzRjNFMDBDMjFFQzggLyogU2hhcGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDhBODdGMTc1RDM5
MjYwMDJDRDM2MCAvKiBTaGFwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUZENDVBOTUyMTc1RDNGM0UwMEMyMUVDOCAvKiBTaGFwZU91dHNpZGVJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDA4
QTg4NzE3NUQzOTI2MDAyQ0QzNjAgLyogU2hhcGVPdXRzaWRlSW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01OTkyLDcgKzU5OTEsNiBAQAog
CQkwN0I1QTJEOTE0NjQzMjBBMDBBODFFQ0UgLyogSlNUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjVBMkRBMTQ2NDMyMEEwMEE4MUVDRSAvKiBKU1Rl
eHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJh
Y2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjVBMzA2MTQ2ODUzNzEw
MEE4MUVDRSAvKiBUZXh0VHJhY2tMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUZXh0
VHJhY2tMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCNUEzMEMxNDY4
N0Q3MTAwQTgxRUNFIC8qIEpTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0xpc3RDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwN0I3MTE2QTFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVy
ZURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0dXJlRGV2aWNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjcxMTZCMUQ4OTlFNjMwMDlGMEZG
QiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QjcxMTZDMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0dXJlRGV2aWNlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAxNSw3ICs2MDEzLDYgQEAKIAkJ
MDdENkE0RjExQkVENUY4ODAwMTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENkE0RjIxQkVENUY4ODAw
MTc0MTQ2IC8qIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3RDZBNEY2MUJGMjMwN0QwMDE3NDE0NiAvKiBBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW0uaDsgcGF0aCA9IHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owot
CQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyog
SlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTlFMTJEMThGNUUyNzYwMDExQTNBNCAvKiBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzQ0LDcgKzc3NDEsNiBAQAogCQkzRkJDNEFGMjE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8q
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA3
OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENsaWVudE9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0MTA5MzgyODIzNDc3OTlBMDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYm9ydENvbnRyb2xs
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyQzIzNDc4
NTBFMDA5NDI4QkEgLyogSlNBYm9ydFNpZ25hbEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEwQThFRjQyNEY4MjNCOTAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBU
ZXh0RW5jb2RlclN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEE4
RUY2MjRGODIzQkEwMDRGOTA3MCAvKiBUZXh0RW5jb2RlclN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgcGF0aCA9IFRleHRFbmNvZGVyU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQ2MjksMTAgKzE0NjI1LDYgQEAKIAkJQkUyMzQ4MEIxOEE5ODcwMzAwRTRCNkU4IC8q
IERhdGFDdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFDdWUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCRTYxMDM5QjE4QTlENjEyMDBERDUwRDcgLyogSlNEYXRh
Q3VlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YUN1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFNjEwMzlDMThBOUQ2MTIwMERENTBE
NyAvKiBKU0RhdGFDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRh
Q3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJFNkRGNzA4MTcxQ0EyQzUwMERE
NTJCOCAvKiBKU1ZpZGVvVHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xpc3RDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWaWRlb1RyYWNr
TGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJFNkRGNzBFMTcx
Q0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MTAxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFj
a0xpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNB
dWRpb1RyYWNrTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJF
ODU1RjdGMDcwMUU4MzUwMDIzOTc2OSAvKiBXZWJDb3JlVmlldy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkU4NTYw
NTEwNzAxRjkxMTAwMjM5NzY5IC8qIFdlYkNvcmVWaWV3Lm0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYkNvcmVWaWV3Lm07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCRTg4RTBC
RjE3MTVDRTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUcmFja0xpc3RCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIzMTY1LDcgKzIzMTU3LDYgQEAKIAkJN0MzRDhFRTQxRTA4QkFCRTAwMjNC
MDg0IC8qIEdDIC8gV3JhcHBpbmcgT25seSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNDEwOTM4MjgyMzQ3Nzk5QTAwOTQyOEJBIC8qIEpTQWJvcnRDb250
cm9sbGVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0MTA5MzgyQzIzNDc4NTBFMDA5NDI4QkEgLyogSlNB
Ym9ydFNpZ25hbEN1c3RvbS5jcHAgKi8sCiAJCQkJOTM1NUVGNTMyNTNBNEQ1QTAwNkZGNEE0IC8q
IEpTQWJzdHJhY3RSYW5nZUN1c3RvbS5jcHAgKi8sCiAJCQkJNzFFRkNFREUyMDJCMzlDNzAwRDdD
NDExIC8qIEpTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcCAqLywKQEAgLTIzMTczLDggKzIzMTY0
LDYgQEAKIAkJCQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAq
LywKIAkJCQk0NkMzQThEMzI1NDhENEI3MDBDOEM1M0EgLyogSlNBdWRpb0J1ZmZlckN1c3RvbS5j
cHAgKi8sCiAJCQkJNDY2NTM2RkEyNjRDOEREMTAwQUFEMUQ3IC8qIEpTQXVkaW9Ob2RlQ3VzdG9t
LmNwcCAqLywKLQkJCQlCRTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNr
TGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJODNGMzdBNjcyNTM2QjIxQjAwRkY1RjNCIC8qIEpTQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKIAkJCQk1NzYwODI1NjIwMTFCRTAyMDAx
MTY2NzggLyogSlNBdXRoZW50aWNhdG9yUmVzcG9uc2VDdXN0b20uY3BwICovLAogCQkJCTQ2OEI4
QkRFMjVDQzg0OTMwMEY2NzgyMiAvKiBKU0Jhc2VBdWRpb0NvbnRleHRDdXN0b20uY3BwICovLApA
QCAtMjMyMzksMTUgKzIzMjI4LDExIEBACiAJCQkJQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8q
IEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgKi8sCiAJCQkJODM4ODY5RUIxQ0U4MUU5RTAwRDE2QTlF
IC8qIEpTVGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNFIC8q
IEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAqLywKLQkJCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVB
Q0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICovLAotCQkJCTA3QjVBMzBDMTQ2ODdENzEwMEE4
MUVDRSAvKiBKU1RleHRUcmFja0xpc3RDdXN0b20uY3BwICovLAogCQkJCTA3MDMzNEU4MTQ1QTFG
MzUwMDhEOEQ0NSAvKiBKU1RyYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQkwNzg0NjM4NDE0NUIxQjhF
MDBBNThERjEgLyogSlNUcmFja0N1c3RvbS5oICovLAogCQkJCTUxNkJCNzkyMENFOTFFNjgwMDUx
MkY3OSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovLAogCQkJCTRCQUZEMEUyMjE5MjYwNEQw
MEMwQUI2NCAvKiBKU1R5cGVkT01DU1NTdHlsZVZhbHVlQ3VzdG9tLmNwcCAqLywKIAkJCQlGNEUx
OTY1QTIxRjIzOTUwMDAyODUwNzggLyogSlNVbmRvSXRlbUN1c3RvbS5jcHAgKi8sCi0JCQkJQkU2
REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0N1c3RvbS5jcHAgKi8sCi0JCQkJ
QkU2REY3MEExNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwICov
LAogCQkJCTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBKU1dlYkFuaW1hdGlvbkN1c3RvbS5j
cHAgKi8sCiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKQEAgLTMxNzc3LDggKzMxNzYyLDYg
QEAKIAkJCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9jZXNz
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgzMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QUFBQTNEMjVEMzYzMjAwMEJBRjQy
RiAvKiBBdWRpb0ZpbGVSZWFkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Q1NTk2OTIx
NDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRkQzMTYwQkYxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyRjRBMjgxOEQ4QTM0OTAwNjM3NDZEIC8q
IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRFMkQ1NUIx
NTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3Rv
bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MTgxY2M0MGMwZTkwZmI2ZDVh
YzdhNTk5ZWUwNDAxZDU1MWVhOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYm9ydENvbnRyb2xsZXJD
dXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSogQ29weXJpZ2h0
IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0qIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0q
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0qIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Fib3J0Q29udHJv
bGxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0
b3I+Ci12b2lkIEpTQWJvcnRDb250cm9sbGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNp
dG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpLnNp
Z25hbCgpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBYm9ydENv
bnRyb2xsZXIpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjQ4NzRjNDI5ZDQyMzgyYTYxMmIyMGEyNzg3ZGNmMjIyMDJlYWNkZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykKLQotI2luY2x1
ZGUgIkpTQXVkaW9UcmFjay5oIgotCi0jaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgotCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIFZpc2l0b3I+Ci12b2lkIEpTQXVkaW9UcmFjazo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4o
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdCgmd3Jh
cHBlZCgpKSk7Ci19Ci0KLURFRklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpTQXVkaW9U
cmFjayk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjZhMTdjZWIzZmZkOTc3NjA1ZWI2MzhlZTE5YTEw
MDZlMmUyY2M0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJM
RShWSURFTykKLQotI2luY2x1ZGUgIkpTQXVkaW9UcmFja0xpc3QuaCIKLQotI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJKU05vZGVDdXN0b20uaCIKLQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgot
dm9pZCBKU0F1ZGlvVHJhY2tMaXN0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KHdyYXBwZWQoKS5lbGVt
ZW50KCkpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBdWRpb1Ry
YWNrTGlzdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBjYTM5MzM5ODBkMjg0NTQ3MzFkNzhjOTI3MDQ4MmY1ZmJlOTk5
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykKLQot
I2luY2x1ZGUgIkpTVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RleHRUcmFja0N1ZUxpc3Qu
aCIKLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQg
SlNUZXh0VHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0b3IpCi17
Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwotfQotCi1ERUZJ
TkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFjayk7Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWZmNTcxYzIzMjY2MjQzOGViNWEyNGJiMDNhMGU3OWZiOGRmMTQ2Zi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURFTykKLQotI2luY2x1ZGUgIkpT
VGV4dFRyYWNrTGlzdC5oIgotCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkpTTm9k
ZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12b2lkIEpTVGV4dFRyYWNrTGlzdDo6dmlz
aXRBZGRpdGlvbmFsQ2hpbGRyZW4oVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9yLmFk
ZE9wYXF1ZVJvb3Qocm9vdCh3cmFwcGVkKCkuZWxlbWVudCgpKSk7Ci19Ci0gICAgCi1ERUZJTkVf
VklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFja0xpc3QpOwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVmlkZW9UcmFja0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5
NTUyYzNiOTQwODI4MjM0NmYzYmFmZmMxZWY3NDFlYzE5NzBkNDYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNpbmNsdWRlICJKU1ZpZGVvVHJh
Y2suaCIKLQotI2luY2x1ZGUgIkpTVHJhY2tDdXN0b20uaCIKLQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgot
dm9pZCBKU1ZpZGVvVHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwotfQot
Ci1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVvVHJhY2spOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDQ4NDQyN2FlOWJmODc3YjVhNmJjNDY3ZjllMDlkZWM3MjZlNGQ5Zi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNp
bmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNWaWRlb1RyYWNrTGlzdC5oIgotI2luY2x1
ZGUgIkpTTm9kZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVz
cGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12b2lkIEpTVmlkZW9UcmFj
a0xpc3Q6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3Qod3JhcHBlZCgpLmVsZW1lbnQoKSkpOwotfQotCi1E
RUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVvVHJhY2tMaXN0KTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzcxODYyNGJhMTA1MmE4N2Y3
OTQ4NDIxNjNlZTBiMjVmZTBjZDJkMi4uZDdjYWExODRiMGMyNWE1NmNmNWMyYmVlNTMyMTE5M2Mx
NjBmNWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTQ4ODksOCArNDg4OSwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpOwogICAg
ICAgICB9CiAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntHZW5l
cmF0ZUFkZE9wYXF1ZVJvb3R9KSB7CisgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0
Zi9HZXRQdHIuaD4iKTsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntHZW5lcmF0ZUFkZE9wYXF1ZVJvb3R9OwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS4ke2Z1bmN0aW9uTmFtZX0oKSk7XG4iKTsKKyAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAib3BhcXVlUm9vdCIgaWYgJGZ1bmN0aW9uTmFtZSBlcSAiVkFMVUVfSVNfTUlT
U0lORyI7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QoV1RGOjpnZXRQdHIodGhpc09iamVjdC0+d3JhcHBlZCgpLiR7ZnVuY3Rpb25OYW1l
fSgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57UmVwb3J0RXh0cmFNZW1vcnlDb3N0fSkgewogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQodGhpc09i
amVjdC0+d3JhcHBlZCgpLm1lbW9yeUNvc3QoKSk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0
Q29udHJvbGxlci5pZGwKaW5kZXggNmE5OTgxOTAwNDk4MWJhOTQ1NDNjYTJkYzQwMTI1NzQ1Nzgw
M2NkNC4uYmRiYmJhZjUzMjg5MWI4M2Y3NmFkMTMwMGM5MDFhY2FjZDFhZmY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKIFsKICAgICBF
eHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290PXNpZ25h
bAogXSBpbnRlcmZhY2UgQWJvcnRDb250cm9sbGVyIHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFjay5pZGwKaW5kZXggOGE1ZjJjODdmNmY2NjFlYzVhNDk1YjM2ZTI2Nzc4YjNkNmEz
ZTMzZi4uMzkzNDY2NmY1ZmMwNjIxN2QzZTNlZTljNWUwMWQ0Y2E3MzFjMGVmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCkBAIC0yNyw3ICsyNyw3IEBACiAgICAg
Q29uZGl0aW9uYWw9VklERU8sCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVu
Y3Rpb24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBd
IGludGVyZmFjZSBBdWRpb1RyYWNrIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlz
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbAppbmRl
eCA1NmJiMTdjNmRlNzM4YzI4MGZmZjEyOGUxZGRkNzZkZTA0NmM0NzU3Li5jNDU1NGNmMmQyMDdm
NjNmYTdlMzk5ZGFlNDc0OWU2YzkxMjc0N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2tMaXN0LmlkbApAQCAtMjcsNyArMjcsNyBAQAogICAgIEFjdGl2ZURPTU9i
amVjdCwKICAgICBDb25kaXRpb25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGxFbGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFk
ZE9wYXF1ZVJvb3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEF1ZGlvVHJhY2tM
aXN0IDogRXZlbnRUYXJnZXQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAppbmRleCBlZGE1
OWJjNDNlMTUyODJlYWJjZDBiY2E4M2I4MzFmZDI4ZTk5MmU5Li5hYTFiMDRhMjcyYzk5MmYxMmVj
YjcxMDgzZTY3MDk1ODhlYzJiODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suaWRsCkBAIC0zMSw3ICszMSw3IEBAIGVudW0gVGV4dFRyYWNrS2luZCB7ICJzdWJ0aXRsZXMi
LCAiY2FwdGlvbnMiLCAiZGVzY3JpcHRpb25zIiwgImNoYXB0ZXJzIiwgIm1ldGFkCiAgICAgQ29u
ZGl0aW9uYWw9VklERU8sCiAgICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCiAgICAgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24s
CisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAog
ICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBUZXh0VHJhY2sgOiBFdmVudFRhcmdldCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbAppbmRleCA5OWNl
M2Q0YzhhMTEzYzVjYTc4ZDM2YzZhMGVjYjZiYjg3YmU4YWEzLi5kZjljYmUxMzBiY2E3M2JhNjQw
Zjk3OGM5MWVmMTQ0NGMyMTExZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrTGlzdC5pZGwKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBBY3RpdmVET01PYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVu
dFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVS
b290LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBUZXh0VHJhY2tMaXN0IDogRXZl
bnRUYXJnZXQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCAwOWIwYjdhYzI4NjAw
ZDcwNjFhMDNkMzc3NTg3NGI1ZTA0MWIxYjVmLi5lOGY5NWY5MzMxMDNhZDg0MmFkODI3MTMzNjJm
MzUxZjZkZDg3NzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBA
IC03NSw2ICs3NSwxMyBAQCBFbGVtZW50KiBUcmFja0Jhc2U6OmVsZW1lbnQoKQogICAgIHJldHVy
biBtX21lZGlhRWxlbWVudC5nZXQoKTsKIH0KIAordm9pZCogVHJhY2tCYXNlOjpvcGFxdWVSb290
KCkKK3sKKyAgICBpZiAoYXV0byogYXNzb2NpYXRlZEVsZW1lbnQgPSBlbGVtZW50KCkpCisgICAg
ICAgIHJldHVybiBhc3NvY2lhdGVkRWxlbWVudC0+b3BhcXVlUm9vdCgpOworICAgIHJldHVybiB0
aGlzOworfQorCiB2b2lkIFRyYWNrQmFzZTo6c2V0TWVkaWFFbGVtZW50KFdlYWtQdHI8SFRNTE1l
ZGlhRWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBtX21lZGlhRWxlbWVudCA9IGVsZW1lbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaAppbmRleCAyMTA3ZDQwNTdhOThlMDk4Yzkz
MjM1YWZkNjRiOGIwYmYzMGFiMmNmLi5hZjQ1NDQxZDkzNzk0MDk1NGM1NmI2OWM1YTFhY2ZiNDFi
NWEyZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKQEAgLTQ5LDkgKzQ5
LDEwIEBAIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgeyBCYXNlVHJhY2ssIFRleHRUcmFjaywgQXVk
aW9UcmFjaywgVmlkZW9UcmFjayB9OwogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQogCisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCk7CisgICAgdm9pZCogb3Bh
cXVlUm9vdCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYUVsZW1lbnQoV2Vha1B0cjxIVE1M
TWVkaWFFbGVtZW50Pik7CiAgICAgV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBtZWRpYUVsZW1l
bnQoKSB7IHJldHVybiBtX21lZGlhRWxlbWVudDsgfQotICAgIHZpcnR1YWwgRWxlbWVudCogZWxl
bWVudCgpOwogCiAgICAgdmlydHVhbCBBdG9tU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
ZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJZChjb25zdCBBdG9tU3RyaW5nJiBpZCkgeyBtX2lk
ID0gaWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCmlu
ZGV4IGQ0NDllZWYwMzNkODY2YzRmMmVkZjlhODg5MTM4MWY1YjJlMWMxMzQuLjAxM2EyM2M5ODFi
YWU5YTA5NGUwMzdmY2EwMjY0OTE0NDgxNTM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0xpc3RCYXNlLmNwcApAQCAtNjUsNiArNjUsMTMgQEAgRWxlbWVudCogVHJhY2tM
aXN0QmFzZTo6ZWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsKIH0K
IAordm9pZCogVHJhY2tMaXN0QmFzZTo6b3BhcXVlUm9vdCgpIGNvbnN0Cit7CisgICAgaWYgKGF1
dG8qIGFzc29jaWF0ZWRFbGVtZW50ID0gZWxlbWVudCgpKQorICAgICAgICByZXR1cm4gYXNzb2Np
YXRlZEVsZW1lbnQtPm9wYXF1ZVJvb3QoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdW5z
aWduZWQgVHJhY2tMaXN0QmFzZTo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmJh
bmRUcmFja3Muc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
cmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2Uu
aAppbmRleCBkZDY5OTNmZjgwYjJlZDgxNzcwYzg5NGJmMWY5ZTNhODk4NTQwNTQwLi5mYTAwZjg2
MGZiZjkwOGQzZDIwNzdlMWQyZGI4NjI5YjIwYTQyZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJFbGVtZW50KCk7CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0
OworICAgIHZvaWQqIG9wYXF1ZVJvb3QoKSBjb25zdDsKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVs
ZW1lbnQ+IG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogCiAgICAg
Ly8gTmVlZHMgdG8gYmUgcHVibGljIHNvIHRyYWNrcyBjYW4gY2FsbCBpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwKaW5kZXggMmE0NjY2ODIyYzE4MTg4ZGE1YTIzMTc4
OGY2YTA0Zjc0NTcxMmFmZS4uNzQ3MjNkYmFkZDVlOWUzNzFjM2YyZDE2N2JiZDc1MTcyMTU1OGMw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCkBAIC0yNiw3ICsy
Niw3IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJs
ZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgR2VuZXJh
dGVBZGRPcGFxdWVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBWaWRlb1Ry
YWNrIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmlkbAppbmRleCA1NTQ2ZmQyODhhMWQ0YmY3
NTgwNWI3MTM5MzFjNmY3NmNhMzQ5MDZlLi5hYjJiN2U2YzIzZWJlMGUzYjgwYjY3M2FiOTU5OGE0
MTc4OGRlN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2tMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0
LmlkbApAQCAtMjcsNyArMjcsNyBAQAogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRp
b25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKLSAg
ICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QsCiAgICAg
RXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFZpZGVvVHJhY2tMaXN0IDogRXZlbnRUYXJnZXQg
ewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433167</attachid>
            <date>2021-07-08 15:08:10 -0700</date>
            <delta_ts>2021-07-08 15:26:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227789-20210708150809.patch</filename>
            <type>text/plain</type>
            <size>32948</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTA4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIGN1c3RvbSBi
aW5kaW5nIGNvZGUgd2l0aCBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFVzZSBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QgZXh0
ZW5kZWQgSURMIG9wdGlvbiB0byByZW1vdmUgbW9yZSBjdXN0b20gYmluZGluZ3MgY29kZS4KKwor
ICAgICAgICBBbHNvIG1hZGUgR2VuZXJhdGVBZGRPcGFxdWVSb290IGRlZmF1bHQgdG8gdXNlIHdy
YXBwZWQgb2JqZWN0J3Mgb3BhcXVlUm9vdCBmdW5jdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0Fib3J0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIGRvbS9BYm9ydENvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIGh0bWwv
dHJhY2svQXVkaW9UcmFjay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrTGlz
dC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRsOgorICAgICAgICAqIGh0
bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpvcGFxdWVSb290KTogQWRkZWQu
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuaDoKKyAgICAgICAgKiBodG1sL3RyYWNr
L1RyYWNrTGlzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6b3Bh
cXVlUm9vdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFz
ZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5pZGw6CisgICAgICAgICogaHRt
bC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGw6CisKIDIwMjEtMDctMDggIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xpdmUgVGV4dF0gU2VsZWN0aW9u
IGlzIG1pc2FsaWduZWQgb24gc29tZSBpbWFnZXMgb24gdHdpdHRlci5jb20KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNTAwLDcgKzUwMCw2IEBAIGJpbmRpbmdzL2pzL0RPTUdDT3V0cHV0
Q29uc3RyYWludC5jcHAKIGJpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5jcHAKIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
Ci1iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
QWJvcnRTaWduYWxDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0Fic3RyYWN0UmFuZ2VDdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvbkVmZmVjdEN1c3RvbS5jcHAKQEAgLTUwOCw4ICs1
MDcsNiBAQCBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwCiBiaW5kaW5n
cy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlv
VHJhY2tDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAog
YmluZGluZ3MvanMvSlNBdWRpb1dvcmtsZXRQcm9jZXNzb3JDdXN0b20uY3BwCiBiaW5kaW5ncy9q
cy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQmFzZUF1
ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTYxMiwxNCArNjA5LDEwIEBAIGJpbmRpbmdzL2pzL0pT
U3RhdGljUmFuZ2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1
ZUN1c3RvbS5jcHAKLWJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAotYmluZGluZ3Mv
anMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHlw
ZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9t
LmNwcAotYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAotYmluZGluZ3MvanMvSlNW
aWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViQW5pbWF0aW9uQ3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU5OTIsNyArNTk5Miw2IEBACiAJCTA3QjVBMkQ5MTQ2
NDMyMEEwMEE4MUVDRSAvKiBKU1RleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdCNUEyREExNDY0MzIwQTAwQTgxRUNFIC8qIEpTVGV4dFRyYWNrTGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0xpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNUEzMDYxNDY4NTM3MTAwQTgxRUNFIC8qIFRl
eHRUcmFja0xpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja0xpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0I1QTMwQzE0Njg3RDcxMDBBODFFQ0Ug
LyogSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QjcxMTZBMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmVEZXZpY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNzExNkIxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdC
NzExNkMxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmVEZXZpY2VNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDE1LDcgKzYwMTQsNiBAQAogCQkwN0Q2QTRGMTFCRUQ1
Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2QTRGMjFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDdENkE0RjYxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbS5oOyBwYXRoID0gcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTA3RTExNkIwMTQ4
OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTExNzA2MTQ4OUVCRUIwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1
ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRU
cmFja0N1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTNERkQw
MUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTc3NDQsNyArNzc0Miw2IEBACiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAv
KiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2xpZW50T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMDkzODI4
MjM0Nzc5OUEwMDk0MjhCQSAvKiBKU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAv
KiBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWdu
YWxDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGNDI0Rjgy
M0I5MDA0RjkwNzAgLyogVGV4dEVuY29kZXJTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRFbmNvZGVyU3Ry
ZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQThFRjYyNEY4MjNCQTAw
NEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gVGV4
dEVuY29kZXJTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDYyOSwx
MCArMTQ2MjYsNiBAQAogCQlCRTIzNDgwQjE4QTk4NzAzMDBFNEI2RTggLyogRGF0YUN1ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YUN1ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJFNjEwMzlCMThBOUQ2MTIwMERENTBENyAvKiBKU0RhdGFDdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhQ3VlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU2MTAzOUMxOEE5RDYxMjAwREQ1MEQ3IC8qIEpTRGF0YUN1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFDdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlk
ZW9UcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1ZpZGVvVHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCRTZE
RjcwQTE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MEUxNzFDQTJEQTAwREQ1MkI4
IC8qIEpTQXVkaW9UcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1ZGlvVHJhY2tMaXN0
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU4NTVGN0YwNzAxRTgz
NTAwMjM5NzY5IC8qIFdlYkNvcmVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCRTg1NjA1MTA3MDFGOTExMDAy
Mzk3NjkgLyogV2ViQ29yZVZpZXcubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViQ29yZVZpZXcubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJFODhFMEJGMTcxNUNFMjYwMDY1
OEQ5OCAvKiBUcmFja0xpc3RCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRyYWNrTGlzdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjMxNjYsNyArMjMxNTksNiBAQAogCQk3QzNEOEVFNDFFMDhCQUJFMDAyM0IwODQgLyogR0MgLyBX
cmFwcGluZyBPbmx5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQk0MTA5MzgyODIzNDc3OTlBMDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20u
Y3BwICovLAogCQkJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0U2lnbmFsQ3Vz
dG9tLmNwcCAqLywKIAkJCQk5MzU1RUY1MzI1M0E0RDVBMDA2RkY0QTQgLyogSlNBYnN0cmFjdFJh
bmdlQ3VzdG9tLmNwcCAqLywKIAkJCQk3MUVGQ0VERTIwMkIzOUM3MDBEN0M0MTEgLyogSlNBbmlt
YXRpb25FZmZlY3RDdXN0b20uY3BwICovLApAQCAtMjMxNzQsOCArMjMxNjYsNiBAQAogCQkJCUJD
MkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAogCQkJCTQ2QzNB
OEQzMjU0OEQ0QjcwMEM4QzUzQSAvKiBKU0F1ZGlvQnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0
NjY1MzZGQTI2NEM4REQxMDBBQUQxRDcgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICovLAotCQkJ
CUJFNkRGNzBFMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwICovLAot
CQkJCUJFNkRGNzEwMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQk4M0YzN0E2NzI1MzZCMjFCMDBGRjVGM0IgLyogSlNBdWRpb1dvcmtsZXRQcm9j
ZXNzb3JDdXN0b20uY3BwICovLAogCQkJCTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3OCAvKiBKU0F1
dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDY4QjhCREUyNUNDODQ5MzAw
RjY3ODIyIC8qIEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi8sCkBAIC0yMzI0MCwxNSAr
MjMyMzAsMTEgQEAKIAkJCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2Vn
Q3VzdG9tLmNwcCAqLywKIAkJCQk4Mzg4NjlFQjFDRTgxRTlFMDBEMTZBOUUgLyogSlNUZXh0Q3Vz
dG9tLmNwcCAqLywKIAkJCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tD
dWVDdXN0b20uY3BwICovLAotCQkJCTA3RTExNkIwMTQ4OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRU
cmFja0N1c3RvbS5jcHAgKi8sCi0JCQkJMDdCNUEzMEMxNDY4N0Q3MTAwQTgxRUNFIC8qIEpTVGV4
dFRyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJMDcwMzM0RTgxNDVBMUYzNTAwOEQ4RDQ1IC8q
IEpTVHJhY2tDdXN0b20uY3BwICovLAogCQkJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8sCiAJCQkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJl
ZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJCQkJNEJBRkQwRTIyMTkyNjA0RDAwQzBBQjY0IC8qIEpT
VHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwICovLAogCQkJCUY0RTE5NjVBMjFGMjM5NTAw
MDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3VzdG9tLmNwcCAqLywKLQkJCQlCRTZERjcwODE3MUNBMkM1
MDBERDUyQjggLyogSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCAqLywKLQkJCQlCRTZERjcwQTE3MUNB
MkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJNzE1REE1
RDMyMDFCQjkwMjAwMkVGMkIwIC8qIEpTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlE
M0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQWJvcnRDb250cm9sbGVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjc5NzU0
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYm9ydENvbnRyb2xsZXJDdXN0b20u
Y3BwCShub25leGlzdGVudCkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSogQ29weXJpZ2h0IChDKSAy
MDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0qIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0qIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0qIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Fib3J0Q29udHJvbGxlci5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12
b2lkIEpTQWJvcnRDb250cm9sbGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpLnNpZ25hbCgp
KTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBYm9ydENvbnRyb2xs
ZXIpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAJKHJldmlzaW9uIDI3OTc1NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxF
KFZJREVPKQotCi0jaW5jbHVkZSAiSlNBdWRpb1RyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RyYWNr
Q3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsK
LQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQgSlNBdWRpb1RyYWNrOjp2aXNpdEFk
ZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChyb290KCZ3cmFwcGVkKCkpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxf
Q0hJTERSRU4oSlNBdWRpb1RyYWNrKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9U
cmFja0xpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNpbmNs
dWRlICJKU0F1ZGlvVHJhY2tMaXN0LmgiCi0KLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSlNOb2RlQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQgSlNBdWRpb1RyYWNr
TGlzdDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2
aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdCh3cmFwcGVkKCkuZWxlbWVudCgpKSk7Ci19Ci0KLURF
RklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpTQXVkaW9UcmFja0xpc3QpOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAkocmV2aXNpb24gMjc5NzU0KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCShub25leGlz
dGVudCkKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURF
TykKLQotI2luY2x1ZGUgIkpTVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RleHRUcmFja0N1
ZUxpc3QuaCIKLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4K
LXZvaWQgSlNUZXh0VHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwotfQot
Ci1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFjayk7Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDI3OTc1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5j
cHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
RU5BQkxFKFZJREVPKQotCi0jaW5jbHVkZSAiSlNUZXh0VHJhY2tMaXN0LmgiCi0KLSNpbmNsdWRl
ICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNOb2RlQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRv
cj4KLXZvaWQgSlNUZXh0VHJhY2tMaXN0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9y
JiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KHdyYXBwZWQoKS5l
bGVtZW50KCkpKTsKLX0KLSAgICAKLURFRklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpT
VGV4dFRyYWNrTGlzdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0N1c3RvbS5j
cHAJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmlk
ZW9UcmFja0N1c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKFZJREVPKQotCi0jaW5jbHVkZSAiSlNWaWRlb1RyYWNrLmgi
Ci0KLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQg
SlNWaWRlb1RyYWNrOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2aXNpdG9yKQot
ewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KCZ3cmFwcGVkKCkpKTsKLX0KLQotREVG
SU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNWaWRlb1RyYWNrKTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyNzk3NTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNw
cAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoVklERU8pCi0KLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNWaWRlb1Ry
YWNrTGlzdC5oIgotI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+
Ci12b2lkIEpTVmlkZW9UcmFja0xpc3Q6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3Im
IHZpc2l0b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3Qod3JhcHBlZCgpLmVs
ZW1lbnQoKSkpOwotfQotCi1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVv
VHJhY2tMaXN0KTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDg4OSw4ICs0ODg5LDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNlbmRpZlxuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH0pIHsKKyAgICAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCI8d3RmL0dldFB0ci5oPiIpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9u
TmFtZSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVl
Um9vdH07Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QodGhpc09iamVjdC0+d3JhcHBlZCgpLiR7ZnVuY3Rpb25OYW1lfSgpKTtcbiIpOwor
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJvcGFxdWVSb290IiBpZiAkZnVuY3Rpb25OYW1l
IGVxICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChXVEY6OmdldFB0cih0aGlzT2JqZWN0LT53cmFwcGVk
KCkuJHtmdW5jdGlvbk5hbWV9KCkpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1lbW9yeUNvc3R9KSB7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVt
b3J5VmlzaXRlZCh0aGlzT2JqZWN0LT53cmFwcGVkKCkubWVtb3J5Q29zdCgpKTtcbiIpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDI3OTc1NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw3IEBACiBbCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAg
SW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbgorICAg
IEdlbmVyYXRlQWRkT3BhcXVlUm9vdD1zaWduYWwKIF0gaW50ZXJmYWNlIEFib3J0Q29udHJvbGxl
ciB7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAkocmV2aXNp
b24gMjc5NzU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIENvbmRpdGlvbmFsPVZJREVPLAog
ICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbEVsZW1lbnRSb290LAotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgIEdlbmVyYXRl
QWRkT3BhcXVlUm9vdCwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgQXVkaW9UcmFj
ayB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCShyZXZpc2lvbiAyNzk3NTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25k
aXRpb25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwK
LSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QsCiAg
ICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEF1ZGlvVHJhY2tMaXN0IDogRXZlbnRUYXJn
ZXQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwJKHJldmlzaW9uIDI3OTc1NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNyArMzEsNyBAQCBlbnVtIFRleHRUcmFja0tpbmQgeyAic3VidGl0bGVzIiwgImNh
cHRpCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24s
CiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21N
YXJrRnVuY3Rpb24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIFNraXBWVGFibGVW
YWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBUZXh0VHJhY2sgOiBF
dmVudFRhcmdldCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xp
c3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5pZGwJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBB
Y3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAg
R2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBU
ZXh0VHJhY2tMaXN0IDogRXZlbnRUYXJnZXQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHAJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTMgQEAgRWxlbWVudCogVHJh
Y2tCYXNlOjplbGVtZW50KCkKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQuZ2V0KCk7CiB9CiAK
K3ZvaWQqIFRyYWNrQmFzZTo6b3BhcXVlUm9vdCgpCit7CisgICAgaWYgKGF1dG8qIGFzc29jaWF0
ZWRFbGVtZW50ID0gZWxlbWVudCgpKQorICAgICAgICByZXR1cm4gYXNzb2NpYXRlZEVsZW1lbnQt
Pm9wYXF1ZVJvb3QoKTsKKyAgICByZXR1cm4gdGhpczsKK30KKwogdm9pZCBUcmFja0Jhc2U6OnNl
dE1lZGlhRWxlbWVudChXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAg
bV9tZWRpYUVsZW1lbnQgPSBlbGVtZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UcmFja0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrQmFzZS5oCShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RyYWNrQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw5ICs0OSwxMCBAQCBwdWJsaWM6CiAg
ICAgZW51bSBUeXBlIHsgQmFzZVRyYWNrLCBUZXh0VHJhY2ssIEF1ZGlvVHJhY2ssIFZpZGVvVHJh
Y2sgfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorICAgIHZp
cnR1YWwgRWxlbWVudCogZWxlbWVudCgpOworICAgIHZvaWQqIG9wYXF1ZVJvb3QoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TWVkaWFFbGVtZW50KFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4pOwog
ICAgIFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gbWVkaWFFbGVtZW50KCkgeyByZXR1cm4gbV9t
ZWRpYUVsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKTsKIAogICAgIHZp
cnR1YWwgQXRvbVN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0SWQoY29uc3QgQXRvbVN0cmluZyYgaWQpIHsgbV9pZCA9IGlkOyB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAJKHJldmlzaW9uIDI3
OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDEzIEBAIEVsZW1lbnQqIFRyYWNrTGlzdEJhc2U6OmVs
ZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7CiB9CiAKK3ZvaWQqIFRy
YWNrTGlzdEJhc2U6Om9wYXF1ZVJvb3QoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBhc3NvY2lh
dGVkRWxlbWVudCA9IGVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRFbGVtZW50
LT5vcGFxdWVSb290KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHVuc2lnbmVkIFRyYWNr
TGlzdEJhc2U6Omxlbmd0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5iYW5kVHJhY2tzLnNp
emUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCShy
ZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJFbGVtZW50KCk7CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0Owor
ICAgIHZvaWQqIG9wYXF1ZVJvb3QoKSBjb25zdDsKICAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1l
bnQ+IG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogCiAgICAgLy8g
TmVlZHMgdG8gYmUgcHVibGljIHNvIHRyYWNrcyBjYW4gY2FsbCBpdApJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw3ICsyNiw3IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAg
R2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBW
aWRlb1RyYWNrIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwJKHJldmlzaW9u
IDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAog
ICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1l
bnRSb290LAotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgIEdlbmVyYXRlQWRkT3BhcXVl
Um9vdCwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgVmlkZW9UcmFja0xpc3QgOiBF
dmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433170</attachid>
            <date>2021-07-08 15:26:29 -0700</date>
            <delta_ts>2021-07-08 16:08:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227789-20210708152628.patch</filename>
            <type>text/plain</type>
            <size>33733</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA3LTA4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIGN1c3RvbSBi
aW5kaW5nIGNvZGUgd2l0aCBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzc4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFVzZSBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QgZXh0
ZW5kZWQgSURMIG9wdGlvbiB0byByZW1vdmUgbW9yZSBjdXN0b20gYmluZGluZ3MgY29kZS4KKwor
ICAgICAgICBBbHNvIG1hZGUgR2VuZXJhdGVBZGRPcGFxdWVSb290IGRlZmF1bHQgdG8gdXNlIHdy
YXBwZWQgb2JqZWN0J3Mgb3BhcXVlUm9vdCBmdW5jdGlvbi4KKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0Fib3J0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIGRvbS9BYm9ydENvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIGh0bWwv
dHJhY2svQXVkaW9UcmFjay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrTGlz
dC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRsOgorICAgICAgICAqIGh0
bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tCYXNlOjpvcGFxdWVSb290KTogQWRkZWQu
CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0Jhc2UuaDoKKyAgICAgICAgKiBodG1sL3RyYWNr
L1RyYWNrTGlzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6b3Bh
cXVlUm9vdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tMaXN0QmFz
ZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5pZGw6CisgICAgICAgICogaHRt
bC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGw6CisKIDIwMjEtMDctMDggIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xpdmUgVGV4dF0gU2VsZWN0aW9u
IGlzIG1pc2FsaWduZWQgb24gc29tZSBpbWFnZXMgb24gdHdpdHRlci5jb20KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNTAwLDcgKzUwMCw2IEBAIGJpbmRpbmdzL2pzL0RPTUdDT3V0cHV0
Q29uc3RyYWludC5jcHAKIGJpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5jcHAKIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
Ci1iaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
QWJvcnRTaWduYWxDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0Fic3RyYWN0UmFuZ2VDdXN0b20u
Y3BwCiBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvbkVmZmVjdEN1c3RvbS5jcHAKQEAgLTUwOCw4ICs1
MDcsNiBAQCBiaW5kaW5ncy9qcy9KU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwCiBiaW5kaW5n
cy9qcy9KU0F0dHJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyQ3VzdG9tLmNw
cAogYmluZGluZ3MvanMvSlNBdWRpb05vZGVDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlv
VHJhY2tDdXN0b20uY3BwCi1iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAog
YmluZGluZ3MvanMvSlNBdWRpb1dvcmtsZXRQcm9jZXNzb3JDdXN0b20uY3BwCiBiaW5kaW5ncy9q
cy9KU0F1dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQmFzZUF1
ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTYxMiwxNCArNjA5LDEwIEBAIGJpbmRpbmdzL2pzL0pT
U3RhdGljUmFuZ2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1
ZUN1c3RvbS5jcHAKLWJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAotYmluZGluZ3Mv
anMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTVHlw
ZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9t
LmNwcAotYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcAotYmluZGluZ3MvanMvSlNW
aWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViQW5pbWF0aW9uQ3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU5OTIsNyArNTk5Miw2IEBACiAJCTA3QjVBMkQ5MTQ2
NDMyMEEwMEE4MUVDRSAvKiBKU1RleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdCNUEyREExNDY0MzIwQTAwQTgxRUNFIC8qIEpTVGV4dFRyYWNrTGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0xpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNUEzMDYxNDY4NTM3MTAwQTgxRUNFIC8qIFRl
eHRUcmFja0xpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja0xpc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0I1QTMwQzE0Njg3RDcxMDBBODFFQ0Ug
LyogSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QjcxMTZBMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmVEZXZpY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNzExNkIxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdC
NzExNkMxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmVEZXZpY2VNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDE1LDcgKzYwMTQsNiBAQAogCQkwN0Q2QTRGMTFCRUQ1
Rjg4MDAxNzQxNDYgLyogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2QTRGMjFCRUQ1Rjg4MDAxNzQxNDYgLyogTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDdENkE0RjYxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbS5oOyBwYXRoID0gcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTA3RTExNkIwMTQ4
OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTExNzA2MTQ4OUVCRUIwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1
ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRU
cmFja0N1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTNERkQw
MUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTc3NDQsNyArNzc0Miw2IEBACiAJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAv
KiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2xpZW50T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMDkzODI4
MjM0Nzc5OUEwMDk0MjhCQSAvKiBKU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fib3J0Q29udHJvbGxlckN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAv
KiBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWdu
YWxDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGNDI0Rjgy
M0I5MDA0RjkwNzAgLyogVGV4dEVuY29kZXJTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRFbmNvZGVyU3Ry
ZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQThFRjYyNEY4MjNCQTAw
NEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gVGV4
dEVuY29kZXJTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDYyOSwx
MCArMTQ2MjYsNiBAQAogCQlCRTIzNDgwQjE4QTk4NzAzMDBFNEI2RTggLyogRGF0YUN1ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YUN1ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJFNjEwMzlCMThBOUQ2MTIwMERENTBENyAvKiBKU0RhdGFDdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhQ3VlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU2MTAzOUMxOEE5RDYxMjAwREQ1MEQ3IC8qIEpTRGF0YUN1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFDdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MDgxNzFDQTJDNTAwREQ1MkI4IC8qIEpTVmlk
ZW9UcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1ZpZGVvVHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCRTZE
RjcwQTE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU2REY3MEUxNzFDQTJEQTAwREQ1MkI4
IC8qIEpTQXVkaW9UcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1ZGlvVHJhY2tMaXN0
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU4NTVGN0YwNzAxRTgz
NTAwMjM5NzY5IC8qIFdlYkNvcmVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCRTg1NjA1MTA3MDFGOTExMDAy
Mzk3NjkgLyogV2ViQ29yZVZpZXcubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViQ29yZVZpZXcubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJFODhFMEJGMTcxNUNFMjYwMDY1
OEQ5OCAvKiBUcmFja0xpc3RCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRyYWNrTGlzdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjMxNjYsNyArMjMxNTksNiBAQAogCQk3QzNEOEVFNDFFMDhCQUJFMDAyM0IwODQgLyogR0MgLyBX
cmFwcGluZyBPbmx5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQk0MTA5MzgyODIzNDc3OTlBMDA5NDI4QkEgLyogSlNBYm9ydENvbnRyb2xsZXJDdXN0b20u
Y3BwICovLAogCQkJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0U2lnbmFsQ3Vz
dG9tLmNwcCAqLywKIAkJCQk5MzU1RUY1MzI1M0E0RDVBMDA2RkY0QTQgLyogSlNBYnN0cmFjdFJh
bmdlQ3VzdG9tLmNwcCAqLywKIAkJCQk3MUVGQ0VERTIwMkIzOUM3MDBEN0M0MTEgLyogSlNBbmlt
YXRpb25FZmZlY3RDdXN0b20uY3BwICovLApAQCAtMjMxNzQsOCArMjMxNjYsNiBAQAogCQkJCUJD
MkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAogCQkJCTQ2QzNB
OEQzMjU0OEQ0QjcwMEM4QzUzQSAvKiBKU0F1ZGlvQnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk0
NjY1MzZGQTI2NEM4REQxMDBBQUQxRDcgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICovLAotCQkJ
CUJFNkRGNzBFMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwICovLAot
CQkJCUJFNkRGNzEwMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQk4M0YzN0E2NzI1MzZCMjFCMDBGRjVGM0IgLyogSlNBdWRpb1dvcmtsZXRQcm9j
ZXNzb3JDdXN0b20uY3BwICovLAogCQkJCTU3NjA4MjU2MjAxMUJFMDIwMDExNjY3OCAvKiBKU0F1
dGhlbnRpY2F0b3JSZXNwb25zZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDY4QjhCREUyNUNDODQ5MzAw
RjY3ODIyIC8qIEpTQmFzZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi8sCkBAIC0yMzI0MCwxNSAr
MjMyMzAsMTEgQEAKIAkJCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2Vn
Q3VzdG9tLmNwcCAqLywKIAkJCQk4Mzg4NjlFQjFDRTgxRTlFMDBEMTZBOUUgLyogSlNUZXh0Q3Vz
dG9tLmNwcCAqLywKIAkJCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tD
dWVDdXN0b20uY3BwICovLAotCQkJCTA3RTExNkIwMTQ4OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRU
cmFja0N1c3RvbS5jcHAgKi8sCi0JCQkJMDdCNUEzMEMxNDY4N0Q3MTAwQTgxRUNFIC8qIEpTVGV4
dFRyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJMDcwMzM0RTgxNDVBMUYzNTAwOEQ4RDQ1IC8q
IEpTVHJhY2tDdXN0b20uY3BwICovLAogCQkJCTA3ODQ2Mzg0MTQ1QjFCOEUwMEE1OERGMSAvKiBK
U1RyYWNrQ3VzdG9tLmggKi8sCiAJCQkJNTE2QkI3OTIwQ0U5MUU2ODAwNTEyRjc5IC8qIEpTVHJl
ZVdhbGtlckN1c3RvbS5jcHAgKi8sCiAJCQkJNEJBRkQwRTIyMTkyNjA0RDAwQzBBQjY0IC8qIEpT
VHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3BwICovLAogCQkJCUY0RTE5NjVBMjFGMjM5NTAw
MDI4NTA3OCAvKiBKU1VuZG9JdGVtQ3VzdG9tLmNwcCAqLywKLQkJCQlCRTZERjcwODE3MUNBMkM1
MDBERDUyQjggLyogSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCAqLywKLQkJCQlCRTZERjcwQTE3MUNB
MkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJNzE1REE1
RDMyMDFCQjkwMjAwMkVGMkIwIC8qIEpTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlE
M0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBYm9ydENvbnRyb2xsZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQWJvcnRDb250cm9sbGVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjc5NzU0
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYm9ydENvbnRyb2xsZXJDdXN0b20u
Y3BwCShub25leGlzdGVudCkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSogQ29weXJpZ2h0IChDKSAy
MDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0qIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0qIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0qIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Fib3J0Q29udHJvbGxlci5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+Ci12
b2lkIEpTQWJvcnRDb250cm9sbGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpLnNpZ25hbCgp
KTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNBYm9ydENvbnRyb2xs
ZXIpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAJKHJldmlzaW9uIDI3OTc1NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxF
KFZJREVPKQotCi0jaW5jbHVkZSAiSlNBdWRpb1RyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RyYWNr
Q3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsK
LQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQgSlNBdWRpb1RyYWNrOjp2aXNpdEFk
ZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChyb290KCZ3cmFwcGVkKCkpKTsKLX0KLQotREVGSU5FX1ZJU0lUX0FERElUSU9OQUxf
Q0hJTERSRU4oSlNBdWRpb1RyYWNrKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0xpc3RDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9U
cmFja0xpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNpbmNs
dWRlICJKU0F1ZGlvVHJhY2tMaXN0LmgiCi0KLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSlNOb2RlQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNw
YWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQgSlNBdWRpb1RyYWNr
TGlzdDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2
aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdCh3cmFwcGVkKCkuZWxlbWVudCgpKSk7Ci19Ci0KLURF
RklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpTQXVkaW9UcmFja0xpc3QpOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAkocmV2aXNpb24gMjc5NzU0KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCShub25leGlz
dGVudCkKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURF
TykKLQotI2luY2x1ZGUgIkpTVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJKU1RleHRUcmFja0N1
ZUxpc3QuaCIKLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4K
LXZvaWQgSlNUZXh0VHJhY2s6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwotfQot
Ci1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1RleHRUcmFjayk7Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RleHRUcmFja0xpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDI3OTc1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrTGlzdEN1c3RvbS5j
cHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
RU5BQkxFKFZJREVPKQotCi0jaW5jbHVkZSAiSlNUZXh0VHJhY2tMaXN0LmgiCi0KLSNpbmNsdWRl
ICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNOb2RlQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRv
cj4KLXZvaWQgSlNUZXh0VHJhY2tMaXN0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9y
JiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KHdyYXBwZWQoKS5l
bGVtZW50KCkpKTsKLX0KLSAgICAKLURFRklORV9WSVNJVF9BRERJVElPTkFMX0NISUxEUkVOKEpT
VGV4dFRyYWNrTGlzdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0N1c3RvbS5j
cHAJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmlk
ZW9UcmFja0N1c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKFZJREVPKQotCi0jaW5jbHVkZSAiSlNWaWRlb1RyYWNrLmgi
Ci0KLSNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCi0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KLXZvaWQg
SlNWaWRlb1RyYWNrOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihWaXNpdG9yJiB2aXNpdG9yKQot
ewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KCZ3cmFwcGVkKCkpKTsKLX0KLQotREVG
SU5FX1ZJU0lUX0FERElUSU9OQUxfQ0hJTERSRU4oSlNWaWRlb1RyYWNrKTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyNzk3NTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tMaXN0Q3VzdG9tLmNw
cAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoVklERU8pCi0KLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNWaWRlb1Ry
YWNrTGlzdC5oIgotI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5oIgotCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+
Ci12b2lkIEpTVmlkZW9UcmFja0xpc3Q6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFZpc2l0b3Im
IHZpc2l0b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3Qod3JhcHBlZCgpLmVs
ZW1lbnQoKSkpOwotfQotCi1ERUZJTkVfVklTSVRfQURESVRJT05BTF9DSElMRFJFTihKU1ZpZGVv
VHJhY2tMaXN0KTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CShyZXZpc2lvbiAyNzk3NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDg4OSw4ICs0ODg5LDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNlbmRpZlxuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH0pIHsKKyAgICAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCI8d3RmL0dldFB0ci5oPiIpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9u
TmFtZSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVl
Um9vdH07Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QodGhpc09iamVjdC0+d3JhcHBlZCgpLiR7ZnVuY3Rpb25OYW1lfSgpKTtcbiIpOwor
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJvcGFxdWVSb290IiBpZiAkZnVuY3Rpb25OYW1l
IGVxICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChXVEY6OmdldFB0cih0aGlzT2JqZWN0LT53cmFwcGVk
KCkuJHtmdW5jdGlvbk5hbWV9KCkpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1lbW9yeUNvc3R9KSB7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVt
b3J5VmlzaXRlZCh0aGlzT2JqZWN0LT53cmFwcGVkKCkubWVtb3J5Q29zdCgpKTtcbiIpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
QWRkT3BhcXVlUm9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdC5jcHAJKHJldmlzaW9u
IDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNyArMjA2
LDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Q6OnZpc2l0QwogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290Kj4oY2VsbCk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KHRoaXNPYmplY3QtPndyYXBwZWQoKS5vd25lck9iamVjdENvbmN1cnJlbnRs
eSgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoV1RGOjpnZXRQdHIodGhpc09iamVjdC0+
d3JhcHBlZCgpLm93bmVyT2JqZWN0Q29uY3VycmVudGx5KCkpKTsKIH0KIAogREVGSU5FX1ZJU0lU
X0NISUxEUkVOKEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vQWJvcnRDb250cm9sbGVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vQWJvcnRDb250cm9sbGVyLmlkbAkocmV2aXNpb24gMjc5NzU0KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDcgQEAKIFsKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAgR2VuZXJhdGVBZGRP
cGFxdWVSb290PXNpZ25hbAogXSBpbnRlcmZhY2UgQWJvcnRDb250cm9sbGVyIHsKICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCShyZXZpc2lvbiAyNzk3NTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgRXhwb3J0TWFj
cm89V0VCQ09SRV9FWFBPUlQsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJv
b3QsCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290
LAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBBdWRpb1RyYWNrIHsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw3ICsyNyw3IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVZJREVP
LAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAotICAgIEpTQ3VzdG9t
TWFya0Z1bmN0aW9uLAorICAgIEdlbmVyYXRlQWRkT3BhcXVlUm9vdCwKICAgICBFeHBvc2VkPVdp
bmRvdwogXSBpbnRlcmZhY2UgQXVkaW9UcmFja0xpc3QgOiBFdmVudFRhcmdldCB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAkocmV2aXNpb24gMjc5NzU0KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBAIGVudW0gVGV4dFRyYWNrS2luZCB7ICJzdWJ0aXRsZXMiLCAiY2FwdGkKICAgICBDb25k
aXRpb25hbD1WSURFTywKICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwK
KyAgICBHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiAg
ICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFRleHRUcmFjayA6IEV2ZW50VGFyZ2V0IHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbAkocmV2
aXNpb24gMjc5NzU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIEFjdGl2ZURPTU9iamVj
dCwKICAgICBDb25kaXRpb25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxF
bGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFkZE9w
YXF1ZVJvb3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFRleHRUcmFja0xpc3Qg
OiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAkocmV2aXNp
b24gMjc5NzU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxMyBAQCBFbGVtZW50KiBUcmFja0Jhc2U6OmVsZW1l
bnQoKQogICAgIHJldHVybiBtX21lZGlhRWxlbWVudC5nZXQoKTsKIH0KIAordm9pZCogVHJhY2tC
YXNlOjpvcGFxdWVSb290KCkKK3sKKyAgICBpZiAoYXV0byogYXNzb2NpYXRlZEVsZW1lbnQgPSBl
bGVtZW50KCkpCisgICAgICAgIHJldHVybiBhc3NvY2lhdGVkRWxlbWVudC0+b3BhcXVlUm9vdCgp
OworICAgIHJldHVybiB0aGlzOworfQorCiB2b2lkIFRyYWNrQmFzZTo6c2V0TWVkaWFFbGVtZW50
KFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBtX21lZGlhRWxlbWVu
dCA9IGVsZW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgJKHJl
dmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDkgKzQ5LDEwIEBAIHB1YmxpYzoKICAgICBlbnVtIFR5cGUg
eyBCYXNlVHJhY2ssIFRleHRUcmFjaywgQXVkaW9UcmFjaywgVmlkZW9UcmFjayB9OwogICAgIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCisgICAgdmlydHVhbCBFbGVtZW50
KiBlbGVtZW50KCk7CisgICAgdm9pZCogb3BhcXVlUm9vdCgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRNZWRpYUVsZW1lbnQoV2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50Pik7CiAgICAgV2Vha1B0cjxI
VE1MTWVkaWFFbGVtZW50PiBtZWRpYUVsZW1lbnQoKSB7IHJldHVybiBtX21lZGlhRWxlbWVudDsg
fQotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpOwogCiAgICAgdmlydHVhbCBBdG9tU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJZChj
b25zdCBBdG9tU3RyaW5nJiBpZCkgeyBtX2lkID0gaWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcAkocmV2aXNpb24gMjc5NzU0KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjUsNiArNjUsMTMgQEAgRWxlbWVudCogVHJhY2tMaXN0QmFzZTo6ZWxlbWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsKIH0KIAordm9pZCogVHJhY2tMaXN0QmFzZTo6
b3BhcXVlUm9vdCgpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8qIGFzc29jaWF0ZWRFbGVtZW50ID0g
ZWxlbWVudCgpKQorICAgICAgICByZXR1cm4gYXNzb2NpYXRlZEVsZW1lbnQtPm9wYXF1ZVJvb3Qo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdW5zaWduZWQgVHJhY2tMaXN0QmFzZTo6bGVu
Z3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmJhbmRUcmFja3Muc2l6ZSgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgJKHJldmlzaW9uIDI3OTc1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjbGVh
ckVsZW1lbnQoKTsKICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Q7CisgICAgdm9pZCogb3Bh
cXVlUm9vdCgpIGNvbnN0OwogICAgIFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gbWVkaWFFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAKICAgICAvLyBOZWVkcyB0byBiZSBw
dWJsaWMgc28gdHJhY2tzIGNhbiBjYWxsIGl0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVmlkZW9UcmFjay5pZGwJKHJldmlzaW9uIDI3OTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVmlkZW9UcmFjay5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
IFsKICAgICBDb25kaXRpb25hbD1WSURFTywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxF
bGVtZW50Um9vdCwKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICBHZW5lcmF0ZUFkZE9w
YXF1ZVJvb3QsCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIFZpZGVvVHJhY2sgewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmlkbAkocmV2aXNpb24gMjc5NzU0KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9u
YWw9VklERU8sCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgR2VuZXJhdGVBZGRPcGFxdWVSb290LAogICAgIEV4
cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBWaWRlb1RyYWNrTGlzdCA6IEV2ZW50VGFyZ2V0IHsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>