<?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>41888</bug_id>
          
          <creation_ts>2010-07-08 12:24:33 -0700</creation_ts>
          <short_desc>Initial bindings and plumbing for IDBCursor.</short_desc>
          <delta_ts>2010-08-06 03:38:30 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>42583</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Marcus Bulach">bulach</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>bulach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jorlow</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>248426</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-08 12:24:33 -0700</bug_when>
    <thetext>Initial bindings and plumbing for IDBCursor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248430</commentid>
    <comment_count>1</comment_count>
      <attachid>60928</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-08 12:28:27 -0700</bug_when>
    <thetext>Created attachment 60928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248436</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-08 12:32:35 -0700</bug_when>
    <thetext>Attachment 60928 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/storage/IDBCursorRequest.cpp:71:  IDBCursorRequest::continue_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/storage/IDBCursorRequest.h:53:  continue_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 61 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248440</commentid>
    <comment_count>3</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-08 12:39:18 -0700</bug_when>
    <thetext>Hi jorlow, andreip,

Couple of notes:
1. The patch is not yet entirely finished. I didn&apos;t add the new files to most of the projects (specially xcode) in order to keep the meat slightly more visible.

2. This patch also includes https://bugs.webkit.org/show_bug.cgi?id=41613. Please, skip anything related to the code generator here, and focus on the bindings / proxies.

3. There&apos;s also a slightly unrelated change for avoiding the cyclic dependency between IDBAny and IDBDatabaseRequest and a few adoptRef fixes due to http://trac.webkit.org/changeset/62213. If you guys prefer I&apos;m happy to split on a change of its own.

4. The layout test exercises the cursor end-to-end when opening the browser (yay!), but it depends on jorlow&apos;s change to actually do anything useful, i.e., iterate the cursor, rather than just opening it.

Thanks!
Marcus

(In reply to comment #1)
&gt; Created an attachment (id=60928) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248946</commentid>
    <comment_count>4</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-07-09 05:58:47 -0700</bug_when>
    <thetext>Looks good, some comments:

&gt; WebCore/GNUmakefile.am

I think you have some tabs there or the indentation is wrong.

&gt; WebCore/storage/IDBCursorRequest.idl

We don&apos;t have that in the spec anymore. I am not sure anymore what we&apos;re implementing, though...My suggestion would be to remove this altogether and only add a single IDL file, as per the spec.

// class IDBCursor
// ...
// PassRefPtr&lt;IDBKeyRange&gt; m_keyRange;

You don&apos;t want to store a PassRefPtr...make it a RefPtr?

&gt;&gt; PassRefPtr&lt;IDBRequest&gt; request() const;
&gt;&gt;     PassRefPtr&lt;IDBAny&gt; key() const;
 &gt;&gt;     PassRefPtr&lt;IDBAny&gt; value() const;

Why do these return PassRefPtr? Do we transfer ownership? If not, can they be raw pointers?

&gt; class WebIDBKeyRange {
&gt; WebIDBKeyRange(const WebIDBKeyRange&amp; d) { m_private = d.m_private; }

I think you&apos;re supposed to use meaningful variable names instead of &quot;d&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249807</commentid>
    <comment_count>5</comment_count>
      <attachid>60928</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-12 06:57:04 -0700</bug_when>
    <thetext>Comment on attachment 60928
Patch

WebKit/chromium/src/WebIDBObjectStoreImpl.cpp:88
 +  
remove extra newline

WebKit/chromium/src/WebIDBKeyRange.cpp:39
 +  
get rid of this extra newline

WebKit/chromium/src/WebIDBKeyRange.cpp:42
 +  #if WEBKIT_IMPLEMENTATION
This is always defined in chromium/src

WebKit/chromium/src/WebIDBKeyRange.cpp:64
 +  void WebIDBKeyRange::reset()
Do you actually need this?

Where&apos;s the WebIDBKeyRange.h?  Why isn&apos;t WebIDBKeyRange designed like WebIDBDatabaseError (and such)...i.e. a thin wrapper around a WebCore type?  We only do this stuff with Impls and proxies when chromium needs to implement something as well.

WebKit/chromium/src/WebIDBCursorImpl.cpp:32
 +  #if ENABLE(INDEXED_DATABASE)
We don&apos;t use guards in WebKit code usually...we just assume it&apos;s on.

WebKit/chromium/src/WebIDBCallbacksImpl.cpp:67
 +  void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBCursor* webKitInstance)
This should probably follow the model of database errors...


WebCore/storage/IndexedDatabaseRequest.cpp:66
 +      RefPtr&lt;IDBAny&gt; db = IDBAny::create();
Should we add ::create() functions for each type so we can do this inline when creating the requests rather than needing 3 lines to do it?

WebCore/storage/IDBObjectStoreRequest.h:70
 +      PassRefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT);
= 0 is the same thing

WebCore/storage/IDBObjectStoreRequest.cpp:106
 +      RefPtr&lt;IDBAny&gt; db = IDBAny::create();
Hm...these changes shoudl probably all be done in their own cl.

WebCore/storage/IDBObjectStoreImpl.h:53
 +      void openCursor(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT);
don&apos;t need default params

WebCore/storage/IDBObjectStore.h:55
 +      virtual void openCursor(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT) = 0;
don&apos;t need default params

WebCore/storage/IDBKeyRange.h:61
 +  protected:
Why protected?

WebCore/storage/IDBCursorRequest.idl:37
 +          void continue(in [Optional] IDBAny key);
I believe this should be an IDBKey

WebCore/storage/IDBCursorRequest.idl:36
 +          void update(in IDBAny value);
This should probably be a serializedScriptValue

IDBAny is only a return type...and perhaps not very well named?

WebCore/storage/IDBCursorRequest.cpp:79
 +      // FIXME: Implement.
ASSERT_NOT_IMPLEMENTED();

and above

WebCore/storage/IDBCursor.h:53
 +      virtual unsigned short direction() const { return m_direction; }
virtual?  If so, the ~ should be virtual as well probably.

WebCore/storage/IDBCursor.h:37
 +  // FIXME: Make this class pure virtual.
What&apos;s the hold up?



These comments are not exhaustive...shoudl get you started tho.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250605</commentid>
    <comment_count>6</comment_count>
      <attachid>61392</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 10:30:59 -0700</bug_when>
    <thetext>Created attachment 61392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250606</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-13 10:34:39 -0700</bug_when>
    <thetext>Attachment 61392 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/storage/IDBCursorRequest.cpp:78:  IDBCursorRequest::continue_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/storage/IDBCursorRequest.h:53:  continue_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250611</commentid>
    <comment_count>8</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 10:38:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Looks good, some comments:
&gt; 
&gt; &gt; WebCore/GNUmakefile.am
&gt; 
&gt; I think you have some tabs there or the indentation is wrong.
done (but I haven&apos;t added all the files to all makefiles yet anyway..)

&gt; 
&gt; &gt; WebCore/storage/IDBCursorRequest.idl
&gt; 
&gt; We don&apos;t have that in the spec anymore. I am not sure anymore what we&apos;re implementing, though...My suggestion would be to remove this altogether and only add a single IDL file, as per the spec.

as we chatted, I&apos;ll do the big cleanup next.

&gt; 
&gt; // class IDBCursor
&gt; // ...
&gt; // PassRefPtr&lt;IDBKeyRange&gt; m_keyRange;
&gt; 
&gt; You don&apos;t want to store a PassRefPtr...make it a RefPtr?

done.

&gt; 
&gt; &gt;&gt; PassRefPtr&lt;IDBRequest&gt; request() const;
&gt; &gt;&gt;     PassRefPtr&lt;IDBAny&gt; key() const;
&gt;  &gt;&gt;     PassRefPtr&lt;IDBAny&gt; value() const;
&gt; 
&gt; Why do these return PassRefPtr? Do we transfer ownership? If not, can they be raw pointers?
done.

&gt; 
&gt; &gt; class WebIDBKeyRange {
&gt; &gt; WebIDBKeyRange(const WebIDBKeyRange&amp; d) { m_private = d.m_private; }
&gt; 
&gt; I think you&apos;re supposed to use meaningful variable names instead of &quot;d&quot;.
done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250618</commentid>
    <comment_count>9</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 10:45:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 60928 [details])
&gt; WebKit/chromium/src/WebIDBObjectStoreImpl.cpp:88
&gt;  +  
&gt; remove extra newline
&gt; 
&gt; WebKit/chromium/src/WebIDBKeyRange.cpp:39
&gt;  +  
&gt; get rid of this extra newline
done

&gt; 
&gt; WebKit/chromium/src/WebIDBKeyRange.cpp:42
&gt;  +  #if WEBKIT_IMPLEMENTATION
&gt; This is always defined in chromium/src
makes sense. done.

&gt; 
&gt; WebKit/chromium/src/WebIDBKeyRange.cpp:64
&gt;  +  void WebIDBKeyRange::reset()
&gt; Do you actually need this?
removed.

&gt; 
&gt; Where&apos;s the WebIDBKeyRange.h?  Why isn&apos;t WebIDBKeyRange designed like WebIDBDatabaseError (and such)...i.e. a thin wrapper around a WebCore type?  We only do this stuff with Impls and proxies when chromium needs to implement something as well.

WebIDBKeyRange.h is (was?) in the patch. anyways, made a thin wrapper, removed the proxy. thanks for the clarification!

&gt; 
&gt; WebKit/chromium/src/WebIDBCursorImpl.cpp:32
&gt;  +  #if ENABLE(INDEXED_DATABASE)
&gt; We don&apos;t use guards in WebKit code usually...we just assume it&apos;s on.
done.

&gt; 
&gt; WebKit/chromium/src/WebIDBCallbacksImpl.cpp:67
&gt;  +  void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBCursor* webKitInstance)
&gt; This should probably follow the model of database errors...
not sure I understood this bit?

&gt; WebCore/storage/IndexedDatabaseRequest.cpp:66
&gt;  +      RefPtr&lt;IDBAny&gt; db = IDBAny::create();
&gt; Should we add ::create() functions for each type so we can do this inline when creating the requests rather than needing 3 lines to do it?
done in:
 https://bugs.webkit.org/show_bug.cgi?id=42161
landed, merged in the latest patch.

&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.h:70
&gt;  +      PassRefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT);
&gt; = 0 is the same thing
done.

&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:106
&gt;  +      RefPtr&lt;IDBAny&gt; db = IDBAny::create();
&gt; Hm...these changes shoudl probably all be done in their own cl.
done in:
 https://bugs.webkit.org/show_bug.cgi?id=42161

&gt; 
&gt; WebCore/storage/IDBObjectStoreImpl.h:53
&gt;  +      void openCursor(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT);
&gt; don&apos;t need default params
removed.

&gt; 
&gt; WebCore/storage/IDBObjectStore.h:55
&gt;  +      virtual void openCursor(PassRefPtr&lt;IDBCallbacks&gt;, PassRefPtr&lt;IDBKeyRange&gt; range = PassRefPtr&lt;IDBKeyRange&gt;(), unsigned short direction = IDBCursor::NEXT) = 0;
&gt; don&apos;t need default params
removed.

&gt; 
&gt; WebCore/storage/IDBKeyRange.h:61
&gt;  +  protected:
&gt; Why protected?
reverted (this was needed for the proxy, now that it&apos;s a thin wrapper it&apos;s no longer necessary).

&gt; 
&gt; WebCore/storage/IDBCursorRequest.idl:37
&gt;  +          void continue(in [Optional] IDBAny key);
&gt; I believe this should be an IDBKey
done.

&gt; 
&gt; WebCore/storage/IDBCursorRequest.idl:36
&gt;  +          void update(in IDBAny value);
&gt; This should probably be a serializedScriptValue
done.

&gt; 
&gt; IDBAny is only a return type...and perhaps not very well named?
&gt; 
&gt; WebCore/storage/IDBCursorRequest.cpp:79
&gt;  +      // FIXME: Implement.
&gt; ASSERT_NOT_IMPLEMENTED();
done (nit: notImplemented())

&gt; 
&gt; and above
&gt; 
&gt; WebCore/storage/IDBCursor.h:53
&gt;  +      virtual unsigned short direction() const { return m_direction; }
&gt; virtual?  If so, the ~ should be virtual as well probably.
made it a pure virtual interface.

&gt; 
&gt; WebCore/storage/IDBCursor.h:37
&gt;  +  // FIXME: Make this class pure virtual.
&gt; What&apos;s the hold up?
I should&apos;ve done before...

&gt; 
&gt; 
&gt; 
&gt; These comments are not exhaustive...shoudl get you started tho.
thanks! I uploaded another patch. I&apos;d appreciate if you could please take another *quick* :) look at it, as it&apos;s not yet final.
(it depends on your add / serializedscriptvalue landing..)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250650</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-13 11:41:00 -0700</bug_when>
    <thetext>Attachment 61392 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3486290</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250653</commentid>
    <comment_count>11</comment_count>
      <attachid>61392</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-13 11:49:27 -0700</bug_when>
    <thetext>Comment on attachment 61392
Patch

This patch is too large.  Please at least do the WebKit API changes in a separate patch.  Also, consider breaking this patch into even smaller pieces.  Drive-by comments below.

WebCore/GNUmakefile.am:2580
 +    WebCore/storage/IDBCursor.idl \
Bad indent.

WebCore/WebCore.vcproj/WebCore.vcproj:50055
 +        &lt;File
Bad indent.

WebCore/bindings/scripts/CodeGenerator.pm:480
 +      return $name . &quot;_&quot; if exists $cppReservedKeyWords{$name};
Yuck

WebCore/storage/IDBCursor.h:39
 +      // Keep in sync with what&apos;s in the .idl file.
Can we assert this at compile time?

WebCore/storage/IDBCursorImpl.cpp:35
 +  class IDBCursorImpl : public IDBCursor {
What&apos;s the point of hiding the Impl class?

WebCore/storage/IDBObjectStoreRequest.cpp:115
 +      return request;
request.release()

Please read http://webkit.org/coding/RefPtr.html if you haven&apos;t already.

WebKit/chromium/public/WebIDBKeyRange.h:32
 +  namespace WebCore { class IDBKeyRange; }
Please put this on multiple lines so we can add more as needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250691</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-13 13:08:01 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 61392 [details])
&gt; This patch is too large.  Please at least do the WebKit API changes in a separate patch.  Also, consider breaking this patch into even smaller pieces.  Drive-by comments below.

It&apos;s mostly just boilerplate/build files.  And the only way to land this in chunks is either to land dead code (which we&apos;re normally against as a project) or to break chromium in the process (like splitting the WebKit parts into their own patch).

I&apos;m happy to review this as is, so I don&apos;t think he should split it up.

&gt; WebCore/bindings/scripts/CodeGenerator.pm:480
&gt;  +      return $name . &quot;_&quot; if exists $cppReservedKeyWords{$name};
&gt; Yuck

Really?  Most of the file looks like this.

&gt; WebCore/storage/IDBCursor.h:39
&gt;  +      // Keep in sync with what&apos;s in the .idl file.
&gt; Can we assert this at compile time?

The only way I can think of is if we added some option for the code generator to add such asserts.  This actually does seem like a good idea.

&gt; WebCore/storage/IDBCursorImpl.cpp:35
&gt;  +  class IDBCursorImpl : public IDBCursor {
&gt; What&apos;s the point of hiding the Impl class?

So that half can run in the Chrome browser process.  This is how all of IndexedDB, LocalStorage, and apparently now WebKit2 works.

&gt; WebCore/storage/IDBObjectStoreRequest.cpp:115
&gt;  +      return request;
&gt; request.release()

&gt; WebKit/chromium/public/WebIDBKeyRange.h:32
&gt;  +  namespace WebCore { class IDBKeyRange; }
&gt; Please put this on multiple lines so we can add more as needed.

This is done many places in the WebKit API last time I checked.  After thinking about it, it does seem slightly better but I&apos;d be interested to hear what Darin thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250720</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-13 13:53:19 -0700</bug_when>
    <thetext>&gt; It&apos;s mostly just boilerplate/build files.  And the only way to land this in chunks is either to land dead code (which we&apos;re normally against as a project) or to break chromium in the process (like splitting the WebKit parts into their own patch).
&gt;
&gt; I&apos;m happy to review this as is, so I don&apos;t think he should split it up.

Ok.  You&apos;ll need fishd to review as well since this touches the WebKit API.

&gt; &gt; WebCore/bindings/scripts/CodeGenerator.pm:480
&gt; &gt;  +      return $name . &quot;_&quot; if exists $cppReservedKeyWords{$name};
&gt; &gt; Yuck
&gt; 
&gt; Really?  Most of the file looks like this.

I mean that we&apos;re mangling the IDL names in this magical way.  Maybe a better design would be to add an IDL attribute to explain exactly what&apos;s going on?  [ImplementationName=continue_] ?

&gt; &gt; WebCore/storage/IDBCursorImpl.cpp:35
&gt; &gt;  +  class IDBCursorImpl : public IDBCursor {
&gt; &gt; What&apos;s the point of hiding the Impl class?
&gt; 
&gt; So that half can run in the Chrome browser process.  This is how all of IndexedDB, LocalStorage, and apparently now WebKit2 works.

Ok.  that wasn&apos;t clear to me from the patch, but I&apos;m not an expert on this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251093</commentid>
    <comment_count>14</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-14 03:32:01 -0700</bug_when>
    <thetext>thanks, Adam! replies inline:

(In reply to comment #11)
&gt; (From update of attachment 61392 [details])
&gt; This patch is too large.  Please at least do the WebKit API changes in a separate patch.  Also, consider breaking this patch into even smaller pieces.  Drive-by comments below.
&gt; 
&gt; WebCore/GNUmakefile.am:2580
&gt;  +    WebCore/storage/IDBCursor.idl \
&gt; Bad indent.
&gt; 
&gt; WebCore/WebCore.vcproj/WebCore.vcproj:50055
&gt;  +        &lt;File
&gt; Bad indent.
as mentioned above, this is not yet finished. please ignore any project files for the time being.

&gt; 
&gt; WebCore/bindings/scripts/CodeGenerator.pm:480
&gt;  +      return $name . &quot;_&quot; if exists $cppReservedKeyWords{$name};
&gt; Yuck
Yuck indeed! :)
This is being implemented as a separate patch, I added you to
https://bugs.webkit.org/show_bug.cgi?id=41613
Happy to hear any suggestion.

&gt; 
&gt; WebCore/storage/IDBCursor.h:39
&gt;  +      // Keep in sync with what&apos;s in the .idl file.
&gt; Can we assert this at compile time?
Good idea! We could probably improve the code generator to assert this.
I&apos;ll add a separate patch for it.

&gt; WebCore/storage/IDBCursorImpl.cpp:35
&gt;  +  class IDBCursorImpl : public IDBCursor {
&gt; What&apos;s the point of hiding the Impl class?
as jorlow replied below.

&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:115
&gt;  +      return request;
&gt; request.release()
ugh. done, in several places in the file.

&gt; 
&gt; Please read http://webkit.org/coding/RefPtr.html if you haven&apos;t already.
thanks for the refresher.

&gt; 
&gt; WebKit/chromium/public/WebIDBKeyRange.h:32
&gt;  +  namespace WebCore { class IDBKeyRange; }
&gt; Please put this on multiple lines so we can add more as needed.
as jeremy said, this is fairly common.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251218</commentid>
    <comment_count>15</comment_count>
      <attachid>61392</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-14 09:01:08 -0700</bug_when>
    <thetext>Comment on attachment 61392
Patch

WebKit/chromium/public/WebIDBKeyRange.h:48
 +  #if WEBKIT_IMPLEMENTATION
nit: the WEBKIT_IMPLEMENTATION section normally goes just before the private: label.

WebKit/chromium/src/IDBCursorProxy.h:52
 +  
nit: only one new line here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252626</commentid>
    <comment_count>16</comment_count>
      <attachid>61831</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-16 11:34:31 -0700</bug_when>
    <thetext>Created attachment 61831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252631</commentid>
    <comment_count>17</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-16 11:39:56 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=61831) [details]
&gt; Patch

hi everyone, thanks all for the many comments!
this is NOT yet final, I&apos;ll still do a round of cleanup / address some of the comments.

however, my main goal with this patch is to to have the bare minimum implementation in order to have a layout test that successfully adds a key/value pair and retrieves it via cursor.

I&apos;ll upload a &quot;tidy&quot; patch soon but I&apos;d appreciate any early comments, specially with regards to the architecture / layering, and/or ideas on how to split this patch without adding dead / untested code.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253341</commentid>
    <comment_count>18</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-19 12:44:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; Created an attachment (id=61831) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; hi everyone, thanks all for the many comments!
&gt; this is NOT yet final, I&apos;ll still do a round of cleanup / address some of the comments.
&gt; 
&gt; however, my main goal with this patch is to to have the bare minimum implementation in order to have a layout test that successfully adds a key/value pair and retrieves it via cursor.
&gt; 
&gt; I&apos;ll upload a &quot;tidy&quot; patch soon but I&apos;d appreciate any early comments, specially with regards to the architecture / layering, and/or ideas on how to split this patch without adding dead / untested code.
&gt; 
&gt; Thanks!

I split some independent bits of this patch into:
https://bugs.webkit.org/show_bug.cgi?id=42583, hopefully it&apos;ll help a bit with reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257276</commentid>
    <comment_count>19</comment_count>
      <attachid>62853</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-28 11:55:09 -0700</bug_when>
    <thetext>Created attachment 62853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257277</commentid>
    <comment_count>20</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-28 11:56:32 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=62853) [details]
&gt; Patch

the other patches have landed, this is now ready for reaview. another look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257327</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 13:11:13 -0700</bug_when>
    <thetext>Attachment 62853 did not build on chromium:
Build output: http://queues.webkit.org/results/3576612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257622</commentid>
    <comment_count>22</comment_count>
      <attachid>62935</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-29 04:05:05 -0700</bug_when>
    <thetext>Created attachment 62935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258140</commentid>
    <comment_count>23</comment_count>
      <attachid>62935</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-30 04:37:04 -0700</bug_when>
    <thetext>Comment on attachment 62935
Patch

Please redo the names in this patch to match the latest flavor of the week.

LayoutTests/storage/indexeddb/script-tests/open-cursor.js:29
 +  function openCursor(objectStore)
Maybe put above dataAddedSuccess so everything&apos;s in revert chronological order?

LayoutTests/storage/indexeddb/script-tests/open-cursor.js:16
 +  function dataAddedSuccess()
Not needed...just have the success call open cursor directly or pull that logic into this.

There&apos;s no inheritance of IDLs in the latest spec.  So please merge the 2 files.

WebCore/GNUmakefile.am:2854
 +    WebCore/storage/IDBCursor.cpp \
spacing issue

WebCore/storage/IDBCursor.h:43
 +      // Keep in sync with what&apos;s in the .idl file.
Remove comment and use your automated mechanism.

WebCore/storage/IDBCursor.h:41
 +  class IDBCursor : public RefCounted&lt;IDBCursor&gt; {
The interfaces we&apos;ve been doing threadsafe ref counted since they could be used on a worker or the main thread once we add it to workers.  (If I were doing it again, I would have waited until we actually needed it to be threadsafe to do this, but it&apos;s better to be consistent at this point I think.)

WebCore/storage/IDBCursorImpl.cpp:29
 +  #include &quot;IDBAny.h&quot;
put inside guard...here an elsewhere...from now on

WebCore/storage/IDBCursorImpl.cpp:68
 +  long long IDBCursorImpl::count() const
Could just be inline...but doesn&apos;t matter much either way.

WebCore/storage/IDBCursorImpl.cpp:74
 +  {
ASSERT_NOT_REACHED()

+ FIXME

WebCore/storage/IDBCursorImpl.h:57
 +      unsigned short m_direction;
This should be an enum, right?

WebCore/storage/IDBCursorImpl.h:60
 +      int m_count;
long long?

WebCore/storage/IDBCursorImpl.h:43
 +      IDBCursorImpl(PassRefPtr&lt;IDBObjectStoreImpl&gt;, PassRefPtr&lt;IDBKeyRange&gt;, unsigned short direction, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SerializedScriptValue&gt;, int count);
make private, add ::create method.

WebCore/storage/IDBCursorRequest.cpp:62
 +      return m_cursor-&gt;count();
Could be inline...but I don&apos;t care much.

WebCore/storage/IDBObjectStoreImpl.cpp:139
 +      int count = value ? 1 : 0;
we should move count all together since we&apos;re not doing sync cursors.

WebCore/storage/IDBObjectStoreImpl.cpp:141
 +        value = SerializedScriptValue::create();
Aren&apos;t we supposed to return a null cursor in this case?

WebCore/storage/IDBObjectStoreImpl.cpp:138
 +      RefPtr&lt;SerializedScriptValue&gt; value = m_tree-&gt;get(key.get());
This isn&apos;t right...what if the value doesn&apos;t exist but we can find something higher/lower (depending on cursor type) than that?  m_tree will need some new methods I guess.

WebCore/storage/IDBObjectStoreImpl.cpp:137
 +      RefPtr&lt;IDBKey&gt; key = range-&gt;left();
This doesn&apos;t handle direction.

WebCore/storage/IDBObjectStoreRequest.cpp:66
 +      return request.release();
Maybe do in another patch?  (And look at the other files too?)

WebKit/chromium/public/WebIDBCursor.h:44
 +          WEBKIT_ASSERT_NOT_REACHED();
Should be easy to implement in this CL.

WebKit/chromium/public/WebIDBKeyRange.h:43
 +      WEBKIT_API WebIDBKeyRange(const WebIDBKeyRange&amp; keyRange) { m_private = keyRange.m_private; }
This won&apos;t work.  You need to make an assign method that does this and just call assign.

Similarly ~ should be inline and call reset().

All methods that aren&apos;t inline and aren&apos;t virtual should have a WEBKIT_API prefix.

WebKit/chromium/src/IDBCursorProxy.h:56
 +      PassOwnPtr&lt;WebKit::WebIDBCursor&gt; m_idbCursor;
RefPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260081</commentid>
    <comment_count>24</comment_count>
      <attachid>63462</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-04 10:14:58 -0700</bug_when>
    <thetext>Created attachment 63462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260088</commentid>
    <comment_count>25</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-04 10:24:03 -0700</bug_when>
    <thetext>thanks for the detailed review, Jeremy!
replies inline:

(In reply to comment #23)
&gt; (From update of attachment 62935 [details])
&gt; Please redo the names in this patch to match the latest flavor of the week.
done.. this is now inline with the new spec, but everything has changed since the last patch. please, take a deep look at it.
andrei, could you also double check the naming conventions match the spec?

&gt; 
&gt; LayoutTests/storage/indexeddb/script-tests/open-cursor.js:29
&gt;  +  function openCursor(objectStore)
&gt; Maybe put above dataAddedSuccess so everything&apos;s in revert chronological order?
done.

&gt; 
&gt; LayoutTests/storage/indexeddb/script-tests/open-cursor.js:16
&gt;  +  function dataAddedSuccess()
&gt; Not needed...just have the success call open cursor directly or pull that logic into this.
done.

&gt; 
&gt; There&apos;s no inheritance of IDLs in the latest spec.  So please merge the 2 files.
done.

&gt; 
&gt; WebCore/GNUmakefile.am:2854
&gt;  +    WebCore/storage/IDBCursor.cpp \
&gt; spacing issue
done.

&gt; 
&gt; WebCore/storage/IDBCursor.h:43
&gt;  +      // Keep in sync with what&apos;s in the .idl file.
&gt; Remove comment and use your automated mechanism.
uh, the automated mechanism just adds compile-time asserts, it&apos;s still necessary to keep in sync..

&gt; 
&gt; WebCore/storage/IDBCursor.h:41
&gt;  +  class IDBCursor : public RefCounted&lt;IDBCursor&gt; {
&gt; The interfaces we&apos;ve been doing threadsafe ref counted since they could be used on a worker or the main thread once we add it to workers.  (If I were doing it again, I would have waited until we actually needed it to be threadsafe to do this, but it&apos;s better to be consistent at this point I think.)

Done.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.cpp:29
&gt;  +  #include &quot;IDBAny.h&quot;
&gt; put inside guard...here an elsewhere...from now on

Done.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.cpp:68
&gt;  +  long long IDBCursorImpl::count() const
&gt; Could just be inline...but doesn&apos;t matter much either way.
count() has been removed.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.cpp:74
&gt;  +  {
&gt; ASSERT_NOT_REACHED()
&gt; 
&gt; + FIXME
done.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.h:57
&gt;  +      unsigned short m_direction;
&gt; This should be an enum, right?
yep, done.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.h:60
&gt;  +      int m_count;
&gt; long long?
count has been removed.

&gt; 
&gt; WebCore/storage/IDBCursorImpl.h:43
&gt;  +      IDBCursorImpl(PassRefPtr&lt;IDBObjectStoreImpl&gt;, PassRefPtr&lt;IDBKeyRange&gt;, unsigned short direction, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SerializedScriptValue&gt;, int count);
&gt; make private, add ::create method.
Done.

&gt; 
&gt; WebCore/storage/IDBCursorRequest.cpp:62
&gt;  +      return m_cursor-&gt;count();
&gt; Could be inline...but I don&apos;t care much.
count has been removed.

&gt; 
&gt; WebCore/storage/IDBObjectStoreImpl.cpp:139
&gt;  +      int count = value ? 1 : 0;
&gt; we should move count all together since we&apos;re not doing sync cursors.
agreed. removed.

&gt; 
&gt; WebCore/storage/IDBObjectStoreImpl.cpp:141
&gt;  +        value = SerializedScriptValue::create();
&gt; Aren&apos;t we supposed to return a null cursor in this case?
sounds good. done.

&gt; 
&gt; WebCore/storage/IDBObjectStoreImpl.cpp:138
&gt;  +      RefPtr&lt;SerializedScriptValue&gt; value = m_tree-&gt;get(key.get());
&gt; This isn&apos;t right...what if the value doesn&apos;t exist but we can find something higher/lower (depending on cursor type) than that?  m_tree will need some new methods I guess.
yeah, as we talked, this is the bare minimum necessary to exercise the API and the plumbing pipeline, so it works only with a single key.
continue, update, remove aren&apos;t implemented yet, I guess it&apos;s better to wait for the new actual storage before implementing them.


&gt; 
&gt; WebCore/storage/IDBObjectStoreImpl.cpp:137
&gt;  +      RefPtr&lt;IDBKey&gt; key = range-&gt;left();
&gt; This doesn&apos;t handle direction.
as above.

&gt; 
&gt; WebCore/storage/IDBObjectStoreRequest.cpp:66
&gt;  +      return request.release();
&gt; Maybe do in another patch?  (And look at the other files too?)
I&apos;ll split this in a separate patch soon.

&gt; 
&gt; WebKit/chromium/public/WebIDBCursor.h:44
&gt;  +          WEBKIT_ASSERT_NOT_REACHED();
&gt; Should be easy to implement in this CL.
as above, not yet implemented.

&gt; 
&gt; WebKit/chromium/public/WebIDBKeyRange.h:43
&gt;  +      WEBKIT_API WebIDBKeyRange(const WebIDBKeyRange&amp; keyRange) { m_private = keyRange.m_private; }
&gt; This won&apos;t work.  You need to make an assign method that does this and just call assign.
&gt; 
&gt; Similarly ~ should be inline and call reset().
&gt; 
&gt; All methods that aren&apos;t inline and aren&apos;t virtual should have a WEBKIT_API prefix.
thanks for the explanation, fixed.


&gt; 
&gt; WebKit/chromium/src/IDBCursorProxy.h:56
&gt;  +      PassOwnPtr&lt;WebKit::WebIDBCursor&gt; m_idbCursor;
&gt; RefPtr
OwnPtr, actually :)
done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260485</commentid>
    <comment_count>26</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-05 02:40:57 -0700</bug_when>
    <thetext>more renames went in, I&apos;m merging this patch (again).. please wait for a new patch to review.

(In reply to comment #25)
&gt; thanks for the detailed review, Jeremy!
&gt; replies inline:
&gt; 
&gt; (In reply to comment #23)
&gt; &gt; (From update of attachment 62935 [details] [details])
&gt; &gt; Please redo the names in this patch to match the latest flavor of the week.
&gt; done.. this is now inline with the new spec, but everything has changed since the last patch. please, take a deep look at it.
&gt; andrei, could you also double check the naming conventions match the spec?
&gt; 
&gt; &gt; 
&gt; &gt; LayoutTests/storage/indexeddb/script-tests/open-cursor.js:29
&gt; &gt;  +  function openCursor(objectStore)
&gt; &gt; Maybe put above dataAddedSuccess so everything&apos;s in revert chronological order?
&gt; done.
&gt; 
&gt; &gt; 
&gt; &gt; LayoutTests/storage/indexeddb/script-tests/open-cursor.js:16
&gt; &gt;  +  function dataAddedSuccess()
&gt; &gt; Not needed...just have the success call open cursor directly or pull that logic into this.
&gt; done.
&gt; 
&gt; &gt; 
&gt; &gt; There&apos;s no inheritance of IDLs in the latest spec.  So please merge the 2 files.
&gt; done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/GNUmakefile.am:2854
&gt; &gt;  +    WebCore/storage/IDBCursor.cpp \
&gt; &gt; spacing issue
&gt; done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursor.h:43
&gt; &gt;  +      // Keep in sync with what&apos;s in the .idl file.
&gt; &gt; Remove comment and use your automated mechanism.
&gt; uh, the automated mechanism just adds compile-time asserts, it&apos;s still necessary to keep in sync..
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursor.h:41
&gt; &gt;  +  class IDBCursor : public RefCounted&lt;IDBCursor&gt; {
&gt; &gt; The interfaces we&apos;ve been doing threadsafe ref counted since they could be used on a worker or the main thread once we add it to workers.  (If I were doing it again, I would have waited until we actually needed it to be threadsafe to do this, but it&apos;s better to be consistent at this point I think.)
&gt; 
&gt; Done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.cpp:29
&gt; &gt;  +  #include &quot;IDBAny.h&quot;
&gt; &gt; put inside guard...here an elsewhere...from now on
&gt; 
&gt; Done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.cpp:68
&gt; &gt;  +  long long IDBCursorImpl::count() const
&gt; &gt; Could just be inline...but doesn&apos;t matter much either way.
&gt; count() has been removed.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.cpp:74
&gt; &gt;  +  {
&gt; &gt; ASSERT_NOT_REACHED()
&gt; &gt; 
&gt; &gt; + FIXME
&gt; done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.h:57
&gt; &gt;  +      unsigned short m_direction;
&gt; &gt; This should be an enum, right?
&gt; yep, done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.h:60
&gt; &gt;  +      int m_count;
&gt; &gt; long long?
&gt; count has been removed.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorImpl.h:43
&gt; &gt;  +      IDBCursorImpl(PassRefPtr&lt;IDBObjectStoreImpl&gt;, PassRefPtr&lt;IDBKeyRange&gt;, unsigned short direction, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SerializedScriptValue&gt;, int count);
&gt; &gt; make private, add ::create method.
&gt; Done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBCursorRequest.cpp:62
&gt; &gt;  +      return m_cursor-&gt;count();
&gt; &gt; Could be inline...but I don&apos;t care much.
&gt; count has been removed.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBObjectStoreImpl.cpp:139
&gt; &gt;  +      int count = value ? 1 : 0;
&gt; &gt; we should move count all together since we&apos;re not doing sync cursors.
&gt; agreed. removed.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBObjectStoreImpl.cpp:141
&gt; &gt;  +        value = SerializedScriptValue::create();
&gt; &gt; Aren&apos;t we supposed to return a null cursor in this case?
&gt; sounds good. done.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBObjectStoreImpl.cpp:138
&gt; &gt;  +      RefPtr&lt;SerializedScriptValue&gt; value = m_tree-&gt;get(key.get());
&gt; &gt; This isn&apos;t right...what if the value doesn&apos;t exist but we can find something higher/lower (depending on cursor type) than that?  m_tree will need some new methods I guess.
&gt; yeah, as we talked, this is the bare minimum necessary to exercise the API and the plumbing pipeline, so it works only with a single key.
&gt; continue, update, remove aren&apos;t implemented yet, I guess it&apos;s better to wait for the new actual storage before implementing them.
&gt; 
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBObjectStoreImpl.cpp:137
&gt; &gt;  +      RefPtr&lt;IDBKey&gt; key = range-&gt;left();
&gt; &gt; This doesn&apos;t handle direction.
&gt; as above.
&gt; 
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBObjectStoreRequest.cpp:66
&gt; &gt;  +      return request.release();
&gt; &gt; Maybe do in another patch?  (And look at the other files too?)
&gt; I&apos;ll split this in a separate patch soon.
&gt; 
&gt; &gt; 
&gt; &gt; WebKit/chromium/public/WebIDBCursor.h:44
&gt; &gt;  +          WEBKIT_ASSERT_NOT_REACHED();
&gt; &gt; Should be easy to implement in this CL.
&gt; as above, not yet implemented.
&gt; 
&gt; &gt; 
&gt; &gt; WebKit/chromium/public/WebIDBKeyRange.h:43
&gt; &gt;  +      WEBKIT_API WebIDBKeyRange(const WebIDBKeyRange&amp; keyRange) { m_private = keyRange.m_private; }
&gt; &gt; This won&apos;t work.  You need to make an assign method that does this and just call assign.
&gt; &gt; 
&gt; &gt; Similarly ~ should be inline and call reset().
&gt; &gt; 
&gt; &gt; All methods that aren&apos;t inline and aren&apos;t virtual should have a WEBKIT_API prefix.
&gt; thanks for the explanation, fixed.
&gt; 
&gt; 
&gt; &gt; 
&gt; &gt; WebKit/chromium/src/IDBCursorProxy.h:56
&gt; &gt;  +      PassOwnPtr&lt;WebKit::WebIDBCursor&gt; m_idbCursor;
&gt; &gt; RefPtr
&gt; OwnPtr, actually :)
&gt; done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260511</commentid>
    <comment_count>27</comment_count>
      <attachid>63574</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-05 04:15:50 -0700</bug_when>
    <thetext>Created attachment 63574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260512</commentid>
    <comment_count>28</comment_count>
      <attachid>63462</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-05 04:16:26 -0700</bug_when>
    <thetext>Comment on attachment 63462
Patch

merged with the latest changes, ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260560</commentid>
    <comment_count>29</comment_count>
      <attachid>63462</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-05 06:19:09 -0700</bug_when>
    <thetext>Comment on attachment 63462
Patch

WebCore/WebCore.vcproj/WebCore.vcproj:50244
 +          RelativePath=&quot;..\storage\IDBCursor.cpp&quot;
intending is wrong

WebCore/storage/IDBCursor.h:48
 +      // Keep in sync with what&apos;s in the .idl file.
don&apos;t need this comment anymore, right?

WebCore/storage/IDBCursor.idl:31
 +          // Keep in sync with what&apos;s in the .h file.
ditto?

WebCore/storage/IDBObjectStoreImpl.cpp:142
 +      callbacks-&gt;onSuccess(cursor.release());
Please double check this is what the spec specifies for the case that the key doesn&apos;t exist.

WebCore/storage/IDBObjectStoreRequest.h:69
 +      PassRefPtr&lt;IDBRequest&gt; openCursor(ScriptExecutionContext*, PassRefPtr&lt;IDBKeyRange&gt; range = 0, unsigned short direction = IDBCursor::NEXT);
do you have to define the variable name in order to do a default param?  if not, delete &quot;range&quot;

WebKit/chromium/public/WebIDBKeyRange.h:55
 +      WebIDBKeyRange(const WTF::PassRefPtr&lt;WebCore::IDBKeyRange&gt;&amp;);
if you do one, do all three

WebKit/chromium/src/WebIDBCursorImpl.cpp:71
 +  
extra new line


r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260637</commentid>
    <comment_count>30</comment_count>
      <attachid>63462</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-05 08:53:26 -0700</bug_when>
    <thetext>Comment on attachment 63462
Patch

Cleared Jeremy Orlow&apos;s review+ from obsolete attachment 63462 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261176</commentid>
    <comment_count>31</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-08-06 03:38:30 -0700</bug_when>
    <thetext>Committed r64828: &lt;http://trac.webkit.org/changeset/64828&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60928</attachid>
            <date>2010-07-08 12:28:27 -0700</date>
            <delta_ts>2010-07-13 10:30:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100708202824.patch</filename>
            <type>text/plain</type>
            <size>89413</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYjU3MjU3ZjZmNGQzMDk1NmY5OTk2Njc1ZGQ5ODQ5M2Y3NjJkN2U0Li42YzE0NWZm
NzM5Y2RkOWY4YTgzZWUwYWRlMTM3ODI3MzNjNWM4ZTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDctMDggIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAg
KGN1cnNvclN1Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChw
b3B1bGF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAg
KHRlc3QpOgorCiAyMDEwLTA3LTA1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzhjYTBkNTBjMWVkNTNiM2JiODc2YWFjZTBkNGYwNjFm
ZmI0MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aWRiLW9wZW5jdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTcgQEAKK1Rlc3QgSW5kZXhl
ZERCJ3Mgb3BlbkN1cnNvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9y
dCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVl
CitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6
CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2RiID0gZXZlbnQucmVzdWx0
CitkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3Vs
dCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQn
IGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQor
QW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgor
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitvYmplY3RTdG9yZSA9IGV2ZW50
LnJlc3VsdAorT3BlbmluZyBjdXJzb3IKK0N1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LgorUEFT
UyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKwor
UEFTUyBldmVudC5yZXN1bHQuY291bnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pZGItb3BlbmN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaWRiLW9wZW5jdXJzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTQxNmNmZjZmYTQ2NTlhODA0ZTY0
YmJkOTQwNWY4Nzg4NGFhOTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Njcmlw
dC10ZXN0cy9pZGItb3BlbmN1cnNvci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3NjcmlwdC10ZXN0cy9pZGItb3BlbmN1cnNvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWY2NzMzY2JlYzhm
MzEwYmRlNDFlZGJlNTk0YzFhM2YxZjk5NjFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzCkBAIC0w
LDAgKzEsNjIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCit7CisgICAg
ZGVidWcoIkN1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LiIpCisgICAgdmVyaWZ5UmVzdWx0KHJl
c3VsdCk7CisgICAgLy8gRklYTUU6IE9uY2Ugd2UgaGF2ZSBkYXRhLCBjaGVjayB0aGUgY29ycmVj
dCBjb3VudCBhbmQgdGhhdCB3ZSBjYW4gaXRlcmF0ZSB0aGUgY3Vyc29yLgorICAgIHNob3VsZEJl
KCJldmVudC5yZXN1bHQuY291bnQiLCAiMCIpOworICAgIGRvbmUoKTsKK30KKworZnVuY3Rpb24g
ZGF0YUFkZGVkU3VjY2VzcygpCit7CisgICAgLy8gRklYTUU6IG9wZW4gY3Vyc29yIGhlcmUuCit9
CisKK2Z1bmN0aW9uIHBvcHVsYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCit7CisgICAgcmVz
dWx0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdrZXknLCAndmFsdWUnKSIpOworICAg
IHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkYXRhQWRkZWRT
dWNjZXNzOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIG9wZW5DdXJzb3Iob2JqZWN0U3RvcmUpCit7CisgICAgZGVidWcoIk9wZW5p
bmcgY3Vyc29yIik7CisgICAgdmFyIGtleVJhbmdlID0gaW5kZXhlZERCLm1ha2VMZWZ0Qm91bmRL
ZXlSYW5nZSgiYmFyeiIpOworICAgIHZhciBjdXJzb3IgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29y
KGtleVJhbmdlKTsKKyAgICBjdXJzb3Iub25zdWNjZXNzID0gY3Vyc29yU3VjY2VzczsKK30KKwor
ZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNz
RXZlbnQoZXZlbnQpOworICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gZXZlbnQucmVzdWx0Iik7CisgICAgLy8gRklYTUU6IGFkZCBkYXRhIGluc3RlYWQgb2Yg
b3BlbmluZyB0aGUgY3Vyc29yLgorICAgIC8vIHBvcHVsYXRlT2JqZWN0U3RvcmUob2JqZWN0U3Rv
cmUpOworICAgIG9wZW5DdXJzb3Iob2JqZWN0U3RvcmUpOworfQorCitmdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICB2YXIgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzOworICAg
IHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCduYW1l
JywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1
bHQub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRy
b2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2Ni
aW5kaW5ncy5tawppbmRleCBlMTk5MDBjMjA0MGE1NzJiNWY2MDRjZjM0YjI2MTVjMGEzZjkwZDI1
Li5hMjk0NjdkYmVlMDhjY2I0YzY5NzhlMzVhOWJkZjU5MDVlODRhNDMzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJv
aWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawpAQCAtMzYxLDYgKzM2MSw4IEBAICQocGF0c3Vic3Qg
JS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS8lLmNwcCA6ICQoaW50
ZXJtZWRpYXRlcykvCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9zdG9yYWdlL0pTSURCQW55LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFn
ZS9KU0lEQkN1cnNvci5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJz
b3JSZXF1ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNl
RXJyb3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VFeGNl
cHRpb24uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VSZXF1
ZXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
ayBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKaW5kZXggZDA4YjJjMzZj
ZmViMDhmYTAwNjkzMDMwOTA2MTFhMDUxZTI1Y2EzMy4uYjI5YmViMjlkYThhNjBhYTIxMjQzNWY2
N2I3OTM1NGQ0NDYxOTBkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhi
aW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBA
IC0zNDIsNiArMzQyLDggQEAgJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykKICMgSW5kZXhlZCBEYXRh
YmFzZQogR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCQW55Lmgg
XAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJDdXJzb3IuaCBcCisgICAgJChp
bnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOElEQkN1cnNvclJlcXVlc3QuaCBcCiAgICAgJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXJyb3IuaCBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAogICAgICQoaW50ZXJt
ZWRpYXRlcykvYmluZGluZ3MvVjhJREJEYXRhYmFzZVJlcXVlc3QuaCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggNzAzZjNlYzFjMjUx
OGQxOTFjNjIxZWIzMzRjNjkzYjkxMDU5ZTYwZi4uZjY3MGRiNTQ5MDI3NzNiOWQ5ZTQ5OTViZWIz
MmM2OTcyN2YzNDk0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNv
cmUvQW5kcm9pZC5tawpAQCAtNzMzLDYgKzczMyw4IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExP
Q0FMX1NSQ19GSUxFUykgXAogCXN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwIFwKIAlzdG9yYWdl
L0RhdGFiYXNlVHJhY2tlci5jcHAgXAogCXN0b3JhZ2UvSURCQW55LmNwcCBcCisJc3RvcmFnZS9J
REJDdXJzb3IuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIFwKIAlzdG9yYWdl
L0lEQkRhdGFiYXNlSW1wbC5jcHAgXAogCXN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBc
CiAJc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YzIzZDQwY2E5MWM5N2Ix
OWZmNmNiZjgxNmRkYTI0Y2NiMjM1MmViLi4xNTM4ODJhNTYzNzExNDMyYjdlMTBhNWY1MGVkODll
NzAzM2I5ZDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMyOCw2ICszMjgsOCBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBzdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsCiAgICAgc3RvcmFnZS9EYXRhYmFz
ZVN5bmMuaWRsCiAgICAgc3RvcmFnZS9JREJBbnkuaWRsCisgICAgc3RvcmFnZS9JREJDdXJzb3Iu
aWRsCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbAogICAgIHN0b3JhZ2UvSURCRGF0
YWJhc2VFcnJvci5pZGwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAogICAg
IHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbApAQCAtMTQwMiw2ICsxNDA0LDggQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwCiAgICAgc3Rv
cmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCiAgICAgc3RvcmFnZS9JREJBbnkuY3BwCisgICAgc3Rv
cmFnZS9JREJDdXJzb3IuY3BwCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmNwcAogICAg
IHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmNwcAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNiZDc5ZWIyNzVkNWRjNDkz
NzBkNzlkYzBkZDZhNjg1OWQ2MjFhMy4uNTZhZTZkMjZjZTFkYzJiMWIyMGE4OThkMDNjNzAxMWQy
ZjIyZTg0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NSBAQAorMjAxMC0wNy0wOCAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFj
aEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQgcGx1bWJpbmcgZm9yIElEQkN1cnNvci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODg4CisKKyAg
ICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbAorCisgICAg
ICAgICogQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQu
ZGVyaXZlZC52OGJpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNv
cmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhJREJBbnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAg
ICogc3RvcmFnZS9JREJBbnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjppZGJDdXJz
b3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6c2V0KToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjopOgorICAgICAgICAq
IHN0b3JhZ2UvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6SURCQ3Vyc29yKToKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkN1cnNvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1
cnNvcjo6KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvcjo6fklEQkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3I6OmRpcmVjdGlvbik6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OklEQkN1cnNvclJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6fklEQkN1cnNvclJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6cmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDdXJzb3JSZXF1ZXN0OjprZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVx
dWVzdDo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6Y291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlXyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDdXJzb3JSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29y
UmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRGF0YWJhc2VSZXF1ZXN0OjpJREJEYXRhYmFzZVJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZVJlcXVlc3Q6OnJlbW92ZU9iamVjdFN0b3JlKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5
UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OklEQktleVJhbmdlKToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQktleVJhbmdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJL
ZXlSYW5nZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6cmlnaHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmZsYWdzKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2UvSURC
T2JqZWN0U3RvcmVSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJl
cXVlc3QuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVx
dWVzdDo6dGltZXJGaXJlZCk6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisgICAg
ICAgICogc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6b3Blbik6CisgICAgICAgICog
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmg6CisKIDIwMTAtMDctMDggIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA0OGI2Nzk2MzlhYjI5YWYxYTllZWE0ZDc0MDYyZGVj
ZWI5YTBmMTQyLi4yZDg5YmQ3MDU2NWRkMTQzYzkzMWNiYjFkZDdiY2YwY2RjMDVjYjEyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcApAQCAtMTc2LDYgKzE3Niw4IEBACiAjaW5jbHVkZSAiSlNIVE1MVUxpc3RFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpT
SURCQW55LmNwcCIKKyNpbmNsdWRlICJKU0lEQkN1cnNvci5jcHAiCisjaW5jbHVkZSAiSlNJREJD
dXJzb3JSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIgogI2lu
Y2x1ZGUgIkpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJh
c2VSZXF1ZXN0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMDBmOTFkOWRlMGZiZTc1ODcwNWVk
OGRmYTdlZGY4MjcwMWJkMDY1Li41MDBjNjZkZmE2YzVkN2MyZWIyZmM5YzcyZDk1YjhkMjMxYmNi
NTJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTksNiArMjE5LDggQEAgRE9NX0NMQVNTRVMgPSBc
CiAgICAgSFRNTFZpZGVvRWxlbWVudCBcCiAgICAgSGlzdG9yeSBcCiAgICAgSURCQW55IFwKKyAg
ICBJREJDdXJzb3IgXAorICAgIElEQkN1cnNvclJlcXVlc3QgXAogICAgIElEQkRhdGFiYXNlRXJy
b3IgXAogICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uIFwKICAgICBJREJEYXRhYmFzZVJlcXVlc3Qg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggN2ZhMzc1MjQ5Mjk4NTE2MGViM2E0ZjJiNTMxODZjZmVmYWJlYjRkMS4uZmI4
MDliZjcyMzAyOTYxMzllNGMwMTE5MjgyYmE2Mzg5YTM3ZDRlYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yNTY3LDYg
KzI1NjcsOCBAQCBGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MQog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuaWRsIFwKKyAgV2Vi
Q29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
UmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCBcCiAJ
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCBcCiAJV2ViQ29yZS9zdG9y
YWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwgXApAQCAtMjU4Niw2ICsyNTg4LDEwIEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5jcHAgXAogCVdlYkNvcmUv
c3RvcmFnZS9JREJBbnkuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKKyAg
V2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vy
c29yLmggXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5jcHAgXAorICBXZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2UuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAgXAogCVdlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRjM2MxZmM5MjdlMWExMDNmYmFi
YmEyOGQ1YTcwMmNkMGMxYzZlZTEuLjljNTg0MTVlYTFjY2VhMTRiYTAyZDkyNWZkNGNlYjVjMGEw
MDliNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0yMzIsNiArMjMyLDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL0RhdGFi
YXNlQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0RhdGFiYXNlU3luYy5pZGwn
LAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmlkbCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9JREJDdXJzb3IuaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3Qu
aWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKQEAgLTM0NDIsNiArMzQ0NCwxMCBAQAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJBbnkuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDYWxsYmFja3MuaCcsCisgICAgICAg
ICAgICAnc3RvcmFnZS9JREJDdXJzb3IuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1
cnNvci5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwJywKKyAg
ICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJEYXRhYmFzZS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJy
b3IuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4
IGEzYjI0OGQxYTQ2ZjIyZDA4YmJhNDFmN2MwZjQyNmI3ZGNiZGZjOGQuLmI2NGUxNWY1YjRiNmE1
ZTk1NGRlYzQzN2U1ZDFiNDNhZGMyMTMzN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNDcyLDYgKzQ3Miw4IEBAIElETF9CSU5E
SU5HUyArPSBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBcCiAgICAgc3RvcmFn
ZS9EYXRhYmFzZVN5bmMuaWRsIFwKICAgICBzdG9yYWdlL0lEQkFueS5pZGwgXAorICAgIHN0b3Jh
Z2UvSURCQ3Vyc29yLmlkbCBcCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbCBcCiAg
ICAgc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCBcCiAgICAgc3RvcmFnZS9JREJEYXRhYmFz
ZUV4Y2VwdGlvbi5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCA4YTgzNmY4OGZkNGNmNDNmNmJjYjRmMjM4OTdiODQ0M2VlZDEzNmUxLi44YmNlNDg5MzA4ZmNl
M2ExZjNlMzU4Njk4MmNiZTljMTcyZDkzZTg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIzOTYsNiArMjM5Niw4IEBAIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICBIRUFERVJTICs9
IFwKICAgICAgICAgc3RvcmFnZS9JREJBbnkuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCQ2FsbGJh
Y2tzLmggXAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvci5oIFwKKyAgICAgICAgc3RvcmFnZS9J
REJDdXJzb3JSZXF1ZXN0LmggXAogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlLmggXAogICAg
ICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRh
YmFzZUVycm9yLmggXApAQCAtMjQxOSw2ICsyNDIxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkFueS5jcHAg
XAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvci5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQkN1
cnNvclJlcXVlc3QuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwIFwK
ICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwIFwKICAgICAgICAgc3RvcmFn
ZS9JREJFcnJvckV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCAwZGE3NDUzZDNkNzk4MDQ0NmQzMDBlODQ2ZmRlODc1ZjNlNTEzNzBjLi5mNjE2ZjExZWE4
N2MwNjQ5MWFkNjA1NDBiMjYzOTY3NjdiNmY2NzE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTQzOTQ3LDYgKzQzOTQ3LDIxNCBAQAogCQkJCQkJLz4NCiAJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAg
ICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvci5jcHAiDQorICAgICAgICAgID4NCisgICAgICAgICAg
PEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAg
ICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAg
ICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQor
ICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAg
ICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAg
ICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFs
fFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAg
ICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisg
ICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFt
ZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAg
ICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAg
ICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9GaWxlPg0KKyAgICAgICAgPEZpbGUN
CisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yLmgiDQorICAgICAgICAgID4NCisgICAg
ICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIi
DQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0K
KyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAg
ICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2lu
MzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAg
Pg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0lu
dGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAg
ICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAg
ICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAg
ICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQor
ICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAg
ICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9GaWxlPg0KKyAgICAgICAg
PEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yUmVxdWVzdC5jcHAiDQorICAg
ICAgICAgID4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFt
ZT0iRGVidWd8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
ICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5h
bWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAg
IE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAg
ICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisg
ICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0
aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAg
PFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAg
ICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVD
b25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKyAgICAg
ICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAg
ICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAg
ICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9G
aWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yUmVx
dWVzdC5oIg0KKyAgICAgICAgICA+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAg
ICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAg
ICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisg
ICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAg
ICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAg
ICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24N
CisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRv
b2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAg
Lz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25m
aWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIi
DQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0K
KyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAg
ICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxX
aW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAg
ICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisgICAgICAgIDwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRhdGFi
YXNlLmNwcCINCiAJCQkJCT4NCkBAIC00OTYwOCw2ICs0OTgxNiwyMiBAQAogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJDYWxsYmFja3MuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCisg
ICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvci5j
cHAiDQorICAgICAgICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBS
ZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yLmgiDQorICAgICAgICA+DQorICAgICAg
PC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
SURCQ3Vyc29yUmVxdWVzdC5jcHAiDQorICAgICAgICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAg
IDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yUmVxdWVz
dC5oIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2UuaCINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KaW5kZXggOTE0Y2M0NjBkZjViNzcxYWU1Njg0Mzk4
NDgxMzQzMTE5NWQzODBiZC4uZWJiYmM1MDI4NzU2ODFjNTk0MTliMzc1ZjhjMzJhNTJkOWU2ZjI2
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0K
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KQEAgLTQ2NCw0
ICs0NjQsMTggQEAgc3ViIFNldHRlckV4cHJlc3Npb25QcmVmaXgKICAgICByZXR1cm4gIiRmdW5j
dGlvbk5hbWUoJGNvbnRlbnRBdHRyaWJ1dGVOYW1lLCAiCiB9CiAKK3N1YiBFc2NhcGVSZXNlcnZl
ZEtleXdvcmRzCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gc2hp
ZnQ7CisKKyAgICBteSAlY3BwUmVzZXJ2ZWRLZXlXb3JkcyA9ICgKKyAgICAgICAgImNvbnRpbnVl
IiA9PiAiMSIsCisgICAgICAgICJkZWxldGUiID0+ICIxIiwKKyAgICApOworCisgICAgcmV0dXJu
ICRuYW1lIC4gIl8iIGlmIGV4aXN0cyAkY3BwUmVzZXJ2ZWRLZXlXb3Jkc3skbmFtZX07CisgICAg
cmV0dXJuICRuYW1lOworfQorCiAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KaW5kZXggMWFlMGY4ZmMyZDcxNmVmYzJjMGM3YTM5YzJhYmY5ZGVmMTgzNjEx
NS4uODMxNTdiMjg3MTYyOGFlZjZhNmMyZjk5YTI2OTEyMWYyODQyMTcxMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNDkxLDYgKzI0OTEsOCBA
QCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgICAgICAkbmFtZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25GdW5j
dGlvbiJ9OwogICAgIH0KIAorICAgICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPkVzY2FwZVJlc2Vy
dmVkS2V5d29yZHMoJG5hbWUpOworCiAgICAgbXkgJGZ1bmN0aW9uU3RyaW5nID0gImltcC0+JHtu
YW1lfSgiOwogCiAgICAgaWYgKCRjb3B5Rmlyc3QpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAppbmRleCA1ZWY1MGE2MzQ5NjlmZTY0MWFkMjg4NWE5
M2Y5YzkyNDFmOGViZWY5Li5mMGZmMzc2YjgzMjA1NTA1OTIwYjU1ZjViNTgyMWM4M2I4ZmM4NjY5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiVjhJREJBbnkuaCIKIAogI2luY2x1ZGUgIlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlY4SURCQ3Vyc29yUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlY4SURCRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJJbmRleFJlcXVl
c3QuaCIKICNpbmNsdWRlICJWOElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIgpAQCAtNTIsNiArNTMs
OCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwpCiAgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgogICAgICAg
ICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yUmVxdWVzdFR5
cGU6CisgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYkN1cnNvclJlcXVlc3QoKSk7CiAgICAg
Y2FzZSBJREJBbnk6OklEQkRhdGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4
KGltcGwtPmlkYkRhdGFiYXNlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCSW5kZXhS
ZXF1ZXN0VHlwZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkFueS5jcHAKaW5kZXggNzNiMGQ3NDc3MGNjYTY0ZDIxN2E3YjE5NTgx
MWY2MzdjNGY2YmFlMC4uYWUwMGIzYmRmOTJlNjY2YzVkZDQ4MjAzN2JhMWVmMTI0YTA5Njg3NCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5jcHAKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQkFueS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogCisjaW5jbHVkZSAiSURCQ3Vyc29yUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQkRh
dGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQkluZGV4UmVxdWVzdC5oIgogI2luY2x1ZGUg
IklEQk9iamVjdFN0b3JlUmVxdWVzdC5oIgpAQCAtNTAsNiArNTEsMTIgQEAgSURCQW55Ojp+SURC
QW55KCkKIHsKIH0KIAorUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBJREJBbnk6OmlkYkN1
cnNvclJlcXVlc3QoKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gSURCQ3Vyc29yUmVxdWVzdFR5
cGUpOworICAgIHJldHVybiBtX2lkYkN1cnNvclJlcXVlc3Q7Cit9CisKIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VSZXF1ZXN0PiBJREJBbnk6OmlkYkRhdGFiYXNlUmVxdWVzdCgpCiB7CiAgICAgQVNT
RVJUKG1fdHlwZSA9PSBJREJEYXRhYmFzZVJlcXVlc3RUeXBlKTsKQEAgLTg2LDYgKzkzLDEzIEBA
IHZvaWQgSURCQW55OjpzZXQoKQogICAgIG1fdHlwZSA9IE51bGxUeXBlOwogfQogCit2b2lkIElE
QkFueTo6c2V0KFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4gdmFsdWUpCit7CisgICAgQVNT
RVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBJREJDdXJzb3JSZXF1
ZXN0VHlwZTsKKyAgICBtX2lkYkN1cnNvclJlcXVlc3QgPSB2YWx1ZTsKK30KKwogdm9pZCBJREJB
bnk6OnNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gdmFsdWUpCiB7CiAgICAgQVNT
RVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJBbnkuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaAppbmRleCBhNzM0ZDEzM2Q5Yjgy
YmE0MTU3NjJiYTQ4YzZmNDI0YThiZDczZTU5Li4zZTA4ZjNiZGY2MWM2OTI0YzI3ZGI4MzIzZjky
YWVhNjg1MTEzOTUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCkBAIC0zNCw2ICszNCw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgSURCQ3Vyc29yUmVxdWVzdDsKIGNsYXNzIElEQkRhdGFiYXNlUmVx
dWVzdDsKIGNsYXNzIElEQkluZGV4UmVxdWVzdDsKIGNsYXNzIElEQk9iamVjdFN0b3JlUmVxdWVz
dDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIGVudW0gVHlwZSB7CiAgICAgICAgIFVu
ZGVmaW5lZFR5cGUgPSAwLAogICAgICAgICBOdWxsVHlwZSwKKyAgICAgICAgSURCQ3Vyc29yUmVx
dWVzdFR5cGUsCiAgICAgICAgIElEQkRhdGFiYXNlUmVxdWVzdFR5cGUsCiAgICAgICAgIElEQklu
ZGV4UmVxdWVzdFR5cGUsCiAgICAgICAgIElEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGUsCkBAIC01
Nyw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQogICAgIC8vIFVzZSB0eXBlKCkgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgb2YgdGhl
c2UgeW91J3JlIGFsbG93ZWQgdG8gY2FsbC4KKyAgICBQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVl
c3Q+IGlkYkN1cnNvclJlcXVlc3QoKTsKICAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVz
dD4gaWRiRGF0YWJhc2VSZXF1ZXN0KCk7CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+
IGlkYkluZGV4UmVxdWVzdCgpOwogICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0
PiBpZGJPYmplY3RTdG9yZVJlcXVlc3QoKTsKQEAgLTY1LDYgKzY4LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gU2V0IGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLgogICAgIHZvaWQgc2V0KCk7IC8vIEZv
ciAibnVsbCIuCisgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0Pik7CiAg
ICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+KTsKICAgICB2b2lkIHNl
dChQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmVSZXF1ZXN0Pik7CkBAIC03Nyw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAg
VHlwZSBtX3R5cGU7CiAKICAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCBl
dmVyIGJlIGluIHVzZSBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICBSZWZQdHI8SURCQ3Vyc29yUmVx
dWVzdD4gbV9pZGJDdXJzb3JSZXF1ZXN0OwogICAgIFJlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+
IG1faWRiRGF0YWJhc2VSZXF1ZXN0OwogICAgIFJlZlB0cjxJREJJbmRleFJlcXVlc3Q+IG1faWRi
SW5kZXhSZXF1ZXN0OwogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IG1faWRiT2Jq
ZWN0U3RvcmVSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNr
cy5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCmluZGV4IDM3ZmRjNDZlMDk5Y2Vj
NjUzMDk0ZmExMjY5ODgzZTNhNjk4ZjA5OWQuLmE2M2UyNTUyZTExNTA1ZDllZjBmYTAzZTYyZDgw
YWVlNTA0OWIwNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
Zm5kZWYgSURCQ2FsbGJhY2tzX2gKICNkZWZpbmUgSURCQ2FsbGJhY2tzX2gKIAorI2luY2x1ZGUg
IklEQkN1cnNvci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkluZGV4LmgiCkBAIC00Nyw2ICs0OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgPSAwOyAvLyBGb3IgIm51
bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJJbmRleD4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ3Vyc29yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDlkOWExNTk4MmI1MTg4MmNmNGE1MWQxYTY0
NDE2ODIwYWY3NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
ci5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJREJDdXJzb3IuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
SURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIHVu
c2lnbmVkIHNob3J0IGRpcmVjdGlvbikKKyAgICA6IG1fa2V5UmFuZ2Uoa2V5UmFuZ2UpCisgICAg
LCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQkN1cnNvci5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIwMjM3YzRkMmIyYzA5ZDI0ZWNlYjdhOGFhM2FiNTE3Nzg3YTBmYjcKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmgKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgSURCQ3Vyc29yX2gKKyNkZWZpbmUgSURCQ3Vyc29yX2gKKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IE1ha2UgdGhpcyBjbGFzcyBwdXJlIHZpcnR1
YWwuCitjbGFzcyBJREJDdXJzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJDdXJzb3I+IHsKK3B1
YmxpYzoKKyAgICAvLyBLZWVwIGluIHN5bmMgd2l0aCB3aGF0J3MgaW4gdGhlIC5pZGwgZmlsZS4K
KyAgICBlbnVtIERpcmVjdGlvbiB7CisgICAgICAgIE5FWFQgPSAwLAorICAgICAgICBORVhUX05P
X0RVUExJQ0FURSA9IDEsCisgICAgICAgIFBSRVYgPSAyLAorICAgICAgICBQUkVWX05PX0RVUExJ
Q0FURSA9IDMsCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Jl
YXRlKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvcihrZXlS
YW5nZSwgZGlyZWN0aW9uKSk7CisgICAgfQorICAgIH5JREJDdXJzb3IoKSB7IH0KKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9u
OyB9CisKK3Byb3RlY3RlZDoKKyAgICBJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7CisKK3ByaXZhdGU6CisgICAgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gbV9rZXlSYW5nZTsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX2Rp
cmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRp
ZiAvLyBJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5p
ZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzYxZGRkN2Qy
ODkxNDA2NjY3N2UyOWQ0YjA5YWRkNzFiY2I0ZWJkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBz
dG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURf
REFUQUJBU0UKKyAgICBdIElEQkN1cnNvciB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRo
IHdoYXQncyBpbiB0aGUgLmggZmlsZS4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVY
VCA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FWFRfTk9fRFVQTElDQVRFID0g
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUFJFViA9IDI7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBSRVZfTk9fRFVQTElDQVRFID0gMzsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICB9OworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvclJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZjM1NTY4YTcwZmFhOGEzMzUyYzdh
N2Y1YTU4MGEyMzIxYmUwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JSZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJREJDdXJzb3JSZXF1ZXN0OjpJ
REJDdXJzb3JSZXF1ZXN0KFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpCisgICAgOiBtX2N1
cnNvcihjdXJzb3IpCit7Cit9CisKK0lEQkN1cnNvclJlcXVlc3Q6On5JREJDdXJzb3JSZXF1ZXN0
KCkKK3sKK30KKworUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJzb3JSZXF1ZXN0OjpyZXF1
ZXN0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+KCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCQW55PiBJREJDdXJzb3JS
ZXF1ZXN0OjprZXkoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgcmV0
dXJuIFBhc3NSZWZQdHI8SURCQW55PigpOworfQorCitQYXNzUmVmUHRyPElEQkFueT4gSURCQ3Vy
c29yUmVxdWVzdDo6dmFsdWUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisg
ICAgcmV0dXJuIFBhc3NSZWZQdHI8SURCQW55PigpOworfQorCitsb25nIGxvbmcgSURCQ3Vyc29y
UmVxdWVzdDo6Y291bnQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAg
cmV0dXJuIDA7Cit9CisKK3ZvaWQgSURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKFBhc3NSZWZQdHI8
SURCQW55PiB2YWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorfQorCit2b2lkIElE
QkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlXyhQYXNzUmVmUHRyPElEQkFueT4ga2V5KQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCisKK30KKwordm9pZCBJREJDdXJzb3JSZXF1ZXN0OjpyZW1v
dmUoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJD
dXJzb3JSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZiM2E4OWU0NmYyZTg1ZDQ5NzM0OTlkMTI5MTk2
MDAwN2FlMWVhYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JS
ZXF1ZXN0LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUmVxdWVz
dF9oCisjZGVmaW5lIElEQkN1cnNvclJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJSZXF1ZXN0Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkN1cnNvcjsKKworY2xhc3MgSURC
Q3Vyc29yUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvclJlcXVlc3Q+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBjcmVhdGUoUGFz
c1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSURCQ3Vyc29yUmVxdWVzdChjdXJzb3IpKTsKKyAgICB9CisgICAgfklEQkN1cnNvclJl
cXVlc3QoKTsKKworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCgpIGNvbnN0Owor
ICAgIFBhc3NSZWZQdHI8SURCQW55PiBrZXkoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPElEQkFu
eT4gdmFsdWUoKSBjb25zdDsKKyAgICBsb25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2b2lk
IHVwZGF0ZShQYXNzUmVmUHRyPElEQkFueT4gdmFsdWUpOworICAgIHZvaWQgY29udGludWVfKFBh
c3NSZWZQdHI8SURCQW55PiBrZXkgPSBQYXNzUmVmUHRyPElEQkFueT4oKSk7CisgICAgdm9pZCBy
ZW1vdmUoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBJREJDdXJzb3JSZXF1ZXN0KFBhc3NS
ZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpOworCisgICAgUmVmUHRyPElEQkN1cnNvcj4gbV9jdXJz
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8g
SURCQ3Vyc29yUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
UmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODI4ZWZkODZiYjhiODg2Y2FhNTY2NDVhYzRiMDQ1YmE1N2YxYWQ2ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbApAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQorICAgIF0gSURCQ3Vyc29yUmVxdWVzdCB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJSZXF1ZXN0IHJlcXVlc3Q7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkga2V5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgSURCQW55IHZhbHVlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsb25nIGNv
dW50OworCisgICAgICAgIHZvaWQgdXBkYXRlKGluIElEQkFueSB2YWx1ZSk7CisgICAgICAgIHZv
aWQgY29udGludWUoaW4gW09wdGlvbmFsXSBJREJBbnkga2V5KTsKKyAgICAgICAgdm9pZCByZW1v
dmUoKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
UmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRl
eCAzMTY4ZDA2MmZjZDdjZDlkYTE3OWJmOWY1NjE3ZjczMGIzN2I2ZTg5Li5mOTA1NDY2MTJhNDc1
MDFkZGE3MDQ2YjY1ZjI1ODA5YWNlZjcwNDgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VS
ZXF1ZXN0LmNwcApAQCAtMzksMTAgKzM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSURCRGF0
YWJhc2VSZXF1ZXN0OjpJREJEYXRhYmFzZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4g
ZGF0YWJhc2UpCiAgICAgOiBtX2RhdGFiYXNlKGRhdGFiYXNlKQogewotICAgIG1fdGhpcyA9IElE
QkFueTo6Y3JlYXRlKCk7CiAgICAgLy8gV2UgcGFzcyBhIHJlZmVyZW5jZSB0byB0aGlzIG9iamVj
dCBiZWZvcmUgaXQgY2FuIGJlIGFkb3B0ZWQuCiAgICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50
KCk7Ci0gICAgbV90aGlzLT5zZXQodGhpcyk7CiB9CiAKIElEQkRhdGFiYXNlUmVxdWVzdDo6fklE
QkRhdGFiYXNlUmVxdWVzdCgpCkBAIC01MSw3ICs0OSw5IEBAIElEQkRhdGFiYXNlUmVxdWVzdDo6
fklEQkRhdGFiYXNlUmVxdWVzdCgpCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRGF0YWJh
c2VSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRv
SW5jcmVtZW50KQogewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVz
dDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElEQkFueT4gZGIgPSBJREJB
bnk6OmNyZWF0ZSgpOworICAgIGRiLT5zZXQodGhpcyk7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+
IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgZGIpOwogICAgIG1fZGF0YWJh
c2UtPmNyZWF0ZU9iamVjdFN0b3JlKG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIHJlcXVl
c3QpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtNjUsNyArNjUsOSBAQCBQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlUmVxdWVzdD4gSURCRGF0YWJhc2VSZXF1ZXN0OjpvYmplY3RTdG9yZShj
b25zdCBTdHJpbmcmCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRGF0YWJhc2VSZXF1ZXN0
OjpyZW1vdmVPYmplY3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJS
ZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCQW55PiBkYiA9
IElEQkFueTo6Y3JlYXRlKCk7CisgICAgZGItPnNldCh0aGlzKTsKKyAgICBSZWZQdHI8SURCUmVx
dWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBkYik7CiAgICAgbV9k
YXRhYmFzZS0+cmVtb3ZlT2JqZWN0U3RvcmUobmFtZSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJl
cXVlc3Q7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggNmI5ZTEwNzM2
NTNjNmU5Mjk1YzNmZDYzZWFlNGM4ZDUwZmZlNmEwZS4uODkwZDRhMmYwZGU0YWYzNDE0NDViYjZl
ZWE5YzUxOTZjZjNjZWI2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
UmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaApAQCAt
NjMsNyArNjMsNiBAQCBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlUmVxdWVzdChQYXNzUmVmUHRy
PElEQkRhdGFiYXNlPik7CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7Ci0g
ICAgUmVmUHRyPElEQkFueT4gbV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJLZXlSYW5nZS5jcHAKaW5kZXggMzRjMTFmZWJiMjU1Zjc0MWU3ZWMzNjJiZTFlOWM4
NTVhYTJiYjdkOS4uOWMyNTM0NTA1MzU1YzA2NTFjZjg3NWExNjhhMjk1MWQ5M2ZmZjdlNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmNwcAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCS2V5UmFuZ2UuY3BwCkBAIC0zMyw2ICszMywxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK0lEQktleVJhbmdlOjpJREJLZXlSYW5nZSgpCit7CisKK30KKwogSURCS2V5UmFu
Z2U6OklEQktleVJhbmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZs
YWdzKQogICAgIDogbV9sZWZ0KElEQkFueTo6Y3JlYXRlKCkpCiAgICAgLCBtX3JpZ2h0KElEQkFu
eTo6Y3JlYXRlKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuaCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oCmluZGV4IDU4YzEzOTkwZmFhMWVlZWYxNjEx
ZDkxMmJjNTM0ODhiMDJhY2E2Y2IuLmM3NDY2ZTc2ZDQwMTE4ZTQ3ZTY0N2JhMzBmM2U1YzE3ZmQw
NGEyOWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCisvLyBGSVhNRTogTWFr
ZSB0aGlzIGNsYXNzIHB1cmUgdmlydHVhbC4KIGNsYXNzIElEQktleVJhbmdlIDogcHVibGljIFJl
ZkNvdW50ZWQ8SURCS2V5UmFuZ2U+IHsKIHB1YmxpYzoKICAgICAvLyBLZWVwIGluIHN5bmMgd2l0
aCB3aGF0J3MgaW4gdGhlIC5pZGwgZmlsZS4KQEAgLTUzLDEwICs1NCwxMiBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIH5JREJLZXlSYW5nZSgpIHsgfQogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QkFueT4gbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJBbnk+IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQorICAgIHZpcnR1
YWwgdW5zaWduZWQgc2hvcnQgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CiAKLSAg
ICBQYXNzUmVmUHRyPElEQkFueT4gbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQotICAg
IFBhc3NSZWZQdHI8SURCQW55PiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAg
ICB1bnNpZ25lZCBzaG9ydCBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KK3Byb3Rl
Y3RlZDoKKyAgICBJREJLZXlSYW5nZSgpOwogCiBwcml2YXRlOgogICAgIElEQktleVJhbmdlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmgKaW5kZXggODM3YjY1YTU2MDllOTg2MTE1ZGE4N2U1Mjk3MzQyNThkOTc5ZTUx
Zi4uOTFiZWQwNDhmNDBhMDk5NzJlOGM5MDI2MWY2ZmI1MDQwOWRlM2QyYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVf
aAogI2RlZmluZSBJREJPYmplY3RTdG9yZV9oCiAKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApA
QCAtMzUsNiArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVN0cmluZ0xp
c3Q7CiBjbGFzcyBJREJDYWxsYmFja3M7CitjbGFzcyBJREJDdXJzb3I7CitjbGFzcyBJREJLZXlS
YW5nZTsKIGNsYXNzIElEQkluZGV4OwogCiBjbGFzcyBJREJPYmplY3RTdG9yZSA6IHB1YmxpYyBU
aHJlYWRTYWZlU2hhcmVkPElEQk9iamVjdFN0b3JlPiB7CkBAIC00OCw2ICs1MSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4p
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCSW5kZXg+IGluZGV4KGNvbnN0IFN0cmlu
ZyYgbmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbmRleChjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOworCisgICAgdmlydHVhbCB2b2lk
IG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiByYW5nZSA9IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+KCksIHVuc2lnbmVkIHNob3J0IGRp
cmVjdGlvbiA9IElEQkN1cnNvcjo6TkVYVCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCBiODRjZWIyYzNl
YmJjMjEyOGQ0NTVmMzhiMzEwMzUxZGNmMTg2YzAyLi5lZTQ4OGViOTQ0YjNjYzYzMjJhN2Y5Yzc5
ZGI3MGRmMjQ2ODcwN2Y1IDEwMDc1NQotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcApA
QCAtODMsNiArODMsMTEgQEAgdm9pZCBJREJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNv
bnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3MKICAgICBjYWxsYmFja3Mt
Pm9uU3VjY2VzcygpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcihQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJREJDdXJz
b3I+IGN1cnNvciA9IElEQkN1cnNvcjo6Y3JlYXRlKHJhbmdlLCBkaXJlY3Rpb24pOworICAgIGNh
bGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci5yZWxlYXNlKCkpOworfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUlt
cGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuaAppbmRleCA4OWEwNmRi
YjU0Y2ZiZGNkOGFkMTU1NGY5OGFlMTE4YjliYzczODY1Li5kNTNiYmJhMzNjYmMwMzZkMjVkMjli
ODliMjY0NmQ5ODY4ODczYWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oCkBA
IC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChj
b25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBu
YW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdm9pZCBvcGVuQ3Vyc29yKFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UgPSBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPigpLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJD
dXJzb3I6Ok5FWFQpOworCiBwcml2YXRlOgogICAgIElEQk9iamVjdFN0b3JlSW1wbChjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcAppbmRleCA0MDcyZGU5
MTgxNzMwNTk1Njk1ZTA4NGEzZWMyZTc0NjQ1YTA4MDY1Li5iMDhjYWUzNjJmNWI1OTQ1MGM0MDZk
ZDNmMDc3OTg5Yzg5NjA1NGIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmNwcApAQCAtMzksMTAgKzM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSURCT2JqZWN0
U3RvcmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZT4gaWRiT2JqZWN0U3RvcmUpCiAgICAgOiBtX29iamVjdFN0b3JlKGlkYk9iamVjdFN0b3Jl
KQogewotICAgIG1fdGhpcyA9IElEQkFueTo6Y3JlYXRlKCk7CiAgICAgLy8gV2UgcGFzcyBhIHJl
ZmVyZW5jZSB0byB0aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJlIGFkb3B0ZWQuCiAgICAgcmVs
YXhBZG9wdGlvblJlcXVpcmVtZW50KCk7Ci0gICAgbV90aGlzLT5zZXQodGhpcyk7CiB9CiAKIFN0
cmluZyBJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om5hbWUoKSBjb25zdApAQCAtMTA1LDcgKzEwMyw5
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29uCiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjpjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCQW55PiBkYiA9IElEQkFueTo6
Y3JlYXRlKCk7CisgICAgZGItPnNldCh0aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVx
dWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBkYik7CiAgICAgbV9vYmplY3RTdG9y
ZS0+Y3JlYXRlSW5kZXgobmFtZSwga2V5UGF0aCwgdW5pcXVlLCByZXF1ZXN0KTsKICAgICByZXR1
cm4gcmVxdWVzdDsKIH0KQEAgLTExOSwxMSArMTE5LDIyIEBAIFBhc3NSZWZQdHI8SURCSW5kZXhS
ZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkK
IAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZUlu
ZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJBbnk+IGRiID0gSURCQW55OjpjcmVhdGUo
KTsKKyAgICBkYi0+c2V0KHRoaXMpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0g
SURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIGRiKTsKICAgICBtX29iamVjdFN0b3JlLT5yZW1v
dmVJbmRleChuYW1lLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2Us
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKK3sKKyAgICBSZWZQdHI8SURCQW55PiBkYiA9IElE
QkFueTo6Y3JlYXRlKCk7CisgICAgZGItPnNldCh0aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVz
dD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBkYik7CisgICAgbV9vYmpl
Y3RTdG9yZS0+b3BlbkN1cnNvcihyZXF1ZXN0LCByYW5nZSwgZGlyZWN0aW9uKTsKKyAgICByZXR1
cm4gcmVxdWVzdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0
LmgKaW5kZXggZjFhOWY1YmE1NDk1ZjAyMmVmNGZkYjZhZDEzMmMwYjkxNDg3ZWI0Yi4uYTY3Y2Vj
MWQ4M2Q1NmQ2YWJjYmEzYjFhOTc5ZGY4NjY2ZWNlYzc4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuaApAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBJREJPYmplY3RT
dG9yZVJlcXVlc3RfaAogI2RlZmluZSBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAogCisjaW5jbHVk
ZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yUmVxdWVzdC5oIgorI2luY2x1ZGUg
IklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJ
REJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTY0LDExICs2Nywx
MiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IGluZGV4KGNvbnN0
IFN0cmluZyYgbmFtZSk7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmVJbmRleChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAorICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UgPSBQYXNzUmVmUHRyPElEQktleVJhbmdlPigpLCB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQpOworCiBwcml2YXRlOgog
ICAgIElEQk9iamVjdFN0b3JlUmVxdWVzdChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPik7CiAK
ICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IG1fb2JqZWN0U3RvcmU7Ci0gICAgUmVmUHRyPElE
QkFueT4gbV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAppbmRleCA4NzM2MjlkNTBjN2EzN2FjNzI1MmI5
YzExMzljZjEzMTJjNDRhNmI1Li5mM2RkZTE3MGViYmQ5YWZjOWUxMThhOTUyYTFkZGZjYWI5YjU1
ZDBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmlk
bAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbApAQCAtNDMs
NiArNDMsOCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIElEQkluZGV4UmVxdWVzdCBpbmRl
eChpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBJREJSZXF1ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsKIAorICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vy
c29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5UGF0aDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcAppbmRleCA3ZWM4ZWU2ZjU5NjNjMmQ3N2NiOWI0OTgxMTE3Njk0ZWYy
ZjIzYjVkLi5iODI1YjM1MmMwNTExYTdlZDM1MWVjMDA5N2M4ZDM2MmRkNWI3YWU1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQlJlcXVlc3QuY3BwCkBAIC03Myw2ICs3MywxMiBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3Vj
Y2VzcygpCiAgICAgbV9yZXN1bHQtPnNldCgpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIG9uRXZlbnRDb21t
b24oKTsKKyAgICBtX3Jlc3VsdC0+c2V0KElEQkN1cnNvclJlcXVlc3Q6OmNyZWF0ZShpZGJDdXJz
b3IpKTsKK30KKwogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAgICAgb25FdmVudENvbW1vbigpOwpAQCAtMTYxLDcgKzE2
Nyw3IEBAIHZvaWQgSURCUmVxdWVzdDo6dGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopCiAg
ICAgICAgIGRpc3BhdGNoRXZlbnQoSURCRXJyb3JFdmVudDo6Y3JlYXRlKG1fc291cmNlLCAqbV9l
cnJvcikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX3Jlc3VsdC0+dHlwZSgpICE9
IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoSURCU3VjY2Vz
c0V2ZW50OjpjcmVhdGUobV9zb3VyY2UsIG1fcmVzdWx0KSk7ICAgICAgICAKKyAgICAgICAgZGlz
cGF0Y2hFdmVudChJREJTdWNjZXNzRXZlbnQ6OmNyZWF0ZShtX3NvdXJjZSwgbV9yZXN1bHQpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCmluZGV4IGM3NjNkOTZlYTc1ZTNjNGJmNDFlNDA4
MzM0NDMzYjY4YWI4YmMzYTAuLmNiZjU2ZWQzYmJlOGM1ZjUyNGZmOWM3YzM5MjMxYzU0ZGUyNjFm
ZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgLy8g
SURCQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwi
LgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+KTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAKaW5kZXggYTI1ZmIyYmE0OWIzZmIzOWYyNDkyYzg2Mzg5
YzU1NzQyYzU4NGZkMS4uZTZmYWY4ZjljMWNkODc2NmZmZmY1ZTg2NmY1NzAwNGI3MThiYTk1MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAtNDQsMTAg
KzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6SW5k
ZXhlZERhdGFiYXNlUmVxdWVzdChJbmRleGVkRGF0YWJhc2UqIGluZGV4ZWREYXRhYmFzZSkKICAg
ICA6IG1faW5kZXhlZERhdGFiYXNlKGluZGV4ZWREYXRhYmFzZSkKIHsKLSAgICBtX3RoaXMgPSBJ
REJBbnk6OmNyZWF0ZSgpOwogICAgIC8vIFdlIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhpcyBvYmpl
Y3QgYmVmb3JlIGl0IGNhbiBiZSBhZG9wdGVkLgogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVu
dCgpOwotICAgIG1fdGhpcy0+c2V0KHRoaXMpOwogfQogCiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
Ojp+SW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpCkBAIC02NSw3ICs2MywxMCBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udAogICAgIGlmICghZG9jdW1lbnQtPmZyYW1lKCkpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUoZG9jdW1lbnQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElEQkFueT4gZGIgPSBJREJBbnk6OmNy
ZWF0ZSgpOworICAgIGRiLT5zZXQodGhpcyk7CisKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVx
dWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVudCwgZGIpOwogICAgIG1faW5kZXhlZERh
dGFiYXNlLT5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uLCByZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKSwgZG9jdW1lbnQtPmZyYW1lKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCBiL1dl
YkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggOTgwMjM4MDUzZDg1
MmE0OTNmZjg5ODYyNWFiMTQzYTVjNTkyMmQ4YS4uZjUwNWQ5ZDcyY2RhZjY2NTRiMDMyYTAyM2M1
ZTZkNzI2ZTlkMTc4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5o
CkBAIC02NCw3ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgSW5kZXhlZERhdGFiYXNlUmVxdWVzdChJ
bmRleGVkRGF0YWJhc2UqKTsKIAogICAgIFJlZlB0cjxJbmRleGVkRGF0YWJhc2U+IG1faW5kZXhl
ZERhdGFiYXNlOwotICAgIFJlZlB0cjxJREJBbnk+IG1fdGhpczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGZkZjc5ZGMzNmI5OTk5ZDA2OGU3OThjMmY3NTdl
NWY3ZTQ2N2YxODIuLjQ3NjgxZjZjMTA4OWVkMjQ0NmU4YjdiZmZkYWYxNzFjOWI2N2ViMGEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEwLTA3LTA4ICBNYXJjdXMgQnVsYWNoICA8
YnVsYWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbml0aWFsIGJpbmRpbmdzIGFuZCBwbHVtYmluZyBmb3IgSURCQ3Vyc29y
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4ODgK
KworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9pZGItb3BlbmN1cnNvci5odG1sCisK
KyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3Mu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJDdXJzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklE
QkN1cnNvcjo6fldlYklEQkN1cnNvcik6CisgICAgICAgICogcHVibGljL1dlYklEQktleVJhbmdl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6V2ViSURCS2V5UmFu
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6fldlYklEQktleVJhbmdlKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFj
a3NQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMv
SURCQ3Vyc29yUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OklEQkN1cnNv
clByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5Ojp+SURCQ3Vyc29yUHJv
eHkpOgorICAgICAgICAqIHNyYy9JREJDdXJzb3JQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBz
cmMvSURCS2V5UmFuZ2VQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5
UmFuZ2VQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlUHJveHk6
OklEQktleVJhbmdlUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2VQcm94eTo6
fklEQktleVJhbmdlUHJveHkpOgorICAgICAgICAqIHNyYy9JREJLZXlSYW5nZVByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAqIHNyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQk9iamVjdFN0b3JlUHJveHk6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9J
REJPYmplY3RTdG9yZVByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToK
KyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJJ
REJDdXJzb3JJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcklt
cGw6OldlYklEQkN1cnNvckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBs
Ojp+V2ViSURCQ3Vyc29ySW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuaDog
QWRkZWQuCisgICAgICAgICogc3JjL1dlYklEQktleVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQktleVJhbmdlOjpsZWZ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFu
Z2U6OnJpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OmZsYWdzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OnJlc2V0KToKKyAgICAgICAgKiBzcmMvV2Vi
SURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCT2JqZWN0U3Rv
cmVJbXBsOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBs
Lmg6CisKIDIwMTAtMDctMDggIFZpdGFseSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IDlmNzAwZTdhYzBlNDJhNDAwZjc0ZTJiMmM5YjYxNDU3ZTg5Y2JhMTEuLjI0OWY3YjNlNzEyNjg3
NGQyOTA2OGRhOTYyZDVlYWU3MTc0NjU3OTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMzgsOCArMTM4
LDEwIEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbWFnZS5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkltYWdlRGVjb2Rlci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYklEQkNhbGxiYWNrcy5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkN1cnNv
ci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkRhdGFiYXNlLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2VFcnJvci5oJywKKyAgICAgICAgICAgICAg
ICAncHVibGljL1dlYklEQktleVJhbmdlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SURCSW5kZXguaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oJywKQEAgLTI3
MSwxMCArMjczLDE0IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVudEZh
Y3RvcnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0lEQkN1cnNvclByb3h5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9JREJD
dXJzb3JQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9JREJJbmRleFByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJJ
bmRleFByb3h5LmgnLAorICAgICAgICAgICAgICAgICdzcmMvSURCS2V5UmFuZ2VQcm94eS5jcHAn
LAorICAgICAgICAgICAgICAgICdzcmMvSURCS2V5UmFuZ2VQcm94eS5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0lEQk9iamVjdFN0b3JlUHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JbmRleGVkRGF0
YWJhc2VQcm94eS5jcHAnLApAQCAtMzU5LDExICszNjUsMTQgQEAKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkhUVFBCb2R5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgn
LAorICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAnLAorICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCQ3Vyc29ySW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQkRhdGFiYXNlRXJyb3IuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJJREJJbmRleEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZUNHLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCAwZTI4OTYxNmE3ZDliNTNkOWI1YTEwYTUwYTQ1
ZjBhZjViZmRiOGMzLi5lOGRhNzk3YzE4ODgyYTFmNTA0OGZiODQ4ZjM1MzRiZjk1ODkwOTg4IDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTMwLDYgKzMwLDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYklEQkN1cnNvcjsKIGNsYXNzIFdl
YklEQkRhdGFiYXNlOwogY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQklu
ZGV4OwpAQCAtNDQsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHRoZSByZXN0LCBwYXNz
IG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50ZXIuCiAgICAgdmlydHVhbCB2b2lk
IG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhXZWJJREJDdXJzb3IqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCSW5kZXgq
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoV2ViSURCT2JqZWN0U3RvcmUqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkzYzEwOGM0
YzI0N2U5YjU1NzVjMDJhODNhNzcwM2E5ZDY4OTQ0NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViSURCQ3Vyc29yX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29yX2gKKworI2luY2x1
ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUg
IldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQgaW4g
V2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nl
cy4KK2NsYXNzIFdlYklEQkN1cnNvciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViSURCQ3Vy
c29yKCkgeyB9CisKKyAgICAvLyBGSVhNRTogZmluaXNoLgorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJLZXlSYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkYjgyMjZmMTE4Mzc4YmU2N2VhMmYyYjQ1ZTNk
ZmNhMWUwMTJmODYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQktleVJhbmdlLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCS2V5
UmFuZ2VfaAorI2RlZmluZSBXZWJJREJLZXlSYW5nZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24u
aCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xh
c3MgSURCS2V5UmFuZ2U7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2ViSURCS2V5UmFu
Z2UgeworcHVibGljOgorICAgIFdlYklEQktleVJhbmdlKGNvbnN0IFdlYklEQktleVJhbmdlJiBk
KSB7IG1fcHJpdmF0ZSA9IGQubV9wcml2YXRlOyB9CisgICAgV2ViSURCS2V5UmFuZ2UoY29uc3Qg
V2ViU3RyaW5nJiBsZWZ0LCBjb25zdCBXZWJTdHJpbmcmIHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBm
bGFncyk7CisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViSURCS2V5UmFuZ2UoY29u
c3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiYpOworI2VuZGlmCisgICAg
fldlYklEQktleVJhbmdlKCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUgbGVmdCgpIGNvbnN0OworICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSByaWdodCgp
IGNvbnN0OworICAgIHVuc2lnbmVkIHNob3J0IGZsYWdzKCkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4gbV9wcml2YXRlOworCisgICAg
dm9pZCByZXNldCgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBX
ZWJJREJLZXlSYW5nZV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
Qk9iamVjdFN0b3JlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3Jl
LmgKaW5kZXggZmVhZDg4MTBmNWU0ZjZmYjJlZGYyYmI5YjhjODczNjVkMTI4YjBhYS4uOGFlMTYx
YWUwYWU4MGViNGRiZjJlYTQ3NzQ4ODFkNTIxMWRjMzViMiAxMDA3NTUKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaApAQCAtMzMsNiArMzMsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgV2ViSURCS2V5UmFuZ2U7CisKIC8vIFNlZSBjb21tZW50IGluIFdl
YkluZGV4ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMu
CiBjbGFzcyBXZWJJREJPYmplY3RTdG9yZSB7CiBwdWJsaWM6CkBAIC02Nyw2ICs2OSwxMCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqKQorICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICAvLyBGSVhNRTogZmluaXNo
LgogfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCBi
NTJkMTc4MDExNTk4NTUwMGI4ODIzZTcyNDJlNWU5NGZkZWJmNzNlLi5lZDY5NTUwZGRhMzYxYTll
YWNiOGUyYTU0ODM2OGYwZTlmMWRjM2Y2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJy
b3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2Fs
bGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29ySW1wbC5oIgogI2luY2x1ZGUgIldlYklE
QkRhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNs
dWRlICJXZWJJREJJbmRleEltcGwuaCIKQEAgLTY4LDYgKzY5LDEyIEBAIHZvaWQgSURCQ2FsbGJh
Y2tzUHJveHk6Om9uU3VjY2VzcygpCiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAordm9p
ZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBpZGJD
dXJzb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJD
dXJzb3JJbXBsKGlkYkN1cnNvcikpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7Cit9CisKIHZv
aWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6Oldl
YklEQkRhdGFiYXNlSW1wbChpZGJEYXRhYmFzZSkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5oCmluZGV4IGZjNDI0Zjg5NTk3YmY5OWMzOTEzNTk1NWIzN2M2ZWUxZTY4MDQx
OWYuLjhlODg0ZjM4OTJiNTkxNmE3OGIyZDQwYWEwYmFjN2IzN2I5MjNhNmMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvclByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhMTQ2N2EzMTI4YzE1MzlhNTRlNTc1MzUxZmI0N2E1YmNiNDUxNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmNw
cApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IklEQkN1cnNvclByb3h5LmgiCisKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8SURCQ3Vyc29yPiBJREJDdXJzb3JQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8
V2ViS2l0OjpXZWJJREJDdXJzb3I+IGlkYkN1cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IElEQkN1cnNvclByb3h5KGlkYkN1cnNvcikpOworfQorCitJREJDdXJzb3JQcm94eTo6SURC
Q3Vyc29yUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4gaWRiQ3Vyc29yKQor
ICAgIDogSURCQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+KCksIDApCisgICAgICAsIG1f
aWRiQ3Vyc29yKGlkYkN1cnNvcikKK3sKK30KKworSURCQ3Vyc29yUHJveHk6On5JREJDdXJzb3JQ
cm94eSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
dXJzb3JQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE2ODkxNjFlODZhNDc5Y2E2MGI4NTlkMzRlY2E2YTlmY2JhMWFjNTMKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmgKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUHJveHlfaAorI2RlZmluZSBJREJDdXJz
b3JQcm94eV9oCisKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJXZWJJREJDdXJz
b3IuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQkN1cnNvclByb3h5IDogcHVibGljIElEQkN1cnNvciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6Oldl
YklEQkN1cnNvcj4pOworICAgIHZpcnR1YWwgfklEQkN1cnNvclByb3h5KCk7CisKK3ByaXZhdGU6
CisgICAgSURCQ3Vyc29yUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4pOwor
CisgICAgUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4gbV9pZGJDdXJzb3I7Cit9Owor
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJz
b3JQcm94eV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQktleVJhbmdlUHJv
eHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJLZXlSYW5nZVByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZDUzOGM0ZDg5ZmVkMTA1MjRiYTY1YTFkYTBmZDNkOGE0NDViNTA0Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJLZXlSYW5nZVByb3h5LmNwcApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQktleVJh
bmdlUHJveHkuaCIKKworI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZVByb3h5PiBJREJLZXlSYW5nZVByb3h5OjpjcmVhdGUoY29uc3QgV2Vi
S2l0OjpXZWJJREJLZXlSYW5nZSYgaWRiS2V5UmFuZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJREJLZXlSYW5nZVByb3h5KGlkYktleVJhbmdlKSk7Cit9CisKK0lEQktleVJhbmdlUHJv
eHk6OklEQktleVJhbmdlUHJveHkoY29uc3QgV2ViS2l0OjpXZWJJREJLZXlSYW5nZSYgaWRiS2V5
UmFuZ2UpCisgICAgOiBJREJLZXlSYW5nZSgpCisgICAgICAsIG1faWRiS2V5UmFuZ2UoaWRiS2V5
UmFuZ2UpCit7Cit9CisKK0lEQktleVJhbmdlUHJveHk6On5JREJLZXlSYW5nZVByb3h5KCkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCisKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCS2V5UmFuZ2VQ
cm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJLZXlSYW5nZVByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWMzYWMyMGVjZTRjYjE5YjgwNDIyNmE4Zjg1YjE1YTljMzQxZWE0ZQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCS2V5UmFuZ2VQcm94eS5oCkBAIC0wLDAgKzEs
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIElEQktleVJhbmdlUHJveHlfaAorI2RlZmluZSBJREJLZXlS
YW5nZVByb3h5X2gKKworI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCisjaW5jbHVkZSAiV2ViSURC
S2V5UmFuZ2UuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQktleVJhbmdlUHJveHkgOiBwdWJsaWMgSURCS2V5UmFuZ2UgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlUHJveHk+IGNyZWF0ZShjb25z
dCBXZWJLaXQ6OldlYklEQktleVJhbmdlJik7CisgICAgdmlydHVhbCB+SURCS2V5UmFuZ2VQcm94
eSgpOworCitwcml2YXRlOgorICAgIElEQktleVJhbmdlUHJveHkoY29uc3QgV2ViS2l0OjpXZWJJ
REJLZXlSYW5nZSYpOworCisgICAgV2ViS2l0OjpXZWJJREJLZXlSYW5nZSBtX2lkYktleVJhbmdl
OworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8g
SURCS2V5UmFuZ2VQcm94eV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9i
amVjdFN0b3JlUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVBy
b3h5LmNwcAppbmRleCA1OTQyZTJhYTVhMzhmNWRhYTBlZmVkYTk4YjAxZmRhZDg5NjNmNjRmLi4x
YzRiOTg5NzlhNTVlY2Y3NDE4NTYxZGU2ZDdkZTk2YzZmMDdhNGM0IDEwMDc1NQotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJJbmRleFByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAj
aW5jbHVkZSAiV2ViSURCSW5kZXguaCIKICNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZS5oIgog
CkBAIC04NCw2ICs4NSwxMSBAQCB2b2lkIElEQk9iamVjdFN0b3JlUHJveHk6OnJlbW92ZUluZGV4
KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFjawogICAgIG1fd2ViSURC
T2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNh
bGxiYWNrcykpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlUHJveHk6Om9wZW5DdXJzb3IoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
cmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKK3sKKyAgICBtX3dlYklEQk9iamVjdFN0
b3JlLT5vcGVuQ3Vyc29yKHJhbmdlLCBkaXJlY3Rpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJbXBs
KGNhbGxiYWNrcykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCT2JqZWN0U3RvcmVQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZVByb3h5LmgKaW5kZXggNzg5ODNjYjg2MzNkZTRiNWYwZWJiYzI2NzM2MDI4ZTQwNDUwM2MzZi4u
Nzg4OWRlYTM4NjJkNWRmNWViZWQ5Y2U1ZGI4ODg3NDg1MDI3YmVjYyAxMDA3NTUKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1l
KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+KCksIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1
cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVQcm94eShQYXNzT3du
UHRyPFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggODkxZTNiMzI3MjY1NTM0N2I4YjQ3MzE3OTBh
N2VkMDUxNmMwY2RkMC4uNDBhZGMzOGVmOWI5MGE1OWY2NjFjNGNjZjY4MWJmNzY5NGNkNmU4NSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgogCiAjaW5jbHVkZSAi
SURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yUHJveHkuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1
ZGUgIklEQkluZGV4UHJveHkuaCIKQEAgLTYzLDYgKzY0LDEyIEBAIHZvaWQgV2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25TdWNjZXNzKCkKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lk
IFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkN1cnNvciogd2Vi
S2l0SW5zdGFuY2UpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJzb3JQcm94
eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30K
Kwogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJE
YXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmgKaW5kZXggNTE5ZjY5MjZiMWM1MTYzYzVlOGQ5MmIyZTk1
MzMwMDFjZDY3Y2RjYi4uZDIwZTFjNWM2OTgzYTdiM2FhOWUxMmJjNGY1MWY1MTM1OGJkYjU2NiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDYgKzQz
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpX
ZWJJREJEYXRhYmFzZUVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBG
b3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJDdXJz
b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2Uq
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCSW5kZXgqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmUqKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MThhM2Mw
M2ZjMTczYmVlNWI3YTdkMmYzYzgxMjBjMjc3Y2EzYmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29ySW1wbC5oIgor
CisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYklEQkN1cnNvckltcGw6OldlYklEQkN1cnNv
ckltcGwoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGlkYkN1cnNvcikKKyAgICA6IG1faWRiQ3Vyc29y
KGlkYkN1cnNvcikKK3sKK30KKworV2ViSURCQ3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwo
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vy
c29ySW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWE2NzU4NDU4NmE0ODg3MjljNzY1NzQ0OTViY2EzMWU4NzY5YzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkN1cnNvckltcGxfaAorI2RlZmluZSBXZWJJ
REJDdXJzb3JJbXBsX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYklE
QkN1cnNvci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkN1cnNvcjsgfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZE9iamVjdFN0b3Jl
IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KK2NsYXNzIFdlYklEQkN1
cnNvckltcGwgOiBwdWJsaWMgV2ViSURCQ3Vyc29yIHsKK3B1YmxpYzoKKyAgICBXZWJJREJDdXJz
b3JJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3I+IGlkYkN1cnNvcik7Cisg
ICAgdmlydHVhbCB+V2ViSURCQ3Vyc29ySW1wbCgpOworCisgICAgLy8gRklYTUU6IGFkZCBjdXJz
b3IgbWV0aG9kcy4KKworIHByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCQ3Vy
c29yPiBtX2lkYkN1cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViSURCQ3Vyc29ySW1wbF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQktleVJhbmdlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgyODFlZGU0ZjE1YmVmZjNhYzZkMGY2ZTZjNzdkNWUyZDlmNDk3ZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApA
QCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YklEQktleVJhbmdlLmgiCisKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
SURCS2V5UmFuZ2U6OldlYklEQktleVJhbmdlKGNvbnN0IFdlYlN0cmluZyYgbGVmdCwgY29uc3Qg
V2ViU3RyaW5nJiByaWdodCwgdW5zaWduZWQgc2hvcnQgZmxhZ3MpCisgICAgOiBtX3ByaXZhdGUo
V2ViQ29yZTo6SURCS2V5UmFuZ2U6OmNyZWF0ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShsZWZ0KSwgV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
cmlnaHQpLCBmbGFncykpCit7CisKK30KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorV2Vi
SURCS2V5UmFuZ2U6OldlYklEQktleVJhbmdlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJLZXlSYW5nZT4mIGlkYktleVJhbmdlKQorICAgIDogbV9wcml2YXRlKGlkYktleVJhbmdl
KQoreworfQorI2VuZGlmCisKK1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBXZWJJREJLZXlSYW5n
ZTo6bGVmdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bGVmdCgpLT5zZXJpYWxp
emVkU2NyaXB0VmFsdWUoKTsKK30KKworV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklEQktl
eVJhbmdlOjpyaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmlnaHQoKS0+
c2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7Cit9CisKK3Vuc2lnbmVkIHNob3J0IFdlYklEQktleVJh
bmdlOjpmbGFncygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZmxhZ3MoKTsKK30K
Kwordm9pZCBXZWJJREJLZXlSYW5nZTo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCBhNDEwMTBhYjYxYzYwMGQ3ZjRhMWM3ZDc5ZjNm
OTgyMjA5Y2I1YjU0Li44MDcxOWRmOWRkYzVlNTg4MGE4NDllYWY3OWQwZWIyZWFkM2MzNzI2IDEw
MDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURC
Q2FsbGJhY2tzUHJveHkuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZVByb3h5LmgiCiAjaW5jbHVk
ZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKIApAQCAt
NzksNiArODAsMTIgQEAgdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKgogICAgIG1fb2JqZWN0U3RvcmUt
PnJlbW92ZUluZGV4KG5hbWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7
CiB9CiAKK3ZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKGNvbnN0IFdlYklE
QktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKElEQkNh
bGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgSURCS2V5UmFuZ2VQcm94eTo6Y3JlYXRl
KGtleVJhbmdlKSwgZGlyZWN0aW9uKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IGY1OTg0MGZmYjdmNjg1MzFjYzVmZTBiMWVm
OTgyZGJlZTY4YTExNjguLjM4YTJiNjI5Y2U3YjFiOTYxZDEyZTM1YmFhNWZlMjY2MjUxNDE2NDEg
MTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaApAQCAtNTEs
NiArNTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJJREJJbmRleCogaW5kZXgoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcyk7CiAKKyAgICB2b2lkIG9w
ZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IFdlYklEQkNhbGxiYWNrcyopOworCiAgcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZT4gbV9vYmplY3RTdG9yZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61392</attachid>
            <date>2010-07-13 10:30:59 -0700</date>
            <delta_ts>2010-07-16 11:34:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100713183055.patch</filename>
            <type>text/plain</type>
            <size>78860</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZjcxZTk3ZDI1MzVkMmU1Yjc3MmUwZTM5NTkzMzMxYWE0MGNkYWY1Li5jOWE3NGYx
MzhjNDA4ZGNlMjZkODRjMWU5ZTgxMDkyNWQ3MTM2N2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDctMDggIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAg
KGN1cnNvclN1Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChw
b3B1bGF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAg
KHRlc3QpOgorCiAyMDEwLTA3LTEzICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gSXQgc2VlbXMgcmViYXNlbGluZSBmb3IgZm9y
ZWlnbi1vYmplY3Qtc2tldy5zdmcgc29tZWhvdyBmYWlsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGItb3BlbmN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pZGItb3BlbmN1cnNvci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTM4Y2EwZDUwYzFlZDUzYjNiYjg3NmFhY2UwZDRmMDYxZmZiNDFjNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29y
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBACitUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJz
b3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIub3BlbignbmFt
ZScsICdkZXNjcmlwdGlvbicpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBp
cyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hv
dWxkIGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0
JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
bWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1
ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3Rlc3QnKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFT
UyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMg
dHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3Vs
ZCBmaXJlIHNob3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKKworb2JqZWN0U3RvcmUgPSBldmVudC5yZXN1bHQKK09wZW5p
bmcgY3Vyc29yCitDdXJzb3Igb3BlbmVkIHN1Y2Nlc3NmdWxseS4KK1BBU1MgJ29uc3VjY2Vzcycg
aW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNT
ICdhYm9ydCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBp
cyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1BBU1MgZXZlbnQucmVz
dWx0LmNvdW50IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9w
ZW5jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vy
c29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU0MTZjZmY2ZmE0NjU5YTgwNGU2NGJiZDk0MDVmODc4ODRh
YTkyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lk
Yi1vcGVuY3Vyc29yLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9pZGItb3BlbmN1cnNvci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvaWRiLW9w
ZW5jdXJzb3IuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMv
aWRiLW9wZW5jdXJzb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUyYjhhZjMxNjA1Y2E2ZDA5OWI1Y2I4NmY5
NTMzMmQ4MjQ1Zjg1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3NjcmlwdC10ZXN0cy9pZGItb3BlbmN1cnNvci5qcwpAQCAtMCwwICsxLDYzIEBACitk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKK2Z1bmN0aW9uIGN1cnNvclN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJDdXJzb3Ig
b3BlbmVkIHN1Y2Nlc3NmdWxseS4iKQorICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIC8v
IEZJWE1FOiBPbmNlIHdlIGhhdmUgZGF0YSwgY2hlY2sgdGhlIGNvcnJlY3QgY291bnQgYW5kIHRo
YXQgd2UgY2FuIGl0ZXJhdGUgdGhlIGN1cnNvci4KKyAgICBzaG91bGRCZSgiZXZlbnQucmVzdWx0
LmNvdW50IiwgIjAiKTsKKyAgICBkb25lKCk7Cit9CisKK2Z1bmN0aW9uIGRhdGFBZGRlZFN1Y2Nl
c3MoKQoreworICAgIC8vIEZJWE1FOiBvcGVuIGN1cnNvciBoZXJlLgorICAgIC8vIG9wZW5DdXJz
b3Iob2JqZWN0U3RvcmUpOworfQorCitmdW5jdGlvbiBwb3B1bGF0ZU9iamVjdFN0b3JlKG9iamVj
dFN0b3JlKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgna2V5
JywgJ3ZhbHVlJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25z
dWNjZXNzID0gZGF0YUFkZGVkU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBvcGVuQ3Vyc29yKG9iamVjdFN0b3JlKQor
eworICAgIGRlYnVnKCJPcGVuaW5nIGN1cnNvciIpOworICAgIHZhciBrZXlSYW5nZSA9IGluZGV4
ZWREQi5tYWtlTGVmdEJvdW5kS2V5UmFuZ2UoImJhcnoiKTsKKyAgICB2YXIgY3Vyc29yID0gb2Jq
ZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZSk7CisgICAgY3Vyc29yLm9uc3VjY2VzcyA9IGN1
cnNvclN1Y2Nlc3M7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlU3VjY2VzcygpCit7
CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBl
dmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGV2ZW50LnJlc3VsdCIpOworICAgIC8vIEZJWE1FOiBh
ZGQgZGF0YSBpbnN0ZWFkIG9mIG9wZW5pbmcgdGhlIGN1cnNvci4KKyAgICAvLyBwb3B1bGF0ZU9i
amVjdFN0b3JlKG9iamVjdFN0b3JlKTsKKyAgICBvcGVuQ3Vyc29yKG9iamVjdFN0b3JlKTsKK30K
KworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQoreworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVu
dCk7CisgICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC5yZXN1bHQiKTsKKyAgICBy
ZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpIik7CisgICAg
dmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGNyZWF0ZU9iamVj
dFN0b3JlU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbignbmFtZScsICdkZXNjcmlwdGlvbicpIik7CisgICAgdmVyaWZ5UmVzdWx0
KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOworICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK3Rlc3QoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggZjZhYWQwZDg0ZmFiMWIwOWI3N2Uw
YjFhMmZmZGVlOGFhNmNlMmNmZC4uYWY2NzIyN2Y4MDI0NGVlOGMxNWQ3MmQxNDNkYWJmZmM4OGIw
ZGZjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsK
KysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTM2MSw2ICsz
NjEsOCBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL3N0
b3JhZ2UvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpLwogIyBJbmRleGVkIERhdGFiYXNlCiBHRU4g
Oj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkFueS5oIFwKKyAgICAkKGlu
dGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJzb3IuaCBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9zdG9yYWdlL0pTSURCQ3Vyc29yUmVxdWVzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3N0
b3JhZ2UvSlNJREJEYXRhYmFzZUVycm9yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFn
ZS9KU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFn
ZS9KU0lEQkRhdGFiYXNlUmVxdWVzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5k
ZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCmluZGV4IDFlN2ZhMzdiNGYwZGY5MWNkYzEyNTM0NWQwOTUwNWYxMGZhM2E3OTUuLjc4OWQx
OGYyMDVmZTUzMGI0YjEwMWE3ZDVjYWM5ZjY1NWExZGFkZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2
ZWQudjhiaW5kaW5ncy5tawpAQCAtMzQyLDYgKzM0Miw4IEBAICQocGF0c3Vic3QgJS5oLCUuY3Bw
LCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0
ZXMpCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOElEQkFueS5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURC
Q3Vyc29yLmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJDdXJzb3JSZXF1
ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJEYXRhYmFzZUVycm9y
LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJEYXRhYmFzZUV4Y2VwdGlv
bi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCRGF0YWJhc2VSZXF1ZXN0
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1r
CmluZGV4IGI2OGYzMGYzMDM2MDc3MTNhM2RjOTI4YzkzZWE2MTQxNTY2Zjk4YzMuLjc5YjgzOTI5
N2I5OTE2N2EwZTA1Y2ZlYjBlMmJhMTc2ZWI4N2FjMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5k
cm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTczNCw2ICs3MzQsOCBAQCBMT0NB
TF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlzdG9yYWdlL0RhdGFiYXNlVGhy
ZWFkLmNwcCBcCiAJc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwIFwKIAlzdG9yYWdlL0lEQkFu
eS5jcHAgXAorCXN0b3JhZ2UvSURCQ3Vyc29yLmNwcCBcCisJc3RvcmFnZS9JREJDdXJzb3JSZXF1
ZXN0LmNwcCBcCiAJc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwIFwKIAlzdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5jcHAgXAogCXN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMmE0ZjQyZWJiZTJjOGUwNjIyNmU4M2VkYjY3NjkwMTgwYTc1YzM1My4uMzgxMjUxZWM2ZDc5
NTcwMWE4YThkMjIwNjZiODM2NjI4ZGJlNTM2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzAsNiArMzMwLDggQEAg
U0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbAog
ICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAogICAgIHN0b3JhZ2UvSURCQW55LmlkbAorICAg
IHN0b3JhZ2UvSURCQ3Vyc29yLmlkbAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5pZGwK
ICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsCiAgICAgc3RvcmFnZS9JREJEYXRhYmFz
ZUV4Y2VwdGlvbi5pZGwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTE0
MDgsNiArMTQxMCw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL0RhdGFiYXNl
VGhyZWFkLmNwcAogICAgIHN0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmNwcAogICAgIHN0b3JhZ2Uv
SURCQW55LmNwcAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmNwcAorICAgIHN0b3JhZ2UvSURCQ3Vy
c29yUmVxdWVzdC5jcHAKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAKICAgICBzdG9y
YWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAKICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDQyMGFjOTVkYTY0MjFhMTIyZDE2N2IyMmJkNGUyYjhkYjY0YTFhNmUuLjg0N2VmNDZlMjNjMDI2
ZDU5MDUyMDEzNGM2OTgyZjkzZjliNzc2ZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTAtMDctMDggIE1h
cmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGluZ3MgYW5kIHBsdW1iaW5n
IGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVu
Y3Vyc29yLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoK
KyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRy
b2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvVjgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQW55LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkFueTo6aWRiQ3Vyc29yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6
OnNldCk6CisgICAgICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkFueTo6KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0
b3JhZ2UvSURCQ3Vyc29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6
OklEQkN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6Oik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6On5JREJDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb24pOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCQ3Vyc29yLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JSZXF1ZXN0OjpJREJDdXJz
b3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6On5JREJDdXJz
b3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OnJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6a2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1
cnNvclJlcXVlc3Q6OmNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6
OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JSZXF1ZXN0Ojpjb250aW51ZV8p
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6cmVtb3ZlKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yUmVx
dWVzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlUmVxdWVzdDo6SURCRGF0YWJhc2VSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlUmVxdWVzdDo6Y3JlYXRlT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VSZXF1ZXN0OjpyZW1vdmVPYmpl
Y3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJh
bmdlOjpJREJLZXlSYW5nZSk6CisgICAgICAgICogc3RvcmFnZS9JREJLZXlSYW5nZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5UmFuZ2U6OnJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpmbGFncyk6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
SW1wbDo6b3BlbkN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwu
aDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZUluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlSW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpvcGVuQ3Vyc29yKToKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpJbmRleGVkRGF0
YWJhc2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6
Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorCiAy
MDEwLTA3LTEzICBXLiBKYW1lcyBNYWNMZWFuIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA3OGM1MjNm
YTFmODZkYjAyM2U3YTM4NzlhNDhhNzdiOTYxY2U0NDUxLi4yY2VhMmQyMDgyODRjNWNlZDRkZGUx
ZjFiNzVkZjNiN2MzYTI2MmE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMTc2LDYgKzE3Niw4IEBACiAj
aW5jbHVkZSAiSlNIVE1MVUxpc3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSURCQW55LmNwcCIKKyNpbmNsdWRlICJKU0lEQkN1cnNv
ci5jcHAiCisjaW5jbHVkZSAiSlNJREJDdXJzb3JSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lE
QkRhdGFiYXNlRXJyb3IuY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3Bw
IgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA3YzUzZTg2OTViYzgzN2RjOWIwMGNiNzllOWZlODViN2QwZjQ1NmVlLi41ZTk2Nzc4YWY3NmI3
ODg4ZjFmNzg4YWUzOGNmYTFhYWIzMTQ2YzNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTksNiAr
MjE5LDggQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgSFRNTFZpZGVvRWxlbWVudCBcCiAgICAgSGlz
dG9yeSBcCiAgICAgSURCQW55IFwKKyAgICBJREJDdXJzb3IgXAorICAgIElEQkN1cnNvclJlcXVl
c3QgXAogICAgIElEQkRhdGFiYXNlRXJyb3IgXAogICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uIFwK
ICAgICBJREJEYXRhYmFzZVJlcXVlc3QgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggN2ZhODA5MzliYzA4YzE5YzY1ZmFk
ZTVmOWI4NGIzMjU0OGQ0MWEzOC4uYTVkNDRiNDcxODBhYzIxMzI4ZWMzMmUxN2NiODFiMjFmMzM1
MDE1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0yNTc3LDYgKzI1NzcsOCBAQCBGRUFUVVJFX0RFRklORVMgKz0gRU5B
QkxFX0lOREVYRURfREFUQUJBU0U9MQogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3Rv
cmFnZS9JREJBbnkuaWRsIFwKKyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICBX
ZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZUVycm9yLmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0
aW9uLmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwgXApAQCAt
MjU5Niw2ICsyNTk4LDEwIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdG9yYWdl
L0lEQkFueS5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuaCBcCiAJV2ViQ29yZS9zdG9y
YWdlL0lEQkNhbGxiYWNrcy5oIFwKKyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgXAor
ICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmggXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vy
c29yUmVxdWVzdC5jcHAgXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlSW1wbC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDFkMjM2M2I5ZjAwMjc5N2U5NzQ1MDQ1NGZiYTJjYjQzZWYyM2MyYjkuLjkzMmIwZGQ2Y2Fl
NWEyYjRmMWY2Y2ZlYzhjZGIzNDFhMmE5MzFkODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzIsNiArMjMyLDggQEAKICAg
ICAgICAgICAgICdzdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0RhdGFiYXNlU3luYy5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55Lmlk
bCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3IuaWRsJywKKyAgICAgICAgICAgICdz
dG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRh
dGFiYXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0
aW9uLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywK
QEAgLTM0NTAsNiArMzQ1MiwxMCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmNwcCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJBbnkuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJDYWxsYmFja3MuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCcs
CisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3IuaCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9JREJDdXJzb3JSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JS
ZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2UuaCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2Uv
SURCRGF0YWJhc2VFeGNlcHRpb24uaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJp
IGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA3MjA1YWRkZTM4ZTczNGU3Yzk1NzY0MjM2N2Nl
YjVkODY3MjI3MTdlLi40YTE4NGIxYmViZjk4NjI0NzJjZjhhMmFiNjZkMTE0NjFkNWM4YWUyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkK
QEAgLTQ4Myw2ICs0ODMsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHN0b3JhZ2UvRGF0YWJh
c2VDYWxsYmFjay5pZGwgXAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbCBcCiAgICAgc3Rv
cmFnZS9JREJBbnkuaWRsIFwKKyAgICBzdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICAgIHN0b3Jh
Z2UvSURCQ3Vyc29yUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5p
ZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsIFwKICAgICBzdG9yYWdl
L0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNWNlNGMyZjU1MTRkYjk3MzFiMDhmNjYzNTdk
MGQxMWYyZjUyZmVhOS4uNzcyMjBjZmVmYzgwNzI4ZmI4YTEwNjdhMGYwMWI2MjRhN2Y3NTBlMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJv
CkBAIC0yMzkyLDYgKzIzOTIsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRT0xKSB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaCBc
CiAgICAgICAgIHN0b3JhZ2UvSURCQW55LmggXAogICAgICAgICBzdG9yYWdlL0lEQkNhbGxiYWNr
cy5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3IuaCBcCisgICAgICAgIHN0b3JhZ2UvSURC
Q3Vyc29yUmVxdWVzdC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5oIFwKICAgICAg
ICAgc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJh
c2VFcnJvci5oIFwKQEAgLTI0MTgsNiArMjQyMCw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJBbnlDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIFwKICAgICAg
ICAgc3RvcmFnZS9JREJBbnkuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3IuY3BwIFwK
KyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
SURCRGF0YWJhc2VJbXBsLmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOGM4Njk2OGU4YzY1MTMyOGJhYzc3MDU3MDM5OWFh
Yjc5ZDU3MTY4NS4uZTA4YzE0YmExNWU3MzBkMTVkOTFjZDdhNmJmMjA5ZmVmYTY1MjRjMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00NDAxOSw2ICs0NDAxOSwyMTQg
QEAKIAkJCQkJCS8+DQogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQor
ICAgICAgICA8RmlsZQ0KKyAgICAgICAgICBSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJDdXJzb3IuY3BwIg0KKyAg
ICAgICAgICA+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5h
bWU9IkRlYnVnfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBO
YW1lPSJSZWxlYXNlfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAg
ICBOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAg
ICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQor
ICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQor
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQor
ICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAgICAgICAg
ICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAg
IDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAg
ICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxl
Q29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAg
ICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAg
ICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgIDwv
RmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvci5o
Ig0KKyAgICAgICAgICA+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAg
ICAgIE5hbWU9IkRlYnVnfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAg
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAg
ICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAg
ICAgICAgICBOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0
aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAg
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxU
b29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAg
IC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAg
ICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAg
ICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiIN
CisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQor
ICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAg
ICAgIDwvRmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1
cnNvclJlcXVlc3QuY3BwIg0KKyAgICAgICAgICA+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0K
KyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0K
KyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3Vy
YXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKyAgICAgICAgICAgIEV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9v
bA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAv
Pg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAg
ICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAg
ICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAg
PEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIi
DQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0K
KyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAg
ICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fp
cm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAg
ICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRl
YnVnX0FsbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisg
ICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisgICAgICAgIDwvRmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0lEQkN1cnNvclJlcXVlc3QuaCINCisgICAgICAgICAgPg0KKyAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAg
ICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAg
ICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAg
PEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisg
ICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAg
ICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
ICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAg
ICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVn
X0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAg
ICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1l
PSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAg
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAg
ICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAg
IDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICA8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSURCS2V5LmNwcCINCiAJCQkJCQk+DQpAQCAtNDk4NDQsNiArNTAwNTIs
MjIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ2FsbGJhY2tzLmgiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxJREJDdXJzb3IuY3BwIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAg
ICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvci5oIg0K
KyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvclJlcXVlc3QuY3BwIg0KKyAgICAgICAgPg0KKyAg
ICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9y
YWdlXElEQkN1cnNvclJlcXVlc3QuaCINCisgICAgICAgID4NCisgICAgICA8L0ZpbGU+DQogCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkRhdGFiYXNlLmgiDQogCQkJ
CT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5w
bSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IGQxMDY5
MjBmN2Y0YzRlNzkzODhmYTc5YzQ0NmY1ZDdlNWQ5YWEyY2UuLjY0ZDA2OWM3MGRiZmY4YTYzNTg5
ZmVkMTY3NGU4NDAwMzFjOGQ3MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yLnBtCkBAIC00NjcsNCArNDY3LDE4IEBAIHN1YiBTZXR0ZXJFeHByZXNzaW9uUHJlZml4
CiAgICAgcmV0dXJuICIkZnVuY3Rpb25OYW1lKCRjb250ZW50QXR0cmlidXRlTmFtZSwgIgogfQog
CitzdWIgRXNjYXBlUmVzZXJ2ZWRLZXl3b3JkcworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
KyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJWNwcFJlc2VydmVkS2V5V29yZHMgPSAo
CisgICAgICAgICJjb250aW51ZSIgPT4gIjEiLAorICAgICAgICAiZGVsZXRlIiA9PiAiMSIsCisg
ICAgKTsKKworICAgIHJldHVybiAkbmFtZSAuICJfIiBpZiBleGlzdHMgJGNwcFJlc2VydmVkS2V5
V29yZHN7JG5hbWV9OworICAgIHJldHVybiAkbmFtZTsKK30KKwogMTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDM4M2JiNzQ2Y2M4NDRmZjI0OWMx
MmQyZTFiMWE5OGQwMmVkM2M3MzguLjc0NGUyMTA1ZDBkZmFlZTRkNTBlM2YyOTcxZmZkZmFjMThj
M2U5ZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpA
QCAtMjQ5MSw2ICsyNDkxLDggQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKICAg
ICAgICAgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkltcGxlbWVudGF0aW9uRnVuY3Rpb24ifTsKICAgICB9CiAKKyAgICAkbmFtZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5Fc2NhcGVSZXNlcnZlZEtleXdvcmRzKCRuYW1lKTsKKwogICAgIG15ICRmdW5jdGlv
blN0cmluZyA9ICJpbXAtPiR7bmFtZX0oIjsKIAogICAgIGlmICgkY29weUZpcnN0KSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKaW5kZXggZGVmMTEy
MDkwZWYxOTlhMTM2MjgxZDdlOWIxMmYxZjBlNzVmMzE4Yi4uYzM4MzIzZDlmMTBhMzE2ZWU5Yjkw
MmFhNmJiNDIzZDVjZTc4YWI5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJREJBbnlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SURCQW55Q3VzdG9tLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlY4SURCQW55Lmgi
CiAKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJWOElEQkN1
cnNvclJlcXVlc3QuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlY4SURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJLZXkuaCIKQEAgLTUwLDYg
KzUxLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIGNhc2UgSURCQW55OjpOdWxsVHlwZToKICAg
ICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OklEQkN1cnNvclJlcXVl
c3RUeXBlOgorICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJDdXJzb3JSZXF1ZXN0KCkpOwog
ICAgIGNhc2UgSURCQW55OjpJREJEYXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4g
dG9WOChpbXBsLT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQklu
ZGV4UmVxdWVzdFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IDlhMTg5ODA1NDlmMTk4YzY3MjI3OGNl
MDY0OTUzOTczYzM0NzdiNmUuLjUwNjU1Y2I3OTA1YTMwNjUwNzYwNTQ5MGJmYjZmZTg1NjBhNDFl
YmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9JREJBbnkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkN1cnNvclJlcXVlc3QuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNs
dWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKQEAgLTUwLDYgKzUxLDEyIEBAIElEQkFueTo6
fklEQkFueSgpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4gSURCQW55Ojpp
ZGJDdXJzb3JSZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV90eXBlID09IElEQkN1cnNvclJlcXVl
c3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJDdXJzb3JSZXF1ZXN0OworfQorCiBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlUmVxdWVzdD4gSURCQW55OjppZGJEYXRhYmFzZVJlcXVlc3QoKQogewogICAg
IEFTU0VSVChtX3R5cGUgPT0gSURCRGF0YWJhc2VSZXF1ZXN0VHlwZSk7CkBAIC05Miw2ICs5OSwx
MyBAQCB2b2lkIElEQkFueTo6c2V0KCkKICAgICBtX3R5cGUgPSBOdWxsVHlwZTsKIH0KIAordm9p
ZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IHZhbHVlKQoreworICAg
IEFTU0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CisgICAgbV90eXBlID0gSURCQ3Vyc29y
UmVxdWVzdFR5cGU7CisgICAgbV9pZGJDdXJzb3JSZXF1ZXN0ID0gdmFsdWU7Cit9CisKIHZvaWQg
SURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IHZhbHVlKQogewogICAg
IEFTU0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSURCQW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggNzdiYmE3Y2M5
YTUzMjA3Yzk2YmFkYjBhYTdkMGU3YzY1MWRlMWQ4OC4uN2NkYjM1MjFiNThmYjNkM2Y0YmNmOTY0
YWRiOGNhOGFhNjQ4MmIzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIElEQkN1cnNvclJlcXVlc3Q7CiBjbGFzcyBJREJEYXRhYmFz
ZVJlcXVlc3Q7CiBjbGFzcyBJREJJbmRleFJlcXVlc3Q7CiBjbGFzcyBJREJLZXk7CkBAIC01Niw2
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewogICAgICAgICBVbmRlZmluZWRUeXBl
ID0gMCwKICAgICAgICAgTnVsbFR5cGUsCisgICAgICAgIElEQkN1cnNvclJlcXVlc3RUeXBlLAog
ICAgICAgICBJREJEYXRhYmFzZVJlcXVlc3RUeXBlLAogICAgICAgICBJREJJbmRleFJlcXVlc3RU
eXBlLAogICAgICAgICBJREJLZXlUeXBlLApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAKICAg
ICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAvLyBVc2UgdHlwZSgp
IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lIG9mIHRoZXNlIHlvdSdyZSBhbGxvd2VkIHRvIGNhbGwu
CisgICAgUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBpZGJDdXJzb3JSZXF1ZXN0KCk7CiAg
ICAgUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IGlkYkRhdGFiYXNlUmVxdWVzdCgpOwog
ICAgIFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBpZGJJbmRleFJlcXVlc3QoKTsKICAgICBQ
YXNzUmVmUHRyPElEQktleT4gaWRiS2V5KCk7CkBAIC03NSw2ICs3OCw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFNldCBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4KICAgICB2b2lkIHNldCgpOyAvLyBG
b3IgIm51bGwiLgorICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4pOwog
ICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBz
ZXQoUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+KTsKICAgICB2b2lkIHNldChQYXNzUmVmUHRy
PElEQktleT4pOwpAQCAtODgsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwog
CiAgICAgLy8gT25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2Ug
YXQgYW55IGdpdmVuIHRpbWUuCisgICAgUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IG1faWRiQ3Vy
c29yUmVxdWVzdDsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBtX2lkYkRhdGFiYXNl
UmVxdWVzdDsKICAgICBSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBtX2lkYkluZGV4UmVxdWVzdDsK
ICAgICBSZWZQdHI8SURCS2V5PiBtX2lkYktleTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJDYWxsYmFja3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAppbmRleCAz
N2ZkYzQ2ZTA5OWNlYzY1MzA5NGZhMTI2OTg4M2UzYTY5OGYwOTlkLi5hNjNlMjU1MmUxMTUwNWQ5
ZWYwZmEwM2U2MmQ4MGFlZTUwNDliMDU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURC
Q2FsbGJhY2tzLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWZuZGVmIElEQkNhbGxiYWNrc19oCiAjZGVmaW5lIElEQkNhbGxiYWNrc19o
CiAKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgpAQCAtNDcs
NiArNDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRy
PElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpID0g
MDsgLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCQ3Vyc29yPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCSW5kZXg+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QktleT4pID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWNhYTAyZTNjMjA4YWZkZDY4
NTM4N2NlZWEyZDJiNTgxYTIzZmYwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvci5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvcl9o
CisjZGVmaW5lIElEQkN1cnNvcl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
I2luY2x1ZGUgIklEQktleVJhbmdlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IElEQkN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvcj4geworcHVibGljOgorICAg
IC8vIEtlZXAgaW4gc3luYyB3aXRoIHdoYXQncyBpbiB0aGUgLmlkbCBmaWxlLgorICAgIGVudW0g
RGlyZWN0aW9uIHsKKyAgICAgICAgTkVYVCA9IDAsCisgICAgICAgIE5FWFRfTk9fRFVQTElDQVRF
ID0gMSwKKyAgICAgICAgUFJFViA9IDIsCisgICAgICAgIFBSRVZfTk9fRFVQTElDQVRFID0gMywK
KyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7CisK
KyAgICB2aXJ0dWFsIH5JREJDdXJzb3IoKSB7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbigpIGNvbnN0ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQkN1cnNvci5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNzYxZGRkN2QyODkxNDA2NjY3N2UyOWQ0YjA5YWRkNzFiY2I0ZWJkCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBzdG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICBdIElEQkN1cnNvciB7CisgICAgICAgIC8vIEtl
ZXAgaW4gc3luYyB3aXRoIHdoYXQncyBpbiB0aGUgLmggZmlsZS4KKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgTkVYVCA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FWFRf
Tk9fRFVQTElDQVRFID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUFJFViA9IDI7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBSRVZfTk9fRFVQTElDQVRFID0gMzsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICB9
OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZjdhZTEzZjJiYTdm
MTJjMzdlZWI3ODQ1YjBhNzYyMDlkNDc5MjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCQ3Vyc29ySW1wbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCQ3Vyc29ySW1wbCA6IHB1YmxpYyBJREJDdXJzb3Ig
eworcHVibGljOgorICAgIElEQkN1cnNvckltcGwoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7CisgICAgfklEQkN1cnNvckltcGwoKSB7
IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGlyZWN0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPElEQktleVJhbmdlPiBtX2tl
eVJhbmdlOworICAgIHVuc2lnbmVkIHNob3J0IG1fZGlyZWN0aW9uOworfTsKKworSURCQ3Vyc29y
SW1wbDo6SURCQ3Vyc29ySW1wbChQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgIDogbV9rZXlSYW5nZShrZXlSYW5nZSkKKyAgICAs
IG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKK3sKK30KKworUGFzc1JlZlB0cjxJREJDdXJzb3I+IElE
QkN1cnNvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JJ
bXBsKGtleVJhbmdlLCBkaXJlY3Rpb24pKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdhYjc3OTgzYWZmNWFiODViNjU4MWM1ODY0ZGQ5ZWE2
MDA4NDgwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1
ZXN0LmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIklEQkN1cnNvclJlcXVlc3QuaCIKKworI2luY2x1ZGUgIklEQktleS5oIgorCisjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURCQ3Vy
c29yUmVxdWVzdDo6SURCQ3Vyc29yUmVxdWVzdChQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Vyc29y
KQorICAgIDogbV9jdXJzb3IoY3Vyc29yKQoreworfQorCitJREJDdXJzb3JSZXF1ZXN0Ojp+SURC
Q3Vyc29yUmVxdWVzdCgpCit7Cit9CisKK0lEQlJlcXVlc3QqIElEQkN1cnNvclJlcXVlc3Q6OnJl
cXVlc3QoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSURCQW55KiBJREJDdXJzb3JSZXF1ZXN0Ojpr
ZXkoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSURCQW55KiBJREJDdXJzb3JSZXF1ZXN0Ojp2YWx1
ZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwOworfQorCitsb25nIGxvbmcgSURCQ3Vyc29yUmVxdWVzdDo6Y291
bnQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBJREJDdXJzb3JSZXF1ZXN0Ojp1cGRhdGUo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQoreworICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJREJDdXJzb3JS
ZXF1ZXN0Ojpjb250aW51ZV8oUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgSURCQ3Vyc29y
UmVxdWVzdDo6cmVtb3ZlKCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1
cnNvclJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjA0MTEzMWY3N2U5MWZjYmIxN2RjMWFjZDI1N2YxNTQxNGExNGZhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUmVxdWVzdF9oCisjZGVmaW5lIElEQkN1cnNv
clJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJ
REJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQkN1cnNvcjsKKworY2xhc3MgSURCQ3Vyc29yUmVxdWVzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPElEQkN1cnNvclJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1
cnNvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yUmVxdWVz
dChjdXJzb3IpKTsKKyAgICB9CisgICAgfklEQkN1cnNvclJlcXVlc3QoKTsKKworICAgIElEQlJl
cXVlc3QqIHJlcXVlc3QoKSBjb25zdDsKKyAgICBJREJBbnkqIGtleSgpIGNvbnN0OworICAgIElE
QkFueSogdmFsdWUoKSBjb25zdDsKKyAgICBsb25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2
b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpOworICAg
IHZvaWQgY29udGludWVfKFBhc3NSZWZQdHI8SURCS2V5PiBrZXkgPSAwKTsKKyAgICB2b2lkIHJl
bW92ZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IElEQkN1cnNvclJlcXVlc3QoUGFzc1Jl
ZlB0cjxJREJDdXJzb3I+IGN1cnNvcik7CisKKyAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX2N1cnNv
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJ
REJDdXJzb3JSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JS
ZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjUzZjMwYmIxZWQ0ZDllNDQ4ZTYyMjViYzRlYmNlMTQ1OTkwOTdlCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaWRsCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJDdXJzb3JSZXF1ZXN0IHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQlJlcXVlc3QgcmVxdWVzdDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIElEQkFueSBrZXk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBJREJBbnkgdmFsdWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcgY291
bnQ7CisKKyAgICAgICAgdm9pZCB1cGRhdGUoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVl
KTsKKyAgICAgICAgdm9pZCBjb250aW51ZShpbiBbT3B0aW9uYWxdIElEQktleSBrZXkpOworICAg
ICAgICB2b2lkIHJlbW92ZSgpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmUuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCmlu
ZGV4IGU3OGU2MmFiNGQ5NWNjMzI1ZGFmZjJkMzU5Y2Q2NjYzOTk4MzdhZTEuLjY4M2FhMThlY2Q3
NDNjNWJjNDE5YWFiZTVlM2ZhOWJiZWVlMjU2ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIElEQk9iamVjdFN0b3JlX2gKICNkZWZpbmUgSURC
T2JqZWN0U3RvcmVfaAogCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTM1LDYgKzM2LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01TdHJpbmdMaXN0OwogY2xhc3MgSURC
Q2FsbGJhY2tzOworY2xhc3MgSURCQ3Vyc29yOworY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBJ
REJJbmRleDsKIGNsYXNzIElEQktleTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKQEAg
LTU0LDYgKzU3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbmRleChjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRl
eD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24p
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlSW1wbC5jcHAKaW5kZXggZDY3ODQwMGRkNjc1ZjIxN2NjZWY0NjYxMDkwM2IxZDk4ODc5
ODI4MS4uMWMyZDYwNzU2M2M4ZDdkZTM3OWVjMTgyODk5YmNjMDY4YjljMGI1ZiAxMDA3NTUKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAKQEAgLTEzMCw2ICsxMzAsMTEgQEAgdm9pZCBJ
REJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3MKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcygpOwogfQogCit2b2lk
IElEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJREJDdXJzb3I+IGN1cnNvciA9IElEQkN1cnNvcjo6
Y3JlYXRlKHJhbmdlLCBkaXJlY3Rpb24pOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNv
ci5yZWxlYXNlKCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZUltcGwuaAppbmRleCBjNGQyZWI4ZDIyMDQxNTcyMjQ5M2RkOTQwNDgzOWQ5
MmI1OGI2MTkxLi5iNDkzZGVjOGI3MzJiOTMyYmM4NDRlYjk4NDIwMjk4ZjZlNTIxNGJkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUpOwogICAg
IHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4pOwogCisgICAgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7
CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVJbXBsKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCmluZGV4IDNlMDk1YzFlMGI1NTRhZjA4YzA2
NTIyMzBkMDQyMGJiYjliNjliN2QuLmY0YzFkN2NlNjk5MDM4NjhmYmNjNDA5MDYzYTdlZWY2NGU0
M2JkMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3Qu
Y3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCkBAIC0x
MDgsNiArMTA4LDEzIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgcmV0dXJuIHJlcXVl
c3Q7CiB9CiAKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpv
cGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCit7CisgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcykpOworICAgIG1fb2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdCwg
cmFuZ2UsIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCmluZGV4IDg2ZjY0ZDY1NDljYWEyYjM0MTdm
YTcyZDRhYzgyYzlmZTg5ZGEwZTkuLmJiY2YzZDUzODhmZDI4MmNlYjZmZjIxMzgyZjE4NjZiY2Fl
Y2Y5YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3Qu
aAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTI2LDYg
KzI2LDkgQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVSZXF1ZXN0X2gKICNkZWZpbmUgSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0X2gKIAorI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklE
QkN1cnNvclJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCkBAIC02NCw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElE
QkluZGV4UmVxdWVzdD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IHJlbW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwogCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IDAs
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6
CiAgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+KTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAppbmRleCBhODE2Yjcz
ZWUzNTFhMDMzOTI2NGZmMTA0N2M2ZDcxMzZmMmVlMGMwLi40MTA0Y2ZkN2JiYWFjZDZmYzgxNTk0
MDJiM2QxNWM0MWNiOWMzNDgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmlkbApAQCAtNDEsNiArNDEsOCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIElEQklu
ZGV4UmVxdWVzdCBpbmRleChpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmlu
ZyBuYW1lKTsKIAorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURC
UmVxdWVzdCBvcGVuQ3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtP
cHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKTsKKwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcga2V5UGF0aDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNw
cAppbmRleCA3OGRkMTVhMDBmY2Q3MjBmZGQ5ZTliZDFhYmMxYTRlN2I2ZTNjOTMxLi5lZjQzZmNk
YzliMTIyOWQyNTgwYjg5ZGUzZGZlYjU5Njk3NzY1NGI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvSURCUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3Bw
CkBAIC03Myw2ICs3MywxMiBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcygpCiAgICAgbV9y
ZXN1bHQtPnNldCgpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jl
c3VsdC0+c2V0KElEQkN1cnNvclJlcXVlc3Q6OmNyZWF0ZShpZGJDdXJzb3IpKTsKK30KKwogdm9p
ZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJh
c2UpCiB7CiAgICAgb25FdmVudENvbW1vbigpOwpAQCAtMTYyLDcgKzE2OCw3IEBAIHZvaWQgSURC
UmVxdWVzdDo6dGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopCiAgICAgICAgIGRpc3BhdGNo
RXZlbnQoSURCRXJyb3JFdmVudDo6Y3JlYXRlKG1fc291cmNlLCAqbV9lcnJvcikpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX3Jlc3VsdC0+dHlwZSgpICE9IElEQkFueTo6VW5kZWZp
bmVkVHlwZSk7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVhdGUo
bV9zb3VyY2UsIG1fcmVzdWx0KSk7ICAgICAgICAKKyAgICAgICAgZGlzcGF0Y2hFdmVudChJREJT
dWNjZXNzRXZlbnQ6OmNyZWF0ZShtX3NvdXJjZSwgbV9yZXN1bHQpKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCUmVxdWVzdC5oCmluZGV4IGM3NjNkOTZlYTc1ZTNjNGJmNDFlNDA4MzM0NDMzYjY4YWI4YmMz
YTAuLmNiZjU2ZWQzYmJlOGM1ZjUyNGZmOWM3YzM5MjMxYzU0ZGUyNjFmZDQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJl
cXVlc3QuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgLy8gSURCQ2FsbGJhY2tzCiAg
ICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCS2V5Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3Mzg5Y2U4YzQzYTI0MTZjMjYw
MmJmNGEzZjBiZTkzNTJjZjRlOGIyLi43ZmE3NTlkNWFlNWIyMTk1NWRlNDM4ZWNjZTUxZjNjNWEw
ZWZhYjkwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMC0wNy0wOCAgTWFyY3Vz
IEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQgcGx1bWJpbmcgZm9y
IElEQkN1cnNvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxODg4CisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJz
b3IuaHRtbAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSURC
Q2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNz
KToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ3Vyc29yLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDdXJzb3I6On5XZWJJREJDdXJzb3IpOgorICAgICAgICAqIHB1YmxpYy9XZWJJ
REJLZXlSYW5nZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6Oldl
YklEQktleVJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6On5XZWJJREJL
ZXlSYW5nZSk6CisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJv
eHk6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAg
ICAgICogc3JjL0lEQkN1cnNvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5
OjpJREJDdXJzb3JQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6fklE
QkN1cnNvclByb3h5KToKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yUHJveHkuaDogQWRkZWQuCisg
ICAgICAgICogc3JjL0lEQktleVJhbmdlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OklEQktleVJhbmdlUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlS
YW5nZVByb3h5OjpJREJLZXlSYW5nZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJh
bmdlUHJveHk6On5JREJLZXlSYW5nZVByb3h5KToKKyAgICAgICAgKiBzcmMvSURCS2V5UmFuZ2VQ
cm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVByb3h5OjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2Vzcyk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAg
KiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDdXJzb3JJbXBsOjpXZWJJREJDdXJzb3JJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJz
b3JJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJJREJLZXlSYW5nZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6V2ViSURCS2V5UmFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6bGVmdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpm
bGFncyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpyZXNldCk6CisgICAgICAg
ICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklE
Qk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcik6CisgICAgICAgICogc3JjL1dlYklEQk9iamVj
dFN0b3JlSW1wbC5oOgorCiAyMDEwLTA3LTEwICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA4
MTQzMDQ5YmY2OGIwNDllMTA2N2I1ODZjMDU3ZTkwMTg5ZDFhODA0Li4zOWY4MDQ5ZGUxOGI3MDdj
NzEwNDNjOWUzMzIxNGZjMDU1YzFjMWJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTM4LDggKzEzOCwx
MCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2UuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJJREJDYWxsYmFja3MuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJDdXJzb3Iu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYklEQkRhdGFiYXNlRXJyb3IuaCcsCisgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklE
QkluZGV4LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaCcsCkBAIC0yNzMsNiArMjc1LDgg
QEAKICAgICAgICAgICAgICAgICAnc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgnLAorICAgICAgICAgICAgICAgICdzcmMvSURC
Q3Vyc29yUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0lEQkN1cnNvclByb3h5Lmgn
LAogICAgICAgICAgICAgICAgICdzcmMvSURCRGF0YWJhc2VQcm94eS5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvSURCRGF0YWJhc2VQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lE
QkluZGV4UHJveHkuY3BwJywKQEAgLTM2MSwxMiArMzY1LDE1IEBACiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJh
Y2tzSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5o
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuY3BwJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SURCS2V5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXlSYW5nZS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJbWFnZUNHLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFj
a3MuaAppbmRleCBjZWU4NjEyY2NiYWFjODU2OGE5MWM3MjA5OTgyZjA4NjMwNTNlNjE3Li4yZTJj
NGQyOTllMGM4YzdmNTc1ZGFmMmI0ZTgwN2ZlNzc1M2NkNmQxIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIFdlYklEQkN1cnNvcjsKIGNsYXNzIFdlYklEQkRhdGFiYXNlOwogY2xh
c3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKQEAgLTQ1LDYgKzQ2LDcg
QEAgcHVibGljOgogICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBvd25lcnNoaXAgdG8gdGhlIGNh
bGxlZSB2aWEgYSBwb2ludGVyLgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdlYklE
QkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfSAv
LyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKikg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJJbmRl
eCopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkN1cnNvci5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJDdXJzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzlkOGI3NjMzZmVjYTU4MTJkN2I2NzgyMGU1NTg0
ZWM2YmY3ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJDdXJzb3IuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJDdXJzb3Jf
aAorI2RlZmluZSBXZWJJREJDdXJzb3JfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5j
bHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisvLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9y
IGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgorY2xhc3MgV2ViSURCQ3Vyc29y
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJJREJDdXJzb3IoKSB7IH0KKworICAgIHZpcnR1
YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29uc3QgPSAwOworICAgIC8vIEZJWE1FOiBm
aW5pc2guCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQkN1
cnNvcl9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVJhbmdl
LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVJhbmdlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGRlMmEwZWYxNTc0NzIwNzFhZjZiMzBhYzI4NjU1MGU5M2YxZWE1MwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5UmFuZ2UuaApAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJLZXlSYW5nZV9oCisjZGVmaW5lIFdlYklEQktleVJh
bmdlX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJREJLZXlSYW5nZTsgfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOworY2xhc3MgV2Vi
U3RyaW5nOworCitjbGFzcyBXZWJJREJLZXlSYW5nZSB7CitwdWJsaWM6CisgICAgfldlYklEQktl
eVJhbmdlKCk7CisKKyAgICBXRUJLSVRfQVBJIFdlYklEQktleVJhbmdlKGNvbnN0IFdlYklEQktl
eVJhbmdlJiBrZXlSYW5nZSkgeyBtX3ByaXZhdGUgPSBrZXlSYW5nZS5tX3ByaXZhdGU7IH0KKyAg
ICBXRUJLSVRfQVBJIFdlYklEQktleVJhbmdlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYgbGVmdCwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiByaWdodCwgdW5zaWduZWQg
c2hvcnQgZmxhZ3MpOworICAgIC8vIEZJWE1FOiBSZW1vdmUuCisgICAgV0VCS0lUX0FQSSBXZWJJ
REJLZXlSYW5nZShjb25zdCBXZWJTdHJpbmcmIGxlZnQsIGNvbnN0IFdlYlN0cmluZyYgcmlnaHQs
IHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAg
IFdlYklEQktleVJhbmdlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5n
ZT4mKTsKKyNlbmRpZgorCisgICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIGxlZnQoKSBjb25z
dDsKKyAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgcmlnaHQoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBzaG9ydCBmbGFncygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8
V2ViQ29yZTo6SURCS2V5UmFuZ2U+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViSURCS2V5UmFuZ2VfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJPYmplY3RTdG9yZS5oCmluZGV4IGZiODFmYjljZTFkYzA5OTNhMmEyZDE3OGI2NzUy
NjU2YWNlZTJlM2EuLjc0NTJiZTk5YjQwYzBiZDIyNjk1MDQyNzEwYzlkYThiZjliMjA5ZDAgMTAw
NzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKQEAgLTMzLDYgKzMz
LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYklEQktleVJhbmdlOworCiAv
LyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVy
dmlldyB0aGVzZSBjbGFzc2VzLgogY2xhc3MgV2ViSURCT2JqZWN0U3RvcmUgewogcHVibGljOgpA
QCAtNzksNiArODEsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBX
ZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tz
KikKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAg
ICAgLy8gRklYTUU6IGZpbmlzaC4KIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5jcHAKaW5kZXggMzU5MWJlZTk2OTU1ODkzMjE3MWZiYTY2NTgxN2VjMWMzYzA0NDEw
YS4uMTY3NGFiOTUyNGE2YTM1ZmE1YzUxYzUyODFjMTMyOTk0NTBkYzQ5NyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRh
YmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCkBAIC02OSw2ICs3MCwx
MiBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJhY2tz
LmNsZWFyKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
bmV3IFdlYktpdDo6V2ViSURCQ3Vyc29ySW1wbChpZGJDdXJzb3IpKTsKKyAgICBtX2NhbGxiYWNr
cy5jbGVhcigpOworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2VzcyhuZXcgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGwoaWRiRGF0YWJhc2UpKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBjNWE4ODU4YTA5MmEwZWQ3NTg2
YjRiZDI4NDhlODdhODI1OTZmNWZmLi4wYjU0ZGZkYWQwMTI1OTA3NTlkNGMyNTI4ZWM5MTUyNjVi
ZjJhYmQzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9y
ICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29y
Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4Pik7CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkN1cnNvclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGJlNDkxYWY5M2QzYzkxNTVlZGU3
NThjODliNWM1NjE5MzdmNjhmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDdXJzb3JQcm94eS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JQcm94eS5oIgorCisjaW5jbHVkZSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29yUHJveHk6
OmNyZWF0ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPiBpZGJDdXJzb3IpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JQcm94eShpZGJDdXJzb3IpKTsKK30KKwor
SURCQ3Vyc29yUHJveHk6OklEQkN1cnNvclByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJD
dXJzb3I+IGlkYkN1cnNvcikKKyAgICA6IG1faWRiQ3Vyc29yKGlkYkN1cnNvcikKK3sKK30KKwor
SURCQ3Vyc29yUHJveHk6On5JREJDdXJzb3JQcm94eSgpCit7Cit9CisKK3Vuc2lnbmVkIHNob3J0
IElEQkN1cnNvclByb3h5OjpkaXJlY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkN1
cnNvci0+ZGlyZWN0aW9uKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDdXJzb3JQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMwNjZjYmI2YWZiOTk4ZDA3MmI0MDNkNzdiNjVmOWQ1YTFiNzM5YjEK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUHJveHlfaAorI2RlZmlu
ZSBJREJDdXJzb3JQcm94eV9oCisKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJX
ZWJJREJDdXJzb3IuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIElEQkN1cnNvclByb3h5IDogcHVibGljIElEQkN1cnNvciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc093blB0cjxX
ZWJLaXQ6OldlYklEQkN1cnNvcj4pOworICAgIHZpcnR1YWwgfklEQkN1cnNvclByb3h5KCk7CisK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0OworCitwcml2YXRl
OgorICAgIElEQkN1cnNvclByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+KTsK
KworICAgIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+IG1faWRiQ3Vyc29yOworfTsK
KworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vy
c29yUHJveHlfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAK
aW5kZXggY2VjNGVkMzEwMDExOTVlOGQ1NmUzMDQwYTY0ODBlNzAzMWJmNWY4Zi4uMzcyMDkyOWE3
OGQ0YmFmMTM0ODgyNDM5NTAyNmE0YjBmNjE5MzMxNSAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSURC
Q2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhQcm94eS5oIgogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUg
IldlYklEQkluZGV4LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSURC
T2JqZWN0U3RvcmUuaCIKQEAgLTEwMSw2ICsxMDIsMTEgQEAgdm9pZCBJREJPYmplY3RTdG9yZVBy
b3h5OjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2sKICAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5yZW1vdmVJbmRleChuYW1lLCBuZXcgV2ViSURC
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKIH0KIAordm9pZCBJREJPYmplY3RTdG9yZVByb3h5
OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCit7CisgICAg
bV93ZWJJREJPYmplY3RTdG9yZS0+b3BlbkN1cnNvcihyYW5nZSwgZGlyZWN0aW9uLCBuZXcgV2Vi
SURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCmluZGV4IGI4ZTRhMDE5OGZlOWI0Mzk4YTI4ZThkOWUx
Y2FiMzAwMzI3MDM0ZWYuLmM2ZWY3ODVlZjdkMGYzOGQ2OWNkNjlkZGU5ZTBkYTZjNzJjZDllZmYg
MTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJp
bmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IDAs
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6
CiAgICAgSURCT2JqZWN0U3RvcmVQcm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCT2JqZWN0
U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggMjFjOWVlZGFlOTUzNThiNzdlYjcwNDQ3ODA0Njc1NzQ3OTg2NDYxMy4uNDY4Nzg5YzQw
ODBkZWEyNDkxMzBlZjJkZjFjYzc3Yzc1NzEwNTg2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oIgogCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVk
ZSAiSURCQ3Vyc29yUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIklEQkluZGV4UHJveHkuaCIKQEAg
LTY1LDYgKzY2LDEyIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKCkKICAg
ICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2VzcyhXZWJLaXQ6OldlYklEQkN1cnNvciogY3Vyc29yKQoreworICAgIG1fY2FsbGJhY2tz
LT5vblN1Y2Nlc3MoSURCQ3Vyc29yUHJveHk6OmNyZWF0ZShjdXJzb3IpKTsKKyAgICBtX2NhbGxi
YWNrcy5jbGVhcigpOworfQorCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkKIHsKICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKElEQkRhdGFiYXNlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCBhNGQ1M2I1NWFm
NGM2OTg1YmZmYTY4YmE0M2FjZTIwMTBhZjI2NzI0Li4xODM1YzYwYzJjNDVmZGMyMDgxZTk5ZjZk
NzQ4MGRmMWFlNDkxZGNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJv
cihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhX
ZWJLaXQ6OldlYklEQkN1cnNvciopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0
OjpXZWJJREJEYXRhYmFzZSopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2Vi
S2l0OjpXZWJJREJLZXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2Vi
SURCSW5kZXgqKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29y
SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBlOGQ5ZWYxZmYyNzkzMGEyZDMzMGM1NzZkMWFhZDYyODAzMDMyZGUKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURC
Q3Vyc29ySW1wbC5oIgorCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKKyNpbmNsdWRl
ICJJREJDdXJzb3IuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJJREJDdXJzb3JJbXBsOjpXZWJJREJDdXJzb3JJbXBsKFBhc3NSZWZQdHI8
SURCQ3Vyc29yPiBpZGJDdXJzb3IpCisgICAgOiBtX2lkYkN1cnNvcihpZGJDdXJzb3IpCit7Cit9
CisKK1dlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJbXBsKCkKK3sKK30KKwordW5zaWdu
ZWQgc2hvcnQgV2ViSURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2MjM5YWVl
ZjA0MDZjNGMzNzg2OWU4NDdiYjFiNjg2ZWZlYjJhYjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJJREJDdXJzb3JJbXBsX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29ySW1wbF9o
CisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJREJDdXJzb3I7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKy8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWRPYmplY3RTdG9yZSBmb3IgYSBoaWdoIGxl
dmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitjbGFzcyBXZWJJREJDdXJzb3JJbXBsIDogcHVi
bGljIFdlYklEQkN1cnNvciB7CitwdWJsaWM6CisgICAgV2ViSURCQ3Vyc29ySW1wbChXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yPiBpZGJDdXJzb3IpOworICAgIHZpcnR1YWwgfldl
YklEQkN1cnNvckltcGwoKTsKKworICAgIC8vIEZJWE1FOiBhZGQgY3Vyc29yIG1ldGhvZHMuCisg
ICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKKworIHByaXZhdGU6
CisgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yPiBtX2lkYkN1cnNvcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURCQ3Vyc29ySW1wbF9oCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MWY0YTlhZWE5
N2E2OGM0MzE0MzdjMWUyOGJkMDIzN2JmNzIyNzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCisKKyNpbmNs
dWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgor
I2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYlN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gRklYTUU6IFJlbW92ZS4KK1dlYklEQktl
eVJhbmdlOjpXZWJJREJLZXlSYW5nZShjb25zdCBXZWJTdHJpbmcmIGxlZnQsIGNvbnN0IFdlYlN0
cmluZyYgcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorICAgIDogbV9wcml2YXRlKFdlYkNv
cmU6OklEQktleVJhbmdlOjpjcmVhdGUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGUobGVmdCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHJpZ2h0
KSwgZmxhZ3MpKQoreworfQorCitXZWJJREJLZXlSYW5nZTo6V2ViSURCS2V5UmFuZ2UoY29uc3Qg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBsZWZ0LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUmIHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFncykKKyAgICA6IG1fcHJpdmF0ZShXZWJD
b3JlOjpJREJLZXlSYW5nZTo6Y3JlYXRlKGxlZnQsIHJpZ2h0LCBmbGFncykpCit7Cit9CisKK1dl
YklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5UmFuZ2U+JiBpZGJLZXlSYW5nZSkKKyAgICA6IG1fcHJpdmF0ZShpZGJLZXlSYW5n
ZSkKK3sKK30KKworV2ViSURCS2V5UmFuZ2U6On5XZWJJREJLZXlSYW5nZSgpCit7CisgICAgbV9w
cml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBXZWJJREJLZXlS
YW5nZTo6bGVmdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bGVmdCgpLT5zZXJp
YWxpemVkU2NyaXB0VmFsdWUoKTsKK30KKworV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklE
QktleVJhbmdlOjpyaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmlnaHQo
KS0+c2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7Cit9CisKK3Vuc2lnbmVkIHNob3J0IFdlYklEQktl
eVJhbmdlOjpmbGFncygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZmxhZ3MoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5jcHAKaW5kZXggZDhlOThkYjI4YTQ4YzA4MmUwZTM2ZjYxMDEwYTk4
MDEyMzY4OTUwNy4uZGVjODM3ZmM4ZDNlNjU3MDJmYmE3ZjI0YzdhNzhhMjkyZjMyYTVjNCAxMDA3
NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcApAQCAtMjgs
OSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJD
YWxsYmFja3NQcm94eS5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURC
T2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKICNpbmNsdWRlICJX
ZWJJREJLZXkuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBA
IC05Niw2ICs5OCwxMSBAQCB2b2lkIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6cmVtb3ZlSW5kZXgo
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqCiAgICAgbV9vYmplY3RTdG9y
ZS0+cmVtb3ZlSW5kZXgobmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3Mp
KTsKIH0KIAordm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6Om9wZW5DdXJzb3IoY29uc3QgV2Vi
SURCS2V5UmFuZ2UmIGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNh
bGxiYWNrcyogY2FsbGJhY2tzKQoreworICAgIG1fb2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IoSURC
Q2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCBJREJLZXlSYW5nZTo6Y3JlYXRlKFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGtleVJhbmdlLmxlZnQoKS50b1N0cmluZygpKSwg
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoa2V5UmFuZ2UucmlnaHQoKS50b1N0cmluZygp
KSwga2V5UmFuZ2UuZmxhZ3MoKSksIGRpcmVjdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKaW5kZXggNDA2NGI3Zjg4ODZiMzg0Nzcz
MTJiMTkyMjRmZjBlNGI1YTNhNWQ3MC4uODhiNGU5YWMyMzY5ZmFjMjk3MWI4Yzc5ODVlYTI5MDlk
OWJhZTg2YSAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9y
ZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5o
CkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBXZWJJREJJbmRleCogaW5kZXgoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MpOwogCisgICAgdm9pZCBvcGVuQ3Vyc29y
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJD
YWxsYmFja3MqKTsKKwogIHByaXZhdGU6CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmU+IG1fb2JqZWN0U3RvcmU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61831</attachid>
            <date>2010-07-16 11:34:31 -0700</date>
            <delta_ts>2010-07-28 11:55:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100716193428.patch</filename>
            <type>text/plain</type>
            <size>95001</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDFhMjVjYzY5MGQwNjIzYTgyNTgxZmYzYTBlZGE4Y2VmZjZhNDU1Li43MDc4MGM3
ZmMxNWQ2NmEzOTQ0ZTA3YjM4ODRlNzllMDc0NjA0ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDctMDggIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAg
KGN1cnNvclN1Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChw
b3B1bGF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAg
KHRlc3QpOgorCiAyMDEwLTA3LTE2ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBy
aW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MzhjYTBkNTBjMWVkNTNiM2JiODc2YWFjZTBkNGYwNjFmZmI0MWM3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9w
ZW5jdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTcgQEAKK1Rlc3QgSW5kZXhlZERCJ3Mg
b3BlbkN1cnNvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQi5v
cGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4g
cmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBl
dmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3Vj
Y2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2RiID0gZXZlbnQucmVzdWx0CitkYi5j
cmVhdGVPYmplY3RTdG9yZSgndGVzdCcpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJl
c3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZl
bnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitvYmplY3RTdG9yZSA9IGV2ZW50LnJlc3Vs
dAorT3BlbmluZyBjdXJzb3IKK0N1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUyAnb25z
dWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4g
cmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworUEFTUyBl
dmVudC5yZXN1bHQuY291bnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pZGItb3BlbmN1cnNvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRi
LW9wZW5jdXJzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTQxNmNmZjZmYTQ2NTlhODA0ZTY0YmJkOTQw
NWY4Nzg4NGFhOTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0
cy9pZGItb3BlbmN1cnNvci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Njcmlw
dC10ZXN0cy9pZGItb3BlbmN1cnNvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmViNDQyNTc0NzI2NWZhNWI1
MDIzMjdhNjY4ZmM2MDE5OTUxNGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzCkBAIC0wLDAgKzEs
NjIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCit7CisgICAgZGVidWco
IkN1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LiIpCisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7
CisgICAgLy8gRklYTUU6IE9uY2Ugd2UgaGF2ZSBkYXRhLCBjaGVjayB0aGUgY29ycmVjdCBjb3Vu
dCBhbmQgdGhhdCB3ZSBjYW4gaXRlcmF0ZSB0aGUgY3Vyc29yLgorICAgIHNob3VsZEJlKCJldmVu
dC5yZXN1bHQua2V5IiwgIidrZXknIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnJlc3VsdC52YWx1
ZSIsICIndmFsdWUnIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnJlc3VsdC5jb3VudCIsICIxIik7
CisgICAgZG9uZSgpOworfQorCitmdW5jdGlvbiBkYXRhQWRkZWRTdWNjZXNzKCkKK3sKKyAgICBv
cGVuQ3Vyc29yKG9iamVjdFN0b3JlKTsKK30KKworZnVuY3Rpb24gcG9wdWxhdGVPYmplY3RTdG9y
ZShvYmplY3RTdG9yZSkKK3sKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5h
ZGQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVz
dWx0Lm9uc3VjY2VzcyA9IGRhdGFBZGRlZFN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlbkN1cnNvcihvYmplY3RT
dG9yZSkKK3sKKyAgICBkZWJ1ZygiT3BlbmluZyBjdXJzb3IiKTsKKyAgICB2YXIga2V5UmFuZ2Ug
PSBpbmRleGVkREIubWFrZUxlZnRCb3VuZEtleVJhbmdlKCJrZXkiKTsKKyAgICB2YXIgY3Vyc29y
ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZSk7CisgICAgY3Vyc29yLm9uc3VjY2Vz
cyA9IGN1cnNvclN1Y2Nlc3M7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlU3VjY2Vz
cygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICB2YXIgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGV2ZW50LnJlc3VsdCIpOworICAgIHBvcHVs
YXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Cit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAgICB2YXIgZGIgPSBldmFsQW5k
TG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAg
ICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzOworICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCduYW1lJywgJ2Rl
c2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25z
dWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5n
cy5tawppbmRleCBmNmFhZDBkODRmYWIxYjA5Yjc3ZTBiMWEyZmZkZWU4YWE2Y2UyY2ZkLi5hZjY3
MjI3ZjgwMjQ0ZWU4YzE1ZDcyZDE0M2RhYmZmYzg4YjBkZmMzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVy
aXZlZC5qc2NiaW5kaW5ncy5tawpAQCAtMzYxLDYgKzM2MSw4IEBAICQocGF0c3Vic3QgJS5oLCUu
Y3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS8lLmNwcCA6ICQoaW50ZXJtZWRp
YXRlcykvCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9zdG9yYWdlL0pTSURCQW55LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lE
QkN1cnNvci5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJzb3JSZXF1
ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlRXJyb3Iu
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VFeGNlcHRpb24u
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VSZXF1ZXN0Lmgg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tayBiL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKaW5kZXggMWU3ZmEzN2I0ZjBkZjkx
Y2RjMTI1MzQ1ZDA5NTA1ZjEwZmEzYTc5NS4uNzg5ZDE4ZjIwNWZlNTMwYjRiMTAxYTdkNWNhYzlm
NjU1YTFkYWRlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5n
cy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0zNDIs
NiArMzQyLDggQEAgJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykKICMgSW5kZXhlZCBEYXRhYmFzZQog
R0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCQW55LmggXAorICAg
ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJDdXJzb3IuaCBcCisgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOElEQkN1cnNvclJlcXVlc3QuaCBcCiAgICAgJChpbnRlcm1lZGlh
dGVzKS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXJyb3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAogICAgICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvVjhJREJEYXRhYmFzZVJlcXVlc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggYmFkZDg0ZTFkMGJkOTY2N2I1
YWE3MzU2ZTllMzIxNDAxMzVmYjI2Ni4uMjk3MmViMjNiNmVlYTQ1OWZlYzEzM2Y3YTg1ZGQ3ZDA2
M2Y5M2U0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNvcmUvQW5k
cm9pZC5tawpAQCAtNzM1LDYgKzczNSw4IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NS
Q19GSUxFUykgXAogCXN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwIFwKIAlzdG9yYWdlL0RhdGFi
YXNlVHJhY2tlci5jcHAgXAogCXN0b3JhZ2UvSURCQW55LmNwcCBcCisJc3RvcmFnZS9JREJDdXJz
b3IuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIFwKIAlzdG9yYWdlL0lEQkRh
dGFiYXNlSW1wbC5jcHAgXAogCXN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBcCiAJc3Rv
cmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0MmM4YmI3N2VmN2M4ZTUzNzQ3NTkz
YWJlZDFiYzk0ZGU1OTVjYTZlLi5lYTczNmFjYzIzMDhkM2YxNmI3MmUwODg0MGRiYzc0MzMyN2Ez
Njc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTMzMSw2ICszMzEsOCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAg
ICBzdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsCiAgICAgc3RvcmFnZS9EYXRhYmFzZVN5bmMu
aWRsCiAgICAgc3RvcmFnZS9JREJBbnkuaWRsCisgICAgc3RvcmFnZS9JREJDdXJzb3IuaWRsCisg
ICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VF
cnJvci5pZGwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAogICAgIHN0b3Jh
Z2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbApAQCAtMTQyNSw2ICsxNDI3LDggQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwCiAgICAgc3RvcmFnZS9E
YXRhYmFzZVRyYWNrZXIuY3BwCiAgICAgc3RvcmFnZS9JREJBbnkuY3BwCisgICAgc3RvcmFnZS9J
REJDdXJzb3IuY3BwCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmNwcAogICAgIHN0b3Jh
Z2UvSURCRGF0YWJhc2VJbXBsLmNwcAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNw
cAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgzYzcwZDE5MjVjOWVmOWU1NjZlY2Fl
OGU3YzM5MWNlZDFiZDE2ZS4uNDE4YzEwZTY3ZGRkMjZmMGI0MTExZmE0OTY5OGNlZDgwZjI3OWMz
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw4NSBAQAorMjAxMC0wNy0wOCAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQgcGx1bWJpbmcgZm9yIElEQkN1cnNvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODg4CisKKyAgICAgICAg
VGVzdDogc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbAorCisgICAgICAgICog
QW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZl
ZC52OGJpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJ
REJBbnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogc3Rv
cmFnZS9JREJBbnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjppZGJDdXJzb3JSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6c2V0KToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjopOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6SURCQ3Vyc29yKToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkN1cnNvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkN1cnNvcjo6fklEQkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6
OmRpcmVjdGlvbik6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OklEQkN1cnNvclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6fklEQkN1cnNvclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6cmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JSZXF1ZXN0OjprZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6Y291bnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlXyk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVz
dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OmNyZWF0ZSk6
CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VSZXF1ZXN0OjpJREJEYXRhYmFzZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZVJlcXVlc3Q6OnJlbW92ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OklEQktleVJhbmdlKToKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQktleVJhbmdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5n
ZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6cmlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmZsYWdzKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvSURC
T2JqZWN0U3RvcmVSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZVJlcXVlc3Q6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0
U3RvcmVSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3Qu
aWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6
dGltZXJGaXJlZCk6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisgICAgICAgICog
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4ZWREYXRhYmFzZVJlcXVlc3Q6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6b3Blbik6CisgICAgICAgICogc3RvcmFn
ZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmg6CisKIDIwMTAtMDctMTYgIE5pa29sYXMgWmltbWVy
bWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBT
Y2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA3OGM1MjNmYTFmODZkYjAyM2U3YTM4NzlhNDhhNzdi
OTYxY2U0NDUxLi4yY2VhMmQyMDgyODRjNWNlZDRkZGUxZjFiNzVkZjNiN2MzYTI2MmE4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcApAQCAtMTc2LDYgKzE3Niw4IEBACiAjaW5jbHVkZSAiSlNIVE1MVUxpc3RFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpT
SURCQW55LmNwcCIKKyNpbmNsdWRlICJKU0lEQkN1cnNvci5jcHAiCisjaW5jbHVkZSAiSlNJREJD
dXJzb3JSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIgogI2lu
Y2x1ZGUgIkpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJh
c2VSZXF1ZXN0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3YzUzZTg2OTViYzgzN2RjOWIwMGNi
NzllOWZlODViN2QwZjQ1NmVlLi41ZTk2Nzc4YWY3NmI3ODg4ZjFmNzg4YWUzOGNmYTFhYWIzMTQ2
YzNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTksNiArMjE5LDggQEAgRE9NX0NMQVNTRVMgPSBc
CiAgICAgSFRNTFZpZGVvRWxlbWVudCBcCiAgICAgSGlzdG9yeSBcCiAgICAgSURCQW55IFwKKyAg
ICBJREJDdXJzb3IgXAorICAgIElEQkN1cnNvclJlcXVlc3QgXAogICAgIElEQkRhdGFiYXNlRXJy
b3IgXAogICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uIFwKICAgICBJREJEYXRhYmFzZVJlcXVlc3Qg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggZGZkNzhlYjViYmJmMDdlNGNiZDIwNWIyNzUyYTgzYzZlYmRiYTRhMi4uZjhh
Njg0OWRjMDUyZTIzNjI3M2VkNWIwN2M2NThmMDlhNWVjMmQwNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yODExLDYg
KzI4MTEsOCBAQCBlbmRpZiAjIEVOQUJMRV9FVkVOVFNPVVJDRQogaWYgRU5BQkxFX0lOREVYRURf
REFUQUJBU0UKIEZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xCiAK
KyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICBXZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yUmVxdWVzdC5pZGwgXAogd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLURFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRT0xCiAKQEAgLTI4NDQsNyArMjg0NiwxMSBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaCBcCi0JV2ViQ29yZS9zdG9y
YWdlL0lEQkRhdGFiYXNlLmggXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmNwcCBcCisg
IFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJz
b3JSZXF1ZXN0LmNwcCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmggXAor
ICBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlSW1wbC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCiAJ
V2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDViZDYxNWJjZGMwNmQ1
YzRkNmI5ZTA3YTMzZGZjOGFlODA2MDUzMGIuLjRkMmMyZjZiMTE3NzMzM2ZkYWJlZGQ2ZTRlYjM5
NmUyYTgyNDIzNDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0yMzIsNiArMjMyLDggQEAKICAgICAgICAgICAgICdzdG9yYWdl
L0RhdGFiYXNlQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0RhdGFiYXNlU3lu
Yy5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmlkbCcsCisgICAgICAgICAgICAn
c3RvcmFnZS9JREJDdXJzb3IuaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJl
cXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKQEAgLTM0NTksNiArMzQ2MSwx
MCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmNwcCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJBbnkuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDYWxsYmFja3MuaCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9JREJDdXJzb3IuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0
LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJE
YXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRp
b24uaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3Jl
LnByaQppbmRleCA3MjA1YWRkZTM4ZTczNGU3Yzk1NzY0MjM2N2NlYjVkODY3MjI3MTdlLi40YTE4
NGIxYmViZjk4NjI0NzJjZjhhMmFiNjZkMTE0NjFkNWM4YWUyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTQ4Myw2ICs0ODMsOCBA
QCBJRExfQklORElOR1MgKz0gXAogICAgIHN0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5pZGwgXAog
ICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbCBcCiAgICAgc3RvcmFnZS9JREJBbnkuaWRsIFwK
KyAgICBzdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVz
dC5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwgXAogICAgIHN0b3JhZ2Uv
SURCRGF0YWJhc2VFeGNlcHRpb24uaWRsIFwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVz
dC5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggYzE3NzYwMzhhNmNlNThmNGZhZDMwNjBjYzNkM2YwN2Q5NzUyZTJkOC4uM2Jk
MzBhZWVjMzczYjIzNzY3OGVkNWU3MjMzZjVkNjhkYTY5MTk5MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMzk5LDYgKzIzOTks
OCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAgICAg
ICAgIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaCBcCiAgICAgICAgIHN0b3JhZ2Uv
SURCQW55LmggXAogICAgICAgICBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKKyAgICAgICAgc3Rv
cmFnZS9JREJDdXJzb3IuaCBcCisgICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oIFwK
ICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRh
YmFzZUltcGwuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oIFwKQEAgLTI0
MjUsNiArMjQyNyw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
PTEpIHsKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJBbnku
Y3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3IuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9J
REJDdXJzb3JSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNw
cCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0
b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggMGU0NzdjYTJlZmRjOGY5NjdjNzM5ZGE0NjQ3NjA5NmQyMWNhOWU3ZC4uNDJmMGNj
OTIyMjA1NjJmNzJkOTFjYjEwYTdlMzVkODJjZTIzMmMzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC00NDA0Nyw2ICs0NDA0NywyMTQgQEAKIAkJCQkJCS8+DQogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQorICAgICAgICA8RmlsZQ0KKyAg
ICAgICAgICBSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJDdXJzb3IuY3BwIg0KKyAgICAgICAgICA+DQorICAgICAg
ICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMyIg0K
KyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisg
ICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAg
ICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdpbjMy
Ig0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4N
CisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAg
ICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAg
IE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAg
IDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAg
ICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgIDwvRmlsZT4NCisgICAgICAgIDxG
aWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvci5oIg0KKyAgICAgICAgICA+DQor
ICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdp
bjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAg
ID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNl
fFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAg
ICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAg
TmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAg
ICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAg
ICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlv
bg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisgICAgICAgICAgICBFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wN
CisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4N
CisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgIDwvRmlsZT4NCisgICAg
ICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvclJlcXVlc3QuY3BwIg0K
KyAgICAgICAgICA+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAg
IE5hbWU9IkRlYnVnfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAg
ICBOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAg
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAg
ICAgICBOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9u
DQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29s
DQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+
DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmln
dXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisg
ICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAg
ICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
ICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAg
IDwvRmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNv
clJlcXVlc3QuaCINCisgICAgICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24N
CisgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9u
DQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0
aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAgICAg
ICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAg
IDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAg
ICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxl
Q29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKyAg
ICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAg
ICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisg
ICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAg
ICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAg
ID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAg
ICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorICAgICAgICA8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURC
S2V5LmNwcCINCiAJCQkJCQk+DQpAQCAtNDk4NzIsNiArNTAwODAsMjIgQEAKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ2FsbGJhY2tzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQor
ICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3Iu
Y3BwIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvci5oIg0KKyAgICAgICAgPg0KKyAgICAg
IDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdl
XElEQkN1cnNvclJlcXVlc3QuY3BwIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAg
ICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvclJlcXVl
c3QuaCINCisgICAgICAgID4NCisgICAgICA8L0ZpbGU+DQogCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXElEQkRhdGFiYXNlLmgiDQogCQkJCT4NCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKaW5kZXggZGVmMTEyMDkwZWYxOTlh
MTM2MjgxZDdlOWIxMmYxZjBlNzVmMzE4Yi4uYzM4MzIzZDlmMTBhMzE2ZWU5YjkwMmFhNmJiNDIz
ZDVjZTc4YWI5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJB
bnlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3Vz
dG9tLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlY4SURCQW55LmgiCiAKICNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJWOElEQkN1cnNvclJlcXVl
c3QuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlY4SURC
SW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJLZXkuaCIKQEAgLTUwLDYgKzUxLDggQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogICAgIGNhc2UgSURCQW55OjpOdWxsVHlwZToKICAgICAgICAgcmV0
dXJuIHY4OjpOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OklEQkN1cnNvclJlcXVlc3RUeXBlOgor
ICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJDdXJzb3JSZXF1ZXN0KCkpOwogICAgIGNhc2Ug
SURCQW55OjpJREJEYXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9WOChpbXBs
LT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQkluZGV4UmVxdWVz
dFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IDlhMTg5ODA1NDlmMTk4YzY3MjI3OGNlMDY0OTUzOTcz
YzM0NzdiNmUuLjUwNjU1Y2I3OTA1YTMwNjUwNzYwNTQ5MGJmYjZmZTg1NjBhNDFlYmYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJBbnkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIAorI2luY2x1ZGUgIklEQkN1cnNvclJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJEYXRhYmFz
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJP
YmplY3RTdG9yZVJlcXVlc3QuaCIKQEAgLTUwLDYgKzUxLDEyIEBAIElEQkFueTo6fklEQkFueSgp
CiB7CiB9CiAKK1Bhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4gSURCQW55OjppZGJDdXJzb3JS
ZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV90eXBlID09IElEQkN1cnNvclJlcXVlc3RUeXBlKTsK
KyAgICByZXR1cm4gbV9pZGJDdXJzb3JSZXF1ZXN0OworfQorCiBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlUmVxdWVzdD4gSURCQW55OjppZGJEYXRhYmFzZVJlcXVlc3QoKQogewogICAgIEFTU0VSVCht
X3R5cGUgPT0gSURCRGF0YWJhc2VSZXF1ZXN0VHlwZSk7CkBAIC05Miw2ICs5OSwxMyBAQCB2b2lk
IElEQkFueTo6c2V0KCkKICAgICBtX3R5cGUgPSBOdWxsVHlwZTsKIH0KIAordm9pZCBJREJBbnk6
OnNldChQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IHZhbHVlKQoreworICAgIEFTU0VSVCht
X3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CisgICAgbV90eXBlID0gSURCQ3Vyc29yUmVxdWVzdFR5
cGU7CisgICAgbV9pZGJDdXJzb3JSZXF1ZXN0ID0gdmFsdWU7Cit9CisKIHZvaWQgSURCQW55Ojpz
ZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IHZhbHVlKQogewogICAgIEFTU0VSVCht
X3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggNzdiYmE3Y2M5YTUzMjA3Yzk2
YmFkYjBhYTdkMGU3YzY1MWRlMWQ4OC4uN2NkYjM1MjFiNThmYjNkM2Y0YmNmOTY0YWRiOGNhOGFh
NjQ4MmIzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIElEQkN1cnNvclJlcXVlc3Q7CiBjbGFzcyBJREJEYXRhYmFzZVJlcXVlc3Q7
CiBjbGFzcyBJREJJbmRleFJlcXVlc3Q7CiBjbGFzcyBJREJLZXk7CkBAIC01Niw2ICs1Nyw3IEBA
IHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewogICAgICAgICBVbmRlZmluZWRUeXBlID0gMCwKICAg
ICAgICAgTnVsbFR5cGUsCisgICAgICAgIElEQkN1cnNvclJlcXVlc3RUeXBlLAogICAgICAgICBJ
REJEYXRhYmFzZVJlcXVlc3RUeXBlLAogICAgICAgICBJREJJbmRleFJlcXVlc3RUeXBlLAogICAg
ICAgICBJREJLZXlUeXBlLApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAvLyBVc2UgdHlwZSgpIHRvIGZpZ3Vy
ZSBvdXQgd2hpY2ggb25lIG9mIHRoZXNlIHlvdSdyZSBhbGxvd2VkIHRvIGNhbGwuCisgICAgUGFz
c1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBpZGJDdXJzb3JSZXF1ZXN0KCk7CiAgICAgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IGlkYkRhdGFiYXNlUmVxdWVzdCgpOwogICAgIFBhc3NS
ZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBpZGJJbmRleFJlcXVlc3QoKTsKICAgICBQYXNzUmVmUHRy
PElEQktleT4gaWRiS2V5KCk7CkBAIC03NSw2ICs3OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNl
dCBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4KICAgICB2b2lkIHNldCgpOyAvLyBGb3IgIm51bGwi
LgorICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4pOwogICAgIHZvaWQg
c2V0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1Jl
ZlB0cjxJREJJbmRleFJlcXVlc3Q+KTsKICAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQktleT4p
OwpAQCAtODgsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogCiAgICAgLy8g
T25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQgYW55IGdp
dmVuIHRpbWUuCisgICAgUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IG1faWRiQ3Vyc29yUmVxdWVz
dDsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBtX2lkYkRhdGFiYXNlUmVxdWVzdDsK
ICAgICBSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBtX2lkYkluZGV4UmVxdWVzdDsKICAgICBSZWZQ
dHI8SURCS2V5PiBtX2lkYktleTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxs
YmFja3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAppbmRleCAzN2ZkYzQ2ZTA5
OWNlYzY1MzA5NGZhMTI2OTg4M2UzYTY5OGYwOTlkLi5hNjNlMjU1MmUxMTUwNWQ5ZWYwZmEwM2U2
MmQ4MGFlZTUwNDliMDU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tz
LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWZuZGVmIElEQkNhbGxiYWNrc19oCiAjZGVmaW5lIElEQkNhbGxiYWNrc19oCiAKKyNpbmNs
dWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklE
QkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgpAQCAtNDcsNiArNDgsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpID0gMDsgLy8gRm9y
ICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29y
PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pID0g
MDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmUwNGI0Y2NmYWRhOTJkNDM2MGUxNjI0YjZm
OTk1MGYxMjIyZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
ci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvcl9oCisjZGVmaW5l
IElEQkN1cnNvcl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJBbnk7CitjbGFzcyBJREJDYWxsYmFja3M7CitjbGFz
cyBJREJLZXk7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElEQkN1cnNv
ciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvcj4geworcHVibGljOgorICAgIC8vIEtlZXAg
aW4gc3luYyB3aXRoIHdoYXQncyBpbiB0aGUgLmlkbCBmaWxlLgorICAgIGVudW0gRGlyZWN0aW9u
IHsKKyAgICAgICAgTkVYVCA9IDAsCisgICAgICAgIE5FWFRfTk9fRFVQTElDQVRFID0gMSwKKyAg
ICAgICAgUFJFViA9IDIsCisgICAgICAgIFBSRVZfTk9fRFVQTElDQVRFID0gMywKKyAgICB9Owor
CisgICAgdmlydHVhbCB+SURCQ3Vyc29yKCkgeyB9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4gdmFsdWUo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51
ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0g
MDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJ
REJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwgYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2QwMDllYTFmNTUxYWIw
YTdjMDE2ZmQ1MzRlNWYzNTVlOTllMWE2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQkN1cnNvci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdl
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJB
U0UKKyAgICBdIElEQkN1cnNvciB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRoIHdoYXQn
cyBpbiB0aGUgLmggZmlsZS4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVYVCA9IDA7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FWFRfTk9fRFVQTElDQVRFID0gMTsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUFJFViA9IDI7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFBSRVZfTk9fRFVQTElDQVRFID0gMzsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1
cnNvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZDNiMzc1OTQ1Mjk0NzEyNGY3YTFiZmEyYTRmYzJl
ZjgxYmY1ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1w
bC5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJREJDdXJzb3JJbXBsLmgiCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNsdWRlICJJ
REJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUgIklEQk9i
amVjdFN0b3JlSW1wbC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURC
Q3Vyc29ySW1wbDo6SURCQ3Vyc29ySW1wbChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlSW1wbD4g
aWRiT2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgaW50IGNvdW50KQorICAgIDogbV9pZGJPYmplY3RT
dG9yZShpZGJPYmplY3RTdG9yZSkKKyAgICAsIG1fa2V5UmFuZ2Uoa2V5UmFuZ2UpCisgICAgLCBt
X2RpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgLCBtX2tleShrZXkpCisgICAgLCBtX3ZhbHVlKElE
QkFueTo6Y3JlYXRlKHZhbHVlLmdldCgpKSkKKyAgICAsIG1fY291bnQoY291bnQpCit7Cit9CisK
K0lEQkN1cnNvckltcGw6On5JREJDdXJzb3JJbXBsKCkKK3sKK30KKwordW5zaWduZWQgc2hvcnQg
SURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kaXJlY3Rp
b247Cit9CisKK1Bhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JJbXBsOjprZXkoKSBjb25zdAor
eworICAgIHJldHVybiBtX2tleTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNvcklt
cGw6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92YWx1ZTsKK30KKworbG9uZyBsb25n
IElEQkN1cnNvckltcGw6OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb3VudDsKK30K
Kwordm9pZCBJREJDdXJzb3JJbXBsOjp1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pCit7Cit9CisKK3ZvaWQgSURCQ3Vyc29y
SW1wbDo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPikKK3sKK30KKwordm9pZCBJREJDdXJzb3JJbXBsOjpyZW1vdmUoUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJDdXJzb3JJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQxNzY3NWI4NGEzZDg3NmQ0MGEwZDY4MjYwZGJhMDcyMzg2YTA3YjgKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oCkBAIC0wLDAgKzEsNjcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisKKyNpZm5kZWYgSURCQ3Vyc29ySW1wbF9oCisjZGVmaW5lIElEQkN1cnNvcklt
cGxfaAorCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBJREJLZXlSYW5nZTsKK2NsYXNzIElEQk9iamVjdFN0b3JlSW1wbDsKKworY2xhc3Mg
SURCQ3Vyc29ySW1wbCA6IHB1YmxpYyBJREJDdXJzb3IgeworcHVibGljOgorICAgIElEQkN1cnNv
ckltcGwoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUltcGw+LCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgaW50IGNvdW50KTsKKyAgICB2aXJ0dWFsIH5J
REJDdXJzb3JJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigp
IGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBs
b25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4pOworCitwcml2YXRlOgorICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUlt
cGw+IG1faWRiT2JqZWN0U3RvcmU7CisgICAgUmVmUHRyPElEQktleVJhbmdlPiBtX2tleVJhbmdl
OworICAgIHVuc2lnbmVkIHNob3J0IG1fZGlyZWN0aW9uOworICAgIFJlZlB0cjxJREJLZXk+IG1f
a2V5OworICAgIFJlZlB0cjxJREJBbnk+IG1fdmFsdWU7CisgICAgaW50IG1fY291bnQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2VuZGlmIC8vIElEQkN1cnNvckltcGxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJl
cXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMGUyNTExM2NhZmY2Mzc1YmZhYjZhMTM3MDM2YjkyZDQw
MTJkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVz
dC5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJREJDdXJzb3JSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJJREJLZXkuaCIKKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQkN1cnNv
clJlcXVlc3Q6OklEQkN1cnNvclJlcXVlc3QoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcikK
KyAgICA6IG1fY3Vyc29yKGN1cnNvcikKK3sKK30KKworSURCQ3Vyc29yUmVxdWVzdDo6fklEQkN1
cnNvclJlcXVlc3QoKQoreworfQorCitQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yUmVxdWVz
dDo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJzb3ItPmtleSgpOworfQorCitQYXNz
UmVmUHRyPElEQkFueT4gSURCQ3Vyc29yUmVxdWVzdDo6dmFsdWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2N1cnNvci0+dmFsdWUoKTsKK30KKworbG9uZyBsb25nIElEQkN1cnNvclJlcXVlc3Q6
OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJzb3ItPmNvdW50KCk7Cit9CisKK1Bh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSkKK3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9jdXJzb3ItPnVwZGF0
ZSh2YWx1ZSwgcmVxdWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlRnVuY3Rpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkK
K3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9jdXJzb3ItPmNvbnRpbnVlRnVu
Y3Rpb24oa2V5LCByZXF1ZXN0KTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisK
K1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yUmVxdWVzdDo6cmVtb3ZlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVx
dWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7
CisgICAgICBtX2N1cnNvci0+cmVtb3ZlKHJlcXVlc3QpOworICAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJz
b3JSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZkODI5Y2Q3MDhkMjQxZjZmY2FjZjZmMWE5MDUzMWM0ZGIyNWY2MTUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvclJlcXVlc3RfaAorI2RlZmluZSBJREJDdXJzb3JS
ZXF1ZXN0X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURC
Q3Vyc29yLmgiCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJREJDdXJzb3JSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ3Vyc29y
UmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVl
c3Q+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Vyc29yKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JSZXF1ZXN0KGN1cnNvcikpOworICAgIH0KKyAg
ICB+SURCQ3Vyc29yUmVxdWVzdCgpOworCisgICAgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkg
Y29uc3Q7CisgICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OworICAgIFBhc3NSZWZQ
dHI8SURCQW55PiB2YWx1ZSgpIGNvbnN0OworICAgIGxvbmcgbG9uZyBjb3VudCgpIGNvbnN0Owor
CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiB1cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSk7CisgICAgUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQktleT4ga2V5ID0gMCk7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiByZW1vdmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IElEQkN1cnNvclJlcXVlc3QoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcik7CisKKyAg
ICBSZWZQdHI8SURCQ3Vyc29yPiBtX2N1cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJzb3JSZXF1ZXN0X2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9J
REJDdXJzb3JSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDNiYjkzZWM3NGNhMTE4N2YyMzY0MDQ2
ZmNkODhjYzAzMGY2ZTYxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1
cnNvclJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7
CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNF
CisgICAgXSBJREJDdXJzb3JSZXF1ZXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktl
eSBrZXk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkgdmFsdWU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcgY291bnQ7CisKKyAgICAgICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgdXBkYXRlKGluIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSB2YWx1ZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJ
bXBsZW1lbnRhdGlvbkZ1bmN0aW9uPWNvbnRpbnVlRnVuY3Rpb25dIHZvaWQgY29udGludWUoaW4g
W09wdGlvbmFsXSBJREJLZXkga2V5KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIHZvaWQgcmVtb3ZlKCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJLZXlSYW5nZS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuY3Bw
CmluZGV4IDlmMjJmYzg2ZmU4OTlmZWNkOTQ3OGIzYWJjNGJmOTAxMmI3ZjcxYzEuLjBiNjI5YmQw
ZjQ0ZmZmY2NmYTMyMzJiMWNiYzc1NTU3N2JkNjZmNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJLZXlSYW5nZS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmNw
cApAQCAtMjYsMTQgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURC
S2V5UmFuZ2UuaCIKIAotI2luY2x1ZGUgIklEQkFueS5oIgotI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIklEQktleS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSURCS2V5UmFuZ2U6OklEQktleVJh
bmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorSURCS2V5
UmFuZ2U6OklEQktleVJhbmdlKFBhc3NSZWZQdHI8SURCS2V5PiBsZWZ0LCBQYXNzUmVmUHRyPElE
QktleT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKQogICAgIDogbV9sZWZ0KGxlZnQpCiAg
ICAgLCBtX3JpZ2h0KHJpZ2h0KQogICAgICwgbV9mbGFncyhmbGFncykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdl
LmgKaW5kZXggNTIyMzllNDJkYjBiMGRhNjg5ZWM0MTFhODUzNjE4ZTY0M2E3ZjY1ZS4uNjVmNjk5
NjlkNTE5Njg5NjZmYWE2YTNiMjE3MzI5ZTc2MjJmMDMyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQktleVJhbmdlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmgK
QEAgLTI4LDggKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0jaW5j
bHVkZSAiSURCQW55LmgiCi0jaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5j
bHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCkBAIC00NiwyMiArNDUsMjIgQEAgcHVibGljOgogICAgICAgICBS
SUdIVF9CT1VORCA9IDgsCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiBjcmVhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGxlZnQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiByaWdodCwgdW5zaWduZWQgc2hvcnQgZmxhZ3Mp
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPElE
QktleT4gbGVmdCwgUGFzc1JlZlB0cjxJREJLZXk+IHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFn
cykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCS2V5UmFuZ2UobGVmdCwg
cmlnaHQsIGZsYWdzKSk7CiAgICAgfQogICAgIH5JREJLZXlSYW5nZSgpIHsgfQogCiAKLSAgICBQ
YXNzUmVmUHRyPElEQkFueT4gbGVmdCgpIGNvbnN0IHsgcmV0dXJuIElEQkFueTo6Y3JlYXRlKG1f
bGVmdC5nZXQoKSk7IH0KLSAgICBQYXNzUmVmUHRyPElEQkFueT4gcmlnaHQoKSBjb25zdCB7IHJl
dHVybiBJREJBbnk6OmNyZWF0ZShtX3JpZ2h0LmdldCgpKTsgfQorICAgIFBhc3NSZWZQdHI8SURC
S2V5PiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9CisgICAgUGFzc1JlZlB0cjxJREJL
ZXk+IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQogICAgIHVuc2lnbmVkIHNob3J0
IGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogCiBwcml2YXRlOgotICAgIElEQktl
eVJhbmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKyAg
ICBJREJLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gbGVmdCwgUGFzc1JlZlB0cjxJREJLZXk+
IHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFncyk7CiAKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtX2xlZnQ7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9y
aWdodDsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2xlZnQ7CisgICAgUmVmUHRyPElEQktleT4gbV9y
aWdodDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2ZsYWdzOwogfTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5n
ZS5pZGwKaW5kZXggMDVmNjUwNWM0MTM5NTY5MDliOWQyMzhlMjU5OTcxZmE0YTZkYzA5Ny4uZDAx
OGZlZGMyOTJjZDM0MGU5ODM0ZTk4ZTk3MGNkZjQ1ZDYyZDY5MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVJhbmdlLmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFu
Z2UuaWRsCkBAIC0zNSw4ICszNSw4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgTEVGVF9CT1VORCA9IDQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFJJR0hUX0JPVU5EID0gODsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCQW55
IGxlZnQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkgcmlnaHQ7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJLZXkgbGVmdDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIElEQktleSByaWdodDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0IGZsYWdzOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKaW5kZXggZTc4ZTYy
YWI0ZDk1Y2MzMjVkYWZmMmQzNTljZDY2NjM5OTgzN2FlMS4uNjgzYWExOGVjZDc0M2M1YmM0MTlh
YWJlNWUzZmE5YmJlZWUyNTY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVfaAogI2RlZmluZSBJREJPYmplY3RTdG9y
ZV9oCiAKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtMzUsNiArMzYsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiBjbGFzcyBJREJDYWxsYmFja3M7
CitjbGFzcyBJREJDdXJzb3I7CitjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIElEQkluZGV4Owog
Y2xhc3MgSURCS2V5OwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwpAQCAtNTQsNiArNTcs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChj
b25zdCBTdHJpbmcmIG5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW5kZXgoY29u
c3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBs
LmNwcAppbmRleCBkNjc4NDAwZGQ2NzVmMjE3Y2NlZjQ2NjEwOTAzYjFkOTg4Nzk4MjgxLi44NTQw
OWFiZWQ3M2MyZTJiMWVmNjU0MTNjODFiNGY5ODA1NTM5OTIxIDEwMDc1NQotLS0gYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmVJbXBsLmNwcApAQCAtMjksOCArMjksMTAgQEAKICNpbmNsdWRlICJET01TdHJp
bmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIklE
QkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkN1cnNvckltcGwuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQkluZGV4SW1wbC5oIgorI2luY2x1ZGUg
IklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCS2V5VHJlZS5oIgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCkBAIC0xMzAsNiArMTMyLDE3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVJ
bXBsOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoKTsKIH0KIAordm9pZCBJREJPYmplY3RTdG9y
ZUltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKK3sK
KyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSByYW5nZS0+bGVmdCgpOworICAgIFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gbV90cmVlLT5nZXQoa2V5LmdldCgpKTsKKyAgICBp
bnQgY291bnQgPSB2YWx1ZSA/IDAgOiAxOworICAgIGlmICghdmFsdWUpCisgICAgICB2YWx1ZSA9
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCk7CisKKyAgICBSZWZQdHI8SURCQ3Vyc29y
PiBjdXJzb3IgPSBhZG9wdFJlZihuZXcgSURCQ3Vyc29ySW1wbCh0aGlzLCByYW5nZSwgZGlyZWN0
aW9uLCBrZXksIHZhbHVlLCBjb3VudCkpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNv
ci5yZWxlYXNlKCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZUltcGwuaAppbmRleCBjNGQyZWI4ZDIyMDQxNTcyMjQ5M2RkOTQwNDgzOWQ5
MmI1OGI2MTkxLi5iNDkzZGVjOGI3MzJiOTMyYmM4NDRlYjk4NDIwMjk4ZjZlNTIxNGJkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUpOwogICAg
IHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4pOwogCisgICAgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7
CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVJbXBsKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCmluZGV4IDNlMDk1YzFlMGI1NTRhZjA4YzA2
NTIyMzBkMDQyMGJiYjliNjliN2QuLmZkZGNmYzJmZmZlZWU0YTU4NDFiMzczODUzMjJlZGVhYjc0
OWZiODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3Qu
Y3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCkBAIC02
MywzNSArNjMsMzUgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXgKIHsKICAgICBSZWZQdHI8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNy
ZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+Z2V0KGtleSwgcmVxdWVzdCk7Ci0gICAg
cmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCiBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6YWRkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4g
cmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlz
KSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZhbHVlLCBrZXksIHRydWUsIHJlcXVlc3QpOwot
ICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAog
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnB1dChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgUmVmUHRyPElEQlJlcXVl
c3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUo
dGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnB1dCh2YWx1ZSwga2V5LCBmYWxzZSwgcmVxdWVz
dCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwog
fQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3Zl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkp
CiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUo
Y29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnJlbW92
ZShrZXksIHJlcXVlc3QpOwotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiByZXF1ZXN0
LnJlbGVhc2UoKTsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSkKIHsKICAg
ICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0
LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+Y3JlYXRlSW5kZXgo
bmFtZSwga2V5UGF0aCwgdW5pcXVlLCByZXF1ZXN0KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAg
ICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkKQEAg
LTEwNSw3ICsxMDUsMTQgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OnJlbW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKIHsKICAgICBSZWZQdHI8
SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6
OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cmVtb3ZlSW5kZXgobmFtZSwgcmVx
dWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgp
OworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6b3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJ
REJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6
Y3JlYXRlKHRoaXMpKTsKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKHJlcXVlc3QsIHJh
bmdlLCBkaXJlY3Rpb24pOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5o
CmluZGV4IDg2ZjY0ZDY1NDljYWEyYjM0MTdmYTcyZDRhYzgyYzlmZTg5ZGEwZTkuLmJiY2YzZDUz
ODhmZDI4MmNlYjZmZjIxMzgyZjE4NjZiY2FlY2Y5YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0X2gKICNkZWZpbmUgSURCT2JqZWN0U3RvcmVSZXF1ZXN0X2gKIAorI2luY2x1ZGUg
IklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQkN1cnNvclJlcXVlc3QuaCIKKyNpbmNsdWRlICJJ
REJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURC
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC02NCw2ICs2Nyw4IEBA
IHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHJlbW92ZUluZGV4KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCisgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQktleVJhbmdlPiByYW5nZSA9IDAsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElE
QkN1cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0KFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmlkbAppbmRleCBhODE2YjczZWUzNTFhMDMzOTI2NGZmMTA0N2M2ZDcxMzZmMmVl
MGMwLi40MTA0Y2ZkN2JiYWFjZDZmYzgxNTk0MDJiM2QxNWM0MWNiOWMzNDgzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbApAQCAtNDEsNiArNDEsOCBAQCBtb2R1
bGUgc3RvcmFnZSB7CiAgICAgICAgIElEQkluZGV4UmVxdWVzdCBpbmRleChpbiBET01TdHJpbmcg
bmFtZSk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsKIAorICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIFtPcHRpb25h
bF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJp
bmcga2V5UGF0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgaW5k
ZXhOYW1lczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCA3OGRkMTVhMDBmY2Q3MjBmZGQ5ZTli
ZDFhYmMxYTRlN2I2ZTNjOTMxLi5lZjQzZmNkYzliMTIyOWQyNTgwYjg5ZGUzZGZlYjU5Njk3NzY1
NGI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC03Myw2ICs3MywxMiBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcygpCiAgICAgbV9yZXN1bHQtPnNldCgpOwogfQogCit2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAg
IG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jlc3VsdC0+c2V0KElEQkN1cnNvclJlcXVlc3Q6OmNy
ZWF0ZShpZGJDdXJzb3IpKTsKK30KKwogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAgICAgb25FdmVudENvbW1vbigpOwpA
QCAtMTYyLDcgKzE2OCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6dGltZXJGaXJlZChUaW1lcjxJREJS
ZXF1ZXN0PiopCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoSURCRXJyb3JFdmVudDo6Y3JlYXRlKG1f
c291cmNlLCAqbV9lcnJvcikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX3Jlc3Vs
dC0+dHlwZSgpICE9IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7Ci0gICAgICAgIGRpc3BhdGNoRXZl
bnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVhdGUobV9zb3VyY2UsIG1fcmVzdWx0KSk7ICAgICAgICAK
KyAgICAgICAgZGlzcGF0Y2hFdmVudChJREJTdWNjZXNzRXZlbnQ6OmNyZWF0ZShtX3NvdXJjZSwg
bV9yZXN1bHQpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJS
ZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCmluZGV4IGM3NjNkOTZlYTc1
ZTNjNGJmNDFlNDA4MzM0NDMzYjY4YWI4YmMzYTAuLmNiZjU2ZWQzYmJlOGM1ZjUyNGZmOWM3YzM5
MjMxYzU0ZGUyNjFmZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJs
aWM6CiAgICAgLy8gSURCQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAv
LyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJD
dXJzb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJh
c2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgYi9XZWJDb3Jl
L3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAKaW5kZXggNDVhZTFiZDMwMDg3MWNi
NDJmY2EzMzc5OGNjNTZmNGY4ZmQ4MTYxOS4uN2YzYWI1YTc1ZTE0YzM5MjM2YzE0M2U4YWNmZmE2
Mzk1MzBlMzY1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJl
cXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cApAQCAtNjgsMjMgKzY4LDIzIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSW5kZXhlZERhdGFi
YXNlUmVxdWVzdDo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0dXJu
IHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IEluZGV4ZWREYXRhYmFzZVJl
cXVlc3Q6Om1ha2VTaW5nbGVLZXlSYW5nZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gcHJwVmFsdWUpCitQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0OjptYWtlU2luZ2xlS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IHBycFZhbHVlKQogewot
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CisgICAg
UmVmUHRyPElEQktleT4gdmFsdWUgPSBwcnBWYWx1ZTsKICAgICByZXR1cm4gSURCS2V5UmFuZ2U6
OmNyZWF0ZSh2YWx1ZSwgdmFsdWUsIElEQktleVJhbmdlOjpTSU5HTEUpOwogfQogCi1QYXNzUmVm
UHRyPElEQktleVJhbmdlPiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjptYWtlTGVmdEJvdW5kS2V5
UmFuZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGJvdW5kLCBib29sIG9wZW4p
CitQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjptYWtlTGVm
dEJvdW5kS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29sIG9wZW4pCiB7Ci0g
ICAgcmV0dXJuIElEQktleVJhbmdlOjpjcmVhdGUoYm91bmQsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKCksIG9wZW4gPyBJREJLZXlSYW5nZTo6TEVGVF9PUEVOIDogSURCS2V5UmFuZ2U6
OkxFRlRfQk9VTkQpOworICAgIHJldHVybiBJREJLZXlSYW5nZTo6Y3JlYXRlKGJvdW5kLCBJREJL
ZXk6OmNyZWF0ZSgpLCBvcGVuID8gSURCS2V5UmFuZ2U6OkxFRlRfT1BFTiA6IElEQktleVJhbmdl
OjpMRUZUX0JPVU5EKTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSW5kZXhlZERhdGFi
YXNlUmVxdWVzdDo6bWFrZVJpZ2h0Qm91bmRLZXlSYW5nZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gYm91bmQsIGJvb2wgb3BlbikKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElu
ZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om1ha2VSaWdodEJvdW5kS2V5UmFuZ2UoUGFzc1JlZlB0cjxJ
REJLZXk+IGJvdW5kLCBib29sIG9wZW4pCiB7Ci0gICAgcmV0dXJuIElEQktleVJhbmdlOjpjcmVh
dGUoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoKSwgYm91bmQsIG9wZW4gPyBJREJLZXlS
YW5nZTo6UklHSFRfT1BFTiA6IElEQktleVJhbmdlOjpSSUdIVF9CT1VORCk7CisgICAgcmV0dXJu
IElEQktleVJhbmdlOjpjcmVhdGUoSURCS2V5OjpjcmVhdGUoKSwgYm91bmQsIG9wZW4gPyBJREJL
ZXlSYW5nZTo6UklHSFRfT1BFTiA6IElEQktleVJhbmdlOjpSSUdIVF9CT1VORCk7CiB9CiAKLVBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om1ha2VCb3VuZEtl
eVJhbmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIGJvb2wgb3BlbkxlZnQsIGJvb2wgb3BlblJp
Z2h0KQorUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6bWFr
ZUJvdW5kS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IGxlZnQsIFBhc3NSZWZQdHI8SURCS2V5
PiByaWdodCwgYm9vbCBvcGVuTGVmdCwgYm9vbCBvcGVuUmlnaHQpCiB7CiAgICAgdW5zaWduZWQg
c2hvcnQgZmxhZ3MgPSBvcGVuTGVmdCA/IElEQktleVJhbmdlOjpMRUZUX09QRU4gOiBJREJLZXlS
YW5nZTo6TEVGVF9CT1VORDsKICAgICBmbGFncyB8PSBvcGVuUmlnaHQgPyBJREJLZXlSYW5nZTo6
UklHSFRfT1BFTiA6IElEQktleVJhbmdlOjpSSUdIVF9CT1VORDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5oCmluZGV4IGY1MDVkOWQ3MmNkYWY2NjU0YjAzMmEwMjNjNWU2
ZDcyNmU5ZDE3OGQuLmRlMDFiMzVmNjhiNDA0MDRkMDRkZWQxYWQ2MmMwZTg4ODExMTU5Y2QgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaApAQCAtMzksMTIgKzM5LDEx
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSURCQW55OworY2xhc3MgSURCS2V5
OwogY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBJREJSZXF1ZXN0OwogY2xhc3MgSW5kZXhlZERh
dGFiYXNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTsKIAogY2xhc3MgSW5kZXhlZERhdGFiYXNlUmVxdWVzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPEluZGV4ZWREYXRhYmFzZVJlcXVlc3Q+IHsKIHB1YmxpYzoKQEAgLTU1LDEwICs1NCwx
MCBAQCBwdWJsaWM6CiAgICAgfkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKTsKIAogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLSAgICBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiBtYWtlU2luZ2xlS2V5UmFuZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlKTsKLSAgICBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBtYWtlTGVmdEJvdW5k
S2V5UmFuZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGJvdW5kLCBib29sIG9w
ZW4gPSBmYWxzZSk7Ci0gICAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gbWFrZVJpZ2h0Qm91bmRL
ZXlSYW5nZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYm91bmQsIGJvb2wgb3Bl
biA9IGZhbHNlKTsKLSAgICBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBtYWtlQm91bmRLZXlSYW5n
ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbGVmdCwgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHJpZ2h0LCBib29sIG9wZW5MZWZ0ID0gZmFsc2UsIGJvb2wgb3Bl
blJpZ2h0ID0gZmFsc2UpOworICAgIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IG1ha2VTaW5nbGVL
ZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gdmFsdWUpOworICAgIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IG1ha2VMZWZ0Qm91bmRLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJv
b2wgb3BlbiA9IGZhbHNlKTsKKyAgICBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBtYWtlUmlnaHRC
b3VuZEtleVJhbmdlKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuID0gZmFsc2Up
OworICAgIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IG1ha2VCb3VuZEtleVJhbmdlKFBhc3NSZWZQ
dHI8SURCS2V5PiBsZWZ0LCBQYXNzUmVmUHRyPElEQktleT4gcmlnaHQsIGJvb2wgb3BlbkxlZnQg
PSBmYWxzZSwgYm9vbCBvcGVuUmlnaHQgPSBmYWxzZSk7CiAKIHByaXZhdGU6CiAgICAgSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdChJbmRleGVkRGF0YWJhc2UqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0LmlkbAppbmRleCA1MDJlODA0YmI2NWJkNmJmODMyMzM0ZmY1MDg2
OGM5M2VjYzNhZjhkLi5hMzI0OWMwNjcyNTJmYTIzOWZmYmU2M2JkM2UzOGMzNWJmOTE3NDJhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0yOSwxMCAr
MjksMTAgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RB
VEFCQVNFCiAgICAgXSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0IHsKICAgICAgICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbihpbiBET01TdHJpbmcgbmFt
ZSwgaW4gRE9NU3RyaW5nIGRlc2NyaXB0aW9uKTsKLSAgICAgICAgSURCS2V5UmFuZ2UgbWFrZVNp
bmdsZUtleVJhbmdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSk7Ci0gICAgICAgIElE
QktleVJhbmdlIG1ha2VMZWZ0Qm91bmRLZXlSYW5nZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
Ym91bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKLSAgICAgICAgSURCS2V5UmFuZ2Ug
bWFrZVJpZ2h0Qm91bmRLZXlSYW5nZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgYm91bmQsIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKLSAgICAgICAgSURCS2V5UmFuZ2UgbWFrZUJvdW5k
S2V5UmFuZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGxlZnQsIGluIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSByaWdodCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9wZW5MZWZ0LCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gb3BlblJpZ2h0KTsKKyAgICAgICAgSURCS2V5UmFuZ2UgbWFrZVNpbmdsZUtl
eVJhbmdlKGluIElEQktleSB2YWx1ZSk7CisgICAgICAgIElEQktleVJhbmdlIG1ha2VMZWZ0Qm91
bmRLZXlSYW5nZShpbiBJREJLZXkgYm91bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsK
KyAgICAgICAgSURCS2V5UmFuZ2UgbWFrZVJpZ2h0Qm91bmRLZXlSYW5nZShpbiBJREJLZXkgYm91
bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKKyAgICAgICAgSURCS2V5UmFuZ2UgbWFr
ZUJvdW5kS2V5UmFuZ2UoaW4gSURCS2V5IGxlZnQsIGluIElEQktleSByaWdodCwgaW4gW09wdGlv
bmFsXSBib29sZWFuIG9wZW5MZWZ0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlblJpZ2h0KTsK
ICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmMjU4YzJhODc2NmQ3Y2U3YTlhNzdiZTljZmQ4
NTgyNTg4MGZkNjgzLi5mZGE0MWM4YzU5YjAxNjU3ODljNmY4OTc1YzkzODU5OWNhNDVjNmNmIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMC0wNy0wOCAgTWFyY3VzIEJ1bGFjaCAg
PGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQgcGx1bWJpbmcgZm9yIElEQkN1cnNv
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODg4
CisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbAor
CisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tz
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzKToKKyAgICAg
ICAgKiBwdWJsaWMvV2ViSURCQ3Vyc29yLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDdXJzb3I6On5XZWJJREJDdXJzb3IpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJLZXlSYW5n
ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OldlYklEQktleVJh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6On5XZWJJREJLZXlSYW5nZSk6
CisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJh
Y2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3Vj
Y2Vzcyk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3Jj
L0lEQkN1cnNvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5OjpJREJDdXJz
b3JQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6fklEQkN1cnNvclBy
b3h5KToKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
c3JjL0lEQktleVJhbmdlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eVJhbmdlUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZVByb3h5
OjpJREJLZXlSYW5nZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlUHJveHk6
On5JREJLZXlSYW5nZVByb3h5KToKKyAgICAgICAgKiBzcmMvSURCS2V5UmFuZ2VQcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBzcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVByb3h5OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMv
SURCT2JqZWN0U3RvcmVQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6
CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKiBzcmMvV2Vi
SURCQ3Vyc29ySW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJ
bXBsOjpXZWJJREJDdXJzb3JJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29ySW1w
bDo6fldlYklEQkN1cnNvckltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmg6
IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJJREJLZXlSYW5nZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6V2ViSURCS2V5UmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJLZXlSYW5nZTo6bGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJh
bmdlOjpyaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpmbGFncyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpyZXNldCk6CisgICAgICAgICogc3JjL1dl
YklEQk9iamVjdFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0
b3JlSW1wbDo6b3BlbkN1cnNvcik6CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1w
bC5oOgorCiAyMDEwLTA3LTE2ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5k
ZXggZGJiOWRkYWU3YmNiZTNmYWJmOWQyM2NmZjAyYWZjMWM1OGRiNjhhOC4uYzc2YjU3OGM0Y2Rl
YzFhY2Y4ZmNkZjhkM2JlNWRmY2MzMjczNGRlMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE3MCw4ICsx
NzAsMTAgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCQ2FsbGJhY2tzLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCQ3Vy
c29yLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2UuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZUVycm9yLmgnLAorICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSURCS2V5UmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJJREJJbmRleC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQktleS5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgnLApAQCAtMzA4LDYgKzMx
MCw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywKKyAgICAgICAgICAgICAgICAnc3Jj
L0lEQkN1cnNvclByb3h5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9JREJDdXJzb3JQcm94
eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9JREJJbmRleFByb3h5LmNwcCcsCkBAIC0zOTYsMTIgKzQwMCwxNSBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSFRUUEJvZHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcCcsCisgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJDdXJzb3JJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViSURCRGF0YWJhc2VFcnJvci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJJbmRleEltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYklEQktleS5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSURCS2V5UmFuZ2UuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSW1hZ2VDRy5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJDYWxsYmFja3MuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2Fs
bGJhY2tzLmgKaW5kZXggY2VlODYxMmNjYmFhYzg1NjhhOTFjNzIwOTk4MmYwODYzMDUzZTYxNy4u
MmUyYzRkMjk5ZTBjOGM3ZjU3NWRhZjJiNGU4MDdmZTc3NTNjZDZkMSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC0zMCw2ICszMCw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBXZWJJREJDdXJzb3I7CiBjbGFzcyBXZWJJREJEYXRhYmFzZTsK
IGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBXZWJJREJLZXk7CkBAIC00NSw2ICs0
Niw3IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgdGhlIHJlc3QsIHBhc3Mgb3duZXJzaGlwIHRvIHRo
ZSBjYWxsZWUgdmlhIGEgcG9pbnRlci4KICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBX
ZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0gLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkN1cnNv
ciopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURC
SW5kZXgqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCQ3Vyc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUzNWI3Mzg0NmMzY2EzNTg1ODRmMWJlNjY4
NDQwOGZmZDQwMDA2ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ3Vyc29yLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCQ3Vy
c29yX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29yX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgor
I2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgorI2lu
Y2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERh
dGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KK2NsYXNzIFdl
YklEQkN1cnNvciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViSURCQ3Vyc29yKCkgeyB9CisK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0CisgICAgeworICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKworICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0CisgICAgeworICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJJREJLZXkoIiIp
OworICAgIH0KKworICAgIHZpcnR1YWwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOworICAgIH0KKworICAgIHZpcnR1
YWwgbG9uZyBsb25nIGNvdW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFj
a3MqKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdl
YklEQkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShXZWJJREJDYWxsYmFja3MqKQor
ICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAv
LyBGSVhNRTogZmluaXNoLgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBXZWJJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJLZXlSYW5nZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMyZmFlZmNkMzc3ZDQ3MjljMjc3MGQ0YzFkMTMyMjc0YTUwYzA3MTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVJhbmdlLmgKQEAg
LTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCS2V5UmFuZ2VfaAorI2RlZmluZSBX
ZWJJREJLZXlSYW5nZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQ
cml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCS2V5UmFuZ2U7IH0K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYklEQktleTsKK2NsYXNzIFdlYlN0cmlu
ZzsKKworY2xhc3MgV2ViSURCS2V5UmFuZ2UgeworcHVibGljOgorICAgIH5XZWJJREJLZXlSYW5n
ZSgpOworCisgICAgV0VCS0lUX0FQSSBXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXlSYW5n
ZSYga2V5UmFuZ2UpIHsgbV9wcml2YXRlID0ga2V5UmFuZ2UubV9wcml2YXRlOyB9CisgICAgV0VC
S0lUX0FQSSBXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklE
QktleSYgcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKworI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgorICAgIFdlYklEQktleVJhbmdlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJLZXlSYW5nZT4mKTsKKyNlbmRpZgorCisgICAgV2ViSURCS2V5IGxlZnQoKSBjb25zdDsK
KyAgICBXZWJJREJLZXkgcmlnaHQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBzaG9ydCBmbGFncygp
IGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6SURCS2V5UmFu
Z2U+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
V2ViSURCS2V5UmFuZ2VfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJPYmplY3RTdG9yZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9y
ZS5oCmluZGV4IGZiODFmYjljZTFkYzA5OTNhMmEyZDE3OGI2NzUyNjU2YWNlZTJlM2EuLjc0NTJi
ZTk5YjQwYzBiZDIyNjk1MDQyNzEwYzlkYThiZjliMjA5ZDAgMTAwNzU1Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2NsYXNzIFdlYklEQktleVJhbmdlOworCiAvLyBTZWUgY29tbWVudCBpbiBX
ZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2Vz
LgogY2xhc3MgV2ViSURCT2JqZWN0U3RvcmUgewogcHVibGljOgpAQCAtNzksNiArODEsMTAgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVu
c2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKikKKyAgICB7CisgICAgICAg
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAgICAgLy8gRklYTUU6IGZpbmlz
aC4KIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXgg
MzU5MWJlZTk2OTU1ODkzMjE3MWZiYTY2NTgxN2VjMWMzYzA0NDEwYS4uMTY3NGFiOTUyNGE2YTM1
ZmE1YzUxYzUyODFjMTMyOTk0NTBkYzQ5NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIldlYklEQkNh
bGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwuaCIKICNpbmNsdWRlICJXZWJJ
REJEYXRhYmFzZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5j
bHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCkBAIC02OSw2ICs3MCwxMiBAQCB2b2lkIElEQkNhbGxi
YWNrc1Byb3h5OjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3Zv
aWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvcj4gaWRi
Q3Vyc29yKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYktpdDo6V2ViSURC
Q3Vyc29ySW1wbChpZGJDdXJzb3IpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2
b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4g
aWRiRGF0YWJhc2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpX
ZWJJREJEYXRhYmFzZUltcGwoaWRiRGF0YWJhc2UpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaAppbmRleCBjNWE4ODU4YTA5MmEwZWQ3NTg2YjRiZDI4NDhlODdhODI1OTZm
NWZmLi4wYjU0ZGZkYWQwMTI1OTA3NTlkNGMyNTI4ZWM5MTUyNjViZjJhYmQzIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQktleT4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDdXJzb3JQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYjdlNGM4YmIwNzI0YmVmMzVkYWUyNTA0MjQxMjZhZmMzZjEwMDRi
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5j
cHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJJREJDdXJzb3JQcm94eS5oIgorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURC
Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVk
ZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgorCisjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1Jl
ZlB0cjxJREJDdXJzb3I+IElEQkN1cnNvclByb3h5OjpjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6
OldlYklEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURC
Q3Vyc29yUHJveHkoaWRiQ3Vyc29yKSk7Cit9CisKK0lEQkN1cnNvclByb3h5OjpJREJDdXJzb3JQ
cm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPiBpZGJDdXJzb3IpCisgICAgOiBt
X2lkYkN1cnNvcihpZGJDdXJzb3IpCit7Cit9CisKK0lEQkN1cnNvclByb3h5Ojp+SURCQ3Vyc29y
UHJveHkoKQoreworfQorCit1bnNpZ25lZCBzaG9ydCBJREJDdXJzb3JQcm94eTo6ZGlyZWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigpOworfQorCitQ
YXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yUHJveHk6OmtleSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1faWRiQ3Vyc29yLT5rZXkoKTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNv
clByb3h5Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUgPSBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4obV9pZGJDdXJzb3It
PnZhbHVlKCkpOworICAgIHJldHVybiBJREJBbnk6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7Cit9CisK
K2xvbmcgbG9uZyBJREJDdXJzb3JQcm94eTo6Y291bnQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2lkYkN1cnNvci0+Y291bnQoKTsKK30KKwordm9pZCBJREJDdXJzb3JQcm94eTo6dXBkYXRlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+dXBkYXRlKHZhbHVlLCBuZXcg
V2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDdXJzb3JQcm94
eTo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1faWRiQ3Vyc29yLT5jb250aW51ZUZ1bmN0
aW9uKGtleSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQg
SURCQ3Vyc29yUHJveHk6OnJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQoreworICAgIG1faWRiQ3Vyc29yLT5yZW1vdmUobmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
dXJzb3JQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQxMWU1NmFlNWU5MWVjMGE4ODJiYzMwNTBhMzIxYzI0YzU5OGNjNWIKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUHJveHlfaAorI2RlZmluZSBJREJDdXJz
b3JQcm94eV9oCisKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJXZWJJREJDdXJz
b3IuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQkN1cnNvclByb3h5IDogcHVibGljIElEQkN1cnNvciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6Oldl
YklEQkN1cnNvcj4pOworICAgIHZpcnR1YWwgfklEQkN1cnNvclByb3h5KCk7CisKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+
IHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5j
dGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworCitwcml2YXRl
OgorICAgIElEQkN1cnNvclByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+KTsK
KworICAgIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+IG1faWRiQ3Vyc29yOworfTsK
KworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vy
c29yUHJveHlfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAK
aW5kZXggY2VjNGVkMzEwMDExOTVlOGQ1NmUzMDQwYTY0ODBlNzAzMWJmNWY4Zi4uNzQ0OTlmNzhi
Nzc0ZmU2YjE2N2QzODc4M2M4YTM1OWFiZjk1ZTI5YSAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCkBAIC0yOCw4ICsyOCwxMCBAQAogCiAjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklE
QktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhQcm94eS5oIgogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUg
IldlYklEQkluZGV4LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSURC
T2JqZWN0U3RvcmUuaCIKQEAgLTEwMSw2ICsxMDMsMTEgQEAgdm9pZCBJREJPYmplY3RTdG9yZVBy
b3h5OjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2sKICAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5yZW1vdmVJbmRleChuYW1lLCBuZXcgV2ViSURC
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKIH0KIAordm9pZCBJREJPYmplY3RTdG9yZVByb3h5
OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCit7CisgICAg
bV93ZWJJREJPYmplY3RTdG9yZS0+b3BlbkN1cnNvcihyYW5nZSwgZGlyZWN0aW9uLCBuZXcgV2Vi
SURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCmluZGV4IGI4ZTRhMDE5OGZlOWI0Mzk4YTI4ZThkOWUx
Y2FiMzAwMzI3MDM0ZWYuLmM2ZWY3ODVlZjdkMGYzOGQ2OWNkNjlkZGU5ZTBkYTZjNzJjZDllZmYg
MTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJp
bmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IDAs
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6
CiAgICAgSURCT2JqZWN0U3RvcmVQcm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCT2JqZWN0
U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggMjFjOWVlZGFlOTUzNThiNzdlYjcwNDQ3ODA0Njc1NzQ3OTg2NDYxMy4uNDY4Nzg5YzQw
ODBkZWEyNDkxMzBlZjJkZjFjYzc3Yzc1NzEwNTg2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oIgogCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVk
ZSAiSURCQ3Vyc29yUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIklEQkluZGV4UHJveHkuaCIKQEAg
LTY1LDYgKzY2LDEyIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKCkKICAg
ICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2VzcyhXZWJLaXQ6OldlYklEQkN1cnNvciogY3Vyc29yKQoreworICAgIG1fY2FsbGJhY2tz
LT5vblN1Y2Nlc3MoSURCQ3Vyc29yUHJveHk6OmNyZWF0ZShjdXJzb3IpKTsKKyAgICBtX2NhbGxi
YWNrcy5jbGVhcigpOworfQorCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkKIHsKICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKElEQkRhdGFiYXNlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCBhNGQ1M2I1NWFm
NGM2OTg1YmZmYTY4YmE0M2FjZTIwMTBhZjI2NzI0Li4xODM1YzYwYzJjNDVmZGMyMDgxZTk5ZjZk
NzQ4MGRmMWFlNDkxZGNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJv
cihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhX
ZWJLaXQ6OldlYklEQkN1cnNvciopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0
OjpXZWJJREJEYXRhYmFzZSopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2Vi
S2l0OjpXZWJJREJLZXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2Vi
SURCSW5kZXgqKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29y
SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJhZTY5MDc1ZmViZjFhMzI5OWI5NDk3YjUzNWMxNzVjMGE3NDBlYWEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC0w
LDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURC
Q3Vyc29ySW1wbC5oIgorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJh
Y2tzUHJveHkuaCIKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJLZXkuaCIK
KyNpbmNsdWRlICJXZWJJREJLZXkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJJREJDdXJzb3JJbXBsOjpXZWJJREJDdXJzb3JJbXBsKFBh
c3NSZWZQdHI8SURCQ3Vyc29yPiBpZGJDdXJzb3IpCisgICAgOiBtX2lkYkN1cnNvcihpZGJDdXJz
b3IpCit7Cit9CisKK1dlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJbXBsKCkKK3sKK30K
KwordW5zaWduZWQgc2hvcnQgV2ViSURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigpOworfQorCitXZWJJREJLZXkgV2Vi
SURCQ3Vyc29ySW1wbDo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViSURCS2V5KG1faWRi
Q3Vyc29yLT5rZXkoKSk7Cit9CisKK1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBXZWJJREJDdXJz
b3JJbXBsOjp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yLT52YWx1ZSgp
LT5zZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKK30KKworbG9uZyBsb25nIFdlYklEQkN1cnNvcklt
cGw6OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmNvdW50KCk7Cit9
CisKK3ZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6dXBkYXRlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSYgdmFsdWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKQoreworICAgIG1faWRi
Q3Vyc29yLT51cGRhdGUodmFsdWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tz
KSk7Cit9CisKK3ZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6Y29udGludWVGdW5jdGlvbihjb25zdCBX
ZWJJREJLZXkmIGtleSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MpCit7CisgICAgbV9pZGJD
dXJzb3ItPmNvbnRpbnVlRnVuY3Rpb24oa2V5LCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNh
bGxiYWNrcykpOworCit9CisKK3ZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6cmVtb3ZlKFdlYklEQkNh
bGxiYWNrcyogY2FsbGJhY2tzKQoreworICAgIG1faWRiQ3Vyc29yLT5yZW1vdmUoSURCQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjk5MzJm
N2VkOTcxODEzM2YyOTY5OWM5ZjIxNGM2ZDBmMjJkMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKQEAgLTAsMCArMSw1OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViSURCQ3Vyc29ySW1wbF9oCisjZGVmaW5lIFdlYklEQkN1cnNvckltcGxf
aAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCQ3Vyc29yOyB9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisvLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkT2JqZWN0U3RvcmUgZm9yIGEgaGlnaCBs
ZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgorY2xhc3MgV2ViSURCQ3Vyc29ySW1wbCA6IHB1
YmxpYyBXZWJJREJDdXJzb3IgeworcHVibGljOgorICAgIFdlYklEQkN1cnNvckltcGwoV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvcj4gaWRiQ3Vyc29yKTsKKyAgICB2aXJ0dWFsIH5X
ZWJJREJDdXJzb3JJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
bigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0OworICAgIHZpcnR1
YWwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBs
b25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKGNvbnN0IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIFdlYklEQkNhbGxiYWNrcyopOworICAgIHZpcnR1YWwg
dm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNrcyop
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoV2ViSURCQ2FsbGJhY2tzKik7CisKKyBwcml2YXRl
OgorICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvcj4gbV9pZGJDdXJzb3I7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQkN1cnNvckltcGxfaApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWIyZjg5NDcz
MWI5OTE2NTZkODFiZjQ3ZWRiNzYyOTM0MmQ4ZjViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgorCisjaW5j
bHVkZSAiSURCS2V5LmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJXZWJJ
REJLZXkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEZJWE1FOiBSZW1vdmUuCitXZWJJ
REJLZXlSYW5nZTo6V2ViSURCS2V5UmFuZ2UoY29uc3QgV2ViSURCS2V5JiBsZWZ0LCBjb25zdCBX
ZWJJREJLZXkmIHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFncykKKyAgICA6IG1fcHJpdmF0ZShX
ZWJDb3JlOjpJREJLZXlSYW5nZTo6Y3JlYXRlKGxlZnQsIHJpZ2h0LCBmbGFncykpCit7Cit9CisK
K1dlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCS2V5UmFuZ2U+JiBpZGJLZXlSYW5nZSkKKyAgICA6IG1fcHJpdmF0ZShpZGJLZXlS
YW5nZSkKK3sKK30KKworV2ViSURCS2V5UmFuZ2U6On5XZWJJREJLZXlSYW5nZSgpCit7CisgICAg
bV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYklEQktleSBXZWJJREJLZXlSYW5nZTo6bGVmdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bGVmdCgpOworfQorCitXZWJJREJLZXkg
V2ViSURCS2V5UmFuZ2U6OnJpZ2h0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5y
aWdodCgpOworfQorCit1bnNpZ25lZCBzaG9ydCBXZWJJREJLZXlSYW5nZTo6ZmxhZ3MoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmZsYWdzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9y
ZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3Bw
CmluZGV4IGQ4ZTk4ZGIyOGE0OGMwODJlMGUzNmY2MTAxMGE5ODAxMjM2ODk1MDcuLjljNTJlNzQ4
YmE3MDQwZGMzMDcyNTQ2YzlkNDZlOWZlMTA0MWRiMzAgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKQEAgLTI4LDkgKzI4LDExIEBACiAKICNpbmNs
dWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKKyNp
bmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5j
bHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCisjaW5jbHVk
ZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtOTYsNiArOTgsMTEgQEAgdm9p
ZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgV2ViSURCQ2FsbGJhY2tzKgogICAgIG1fb2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUs
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7CiB9CiAKK3ZvaWQgV2ViSURC
T2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5n
ZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykK
K3sKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVh
dGUoY2FsbGJhY2tzKSwgSURCS2V5UmFuZ2U6OmNyZWF0ZShrZXlSYW5nZS5sZWZ0KCksIGtleVJh
bmdlLnJpZ2h0KCksIGtleVJhbmdlLmZsYWdzKCkpLCBkaXJlY3Rpb24pOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IDQwNjRiN2Y4
ODg2YjM4NDc3MzEyYjE5MjI0ZmYwZTRiNWEzYTVkNzAuLjg4YjRlOWFjMjM2OWZhYzI5NzFiOGM3
OTg1ZWEyOTA5ZDliYWU4NmEgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RT
dG9yZUltcGwuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgV2ViSURCSW5kZXgqIGlu
ZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKTsKIAorICAgIHZvaWQg
b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgV2ViSURCQ2FsbGJhY2tzKik7CisKICBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlPiBtX29iamVjdFN0b3JlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62853</attachid>
            <date>2010-07-28 11:55:09 -0700</date>
            <delta_ts>2010-07-29 04:04:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100728195506.patch</filename>
            <type>text/plain</type>
            <size>96644</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNTFiZGM2YjA0NDE2MDEzOGIyNDI0MWQwODZlOTUzMDMwNmUxYWY4Li4zODQ0YWE1
NGE1ODAxODY3OGVmNjlkMjkyOGY4NjkwNjdmOTA3NmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDctMTkgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAg
KGN1cnNvclN1Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChw
b3B1bGF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAg
KHRlc3QpOgorCiAyMDEwLTA3LTI4ICBBbmRyZWkgUG9wZXNjdSAgPGFuZHJlaXBAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ3NDM2YmU5YTM5NWNkNDlmMzY0ZmQ0YmMyYjJjNjE5YjNlZWE3ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDY2IEBACitUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIub3BlbignbmFtZScsICdk
ZXNjcmlwdGlvbicpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdv
bmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVl
CitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZp
cmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBl
dmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2Fn
ZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFT
UyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQor
UEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQorCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3Rlc3QnKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25l
cnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQor
UEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJl
IHNob3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZl
bnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2Un
IGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
ZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50
YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BB
U1MgJ2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZl
bnQudGFyZ2V0LkRPTkUKKworb2JqZWN0U3RvcmUgPSBldmVudC5yZXN1bHQKK29iamVjdFN0b3Jl
LmFkZCgndmFsdWUnLCAna2V5JykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBz
aG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK09wZW5pbmcgY3Vyc29yCitDdXJzb3Igb3BlbmVkIHN1
Y2Nlc3NmdWxseS4KK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ29u
ZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gcmVzdWx0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmly
ZSBzaG9ydGx5Li4uCisKK1BBU1MgZXZlbnQucmVzdWx0LmtleSBpcyAna2V5JworUEFTUyBldmVu
dC5yZXN1bHQudmFsdWUgaXMgJ3ZhbHVlJworUEFTUyBldmVudC5yZXN1bHQuY291bnQgaXMgMQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NjAzNjVkNWQwNmZkOTRkNTM4NWE4MWIyZmI4OWJiZWJkYTUyMDllCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbApAQCAtMCww
ICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3NjcmlwdC10ZXN0cy9vcGVuLWN1cnNvci5qcyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0cy9vcGVuLWN1cnNvci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2E1
ZWJiZjQzOTgzNzMzNzcyY2M5NjU4MmY3OGZhODgxNzVhOWVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpz
CkBAIC0wLDAgKzEsNjQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJz
b3IuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCit7
CisgICAgZGVidWcoIkN1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LiIpCisgICAgdmVyaWZ5UmVz
dWx0KHJlc3VsdCk7CisgICAgLy8gRklYTUU6IGNoZWNrIHRoYXQgd2UgY2FuIGl0ZXJhdGUgdGhl
IGN1cnNvci4KKyAgICBzaG91bGRCZSgiZXZlbnQucmVzdWx0LmtleSIsICIna2V5JyIpOworICAg
IHNob3VsZEJlKCJldmVudC5yZXN1bHQudmFsdWUiLCAiJ3ZhbHVlJyIpOworICAgIHNob3VsZEJl
KCJldmVudC5yZXN1bHQuY291bnQiLCAiMSIpOworICAgIGRvbmUoKTsKK30KKworZnVuY3Rpb24g
ZGF0YUFkZGVkU3VjY2VzcygpCit7CisgICAgb3BlbkN1cnNvcihvYmplY3RTdG9yZSk7Cit9CisK
K2Z1bmN0aW9uIHBvcHVsYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCit7CisgICAgcmVzdWx0
ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCd2YWx1ZScsICdrZXknKSIpOworICAgIHZl
cmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkYXRhQWRkZWRTdWNj
ZXNzOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisK
K2Z1bmN0aW9uIG9wZW5DdXJzb3Iob2JqZWN0U3RvcmUpCit7CisgICAgZGVidWcoIk9wZW5pbmcg
Y3Vyc29yIik7CisgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UubGVmdEJvdW5kKCJrZXki
KTsKKyAgICB2YXIgY3Vyc29yID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZSk7Cisg
ICAgY3Vyc29yLm9uc3VjY2VzcyA9IGN1cnNvclN1Y2Nlc3M7Cit9CisKK2Z1bmN0aW9uIGNyZWF0
ZU9iamVjdFN0b3JlU3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsK
KyAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGV2ZW50LnJl
c3VsdCIpOworICAgIHBvcHVsYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpOworfQorCitmdW5j
dGlvbiBvcGVuU3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKyAg
ICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykiKTsKKyAgICB2ZXJpZnlS
ZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmVT
dWNjZXNzOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwordGVzdCgpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVk
LmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsK
aW5kZXggZjZhYWQwZDg0ZmFiMWIwOWI3N2UwYjFhMmZmZGVlOGFhNmNlMmNmZC4uYWY2NzIyN2Y4
MDI0NGVlOGMxNWQ3MmQxNDNkYWJmZmM4OGIwZGZjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRy
b2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQu
anNjYmluZGluZ3MubWsKQEAgLTM2MSw2ICszNjEsOCBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwk
KEdFTikpOiAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMp
LwogIyBJbmRleGVkIERhdGFiYXNlCiBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3Rv
cmFnZS9KU0lEQkFueS5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJz
b3IuaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCQ3Vyc29yUmVxdWVzdC5o
IFwKICAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJEYXRhYmFzZUVycm9yLmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlUmVxdWVzdC5oIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IGNmYThkYzkxY2MxNzI2ZmVmODRh
M2E3MjNjZmI4YWNhZjMzODY2NmMuLmM0YzBiM2E0ZDYyMDRhMzg2N2FiYzk0YzNhY2NlOTI1YjYw
OTkzZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsK
KysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMzQyLDYgKzM0
Miw4IEBAICQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6
PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOElEQkFueS5oIFwKKyAgICAkKGlu
dGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCQ3Vyc29yLmggXAorICAgICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvVjhJREJDdXJzb3JSZXF1ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykv
YmluZGluZ3MvVjhJREJEYXRhYmFzZUVycm9yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmlu
ZGluZ3MvVjhJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2Jp
bmRpbmdzL1Y4SURCRGF0YWJhc2VSZXF1ZXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRy
b2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGNlMTA3NjllYzA2YWFmY2Q0MDgwMmZm
ZGFiZTUyZjdmNDVhYjNkMGQuLjNjNzNhZmU0MDFjMWY1Y2VhYmIzNjFiN2RlMTAyZWQ3NmY1YmE1
NDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQu
bWsKQEAgLTc0MSw2ICs3NDEsOSBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklM
RVMpIFwKIAlzdG9yYWdlL0RhdGFiYXNlVGhyZWFkLmNwcCBcCiAJc3RvcmFnZS9EYXRhYmFzZVRy
YWNrZXIuY3BwIFwKIAlzdG9yYWdlL0lEQkFueS5jcHAgXAorCXN0b3JhZ2UvSURCQ3Vyc29yLmNw
cCBcCisJc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCBcCisJc3RvcmFnZS9JREJDdXJzb3JSZXF1
ZXN0LmNwcCBcCiAJc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwIFwKIAlzdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5jcHAgXAogCXN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYTBmNTEyMzhhNmMxNzcwMmJjYzRlNTk4MGNhNmEyOTJlYTUwMzAyNi4uZjczYWZmOGU5Mjgz
NWEwOGMxMGVlYTI1ODNjNjJhZTcxNzdjZWZkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzIsNiArMzMyLDggQEAg
U0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbAog
ICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAogICAgIHN0b3JhZ2UvSURCQW55LmlkbAorICAg
IHN0b3JhZ2UvSURCQ3Vyc29yLmlkbAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5pZGwK
ICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsCiAgICAgc3RvcmFnZS9JREJEYXRhYmFz
ZUV4Y2VwdGlvbi5pZGwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTE0
MzIsNiArMTQzNCw5IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL0RhdGFiYXNl
VGhyZWFkLmNwcAogICAgIHN0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmNwcAogICAgIHN0b3JhZ2Uv
SURCQW55LmNwcAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmNwcAorICAgIHN0b3JhZ2UvSURCQ3Vy
c29ySW1wbC5jcHAKKyAgICBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwCiAgICAgc3RvcmFn
ZS9JREJEYXRhYmFzZUltcGwuY3BwCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3Bw
CiAgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTFhZjU5Njk1MTQzZjNkOTlhYWUzOTUz
MDVmZDYyYTgwY2ZlMGNkLi5hNGE0NDViODlhNGViMjA1ZmRkYWFiNTk4ZDU2ZmU0MWY3M2YwMjkw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDkyIEBACisyMDEwLTA3LTE5ICBNYXJjdXMgQnVsYWNoICA8YnVsYWNoQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbml0aWFsIGJpbmRpbmdzIGFuZCBwbHVtYmluZyBmb3IgSURCQ3Vyc29yLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4ODgKKworICAgICAgICBU
ZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9pZGItb3BlbmN1cnNvci5odG1sCisKKyAgICAgICAgKiBB
bmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQW5kcm9pZC5kZXJpdmVk
LnY4YmluZGluZ3MubWs6CisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOElEQkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkFueS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OmlkYkN1
cnNvclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjpzZXQpOgorICAgICAgICAq
IHN0b3JhZ2UvSURCQW55Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6Oik6CisgICAgICAg
ICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkN1cnNvcjo6fklEQkN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3Iu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckltcGw6OklEQkN1cnNvckltcGwpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29ySW1wbDo6fklEQkN1cnNvckltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1
cnNvckltcGw6OmtleSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbXBsOjp2YWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbXBsOjpjb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDdXJzb3JJbXBsOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29y
SW1wbDo6Y29udGludWVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbXBs
OjpyZW1vdmUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OklEQkN1cnNvclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6fklEQkN1cnNvclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6a2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNv
clJlcXVlc3Q6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OmNv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3JSZXF1ZXN0Ojpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OnJlbW92ZSk6CisgICAgICAgICogc3RvcmFn
ZS9JREJDdXJzb3JSZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29y
UmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQktleVJhbmdlOjpJREJLZXlSYW5nZSk6CisgICAgICAgICogc3RvcmFnZS9JREJL
ZXlSYW5nZS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJL
ZXlSYW5nZTo6cmlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuaWRsOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9i
amVjdFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUltcGw6
Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmg6Cisg
ICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpjcmVh
dGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6b3BlbkN1
cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGw6CisgICAgICAgICogc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0aW1lckZpcmVkKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBzdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6
bWFrZVNpbmdsZUtleVJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJl
cXVlc3Q6Om1ha2VMZWZ0Qm91bmRLZXlSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0OjptYWtlUmlnaHRCb3VuZEtleVJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om1ha2VCb3VuZEtleVJhbmdlKToKKyAgICAgICAg
KiBzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsOgorCiAyMDEwLTA3LTI2ICBTdGV2ZSBCbG9jayAgPHN0
ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCmluZGV4IGVhNmU0N2UwNGY1ODA3Mjc5MTNiYjIxNmY4OWU1ODk4ZmVhZmQ2
NjAuLjAzMjVmYjZhZWQwYTIyNTQ5ZWExZWRhMjY5ZGM4NzJkOWQwMjQ2ZTUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCkBAIC0xNzYsNiArMTc2LDggQEAKICNpbmNsdWRlICJKU0hUTUxVTGlzdEVsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIkpTSFRNTFZpZGVvRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNJREJBbnku
Y3BwIgorI2luY2x1ZGUgIkpTSURCQ3Vyc29yLmNwcCIKKyNpbmNsdWRlICJKU0lEQkN1cnNvclJl
cXVlc3QuY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2VFcnJvci5jcHAiCiAjaW5jbHVkZSAi
SlNJREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZVJlcXVl
c3QuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDhjZWNjMmI1NjhiZGEwNTk1ZGNmODY3M2ZlNTQz
NzA1YTczMGE2Y2IuLmNiNTY0MzM3OTA3YmUyOTM1MDI3MjQ4MWJiOGIzYWU5ZTZlOTFiODcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIxOSw2ICsyMTksOCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBI
VE1MVmlkZW9FbGVtZW50IFwKICAgICBIaXN0b3J5IFwKICAgICBJREJBbnkgXAorICAgIElEQkN1
cnNvciBcCisgICAgSURCQ3Vyc29yUmVxdWVzdCBcCiAgICAgSURCRGF0YWJhc2VFcnJvciBcCiAg
ICAgSURCRGF0YWJhc2VFeGNlcHRpb24gXAogICAgIElEQkRhdGFiYXNlUmVxdWVzdCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA4Mzg5ZWQ2MGQ2YTJjZTk0NDQ3ZGY0MDFhNDMxZTg0N2U1MzczMzUwLi4xNmQxOTE0M2Y3
NjYyMjRkMDU5MjI5NWRmZjBiNjNmOWYyMDU0M2UyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI4MTYsNiArMjgxNiw4
IEBAIGVuZGlmICMgRU5BQkxFX0VWRU5UU09VUkNFCiBpZiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RQogRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEKIAorICBXZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmlkbCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JS
ZXF1ZXN0LmlkbCBcCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktREVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFPTEKIApAQCAtMjg0OSw3ICsyODUxLDExIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
V2ViQ29yZS9zdG9yYWdlL0lEQkFueS5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuaCBc
CiAJV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKLQlXZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2UuaCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuY3BwIFwKKyAgV2ViQ29y
ZS9zdG9yYWdlL0lEQkN1cnNvci5oIFwKKyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVl
c3QuY3BwIFwKKyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaCBcCisgIFdlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJ
bXBsLmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oIFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjk4ZTMwMjU2YmI3ZmJkZTczMjY2
MGIxYWFlMDZhOGEzMjY0YThmMi4uNTM1ZDhhZGQxYzliZmY2OGYzZjFhYjZkMzA4N2Q0MWM3Mzgw
OTVjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTIzMSw2ICsyMzEsOCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJh
c2VDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJBbnkuaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdl
L0lEQkN1cnNvci5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5p
ZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsJywKICAgICAgICAgICAgICdz
dG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwnLApAQCAtMzQ3MSw2ICszNDczLDEwIEBACiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJBbnkuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QkFueS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkNhbGxiYWNrcy5oJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lE
QkN1cnNvci5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwJywK
KyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJEYXRhYmFzZS5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNl
RXJyb3IuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmlu
ZGV4IGVmODdhNDU1YTllZTc1MThhZTgxNmIyZWJmOTY1MDc0OGRjZDgyZjAuLjE3ZmYyYWJhN2Jm
ODY4ZDAzNmFkMDY2MjMxNWRhNDc0M2YxMGNlZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNDgzLDYgKzQ4Myw4IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBcCiAgICAgc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsIFwKICAgICBzdG9yYWdlL0lEQkFueS5pZGwgXAorICAgIHN0
b3JhZ2UvSURCQ3Vyc29yLmlkbCBcCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbCBc
CiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCBcCiAgICAgc3RvcmFnZS9JREJEYXRh
YmFzZUV4Y2VwdGlvbi5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCBiN2YxNTJlMmUzMzk4N2Y0MzU0MTBjOWZhZDJiZWZhNDRjYWYwNTc4Li4yMDI3MGJhOTg2
MDg4NTc2MzU0NWIyZTMwZGU4NDAyZmFkM2FiOTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI0MTgsNiArMjQxOCw5IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAgICAgYmlu
ZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oIFwKICAgICAgICAgc3RvcmFnZS9JREJBbnku
aCBcCiAgICAgICAgIHN0b3JhZ2UvSURCQ2FsbGJhY2tzLmggXAorICAgICAgICBzdG9yYWdlL0lE
QkN1cnNvci5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3JJbXBsLmggXCAgICAgICAgCisg
ICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJE
YXRhYmFzZS5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCiAgICAgICAg
IHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oIFwKQEAgLTI0NDQsNiArMjQ0Nyw5IEBAIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAgICAgYmluZGlu
Z3MvanMvSlNJREJBbnlDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJLZXlD
dXN0b20uY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJBbnkuY3BwIFwKKyAgICAgICAgc3RvcmFn
ZS9JREJDdXJzb3IuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCBcCisg
ICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lE
QkRhdGFiYXNlSW1wbC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5j
cHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDE2N2JhOGNhNjE5ZGQ2YzRmMzRmMWIyY2MzYTExZmFi
NTNiZjZkY2YuLjU0M2RjOGExYTliM2MyNjE3OTUxMmI0NjBmNzVjOGE2Zjg3YTQ4N2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDQyNDcsNiArNDQyNDcsMjE0IEBA
CiAJCQkJCQkvPg0KIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KKyAg
ICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yLmNwcCINCisgICAg
ICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1l
PSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisg
ICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFt
ZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAg
TmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAg
IDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAg
ICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAg
ICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAg
IEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8
VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAg
ICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNv
bmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICA8L0Zp
bGU+DQorICAgICAgICA8RmlsZQ0KKyAgICAgICAgICBSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0
cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJDdXJzb3IuaCIN
CisgICAgICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAg
ICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAg
ICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAg
ICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAg
ICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlv
bg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAgIEV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9v
bA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAv
Pg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKyAgICAg
ICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAg
ICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAg
ICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQor
ICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAg
ICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAg
ICA8L0ZpbGU+DQorICAgICAgICA8RmlsZQ0KKyAgICAgICAgICBSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJDdXJz
b3JSZXF1ZXN0LmNwcCINCisgICAgICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0
aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wN
CisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4N
CisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1
cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0K
KyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisg
ICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAg
ICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJv
fFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAg
ICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAg
ICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorICAgICAgICA8L0ZpbGU+DQorICAgICAgICA8RmlsZQ0KKyAgICAgICAgICBSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNJREJDdXJzb3JSZXF1ZXN0LmgiDQorICAgICAgICAgID4NCisgICAgICAgICAgPEZp
bGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAg
ICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAg
ICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAg
ICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAg
IDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdp
bjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAg
ID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19D
YWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAg
ICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0i
UmVsZWFzZV9DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAg
ICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9GaWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3Rv
bS5jcHAiDQogCQkJCQk+DQpAQCAtNTAwOTIsNiArNTAzMDAsMzAgQEAKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHN0b3JhZ2VcSURCQ2FsbGJhY2tzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorICAg
ICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3IuY3Bw
Ig0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVs
YXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvci5oIg0KKyAgICAgICAgPg0KKyAgICAgIDwv
RmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElE
QkN1cnNvckltcGwuY3BwIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8Rmls
ZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvckltcGwuaCINCisg
ICAgICAgID4NCisgICAgICA8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3JSZXF1ZXN0LmNwcCINCisgICAgICAgID4NCisgICAg
ICA8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cc3RvcmFn
ZVxJREJDdXJzb3JSZXF1ZXN0LmgiDQorICAgICAgICA+DQorICAgICAgPC9GaWxlPg0KIAkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJEYXRhYmFzZS5oIg0KIAkJCQk+
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMGM4MTk2
OTJlNDNiZTQwNzE1YWU3ZTgzM2U2YjYzZDdiZDk4Mzg1Li4wNDFmM2Y1NmRkNWE0YmEzMzljNTJi
MjNhNmIzOTg5OTA0ZmUwODgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQwNiw2ICsxNDA2LDE1IEBACiAJCTdBRUQzRTA2MEZCQjFFQUEwMEQyQjAz
QyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0FFRDNFMDQwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250
ZW5kLmggKi87IH07CiAJCTdBRkQ0QThCMTEzMUMyNzYwMDM1Qjg4MyAvKiBTY3JpcHRCcmVha3Bv
aW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZE
NEE4QTExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdBRkQ0RkY0MTEzMjc3QjYwMDM1
Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEZGMzExMzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVi
dWdMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTgxQkUyMDk3MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkyMTFGNEFCOEQwMDkx
NURGQSAvKiBJREJDdXJzb3IuaCAqLzsgfTsKKwkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODFCRTIwOTMxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckltcGwuY3BwICov
OyB9OworCQk4MUJFMjA5OTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29ySW1wbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTQxMUY0QUI4
RDAwOTE1REZBIC8qIElEQkN1cnNvckltcGwuaCAqLzsgfTsKKwkJODFCRTIwOUExMUY0QUI4RDAw
OTE1REZBIC8qIElEQkN1cnNvclJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTUxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNv
clJlcXVlc3QuY3BwICovOyB9OworCQk4MUJFMjA5QjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vy
c29yUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODFCRTIwOTYxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvclJlcXVlc3QuaCAqLzsgfTsK
KwkJODFCRTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE3MTFGNEI2NkYwMDkx
NURGQSAvKiBKU0lEQkN1cnNvci5jcHAgKi87IH07CisJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURG
QSAvKiBKU0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07
CisJCTgxQkUyMEQ0MTFGNEJDMzIwMDkxNURGQSAvKiBKU0lEQkN1cnNvclJlcXVlc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTkxMUY0
QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yUmVxdWVzdC5jcHAgKi87IH07CisJCTgxQkUyMEQ1
MTFGNEJDMzIwMDkxNURGQSAvKiBKU0lEQkN1cnNvclJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEFBMTFGNEI2NkYwMDkxNURGQSAv
KiBKU0lEQkN1cnNvclJlcXVlc3QuaCAqLzsgfTsKIAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkEx
IC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3Rv
cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAw
RTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKIAkJODQxRkRDMjYxMTc4QzlC
RTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MUZEQzI0MTE3OEM5QkUwMEY4QUM5QiAv
KiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgKi87IH07CkBAIC03MTg5LDYgKzcxOTgsMTcg
QEAKIAkJN0FFRDNFMDQwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250ZW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkQ0QThBMTEzMUMyNzYwMDM1Qjg4MyAvKiBTY3Jp
cHRCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEJy
ZWFrcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FGRDRGRjMxMTMyNzdC
NjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2NyaXB0RGVidWdMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29ySW1wbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDdXJzb3JJbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vy
c29ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUJFMjA5NTExRjRBQjhE
MDA5MTVERkEgLyogSURCQ3Vyc29yUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJREJDdXJzb3JSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwOTYxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvclJlcXVlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yUmVxdWVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUJFMjA5QzExRjRBQkJEMDA5MTVERkEgLyogSURC
Q3Vyc29yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJDdXJzb3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MUJFMjA5RDExRjRBQkJEMDA5MTVERkEgLyogSURCQ3Vy
c29yUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCQ3Vyc29yUmVxdWVzdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMEE3MTFGNEI2NkYwMDkxNURG
QSAvKiBKU0lEQkN1cnNvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0lEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMEE4
MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0lEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MUJFMjBBOTExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yUmVxdWVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMEFBMTFGNEI2NkYwMDkxNURGQSAvKiBK
U0lEQkN1cnNvclJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJDdXJzb3JSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk3
MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MkI2NTg5OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3Rv
cmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDFGREMyNDExNzhDOUJFMDBG
OEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTEzMTksNiArMTEzMzksMTMgQEAKIAkJCQlDNTg1QTY5OTEx
RDRGQjNEMDA0QzNFNEIgLyogSURCQW55LmggKi8sCiAJCQkJQzU4NUE2OUExMUQ0RkIzRDAwNEMz
RTRCIC8qIElEQkFueS5pZGwgKi8sCiAJCQkJQzU4NUE2OUIxMUQ0RkIzRDAwNEMzRTRCIC8qIElE
QkNhbGxiYWNrcy5oICovLAorCQkJCTgxQkUyMDlDMTFGNEFCQkQwMDkxNURGQSAvKiBJREJDdXJz
b3IuaWRsICovLAorCQkJCTgxQkUyMDlEMTFGNEFCQkQwMDkxNURGQSAvKiBJREJDdXJzb3JSZXF1
ZXN0LmlkbCAqLywKKwkJCQk4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmgg
Ki8sCisJCQkJODFCRTIwOTMxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckltcGwuY3BwICov
LAorCQkJCTgxQkUyMDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JJbXBsLmggKi8sCisJ
CQkJODFCRTIwOTUxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvclJlcXVlc3QuY3BwICovLAor
CQkJCTgxQkUyMDk2MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JSZXF1ZXN0LmggKi8sCiAJ
CQkJQzU4NUE2OUMxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlLmggKi8sCiAJCQkJQzU4
NUE2OUQxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlRXJyb3IuaCAqLywKIAkJCQlDNTg1
QTY5RTExRDRGQjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VFcnJvci5pZGwgKi8sCkBAIC0xNDc1
OSw2ICsxNDc4NiwxMCBAQAogCQkJCUI1OENFQjY3MTE5MTM2MDcwMDJBNjc5MCAvKiBKU0RhdGFi
YXNlU3luYy5oICovLAogCQkJCUM1ODVBNjY0MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkFueS5j
cHAgKi8sCiAJCQkJQzU4NUE2NjUxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCQW55LmggKi8sCisJ
CQkJODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAqLywKKwkJCQk4
MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLywKKwkJCQk4MUJFMjBB
OTExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmNwcCAqLywKKwkJCQk4MUJF
MjBBQTExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmggKi8sCiAJCQkJQzU4
NUE2NjYxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJhc2VFcnJvci5jcHAgKi8sCiAJCQkJ
QzU4NUE2NjcxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJhc2VFcnJvci5oICovLAogCQkJ
CUM1ODVBNjY4MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcCAq
LywKQEAgLTE5ODcxLDYgKzE5OTAyLDExIEBACiAJCQkJMDg0RDBFM0QxMUY1ODE2MTAwMDgxRTFB
IC8qIFNWR1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0RDBFM0YxMUY1ODE2MTAw
MDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODVCMDVD
MzExRkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTgxQkUyMDk3MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgxQkUyMDk5MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JJbXBsLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MUJFMjA5QjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29y
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFCRTIwRDMxMUY0QkMzMjAwOTE1REZBIC8q
IEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MUJFMjBENTExRjRCQzMyMDA5MTVE
RkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMjcwLDYgKzIy
MzA2LDEwIEBACiAJCQkJMDg0RDBFM0UxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0Nh
Y2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4NkE0MDA2MTFGNkQ2QjcwMDJDRUM1MyAvKiBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODVCMDVD
MjExRkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckltcGwuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODFCRTIwOUExMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNv
clJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODFCRTIwRDIxMUY0QkMzMjAwOTE1REZB
IC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgxQkUyMEQ0MTFGNEJDMzIw
MDkxNURGQSAvKiBKU0lEQkN1cnNvclJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKaW5kZXggZGVmMTEyMDkw
ZWYxOTlhMTM2MjgxZDdlOWIxMmYxZjBlNzVmMzE4Yi4uYzM4MzIzZDlmMTBhMzE2ZWU5YjkwMmFh
NmJiNDIzZDVjZTc4YWI5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhJREJBbnlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURC
QW55Q3VzdG9tLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlY4SURCQW55LmgiCiAK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJWOElEQkN1cnNv
clJlcXVlc3QuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IlY4SURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJLZXkuaCIKQEAgLTUwLDYgKzUx
LDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIGNhc2UgSURCQW55OjpOdWxsVHlwZToKICAgICAg
ICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OklEQkN1cnNvclJlcXVlc3RU
eXBlOgorICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJDdXJzb3JSZXF1ZXN0KCkpOwogICAg
IGNhc2UgSURCQW55OjpJREJEYXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9W
OChpbXBsLT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQkluZGV4
UmVxdWVzdFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IDlhMTg5ODA1NDlmMTk4YzY3MjI3OGNlMDY0
OTUzOTczYzM0NzdiNmUuLjUwNjU1Y2I3OTA1YTMwNjUwNzYwNTQ5MGJmYjZmZTg1NjBhNDFlYmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJBbnkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkN1cnNvclJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKQEAgLTUwLDYgKzUxLDEyIEBAIElEQkFueTo6fklE
QkFueSgpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4gSURCQW55OjppZGJD
dXJzb3JSZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQobV90eXBlID09IElEQkN1cnNvclJlcXVlc3RU
eXBlKTsKKyAgICByZXR1cm4gbV9pZGJDdXJzb3JSZXF1ZXN0OworfQorCiBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlUmVxdWVzdD4gSURCQW55OjppZGJEYXRhYmFzZVJlcXVlc3QoKQogewogICAgIEFT
U0VSVChtX3R5cGUgPT0gSURCRGF0YWJhc2VSZXF1ZXN0VHlwZSk7CkBAIC05Miw2ICs5OSwxMyBA
QCB2b2lkIElEQkFueTo6c2V0KCkKICAgICBtX3R5cGUgPSBOdWxsVHlwZTsKIH0KIAordm9pZCBJ
REJBbnk6OnNldChQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IHZhbHVlKQoreworICAgIEFT
U0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CisgICAgbV90eXBlID0gSURCQ3Vyc29yUmVx
dWVzdFR5cGU7CisgICAgbV9pZGJDdXJzb3JSZXF1ZXN0ID0gdmFsdWU7Cit9CisKIHZvaWQgSURC
QW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IHZhbHVlKQogewogICAgIEFT
U0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCQW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggNzdiYmE3Y2M5YTUz
MjA3Yzk2YmFkYjBhYTdkMGU3YzY1MWRlMWQ4OC4uN2NkYjM1MjFiNThmYjNkM2Y0YmNmOTY0YWRi
OGNhOGFhNjQ4MmIzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIElEQkN1cnNvclJlcXVlc3Q7CiBjbGFzcyBJREJEYXRhYmFzZVJl
cXVlc3Q7CiBjbGFzcyBJREJJbmRleFJlcXVlc3Q7CiBjbGFzcyBJREJLZXk7CkBAIC01Niw2ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewogICAgICAgICBVbmRlZmluZWRUeXBlID0g
MCwKICAgICAgICAgTnVsbFR5cGUsCisgICAgICAgIElEQkN1cnNvclJlcXVlc3RUeXBlLAogICAg
ICAgICBJREJEYXRhYmFzZVJlcXVlc3RUeXBlLAogICAgICAgICBJREJJbmRleFJlcXVlc3RUeXBl
LAogICAgICAgICBJREJLZXlUeXBlLApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAvLyBVc2UgdHlwZSgpIHRv
IGZpZ3VyZSBvdXQgd2hpY2ggb25lIG9mIHRoZXNlIHlvdSdyZSBhbGxvd2VkIHRvIGNhbGwuCisg
ICAgUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBpZGJDdXJzb3JSZXF1ZXN0KCk7CiAgICAg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IGlkYkRhdGFiYXNlUmVxdWVzdCgpOwogICAg
IFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBpZGJJbmRleFJlcXVlc3QoKTsKICAgICBQYXNz
UmVmUHRyPElEQktleT4gaWRiS2V5KCk7CkBAIC03NSw2ICs3OCw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIFNldCBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4KICAgICB2b2lkIHNldCgpOyAvLyBGb3Ig
Im51bGwiLgorICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4pOwogICAg
IHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQo
UGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+KTsKICAgICB2b2lkIHNldChQYXNzUmVmUHRyPElE
QktleT4pOwpAQCAtODgsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogCiAg
ICAgLy8gT25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQg
YW55IGdpdmVuIHRpbWUuCisgICAgUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IG1faWRiQ3Vyc29y
UmVxdWVzdDsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBtX2lkYkRhdGFiYXNlUmVx
dWVzdDsKICAgICBSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBtX2lkYkluZGV4UmVxdWVzdDsKICAg
ICBSZWZQdHI8SURCS2V5PiBtX2lkYktleTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJDYWxsYmFja3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaAppbmRleCAzN2Zk
YzQ2ZTA5OWNlYzY1MzA5NGZhMTI2OTg4M2UzYTY5OGYwOTlkLi5hNjNlMjU1MmUxMTUwNWQ5ZWYw
ZmEwM2U2MmQ4MGFlZTUwNDliMDU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2Fs
bGJhY2tzLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWZuZGVmIElEQkNhbGxiYWNrc19oCiAjZGVmaW5lIElEQkNhbGxiYWNrc19oCiAK
KyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1
ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgpAQCAtNDcsNiAr
NDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElE
QkRhdGFiYXNlRXJyb3I+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpID0gMDsg
Ly8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
Q3Vyc29yPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
SW5kZXg+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktl
eT4pID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBiL1dlYkNv
cmUvc3RvcmFnZS9JREJDdXJzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmUwNGI0Y2NmYWRhOTJkNDM2MGUx
NjI0YjZmOTk1MGYxMjIyZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QkN1cnNvci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvcl9oCisj
ZGVmaW5lIElEQkN1cnNvcl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJBbnk7CitjbGFzcyBJREJDYWxsYmFja3M7
CitjbGFzcyBJREJLZXk7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElE
QkN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkN1cnNvcj4geworcHVibGljOgorICAgIC8v
IEtlZXAgaW4gc3luYyB3aXRoIHdoYXQncyBpbiB0aGUgLmlkbCBmaWxlLgorICAgIGVudW0gRGly
ZWN0aW9uIHsKKyAgICAgICAgTkVYVCA9IDAsCisgICAgICAgIE5FWFRfTk9fRFVQTElDQVRFID0g
MSwKKyAgICAgICAgUFJFViA9IDIsCisgICAgICAgIFBSRVZfTk9fRFVQTElDQVRFID0gMywKKyAg
ICB9OworCisgICAgdmlydHVhbCB+SURCQ3Vyc29yKCkgeyB9CisKKyAgICB2aXJ0dWFsIHVuc2ln
bmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4g
dmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
b250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4pID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRp
ZiAvLyBJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5p
ZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2QwMDllYTFm
NTUxYWIwYTdjMDE2ZmQ1MzRlNWYzNTVlOTllMWE2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBz
dG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURf
REFUQUJBU0UKKyAgICBdIElEQkN1cnNvciB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRo
IHdoYXQncyBpbiB0aGUgLmggZmlsZS4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVY
VCA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FWFRfTk9fRFVQTElDQVRFID0g
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUFJFViA9IDI7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBSRVZfTk9fRFVQTElDQVRFID0gMzsKKyAgICB9OworfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZDNiMzc1OTQ1Mjk0NzEyNGY3YTFiZmEy
YTRmYzJlZjgxYmY1ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vy
c29ySW1wbC5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJREJDdXJzb3JJbXBsLmgiCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNs
dWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUg
IklEQk9iamVjdFN0b3JlSW1wbC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworSURCQ3Vyc29ySW1wbDo6SURCQ3Vyc29ySW1wbChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
SW1wbD4gaWRiT2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgaW50IGNvdW50KQorICAgIDogbV9pZGJP
YmplY3RTdG9yZShpZGJPYmplY3RTdG9yZSkKKyAgICAsIG1fa2V5UmFuZ2Uoa2V5UmFuZ2UpCisg
ICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgLCBtX2tleShrZXkpCisgICAgLCBtX3Zh
bHVlKElEQkFueTo6Y3JlYXRlKHZhbHVlLmdldCgpKSkKKyAgICAsIG1fY291bnQoY291bnQpCit7
Cit9CisKK0lEQkN1cnNvckltcGw6On5JREJDdXJzb3JJbXBsKCkKK3sKK30KKwordW5zaWduZWQg
c2hvcnQgSURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9k
aXJlY3Rpb247Cit9CisKK1Bhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JJbXBsOjprZXkoKSBj
b25zdAoreworICAgIHJldHVybiBtX2tleTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1
cnNvckltcGw6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92YWx1ZTsKK30KKworbG9u
ZyBsb25nIElEQkN1cnNvckltcGw6OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb3Vu
dDsKK30KKwordm9pZCBJREJDdXJzb3JJbXBsOjp1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pCit7Cit9CisKK3ZvaWQgSURC
Q3Vyc29ySW1wbDo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPikKK3sKK30KKwordm9pZCBJREJDdXJzb3JJbXBsOjpyZW1vdmUoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJDdXJzb3JJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxNzY3NWI4NGEzZDg3NmQ0MGEwZDY4MjYwZGJhMDcyMzg2YTA3YjgKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgSURCQ3Vyc29ySW1wbF9oCisjZGVmaW5lIElEQkN1
cnNvckltcGxfaAorCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBJREJLZXlSYW5nZTsKK2NsYXNzIElEQk9iamVjdFN0b3JlSW1wbDsKKwor
Y2xhc3MgSURCQ3Vyc29ySW1wbCA6IHB1YmxpYyBJREJDdXJzb3IgeworcHVibGljOgorICAgIElE
QkN1cnNvckltcGwoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUltcGw+LCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgaW50IGNvdW50KTsKKyAgICB2aXJ0
dWFsIH5JREJDdXJzb3JJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVj
dGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOworCitwcml2YXRlOgorICAgIFJlZlB0cjxJREJPYmplY3RT
dG9yZUltcGw+IG1faWRiT2JqZWN0U3RvcmU7CisgICAgUmVmUHRyPElEQktleVJhbmdlPiBtX2tl
eVJhbmdlOworICAgIHVuc2lnbmVkIHNob3J0IG1fZGlyZWN0aW9uOworICAgIFJlZlB0cjxJREJL
ZXk+IG1fa2V5OworICAgIFJlZlB0cjxJREJBbnk+IG1fdmFsdWU7CisgICAgaW50IG1fY291bnQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQkN1cnNvckltcGxfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1
cnNvclJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMGUyNTExM2NhZmY2Mzc1YmZhYjZhMTM3MDM2
YjkyZDQwMTJkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
UmVxdWVzdC5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJREJDdXJzb3JSZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJJREJLZXkuaCIKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lE
QkN1cnNvclJlcXVlc3Q6OklEQkN1cnNvclJlcXVlc3QoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1
cnNvcikKKyAgICA6IG1fY3Vyc29yKGN1cnNvcikKK3sKK30KKworSURCQ3Vyc29yUmVxdWVzdDo6
fklEQkN1cnNvclJlcXVlc3QoKQoreworfQorCitQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29y
UmVxdWVzdDo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJzb3ItPmtleSgpOworfQor
CitQYXNzUmVmUHRyPElEQkFueT4gSURCQ3Vyc29yUmVxdWVzdDo6dmFsdWUoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2N1cnNvci0+dmFsdWUoKTsKK30KKworbG9uZyBsb25nIElEQkN1cnNvclJl
cXVlc3Q6OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJzb3ItPmNvdW50KCk7Cit9
CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSkKK3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVl
c3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9jdXJzb3It
PnVwZGF0ZSh2YWx1ZSwgcmVxdWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwor
fQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSkKK3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9jdXJzb3ItPmNvbnRp
bnVlRnVuY3Rpb24oa2V5LCByZXF1ZXN0KTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7
Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yUmVxdWVzdDo6cmVtb3ZlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgICBSZWZQdHI8SURCUmVxdWVz
dD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0
aGlzKSk7CisgICAgICBtX2N1cnNvci0+cmVtb3ZlKHJlcXVlc3QpOworICAgICAgcmV0dXJuIHJl
cXVlc3QucmVsZWFzZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJDdXJzb3JSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZkODI5Y2Q3MDhkMjQxZjZmY2FjZjZmMWE5MDUzMWM0ZGIyNWY2MTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvclJlcXVlc3RfaAorI2RlZmluZSBJREJD
dXJzb3JSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVk
ZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBJREJDdXJzb3JSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8SURC
Q3Vyc29yUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNv
clJlcXVlc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Vyc29yKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JSZXF1ZXN0KGN1cnNvcikpOworICAg
IH0KKyAgICB+SURCQ3Vyc29yUmVxdWVzdCgpOworCisgICAgdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OworICAgIFBh
c3NSZWZQdHI8SURCQW55PiB2YWx1ZSgpIGNvbnN0OworICAgIGxvbmcgbG9uZyBjb3VudCgpIGNv
bnN0OworCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiB1cGRhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSk7CisgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4ga2V5ID0gMCk7CisgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiByZW1vdmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IElEQkN1cnNvclJlcXVlc3QoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcik7
CisKKyAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX2N1cnNvcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJzb3JSZXF1ZXN0X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDNiYjkzZWM3NGNhMTE4N2Yy
MzY0MDQ2ZmNkODhjYzAzMGY2ZTYxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvclJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3Rv
cmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RB
VEFCQVNFCisgICAgXSBJREJDdXJzb3JSZXF1ZXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IElEQktleSBrZXk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkgdmFsdWU7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcgY291bnQ7CisKKyAgICAgICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgdXBkYXRlKGluIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB2YWx1ZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uPWNvbnRpbnVlRnVuY3Rpb25dIHZvaWQgY29udGlu
dWUoaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIHZvaWQgcmVtb3ZlKCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgKaW5kZXggZTc4ZTYyYWI0ZDk1Y2MzMjVkYWZmMmQzNTljZDY2NjM5OTgzN2FlMS4u
NjgzYWExOGVjZDc0M2M1YmM0MTlhYWJlNWUzZmE5YmJlZWUyNTY4MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVfaAog
I2RlZmluZSBJREJPYmplY3RTdG9yZV9oCiAKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAt
MzUsNiArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVN0cmluZ0xpc3Q7
CiBjbGFzcyBJREJDYWxsYmFja3M7CitjbGFzcyBJREJDdXJzb3I7CitjbGFzcyBJREJLZXlSYW5n
ZTsKIGNsYXNzIElEQkluZGV4OwogY2xhc3MgSURCS2V5OwogY2xhc3MgU2VyaWFsaXplZFNjcmlw
dFZhbHVlOwpAQCAtNTQsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVu
aXF1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCBkNjc4NDAwZGQ2NzVmMjE3Y2NlZjQ2NjEw
OTAzYjFkOTg4Nzk4MjgxLi4yMDViZDNhMDVjMThhY2U3NGFmZGI4ZjllOWIzMGVlZjlmMGZmMTNj
IDEwMDc1NQotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcApAQCAtMjksOCArMjksMTAg
QEAKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxp
dGllcy5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkN1cnNvcklt
cGwuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQklu
ZGV4SW1wbC5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCS2V5VHJl
ZS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC0xMzAsNiArMTMyLDE3IEBA
IHZvaWQgSURCT2JqZWN0U3RvcmVJbXBsOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoKTsKIH0K
IAordm9pZCBJREJPYmplY3RTdG9yZUltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbikKK3sKKyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSByYW5nZS0+bGVm
dCgpOworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gbV90cmVlLT5n
ZXQoa2V5LmdldCgpKTsKKyAgICBpbnQgY291bnQgPSB2YWx1ZSA/IDEgOiAwOworICAgIGlmICgh
dmFsdWUpCisgICAgICB2YWx1ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCk7CisK
KyAgICBSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IgPSBhZG9wdFJlZihuZXcgSURCQ3Vyc29ySW1w
bCh0aGlzLCByYW5nZSwgZGlyZWN0aW9uLCBrZXksIHZhbHVlLCBjb3VudCkpOworICAgIGNhbGxi
YWNrcy0+b25TdWNjZXNzKGN1cnNvci5yZWxlYXNlKCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwu
aCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuaAppbmRleCBjNGQyZWI4ZDIy
MDQxNTcyMjQ5M2RkOTQwNDgzOWQ5MmI1OGI2MTkxLi5iNDkzZGVjOGI3MzJiOTMyYmM4NDRlYjk4
NDIwMjk4ZjZlNTIxNGJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oCkBAIC01
Niw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25z
dCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdm9pZCBvcGVuQ3Vyc29yKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2ln
bmVkIHNob3J0IGRpcmVjdGlvbik7CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVJbXBs
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNy
ZW1lbnQpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCmluZGV4
IDNlMDk1YzFlMGI1NTRhZjA4YzA2NTIyMzBkMDQyMGJiYjliNjliN2QuLmZkZGNmYzJmZmZlZWU0
YTU4NDFiMzczODUzMjJlZGVhYjc0OWZiODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZVJlcXVlc3QuY3BwCkBAIC02MywzNSArNjMsMzUgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXgKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+Z2V0
KGtleSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVx
dWVzdDo6YWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKICAg
ICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0
LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZhbHVlLCBr
ZXksIHRydWUsIHJlcXVlc3QpOwotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OnB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7
CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29u
dGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnB1dCh2YWx1
ZSwga2V5LCBmYWxzZSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJu
IHJlcXVlc3QucmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlUmVxdWVzdDo6cmVtb3ZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3Qg
PSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAg
IG1fb2JqZWN0U3RvcmUtPnJlbW92ZShrZXksIHJlcXVlc3QpOwotICAgIHJldHVybiByZXF1ZXN0
OworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
LCBib29sIHVuaXF1ZSkKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmpl
Y3RTdG9yZS0+Y3JlYXRlSW5kZXgobmFtZSwga2V5UGF0aCwgdW5pcXVlLCByZXF1ZXN0KTsKLSAg
ICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKIFBh
c3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNv
bnN0IFN0cmluZyYgbmFtZSkKQEAgLTEwNSw3ICsxMDUsMTQgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+
cmVtb3ZlSW5kZXgobmFtZSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0
dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uKQoreworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKKyAgICBtX29iamVjdFN0b3JlLT5v
cGVuQ3Vyc29yKHJlcXVlc3QsIHJhbmdlLCBkaXJlY3Rpb24pOworICAgIHJldHVybiByZXF1ZXN0
LnJlbGVhc2UoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oCmluZGV4IDg2ZjY0ZDY1NDljYWEyYjM0MTdmYTcyZDRhYzgy
YzlmZTg5ZGEwZTkuLmJiY2YzZDUzODhmZDI4MmNlYjZmZjIxMzgyZjE4NjZiY2FlY2Y5YWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDkgQEAK
ICNpZm5kZWYgSURCT2JqZWN0U3RvcmVSZXF1ZXN0X2gKICNkZWZpbmUgSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0X2gKIAorI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQkN1cnNvclJl
cXVlc3QuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0
b3JlLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCkBAIC02NCw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkluZGV4UmVx
dWVzdD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IHJlbW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5h
bWUpOwogCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSA9IDAsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6CiAgICAgSURC
T2JqZWN0U3RvcmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+KTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAppbmRleCBhODE2YjczZWUzNTFhMDMz
OTI2NGZmMTA0N2M2ZDcxMzZmMmVlMGMwLi40MTA0Y2ZkN2JiYWFjZDZmYzgxNTk0MDJiM2QxNWM0
MWNiOWMzNDgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbApA
QCAtNDEsNiArNDEsOCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIElEQkluZGV4UmVxdWVz
dCBpbmRleChpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsK
IAorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBv
cGVuQ3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0g
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsXSBET01TdHJpbmcga2V5UGF0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCA3
OGRkMTVhMDBmY2Q3MjBmZGQ5ZTliZDFhYmMxYTRlN2I2ZTNjOTMxLi5lZjQzZmNkYzliMTIyOWQy
NTgwYjg5ZGUzZGZlYjU5Njk3NzY1NGI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURC
UmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC03Myw2
ICs3MywxMiBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcygpCiAgICAgbV9yZXN1bHQtPnNl
dCgpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNv
cj4gaWRiQ3Vyc29yKQoreworICAgIG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jlc3VsdC0+c2V0
KElEQkN1cnNvclJlcXVlc3Q6OmNyZWF0ZShpZGJDdXJzb3IpKTsKK30KKwogdm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAg
ICAgb25FdmVudENvbW1vbigpOwpAQCAtMTYyLDcgKzE2OCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6
dGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoSURC
RXJyb3JFdmVudDo6Y3JlYXRlKG1fc291cmNlLCAqbV9lcnJvcikpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChtX3Jlc3VsdC0+dHlwZSgpICE9IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7
Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVhdGUobV9zb3VyY2Us
IG1fcmVzdWx0KSk7ICAgICAgICAKKyAgICAgICAgZGlzcGF0Y2hFdmVudChJREJTdWNjZXNzRXZl
bnQ6OmNyZWF0ZShtX3NvdXJjZSwgbV9yZXN1bHQpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVz
dC5oCmluZGV4IGM3NjNkOTZlYTc1ZTNjNGJmNDFlNDA4MzM0NDMzYjY4YWI4YmMzYTAuLmNiZjU2
ZWQzYmJlOGM1ZjUyNGZmOWM3YzM5MjMxYzU0ZGUyNjFmZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3RvcmFnZS9JREJSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApA
QCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgLy8gSURCQ2FsbGJhY2tzCiAgICAgdmlydHVh
bCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCSW5kZXg+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCS2V5Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhNTBkOTY2MWYwMzA3ZjhlODA3NmMwNTk1NzYy
ZGQ4NDA2MWQ5ZDhjLi5mZDg5OTk0ZjYxMGI2YjBmZGYyNzcxOTc3ZjI5MDgzMTY1ODM0NjU5IDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMC0wNy0xOSAgTWFyY3VzIEJ1bGFjaCAg
PGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQgcGx1bWJpbmcgZm9yIElEQkN1cnNv
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODg4
CisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbAor
CisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tz
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzKToKKyAgICAg
ICAgKiBwdWJsaWMvV2ViSURCQ3Vyc29yLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDdXJzb3I6On5XZWJJREJDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3I6
OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6a2V5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCQ3Vyc29yOjp2YWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkN1cnNvcjo6Y291bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3I6OnVwZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6cmVtb3ZlKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
SURCS2V5UmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpX
ZWJJREJLZXlSYW5nZSk6CisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAg
KiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJh
Y2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgICogc3JjL0lEQkN1cnNvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJREJDdXJzb3JQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNv
clByb3h5OjpJREJDdXJzb3JQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94
eTo6fklEQkN1cnNvclByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5Ojpk
aXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OmtleSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yUHJveHk6OmNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5
Ojp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OmNvbnRpbnVlRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OnJlbW92ZSk6CisgICAg
ICAgICogc3JjL0lEQkN1cnNvclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIHNyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUHJveHk6
Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9JREJPYmplY3RTdG9yZVByb3h5Lmg6CisgICAg
ICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
SURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJh
Y2tzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OldlYklEQkN1cnNvckltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjp+V2ViSURCQ3Vyc29ySW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkN1cnNvckltcGw6OmtleSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNv
ckltcGw6OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6Y291bnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjp1cGRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6cmVtb3ZlKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ3Vy
c29ySW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCS2V5UmFuZ2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OldlYklEQktleVJhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6On5XZWJJREJLZXlSYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpsZWZ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
S2V5UmFuZ2U6OnJpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OmZsYWdz
KToKKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCT2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMv
V2ViSURCT2JqZWN0U3RvcmVJbXBsLmg6CisKIDIwMTAtMDctMjggIEFuZHJlaSBQb3Blc2N1ICA8
YW5kcmVpcEBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKaW5kZXggOTdlZmRkY2I1NzEzZDMxZGJmYTM2ZGJjYjEyNGYwYzE4MDIwMGZh
My4uOTQ0MjhmYzA5M2NiYmU5M2U5N2M3ZDE0ZGRhZWUxNDA2ZmFkYjk1MyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKQEAgLTE3Niw4ICsxNzYsMTAgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdl
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLAorICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViSURCQ3Vyc29yLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0
YWJhc2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZUVycm9yLmgn
LAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5UmFuZ2UuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJJREJJbmRleC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YklEQktleS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgn
LApAQCAtMzE5LDYgKzMyMSw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRF
dmVudEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywKKyAgICAg
ICAgICAgICAgICAnc3JjL0lEQkN1cnNvclByb3h5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9JREJDdXJzb3JQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJv
eHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9JREJJbmRleFByb3h5LmNwcCcsCkBAIC00MTQsMTIgKzQxOCwxNSBA
QAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUEJvZHkuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJDdXJzb3JJ
bXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJDdXJzb3JJbXBsLmgnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViSURCRGF0YWJhc2VFcnJvci5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJJbmRleElt
cGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQktleS5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2Vi
SURCS2V5UmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9iamVjdFN0b3Jl
SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VDRy5jcHAnLApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggY2VlODYxMmNjYmFhYzg1NjhhOTFjNzIwOTk4
MmYwODYzMDUzZTYxNy4uMmUyYzRkMjk5ZTBjOGM3ZjU3NWRhZjJiNGU4MDdmZTc3NTNjZDZkMSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC0zMCw2ICszMCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJJREJDdXJzb3I7CiBjbGFzcyBX
ZWJJREJEYXRhYmFzZTsKIGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBXZWJJREJL
ZXk7CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgdGhlIHJlc3QsIHBhc3Mg
b3duZXJzaGlwIHRvIHRoZSBjYWxsZWUgdmlhIGEgcG9pbnRlci4KICAgICB2aXJ0dWFsIHZvaWQg
b25FcnJvcihjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0gLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFdlYklEQkN1cnNvciopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJL
ZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoV2ViSURCSW5kZXgqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI5YzAzMWU5YjUx
Yzc2YzUzYTJmYmY0NDUwMDZmYjhiN2QxZmMxNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViSURCQ3Vyc29yX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29yX2gKKworI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldl
YklEQktleS5oIgorI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1
ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQg
aW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xh
c3Nlcy4KK2NsYXNzIFdlYklEQkN1cnNvciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViSURC
Q3Vyc29yKCkgeyB9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNv
bnN0CisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKworICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0Cisg
ICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBXZWJJREJLZXkoIiIpOworICAgIH0KKworICAgIHZpcnR1YWwgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOworICAg
IH0KKworICAgIHZpcnR1YWwgbG9uZyBsb25nIGNvdW50KCkgY29uc3QKKyAgICB7CisgICAgICAg
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUm
LCBXZWJJREJDYWxsYmFja3MqKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKGNvbnN0
IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShXZWJJ
REJDYWxsYmFja3MqKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURC
Q3Vyc29yX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5UmFu
Z2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5UmFuZ2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjJiMGFkMWVlY2I5Nzk5Mjc5MmZjM2IzOGQ0YzQyMmU2NzRjNWUwCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQktleVJhbmdlX2gKKyNkZWZpbmUgV2ViSURCS2V5
UmFuZ2VfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQktleVJhbmdlOyB9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJJREJLZXk7CitjbGFzcyBXZWJTdHJpbmc7CisKK2Ns
YXNzIFdlYklEQktleVJhbmdlIHsKK3B1YmxpYzoKKyAgICB+V2ViSURCS2V5UmFuZ2UoKTsKKwor
ICAgIFdFQktJVF9BUEkgV2ViSURCS2V5UmFuZ2UoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJh
bmdlKSB7IG1fcHJpdmF0ZSA9IGtleVJhbmdlLm1fcHJpdmF0ZTsgfQorICAgIFdFQktJVF9BUEkg
V2ViSURCS2V5UmFuZ2UoY29uc3QgV2ViSURCS2V5JiBsZWZ0LCBjb25zdCBXZWJJREJLZXkmIHJp
Z2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFncyk7CisKKyAgICBXZWJJREJLZXkgbGVmdCgpIGNvbnN0
OworICAgIFdlYklEQktleSByaWdodCgpIGNvbnN0OworICAgIHVuc2lnbmVkIHNob3J0IGZsYWdz
KCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJJREJLZXlSYW5n
ZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+Jik7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiBtX3By
aXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQktl
eVJhbmdlX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0
U3RvcmUuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaAppbmRl
eCBmYjgxZmI5Y2UxZGMwOTkzYTJhMmQxNzhiNjc1MjY1NmFjZWUyZTNhLi43NDUyYmU5OWI0MGMw
YmQyMjY5NTA0MjcxMGM5ZGE4YmY5YjIwOWQwIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJPYmplY3RTdG9yZS5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCitjbGFzcyBXZWJJREJLZXlSYW5nZTsKKwogLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhl
ZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KIGNsYXNz
IFdlYklEQk9iamVjdFN0b3JlIHsKIHB1YmxpYzoKQEAgLTc5LDYgKzgxLDEwIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CisgICAg
dmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIC8vIEZJWE1FOiBmaW5pc2guCiB9Owog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDM1OTFiZWU5
Njk1NTg5MzIxNzFmYmE2NjU4MTdlYzFjM2MwNDQxMGEuLjE2NzRhYjk1MjRhNmEzNWZhNWM1MWM1
MjgxYzEzMjk5NDUwZGM0OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlUHJveHkuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3Mu
aCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJh
c2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldl
YklEQkluZGV4SW1wbC5oIgpAQCAtNjksNiArNzAsMTIgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94
eTo6b25TdWNjZXNzKCkKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIElEQkNh
bGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGlkYkN1cnNvcikK
K3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBXZWJLaXQ6OldlYklEQkN1cnNvcklt
cGwoaWRiQ3Vyc29yKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwogdm9pZCBJREJD
YWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFi
YXNlKQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYktpdDo6V2ViSURCRGF0
YWJhc2VJbXBsKGlkYkRhdGFiYXNlKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmgKaW5kZXggYzVhODg1OGEwOTJhMGVkNzU4NmI0YmQyODQ4ZTg3YTgyNTk2ZjVmZi4uMGI1
NGRmZGFkMDEyNTkwNzU5ZDRjMjUyOGVjOTE1MjY1YmYyYWJkMyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJJbmRleD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJLZXk+KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vy
c29yUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmI3ZTRjOGJiMDcyNGJlZjM1ZGFlMjUwNDI0MTI2YWZjM2YxMDA0YgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yUHJveHkuY3BwCkBAIC0w
LDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCQ3Vy
c29yUHJveHkuaCIKKworI2luY2x1ZGUgIklEQkFueS5oIgorI2luY2x1ZGUgIklEQkNhbGxiYWNr
cy5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJJREJLZXkuaCIKKworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURC
Q3Vyc29yPiBJREJDdXJzb3JQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJD
dXJzb3I+IGlkYkN1cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvclBy
b3h5KGlkYkN1cnNvcikpOworfQorCitJREJDdXJzb3JQcm94eTo6SURCQ3Vyc29yUHJveHkoUGFz
c093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4gaWRiQ3Vyc29yKQorICAgIDogbV9pZGJDdXJz
b3IoaWRiQ3Vyc29yKQoreworfQorCitJREJDdXJzb3JQcm94eTo6fklEQkN1cnNvclByb3h5KCkK
K3sKK30KKwordW5zaWduZWQgc2hvcnQgSURCQ3Vyc29yUHJveHk6OmRpcmVjdGlvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yLT5kaXJlY3Rpb24oKTsKK30KKworUGFzc1JlZlB0
cjxJREJLZXk+IElEQkN1cnNvclByb3h5OjprZXkoKSBjb25zdAoreworICAgIHJldHVybiBtX2lk
YkN1cnNvci0+a2V5KCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCQW55PiBJREJDdXJzb3JQcm94eTo6
dmFsdWUoKSBjb25zdAoreworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVl
ID0gUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KG1faWRiQ3Vyc29yLT52YWx1ZSgp
KTsKKyAgICByZXR1cm4gSURCQW55OjpjcmVhdGUodmFsdWUuZ2V0KCkpOworfQorCitsb25nIGxv
bmcgSURCQ3Vyc29yUHJveHk6OmNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZGJDdXJz
b3ItPmNvdW50KCk7Cit9CisKK3ZvaWQgSURCQ3Vyc29yUHJveHk6OnVwZGF0ZShQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCit7CisgICAgbV9pZGJDdXJzb3ItPnVwZGF0ZSh2YWx1ZSwgbmV3IFdlYklEQkNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgSURCQ3Vyc29yUHJveHk6OmNvbnRp
bnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+Y29udGludWVGdW5jdGlvbihrZXks
IG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIElEQkN1cnNv
clByb3h5OjpyZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAg
ICBtX2lkYkN1cnNvci0+cmVtb3ZlKG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yUHJv
eHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZTllY2VlMGJmZmFiNmYwZmJmMjI1NTQ3Mjk2YjQ1ODg2M2FiOTNmCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5oCkBAIC0wLDAgKzEsNjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIElEQkN1cnNvclByb3h5X2gKKyNkZWZpbmUgSURCQ3Vyc29yUHJveHlf
aAorCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
REJDdXJzb3JQcm94eSA6IHB1YmxpYyBJREJDdXJzb3IgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQkN1cnNvcj4gY3JlYXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJz
b3I+KTsKKyAgICB2aXJ0dWFsIH5JREJDdXJzb3JQcm94eSgpOworCisgICAgdmlydHVhbCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
S2V5PiBrZXkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQW55PiB2YWx1ZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgbG9uZyBsb25nIGNvdW50KCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFz
c1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKworcHJpdmF0ZToKKyAgICBJ
REJDdXJzb3JQcm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPik7CisKKyAgICBQ
YXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPiBtX2lkYkN1cnNvcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJzb3JQcm94eV9o
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcAppbmRleCBjZWM0
ZWQzMTAwMTE5NWU4ZDU2ZTMwNDBhNjQ4MGU3MDMxYmY1ZjhmLi43NDQ5OWY3OGI3NzRmZTZiMTY3
ZDM4NzgzYzhhMzU5YWJmOTVlMjlhIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
Qk9iamVjdFN0b3JlUHJveHkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0
U3RvcmVQcm94eS5jcHAKQEAgLTI4LDggKzI4LDEwIEBACiAKICNpbmNsdWRlICJET01TdHJpbmdM
aXN0LmgiCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2Uu
aCIKICNpbmNsdWRlICJJREJJbmRleFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tz
SW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCSW5k
ZXguaCIKICNpbmNsdWRlICJXZWJJREJLZXkuaCIKICNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9y
ZS5oIgpAQCAtMTAxLDYgKzEwMywxMSBAQCB2b2lkIElEQk9iamVjdFN0b3JlUHJveHk6OnJlbW92
ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFjawogICAgIG1f
d2ViSURCT2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUsIG5ldyBXZWJJREJDYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcykpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlUHJveHk6Om9wZW5DdXJz
b3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKK3sKKyAgICBtX3dlYklEQk9i
amVjdFN0b3JlLT5vcGVuQ3Vyc29yKHJhbmdlLCBkaXJlY3Rpb24sIG5ldyBXZWJJREJDYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmgKaW5kZXggYjhlNGEwMTk4ZmU5YjQzOThhMjhlOGQ5ZTFjYWIzMDAzMjcw
MzRlZi4uYzZlZjc4NWVmN2QwZjM4ZDY5Y2Q2OWRkZTllMGRhNmM3MmNkOWVmZiAxMDA3NTUKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKQEAgLTU3LDYgKzU3LDggQEAgcHVi
bGljOgogICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSk7
CiAgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlID0gMCwgdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpORVhUKTsKKwogcHJpdmF0ZToKICAgICBJREJP
YmplY3RTdG9yZVByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJPYmplY3RTdG9yZT4pOwog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAppbmRleCAyMWM5
ZWVkYWU5NTM1OGI3N2ViNzA0NDc4MDQ2NzU3NDc5ODY0NjEzLi40Njg3ODljNDA4MGRlYTI0OTEz
MGVmMmRmMWNjNzdjNzU3MTA1ODZlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJJREJDYWxsYmFj
a3NJbXBsLmgiCiAKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJDdXJz
b3JQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZVByb3h5LmgiCiAjaW5jbHVkZSAiSURCSW5kZXhQcm94eS5oIgpAQCAtNjUsNiArNjYs
MTIgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJh
Y2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdl
YktpdDo6V2ViSURCQ3Vyc29yKiBjdXJzb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJDdXJzb3JQcm94eTo6Y3JlYXRlKGN1cnNvcikpOworICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7Cit9CisKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2Vi
SURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nl
c3MoSURCRGF0YWJhc2VQcm94eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGE0ZDUzYjU1YWY0YzY5ODViZmZh
NjhiYTQzYWNlMjAxMGFmMjY3MjQuLjE4MzVjNjBjMmM0NWZkYzIwODFlOTlmNmQ3NDgwZGYxYWU0
OTFkY2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC00
Myw2ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdl
YktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
KTsgLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2Vi
SURCQ3Vyc29yKik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRh
dGFiYXNlKik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYklE
QktleSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJJbmRleCop
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFl
NjkwNzVmZWJmMWEzMjk5Yjk0OTdiNTM1YzE3NWMwYTc0MGVhYQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBs
LmgiCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5o
IgorI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUg
IldlYklEQktleS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYklEQkN1cnNvckltcGw6OldlYklEQkN1cnNvckltcGwoUGFzc1JlZlB0cjxJ
REJDdXJzb3I+IGlkYkN1cnNvcikKKyAgICA6IG1faWRiQ3Vyc29yKGlkYkN1cnNvcikKK3sKK30K
KworV2ViSURCQ3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwoKQoreworfQorCit1bnNpZ25l
ZCBzaG9ydCBXZWJJREJDdXJzb3JJbXBsOjpkaXJlY3Rpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkYkN1cnNvci0+ZGlyZWN0aW9uKCk7Cit9CisKK1dlYklEQktleSBXZWJJREJDdXJzb3JJ
bXBsOjprZXkoKSBjb25zdAoreworICAgIHJldHVybiBXZWJJREJLZXkobV9pZGJDdXJzb3ItPmtl
eSgpKTsKK30KKworV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklEQkN1cnNvckltcGw6OnZh
bHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3ItPnZhbHVlKCktPnNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSgpOworfQorCitsb25nIGxvbmcgV2ViSURCQ3Vyc29ySW1wbDo6Y291bnQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkN1cnNvci0+Y291bnQoKTsKK30KKwordm9pZCBX
ZWJJREJDdXJzb3JJbXBsOjp1cGRhdGUoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2
YWx1ZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MpCit7CisgICAgbV9pZGJDdXJzb3ItPnVw
ZGF0ZSh2YWx1ZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsKK30KKwor
dm9pZCBXZWJJREJDdXJzb3JJbXBsOjpjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYg
a2V5LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+Y29u
dGludWVGdW5jdGlvbihrZXksIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7
CisKK30KKwordm9pZCBXZWJJREJDdXJzb3JJbXBsOjpyZW1vdmUoV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MpCit7CisgICAgbV9pZGJDdXJzb3ItPnJlbW92ZShJREJDYWxsYmFja3NQcm94eTo6
Y3JlYXRlKGNhbGxiYWNrcykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OTkzMmY3ZWQ5NzE4MTMz
ZjI5Njk5YzlmMjE0YzZkMGYyMmQyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJJREJDdXJzb3JJbXBsX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29ySW1wbF9oCisKKyNpbmNs
dWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeyBjbGFzcyBJREJDdXJzb3I7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNl
ZSBjb21tZW50IGluIFdlYkluZGV4ZWRPYmplY3RTdG9yZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2
aWV3IHRoZXNlIGNsYXNzZXMuCitjbGFzcyBXZWJJREJDdXJzb3JJbXBsIDogcHVibGljIFdlYklE
QkN1cnNvciB7CitwdWJsaWM6CisgICAgV2ViSURCQ3Vyc29ySW1wbChXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ3Vyc29yPiBpZGJDdXJzb3IpOworICAgIHZpcnR1YWwgfldlYklEQkN1cnNv
ckltcGwoKTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29uc3Q7
CisgICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUgdmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBj
b3VudCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29uc3QgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJiwgV2ViSURCQ2FsbGJhY2tzKik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRp
bnVlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tzKik7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZShXZWJJREJDYWxsYmFja3MqKTsKKworIHByaXZhdGU6CisgICAgV1RG
OjpSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yPiBtX2lkYkN1cnNvcjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURCQ3Vyc29ySW1wbF9oCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYjJmODk0NzMxYjk5MTY1NmQ4
MWJmNDdlZGI3NjI5MzQyZDhmNWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQktleVJhbmdlLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCisKKyNpbmNsdWRlICJJREJL
ZXkuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gRklYTUU6IFJlbW92ZS4KK1dlYklEQktleVJhbmdl
OjpXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYg
cmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorICAgIDogbV9wcml2YXRlKFdlYkNvcmU6OklE
QktleVJhbmdlOjpjcmVhdGUobGVmdCwgcmlnaHQsIGZsYWdzKSkKK3sKK30KKworV2ViSURCS2V5
UmFuZ2U6OldlYklEQktleVJhbmdlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJL
ZXlSYW5nZT4mIGlkYktleVJhbmdlKQorICAgIDogbV9wcml2YXRlKGlkYktleVJhbmdlKQorewor
fQorCitXZWJJREJLZXlSYW5nZTo6fldlYklEQktleVJhbmdlKCkKK3sKKyAgICBtX3ByaXZhdGUu
cmVzZXQoKTsKK30KKworV2ViSURCS2V5IFdlYklEQktleVJhbmdlOjpsZWZ0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcml2YXRlLT5sZWZ0KCk7Cit9CisKK1dlYklEQktleSBXZWJJREJLZXlS
YW5nZTo6cmlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnJpZ2h0KCk7Cit9
CisKK3Vuc2lnbmVkIHNob3J0IFdlYklEQktleVJhbmdlOjpmbGFncygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+ZmxhZ3MoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKaW5kZXggZDhl
OThkYjI4YTQ4YzA4MmUwZTM2ZjYxMDEwYTk4MDEyMzY4OTUwNy4uOWM1MmU3NDhiYTcwNDBkYzMw
NzI1NDZjOWQ0NmU5ZmUxMDQxZGIzMCAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmNwcApAQCAtMjgsOSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgorI2luY2x1ZGUgIklE
QktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJXZWJJ
REJJbmRleEltcGwuaCIKICNpbmNsdWRlICJXZWJJREJLZXkuaCIKKyNpbmNsdWRlICJXZWJJREJL
ZXlSYW5nZS5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC05Niw2ICs5OCwxMSBAQCB2b2lkIFdlYklEQk9i
amVjdFN0b3JlSW1wbDo6cmVtb3ZlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJD
YWxsYmFja3MqCiAgICAgbV9vYmplY3RTdG9yZS0+cmVtb3ZlSW5kZXgobmFtZSwgSURCQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsKIH0KIAordm9pZCBXZWJJREJPYmplY3RTdG9y
ZUltcGw6Om9wZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKQoreworICAgIG1f
b2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFj
a3MpLCBJREJLZXlSYW5nZTo6Y3JlYXRlKGtleVJhbmdlLmxlZnQoKSwga2V5UmFuZ2UucmlnaHQo
KSwga2V5UmFuZ2UuZmxhZ3MoKSksIGRpcmVjdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKaW5kZXggNDA2NGI3Zjg4ODZiMzg0Nzcz
MTJiMTkyMjRmZjBlNGI1YTNhNWQ3MC4uODhiNGU5YWMyMzY5ZmFjMjk3MWI4Yzc5ODVlYTI5MDlk
OWJhZTg2YSAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9y
ZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5o
CkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBXZWJJREJJbmRleCogaW5kZXgoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MpOwogCisgICAgdm9pZCBvcGVuQ3Vyc29y
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJD
YWxsYmFja3MqKTsKKwogIHByaXZhdGU6CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmU+IG1fb2JqZWN0U3RvcmU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62935</attachid>
            <date>2010-07-29 04:05:05 -0700</date>
            <delta_ts>2010-08-04 10:14:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100729120502.patch</filename>
            <type>text/plain</type>
            <size>96757</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ODgyNDMyMWRjOWE2MDNmMzA2MTQzMGE3YTdmMzYwNzJiYWQ5NmZkLi5hZmJhYTUx
NDJkNjk1ZDQ5M2E5NTAzOTljMDc2ZmFkODNiZmUyMTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDctMTkgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2lkYi1vcGVuY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvaWRiLW9wZW5jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvc2NyaXB0LXRlc3RzL2lkYi1vcGVuY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAg
KGN1cnNvclN1Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChw
b3B1bGF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAg
KHRlc3QpOgorCiAyMDEwLTA3LTI3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDc0MzZiZTlhMzk1Y2Q0OWYzNjRmZDRiYzJiMmM2MTliM2VlYTdmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3It
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjYgQEAKK1Rlc3QgSW5kZXhlZERCJ3Mgb3BlbkN1cnNv
ci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQi5vcGVuKCduYW1l
JywgJ2Rlc2NyaXB0aW9uJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKK1BB
U1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gcmVzdWx0IGlz
IHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBzaG91
bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1bHQn
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdt
ZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2VzcycgaW4g
ZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3Rh
dGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRl
IGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2RiID0gZXZlbnQucmVzdWx0CitkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgndGVzdCcpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNT
ICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0
cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxk
IGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBp
biBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVz
c2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRl
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBp
cyBldmVudC50YXJnZXQuRE9ORQorCitvYmplY3RTdG9yZSA9IGV2ZW50LnJlc3VsdAorb2JqZWN0
U3RvcmUuYWRkKCd2YWx1ZScsICdrZXknKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMg
dHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2
ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworT3BlbmluZyBjdXJzb3IKK0N1cnNvciBvcGVu
ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFT
UyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMg
dHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3Vs
ZCBmaXJlIHNob3J0bHkuLi4KKworUEFTUyBldmVudC5yZXN1bHQua2V5IGlzICdrZXknCitQQVNT
IGV2ZW50LnJlc3VsdC52YWx1ZSBpcyAndmFsdWUnCitQQVNTIGV2ZW50LnJlc3VsdC5jb3VudCBp
cyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY2MDM2NWQ1ZDA2ZmQ5NGQ1Mzg1YTgxYjJmYjg5YmJlYmRhNTIwOWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb3Blbi1jdXJzb3IuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3YTVlYmJmNDM5ODM3MzM3NzJjYzk2NTgyZjc4ZmE4ODE3NWE5ZWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvb3Blbi1jdXJz
b3IuanMKQEAgLTAsMCArMSw2NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mgb3Bl
bkN1cnNvci4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBjdXJzb3JTdWNjZXNz
KCkKK3sKKyAgICBkZWJ1ZygiQ3Vyc29yIG9wZW5lZCBzdWNjZXNzZnVsbHkuIikKKyAgICB2ZXJp
ZnlSZXN1bHQocmVzdWx0KTsKKyAgICAvLyBGSVhNRTogY2hlY2sgdGhhdCB3ZSBjYW4gaXRlcmF0
ZSB0aGUgY3Vyc29yLgorICAgIHNob3VsZEJlKCJldmVudC5yZXN1bHQua2V5IiwgIidrZXknIik7
CisgICAgc2hvdWxkQmUoImV2ZW50LnJlc3VsdC52YWx1ZSIsICIndmFsdWUnIik7CisgICAgc2hv
dWxkQmUoImV2ZW50LnJlc3VsdC5jb3VudCIsICIxIik7CisgICAgZG9uZSgpOworfQorCitmdW5j
dGlvbiBkYXRhQWRkZWRTdWNjZXNzKCkKK3sKKyAgICBvcGVuQ3Vyc29yKG9iamVjdFN0b3JlKTsK
K30KKworZnVuY3Rpb24gcG9wdWxhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZSkKK3sKKyAgICBy
ZXN1bHQgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoJ3ZhbHVlJywgJ2tleScpIik7Cisg
ICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRhdGFBZGRl
ZFN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gb3BlbkN1cnNvcihvYmplY3RTdG9yZSkKK3sKKyAgICBkZWJ1ZygiT3Bl
bmluZyBjdXJzb3IiKTsKKyAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5sZWZ0Qm91bmQo
ImtleSIpOworICAgIHZhciBjdXJzb3IgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKGtleVJhbmdl
KTsKKyAgICBjdXJzb3Iub25zdWNjZXNzID0gY3Vyc29yU3VjY2VzczsKK30KKworZnVuY3Rpb24g
Y3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZl
bnQpOworICAgIHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZXZl
bnQucmVzdWx0Iik7CisgICAgcG9wdWxhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZSk7Cit9CisK
K2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQp
OworICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQucmVzdWx0Iik7CisgICAgcmVz
dWx0ID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOworICAgIHZl
cmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBjcmVhdGVPYmplY3RT
dG9yZVN1Y2Nlc3M7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ25hbWUnLCAnZGVzY3JpcHRpb24nKSIpOworICAgIHZlcmlmeVJlc3VsdChy
ZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXN1bHQu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCit0ZXN0KCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5n
cy5tawppbmRleCBmNmFhZDBkODRmYWIxYjA5Yjc3ZTBiMWEyZmZkZWU4YWE2Y2UyY2ZkLi5hZjY3
MjI3ZjgwMjQ0ZWU4YzE1ZDcyZDE0M2RhYmZmYzg4YjBkZmMzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVy
aXZlZC5qc2NiaW5kaW5ncy5tawpAQCAtMzYxLDYgKzM2MSw4IEBAICQocGF0c3Vic3QgJS5oLCUu
Y3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS8lLmNwcCA6ICQoaW50ZXJtZWRp
YXRlcykvCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9zdG9yYWdlL0pTSURCQW55LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lE
QkN1cnNvci5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJzb3JSZXF1
ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlRXJyb3Iu
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VFeGNlcHRpb24u
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VSZXF1ZXN0Lmgg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tayBiL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKaW5kZXggY2ZhOGRjOTFjYzE3MjZm
ZWY4NGEzYTcyM2NmYjhhY2FmMzM4NjY2Yy4uYzRjMGIzYTRkNjIwNGEzODY3YWJjOTRjM2FjY2U5
MjViNjA5OTNkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5n
cy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0zNDIs
NiArMzQyLDggQEAgJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykKICMgSW5kZXhlZCBEYXRhYmFzZQog
R0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCQW55LmggXAorICAg
ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJDdXJzb3IuaCBcCisgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOElEQkN1cnNvclJlcXVlc3QuaCBcCiAgICAgJChpbnRlcm1lZGlh
dGVzKS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXJyb3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAogICAgICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvVjhJREJEYXRhYmFzZVJlcXVlc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggY2UxMDc2OWVjMDZhYWZjZDQw
ODAyZmZkYWJlNTJmN2Y0NWFiM2QwZC4uM2M3M2FmZTQwMWMxZjVjZWFiYjM2MWI3ZGUxMDJlZDc2
ZjViYTU0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNvcmUvQW5k
cm9pZC5tawpAQCAtNzQxLDYgKzc0MSw5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NS
Q19GSUxFUykgXAogCXN0b3JhZ2UvRGF0YWJhc2VUaHJlYWQuY3BwIFwKIAlzdG9yYWdlL0RhdGFi
YXNlVHJhY2tlci5jcHAgXAogCXN0b3JhZ2UvSURCQW55LmNwcCBcCisJc3RvcmFnZS9JREJDdXJz
b3IuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNvckltcGwuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNv
clJlcXVlc3QuY3BwIFwKIAlzdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAgXAogCXN0b3JhZ2Uv
SURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBcCiAJc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBhMGY1MTIzOGE2YzE3NzAyYmNjNGU1OTgwY2E2YTI5MmVhNTAzMDI2Li5mNzNhZmY4
ZTkyODM1YTA4YzEwZWVhMjU4M2M2MmFlNzE3N2NlZmRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMzMiw2ICszMzIs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBzdG9yYWdlL0RhdGFiYXNlQ2FsbGJhY2su
aWRsCiAgICAgc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCiAgICAgc3RvcmFnZS9JREJBbnkuaWRs
CisgICAgc3RvcmFnZS9JREJDdXJzb3IuaWRsCisgICAgc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0
LmlkbAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwKICAgICBzdG9yYWdlL0lEQkRh
dGFiYXNlRXhjZXB0aW9uLmlkbAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbApA
QCAtMTQzMiw2ICsxNDM0LDkgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHN0b3JhZ2UvRGF0
YWJhc2VUaHJlYWQuY3BwCiAgICAgc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCiAgICAgc3Rv
cmFnZS9JREJBbnkuY3BwCisgICAgc3RvcmFnZS9JREJDdXJzb3IuY3BwCisgICAgc3RvcmFnZS9J
REJDdXJzb3JJbXBsLmNwcAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5jcHAKICAgICBz
dG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVz
dC5jcHAKICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1OTZhNGQwMjE4MGZhOGZhM2I0
ZTAzOWFmOWY1MGY4NjlkNmQxZTcuLjE5N2VjZjM5YzhhYmU4MjY4MWQ1YmExYmVmYjBhMTk3NzI5
MDY2YzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMDctMTkgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEluaXRpYWwgYmluZGluZ3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAg
ICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAg
ICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLmRl
cml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCQW55LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6
aWRiQ3Vyc29yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OnNldCk6CisgICAg
ICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6KToKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vy
c29yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjopOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ3Vyc29yOjp+SURCQ3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1
cnNvci5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29ySW1wbC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29ySW1wbDo6SURCQ3Vyc29ySW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbXBsOjp+SURCQ3Vyc29ySW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JJbXBsOjpkaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29ySW1wbDo6a2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckltcGw6OnZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckltcGw6OmNvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvckltcGw6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JJbXBsOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNv
ckltcGw6OnJlbW92ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JJbXBsLmg6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6SURCQ3Vyc29yUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JSZXF1ZXN0Ojp+SURCQ3Vyc29yUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJDdXJzb3JSZXF1ZXN0OjprZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q3Vyc29yUmVxdWVzdDo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVz
dDo6Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6dXBkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclJlcXVlc3Q6OmNvbnRpbnVlRnVuY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUmVxdWVzdDo6cmVtb3ZlKToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yUmVxdWVz
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OklEQktleVJhbmdlKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQktleVJhbmdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpsZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAgICogc3RvcmFnZS9JREJLZXlSYW5nZS5pZGw6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
SW1wbDo6b3BlbkN1cnNvcik6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwu
aDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZVJlcXVlc3Q6OnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6
OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6
cmVtb3ZlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpv
cGVuQ3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBz
dG9yYWdlL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25T
dWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnRpbWVyRmlyZWQpOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0OjptYWtlU2luZ2xlS2V5UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5kZXhlZERhdGFi
YXNlUmVxdWVzdDo6bWFrZUxlZnRCb3VuZEtleVJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
ZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om1ha2VSaWdodEJvdW5kS2V5UmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6bWFrZUJvdW5kS2V5UmFuZ2UpOgorICAg
ICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDctMjcgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZl
bCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBlYTZlNDdlMDRmNTgwNzI3OTEzYmIyMTZmODll
NTg5OGZlYWZkNjYwLi4wMzI1ZmI2YWVkMGEyMjU0OWVhMWVkYTI2OWRjODcyZDlkMDI0NmU1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcApAQCAtMTc2LDYgKzE3Niw4IEBACiAjaW5jbHVkZSAiSlNIVE1MVUxpc3RF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IkpTSURCQW55LmNwcCIKKyNpbmNsdWRlICJKU0lEQkN1cnNvci5jcHAiCisjaW5jbHVkZSAiSlNJ
REJDdXJzb3JSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIgog
I2luY2x1ZGUgIkpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0
YWJhc2VSZXF1ZXN0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzYjBmMzhkMTRjZWI1NTE5YzQ1
Yjc0ZDc2NWFkNDhmNDQ2NWJjZDJhLi40ZTA2OTY4OWZmZDdhMDQ2MjY1ZDBkOTEwN2RiNTFmNmQz
MTk5NzgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTksNiArMjE5LDggQEAgRE9NX0NMQVNTRVMg
PSBcCiAgICAgSFRNTFZpZGVvRWxlbWVudCBcCiAgICAgSGlzdG9yeSBcCiAgICAgSURCQW55IFwK
KyAgICBJREJDdXJzb3IgXAorICAgIElEQkN1cnNvclJlcXVlc3QgXAogICAgIElEQkRhdGFiYXNl
RXJyb3IgXAogICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uIFwKICAgICBJREJEYXRhYmFzZVJlcXVl
c3QgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggODM4OWVkNjBkNmEyY2U5NDQ0N2RmNDAxYTQzMWU4NDdlNTM3MzM1MC4u
MTZkMTkxNDNmNzY2MjI0ZDA1OTIyOTVkZmYwYjYzZjlmMjA1NDNlMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yODE2
LDYgKzI4MTYsOCBAQCBlbmRpZiAjIEVOQUJMRV9FVkVOVFNPVVJDRQogaWYgRU5BQkxFX0lOREVY
RURfREFUQUJBU0UKIEZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0x
CiAKKyAgV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICBXZWJDb3JlL3N0b3JhZ2Uv
SURCQ3Vyc29yUmVxdWVzdC5pZGwgXAogd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLURFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRT0xCiAKQEAgLTI4NDksNyArMjg1MSwxMSBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2Uv
SURCQW55LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaCBcCi0JV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlLmggXAorICBXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmNwcCBc
CisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJD
dXJzb3JSZXF1ZXN0LmNwcCBcCisgIFdlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0Lmgg
XAorICBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlSW1wbC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBc
CiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDY5OGUzMDI1NmJi
N2ZiZGU3MzI2NjBiMWFhZTA2YThhMzI2NGE4ZjIuLjUzNWQ4YWRkMWM5YmZmNjhmM2YxYWI2ZDMw
ODdkNDFjNzM4MDk1YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzEsNiArMjMxLDggQEAKICAgICAgICAgICAgICdzdG9y
YWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0RhdGFiYXNl
U3luYy5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmlkbCcsCisgICAgICAgICAg
ICAnc3RvcmFnZS9JREJDdXJzb3IuaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkN1cnNv
clJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRs
JywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsJywKQEAgLTM0NzEsNiArMzQ3
MywxMCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmNwcCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJBbnkuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDYWxsYmFja3MuaCcs
CisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCcsCisgICAgICAgICAgICAn
c3RvcmFnZS9JREJDdXJzb3IuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JSZXF1
ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJEYXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNl
cHRpb24uaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJD
b3JlLnByaQppbmRleCBlZjg3YTQ1NWE5ZWU3NTE4YWU4MTZiMmViZjk2NTA3NDhkY2Q4MmYwLi4x
N2ZmMmFiYTdiZjg2OGQwMzZhZDA2NjIzMTVkYTQ3NDNmMTBjZWU1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTQ4Myw2ICs0ODMs
OCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHN0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5pZGwg
XAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbCBcCiAgICAgc3RvcmFnZS9JREJBbnkuaWRs
IFwKKyAgICBzdG9yYWdlL0lEQkN1cnNvci5pZGwgXAorICAgIHN0b3JhZ2UvSURCQ3Vyc29yUmVx
dWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwgXAogICAgIHN0b3Jh
Z2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsIFwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVx
dWVzdC5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggYjdmMTUyZTJlMzM5ODdmNDM1NDEwYzlmYWQyYmVmYTQ0Y2FmMDU3OC4u
MjAyNzBiYTk4NjA4ODU3NjM1NDViMmUzMGRlODQwMmZhZDNhYjk0YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yNDE4LDYgKzI0
MTgsOSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAg
ICAgICAgIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaCBcCiAgICAgICAgIHN0b3Jh
Z2UvSURCQW55LmggXAogICAgICAgICBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKKyAgICAgICAg
c3RvcmFnZS9JREJDdXJzb3IuaCBcCisgICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oIFwg
ICAgICAgIAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaCBcCiAgICAgICAgIHN0
b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgg
XAogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCBcCkBAIC0yNDQ0LDYgKzI0NDcs
OSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTSURCS2V5Q3VzdG9tLmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCQW55LmNwcCBcCisgICAg
ICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29ySW1w
bC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuY3BwIFwKICAgICAgICAg
c3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFz
ZVJlcXVlc3QuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxNjdiYThjYTYxOWRkNmM0ZjM0ZjFi
MmNjM2ExMWZhYjUzYmY2ZGNmLi41NDNkYzhhMWE5YjNjMjYxNzk1MTJiNDYwZjc1YzhhNmY4N2E0
ODdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ0MjQ3LDYgKzQ0
MjQ3LDIxNCBAQAogCQkJCQkJLz4NCiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwv
RmlsZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvci5j
cHAiDQorICAgICAgICAgID4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAg
ICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAg
ICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAg
IDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAg
ICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0K
KyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0K
KyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3Vy
YXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAgICAgICAg
ICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAg
PFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAg
ICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVD
b25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisg
ICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAg
ICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
ICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMy
Ig0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4N
CisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAg
ICAgICAgPC9GaWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURC
Q3Vyc29yLmgiDQorICAgICAgICAgID4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQor
ICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAg
ICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0K
KyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAg
ICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAg
ICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlv
bg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAg
IEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8
VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAg
ICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNv
bmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAg
ICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAg
ICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAg
PEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4z
MiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+
DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisg
ICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxs
fFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAg
ICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKyAgICAgICAgPC9GaWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTSURCQ3Vyc29yUmVxdWVzdC5jcHAiDQorICAgICAgICAgID4NCisgICAgICAgICAgPEZpbGVD
b25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAgICAg
ICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAg
IDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAg
ICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxl
Q29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAg
ICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAg
ICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAg
ICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxG
aWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMy
Ig0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4N
CisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWly
b3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAg
ICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAg
TmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAg
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9GaWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAg
ICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yUmVxdWVzdC5oIg0KKyAgICAgICAgICA+DQorICAg
ICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdpbjMy
Ig0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4N
CisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAg
ID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19J
bnRlcm5hbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisg
ICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAg
ICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAg
ICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0K
KyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisg
ICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgIDwvRmlsZT4NCiAJCQkJPEZp
bGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNIVE1MT3B0aW9uc0NvbGxl
Y3Rpb25DdXN0b20uY3BwIg0KIAkJCQkJPg0KQEAgLTUwMDkyLDYgKzUwMzAwLDMwIEBACiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkNhbGxiYWNrcy5oIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURC
Q3Vyc29yLmNwcCINCisgICAgICAgID4NCisgICAgICA8L0ZpbGU+DQorICAgICAgPEZpbGUNCisg
ICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3IuaCINCisgICAgICAgID4N
CisgICAgICA8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxJREJDdXJzb3JJbXBsLmNwcCINCisgICAgICAgID4NCisgICAgICA8L0ZpbGU+DQor
ICAgICAgPEZpbGUNCisgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3JJ
bXBsLmgiDQorICAgICAgICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAg
ICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yUmVxdWVzdC5jcHAiDQorICAgICAg
ICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yUmVxdWVzdC5oIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmls
ZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2Uu
aCINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggN2FmNjM4Nzg4MmVmNDg0MjkyZWY0NjkwZWEwMTYzOGYxY2ZkNzE1Mi4uYWUzZjVmN2I0ODI1
Yzk5ZGY2YzQ3MjNmZjk1MjU3ODdkNzVlMDg4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MDYsNiArMTQwNiwxNSBAQAogCQk3QUVEM0UwNjBGQkIx
RUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNw
ZWN0b3JGcm9udGVuZC5oICovOyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2Ny
aXB0QnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUZENEZGNDEx
MzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAwMzVCODgzIC8q
IFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk4MUJFMjA5NzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5MjEx
RjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggKi87IH07CisJCTgxQkUyMDk4MTFGNEFCOEQw
MDkxNURGQSAvKiBJREJDdXJzb3JJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JJ
bXBsLmNwcCAqLzsgfTsKKwkJODFCRTIwOTkxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvcklt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUy
MDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JJbXBsLmggKi87IH07CisJCTgxQkUyMDlB
MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDk1MTFGNEFCOEQwMDkxNURGQSAv
KiBJREJDdXJzb3JSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJODFCRTIwOUIxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvclJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgxQkUyMDk2MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JSZXF1ZXN0
LmggKi87IH07CisJCTgxQkUyMEQyMTFGNEJDMzIwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjBBNzEx
RjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwICovOyB9OworCQk4MUJFMjBEMzExRjRC
QzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE4MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNv
ci5oICovOyB9OworCQk4MUJFMjBENDExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgx
QkUyMEE5MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvclJlcXVlc3QuY3BwICovOyB9Owor
CQk4MUJFMjBENTExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjBBQTExRjRCNjZG
MDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmggKi87IH07CiAJCTgyQjY1ODk4MTE4OUUz
OTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyQjY1ODk5
MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi87IH07CiAJCTg0MUZE
QzI2MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFGREMyNDExNzhDOUJF
MDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovOyB9OwpAQCAtNzE4OSw2
ICs3MTk4LDE3IEBACiAJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9u
dGVuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEE4QTExMzFDMjc2MDAzNUI4
ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkQ0
RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTIxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTMxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNv
ckltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29y
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMDk0MTFGNEFCOEQw
MDkxNURGQSAvKiBJREJDdXJzb3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElEQkN1cnNvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIw
OTUxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvclJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMDk2MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JS
ZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvclJlcXVl
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOUMxMUY0QUJCRDAwOTE1
REZBIC8qIElEQkN1cnNvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCQ3Vyc29yLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOUQxMUY0QUJCRDAwOTE1REZB
IC8qIElEQkN1cnNvclJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQkN1cnNv
clJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUJFMjBBNzExRjRC
NjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNJREJDdXJzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwQTkxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yUmVxdWVzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkN1cnNvclJlcXVl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUJFMjBBQTExRjRCNjZGMDA5
MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSURCQ3Vyc29yUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3Bl
Y3RvckNTU1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxRkRDMjQx
MTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzE5LDYgKzExMzM5LDEzIEBACiAJCQkJ
QzU4NUE2OTkxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkFueS5oICovLAogCQkJCUM1ODVBNjlBMTFE
NEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaWRsICovLAogCQkJCUM1ODVBNjlCMTFENEZCM0QwMDRD
M0U0QiAvKiBJREJDYWxsYmFja3MuaCAqLywKKwkJCQk4MUJFMjA5QzExRjRBQkJEMDA5MTVERkEg
LyogSURCQ3Vyc29yLmlkbCAqLywKKwkJCQk4MUJFMjA5RDExRjRBQkJEMDA5MTVERkEgLyogSURC
Q3Vyc29yUmVxdWVzdC5pZGwgKi8sCisJCQkJODFCRTIwOTIxMUY0QUI4RDAwOTE1REZBIC8qIElE
QkN1cnNvci5oICovLAorCQkJCTgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JJ
bXBsLmNwcCAqLywKKwkJCQk4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29ySW1w
bC5oICovLAorCQkJCTgxQkUyMDk1MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JSZXF1ZXN0
LmNwcCAqLywKKwkJCQk4MUJFMjA5NjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yUmVxdWVz
dC5oICovLAogCQkJCUM1ODVBNjlDMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZS5oICov
LAogCQkJCUM1ODVBNjlEMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZUVycm9yLmggKi8s
CiAJCQkJQzU4NUE2OUUxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlRXJyb3IuaWRsICov
LApAQCAtMTQ3NTksNiArMTQ3ODYsMTAgQEAKIAkJCQlCNThDRUI2NzExOTEzNjA3MDAyQTY3OTAg
LyogSlNEYXRhYmFzZVN5bmMuaCAqLywKIAkJCQlDNTg1QTY2NDExRDRGQjA3MDA0QzNFNEIgLyog
SlNJREJBbnkuY3BwICovLAogCQkJCUM1ODVBNjY1MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkFu
eS5oICovLAorCQkJCTgxQkUyMEE3MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5jcHAg
Ki8sCisJCQkJODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi8sCisJ
CQkJODFCRTIwQTkxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yUmVxdWVzdC5jcHAgKi8s
CisJCQkJODFCRTIwQUExMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yUmVxdWVzdC5oICov
LAogCQkJCUM1ODVBNjY2MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlRXJyb3IuY3Bw
ICovLAogCQkJCUM1ODVBNjY3MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlRXJyb3Iu
aCAqLywKIAkJCQlDNTg1QTY2ODExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5jcHAgKi8sCkBAIC0xOTg3MSw2ICsxOTkwMiwxMSBAQAogCQkJCTA4NEQwRTNEMTFGNTgx
NjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NEQwRTNG
MTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXNDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg1QjA1QzMxMUZBRTE2QzAwNEQ2NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MUJFMjA5NzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MUJFMjA5OTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vy
c29ySW1wbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFCRTIwOUIxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvclJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQkUyMEQzMTFGNEJDMzIw
MDkxNURGQSAvKiBKU0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFCRTIwRDUxMUY0
QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MjI3MCw2ICsyMjMwNiwxMCBAQAogCQkJCTA4NEQwRTNFMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdS
ZXNvdXJjZXNDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODZBNDAwNjExRjZENkI3MDAy
Q0VDNTMgLyogUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDg1QjA1QzIxMUZBRTE2QzAwNEQ2NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgxQkUyMDk4MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJz
b3JJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgxQkUyMDlBMTFGNEFCOEQwMDkxNURGQSAv
KiBJREJDdXJzb3JSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgxQkUyMEQyMTFGNEJD
MzIwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MUJFMjBE
NDExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3JSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCmluZGV4
IGRlZjExMjA5MGVmMTk5YTEzNjI4MWQ3ZTliMTJmMWYwZTc1ZjMxOGIuLmMzODMyM2Q5ZjEwYTMx
NmVlOWI5MDJhYTZiYjQyM2Q1Y2U3OGFiOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJWOElE
QkFueS5oIgogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAi
VjhJREJDdXJzb3JSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJEYXRhYmFzZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJWOElEQkluZGV4UmVxdWVzdC5oIgogI2luY2x1ZGUgIlY4SURCS2V5LmgiCkBA
IC01MCw2ICs1MSw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KElEQkFueSogaW1wbCkK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICBjYXNlIElEQkFueTo6TnVsbFR5
cGU6CiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAgIGNhc2UgSURCQW55OjpJREJDdXJz
b3JSZXF1ZXN0VHlwZToKKyAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiQ3Vyc29yUmVxdWVz
dCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAgICAg
cmV0dXJuIHRvVjgoaW1wbC0+aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55
OjpJREJJbmRleFJlcXVlc3RUeXBlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFu
eS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcAppbmRleCA5YTE4OTgwNTQ5ZjE5OGM2
NzIyNzhjZTA2NDk1Mzk3M2MzNDc3YjZlLi41MDY1NWNiNzkwNWEzMDY1MDc2MDU0OTBiZmI2ZmU4
NTYwYTQxZWJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcAorKysgYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJDdXJzb3JSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCSW5kZXhSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCkBAIC01MCw2ICs1MSwxMiBAQCBJ
REJBbnk6On5JREJBbnkoKQogewogfQogCitQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVlc3Q+IElE
QkFueTo6aWRiQ3Vyc29yUmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJDdXJz
b3JSZXF1ZXN0VHlwZSk7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yUmVxdWVzdDsKK30KKwogUGFz
c1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IElEQkFueTo6aWRiRGF0YWJhc2VSZXF1ZXN0KCkK
IHsKICAgICBBU1NFUlQobV90eXBlID09IElEQkRhdGFiYXNlUmVxdWVzdFR5cGUpOwpAQCAtOTIs
NiArOTksMTMgQEAgdm9pZCBJREJBbnk6OnNldCgpCiAgICAgbV90eXBlID0gTnVsbFR5cGU7CiB9
CiAKK3ZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiB2YWx1ZSkK
K3sKKyAgICBBU1NFUlQobV90eXBlID09IFVuZGVmaW5lZFR5cGUpOworICAgIG1fdHlwZSA9IElE
QkN1cnNvclJlcXVlc3RUeXBlOworICAgIG1faWRiQ3Vyc29yUmVxdWVzdCA9IHZhbHVlOworfQor
CiB2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiB2YWx1ZSkK
IHsKICAgICBBU1NFUlQobV90eXBlID09IFVuZGVmaW5lZFR5cGUpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQkFueS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCmluZGV4IDc3
YmJhN2NjOWE1MzIwN2M5NmJhZGIwYWE3ZDBlN2M2NTFkZTFkODguLjdjZGIzNTIxYjU4ZmIzZDNm
NGJjZjk2NGFkYjhjYThhYTY0ODJiMzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJB
bnkuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKQEAgLTM0LDYgKzM0LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJREJDdXJzb3JSZXF1ZXN0OwogY2xhc3MgSURC
RGF0YWJhc2VSZXF1ZXN0OwogY2xhc3MgSURCSW5kZXhSZXF1ZXN0OwogY2xhc3MgSURCS2V5OwpA
QCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKICAgICAgICAgVW5kZWZp
bmVkVHlwZSA9IDAsCiAgICAgICAgIE51bGxUeXBlLAorICAgICAgICBJREJDdXJzb3JSZXF1ZXN0
VHlwZSwKICAgICAgICAgSURCRGF0YWJhc2VSZXF1ZXN0VHlwZSwKICAgICAgICAgSURCSW5kZXhS
ZXF1ZXN0VHlwZSwKICAgICAgICAgSURCS2V5VHlwZSwKQEAgLTY2LDYgKzY4LDcgQEAgcHVibGlj
OgogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgLy8gVXNl
IHR5cGUoKSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSBvZiB0aGVzZSB5b3UncmUgYWxsb3dlZCB0
byBjYWxsLgorICAgIFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVzdD4gaWRiQ3Vyc29yUmVxdWVz
dCgpOwogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBpZGJEYXRhYmFzZVJlcXVl
c3QoKTsKICAgICBQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gaWRiSW5kZXhSZXF1ZXN0KCk7
CiAgICAgUGFzc1JlZlB0cjxJREJLZXk+IGlkYktleSgpOwpAQCAtNzUsNiArNzgsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBTZXQgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuCiAgICAgdm9pZCBzZXQo
KTsgLy8gRm9yICJudWxsIi4KKyAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkN1cnNvclJlcXVl
c3Q+KTsKICAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4pOwogICAg
IHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFz
c1JlZlB0cjxJREJLZXk+KTsKQEAgLTg4LDYgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1f
dHlwZTsKIAogICAgIC8vIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGV2ZXIgYmUg
aW4gdXNlIGF0IGFueSBnaXZlbiB0aW1lLgorICAgIFJlZlB0cjxJREJDdXJzb3JSZXF1ZXN0PiBt
X2lkYkN1cnNvclJlcXVlc3Q7CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gbV9pZGJE
YXRhYmFzZVJlcXVlc3Q7CiAgICAgUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gbV9pZGJJbmRleFJl
cXVlc3Q7CiAgICAgUmVmUHRyPElEQktleT4gbV9pZGJLZXk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgK
aW5kZXggMzdmZGM0NmUwOTljZWM2NTMwOTRmYTEyNjk4ODNlM2E2OThmMDk5ZC4uYTYzZTI1NTJl
MTE1MDVkOWVmMGZhMDNlNjJkODBhZWU1MDQ5YjA1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9y
YWdlL0lEQkNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaApA
QCAtMjksNiArMjksNyBAQAogI2lmbmRlZiBJREJDYWxsYmFja3NfaAogI2RlZmluZSBJREJDYWxs
YmFja3NfaAogCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCSW5kZXguaCIK
QEAgLTQ3LDYgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoKSA9IDA7IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkN1cnNvcj4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkluZGV4PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJLZXk+KSA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJlMDRiNGNjZmFk
YTkyZDQzNjBlMTYyNGI2Zjk5NTBmMTIyMmZiNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9JREJDdXJzb3IuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJD
dXJzb3JfaAorI2RlZmluZSBJREJDdXJzb3JfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCQW55OworY2xhc3MgSURC
Q2FsbGJhY2tzOworY2xhc3MgSURCS2V5OworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwor
CitjbGFzcyBJREJDdXJzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJDdXJzb3I+IHsKK3B1Ymxp
YzoKKyAgICAvLyBLZWVwIGluIHN5bmMgd2l0aCB3aGF0J3MgaW4gdGhlIC5pZGwgZmlsZS4KKyAg
ICBlbnVtIERpcmVjdGlvbiB7CisgICAgICAgIE5FWFQgPSAwLAorICAgICAgICBORVhUX05PX0RV
UExJQ0FURSA9IDEsCisgICAgICAgIFBSRVYgPSAyLAorICAgICAgICBQUkVWX05PX0RVUExJQ0FU
RSA9IDMsCisgICAgfTsKKworICAgIHZpcnR1YWwgfklEQkN1cnNvcigpIHsgfQorCisgICAgdmly
dHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJBbnk+IHZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGNvdW50
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgorCisjZW5kaWYgLy8gSURCQ3Vyc29yX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJDdXJzb3IuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzNkMDA5ZWExZjU1MWFiMGE3YzAxNmZkNTM0ZTVmMzU1ZTk5ZTFhNgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25h
bD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJDdXJzb3IgeworICAgICAgICAvLyBLZWVwIGlu
IHN5bmMgd2l0aCB3aGF0J3MgaW4gdGhlIC5oIGZpbGUuCisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5FWFQgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVhUX05PX0RV
UExJQ0FURSA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBSRVYgPSAyOworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQUkVWX05PX0RVUExJQ0FURSA9IDM7CisgICAgfTsK
K30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcCBiL1dlYkNv
cmUvc3RvcmFnZS9JREJDdXJzb3JJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWQzYjM3NTk0NTI5NDcx
MjRmN2ExYmZhMmE0ZmMyZWY4MWJmNWU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQkN1cnNvckltcGwuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29ySW1wbC5oIgorCisjaW5jbHVkZSAiSURCQW55
LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIK
KyNpbmNsdWRlICJJREJPYmplY3RTdG9yZUltcGwuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0lEQkN1cnNvckltcGw6OklEQkN1cnNvckltcGwoUGFzc1JlZlB0cjxJREJP
YmplY3RTdG9yZUltcGw+IGlkYk9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBr
ZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQktleT4ga2V5
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIGludCBjb3VudCkKKyAg
ICA6IG1faWRiT2JqZWN0U3RvcmUoaWRiT2JqZWN0U3RvcmUpCisgICAgLCBtX2tleVJhbmdlKGtl
eVJhbmdlKQorICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0aW9uKQorICAgICwgbV9rZXkoa2V5KQor
ICAgICwgbV92YWx1ZShJREJBbnk6OmNyZWF0ZSh2YWx1ZS5nZXQoKSkpCisgICAgLCBtX2NvdW50
KGNvdW50KQoreworfQorCitJREJDdXJzb3JJbXBsOjp+SURCQ3Vyc29ySW1wbCgpCit7Cit9CisK
K3Vuc2lnbmVkIHNob3J0IElEQkN1cnNvckltcGw6OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZGlyZWN0aW9uOworfQorCitQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29ySW1w
bDo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXk7Cit9CisKK1Bhc3NSZWZQdHI8SURC
QW55PiBJREJDdXJzb3JJbXBsOjp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmFsdWU7
Cit9CisKK2xvbmcgbG9uZyBJREJDdXJzb3JJbXBsOjpjb3VudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY291bnQ7Cit9CisKK3ZvaWQgSURCQ3Vyc29ySW1wbDo6dXBkYXRlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KQoreworfQor
Cit2b2lkIElEQkN1cnNvckltcGw6OmNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pCit7Cit9CisKK3ZvaWQgSURCQ3Vyc29ySW1wbDo6
cmVtb3ZlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29ySW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1
cnNvckltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTc2NzViODRhM2Q4NzZkNDBhMGQ2ODI2MGRiYTA3MjM4
NmEwN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckltcGwu
aApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIElEQkN1cnNvckltcGxfaAorI2Rl
ZmluZSBJREJDdXJzb3JJbXBsX2gKKworI2luY2x1ZGUgIklEQkN1cnNvci5oIgorCisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBJREJPYmplY3RTdG9y
ZUltcGw7CisKK2NsYXNzIElEQkN1cnNvckltcGwgOiBwdWJsaWMgSURCQ3Vyc29yIHsKK3B1Ymxp
YzoKKyAgICBJREJDdXJzb3JJbXBsKFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVJbXBsPiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIGludCBjb3VudCk7
CisgICAgdmlydHVhbCB+SURCQ3Vyc29ySW1wbCgpOworCisgICAgdmlydHVhbCB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQW55PiB2YWx1ZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgbG9uZyBsb25nIGNvdW50KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
SURCT2JqZWN0U3RvcmVJbXBsPiBtX2lkYk9iamVjdFN0b3JlOworICAgIFJlZlB0cjxJREJLZXlS
YW5nZT4gbV9rZXlSYW5nZTsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX2RpcmVjdGlvbjsKKyAgICBS
ZWZQdHI8SURCS2V5PiBtX2tleTsKKyAgICBSZWZQdHI8SURCQW55PiBtX3ZhbHVlOworICAgIGlu
dCBtX2NvdW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBJREJDdXJzb3JJbXBsX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWM4MTcyMDAxNzQ1Y2Y2Yjgy
ZmFmOWFmY2Y2MTQyYjAxY2U3MGU4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvclJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiSURC
S2V5LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitJREJDdXJzb3JSZXF1ZXN0OjpJREJDdXJzb3JSZXF1ZXN0KFBhc3NSZWZQdHI8SURC
Q3Vyc29yPiBjdXJzb3IpCisgICAgOiBtX2N1cnNvcihjdXJzb3IpCit7Cit9CisKK0lEQkN1cnNv
clJlcXVlc3Q6On5JREJDdXJzb3JSZXF1ZXN0KCkKK3sKK30KKwordW5zaWduZWQgc2hvcnQgSURC
Q3Vyc29yUmVxdWVzdDo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJzb3It
PmRpcmVjdGlvbigpOworfQorCisKK1Bhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JSZXF1ZXN0
OjprZXkoKSBjb25zdAoreworICAgIHJldHVybiBtX2N1cnNvci0+a2V5KCk7Cit9CisKK1Bhc3NS
ZWZQdHI8SURCQW55PiBJREJDdXJzb3JSZXF1ZXN0Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY3Vyc29yLT52YWx1ZSgpOworfQorCitsb25nIGxvbmcgSURCQ3Vyc29yUmVxdWVzdDo6
Y291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2N1cnNvci0+Y291bnQoKTsKK30KKworUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJzb3JSZXF1ZXN0Ojp1cGRhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZh
bHVlKQoreworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKKyAgICBtX2N1cnNvci0+dXBkYXRl
KHZhbHVlLCByZXF1ZXN0KTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1Bh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yUmVxdWVzdDo6Y29udGludWVGdW5jdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQor
eworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNv
bnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKKyAgICBtX2N1cnNvci0+Y29udGludWVGdW5j
dGlvbihrZXksIHJlcXVlc3QpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKwor
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJzb3JSZXF1ZXN0OjpyZW1vdmUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsK
KyAgICAgIG1fY3Vyc29yLT5yZW1vdmUocmVxdWVzdCk7CisgICAgICByZXR1cm4gcmVxdWVzdC5y
ZWxlYXNlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
clJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmQ4MjljZDcwOGQyNDFmNmZjYWNmNmYxYTkwNTMxYzRkYjI1ZjYxNQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JSZXF1ZXN0LmgKQEAgLTAsMCArMSw2NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUmVxdWVzdF9oCisjZGVmaW5lIElEQkN1cnNvclJl
cXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJD
dXJzb3IuaCIKKyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIElEQkN1cnNvclJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJDdXJzb3JS
ZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yUmVxdWVz
dD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvclJlcXVlc3QoY3Vyc29yKSk7CisgICAgfQorICAg
IH5JREJDdXJzb3JSZXF1ZXN0KCk7CisKKyAgICB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBj
b25zdDsKKyAgICBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3Q7CisgICAgUGFzc1JlZlB0
cjxJREJBbnk+IHZhbHVlKCkgY29uc3Q7CisgICAgbG9uZyBsb25nIGNvdW50KCkgY29uc3Q7CisK
KyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKTsKKyAgICBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IGNvbnRpbnVlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXkgPSAwKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IHJlbW92ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgSURCQ3Vyc29yUmVxdWVzdChQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Vyc29yKTsKKworICAg
IFJlZlB0cjxJREJDdXJzb3I+IG1fY3Vyc29yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKKworI2VuZGlmIC8vIElEQkN1cnNvclJlcXVlc3RfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvclJlcXVlc3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QkN1cnNvclJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0M2JiOTNlYzc0Y2ExMTg3ZjIzNjQwNDZm
Y2Q4OGNjMDMwZjZlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vy
c29yUmVxdWVzdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsK
KworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
KyAgICBdIElEQkN1cnNvclJlcXVlc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCS2V5
IGtleTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkFueSB2YWx1ZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbG9uZyBjb3VudDsKKworICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCB1cGRhdGUoaW4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlIHZhbHVlKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIElt
cGxlbWVudGF0aW9uRnVuY3Rpb249Y29udGludWVGdW5jdGlvbl0gdm9pZCBjb250aW51ZShpbiBb
T3B0aW9uYWxdIElEQktleSBrZXkpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gdm9pZCByZW1vdmUoKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUu
aAppbmRleCBlNzhlNjJhYjRkOTVjYzMyNWRhZmYyZDM1OWNkNjY2Mzk5ODM3YWUxLi42ODNhYTE4
ZWNkNzQzYzViYzQxOWFhYmU1ZTNmYTliYmVlZTI1NjgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJREJPYmplY3RTdG9yZV9oCiAjZGVmaW5l
IElEQk9iamVjdFN0b3JlX2gKIAorI2luY2x1ZGUgIklEQkN1cnNvci5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC0zNSw2ICsz
Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRE9NU3RyaW5nTGlzdDsKIGNsYXNz
IElEQkNhbGxiYWNrczsKK2NsYXNzIElEQkN1cnNvcjsKK2NsYXNzIElEQktleVJhbmdlOwogY2xh
c3MgSURCSW5kZXg7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CkBAIC01NCw2ICs1Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
SW5kZXg+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZUltcGwuY3BwCmluZGV4IGQ2Nzg0MDBkZDY3NWYyMTdjY2VmNDY2MTA5MDNiMWQ5
ODg3OTgyODEuLjIwNWJkM2EwNWMxOGFjZTc0YWZkYjhmOWU5YjMwZWVmOWYwZmYxM2MgMTAwNzU1
Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0yOSw4ICsyOSwxMCBAQAogI2lu
Y2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29ySW1wbC5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhJbXBs
LmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJLZXlUcmVlLmgiCiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTEzMCw2ICsxMzIsMTcgQEAgdm9pZCBJ
REJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3MKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcygpOwogfQogCit2b2lk
IElEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHJhbmdlLT5sZWZ0KCk7Cisg
ICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBtX3RyZWUtPmdldChrZXku
Z2V0KCkpOworICAgIGludCBjb3VudCA9IHZhbHVlID8gMSA6IDA7CisgICAgaWYgKCF2YWx1ZSkK
KyAgICAgIHZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoKTsKKworICAgIFJl
ZlB0cjxJREJDdXJzb3I+IGN1cnNvciA9IGFkb3B0UmVmKG5ldyBJREJDdXJzb3JJbXBsKHRoaXMs
IHJhbmdlLCBkaXJlY3Rpb24sIGtleSwgdmFsdWUsIGNvdW50KSk7CisgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IGM0ZDJlYjhkMjIwNDE1NzIy
NDkzZGQ5NDA0ODM5ZDkyYjU4YjYxOTEuLmI0OTNkZWM4YjczMmI5MzJiYzg0NGViOTg0MjAyOThm
NmU1MjE0YmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwu
aAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmgKQEAgLTU2LDYgKzU2
LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGluZGV4KGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAKKyAgICB2b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uKTsKKwogcHJpdmF0ZToKICAgICBJREJPYmplY3RTdG9yZUltcGwoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCk7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3Bw
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKaW5kZXggM2UwOTVj
MWUwYjU1NGFmMDhjMDY1MjIzMGQwNDIwYmJiOWI2OWI3ZC4uZmRkY2ZjMmZmZmVlZTRhNTg0MWIz
NzM4NTMyMmVkZWFiNzQ5ZmI4NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAKQEAgLTYzLDM1ICs2MywzNSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogewog
ICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRl
eHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5nZXQoa2V5LCBy
ZXF1ZXN0KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNl
KCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojph
ZGQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewogICAgIFJlZlB0
cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFu
eTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgdHJ1
ZSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3QucmVs
ZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVz
dDo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKICAgICBS
ZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJ
REJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZhbHVlLCBrZXks
IGZhbHNlLCByZXF1ZXN0KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVxdWVz
dC5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0OjpyZW1vdmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJLZXk+IGtleSkKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmpl
Y3RTdG9yZS0+cmVtb3ZlKGtleSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAg
cmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wg
dW5pcXVlKQogewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6
Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3Jl
LT5jcmVhdGVJbmRleChuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIHJlcXVlc3QpOwotICAgIHJldHVy
biByZXF1ZXN0OworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAogUGFzc1JlZlB0
cjxJREJJbmRleFJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6aW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lKQpAQCAtMTA1LDcgKzEwNSwxNCBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dAog
ewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNv
bnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5yZW1vdmVJ
bmRleChuYW1lLCByZXF1ZXN0KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVx
dWVzdC5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCit7
CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29u
dGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOworICAgIG1fb2JqZWN0U3RvcmUtPm9wZW5DdXJz
b3IocmVxdWVzdCwgcmFuZ2UsIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFz
ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmgKaW5kZXggODZmNjRkNjU0OWNhYTJiMzQxN2ZhNzJkNGFjODJjOWZlODlk
YTBlOS4uYmJjZjNkNTM4OGZkMjgyY2ViNmZmMjEzODJmMTg2NmJjYWVjZjlhZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaApAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRl
ZiBJREJPYmplY3RTdG9yZVJlcXVlc3RfaAogI2RlZmluZSBJREJPYmplY3RTdG9yZVJlcXVlc3Rf
aAogCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yUmVxdWVzdC5o
IgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIK
ICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAg
LTY0LDYgKzY3LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBp
bmRleChjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcmVt
b3ZlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAK
KyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlID0gMCwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpORVhUKTsKKwogcHJpdmF0ZToKICAgICBJREJPYmplY3RT
dG9yZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCmluZGV4IGE4MTZiNzNlZTM1MWEwMzM5MjY0ZmYx
MDQ3YzZkNzEzNmYyZWUwYzAuLjQxMDRjZmQ3YmJhYWNkNmZjODE1OTQwMmIzZDE1YzQxY2I5YzM0
ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRs
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCkBAIC00MSw2
ICs0MSw4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgSURCSW5kZXhSZXF1ZXN0IGluZGV4
KGluIERPTVN0cmluZyBuYW1lKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIElEQlJlcXVlc3QgcmVtb3ZlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUpOwogCisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJz
b3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZSByYW5nZSwgaW4gW09wdGlvbmFsXSB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24pOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1Rv
PU51bGxdIERPTVN0cmluZyBrZXlQYXRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nTGlzdCBpbmRleE5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJl
cXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCmluZGV4IDc4ZGQxNWEw
MGZjZDcyMGZkZDllOWJkMWFiYzFhNGU3YjZlM2M5MzEuLmVmNDNmY2RjOWIxMjI5ZDI1ODBiODlk
ZTNkZmViNTk2OTc3NjU0YjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTczLDYgKzczLDEy
IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKCkKICAgICBtX3Jlc3VsdC0+c2V0KCk7CiB9
CiAKK3ZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBpZGJD
dXJzb3IpCit7CisgICAgb25FdmVudENvbW1vbigpOworICAgIG1fcmVzdWx0LT5zZXQoSURCQ3Vy
c29yUmVxdWVzdDo6Y3JlYXRlKGlkYkN1cnNvcikpOworfQorCiB2b2lkIElEQlJlcXVlc3Q6Om9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSkKIHsKICAgICBvbkV2
ZW50Q29tbW9uKCk7CkBAIC0xNjIsNyArMTY4LDcgQEAgdm9pZCBJREJSZXF1ZXN0Ojp0aW1lckZp
cmVkKFRpbWVyPElEQlJlcXVlc3Q+KikKICAgICAgICAgZGlzcGF0Y2hFdmVudChJREJFcnJvckV2
ZW50OjpjcmVhdGUobV9zb3VyY2UsICptX2Vycm9yKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
QVNTRVJUKG1fcmVzdWx0LT50eXBlKCkgIT0gSURCQW55OjpVbmRlZmluZWRUeXBlKTsKLSAgICAg
ICAgZGlzcGF0Y2hFdmVudChJREJTdWNjZXNzRXZlbnQ6OmNyZWF0ZShtX3NvdXJjZSwgbV9yZXN1
bHQpKTsgICAgICAgIAorICAgICAgICBkaXNwYXRjaEV2ZW50KElEQlN1Y2Nlc3NFdmVudDo6Y3Jl
YXRlKG1fc291cmNlLCBtX3Jlc3VsdCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKaW5k
ZXggYzc2M2Q5NmVhNzVlM2M0YmY0MWU0MDgzMzQ0MzNiNjhhYjhiYzNhMC4uY2JmNTZlZDNiYmU4
YzVmNTI0ZmY5YzdjMzkyMzFjNTRkZTI2MWZkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdl
L0lEQlJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCkBAIC02NCw2
ICs2NCw3IEBAIHB1YmxpYzoKICAgICAvLyBJREJDYWxsYmFja3MKICAgICB2aXJ0dWFsIHZvaWQg
b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkN1cnNvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJJbmRleD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDM3ZTg3OTNiYTlkYmY3OTdlMzE1MmJlYzVkMTE0ZDE4ZjRl
NGM1MjQuLjM3MDMxNTM2ZjAwNDYzY2M5MTk4Yzc4ZTNjNGE4YzhkMDZkNDI4NWYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEwLTA3LTE5ICBNYXJjdXMgQnVsYWNoICA8YnVsYWNo
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbml0aWFsIGJpbmRpbmdzIGFuZCBwbHVtYmluZyBmb3IgSURCQ3Vyc29yLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4ODgKKworICAg
ICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9pZGItb3BlbmN1cnNvci5odG1sCisKKyAgICAg
ICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3MpOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJDdXJzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNv
cjo6fldlYklEQkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6ZGlyZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29yOjprZXkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDdXJzb3I6OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29y
Ojpjb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6dXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ3Vyc29yOjpyZW1vdmUpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJLZXlS
YW5nZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6OldlYklEQktl
eVJhbmdlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9J
REJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94
eTo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAg
ICAgKiBzcmMvSURCQ3Vyc29yUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6
OklEQkN1cnNvclByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvclByb3h5Ojp+SURC
Q3Vyc29yUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OmRpcmVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6a2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvclByb3h5Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3JQcm94eTo6Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yUHJveHk6OnVwZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6Y29udGludWVGdW5jdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JQcm94eTo6cmVtb3ZlKToKKyAgICAgICAgKiBz
cmMvSURCQ3Vyc29yUHJveHkuaDogQWRkZWQuCisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3Jl
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVQcm94eTo6b3BlbkN1
cnNvcik6CisgICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaDoKKyAgICAgICAgKiBz
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJREJDYWxs
YmFja3NJbXBsOjpvblN1Y2Nlc3MpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBs
Lmg6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6V2ViSURCQ3Vyc29ySW1wbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCQ3Vyc29ySW1wbDo6a2V5KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6
dmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjpjb3VudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkN1cnNvckltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDdXJzb3JJbXBsOjpyZW1vdmUpOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBs
Lmg6IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJJREJLZXlSYW5nZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6V2ViSURCS2V5UmFuZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6fldlYklEQktleVJhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCS2V5UmFuZ2U6OmxlZnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5n
ZTo6cmlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6ZmxhZ3MpOgorICAg
ICAgICAqIHNyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJPYmplY3RTdG9yZUltcGw6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuaDoKKwogMjAxMC0wNy0yOCAgS2F2aXRhIEthbmV0a2FyICA8a2thbmV0
a2FyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAppbmRleCA5N2VmZGRjYjU3MTNkMzFkYmZhMzZkYmNiMTI0ZjBjMTgwMjAwZmEz
Li45NDQyOGZjMDkzY2JiZTkzZTk3YzdkMTRkZGFlZTE0MDZmYWRiOTUzIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cApAQCAtMTc2LDggKzE3NiwxMCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2Uu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCcsCisgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJJREJDdXJzb3IuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRh
YmFzZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkRhdGFiYXNlRXJyb3IuaCcs
CisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYklEQkluZGV4LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SURCS2V5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaCcs
CkBAIC0zMTksNiArMzIxLDggQEAKICAgICAgICAgICAgICAgICAnc3JjL2d0ay9XZWJJbnB1dEV2
ZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgnLAorICAgICAg
ICAgICAgICAgICdzcmMvSURCQ3Vyc29yUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3Jj
L0lEQkN1cnNvclByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCRGF0YWJhc2VQcm94
eS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvSURCRGF0YWJhc2VQcm94eS5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL0lEQkluZGV4UHJveHkuY3BwJywKQEAgLTQxNCwxMiArNDE4LDE1IEBA
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNvcklt
cGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1w
bC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViSURCS2V5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZUNHLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCBjZWU4NjEyY2NiYWFjODU2OGE5MWM3MjA5OTgy
ZjA4NjMwNTNlNjE3Li4yZTJjNGQyOTllMGM4YzdmNTc1ZGFmMmI0ZTgwN2ZlNzc1M2NkNmQxIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTMwLDYgKzMwLDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYklEQkN1cnNvcjsKIGNsYXNzIFdl
YklEQkRhdGFiYXNlOwogY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktl
eTsKQEAgLTQ1LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBv
d25lcnNoaXAgdG8gdGhlIGNhbGxlZSB2aWEgYSBwb2ludGVyLgogICAgIHZpcnR1YWwgdm9pZCBv
bkVycm9yKGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfSAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoV2ViSURCQ3Vyc29yKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktl
eSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhXZWJJREJJbmRleCopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkN1cnNvci5oIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjljMDMxZTliNTFj
NzZjNTNhMmZiZjQ0NTAwNmZiOGI3ZDFmYzE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDdXJzb3IuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJJREJDdXJzb3JfaAorI2RlZmluZSBXZWJJREJDdXJzb3JfaAorCisjaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2Vi
SURCS2V5LmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVk
ZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBTZWUgY29tbWVudCBp
biBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFz
c2VzLgorY2xhc3MgV2ViSURCQ3Vyc29yIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJJREJD
dXJzb3IoKSB7IH0KKworICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29u
c3QKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IFdlYklEQktleSgiIik7CisgICAgfQorCisgICAgdmlydHVhbCBXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUgdmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7CisgICAg
fQorCisgICAgdmlydHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdAorICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYs
IFdlYklEQkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oY29uc3Qg
V2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tzKikKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFdlYklE
QkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJD
dXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5n
ZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2MmIwYWQxZWVjYjk3OTkyNzkyZmMzYjM4ZDRjNDIyZTY3NGM1ZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVJhbmdlLmgKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCS2V5UmFuZ2VfaAorI2RlZmluZSBXZWJJREJLZXlS
YW5nZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCS2V5UmFuZ2U7IH0KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYklEQktleTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xh
c3MgV2ViSURCS2V5UmFuZ2UgeworcHVibGljOgorICAgIH5XZWJJREJLZXlSYW5nZSgpOworCisg
ICAgV0VCS0lUX0FQSSBXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFu
Z2UpIHsgbV9wcml2YXRlID0ga2V5UmFuZ2UubV9wcml2YXRlOyB9CisgICAgV0VCS0lUX0FQSSBX
ZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYgcmln
aHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKworICAgIFdlYklEQktleSBsZWZ0KCkgY29uc3Q7
CisgICAgV2ViSURCS2V5IHJpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3Mo
KSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYklEQktleVJhbmdl
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4mKTsKKyNlbmRpZgor
Citwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+IG1fcHJp
dmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURCS2V5
UmFuZ2VfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RT
dG9yZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCmluZGV4
IGZiODFmYjljZTFkYzA5OTNhMmEyZDE3OGI2NzUyNjU2YWNlZTJlM2EuLjc0NTJiZTk5YjQwYzBi
ZDIyNjk1MDQyNzEwYzlkYThiZjliMjA5ZDAgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQk9iamVjdFN0b3JlLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK2NsYXNzIFdlYklEQktleVJhbmdlOworCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVk
RGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgogY2xhc3Mg
V2ViSURCT2JqZWN0U3RvcmUgewogcHVibGljOgpAQCAtNzksNiArODEsMTAgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKikKKyAgICB7CisgICAgICAgIFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAgICAgLy8gRklYTUU6IGZpbmlzaC4KIH07CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMzU5MWJlZTk2
OTU1ODkzMjE3MWZiYTY2NTgxN2VjMWMzYzA0NDEwYS4uMTY3NGFiOTUyNGE2YTM1ZmE1YzUxYzUy
ODFjMTMyOTk0NTBkYzQ5NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5o
IgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFz
ZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2Vi
SURCSW5kZXhJbXBsLmgiCkBAIC02OSw2ICs3MCwxMiBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5
OjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgSURCQ2Fs
bGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvcj4gaWRiQ3Vyc29yKQor
eworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYktpdDo6V2ViSURCQ3Vyc29ySW1w
bChpZGJDdXJzb3IpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIElEQkNh
bGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJh
c2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJEYXRh
YmFzZUltcGwoaWRiRGF0YWJhc2UpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuaAppbmRleCBjNWE4ODU4YTA5MmEwZWQ3NTg2YjRiZDI4NDhlODdhODI1OTZmNWZmLi4wYjU0
ZGZkYWQwMTI1OTA3NTlkNGMyNTI4ZWM5MTUyNjViZjJhYmQzIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkluZGV4Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQktleT4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJz
b3JQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYjdlNGM4YmIwNzI0YmVmMzVkYWUyNTA0MjQxMjZhZmMzZjEwMDRiCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5jcHAKQEAgLTAs
MCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJDdXJz
b3JQcm94eS5oIgorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tz
LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiV2ViSURC
Q2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJD
dXJzb3I+IElEQkN1cnNvclByb3h5OjpjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1
cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yUHJv
eHkoaWRiQ3Vyc29yKSk7Cit9CisKK0lEQkN1cnNvclByb3h5OjpJREJDdXJzb3JQcm94eShQYXNz
T3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPiBpZGJDdXJzb3IpCisgICAgOiBtX2lkYkN1cnNv
cihpZGJDdXJzb3IpCit7Cit9CisKK0lEQkN1cnNvclByb3h5Ojp+SURCQ3Vyc29yUHJveHkoKQor
eworfQorCit1bnNpZ25lZCBzaG9ydCBJREJDdXJzb3JQcm94eTo6ZGlyZWN0aW9uKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigpOworfQorCitQYXNzUmVmUHRy
PElEQktleT4gSURCQ3Vyc29yUHJveHk6OmtleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRi
Q3Vyc29yLT5rZXkoKTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNvclByb3h5Ojp2
YWx1ZSgpIGNvbnN0Cit7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUg
PSBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4obV9pZGJDdXJzb3ItPnZhbHVlKCkp
OworICAgIHJldHVybiBJREJBbnk6OmNyZWF0ZSh2YWx1ZS5nZXQoKSk7Cit9CisKK2xvbmcgbG9u
ZyBJREJDdXJzb3JQcm94eTo6Y291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkN1cnNv
ci0+Y291bnQoKTsKK30KKwordm9pZCBJREJDdXJzb3JQcm94eTo6dXBkYXRlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+dXBkYXRlKHZhbHVlLCBuZXcgV2ViSURCQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDdXJzb3JQcm94eTo6Y29udGlu
dWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzKQoreworICAgIG1faWRiQ3Vyc29yLT5jb250aW51ZUZ1bmN0aW9uKGtleSwg
bmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgSURCQ3Vyc29y
UHJveHk6OnJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAg
IG1faWRiQ3Vyc29yLT5yZW1vdmUobmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94
eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JQcm94eS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
OWVjZWUwYmZmYWI2ZjBmYmYyMjU1NDcyOTZiNDU4ODYzYWI5M2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvclByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgSURCQ3Vyc29yUHJveHlfaAorI2RlZmluZSBJREJDdXJzb3JQcm94eV9o
CisKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElE
QkN1cnNvclByb3h5IDogcHVibGljIElEQkN1cnNvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNv
cj4pOworICAgIHZpcnR1YWwgfklEQkN1cnNvclByb3h5KCk7CisKKyAgICB2aXJ0dWFsIHVuc2ln
bmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBsb25nIGxvbmcgY291bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+KTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2
b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworCitwcml2YXRlOgorICAgIElE
QkN1cnNvclByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+KTsKKworICAgIFBh
c3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+IG1faWRiQ3Vyc29yOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIElEQkN1cnNvclByb3h5X2gK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCmluZGV4IGNlYzRl
ZDMxMDAxMTk1ZThkNTZlMzA0MGE2NDgwZTcwMzFiZjVmOGYuLjc0NDk5Zjc4Yjc3NGZlNmIxNjdk
Mzg3ODNjOGEzNTlhYmY5NWUyOWEgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
T2JqZWN0U3RvcmVQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RT
dG9yZVByb3h5LmNwcApAQCAtMjgsOCArMjgsMTAgQEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ0xp
c3QuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5o
IgogI2luY2x1ZGUgIklEQkluZGV4UHJveHkuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJ
bXBsLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJJREJJbmRl
eC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3Jl
LmgiCkBAIC0xMDEsNiArMTAzLDExIEBAIHZvaWQgSURCT2JqZWN0U3RvcmVQcm94eTo6cmVtb3Zl
SW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrCiAgICAgbV93
ZWJJREJPYmplY3RTdG9yZS0+cmVtb3ZlSW5kZXgobmFtZSwgbmV3IFdlYklEQkNhbGxiYWNrc0lt
cGwoY2FsbGJhY2tzKSk7CiB9CiAKK3ZvaWQgSURCT2JqZWN0U3RvcmVQcm94eTo6b3BlbkN1cnNv
cihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQoreworICAgIG1fd2ViSURCT2Jq
ZWN0U3RvcmUtPm9wZW5DdXJzb3IocmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVj
dFN0b3JlUHJveHkuaAppbmRleCBiOGU0YTAxOThmZTliNDM5OGEyOGU4ZDllMWNhYjMwMDMyNzAz
NGVmLi5jNmVmNzg1ZWY3ZDBmMzhkNjljZDY5ZGRlOWUwZGE2YzcyY2Q5ZWZmIDEwMDc1NQotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJs
aWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsK
ICAgICB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KTsKIAorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UgPSAwLCB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQpOworCiBwcml2YXRlOgogICAgIElEQk9i
amVjdFN0b3JlUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlPik7CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDIxYzll
ZWRhZTk1MzU4Yjc3ZWI3MDQ0NzgwNDY3NTc0Nzk4NjQ2MTMuLjQ2ODc4OWM0MDgwZGVhMjQ5MTMw
ZWYyZGYxY2M3N2M3NTcxMDU4NmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNr
c0ltcGwuaCIKIAogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkN1cnNv
clByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkRh
dGFiYXNlUHJveHkuaCIKICNpbmNsdWRlICJJREJJbmRleFByb3h5LmgiCkBAIC02NSw2ICs2Niwx
MiBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcygpCiAgICAgbV9jYWxsYmFj
a3MuY2xlYXIoKTsKIH0KIAordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2Vi
S2l0OjpXZWJJREJDdXJzb3IqIGN1cnNvcikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNz
KElEQkN1cnNvclByb3h5OjpjcmVhdGUoY3Vyc29yKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIo
KTsKK30KKwogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJEYXRhYmFzZVByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKaW5kZXggYTRkNTNiNTVhZjRjNjk4NWJmZmE2
OGJhNDNhY2UyMDEwYWYyNjcyNC4uMTgzNWM2MGMyYzQ1ZmRjMjA4MWU5OWY2ZDc0ODBkZjFhZTQ5
MWRjYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTQz
LDYgKzQzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcygp
OyAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJ
REJDdXJzb3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0
YWJhc2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViSURC
S2V5Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkluZGV4Kik7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWU2
OTA3NWZlYmYxYTMyOTliOTQ5N2I1MzVjMTc1YzBhNzQwZWFhCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcApAQCAtMCwwICsxLDg0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwu
aCIKKworI2luY2x1ZGUgIklEQkFueS5oIgorI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5Lmgi
CisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiSURCS2V5LmgiCisjaW5jbHVkZSAi
V2ViSURCS2V5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViSURCQ3Vyc29ySW1wbDo6V2ViSURCQ3Vyc29ySW1wbChQYXNzUmVmUHRyPElE
QkN1cnNvcj4gaWRiQ3Vyc29yKQorICAgIDogbV9pZGJDdXJzb3IoaWRiQ3Vyc29yKQoreworfQor
CitXZWJJREJDdXJzb3JJbXBsOjp+V2ViSURCQ3Vyc29ySW1wbCgpCit7Cit9CisKK3Vuc2lnbmVk
IHNob3J0IFdlYklEQkN1cnNvckltcGw6OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1faWRiQ3Vyc29yLT5kaXJlY3Rpb24oKTsKK30KKworV2ViSURCS2V5IFdlYklEQkN1cnNvcklt
cGw6OmtleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYklEQktleShtX2lkYkN1cnNvci0+a2V5
KCkpOworfQorCitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViSURCQ3Vyc29ySW1wbDo6dmFs
dWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkN1cnNvci0+dmFsdWUoKS0+c2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKCk7Cit9CisKK2xvbmcgbG9uZyBXZWJJREJDdXJzb3JJbXBsOjpjb3VudCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yLT5jb3VudCgpOworfQorCit2b2lkIFdl
YklEQkN1cnNvckltcGw6OnVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZh
bHVlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+dXBk
YXRlKHZhbHVlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcykpOworfQorCit2
b2lkIFdlYklEQkN1cnNvckltcGw6OmNvbnRpbnVlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiBr
ZXksIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKQoreworICAgIG1faWRiQ3Vyc29yLT5jb250
aW51ZUZ1bmN0aW9uKGtleSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsK
KworfQorCit2b2lkIFdlYklEQkN1cnNvckltcGw6OnJlbW92ZShXZWJJREJDYWxsYmFja3MqIGNh
bGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+cmVtb3ZlKElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoY2FsbGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5OTMyZjdlZDk3MTgxMzNm
Mjk2OTljOWYyMTRjNmQwZjIyZDI2OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYklEQkN1cnNvckltcGxfaAorI2RlZmluZSBXZWJJREJDdXJzb3JJbXBsX2gKKworI2luY2x1
ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvci5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7IGNsYXNzIElEQkN1cnNvcjsgfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2Vl
IGNvbW1lbnQgaW4gV2ViSW5kZXhlZE9iamVjdFN0b3JlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZp
ZXcgdGhlc2UgY2xhc3Nlcy4KK2NsYXNzIFdlYklEQkN1cnNvckltcGwgOiBwdWJsaWMgV2ViSURC
Q3Vyc29yIHsKK3B1YmxpYzoKKyAgICBXZWJJREJDdXJzb3JJbXBsKFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJDdXJzb3I+IGlkYkN1cnNvcik7CisgICAgdmlydHVhbCB+V2ViSURCQ3Vyc29y
SW1wbCgpOworCisgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFdlYklEQktleSBrZXkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgbG9uZyBsb25nIGNv
dW50KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFja3MqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGlu
dWVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmLCBXZWJJREJDYWxsYmFja3MqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlKFdlYklEQkNhbGxiYWNrcyopOworCisgcHJpdmF0ZToKKyAgICBXVEY6
OlJlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3I+IG1faWRiQ3Vyc29yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJDdXJzb3JJbXBsX2gKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJLZXlSYW5nZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FiMmY4OTQ3MzFiOTkxNjU2ZDgx
YmY0N2VkYjc2MjkzNDJkOGY1YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCS2V5UmFuZ2UuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKKworI2luY2x1ZGUgIklEQktl
eS5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBGSVhNRTogUmVtb3ZlLgorV2ViSURCS2V5UmFuZ2U6
OldlYklEQktleVJhbmdlKGNvbnN0IFdlYklEQktleSYgbGVmdCwgY29uc3QgV2ViSURCS2V5JiBy
aWdodCwgdW5zaWduZWQgc2hvcnQgZmxhZ3MpCisgICAgOiBtX3ByaXZhdGUoV2ViQ29yZTo6SURC
S2V5UmFuZ2U6OmNyZWF0ZShsZWZ0LCByaWdodCwgZmxhZ3MpKQoreworfQorCitXZWJJREJLZXlS
YW5nZTo6V2ViSURCS2V5UmFuZ2UoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktl
eVJhbmdlPiYgaWRiS2V5UmFuZ2UpCisgICAgOiBtX3ByaXZhdGUoaWRiS2V5UmFuZ2UpCit7Cit9
CisKK1dlYklEQktleVJhbmdlOjp+V2ViSURCS2V5UmFuZ2UoKQoreworICAgIG1fcHJpdmF0ZS5y
ZXNldCgpOworfQorCitXZWJJREJLZXkgV2ViSURCS2V5UmFuZ2U6OmxlZnQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3ByaXZhdGUtPmxlZnQoKTsKK30KKworV2ViSURCS2V5IFdlYklEQktleVJh
bmdlOjpyaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmlnaHQoKTsKK30K
KwordW5zaWduZWQgc2hvcnQgV2ViSURCS2V5UmFuZ2U6OmZsYWdzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT5mbGFncygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAppbmRleCBkOGU5
OGRiMjhhNDhjMDgyZTBlMzZmNjEwMTBhOTgwMTIzNjg5NTA3Li45YzUyZTc0OGJhNzA0MGRjMzA3
MjU0NmM5ZDQ2ZTlmZTEwNDFkYjMwIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuY3BwCkBAIC0yOCw5ICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiRE9NU3Ry
aW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCisjaW5jbHVkZSAiSURC
S2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIldlYklE
QkluZGV4SW1wbC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgorI2luY2x1ZGUgIldlYklEQktl
eVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTk2LDYgKzk4LDExIEBAIHZvaWQgV2ViSURCT2Jq
ZWN0U3RvcmVJbXBsOjpyZW1vdmVJbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNh
bGxiYWNrcyoKICAgICBtX29iamVjdFN0b3JlLT5yZW1vdmVJbmRleChuYW1lLCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcykpOwogfQogCit2b2lkIFdlYklEQk9iamVjdFN0b3Jl
SW1wbDo6b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MpCit7CisgICAgbV9v
YmplY3RTdG9yZS0+b3BlbkN1cnNvcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNr
cyksIElEQktleVJhbmdlOjpjcmVhdGUoa2V5UmFuZ2UubGVmdCgpLCBrZXlSYW5nZS5yaWdodCgp
LCBrZXlSYW5nZS5mbGFncygpKSwgZGlyZWN0aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAppbmRleCA0MDY0YjdmODg4NmIzODQ3NzMx
MmIxOTIyNGZmMGU0YjVhM2E1ZDcwLi44OGI0ZTlhYzIzNjlmYWMyOTcxYjhjNzk4NWVhMjkwOWQ5
YmFlODZhIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3Jl
SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgK
QEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIFdlYklEQkluZGV4KiBpbmRleChjb25zdCBX
ZWJTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcyk7CiAKKyAgICB2b2lkIG9wZW5DdXJzb3Io
Y29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNh
bGxiYWNrcyopOworCiAgcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZT4gbV9vYmplY3RTdG9yZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63462</attachid>
            <date>2010-08-04 10:14:58 -0700</date>
            <delta_ts>2010-08-05 08:53:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100804181455.patch</filename>
            <type>text/plain</type>
            <size>91186</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZTdmNDA5MjEyMmRlOGVmZjJiZjYwN2Q5YTM0OWY0OGY3ZDc1MDMyLi43ZWM3MDEw
ZGQ5ODYwY2VmM2IzOTFmYmE0ZGQyMTI3MTJkOGY0OGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDgtMDQgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvb3Blbi1jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAgKGN1cnNvclN1
Y2Nlc3MpOgorICAgICAgICAoZGF0YUFkZGVkU3VjY2Vzcyk6CisgICAgICAgIChwb3B1bGF0ZU9i
amVjdFN0b3JlKToKKyAgICAgICAgKG9wZW5DdXJzb3IpOgorICAgICAgICAoY3JlYXRlT2JqZWN0
U3RvcmVTdWNjZXNzKToKKyAgICAgICAgKG9wZW5TdWNjZXNzKToKKyAgICAgICAgKHRlc3QpOgor
CiAyMDEwLTA4LTAzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIE5vdCByZXZpZXdlZC4gQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YzgzNzJhYWRmZjU5ZmMzNGVkYTdkM2M1YTRmZGI1YTAy
ZWFjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
cGVuLWN1cnNvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2NiBAQAorVGVzdCBJbmRleGVkREIn
cyBvcGVuQ3Vyc29yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERC
Lm9wZW4oJ25hbWUnLCAnZGVzY3JpcHRpb24nKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBp
biByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0Fu
IGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BB
U1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2
ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25z
dWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQu
dGFyZ2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworZGIgPSBldmVudC5yZXN1bHQKK2Ri
LmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0JykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4g
cmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBl
dmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVu
dCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3Vj
Y2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK29iamVjdFN0b3JlID0gZXZlbnQucmVz
dWx0CitvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUnLCAnbXlLZXknKQorUEFTUyAnb25zdWNjZXNz
JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BB
U1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0
IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworT3BlbmluZyBjdXJz
b3IKK0N1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1
bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0
JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUK
K0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworUEFTUyBldmVudC5yZXN1bHQuZGly
ZWN0aW9uIGlzIDAKK1BBU1MgZXZlbnQucmVzdWx0LmtleSBpcyAnbXlLZXknCitQQVNTIGV2ZW50
LnJlc3VsdC52YWx1ZSBpcyAnbXlWYWx1ZScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvb3Blbi1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29w
ZW4tY3Vyc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYwMzY1ZDVkMDZmZDk0ZDUzODVhODFiMmZiODli
YmViZGE1MjA5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29wZW4tY3Vyc29yLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9vcGVuLWN1cnNvci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvb3Blbi1j
dXJzb3IuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvb3Bl
bi1jdXJzb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyZDk4MDNiODY2MDJmOWQzMzc2MWY2ZmVhNTdmYWYz
MTU0YjY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3NjcmlwdC10ZXN0cy9vcGVuLWN1cnNvci5qcwpAQCAtMCwwICsxLDU5IEBACitkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisK
K2Z1bmN0aW9uIGN1cnNvclN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJDdXJzb3Igb3BlbmVkIHN1
Y2Nlc3NmdWxseS4iKQorICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIC8vIEZJWE1FOiBj
aGVjayB0aGF0IHdlIGNhbiBpdGVyYXRlIHRoZSBjdXJzb3IuCisgICAgc2hvdWxkQmUoImV2ZW50
LnJlc3VsdC5kaXJlY3Rpb24iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5yZXN1bHQua2V5
IiwgIidteUtleSciKTsKKyAgICBzaG91bGRCZSgiZXZlbnQucmVzdWx0LnZhbHVlIiwgIidteVZh
bHVlJyIpOworICAgIGRvbmUoKTsKK30KKworZnVuY3Rpb24gb3BlbkN1cnNvcigpCit7CisgICAg
ZGVidWcoIk9wZW5pbmcgY3Vyc29yIik7CisgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2Uu
bGVmdEJvdW5kKCJteUtleSIpOworICAgIHZhciBjdXJzb3IgPSBvYmplY3RTdG9yZS5vcGVuQ3Vy
c29yKGtleVJhbmdlKTsKKyAgICBjdXJzb3Iub25zdWNjZXNzID0gY3Vyc29yU3VjY2VzczsKK30K
KworZnVuY3Rpb24gcG9wdWxhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZSkKK3sKKyAgICByZXN1
bHQgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUnLCAnbXlLZXknKSIpOwor
ICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBvcGVuQ3Vy
c29yOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisK
K2Z1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlU3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vz
c0V2ZW50KGV2ZW50KTsKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IGV2ZW50LnJlc3VsdCIpOworICAgIHBvcHVsYXRlT2JqZWN0U3RvcmUob2JqZWN0U3Rv
cmUpOworfQorCitmdW5jdGlvbiBvcGVuU3VjY2VzcygpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2
ZW50KGV2ZW50KTsKKyAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIp
OworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0Jyki
KTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzOworICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJp
ZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Cisg
ICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKwordGVzdCgp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQu
anNjYmluZGluZ3MubWsKaW5kZXggZmMwODFkMzc3NTU0NGE2YThkZWM5NTIxZmU4Nzk0NTA5ODc2
ZDNhZC4uY2EzMzRhYzRjNWU5YzNkMGU3MzBjYjdjMWU4ZjE2ZTYwMGU5NjZlNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTEsMyArMSw0IEBACisKICMjCiAjIyBD
b3B5cmlnaHQgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogIyMKQEAgLTM2
MSw2ICszNjIsNyBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0
ZXMpL3N0b3JhZ2UvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpLwogIyBJbmRleGVkIERhdGFiYXNl
CiBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkFueS5oIFwKKyAg
ICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJDdXJzb3IuaCBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9zdG9yYWdlL0pTSURCRGF0YWJhc2VFcnJvci5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL3N0b3JhZ2UvSlNJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL3N0b3JhZ2UvSlNJREJEYXRhYmFzZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9p
ZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRp
bmdzLm1rCmluZGV4IDdmOTIyZWQ0ZGQ1ZjE5YWM2ZDgyOGRkOTViN2YxMjBiM2NmNTM1YzAuLjRj
MjAwZjg2YmIxNjE2NGUyYTY2Y2FkMjg3YjM5YTJiNmU5NTc2M2MgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMzQyLDYgKzM0Miw3IEBAICQocGF0c3Vic3QgJS5oLCUu
Y3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVk
aWF0ZXMpCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOElEQkFueS5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4
SURCQ3Vyc29yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJEYXRhYmFz
ZUVycm9yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJEYXRhYmFzZUV4
Y2VwdGlvbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCRGF0YWJhc2Uu
aCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggMDFjODNjNmMwOTVkZjc4YjU2MDlmZTYyNmE3ZWQ3MGEyMzllZjk5My4uOWFiZTM1MTM5
MjQxMjQwMTgzMWY5ZGE3OThhYWU4ZTczMmNmNzdjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRy
b2lkLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNzQzLDYgKzc0Myw4IEBAIExPQ0FM
X1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXN0b3JhZ2UvRGF0YWJhc2VUaHJl
YWQuY3BwIFwKIAlzdG9yYWdlL0RhdGFiYXNlVHJhY2tlci5jcHAgXAogCXN0b3JhZ2UvSURCQW55
LmNwcCBcCisJc3RvcmFnZS9JREJDdXJzb3IuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmNwcCBcCiAJc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAgXAogCXN0b3JhZ2UvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgXAogCXN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggY2E3NzQ5YjMyYTZlMDY0NjcyOGQ0YmFiZTkzZDU5ZDI1MTFkN2I4YS4uMTA2MmMwZThl
NzI0YTk2ZGM1YWMyZmEwYmJjNTdiMTAyODRhYTI4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzQsNiArMzM0LDcg
QEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlk
bAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAogICAgIHN0b3JhZ2UvSURCQW55LmlkbAor
ICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmlkbAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5p
ZGwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAogICAgIHN0b3JhZ2UvSURC
RGF0YWJhc2UuaWRsCkBAIC0xNDM4LDYgKzE0MzksOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgc3RvcmFnZS9JREJBbnkuY3BwCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAKICAgICBz
dG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisgICAgc3RvcmFnZS9JREJDdXJzb3Iu
Y3BwCisgICAgc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKICAgICBzdG9yYWdlL0lE
QkVycm9yRXZlbnQuY3BwCiAgICAgc3RvcmFnZS9JREJFdmVudC5jcHAKICAgICBzdG9yYWdlL0lE
QkluZGV4LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBjNWNmYTQ3NmNhZTBhZDFlMzc0OGJlODljYzY4MzdkNjE4NWQ2YzQ1Li5hZTVm
N2MxYjBjOTNhY2JkMWE3MjI3NDJjZDg3OGJjODM0ZjhmNWRlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEw
LTA4LTA0ICBNYXJjdXMgQnVsYWNoICA8YnVsYWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsIGJpbmRpbmdzIGFu
ZCBwbHVtYmluZyBmb3IgSURCQ3Vyc29yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDE4ODgKKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRk
Yi9pZGItb3BlbmN1cnNvci5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQuanNjYmlu
ZGluZ3MubWs6CisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWs6CisgICAg
ICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkFueS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OmlkYkN1cnNvcik6CisgICAgICAgIChXZWJD
b3JlOjpJREJBbnk6OnNldCk6CisgICAgICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkFueTo6KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJREJDdXJzb3I6OklEQkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6On5J
REJDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjprZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vy
c29yOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yOjpyZW1vdmUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjopOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yOjpjcmVhdGUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yLmlkbDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1cnNvckJhY2tl
bmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjp+SURCQ3Vy
c29yQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6
OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6a2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjp2YWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6dXBkYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpyZW1vdmUpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCQ3Vyc29yQmFja2VuZEltcGwuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlOjp+SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogc3Rv
cmFnZS9JREJPYmplY3RTdG9yZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNv
cik6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUltcGwuaDoKKyAgICAgICAgKiBz
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZVJlcXVlc3Q6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6
OnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZUluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlSW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpvcGVuQ3Vyc29yKToKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCUmVxdWVzdC5oOgorCiAyMDEwLTA4LTAzICBBbmRyZWkgUG9wZXNjdSAgPGFuZHJlaXBAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmlu
ZGV4IDRiODU2NDI0YWU0OTg1YmFhMDY0YTU4ZGY1OTdkYTk3YWMyMmE4YTUuLmIzMTViMTNlMjEz
NjEwN2UzOTNmNzAxOWRkYjMwNDAwNDExMTFmYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xNzYsNiAr
MTc2LDcgQEAKICNpbmNsdWRlICJKU0hUTUxVTGlzdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpT
SFRNTFZpZGVvRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNJREJBbnkuY3BwIgorI2luY2x1ZGUg
IkpTSURCQ3Vyc29yLmNwcCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlLmNwcCIKICNpbmNsdWRl
ICJKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2VFeGNlcHRp
b24uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGJhZWNiMzEwYTc0ZTQ1NTY3MzVjNjE2YTMwNTdl
MWQzMGMyOTc5ZjEuLjFkYWRlYzU1OTg5NzBhYTVkMTlkNGJkYzU1NGQ1MmJiZGU3MTUzMGUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIyNiw2ICsyMjYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBI
VE1MVmlkZW9FbGVtZW50IFwKICAgICBIaXN0b3J5IFwKICAgICBJREJBbnkgXAorICAgIElEQkN1
cnNvciBcCiAgICAgSURCRGF0YWJhc2VFcnJvciBcCiAgICAgSURCRGF0YWJhc2VFeGNlcHRpb24g
XAogICAgIElEQkRhdGFiYXNlIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDhkMWU2ZGVkMDM4ZDA0OWZjOTEwNTdmMjUx
MGQyZGY4Yzc2NmIyNmUuLjkyODM4NGNkYzJhYTZmN2YzMTY2ZmFiNGYxNGI4NmJlZTNjMjJlYjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtMjg2MSw2ICsyODYxLDExIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9zdG9yYWdlL0lEQkFueS5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgg
XAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAgXAorCVdlYkNvcmUvc3RvcmFnZS9J
REJDdXJzb3IuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgXAorCVdlYkNvcmUv
c3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgXAorCVdlYkNvcmUvc3RvcmFnZS9JREJD
dXJzb3JCYWNrZW5kSW1wbC5oIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZS5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAJV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWYzNmM5ZDlhNTgxZWNhZDEyYTkwYmM1NGM2
Y2VhMzkxNzUxZjM2Yy4uMDg4YmQ0N2E0ZTVkODk3NzdmZTI5N2ZhNTRiOTA0MmI2MjBjZDIzZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTIzNyw2ICsyMzcsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvRmlsZVN5c3RlbUNh
bGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9GbGFncy5pZGwnLAogICAgICAgICAg
ICAgJ3N0b3JhZ2UvSURCQW55LmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3Iu
aWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJEYXRhYmFzZS5pZGwnLApAQCAtMzQ5Nyw2ICszNDk4LDExIEBACiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJBbnkuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkFueS5o
JywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkNhbGxiYWNrcy5oJywKKyAgICAgICAgICAgICdz
dG9yYWdlL0lEQkN1cnNvci5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yLmgn
LAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwJywKKyAgICAg
ICAgICAgICdzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdzdG9yYWdl
L0lEQkRhdGFiYXNlLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCcsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAyZmRmY2QxMzBi
ODYxNmQyOTYzMjk2NjQ2ZDQ2OTg3NTUwYmY2ODBhLi43ZmFiNzJhOTA0NDgzMmExNzc4M2ExODA2
MjQ4Yzg1NTM3OTI4MTE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5wcmkKQEAgLTQ4Myw2ICs0ODMsNyBAQCBJRExfQklORElOR1MgKz0gXAog
ICAgIHN0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5pZGwgXAogICAgIHN0b3JhZ2UvRGF0YWJhc2VT
eW5jLmlkbCBcCiAgICAgc3RvcmFnZS9JREJBbnkuaWRsIFwKKyAgICBzdG9yYWdlL0lEQkN1cnNv
ci5pZGwgXAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwgXAogICAgIHN0b3JhZ2Uv
SURCRGF0YWJhc2VFeGNlcHRpb24uaWRsIFwKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlLmlkbCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCAwYmViNWZmNWVkMjQ3YWFkYzYwOGRiNDRiNDZkNmJmYTQzODdjZDU1Li40NWM0MzA0Mzk4
OTlkMzZkZjllMjZlYmMwNGRiZWVmMjJkZDFiNDU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI0MjUsNiArMjQyNSw5IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAgICAgYmlu
ZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oIFwKICAgICAgICAgc3RvcmFnZS9JREJBbnku
aCBcCiAgICAgICAgIHN0b3JhZ2UvSURCQ2FsbGJhY2tzLmggXAorICAgICAgICBzdG9yYWdlL0lE
QkN1cnNvci5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIFwgICAg
ICAgIAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCBcICAgICAg
ICAKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5oIFwKICAgICAgICAgc3RvcmFnZS9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmggXAogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZS5oIFwKQEAgLTI0NTEsNiArMjQ1NCw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJBbnlD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIFwKICAg
ICAgICAgc3RvcmFnZS9JREJBbnkuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3IuY3Bw
IFwKKyAgICAgICAgc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgXAogICAgICAgICBz
dG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJhNTg3MzcyYmJiZTZiZDZlMWEyZjk5
YWI5NzZjZTUzMDMxYTFiYjIuLjU2NGI1ZTRjODRiNWEwYTVmYWQ5MTRhMjdlNGU0MGI1YWJjZWM2
ZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDQyOTEsNiArNDQy
OTEsMTEwIEBACiAJCQkJCQkvPg0KIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9G
aWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vyc29yLmNw
cCINCisgICAgICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAg
ICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAg
ICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAg
ICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAgICAg
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAg
ICAgICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQor
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQor
ICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJh
dGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKyAgICAgICAgICAg
IEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8
VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAg
ICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNv
bmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKyAg
ICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAg
ICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisg
ICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAg
ICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
DQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0K
KyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAg
ICAgICA8L0ZpbGU+DQorICAgICAgICA8RmlsZQ0KKyAgICAgICAgICBSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJD
dXJzb3IuaCINCisgICAgICAgICAgPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisg
ICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAgICAg
ICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAgICAg
ICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQor
ICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiINCisgICAgICAgICAgICBFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRvb2wNCisgICAg
ICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAgLz4NCisgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9u
DQorICAgICAgICAgICAgTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorICAgICAgICAgICAg
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxU
b29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAg
IC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29u
ZmlndXJhdGlvbg0KKyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKyAgICAg
ICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAg
ICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAg
ICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8
RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMy
Ig0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4N
CisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorICAgICAgICAg
ICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorICAgICAgICA8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCINCiAJCQkJCT4NCkBA
IC01MDEzNiw2ICs1MDI0MCwyNiBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJD
YWxsYmFja3MuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvci5jcHAiDQorICAgICAgICA+DQorICAg
ICAgPC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3Jh
Z2VcSURCQ3Vyc29yLmgiDQorICAgICAgICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAgIDxGaWxl
DQorICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yQmFja2VuZEltcGwu
Y3BwIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvckJhY2tlbmRJbXBsLmgiDQorICAgICAg
ICA+DQorICAgICAgPC9GaWxlPg0KKyAgICAgIDxGaWxlDQorICAgICAgICBSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIg0KKyAgICAgICAgPg0KKyAg
ICAgIDwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURC
RGF0YWJhc2UuaCINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOTAwYThiNDRlNmVjOWQ5MzkxNzUyMWU2ZmZmNTM4MmQyNzRlOGZlNy4uM2Rk
Y2NlOGI2ZjliMDdiZjA0NzYzMzgxZWI4M2NjODJjZTRkODViMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTQsNiArMTQxNCwxMyBAQAogCQk3QUVE
M0UwNjBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRUQzRTA0MEZCQjFFQUEwMEQyQjAz
QyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovOyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4
ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9p
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QUZENEZGNDExMzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAw
MzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4MUJFMjA5ODExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3IuY3BwICovOyB9OworCQk4MUJF
MjA5NzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yLmggKi87IH07CisJCTgxQkUyMDk4MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JC
YWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
ICovOyB9OworCQk4MUJFMjA5OTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZElt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUy
MDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovOyB9OworCQk4
MUJFMjA5QjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTYxMUY0
QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKKwkJODFC
RTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE3MTFGNEI2NkYwMDkxNURGQSAv
KiBKU0lEQkN1cnNvci5jcHAgKi87IH07CisJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBK
U0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07CiAJCTgy
QjY1ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAwRTA1
MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi87
IH07CiAJCTg0MUZEQzI2MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFG
REMyNDExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovOyB9
OwpAQCAtNzIwOSw2ICs3MjE2LDEzIEBACiAJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJ
bnNwZWN0b3JGcm9udGVuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEE4QTEx
MzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTIxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTMxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMDk0MTFGNEFCOEQwMDkxNURG
QSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODFCRTIwOUMxMUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCQ3Vyc29yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURC
Q3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCQ3Vyc29yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAv
KiBJbnNwZWN0b3JDU1NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JDU1NTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5
OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NDFGREMyNDExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEzODksMTIgKzExNDAzLDE5IEBACiAJCQkJQzU4NUE2OTkxMUQ0RkIzRDAwNEMzRTRCIC8q
IElEQkFueS5oICovLAogCQkJCUM1ODVBNjlBMTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaWRs
ICovLAogCQkJCUM1ODVBNjlCMTFENEZCM0QwMDRDM0U0QiAvKiBJREJDYWxsYmFja3MuaCAqLywK
KwkJCQk4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmNwcCAqLywKKwkJCQk4
MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggKi8sCisJCQkJODFCRTIwOUMx
MUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8sCisJCQkJODFCRTIwOTMxMUY0QUI4
RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLywKKwkJCQk4MUJFMjA5NDEx
RjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCAqLywKKwkJCQk4MUJFMjA5
NTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovLAogCQkJ
CUM1ODVBNkEzMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZS5jcHAgKi8sCiAJCQkJQzU4
NUE2QTQxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlLmggKi8sCiAJCQkJQzU4NUE2QTUx
MUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQlDNTg1QTZBMTExRDRG
QjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgKi8sCiAJCQkJQjYxNzYy
NjExMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLywKIAkJCQlC
NjE3NjI1MzEyMDMzNzRGMDBFRjkxMTQgLyogSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgg
Ki8sCisKIAkJCQlDNTg1QTY5RDExRDRGQjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VFcnJvci5o
ICovLAogCQkJCUM1ODVBNjlFMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZUVycm9yLmlk
bCAqLywKIAkJCQlDNTg1QTY5RjExRDRGQjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VFeGNlcHRp
b24uaCAqLywKQEAgLTE0ODUxLDYgKzE0ODcyLDggQEAKIAkJCQk4OTdBMkQ5MjEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5oICovLAogCQkJCUM1ODVBNjY0MTFENEZCMDcwMDRDM0U0QiAvKiBK
U0lEQkFueS5jcHAgKi8sCiAJCQkJQzU4NUE2NjUxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCQW55
LmggKi8sCisJCQkJODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAq
LywKKwkJCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLywKIAkJ
CQlDNTg1QTY2NjExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZUVycm9yLmNwcCAqLywK
IAkJCQlDNTg1QTY2NzExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZUVycm9yLmggKi8s
CiAJCQkJQzU4NUE2NjgxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJhc2VFeGNlcHRpb24u
Y3BwICovLApAQCAtMTk5ODEsOCArMjAwMDQsMTIgQEAKIAkJCQk1MTU3ODhDMTEyMDc4NTJDMDBB
MzdDNEEgLyogVmlzaXRlZExpbmtTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDM5RDAw
NkQxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJODFCRTIwOTcxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODFCRTIwOTkxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tl
bmRJbXBsLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MUJFMjA5QjExRjRBQjhEMDA5MTVERkEgLyog
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjYxNzYyNTQx
MjAzMzc0RjAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjYxNzYyNjIxMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBK
U0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjM4Niw2ICsyMjQxMyw5IEBACiAJCQkJ
OTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhT
U0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MUJFMjA5ODExRjRBQjhEMDA5
MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODFC
RTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCmluZGV4IDEx
NTMyZTFmZWEwZDI0NjdhMzkwYjhjZTRiY2JmNWE1ZTFiM2YxNWUuLjJiN2RmODA0OWM3ODU5ZDFi
MmM5MjA0MzVjMDJjMmM5ODBkYjk4OWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJWOElEQkFu
eS5oIgogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiVjhJ
REJDdXJzb3IuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhJREJG
YWN0b3J5LmgiCiAjaW5jbHVkZSAiVjhJREJJbmRleC5oIgpAQCAtNTAsNiArNTEsOCBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwpCiAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgogICAgICAgICByZXR1cm4g
djg6Ok51bGwoKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yVHlwZToKKyAgICAgICAgcmV0
dXJuIHRvVjgoaW1wbC0+aWRiQ3Vyc29yKCkpOwogICAgIGNhc2UgSURCQW55OjpJREJEYXRhYmFz
ZVR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYkRhdGFiYXNlKCkpOwogICAgIGNh
c2UgSURCQW55OjpJREJJbmRleFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IGVhZmJmNTMxMjRjNGJi
ZDkzMGE0NDUyZDYyMjgxZTcxYzJjZDEwM2QuLmNmYWE4NGFkZTU3NDUxNmMwNjg3ZjU4NDY3MzAw
N2Y2OTVjYWZmNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkN1cnNvci5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIklEQklu
ZGV4LmgiCkBAIC01MCw2ICs1MSwxMiBAQCBJREJBbnk6On5JREJBbnkoKQogewogfQogCitQYXNz
UmVmUHRyPElEQkN1cnNvcj4gSURCQW55OjppZGJDdXJzb3IoKQoreworICAgIEFTU0VSVChtX3R5
cGUgPT0gSURCQ3Vyc29yVHlwZSk7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yOworfQorCiBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlPiBJREJBbnk6OmlkYkRhdGFiYXNlKCkKIHsKICAgICBBU1NFUlQo
bV90eXBlID09IElEQkRhdGFiYXNlVHlwZSk7CkBAIC05Miw2ICs5OSwxMyBAQCB2b2lkIElEQkFu
eTo6c2V0KCkKICAgICBtX3R5cGUgPSBOdWxsVHlwZTsKIH0KIAordm9pZCBJREJBbnk6OnNldChQ
YXNzUmVmUHRyPElEQkN1cnNvcj4gdmFsdWUpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRl
ZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBJREJDdXJzb3JUeXBlOworICAgIG1faWRiQ3Vyc29y
ID0gdmFsdWU7Cit9CisKIHZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4g
dmFsdWUpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApp
bmRleCBkOTAyMmYxNWRlNzU2N2NhZjgwZjdhMjk3YTEzZDMxZDRjN2Q1ZDAxLi4wN2U5NzE0ZmYy
M2I1NGM1ZDc2Y2M2NDZiZGVmMmE2MzQyZDJiMDQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCQW55LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCkBAIC0zNCw2ICszNCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQ3Vyc29yOwogY2xhc3MgSURC
RGF0YWJhc2U7CiBjbGFzcyBJREJJbmRleDsKIGNsYXNzIElEQktleTsKQEAgLTU2LDYgKzU3LDcg
QEAgcHVibGljOgogICAgIGVudW0gVHlwZSB7CiAgICAgICAgIFVuZGVmaW5lZFR5cGUgPSAwLAog
ICAgICAgICBOdWxsVHlwZSwKKyAgICAgICAgSURCQ3Vyc29yVHlwZSwKICAgICAgICAgSURCRGF0
YWJhc2VUeXBlLAogICAgICAgICBJREJGYWN0b3J5VHlwZSwKICAgICAgICAgSURCSW5kZXhUeXBl
LApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KICAgICAvLyBVc2UgdHlwZSgpIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25l
IG9mIHRoZXNlIHlvdSdyZSBhbGxvd2VkIHRvIGNhbGwuCisgICAgUGFzc1JlZlB0cjxJREJDdXJz
b3I+IGlkYkN1cnNvcigpOwogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNl
KCk7CiAgICAgUGFzc1JlZlB0cjxJREJGYWN0b3J5PiBpZGJGYWN0b3J5KCk7CiAgICAgUGFzc1Jl
ZlB0cjxJREJJbmRleD4gaWRiSW5kZXgoKTsKQEAgLTc1LDYgKzc4LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gU2V0IGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLgogICAgIHZvaWQgc2V0KCk7IC8vIEZv
ciAibnVsbCIuCisgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2b2lk
IHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJ
REJGYWN0b3J5Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJJbmRleD4pOwpAQCAtODgs
NiArOTIsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogCiAgICAgLy8gT25seSBvbmUg
b2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQgYW55IGdpdmVuIHRpbWUu
CisgICAgUmVmUHRyPElEQkN1cnNvcj4gbV9pZGJDdXJzb3I7CiAgICAgUmVmUHRyPElEQkRhdGFi
YXNlPiBtX2lkYkRhdGFiYXNlOwogICAgIFJlZlB0cjxJREJGYWN0b3J5PiBtX2lkYkZhY3Rvcnk7
CiAgICAgUmVmUHRyPElEQkluZGV4PiBtX2lkYkluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCmlu
ZGV4IDg3MWRkNTVhY2EzZmU2NGJiYWU1ZDdhOTA0ZGIzZTMzOTY3ZGQ2ZDEuLmQ0YWIwMWI2NTdj
Nzc0Mzc3NGY1YjQ2M2I1NDhjZGFkMGU1Y2Y1MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJDYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZm5kZWYgSURCQ2FsbGJhY2tzX2gKICNkZWZpbmUgSURCQ2FsbGJh
Y2tzX2gKIAorI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCkBAIC00Nyw2ICs0
OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgPSAwOyAv
LyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ3Vyc29yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTc1MmY1ZDg5ZDViOTkxNWQ3MTQ2ZWE4OThh
ZTgwODNmMjM3YTY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
ci5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJREJDdXJzb3IuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5j
bHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUg
IklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
SURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kKQorICAgIDogbV9iYWNrZW5kKGJhY2tlbmQpCit7Cit9CisKK0lEQkN1cnNvcjo6
fklEQkN1cnNvcigpCit7Cit9CisKK3Vuc2lnbmVkIHNob3J0IElEQkN1cnNvcjo6ZGlyZWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNrZW5kLT5kaXJlY3Rpb24oKTsKK30KKworUGFz
c1JlZlB0cjxJREJLZXk+IElEQkN1cnNvcjo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YWNrZW5kLT5rZXkoKTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNvcjo6dmFsdWUo
KSBjb25zdAoreworICAgIHJldHVybiBtX2JhY2tlbmQtPnZhbHVlKCk7Cit9CisKK1Bhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQoreworICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKKyAgICBtX2JhY2tlbmQtPnVwZGF0ZSh2YWx1ZSwgcmVx
dWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQoreworICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3Jl
YXRlKHRoaXMpKTsKKyAgICBtX2JhY2tlbmQtPmNvbnRpbnVlRnVuY3Rpb24oa2V5LCByZXF1ZXN0
KTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCQ3Vyc29yOjpyZW1vdmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
K3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9iYWNrZW5kLT5yZW1vdmUocmVx
dWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJz
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MWQ2MTA3YjQzNGU2ODQ1MTk4OTFlNDI3OTYzZWJjN2NjMTZhYTQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5oCkBAIC0wLDAg
KzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvcl9oCisjZGVmaW5lIElEQkN1cnNvcl9o
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQkFueTsKK2NsYXNzIElEQkNhbGxiYWNrczsKK2NsYXNzIElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U7CitjbGFzcyBJREJLZXk7CitjbGFzcyBJREJSZXF1ZXN0OworY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKKworY2xh
c3MgSURCQ3Vyc29yIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCQ3Vyc29yPiB7CitwdWJs
aWM6CisgICAgLy8gS2VlcCBpbiBzeW5jIHdpdGggd2hhdCdzIGluIHRoZSAuaWRsIGZpbGUuCisg
ICAgZW51bSBEaXJlY3Rpb24geworICAgICAgICBORVhUID0gMCwKKyAgICAgICAgTkVYVF9OT19E
VVBMSUNBVEUgPSAxLAorICAgICAgICBQUkVWID0gMiwKKyAgICAgICAgUFJFVl9OT19EVVBMSUNB
VEUgPSAzLAorICAgIH07CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUo
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3IoYmFja2VuZCkpOworICAgIH0KKyAg
ICB2aXJ0dWFsIH5JREJDdXJzb3IoKTsKKworICAgIC8vIEltcGxlbWVudCB0aGUgSURMCisgICAg
dmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
QW55PiB2YWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiB1
cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvbnRpbnVlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiA9IDApOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IElEQkN1cnNvcihQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKKworICAgIFJlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vyc29yX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3IuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGVhYTRjYmIzN2JhMjNiN2FhN2QzN2EyYWU0N2U2YzJiNDZlYWVhNAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaWRsCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJDdXJzb3IgeworICAgICAgICAvLyBL
ZWVwIGluIHN5bmMgd2l0aCB3aGF0J3MgaW4gdGhlIC5oIGZpbGUuCisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5FWFQgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVhU
X05PX0RVUExJQ0FURSA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBSRVYgPSAy
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQUkVWX05PX0RVUExJQ0FURSA9IDM7CisK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktleSBrZXk7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJBbnkgdmFsdWU7CisKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgdXBkYXRlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1
ZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRh
dGlvbkZ1bmN0aW9uPWNvbnRpbnVlRnVuY3Rpb25dIElEQlJlcXVlc3QgY29udGludWUoaW4gW09w
dGlvbmFsXSBJREJLZXkga2V5KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIElEQlJlcXVlc3QgcmVtb3ZlKCk7ICAgICAgICAKKyAgICB9OworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiZDg1MWI0M2NkMzAy
YzhiMzk1YTkzZjI4ZTQ3MDYxMzM5N2I3NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW1wbC5oIgorCisj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNs
dWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUg
IklEQk9iamVjdFN0b3JlSW1wbC5oIgorI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJREJD
dXJzb3JCYWNrZW5kSW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwoUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUltcGw+IGlkYk9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQktleT4g
a2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCisgICAgOiBtX2lk
Yk9iamVjdFN0b3JlKGlkYk9iamVjdFN0b3JlKQorICAgICwgbV9rZXlSYW5nZShrZXlSYW5nZSkK
KyAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAsIG1fa2V5KGtleSkKKyAgICAsIG1f
dmFsdWUoSURCQW55OjpjcmVhdGUodmFsdWUuZ2V0KCkpKQoreworfQorCitJREJDdXJzb3JCYWNr
ZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkKK3sKK30KKwordW5zaWduZWQgc2hvcnQg
SURCQ3Vyc29yQmFja2VuZEltcGw6OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZGlyZWN0aW9uOworfQorCitQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2VuZEltcGw6
OmtleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5OworfQorCitQYXNzUmVmUHRyPElEQkFu
eT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92
YWx1ZTsKK30KKwordm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6dXBkYXRlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBtZXRob2QuCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24oUGFz
c1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pCit7CisgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0aGlzIG1ldGhvZC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6cmVtb3ZlKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgbWV0aG9kLgorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJDdXJzb3JCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmEyOGQ3NTMwMTkyNDQwNmQ1NjkxYjY5Y2U2OTljNTNlMTRiMTJk
OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1w
bC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgSURCQ3Vyc29yQmFja2VuZElt
cGxfaAorI2RlZmluZSBJREJDdXJzb3JCYWNrZW5kSW1wbF9oCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBJREJPYmplY3RTdG9yZUlt
cGw7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNzIElEQkN1cnNvckJhY2tl
bmRJbXBsIDogcHVibGljIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiBjcmVhdGUoUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvckJhY2tlbmRJbXBsKG9iamVj
dFN0b3JlLCBrZXlSYW5nZSwgZGlyZWN0aW9uLCBrZXksIHZhbHVlKSk7CisgICAgfQorICAgIHZp
cnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNo
b3J0IGRpcmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVl
RnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwor
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKworcHJp
dmF0ZToKKyAgICBJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
SW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBJREJDdXJzb3I6OkRpcmVjdGlvbiwgUGFz
c1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworCisg
ICAgUmVmUHRyPElEQk9iamVjdFN0b3JlSW1wbD4gbV9pZGJPYmplY3RTdG9yZTsKKyAgICBSZWZQ
dHI8SURCS2V5UmFuZ2U+IG1fa2V5UmFuZ2U7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gbV9k
aXJlY3Rpb247CisgICAgUmVmUHRyPElEQktleT4gbV9rZXk7CisgICAgUmVmUHRyPElEQkFueT4g
bV92YWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCQ3Vyc29yQmFja2VuZEltcGxfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGIyMDljNDk1YzVmYTdmODc2YzA4NjhlZmJjZTRlMjRmMjEyMjQ5ZQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZV9oCisjZGVm
aW5lIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2VfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQkFueTsKK2NsYXNzIElEQkNhbGxiYWNrczsKK2NsYXNzIElEQktleTsK
K2NsYXNzIElEQlJlcXVlc3Q7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNz
IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+SURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZSgpIHt9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVj
dGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4gdmFsdWUoKSBjb25zdCA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4pID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisK
KyNlbmRpZiAvLyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmgKaW5kZXggNGE1M2ViNDVjMTI0MzA0MjdkOWY5YjE5Njg5NDhkNDAwNjA1YTQwMS4uNDI1
MWM4MWRjMDhkMzBhMGEwYmM4YjA1YzcxNTA2MmMxMTI0MzNkZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVfaAogI2Rl
ZmluZSBJREJPYmplY3RTdG9yZV9oCiAKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtMzUs
NyArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiBj
bGFzcyBJREJDYWxsYmFja3M7CitjbGFzcyBJREJDdXJzb3I7CiBjbGFzcyBJREJJbmRleEJhY2tl
bmRJbnRlcmZhY2U7CitjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIElEQktleTsKIGNsYXNzIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIApAQCAtNTQsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoLCBib29sIHVuaXF1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3Qg
U3RyaW5nJiBuYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZUltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAK
aW5kZXggOGM2NDQ0YTI0YTVkN2Y4N2JiZWNhNmE4M2Q0ZWFiMmNjYzMxMGQwNi4uY2EwYmExMTY4
ZjhiNjFkZTM0OGNjNjZlM2ExMDk5N2NhZTc3OTRiMyAxMDA3NTUKLS0tIGEvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlSW1wbC5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlz
dC5oIgogI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJDYWxs
YmFja3MuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW1wbC5oIgor
I2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCS2V5VHJlZS5oIgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC0xMzAsNiArMTMyLDE1IEBAIHZvaWQgSURCT2Jq
ZWN0U3RvcmVJbXBsOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoKTsKIH0KIAordm9pZCBJREJP
YmplY3RTdG9yZUltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVj
dGlvbikKK3sKKyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSByYW5nZS0+bGVmdCgpOworICAgIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gbV90cmVlLT5nZXQoa2V5LmdldCgp
KTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yOworICAgIGlm
ICh2YWx1ZSkKKyAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZSh0
aGlzLCByYW5nZSwgc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpEaXJlY3Rpb24+KGRpcmVjdGlvbiks
IGtleSwgdmFsdWUpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci5yZWxlYXNlKCkp
OworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZUltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZUltcGwuaAppbmRleCBmMmMyZTAzNmQxMDdlYTdlNDAwNzIwYzc0ZmQzODdiMjgyMTFiYTAzLi41
NzE4ZmM1YTA0ZDNlOThkYTIxZTRiNWUwOTczYzRkMmJhODJkOGFmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
Qk9iamVjdFN0b3JlSW1wbC5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVm
UHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsK
ICAgICB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KTsKIAorICAgIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rp
b24pOworCiBwcml2YXRlOgogICAgIElEQk9iamVjdFN0b3JlSW1wbChjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcAppbmRleCAwNzc4MjE0ZTU2NjRjMTg3
MDQ5MjdiMDI5OWViNjM1ZWFhNzU2Zjk2Li4xMTQ5OTUyYTNlNDAyMjlhYThlYjc1NTU1OWI3Njky
MTRmYzEwNzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcApA
QCAtNjMsMzUgKzYzLDM1IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiB7CiAgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPmdldChrZXksIHJlcXVlc3QpOwot
ICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAog
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgUmVmUHRyPElEQlJlcXVl
c3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUo
dGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnB1dCh2YWx1ZSwga2V5LCB0cnVlLCByZXF1ZXN0
KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9
CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpwdXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewogICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3Jl
YXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgZmFsc2UsIHJl
cXVlc3QpOwotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2Uo
KTsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJl
bW92ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4g
a2V5KQogewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5y
ZW1vdmUoa2V5LCByZXF1ZXN0KTsKLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVx
dWVzdC5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpCiB7
CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29u
dGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPmNyZWF0ZUlu
ZGV4KG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgcmVxdWVzdCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7
CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPElEQkluZGV4
PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTEw
NSw3ICsxMDUsMTQgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OnJlbW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKIHsKICAgICBSZWZQdHI8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNy
ZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cmVtb3ZlSW5kZXgobmFtZSwgcmVxdWVz
dCk7Ci0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwor
fQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6b3BlbkN1
cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJh
bmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3Jl
YXRlKHRoaXMpKTsKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKHJlcXVlc3QsIHJhbmdl
LCBkaXJlY3Rpb24pOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCmlu
ZGV4IGJmZDAxZjAwNjg4ODM0NGI3YTRlMGZlYWM1ODljNjI2NmQwZGNjMzUuLjc0NmU3NWMzNzM3
MjU0ZGZjYmUxNDBiNWIyYzhlOTQ0NjI4MGU1YmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0X2gKICNkZWZpbmUgSURCT2JqZWN0U3RvcmVSZXF1ZXN0X2gKIAorI2luY2x1ZGUgIklE
QkN1cnNvci5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0
U3RvcmUuaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKQEAgLTY0LDYgKzY2LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+
IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBy
ZW1vdmVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lKTsK
IAorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UgPSAwLCB1bnNpZ25lZCBzaG9y
dCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQpOworCiBwcml2YXRlOgogICAgIElEQk9iamVj
dFN0b3JlUmVxdWVzdChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPik7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwKaW5kZXggNmRiNmFkODI5YTZlYzcyMzVlMTc3
ZmU2OWUyM2ZiNjEyMjA0YzI1Mi4uMWIxNjdmMGEwNjlmYjk4OWI4MzZlYTNiNjkwNWRlMGExNmVh
ODNjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5p
ZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwKQEAgLTQx
LDYgKzQxLDggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBJREJJbmRleCBpbmRleChpbiBE
T01TdHJpbmcgbmFtZSk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJSZXF1ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsKIAorICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGlu
IFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5h
bWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcga2V5UGF0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
Z0xpc3QgaW5kZXhOYW1lczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBiMGJlOTRiMDI2YWRi
NjI1YTQxZjJhMzBlNzM0YTg0MDg1NGNjODU5Li4yZTFmOTliNzZmZDFlYjY5ZmM4MTI1NGM1YzU2
NzRjMjE3NmM0Yzg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC03Myw2ICs3MywxMiBAQCB2
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcygpCiAgICAgbV9yZXN1bHQtPnNldCgpOwogfQogCit2
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+IGlkYkN1cnNvckJhY2tlbmQpCit7CisgICAgb25FdmVudENvbW1vbigpOworICAgIG1f
cmVzdWx0LT5zZXQoSURCQ3Vyc29yOjpjcmVhdGUoaWRiQ3Vyc29yQmFja2VuZCkpOworfQorCiB2
b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZT4gaWRiRGF0YWJhc2VCYWNrZW5kKQogewogICAgIG9uRXZlbnRDb21tb24oKTsKQEAg
LTE2Miw3ICsxNjgsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRpbWVyRmlyZWQoVGltZXI8SURCUmVx
dWVzdD4qKQogICAgICAgICBkaXNwYXRjaEV2ZW50KElEQkVycm9yRXZlbnQ6OmNyZWF0ZShtX3Nv
dXJjZSwgKm1fZXJyb3IpKTsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQobV9yZXN1bHQt
PnR5cGUoKSAhPSBJREJBbnk6OlVuZGVmaW5lZFR5cGUpOwotICAgICAgICBkaXNwYXRjaEV2ZW50
KElEQlN1Y2Nlc3NFdmVudDo6Y3JlYXRlKG1fc291cmNlLCBtX3Jlc3VsdCkpOyAgICAgICAgCisg
ICAgICAgIGRpc3BhdGNoRXZlbnQoSURCU3VjY2Vzc0V2ZW50OjpjcmVhdGUobV9zb3VyY2UsIG1f
cmVzdWx0KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVx
dWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAppbmRleCAyNTVhZTQ4Nzc0ZTcx
MjVkNTlhMTZlYTE4YmQxODI5OWJlMjIyOTk5Li40ZGM0MjUzOGVmOTY3ODQ4ZTc1YmJjN2ZhYWU2
MmI5YjNkOGEyMWRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
OwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9yICJudWxsIi4KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
Pik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQktleT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJPYmplY3RTdG9yZT4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNThiYTI3ZGE1NWEyZjhkZGNmNDg0ODNk
YThkYzdjZjIwNTJjY2NiNi4uZDMzZjVjOWY1NmVkMWJiNTE5ZWUzMjdlOWY1YjE4YjQ4NGI1YmM0
OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTAtMDgtMDQgIE1hcmN1cyBCdWxh
Y2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGluZ3MgYW5kIHBsdW1iaW5nIGZvciBJREJD
dXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0
bWwKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYklEQkNhbGxi
YWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6Cisg
ICAgICAgICogcHVibGljL1dlYklEQkN1cnNvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ3Vyc29yOjp+V2ViSURCQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vy
c29yOjpkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3I6OmtleSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6dmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDdXJzb3I6OnVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6Y29u
dGludWVGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6cmVtb3ZlKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViSURCS2V5UmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZSk6CisgICAgICAgICogcHVibGljL1dl
YklEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlOjpv
cGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5OjpJREJDdXJz
b3JCYWNrZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5
Ojp+SURCQ3Vyc29yQmFja2VuZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJh
Y2tlbmRQcm94eTo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tl
bmRQcm94eTo6a2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRQcm94eTo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5Ojp1cGRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5Ojpjb250aW51ZUZ1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRQcm94eTo6cmVtb3ZlKToK
KyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAq
IHNyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlUHJveHk6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9JREJPYmplY3RTdG9yZVBy
b3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OldlYklEQkN1cnNv
ckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjp+V2ViSURCQ3Vyc29y
SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OmRpcmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OmtleSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkN1cnNvckltcGw6OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29y
SW1wbDo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29ySW1wbDo6Y29udGlu
dWVGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OnJlbW92ZSk6
CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuaDogQWRkZWQuCisgICAgICAgICogc3Jj
L1dlYklEQktleVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJh
bmdlOjpXZWJJREJLZXlSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjp+
V2ViSURCS2V5UmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6bGVmdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQktleVJhbmdlOjpmbGFncyk6CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0
b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlSW1wbDo6b3Bl
bkN1cnNvcik6CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oOgorCiAyMDEw
LTA3LTMwICBBbmRyZWkgUG9wZXNjdSAgPGFuZHJlaXBAZGhjcC0xNzItMTYtMTQtMTIubG9uLmNv
cnAuZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCmluZGV4IDlkYTg1Y2Q3Y2EzOGM1MDcyNzgxMzE1ODA3ZWMzOTVjZGI1YmQyNDQuLjkx
MDQ4ODgzZjBmZTQ4OTVkZDYyMDRlZDAwMjU2N2IwZGY3NDdjMmEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBA
IC0xNzQsOSArMTc0LDExIEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbWFnZS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlRGVjb2Rlci5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYklEQkNhbGxiYWNrcy5oJywKKyAgICAgICAgICAgICAgICAncHVibGlj
L1dlYklEQkN1cnNvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkRhdGFiYXNl
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2VFcnJvci5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYklEQkZhY3RvcnkuaCcsCisgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklE
QkluZGV4LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaCcsCkBAIC0zMTMsNiArMzE1LDgg
QEAKICAgICAgICAgICAgICAgICAnc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgnLAorICAgICAgICAgICAgICAgICdzcmMvSURC
Q3Vyc29yQmFja2VuZFByb3h5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9JREJDdXJzb3JC
YWNrZW5kUHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJEYXRhYmFzZVByb3h5LmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJEYXRhYmFzZVByb3h5LmgnLAogICAgICAgICAg
ICAgICAgICdzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAnLApAQCAtNDA0LDYgKzQwOCw4
IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNv
ckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuaCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYklEQkRhdGFiYXNlSW1wbC5oJywKQEAgLTQxMiw2ICs0MTgsNyBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJJbmRleEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXkuY3BwJywKKyAg
ICAgICAgICAgICAgICAnc3JjL1dlYklEQktleVJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQk9iamVjdFN0b3JlSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlQ0cu
Y3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tz
LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCmluZGV4IGNlZTg2
MTJjY2JhYWM4NTY4YTkxYzcyMDk5ODJmMDg2MzA1M2U2MTcuLjJlMmM0ZDI5OWUwYzhjN2Y1NzVk
YWYyYjRlODA3ZmU3NzUzY2Q2ZDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxs
YmFja3MuaApAQCAtMzAsNiArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3Mg
V2ViSURCQ3Vyc29yOwogY2xhc3MgV2ViSURCRGF0YWJhc2U7CiBjbGFzcyBXZWJJREJEYXRhYmFz
ZUVycm9yOwogY2xhc3MgV2ViSURCS2V5OwpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yIHRoZSByZXN0LCBwYXNzIG93bmVyc2hpcCB0byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50
ZXIuCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcygpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIEZvciAibnVsbCIuCisg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJDdXJzb3IqKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJh
c2UqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkluZGV4KikgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ3Vyc29yLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkN1cnNvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI3ZWI5MjQ3YWU3YmJlOWFiMmJiNjk5ZjE3ODhiMTRkOWEwZjBjOTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkN1cnNvci5oCkBAIC0w
LDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkN1cnNvcl9oCisjZGVmaW5lIFdlYklE
QkN1cnNvcl9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJJREJDYWxs
YmFja3MuaCIKKyNpbmNsdWRlICJXZWJJREJLZXkuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxl
dmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitjbGFzcyBXZWJJREJDdXJzb3IgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfldlYklEQkN1cnNvcigpIHsgfQorCisgICAgdmlydHVhbCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdAorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFdl
YklEQktleSBrZXkoKSBjb25zdAorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gV2ViSURCS2V5KCIiKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAg
ICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKGNvbnN0
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIFdlYklEQkNhbGxiYWNrcyopCisgICAgeworICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tzKikK
KyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFdlYklEQkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJDdXJzb3JfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJLZXlSYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmODQyY2VjYzhiOGExYmU4ZWZiZGIwODI4NmQy
NzhkZTU1MmU1MDIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQktleVJhbmdlLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSURCS2V5
UmFuZ2VfaAorI2RlZmluZSBXZWJJREJLZXlSYW5nZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24u
aCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xh
c3MgSURCS2V5UmFuZ2U7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYklEQktl
eTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2ViSURCS2V5UmFuZ2UgeworcHVibGljOgor
ICAgIH5XZWJJREJLZXlSYW5nZSgpIHsgcmVzZXQoKTsgfQorCisgICAgV2ViSURCS2V5UmFuZ2Uo
Y29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlKSB7IGFzc2lnbihrZXlSYW5nZSk7IH0KKyAg
ICBXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYg
cmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKSB7IGFzc2lnbihsZWZ0LCByaWdodCwgZmxhZ3Mp
OyB9CisKKyAgICBXRUJLSVRfQVBJIFdlYklEQktleSBsZWZ0KCkgY29uc3Q7CisgICAgV0VCS0lU
X0FQSSBXZWJJREJLZXkgcmlnaHQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHVuc2lnbmVkIHNo
b3J0IGZsYWdzKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdl
YklEQktleVJhbmdlJik7CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJJREJL
ZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYgcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsK
KyAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElP
TgorICAgIFdlYklEQktleVJhbmdlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJL
ZXlSYW5nZT4mKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29y
ZTo6SURCS2V5UmFuZ2U+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gV2ViSURCS2V5UmFuZ2VfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJPYmplY3RTdG9yZS5oCmluZGV4IGZiODFmYjljZTFkYzA5OTNhMmEyZDE3OGI2NzUyNjU2YWNl
ZTJlM2EuLjc0NTJiZTk5YjQwYzBiZDIyNjk1MDQyNzEwYzlkYThiZjliMjA5ZDAgMTAwNzU1Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKQEAgLTMzLDYgKzMzLDggQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYklEQktleVJhbmdlOworCiAvLyBTZWUg
Y29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0
aGVzZSBjbGFzc2VzLgogY2xhc3MgV2ViSURCT2JqZWN0U3RvcmUgewogcHVibGljOgpAQCAtNzks
NiArODEsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJREJL
ZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKikKKyAg
ICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAgICAgLy8g
RklYTUU6IGZpbmlzaC4KIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5jcHAKaW5kZXggYThkMTBjNjk3MGRjYjAyNDY0YTBmMjYyYmQwMjI2MGM1NTIwZjVhYi4uYWIz
ZGUyOTdjNjBmZDMwZmFlYTFlOTYwMDVjMjNjM2EwNGM1MmY3ZSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJ
REJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogI2luY2x1
ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwuaCIKICNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCkBAIC02OSw2ICs3MCwxMiBAQCB2
b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1cnNvckJhY2tlbmQpCit7CisgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsKGlkYkN1cnNvckJh
Y2tlbmQpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIElEQkNhbGxiYWNr
c1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
IGlkYkRhdGFiYXNlQmFja2VuZCkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKG5ldyBX
ZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbChpZGJEYXRhYmFzZUJhY2tlbmQpKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBhMzFmN2FmMTIwNmUzZDRlYWZkZWVk
YjIxMDVlMTlkYzQxMzljOThjLi42ZWRiY2MxN2JkYjFkMWY5MWU5NTQ4MjcwOTc3NTBjOWU2YTli
ZjNiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC00OSw2ICs0
OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9yICJu
dWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDdXJzb3JCYWNrZW5kUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZjAwYjc3ODdlMmQ4NDIwZGZi
ZjE5NDhkOWI1ZTg5MWRjOWJhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kUHJveHkuaCIKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5j
bHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CisjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZT4gSURCQ3Vyc29yQmFja2VuZFByb3h5OjpjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6
OldlYklEQkN1cnNvcj4gaWRiQ3Vyc29yKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURC
Q3Vyc29yQmFja2VuZFByb3h5KGlkYkN1cnNvcikpOworfQorCitJREJDdXJzb3JCYWNrZW5kUHJv
eHk6OklEQkN1cnNvckJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29y
PiBpZGJDdXJzb3IpCisgICAgOiBtX2lkYkN1cnNvcihpZGJDdXJzb3IpCit7Cit9CisKK0lEQkN1
cnNvckJhY2tlbmRQcm94eTo6fklEQkN1cnNvckJhY2tlbmRQcm94eSgpCit7Cit9CisKK3Vuc2ln
bmVkIHNob3J0IElEQkN1cnNvckJhY2tlbmRQcm94eTo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigpOworfQorCitQYXNzUmVmUHRyPElEQktl
eT4gSURCQ3Vyc29yQmFja2VuZFByb3h5OjprZXkoKSBjb25zdAoreworICAgIHJldHVybiBtX2lk
YkN1cnNvci0+a2V5KCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCQW55PiBJREJDdXJzb3JCYWNrZW5k
UHJveHk6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiB2YWx1ZSA9IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPihtX2lkYkN1cnNvci0+
dmFsdWUoKSk7CisgICAgcmV0dXJuIElEQkFueTo6Y3JlYXRlKHZhbHVlLmdldCgpKTsKK30KKwor
dm9pZCBJREJDdXJzb3JCYWNrZW5kUHJveHk6OnVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7
CisgICAgbV9pZGJDdXJzb3ItPnVwZGF0ZSh2YWx1ZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwo
Y2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgSURCQ3Vyc29yQmFja2VuZFByb3h5Ojpjb250aW51ZUZ1
bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCit7CisgICAgbV9pZGJDdXJzb3ItPmNvbnRpbnVlRnVuY3Rpb24oa2V5LCBuZXcg
V2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDdXJzb3JCYWNr
ZW5kUHJveHk6OnJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorewor
ICAgIG1faWRiQ3Vyc29yLT5yZW1vdmUobmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tz
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JC
YWNrZW5kUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDhiNjIxYTFlNzUwMTUwYzNjOTdjNjJmZTI0NWFjN2ExZDk1NmJiZQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFBy
b3h5LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCQ3Vyc29yQmFja2VuZFBy
b3h5X2gKKyNkZWZpbmUgSURCQ3Vyc29yQmFja2VuZFByb3h5X2gKKworI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIgor
I2luY2x1ZGUgIldlYklEQkN1cnNvci5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkN1
cnNvckJhY2tlbmRQcm94eSA6IHB1YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4pOworICAgIHZpcnR1YWwgfklE
QkN1cnNvckJhY2tlbmRQcm94eSgpOworCisgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQW55PiB2YWx1ZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9u
KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisKK3ByaXZhdGU6Cisg
ICAgSURCQ3Vyc29yQmFja2VuZFByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJzb3I+
KTsKKworICAgIE93blB0cjxXZWJLaXQ6OldlYklEQkN1cnNvcj4gbV9pZGJDdXJzb3I7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vyc29y
QmFja2VuZFByb3h5X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0
U3RvcmVQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHku
Y3BwCmluZGV4IDg1OGVkMjBiYWNlYzBhMzE4ZDY3ZDEzZTNkMTMxZDYzNGFiMzg2MDQuLjM0Yjgw
Mzc0MmQ2ZjA2ZTdkZWQ4NzViNTc2MjQ3OWFjYTNjMmYwOTUgMTAwNzU1Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUg
IkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJ
REJJbmRleEJhY2tlbmRQcm94eS5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVk
ZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAj
aW5jbHVkZSAiV2ViSURCSW5kZXguaCIKICNpbmNsdWRlICJXZWJJREJLZXkuaCIKICNpbmNsdWRl
ICJXZWJJREJPYmplY3RTdG9yZS5oIgpAQCAtMTAxLDYgKzEwMywxMSBAQCB2b2lkIElEQk9iamVj
dFN0b3JlUHJveHk6OnJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFjawogICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUsIG5l
dyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOwogfQogCit2b2lkIElEQk9iamVjdFN0
b3JlUHJveHk6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikK
K3sKKyAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKHJhbmdlLCBkaXJlY3Rpb24s
IG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94eS5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKaW5kZXggYjM4MGJkYzRkMmUyYjhhZDA2
ZTI5YzFhNDAzOWZmMGM2M2Q3MzZlYS4uMzBmMzg2OThhYTc2YmUyZmVhODM3MDE5N2Q3ZGIwZWQ2
ZWViNzczNyAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVBy
b3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmgKQEAg
LTU0LDYgKzU0LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50
ZXJmYWNlPiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogCisgICAgdmly
dHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiByYW5nZSA9IDAsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1
cnNvcjo6TkVYVCk7CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmVQcm94eShQYXNzT3du
UHRyPFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZGJmN2Q4NTUxYzhmNjdkZjAzOTExYjBhMTU0
ZTI0MzcyNjM4Yjg1My4uZTU0MzEyMzA1MTc0ODBmZDhiYjI3NDI4ZmIzODc3ZTdlN2YzNGQ4OCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzSW1wbC5oIgogCiAjaW5jbHVkZSAi
SURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZFByb3h5LmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlUHJveHkuaCIK
ICNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRQcm94eS5oIgpAQCAtNjUsNiArNjYsMTIgQEAgdm9p
ZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoKQogICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2Vi
SURCQ3Vyc29yKiBjdXJzb3IpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJz
b3JCYWNrZW5kUHJveHk6OmNyZWF0ZShjdXJzb3IpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigp
OworfQorCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklE
QkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNz
KElEQkRhdGFiYXNlUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCBhNGQ1M2I1NWFmNGM2OTg1YmZmYTY4
YmE0M2FjZTIwMTBhZjI2NzI0Li4xODM1YzYwYzJjNDVmZGMyMDgxZTk5ZjZkNzQ4MGRmMWFlNDkx
ZGNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNDMs
NiArNDMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJL
aXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7
IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklE
QkN1cnNvciopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZSopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJJREJL
ZXkmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCSW5kZXgqKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzN2Y3
YjcwNDZhNTQ0MzUyNzQ5OTYyNGFjYTI5YTI2ZThjOTQ0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC0wLDAgKzEsNzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29ySW1wbC5o
IgorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIK
KyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSURCS2V5
LmgiCisjaW5jbHVkZSAiV2ViSURCS2V5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViSURCQ3Vyc29ySW1wbDo6V2ViSURCQ3Vyc29ySW1w
bChQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1cnNvckJhY2tlbmQp
CisgICAgOiBtX2lkYkN1cnNvckJhY2tlbmQoaWRiQ3Vyc29yQmFja2VuZCkKK3sKK30KKworV2Vi
SURCQ3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwoKQoreworfQorCit1bnNpZ25lZCBzaG9y
dCBXZWJJREJDdXJzb3JJbXBsOjpkaXJlY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2lk
YkN1cnNvckJhY2tlbmQtPmRpcmVjdGlvbigpOworfQorCitXZWJJREJLZXkgV2ViSURCQ3Vyc29y
SW1wbDo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViSURCS2V5KG1faWRiQ3Vyc29yQmFj
a2VuZC0+a2V5KCkpOworfQorCitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViSURCQ3Vyc29y
SW1wbDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkN1cnNvckJhY2tlbmQtPnZh
bHVlKCktPnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOworfQorCit2b2lkIFdlYklEQkN1cnNvcklt
cGw6OnVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlLCBXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvckJhY2tlbmQtPnVwZGF0ZSh2
YWx1ZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsKK30KKwordm9pZCBX
ZWJJREJDdXJzb3JJbXBsOjpjb250aW51ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYga2V5LCBX
ZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvckJhY2tlbmQtPmNv
bnRpbnVlRnVuY3Rpb24oa2V5LCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcykp
OworCit9CisKK3ZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6cmVtb3ZlKFdlYklEQkNhbGxiYWNrcyog
Y2FsbGJhY2tzKQoreworICAgIG1faWRiQ3Vyc29yQmFja2VuZC0+cmVtb3ZlKElEQkNhbGxiYWNr
c1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY1ZTg2YTEz
NGQ1MTkyOGVlYjIwZjczYWRjYmY2ZjEyNDczM2JkZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYklEQkN1cnNvckltcGxfaAorI2RlZmluZSBXZWJJREJDdXJzb3JJbXBsX2gK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvci5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U7IH0KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWRPYmplY3RTdG9y
ZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitjbGFzcyBXZWJJREJD
dXJzb3JJbXBsIDogcHVibGljIFdlYklEQkN1cnNvciB7CitwdWJsaWM6CisgICAgV2ViSURCQ3Vy
c29ySW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZT4pOworICAgIHZpcnR1YWwgfldlYklEQkN1cnNvckltcGwoKTsKKworICAgIHZpcnR1YWwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJJREJLZXkga2V5
KCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSYsIFdlYklEQkNhbGxiYWNrcyopOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0
aW9uKGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNrcyopOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmUoV2ViSURCQ2FsbGJhY2tzKik7CisKKyBwcml2YXRlOgorICAgIFdURjo6UmVmUHRy
PFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IG1faWRiQ3Vyc29yQmFja2VuZDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURCQ3Vyc29ySW1w
bF9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxYjEy
Mzk2MDU2Y2Q5NjA1ZWJjMjBiYmNkZmE5MGEzZjhmMGZjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCisK
KyNpbmNsdWRlICJJREJLZXkuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUg
IldlYklEQktleS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViSURCS2V5UmFuZ2U6Oldl
YklEQktleVJhbmdlKGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+JiB2YWx1
ZSkKKyAgICA6IG1fcHJpdmF0ZSh2YWx1ZSkKK3sKK30KKwordm9pZCBXZWJJREJLZXlSYW5nZTo6
YXNzaWduKGNvbnN0IFdlYklEQktleVJhbmdlJiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBv
dGhlci5tX3ByaXZhdGU7Cit9CisKK3ZvaWQgV2ViSURCS2V5UmFuZ2U6OmFzc2lnbihjb25zdCBX
ZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYgcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZs
YWdzKQoreworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6OklEQktleVJhbmdlOjpjcmVhdGUobGVm
dCwgcmlnaHQsIGZsYWdzKTsKK30KKwordm9pZCBXZWJJREJLZXlSYW5nZTo6cmVzZXQoKQorewor
ICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJJREJLZXkgV2ViSURCS2V5UmFuZ2U6Omxl
ZnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmxlZnQoKTsKK30KKworV2ViSURC
S2V5IFdlYklEQktleVJhbmdlOjpyaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+cmlnaHQoKTsKK30KKwordW5zaWduZWQgc2hvcnQgV2ViSURCS2V5UmFuZ2U6OmZsYWdzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5mbGFncygpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0
U3RvcmVJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBs
LmNwcAppbmRleCA3YjZhMzJhMTY3ZmM5MGUxYTczYWE0ZTEyODEwN2JjODIxMzNhYmFlLi4yZTI1
ODBhNThlZmZmNDcxM2M4YzIxYWYxNTExODNkNGZlMTI0MDE4IDEwMDc1NQotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0yOCw5ICsyOCwxMSBAQAogCiAj
aW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5Lmgi
CisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgog
I2luY2x1ZGUgIldlYklEQkluZGV4SW1wbC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgorI2lu
Y2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgiCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTk2LDYgKzk4LDExIEBA
IHZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpyZW1vdmVJbmRleChjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIFdlYklEQkNhbGxiYWNrcyoKICAgICBtX29iamVjdFN0b3JlLT5yZW1vdmVJbmRleChu
YW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcykpOwogfQogCit2b2lkIFdl
YklEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5
UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFj
a3MpCit7CisgICAgbV9vYmplY3RTdG9yZS0+b3BlbkN1cnNvcihJREJDYWxsYmFja3NQcm94eTo6
Y3JlYXRlKGNhbGxiYWNrcyksIElEQktleVJhbmdlOjpjcmVhdGUoa2V5UmFuZ2UubGVmdCgpLCBr
ZXlSYW5nZS5yaWdodCgpLCBrZXlSYW5nZS5mbGFncygpKSwgZGlyZWN0aW9uKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAppbmRleCA0MDY0
YjdmODg4NmIzODQ3NzMxMmIxOTIyNGZmMGU0YjVhM2E1ZDcwLi44OGI0ZTlhYzIzNjlmYWMyOTcx
YjhjNzk4NWVhMjkwOWQ5YmFlODZhIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQk9iamVjdFN0b3JlSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2Jq
ZWN0U3RvcmVJbXBsLmgKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIFdlYklEQkluZGV4
KiBpbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlSW5kZXgoY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcyk7CiAKKyAgICB2
b2lkIG9wZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIFdlYklEQkNhbGxiYWNrcyopOworCiAgcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZT4gbV9vYmplY3RTdG9yZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63574</attachid>
            <date>2010-08-05 04:15:50 -0700</date>
            <delta_ts>2010-08-05 06:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41888-20100805121548.patch</filename>
            <type>text/plain</type>
            <size>89374</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMzAzOWRhMjdmYmUzNjgzNzgyYTVhYjU5NmQxZDcxYjk4Y2Y4NjY0Li43YzFmYmYw
MWE1ZjU1ZWNjYTllMmQ0MDM1ZGIxZDcxM2E2YjU0YmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDgtMDUgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaXRpYWwgYmluZGlu
Z3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5k
ZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvb3Blbi1jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzOiBBZGRlZC4KKyAgICAgICAgKGN1cnNvclN1
Y2Nlc3MpOgorICAgICAgICAob3BlbkN1cnNvcik6CisgICAgICAgIChwb3B1bGF0ZU9iamVjdFN0
b3JlKToKKyAgICAgICAgKGNyZWF0ZU9iamVjdFN0b3JlU3VjY2Vzcyk6CisgICAgICAgIChvcGVu
U3VjY2Vzcyk6CisgICAgICAgICh0ZXN0KToKKwogMjAxMC0wOC0wNSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIENocm9taXVt
IGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThjODM3MmFhZGZm
NTlmYzM0ZWRhN2QzYzVhNGZkYjVhMDJlYWM3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDY2IEBACitUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitpbmRleGVkREIub3BlbignbmFtZScsICdkZXNjcmlwdGlvbicpCitQQVNT
ICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQg
aXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRl
JyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgorCitT
dWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNT
ICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFs
c2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0g
bnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQ
QVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMg
dHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQor
CitkYiA9IGV2ZW50LnJlc3VsdAorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQorUEFTUyAn
b25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlz
IHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScg
aW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworU3Vj
Y2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAn
Y29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNl
CitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51
bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFT
UyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKwor
b2JqZWN0U3RvcmUgPSBldmVudC5yZXN1bHQKK29iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZScsICdt
eUtleScpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVycm9y
JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNT
ICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hv
cnRseS4uLgorCitPcGVuaW5nIGN1cnNvcgorQ3Vyc29yIG9wZW5lZCBzdWNjZXNzZnVsbHkuCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgor
CitQQVNTIGV2ZW50LnJlc3VsdC5kaXJlY3Rpb24gaXMgMAorUEFTUyBldmVudC5yZXN1bHQua2V5
IGlzICdteUtleScKK1BBU1MgZXZlbnQucmVzdWx0LnZhbHVlIGlzICdteVZhbHVlJworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjAzNjVk
NWQwNmZkOTRkNTM4NWE4MWIyZmI4OWJiZWJkYTUyMDllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3IuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3NjcmlwdC10ZXN0cy9vcGVuLWN1cnNvci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3NjcmlwdC10ZXN0cy9vcGVuLWN1cnNvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTJkOTgwM2I4
NjYwMmY5ZDMzNzYxZjZmZWE1N2ZhZjMxNTRiNjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL29wZW4tY3Vyc29yLmpzCkBAIC0w
LDAgKzEsNTkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIG9wZW5DdXJzb3IuIik7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gY3Vyc29yU3VjY2VzcygpCit7CisgICAg
ZGVidWcoIkN1cnNvciBvcGVuZWQgc3VjY2Vzc2Z1bGx5LiIpCisgICAgdmVyaWZ5UmVzdWx0KHJl
c3VsdCk7CisgICAgLy8gRklYTUU6IGNoZWNrIHRoYXQgd2UgY2FuIGl0ZXJhdGUgdGhlIGN1cnNv
ci4KKyAgICBzaG91bGRCZSgiZXZlbnQucmVzdWx0LmRpcmVjdGlvbiIsICIwIik7CisgICAgc2hv
dWxkQmUoImV2ZW50LnJlc3VsdC5rZXkiLCAiJ215S2V5JyIpOworICAgIHNob3VsZEJlKCJldmVu
dC5yZXN1bHQudmFsdWUiLCAiJ215VmFsdWUnIik7CisgICAgZG9uZSgpOworfQorCitmdW5jdGlv
biBvcGVuQ3Vyc29yKCkKK3sKKyAgICBkZWJ1ZygiT3BlbmluZyBjdXJzb3IiKTsKKyAgICB2YXIg
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5sZWZ0Qm91bmQoIm15S2V5Iik7CisgICAgdmFyIGN1cnNv
ciA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3Ioa2V5UmFuZ2UpOworICAgIGN1cnNvci5vbnN1Y2Nl
c3MgPSBjdXJzb3JTdWNjZXNzOworfQorCitmdW5jdGlvbiBwb3B1bGF0ZU9iamVjdFN0b3JlKG9i
amVjdFN0b3JlKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgn
bXlWYWx1ZScsICdteUtleScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVz
dWx0Lm9uc3VjY2VzcyA9IG9wZW5DdXJzb3I7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNz
KCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAgIHZhciBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZXZlbnQucmVzdWx0Iik7CisgICAgcG9wdWxh
dGVPYmplY3RTdG9yZShvYmplY3RTdG9yZSk7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkK
K3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAgIHZhciBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQucmVzdWx0Iik7CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIpOworICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAg
IHJlc3VsdC5vbnN1Y2Nlc3MgPSBjcmVhdGVPYmplY3RTdG9yZVN1Y2Nlc3M7CisgICAgcmVzdWx0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ25hbWUnLCAnZGVz
Y3JpcHRpb24nKSIpOworICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAgIHJlc3VsdC5vbnN1
Y2Nlc3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworfQorCit0ZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9X
ZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawppbmRleCBiZWEyZTFkYjljYWRk
MTcyMTA2MDQyZWIzYmFjZjM2ZDgyYTQ1ZThiLi4wMzljOTMxNTJhNDBkMjU0NWNiNmNmM2I5NGMw
MzA1MjAwYWJiYmY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5k
aW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawpAQCAt
MSwzICsxLDQgQEAKKwogIyMKICMjIENvcHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNv
dXJjZSBQcm9qZWN0CiAjIwpAQCAtMzYxLDYgKzM2Miw3IEBAICQocGF0c3Vic3QgJS5oLCUuY3Bw
LCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS8lLmNwcCA6ICQoaW50ZXJtZWRpYXRl
cykvCiAjIEluZGV4ZWQgRGF0YWJhc2UKIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9z
dG9yYWdlL0pTSURCQW55LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkN1
cnNvci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJEYXRhYmFzZUVycm9y
LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkRhdGFiYXNlLmggXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKaW5kZXggZjdmYThkNjdjMzVjNTRmYmU0MjJh
YzM0YjEzNjM0Y2VmZTIyNmNmZS4uZGExYzM0ZDViMjM4NWVhZDhhZTM4MjY4YTMwZjhhZTM4YjM5
NzNkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawor
KysgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0zNDIsNiArMzQy
LDcgQEAgJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVzKS9iaW5k
aW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykKICMgSW5kZXhlZCBEYXRhYmFzZQogR0VOIDo9
IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4SURCQW55LmggXAorICAgICQoaW50
ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhJREJDdXJzb3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOElEQkRhdGFiYXNlRXJyb3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOElEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykv
YmluZGluZ3MvVjhJREJEYXRhYmFzZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5t
ayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBmNzlhYTc0MzBjNzg4MzRjMWY2YzQyZDcyZTM1
OTk0OGM3NGMxMjVmLi41MDUyMTgwOWQyMDE2NmZkMTQxOTY0YWM4MWRiMDc2NTJhZTY0OTY2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBA
IC03NDMsNiArNzQzLDggQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBc
CiAJc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5jcHAgXAogCXN0b3JhZ2UvRGF0YWJhc2VUcmFja2Vy
LmNwcCBcCiAJc3RvcmFnZS9JREJBbnkuY3BwIFwKKwlzdG9yYWdlL0lEQkN1cnNvci5jcHAgXAor
CXN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIFwKIAlzdG9yYWdlL0lEQkRhdGFiYXNl
LmNwcCBcCiAJc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBcCiAJc3RvcmFnZS9J
REJFcnJvckV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNjExNTk0ZjMyYjRmYmViMzljZWQ1Njg2YWUw
YzQ2MzM2NzI3MzMzLi5hYjg5YmQ1NTFlNjc5ZTk0YzVjNTc3OTY5MmExNTJjODdmOGZlNTgxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTMzNCw2ICszMzQsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBzdG9y
YWdlL0RhdGFiYXNlQ2FsbGJhY2suaWRsCiAgICAgc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCiAg
ICAgc3RvcmFnZS9JREJBbnkuaWRsCisgICAgc3RvcmFnZS9JREJDdXJzb3IuaWRsCiAgICAgc3Rv
cmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRp
b24uaWRsCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5pZGwKQEAgLTE0MzksNiArMTQ0MCw4IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL0lEQkFueS5jcHAKICAgICBzdG9yYWdl
L0lEQkRhdGFiYXNlLmNwcAogICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAK
KyAgICBzdG9yYWdlL0lEQkN1cnNvci5jcHAKKyAgICBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmNwcAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5jcHAKICAgICBzdG9yYWdlL0lEQkV2
ZW50LmNwcAogICAgIHN0b3JhZ2UvSURCSW5kZXguY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFkOWQ1MTY5MGU1YjA2OGQxMTZiMjUz
MDFjNjg0ZmEyOGJjY2JlNWIuLjZmZDk3ZDY4YmI3YjZkMTNhOGQ3ODU5NDU0NzdhNzY2NzdiNGIx
ZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzEgQEAKKzIwMTAtMDgtMDUgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEluaXRpYWwgYmluZGluZ3MgYW5kIHBsdW1iaW5nIGZvciBJREJDdXJzb3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTg4OAorCisgICAgICAg
IFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2lkYi1vcGVuY3Vyc29yLmh0bWwKKworICAgICAgICAq
IEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2
ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCQW55LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6aWRi
Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6c2V0KToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCQW55OjopOgorICAgICAgICAqIHN0
b3JhZ2UvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6SURCQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvcjo6fklEQkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3I6OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvcjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6Y29udGludWVG
dW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnJlbW92ZSk6CisgICAgICAg
ICogc3RvcmFnZS9JREJDdXJzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3I6Oik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNyZWF0ZSk6CisgICAgICAgICog
c3RvcmFnZS9JREJDdXJzb3IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNv
ckJhY2tlbmRJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kSW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vy
c29yQmFja2VuZEltcGw6On5JREJDdXJzb3JCYWNrZW5kSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvckJhY2tlbmRJbXBsOjprZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFj
a2VuZEltcGw6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBs
Ojp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRp
bnVlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OnJl
bW92ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAg
ICAqIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6On5JREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZS5pZGw6
CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5DdXJzb3IpOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorICAgICAgICAqIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0aW1lckZpcmVkKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuaDoKKwogMjAxMC0wOC0wNSAgWm9sdGFuIEhvcnZhdGggIDx6
b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKaW5kZXggNGJlZDU2OGQ3MDNiNDVkNjVkZTY3MWEwZTcyMTQ0Njg4YzY3MmMy
My4uMDZlOWIwMTgzNWY3NWFhNTYzMjk3MmNlZGI1YTJlMTNhMTlkMmY3MSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKQEAgLTE3Niw2ICsxNzYsNyBAQAogI2luY2x1ZGUgIkpTSFRNTFVMaXN0RWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0lEQkFueS5j
cHAiCisjaW5jbHVkZSAiSlNJREJDdXJzb3IuY3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2Uu
Y3BwIgogI2luY2x1ZGUgIkpTSURCRGF0YWJhc2VFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNJREJE
YXRhYmFzZUV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZTI2M2M3ZTYwMGQwMzVj
ZmZmYjliNDJhNjBjZTZmZjZlNDMyNjc1Ni4uZGU0ODRmMGZkYmU2MjM3YWJlNmE4YTBlMzYwOGI4
ZGEzN2YyMDYxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjI2LDYgKzIyNiw3IEBAIERPTV9DTEFT
U0VTID0gXAogICAgIEhUTUxWaWRlb0VsZW1lbnQgXAogICAgIEhpc3RvcnkgXAogICAgIElEQkFu
eSBcCisgICAgSURCQ3Vyc29yIFwKICAgICBJREJEYXRhYmFzZUVycm9yIFwKICAgICBJREJEYXRh
YmFzZUV4Y2VwdGlvbiBcCiAgICAgSURCRGF0YWJhc2UgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggM2YzYzBkYmZmYjFi
NDY0ZjRiZWY2OTgyMGQ1YjNmZTVjMjE4OGIwMS4uYWJjNWI4NDBlMDZkYjU4NDVjYzE5ODhkMTFi
NzJkMWIxOGZlMzE2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yODYzLDYgKzI4NjMsMTEgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCQW55LmggXAogCVdlYkNvcmUvc3RvcmFnZS9J
REJDYWxsYmFja3MuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBcCisJV2Vi
Q29yZS9zdG9yYWdlL0lEQkN1cnNvci5oIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmNw
cCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBcCisJV2ViQ29y
ZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmggXAorCVdlYkNvcmUvc3RvcmFnZS9JREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5o
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgXAogCVdlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkNWVkM2QyOTQ3NmVh
YzA1YzJiZDA3OGJkZjRhZDM4MGFjNWVhYTNjLi42MjZmNmI1YzNiNDgxZDU5YTZhNWE3NjYxYTgx
NDUyYTQzNGUxM2UxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjM3LDYgKzIzNyw3IEBACiAgICAgICAgICAgICAnc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0ZsYWdzLmlk
bCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJBbnkuaWRsJywKKyAgICAgICAgICAgICdzdG9y
YWdlL0lEQkN1cnNvci5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJv
ci5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlLmlkbCcsCkBAIC0zNDk3LDYgKzM0OTgs
MTEgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkFueS5jcHAnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCQW55LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgnLAor
ICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9JREJDdXJzb3IuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1w
bC5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuaCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJE
YXRhYmFzZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oJywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmlu
ZGV4IGNlMGY3MDEyYTM1Yjc4ODQxYzNiZmI2NWQyNWRhN2U2MTg4N2NkNmMuLjIwYzcxN2I2ZjIz
MzNmNzc3Yjg4NmU0Y2FiZTBjMTJhNmI4OTdlMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNDgzLDYgKzQ4Myw3IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBcCiAgICAgc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsIFwKICAgICBzdG9yYWdlL0lEQkFueS5pZGwgXAorICAgIHN0
b3JhZ2UvSURCQ3Vyc29yLmlkbCBcCiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbCBc
CiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgXAogICAgIHN0b3JhZ2UvSURC
RGF0YWJhc2UuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IDEyZDA1NmQ5NzRjZWZlODUyMWNhNjYzZWZkZDRiMDZiNGNmZjdm
NzguLmNkYzAxNzJhYzYyYTY4Yzc2Yjg0NWM3MGIwOTFiY2RiZjc1NDUwNzQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjQyNiw2
ICsyNDI2LDkgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkg
ewogICAgICAgICBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggXAogICAgICAgICBz
dG9yYWdlL0lEQkFueS5oIFwKICAgICAgICAgc3RvcmFnZS9JREJDYWxsYmFja3MuaCBcCisgICAg
ICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmggXAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmggXAorICAgICAgICBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCBc
CiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2UuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2UuaCBcCkBAIC0yNDUyLDYgKzI0NTUsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSURCQW55Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcCBcCiAgICAg
ICAgIHN0b3JhZ2UvSURCQW55LmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29yLmNwcCBc
CisgICAgICAgIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIFwKICAgICAgICAgc3Rv
cmFnZS9JREJEYXRhYmFzZS5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBjMGRjM2JlZWZkYTJkNDBhOGM1ZjI4ZjNi
NTdjOGJmNjRiNTZhZjY2Li5jN2U1OGEwN2M0NWUwZTg0ZDdjOTFlYzcyYzNjOTI3YjRmOWViODdi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ0MzExLDYgKzQ0MzEx
LDExMCBAQAogCQkJCQkJLz4NCiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmls
ZT4NCisgICAgICAgIDxGaWxlDQorICAgICAgICAgIFJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkN1cnNvci5jcHAi
DQorICAgICAgICAgID4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAg
ICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAgICBO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAgICAg
ICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAgICAg
ICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAgICAg
ICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9vbA0KKyAg
ICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAvPg0KKyAg
ICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRp
b24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAgICAgICAgICBF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgPFRv
b2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAgICAgICAg
Lz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZpbGVDb25m
aWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisgICAg
ICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAg
ICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAg
ICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAg
PEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0K
KyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisg
ICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAg
ICAgPC9GaWxlPg0KKyAgICAgICAgPEZpbGUNCisgICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQ3Vy
c29yLmgiDQorICAgICAgICAgID4NCisgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAg
ICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAgICAg
ICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAgICAg
IDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0KKyAg
ICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiDQorICAgICAgICAgICAgRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgIDxUb29sDQorICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKyAgICAgICAgICAgIC8+DQorICAgICAg
ICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbg0K
KyAgICAgICAgICAgIE5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKyAgICAgICAgICAgIEV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICA8VG9v
bA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisgICAgICAgICAgICAv
Pg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24NCisgICAgICAgICAgICBOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisgICAgICAg
ICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQorICAgICAgICAg
ICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorICAgICAg
ICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPEZp
bGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiIN
CisgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisgICAgICAgICAgICA+DQor
ICAgICAgICAgICAgPFRvb2wNCisgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorICAgICAgICAgICAgLz4NCisgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4NCisgICAg
ICAgICAgPEZpbGVDb25maWd1cmF0aW9uDQorICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdp
bjMyIg0KKyAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKyAgICAgICAgICAg
ID4NCisgICAgICAgICAgICA8VG9vbA0KKyAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisgICAgICAgICAgICAvPg0KKyAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KyAgICAgICAgPC9GaWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAiDQogCQkJCQk+DQpAQCAt
NTAxNjAsNiArNTAyNjQsMjYgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCQ2Fs
bGJhY2tzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3IuY3BwIg0KKyAgICAgICAgPg0KKyAgICAg
IDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdl
XElEQkN1cnNvci5oIg0KKyAgICAgICAgPg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0K
KyAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkN1cnNvckJhY2tlbmRJbXBsLmNw
cCINCisgICAgICAgID4NCisgICAgICA8L0ZpbGU+DQorICAgICAgPEZpbGUNCisgICAgICAgIFJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJDdXJzb3JCYWNrZW5kSW1wbC5oIg0KKyAgICAgICAg
Pg0KKyAgICAgIDwvRmlsZT4NCisgICAgICA8RmlsZQ0KKyAgICAgICAgUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCINCisgICAgICAgID4NCisgICAg
ICA8L0ZpbGU+DQogCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkRh
dGFiYXNlLmNwcCINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjViOTMwM2NlYmNkOWNkZGFmYzU0OTAxOTgwYThkMTY2NzU4MWNjNC4uYTY0
MjgyOGQ0YzAzODE5MzdmMzE4NjE2MGY1ZWRkZDIzMTNhYmE5NSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTUsNiArMTQxNSwxMyBAQAogCQk3QUVE
M0UwNjBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRUQzRTA0MEZCQjFFQUEwMEQyQjAz
QyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovOyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4
ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9p
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QUZENEZGNDExMzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAw
MzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4MUJFMjA5ODExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3IuY3BwICovOyB9OworCQk4MUJF
MjA5NzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yLmggKi87IH07CisJCTgxQkUyMDk4MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JC
YWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
ICovOyB9OworCQk4MUJFMjA5OTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZElt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUy
MDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovOyB9OworCQk4
MUJFMjA5QjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTYxMUY0
QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKKwkJODFC
RTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE3MTFGNEI2NkYwMDkxNURGQSAv
KiBKU0lEQkN1cnNvci5jcHAgKi87IH07CisJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBK
U0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07CiAJCTgy
QjY1ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAwRTA1
MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi87
IH07CiAJCTg0MUZEQzI2MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFG
REMyNDExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovOyB9
OwpAQCAtNzIxMiw2ICs3MjE5LDEzIEBACiAJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJ
bnNwZWN0b3JGcm9udGVuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEE4QTEx
MzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTIxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwOTMxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQkUyMDk0MTFGNEFCOEQwMDkxNURG
QSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODFCRTIwOUMxMUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURCQ3Vyc29yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURC
Q3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCQ3Vyc29yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAv
KiBJbnNwZWN0b3JDU1NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JDU1NTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5
OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NDFGREMyNDExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEzOTMsMTIgKzExNDA3LDE5IEBACiAJCQkJQzU4NUE2OTkxMUQ0RkIzRDAwNEMzRTRCIC8q
IElEQkFueS5oICovLAogCQkJCUM1ODVBNjlBMTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaWRs
ICovLAogCQkJCUM1ODVBNjlCMTFENEZCM0QwMDRDM0U0QiAvKiBJREJDYWxsYmFja3MuaCAqLywK
KwkJCQk4MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmNwcCAqLywKKwkJCQk4
MUJFMjA5MjExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yLmggKi8sCisJCQkJODFCRTIwOUMx
MUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8sCisJCQkJODFCRTIwOTMxMUY0QUI4
RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLywKKwkJCQk4MUJFMjA5NDEx
RjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCAqLywKKwkJCQk4MUJFMjA5
NTExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovLAogCQkJ
CUM1ODVBNkEzMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZS5jcHAgKi8sCiAJCQkJQzU4
NUE2QTQxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlLmggKi8sCiAJCQkJQzU4NUE2QTUx
MUQ0RkIzRDAwNEMzRTRCIC8qIElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQlDNTg1QTZBMTExRDRG
QjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgKi8sCiAJCQkJQjYxNzYy
NjExMjAzNDkwODAwRUY5MTE0IC8qIElEQkRhdGFiYXNlQmFja2VuZEltcGwuaCAqLywKIAkJCQlC
NjE3NjI1MzEyMDMzNzRGMDBFRjkxMTQgLyogSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgg
Ki8sCisKIAkJCQlDNTg1QTY5RDExRDRGQjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VFcnJvci5o
ICovLAogCQkJCUM1ODVBNjlFMTFENEZCM0QwMDRDM0U0QiAvKiBJREJEYXRhYmFzZUVycm9yLmlk
bCAqLywKIAkJCQlDNTg1QTY5RjExRDRGQjNEMDA0QzNFNEIgLyogSURCRGF0YWJhc2VFeGNlcHRp
b24uaCAqLywKQEAgLTE0ODU0LDYgKzE0ODc1LDggQEAKIAkJCQk4OTdBMkQ5MjEyMDAwMzc2MDA4
Mjc0MEMgLyogSlNGbGFncy5oICovLAogCQkJCUM1ODVBNjY0MTFENEZCMDcwMDRDM0U0QiAvKiBK
U0lEQkFueS5jcHAgKi8sCiAJCQkJQzU4NUE2NjUxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCQW55
LmggKi8sCisJCQkJODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAq
LywKKwkJCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLywKIAkJ
CQlDNTg1QTY2QTExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZS5jcHAgKi8sCiAJCQkJ
QzU4NUE2NkIxMUQ0RkIwNzAwNEMzRTRCIC8qIEpTSURCRGF0YWJhc2UuaCAqLywKIAkJCQlDNTg1
QTY2NjExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJEYXRhYmFzZUVycm9yLmNwcCAqLywKQEAgLTE5
OTkwLDYgKzIwMDEzLDEwIEBACiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1
ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBa
b29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNjFGMDExMjA5NUM4NzAwN0EzQzY3IC8q
IEF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQkUyMDk3
MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQkUy
MDk5MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJODFCRTIwOUIxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBK
U0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjM5NCw2ICsyMjQyMSw5IEBACiAJCQkJ
OTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhT
U0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MUJFMjA5ODExRjRBQjhEMDA5
MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODFC
RTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCmluZGV4IDFh
YmU4NzAzMjFiYmU0MDlhMDM5NjdjYjIxZTUyMTNkMGIxNmZlMTYuLjNkZmZlYjVhMmYwY2NjOGVl
NGFhOGNiZDVjMzEwM2VjODJiM2M4MzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJWOElEQkFu
eS5oIgogCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiVjhJ
REJDdXJzb3IuaCIKICNpbmNsdWRlICJWOElEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhJREJG
YWN0b3J5LmgiCiAjaW5jbHVkZSAiVjhJREJJbmRleC5oIgpAQCAtNTAsNiArNTEsOCBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwpCiAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgogICAgICAgICByZXR1cm4g
djg6Ok51bGwoKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yVHlwZToKKyAgICAgICAgcmV0
dXJuIHRvVjgoaW1wbC0+aWRiQ3Vyc29yKCkpOwogICAgIGNhc2UgSURCQW55OjpJREJEYXRhYmFz
ZVR5cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYkRhdGFiYXNlKCkpOwogICAgIGNh
c2UgSURCQW55OjpJREJJbmRleFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IDg1MmU4MzEzM2E3MWFi
MjE1YTNlNDc2NzYzNGRiY2M5OWEzNGU0YTEuLjkzZDI2MzMzZjUzZjBhMzIwNzhlMTJlNmEwOTMx
MDlmMWNhYWQyM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkN1cnNvci5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIklEQklu
ZGV4LmgiCkBAIC01MCw2ICs1MSwxMiBAQCBJREJBbnk6On5JREJBbnkoKQogewogfQogCitQYXNz
UmVmUHRyPElEQkN1cnNvcj4gSURCQW55OjppZGJDdXJzb3IoKQoreworICAgIEFTU0VSVChtX3R5
cGUgPT0gSURCQ3Vyc29yVHlwZSk7CisgICAgcmV0dXJuIG1faWRiQ3Vyc29yOworfQorCiBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlPiBJREJBbnk6OmlkYkRhdGFiYXNlKCkKIHsKICAgICBBU1NFUlQo
bV90eXBlID09IElEQkRhdGFiYXNlVHlwZSk7CkBAIC05Miw2ICs5OSwxMyBAQCB2b2lkIElEQkFu
eTo6c2V0KCkKICAgICBtX3R5cGUgPSBOdWxsVHlwZTsKIH0KIAordm9pZCBJREJBbnk6OnNldChQ
YXNzUmVmUHRyPElEQkN1cnNvcj4gdmFsdWUpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRl
ZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBJREJDdXJzb3JUeXBlOworICAgIG1faWRiQ3Vyc29y
ID0gdmFsdWU7Cit9CisKIHZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4g
dmFsdWUpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApp
bmRleCAxZjk2NTAwNTJjM2FmMDNmYWRjMWQ3ZjhiOGIzYjgzZDIzYjIzYzYwLi45NTA2NjBhNWZh
OTE5ZGRjNGE2MzY0ODRkN2YxNDNiZTBlN2QxZmVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCQW55LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCkBAIC0zNCw2ICszNCw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQ3Vyc29yOwogY2xhc3MgSURC
RGF0YWJhc2U7CiBjbGFzcyBJREJJbmRleDsKIGNsYXNzIElEQktleTsKQEAgLTU2LDYgKzU3LDcg
QEAgcHVibGljOgogICAgIGVudW0gVHlwZSB7CiAgICAgICAgIFVuZGVmaW5lZFR5cGUgPSAwLAog
ICAgICAgICBOdWxsVHlwZSwKKyAgICAgICAgSURCQ3Vyc29yVHlwZSwKICAgICAgICAgSURCRGF0
YWJhc2VUeXBlLAogICAgICAgICBJREJGYWN0b3J5VHlwZSwKICAgICAgICAgSURCSW5kZXhUeXBl
LApAQCAtNjYsNiArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KICAgICAvLyBVc2UgdHlwZSgpIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25l
IG9mIHRoZXNlIHlvdSdyZSBhbGxvd2VkIHRvIGNhbGwuCisgICAgUGFzc1JlZlB0cjxJREJDdXJz
b3I+IGlkYkN1cnNvcigpOwogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNl
KCk7CiAgICAgUGFzc1JlZlB0cjxJREJGYWN0b3J5PiBpZGJGYWN0b3J5KCk7CiAgICAgUGFzc1Jl
ZlB0cjxJREJJbmRleD4gaWRiSW5kZXgoKTsKQEAgLTc1LDYgKzc4LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gU2V0IGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLgogICAgIHZvaWQgc2V0KCk7IC8vIEZv
ciAibnVsbCIuCisgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2b2lk
IHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJ
REJGYWN0b3J5Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJJbmRleD4pOwpAQCAtODgs
NiArOTIsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90eXBlOwogCiAgICAgLy8gT25seSBvbmUg
b2YgdGhlIGZvbGxvd2luZyBzaG91bGQgZXZlciBiZSBpbiB1c2UgYXQgYW55IGdpdmVuIHRpbWUu
CisgICAgUmVmUHRyPElEQkN1cnNvcj4gbV9pZGJDdXJzb3I7CiAgICAgUmVmUHRyPElEQkRhdGFi
YXNlPiBtX2lkYkRhdGFiYXNlOwogICAgIFJlZlB0cjxJREJGYWN0b3J5PiBtX2lkYkZhY3Rvcnk7
CiAgICAgUmVmUHRyPElEQkluZGV4PiBtX2lkYkluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCmlu
ZGV4IDQ3YzM2OTRkNjBhZDMwN2I3MzNiMzg3Zjg3YjhiMjI3YTllMmU4ODcuLmJjNDg0NzdjNzcw
YmVhNjMwNTcwMzZlYmRmYWQ3OTc2YTc3ZDMzYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJDYWxsYmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZm5kZWYgSURCQ2FsbGJhY2tzX2gKICNkZWZpbmUgSURCQ2FsbGJh
Y2tzX2gKIAorI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCkBAIC00Nyw2ICs0
OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgPSAwOyAv
LyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PikgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5jcHAgYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ3Vyc29yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTc1MmY1ZDg5ZDViOTkxNWQ3MTQ2ZWE4OThh
ZTgwODNmMjM3YTY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
ci5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJREJDdXJzb3IuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5j
bHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUg
IklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
SURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kKQorICAgIDogbV9iYWNrZW5kKGJhY2tlbmQpCit7Cit9CisKK0lEQkN1cnNvcjo6
fklEQkN1cnNvcigpCit7Cit9CisKK3Vuc2lnbmVkIHNob3J0IElEQkN1cnNvcjo6ZGlyZWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNrZW5kLT5kaXJlY3Rpb24oKTsKK30KKworUGFz
c1JlZlB0cjxJREJLZXk+IElEQkN1cnNvcjo6a2V5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YWNrZW5kLT5rZXkoKTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNvcjo6dmFsdWUo
KSBjb25zdAoreworICAgIHJldHVybiBtX2JhY2tlbmQtPnZhbHVlKCk7Cit9CisKK1Bhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKQoreworICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKKyAgICBtX2JhY2tlbmQtPnVwZGF0ZSh2YWx1ZSwgcmVx
dWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQoreworICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3Jl
YXRlKHRoaXMpKTsKKyAgICBtX2JhY2tlbmQtPmNvbnRpbnVlRnVuY3Rpb24oa2V5LCByZXF1ZXN0
KTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCQ3Vyc29yOjpyZW1vdmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
K3sKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CisgICAgbV9iYWNrZW5kLT5yZW1vdmUocmVx
dWVzdCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJz
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MWQ2MTA3YjQzNGU2ODQ1MTk4OTFlNDI3OTYzZWJjN2NjMTZhYTQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5oCkBAIC0wLDAg
KzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkN1cnNvcl9oCisjZGVmaW5lIElEQkN1cnNvcl9o
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQkFueTsKK2NsYXNzIElEQkNhbGxiYWNrczsKK2NsYXNzIElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U7CitjbGFzcyBJREJLZXk7CitjbGFzcyBJREJSZXF1ZXN0OworY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKKworY2xh
c3MgSURCQ3Vyc29yIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCQ3Vyc29yPiB7CitwdWJs
aWM6CisgICAgLy8gS2VlcCBpbiBzeW5jIHdpdGggd2hhdCdzIGluIHRoZSAuaWRsIGZpbGUuCisg
ICAgZW51bSBEaXJlY3Rpb24geworICAgICAgICBORVhUID0gMCwKKyAgICAgICAgTkVYVF9OT19E
VVBMSUNBVEUgPSAxLAorICAgICAgICBQUkVWID0gMiwKKyAgICAgICAgUFJFVl9OT19EVVBMSUNB
VEUgPSAzLAorICAgIH07CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUo
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3IoYmFja2VuZCkpOworICAgIH0KKyAg
ICB2aXJ0dWFsIH5JREJDdXJzb3IoKTsKKworICAgIC8vIEltcGxlbWVudCB0aGUgSURMCisgICAg
dmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
QW55PiB2YWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiB1
cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvbnRpbnVlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiA9IDApOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IElEQkN1cnNvcihQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKKworICAgIFJlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vyc29yX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3IuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzkwOTA1ZTU0MTVkZGE2YjFhYTk5YmM5MjE5YWZhNGU4MzcyMjRhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaWRsCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJDdXJzb3IgeworICAgICAgICAvLyBL
ZWVwIGluIHN5bmMgd2l0aCB3aGF0J3MgaW4gdGhlIC5oIGZpbGUuCisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5FWFQgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVhU
X05PX0RVUExJQ0FURSA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBSRVYgPSAy
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQUkVWX05PX0RVUExJQ0FURSA9IDM7CisK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktleSBrZXk7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJBbnkgdmFsdWU7CisKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgdXBkYXRlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1
ZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRh
dGlvbkZ1bmN0aW9uPWNvbnRpbnVlRnVuY3Rpb25dIElEQlJlcXVlc3QgY29udGludWUoaW4gW09w
dGlvbmFsXSBJREJLZXkga2V5KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIElEQlJlcXVlc3QgcmVtb3ZlKCk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yQmFja2VuZEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMDhiOGY0ODBlYmM1OTFlMjVjNGNm
ZDU3YjQzYTAwYWFmMDYyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZEltcGwuaCIKKworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQW55LmgiCisjaW5jbHVkZSAiSURC
Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsLmgiCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQkN1
cnNvckJhY2tlbmRJbXBsOjpJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw+IGlkYk9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCisgICAg
OiBtX2lkYk9iamVjdFN0b3JlKGlkYk9iamVjdFN0b3JlKQorICAgICwgbV9rZXlSYW5nZShrZXlS
YW5nZSkKKyAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAsIG1fa2V5KGtleSkKKyAg
ICAsIG1fdmFsdWUoSURCQW55OjpjcmVhdGUodmFsdWUuZ2V0KCkpKQoreworfQorCitJREJDdXJz
b3JCYWNrZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkKK3sKK30KKwordW5zaWduZWQg
c2hvcnQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZGlyZWN0aW9uOworfQorCitQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2Vu
ZEltcGw6OmtleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5OworfQorCitQYXNzUmVmUHRy
PElEQkFueT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV92YWx1ZTsKK30KKwordm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6dXBkYXRlKFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KQor
eworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBtZXRob2QuCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK3ZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rp
b24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzIG1ldGhvZC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6cmVtb3ZlKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgbWV0aG9kLgorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJh
Y2tlbmRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmNjJmZTdiOWM2ZDcwOWFkNzI0NDkwYzQ2NDU1OGMx
NDcyNDc2NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNr
ZW5kSW1wbC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgSURCQ3Vyc29yQmFj
a2VuZEltcGxfaAorI2RlZmluZSBJREJDdXJzb3JCYWNrZW5kSW1wbF9oCisKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOworCitjbGFzcyBJ
REJDdXJzb3JCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gY3Jl
YXRlKFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vy
c29yQmFja2VuZEltcGwob2JqZWN0U3RvcmUsIGtleVJhbmdlLCBkaXJlY3Rpb24sIGtleSwgdmFs
dWUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+SURCQ3Vyc29yQmFja2VuZEltcGwoKTsKKworICAg
IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QkFueT4gdmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4pOworCitwcml2YXRlOgorICAgIElEQkN1cnNvckJhY2tlbmRJbXBsKFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
LCBJREJDdXJzb3I6OkRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworCisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw+IG1faWRiT2JqZWN0U3RvcmU7CisgICAgUmVmUHRyPElEQktleVJhbmdlPiBtX2tleVJh
bmdlOworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIG1fZGlyZWN0aW9uOworICAgIFJlZlB0cjxJ
REJLZXk+IG1fa2V5OworICAgIFJlZlB0cjxJREJBbnk+IG1fdmFsdWU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
I2VuZGlmIC8vIElEQkN1cnNvckJhY2tlbmRJbXBsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMjA5YzQ5NWM1ZmE3Zjg3NmMwODY4
ZWZiY2U0ZTI0ZjIxMjI0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2VfaAorI2RlZmluZSBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlX2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJBbnk7Citj
bGFzcyBJREJDYWxsYmFja3M7CitjbGFzcyBJREJLZXk7CitjbGFzcyBJREJSZXF1ZXN0OworY2xh
c3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOworCitjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4g
eworcHVibGljOgorICAgIHZpcnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UoKSB7fQor
CisgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NS
ZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmUuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCA0YjFkZTBh
ZmVjZThmYzE2Zjg0NDQ1MWFiMmQzODc2ZWZhNjUwZDZlLi5iNDU3Y2QxZDE1ODg2YzEwZmIyZTFm
MzM0YTNkYzIyYTNmZGYxYzg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgog
I2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAK
QEAgLTEwOCw2ICsxMDksMTMgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZTo6cmVtb3ZlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGUKICAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIAorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiByYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQoreworICAgIFJlZlB0cjxJ
REJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6
Y3JlYXRlKHRoaXMpKTsKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKHJhbmdlLCBkaXJl
Y3Rpb24sIHJlcXVlc3QpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCmluZGV4IGUzNTQyNzNmNzlmMWE2ZGIzYTExOTJkM2E5
ODI2NmExM2M3MzAzZGUuLjhiMWQ4NDEyYjhiNDE3NGIyOWZjY2U3YTE2NzQ2MzYzYjU1YWUzYTQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIElE
Qk9iamVjdFN0b3JlX2gKICNkZWZpbmUgSURCT2JqZWN0U3RvcmVfaAogCisjaW5jbHVkZSAiSURC
Q3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC00
MCw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiBj
bGFzcyBJREJBbnk7CiBjbGFzcyBJREJJbmRleFJlcXVlc3Q7CitjbGFzcyBJREJLZXlSYW5nZTsK
IGNsYXNzIElEQktleTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIApAQCAtNjQsNiAr
NjYsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHJlbW92ZUluZGV4KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCisgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQktleVJhbmdlPiA9IDAsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiA9IElEQkN1cnNv
cjo6TkVYVCk7CisKIHByaXZhdGU6CiAgICAgSURCT2JqZWN0U3RvcmUoUGFzc1JlZlB0cjxJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5p
ZGwKaW5kZXggMGE1N2M3ZGQyOGI3MWIzODZjNGRkZDY5N2FkMmEwYjU4MWE2YWJmMC4uMTY0OWEx
ZGE5YWMyNWUyMTcyOWYyNjkzMzc5MzMxNTJlZWViZjdmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuaWRsCkBAIC00MSw2ICs0MSw4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgSURC
SW5kZXggaW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUpOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCByZW1vdmVJbmRleChpbiBET01TdHJpbmcgbmFt
ZSk7CiAKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGtleVBhdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmdMaXN0IGluZGV4TmFtZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggZjYxMjBhZTMzMGIyZjRlYjk4MGYxNjYx
YjRjZTc2MzQ5NjkzN2RjYy4uNWU1NzgxYmIxYWQ3MTU0MzEzYmU4YTdmN2Q1NzU5MGI4MzBjMTNl
ZSAxMDA3NTUKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
Y3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApA
QCAtMjksOCArMjksMTAgQEAKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAi
SURCQmluZGluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1
ZGUgIklEQkN1cnNvckJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRp
b24uaCIKICNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRJbXBsLmgiCisjaW5jbHVkZSAiSURCS2V5
UmFuZ2UuaCIKICNpbmNsdWRlICJJREJLZXlUcmVlLmgiCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKQEAgLTEzMCw2ICsxMzIsMTUgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2EKICAg
ICBjYWxsYmFja3MtPm9uU3VjY2VzcygpOwogfQogCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sK
KyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSByYW5nZS0+bGVmdCgpOworICAgIFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gbV90cmVlLT5nZXQoa2V5LmdldCgpKTsKKyAgICBS
ZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Vyc29yOworICAgIGlmICh2YWx1ZSkK
KyAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZSh0aGlzLCByYW5n
ZSwgc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpEaXJlY3Rpb24+KGRpcmVjdGlvbiksIGtleSwgdmFs
dWUpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci5yZWxlYXNlKCkpOworfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5oCmluZGV4IGIwOTc2YzJhM2NjYjFhNTA2MDE5ZWY1NTM2YTczNWI3NDMxZDg3
OTMuLmZjNjM2NTgxMmQ5ZTdhYjU1YTg2NzczMGE4YmQ0NmMxMTVlYmE3YzggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaApAQCAtNTYsNiArNTYsOCBAQCBw
dWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4KGNv
bnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAKKyAgICB2b2lkIG9wZW5DdXJzb3IoUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKwogcHJpdmF0ZToKICAgICBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29s
IGF1dG9JbmNyZW1lbnQpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNjZmOWE3MWVhZDVhMDVmMzRjMzhiMTJlNDkyMDUzMjgx
Zjk3YTdhZi4uMjAwYWMyOWJhN2NjYTE1OTgxODVlMzU5M2JmYTRkNmZiNjNhMWQ0ZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAt
MzcsNiArMzcsNyBAQCBjbGFzcyBET01TdHJpbmdMaXN0OwogY2xhc3MgSURCQ2FsbGJhY2tzOwog
Y2xhc3MgSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlOwogY2xhc3MgSURCS2V5OworY2xhc3MgSURC
S2V5UmFuZ2U7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKIGNsYXNzIElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZT4gewpAQCAtNTQsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoY29u
c3QgU3RyaW5nJiBuYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUluZGV4KGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0gMDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBjMjlmYzViNDBkMzIw
MDhiYjg2ZmI5YWYwYzBjMmM1NDQyZmZmZDU0Li44ZDNjOGYwZWIzZDliN2FkZjJmYTEzNmJhZDUw
NGZlZGFkN2YxOWFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkN1cnNvci5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJJREJFcnJv
ckV2ZW50LmgiCkBAIC03Myw2ICs3NCwxMiBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vzcygp
CiAgICAgbV9yZXN1bHQtPnNldCgpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCit7CisgICAgb25F
dmVudENvbW1vbigpOworICAgIG1fcmVzdWx0LT5zZXQoSURCQ3Vyc29yOjpjcmVhdGUoYmFja2Vu
ZCkpOworfQorCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHsKICAgICBvbkV2ZW50Q29tbW9uKCk7CkBA
IC0xNjIsNyArMTY5LDcgQEAgdm9pZCBJREJSZXF1ZXN0Ojp0aW1lckZpcmVkKFRpbWVyPElEQlJl
cXVlc3Q+KikKICAgICAgICAgZGlzcGF0Y2hFdmVudChJREJFcnJvckV2ZW50OjpjcmVhdGUobV9z
b3VyY2UsICptX2Vycm9yKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fcmVzdWx0
LT50eXBlKCkgIT0gSURCQW55OjpVbmRlZmluZWRUeXBlKTsKLSAgICAgICAgZGlzcGF0Y2hFdmVu
dChJREJTdWNjZXNzRXZlbnQ6OmNyZWF0ZShtX3NvdXJjZSwgbV9yZXN1bHQpKTsgICAgICAgIAor
ICAgICAgICBkaXNwYXRjaEV2ZW50KElEQlN1Y2Nlc3NFdmVudDo6Y3JlYXRlKG1fc291cmNlLCBt
X3Jlc3VsdCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJl
cXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKaW5kZXggZDM4ZGE1NzdjNjI3
NWFlNzMzMGJkNGFiZDJhNTNmNTE1MDE2YjY4NC4uMWEyMGY4NDgyZDU5MjRlNWE2MDQxZDhlNzU2
YjE2MDg3OTExZGFhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCkBAIC02Myw2ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkluZGV4QmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFz
c1JlZlB0cjxJREJLZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjYTM5NTM3
ZGNiOTIzZjE5ZDBjYWRmYTdlNGFjZmQ0NzdjYzg4NTBkLi4zODk4MTI1YjE0NzgxNDlkYTFhZTUw
Nzg4YmEwMDk0MDQwMzA5ZGIzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0w
OC0wNSAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBiaW5kaW5ncyBhbmQg
cGx1bWJpbmcgZm9yIElEQkN1cnNvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxODg4CisKKyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIv
aWRiLW9wZW5jdXJzb3IuaHRtbAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNr
czo6b25TdWNjZXNzKToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ3Vyc29yLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3I6On5XZWJJREJDdXJzb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDdXJzb3I6OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkN1cnNvcjo6a2V5KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29yOjp2YWx1ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcjo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q3Vyc29yOjpyZW1vdmUpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJLZXlSYW5nZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UmFuZ2U6On5XZWJJREJLZXlSYW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZSk6CisgICAgICAg
ICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9i
amVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6Cisg
ICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0lEQkN1cnNv
ckJhY2tlbmRQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFj
a2VuZFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFBy
b3h5OjpJREJDdXJzb3JCYWNrZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29y
QmFja2VuZFByb3h5Ojp+SURCQ3Vyc29yQmFja2VuZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkN1cnNvckJhY2tlbmRQcm94eTo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvckJhY2tlbmRQcm94eTo6a2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJh
Y2tlbmRQcm94eTo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFBy
b3h5Ojp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZFByb3h5Ojpj
b250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRQcm94
eTo6cmVtb3ZlKToKKyAgICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAqIHNyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlUHJveHk6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIHNyYy9JREJP
YmplY3RTdG9yZVByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAg
ICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJJREJD
dXJzb3JJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6
OldlYklEQkN1cnNvckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDdXJzb3JJbXBsOjp+
V2ViSURCQ3Vyc29ySW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OmRp
cmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OmtleSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkN1cnNvckltcGw6OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ3Vyc29ySW1wbDo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ3Vyc29y
SW1wbDo6Y29udGludWVGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkN1cnNvcklt
cGw6OnJlbW92ZSk6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuaDogQWRkZWQuCisg
ICAgICAgICogc3JjL1dlYklEQktleVJhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QktleVJhbmdlOjphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6cmVz
ZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6bGVmdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktl
eVJhbmdlOjpmbGFncyk6CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlSW1wbDo6b3BlbkN1cnNvcik6Cisg
ICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oOgorCiAyMDEwLTA4LTA1ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDlkYTg1Y2Q3Y2EzOGM1MDcyNzgx
MzE1ODA3ZWMzOTVjZGI1YmQyNDQuLjkxMDQ4ODgzZjBmZTQ4OTVkZDYyMDRlZDAwMjU2N2IwZGY3
NDdjMmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xNzQsOSArMTc0LDExIEBACiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJJbWFnZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdl
RGVjb2Rlci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkNhbGxiYWNrcy5oJywK
KyAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkN1cnNvci5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYklEQkRhdGFiYXNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SURCRGF0YWJhc2VFcnJvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkZhY3Rv
cnkuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYklEQkluZGV4LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCS2V5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCT2JqZWN0U3Rv
cmUuaCcsCkBAIC0zMTMsNiArMzE1LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL2d0ay9XZWJJ
bnB1dEV2ZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvSURCQ2FsbGJhY2tz
UHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgnLAor
ICAgICAgICAgICAgICAgICdzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcCcsCisgICAgICAg
ICAgICAgICAgJ3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJEYXRh
YmFzZVByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5jcHAnLApAQCAtNDA0LDYgKzQwOCw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQ
Qm9keS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3Jj
L1dlYklEQkN1cnNvckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFz
ZUVycm9yLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oJywKQEAgLTQxMiw2
ICs0MTgsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJJbmRleEltcGwuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJLZXkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQktleVJhbmdl
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkltYWdlQ0cuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkNhbGxiYWNrcy5oCmluZGV4IGNlZTg2MTJjY2JhYWM4NTY4YTkxYzcyMDk5ODJmMDg2MzA1M2U2
MTcuLjJlMmM0ZDI5OWUwYzhjN2Y1NzVkYWYyYjRlODA3ZmU3NzUzY2Q2ZDEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApAQCAtMzAsNiArMzAsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViSURCQ3Vyc29yOwogY2xhc3MgV2ViSURCRGF0YWJh
c2U7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwogY2xhc3MgV2ViSURCS2V5OwpAQCAtNDUs
NiArNDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHRoZSByZXN0LCBwYXNzIG93bmVyc2hpcCB0
byB0aGUgY2FsbGVlIHZpYSBhIHBvaW50ZXIuCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29u
c3QgV2ViSURCRGF0YWJhc2VFcnJvciYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJD
dXJzb3IqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JikgeyBXRUJL
SVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdl
YklEQkluZGV4KikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ3Vyc29yLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkN1cnNvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZWI5MjQ3YWU3YmJlOWFiMmJiNjk5
ZjE3ODhiMTRkOWEwZjBjOTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkN1cnNvci5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklE
QkN1cnNvcl9oCisjZGVmaW5lIFdlYklEQkN1cnNvcl9oCisKKyNpbmNsdWRlICJXZWJDb21tb24u
aCIKKyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJXZWJJREJLZXkuaCIK
KyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJXZWJTdHJp
bmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4
ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitjbGFz
cyBXZWJJREJDdXJzb3IgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYklEQkN1cnNvcigpIHsg
fQorCisgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdAorICAgIHsK
KyAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIFdlYklEQktleSBrZXkoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViSURCS2V5
KCIiKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1
ZSgpIGNvbnN0CisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIFdlYklE
QkNhbGxiYWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgV2ViSURC
S2V5JiwgV2ViSURCQ2FsbGJhY2tzKikKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFdlYklEQkNhbGxi
YWNrcyopCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJDdXJzb3Jf
aApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlSYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmODQy
Y2VjYzhiOGExYmU4ZWZiZGIwODI4NmQyNzhkZTU1MmU1MDIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVJhbmdlLmgKQEAgLTAsMCArMSw2NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViSURCS2V5UmFuZ2VfaAorI2RlZmluZSBXZWJJREJLZXlSYW5nZV9o
CisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCS2V5UmFuZ2U7IH0KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYklEQktleTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2Vi
SURCS2V5UmFuZ2UgeworcHVibGljOgorICAgIH5XZWJJREJLZXlSYW5nZSgpIHsgcmVzZXQoKTsg
fQorCisgICAgV2ViSURCS2V5UmFuZ2UoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlKSB7
IGFzc2lnbihrZXlSYW5nZSk7IH0KKyAgICBXZWJJREJLZXlSYW5nZShjb25zdCBXZWJJREJLZXkm
IGxlZnQsIGNvbnN0IFdlYklEQktleSYgcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKSB7IGFz
c2lnbihsZWZ0LCByaWdodCwgZmxhZ3MpOyB9CisKKyAgICBXRUJLSVRfQVBJIFdlYklEQktleSBs
ZWZ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJJREJLZXkgcmlnaHQoKSBjb25zdDsKKyAg
ICBXRUJLSVRfQVBJIHVuc2lnbmVkIHNob3J0IGZsYWdzKCkgY29uc3Q7CisKKyAgICBXRUJLSVRf
QVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleVJhbmdlJik7CisgICAgV0VCS0lUX0FQSSB2
b2lkIGFzc2lnbihjb25zdCBXZWJJREJLZXkmIGxlZnQsIGNvbnN0IFdlYklEQktleSYgcmlnaHQs
IHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKyAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsKKwor
I2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYklEQktleVJhbmdlKGNvbnN0IFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4mKTsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+IG1fcHJpdmF0ZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViSURCS2V5UmFuZ2VfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCmluZGV4IGZiODFmYjljZTFk
YzA5OTNhMmEyZDE3OGI2NzUyNjU2YWNlZTJlM2EuLjc0NTJiZTk5YjQwYzBiZDIyNjk1MDQyNzEw
YzlkYThiZjliMjA5ZDAgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
T2JqZWN0U3RvcmUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0
b3JlLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdl
YklEQktleVJhbmdlOworCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9y
IGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgogY2xhc3MgV2ViSURCT2JqZWN0
U3RvcmUgewogcHVibGljOgpAQCAtNzksNiArODEsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQg
b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgV2ViSURCQ2FsbGJhY2tzKikKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CiAgICAgLy8gRklYTUU6IGZpbmlzaC4KIH07CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggMDM3NWM2YjIwNzAxNzQxZDRhZjM3
MmM5Y2VjYzVhYjBlNmY2MWM5Mi4uM2VhYjYyMjRhOTc5YjA3MTNmZDlmZTdhYWZhNTc0ZmY4MTRj
NDM4MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5j
cHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURC
RGF0YWJhc2VQcm94eS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUg
IldlYklEQkN1cnNvckltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKICNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCSW5kZXhJbXBs
LmgiCkBAIC02OSw2ICs3MCwxMiBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3Mo
KQogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGlkYkN1cnNv
ckJhY2tlbmQpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJ
REJDdXJzb3JJbXBsKGlkYkN1cnNvckJhY2tlbmQpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigp
OworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGwoYmFja2VuZCkpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDQwYmI5NDc5NmFhZTE1Y2RkZGRj
NmQ3NmUxMjA1ZmI2MmQ4NGM0NGIuLjUwNmRiYjBmNmNhOThmYzQ5ZDY4MmZhZmNlZDQ3ZjljY2Jk
NDFlYmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHku
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3Ig
Im51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmMDBiNzc4N2UyZDg0MjBk
ZmJmMTk0OGQ5YjVlODkxZGM5YmFjNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRQcm94eS5oIgor
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJBbnkuaCIKKyNp
bmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlPiBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYktp
dDo6V2ViSURCQ3Vyc29yPiBpZGJDdXJzb3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
REJDdXJzb3JCYWNrZW5kUHJveHkoaWRiQ3Vyc29yKSk7Cit9CisKK0lEQkN1cnNvckJhY2tlbmRQ
cm94eTo6SURCQ3Vyc29yQmFja2VuZFByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJDdXJz
b3I+IGlkYkN1cnNvcikKKyAgICA6IG1faWRiQ3Vyc29yKGlkYkN1cnNvcikKK3sKK30KKworSURC
Q3Vyc29yQmFja2VuZFByb3h5Ojp+SURCQ3Vyc29yQmFja2VuZFByb3h5KCkKK3sKK30KKwordW5z
aWduZWQgc2hvcnQgSURCQ3Vyc29yQmFja2VuZFByb3h5OjpkaXJlY3Rpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2lkYkN1cnNvci0+ZGlyZWN0aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8SURC
S2V5PiBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmtleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aWRiQ3Vyc29yLT5rZXkoKTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElEQkN1cnNvckJhY2tl
bmRQcm94eTo6dmFsdWUoKSBjb25zdAoreworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHZhbHVlID0gUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KG1faWRiQ3Vyc29y
LT52YWx1ZSgpKTsKKyAgICByZXR1cm4gSURCQW55OjpjcmVhdGUodmFsdWUuZ2V0KCkpOworfQor
Cit2b2lkIElEQkN1cnNvckJhY2tlbmRQcm94eTo6dXBkYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykK
K3sKKyAgICBtX2lkYkN1cnNvci0+dXBkYXRlKHZhbHVlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1w
bChjYWxsYmFja3MpKTsKK30KKwordm9pZCBJREJDdXJzb3JCYWNrZW5kUHJveHk6OmNvbnRpbnVl
RnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcykKK3sKKyAgICBtX2lkYkN1cnNvci0+Y29udGludWVGdW5jdGlvbihrZXksIG5l
dyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworfQorCit2b2lkIElEQkN1cnNvckJh
Y2tlbmRQcm94eTo6cmVtb3ZlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7
CisgICAgbV9pZGJDdXJzb3ItPnJlbW92ZShuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFj
a3MpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNv
ckJhY2tlbmRQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOGI2MjFhMWU3NTAxNTBjM2M5N2M2MmZlMjQ1YWM3YTFkOTU2YmJl
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5k
UHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJDdXJzb3JCYWNrZW5k
UHJveHlfaAorI2RlZmluZSBJREJDdXJzb3JCYWNrZW5kUHJveHlfaAorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURC
Q3Vyc29yQmFja2VuZFByb3h5IDogcHVibGljIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2Ugewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPik7CisgICAgdmlydHVhbCB+
SURCQ3Vyc29yQmFja2VuZFByb3h5KCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRp
cmVjdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNv
bnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHZhbHVlKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRnVuY3Rp
b24oUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdmUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKKworcHJpdmF0ZToK
KyAgICBJREJDdXJzb3JCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkN1cnNv
cj4pOworCisgICAgT3duUHRyPFdlYktpdDo6V2ViSURCQ3Vyc29yPiBtX2lkYkN1cnNvcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJDdXJz
b3JCYWNrZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmpl
Y3RTdG9yZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVQcm94
eS5jcHAKaW5kZXggMGUxYTU5OWQ0NjZjNTk5ZmFlNGY4OGY4MzdkYzVmYWQ1Mjc4NjYzMC4uYWQy
N2ZhMzQxYzViYzdjODljN2QwOGEyN2I1NWQxODMyOGRmMmIwMiAxMDA3NTUKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuY3BwCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVk
ZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUg
IklEQkluZGV4QmFja2VuZFByb3h5LmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNs
dWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIK
ICNpbmNsdWRlICJXZWJJREJJbmRleC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1
ZGUgIldlYklEQk9iamVjdFN0b3JlLmgiCkBAIC0xMDEsNiArMTAzLDExIEBAIHZvaWQgSURCT2Jq
ZWN0U3RvcmVQcm94eTo6cmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrCiAgICAgbV93ZWJJREJPYmplY3RTdG9yZS0+cmVtb3ZlSW5kZXgobmFtZSwg
bmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7CiB9CiAKK3ZvaWQgSURCT2JqZWN0
U3RvcmVQcm94eTo6b3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KQoreworICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IocmFuZ2UsIGRpcmVjdGlv
biwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZVByb3h5LmggYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaAppbmRleCBmNTY5MTY2YzgzMDg3ZTcx
MTk1OTI0ZjA1N2ZjMjJkZjRhNDA3MmY3Li5hMzM0NTcyYjZmMzZjMWUwMDQ4MmMwNGQwYTA3YjY1
YWFiZjU5OWExIDEwMDc1NQotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3Jl
UHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlUHJveHkuaApA
QCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2U+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVJbmRl
eChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOworCiBwcml2
YXRlOgogICAgIElEQk9iamVjdFN0b3JlUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQk9i
amVjdFN0b3JlPik7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwCmluZGV4IGRiZjdkODU1MWM4ZjY3ZGYwMzkxMWIwYTE1NGUyNDM3MjYzOGI4NTMuLmU1NDMx
MjMwNTE3NDgwZmQ4YmIyNzQyOGZiMzg3N2U3ZTdmMzRkODggMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IldlYklEQkNhbGxiYWNrc0ltcGwuaCIKIAogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2lu
Y2x1ZGUgIklEQkN1cnNvckJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJy
b3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCiAjaW5jbHVkZSAiSURCSW5kZXhC
YWNrZW5kUHJveHkuaCIKQEAgLTY1LDYgKzY2LDEyIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1w
bDo6b25TdWNjZXNzKCkKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIFdlYklE
QkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkN1cnNvciogY3Vyc29yKQor
eworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCQ3Vyc29yQmFja2VuZFByb3h5OjpjcmVh
dGUoY3Vyc29yKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwogdm9pZCBXZWJJREJD
YWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5z
dGFuY2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZVByb3h5Ojpj
cmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmgKaW5kZXggYTRkNTNiNTVhZjRjNjk4NWJmZmE2OGJhNDNhY2UyMDEwYWYyNjcyNC4u
MTgzNWM2MGMyYzQ1ZmRjMjA4MWU5OWY2ZDc0ODBkZjFhZTQ5MWRjYSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVy
cm9yJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwiLgorICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJDdXJzb3IqKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFdlYktpdDo6V2ViSURCRGF0YWJhc2UqKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViSURCS2V5Jik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkluZGV4Kik7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJDdXJzb3JJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzdmN2I3MDQ2YTU0NDM1Mjc0OTk2MjRh
Y2EyOWEyNmU4Yzk0NDU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJDdXJzb3JJbXBsLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwuaCIKKworI2luY2x1ZGUgIklEQkFu
eS5oIgorI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCisjaW5jbHVkZSAiSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUgIldlYklE
QktleS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYklEQkN1cnNvckltcGw6OldlYklEQkN1cnNvckltcGwoUGFzc1JlZlB0cjxJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlPiBpZGJDdXJzb3JCYWNrZW5kKQorICAgIDogbV9pZGJDdXJzb3JC
YWNrZW5kKGlkYkN1cnNvckJhY2tlbmQpCit7Cit9CisKK1dlYklEQkN1cnNvckltcGw6On5XZWJJ
REJDdXJzb3JJbXBsKCkKK3sKK30KKwordW5zaWduZWQgc2hvcnQgV2ViSURCQ3Vyc29ySW1wbDo6
ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT5kaXJl
Y3Rpb24oKTsKK30KKworV2ViSURCS2V5IFdlYklEQkN1cnNvckltcGw6OmtleSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFdlYklEQktleShtX2lkYkN1cnNvckJhY2tlbmQtPmtleSgpKTsKK30KKwor
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYklEQkN1cnNvckltcGw6OnZhbHVlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT52YWx1ZSgpLT5zZXJpYWxpemVkU2Ny
aXB0VmFsdWUoKTsKK30KKwordm9pZCBXZWJJREJDdXJzb3JJbXBsOjp1cGRhdGUoY29uc3QgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3Mp
Cit7CisgICAgbV9pZGJDdXJzb3JCYWNrZW5kLT51cGRhdGUodmFsdWUsIElEQkNhbGxiYWNrc1By
b3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7Cit9CisKK3ZvaWQgV2ViSURCQ3Vyc29ySW1wbDo6Y29u
dGludWVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkmIGtleSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxs
YmFja3MpCit7CisgICAgbV9pZGJDdXJzb3JCYWNrZW5kLT5jb250aW51ZUZ1bmN0aW9uKGtleSwg
SURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpKTsKKworfQorCit2b2lkIFdlYklE
QkN1cnNvckltcGw6OnJlbW92ZShXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykKK3sKKyAgICBt
X2lkYkN1cnNvckJhY2tlbmQtPnJlbW92ZShJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxi
YWNrcykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ3Vyc29ySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NWU4NmExMzRkNTE5MjhlZWIyMGY3M2FkY2Jm
NmYxMjQ3MzNiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkN1cnNvckltcGwuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJDdXJz
b3JJbXBsX2gKKyNkZWZpbmUgV2ViSURCQ3Vyc29ySW1wbF9oCisKKyNpbmNsdWRlICJXZWJDb21t
b24uaCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFz
cyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOyB9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisv
LyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkT2JqZWN0U3RvcmUgZm9yIGEgaGlnaCBsZXZlbCBv
dmVydmlldyB0aGVzZSBjbGFzc2VzLgorY2xhc3MgV2ViSURCQ3Vyc29ySW1wbCA6IHB1YmxpYyBX
ZWJJREJDdXJzb3IgeworcHVibGljOgorICAgIFdlYklEQkN1cnNvckltcGwoV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKKyAgICB2aXJ0dWFsIH5X
ZWJJREJDdXJzb3JJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
bigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0OworICAgIHZpcnR1
YWwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBXZWJJREJDYWxsYmFj
a3MqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihjb25zdCBXZWJJREJLZXkm
LCBXZWJJREJDYWxsYmFja3MqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFdlYklEQkNhbGxi
YWNrcyopOworCisgcHJpdmF0ZToKKyAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPiBtX2lkYkN1cnNvckJhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklEQkN1cnNvckltcGxfaApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQktleVJhbmdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWIxMjM5NjA1NmNkOTYwNWViYzIwYmJj
ZGZhOTBhM2Y4ZjBmYzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJLZXlSYW5nZS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgorCisjaW5jbHVkZSAiSURCS2V5Lmgi
CisjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJXZWJJREJLZXkuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYklEQktleVJhbmdlOjpXZWJJREJLZXlSYW5nZShjb25zdCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiYgdmFsdWUpCisgICAgOiBtX3ByaXZhdGUo
dmFsdWUpCit7Cit9CisKK3ZvaWQgV2ViSURCS2V5UmFuZ2U6OmFzc2lnbihjb25zdCBXZWJJREJL
ZXlSYW5nZSYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOworfQor
Cit2b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24oY29uc3QgV2ViSURCS2V5JiBsZWZ0LCBjb25z
dCBXZWJJREJLZXkmIHJpZ2h0LCB1bnNpZ25lZCBzaG9ydCBmbGFncykKK3sKKyAgICBtX3ByaXZh
dGUgPSBXZWJDb3JlOjpJREJLZXlSYW5nZTo6Y3JlYXRlKGxlZnQsIHJpZ2h0LCBmbGFncyk7Cit9
CisKK3ZvaWQgV2ViSURCS2V5UmFuZ2U6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQo
KTsKK30KKworV2ViSURCS2V5IFdlYklEQktleVJhbmdlOjpsZWZ0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcml2YXRlLT5sZWZ0KCk7Cit9CisKK1dlYklEQktleSBXZWJJREJLZXlSYW5nZTo6
cmlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnJpZ2h0KCk7Cit9CisKK3Vu
c2lnbmVkIHNob3J0IFdlYklEQktleVJhbmdlOjpmbGFncygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+ZmxhZ3MoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKaW5kZXggMmMzNDdhOGRh
YzAxYjNjNTY2MjAxMGM3YzhkNTM0YzVmOTgyOTc3YS4uMWFkMWQ5ZjNlNDczOGE3NzRmM2I2NjE0
YjIwNmY2MWEzYWIyZWMwMiAxMDA3NTUKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0
U3RvcmVJbXBsLmNwcApAQCAtMjgsOSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ0xp
c3QuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgorI2luY2x1ZGUgIklEQktleVJh
bmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCisjaW5jbHVk
ZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtOTYsNiArOTgsMTEgQEAgdm9p
ZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OnJlbW92ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgV2ViSURCQ2FsbGJhY2tzKgogICAgIG1fb2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUs
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSk7CiB9CiAKK3ZvaWQgV2ViSURC
T2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5n
ZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcykK
K3sKKyAgICBtX29iamVjdFN0b3JlLT5vcGVuQ3Vyc29yKElEQktleVJhbmdlOjpjcmVhdGUoa2V5
UmFuZ2UubGVmdCgpLCBrZXlSYW5nZS5yaWdodCgpLCBrZXlSYW5nZS5mbGFncygpKSwgZGlyZWN0
aW9uLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcykpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmluZGV4IDZmZDM0NWE0
YmU3OWFkYjI1MjY3YjczYmEwODE5ODY4MTNlNTFiNDcuLjlmMzEzNjljMzBiMTQxNWYxYjkyYzcw
ODVjYWRlZGEwMjc4OTkyMmIgMTAwNzU1Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RT
dG9yZUltcGwuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgV2ViSURCSW5kZXgqIGlu
ZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzKTsKIAorICAgIHZvaWQg
b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgV2ViSURCQ2FsbGJhY2tzKik7CisKICBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gbV9vYmplY3RTdG9yZTsKIH07Cg==
</data>
<flag name="review"
          id="51952"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>