<?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>123547</bug_id>
          
          <creation_ts>2013-10-30 19:21:17 -0700</creation_ts>
          <short_desc>Web Inspector: Remove InspectorState</short_desc>
          <delta_ts>2013-10-31 18:05:45 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>graouts</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945299</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-30 19:21:17 -0700</bug_when>
    <thetext>Stale code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945300</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-30 19:21:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/15358758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945301</commentid>
    <comment_count>2</comment_count>
      <attachid>215597</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-30 19:22:26 -0700</bug_when>
    <thetext>Created attachment 215597
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945302</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-30 19:24:09 -0700</bug_when>
    <thetext>Attachment 215597 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/inspector/InspectorAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorAllInOne.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorApplicationCacheAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorBaseAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorBaseAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCanvasAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCanvasAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorClient.h&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorController.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorController.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMStorageAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMStorageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDatabaseAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDatabaseAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorHeapProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorInputAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorInputAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorLayerTreeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorLayerTreeAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorMemoryAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorMemoryAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorPageAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorPageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorProfilerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorResourceAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorResourceAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorRuntimeAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorState.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorState.h&apos;, u&apos;Source/WebCore/inspector/InspectorStateClient.h&apos;, u&apos;Source/WebCore/inspector/InspectorTimelineAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorTimelineAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorWorkerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorWorkerAgent.h&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/PageDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/PageRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageRuntimeAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerInspectorController.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerInspectorController.h&apos;, u&apos;Source/WebCore/inspector/WorkerRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerRuntimeAgent.h&apos;, u&apos;Source/WebCore/workers/DefaultSharedWorkerRepository.cpp&apos;, u&apos;Source/WebCore/workers/WorkerMessagingProxy.cpp&apos;, u&apos;Source/WebCore/workers/WorkerMessagingProxy.h&apos;, u&apos;Source/WebCore/workers/WorkerReportingProxy.h&apos;, u&apos;Source/WebKit/blackberry/ChangeLog&apos;, u&apos;Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.cpp&apos;, u&apos;Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h&apos;]&quot; exit_code: 1
Source/WebCore/inspector/InspectorMemoryAgent.h:53:  The parameter name &quot;instrumentingAgents&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 62 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945309</commentid>
    <comment_count>4</comment_count>
      <attachid>215597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-30 19:27:34 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/17068401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945311</commentid>
    <comment_count>5</comment_count>
      <attachid>215597</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-30 19:28:31 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/17098345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945324</commentid>
    <comment_count>6</comment_count>
      <attachid>215597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-30 20:00:32 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/17128381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945326</commentid>
    <comment_count>7</comment_count>
      <attachid>215597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-30 20:03:54 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/17068412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945347</commentid>
    <comment_count>8</comment_count>
      <attachid>215597</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-30 20:48:19 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/17768088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945469</commentid>
    <comment_count>9</comment_count>
      <attachid>215597</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-31 02:20:14 -0700</bug_when>
    <thetext>Comment on attachment 215597
[PATCH] Proposed Fix

Attachment 215597 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/18018010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945731</commentid>
    <comment_count>10</comment_count>
      <attachid>215687</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-31 15:55:25 -0700</bug_when>
    <thetext>Created attachment 215687
[PATCH] For Bots (required parts have now landed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945732</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 15:57:07 -0700</bug_when>
    <thetext>Attachment 215687 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/inspector/InspectorAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorAllInOne.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorApplicationCacheAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorBaseAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorBaseAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCanvasAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCanvasAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorClient.h&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorController.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorController.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMStorageAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDOMStorageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDatabaseAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDatabaseAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorHeapProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorInputAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorInputAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorLayerTreeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorLayerTreeAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorMemoryAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorMemoryAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorPageAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorPageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorProfilerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorResourceAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorResourceAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorRuntimeAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorState.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorState.h&apos;, u&apos;Source/WebCore/inspector/InspectorStateClient.h&apos;, u&apos;Source/WebCore/inspector/InspectorTimelineAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorTimelineAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorWorkerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorWorkerAgent.h&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/PageDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/PageRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageRuntimeAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerDebuggerAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerInspectorController.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerInspectorController.h&apos;, u&apos;Source/WebCore/inspector/WorkerRuntimeAgent.cpp&apos;, u&apos;Source/WebCore/inspector/WorkerRuntimeAgent.h&apos;, u&apos;Source/WebCore/workers/DefaultSharedWorkerRepository.cpp&apos;, u&apos;Source/WebCore/workers/WorkerMessagingProxy.cpp&apos;, u&apos;Source/WebCore/workers/WorkerMessagingProxy.h&apos;, u&apos;Source/WebCore/workers/WorkerReportingProxy.h&apos;, u&apos;Source/WebKit/blackberry/ChangeLog&apos;, u&apos;Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.cpp&apos;, u&apos;Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h&apos;]&quot; exit_code: 1
Source/WebCore/inspector/InspectorMemoryAgent.h:53:  The parameter name &quot;instrumentingAgents&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 61 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945804</commentid>
    <comment_count>12</comment_count>
      <attachid>215687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 18:05:42 -0700</bug_when>
    <thetext>Comment on attachment 215687
[PATCH] For Bots (required parts have now landed)

Clearing flags on attachment: 215687

Committed r158415: &lt;http://trac.webkit.org/changeset/158415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945805</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 18:05:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215597</attachid>
            <date>2013-10-30 19:22:26 -0700</date>
            <delta_ts>2013-10-31 17:41:30 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm9.patch</filename>
            <type>text/plain</type>
            <size>138470</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODUyY2E4NS4uMGVmODk1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE1NjgsNyArMTU2OCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9y
LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGE1OGEzYzEuLmQyNWUxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNTAgQEAKIDIwMTMt
MTAtMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSZW1vdmUgSW5zcGVjdG9yU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzU0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
czoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6SW5zcGVjdG9y
QmFzZUFnZW50SW50ZXJmYWNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnQ6Okluc3BlY3RvckJh
c2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDU1NBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6Okluc3BlY3RvckNhbnZhc0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9y
RE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQ6Okluc3BlY3RvckluZGV4ZWREQkFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluZGV4ZWREQkFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcklucHV0QWdlbnQ6Oklu
c3BlY3RvcklucHV0QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnB1dEFnZW50OjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvck1lbW9yeUFnZW50OjpJbnNwZWN0b3JNZW1vcnlBZ2VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFn
ZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVByb2ZpbGVyQWdlbnQ6OlBhZ2VQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJQcm9maWxlckFnZW50OjpXb3JrZXJQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmg6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlQ2xpZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yV29ya2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUFnZW50OjpQYWdlQ29u
c29sZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVn
Z2VyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6
UGFnZURlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAq
IGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25z
b2xlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRGVidWdn
ZXJBZ2VudDo6V29ya2VyRGVidWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50
aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtl
clJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVudGltZUFnZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyUHJveHk6OnBvc3RNZXNzYWdlVG9Q
YWdlSW5zcGVjdG9yKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRv
UGFnZUluc3BlY3Rvcik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5o
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaDoKKworMjAxMy0xMC0z
MCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFJlbW92ZSBsYXN0IG1lbWJlciB2YXJpYWJsZSB1c2VzIG9mIEluc3BlY3RvclN0
YXRlIGZyb20gQWdlbnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjM1NDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMWZhMGE2
My4uNmYwYTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODExLDkgKzM4
MTEsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dGF0ZS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGVDbGllbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBmYTg3YzAwLi5jOTlh
ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKQEAgLTE3NjU3LDE0ICsxNzY1Nyw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0YXRlLmNwcCI+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTIwNzA2LDggKzIwNjk4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIiAv
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0YXRlLmgi
IC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3RhdGVD
bGllbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0
b3JTdHlsZVNoZWV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4
IGM2MDIxYjQuLmI2Y2Y2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTQ5MDUsOSArNDkwNSw2IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUnVudGltZUFnZW50
LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0YXRlLmNw
cCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC0xMjQyNCwxMiArMTI0MjEsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9y
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9yU3RhdGUuaCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmls
dGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVj
dG9yXEluc3BlY3RvclN0YXRlQ2xpZW50LmgiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0Zp
bHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JTdHlsZVNoZWV0LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNjRmNjE2Li5lMTI5OTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTk5
LDggKzE1OTksNiBAQAogCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFn
ZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggKi87IH07CiAJ
CTRGNzA3QTk5MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjcwN0E5
NzExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwICovOyB9
OwogCQk0RjcwN0E5QTExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNzA3
QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTRGQTNCOTBBMTI1
Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkEzQjkwODEyNUNEMTIxMDAzMDBCQUQgLyogSW5z
cGVjdG9yU3RhdGUuY3BwICovOyB9OwotCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5z
cGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRGQTNCOTA5MTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oICovOyB9Owog
CQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZCMzkwQUMxNUVGNjFGMzAw
N0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKIAkJNEZGQzAyMkIxNjQzQjcxMDAw
NEUxNjM4IC8qIE5vZGVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRh
LmNwcCAqLzsgfTsKIAkJNEZGQzAyMkQxNjQzQjcyNjAwNEUxNjM4IC8qIEVsZW1lbnRSYXJlRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkFC
NDg2NDE2NDNBNjZEMDBGNzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLzsgfTsKQEAgLTU1
NTIsMTAgKzU1NTAsMTAgQEAKIAkJRTE2OTgyNjAxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50
aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTE2OTgyNUYxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tICovOyB9
OwogCQlFMTZBODRGOTE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE2QTg0RjcxNEM4NUND
QzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdlLmNwcCAqLzsgfTsKIAkJRTE2QTg0RkExNEM4NUND
QzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTZBODRGODE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVy
SW1hZ2UuaCAqLzsgfTsKLQkJRTE3MkFGOEYxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcy
QUY4RDE4MTFCQzM3MDBGQkFEQjkgLyogSlNET01Qcm9taXNlLmNwcCAqLzsgfTsKLQkJRTE3MkFG
OTAxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3MkFGOEUxODExQkMzNzAwRkJBREI5IC8qIEpT
RE9NUHJvbWlzZS5oICovOyB9OwogCQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRv
S2V5VXNhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxNzJBRjZGMTgwRjI4OTUwMEZCQURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oICovOyB9OwogCQlF
MTcyQUY3NzE4MEYzNjZDMDBGQkFEQjkgLyogQ3J5cHRvS2V5Rm9ybWF0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcyQUY3NjE4MEYzNjZDMDBGQkFE
QjkgLyogQ3J5cHRvS2V5Rm9ybWF0LmggKi87IH07CisJCUUxNzJBRjhGMTgxMUJDMzcwMEZCQURC
OSAvKiBKU0RPTVByb21pc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE3MkFGOEQxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlzZS5jcHAg
Ki87IH07CisJCUUxNzJBRjkwMTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzJBRjhFMTgxMUJD
MzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuaCAqLzsgfTsKIAkJRTE3QjQ5MTUxNkE5QjA5NDAw
MUM4ODM5IC8qIFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTdCNDkxMzE2QTlCMDkzMDAxQzg4MzkgLyogVHJhbnNpdGlv
bkV2ZW50LmNwcCAqLzsgfTsKIAkJRTE3QjQ5MTYxNkE5QjA5NDAwMUM4ODM5IC8qIFRyYW5zaXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE3QjQ5MTQxNkE5QjA5MzAwMUM4ODM5IC8qIFRyYW5zaXRpb25FdmVudC5oICovOyB9OwogCQlF
MTdCNDkyMTE2QTlCOEZGMDAxQzg4MzkgLyogSlNUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0I0OTFGMTZBOUI4RkYwMDFD
ODgzOSAvKiBKU1RyYW5zaXRpb25FdmVudC5oICovOyB9OwpAQCAtNTgwMyw3ICs1ODAxLDYgQEAK
IAkJRjNENEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDRDNDc3
MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggKi87IH07CiAJ
CUYzRjVDRjExMTJFRDgxQTgwMDg0QzU2OSAvKiBJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Y1
Q0YxMDEyRUQ4MUE4MDA4NEM1NjkgLyogSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5o
ICovOyB9OwogCQlGM0Y1Q0YxMzEyRUQ4MUIzMDA4NEM1NjkgLyogSW5zcGVjdG9yRGF0YWJhc2VJ
bnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYzRjVDRjEyMTJFRDgxQjMwMDg0QzU2OSAvKiBJbnNwZWN0b3JEYXRhYmFzZUluc3Ry
dW1lbnRhdGlvbi5oICovOyB9OwotCQlGM0Y2OERBNjE0M0NBQzVBMDBDMkY4ODcgLyogSW5zcGVj
dG9yU3RhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYzRjY4REE1MTQzQ0FDNUEwMEMyRjg4NyAvKiBJbnNwZWN0b3JTdGF0ZUNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0RUFG
NEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2
RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIu
Y3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2
MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwpAQCAtODIwNCw4ICs4
MjAxLDYgQEAKIAkJNEY2RkRENjMxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2Vu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQYWdlQWdlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY3MDdBOTcxMUVGNjc5NDAwQUNEQTY5
IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY3MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTRGQTNCOTA4MTI1Q0QxMjEwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGQTNCOTA5MTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0
b3JTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBD
MDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRlZElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTUwLDEwICsxMjU0NSwx
MCBAQAogCQlFMTY5ODI1RjExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBPYmpDUnVudGltZU9iamVj
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE2QTg0RjcxNEM4NUNDQzAwMjk3
N0RGIC8qIENTU0JvcmRlckltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0JvcmRlckltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTE2QTg0RjgxNEM4NUNDQzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0JvcmRlckltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUUxNzJBRjhEMTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01Qcm9taXNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE3MkFGOEUxODExQkMzNzAwRkJBREI5IC8q
IEpTRE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVBy
b21pc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3MkFGNkYxODBGMjg5NTAw
RkJBREI5IC8qIENyeXB0b0tleVVzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyeXB0b0tleVVzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNzJB
Rjc2MTgwRjM2NkMwMEZCQURCOSAvKiBDcnlwdG9LZXlGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5Rm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxNzJBRjhEMTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01Qcm9taXNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MkFGOEUxODExQkMzNzAwRkJBREI5IC8qIEpT
RE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21p
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3NjU4MEMxODBERjNBMDAwNUE5
NkQxIC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRleFVpbnQu
aWRsOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMTdCNDkwQjE2QTk3MjY5MDAxQzg4MzkgLyogVHJhbnNpdGlvbkV2
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUcmFuc2l0aW9uRXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTdCNDkxMzE2QTlCMDkzMDAxQzg4MzkgLyogVHJh
bnNpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRy
YW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjgyNSw3
ICsxMjgyMCw2IEBACiAJCUYzRDRDNDc3MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNGNUNG
MTAxMkVEODFBODAwODRDNTY5IC8qIEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ29uc29sZUluc3RydW1l
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0Y1Q0YxMjEyRUQ4MUIz
MDA4NEM1NjkgLyogSW5zcGVjdG9yRGF0YWJhc2VJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRGF0YWJhc2VJbnN0cnVtZW50YXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjNGNjhEQTUxNDNDQUM1QTAwQzJGODg3
IC8qIEluc3BlY3RvclN0YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvclN0YXRlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRoID0gb3Bl
bnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDI2NSw5ICsxNDI1OSw2IEBACiAJ
CQkJODJBQjE3NzIxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuaCAq
LywKIAkJCQk3QUEzNjVFRDEyRTcyNjU0MDBEQ0EyNDIgLyogSW5zcGVjdG9yUnVudGltZUFnZW50
LmNwcCAqLywKIAkJCQk3QUYxMUE1OTEyRTcyNzQ5MDA2MUYyM0MgLyogSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmggKi8sCi0JCQkJNEZBM0I5MDgxMjVDRDEyMTAwMzAwQkFEIC8qIEluc3BlY3RvclN0
YXRlLmNwcCAqLywKLQkJCQk0RkEzQjkwOTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3Rh
dGUuaCAqLywKLQkJCQlGM0Y2OERBNTE0M0NBQzVBMDBDMkY4ODcgLyogSW5zcGVjdG9yU3RhdGVD
bGllbnQuaCAqLywKIAkJCQk4MkFCMTc2RjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAgKi8sCiAJCQkJODJBQjE3NzAxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3Rv
clN0eWxlU2hlZXQuaCAqLywKIAkJCQk4Mjg4OUI0QTEzQzYyMzkyMDA5QTYxNTYgLyogSW5zcGVj
dG9yU3R5bGVUZXh0RWRpdG9yLmNwcCAqLywKQEAgLTIyODg5LDggKzIyODgwLDYgQEAKIAkJCQk5
RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODJBQjE3NzYxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291
cmNlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRjExQTVBMTJFNzI3NDkwMDYxRjIzQyAv
KiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTRGQTNCOTBCMTI1
Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjNG
NjhEQTYxNDNDQUM1QTAwQzJGODg3IC8qIEluc3BlY3RvclN0YXRlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MkFCMTc3NDEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODI4ODlCNEQxM0M2MjM5MjAwOUE2MTU2IC8qIEluc3Bl
Y3RvclN0eWxlVGV4dEVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTMzQTgxMDJFMDBF
ODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjYwODcsNyArMjYwNzYsNiBAQAogCQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNw
ZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzc1MTI1Qzgy
NjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdBQTM2NUVFMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNEZBM0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3Rv
clN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAv
KiBJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyODg5QjRDMTND
NjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDcyNzdFNEUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4IDA2MTZmZWUuLmE1YzAxMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcApAQCAtNDIsNyArNDIsNiBAQAog
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUg
Ikluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVk
ZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgpAQCAtNTgs
OCArNTcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckFnZW50OjpJbnNw
ZWN0b3JBZ2VudChQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvckFnZW50PigiSW5zcGVjdG9yIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCitJ
bnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQoUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQWdlbnQ+
KCJJbnNwZWN0b3IiLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9pbnNwZWN0ZWRQYWdl
KHBhZ2UpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
cihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBZ2VudC5oCmluZGV4IDU1YzM0YTUuLjI4ZTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudC5oCkBAIC01NCw5ICs1NCw5IEBAIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckFnZW50PiwgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpJ
bnNwZWN0b3JDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9yQWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckFnZW50
PiBjcmVhdGUoUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIsIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0
b3JBZ2VudD4gY3JlYXRlKFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdl
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQWdlbnQocGFnZSwgaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLCBpbnN0cnVtZW50aW5nQWdlbnRzKSk7CiAgICAgfQogCiAgICAgdmlydHVh
bCB+SW5zcGVjdG9yQWdlbnQoKTsKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
aW5zcGVjdChQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IG9i
amVjdFRvSW5zcGVjdCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGhpbnRzKTsKIAogcHJp
dmF0ZToKLSAgICBJbnNwZWN0b3JBZ2VudChQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwg
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CisgICAgSW5z
cGVjdG9yQWdlbnQoUGFnZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKIAogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKICAgICBJbnNwZWN0b3JGcm9u
dGVuZCogbV9mcm9udGVuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QWxsSW5PbmUuY3BwCmluZGV4IDNlYTlkOGIuLjE2YjVlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtNjUsNyArNjUsNiBAQAogI2lu
Y2x1ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAiCi0j
aW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlU2hl
ZXQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4
IDk0YzkzNDQuLjIzNDc4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC0zNiw3ICszNiw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgotI2luY2x1ZGUgIkluc3Bl
Y3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5z
dHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCkBA
IC00NSw4ICs0NCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
IHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICA6IEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KEFTQ0lJTGl0ZXJhbCgiQXBw
bGljYXRpb25DYWNoZSIpLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKK0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudD4oQVNDSUlMaXRlcmFsKCJBcHBsaWNhdGlvbkNhY2hlIiksIGluc3RydW1lbnRp
bmdBZ2VudHMpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2Zyb250ZW5k
KDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXggYzZmMjM5ZC4uNmVlM2UxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaApAQCAtNDIsNyArNDIsNiBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNs
YXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIElu
c3BlY3RvclZhbHVlOwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5n
QWdlbnRzOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC01Miw5ICs1
MSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkFw
cGxpY2F0aW9uQ2FjaGVDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHN0YXRlLCBwYWdlQWdlbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50KSk7
CiAgICAgfQogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0KIApAQCAt
NzMsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEFwcGxpY2F0aW9uQ2Fj
aGVGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlPiYpOwogCiBwcml2
YXRlOgotICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKKyAg
ICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvclBhZ2VBZ2VudCopOwogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFwcGxpY2F0
aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNo
ZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCYsIGNvbnN0IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8mKTsKICAgICBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNo
ZVJlc291cmNlPj4gYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3Qg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmKTsKICAgICBQYXNzUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+
IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckJhc2VBZ2VudC5jcHAKaW5kZXggMmExNjg4YS4uODVjNzlhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHAKQEAgLTM0LDEz
ICszNCwxMCBAQAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQmFzZUFnZW50LmgiCiAKLSNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckJh
c2VBZ2VudEludGVyZmFjZTo6SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlKQorSW5zcGVjdG9yQmFzZUFnZW50SW50
ZXJmYWNlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UoY29uc3QgU3RyaW5nJiBuYW1lLCBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgIDogbV9pbnN0cnVt
ZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCi0gICAgLCBtX3N0YXRlKGluc3BlY3Rv
clN0YXRlLT5jcmVhdGVBZ2VudFN0YXRlKG5hbWUpKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgKaW5kZXgg
ZDUwZmY5MS4uNzdlOThmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYXNlQWdlbnQuaApAQCAtNDAsMTMgKzQwLDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwotY2xhc3MgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU7
Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiAKIGNs
YXNzIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9y
QmFzZUFnZW50SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYsIEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOworICAgIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFj
ZShjb25zdCBTdHJpbmcmLCBJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgdmlydHVhbCB+SW5z
cGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRl
bmQoSW5zcGVjdG9yRnJvbnRlbmQqKSB7IH0KQEAgLTU4LDcgKzU2LDYgQEAgcHVibGljOgogCiBw
cm90ZWN0ZWQ6CiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRz
OwotICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBt
X25hbWU7CkBAIC04OCw4ICs4NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAg
ICBJbnNwZWN0b3JCYXNlQWdlbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVj
dG9yU3RhdGUpCi0gICAgICAgIDogSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKG5hbWUsIGlu
c3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgIEluc3BlY3RvckJhc2VBZ2Vu
dChjb25zdCBTdHJpbmcmIG5hbWUsIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMpCisgICAgICAgIDogSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKG5hbWUsIGluc3Ry
dW1lbnRpbmdBZ2VudHMpCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA1ZTJhOGNkLi4yYmVhYjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTQz
LDcgKzQzLDYgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JIaXN0b3J5LmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUeXBlQnVpbGRlci5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2Vu
dHMuaCIKQEAgLTYxNiw4ICs2MTUsOCBAQCBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU0FnZW50
Ojphc0NTU1N0eWxlUnVsZShDU1NSdWxlKiBydWxlKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
U1NTdHlsZVJ1bGUqPihydWxlKTsKIH0KIAotSW5zcGVjdG9yQ1NTQWdlbnQ6Okluc3BlY3RvckNT
U0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQotICAg
IDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckNTU0FnZW50PigiQ1NTIiwgaW5zdHJ1bWVu
dGluZ0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yRE9NQWdl
bnQqIGRvbUFnZW50KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckNTU0FnZW50
PigiQ1NTIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAs
IG1fZG9tQWdlbnQoZG9tQWdlbnQpCiAgICAgLCBtX2xhc3RTdHlsZVNoZWV0SWQoMSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXggYTJiNWZmZS4u
NTI5YWQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmgKQEAgLTg5LDkgKzg5LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIENTU1N0eWxlUnVsZSog
YXNDU1NTdHlsZVJ1bGUoQ1NTUnVsZSopOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yQ1NTQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JDU1NBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckRPTUFn
ZW50KiBkb21BZ2VudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yQ1NTQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGRvbUFnZW50KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ1NTQWdlbnQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgZG9tQWdlbnQpKTsKICAgICB9CiAgICAgfkluc3BlY3RvckNTU0FnZW50KCk7CiAKQEAg
LTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIGNsYXNzIFNldFJ1bGVTZWxlY3RvckFjdGlv
bjsKICAgICBjbGFzcyBBZGRSdWxlQWN0aW9uOwogCi0gICAgSW5zcGVjdG9yQ1NTQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yRE9N
QWdlbnQqKTsKKyAgICBJbnNwZWN0b3JDU1NBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yRE9NQWdlbnQqKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJ
bnNwZWN0b3JTdHlsZVNoZWV0Pj4gSWRUb0luc3BlY3RvclN0eWxlU2hlZXQ7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldD4+IENT
U1N0eWxlU2hlZXRUb0luc3BlY3RvclN0eWxlU2hlZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCAxNWRmOTE0Li41ODgxYzMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBh
Z2VBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zdHJ1
bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5vZGVM
aXN0LmgiCkBAIC02Miw4ICs2MSw4IEBAIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpOZXR3
b3JrOjpGcmFtZUlkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckNhbnZhc0Fn
ZW50OjpJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvclBhZ2VB
Z2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDYW52YXNBZ2VudD4oIkNh
bnZhcyIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
Okluc3BlY3RvckNhbnZhc0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JDYW52YXNBZ2VudD4oIkNhbnZhcyIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBt
X3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IGFlMzAzMWIuLjdlOTQ1
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5oCkBAIC00OCw3ICs0OCw2IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGU7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBjbGFzcyBJbnNwZWN0
b3JQYWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdB
Z2VudHM7CiBjbGFzcyBTY3JpcHRPYmplY3Q7CiAKQEAgLTU2LDkgKzU1LDkgQEAgdHlwZWRlZiBT
dHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50IDogcHVibGlj
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDYW52YXNBZ2VudD4sIHB1YmxpYyBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FudmFzQ29tbWFuZEhhbmRsZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckNhbnZhc0FnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
IHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yQ2FudmFzQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEluc3BlY3RvckNhbnZhc0FnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBw
YWdlQWdlbnQsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEluc3BlY3RvckNhbnZhc0FnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2Vu
dCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CiAgICAgfQogICAgIH5JbnNwZWN0b3JDYW52YXNB
Z2VudCgpOwogCkBAIC04OSw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
UmVzb3VyY2VTdGF0ZShFcnJvclN0cmluZyosIGNvbnN0IFR5cGVCdWlsZGVyOjpDYW52YXM6OlRy
YWNlTG9nSWQmLCBjb25zdCBUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZUlkJiwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+Jik7CiAKIHByaXZhdGU6Ci0gICAg
SW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7
CisgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clBhZ2VBZ2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogCiAgICAgSW5qZWN0ZWRTY3Jp
cHRDYW52YXNNb2R1bGUgaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoRXJyb3JTdHJpbmcqLCBK
U0M6OkV4ZWNTdGF0ZSopOwogICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIGluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlKEVycm9yU3RyaW5nKiwgY29uc3QgU2NyaXB0T2JqZWN0Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNTUwNDcwNi4u
NzBhMTljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApA
QCAtMjEsMTMgKzIxLDEyIEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgSW5zcGVj
dG9yQ2xpZW50X2gKICNkZWZpbmUgSW5zcGVjdG9yQ2xpZW50X2gKIAotI2luY2x1ZGUgIkluc3Bl
Y3RvclN0YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0zOSw3ICszOCw3IEBA
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgUGFn
ZTsKIAotY2xhc3MgSW5zcGVjdG9yQ2xpZW50IDogcHVibGljIEluc3BlY3RvclN0YXRlQ2xpZW50
IHsKK2NsYXNzIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVj
dG9yQ2xpZW50KCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMzkwMmZlNi4uNjdkMDI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTM1
LDcgKzM1LDYgQEAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgot
I2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMu
aCIKQEAgLTU4LDggKzU3LDggQEAgc3RhdGljIGNvbnN0IGludCBleHBpcmVDb25zb2xlTWVzc2Fn
ZXNTdGVwID0gMTAwOwogCiBpbnQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzX2VuYWJsZWRBZ2Vu
dENvdW50ID0gMDsKIAotSW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+
KCJDb25zb2xlIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+KCJDb25z
b2xlIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fcHJl
dmlvdXNNZXNzYWdlKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmgKaW5kZXggZmZjMGM5MTEwLi4yYTZkMDg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC00Myw3ICs0Myw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xhc3MgRE9N
V2luZG93OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsK
IGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
CiBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtNTcsNyArNTYsNyBAQCB0eXBlZGVmIFN0cmluZyBF
cnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50PiwgcHVibGljIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyOjpDb25zb2xlQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEluc3BlY3RvckNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQ29u
c29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB+
SW5zcGVjdG9yQ29uc29sZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKaW5kZXggNDQ2Y2FjNS4uZWVmMmRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2lu
Y2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb2ZpbGVy
QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiCi0jaW5jbHVkZSAi
SW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCkBAIC04MCw4OCArNzksODcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSW5zcGVj
dG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JD
bGllbnQqIGluc3BlY3RvckNsaWVudCkKICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhJbnN0
cnVtZW50aW5nQWdlbnRzOjpjcmVhdGUoKSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KEluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlRm9yUGFnZSgpKQotICAgICwgbV9zdGF0ZShh
ZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUoaW5zcGVjdG9yQ2xpZW50KSkpCiAg
ICAgLCBtX292ZXJsYXkoSW5zcGVjdG9yT3ZlcmxheTo6Y3JlYXRlKHBhZ2UsIGluc3BlY3RvckNs
aWVudCkpCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGluc3Bl
Y3RvckNsaWVudCkKICAgICAsIG1faXNVbmRlclRlc3QoZmFsc2UpCiB7Ci0gICAgT3duUHRyPElu
c3BlY3RvckFnZW50PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKHBh
Z2UsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yQWdlbnQ+IGluc3Bl
Y3RvckFnZW50UHRyKEluc3BlY3RvckFnZW50OjpjcmVhdGUocGFnZSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCksIG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSkpOwogICAgIG1faW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoaW5zcGVjdG9yQWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JQ
YWdlQWdlbnQ+IHBhZ2VBZ2VudFB0cihJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2UsIG1faW5zcGVjdG9yQWdlbnQsIG1fc3RhdGUuZ2V0
KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fb3Zl
cmxheS5nZXQoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IHBhZ2VBZ2VudFB0
cihJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IHBhZ2UsIG1faW5zcGVjdG9yQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBp
bnNwZWN0b3JDbGllbnQsIG1fb3ZlcmxheS5nZXQoKSkpOwogICAgIEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50ID0gcGFnZUFnZW50UHRyLmdldCgpOwogICAgIG1fcGFnZUFnZW50ID0gcGFn
ZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChwYWdlQWdlbnRQdHIucmVsZWFz
ZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JET01BZ2VudD4gZG9tQWdlbnRQdHIoSW5zcGVj
dG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2Vu
dCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fb3Zlcmxh
eS5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50KSk7CisgICAgT3duUHRyPEluc3BlY3RvckRPTUFnZW50
PiBkb21BZ2VudFB0cihJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgcGFnZUFnZW50LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9v
dmVybGF5LmdldCgpLCBpbnNwZWN0b3JDbGllbnQpKTsKICAgICBtX2RvbUFnZW50ID0gZG9tQWdl
bnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbUFnZW50UHRyLnJlbGVhc2UoKSk7
CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQpKTsKKyAgICBt
X2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fZG9tQWdlbnQpKTsKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgT3duUHRyPEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+IGRhdGFiYXNlQWdlbnRQdHIoSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBkYXRhYmFz
ZUFnZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCkpKTsKICAgICBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KiBkYXRhYmFzZUFnZW50
ID0gZGF0YWJhc2VBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoZGF0YWJhc2VB
Z2VudFB0ci5yZWxlYXNlKCkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCBwYWdlQWdlbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlQWdlbnQpKTsKICNlbmRpZgogCi0gICAg
T3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9wYWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50PiBkb21TdG9yYWdlQWdlbnRQdHIoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudCkpOwogICAgIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50
UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVsZWFz
ZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JNZW1vcnlBZ2VudD4gbWVtb3J5QWdlbnRQdHIo
SW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IG1lbW9y
eUFnZW50UHRyKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpKSk7CiAgICAgbV9tZW1vcnlBZ2VudCA9IG1lbW9yeUFnZW50UHRyLmdldCgpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChtZW1vcnlBZ2VudFB0ci5yZWxlYXNlKCkpOwogCi0gICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9tZW1vcnlBZ2VudCwgbV9zdGF0ZS5nZXQoKSwg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3RvciwKKyAgICBtX2FnZW50cy5hcHBl
bmQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgcGFnZUFnZW50LCBtX21lbW9yeUFnZW50LCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpQ
YWdlSW5zcGVjdG9yLAogICAgICAgIGluc3BlY3RvckNsaWVudCkpOwotICAgIG1fYWdlbnRzLmFw
cGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHBhZ2VBZ2VudCkpOworICAgIG1fYWdlbnRz
LmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCkpOwogCi0gICAgT3duUHRyPEluc3BlY3RvclJl
c291cmNlQWdlbnQ+IHJlc291cmNlQWdlbnRQdHIoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBpbnNwZWN0b3JDbGll
bnQsIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4g
cmVzb3VyY2VBZ2VudFB0cihJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIGluc3BlY3RvckNsaWVudCkpOwogICAgIG1f
cmVzb3VyY2VBZ2VudCA9IHJlc291cmNlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBw
ZW5kKHJlc291cmNlQWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JS
dW50aW1lQWdlbnQ+IHJ1bnRpbWVBZ2VudFB0cihQYWdlUnVudGltZUFnZW50OjpjcmVhdGUobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSwgcGFnZSwgcGFnZUFnZW50KSk7CisgICAgT3duUHRyPEluc3BlY3RvclJ1
bnRpbWVBZ2VudD4gcnVudGltZUFnZW50UHRyKFBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBw
YWdlLCBwYWdlQWdlbnQpKTsKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2Vu
dCA9IHJ1bnRpbWVBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFn
ZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yQ29uc29sZUFnZW50PiBj
b25zb2xlQWdlbnRQdHIoUGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yQ29u
c29sZUFnZW50PiBjb25zb2xlQWdlbnRQdHIoUGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudCwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQpKTsKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IGNvbnNvbGVBZ2VudCA9IGNvbnNvbGVBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoY29uc29sZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKLSAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gZGVidWdnZXJBZ2Vu
dFB0cihQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9vdmVybGF5LmdldCgpKSk7CisgICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+
IGRlYnVnZ2VyQWdlbnRQdHIoUGFnZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCks
IG1fb3ZlcmxheS5nZXQoKSkpOwogICAgIG1fZGVidWdnZXJBZ2VudCA9IGRlYnVnZ2VyQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnRQdHIucmVsZWFzZSgp
KTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBkb21EZWJ1Z2dlckFn
ZW50UHRyKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQsIG1fZGVidWdnZXJBZ2VudCwg
bV9pbnNwZWN0b3JBZ2VudCkpOworICAgIE93blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
PiBkb21EZWJ1Z2dlckFnZW50UHRyKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9tQWdlbnQsIG1fZGVidWdnZXJBZ2VudCwg
bV9pbnNwZWN0b3JBZ2VudCkpOwogICAgIG1fZG9tRGVidWdnZXJBZ2VudCA9IGRvbURlYnVnZ2Vy
QWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbURlYnVnZ2VyQWdlbnRQdHIu
cmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBwcm9maWxl
ckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dD4gcHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpKSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJBZ2VudFB0
ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxlYXNlKCkp
OwogCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV09SS0VS
UykKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5h
cHBlbmQoSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCkpKTsKICNlbmRpZgogCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBw
YWdlQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMu
YXBwZW5kKEluc3BlY3RvckNhbnZhc0FnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAKLSAg
ICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySW5wdXRBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSkpOworICAgIG1fYWdlbnRzLmFw
cGVuZChJbnNwZWN0b3JJbnB1dEFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBwYWdlKSk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckxheWVyVHJlZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
KSk7CiAjZW5kaWYKIAogICAgIEFTU0VSVF9BUkcoaW5zcGVjdG9yQ2xpZW50LCBpbnNwZWN0b3JD
bGllbnQpOwpAQCAtMjI3LDggKzIyNSw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29u
bmVjdEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFuCiAgICAg
QVNTRVJUKGZyb250ZW5kQ2hhbm5lbCk7CiAKICAgICBtX2luc3BlY3RvckZyb250ZW5kID0gYWRv
cHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kKGZyb250ZW5kQ2hhbm5lbCkpOwotICAgIC8vIFdl
IGNhbiByZWNvbm5lY3QgdG8gZXhpc3RpbmcgZnJvbnQtZW5kIC0+IHVubXV0ZSBzdGF0ZS4KLSAg
ICBtX3N0YXRlLT51bm11dGUoKTsKIAogICAgIG1fYWdlbnRzLnNldEZyb250ZW5kKG1faW5zcGVj
dG9yRnJvbnRlbmQuZ2V0KCkpOwogCkBAIC0yNDgsMTAgKzI0NCw2IEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKICAgICBtX2luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5jbGVhcigpOwogCi0gICAgLy8gRGVzdHJveWluZyBhZ2VudHMgd291bGQgY2hhbmdlIHRo
ZSBzdGF0ZSwgYnV0IHdlIGRvbid0IHdhbnQgdGhhdC4KLSAgICAvLyBQcmUtZGlzY29ubmVjdCBz
dGF0ZSB3aWxsIGJlIHVzZWQgdG8gcmVzdG9yZSBpbnNwZWN0b3IgYWdlbnRzLgotICAgIG1fc3Rh
dGUtPm11dGUoKTsKLQogICAgIG1fYWdlbnRzLmNsZWFyRnJvbnRlbmQoKTsKIAogICAgIG1faW5z
cGVjdG9yRnJvbnRlbmQuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA4NGRkNDUuLjhjMjY2MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjIsNyArNjIsNiBA
QCBjbGFzcyBJbnNwZWN0b3JPdmVybGF5OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xh
c3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKIGNsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQ7
Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFz
cyBJbnRTaXplOwogY2xhc3MgUGFnZTsKQEAgLTEzNSw3ICsxMzQsNiBAQCBwcml2YXRlOgogCiAg
ICAgUmVmUHRyPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAg
ICBPd25QdHI8SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsK
LSAgICBPd25QdHI8SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU+IG1fc3RhdGU7CiAgICAgT3duUHRy
PEluc3BlY3Rvck92ZXJsYXk+IG1fb3ZlcmxheTsKIAogICAgIEluc3BlY3RvckFnZW50KiBtX2lu
c3BlY3RvckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggMTYwZmY1MS4uNzM2ZTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03Myw3ICs3Myw2IEBACiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySGlzdG9yeS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5o
IgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCkBAIC0yMTEsOCArMjEwLDggQEAgU3RyaW5n
IEluc3BlY3RvckRPTUFnZW50Ojp0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIHJldHVybiAiIjsKIH0KIAotSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBh
Z2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0
b3JPdmVybGF5KiBvdmVybGF5LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKLSAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01BZ2VudD4oIkRPTSIsIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGluc3BlY3RvclN0YXRlKQorSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VB
Z2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQp
CisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NQWdlbnQ+KCJET00iLCBpbnN0
cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9vdmVy
bGF5KG92ZXJsYXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oCmluZGV4IGM4NzMwNTguLjNmODMzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC02NCw3ICs2NCw2IEBAIGNsYXNzIEluc3BlY3Rvck92
ZXJsYXk7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0Owog
Y2xhc3MgSFRNTEVsZW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiBjbGFzcyBOYW1lTm9kZU1hcDsKIGNsYXNzIE5vZGU7CkBAIC0xMDQsOSAr
MTAzLDkgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihF
bGVtZW50KikgPSAwOwogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JE
T01BZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSog
aW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBJbnNwZWN0b3JPdmVybGF5KiBvdmVybGF5LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkK
KyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01BZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5z
cGVjdG9yT3ZlcmxheSogb3ZlcmxheSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTUFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIHBhZ2VBZ2VudCwgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdl
ciwgb3ZlcmxheSwgY2xpZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yRE9NQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBpbmplY3RlZFNjcmlw
dE1hbmFnZXIsIG92ZXJsYXksIGNsaWVudCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJpbmcg
dG9FcnJvclN0cmluZyhjb25zdCBFeGNlcHRpb25Db2RlJik7CkBAIC0yMTEsNyArMjEwLDcgQEAg
cHVibGljOgogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KCkgeyByZXR1cm4gbV9w
YWdlQWdlbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JPdmVybGF5KiwgSW5zcGVjdG9yQ2xp
ZW50Kik7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkq
LCBJbnNwZWN0b3JDbGllbnQqKTsKIAogICAgIHZvaWQgc2V0U2VhcmNoaW5nRm9yTm9kZShFcnJv
clN0cmluZyosIGJvb2wgZW5hYmxlZCwgSW5zcGVjdG9yT2JqZWN0KiBoaWdobGlnaHRDb25maWcp
OwogICAgIFBhc3NPd25QdHI8SGlnaGxpZ2h0Q29uZmlnPiBoaWdobGlnaHRDb25maWdGcm9tSW5z
cGVjdG9yT2JqZWN0KEVycm9yU3RyaW5nKiwgSW5zcGVjdG9yT2JqZWN0KiBoaWdobGlnaHRJbnNw
ZWN0b3JPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDY4MGI0Y2IuLjg5YjhhOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTY0LDEzICs2MywxMyBAQCBjb25zdCBp
bnQgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQgPSAxNjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYXNzT3duUHRyPEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+IEluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluc3BlY3Rv
ckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2Vu
dCwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50KQorUGFzc093blB0cjxJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50LCBJbnNwZWN0b3JB
Z2VudCogaW5zcGVjdG9yQWdlbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBk
b21BZ2VudCwgZGVidWdnZXJBZ2VudCwgaW5zcGVjdG9yQWdlbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
ZG9tQWdlbnQsIGRlYnVnZ2VyQWdlbnQsIGluc3BlY3RvckFnZW50KSk7CiB9CiAKLUluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGlu
c3BlY3RvclN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQsIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQsIEluc3BlY3RvckFnZW50KikKLSAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PigiRE9NRGVidWdnZXIiLCBpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKK0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50LCBJbnNwZWN0b3JBZ2VudCopCisgICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4oIkRPTURlYnVnZ2VyIiwgaW5z
dHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fZG9tQWdlbnQoZG9tQWdlbnQpCiAgICAgLCBtX2Rl
YnVnZ2VyQWdlbnQoZGVidWdnZXJBZ2VudCkKICAgICAsIG1fZXZlbnRMaXN0ZW5lckJyZWFrcG9p
bnRzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCA1YTgyNzI3Li41Y2Nh
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7
CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIElu
c3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBOb2RlOwogCkBAIC01Nyw3ICs1Niw3IEBAIHR5cGVk
ZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4sIHB1
YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lciwgcHVibGljIEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyOjpET01EZWJ1Z2dlckNvbW1hbmRIYW5kbGVyIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yRE9NQWdl
bnQqLCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiwgSW5zcGVjdG9yQWdlbnQqKTsKKyAgICBzdGF0
aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCos
IEluc3BlY3RvckFnZW50Kik7CiAKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50KCk7CiAKQEAgLTg1LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNj
YXJkQWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvckRP
TUFnZW50KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCosIEluc3BlY3RvckFnZW50Kik7CisgICAg
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9y
RE9NQWdlbnQqLCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiwgSW5zcGVjdG9yQWdlbnQqKTsKIAog
ICAgIC8vIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgog
ICAgIHZpcnR1YWwgdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggMzZh
NWMxMi4uNTlhOTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgpAQCAtNTYsOCArNTUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCi0gICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PigiRE9NU3RvcmFnZSIsIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PigiRE9NU3RvcmFnZSIsIGluc3RydW1lbnRpbmdB
Z2VudHMpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDAp
CiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggYzAzNmNjNC4uYTlhMDhjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFycmF5
OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7Ci1j
bGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBQ
YWdlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CkBAIC01Miw5ICs1MSw5IEBAIHR5cGVkZWYgU3Ry
aW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4sIHB1YmxpYyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBzdGF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQpKTsKICAgICB9CiAgICAgfkluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudCgpOwogCkBAIC03Nyw3ICs3Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAot
ICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKKyAgICBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCop
OwogCiAgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3Ry
aW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBGcmFtZSomKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmlu
ZGV4IGJiNmFlZTguLmY0Mjg4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JTdGF0ZS5oIgorCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVk
ZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlNRTEVycm9yLmgiCkBAIC0yMTAs
OCArMjEwLDggQEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjbGVhclJlc291cmNlcygp
CiAgICAgbV9yZXNvdXJjZXMuY2xlYXIoKTsKIH0KIAotSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCi0gICAgOiBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4oIkRhdGFiYXNlIiwgaW5zdHJ1bWVudGlu
Z0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgOiBJ
bnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4oIkRhdGFiYXNlIiwgaW5z
dHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRhdGFiYXNlQWdlbnQodGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRleCBi
MTRjYzhiLi41OGExZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTQzLDE2ICs0MywxNSBAQCBjbGFzcyBEYXRhYmFzZTsK
IGNsYXNzIEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTsK
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJ
bnN0cnVtZW50aW5nQWdlbnRzOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xh
c3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6
RGF0YWJhc2VDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKKyAgICBzdGF0
aWMgUGFzc093blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRhdGFiYXNlQWdlbnQo
aW5zdHJ1bWVudGluZ0FnZW50cykpOwogICAgIH0KICAgICB+SW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dCgpOwogCkBAIC03Miw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkT3BlbkRhdGFi
YXNlKFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSopOworICAgIGV4cGxpY2l0IEluc3BlY3RvckRhdGFiYXNlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogCiAgICAgRGF0YWJhc2UqIGRhdGFiYXNlRm9ySWQoY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZUlkKTsKICAgICBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlKiBmaW5k
QnlGaWxlTmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBkZjUzODNlLi5k
M2FiM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JQYWdlQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
ICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgpAQCAtNTUsOCArNTQsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IGNoYXIqIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJhY2t0
cmFjZU9iamVjdEdyb3VwID0gImJhY2t0cmFjZSI7CiAKLUluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PigiRGVidWdnZXIiLCBpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKK0luc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Okluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4oIkRlYnVnZ2VyIiwgaW5zdHJ1
bWVudGluZ0FnZW50cykKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fcGF1c2VkU2NyaXB0U3Rh
dGUoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5oCmluZGV4IDE2YmY0ZTYuLjUyYzgxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtNTIsNyArNTIsNiBAQCBjbGFz
cyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNz
IEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwotY2xhc3MgSW5zcGVjdG9y
U3RhdGU7CiBjbGFzcyBJbnNwZWN0b3JWYWx1ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
CiBjbGFzcyBTY3JpcHREZWJ1Z1NlcnZlcjsKQEAgLTEzMCw3ICsxMjksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7CiAK
IHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwor
ICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVk
U2NyaXB0TWFuYWdlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0
RGVidWdTZXJ2ZXIoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHRE
ZWJ1Z1NlcnZlcigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGYxYzVmODkuLjRiMmMxYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmNwcApAQCAtMzYsNyArMzYsNiBAQAogCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKLSNpbmNsdWRlICJJbnNwZWN0
b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJT
Y3JpcHRQcm9maWxlci5oIgogCkBAIC00NCwxMyArNDMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lSGVh
cCA9ICJvcmcud2Via2l0LnByb2ZpbGVzLnVzZXItaW5pdGlhdGVkIjsKIAotUGFzc093blB0cjxJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dD4gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwog
fQogCi1JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudD4oIkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3Bl
Y3RvclN0YXRlKQorSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIDogSW5zcGVjdG9y
QmFzZUFnZW50PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PigiSGVhcFByb2ZpbGVyIiwgaW5z
dHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVk
U2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fbmV4dFVzZXJJbml0
aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIoMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKaW5kZXggMDVmODQ1YS4uOTM1ZTg5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJp
bmc7CiBjbGFzcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OkhlYXBQcm9maWxlckNvbW1hbmRIYW5kbGVyIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0
cmluZyopOwpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEhl
YXBPYmplY3RJZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFN0cmluZyog
aGVhcFNuYXBzaG90T2JqZWN0SWQpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAogICAgIHR5
cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4+IElkVG9I
ZWFwU25hcHNob3RNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDRmNTg5NmMuLjRmODc5MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cApAQCAtNjEsNyArNjEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5o
IgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgpAQCAtNTU3LDggKzU1Niw4IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UKIAot
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6Okluc3BlY3RvckluZGV4ZWREQkFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvckluZGV4ZWREQkFnZW50PigiSW5kZXhlZERCIiwgaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCitJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFn
ZW50KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckluZGV4ZWREQkFnZW50Pigi
SW5kZXhlZERCIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2Vu
dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmgKaW5kZXggNGU1NDQzYS4uOGY5YThjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKQEAgLTQ2LDkgKzQ2LDkgQEAg
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JJbmRleGVkREJBZ2VudD4s
IHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6SW5kZXhlZERCQ29tbWFuZEhhbmRs
ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckluZGV4ZWREQkFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGlu
amVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckluZGV4ZWREQkFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIHBhZ2VBZ2Vu
dCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckluZGV4ZWREQkFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgcGFnZUFnZW50KSk7
CiAgICAgfQogICAgIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpOwogCkBAIC02Myw3ICs2Myw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgaW5fc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgaW5fZGF0
YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGluX29iamVjdFN0b3JlTmFtZSwgUGFzc1JlZlB0cjxD
bGVhck9iamVjdFN0b3JlQ2FsbGJhY2s+KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JJbmRl
eGVkREJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKKyAgICBJbnNw
ZWN0b3JJbmRleGVkREJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9w
YWdlQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5wdXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRB
Z2VudC5jcHAKaW5kZXggODBmOTMwNi4uMzE0MmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtNTEsOCArNTEsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvcklucHV0QWdlbnQ6Okluc3BlY3RvcklucHV0
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBQYWdlKiBwYWdlKQotICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvcklucHV0QWdlbnQ+KCJJbnB1dCIsIGluc3RydW1lbnRpbmdB
Z2VudHMsIGluc3BlY3RvclN0YXRlKQorSW5zcGVjdG9ySW5wdXRBZ2VudDo6SW5zcGVjdG9ySW5w
dXRBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBw
YWdlKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvcklucHV0QWdlbnQ+KCJJbnB1
dCIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCmluZGV4IDMyNmJl
NzYuLmE4NWFkM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5wdXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmgKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFz
cyBQYWdlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTQ4LDkgKzQ3LDkgQEAg
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JJbnB1dEFnZW50IDog
cHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JJbnB1dEFnZW50PiwgcHVibGljIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpJbnB1dENvbW1hbmRIYW5kbGVyIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JJbnB1dEFnZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxJbnNwZWN0b3JJbnB1dEFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBQYWdlKiBwYWdlKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvcklu
cHV0QWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBQYWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0
b3JJbnB1dEFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBwYWdlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySW5wdXRBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBwYWdlKSk7CiAgICAgfQogCiAgICAgfkluc3BlY3RvcklucHV0QWdlbnQo
KTsKQEAgLTYwLDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1v
dXNlRXZlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB4LCBpbnQgeSwg
Y29uc3QgaW50KiBtb2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJp
bmcqIGJ1dHRvbiwgY29uc3QgaW50KiBjbGlja0NvdW50KTsKIAogcHJpdmF0ZToKLSAgICBJbnNw
ZWN0b3JJbnB1dEFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSosIFBhZ2UqKTsKKyAgICBJbnNwZWN0b3JJbnB1dEFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBQYWdlKik7CiAKICAgICBQYWdlKiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggNmVjYzQ2
MC4uOWY1MmM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiSWRlbnRp
ZmllcnNGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JGcm9udGVuZC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5j
bHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJQc2V1ZG9FbGVtZW50LmgiCkBAIC00OSw4ICs0OCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6Okluc3BlY3RvckxheWVyVHJlZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JMYXll
clRyZWVBZ2VudD4oIkxheWVyVHJlZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQ6Okluc3BlY3RvckxheWVyVHJlZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KCJMYXllclRyZWUiLCBpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgICwgbV9mcm9udGVuZCgwKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaAppbmRleCBlYzI2NzRiLi41M2JhNjMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuaApAQCAtNDIsMTYgKzQyLDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
SW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogCiB0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckxheWVyVHJlZUFnZW50PiwgcHVibGljIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpMYXllclRyZWVDb21tYW5kSGFuZGxlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JMYXllclRyZWVB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEluc3BlY3RvckxheWVyVHJlZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMpKTsKICAg
ICB9CiAgICAgfkluc3BlY3RvckxheWVyVHJlZUFnZW50KCk7CiAKQEAgLTcwLDcgKzY5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgbGF5ZXJJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpMYXll
clRyZWU6OkNvbXBvc2l0aW5nUmVhc29ucz4mKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JM
YXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqKTsKKyAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKik7
CiAKICAgICAvLyBSZW5kZXJMYXllci1yZWxhdGVkIG1ldGhvZHMuCiAgICAgU3RyaW5nIGJpbmQo
Y29uc3QgUmVuZGVyTGF5ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IDdiYzBlN2IuLjI2MzJiZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApAQCAtNDEs
NyArNDEsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUg
Ikluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNzUs
MTUgKzc0LDE1IEBAIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmdldERPTUNvdW50ZXJzKEVy
cm9yU3RyaW5nKiwgaW50KiBkb2N1bWVudHMsIGludCogbm9kCiAgICAgKmpzRXZlbnRMaXN0ZW5l
cnMgPSBUaHJlYWRMb2NhbEluc3BlY3RvckNvdW50ZXJzOjpjdXJyZW50KCkuY291bnRlclZhbHVl
KFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OkpTRXZlbnRMaXN0ZW5lckNvdW50ZXIpOwog
fQogCi1JbnNwZWN0b3JNZW1vcnlBZ2VudDo6SW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
IHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rvck1lbW9yeUFnZW50Pigi
TWVtb3J5IiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDo6SW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cykKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JNZW1vcnlBZ2VudD4o
Ik1lbW9yeSIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX2Zyb250ZW5kKDApCiB7CiB9
CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IEluc3BlY3Rvck1lbW9yeUFnZW50
OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorUGFzc093blB0cjxJbnNwZWN0b3JNZW1vcnlBZ2Vu
dD4gSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yTWVt
b3J5QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEluc3BlY3Rvck1lbW9yeUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMpKTsKIH0KIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCmlu
ZGV4IGU4ODQ3OTAuLmU3N2JmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC00MSw3ICs0MSw2IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDsKLWNsYXNzIEluc3BlY3RvclN0
YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CkBAIC01MSw3ICs1MCw3IEBAIGNsYXNzIEluc3BlY3Rvck1lbW9yeUFnZW50IDogcHVi
bGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JNZW1vcnlBZ2VudD4sIHB1CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBWZWN0b3I8T3duUHRyPEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZT4+
IEluc3BlY3RvckFnZW50czsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvck1lbW9y
eUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnNwZWN0b3JNZW1vcnlBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMpOwogICAgIHZpcnR1YWwgfkluc3BlY3Rvck1lbW9yeUFnZW50KCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RE9NQ291bnRlcnMoRXJyb3JTdHJpbmcqLCBpbnQqIGRvY3VtZW50
cywgaW50KiBub2RlcywgaW50KiBqc0V2ZW50TGlzdGVuZXJzKTsKQEAgLTYwLDcgKzU5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAKIHByaXZhdGU6Ci0g
ICAgSW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNv
bXBvc2l0ZVN0YXRlKik7CisgICAgSW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyopOwogCiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6Ok1lbW9yeSogbV9mcm9udGVuZDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmlu
ZGV4IDgwNDRmZTcuLjM2NTkxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdl
bnRzLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCkBAIC0yMjYsOSArMjI1LDkgQEAgYm9vbCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmRhdGFDb250ZW50KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVk
IHNpemUsIGNvbnN0IFN0cmkKICAgICByZXR1cm4gZGVjb2RlQnVmZmVyKGRhdGEsIHNpemUsIHRl
eHRFbmNvZGluZ05hbWUsIHJlc3VsdCk7CiB9CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFn
ZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdl
bnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0
b3JPdmVybGF5KiBvdmVybGF5KQorUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IEluc3Bl
Y3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCog
Y2xpZW50LCBJbnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgSW5zcGVjdG9yUGFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2UsIGluc3Bl
Y3RvckFnZW50LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBjbGllbnQsIG92ZXJsYXkp
KTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclBhZ2VBZ2VudChpbnN0cnVtZW50
aW5nQWdlbnRzLCBwYWdlLCBpbnNwZWN0b3JBZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBj
bGllbnQsIG92ZXJsYXkpKTsKIH0KIAogLy8gc3RhdGljCkBAIC0zNDgsOCArMzQ3LDggQEAgVHlw
ZUJ1aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlVHlwZUpzb24KICAgICByZXR1cm4gcmVzb3VyY2VUeXBlSnNvbihjYWNoZWRS
ZXNvdXJjZVR5cGUoY2FjaGVkUmVzb3VyY2UpKTsKIH0KIAotSW5zcGVjdG9yUGFnZUFnZW50OjpJ
bnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgUGFnZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yT3Zl
cmxheSogb3ZlcmxheSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQYWdlQWdl
bnQ+KCJQYWdlIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCitJbnNwZWN0
b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdl
bnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0
b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKKyAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQYWdlQWdlbnQ+KCJQYWdlIiwgaW5zdHJ1bWVudGluZ0Fn
ZW50cykKICAgICAsIG1fcGFnZShwYWdlKQogICAgICwgbV9pbnNwZWN0b3JBZ2VudChpbnNwZWN0
b3JBZ2VudCkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFu
YWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApp
bmRleCA3MGIxMTBiLi40ZTZhYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCkBAIC01OCw3ICs1OCw2IEBAIGNsYXNzIEluc3BlY3RvckFycmF5
OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwogY2xhc3Mg
SW5zcGVjdG9yT3ZlcmxheTsKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVu
dGluZ0FnZW50czsKIGNsYXNzIFVSTDsKIGNsYXNzIFBhZ2U7CkBAIC04Miw3ICs4MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgT3RoZXJSZXNvdXJjZQogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093
blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFn
ZSosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JPdmVybGF5Kik7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlcios
IEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKIAogICAgIHN0YXRpYyBib29s
IGNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSosIFN0cmluZyogcmVzdWx0LCBi
b29sKiBiYXNlNjRFbmNvZGVkKTsKICAgICBzdGF0aWMgYm9vbCBzaGFyZWRCdWZmZXJDb250ZW50
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdOYW1l
LCBib29sIHdpdGhCYXNlNjRFbmNvZGUsIFN0cmluZyogcmVzdWx0KTsKQEAgLTE4Miw3ICsxODEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIERvY3VtZW50TG9hZGVyKiBhc3NlcnREb2N1bWVudExv
YWRlcihFcnJvclN0cmluZyosIEZyYW1lKik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yUGFn
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5zcGVjdG9yQWdlbnQqLCBJbnNw
ZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvckNs
aWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKKyAgICBJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2VudCosIEluamVjdGVkU2NyaXB0TWFu
YWdlciosIEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKICAgICBib29sIGRl
dmljZU1ldHJpY3NDaGFuZ2VkKGludCB3aWR0aCwgaW50IGhlaWdodCwgZG91YmxlIGZvbnRTY2Fs
ZUZhY3RvciwgYm9vbCBmaXRXaW5kb3cpOwogICAgIHZvaWQgdXBkYXRlVmlld01ldHJpY3MoaW50
LCBpbnQsIGRvdWJsZSwgYm9vbCk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRl
eCBlMmQzZjViLi5kNWMxODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
SW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29sZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRp
bmdBZ2VudHMuaCIKICNpbmNsdWRlICJVUkwuaCIKQEAgLTY0LDggKzYzLDggQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlwZSA9ICJIRUFQIjsKIAogY2xhc3MgUGFnZVBy
b2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCB7CiBwdWJsaWM6Ci0g
ICAgUGFnZVByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3Rl
ZFBhZ2UsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgICAgIDogSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHN0YXRlLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpLCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkgeyB9CisgICAgUGFn
ZVByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2Us
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICAgICA6
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpLCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkg
eyB9CiAgICAgdmlydHVhbCB+UGFnZVByb2ZpbGVyQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToKQEAg
LTg3LDE2ICs4NiwxNiBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKIH07
CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFu
YWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdl
bnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZVByb2ZpbGVyQWdl
bnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBpbnNwZWN0ZWRQYWdlLCBpbnNw
ZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBQYWdlUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQs
IGluc3BlY3RlZFBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwogfQogCiAjaWYgRU5BQkxF
KFdPUktFUlMpCiBjbGFzcyBXb3JrZXJQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQgewogcHVibGljOgotICAgIFdvcmtlclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQsIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKLSAgICAgICAgOiBJbnNwZWN0b3JQcm9maWxlckFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciks
IG1fd29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpIHsgfQorICAgIFdvcmtlclBy
b2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFdvcmtlckdsb2JhbFNjb3BlKiB3b3Jr
ZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCisgICAgICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBjb25zb2xlQWdlbnQsIGluamVjdGVkU2NyaXB0TWFuYWdlciksIG1fd29ya2VyR2xvYmFsU2Nv
cGUod29ya2VyR2xvYmFsU2NvcGUpIHsgfQogICAgIHZpcnR1YWwgfldvcmtlclByb2ZpbGVyQWdl
bnQoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTExNSwxNCArMTE0LDE0IEBAIHByaXZhdGU6CiAgICAg
V29ya2VyR2xvYmFsU2NvcGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwogCi1QYXNzT3duUHRy
PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xl
QWdlbnQqIGNvbnNvbGVBZ2VudCwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3Bl
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0
TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQcm9m
aWxlckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xl
QWdlbnQsIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXb3JrZXJQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2Vu
dCwgd29ya2VyR2xvYmFsU2NvcGUsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlclByb2ZpbGVyQWdlbnQoaW5zdHJ1
bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCB3b3JrZXJHbG9iYWxTY29wZSwgaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKSk7CiB9CiAjZW5kaWYKIAotSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6SW5z
cGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PigiUHJvZmlsZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkK
K0luc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+KCJQcm9m
aWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChjb25zb2xl
QWdlbnQpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCA0MzVhOWQ2Li40MjIzZjI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAg
LTQ3LDcgKzQ3LDYgQEAgY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb25z
b2xlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVj
dDsKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNs
YXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRIZWFwU25hcHNob3Q7CkBAIC01OSw5ICs1OCw5IEBAIHR5
cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4sIHB1Ymxp
YyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6UHJvZmlsZXJDb21tYW5kSGFuZGxlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29u
c29sZUFnZW50KiwgUGFnZSosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBQ
YWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAg
c3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3JrZXJHbG9iYWxTY29wZSos
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3JrZXJHbG9iYWxTY29wZSos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogI2VuZGlmCiAgICAgdmlydHVhbCB+SW5zcGVjdG9y
UHJvZmlsZXJBZ2VudCgpOwogCkBAIC0xMDEsNyArMTAwLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKTsKIAogcHJvdGVjdGVkOgotICAgIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNv
bGVBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
Kik7CisgICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yQ29uc29sZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVh
bCB2b2lkIHN0YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhjb25zdCBTdHJpbmcm
IHRpdGxlKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCAwODkwYjkxLi4zY2E1M2I4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC00
OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKLSNpbmNs
dWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJVUkwuaCIKQEAgLTY0Nyw4
ICs2NDYsOCBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1haW5GcmFtZU5hdmlnYXRl
ZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIG1fcmVzb3VyY2VzRGF0YS0+Y2xlYXIobV9w
YWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlcikpOwogfQogCi1JbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQq
IGNsaWVudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9y
QmFzZUFnZW50PEluc3BlY3RvclJlc291cmNlQWdlbnQ+KCJOZXR3b3JrIiwgaW5zdHJ1bWVudGlu
Z0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IElu
c3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PigiTmV0d29yayIsIGluc3Ry
dW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2Ns
aWVudChjbGllbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRleCA0NjAwZGRlLi4zYjkyMWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgKQEAgLTU4LDcgKzU4LDYgQEAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JQ
YWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2Vu
dHM7CiBjbGFzcyBVUkw7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VzRGF0YTsKQEAgLTgwLDE1ICs3
OSwxNSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3MgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUmVzb3VyY2VB
Z2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6TmV0d29ya0NvbW1hbmRI
YW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGll
bnQqIGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGNsaWVudCwgc3Rh
dGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgY2xpZW50KSk7CiAgICAgfQogCiAgICAg
dmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
clJlc291cmNlQWdlbnQ+IHJlc3RvcmUoUGFnZSosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwg
SW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNv
dXJjZUFnZW50PiByZXN0b3JlKFBhZ2UqLCBJbnNwZWN0b3JGcm9udGVuZCopOwogCiAgICAgfklu
c3BlY3RvclJlc291cmNlQWdlbnQoKTsKIApAQCAtMTUxLDcgKzE1MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2FjaGVEaXNhYmxlZChFcnJvclN0cmluZyosIGJvb2wgY2FjaGVE
aXNhYmxlZCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ2xpZW50KiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKKyAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDbGllbnQqKTsK
IAogICAgIHZvaWQgZW5hYmxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggYTllYTYzMS4uOTgxYmUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAK
QEAgLTU3LDggKzU3LDggQEAgc3RhdGljIGJvb2wgYXNCb29sKGNvbnN0IGJvb2wqIGNvbnN0IGIp
CiAgICAgcmV0dXJuIGIgPyAqYiA6IGZhbHNlOwogfQogCi1JbnNwZWN0b3JSdW50aW1lQWdlbnQ6
Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFu
YWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvclJ1bnRpbWVBZ2VudD4oIlJ1bnRpbWUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0
ZSkKK0luc3BlY3RvclJ1bnRpbWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
clJ1bnRpbWVBZ2VudD4oIlJ1bnRpbWUiLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9l
bmFibGVkKGZhbHNlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IDY4ZTE4ZDcu
Ljk1NjYxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVu
dGltZUFnZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3Rl
ZDoKLSAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVj
dG9yUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKICAgICB2aXJ0dWFsIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChF
cnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSA9IDA7CiAKICAgICB2
aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0YXRlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjllNWI5
YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgi
Ci0KLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSW5zcGVjdG9yU3RhdGU6Okluc3Bl
Y3RvclN0YXRlKEluc3BlY3RvclN0YXRlVXBkYXRlTGlzdGVuZXIqIGxpc3RlbmVyLCBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcHJvcGVydGllcykKLSAgICA6IG1fbGlzdGVuZXIobGlzdGVu
ZXIpCi0gICAgLCBtX3Byb3BlcnRpZXMocHJvcGVydGllcykKLXsKLX0KLQotdm9pZCBJbnNwZWN0
b3JTdGF0ZTo6dXBkYXRlQ29va2llKCkKLXsKLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAgICAg
bV9saXN0ZW5lci0+aW5zcGVjdG9yU3RhdGVVcGRhdGVkKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
U3RhdGU6OnNldEZyb21Db29raWUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHByb3BlcnRp
ZXMpCi17Ci0gICAgbV9wcm9wZXJ0aWVzID0gcHJvcGVydGllczsKLX0KLQotdm9pZCBJbnNwZWN0
b3JTdGF0ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IHZhbHVlKQotewotICAgIG1fcHJvcGVydGllcy0+c2V0VmFsdWUocHJv
cGVydHlOYW1lLCB2YWx1ZSk7Ci0gICAgdXBkYXRlQ29va2llKCk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yU3RhdGU6OnJlbW92ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICBtX3By
b3BlcnRpZXMtPnJlbW92ZShwcm9wZXJ0eU5hbWUpOwotICAgIHVwZGF0ZUNvb2tpZSgpOwotfQot
Ci1ib29sIEluc3BlY3RvclN0YXRlOjpnZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKQotewotICAgIEluc3BlY3Rvck9iamVjdDo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMt
PmZpbmQocHJvcGVydHlOYW1lKTsKLSAgICBib29sIHZhbHVlID0gZmFsc2U7Ci0gICAgaWYgKGl0
ICE9IG1fcHJvcGVydGllcy0+ZW5kKCkpCi0gICAgICAgIGl0LT52YWx1ZS0+YXNCb29sZWFuKCZ2
YWx1ZSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1TdHJpbmcgSW5zcGVjdG9yU3RhdGU6Omdl
dFN0cmluZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICBJbnNwZWN0b3JPYmpl
Y3Q6Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLT5maW5kKHByb3BlcnR5TmFtZSk7Ci0gICAg
U3RyaW5nIHZhbHVlOwotICAgIGlmIChpdCAhPSBtX3Byb3BlcnRpZXMtPmVuZCgpKQotICAgICAg
ICBpdC0+dmFsdWUtPmFzU3RyaW5nKCZ2YWx1ZSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1s
b25nIEluc3BlY3RvclN0YXRlOjpnZXRMb25nKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQot
ewotICAgIEluc3BlY3Rvck9iamVjdDo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMtPmZpbmQo
cHJvcGVydHlOYW1lKTsKLSAgICBsb25nIHZhbHVlID0gMDsKLSAgICBpZiAoaXQgIT0gbV9wcm9w
ZXJ0aWVzLT5lbmQoKSkKLSAgICAgICAgaXQtPnZhbHVlLT5hc051bWJlcigmdmFsdWUpOwotICAg
IHJldHVybiB2YWx1ZTsKLX0KLQotZG91YmxlIEluc3BlY3RvclN0YXRlOjpnZXREb3VibGUoY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgSW5zcGVjdG9yT2JqZWN0OjppdGVyYXRv
ciBpdCA9IG1fcHJvcGVydGllcy0+ZmluZChwcm9wZXJ0eU5hbWUpOwotICAgIGRvdWJsZSB2YWx1
ZSA9IDA7Ci0gICAgaWYgKGl0ICE9IG1fcHJvcGVydGllcy0+ZW5kKCkpCi0gICAgICAgIGl0LT52
YWx1ZS0+YXNOdW1iZXIoJnZhbHVlKTsKLSAgICByZXR1cm4gdmFsdWU7Ci19Ci0KLVBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JTdGF0ZTo6Z2V0T2JqZWN0KGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lKQotewotICAgIEluc3BlY3Rvck9iamVjdDo6aXRlcmF0b3IgaXQgPSBt
X3Byb3BlcnRpZXMtPmZpbmQocHJvcGVydHlOYW1lKTsKLSAgICBpZiAoaXQgPT0gbV9wcm9wZXJ0
aWVzLT5lbmQoKSkgewotICAgICAgICBtX3Byb3BlcnRpZXMtPnNldE9iamVjdChwcm9wZXJ0eU5h
bWUsIEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwotICAgICAgICBpdCA9IG1fcHJvcGVydGll
cy0+ZmluZChwcm9wZXJ0eU5hbWUpOwotICAgIH0KLSAgICByZXR1cm4gaXQtPnZhbHVlLT5hc09i
amVjdCgpOwotfQotCi1JbnNwZWN0b3JTdGF0ZSogSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6OmNy
ZWF0ZUFnZW50U3RhdGUoY29uc3QgU3RyaW5nJiBhZ2VudE5hbWUpCi17Ci0gICAgQVNTRVJUKG1f
c3RhdGVPYmplY3QtPmZpbmQoYWdlbnROYW1lKSA9PSBtX3N0YXRlT2JqZWN0LT5lbmQoKSk7Ci0g
ICAgQVNTRVJUKG1faW5zcGVjdG9yU3RhdGVNYXAuZmluZChhZ2VudE5hbWUpID09IG1faW5zcGVj
dG9yU3RhdGVNYXAuZW5kKCkpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHN0YXRlUHJv
cGVydGllcyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgbV9zdGF0ZU9iamVjdC0+
c2V0T2JqZWN0KGFnZW50TmFtZSwgc3RhdGVQcm9wZXJ0aWVzKTsKLSAgICBPd25QdHI8SW5zcGVj
dG9yU3RhdGU+IHN0YXRlUHRyID0gYWRvcHRQdHIobmV3IEluc3BlY3RvclN0YXRlKHRoaXMsIHN0
YXRlUHJvcGVydGllcykpOwotICAgIEluc3BlY3RvclN0YXRlKiBzdGF0ZSA9IHN0YXRlUHRyLmdl
dCgpOwotICAgIG1faW5zcGVjdG9yU3RhdGVNYXAuYWRkKGFnZW50TmFtZSwgc3RhdGVQdHIucmVs
ZWFzZSgpKTsKLSAgICByZXR1cm4gc3RhdGU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGU6OmxvYWRGcm9tQ29va2llKGNvbnN0IFN0cmluZyYgaW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGVDb29raWUpCi17Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBjb29raWUgPSBJbnNwZWN0
b3JWYWx1ZTo6cGFyc2VKU09OKGluc3BlY3RvckNvbXBvc2l0ZVN0YXRlQ29va2llKTsKLSAgICBp
ZiAoY29va2llKQotICAgICAgICBtX3N0YXRlT2JqZWN0ID0gY29va2llLT5hc09iamVjdCgpOwot
ICAgIGlmICghbV9zdGF0ZU9iamVjdCkKLSAgICAgICAgbV9zdGF0ZU9iamVjdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7Ci0KLSAgICBJbnNwZWN0b3JTdGF0ZU1hcDo6aXRlcmF0b3IgZW5k
ID0gbV9pbnNwZWN0b3JTdGF0ZU1hcC5lbmQoKTsKLSAgICBmb3IgKEluc3BlY3RvclN0YXRlTWFw
OjppdGVyYXRvciBpdCA9IG1faW5zcGVjdG9yU3RhdGVNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGFnZW50U3RhdGVPYmplY3Qg
PSBtX3N0YXRlT2JqZWN0LT5nZXRPYmplY3QoaXQtPmtleSk7Ci0gICAgICAgIGlmICghYWdlbnRT
dGF0ZU9iamVjdCkgewotICAgICAgICAgICAgYWdlbnRTdGF0ZU9iamVjdCA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBtX3N0YXRlT2JqZWN0LT5zZXRPYmplY3QoaXQt
PmtleSwgYWdlbnRTdGF0ZU9iamVjdCk7Ci0gICAgICAgIH0KLSAgICAgICAgaXQtPnZhbHVlLT5z
ZXRGcm9tQ29va2llKGFnZW50U3RhdGVPYmplY3QpOwotICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0
b3JDb21wb3NpdGVTdGF0ZTo6bXV0ZSgpCi17Ci0gICAgbV9pc011dGVkID0gdHJ1ZTsKLX0KLQot
dm9pZCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZTo6dW5tdXRlKCkKLXsKLSAgICBtX2lzTXV0ZWQg
PSBmYWxzZTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZTo6aW5zcGVjdG9yU3Rh
dGVVcGRhdGVkKCkKLXsKLSAgICBpZiAobV9jbGllbnQgJiYgIW1faXNNdXRlZCAmJiBtX2NsaWVu
dC0+c3VwcG9ydHNJbnNwZWN0b3JTdGF0ZVVwZGF0ZXMoKSkKLSAgICAgICAgbV9jbGllbnQtPnVw
ZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKG1fc3RhdGVPYmplY3QtPnRvSlNPTlN0cmluZygpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI0ZDc5OWIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgSW5zcGVjdG9yU3RhdGVfaAotI2RlZmluZSBJbnNwZWN0b3JTdGF0ZV9oCi0KLSNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCi0jaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IEluc3BlY3RvclN0YXRlQ2xpZW50OwotCi1jbGFzcyBJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3Rl
bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVy
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGluc3BlY3RvclN0YXRlVXBkYXRlZCgpID0gMDsKLX07
Ci0KLWNsYXNzIEluc3BlY3RvclN0YXRlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBJbnNwZWN0b3JTdGF0ZShJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVy
KiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JT
dGF0ZSgpIHt9Ci0KLSAgICB2b2lkIGxvYWRGcm9tQ29va2llKGNvbnN0IFN0cmluZyYgaW5zcGVj
dG9yU3RhdGVDb29raWUpOwotCi0gICAgdm9pZCBtdXRlKCk7Ci0gICAgdm9pZCB1bm11dGUoKTsK
LQotICAgIGJvb2wgZ2V0Qm9vbGVhbihjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSk7Ci0gICAg
U3RyaW5nIGdldFN0cmluZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSk7Ci0gICAgbG9uZyBn
ZXRMb25nKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKTsKLSAgICBkb3VibGUgZ2V0RG91Ymxl
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKTsKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZ2V0T2JqZWN0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKTsKLQotICAgIHZvaWQg
c2V0Qm9vbGVhbihjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgYm9vbCB2YWx1ZSkgeyBzZXRW
YWx1ZShwcm9wZXJ0eU5hbWUsIEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSh2YWx1ZSkpOyB9
Ci0gICAgdm9pZCBzZXRTdHJpbmcoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpIHsgc2V0VmFsdWUocHJvcGVydHlOYW1lLCBJbnNwZWN0b3JTdHJpbmc6OmNy
ZWF0ZSh2YWx1ZSkpOyB9Ci0gICAgdm9pZCBzZXRMb25nKGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBsb25nIHZhbHVlKSB7IHNldFZhbHVlKHByb3BlcnR5TmFtZSwgSW5zcGVjdG9yQmFzaWNW
YWx1ZTo6Y3JlYXRlKChkb3VibGUpdmFsdWUpKTsgfQotICAgIHZvaWQgc2V0RG91YmxlKGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgdmFsdWUpIHsgc2V0VmFsdWUocHJvcGVydHlO
YW1lLCBJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUpKTsgfQotICAgIHZvaWQgc2V0
T2JqZWN0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gdmFsdWUpIHsgc2V0VmFsdWUocHJvcGVydHlOYW1lLCB2YWx1ZSk7IH0KLQotICAgIHZv
aWQgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotcHJpdmF0ZToKLSAgICB2b2lkIHVwZGF0ZUNvb2tp
ZSgpOwotICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yVmFsdWU+KTsKLQotICAgIC8vIEdldHMgY2FsbGVkIGZyb20gSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGU6OmxvYWRGcm9tQ29va2llKCkuCi0gICAgdm9pZCBzZXRGcm9tQ29v
a2llKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Pik7Ci0KLSAgICBmcmllbmQgY2xhc3MgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGU7Ci0KLSAgICBJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVy
KiBtX2xpc3RlbmVyOwotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fcHJvcGVydGllczsK
LX07Ci0KLWNsYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlIDogcHVibGljIEluc3BlY3RvclN0
YXRlVXBkYXRlTGlzdGVuZXIgewotcHVibGljOgotICAgIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KEluc3BlY3RvclN0YXRlQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQpCi0gICAgICAgIDogbV9jbGll
bnQoaW5zcGVjdG9yQ2xpZW50KQotICAgICAgICAsIG1fc3RhdGVPYmplY3QoSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKSkKLSAgICAgICAgLCBtX2lzTXV0ZWQoZmFsc2UpCi0gICAgewotICAgIH0K
LSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSgpIHsgfQotCi0gICAgdm9pZCBt
dXRlKCk7Ci0gICAgdm9pZCB1bm11dGUoKTsKLQotICAgIEluc3BlY3RvclN0YXRlKiBjcmVhdGVB
Z2VudFN0YXRlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgbG9hZEZyb21Db29raWUoY29uc3Qg
U3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgT3duUHRy
PEluc3BlY3RvclN0YXRlPj4gSW5zcGVjdG9yU3RhdGVNYXA7Ci0KLSAgICAvLyBGcm9tIEluc3Bl
Y3RvclN0YXRlVXBkYXRlTGlzdGVuZXIuCi0gICAgdmlydHVhbCB2b2lkIGluc3BlY3RvclN0YXRl
VXBkYXRlZCgpOwotCi0gICAgSW5zcGVjdG9yU3RhdGVDbGllbnQqIG1fY2xpZW50OwotICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fc3RhdGVPYmplY3Q7Ci0gICAgYm9vbCBtX2lzTXV0ZWQ7
Ci0gICAgSW5zcGVjdG9yU3RhdGVNYXAgbV9pbnNwZWN0b3JTdGF0ZU1hcDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCi0jZW5kaWYg
Ly8gIWRlZmluZWQoSW5zcGVjdG9yU3RhdGVfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0YXRlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdkNmY1NWMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0YXRlQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgSW5zcGVjdG9yU3RhdGVDbGllbnRfaAotI2RlZmluZSBJbnNwZWN0b3JTdGF0ZUNs
aWVudF9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIEluc3BlY3RvclN0YXRlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JTdGF0ZUNsaWVudCgpIHsgfQotCi0gICAgLy8gTmF2aWdhdGlvbiBjYW4gY2F1c2Ug
c29tZSBXZWJLaXQgaW1wbGVtZW50YXRpb25zIHRvIGNoYW5nZSB0aGUgdmlldyAvIHBhZ2UgLyBp
bnNwZWN0b3IgY29udHJvbGxlciBpbnN0YW5jZS4KLSAgICAvLyBIb3dldmVyLCB0aGVyZSBhcmUg
c29tZSBpbnNwZWN0b3IgY29udHJvbGxlciBzdGF0ZXMgdGhhdCBzaG91bGQgc3Vydml2ZSBuYXZp
Z2F0aW9uIChzdWNoIGFzIHRyYWNraW5nIHJlc291cmNlcwotICAgIC8vIG9yIHJlY29yZGluZyB0
aW1lbGluZSkgYW5kIHdvcmtlciByZXN0YXJ0LiBGb2xsb3dpbmcgY2FsbGJhY2tzIGFsbG93IGVt
YmVkZGVycyB0byB0cmFjayB0aGVzZSBzdGF0ZXMuCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRz
SW5zcGVjdG9yU3RhdGVVcGRhdGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJikgeyB9Owot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVj
dG9yU3RhdGVDbGllbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCA3NGYxMDgxLi5kYjRhZmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBA
IC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdl
QWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1l
bnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3cuaCIKQEAgLTU4MCw4ICs1NzksOCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKICAgICB9CiB9
CiAKLUluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQsIEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlBZ2VudCwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVudCog
Y2xpZW50KQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+
KCJUaW1lbGluZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
TWVtb3J5QWdlbnQqIG1lbW9yeUFnZW50LCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNs
aWVudCogY2xpZW50KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ+KCJUaW1lbGluZSIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3BhZ2VBZ2Vu
dChwYWdlQWdlbnQpCiAgICAgLCBtX21lbW9yeUFnZW50KG1lbW9yeUFnZW50KQogICAgICwgbV9m
cm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgKaW5kZXggNjFhNGYzZi4uODc2ZDk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC01MCw3ICs1MCw2IEBA
IGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3Mg
SW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7Ci1jbGFzcyBJ
bnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgVVJMOwpAQCAtMTI5LDkgKzEyOCw5IEBAIGNsYXNzIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQKIHB1YmxpYzoKICAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBX
b3JrZXJJbnNwZWN0b3IgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yTWVtb3J5QWdlbnQqIG1l
bW9yeUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5cGUg
dHlwZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yVGltZWxpbmVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JNZW1v
cnlBZ2VudCogbWVtb3J5QWdlbnQsIEluc3BlY3RvclR5cGUgdHlwZSwgSW5zcGVjdG9yQ2xpZW50
KiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclRp
bWVsaW5lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBtZW1vcnlBZ2VudCwg
c3RhdGUsIHR5cGUsIGNsaWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBtZW1vcnlB
Z2VudCwgdHlwZSwgY2xpZW50KSk7CiAgICAgfQogCiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKTsKQEAgLTIzMyw3ICsyMzIsNyBAQCBwcml2YXRlOgogICAgICAgICBzaXplX3QgdXNlZEhl
YXBTaXplQXRTdGFydDsKICAgICB9OwogCi0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yTWVtb3J5QWdl
bnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNs
aWVudCopOworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvck1lbW9yeUFnZW50KiwgSW5zcGVjdG9yVHlw
ZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKICAgICB2b2lkIHNlbmRFdmVudChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4pOwogICAgIHZvaWQgYXBwZW5kUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhLCBUaW1lbGluZVJlY29yZFR5cGUsIGJvb2wgY2FwdHVyZUNhbGxTdGFj
aywgRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29y
a2VyQWdlbnQuY3BwCmluZGV4IGEzZmNlMjUuLjI0OWZmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMzYsNyArMzYsNiBA
QAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNp
bmNsdWRlICJVUkwuaCIKQEAgLTEwMiwxMyArMTAxLDEzIEBAIHByaXZhdGU6CiAKIGludCBJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpzX25leHRJZCA9IDE7CiAK
LVBhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IEluc3BlY3RvcldvcmtlckFnZW50Ojpj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlKQorUGFzc093blB0cjxJbnNwZWN0b3JXb3Jr
ZXJBZ2VudD4gSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yV29ya2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpKTsKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvcldvcmtlckFnZW50KGluc3RydW1lbnRpbmdB
Z2VudHMpKTsKIH0KIAotSW5zcGVjdG9yV29ya2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JXb3JrZXJBZ2VudD4oIldvcmtlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3Rv
clN0YXRlKQorSW5zcGVjdG9yV29ya2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KCJXb3JrZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgICwgbV9pbnNwZWN0b3JGcm9udGVuZCgwKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQog
ICAgICwgbV9zaG91bGRQYXVzZURlZGljYXRlZFdvcmtlck9uU3RhcnQoZmFsc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IGExYzJh
NWUuLmZiZDkwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5oCkBAIC00MCw3ICs0MCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKLWNsYXNzIEluc3Bl
Y3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFVSTDsKIGNsYXNz
IFdvcmtlckdsb2JhbFNjb3BlUHJveHk7CkBAIC00OSw3ICs0OCw3IEBAIHR5cGVkZWYgU3RyaW5n
IEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OldvcmtlckNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOworICAgIHN0YXRpYyBQYXNzT3duUHRy
PEluc3BlY3RvcldvcmtlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAg
IH5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKik7CkBAIC03MCw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0QXV0b2Nvbm5lY3RUb1dvcmtlcnMoRXJyb3JTdHJpbmcqLCBib29sIHZhbHVl
KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JXb3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKKyAgICBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgdm9pZCBjcmVhdGVXb3JrZXJGcm9udGVuZENo
YW5uZWxzRm9yRXhpc3RpbmdXb3JrZXJzKCk7CiAgICAgdm9pZCBjcmVhdGVXb3JrZXJGcm9udGVu
ZENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGVQcm94eSosIGNvbnN0IFN0cmluZyYgdXJsKTsKICAg
ICB2b2lkIGRlc3Ryb3lXb3JrZXJGcm9udGVuZENoYW5uZWxzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMzQyNzE2NC4uYmNkODlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcApAQCAt
NDQsOCArNDQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25zb2xlQWdlbnQ6
OlBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0
ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJ
bnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQo
aW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1BhZ2VD
b25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50KQorICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1faW5zcGVjdG9yQWdlbnQoaW5zcGVjdG9y
QWdlbnQpCiAgICAgLCBtX2luc3BlY3RvckRPTUFnZW50KGRvbUFnZW50KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKaW5kZXggM2UyNDhlOS4uZTE5MzE5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCkBAIC00
NCwxNiArNDQsMTYgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFzcyBQYWdlQ29uc29s
ZUFnZW50IDogcHVibGljIEluc3BlY3RvckNvbnNvbGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGFnZUNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGFnZUNvbnNvbGVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckFnZW50KiBhZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwg
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VD
b25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JBZ2VudCogYWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgYWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGRvbUFnZW50KSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZUNvbnNvbGVBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBhZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBkb21BZ2VudCkpOwogICAgIH0K
ICAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNX
b3JrZXJBZ2VudCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAg
UGFnZUNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQWdlbnQqLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rv
ckRPTUFnZW50Kik7CisgICAgUGFnZUNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
SW5zcGVjdG9yQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JET01BZ2Vu
dCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nKik7CiAgICAg
dmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNGVkZjY2MS4uODdm
YWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwCkBAIC00MywxMyArNDMsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3du
UHRyPFBhZ2VEZWJ1Z2dlckFnZW50PiBQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBpbnNwZWN0b3JTdGF0ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JPdmVybGF5KiBv
dmVybGF5KQorUGFzc093blB0cjxQYWdlRGVidWdnZXJBZ2VudD4gUGFnZURlYnVnZ2VyQWdlbnQ6
OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBQYWdlRGVidWdnZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0
b3JTdGF0ZSwgcGFnZUFnZW50LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIG92ZXJsYXkpKTsKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VEZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHBhZ2VBZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBvdmVybGF5KSk7CiB9CiAKLVBh
Z2VEZWJ1Z2dlckFnZW50OjpQYWdlRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
IGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKLSAgICA6
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3Rh
dGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1BhZ2VEZWJ1Z2dlckFnZW50OjpQYWdlRGVidWdn
ZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCisgICAgOiBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
ICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fb3ZlcmxheShvdmVybGF5KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCA3
MjJlZGRkLi41NTg2MzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
YWdlRGVidWdnZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZURlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JQYWdlQWdl
bnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JPdmVybGF5Kik7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8UGFnZURlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVj
dG9yT3ZlcmxheSopOwogICAgIHZpcnR1YWwgflBhZ2VEZWJ1Z2dlckFnZW50KCk7CiAKICAgICB2
b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7CkBAIC02NSw3ICs2NSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
RXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldE92ZXJsYXlNZXNzYWdlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKik7CiAK
LSAgICBQYWdlRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
LCBJbnNwZWN0b3JPdmVybGF5Kik7CisgICAgUGFnZURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIElu
c3BlY3Rvck92ZXJsYXkqKTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50Owog
ICAgIEluc3BlY3Rvck92ZXJsYXkqIG1fb3ZlcmxheTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMjlhMjA5OS4uNDE4MjdiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtMzgs
NyArMzgsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgi
CiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNTAsOCArNDks
OCBAQCB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6RXhlY3V0aW9uQ29udGV4
dERlc2NyaXB0aW9uOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VSdW50aW1lQWdlbnQ6
OlBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
IGluamVjdGVkU2NyaXB0TWFuYWdlciwgUGFnZSogcGFnZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1BhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VS
dW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1faW5z
cGVjdGVkUGFnZShwYWdlKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9m
cm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgK
aW5kZXggZjVkODdlZS4uY2RkMzQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
CiBjbGFzcyBQYWdlUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVJ1bnRpbWVBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgIHN0
YXRpYyBQYXNzT3duUHRyPFBhZ2VSdW50aW1lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlciwgUGFnZSogcGFnZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VSdW50aW1lQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgcGFnZSwgcGFn
ZUFnZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZVJ1bnRpbWVBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIHBhZ2UsIHBhZ2VBZ2Vu
dCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50KCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CkBAIC02MCw3ICs2MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENyZWF0ZUlzb2xhdGVkQ29udGV4dChGcmFtZSosIEpTQzo6
RXhlY1N0YXRlKiwgU2VjdXJpdHlPcmlnaW4qKTsKIAogcHJpdmF0ZToKLSAgICBQYWdlUnVudGlt
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIElu
amVjdGVkU2NyaXB0TWFuYWdlciosIFBhZ2UqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKKyAgICBQ
YWdlUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqLCBQYWdlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CiAKICAgICB2aXJ0dWFsIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkKTsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNzc5
NjIxMy4uYzFkZDU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNv
bnNvbGVBZ2VudC5jcHAKQEAgLTM2LDggKzM2LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1Xb3JrZXJDb25zb2xlQWdlbnQ6OldvcmtlckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5z
cGVjdG9yQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCitXb3JrZXJDb25zb2xlQWdlbnQ6OldvcmtlckNvbnNvbGVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCAxNWY1ZmY4
Li4xNmE4YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVB
Z2VudC5oCkBAIC00MSwxNiArNDEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgV29y
a2VyQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3RvckNvbnNvbGVBZ2VudCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2VyQ29uc29sZUFnZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxXb3JrZXJDb25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPFdvcmtlckNvbnNvbGVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJD
b25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFu
YWdlcikpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlckNvbnNvbGVBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKICAgICB9CiAgICAg
dmlydHVhbCB+V29ya2VyQ29uc29sZUFnZW50KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNXb3Jr
ZXJBZ2VudCgpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBXb3Jr
ZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgV29ya2VyQ29uc29sZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB2aXJ0dWFs
IHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogICAgIHZp
cnR1YWwgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGY1MmFkOGUuLjU3
NzkxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5jcHAKQEAgLTgwLDEzICs4MCwxMyBAQCBwcml2YXRlOgogCiBjb25zdCBjaGFyKiBXb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKIAotUGFzc093
blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBXb3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBXb3JrZXJHbG9iYWxTY29wZSogaW5zcGVjdGVkV29ya2Vy
R2xvYmFsU2NvcGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQorUGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBXb3JrZXJEZWJ1Z2dlckFnZW50Ojpj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgV29ya2VyR2xv
YmFsU2NvcGUqIGluc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdv
cmtlckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGlu
c3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgaW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwog
fQogCi1Xb3JrZXJEZWJ1Z2dlckFnZW50OjpXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBp
bnNwZWN0b3JTdGF0ZSwgV29ya2VyR2xvYmFsU2NvcGUqIGluc3BlY3RlZFdvcmtlckdsb2JhbFNj
b3BlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3Rh
dGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1dvcmtlckRlYnVnZ2VyQWdlbnQ6OldvcmtlckRl
YnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgV29y
a2VyR2xvYmFsU2NvcGUqIGluc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwg
bV9zY3JpcHREZWJ1Z1NlcnZlcihpbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29wZSwgV29ya2VyRGVi
dWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSkKICAgICAsIG1faW5zcGVjdGVkV29ya2VyR2xv
YmFsU2NvcGUoaW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCAzMDA4MmU1Li5jN2RmMGYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgK
QEAgLTQ0LDE0ICs0NCwxNCBAQCBjbGFzcyBXb3JrZXJEZWJ1Z2dlckFnZW50IDogcHVibGljIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckRl
YnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlckRlYnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBXb3JrZXJHbG9iYWxTY29wZSos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlckRl
YnVnZ2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyR2xvYmFsU2Nv
cGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB2aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dl
ckFnZW50KCk7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGVidWdnZXJUYXNrTW9kZTsKICAg
ICBzdGF0aWMgdm9pZCBpbnRlcnJ1cHRBbmREaXNwYXRjaEluc3BlY3RvckNvbW1hbmRzKFdvcmtl
clRocmVhZCopOwogCiBwcml2YXRlOgotICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgV29ya2VyR2xvYmFsU2NvcGUq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBXb3JrZXJHbG9iYWxTY29wZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIo
KTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKaW5kZXggMzgwZjIyMS4uZGFiZmQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDMsOCAr
NDMsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCi0jaW5jbHVkZSAiSW5zcGVj
dG9yU3RhdGVDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAj
aW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVB
Z2VudC5oIgpAQCAtNzMsNDcgKzcxLDI5IEBAIHByaXZhdGU6CiAgICAgV29ya2VyR2xvYmFsU2Nv
cGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwogCi1jbGFzcyBXb3JrZXJTdGF0ZUNsaWVudCA6
IHB1YmxpYyBJbnNwZWN0b3JTdGF0ZUNsaWVudCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7Ci1wdWJsaWM6Ci0gICAgV29ya2VyU3RhdGVDbGllbnQoV29ya2VyR2xvYmFsU2NvcGUqIGNv
bnRleHQpIDogbV93b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KSB7IH0KLSAgICB2aXJ0dWFsIH5X
b3JrZXJTdGF0ZUNsaWVudCgpIHsgfQotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0luc3BlY3RvclN0YXRlVXBkYXRlcygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29r
aWUpCi0gICAgewotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlLT50aHJlYWQoKS0+d29ya2Vy
UmVwb3J0aW5nUHJveHkoKS51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb29raWUpOwotICAg
IH0KLQotICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNjb3BlOwotfTsKLQog
fQogCiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
KFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSkKICAgICA6IG1fd29ya2VyR2xv
YmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpCi0gICAgLCBtX3N0YXRlQ2xpZW50KGFkb3B0UHRy
KG5ldyBXb3JrZXJTdGF0ZUNsaWVudCh3b3JrZXJHbG9iYWxTY29wZSkpKQotICAgICwgbV9zdGF0
ZShhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUobV9zdGF0ZUNsaWVudC5nZXQo
KSkpKQogICAgICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHM6OmNy
ZWF0ZSgpKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOjpjcmVhdGVGb3JXb3JrZXIoKSkKICAgICAsIG1fcnVudGltZUFnZW50KDApCiB7Ci0gICAg
T3duUHRyPEluc3BlY3RvclJ1bnRpbWVBZ2VudD4gcnVudGltZUFnZW50ID0gV29ya2VyUnVudGlt
ZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyR2xvYmFsU2NvcGUpOworICAg
IE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IHJ1bnRpbWVBZ2VudCA9IFdvcmtlclJ1bnRp
bWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckdsb2JhbFNjb3BlKTsKICAgICBtX3J1bnRpbWVBZ2Vu
dCA9IHJ1bnRpbWVBZ2VudC5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocnVudGltZUFnZW50
LnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yQ29uc29sZUFnZW50PiBjb25zb2xl
QWdlbnQgPSBXb3JrZXJDb25zb2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKKyAg
ICBPd25QdHI8SW5zcGVjdG9yQ29uc29sZUFnZW50PiBjb25zb2xlQWdlbnQgPSBXb3JrZXJDb25z
b2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAg
ICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gZGVidWdnZXJBZ2VudCA9IFdvcmtlckRl
YnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUu
Z2V0KCksIHdvcmtlckdsb2JhbFNjb3BlLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7
CisgICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+IGRlYnVnZ2VyQWdlbnQgPSBXb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCB3b3Jr
ZXJHbG9iYWxTY29wZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpOwogICAgIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnRQdHIgPSBkZWJ1Z2dlckFnZW50LmdldCgp
OwogICAgIG1fcnVudGltZUFnZW50LT5zZXRTY3JpcHREZWJ1Z1NlcnZlcigmZGVidWdnZXJBZ2Vu
dC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRlYnVnZ2VyQWdl
bnQucmVsZWFzZSgpKTsKIAotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JQcm9maWxlckFn
ZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQuZ2V0
KCksIHdvcmtlckdsb2JhbFNjb3BlLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci5nZXQoKSkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
Y29uc29sZUFnZW50LmdldCgpLCB3b3JrZXJHbG9iYWxTY29wZSwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpKSk7CiAjZW5kaWYKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgMCwgMCwg
bV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6V29ya2VySW5zcGVjdG9yLCAw
KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIDAsIDAsIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Oldvcmtlckluc3BlY3RvciwgMCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChjb25zb2xlQWdlbnQu
cmVsZWFzZSgpKTsKIAogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEhvc3QoKS0+aW5pdCgwCkBAIC0xMzgsNyArMTE4LDYgQEAgV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6fldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKQogdm9pZCBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogewogICAgIEFTU0VSVCghbV9mcm9udGVuZCk7
Ci0gICAgbV9zdGF0ZS0+dW5tdXRlKCk7CiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBhZG9wdFB0
cihuZXcgUGFnZUluc3BlY3RvclByb3h5KG1fd29ya2VyR2xvYmFsU2NvcGUpKTsKICAgICBtX2Zy
b250ZW5kID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kKG1fZnJvbnRlbmRDaGFubmVs
LmdldCgpKSk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyOjpjcmVhdGUobV9mcm9udGVuZENoYW5uZWwuZ2V0KCkpOwpAQCAtMTUyLDkgKzEzMSw2
IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQo
KTsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Ci0gICAgLy8gRGVzdHJveWluZyBh
Z2VudHMgd291bGQgY2hhbmdlIHRoZSBzdGF0ZSwgYnV0IHdlIGRvbid0IHdhbnQgdGhhdC4KLSAg
ICAvLyBQcmUtZGlzY29ubmVjdCBzdGF0ZSB3aWxsIGJlIHVzZWQgdG8gcmVzdG9yZSBpbnNwZWN0
b3IgYWdlbnRzLgotICAgIG1fc3RhdGUtPm11dGUoKTsKICAgICBtX2FnZW50cy5jbGVhckZyb250
ZW5kKCk7CiAgICAgbV9mcm9udGVuZC5jbGVhcigpOwogICAgIG1fZnJvbnRlbmRDaGFubmVsLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaAppbmRleCBiZWFhYzQ1Li4wMDg4ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTQ4LDgg
KzQ4LDYgQEAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWw7CiBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247CiBjbGFzcyBJbnNwZWN0
b3JSdW50aW1lQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKLWNsYXNzIEluc3BlY3RvclN0
YXRlQ2xpZW50OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFdvcmtlckdsb2Jh
bFNjb3BlOwogCkBAIC03Miw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRhdGlvbkZvcldvcmtlckdsb2JhbFNjb3BlKFdvcmtlckds
b2JhbFNjb3BlKik7CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSogbV93b3JrZXJHbG9iYWxTY29w
ZTsKLSAgICBPd25QdHI8SW5zcGVjdG9yU3RhdGVDbGllbnQ+IG1fc3RhdGVDbGllbnQ7Ci0gICAg
T3duUHRyPEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlPiBtX3N0YXRlOwogICAgIFJlZlB0cjxJbnN0
cnVtZW50aW5nQWdlbnRzPiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgT3duUHRyPEluamVj
dGVkU2NyaXB0TWFuYWdlcj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9y
UnVudGltZUFnZW50KiBtX3J1bnRpbWVBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggM2Q4NmFmOC4uYjY0MzQwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ0
LDggKzQ0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJSdW50aW1lQWdlbnQ6
OldvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFs
U2NvcGUpCi0gICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1dvcmtlclJ1bnRpbWVBZ2VudDo6V29ya2Vy
UnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJHbG9iYWxT
Y29wZSogd29ya2VyR2xvYmFsU2NvcGUpCisgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV93b3JrZXJH
bG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKICAgICAsIG1fcGF1c2VkKGZhbHNlKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmluZGV4IGIx
NjI3MzAuLmVmZTFhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmgKQEAgLTQyLDkgKzQyLDkgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CiAK
IGNsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlclJ1bnRpbWVBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNv
bXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIsIFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNzT3du
UHRyPFdvcmtlclJ1bnRpbWVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV29ya2VyUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRl
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBXb3JrZXJSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLCBjb250ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfldvcmtlclJ1bnRp
bWVBZ2VudCgpOwogCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKIAogcHJpdmF0ZToKLSAgICBXb3JrZXJSdW50aW1lQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiwgV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICBXb3JrZXJSdW50aW1lQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckds
b2JhbFNjb3BlKik7CiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZv
ckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAgICAg
dmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNv
bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNWMyNmM4Yy4uZDI4MDcwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAKQEAgLTg3LDcgKzg3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29u
c29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIHZpcnR1
YWwgdm9pZCBwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVDbG9zZWQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWQoKTsKQEAgLTIwNywxMSArMjA2
LDYgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3Io
Y29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQotCi12b2lkIFNoYXJl
ZFdvcmtlclByb3h5Ojp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19CiAjZW5kaWYKIAogdm9pZCBTaGFyZWRXb3JrZXJQ
cm94eTo6d29ya2VyR2xvYmFsU2NvcGVDbG9zZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCBhYWE2M2QwLi4yMDBjMDhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
NTA1LDExICs1MDUsNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRv
UGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5wb3N0VGFzayhQb3N0TWVzc2FnZVRvUGFnZUluc3BlY3RvclRhc2s6OmNy
ZWF0ZSh0aGlzLCBtZXNzYWdlKSk7CiB9Ci0KLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnVw
ZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KICNlbmRpZgogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpjb25maXJt
TWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggNjFhNTgzNi4u
YjZiNDlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuaApAQCAtNzIsNyArNzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBj
b2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSBPVkVSUklERTsKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNw
ZWN0b3IoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICNlbmRpZgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KSBPVkVSUklERTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9y
dFBlbmRpbmdBY3Rpdml0eShib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKaW5kZXggMGQ5MGRh
My4uMzg5ZTUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSZXBv
cnRpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUmVwb3J0aW5n
UHJveHkuaApAQCAtNDgsNyArNDgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGlu
dCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5zcGVj
dG9yKGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUluc3Bl
Y3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpID0gMDsKICNlbmRpZgogICAgICAgICAvLyBJ
bnZva2VkIHdoZW4gY2xvc2UoKSBpcyBpbnZva2VkIG9uIHRoZSB3b3JrZXIgY29udGV4dC4KICAg
ICAgICAgdmlydHVhbCB2b2lkIHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggNGFjOGMyMy4uMjBkN2FkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTAtMzAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgSW5zcGVjdG9yU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzU0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5j
cHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5o
OgorCiAyMDEzLTEwLTE3ICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQGJsYWNrYmVycnkuY29tPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbXByb3ZlIHRoZSB2aWV3cG9ydCBvZiBzb21lIHdlYnNp
dGVzIGxpa2UgbW9iaWxlc3lydXAuY29tLzIwMTMvMDgvMjUvbW90by14LXJldmlldy8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAzNzFmZDA4Li41NWIwZWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMDMsMTIg
KzEwMyw2IEBAIGJvb2wgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6c3VwcG9ydHNGcmFtZUlu
c3RydW1lbnRhdGlvbigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJikK
LXsKLSAgICAvLyBJZiB0aGlzIGlzIGltcGxlbWVudGVkLCB3ZSBzaG91bGQgb3ZlcnJpZGUgYW5k
IHJldHVybiB0cnVlIGluIEluc3BlY3RvclN0YXRlQ2xpZW50OjpzdXBwb3J0c0luc3BlY3RvclN0
YXRlVXBkYXRlcygpLgotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19OwotCiB2b2lkIEluc3BlY3Rv
ckNsaWVudEJsYWNrQmVycnk6OnBhaW50SW5zcGVjdG9yT3ZlcmxheShHcmFwaGljc0NvbnRleHQm
IGdjKQogewogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBt
X3dlYlBhZ2VQcml2YXRlLT5tX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGE4NDAxNDIuLmYyZjY1ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaApAQCAtNTksOCArNTksNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQsIGludCwgZmxv
YXQsIGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9u
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3Qg
U3RyaW5nJik7Ci0KIHByaXZhdGU6CiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZSogbV93ZWJQYWdlUHJpdmF0ZTsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IFNldHRpbmdzTWFwOwo=
</data>
<flag name="review"
          id="238364"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="238366"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215687</attachid>
            <date>2013-10-31 15:55:25 -0700</date>
            <delta_ts>2013-10-31 18:05:42 -0700</delta_ts>
            <desc>[PATCH] For Bots (required parts have now landed)</desc>
            <filename>rm-again.patch</filename>
            <type>text/plain</type>
            <size>134289</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDQ2MWViZi4uYTg3N2UwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE1NjgsNyArMTU2OCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9y
LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGI4ODU3OGEuLjlkZDMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDggQEAKKzIwMTMt
MTAtMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSZW1vdmUgSW5zcGVjdG9yU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzU0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
czoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6SW5zcGVjdG9y
QmFzZUFnZW50SW50ZXJmYWNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYXNlQWdlbnQ6Okluc3BlY3RvckJh
c2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDU1NBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6Okluc3BlY3RvckNhbnZhc0FnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9y
RE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQ6Okluc3BlY3RvckluZGV4ZWREQkFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluZGV4ZWREQkFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcklucHV0QWdlbnQ6Oklu
c3BlY3RvcklucHV0QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFn
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnB1dEFnZW50OjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvck1lbW9yeUFnZW50OjpJbnNwZWN0b3JNZW1vcnlBZ2VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFn
ZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVByb2ZpbGVyQWdlbnQ6OlBhZ2VQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJQcm9maWxlckFnZW50OjpXb3JrZXJQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmg6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlQ2xpZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yV29ya2VyQWdlbnQ6Okluc3BlY3RvcldvcmtlckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUFnZW50OjpQYWdlQ29u
c29sZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVn
Z2VyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6
UGFnZURlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAq
IGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25z
b2xlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRGVidWdn
ZXJBZ2VudDo6V29ya2VyRGVidWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50
aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtl
clJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVudGltZUFnZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyUHJveHk6OnBvc3RNZXNzYWdlVG9Q
YWdlSW5zcGVjdG9yKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRv
UGFnZUluc3BlY3Rvcik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5o
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaDoKKwogMjAxMy0xMC0z
MSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGludGVsLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIxNTgzNDgpOiBCcmVha3MgRGVidWcgYnVpbGQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDRlMmU4ZTkuLjljMjRkZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMzgxMyw5ICszODEzLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0YXRlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
VGV4dEVkaXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKaW5kZXggZmE4N2MwMC4uYzk5YWY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNzY1NywxNCArMTc2NTcsNiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JTdGF0ZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIj4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMDcwNiw4ICsyMDY5OCw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvclJlc291cmNlQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdGF0ZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0YXRlQ2xpZW50LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVldC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclRpbWVs
aW5lQWdlbnQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBjNjAyMWI0Li5iNmNmNjBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCkBAIC00OTA1LDkgKzQ5MDUsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNw
ZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdGF0ZS5jcHAiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0
b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3Bl
Y3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI0MjQsMTIgKzEyNDIxLDYgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JSdW50aW1lQWdl
bnQuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0YXRlLmgi
PgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdGF0ZUNsaWVudC5o
Ij4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVldC5o
Ij4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMjk3YzI0ZS4uZmY1MzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU5OSw4ICsxNTk5LDYgQEAKIAkJNEY2RkRENjUx
MzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2RkRENjMxMzQxREVERDAwMUY4RUUzIC8q
IEluc3BlY3RvclBhZ2VBZ2VudC5oICovOyB9OwogCQk0RjcwN0E5OTExRUY2Nzk0MDBBQ0RBNjkg
LyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3MDdBOTcxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAqLzsgfTsKIAkJNEY3MDdBOUExMUVGNjc5NDAwQUNE
QTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjcwN0E5ODExRUY2Nzk0MDBBQ0RBNjkgLyogSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9y
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEZBM0I5MDgxMjVDRDEyMTAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCAqLzsgfTsKLQkJ
NEZBM0I5MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkEzQjkwOTEyNUNEMTIyMDAzMDBC
QUQgLyogSW5zcGVjdG9yU3RhdGUuaCAqLzsgfTsKIAkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFG
IC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGQjM5MEFDMTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5j
cHAgKi87IH07CiAJCTRGRkMwMjJCMTY0M0I3MTAwMDRFMTYzOCAvKiBOb2RlUmFyZURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBQjQ4NjYx
NjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi87IH07CiAJCTRGRkMwMjJEMTY0
M0I3MjYwMDRFMTYzOCAvKiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVs
ZW1lbnRSYXJlRGF0YS5jcHAgKi87IH07CkBAIC01ODEzLDcgKzU4MTEsNiBAQAogCQlGM0Q0QzQ3
OTEyRTA3NjYzMDAzREExNTAgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENEM0NzcxMkUwNzY2MzAw
M0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCAqLzsgfTsKIAkJRjNGNUNGMTEx
MkVEODFBODAwODRDNTY5IC8qIEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRjVDRjEwMTJFRDgx
QTgwMDg0QzU2OSAvKiBJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJ
CUYzRjVDRjEzMTJFRDgxQjMwMDg0QzU2OSAvKiBJbnNwZWN0b3JEYXRhYmFzZUluc3RydW1lbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNG
NUNGMTIxMkVEODFCMzAwODRDNTY5IC8qIEluc3BlY3RvckRhdGFiYXNlSW5zdHJ1bWVudGF0aW9u
LmggKi87IH07Ci0JCUYzRjY4REE2MTQzQ0FDNUEwMEMyRjg4NyAvKiBJbnNwZWN0b3JTdGF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNG
NjhEQTUxNDNDQUM1QTAwQzJGODg3IC8qIEluc3BlY3RvclN0YXRlQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRFQUY0QUYxMEM3NDJC
MTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5
cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1D
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAw
QUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CkBAIC04MjE0LDggKzgyMTEsNiBAQAog
CQk0RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclBhZ2VBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0RjcwN0E5NzExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0RjcwN0E5ODExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBM0I5MDgx
MjVDRDEyMTAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNEZBM0I5MDkxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclN0YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQUI0ODY0MTY0M0E2NkQwMEY3MEMwNyAvKiBFbGVt
ZW50UmFyZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWxl
bWVudFJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZBQjQ4NjYx
NjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOb2RlUmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0RkIzOTBBQzE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdGVkSW1hZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI4NDUsNyArMTI4NDAsNiBAQAogCQlGM0Q0
QzQ3NzEyRTA3NjYzMDAzREExNTAgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzRjVDRjEwMTJFRDgxQTgwMDg0QzU2OSAv
KiBJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNGNUNGMTIxMkVEODFCMzAwODRDNTY5IC8qIEluc3BlY3Rv
ckRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluc3BlY3RvckRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUYzRjY4REE1MTQzQ0FDNUEwMEMyRjg4NyAvKiBJbnNwZWN0b3JTdGF0ZUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTdGF0ZUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRp
emVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQyODUsOSArMTQyNzksNiBAQAogCQkJCTgyQUIxNzcyMTI1QzgyNjcw
MEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggKi8sCiAJCQkJN0FBMzY1RUQxMkU3
MjY1NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi8sCiAJCQkJN0FGMTFB
NTkxMkU3Mjc0OTAwNjFGMjNDIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovLAotCQkJCTRG
QTNCOTA4MTI1Q0QxMjEwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgKi8sCi0JCQkJNEZB
M0I5MDkxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggKi8sCi0JCQkJRjNGNjhE
QTUxNDNDQUM1QTAwQzJGODg3IC8qIEluc3BlY3RvclN0YXRlQ2xpZW50LmggKi8sCiAJCQkJODJB
QjE3NkYxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwICovLAogCQkJ
CTgyQUIxNzcwMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0LmggKi8sCiAJ
CQkJODI4ODlCNEExM0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5j
cHAgKi8sCkBAIC0yMjk1NSw4ICsyMjk0Niw2IEBACiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMw
Mjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIx
Nzc2MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUYxMUE1QTEyRTcyNzQ5MDA2MUYyM0MgLyogSW5zcGVjdG9yUnVudGltZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5z
cGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzRjY4REE2MTQzQ0FDNUEwMEMyRjg4
NyAvKiBJbnNwZWN0b3JTdGF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3NzQx
MjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTgyODg5QjREMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MTU2LDcgKzI2MTQ1LDYgQEAK
IAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzNjVFRTEyRTcyNjU0
MDBEQ0EyNDIgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mjg4OUI0QzEzQzYyMzkyMDA5QTYxNTYgLyogSW5z
cGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mjc3RTRFMTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cAppbmRleCAwNjE2ZmVlLi5hNWMwMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2Vu
dHMuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKQEAgLTU4LDggKzU3LDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1JbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQoUGFnZSogcGFn
ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBZ2VudD4oIkluc3Bl
Y3RvciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yQWdlbnQ6Okluc3Bl
Y3RvckFnZW50KFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorICAg
IDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckFnZW50PigiSW5zcGVjdG9yIiwgaW5zdHJ1
bWVudGluZ0FnZW50cykKICAgICAsIG1faW5zcGVjdGVkUGFnZShwYWdlKQogICAgICwgbV9mcm9u
dGVuZCgwKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA1NWMz
NGE1Li4yOGUzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQu
aApAQCAtNTQsOSArNTQsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIElu
c3BlY3RvckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBZ2VudD4s
IHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6SW5zcGVjdG9yQ29tbWFuZEhhbmRs
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckFnZW50KTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JBZ2VudD4gY3JlYXRlKFBhZ2UqIHBhZ2Us
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSog
c3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQWdlbnQ+IGNyZWF0ZShQYWdl
KiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQWdlbnQocGFnZSwgaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEluc3BlY3RvckFnZW50KHBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgaW5zdHJ1
bWVudGluZ0FnZW50cykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50KCk7
CkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc3BlY3QoUGFzc1JlZlB0cjxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBvYmplY3RUb0luc3BlY3QsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBoaW50cyk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9y
QWdlbnQoUGFnZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOworICAgIEluc3BlY3RvckFnZW50KFBhZ2UqLCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAKICAgICBQYWdl
KiBtX2luc3BlY3RlZFBhZ2U7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCAz
ZWE5ZDhiLi4xNmI1ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBbGxJbk9uZS5jcHAKQEAgLTY1LDcgKzY1LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9m
aWxlckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCIKICNp
bmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIgotI2luY2x1ZGUgIkluc3BlY3RvclN0
YXRlLmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCA5NGM5MzQ0Li4yMzQ3OGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkluc3Bl
Y3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JQYWdlQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgpAQCAtNDUsOCArNDQsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFn
ZUFnZW50KiBwYWdlQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50PihBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uQ2FjaGUiKSwgaW5z
dHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICA6IElu
c3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KEFTQ0lJTGl0
ZXJhbCgiQXBwbGljYXRpb25DYWNoZSIpLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9w
YWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC5oCmluZGV4IGM2ZjIzOWQuLjZlZTNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTQyLDcg
KzQyLDYgQEAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7
CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JWYWx1ZTsKLWNsYXNz
IEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFBhZ2U7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwpAQCAtNTIsOSArNTEsOSBAQCB0eXBlZGVmIFN0cmlu
ZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Piwg
cHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpBcHBsaWNhdGlvbkNhY2hlQ29tbWFu
ZEhhbmRsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgcGFnZUFnZW50KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCkpOwogICAgIH0KICAgICB+SW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKQEAgLTczLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXBwbGljYXRp
b25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsK
ICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlv
bkNhY2hlPiBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgQXBwbGljYXRpb25D
YWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
Q2FjaGVJbmZvJik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4+IGJ1aWxkQXJy
YXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpSZXNvdXJjZUluZm9MaXN0Jik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXBwbGlj
YXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBidWlsZE9iamVjdEZvckFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJ
bmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFz
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQu
Y3BwCmluZGV4IDJhMTY4OGEuLjg1Yzc5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCkBAIC0zNCwxMyArMzQsMTAgQEAKIAogI2luY2x1
ZGUgIkluc3BlY3RvckJhc2VBZ2VudC5oIgogCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6Oklu
c3BlY3RvckJhc2VBZ2VudEludGVyZmFjZShjb25zdCBTdHJpbmcmIG5hbWUsIEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBp
bnNwZWN0b3JTdGF0ZSkKK0luc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZTo6SW5zcGVjdG9yQmFz
ZUFnZW50SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgbmFtZSwgSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cykKICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVt
ZW50aW5nQWdlbnRzKQotICAgICwgbV9zdGF0ZShpbnNwZWN0b3JTdGF0ZS0+Y3JlYXRlQWdlbnRT
dGF0ZShuYW1lKSkKICAgICAsIG1fbmFtZShuYW1lKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oCmluZGV4IGQ1MGZmOTEuLjc3ZTk4ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50LmgKQEAgLTQw
LDEzICs0MCwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDsKLWNsYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOwotY2xhc3MgSW5zcGVjdG9yU3Rh
dGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogCiBjbGFzcyBJbnNwZWN0b3JCYXNlQWdl
bnRJbnRlcmZhY2UgewogcHVibGljOgotICAgIEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZShj
b25zdCBTdHJpbmcmLCBJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqKTsKKyAgICBJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2UoY29uc3QgU3RyaW5nJiwgSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckJhc2VBZ2VudEludGVy
ZmFjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5k
KikgeyB9CkBAIC01OCw3ICs1Niw2IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEluc3Ry
dW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKLSAgICBJbnNwZWN0b3JTdGF0
ZSogbV9zdGF0ZTsKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9uYW1lOwpAQCAtODgsOCArODUs
OCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50
KGNvbnN0IFN0cmluZyYgbmFtZSwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlKQotICAgICAgICA6
IEluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZShuYW1lLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnNwZWN0b3JTdGF0ZSkKKyAgICBJbnNwZWN0b3JCYXNlQWdlbnQoY29uc3QgU3RyaW5nJiBuYW1l
LCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorICAgICAgICA6IElu
c3BlY3RvckJhc2VBZ2VudEludGVyZmFjZShuYW1lLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAg
IHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKaW5kZXggNWUyYThjZC4uMmJlYWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVk
ZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySGlzdG9yeS5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yVHlwZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JW
YWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCkBAIC02MTYsOCArNjE1
LDggQEAgQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NBZ2VudDo6YXNDU1NTdHlsZVJ1bGUoQ1NT
UnVsZSogcnVsZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSk7
CiB9CiAKLUluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3Rh
dGUsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JDU1NBZ2VudD4oIkNTUyIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQor
SW5zcGVjdG9yQ1NTQWdlbnQ6Okluc3BlY3RvckNTU0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKKyAgICA6
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDU1NBZ2VudD4oIkNTUyIsIGluc3RydW1lbnRp
bmdBZ2VudHMpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50
KQogICAgICwgbV9sYXN0U3R5bGVTaGVldElkKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IGEyYjVmZmUuLjUyOWFkMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC04OSw5ICs4OSw5IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKENTU1J1
bGUqKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckNTU0FnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5zcGVjdG9yQ1NTQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckNTU0FnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlLCBkb21BZ2VudCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEluc3BlY3RvckNTU0FnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGRvbUFnZW50KSk7CiAg
ICAgfQogICAgIH5JbnNwZWN0b3JDU1NBZ2VudCgpOwogCkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJp
dmF0ZToKICAgICBjbGFzcyBTZXRSdWxlU2VsZWN0b3JBY3Rpb247CiAgICAgY2xhc3MgQWRkUnVs
ZUFjdGlvbjsKIAotICAgIEluc3BlY3RvckNTU0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50Kik7CisgICAgSW5zcGVj
dG9yQ1NTQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckRPTUFnZW50Kik7CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldD4+
IElkVG9JbnNwZWN0b3JTdHlsZVNoZWV0OwogICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNo
ZWV0KiwgUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXQ+PiBDU1NTdHlsZVNoZWV0VG9JbnNwZWN0
b3JTdHlsZVNoZWV0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
YW52YXNBZ2VudC5jcHAKaW5kZXggMTVkZjkxNC4uNTg4MWMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC00Myw3ICs0Myw2
IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKLSNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNp
bmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgpAQCAtNjIsOCArNjEs
OCBAQCB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6RnJhbWVJZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1JbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFz
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ2FudmFzQWdlbnQ+KCJDYW52YXMiLCBpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKK0luc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdl
QWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ2FudmFzQWdlbnQ+KCJD
YW52YXMiLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50
KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQog
ICAgICwgbV9mcm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaAppbmRleCBhZTMwMzFiLi43ZTk0NTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtNDgsNyArNDgsNiBA
QCBjbGFzcyBGcmFtZTsKIGNsYXNzIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOwogY2xhc3Mg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwotY2xhc3Mg
SW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgU2NyaXB0
T2JqZWN0OwogCkBAIC01Niw5ICs1NSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwog
CiBjbGFzcyBJbnNwZWN0b3JDYW52YXNBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8
SW5zcGVjdG9yQ2FudmFzQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6
OkNhbnZhc0NvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnNwZWN0b3JDYW52YXNBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFn
ZUFnZW50KiBwYWdlQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckNhbnZhc0FnZW50PiBjcmVh
dGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFn
ZUFnZW50KiBwYWdlQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDYW52
YXNBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgcGFnZUFnZW50LCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDYW52
YXNBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGluamVjdGVkU2NyaXB0TWFu
YWdlcikpOwogICAgIH0KICAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIApAQCAtODksNyAr
ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldFJlc291cmNlU3RhdGUoRXJyb3JT
dHJpbmcqLCBjb25zdCBUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZ0lkJiwgY29uc3QgVHlw
ZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VJZCYsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFz
OjpSZXNvdXJjZVN0YXRlPiYpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckNhbnZhc0FnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3Rv
clBhZ2VBZ2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvckNhbnZh
c0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKIAogICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIGluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlKEVycm9yU3RyaW5nKiwgSlNDOjpFeGVjU3RhdGUqKTsKICAg
ICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZShF
cnJvclN0cmluZyosIGNvbnN0IFNjcmlwdE9iamVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IDU1MDQ3MDYuLjcwYTE5YzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTIxLDEzICsyMSwxMiBAQAog
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIEluc3BlY3RvckNsaWVudF9oCiAjZGVmaW5l
IEluc3BlY3RvckNsaWVudF9oCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZUNsaWVudC5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMzksNyArMzgsNyBAQCBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWw7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIEluc3BlY3Rv
ckNsaWVudCA6IHB1YmxpYyBJbnNwZWN0b3JTdGF0ZUNsaWVudCB7CitjbGFzcyBJbnNwZWN0b3JD
bGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvckNsaWVudCgpIHsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3Bw
CmluZGV4IDM5MDJmZTYuLjY3ZDAyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JT
dGF0ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
c3BvbnNlLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCkBAIC01OCw4ICs1Nyw4IEBA
IHN0YXRpYyBjb25zdCBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9IDEwMDsKIAogaW50
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c19lbmFibGVkQWdlbnRDb3VudCA9IDA7CiAKLUluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50PigiQ29uc29sZSIsIGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25z
b2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgOiBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50PigiQ29uc29sZSIsIGluc3RydW1lbnRpbmdB
Z2VudHMpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX3ByZXZpb3VzTWVzc2FnZSgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4
IGZmYzBjOTExMC4uMmE2ZDA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNDMsNyArNDMsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDb25zb2xlTWVzc2FnZTsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kOwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbmplY3RlZFNjcmlw
dE1hbmFnZXI7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgUmVzb3VyY2VFcnJv
cjsKQEAgLTU3LDcgKzU2LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ckNvbnNvbGVBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Q29uc29s
ZUNvbW1hbmRIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JDb25z
b2xlQWdlbnQpOwogcHVibGljOgotICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKKyAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
amVjdGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckNvbnNvbGVBZ2Vu
dCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDQ0NmNh
YzUuLmVlZjJkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdl
QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcldv
cmtlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgpAQCAtODAsODgg
Kzc5LDg3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGll
bnQpCiAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoSW5zdHJ1bWVudGluZ0FnZW50czo6Y3Jl
YXRlKCkpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihJbmplY3RlZFNjcmlwdE1hbmFn
ZXI6OmNyZWF0ZUZvclBhZ2UoKSkKLSAgICAsIG1fc3RhdGUoYWRvcHRQdHIobmV3IEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlKGluc3BlY3RvckNsaWVudCkpKQogICAgICwgbV9vdmVybGF5KEluc3Bl
Y3Rvck92ZXJsYXk6OmNyZWF0ZShwYWdlLCBpbnNwZWN0b3JDbGllbnQpKQogICAgICwgbV9wYWdl
KHBhZ2UpCiAgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCiAgICAgLCBt
X2lzVW5kZXJUZXN0KGZhbHNlKQogewotICAgIE93blB0cjxJbnNwZWN0b3JBZ2VudD4gaW5zcGVj
dG9yQWdlbnRQdHIoSW5zcGVjdG9yQWdlbnQ6OmNyZWF0ZShwYWdlLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
KSk7CisgICAgT3duUHRyPEluc3BlY3RvckFnZW50PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0
b3JBZ2VudDo6Y3JlYXRlKHBhZ2UsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKICAgICBtX2luc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGluc3BlY3RvckFnZW50UHRy
LnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBwYWdlQWdlbnRQ
dHIoSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBwYWdlLCBtX2luc3BlY3RvckFnZW50LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBtX292ZXJsYXkuZ2V0KCkpKTsKKyAgICBP
d25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBwYWdlQWdlbnRQdHIoSW5zcGVjdG9yUGFnZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlLCBtX2luc3BlY3RvckFn
ZW50LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBtX292
ZXJsYXkuZ2V0KCkpKTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IHBhZ2VB
Z2VudFB0ci5nZXQoKTsKICAgICBtX3BhZ2VBZ2VudCA9IHBhZ2VBZ2VudFB0ci5nZXQoKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQocGFnZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8
SW5zcGVjdG9yRE9NQWdlbnQ+IGRvbUFnZW50UHRyKEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0KCksIGluc3BlY3RvckNs
aWVudCkpOworICAgIE93blB0cjxJbnNwZWN0b3JET01BZ2VudD4gZG9tQWdlbnRQdHIoSW5zcGVj
dG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2Vu
dCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fb3ZlcmxheS5nZXQoKSwgaW5zcGVj
dG9yQ2xpZW50KSk7CiAgICAgbV9kb21BZ2VudCA9IGRvbUFnZW50UHRyLmdldCgpOwogICAgIG1f
YWdlbnRzLmFwcGVuZChkb21BZ2VudFB0ci5yZWxlYXNlKCkpOwogCi0gICAgbV9hZ2VudHMuYXBw
ZW5kKEluc3BlY3RvckNTU0FnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCBtX2RvbUFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3Bl
Y3RvckNTU0FnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2RvbUFn
ZW50KSk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIE93blB0cjxJbnNwZWN0b3JE
YXRhYmFzZUFnZW50PiBkYXRhYmFzZUFnZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBP
d25QdHI8SW5zcGVjdG9yRGF0YWJhc2VBZ2VudD4gZGF0YWJhc2VBZ2VudFB0cihJbnNwZWN0b3JE
YXRhYmFzZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKSk7CiAgICAg
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogZGF0YWJhc2VBZ2VudCA9IGRhdGFiYXNlQWdlbnRQdHIu
Z2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRhdGFiYXNlQWdlbnRQdHIucmVsZWFzZSgpKTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgbV9hZ2VudHMuYXBw
ZW5kKEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFn
ZUFnZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5nZXQoKSwgcGFnZUFnZW50KSk7CiAjZW5kaWYKIAotICAgIE93blB0cjxJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LCBtX3N0YXRl
LmdldCgpKSk7CisgICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFn
ZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQpKTsKICAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGRvbVN0b3JhZ2VBZ2VudFB0ci5nZXQoKTsKICAgICBtX2Fn
ZW50cy5hcHBlbmQoZG9tU3RvcmFnZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8
SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IG1lbW9yeUFnZW50UHRyKEluc3BlY3Rvck1lbW9yeUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7Cisg
ICAgT3duUHRyPEluc3BlY3Rvck1lbW9yeUFnZW50PiBtZW1vcnlBZ2VudFB0cihJbnNwZWN0b3JN
ZW1vcnlBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSkpOwogICAgIG1f
bWVtb3J5QWdlbnQgPSBtZW1vcnlBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQo
bWVtb3J5QWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdl
QWdlbnQsIG1fbWVtb3J5QWdlbnQsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OlBhZ2VJbnNwZWN0b3IsCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9t
ZW1vcnlBZ2VudCwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3RvciwKICAgICAg
ICBpbnNwZWN0b3JDbGllbnQpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpLCBwYWdlQWdlbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBw
YWdlQWdlbnQpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiByZXNvdXJj
ZUFnZW50UHRyKEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgaW5zcGVjdG9yQ2xpZW50LCBtX3N0YXRlLmdldCgpKSk7
CisgICAgT3duUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IHJlc291cmNlQWdlbnRQdHIoSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
cGFnZUFnZW50LCBpbnNwZWN0b3JDbGllbnQpKTsKICAgICBtX3Jlc291cmNlQWdlbnQgPSByZXNv
dXJjZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChyZXNvdXJjZUFnZW50UHRy
LnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUnVudGltZUFnZW50PiBydW50aW1l
QWdlbnRQdHIoUGFnZVJ1bnRpbWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2Us
IHBhZ2VBZ2VudCkpOworICAgIE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IHJ1bnRpbWVB
Z2VudFB0cihQYWdlUnVudGltZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgcGFnZUFnZW50KSk7CiAg
ICAgSW5zcGVjdG9yUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnRQdHIu
Z2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHJ1bnRpbWVBZ2VudFB0ci5yZWxlYXNlKCkpOwog
Ci0gICAgT3duUHRyPEluc3BlY3RvckNvbnNvbGVBZ2VudD4gY29uc29sZUFnZW50UHRyKFBhZ2VD
b25zb2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5zcGVj
dG9yQWdlbnQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBt
X2RvbUFnZW50KSk7CisgICAgT3duUHRyPEluc3BlY3RvckNvbnNvbGVBZ2VudD4gY29uc29sZUFn
ZW50UHRyKFBhZ2VDb25zb2xlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1faW5zcGVjdG9yQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2Rv
bUFnZW50KSk7CiAgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBjb25z
b2xlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGNvbnNvbGVBZ2VudFB0ci5y
ZWxlYXNlKCkpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgT3duUHRy
PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+IGRlYnVnZ2VyQWdlbnRQdHIoUGFnZURlYnVnZ2VyQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHBh
Z2VBZ2VudCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fb3ZlcmxheS5nZXQoKSkp
OworICAgIE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBkZWJ1Z2dlckFnZW50UHRyKFBh
Z2VEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdl
QWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0KCkpKTsK
ICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdl
bnRzLmFwcGVuZChkZWJ1Z2dlckFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gZG9tRGVidWdnZXJBZ2VudFB0cihJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpLCBtX2RvbUFnZW50LCBtX2RlYnVnZ2VyQWdlbnQsIG1faW5zcGVjdG9yQWdlbnQpKTsK
KyAgICBPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gZG9tRGVidWdnZXJBZ2VudFB0
cihJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX2RvbUFnZW50LCBtX2RlYnVnZ2VyQWdlbnQsIG1faW5zcGVjdG9yQWdlbnQpKTsK
ICAgICBtX2RvbURlYnVnZ2VyQWdlbnQgPSBkb21EZWJ1Z2dlckFnZW50UHRyLmdldCgpOwogICAg
IG1fYWdlbnRzLmFwcGVuZChkb21EZWJ1Z2dlckFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBP
d25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQ
cm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xl
QWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgp
KSk7CisgICAgT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IHByb2ZpbGVyQWdlbnRQdHIo
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgY29uc29sZUFnZW50LCBwYWdlLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwog
ICAgIG1fcHJvZmlsZXJBZ2VudCA9IHByb2ZpbGVyQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKHByb2ZpbGVyQWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIG1fYWdlbnRzLmFw
cGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkp
KTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpKSk7CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgbV9hZ2VudHMuYXBw
ZW5kKEluc3BlY3RvcldvcmtlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rvcldvcmtl
ckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKSk7CiAjZW5kaWYKIAot
ICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50LCBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JDYW52
YXNBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBt
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwogCi0gICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvcklucHV0QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIHBhZ2UpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySW5wdXRB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZSkpOwogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JMYXllclRyZWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSkpOwogI2VuZGlmCiAKICAgICBB
U1NFUlRfQVJHKGluc3BlY3RvckNsaWVudCwgaW5zcGVjdG9yQ2xpZW50KTsKQEAgLTIyNyw4ICsy
MjUsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbgogICAgIEFTU0VSVChmcm9udGVuZENoYW5u
ZWwpOwogCiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JG
cm9udGVuZChmcm9udGVuZENoYW5uZWwpKTsKLSAgICAvLyBXZSBjYW4gcmVjb25uZWN0IHRvIGV4
aXN0aW5nIGZyb250LWVuZCAtPiB1bm11dGUgc3RhdGUuCi0gICAgbV9zdGF0ZS0+dW5tdXRlKCk7
CiAKICAgICBtX2FnZW50cy5zZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250ZW5kLmdldCgpKTsK
IApAQCAtMjQ4LDEwICsyNDQsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCgpCiAgICAgbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9u
dGVuZCgpOwogICAgIG1faW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKIAotICAg
IC8vIERlc3Ryb3lpbmcgYWdlbnRzIHdvdWxkIGNoYW5nZSB0aGUgc3RhdGUsIGJ1dCB3ZSBkb24n
dCB3YW50IHRoYXQuCi0gICAgLy8gUHJlLWRpc2Nvbm5lY3Qgc3RhdGUgd2lsbCBiZSB1c2VkIHRv
IHJlc3RvcmUgaW5zcGVjdG9yIGFnZW50cy4KLSAgICBtX3N0YXRlLT5tdXRlKCk7Ci0KICAgICBt
X2FnZW50cy5jbGVhckZyb250ZW5kKCk7CiAKICAgICBtX2luc3BlY3RvckZyb250ZW5kLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApp
bmRleCAwODRkZDQ1Li44YzI2NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTYyLDcgKzYyLDYgQEAgY2xhc3MgSW5zcGVjdG9yT3Zl
cmxheTsKIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yU3Rh
dGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFBh
Z2U7CkBAIC0xMzUsNyArMTM0LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJbnN0cnVtZW50
aW5nQWdlbnRzPiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgT3duUHRyPEluamVjdGVkU2Ny
aXB0TWFuYWdlcj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci0gICAgT3duUHRyPEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlPiBtX3N0YXRlOwogICAgIE93blB0cjxJbnNwZWN0b3JPdmVybGF5PiBt
X292ZXJsYXk7CiAKICAgICBJbnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDE2MGZm
NTEuLjczNmU0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtNzMsNyArNzMsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckhpc3Rvcnku
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVt
ZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkpTRXZlbnRM
aXN0ZW5lci5oIgpAQCAtMjExLDggKzIxMCw4IEBAIFN0cmluZyBJbnNwZWN0b3JET01BZ2VudDo6
dG9FcnJvclN0cmluZyhjb25zdCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gIiI7CiB9
CiAKLUluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSwg
SW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yRE9NQWdlbnQ+KCJET00iLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkK
K0luc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJs
YXkqIG92ZXJsYXksIEluc3BlY3RvckNsaWVudCogY2xpZW50KQorICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvckRPTUFnZW50PigiRE9NIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAg
ICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fb3ZlcmxheShvdmVybGF5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBjODczMDU4Li4z
ZjgzM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aApAQCAtNjQsNyArNjQsNiBAQCBjbGFzcyBJbnNwZWN0b3JPdmVybGF5OwogY2xhc3MgSW5zcGVj
dG9yUGFnZUFnZW50OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEhUTUxFbGVtZW50Owot
Y2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3Mg
TmFtZU5vZGVNYXA7CiBjbGFzcyBOb2RlOwpAQCAtMTA0LDkgKzEwMyw5IEBAIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCopID0gMDsKICAgICB9
OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3Zlcmxh
eSogb3ZlcmxheSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJs
YXksIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JET01BZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQs
IGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIG92ZXJsYXksIGNsaWVudCkp
OworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTUFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBvdmVybGF5LCBj
bGllbnQpKTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RyaW5nIHRvRXJyb3JTdHJpbmcoY29uc3Qg
RXhjZXB0aW9uQ29kZSYpOwpAQCAtMjExLDcgKzIxMCw3IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CiAKIHByaXZh
dGU6Ci0gICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clBhZ2VBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiwgSW5zcGVjdG9yT3ZlcmxheSosIEluc3BlY3RvckNsaWVudCopOworICAgIEluc3BlY3Rv
ckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JPdmVybGF5KiwgSW5zcGVjdG9yQ2xpZW50Kik7
CiAKICAgICB2b2lkIHNldFNlYXJjaGluZ0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBib29sIGVuYWJs
ZWQsIEluc3BlY3Rvck9iamVjdCogaGlnaGxpZ2h0Q29uZmlnKTsKICAgICBQYXNzT3duUHRyPEhp
Z2hsaWdodENvbmZpZz4gaGlnaGxpZ2h0Q29uZmlnRnJvbUluc3BlY3Rvck9iamVjdChFcnJvclN0
cmluZyosIEluc3BlY3Rvck9iamVjdCogaGlnaGxpZ2h0SW5zcGVjdG9yT2JqZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcAppbmRleCA2ODBiNGNiLi44OWI4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00MCw3ICs0MCw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0j
aW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIK
ICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC02NCwxMyArNjMsMTMgQEAgY29uc3QgaW50IGRvbUJyZWFrcG9pbnREZXJp
dmVkVHlwZVNoaWZ0ID0gMTY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjcmVh
dGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQs
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQsIEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgZG9tQWdlbnQsIGRlYnVnZ2VyQWdl
bnQsIGluc3BlY3RvckFnZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGRvbUFnZW50LCBkZWJ1Z2dlckFn
ZW50LCBpbnNwZWN0b3JBZ2VudCkpOwogfQogCi1JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5zcGVj
dG9yRE9NQWdlbnQqIGRvbUFnZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFn
ZW50LCBJbnNwZWN0b3JBZ2VudCopCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudD4oIkRPTURlYnVnZ2VyIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5z
cGVjdG9yU3RhdGUpCitJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJB
Z2VudCwgSW5zcGVjdG9yQWdlbnQqKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQ+KCJET01EZWJ1Z2dlciIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAg
ICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQogICAgICwgbV9kZWJ1Z2dlckFnZW50KGRlYnVnZ2Vy
QWdlbnQpCiAgICAgLCBtX2V2ZW50TGlzdGVuZXJCcmVha3BvaW50cyhJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50LmgKaW5kZXggNWE4MjcyNy4uNWNjYWEwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC00
OCw3ICs0OCw2IEBAIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yT2Jq
ZWN0OwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwog
Y2xhc3MgTm9kZTsKIApAQCAtNTcsNyArNTYsNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmlu
ZzsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6TGlzdGVuZXIsIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6RE9N
RGVidWdnZXJDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNw
ZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCosIEluc3BlY3RvckFnZW50Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JET01BZ2VudCosIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOwog
CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpOwogCkBAIC04NSw3ICs4
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZEFnZW50KCk7CiAKIHByaXZh
dGU6Ci0gICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCosIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOworICAgIEluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudCosIEluc3BlY3RvckFnZW50Kik7CiAKICAgICAvLyBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpMaXN0ZW5lciBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgZGVi
dWdnZXJXYXNFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4IDM2YTVjMTIuLjU5YTk4MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgotI2lu
Y2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAj
aW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTU2
LDggKzU1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudD4oIkRPTVN0b3JhZ2UiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0
ZSkKK0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50KQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudD4oIkRPTVN0b3JhZ2UiLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9wYWdl
QWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9lbmFibGVkKGZh
bHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oCmluZGV4IGMwMzZjYzQuLmE5YTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKQEAgLTQxLDcgKzQxLDYg
QEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckZy
b250ZW5kOwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7
CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwpAQCAtNTIsOSArNTEsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAog
Y2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXI6OkRPTVN0b3JhZ2VDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQs
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFn
ZUFnZW50KSk7CiAgICAgfQogICAgIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKTsKIApAQCAt
NzcsNyArNzYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAKLSAgICBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKik7CisgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKIAogICAgIFBhc3NSZWZQdHI8
U3RvcmFnZUFyZWE+IGZpbmRTdG9yYWdlQXJlYShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiwgRnJhbWUqJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAppbmRleCBiYjZhZWU4Li5mNDI4OGE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
QWdlbnQuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKKwog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2Vu
dHMuaCIKICNpbmNsdWRlICJTUUxFcnJvci5oIgpAQCAtMjEwLDggKzIxMCw4IEBAIHZvaWQgSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMoKQogICAgIG1fcmVzb3VyY2VzLmNs
ZWFyKCk7CiB9CiAKLUluc3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIHN0YXRlKQotICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRh
dGFiYXNlQWdlbnQ+KCJEYXRhYmFzZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ+KCJEYXRhYmFzZSIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAg
ICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggYjE0Y2M4Yi4uNThhMWQ2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5o
CkBAIC00MywxNiArNDMsMTUgQEAgY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBJbnNwZWN0b3JBcnJh
eTsKIGNsYXNzIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDsKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsK
IAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+
LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkRhdGFiYXNlQ29tbWFuZEhhbmRs
ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRhdGFiYXNlQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRh
dGFiYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMp
KTsKICAgICB9CiAgICAgfkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKTsKIApAQCAtNzIsNyArNzEs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShQYXNzUmVmUHRyPERhdGFi
YXNlPiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKTsKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKKyAg
ICBleHBsaWNpdCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqKTsK
IAogICAgIERhdGFiYXNlKiBkYXRhYmFzZUZvcklkKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCk7
CiAgICAgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZSogZmluZEJ5RmlsZU5hbWUoY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZGY1MzgzZS4uZDNhYjNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAt
MzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50Lmgi
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMu
aCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4
cHJlc3Npb24uaCIKQEAgLTU1LDggKzU0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25z
dCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9ICJi
YWNrdHJhY2UiOwogCi1JbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNv
bXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRGVi
dWdnZXJBZ2VudD4oIkRlYnVnZ2VyIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3Rh
dGUpCitJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ+KCJEZWJ1Z2dlciIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAg
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBt
X2Zyb250ZW5kKDApCiAgICAgLCBtX3BhdXNlZFNjcmlwdFN0YXRlKDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAxNmJmNGU2
Li41MmM4MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmgKQEAgLTUyLDcgKzUyLDYgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNs
YXNzIEluc3BlY3Rvck9iamVjdDsKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zcGVj
dG9yVmFsdWU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgU2NyaXB0RGVidWdT
ZXJ2ZXI7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2NyaXB0RGVi
dWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50LmNwcAppbmRleCBmMWM1Zjg5Li40YjJjMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTM2
LDcgKzM2LDYgQEAKIAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRTY3JpcHRIb3N0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZXIuaCIKIApA
QCAtNDQsMTMgKzQzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZUhlYXAgPSAib3JnLndlYmtpdC5wcm9m
aWxlcy51c2VyLWluaXRpYXRlZCI7CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ+IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
K1Bhc3NPd25QdHI8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50
aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CisgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50
aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKIH0KIAotSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0
b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0g
ICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+KCJIZWFw
UHJvZmlsZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKK0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudD4oIkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAg
LCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVt
YmVyKDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5oCmluZGV4IDA1Zjg0NWEuLjkzNWU4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCkBAIC01
Miw3ICs1Miw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50PiwgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpIZWFw
UHJvZmlsZXJDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVk
U2NyaXB0TWFuYWdlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVkU2NyaXB0TWFu
YWdlciopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJpbmcqKTsKQEAgLTc0LDcgKzc0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElk
KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+PiBJZFRvSGVhcFNuYXBzaG90TWFwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAppbmRleCA0ZjU4OTZjLi40Zjg3OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTYxLDcgKzYxLDYgQEAK
ICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
U3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVt
ZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTU1Nyw4ICs1
NTYsOCBAQCBwdWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlCiAKLUluc3BlY3RvckluZGV4ZWREQkFn
ZW50OjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dD4oIkluZGV4ZWREQiIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQ6Okluc3BlY3RvckluZGV4ZWREQkFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JJbmRleGVkREJBZ2VudD4oIkluZGV4ZWREQiIsIGluc3RydW1l
bnRpbmdBZ2VudHMpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmluZGV4IDRlNTQ0
M2EuLjhmOWE4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5oCkBAIC00Niw5ICs0Niw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9y
U3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OkluZGV4ZWREQkNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JJbmRleGVkREJBZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckluZGV4ZWREQkFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIs
IEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBz
dGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBwYWdlQWdlbnQpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIHBhZ2VBZ2VudCkpOwogICAgIH0KICAgICB+SW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQoKTsKIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGlu
X3NlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGluX2RhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBpbl9vYmplY3RTdG9yZU5hbWUsIFBhc3NSZWZQdHI8Q2xlYXJPYmplY3RTdG9yZUNhbGxi
YWNrPik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvclBh
Z2VBZ2VudCopOwogCiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0
TWFuYWdlcjsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCmluZGV4IDgwZjkz
MDYuLjMxNDJlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnB1dEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5wdXRBZ2VudC5jcHAKQEAgLTUxLDggKzUxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1JbnNwZWN0b3JJbnB1dEFnZW50OjpJbnNwZWN0b3JJbnB1dEFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNw
ZWN0b3JTdGF0ZSwgUGFnZSogcGFnZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0
b3JJbnB1dEFnZW50PigiSW5wdXQiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0
ZSkKK0luc3BlY3RvcklucHV0QWdlbnQ6Okluc3BlY3RvcklucHV0QWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSkKKyAgICA6IEluc3BlY3Rv
ckJhc2VBZ2VudDxJbnNwZWN0b3JJbnB1dEFnZW50PigiSW5wdXQiLCBpbnN0cnVtZW50aW5nQWdl
bnRzKQogICAgICwgbV9wYWdlKHBhZ2UpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAppbmRleCAzMjZiZTc2Li5hODVhZDNhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgUGFnZTsKIAogdHlwZWRlZiBT
dHJpbmcgRXJyb3JTdHJpbmc7CkBAIC00OCw5ICs0Nyw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9y
U3RyaW5nOwogY2xhc3MgSW5zcGVjdG9ySW5wdXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9ySW5wdXRBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6SW5wdXRDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5z
cGVjdG9ySW5wdXRBZ2VudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9ySW5wdXRBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgUGFnZSogcGFn
ZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JJbnB1dEFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySW5wdXRBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgcGFnZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEluc3BlY3RvcklucHV0QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZSkp
OwogICAgIH0KIAogICAgIH5JbnNwZWN0b3JJbnB1dEFnZW50KCk7CkBAIC02MCw3ICs1OSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiB0eXBlLCBpbnQgeCwgaW50IHksIGNvbnN0IGludCogbW9kaWZpZXJz
LCBjb25zdCBkb3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGlu
dCogY2xpY2tDb3VudCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9ySW5wdXRBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBQYWdlKik7CisgICAg
SW5zcGVjdG9ySW5wdXRBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSopOwogCiAgICAg
UGFnZSogbV9wYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IDZlY2M0NjAuLjlmNTJjNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNw
cApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIklkZW50aWZpZXJzRmFjdG9yeS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQu
aCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdB
Z2VudHMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5o
IgpAQCAtNDksOCArNDgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3Rvckxh
eWVyVHJlZUFnZW50OjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCi0g
ICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KCJMYXllclRy
ZWUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKK0luc3BlY3RvckxheWVyVHJlZUFnZW50
OjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckxheWVyVHJlZUFn
ZW50PigiTGF5ZXJUcmVlIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fZnJvbnRlbmQo
MCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVy
VHJlZUFnZW50LmgKaW5kZXggZWMyNjc0Yi4uNTNiYTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTQyLDE2ICs0Miwx
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xh
c3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAK
IGNsYXNzIEluc3BlY3RvckxheWVyVHJlZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6TGF5ZXJUcmVlQ29tbWFuZEhhbmRsZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
T3duUHRyPEluc3BlY3RvckxheWVyVHJlZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckxheWVyVHJlZUFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgc3RhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JMYXll
clRyZWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzKSk7CiAgICAgfQogICAgIH5JbnNwZWN0b3JM
YXllclRyZWVBZ2VudCgpOwogCkBAIC03MCw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIGxheWVySWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpDb21wb3NpdGluZ1Jl
YXNvbnM+Jik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CisgICAgSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogCiAgICAgLy8gUmVuZGVyTGF5
ZXItcmVsYXRlZCBtZXRob2RzLgogICAgIFN0cmluZyBiaW5kKGNvbnN0IFJlbmRlckxheWVyKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNw
cAppbmRleCA3YmMwZTdiLi4yNjMyYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRz
LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKQEAgLTc1LDE1ICs3NCwxNSBAQCB2b2lkIElu
c3BlY3Rvck1lbW9yeUFnZW50OjpnZXRET01Db3VudGVycyhFcnJvclN0cmluZyosIGludCogZG9j
dW1lbnRzLCBpbnQqIG5vZAogICAgICpqc0V2ZW50TGlzdGVuZXJzID0gVGhyZWFkTG9jYWxJbnNw
ZWN0b3JDb3VudGVyczo6Y3VycmVudCgpLmNvdW50ZXJWYWx1ZShUaHJlYWRMb2NhbEluc3BlY3Rv
ckNvdW50ZXJzOjpKU0V2ZW50TGlzdGVuZXJDb3VudGVyKTsKIH0KIAotSW5zcGVjdG9yTWVtb3J5
QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JNZW1vcnlBZ2VudD4oIk1lbW9yeSIsIGluc3RydW1lbnRp
bmdBZ2VudHMsIHN0YXRlKQorSW5zcGVjdG9yTWVtb3J5QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+KCJNZW1vcnkiLCBpbnN0cnVtZW50
aW5nQWdlbnRzKQogICAgICwgbV9mcm9udGVuZCgwKQogewogfQogCi1QYXNzT3duUHRyPEluc3Bl
Y3Rvck1lbW9yeUFnZW50PiBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBz
dGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+IEluc3BlY3Rvck1lbW9yeUFn
ZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rvck1lbW9yeUFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIHN0YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JNZW1v
cnlBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaAppbmRleCBlODg0NzkwLi5lNzdiZjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQu
aApAQCAtNDEsNyArNDEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwpAQCAtNTEsNyArNTAs
NyBAQCBjbGFzcyBJbnNwZWN0b3JNZW1vcnlBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+LCBwdQogcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9y
PE93blB0cjxJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U+PiBJbnNwZWN0b3JBZ2VudHM7CiAK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JNZW1vcnlBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiBzdGF0ZSk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yTWVtb3J5QWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKTsKICAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERP
TUNvdW50ZXJzKEVycm9yU3RyaW5nKiwgaW50KiBkb2N1bWVudHMsIGludCogbm9kZXMsIGludCog
anNFdmVudExpc3RlbmVycyk7CkBAIC02MCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJGcm9udGVuZCgpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3Rvck1lbW9yeUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOworICAg
IEluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKIAogICAgIEluc3Bl
Y3RvckZyb250ZW5kOjpNZW1vcnkqIG1fZnJvbnRlbmQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA4MDQ0ZmU3Li4zNjU5MTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3Zl
cmxheS5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
VmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk1h
aW5GcmFtZS5oIgpAQCAtMjI2LDkgKzIyNSw5IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFnZW50Ojpk
YXRhQ29udGVudChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplLCBjb25zdCBTdHJpCiAg
ICAgcmV0dXJuIGRlY29kZUJ1ZmZlcihkYXRhLCBzaXplLCB0ZXh0RW5jb2RpbmdOYW1lLCByZXN1
bHQpOwogfQogCi1QYXNzT3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gSW5zcGVjdG9yUGFnZUFn
ZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFn
ZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkK
K1Bhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yT3Zl
cmxheSogb3ZlcmxheSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclBhZ2VB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlLCBpbnNwZWN0b3JBZ2VudCwgc3RhdGUsIGlu
amVjdGVkU2NyaXB0TWFuYWdlciwgY2xpZW50LCBvdmVybGF5KSk7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBJbnNwZWN0b3JQYWdlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZSwgaW5z
cGVjdG9yQWdlbnQsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgY2xpZW50LCBvdmVybGF5KSk7CiB9
CiAKIC8vIHN0YXRpYwpAQCAtMzQ4LDggKzM0Nyw4IEBAIFR5cGVCdWlsZGVyOjpQYWdlOjpSZXNv
dXJjZVR5cGU6OkVudW0gSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29u
CiAgICAgcmV0dXJuIHJlc291cmNlVHlwZUpzb24oY2FjaGVkUmVzb3VyY2VUeXBlKGNhY2hlZFJl
c291cmNlKSk7CiB9CiAKLUluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhZ2UqIHBhZ2UsIEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwg
SW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCi0gICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUGFnZUFnZW50PigiUGFnZSIsIGluc3RydW1l
bnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorSW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0
b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFn
ZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIElu
c3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yUGFnZUFnZW50PigiUGFnZSIsIGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3BhZ2Uo
cGFnZSkKICAgICAsIG1faW5zcGVjdG9yQWdlbnQoaW5zcGVjdG9yQWdlbnQpCiAgICAgLCBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggNzBiMTEwYi4uNGU2YWI3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApA
QCAtNTgsNyArNTgsNiBAQCBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckNs
aWVudDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3Rvck92ZXJsYXk7Ci1j
bGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBV
Ukw7CiBjbGFzcyBQYWdlOwpAQCAtODIsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgICAgIE90aGVy
UmVzb3VyY2UKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2VudCos
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVj
dG9yQ2xpZW50KiwgSW5zcGVjdG9yT3ZlcmxheSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3RvclBhZ2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5z
cGVjdG9yQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JDbGllbnQqLCBJ
bnNwZWN0b3JPdmVybGF5Kik7CiAKICAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRl
bnQoQ2FjaGVkUmVzb3VyY2UqLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7
CiAgICAgc3RhdGljIGJvb2wgc2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgYm9vbCB3aXRoQmFzZTY0RW5j
b2RlLCBTdHJpbmcqIHJlc3VsdCk7CkBAIC0xODIsNyArMTgxLDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcqLCBG
cmFtZSopOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgUGFnZSosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JPdmVy
bGF5Kik7CisgICAgSW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdl
KiwgSW5zcGVjdG9yQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JDbGll
bnQqLCBJbnNwZWN0b3JPdmVybGF5Kik7CiAgICAgYm9vbCBkZXZpY2VNZXRyaWNzQ2hhbmdlZChp
bnQgd2lkdGgsIGludCBoZWlnaHQsIGRvdWJsZSBmb250U2NhbGVGYWN0b3IsIGJvb2wgZml0V2lu
ZG93KTsKICAgICB2b2lkIHVwZGF0ZVZpZXdNZXRyaWNzKGludCwgaW50LCBkb3VibGUsIGJvb2wp
OwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggZTJkM2Y1Yi4uZDVjMTg0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVk
ZSAiVVJMLmgiCkBAIC02NCw4ICs2Myw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBIZWFw
UHJvZmlsZVR5cGUgPSAiSEVBUCI7CiAKIGNsYXNzIFBhZ2VQcm9maWxlckFnZW50IDogcHVibGlj
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQgewogcHVibGljOgotICAgIFBhZ2VQcm9maWxlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNv
bGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQotICAgICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29uc29sZUFnZW50LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSwgbV9pbnNw
ZWN0ZWRQYWdlKGluc3BlY3RlZFBhZ2UpIHsgfQorICAgIFBhZ2VQcm9maWxlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAgICAgOiBJbnNwZWN0b3JQcm9maWxlckFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKSwgbV9pbnNwZWN0ZWRQYWdlKGluc3BlY3RlZFBhZ2UpIHsgfQogICAgIHZpcnR1YWwgflBh
Z2VQcm9maWxlckFnZW50KCkgeyB9CiAKIHByaXZhdGU6CkBAIC04NywxNiArODYsMTYgQEAgcHJp
dmF0ZToKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiB9OwogCi1QYXNzT3duUHRyPEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQ
YWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKIHsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSwgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVk
U2NyaXB0TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZVByb2ZpbGVyQWdl
bnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBpbnNwZWN0ZWRQYWdlLCBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpKTsKIH0KIAogI2lmIEVOQUJMRShXT1JLRVJTKQogY2xhc3MgV29y
a2VyUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JQcm9maWxlckFnZW50IHsKIHB1Ymxp
YzoKLSAgICBXb3JrZXJQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBXb3JrZXJH
bG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBz
dGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAg
ICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xl
QWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpLCBtX3dvcmtlckdsb2JhbFNjb3Bl
KHdvcmtlckdsb2JhbFNjb3BlKSB7IH0KKyAgICBXb3JrZXJQcm9maWxlckFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50LCBXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIEluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICAgICA6IEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpLCBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3Bl
KSB7IH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJQcm9maWxlckFnZW50KCkgeyB9CiAKIHByaXZhdGU6
CkBAIC0xMTUsMTQgKzExNCwxNCBAQCBwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3BlKiBt
X3dvcmtlckdsb2JhbFNjb3BlOwogfTsKIAotUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxlckFn
ZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQs
IFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBXb3JrZXJHbG9iYWxT
Y29wZSogd29ya2VyR2xvYmFsU2NvcGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUHJvZmlsZXJB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHdvcmtlckdsb2JhbFNjb3Bl
LCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBXb3JrZXJQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNv
bGVBZ2VudCwgd29ya2VyR2xvYmFsU2NvcGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwogfQog
I2VuZGlmCiAKLUluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JT
dGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAg
OiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4oIlByb2ZpbGVyIiwg
aW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCitJbnNwZWN0b3JQcm9maWxlckFn
ZW50OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JQcm9maWxlckFnZW50PigiUHJvZmlsZXIiLCBpbnN0cnVtZW50aW5n
QWdlbnRzKQogICAgICwgbV9jb25zb2xlQWdlbnQoY29uc29sZUFnZW50KQogICAgICwgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVu
ZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmgKaW5kZXggNDM1YTlkNi4uNDIyM2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBAIC00Nyw3ICs0Nyw2IEBAIGNsYXNz
IEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50OwogY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBJbnNwZWN0b3JT
dGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBQYWdlOwogY2xhc3MgU2Ny
aXB0SGVhcFNuYXBzaG90OwpAQCAtNTksOSArNTgsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0
cmluZzsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXI6OlByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBjcmVh
dGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIFBhZ2UqLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluamVjdGVkU2NyaXB0
TWFuYWdlciopOwogI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiwgV29ya2VyR2xvYmFsU2NvcGUqLCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiwgV29ya2VyR2xvYmFsU2NvcGUqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKICNlbmRpZgogICAgIHZpcnR1YWwgfkluc3BlY3RvclByb2ZpbGVyQWdlbnQoKTsKIApA
QCAtMTAxLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVj
dElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25h
cHNob3RPYmplY3RJZCk7CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2ZpbGlu
Zyhjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcmlw
dFByb2ZpbGU+IHN0b3BQcm9maWxpbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
aW5kZXggOWNlZTViMC4uYTUwZDRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1
ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCkBAIC02NDcsOCArNjQ2LDggQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjptYWluRnJhbWVOYXZpZ2F0ZWQoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlcikKICAgICBtX3Jlc291cmNlc0RhdGEtPmNsZWFyKG1fcGFnZUFnZW50LT5sb2FkZXJJZChs
b2FkZXIpKTsKIH0KIAotSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvckNv
bXBvc2l0ZVN0YXRlKiBzdGF0ZSkKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50PigiTmV0d29yayIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudD4oIk5ldHdvcmsiLCBpbnN0cnVtZW50aW5nQWdlbnRzKQogICAg
ICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwg
bV9mcm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmgKaW5kZXggNDYwMGRkZS4uM2I5MjFiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC01OCw3ICs1OCw2
IEBAIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xh
c3MgSW5zcGVjdG9yT2JqZWN0OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwotY2xhc3MgSW5z
cGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgVVJMOwogY2xh
c3MgTmV0d29ya1Jlc291cmNlc0RhdGE7CkBAIC04MCwxNSArNzksMTUgQEAgdHlwZWRlZiBTdHJp
bmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclJlc291cmNlQWdlbnQ+LCBwdWJsaWMgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6Ok5ldHdvcmtDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclJlc291cmNlQWdlbnQoaW5zdHJ1
bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBjbGllbnQsIHN0YXRlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwYWdlQWdlbnQsIGNsaWVudCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9u
dGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5k
KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiByZXN0
b3JlKFBhZ2UqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvckZyb250ZW5kKik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gcmVzdG9yZShQ
YWdlKiwgSW5zcGVjdG9yRnJvbnRlbmQqKTsKIAogICAgIH5JbnNwZWN0b3JSZXNvdXJjZUFnZW50
KCk7CiAKQEAgLTE1MSw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENh
Y2hlRGlzYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGNhY2hlRGlzYWJsZWQpOwogCiBwcml2YXRl
OgotICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluc3BlY3RvckNsaWVudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
Kik7CisgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKICAgICB2b2lkIGVuYWJsZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwCmluZGV4IGE5ZWE2MzEuLjk4MWJlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC01Nyw4ICs1Nyw4IEBAIHN0
YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25zdCBiKQogICAgIHJldHVybiBiID8gKmIg
OiBmYWxzZTsKIH0KIAotSW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+
KCJSdW50aW1lIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCitJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+KCJSdW50
aW1lIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAs
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCA2OGUxOGQ3Li45NTY2MTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC05MSw3
ICs5MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yUnVu
dGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSos
IEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCBJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25z
b2xlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZTViOWEuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgot
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBHT09HTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgotCi0jaW5jbHVkZSAiSW5zcGVj
dG9yU3RhdGVDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLUluc3BlY3RvclN0YXRlOjpJbnNwZWN0b3JTdGF0ZShJbnNwZWN0b3JT
dGF0ZVVwZGF0ZUxpc3RlbmVyKiBsaXN0ZW5lciwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHByb3BlcnRpZXMpCi0gICAgOiBtX2xpc3RlbmVyKGxpc3RlbmVyKQotICAgICwgbV9wcm9wZXJ0
aWVzKHByb3BlcnRpZXMpCi17Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3RhdGU6OnVwZGF0ZUNvb2tp
ZSgpCi17Ci0gICAgaWYgKG1fbGlzdGVuZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmluc3BlY3Rv
clN0YXRlVXBkYXRlZCgpOwotfQotCi12b2lkIEluc3BlY3RvclN0YXRlOjpzZXRGcm9tQ29va2ll
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0aWVzKQotewotICAgIG1fcHJvcGVy
dGllcyA9IHByb3BlcnRpZXM7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3RhdGU6OnNldFZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiB2YWx1
ZSkKLXsKLSAgICBtX3Byb3BlcnRpZXMtPnNldFZhbHVlKHByb3BlcnR5TmFtZSwgdmFsdWUpOwot
ICAgIHVwZGF0ZUNvb2tpZSgpOwotfQotCi12b2lkIEluc3BlY3RvclN0YXRlOjpyZW1vdmUoY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgbV9wcm9wZXJ0aWVzLT5yZW1vdmUocHJv
cGVydHlOYW1lKTsKLSAgICB1cGRhdGVDb29raWUoKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JTdGF0
ZTo6Z2V0Qm9vbGVhbihjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICBJbnNwZWN0
b3JPYmplY3Q6Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLT5maW5kKHByb3BlcnR5TmFtZSk7
Ci0gICAgYm9vbCB2YWx1ZSA9IGZhbHNlOwotICAgIGlmIChpdCAhPSBtX3Byb3BlcnRpZXMtPmVu
ZCgpKQotICAgICAgICBpdC0+dmFsdWUtPmFzQm9vbGVhbigmdmFsdWUpOwotICAgIHJldHVybiB2
YWx1ZTsKLX0KLQotU3RyaW5nIEluc3BlY3RvclN0YXRlOjpnZXRTdHJpbmcoY29uc3QgU3RyaW5n
JiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgSW5zcGVjdG9yT2JqZWN0OjppdGVyYXRvciBpdCA9IG1f
cHJvcGVydGllcy0+ZmluZChwcm9wZXJ0eU5hbWUpOwotICAgIFN0cmluZyB2YWx1ZTsKLSAgICBp
ZiAoaXQgIT0gbV9wcm9wZXJ0aWVzLT5lbmQoKSkKLSAgICAgICAgaXQtPnZhbHVlLT5hc1N0cmlu
ZygmdmFsdWUpOwotICAgIHJldHVybiB2YWx1ZTsKLX0KLQotbG9uZyBJbnNwZWN0b3JTdGF0ZTo6
Z2V0TG9uZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICBJbnNwZWN0b3JPYmpl
Y3Q6Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLT5maW5kKHByb3BlcnR5TmFtZSk7Ci0gICAg
bG9uZyB2YWx1ZSA9IDA7Ci0gICAgaWYgKGl0ICE9IG1fcHJvcGVydGllcy0+ZW5kKCkpCi0gICAg
ICAgIGl0LT52YWx1ZS0+YXNOdW1iZXIoJnZhbHVlKTsKLSAgICByZXR1cm4gdmFsdWU7Ci19Ci0K
LWRvdWJsZSBJbnNwZWN0b3JTdGF0ZTo6Z2V0RG91YmxlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKQotewotICAgIEluc3BlY3Rvck9iamVjdDo6aXRlcmF0b3IgaXQgPSBtX3Byb3BlcnRpZXMt
PmZpbmQocHJvcGVydHlOYW1lKTsKLSAgICBkb3VibGUgdmFsdWUgPSAwOwotICAgIGlmIChpdCAh
PSBtX3Byb3BlcnRpZXMtPmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUtPmFzTnVtYmVyKCZ2YWx1
ZSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1QYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
SW5zcGVjdG9yU3RhdGU6OmdldE9iamVjdChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsK
LSAgICBJbnNwZWN0b3JPYmplY3Q6Oml0ZXJhdG9yIGl0ID0gbV9wcm9wZXJ0aWVzLT5maW5kKHBy
b3BlcnR5TmFtZSk7Ci0gICAgaWYgKGl0ID09IG1fcHJvcGVydGllcy0+ZW5kKCkpIHsKLSAgICAg
ICAgbV9wcm9wZXJ0aWVzLT5zZXRPYmplY3QocHJvcGVydHlOYW1lLCBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpKTsKLSAgICAgICAgaXQgPSBtX3Byb3BlcnRpZXMtPmZpbmQocHJvcGVydHlOYW1l
KTsKLSAgICB9Ci0gICAgcmV0dXJuIGl0LT52YWx1ZS0+YXNPYmplY3QoKTsKLX0KLQotSW5zcGVj
dG9yU3RhdGUqIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpjcmVhdGVBZ2VudFN0YXRlKGNvbnN0
IFN0cmluZyYgYWdlbnROYW1lKQotewotICAgIEFTU0VSVChtX3N0YXRlT2JqZWN0LT5maW5kKGFn
ZW50TmFtZSkgPT0gbV9zdGF0ZU9iamVjdC0+ZW5kKCkpOwotICAgIEFTU0VSVChtX2luc3BlY3Rv
clN0YXRlTWFwLmZpbmQoYWdlbnROYW1lKSA9PSBtX2luc3BlY3RvclN0YXRlTWFwLmVuZCgpKTsK
LSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzdGF0ZVByb3BlcnRpZXMgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOwotICAgIG1fc3RhdGVPYmplY3QtPnNldE9iamVjdChhZ2VudE5hbWUs
IHN0YXRlUHJvcGVydGllcyk7Ci0gICAgT3duUHRyPEluc3BlY3RvclN0YXRlPiBzdGF0ZVB0ciA9
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZSh0aGlzLCBzdGF0ZVByb3BlcnRpZXMpKTsKLSAg
ICBJbnNwZWN0b3JTdGF0ZSogc3RhdGUgPSBzdGF0ZVB0ci5nZXQoKTsKLSAgICBtX2luc3BlY3Rv
clN0YXRlTWFwLmFkZChhZ2VudE5hbWUsIHN0YXRlUHRyLnJlbGVhc2UoKSk7Ci0gICAgcmV0dXJu
IHN0YXRlOwotfQotCi12b2lkIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpsb2FkRnJvbUNvb2tp
ZShjb25zdCBTdHJpbmcmIGluc3BlY3RvckNvbXBvc2l0ZVN0YXRlQ29va2llKQotewotICAgIFJl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4gY29va2llID0gSW5zcGVjdG9yVmFsdWU6OnBhcnNlSlNPTihp
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZUNvb2tpZSk7Ci0gICAgaWYgKGNvb2tpZSkKLSAgICAgICAg
bV9zdGF0ZU9iamVjdCA9IGNvb2tpZS0+YXNPYmplY3QoKTsKLSAgICBpZiAoIW1fc3RhdGVPYmpl
Y3QpCi0gICAgICAgIG1fc3RhdGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwot
Ci0gICAgSW5zcGVjdG9yU3RhdGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1faW5zcGVjdG9yU3RhdGVN
YXAuZW5kKCk7Ci0gICAgZm9yIChJbnNwZWN0b3JTdGF0ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2lu
c3BlY3RvclN0YXRlTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBhZ2VudFN0YXRlT2JqZWN0ID0gbV9zdGF0ZU9iamVjdC0+Z2V0
T2JqZWN0KGl0LT5rZXkpOwotICAgICAgICBpZiAoIWFnZW50U3RhdGVPYmplY3QpIHsKLSAgICAg
ICAgICAgIGFnZW50U3RhdGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAg
ICAgICAgICAgbV9zdGF0ZU9iamVjdC0+c2V0T2JqZWN0KGl0LT5rZXksIGFnZW50U3RhdGVPYmpl
Y3QpOwotICAgICAgICB9Ci0gICAgICAgIGl0LT52YWx1ZS0+c2V0RnJvbUNvb2tpZShhZ2VudFN0
YXRlT2JqZWN0KTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6Om11
dGUoKQotewotICAgIG1faXNNdXRlZCA9IHRydWU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGU6OnVubXV0ZSgpCi17Ci0gICAgbV9pc011dGVkID0gZmFsc2U7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6Omluc3BlY3RvclN0YXRlVXBkYXRlZCgpCi17Ci0gICAg
aWYgKG1fY2xpZW50ICYmICFtX2lzTXV0ZWQgJiYgbV9jbGllbnQtPnN1cHBvcnRzSW5zcGVjdG9y
U3RhdGVVcGRhdGVzKCkpCi0gICAgICAgIG1fY2xpZW50LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNv
b2tpZShtX3N0YXRlT2JqZWN0LT50b0pTT05TdHJpbmcoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NGQ3OTliLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dGF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvclN0
YXRlX2gKLSNkZWZpbmUgSW5zcGVjdG9yU3RhdGVfaAotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikK
LQotI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0b3JTdGF0ZUNsaWVu
dDsKLQotY2xhc3MgSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0gICAg
dmlydHVhbCB+SW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lcigpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBpbnNwZWN0b3JTdGF0ZVVwZGF0ZWQoKSA9IDA7Ci19OwotCi1jbGFzcyBJbnNwZWN0b3JT
dGF0ZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgSW5zcGVj
dG9yU3RhdGUoSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciosIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0Pik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yU3RhdGUoKSB7fQotCi0gICAgdm9p
ZCBsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvclN0YXRlQ29va2llKTsKLQot
ICAgIHZvaWQgbXV0ZSgpOwotICAgIHZvaWQgdW5tdXRlKCk7Ci0KLSAgICBib29sIGdldEJvb2xl
YW4oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwotICAgIFN0cmluZyBnZXRTdHJpbmcoY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwotICAgIGxvbmcgZ2V0TG9uZyhjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSk7Ci0gICAgZG91YmxlIGdldERvdWJsZShjb25zdCBTdHJpbmcmIHByb3Bl
cnR5TmFtZSk7Ci0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGdldE9iamVjdChjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSk7Ci0KLSAgICB2b2lkIHNldEJvb2xlYW4oY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wgdmFsdWUpIHsgc2V0VmFsdWUocHJvcGVydHlOYW1lLCBJ
bnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUodmFsdWUpKTsgfQotICAgIHZvaWQgc2V0U3RyaW5n
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IHNldFZh
bHVlKHByb3BlcnR5TmFtZSwgSW5zcGVjdG9yU3RyaW5nOjpjcmVhdGUodmFsdWUpKTsgfQotICAg
IHZvaWQgc2V0TG9uZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgbG9uZyB2YWx1ZSkgeyBz
ZXRWYWx1ZShwcm9wZXJ0eU5hbWUsIEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSgoZG91Ymxl
KXZhbHVlKSk7IH0KLSAgICB2b2lkIHNldERvdWJsZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgZG91YmxlIHZhbHVlKSB7IHNldFZhbHVlKHByb3BlcnR5TmFtZSwgSW5zcGVjdG9yQmFzaWNW
YWx1ZTo6Y3JlYXRlKHZhbHVlKSk7IH0KLSAgICB2b2lkIHNldE9iamVjdChjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVlKSB7IHNldFZh
bHVlKHByb3BlcnR5TmFtZSwgdmFsdWUpOyB9Ci0KLSAgICB2b2lkIHJlbW92ZShjb25zdCBTdHJp
bmcmKTsKLXByaXZhdGU6Ci0gICAgdm9pZCB1cGRhdGVDb29raWUoKTsKLSAgICB2b2lkIHNldFZh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVl
Pik7Ci0KLSAgICAvLyBHZXRzIGNhbGxlZCBmcm9tIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjps
b2FkRnJvbUNvb2tpZSgpLgotICAgIHZvaWQgc2V0RnJvbUNvb2tpZShQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4pOwotCi0gICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
OwotCi0gICAgSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciogbV9saXN0ZW5lcjsKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBtX3Byb3BlcnRpZXM7Ci19OwotCi1jbGFzcyBJbnNwZWN0
b3JDb21wb3NpdGVTdGF0ZSA6IHB1YmxpYyBJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVyIHsK
LXB1YmxpYzoKLSAgICBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZShJbnNwZWN0b3JTdGF0ZUNsaWVu
dCogaW5zcGVjdG9yQ2xpZW50KQotICAgICAgICA6IG1fY2xpZW50KGluc3BlY3RvckNsaWVudCkK
LSAgICAgICAgLCBtX3N0YXRlT2JqZWN0KEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpCi0gICAg
ICAgICwgbV9pc011dGVkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0gICAgdmlydHVhbCB+SW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUoKSB7IH0KLQotICAgIHZvaWQgbXV0ZSgpOwotICAgIHZvaWQgdW5t
dXRlKCk7Ci0KLSAgICBJbnNwZWN0b3JTdGF0ZSogY3JlYXRlQWdlbnRTdGF0ZShjb25zdCBTdHJp
bmcmKTsKLSAgICB2b2lkIGxvYWRGcm9tQ29va2llKGNvbnN0IFN0cmluZyYpOwotCi1wcml2YXRl
OgotICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIE93blB0cjxJbnNwZWN0b3JTdGF0ZT4+IElu
c3BlY3RvclN0YXRlTWFwOwotCi0gICAgLy8gRnJvbSBJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3Rl
bmVyLgotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JTdGF0ZVVwZGF0ZWQoKTsKLQotICAgIElu
c3BlY3RvclN0YXRlQ2xpZW50KiBtX2NsaWVudDsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBtX3N0YXRlT2JqZWN0OwotICAgIGJvb2wgbV9pc011dGVkOwotICAgIEluc3BlY3RvclN0YXRl
TWFwIG1faW5zcGVjdG9yU3RhdGVNYXA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3Rv
clN0YXRlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3RhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZUNs
aWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDZmNTVjLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZUNsaWVudC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvclN0
YXRlQ2xpZW50X2gKLSNkZWZpbmUgSW5zcGVjdG9yU3RhdGVDbGllbnRfaAotCi0jaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0b3JT
dGF0ZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yU3RhdGVDbGllbnQo
KSB7IH0KLQotICAgIC8vIE5hdmlnYXRpb24gY2FuIGNhdXNlIHNvbWUgV2ViS2l0IGltcGxlbWVu
dGF0aW9ucyB0byBjaGFuZ2UgdGhlIHZpZXcgLyBwYWdlIC8gaW5zcGVjdG9yIGNvbnRyb2xsZXIg
aW5zdGFuY2UuCi0gICAgLy8gSG93ZXZlciwgdGhlcmUgYXJlIHNvbWUgaW5zcGVjdG9yIGNvbnRy
b2xsZXIgc3RhdGVzIHRoYXQgc2hvdWxkIHN1cnZpdmUgbmF2aWdhdGlvbiAoc3VjaCBhcyB0cmFj
a2luZyByZXNvdXJjZXMKLSAgICAvLyBvciByZWNvcmRpbmcgdGltZWxpbmUpIGFuZCB3b3JrZXIg
cmVzdGFydC4gRm9sbG93aW5nIGNhbGxiYWNrcyBhbGxvdyBlbWJlZGRlcnMgdG8gdHJhY2sgdGhl
c2Ugc3RhdGVzLgotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0luc3BlY3RvclN0YXRlVXBkYXRl
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUluc3Bl
Y3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpIHsgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvclN0YXRlQ2xpZW50X2gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKaW5kZXggMGNmMjk3Zi4uODlhNWQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck1l
bW9yeUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSAi
SW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC01NzgsOCArNTc3
LDggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNv
cmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAgICAgfQogfQogCi1JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JN
ZW1vcnlBZ2VudCogbWVtb3J5QWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwg
SW5zcGVjdG9yVHlwZSB0eXBlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKLSAgICA6IEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PigiVGltZWxpbmUiLCBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBzdGF0ZSkKK0luc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlB
Z2VudCwgSW5zcGVjdG9yVHlwZSB0eXBlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PigiVGltZWxpbmUiLCBp
bnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwg
bV9tZW1vcnlBZ2VudChtZW1vcnlBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDM0
ZDRlOTguLjJmZjc0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTAsNyArNTAsNiBAQCBjbGFzcyBJbnNwZWN0b3JDbGll
bnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck1lbW9yeUFnZW50
OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFz
cyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFVSTDsKQEAgLTEy
OSw5ICsxMjgsOSBAQCBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50CiBwdWJsaWM6CiAgICAg
ZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUluc3BlY3RvciwgV29ya2VySW5zcGVjdG9yIH07CiAK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBjcmVhdGUoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50
KiBwYWdlQWdlbnQsIEluc3BlY3Rvck1lbW9yeUFnZW50KiBtZW1vcnlBZ2VudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVu
dCogY2xpZW50KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yTWVtb3J5QWdlbnQqIG1lbW9yeUFnZW50
LCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgbWVtb3J5QWdlbnQsIHN0YXRlLCB0eXBlLCBjbGllbnQp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgbWVtb3J5QWdlbnQsIHR5cGUsIGNsaWVudCkp
OwogICAgIH0KIAogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CkBAIC0yMzMsNyArMjMy
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc2l6ZV90IHVzZWRIZWFwU2l6ZUF0U3RhcnQ7CiAgICAg
fTsKIAotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvck1lbW9yeUFnZW50KiwgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqLCBJbnNwZWN0b3JUeXBlLCBJbnNwZWN0b3JDbGllbnQqKTsKKyAgICBJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQq
LCBJbnNwZWN0b3JNZW1vcnlBZ2VudCosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVudCop
OwogCiAgICAgdm9pZCBzZW5kRXZlbnQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KTsKICAg
ICB2b2lkIGFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgVGlt
ZWxpbmVSZWNvcmRUeXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCBh
M2ZjZTI1Li4yNDlmZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKIAogI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCi0j
aW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIK
ICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCkBAIC0x
MDIsMTMgKzEwMSwxMyBAQCBwcml2YXRlOgogCiBpbnQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6Oldv
cmtlckZyb250ZW5kQ2hhbm5lbDo6c19uZXh0SWQgPSAxOwogCi1QYXNzT3duUHRyPEluc3BlY3Rv
cldvcmtlckFnZW50PiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNw
ZWN0b3JTdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IEluc3BlY3Rvcldv
cmtlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cykKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvcldvcmtlckFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JXb3JrZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzKSk7CiB9CiAKLUluc3Bl
Y3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JXb3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9y
U3RhdGUpCi0gICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KCJX
b3JrZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKK0luc3BlY3Rvcldv
cmtlckFnZW50OjpJbnNwZWN0b3JXb3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rvcldvcmtl
ckFnZW50PigiV29ya2VyIiwgaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1faW5zcGVjdG9y
RnJvbnRlbmQoMCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkUGF1c2VE
ZWRpY2F0ZWRXb3JrZXJPblN0YXJ0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCBhMWMyYTVlLi5mYmQ5MDg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDAs
NyArNDAsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7
CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIElu
c3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBVUkw7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZVBy
b3h5OwpAQCAtNDksNyArNDgsNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xh
c3MgSW5zcGVjdG9yV29ya2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvcldvcmtlckFnZW50PiwgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpXb3Jr
ZXJDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yV29ya2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JXb3JrZXJBZ2Vu
dD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICB+SW5zcGVjdG9yV29ya2VyQWdl
bnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCop
OwpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9jb25u
ZWN0VG9Xb3JrZXJzKEVycm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAg
SW5zcGVjdG9yV29ya2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKik7CisgICAgSW5zcGVjdG9yV29ya2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyopOwogICAgIHZvaWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsc0ZvckV4aXN0aW5nV29y
a2VycygpOwogICAgIHZvaWQgY3JlYXRlV29ya2VyRnJvbnRlbmRDaGFubmVsKFdvcmtlckdsb2Jh
bFNjb3BlUHJveHkqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkZXN0cm95V29ya2Vy
RnJvbnRlbmRDaGFubmVscygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25z
b2xlQWdlbnQuY3BwCmluZGV4IDM0MjcxNjQuLmJjZDg5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uc29sZUFnZW50OjpQYWdlQ29uc29sZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50KQotICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitQYWdlQ29uc29sZUFnZW50OjpQYWdlQ29u
c29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKKyAgICA6IEluc3Bl
Y3RvckNvbnNvbGVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAgICAgLCBtX2luc3BlY3RvckFnZW50KGluc3BlY3RvckFnZW50KQogICAgICwgbV9pbnNw
ZWN0b3JET01BZ2VudChkb21BZ2VudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZUNvbnNvbGVBZ2VudC5oCmluZGV4IDNlMjQ4ZTkuLmUxOTMxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtNDQsMTYgKzQ0LDE2IEBAIGNsYXNz
IEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25zb2xl
QWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VDb25zb2xlQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JBZ2VudCogYWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZUFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQWdlbnQq
IGFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5z
cGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBQYWdlQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGFnZW50LCBzdGF0ZSwg
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBkb21BZ2VudCkpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFBhZ2VDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgYWdlbnQsIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgZG9tQWdlbnQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+UGFnZUNv
bnNvbGVBZ2VudCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzV29ya2VyQWdlbnQoKSBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JET01BZ2VudCopOworICAgIFBh
Z2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckFnZW50KiwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNw
ZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiAgICAgdmlydHVhbCBib29sIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDRlZGY2NjEuLjg3ZmFiZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtNDMsMTMgKzQzLDEz
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxQYWdlRGVidWdnZXJBZ2Vu
dD4gUGFnZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKK1Bhc3NPd25QdHI8
UGFnZURlYnVnZ2VyQWdlbnQ+IFBhZ2VEZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0
b3JPdmVybGF5KiBvdmVybGF5KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZURlYnVn
Z2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIHBhZ2VBZ2VudCwg
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBvdmVybGF5KSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYWdlRGVidWdnZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgb3ZlcmxheSkpOwogfQogCi1QYWdlRGVidWdnZXJBZ2VudDo6UGFn
ZURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbnNwZWN0b3JQYWdlQWdl
bnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCi0gICAgOiBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCitQYWdlRGVidWdnZXJBZ2VudDo6UGFnZURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0
b3JPdmVybGF5KiBvdmVybGF5KQorICAgIDogSW5zcGVjdG9yRGVidWdnZXJBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX3BhZ2VBZ2VudChw
YWdlQWdlbnQpCiAgICAgLCBtX292ZXJsYXkob3ZlcmxheSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggNzIyZWRkZC4uNTU4NjMxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZURlYnVnZ2VyQWdlbnQpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFBhZ2VEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiwgSW5zcGVjdG9yT3ZlcmxheSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VE
ZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VB
Z2VudCosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkqKTsKICAgICB2
aXJ0dWFsIH5QYWdlRGVidWdnZXJBZ2VudCgpOwogCiAgICAgdm9pZCBkaWRDbGVhck1haW5GcmFt
ZVdpbmRvd09iamVjdCgpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3Qg
aW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPdmVybGF5TWVz
c2FnZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyopOwogCi0gICAgUGFnZURlYnVnZ2VyQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVj
dG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yT3ZlcmxheSop
OworICAgIFBhZ2VEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JPdmVybGF5Kik7CiAg
ICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAgICBJbnNwZWN0b3JPdmVybGF5
KiBtX292ZXJsYXk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwCmluZGV4IDI5YTIwOTkuLjQxODI3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRl
LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIk1haW5GcmFt
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTUwLDggKzQ5LDggQEAgdXNpbmcgV2ViQ29yZTo6
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlUnVudGltZUFnZW50OjpQYWdlUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQotICAgIDogSW5z
cGVjdG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCitQYWdlUnVudGltZUFnZW50OjpQYWdlUnVudGltZUFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCkKKyAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkKICAg
ICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IGY1ZDg3ZWUuLmNkZDM0
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApAQCAt
NDYsOSArNDYsOSBAQCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAogY2xhc3MgUGFnZVJ1bnRpbWVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPFBhZ2VSdW50aW1lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdl
UnVudGltZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2Uq
IHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0
YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIHBhZ2UsIHBhZ2VBZ2VudCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBwYWdlLCBwYWdlQWdlbnQpKTsKICAgICB9CiAgICAgdmly
dHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZCopOwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRDcmVhdGVJc29sYXRlZENvbnRleHQoRnJhbWUqLCBKU0M6OkV4ZWNTdGF0ZSosIFNlY3VyaXR5
T3JpZ2luKik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZVJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
LCBQYWdlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgUGFnZVJ1bnRpbWVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIEluc3BlY3Rv
clBhZ2VBZ2VudCopOwogCiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlw
dEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAg
ICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCmluZGV4IDc3OTYyMTMuLmMxZGQ1NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCkBAIC0z
Niw4ICszNiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2VyQ29uc29sZUFnZW50
OjpXb3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorV29ya2Vy
Q29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCisgICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmgKaW5kZXggMTVmNWZmOC4uMTZhOGEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaApAQCAtNDEsMTYgKzQx
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdv
cmtlckNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2Vy
Q29uc29sZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJD
b25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyQ29uc29sZUFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfldvcmtlckNvbnNv
bGVBZ2VudCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzV29ya2VyQWdlbnQoKSBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6Ci0gICAgV29ya2VyQ29uc29sZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0
TWFuYWdlciopOworICAgIFdvcmtlckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5v
ZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKTsKICAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZCgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBmNTJhZDhlLi41Nzc5MTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC04MCwxMyAr
ODAsMTMgQEAgcHJpdmF0ZToKIAogY29uc3QgY2hhciogV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVi
dWdnZXJUYXNrTW9kZSA9ICJkZWJ1Z2dlciI7CiAKLVBhc3NPd25QdHI8V29ya2VyRGVidWdnZXJB
Z2VudD4gV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0
ZSwgV29ya2VyR2xvYmFsU2NvcGUqIGluc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1Bhc3NPd25QdHI8V29ya2Vy
RGVidWdnZXJBZ2VudD4gV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFdvcmtlckdsb2JhbFNjb3BlKiBpbnNwZWN0ZWRX
b3JrZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJEZWJ1Z2dlckFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbnNwZWN0ZWRXb3JrZXJHbG9iYWxT
Y29wZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
b3JrZXJEZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RlZFdvcmtlckds
b2JhbFNjb3BlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKIH0KIAotV29ya2VyRGVidWdnZXJB
Z2VudDo6V29ya2VyRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIFdvcmtl
ckdsb2JhbFNjb3BlKiBpbnNwZWN0ZWRXb3JrZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1h
bmFnZXIpCitXb3JrZXJEZWJ1Z2dlckFnZW50OjpXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFdvcmtlckdsb2JhbFNjb3BlKiBpbnNw
ZWN0ZWRXb3JrZXJHbG9iYWxTY29wZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCisgICAgOiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdB
Z2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIo
aW5zcGVjdGVkV29ya2VyR2xvYmFsU2NvcGUsIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2Vy
VGFza01vZGUpCiAgICAgLCBtX2luc3BlY3RlZFdvcmtlckdsb2JhbFNjb3BlKGluc3BlY3RlZFdv
cmtlckdsb2JhbFNjb3BlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmgKaW5kZXggMzAwODJlNS4uYzdkZjBmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCkBAIC00NCwxNCArNDQsMTQgQEAg
Y2xhc3MgV29ya2VyRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJEZWJ1Z2dlckFnZW50KTsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxX
b3JrZXJEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlKiwgV29ya2VyR2xvYmFsU2NvcGUqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFdvcmtlckdsb2JhbFNjb3BlKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKik7CiAgICAgdmlydHVhbCB+V29ya2VyRGVidWdnZXJBZ2VudCgpOwogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGRlYnVnZ2VyVGFza01vZGU7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJy
dXB0QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5kcyhXb3JrZXJUaHJlYWQqKTsKIAogcHJpdmF0
ZToKLSAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JDb21wb3NpdGVTdGF0ZSosIFdvcmtlckdsb2JhbFNjb3BlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKik7CisgICAgV29ya2VyRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgV29y
a2VyR2xvYmFsU2NvcGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCk7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDM4MGYy
MjEuLmRhYmZkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQzLDggKzQzLDYgQEAKICNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCIKLSNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRp
bmdBZ2VudHMuaCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQWdlbnQuaCIKQEAgLTczLDQ3ICs3
MSwyOSBAQCBwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckdsb2JhbFNj
b3BlOwogfTsKIAotY2xhc3MgV29ya2VyU3RhdGVDbGllbnQgOiBwdWJsaWMgSW5zcGVjdG9yU3Rh
dGVDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFdv
cmtlclN0YXRlQ2xpZW50KFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KSA6IG1fd29ya2VyR2xv
YmFsU2NvcGUoY29udGV4dCkgeyB9Ci0gICAgdmlydHVhbCB+V29ya2VyU3RhdGVDbGllbnQoKSB7
IH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbnNwZWN0b3JTdGF0ZVVw
ZGF0ZXMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlu
c3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYgY29va2llKQotICAgIHsKLSAgICAgICAg
bV93b3JrZXJHbG9iYWxTY29wZS0+dGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkudXBk
YXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29va2llKTsKLSAgICB9Ci0KLSAgICBXb3JrZXJHbG9i
YWxTY29wZSogbV93b3JrZXJHbG9iYWxTY29wZTsKLX07Ci0KIH0KIAogV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSog
d29ya2VyR2xvYmFsU2NvcGUpCiAgICAgOiBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2Jh
bFNjb3BlKQotICAgICwgbV9zdGF0ZUNsaWVudChhZG9wdFB0cihuZXcgV29ya2VyU3RhdGVDbGll
bnQod29ya2VyR2xvYmFsU2NvcGUpKSkKLSAgICAsIG1fc3RhdGUoYWRvcHRQdHIobmV3IEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKG1fc3RhdGVDbGllbnQuZ2V0KCkpKSkKICAgICAsIG1faW5zdHJ1
bWVudGluZ0FnZW50cyhJbnN0cnVtZW50aW5nQWdlbnRzOjpjcmVhdGUoKSkKICAgICAsIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKEluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlRm9yV29ya2Vy
KCkpCiAgICAgLCBtX3J1bnRpbWVBZ2VudCgwKQogewotICAgIE93blB0cjxJbnNwZWN0b3JSdW50
aW1lQWdlbnQ+IHJ1bnRpbWVBZ2VudCA9IFdvcmtlclJ1bnRpbWVBZ2VudDo6Y3JlYXRlKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCksIHdvcmtlckdsb2JhbFNjb3BlKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yUnVu
dGltZUFnZW50PiBydW50aW1lQWdlbnQgPSBXb3JrZXJSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCB3
b3JrZXJHbG9iYWxTY29wZSk7CiAgICAgbV9ydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnQuZ2V0
KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHJ1bnRpbWVBZ2VudC5yZWxlYXNlKCkpOwogCi0gICAg
T3duUHRyPEluc3BlY3RvckNvbnNvbGVBZ2VudD4gY29uc29sZUFnZW50ID0gV29ya2VyQ29uc29s
ZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7CisgICAgT3duUHRyPEluc3BlY3RvckNv
bnNvbGVBZ2VudD4gY29uc29sZUFnZW50ID0gV29ya2VyQ29uc29sZUFnZW50OjpjcmVhdGUobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgT3duUHRyPEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ+IGRlYnVnZ2VyQWdlbnQgPSBXb3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCB3b3JrZXJHbG9iYWxT
Y29wZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpOworICAgIE93blB0cjxJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50PiBkZWJ1Z2dlckFnZW50ID0gV29ya2VyRGVidWdnZXJBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgd29ya2VyR2xvYmFsU2NvcGUsIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBk
ZWJ1Z2dlckFnZW50UHRyID0gZGVidWdnZXJBZ2VudC5nZXQoKTsKICAgICBtX3J1bnRpbWVBZ2Vu
dC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRlYnVnZ2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVy
KCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkZWJ1Z2dlckFnZW50LnJlbGVhc2UoKSk7CiAKLSAg
ICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LmdldCgpLCB3b3JrZXJHbG9iYWxTY29w
ZSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKLSAgICBt
X2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudC5nZXQoKSwg
d29ya2VyR2xvYmFsU2NvcGUsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAg
bV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwog
I2VuZGlmCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIDAsIDAsIG1fc3RhdGUuZ2V0KCksIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgMCkpOworICAgIG1fYWdlbnRzLmFw
cGVuZChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCAwLCAwLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IsIDAp
KTsKICAgICBtX2FnZW50cy5hcHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7CiAKICAgICBt
X2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluaXQoMApAQCAt
MTM4LDcgKzExOCw2IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6On5Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKCkKIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZy
b250ZW5kKCkKIHsKICAgICBBU1NFUlQoIW1fZnJvbnRlbmQpOwotICAgIG1fc3RhdGUtPnVubXV0
ZSgpOwogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gYWRvcHRQdHIobmV3IFBhZ2VJbnNwZWN0b3JQ
cm94eShtX3dvcmtlckdsb2JhbFNjb3BlKSk7CiAgICAgbV9mcm9udGVuZCA9IGFkb3B0UHRyKG5l
dyBJbnNwZWN0b3JGcm9udGVuZChtX2Zyb250ZW5kQ2hhbm5lbC5nZXQoKSkpOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKG1fZnJv
bnRlbmRDaGFubmVsLmdldCgpKTsKQEAgLTE1Miw5ICsxMzEsNiBAQCB2b2lkIFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAgICAgICAgIHJldHVybjsKICAg
ICBtX2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOwotICAgIC8vIERlc3Ryb3lpbmcgYWdlbnRzIHdvdWxkIGNoYW5nZSB0
aGUgc3RhdGUsIGJ1dCB3ZSBkb24ndCB3YW50IHRoYXQuCi0gICAgLy8gUHJlLWRpc2Nvbm5lY3Qg
c3RhdGUgd2lsbCBiZSB1c2VkIHRvIHJlc3RvcmUgaW5zcGVjdG9yIGFnZW50cy4KLSAgICBtX3N0
YXRlLT5tdXRlKCk7CiAgICAgbV9hZ2VudHMuY2xlYXJGcm9udGVuZCgpOwogICAgIG1fZnJvbnRl
bmQuY2xlYXIoKTsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXgg
YmVhYWM0NS4uMDA4OGYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC00OCw4ICs0OCw2IEBAIGNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwogY2xhc3MgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOwogY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50OwotY2xh
c3MgSW5zcGVjdG9yU3RhdGU7Ci1jbGFzcyBJbnNwZWN0b3JTdGF0ZUNsaWVudDsKIGNsYXNzIElu
c3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIApAQCAtNzIsOCAr
NzAsNiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50YXRpb25Gb3JXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSopOwogCiAgICAg
V29ya2VyR2xvYmFsU2NvcGUqIG1fd29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgT3duUHRyPEluc3Bl
Y3RvclN0YXRlQ2xpZW50PiBtX3N0YXRlQ2xpZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZT4gbV9zdGF0ZTsKICAgICBSZWZQdHI8SW5zdHJ1bWVudGluZ0FnZW50cz4gbV9p
bnN0cnVtZW50aW5nQWdlbnRzOwogICAgIE93blB0cjxJbmplY3RlZFNjcmlwdE1hbmFnZXI+IG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudCogbV9ydW50
aW1lQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdl
bnQuY3BwCmluZGV4IDNkODZhZjguLmI2NDM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC00NCw4ICs0NCw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50aW1lQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlKQotICAgIDogSW5zcGVj
dG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCitXb3JrZXJSdW50aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
IGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNj
b3BlKQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGUpCiAgICAgLCBtX3BhdXNlZChmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRleCBiMTYyNzMwLi5lZmUxYTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00Miw5
ICs0Miw5IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogCiBjbGFzcyBXb3JrZXJSdW50aW1l
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxXb3JrZXJSdW50aW1lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJHbG9i
YWxTY29wZSogY29udGV4dCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJSdW50aW1lQWdl
bnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyR2xvYmFsU2Nv
cGUqIGNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlclJ1
bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCBjb250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUnVudGlt
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgY29udGV4
dCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIApAQCAtNTYs
NyArNTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CiAKIHByaXZhdGU6Ci0gICAgV29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtl
ckdsb2JhbFNjb3BlKik7CisgICAgV29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJHbG9iYWxTY29wZSopOwogICAgIHZp
cnR1YWwgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwg
Y29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29u
c29sZSgpOwogICAgIHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
CmluZGV4IDVjMjZjOGMuLmQyODA3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC04Nyw3ICs4Nyw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJP
YmplY3QoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VU
b1BhZ2VJbnNwZWN0b3IoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlu
c3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHdvcmtlckds
b2JhbFNjb3BlRGVzdHJveWVkKCk7CkBAIC0yMDcsMTEgKzIwNiw2IEBAIHZvaWQgU2hhcmVkV29y
a2VyUHJveHk6OnBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLQotdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6dXBkYXRl
SW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgU3RyaW5nJikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQogI2VuZGlmCiAKIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6Ondvcmtlckdsb2JhbFNj
b3BlQ2xvc2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKaW5kZXggYWFhNjNkMC4uMjAwYzA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTUwNSwxMSArNTA1LDYgQEAgdm9p
ZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRh
c2soUG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3JUYXNrOjpjcmVhdGUodGhpcywgbWVzc2FnZSkp
OwogfQotCi12b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNv
b2tpZShjb25zdCBTdHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19CiAjZW5kaWYK
IAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2Jq
ZWN0KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDYxYTU4MzYuLmI2YjQ5ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTcyLDcgKzcyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVN
ZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYp
IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW5zcGVjdG9yU3RhdGVDb29r
aWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCB2b2lk
IGNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkg
T1ZFUlJJREU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oCmluZGV4IDBkOTBkYTMuLjM4OWU1MjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUmVwb3J0aW5nUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKQEAgLTQ4LDcgKzQ4
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNv
bGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25z
dCBTdHJpbmcmKSA9IDA7CiAjZW5kaWYKICAgICAgICAgLy8gSW52b2tlZCB3aGVuIGNsb3NlKCkg
aXMgaW52b2tlZCBvbiB0aGUgd29ya2VyIGNvbnRleHQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCB3
b3JrZXJHbG9iYWxTY29wZUNsb3NlZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDRhYzhjMjMuLjIwZDdhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEzLTEwLTMwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIEluc3BlY3RvclN0YXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1NDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaDoKKwogMjAxMy0xMC0xNyAgSmFj
a3kgSmlhbmcgIDx6aGFqaWFuZ0BibGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJy
eV0gSW1wcm92ZSB0aGUgdmlld3BvcnQgb2Ygc29tZSB3ZWJzaXRlcyBsaWtlIG1vYmlsZXN5cnVw
LmNvbS8yMDEzLzA4LzI1L21vdG8teC1yZXZpZXcvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggMzcxZmQwOC4uNTViMGVhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVy
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTAzLDEyICsxMDMsNiBAQCBib29sIEluc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24oKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6OnVwZGF0
ZUluc3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgLy8gSWYgdGhpcyBp
cyBpbXBsZW1lbnRlZCwgd2Ugc2hvdWxkIG92ZXJyaWRlIGFuZCByZXR1cm4gdHJ1ZSBpbiBJbnNw
ZWN0b3JTdGF0ZUNsaWVudDo6c3VwcG9ydHNJbnNwZWN0b3JTdGF0ZVVwZGF0ZXMoKS4KLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfTsKLQogdm9pZCBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5Ojpw
YWludEluc3BlY3Rvck92ZXJsYXkoR3JhcGhpY3NDb250ZXh0JiBnYykKIHsKICAgICBJbnNwZWN0
b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV9w
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNr
QmVycnkuaAppbmRleCBhODQwMTQyLi5mMmY2NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5LmgKQEAgLTU5LDggKzU5LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBvdmVycmlkZURldmljZU1ldHJpY3MoaW50LCBpbnQsIGZsb2F0LCBib29sKTsKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbigpOwogCi0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFN0cmluZyYpOwotCiBwcml2YXRl
OgogICAgIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZVByaXZh
dGU7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBTZXR0aW5nc01hcDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>