<?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>88852</bug_id>
          
          <creation_ts>2012-06-12 04:02:39 -0700</creation_ts>
          <short_desc>REGRESSION(r120051): some tests are crashing (Requested by morrita on #webkit).</short_desc>
          <delta_ts>2012-06-12 04:36:55 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>88148</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>jbadics</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>646787</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 04:02:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/120051 broke the build:
some tests are crashing (Requested by morrita on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646789</commentid>
    <comment_count>1</comment_count>
      <attachid>147049</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 04:03:37 -0700</bug_when>
    <thetext>Created attachment 147049
ROLLOUT of r120051

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646794</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-12 04:11:36 -0700</bug_when>
    <thetext>From: http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux%20%28dbg%29/builds/7899/steps/webkit_tests/logs/stdio

03:04:51.111 13716 worker/14 fast/dom/Attr/access-after-element-destruction.html crashed, stack trace:
03:04:51.112 13716   ASSERTION FAILED: !m_inRemovedLastRefFunction
03:04:51.112 13716   third_party/WebKit/Source/WebCore/platform/TreeShared.h(65) : void WebCore::TreeShared&lt;NodeType, ParentNodeType&gt;::ref() [with NodeType = WebCore::Node, ParentNodeType = WebCore::ContainerNode]
03:04:51.112 13716   1   0x49d1d9
03:04:51.112 13716   2   0x49d9f0
03:04:51.112 13716   3   0x49d7a3
03:04:51.112 13716   4   0x5070a2
03:04:51.112 13716   5   0x6c720c
03:04:51.112 13716   6   0x6c6fd3
03:04:51.112 13716   7   0x1017313
03:04:51.112 13716   8   0x101755b
03:04:51.112 13716   9   0x6d1838
03:04:51.113 13716   10  0x6d4e0f
03:04:51.113 13716   11  0x6d1866
03:04:51.113 13716   12  0x6d193b
03:04:51.113 13716   13  0x6d3cad
03:04:51.113 13716   14  0x6d3290
03:04:51.113 13716   15  0x6d2544
03:04:51.113 13716   16  0x6cc658
03:04:51.113 13716   17  0x6e1466
03:04:51.113 13716   18  0x7632a0
03:04:51.113 13716   19  0x49d408
03:04:51.113 13716   20  0x17cf0cd
03:04:51.114 13716   21  0xbae4d4
03:04:51.114 13716   22  0xbacf9a
03:04:51.114 13716   23  0xbbc96c
03:04:51.114 13716   24  0xbbbb72
03:04:51.114 13716   25  0xb97a9d
03:04:51.114 13716   26  0xbbb7d8
03:04:51.114 13716   27  0xde7117
03:04:51.114 13716   28  0xb3eb3c
03:04:51.114 13716   29  0xb39ab0
03:04:51.114 13716   30  0xb39a81
03:04:51.114 13716   31  0x122c9ac0618e
03:04:51.114 13716   [13791:13791:6958893186397:ERROR:process_util_posix.cc(143)] Received signal 11
03:04:51.115 13716   	base::debug::StackTrace::StackTrace() [0x86f842]
03:04:51.115 13716   	base::(anonymous namespace)::StackDumpSignalHandler() [0x82f869]
03:04:51.115 13716   	0x7f651d4c7af0
03:04:51.115 13716   	WebCore::TreeShared&lt;&gt;::ref() [0x49d1e3]
03:04:51.115 13716   	WTF::refIfNotNull&lt;&gt;() [0x49d9f0]
03:04:51.115 13716   	WTF::PassRefPtr&lt;&gt;::PassRefPtr() [0x49d7a3]
03:04:51.115 13716   	WebKit::ContextFeaturesClientImpl::isEnabled() [0x5070a2]
03:04:51.115 13716   	WebCore::ContextFeatures::isEnabled() [0x6c720c]
03:04:51.115 13716   	WebCore::ContextFeatures::styleScopedEnabled() [0x6c6fd3]
03:04:51.115 13716   	WebCore::HTMLStyleElement::unregisterWithScopingNode() [0x1017313]
03:04:51.116 13716   	WebCore::HTMLStyleElement::removedFrom() [0x101755b]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument() [0x6d1838]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument() [0x6d4e0f]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument() [0x6d1866]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notify() [0x6d193b]
03:04:51.116 13716   	WebCore::Private::NodeRemovalDispatcher&lt;&gt;::dispatch() [0x6d3cad]
03:04:51.116 13716   	WebCore::Private::addChildNodesToDeletionQueue&lt;&gt;() [0x6d3290]
03:04:51.116 13716   	WebCore::removeAllChildrenInContainer&lt;&gt;() [0x6d2544]
03:04:51.116 13716   	WebCore::ContainerNode::removeAllChildren() [0x6cc658]
03:04:51.116 13716   	WebCore::Document::removedLastRef() [0x6e1466]
03:04:51.116 13716   	WebCore::Node::removedLastRef() [0x7632a0]
03:04:51.117 13716   	WebCore::TreeShared&lt;&gt;::deref() [0x49d408]
03:04:51.117 13716   	WebCore::DOMDataStore::weakNodeCallback() [0x17cf0cd]
03:04:51.117 13716   	v8::internal::GlobalHandles::Node::PostGarbageCollectionProcessing() [0xbae4d4]
03:04:51.117 13716   	v8::internal::GlobalHandles::PostGarbageCollectionProcessing() [0xbacf9a]
03:04:51.117 13716   	v8::internal::Heap::PerformGarbageCollection() [0xbbc96c]
03:04:51.117 13716   	v8::internal::Heap::CollectGarbage() [0xbbbb72]
03:04:51.117 13716   	v8::internal::Heap::CollectGarbage() [0xb97a9d]
03:04:51.117 13716   	v8::internal::Heap::CollectAllGarbage() [0xbbb7d8]
03:04:51.117 13716   	v8::internal::GCExtension::GC() [0xde7117]
03:04:51.117 13716   	v8::internal::HandleApiCallHelper&lt;&gt;() [0xb3eb3c]
03:04:51.117 13716   	v8::internal::Builtin_Impl_HandleApiCall() [0xb39ab0]
03:04:51.118 13716   	v8::internal::Builtin_HandleApiCall() [0xb39a81]
03:04:51.118 13716   	0x122c9ac0618e
0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646797</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-12 04:14:43 -0700</bug_when>
    <thetext>From: http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux%20%28dbg%29/builds/7899/steps/webkit_tests/logs/stdio

03:04:51.111 13716 worker/14 fast/dom/Attr/access-after-element-destruction.html crashed, stack trace:
03:04:51.112 13716   ASSERTION FAILED: !m_inRemovedLastRefFunction
03:04:51.112 13716   third_party/WebKit/Source/WebCore/platform/TreeShared.h(65) : void WebCore::TreeShared&lt;NodeType, ParentNodeType&gt;::ref() [with NodeType = WebCore::Node, ParentNodeType = WebCore::ContainerNode]
03:04:51.112 13716   1   0x49d1d9
03:04:51.112 13716   2   0x49d9f0
03:04:51.112 13716   3   0x49d7a3
03:04:51.112 13716   4   0x5070a2
03:04:51.112 13716   5   0x6c720c
03:04:51.112 13716   6   0x6c6fd3
03:04:51.112 13716   7   0x1017313
03:04:51.112 13716   8   0x101755b
03:04:51.112 13716   9   0x6d1838
03:04:51.113 13716   10  0x6d4e0f
03:04:51.113 13716   11  0x6d1866
03:04:51.113 13716   12  0x6d193b
03:04:51.113 13716   13  0x6d3cad
03:04:51.113 13716   14  0x6d3290
03:04:51.113 13716   15  0x6d2544
03:04:51.113 13716   16  0x6cc658
03:04:51.113 13716   17  0x6e1466
03:04:51.113 13716   18  0x7632a0
03:04:51.113 13716   19  0x49d408
03:04:51.113 13716   20  0x17cf0cd
03:04:51.114 13716   21  0xbae4d4
03:04:51.114 13716   22  0xbacf9a
03:04:51.114 13716   23  0xbbc96c
03:04:51.114 13716   24  0xbbbb72
03:04:51.114 13716   25  0xb97a9d
03:04:51.114 13716   26  0xbbb7d8
03:04:51.114 13716   27  0xde7117
03:04:51.114 13716   28  0xb3eb3c
03:04:51.114 13716   29  0xb39ab0
03:04:51.114 13716   30  0xb39a81
03:04:51.114 13716   31  0x122c9ac0618e
03:04:51.114 13716   [13791:13791:6958893186397:ERROR:process_util_posix.cc(143)] Received signal 11
03:04:51.115 13716   	base::debug::StackTrace::StackTrace() [0x86f842]
03:04:51.115 13716   	base::(anonymous namespace)::StackDumpSignalHandler() [0x82f869]
03:04:51.115 13716   	0x7f651d4c7af0
03:04:51.115 13716   	WebCore::TreeShared&lt;&gt;::ref() [0x49d1e3]
03:04:51.115 13716   	WTF::refIfNotNull&lt;&gt;() [0x49d9f0]
03:04:51.115 13716   	WTF::PassRefPtr&lt;&gt;::PassRefPtr() [0x49d7a3]
03:04:51.115 13716   	WebKit::ContextFeaturesClientImpl::isEnabled() [0x5070a2]
03:04:51.115 13716   	WebCore::ContextFeatures::isEnabled() [0x6c720c]
03:04:51.115 13716   	WebCore::ContextFeatures::styleScopedEnabled() [0x6c6fd3]
03:04:51.115 13716   	WebCore::HTMLStyleElement::unregisterWithScopingNode() [0x1017313]
03:04:51.116 13716   	WebCore::HTMLStyleElement::removedFrom() [0x101755b]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument() [0x6d1838]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument() [0x6d4e0f]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument() [0x6d1866]
03:04:51.116 13716   	WebCore::ChildNodeRemovalNotifier::notify() [0x6d193b]
03:04:51.116 13716   	WebCore::Private::NodeRemovalDispatcher&lt;&gt;::dispatch() [0x6d3cad]
03:04:51.116 13716   	WebCore::Private::addChildNodesToDeletionQueue&lt;&gt;() [0x6d3290]
03:04:51.116 13716   	WebCore::removeAllChildrenInContainer&lt;&gt;() [0x6d2544]
03:04:51.116 13716   	WebCore::ContainerNode::removeAllChildren() [0x6cc658]
03:04:51.116 13716   	WebCore::Document::removedLastRef() [0x6e1466]
03:04:51.116 13716   	WebCore::Node::removedLastRef() [0x7632a0]
03:04:51.117 13716   	WebCore::TreeShared&lt;&gt;::deref() [0x49d408]
03:04:51.117 13716   	WebCore::DOMDataStore::weakNodeCallback() [0x17cf0cd]
03:04:51.117 13716   	v8::internal::GlobalHandles::Node::PostGarbageCollectionProcessing() [0xbae4d4]
03:04:51.117 13716   	v8::internal::GlobalHandles::PostGarbageCollectionProcessing() [0xbacf9a]
03:04:51.117 13716   	v8::internal::Heap::PerformGarbageCollection() [0xbbc96c]
03:04:51.117 13716   	v8::internal::Heap::CollectGarbage() [0xbbbb72]
03:04:51.117 13716   	v8::internal::Heap::CollectGarbage() [0xb97a9d]
03:04:51.117 13716   	v8::internal::Heap::CollectAllGarbage() [0xbbb7d8]
03:04:51.117 13716   	v8::internal::GCExtension::GC() [0xde7117]
03:04:51.117 13716   	v8::internal::HandleApiCallHelper&lt;&gt;() [0xb3eb3c]
03:04:51.117 13716   	v8::internal::Builtin_Impl_HandleApiCall() [0xb39ab0]
03:04:51.118 13716   	v8::internal::Builtin_HandleApiCall() [0xb39a81]
03:04:51.118 13716   	0x122c9ac0618e
0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646799</commentid>
    <comment_count>4</comment_count>
      <attachid>147049</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 04:18:35 -0700</bug_when>
    <thetext>Comment on attachment 147049
ROLLOUT of r120051

Clearing flags on attachment: 147049

Committed r120057: &lt;http://trac.webkit.org/changeset/120057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646800</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 04:18:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646821</commentid>
    <comment_count>6</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-06-12 04:36:55 -0700</bug_when>
    <thetext>*** Bug 88857 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147049</attachid>
            <date>2012-06-12 04:03:37 -0700</date>
            <delta_ts>2012-06-12 04:18:35 -0700</delta_ts>
            <desc>ROLLOUT of r120051</desc>
            <filename>bug-88852-20120612110818.patch</filename>
            <type>text/plain</type>
            <size>72320</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdjMzYwY2RmMTk3NTgx
NGZlNTgxNWJhYmZiNGQ0NWI3Yzc3NTc4MC4uYmMwOGExNzQ5OWExYTgzNzQ2NWNiNmJjNjdlMDg0
ZjI2NTc3NTcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTA2LTEyICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTIwMDUxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjAwNTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg4ODUyCisKKyAgICAgICAgc29tZSB0ZXN0cyBhcmUgY3Jhc2hpbmcgKFJlcXVl
c3RlZCBieSBtb3JyaXRhIG9uICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGwuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAgICAg
KiBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGV4dEVuYWJsZWRGZWF0dXJlcyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkZXRlcm1pbmVTY29wZSk6CisgICAg
ICAgICogZG9tL0NvbnRleHRGZWF0dXJlcy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0Nv
bnRleHRGZWF0dXJlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1l
bnQpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3Np
dGlvbjo6UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZpbmRQYXJlbnQp
OgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlOjpnZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAg
ICAocHJpbnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZp
bGUpOgorICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rpb25zKToKKyAgICAgICAgKHByaW50V3Jh
cHBlckZhY3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4dCk6CisgICAg
ICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
dHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTdHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZW50VGFnTmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnQ6OmFsbG93U2hhZG93RE9NKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50OjphbGxvd1N0eWxlU2NvcGVkKToKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjphbGxvd1BhZ2VQb3B1
cCk6CisgICAgICAgICogcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VYTUwpOgorCiAyMDEyLTA2LTExICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90
b3JvbGEuY29tPgogCiAgICAgICAgIFtEUlRdIExUQzo6IGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCkgY291bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCBiODIxOGE1YzY3ZTM5ZjhhMzBjZjFjNmNlNjcwZjM4ZTUwN2YzMDgzLi4yNmM1Njg1
ZTJkODI4MGQzMDY5NzQxYzdjYjY4YTI0NzgxOGJhYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTEyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTIwMDUxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjAwNTEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODUyCisK
KyAgICAgICAgc29tZSB0ZXN0cyBhcmUgY3Jhc2hpbmcgKFJlcXVlc3RlZCBieSBtb3JyaXRhIG9u
ICN3ZWJraXQpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd1dlYkNvbXBvbmVudHMpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2hh
ZG93RE9NKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50SW1wbDo6YWxsb3dTdHlsZVNjb3BlZCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAgICAg
KiBzcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQb3B1
cEltcGw6OmluaXRQYWdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA2LTEyICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjExODA5OCk6IDxjb250
ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGlsZHJlbiB3aGVuIGNs
b25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWJkNWIw
MDVlN2NiZTMyMTRhZGU0YzFmYjRjY2U1NDA2NjIzY2U5Mi4uZTRjMDRjYzI0MDNmNTM3MGJjZDA5
NTY2ZTIyOWM0NzhmN2JjZWQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ1OSw2ICs0NTks
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJh
c2UuY3BwCiAKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcAorICAg
IGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKICAgICBiaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKICAgICBjc3MvQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5jcHAKQEAgLTU1OCw3ICs1NTksNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwCiAgICAgZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmNwcAogICAgIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKLSAgICBkb20vQ29u
dGV4dEZlYXR1cmVzLmNwcAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAKICAgICBkb20vRGF0YXNl
dERPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZmNzIxN2Y1NWYxN2I0MTBjNmI4NTIz
ODIzMjJjZDBkZWZjZTY4MzMuLmE0YjIzMTY2NWI4MjIwMTFmOGE2NGY3OTVkMDM0MjQ5ZDFkMzEz
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwNiw2ICsxMzA2LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01D
YWxsYmFjay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9N
Q2FsbGJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5h
YmxlZEZlYXR1cmVzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250
ZXh0RW5hYmxlZEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
QmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdTZWN1cml0eS5oIFwKQEAgLTE3OTcsOCArMTc5OSw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggXAotCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZl
YXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZFRhc2suaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0N1
c3RvbUV2ZW50LmggXApAQCAtMzU4NSw3ICszNTg1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1B1cmdlUHJpb3JpdHkuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmQ291bnRl
ZFN1cHBsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3ku
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5ODg0MzIzNjA2MzdiNTM2
ZTcwOGQzZjJlZDEwOGY4NmQ0YmFhMzdhLi5iY2QwMGMxYTAxYTQ3YTMzOTcyYjE0ZDFkOWQwNjQ1
OWVhZDAxODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTcyLDYgKzcyLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURP
TUNhbGxiYWNrLmNwcCBcCisgICAgYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNw
cAogCiB2OCB7CkBAIC01MjgsNyArNTI5LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0NvbnRh
aW5lck5vZGUuY3BwIFwKICAgICBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwIFwKICAg
ICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIFwKLSAgICBkb20vQ29udGV4dEZl
YXR1cmVzLmNwcCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmNwcCBcCiAgICAgZG9tL0RlY29kZWRE
YXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwKICAgICBkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ0YjBmODk1YTBhNjAxYzE4OTFmOTYxMTNmNTU0YThl
YTU3MmM1Y2QuLjUyMzUxMjJmOTFjYzliMWJjZTY4ZTNjZWFiNGIwM2QwZWUxODc1MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMwOSw3ICszMDksNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bv
cHVwTWVudVN0eWxlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Njcm9sbFZpZXcuaCcsCkBAIC02MTcs
OCArNjE2LDYgQEAKICAgICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgn
LAogICAgICAgICAgICAgJ2RvbS9Db250YWluZXJOb2RlLmgnLAogICAgICAgICAgICAgJ2RvbS9D
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oJywKLSAgICAgICAgICAgICdkb20vQ29udGV4dEZl
YXR1cmVzLmgnLAotICAgICAgICAgICAgJ2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwJywKICAgICAg
ICAgICAgICdkb20vRE9NSW1wbGVtZW50YXRpb24uaCcsCiAgICAgICAgICAgICAnZG9tL0RPTVRp
bWVTdGFtcC5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb24uaCcsCkBAIC0x
ODU2LDYgKzE4NTMsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1Nl
Y3VyaXR5LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5
QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5
QmFzZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVh
dHVyZXMuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGlu
Zy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IDQxM2ZjMWU5Y2Q5ODJhNWJjMjg2ZGVlNTJiMWEwNzliMDUxZDk0ZjUuLjUxOWE2ODlk
MmJkNDVmYmE0NzNhZjlkMzJhMTVkZmIwOTAxMWM3YzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02MzIxMCw2ICs2MzIxMCwxNCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xHZW5lcmljQmluZGluZy5oIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE0ZDA0NGRlMmFhZGI0NGIxZDEzZGQ5Y2NkMGFmYmU5
MjIzNTQ5YTYuLjBjNzAzNzM0NmY4ZWM2MzRjNWM5ZjdmYTBlMjU5MWMzZTAyZTdiZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTM3NTMsMTEgKzM3NTMsMTIgQEAKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZF
Q0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gKi87IH07CiAJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTcyRUEzQkIx
NTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYg
LyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcz
Rjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJQTczRjk1
RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91
bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3OTE0Qzkz
NDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CiAJCUE3NDBCNUE3MTRD
OTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzgxNEM5MzQ4NDAwQzhGNUJGIC8q
IEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CisJCUE3NDdBMDdGMTU2QjI4NjkwMDI0M0VF
RCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDdBMDdEMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmNwcCAqLzsgfTsKKwkJQTc0N0EwODAxNTZCMjg2OTAwMjQzRUVEIC8q
IENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzLmggKi87IH07CiAJCUE3NEJCNzZCMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NDEwNzUy
QUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc1RTQ5NzcxMDc1MkFDQjAwQzlCODk2
IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NTEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKQEAgLTM4MDksOCArMzgxMCw2IEBACiAJCUE3RDIwRjYy
MTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIg
LyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovOyB9OwogCQlBN0QyMEY2MzEwN0Y0MDY5MDBBODAz
OTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZl
SW5mby5oICovOyB9OwogCQlBN0QyMEY2RDEwN0Y0MzhCMDBBODAzOTIgLyogV2ViR0xBY3RpdmVJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Qy
MEY2QjEwN0Y0MzhCMDBBODAzOTIgLyogV2ViR0xBY3RpdmVJbmZvLmggKi87IH07Ci0JCUE3RDND
QTEwMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3
IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgKi87IH07Ci0JCUE3RDNDQTExMTU3REY4RTkwMDg2MEE5
NyAvKiBDb250ZXh0RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3RDNDQTBGMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMu
aCAqLzsgfTsKIAkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENkIz
NDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICovOyB9OwogCQlBN0Q2
QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ4MEY2MTEwNDUwMEI3
OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovOyB9OwogCQlBN0RCRjhERDEyNzY5MTlD
MDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3REJGOERCMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0
Q2hlY2tpbmdIZWxwZXIuY3BwICovOyB9OwpAQCAtMTA4NTQsOSArMTA4NTMsMTAgQEAKIAkJQTcx
ODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1M
TWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2
REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZDb3VudGVkU3VwcGxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyog
Um91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91
bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc0N0Ew
N0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7
IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZXh0RW5h
YmxlZEZlYXR1cmVzLmg7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8q
IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2
IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA5MTQsOCArMTA5MTQsNiBAQAogCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAz
OTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXZWJHTEFjdGl2ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTEFjdGl2ZUluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEMjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdM
QWN0aXZlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTEFjdGl2
ZUluZm8uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJl
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0RmVhdHVy
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBN0QzQ0EwRjE1N0RGOEU5MDA4
NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnRleHRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q2
QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlci5oOyBwYXRoID0gd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdE
NkIzNDgwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwOyBwYXRo
ID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBN0RCNDE4MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTc2NSw2ICsxOTc2Myw4IEBACiAJCQkJQTYyMkE4RjUxMjJDNDRBNjAwQTc4NUIz
IC8qIEJpbmRpbmdTZWN1cml0eS5oICovLAogCQkJCUE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAv
KiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLywKIAkJCQlBNjIyQThGNzEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovLAorCQkJCUE3NDdBMDdEMTU2QjI4NjkwMDI0
M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLywKKwkJCQlBNzQ3QTA3RTE1NkIy
ODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovLAogCQkJCUE2MjJBOEY5
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBnZW5lcmljOwpAQCAtMjA0ODAsNyArMjA0ODAsNiBAQAogCQkJCUJDM0JFMTJBMEU5ODA5MkYw
MDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4MEVEN0FFNEYwMDZF
QTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCAqLywKIAkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThG
MTcgLyogUHVyZ2VQcmlvcml0eS5oICovLAotCQkJCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAv
KiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovLAogCQkJCTk4MzFBRTQ5MTU0MjI1QTIwMEZFMjY0
NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAogCQkJCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAv
KiBSdW5Mb29wLmNwcCAqLywKIAkJCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9v
cC5oICovLApAQCAtMjEyMDIsOCArMjEyMDEsNiBAQAogCQkJCUUxQTE0NzA3MTExMDJCMTUwMEVF
QzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovLAogCQkJCTk3NjI3QjhCMTRGQjND
RUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJOTc2
MjdCOEMxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggKi8s
Ci0JCQkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgKi8s
Ci0JCQkJQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5oICovLAog
CQkJCTJFM0ZBQTA4MTFBMzZCRjEwMDU3NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCAqLywKIAkJ
CQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovLAogCQkJCTYy
Q0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oICovLApAQCAtMjIwNTcsNyAr
MjIwNTQsNyBAQAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRU
eXBlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIzQ0VFMDAyQ0RDQTEg
LyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3RDND
QTExMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyogQ29udGV4dE1l
bnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEwMDVBMkIxRCAvKiBDb250
ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjcwQjBDMkVEQTAwNUEy
QjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE2Niw3
ICsyNDE2Myw2IEBACiAJCQkJRkQzMTYwM0MxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5h
bHlzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDNFMTJCMDI2NzYwMEMxQTM1OSAvKiBS
ZWFsdGltZUFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MzY4RTgwQzIyNkUz
MjAwNUVGQjVGIC8qIFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3MkVBM0JCMTU4NUNGNTUw
MDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTgz
MUFFNEExNTQyMjVDOTAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0FCNDE4MjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NTAzMUI0QzBBNDRFRkM3MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMjU1NzksNyArMjU1NzUsNyBAQAogCQkJCTQxRDAxNUNCMEY0
QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzBE
NkVEQTEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc2MjdCOEQxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3RDNDQTEwMTU3REY4RTkwMDg2MEE5NyAv
KiBDb250ZXh0RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc0N0EwN0YxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNjAyN0NCMzBCMUNDMDNEMDA4ODRCMkQgLyogQ29udGV4dE1l
bnVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNkEwRUEwQjBCQ0E4NDAwRjUwMjdB
IC8qIENvbnRleHRNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lMjYyMmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5h
YmxlZEZlYXR1cmVzLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBF
TkFCTEUoU0hBRE9XX0RPTSkKK2Jvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9N
RW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCisg
ICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpOworICAgIHJldHVybiBm
YWxzZTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKK2Jvb2wgQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUtPmxv
YWRlcigpLT5jbGllbnQoKS0+YWxsb3dTdHlsZVNjb3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmICAg
CisKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKK2Jvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6
cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIXdpbmRvdykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZy
YW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1Bh
Z2VQb3B1cCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Nv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhN2ZhNGI3NTg1ZWE3N2E3MTli
ZTNiNGQzMzQ0OGIyODJmNDk5N2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzX2gKKyNkZWZpbmUgQ29udGV4dEVuYWJsZWRG
ZWF0dXJlc19oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xh
c3MgRG9jdW1lbnQ7CisKKy8vIEEgY2xhc3MgdGhhdCBzdG9yZXMgc3RhdGljIGVuYWJsZXJzIGZv
ciBhbGwgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBOb3RlIHRoYXQKKy8vIHRoZSBtZXRob2QgbmFt
ZXMgbXVzdCBsaW5lIHVwIHdpdGggdGhlIEphdmFTY3JpcHQgbWV0aG9kIHRoZXkgZW5hYmxlIGZv
ciBjb2RlCisvLyBnZW5lcmF0aW9uIHRvIHdvcmsgcHJvcGVybHkuCisKK2NsYXNzIENvbnRleHRF
bmFibGVkRmVhdHVyZXMgeworcHVibGljOgorI2lmIEVOQUJMRShTSEFET1dfRE9NKQorICAgIHN0
YXRpYyBib29sIHNoYWRvd0RPTUVuYWJsZWQoRE9NV2luZG93Kik7CisjZW5kaWYKKyNpZiBFTkFC
TEUoU1RZTEVfU0NPUEVEKQorICAgIHN0YXRpYyBib29sIHN0eWxlU2NvcGVkRW5hYmxlZChEb2N1
bWVudCopOworI2VuZGlmCisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCisgICAgc3RhdGljIGJvb2wg
cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29udGV4dEVuYWJsZWRGZWF0dXJlc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4
IDAwODI0YWJjMjI0MzQyMTg4YjA0ZWRjY2ExMzI1NGY1ZmIwMGI3NGUuLjYxYjk3YmUzZDk2ZTNh
OWI5MGVjNGJjNGJlYzU5MGViNzVlN2FlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNDE3LDcgKzI0MTcsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxGaXhlZEhlYWRlciwgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7CiAKICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7Ci0gICAgQWRkVG9JbXBs
SW5jbHVkZXMoIkNvbnRleHRGZWF0dXJlcy5oIik7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5
LmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiVjhCaW5kaW5nU3RhdGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2LDcgQEAgRU5E
CiAgICAgICAgICAgICBteSAkZW5hYmxlRnVuY3Rpb24gPSBHZXRDb250ZXh0RW5hYmxlRnVuY3Rp
b24oJHJ1bnRpbWVBdHRyLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFs
U3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRp
bWVBdHRyLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKENvbnRleHRGZWF0dXJlczo6JHtlbmFi
bGVGdW5jdGlvbn0oaW1wbC0+ZG9jdW1lbnQoKSkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7ZW5hYmxlRnVu
Y3Rpb259KGltcGwpKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOwogICAg
ICAgICAgICAgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlKCRpbnRlcmZhY2VOYW1lLCAk
cnVudGltZUF0dHIsICI7IiwgIiAgICAiKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggOWQ2MWE4ZGNh
MjcxMWIyYzFiMDZiNDBhMzc5Mjg4YmRlNDM0YzYxOS4uOGRhNDhiMWNjNTBiZGZhMzM0ODY0MDk3
NGQyNWJhNDNhYWZkODBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAt
NTIsNyArNTIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FsY3Vs
YXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCi0jaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIkNvdW50ZXIuaCIKICNpbmNsdWRlICJDb3VudGVyQ29udGVudC5oIgogI2luY2x1ZGUgIkN1
cnNvckxpc3QuaCIKQEAgLTQ5MSw3ICs0OTEsNyBAQCBjb25zdCBDb250YWluZXJOb2RlKiBTdHls
ZVJlc29sdmVyOjpkZXRlcm1pbmVTY29wZShjb25zdCBDU1NTdHlsZVNoZWV0KiBzaGVldCkKIHsK
ICAgICBBU1NFUlQoc2hlZXQpOwogCi0gICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2Nv
cGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6
OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBOb2RlKiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250ZXh0RmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODdkYjRj
YjI1ZGE3ZmVhMDBmNDZjZWVlMDczZTQyNDkyYTI1Zjc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVy
ZXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBDb250ZXh0
RmVhdHVyZXNDbGllbnQ6OmVtcHR5KCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRl
eHRGZWF0dXJlc0NsaWVudCwgZW1wdHksICgpKTsKLSAgICByZXR1cm4gJmVtcHR5OwotfQotCi1j
b25zdCBBdG9taWNTdHJpbmcmIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0
dXJlcyIpKTsKLSAgICByZXR1cm4gbmFtZTsKLX0KLQotQ29udGV4dEZlYXR1cmVzKiBDb250ZXh0
RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVm
UHRyPENvbnRleHRGZWF0dXJlcz4sIGluc3RhbmNlLCAoQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUo
Q29udGV4dEZlYXR1cmVzQ2xpZW50OjplbXB0eSgpKSkpOwotICAgIHJldHVybiBpbnN0YW5jZS5n
ZXQoKTsKLX0KLQotYm9vbCBDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoRG9jdW1l
bnQqIGRvY3VtZW50KQotewotI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmICghZG9jdW1l
bnQpCi0gICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFi
bGVkKCk7Ci0gICAgcmV0dXJuIGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVk
KGRvY3VtZW50LCBTaGFkb3dET00sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVu
YWJsZWQoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCi19Ci0KLWJvb2wgQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQotewotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi0g
ICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnN0eWxlU2NvcGVkRW5hYmxlZCgpOwotICAgIHJldHVybiBkb2N1bWVudC0+Y29udGV4dEZlYXR1
cmVzKCktPmlzRW5hYmxlZChkb2N1bWVudCwgU3R5bGVTY29wZWQsIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRv
Y3VtZW50KTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQotYm9vbCBDb250ZXh0RmVh
dHVyZXM6OnBhZ2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQotewotI2lmIEVOQUJM
RShQQUdFX1BPUFVQKQotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICByZXR1cm4gZG9jdW1lbnQtPmNvbnRleHRGZWF0dXJlcygpLT5pc0VuYWJsZWQoZG9jdW1l
bnQsIFBhZ2VQb3B1cCwgZmFsc2UpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQp
OwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCi12b2lkIHByb3ZpZGVDb250ZXh0RmVh
dHVyZXNUbyhQYWdlKiBwYWdlLCBDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKLXsKLSAg
ICBSZWZDb3VudGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+Ojpwcm92aWRlVG8o
cGFnZSwgQ29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZXM6
OmNyZWF0ZShjbGllbnQpKTsKLX0KLQotdm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1
bWVudEZyb20oRG9jdW1lbnQqIGRvY3VtZW50LCBQYWdlKiBwYWdlKQotewotICAgIENvbnRleHRG
ZWF0dXJlcyogcHJvdmlkZWQgPSBzdGF0aWNfY2FzdDxDb250ZXh0RmVhdHVyZXMqPihSZWZDb3Vu
dGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+Ojpmcm9tKHBhZ2UsIENvbnRleHRG
ZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKSkpOwotICAgIGlmICghcHJvdmlkZWQpCi0gICAgICAg
IHJldHVybjsKLSAgICBkb2N1bWVudC0+c2V0Q29udGV4dEZlYXR1cmVzKHByb3ZpZGVkKTsKLX0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlZjY2MjIwN2U3ZjZiYjJiMGVhODc2MTQ4ZjQxMjkxZDI2ZDIxNjIxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250ZXh0RmVhdHVyZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLQot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgQ29udGV4dEZlYXR1cmVzX2gKLSNkZWZpbmUgQ29udGV4dEZlYXR1cmVzX2gKLQot
I2luY2x1ZGUgIlJlZkNvdW50ZWRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDb250ZXh0RmVhdHVyZXNDbGll
bnQ7Ci1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIFBhZ2U7Ci0KLWNsYXNzIENvbnRleHRGZWF0dXJl
cyA6IHB1YmxpYyBSZWZDb3VudGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+IHsK
LXB1YmxpYzoKLSAgICBlbnVtIEZlYXR1cmVUeXBlIHsKLSAgICAgICAgU2hhZG93RE9NLAotICAg
ICAgICBTdHlsZVNjb3BlZCwKLSAgICAgICAgUGFnZVBvcHVwCi0gICAgfTsKLQotICAgIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7Ci0gICAgc3RhdGljIENvbnRl
eHRGZWF0dXJlcyogZGVmYXVsdFN3aXRjaCgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbnRl
eHRGZWF0dXJlcz4gY3JlYXRlKENvbnRleHRGZWF0dXJlc0NsaWVudCopOwotCi0gICAgc3RhdGlj
IGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCopOwotICAgIHN0YXRpYyBib29sIHN0eWxl
U2NvcGVkRW5hYmxlZChEb2N1bWVudCopOwotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJs
ZWQoRG9jdW1lbnQqKTsKLQotICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgRmVhdHVyZVR5
cGUsIGJvb2wpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IENvbnRleHRGZWF0dXJl
cyhDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKLSAgICAgICAgOiBtX2NsaWVudChjbGll
bnQpCi0gICAgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3llZCgpIE9WRVJSSURF
OwotCi0gICAgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBtX2NsaWVudDsKLX07Ci0KLWlubGluZSB2
b2lkIENvbnRleHRGZWF0dXJlczo6aG9zdERlc3Ryb3llZCgpCi17Ci0gICAgbV9jbGllbnQgPSAw
OwotfQotCi0KLWNsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIENvbnRleHRGZWF0dXJlc0NsaWVudCogZW1wdHkoKTsKLQotICAgIHZpcnR1YWwgfkNvbnRl
eHRGZWF0dXJlc0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoRG9jdW1l
bnQqLCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSkgeyBy
ZXR1cm4gZGVmYXVsdFZhbHVlOyB9Ci19OwotCi12b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNU
byhQYWdlKiwgQ29udGV4dEZlYXR1cmVzQ2xpZW50Kik7Ci12b2lkIHByb3ZpZGVDb250ZXh0RmVh
dHVyZXNUb0RvY3VtZW50RnJvbShEb2N1bWVudCosIFBhZ2UqKTsKLQotaW5saW5lIFBhc3NSZWZQ
dHI8Q29udGV4dEZlYXR1cmVzPiBDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZShDb250ZXh0RmVhdHVy
ZXNDbGllbnQqIGNsaWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbnRleHRGZWF0
dXJlcyhjbGllbnQpKTsKLX0KLQotaW5saW5lIGJvb2wgQ29udGV4dEZlYXR1cmVzOjppc0VuYWJs
ZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1
ZSkgY29uc3QKLXsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZGVmYXVsdFZh
bHVlOwotICAgIHJldHVybiBtX2NsaWVudC0+aXNFbmFibGVkKGRvY3VtZW50LCB0eXBlLCBkZWZh
dWx0VmFsdWUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDb250
ZXh0RmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMTQ4ZmMzZWM5
ODJjOThmNmZiZDI0OWJjYmJjZTUxOTNiYzNiNzlkZS4uMzIwYWVmOTgyMDlhNWViODRhN2U3NTI4
ZmNiM2I1NjQ5Njg1ODc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC00NCw3
ICs0NCw2IEBACiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5jcHAiCiAjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZUFsZ29yaXRobXMuY3BwIgogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmNwcCIKLSNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuY3BwIgogI2luY2x1ZGUgIkN1c3Rv
bUV2ZW50LmNwcCIKICNpbmNsdWRlICJET01Db3JlRXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJE
T01JbXBsZW1lbnRhdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
SW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmNwcAppbmRleCAzZmFmZTE5M2M4ZjYxY2NjOGZkZjQ4YTc5YTQyYjI3MWZiYmE1MzE4Li40ZDNk
ODUzM2FkMGEyZDNkOTc0Y2VjNjk2NGYyMjcyODhiNmU2MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkNvbnRl
eHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0yOTYsNyArMjk1LDYgQEAgUGFz
c1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0
IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICAgICAgZG9jID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBL
VVJMKCkpOwogCiAgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpKTsKLSAgICBkb2MtPnNldENvbnRleHRGZWF0dXJlcyhtX2RvY3VtZW50LT5jb250
ZXh0RmVhdHVyZXMoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50OwogICAg
IGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKQEAgLTM3NCw3ICszNzIsNiBAQCBQYXNz
UmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxEb2N1bWVu
dChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPndyaXRlKCI8IWRvY3R5cGUgaHRtbD48aHRtbD48
Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRpdGxlKTsKICAgICBkLT5z
ZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBkLT5z
ZXRDb250ZXh0RmVhdHVyZXMobV9kb2N1bWVudC0+Y29udGV4dEZlYXR1cmVzKCkpOwogICAgIHJl
dHVybiBkLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDVmZWQ2
MDQ0MWJkNzMyMDQxOGIwMWNjZGUyYTE4ODE5N2IwZjAyNC4uN2FjNTMwNzIxNmY2Njg3YTAxZmE2
ZjdmNTYwOTg0Mzk5Y2I1MjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NCw3ICs0
NCw2IEBACiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMu
aCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgpAQCAtNDI5LDcgKzQyOCw2IEBAIERvY3VtZW50
OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBi
b29sIGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9jdW1lbnQpCiAgICAg
LCBUcmVlU2NvcGUodGhpcykKICAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQotICAgICwgbV9jb250
ZXh0RmVhdHVyZXMoQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkpCiAgICAgLCBtX2Nv
bXBhdGliaWxpdHlNb2RlKE5vUXVpcmtzTW9kZSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGVM
b2NrZWQoZmFsc2UpCiAgICAgLCBtX2RvbVRyZWVWZXJzaW9uKCsrc19nbG9iYWxUcmVlVmVyc2lv
bikKQEAgLTUwOCw4ICs1MDYsNiBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgbV9pZ25vcmVB
dXRvZm9jdXMgPSBmYWxzZTsKIAogICAgIG1fZnJhbWUgPSBmcmFtZTsKLSAgICBpZiAobV9mcmFt
ZSkKLSAgICAgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvRG9jdW1lbnRGcm9tKHRoaXMsIG1f
ZnJhbWUtPnBhZ2UoKSk7CiAKICAgICAvLyBXZSBkZXBlbmQgb24gdGhlIHVybCBnZXR0aW5nIGlt
bWVkaWF0ZWx5IHNldCBpbiBzdWJmcmFtZXMsIGJ1dCB3ZQogICAgIC8vIGFsc28gZGVwZW5kIG9u
IHRoZSB1cmwgTk9UIGdldHRpbmcgaW1tZWRpYXRlbHkgc2V0IGluIG9wZW5lZCB3aW5kb3dzLgpA
QCAtNTk4NCwxMSArNTk4MCw2IEBAIHZvaWQgRG9jdW1lbnQ6OmFkanVzdEZsb2F0UmVjdEZvclNj
cm9sbEFuZEFic29sdXRlWm9vbUFuZEZyYW1lU2NhbGUoRmxvYXRSZWN0JiByCiAgICAgICAgIHJl
Y3Quc2NhbGUoaW52ZXJzZUZyYW1lU2NhbGUpOwogfQogCi12b2lkIERvY3VtZW50OjpzZXRDb250
ZXh0RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+IGZlYXR1cmVzKQotewotICAg
IG1fY29udGV4dEZlYXR1cmVzID0gZmVhdHVyZXM7Ci19Ci0KICNpZiBFTkFCTEUoVU5ET19NQU5B
R0VSKQogUGFzc1JlZlB0cjxVbmRvTWFuYWdlcj4gRG9jdW1lbnQ6OnVuZG9NYW5hZ2VyKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmRkNTRjMDlkZDAwYzJhNWVmY2FhZDJkNWNmN2U4NGRk
MjM2YzgxNC4uYzNlYmI0NmVmMGRkNTRhN2IyOWM1YzQwZjliNTJhYzUyOGM0MDM0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xh
c3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIENoYXJhY3RlckRhdGE7CiBjbGFzcyBD
b21tZW50OwotY2xhc3MgQ29udGV4dEZlYXR1cmVzOwogY2xhc3MgRE9NSW1wbGVtZW50YXRpb247
CiBjbGFzcyBET01TZWxlY3Rpb247CiBjbGFzcyBET01XaW5kb3c7CkBAIC0xMTI0LDkgKzExMjMs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1
dGVab29tQW5kRnJhbWVTY2FsZShWZWN0b3I8RmxvYXRRdWFkPiYsIFJlbmRlck9iamVjdCopOwog
ICAgIHZvaWQgYWRqdXN0RmxvYXRSZWN0Rm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVT
Y2FsZShGbG9hdFJlY3QmLCBSZW5kZXJPYmplY3QqKTsKIAotICAgIHZvaWQgc2V0Q29udGV4dEZl
YXR1cmVzKFBhc3NSZWZQdHI8Q29udGV4dEZlYXR1cmVzPik7Ci0gICAgQ29udGV4dEZlYXR1cmVz
KiBjb250ZXh0RmVhdHVyZXMoKSB7IHJldHVybiBtX2NvbnRleHRGZWF0dXJlcy5nZXQoKTsgfQot
CiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hI
VE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTEyMjEsOCArMTIxNyw2IEBAIHByaXZhdGU6CiAgICAg
RnJhbWUqIG1fZnJhbWU7CiAgICAgT3duUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hl
ZFJlc291cmNlTG9hZGVyOwogICAgIFJlZlB0cjxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7Ci0g
ICAgUmVmUHRyPENvbnRleHRGZWF0dXJlcz4gbV9jb250ZXh0RmVhdHVyZXM7Ci0KICAgICBib29s
IG1fd2VsbEZvcm1lZDsKIAogICAgIC8vIERvY3VtZW50IFVSTHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcAppbmRleCA4ODkxNDM1MzAwOGRlZjk2NzRhNzE1NjU0OTBmNWY4MTU1MTdjMzEyLi5hMDZm
ZmQ0NWYzOWYyMDMzMjM2NzNiYjJjZDFjMzdjYzk5NDBmMzlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJQb3NpdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiQ29udGV4dEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC04Miw3ICs4Miw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+
IGFuY2hvck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0KQogICAgICwgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFT
U0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCht
X2FuY2hvck5vZGUtPmRvY3VtZW50KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1f
YW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9y
Tm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC05Niw3ICs5Niw3IEBA
IFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5
cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29u
dGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkp
CisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hh
ZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKICAg
ICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3Qo
KSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlz
U2hhZG93Um9vdCgpKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFz
c1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBpbnQgb2Zmc2V0LCBBbmNob3JUeXBlIGFuY2hvclR5
cAogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUo
U0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVyZXM6
OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKKyAgICBBU1NFUlQo
KG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVk
KG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQogICAgICAgICAgICB8fCAh
bV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgp
KSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCgh
bV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgp
KSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC04NTcsNyArODU3LDcgQEAg
Q29udGFpbmVyTm9kZSogUG9zaXRpb246OmZpbmRQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKICAg
ICAvLyBGSVhNRTogU2VlIGh0dHA6Ly93ZWIudWcvODI2OTcKIAogI2lmIEVOQUJMRShTSEFET1df
RE9NKQotICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9j
dW1lbnQoKSkpCisgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJs
ZWQobm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQogICAgICAgICByZXR1cm4gbm9kZS0+
cGFyZW50Tm9kZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggYjU0
NjU5MWY3ZWIxMmQ4MDhhMjNlYTI2MzRjZDg4NGM1M2EzMDdkMy4uODMyMmZjYjM4YWY1OTYwODY5
MGQxODI3ODZjYzg5NzhlOTY2NGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTI3
LDcgKzI3LDcgQEAKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5l
ck5vZGUuaCIKLSNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTE1MCw3ICsxNTAsNyBAQCBE
T01TZWxlY3Rpb24qIFRyZWVTY29wZTo6Z2V0U2VsZWN0aW9uKCkgY29uc3QKICAgICAvLyBhcyBh
IGNvbnRhaW5lci4gSXQgaXMgbm93IGVuYWJsZWQgb25seSBpZiBydW50aW1lIFNoYWRvdyBET00g
ZmVhdHVyZSBpcyBlbmFibGVkLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODI2OTcKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoQ29u
dGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCkpKSB7
CisgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5v
ZGUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uID0g
RE9NU2VsZWN0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgICAgIHJldHVybiBtX3NlbGVjdGlvbi5n
ZXQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDZlMGEwNjFjODZmOTMz
NjMxN2Y5MDU1ZGE2NDE3YmUwMTM4YmJjNGEuLmE2Y2IwNDJkZmUwMjZjNTg4NGFmNzAwN2MwYTYz
NmIxM2FjOTE4NWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0zNzgsNyArMzc4LDcg
QEAgRU5ECiAgICAgbXkgJGNvbnRleHRDb25kaXRpb25hbCA9ICRlbmFibGVkVGFnc3skdGFnTmFt
ZX17Y29udGV4dENvbmRpdGlvbmFsfTsKICAgICBpZiAoJGNvbnRleHRDb25kaXRpb25hbCkgewog
ICAgICAgICBwcmludCBGIDw8RU5ECi0gICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OiR7Y29udGV4
dENvbmRpdGlvbmFsfUVuYWJsZWQoZG9jdW1lbnQpKQorICAgIGlmICghQ29udGV4dEVuYWJsZWRG
ZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93
KCkpKQogICAgICAgICByZXR1cm4gMDsKIEVORAogOwpAQCAtODA0LDcgKzgwNCw3IEBAIHByaW50
Q29uZGl0aW9uYWxFbGVtZW50SW5jbHVkZXMoJEYpOwogCiBwcmludCBGIDw8RU5ECiAKLSNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmgiCiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpIHx8IEVOQUJMRShWSURFTykKICNp
bmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgRU5ECiAgICAgICAgICAg
ICAgICAgcHJpbnQgRiA8PEVORAogc3RhdGljIEpTRE9NV3JhcHBlciogY3JlYXRlJHtKU0ludGVy
ZmFjZU5hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGVsZW1l
bnQpCiB7Ci0gICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVu
YWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKKyAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVh
dHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCkpKSB7CiAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5pcyRw
YXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0oKSk7CiAgICAgICAgIHJldHVybiBDUkVB
VEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3tmYWxsYmFja0lu
dGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKICAgICB9CkBAIC0xMDUwLDcgKzEwNTAsNyBA
QCBFTkQKICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoJHBhcmFtZXRlcnN7bmFt
ZXNwYWNlfUVsZW1lbnQqIGVsZW1lbnQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewotICAgIGlm
ICghQ29udGV4dEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGVsZW1lbnQt
PmRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0
Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCiAg
ICAgICAgIHJldHVybiBWOCRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX06OndyYXAo
dG8kcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KGVsZW1lbnQpLCBpc29sYXRlKTsK
ICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDwke0pTSW50ZXJmYWNlTmFtZX0qPihlbGVtZW50
KSwgaXNvbGF0ZSk7CiB9CkBAIC0xMTExLDcgKzExMTEsNyBAQCBzdWIgcHJpbnRXcmFwcGVyRmFj
dG9yeUNwcEZpbGUKIAogICAgIHByaW50IEYgPDxFTkQKIAotI2luY2x1ZGUgIkNvbnRleHRGZWF0
dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKIAogI2lmIEVOQUJM
RShWSURFTykKICNpbmNsdWRlICJEb2N1bWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CmluZGV4IGYwYmE3NjZhYmVlYWY3NTI2NzZmYWQ1M2JlZjliMzc3ZWJjMWMyNjguLjlhZTdlNzJj
MmYyNmU5NzQwYWQ0YTVmMGNiMjRiMTk5NDQ4ZDgwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgi
Ci0jaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKQEAgLTczMSw3ICs3MzAsNiBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cFdpdGhDb250ZXh0KERvY3VtZW50KiBkb2N1bQog
CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHRhZ2dlZEZyYWdtZW50ID0gY3JlYXRlRnJh
Z21lbnRGcm9tTWFya3VwKGRvY3VtZW50LCB0YWdnZWRNYXJrdXAudG9TdHJpbmcoKSwgYmFzZVVS
TCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgUmVmUHRyPERvY3VtZW50PiB0YWdnZWREb2N1
bWVudCA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKLSAgICB0YWdnZWREb2N1bWVudC0+
c2V0Q29udGV4dEZlYXR1cmVzKGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKSk7CiAgICAgdGFn
Z2VkRG9jdW1lbnQtPnRha2VBbGxDaGlsZHJlbkZyb20odGFnZ2VkRnJhZ21lbnQuZ2V0KCkpOwog
CiAgICAgUmVmUHRyPE5vZGU+IG5vZGVCZWZvcmVDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggZjA3M2EwZDE5YmYxOTczNDEzMGFlNmE2ZjZiOWI1
MjJkZTU2MWUzNy4uNjdkZGNlYjRmYWEzZmE3ZWNkYTUzNDU3NzM2ZmM1ZDZjZTM4ZWY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC0yNSw3ICsyNSw3IEBA
CiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgi
Ci0jaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgSFRNTFN0eWxl
RWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoKQogICAgIEFTU0VSVChpbkRvY3VtZW50
KCkpOwogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSkKICAgICAgICAgcmV0
dXJuOwotICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1l
bnQoKSkpCisgICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJs
ZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIENvbnRhaW5lck5vZGUqIHNj
b3BlID0gcGFyZW50Tm9kZSgpOwpAQCAtMTMwLDEwICsxMzAsMTAgQEAgdm9pZCBIVE1MU3R5bGVF
bGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKENvbnRhaW5lck5vZGUqIHNjb3BlKQog
ewogICAgIC8vIE5vdGU6IFdlIGNhbm5vdCByZWx5IG9uIHRoZSAnc2NvcGVkJyBlbGVtZW50IHN0
aWxsIGJlaW5nIHByZXNlbnQgd2hlbiB0aGlzIG1ldGhvZCBpcyBpbnZva2VkLgogICAgIC8vIFRo
ZXJlZm9yZSB3ZSBjYW5ub3QgcmVseSBvbiBzY29wZWQoKSEKLSAgICBBU1NFUlQobV9pc1JlZ2lz
dGVyZWRXaXRoU2NvcGluZ05vZGUgfHwgIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFi
bGVkKGRvY3VtZW50KCkpKTsKKyAgICBBU1NFUlQobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05v
ZGUgfHwgIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVu
dCgpKSk7CiAgICAgaWYgKCFtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSkKICAgICAgICAg
cmV0dXJuOwotICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9j
dW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChzY29wZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNw
cAppbmRleCBiMGJkZDg4NWY3OGVjNjcwZjhlNzVjNDg5MzAxMmE2MjFkOTU1NGRmLi4wOGI0NWQ0
YWJmNTliZmM3NmU4ZTc0MDAzYzE3NmRkYzk2MGU0YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00Myw3ICs0
Myw3IEBAIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKIHN0YXRpYyBjb25zdCBRdWFsaWZp
ZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxF
KFNIQURPV19ET00pCi0gICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
ZG9jdW1lbnQpKQorICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5h
YmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQogICAgICAgICByZXR1cm4gSFRNTE5hbWVzOjp3
ZWJraXRTaGFkb3dDb250ZW50VGFnOwogICAgIHJldHVybiBIVE1MTmFtZXM6OmNvbnRlbnRUYWc7
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3Vw
cG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApp
bmRleCAyZjIyMTUxYjJlNGExNTcyOTliYjA3ZDhmN2NkZjYwYTdkMWYyZWE1Li5iYTBkOGM4NmM1
NThjOGZhOGUyNTNlZTk2MWIwMDhiZDA2NTNlMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtMzYsNyArMzYsNiBAQAogCiAjaW5jbHVkZSAi
QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQmFzZTY0LmgiCi0jaW5jbHVkZSAiQ29udGV4dEZlYXR1
cmVzLmgiCiAjaW5jbHVkZSAiRE9NRWRpdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC05MCw3ICs4OSw2IEBAIERPTVBhdGNoU3Vw
cG9ydDo6fkRPTVBhdGNoU3VwcG9ydCgpIHsgfQogdm9pZCBET01QYXRjaFN1cHBvcnQ6OnBhdGNo
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXApCiB7CiAgICAgUmVmUHRyPEhUTUxEb2N1bWVu
dD4gbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwotICAgIG5l
d0RvY3VtZW50LT5zZXRDb250ZXh0RmVhdHVyZXMobV9kb2N1bWVudC0+Y29udGV4dEZlYXR1cmVz
KCkpOwogICAgIFJlZlB0cjxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gSFRNTERvY3VtZW50UGFy
c2VyOjpjcmVhdGUobmV3RG9jdW1lbnQuZ2V0KCksIGZhbHNlKTsKICAgICBwYXJzZXItPmluc2Vy
dChtYXJrdXApOyAvLyBVc2UgaW5zZXJ0KCkgc28gdGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90IHlp
ZWxkLgogICAgIHBhcnNlci0+ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IGJlODEwMjg3YTcwZDU1ZThlNjU2YmZmM2Q2NDBhYWZhNTMzYjEw
NmEuLmY1YzdhNzI2NmE2MDBkZWE1MjliZjlkMTNjMTdiZGU2MjBlYTlkMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMTEsNiArMzExLDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWluZ0lu
c2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBj
b25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0
aW5nczsgfQogCisgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJs
ZWRBc1J1bnRpbWVGZWF0dXJlcykgeyByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzOyB9
CisgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVu
dGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KKyNpZiBF
TkFCTEUoUEFHRV9QT1BVUCkKKyAgICAgICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkg
eyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90
aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAg
IC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBm
YWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVz
ZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Zjk5ZDQ1NTk3Y2E4MzdkZDg1YjdmYThiNGJjMjc4NDVhZDhmMjU0Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
ZWZDb3VudGVkU3VwcGxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSZWZD
b3VudGVkU3VwcGxlbWVudF9oCi0jZGVmaW5lIFJlZkNvdW50ZWRTdXBwbGVtZW50X0gKLQotI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdGVtcGxhdGU8
Y2xhc3MgVCwgY2xhc3MgUz4KLWNsYXNzIFJlZkNvdW50ZWRTdXBwbGVtZW50IDogcHVibGljIFJl
ZkNvdW50ZWQ8Uz4gewotcHVibGljOgotICAgIHR5cGVkZWYgUmVmQ291bnRlZFN1cHBsZW1lbnQ8
VCwgUz4gVGhpc1R5cGU7Ci0KLSAgICB2aXJ0dWFsIH5SZWZDb3VudGVkU3VwcGxlbWVudCgpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBob3N0RGVzdHJveWVkKCkgeyB9Ci0KLSAgICBjbGFzcyBXcmFw
cGVyIDogcHVibGljIFN1cHBsZW1lbnQ8VD4gewotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGlj
aXQgV3JhcHBlcihQYXNzUmVmUHRyPFRoaXNUeXBlPiB3cmFwcGVkKSA6IG1fd3JhcHBlZCh3cmFw
cGVkKSB7IH0KLSAgICAgICAgdmlydHVhbCB+V3JhcHBlcigpIHsgbV93cmFwcGVkLT5ob3N0RGVz
dHJveWVkKCk7ICB9Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNSZWZDb3VudGVkV3JhcHBlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSNl
bmRpZgotICAgICAgICBUaGlzVHlwZSogd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBl
ZC5nZXQoKTsgfQotICAgIHByaXZhdGU6Ci0KLSAgICAgICAgUmVmUHRyPFRoaXNUeXBlPiBtX3dy
YXBwZWQ7Ci0gICAgfTsKLQotICAgIHN0YXRpYyB2b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJs
ZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXksIFBhc3NSZWZQdHI8VGhpc1R5cGU+
IHN1cHBsZW1lbnQpCi0gICAgewotICAgICAgICBob3N0LT5wcm92aWRlU3VwcGxlbWVudChrZXks
IGFkb3B0UHRyKG5ldyBXcmFwcGVyKHN1cHBsZW1lbnQpKSk7Ci0gICAgfQotCi0gICAgc3RhdGlj
IFRoaXNUeXBlKiBmcm9tKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJp
bmcmIGtleSkKLSAgICB7Ci0gICAgICAgIFN1cHBsZW1lbnQ8VD4qIGZvdW5kID0gaG9zdC0+cmVx
dWlyZVN1cHBsZW1lbnQoa2V5KTsKLSAgICAgICAgaWYgKCFmb3VuZCkKLSAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICBBU1NFUlQoZm91bmQtPmlzUmVmQ291bnRlZFdyYXBwZXIoKSk7Ci0g
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXcmFwcGVyKj4oZm91bmQpLT53cmFwcGVkKCk7Ci0g
ICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUmVmQ291bnRl
ZFN1cHBsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxl
bWVudGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKaW5k
ZXggNDE5OWFjNTA5NTI2YjA2ZTdkODk5MTJmM2Q4YTg3ZWMyOGJiOGI5Yi4uODRkYzkwNmUyYWYz
NDhhMzRkODViNmI5ZDgzYzY5NzJlYzJkNjZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
dXBwbGVtZW50YWJsZS5oCkBAIC00MCw5ICs0MCw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBj
bGFzcyBTdXBwbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TdXBwbGVtZW50KCkgeyB9
Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIHZpcnR1YWwgYm9vbCBpc1JlZkNvdW50ZWRXcmFw
cGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQg
cHJvdmlkZVRvKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtl
eSwgUGFzc093blB0cjxTdXBwbGVtZW50PFQ+ID4gc3VwcGxlbWVudCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBmNmFjMDE5Y2JlNTYzOWNlZTBkODMwNDQw
MTExMzAzOTczMzE2NGE4Li4xNTE2NjgwMTcwOGUyNjc2MWIzZWFkMmMwYTYzZDliNDA2ZGI3ZjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI1LDcgKzI1LDYgQEAK
ICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJDb250
ZW50U2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNs
dWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5o
IgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCkBAIC0yNTQsNyArMjUzLDYgQEAgRG9j
dW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJiBlYykKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KICAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldFNlY3Vy
aXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKCkpOwotICAgICAgICAgICAgbV9yZXNwb25zZURvY3Vt
ZW50LT5zZXRDb250ZXh0RmVhdHVyZXMoZG9jdW1lbnQoKS0+Y29udGV4dEZlYXR1cmVzKCkpOwog
ICAgICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlRG9jdW1lbnQtPndlbGxGb3JtZWQoKSkKICAgICAg
ICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKaW5kZXggYjE5YjNkZmUyNGU4OTcxNWVjZGNhOTIzOTIyYzY0ZWNkYmUy
NDZlZC4uOTkyMDRiODg2YWI3ZWMxY2Y0ZDI0YTU5M2NjZGNkMDI3ZDU0OTkwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMzcxLDggKzM3MSw2IEBACiAgICAgICAgICAgICAgICAg
J3NyYy9Db21wb3NpdGlvblVuZGVybGluZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Db21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oJywKLSAgICAgICAgICAg
ICAgICAnc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwJywKLSAgICAgICAgICAgICAg
ICAnc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRl
eHRNZW51Q2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0RhdGFiYXNlT2JzZXJ2
ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBl
cm1pc3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1p
c3Npb25DbGllbnQuaAppbmRleCAwMTRjMmMzZjQ0MDIzNTQyZDYxYjE4OWM1MjI1Zjc0MDQ2NWNj
OGU3Li4xMTZhMzgzY2E4YzI4YjQ3ODlhZTczNWZmMWU0NGNkMzI3ZGRlYzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCkBA
IC0zMyw3ICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJEb2N1bWVu
dDsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJT
dHJpbmc7CkBAIC05MSw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dX
cml0ZVRvQ2xpcGJvYXJkKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsgfQogCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBlbmFibGluZyBXZWIgQ29t
cG9uZW50cyBBUEkgZm9yIHRoaXMgZnJhbWUuCi0gICAgdmlydHVhbCBib29sIGFsbG93V2ViQ29t
cG9uZW50cyhjb25zdCBXZWJEb2N1bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBk
ZWZhdWx0VmFsdWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKFdlYkZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCiAgICAg
Ly8gTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3b3VsZCBoYXZlIGluc3RhbnRp
YXRlZCBhIHBsdWctaW4gaWYgcGx1Zy1pbnMgd2VyZSBlbmFibGVkLgogICAgIHZpcnR1YWwgdm9p
ZCBkaWROb3RBbGxvd1BsdWdpbnMoV2ViRnJhbWUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhZGEwNzc4NzY0ZjAyNmVhODY2ZTc5YTZmYTljMTU2
OGRiZGRmYTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50
LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1ib29sIENvbnRleHRGZWF0dXJlc0NsaWVudElt
cGw6OmlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6OkNvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpCi17Ci0gICAg
aWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLQotICAgIHN3aXRj
aCAodHlwZSkgewotICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpTaGFkb3dET006
Ci0gICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OlN0eWxlU2NvcGVkOgotICAgICAg
ICByZXR1cm4gbV9jbGllbnQtPmFsbG93V2ViQ29tcG9uZW50cyhXZWJEb2N1bWVudChkb2N1bWVu
dCksIGRlZmF1bHRWYWx1ZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTFmOTU0OGQ5MjgwMjBjNjA2ZDRmZGJlZjQ5NDE1
NDNiYjJiYjg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGxfaAotI2RlZmluZSBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsX2gKLQotI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlcy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGVy
bWlzc2lvbkNsaWVudDsKLQotY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbCA6IHB1Ymxp
YyBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQgewotcHVibGljOgotICAgIENvbnRleHRG
ZWF0dXJlc0NsaWVudEltcGwoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgeyB9Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgV2ViQ29yZTo6Q29u
dGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFOwot
ICAgIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBjbGllbnQp
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLQotcHJpdmF0ZToKLSAgICBXZWJQZXJtaXNzaW9uQ2xp
ZW50KiBtX2NsaWVudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBkMDYwMmE5YTBlNzA0ZWNk
OTEyZjZkY2FmYzFjY2M1ZjlhMmFmOWZiLi5kZTNmMjI3ODlmNWZhMTViMGFjZDhlZDc0ZDFlNWFm
OTBlOTY5ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTIzOSw2ICsyMzksMjQgQEAgYm9vbCBGcmFtZUxvYWRl
ckNsaWVudEltcGw6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywKICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQogCitib29sIEZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVh
dHVyZSkKK3sKKyAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBs
KCk7CisgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQorICAg
ICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVu
dHMobV93ZWJGcmFtZSwgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpOworCisgICAgcmV0dXJuIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlOworfQorCitib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
YWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKQoreworICAgIFdl
YlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2Vi
dmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCisgICAgICAgIHJldHVybiB3ZWJ2
aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50cyhtX3dlYkZyYW1lLCBl
bmFibGVkQXNSdW50aW1lRmVhdHVyZSk7CisKKyAgICByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZl
YXR1cmU7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1Njcmlw
dCgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuaAppbmRleCBlY2IyMGEyZmIyNWVmZTY0YWZlNjBkNDI0NmU2Yzk5M2FmNWYzMTI5Li4yMzZh
MDFiNjUzMDI5NTE0NmFjZWExM2JkZTVkMGYyMzgzN2E5ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk5LDYgKzE5
OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZShib29sIGVuYWJsZWRQ
ZXJTZXR0aW5ncywgY29uc3QgV2ViQ29yZTo6S1VSTCYgaW1hZ2VVUkwpOwogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVy
U2V0dGluZ3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYp
OworICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVG
ZWF0dXJlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdHlsZVNjb3BlZChib29s
IGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Tm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAK
aW5kZXggZWRhY2QwMTgzODc3MWNhMGY1ZmE5YmNlYTAwMWI1N2NkZGVkZjgzNS4uMGY5ZmIxODhl
ODYzMTc2ZjU4ZDM2YzBmMmRkYTJjMDNlM2Y4NDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNs
dWRlICJXZWJQYWdlUG9wdXBJbXBsLmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRl
ICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01XaW5kb3dQYWdlUG9wdXAuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVtcHR5Q2xpZW50cy5oIgpAQCAt
MTI2LDE3ICsxMjUsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUG9wdXBJbXBsKiBtX3BvcHVw
OwogfTsKIAotY2xhc3MgUGFnZVBvcHVwRmVhdHVyZXNDbGllbnQgOiBwdWJsaWMgQ29udGV4dEZl
YXR1cmVzQ2xpZW50IHsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgQ29u
dGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCkgT1ZFUlJJREU7CitjbGFzcyBQYWdlUG9w
dXBGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKKyAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dQYWdlUG9wdXAoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CiB9OwogCi1ib29sIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQoRG9jdW1lbnQq
LCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQot
ewotICAgIGlmICh0eXBlID09IENvbnRleHRGZWF0dXJlczo6UGFnZVBvcHVwKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotfQotCiAvLyBXZWJQYWdlUG9w
dXBJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogV2ViUGFnZVBvcHVwSW1wbDo6V2ViUGFnZVBvcHVwSW1wbChXZWJX
aWRnZXRDbGllbnQqIGNsaWVudCkKQEAgLTE5MSwxMCArMTgzLDggQEAgYm9vbCBXZWJQYWdlUG9w
dXBJbXBsOjppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTY3JpcHRFbmFi
bGVkKHRydWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxsb3dTY3JpcHRzVG9DbG9z
ZVdpbmRvd3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBwYWdl
UG9wdXBGZWF0dXJlc0NsaWVudCA9ICBuZXcgUGFnZVBvcHVwRmVhdHVyZXNDbGllbnQoKTsKLSAg
ICBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8obV9wYWdlLmdldCgpLCBwYWdlUG9wdXBGZWF0dXJl
c0NsaWVudCk7Ci0gICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBlbXB0eUZyYW1lTG9hZGVy
Q2xpZW50ID0gIG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCk7Ci0gICAgUmVmUHRyPEZyYW1l
PiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBlbXB0eUZyYW1lTG9hZGVy
Q2xpZW50KTsKKyAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIHBhZ2VQb3B1cEZyYW1lTG9h
ZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudDsKKyAgICBSZWZQdHI8
RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIHBhZ2VQb3B1cEZy
YW1lTG9hZGVyQ2xpZW50KTsKICAgICBmcmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShm
cmFtZS5nZXQoKSkpOwogICAgIGZyYW1lLT5pbml0KCk7CiAgICAgZnJhbWUtPnZpZXcoKS0+cmVz
aXplKG1fcG9wdXBDbGllbnQtPmNvbnRlbnRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ0ZDU2YTdhM2QwYmU5MWQ4YWZmZTRkOWY4ZWFj
OGI3ZDU2NDMyMjAuLmE0NDA5N2JhNGI4N2E5MjdmYzgzMDI4OWNiYTRmOGZlOWJkNzc2YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQxLDcgKzQx
LDYgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNs
dWRlICJDb21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuaCIKLSNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNs
dWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0u
aCIKQEAgLTMzOCw3ICszMzcsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50
Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogdm9pZCBXZWJW
aWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNz
aW9uQ2xpZW50KQogewogICAgIG1fcGVybWlzc2lvbkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7
Ci0gICAgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHBlcm1pc3Np
b25DbGllbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudChX
ZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVyZXJDbGllbnQpCkBAIC0zOTQsNyArMzkyLDYg
QEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICAs
IG1faW1lQWNjZXB0RXZlbnRzKHRydWUpCiAgICAgLCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRy
YWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFnT3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25O
b25lKQotICAgICwgbV9mZWF0dXJlU3dpdGNoQ2xpZW50KGFkb3B0UHRyKG5ldyBDb250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsKCkpKQogICAgICwgbV9hdXRvZmlsbFBvcHVwU2hvd2luZyhmYWxzZSkK
ICAgICAsIG1fYXV0b2ZpbGxQb3B1cCgwKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQpA
QCAtNDU0LDcgKzQ1MSw2IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50
KiBjbGllbnQpCiAgICAgcHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2UuZ2V0KCksIG5vdGlmaWNh
dGlvblByZXNlbnRlckltcGwoKSk7CiAjZW5kaWYKIAotICAgIHByb3ZpZGVDb250ZXh0RmVhdHVy
ZXNUbyhtX3BhZ2UuZ2V0KCksIG1fZmVhdHVyZVN3aXRjaENsaWVudC5nZXQoKSk7CiAgICAgcHJv
dmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkuZ2V0KCkpOwogICAgIHByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5nZXQo
KSwgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBtX2dlb2xvY2F0aW9uQ2xp
ZW50UHJveHktPnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKG1fcGFn
ZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXgg
N2JkZGE5MGY0MGQ4ZThhY2U1YjFhNmI2N2M2OGVjY2Y3YTZlZWYwNS4uYTA4ODk2NzhhMTQwMDc0
MmNjMjZlMGViZmJiZTIzZTE5OGI5MmQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCkBAIC04Niw3ICs4Niw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
QXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ7CiBjbGFzcyBCYXR0ZXJ5Q2xpZW50SW1wbDsKLWNsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGw7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudEltcGw7CiBjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpAQCAtNzM0LDkgKzczMyw2
IEBAIHByaXZhdGU6CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcg
KHRoZSBkcm9wIHRhcmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0
aW9uIG1fZHJhZ09wZXJhdGlvbjsKIAotICAgIC8vIENvbnRleHQtYmFzZWQgZmVhdHVyZSBzd2l0
Y2hlcy4KLSAgICBPd25QdHI8Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbD4gbV9mZWF0dXJlU3dp
dGNoQ2xpZW50OwotCiAgICAgLy8gV2hldGhlciBhbiBBdXRvZmlsbCBwb3B1cCBpcyBjdXJyZW50
bHkgc2hvd2luZy4KICAgICBib29sIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmc7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
MWZhYTVjN2EyZDIyNmExYTk3NThiNTcxYTE2NzcxNTNmMDE4MDUyLi4zNTEyNGE4YTk0YmUzYTU0
OGU3MWVjYTQwMTY2OTFmOTkxNGZlMjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDYt
MTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjAwNTEuCisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzEyMDA1MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg4NTIKKworICAgICAgICBzb21lIHRlc3RzIGFyZSBjcmFzaGlu
ZyAoUmVxdWVzdGVkIGJ5IG1vcnJpdGEgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRv
Y3VtZW50Lmh0bWw6IFJlbW92ZWQuCisKIDIwMTItMDYtMTEgIEthdXN0dWJoIEF0cmF3YWxrYXIg
IDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RSVF0gTFRDOjogY291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0byBJbnRlcm5hbHMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRv
Y3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50
cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiNjQzMDc1M2YyOTUzMmUxZjUyMjE1MDBhOTkyMGMxMmY4Mzc2YTJjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRo
ZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZy
YW1lbGVzcyBkb2N1bWVudHMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1UZXN0
aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LgotUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRF
bGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKLVBBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVt
ZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgotTW92aW5nIHRvIHRoZSBtYWluIGRvY3VtZW50Lgot
UEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKLVBB
U1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi14KwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1l
bGVzcy1kb2N1bWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGI2YmU4
MWVmNTdkY2IyMWZmNTU2NTY3ZDRiNDZmMGU5MzZlMjliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVt
ZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICsw
LDAgQEAKLXgrPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFk
b3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVz
cyBkb2N1bWVudHMuIik7Ci0KLXZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVIVE1MRG9jdW1lbnQoKTsKLXZhciBjb250YWluZXIgPSBkb2MuY3JlYXRlRWxlbWVudCgic3Bh
biIpOwotZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLWNvbnRhaW5lci5pbm5lckhU
TUwgPSAiPGNvbnRlbnQgaWQ9J2NvbnRlbnRFbGVtZW50Jz48L2NvbnRlbnQ+PHNoYWRvdyBpZD0n
c2hhZG93RWxlbWVudCc+PC9zaGFkb3c+IjsKLQotdmFyIGNvbnRlbnQgPSBjb250YWluZXIucXVl
cnlTZWxlY3RvcigiI2NvbnRlbnRFbGVtZW50Iik7Ci12YXIgc2hhZG93ID0gY29udGFpbmVyLnF1
ZXJ5U2VsZWN0b3IoIiNzaGFkb3dFbGVtZW50Iik7Ci0KLWRlYnVnKCJUZXN0aW5nIG9uIHRoZSBm
cmFtZS1sZXNzIGRvY3VtZW50LiIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1l
bnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93
RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsKLQotZGVidWcoIk1vdmluZyB0byB0aGUg
bWFpbiBkb2N1bWVudC4iKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsK
LXNob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0
b3IiKTsKLXNob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0
cnVjdG9yIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>