<?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>120777</bug_id>
          
          <creation_ts>2013-09-05 09:14:34 -0700</creation_ts>
          <short_desc>Add new RenderBlockFlow class</short_desc>
          <delta_ts>2013-09-06 13:53:53 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>84924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925069</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-05 09:14:34 -0700</bug_when>
    <thetext>Bug for adding a new RenderBlockFlow class that is going to hold the code for actual block layout, so that we can tighten up types and not have tables, grids, flexboxes etc. inheriting members they don&apos;t need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925085</commentid>
    <comment_count>1</comment_count>
      <attachid>210628</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-05 09:57:19 -0700</bug_when>
    <thetext>Created attachment 210628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925086</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-05 10:00:20 -0700</bug_when>
    <thetext>Attachment 210628 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/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.cpp&apos;, u&apos;Source/WebCore/dom/Position.cpp&apos;, u&apos;Source/WebCore/dom/PositionIterator.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/editing/FrameSelection.cpp&apos;, u&apos;Source/WebCore/editing/TextIterator.cpp&apos;, u&apos;Source/WebCore/editing/TypingCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.h&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.h&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.h&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.h&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderFullScreen.cpp&apos;, u&apos;Source/WebCore/rendering/RenderInline.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLineBoxList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderObjectChildList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.h&apos;, u&apos;Source/WebCore/rendering/RenderRegion.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRegion.h&apos;, u&apos;Source/WebCore/rendering/RenderRuby.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRuby.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlSingleLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.h&apos;, u&apos;Source/WebCore/rendering/RenderView.cpp&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:7096:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 68 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>925090</commentid>
    <comment_count>3</comment_count>
      <attachid>210628</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-09-05 10:07:08 -0700</bug_when>
    <thetext>Comment on attachment 210628
Patch

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

&gt; Source/WebCore/rendering/RenderBlockFlow.h:21
&gt; +/*
&gt; + * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
&gt; + *           (C) 1999 Antti Koivisto (koivisto@kde.org)
&gt; + *           (C) 2007 David Smith (catfish.man@gmail.com)
&gt; + * Copyright (C) 2003-2013,  Apple Inc. All rights reserved.
&gt; + *
&gt; + * This library is free software; you can redistribute it and/or
&gt; + * modify it under the terms of the GNU Library General Public
&gt; + * License as published by the Free Software Foundation; either
&gt; + * version 2 of the License, or (at your option) any later version.
&gt; + *
&gt; + * This library is distributed in the hope that it will be useful,
&gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; + * Library General Public License for more details.
&gt; + *
&gt; + * You should have received a copy of the GNU Library General Public License
&gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; + * Boston, MA 02110-1301, USA.
&gt; + */

Can&apos;t you use the Apple license?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925106</commentid>
    <comment_count>4</comment_count>
      <attachid>210628</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-05 10:24:05 -0700</bug_when>
    <thetext>Comment on attachment 210628
Patch

Attachment 210628 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1697649</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925111</commentid>
    <comment_count>5</comment_count>
      <attachid>210631</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-05 10:29:38 -0700</bug_when>
    <thetext>Created attachment 210631
Patch to try to trick EWS into building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925114</commentid>
    <comment_count>6</comment_count>
      <attachid>210633</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-05 10:35:33 -0700</bug_when>
    <thetext>Created attachment 210633
Just trying to test EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925117</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-05 10:39:43 -0700</bug_when>
    <thetext>Attachment 210633 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/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.cpp&apos;, u&apos;Source/WebCore/dom/Position.cpp&apos;, u&apos;Source/WebCore/dom/PositionIterator.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/editing/FrameSelection.cpp&apos;, u&apos;Source/WebCore/editing/TextIterator.cpp&apos;, u&apos;Source/WebCore/editing/TypingCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.h&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.h&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.h&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.h&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderFullScreen.cpp&apos;, u&apos;Source/WebCore/rendering/RenderInline.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLineBoxList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderObjectChildList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.h&apos;, u&apos;Source/WebCore/rendering/RenderRegion.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRegion.h&apos;, u&apos;Source/WebCore/rendering/RenderRuby.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRuby.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlSingleLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.h&apos;, u&apos;Source/WebCore/rendering/RenderView.cpp&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;, u&apos;Source/WebCore/rendering/RenderingAllInOne.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:7096:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 69 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>925119</commentid>
    <comment_count>8</comment_count>
      <attachid>210628</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-05 10:45:39 -0700</bug_when>
    <thetext>Comment on attachment 210628
Patch

Attachment 210628 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1701451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925148</commentid>
    <comment_count>9</comment_count>
      <attachid>210628</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-05 12:07:03 -0700</bug_when>
    <thetext>Comment on attachment 210628
Patch

Attachment 210628 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1691918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925149</commentid>
    <comment_count>10</comment_count>
      <attachid>210628</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-05 12:14:34 -0700</bug_when>
    <thetext>Comment on attachment 210628
Patch

Attachment 210628 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1709030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925159</commentid>
    <comment_count>11</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-05 12:32:30 -0700</bug_when>
    <thetext>Landed in r155139.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925186</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-09-05 13:19:00 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Landed in r155139

FYI: It broke 500+ tests everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925311</commentid>
    <comment_count>13</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-09-05 17:28:49 -0700</bug_when>
    <thetext>I had to revert this with http://trac.webkit.org/changeset/155162 because of the failing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925383</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-09-05 21:19:51 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I had to revert this with http://trac.webkit.org/changeset/155162 because of the failing tests.

In this case this bug should be reopened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925785</commentid>
    <comment_count>15</comment_count>
      <attachid>210781</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-06 12:50:36 -0700</bug_when>
    <thetext>Created attachment 210781
Patch that deals with the layout test regressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925786</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-06 12:53:50 -0700</bug_when>
    <thetext>Attachment 210781 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/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.cpp&apos;, u&apos;Source/WebCore/dom/Position.cpp&apos;, u&apos;Source/WebCore/dom/PositionIterator.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/editing/FrameSelection.cpp&apos;, u&apos;Source/WebCore/editing/TextIterator.cpp&apos;, u&apos;Source/WebCore/editing/TypingCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLSummaryElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.h&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.h&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.h&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderFullScreen.cpp&apos;, u&apos;Source/WebCore/rendering/RenderInline.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLineBoxList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderListItem.cpp&apos;, u&apos;Source/WebCore/rendering/RenderListItem.h&apos;, u&apos;Source/WebCore/rendering/RenderMeter.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderObjectChildList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.h&apos;, u&apos;Source/WebCore/rendering/RenderRegion.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRegion.h&apos;, u&apos;Source/WebCore/rendering/RenderRuby.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRuby.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlSingleLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.h&apos;, u&apos;Source/WebCore/rendering/RenderView.cpp&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;, u&apos;Source/WebCore/rendering/RenderingAllInOne.cpp&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:7096:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 73 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>925790</commentid>
    <comment_count>17</comment_count>
      <attachid>210781</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-06 12:56:32 -0700</bug_when>
    <thetext>Comment on attachment 210781
Patch that deals with the layout test regressions

Attachment 210781 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1705478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925792</commentid>
    <comment_count>18</comment_count>
      <attachid>210782</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-06 12:57:55 -0700</bug_when>
    <thetext>Created attachment 210782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925795</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-06 13:00:36 -0700</bug_when>
    <thetext>Attachment 210782 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/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.cpp&apos;, u&apos;Source/WebCore/dom/Position.cpp&apos;, u&apos;Source/WebCore/dom/PositionIterator.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/editing/FrameSelection.cpp&apos;, u&apos;Source/WebCore/editing/TextIterator.cpp&apos;, u&apos;Source/WebCore/editing/TypingCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLSummaryElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.h&apos;, u&apos;Source/WebCore/rendering/LayoutState.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.h&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.cpp&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.h&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.h&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderFullScreen.cpp&apos;, u&apos;Source/WebCore/rendering/RenderInline.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLineBoxList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderListItem.cpp&apos;, u&apos;Source/WebCore/rendering/RenderListItem.h&apos;, u&apos;Source/WebCore/rendering/RenderMeter.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMeter.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderObjectChildList.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.cpp&apos;, u&apos;Source/WebCore/rendering/RenderProgress.h&apos;, u&apos;Source/WebCore/rendering/RenderRegion.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRegion.h&apos;, u&apos;Source/WebCore/rendering/RenderRuby.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRuby.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyBase.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.cpp&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlSingleLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.h&apos;, u&apos;Source/WebCore/rendering/RenderView.cpp&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;, u&apos;Source/WebCore/rendering/RenderingAllInOne.cpp&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:7096:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 1 in 75 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>925820</commentid>
    <comment_count>20</comment_count>
      <attachid>210782</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-06 13:24:51 -0700</bug_when>
    <thetext>Comment on attachment 210782
Patch

Attachment 210782 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1707456</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925837</commentid>
    <comment_count>21</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-06 13:53:53 -0700</bug_when>
    <thetext>Trying again in r155211.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210628</attachid>
            <date>2013-09-05 09:57:19 -0700</date>
            <delta_ts>2013-09-06 12:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>68423</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTEyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OSBAQAorMjAxMy0wOS0wNSAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBSZW5kZXJCbG9ja0Zs
b3cgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMDc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSZW5kZXJCbG9ja0Zsb3cgY2xhc3MuIFRoZSBpZGVhIGlz
IHRvIGdldCBhbGwgb2YgdGhlIGxpbmUvZmxvYXQvbWFyZ2luCisgICAgICAgIGNvZGUgb3V0IG9m
IFJlbmRlckJsb2NrIGFuZCBpbnRvIHRoZSBzdWJjbGFzcywgYW5kIHRoZW4gd2UgY2FuIG1ha2Ug
UmVuZGVyQmxvY2sgYW4gYWJzdHJhY3QKKyAgICAgICAgYmFzZS4gVGhpcyB3aWxsIHNhdmUgbWVt
b3J5IGZvciBhbGwgb2YgdGhlIGNsYXNzZXMgdGhhdCBkZXJpdmUgZnJvbSBSZW5kZXJCbG9jayBi
dXQgaGF2ZQorICAgICAgICB0aGVpciBvd24gbGF5b3V0IHN5c3RlbXMgKGUuZy4sIGZsZXhib3gs
IGdyaWQsIHRhYmxlKSwgYW5kIGl0IHdpbGwgbGV0IHVzIHRpZ2h0ZW4gdXAKKyAgICAgICAgdHlw
ZXMgdG8gbWFrZSBpdCBtb3JlIGNsZWFyIHdoZW4gd2UncmUgdGFsa2luZyBhYm91dCBibG9jayBs
YXlvdXQgY29kZSB2cy4gYSBtb3JlIGdlbmVyaWMKKyAgICAgICAgYmxvY2stbGV2ZWwgb2JqZWN0
IHRoYXQgY2FuIGhhdmUgYW55IGtpbmQgb2YgbGF5b3V0LgorCisgICAgICAgIFRoZSBvbmx5IHJl
YWwgY2hhbmdlIGhlcmUgaXMgdGhhdCBpc0Jsb2NrRmxvdygpIGhhcyBiZWVuIHJlbmFtZWQgdG8g
aXNSZW5kZXJCbG9ja0Zsb3coKSBhbmQKKyAgICAgICAgaXMgbm93IGNoZWNraW5nIGlmIHRoZSBv
YmplY3QgaXMgYSBSZW5kZXJCbG9ja0Zsb3cuIEFsbCBvZiB0aGUgYmxvY2sgc3ViY2xhc3NlcyBo
YXZlIGJlZW4gcGF0Y2hlZAorICAgICAgICB0byBiZSBhIFJlbmRlckJsb2NrIG9yIFJlbmRlckJs
b2NrRmxvdy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAg
ICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aXNDYW5k
aWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmdldElubGluZUJveEFuZE9mZnNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cHJpbWFyeURpcmVjdGlvbik6CisgICAg
ICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRp
b25JdGVyYXRvcjo6aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5s
aW5lU3R5bGVUb1B1c2hEb3duKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9j
a1BsYWNlaG9sZGVySWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25T
dGFydCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYXJldFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVP
ZmZzZXRaZXJvKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAg
ICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tG
bG93RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJTbGlkZXJUaHVt
Yik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0
YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpmaXJzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGFzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Zmlyc3RMaW5lQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TGV0dGVyQmxvY2sp
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQ2hlY2tMaW5lcyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVyRml0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2NrRmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6On5SZW5kZXJCbG9ja0Zsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjp0b1JlbmRlckJsb2NrRmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9pbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbkhhdmVCb3hJbmZvSW5SZWdpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmNsZWFyTGlu
ZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXRhaWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2Vy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
aWVsZHNldDo6UmVuZGVyRmllbGRzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVs
ZHNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZXRlcjo6UmVuZGVyTWV0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxv
Y2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpmaXJzdExpbmVT
dHlsZUZvckNhY2hlZFVuY2FjaGVkVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JSKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJCbG9ja0Zsb3cpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJQcm9ncmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6
UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSdWJ5QXNCbG9jazo6UmVuZGVyUnVieUFzQmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSdWJ5Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlCYXNlOjpSZW5kZXJSdWJ5QmFz
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1
bjo6UmVuZGVyUnVieVJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUnVieVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVD
YXB0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6UmVuZGVyVGV4dENvbnRy
b2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRUcmFja0N1ZTo6UmVuZGVyVGV4dFRyYWNrQ3VlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVy
Vmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R0Jsb2NrOjpSZW5kZXJTVkdCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorCiAyMDEzLTA5LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVmVjdG9yOjpyZWxlYXNlQnVmZmVyIHNob3VsZCByZXR1cm4gYW4g
T3duUHRyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU1MDYzKQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxMDksNiArMjEw
OSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3Bw
CiAgICAgcmVuZGVyaW5nL1JlbmRlckJSLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAogICAgIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNzIsNiArNDM3Miw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFyZW5hLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJ
KHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTExNTQsNiArMTE1NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJBcHBsZXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3BwIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgXAogICAgIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTY2Myw2ICs5NjYzLDIw
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFJlbmRlckJsb2NrRmxvdy5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzA2LDYgKzQ3MDYsOCBAQAogCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBB
QzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07
CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUJDMTBENzY3MTdEOEVFNkUwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4
RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgKi87IH07CisJCUJDMTBENzY4MTdE
OEVFNzEwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5k
ZXJCbG9ja0Zsb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0MUNEMDA5
RTIzNDkgLyogQmFyUHJvcC5jcHAgKi87IH07CiAJCUJDMTI0RUU4MEMyNjQxQ0QwMDlFMjM0OSAv
KiBCYXJQcm9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oICovOyB9OwogCQlCQzEyNEVG
RjBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUZEMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0Jh
clByb3AuY3BwICovOyB9OwpAQCAtMTIwMTIsNiArMTIwMTQsOCBAQAogCQlCQ0ZCMkU1RDA5NzlF
NDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJlbmEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZW5hLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNS
ZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMTAwQzFCNTgzNzAw
MjAyMzVGIC8qIEpTUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDhGMEVBRDE1QzIwMEMx
RDZGNyAvKiBMZW5ndGhCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVu
Z3RoQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM4Miw2ICsyMDM4Niw4
IEBACiAJCQkJQkNFQTQ4MUYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckFyZW5hLmggKi8sCiAJ
CQkJQkNFQTQ4MjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmNwcCAqLywKIAkJCQlC
Q0VBNDgyMTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQmxvY2suaCAqLywKKwkJCQlCQ0ZCNDVG
NDE3RDhFNDk0MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLywKKwkJCQlCQ0ZCNDVG
MzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8sCiAJCQkJQkNFQTQ4MTMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAgKi8sCiAJCQkJQkNF
QTQ4MjIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5jcHAgKi8sCiAJCQkJQkNFQTQ4MjMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5oICovLApAQCAtMjQ1MzUsNiArMjQ1NDEsNyBA
QAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTE2QzU5MzE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1OTUxN0NGRTE3MjAwODUy
QzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMxMEQ3
NjgxN0Q4RUU3MTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yNzU1Niw2ICsyNzU2Myw3IEBACiAJCQkJRkJCMEM1QjcxN0JCRDYyNjAwM0QzNjc3IC8qIENT
U0ZpbHRlckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkUxNkM1OTIxN0NGRTE3
MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkUxNkM1OTQxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBCiAgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aGFzVGFnTmFtZShzcGFuVGFnKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0g
ICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgbV9yZW5kZXJlci0+Y2hpbGRyZW5J
bmxpbmUoKSAmJiAhY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSkKKyAgICBpZiAobV9yZW5kZXJlci0+
aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBtX3JlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmICFj
YW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gIXRvUmVuZGVyQmxvY2sobV9y
ZW5kZXJlciktPmZpcnN0TGluZUJveCgpICYmICFtb3VzZUJ1dHRvbkxpc3RlbmVyKCk7CiAgICAg
CiAgICAgLy8gaWdub3JlIGltYWdlcyBzZWVtaW5nbHkgdXNlZCBhcyBzcGFjZXJzCkBAIC0yNTYy
LDcgKzI1NjIsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqCiAg
ICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShmb290ZXJUYWcpICYmICFpc0Rlc2NlbmRh
bnRPZkVsZW1lbnRUeXBlKGFydGljbGVUYWcpICYmICFpc0Rlc2NlbmRhbnRPZkVsZW1lbnRUeXBl
KHNlY3Rpb25UYWcpKQogICAgICAgICByZXR1cm4gRm9vdGVyUm9sZTsKIAotICAgIGlmIChtX3Jl
bmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlckJsb2Nr
RmxvdygpKQogICAgICAgICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBl
bGVtZW50IGRvZXMgbm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFj
Y2Vzc2liaWxpdHkgc2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBA
QCBib29sIFBvc2l0aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9k
ZS0+aGFzVGFnTmFtZShodG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
LSAgICBpZiAocmVuZGVyZXItPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKHRvUmVuZGVyQmxvY2socmVuZGVyZXIp
LT5sb2dpY2FsSGVpZ2h0KCkgfHwgbV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7
CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2Nl
bmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0Rmly
c3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0
Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsKQEAgLTExODUsNyArMTE4NSw3IEBAIHZvaWQgUG9zaXRp
b246OmdldElubGluZUJveEFuZE9mZnNldChFQWYKIAogICAgIGlmICghcmVuZGVyZXItPmlzVGV4
dCgpKSB7CiAgICAgICAgIGlubGluZUJveCA9IDA7Ci0gICAgICAgIGlmIChjYW5IYXZlQ2hpbGRy
ZW5Gb3JFZGl0aW5nKGRlcHJlY2F0ZWROb2RlKCkpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygp
ICYmIGhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVy
KSkgeworICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhkZXByZWNhdGVkTm9k
ZSgpKSAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpIHsKICAgICAgICAgICAgIC8v
IFRyeSBhIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9zaXRpb24gd2l0aCBwb3NzaWJseSBvcHBvc2l0
ZSBlZGl0YWJpbGl0eS4gVGhpcyBoZWxwcyBpbiBjYXNlIHx0aGlzfCBpcyBpbgogICAgICAgICAg
ICAgLy8gYW4gZWRpdGFibGUgYmxvY2sgYnV0IHN1cnJvdW5kZWQgYnkgbm9uLWVkaXRhYmxlIHBv
c2l0aW9ucy4gSXQgYWN0cyB0byBuZWdhdGUgdGhlIGxvZ2ljIGF0IHRoZSBiZWdpbm5pbmcKICAg
ICAgICAgICAgIC8vIG9mIFJlbmRlck9iamVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKCkuCkBA
IC0xMzMzLDcgKzEzMzMsNyBAQCBUZXh0RGlyZWN0aW9uIFBvc2l0aW9uOjpwcmltYXJ5RGlyZWN0
aW9uCiB7CiAgICAgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uID0gTFRSOwogICAgIGZv
ciAoY29uc3QgUmVuZGVyT2JqZWN0KiByID0gbV9hbmNob3JOb2RlLT5yZW5kZXJlcigpOyByOyBy
ID0gci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKHItPmlzQmxvY2tGbG93KCkpIHsKKyAgICAg
ICAgaWYgKHItPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAgIHByaW1hcnlEaXJl
Y3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIFBvc2l0aW9uSXRlcmF0b3I6
OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFibGVFbGVtZW50KG1fYW5jaG9yTm9kZSkg
fHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZSkpCiAgICAgICAgIHJldHVybiAo
YXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNl
clNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOwogCi0gICAgaWYgKCFtX2Fu
Y2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkp
IHsKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiByZW5kZXJl
ci0+aXNSZW5kZXJCbG9ja0Zsb3coKSkgewogICAgICAgICBpZiAodG9SZW5kZXJCbG9jayhyZW5k
ZXJlciktPmxvZ2ljYWxIZWlnaHQoKSB8fCBtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoYm9keVRh
ZykpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3Vz
RGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
YXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNo
b3JOb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgdm9p
ZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZQogCiAgICAgLy8gU2luY2UgYWRk
SW5saW5lU3R5bGVJZk5lZWRlZCBjYW4ndCBhZGQgc3R5bGVzIHRvIGJsb2NrLWZsb3cgcmVuZGVy
IG9iamVjdHMsIGFkZCBzdHlsZSBhdHRyaWJ1dGUgaW5zdGVhZC4KICAgICAvLyBGSVhNRTogYXBw
bHlJbmxpbmVTdHlsZVRvUmFuZ2Ugc2hvdWxkIGJlIHVzZWQgaGVyZSBpbnN0ZWFkLgotICAgIGlm
ICgobm9kZS0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSB8fCBub2RlLT5jaGlsZE5vZGVDb3Vu
dCgpKSAmJiBub2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKKyAgICBpZiAoKG5vZGUtPnJlbmRlcmVy
KCktPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9k
ZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxl
bWVudChub2RlKSwgc3R5bGVBdHRyLCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NzQsNyArODc0LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6YQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29udGFpbmVyLT5yZW5kZXJlcigp
OwotICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlm
ICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICAvLyBhcHBlbmQgdGhlIHBsYWNlaG9sZGVyIHRvIG1ha2Ugc3Vy
ZSBpdCBmb2xsb3dzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAx
NTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MjUsNyArMTQyNSw3IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3Jp
dGluZ0RpcmUKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0g
ICAgaWYgKCFyZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkgeworICAgIGlmICghcmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFp
bmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJ
KHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMgUmVuZGVy
T2JqZWN0KiBjYXJldFJlbmRlcmVyKE5vZGUqCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8g
aWYgY2FyZXROb2RlIGlzIGEgYmxvY2sgYW5kIGNhcmV0IGlzIGluc2lkZSBpdCB0aGVuIGNhcmV0
IHNob3VsZCBiZSBwYWludGVkIGJ5IHRoYXQgYmxvY2sKLSAgICBib29sIHBhaW50ZWRCeUJsb2Nr
ID0gcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2Rl
KTsKKyAgICBib29sIHBhaW50ZWRCeUJsb2NrID0gcmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93
KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2RlKTsKICAgICByZXR1cm4gcGFpbnRlZEJ5
QmxvY2sgPyByZW5kZXJlciA6IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gMTU1MDYz
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MTgsNyArOTE4LDcgQEAgYm9vbCBUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2Vu
dE5vZGVPZgogICAgIC8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIHJhbmdlIHdlIGFyZSBpdGVyYXRp
bmcgb3ZlciBjb250YWlucyBodWdlIHNlY3Rpb25zIG9mIHVucmVuZGVyZWQgY29udGVudCwgCiAg
ICAgLy8gd2Ugd291bGQgY3JlYXRlIFZpc2libGVQb3NpdGlvbnMgb24gZXZlcnkgY2FsbCB0byB0
aGlzIGZ1bmN0aW9uIHdpdGhvdXQgdGhpcyBjaGVjay4KICAgICBpZiAoIW1fbm9kZS0+cmVuZGVy
ZXIoKSB8fCBtX25vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFCi0gICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93KCkgJiYgIXRv
UmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVpZ2h0KCkgJiYgIW1fbm9kZS0+aGFz
VGFnTmFtZShib2R5VGFnKSkpCisgICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzUmVu
ZGVyQmxvY2tGbG93KCkgJiYgIXRvUmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVp
Z2h0KCkgJiYgIW1fbm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIC8vIFRoZSBzdGFydFBvcy5pc05vdE51bGwoKSBjaGVjayBpcyBuZWVkZWQg
YmVjYXVzZSB0aGUgc3RhcnQgY291bGQgYmUgYmVmb3JlIHRoZSBib2R5LApJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDQsNyArNDA0LDcgQEAgYm9vbCBUeXBpbmdDb21tYW5kOjptYWtlRWRpdGFibGVSb290RW1w
dAogCiAgICAgaWYgKHJvb3QtPmZpcnN0Q2hpbGQoKSA9PSByb290LT5sYXN0Q2hpbGQoKSAmJiBy
b290LT5maXJzdEVsZW1lbnRDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxlbWVudENoaWxkKCktPmhh
c1RhZ05hbWUoYnJUYWcpKSB7CiAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc2luZ2xlIGNoaWxk
IGFuZCBpdCBjb3VsZCBiZSBhIHBsYWNlaG9sZGVyLCBsZWF2ZSBpdCBhbG9uZS4KLSAgICAgICAg
aWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSkK
KyAgICAgICAgaWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNSZW5k
ZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5MCw3ICsxMjkwLDcgQEAgYm9vbCBpc0Jsb2NrRmxvd0VsZW1lbnQoY29uc3QgTm9kZSog
bm9kZQogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAg
cmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpOworICAgIHJldHVybiBy
ZW5kZXJlciAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKTsKIH0KIAogRWxlbWVudCog
ZGVwcmVjYXRlZEVuY2xvc2luZ0Jsb2NrRmxvd0VsZW1lbnQoTm9kZSogbm9kZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBIVE1MRWxlbWVu
dCogc2xpZGVyVHJhY2tFbGVtZW50T2YoTm9kZSogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiBSZW5kZXJTbGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVy
VGh1bWJFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Niw3ICs5Niw3IEBAIEhUTUxFbGVtZW50KiBzbGlkZXJUcmFj
a0VsZW1lbnRPZihOb2RlKikKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotY2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsK
IHB1YmxpYzoKICAgICBSZW5kZXJTbGlkZXJUaHVtYihTbGlkZXJUaHVtYkVsZW1lbnQqKTsKICAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2UoUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24gMTU1MDYz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRT
dGF0ZSogcHIKICAgICAgICAgY29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihyZW5kZXJl
cik7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3IGdyaWQgdG8gdHJhY2ssIHRoZW4gYWRkIGl0
IHRvIG91ciBzZXQuCi0gICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkK
KyAgICBpZiAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6Omlu
aXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAg
ICBlc3RhYmxpc2hMaW5lR3JpZCh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKSk7CiAKICAgICAvLyBG
SVhNRTogPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQzPiBBcHBs
eSBjb250cm9sIGNsaXAgaWYgcHJlc2VudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczMSw3ICsxNzMxLDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheQogICAgICAgICBpZiAo
b2xkSGVpZ2h0ID4gbmV3SGVpZ2h0ICYmIG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdo
dCAmJiAhY2hpbGRyZW5JbmxpbmUoKSkgewogICAgICAgICAgICAgLy8gT25lIG9mIG91ciBjaGls
ZHJlbidzIGZsb2F0cyBtYXkgaGF2ZSBiZWNvbWUgYW4gb3ZlcmhhbmdpbmcgZmxvYXQgZm9yIHVz
LiBXZSBuZWVkIHRvIGxvb2sgZm9yIGl0LgogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNCbG9ja0Zsb3coKSAmJiAhY2hpbGQt
PmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAgICAgICAgIGlm
IChjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhY2hpbGQtPmlzRmxvYXRpbmdPck91dE9m
Rmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxv
Y2sgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nr
LT5sb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20oKSArIGJsb2NrLT5sb2dpY2FsVG9wKCkgPiBuZXdI
ZWlnaHQpCiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9j
aywgZmFsc2UpOwpAQCAtMjI2OSw3ICsyMjY5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
Y29sbGFwc2VNYXJnaW5zKAogICAgIExheW91dFVuaXQgb2xkTG9naWNhbEhlaWdodCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxUb3ApOwogICAgIFJlbmRl
ck9iamVjdCogcHJldiA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICBpZiAocHJldiAm
JiBwcmV2LT5pc0Jsb2NrRmxvdygpICYmICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpIHsKKyAgICBpZiAocHJldiAmJiBwcmV2LT5pc1JlbmRlckJsb2NrRmxvdygpICYm
ICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgUmVu
ZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhwcmV2KTsKICAgICAgICAgaWYgKGJsb2Nr
LT5jb250YWluc0Zsb2F0cygpICYmICFibG9jay0+YXZvaWRzRmxvYXRzKCkgJiYgKGJsb2NrLT5s
b2dpY2FsVG9wKCkgKyBibG9jay0+bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkpID4gbG9naWNh
bFRvcCkgCiAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9jaywgZmFsc2UpOwpA
QCAtMzY5Miw3ICszNjkyLDcgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMo
UmVuZAogICAgIC8vIEZJWE1FOiBvdmVyZmxvdzogYXV0by9zY3JvbGwgcmVnaW9ucyBuZWVkIG1v
cmUgbWF0aCBoZXJlLCBzaW5jZSBwYWludGluZyBpbiB0aGUgYm9yZGVyIGJveCBpcyBkaWZmZXJl
bnQgZnJvbSBwYWludGluZyBpbiB0aGUgcGFkZGluZyBib3ggKG9uZSBpcyBzY3JvbGxlZCwgdGhl
IG90aGVyIGlzCiAgICAgLy8gZml4ZWQpLgogICAgIEdhcFJlY3RzIHJlc3VsdDsKLSAgICBpZiAo
IWlzQmxvY2tGbG93KCkpIC8vIEZJWE1FOiBNYWtlIG11bHRpLWNvbHVtbiBzZWxlY3Rpb24gZ2Fw
IGZpbGxpbmcgd29yayBzb21lZGF5LgorICAgIGlmICghaXNSZW5kZXJCbG9ja0Zsb3coKSkgLy8g
RklYTUU6IE1ha2UgbXVsdGktY29sdW1uIHNlbGVjdGlvbiBnYXAgZmlsbGluZyB3b3JrIHNvbWVk
YXkuCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBpZiAoaGFzQ29sdW1ucygpIHx8IGhh
c1RyYW5zZm9ybSgpIHx8IHN0eWxlKCktPmNvbHVtblNwYW4oKSkgewpAQCAtNjc3MSw3ICs2Nzcx
LDcgQEAgaW50IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYQogCiBpbnQgUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJveEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQmxv
Y2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKSkKKyAgICBp
ZiAoIWlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVi
eVJ1bigpKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkp
IHsKQEAgLTY4MDAsNyArNjgwMCw3IEBAIGludCBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNl
bGluZShMaW4KIAogaW50IFJlbmRlckJsb2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKExpbmVEaXJl
Y3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygp
IHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKCFpc1Jl
bmRlckJsb2NrRmxvdygpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkp
CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChjaGlsZHJlbklubGluZSgpKSB7CkBAIC02
ODYxLDcgKzY4NjEsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJsb2Nr
CiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBidXR0b25zIGFyZSBpbXBsZW1lbnRlZCB3
aXRoIGFsaWduLWl0ZW1zIGluc3RlYWQKICAgICAgICAgLy8gb2YgZmxleGJveC4KICAgICAgICAg
aWYgKGZpcnN0TGluZUJsb2NrLT5pc1JlcGxhY2VkKCkgfHwgZmlyc3RMaW5lQmxvY2stPmlzRmxv
YXRpbmcoKQotICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJz
dENoaWxkKCkgIT0gZmlyc3RMaW5lQmxvY2sgfHwgIXBhcmVudEJsb2NrLT5pc0Jsb2NrRmxvdygp
CisgICAgICAgICAgICB8fCAhcGFyZW50QmxvY2sgfHwgcGFyZW50QmxvY2stPmZpcnN0Q2hpbGQo
KSAhPSBmaXJzdExpbmVCbG9jayB8fCAhcGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2tGbG93KCkK
ICAgICAgICAgICAgIHx8IChwYXJlbnRCbG9jay0+aXNGbGV4aWJsZUJveCgpICYmICFwYXJlbnRC
bG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2so
KSk7CkBAIC02OTIwLDcgKzY5MjAsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmlu
ZEZpcnN0TGV0CiAKICAgICAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRCbG9jayA9IGZpcnN0TGV0
dGVyQmxvY2stPnBhcmVudCgpOwogICAgICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBs
YWNlZCgpIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmlyc3RDaGlsZCgpICE9IGZp
cnN0TGV0dGVyQmxvY2sgfHwgCi0gICAgICAgICAgICAhcGFyZW50QmxvY2stPmlzQmxvY2tGbG93
KCkgfHwgKHBhcmVudEJsb2NrLT5pc0ZsZXhpYmxlQm94KCkgJiYgIXBhcmVudEJsb2NrLT5pc1Jl
bmRlckJ1dHRvbigpKSkKKyAgICAgICAgICAgICFwYXJlbnRCbG9jay0+aXNSZW5kZXJCbG9ja0Zs
b3coKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAhcGFyZW50QmxvY2stPmlz
UmVuZGVyQnV0dG9uKCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGZpcnN0TGV0
dGVyQmxvY2sgPSBwYXJlbnRCbG9jazsKICAgICB9IApAQCAtNzEwMiw3ICs3MTAyLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogc3RhdGljIGJvb2wgc2hvdWxkQ2hl
Y2tMaW5lcyhSZW5kZXJPYmplY3QqIG9iaikKIHsKICAgICByZXR1cm4gIW9iai0+aXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFvYmotPmlzUnVuSW4oKQotICAgICAgICAgICAg
JiYgb2JqLT5pc0Jsb2NrRmxvdygpICYmIG9iai0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkK
KyAgICAgICAgICAgICYmIG9iai0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBvYmotPnN0eWxlKCkt
PmhlaWdodCgpLmlzQXV0bygpCiAgICAgICAgICAgICAmJiAoIW9iai0+aXNEZXByZWNhdGVkRmxl
eGlibGVCb3goKSB8fCBvYmotPnN0eWxlKCktPmJveE9yaWVudCgpID09IFZFUlRJQ0FMKTsKIH0K
IApAQCAtNzIwNyw3ICs3MjA3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVy
Rml0KExheQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94KiBvYmog
PSBmaXJzdENoaWxkQm94KCk7IG9iajsgb2JqID0gb2JqLT5uZXh0U2libGluZ0JveCgpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCFvYmotPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQo
KSkgewotICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc0Jsb2NrRmxvdygpICYmICFvYmot
Pmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc1JlbmRl
ckJsb2NrRmxvdygpICYmICFvYmotPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdG9SZW5kZXJCbG9jayhvYmopLT5hZGp1c3RGb3JCb3JkZXJGaXQoeCArIG9iai0+
eCgpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9iai0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGFyZSBhIHJlcGxhY2VkIGVsZW1lbnQgb3Igc29tZSBraW5kIG9mIG5vbi1ibG9jay1m
bG93IG9iamVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShy
ZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtNjI3LDcgKzYyNyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJCbG9jaygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiAo
IWlzSW5saW5lKCkgfHwgaXNSZXBsYWNlZCgpKSAmJiAhaXNUYWJsZSgpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gaXNJbmxpbmUoKSAmJiBpc1JlcGxhY2VkKCk7IH0KIAogICAgIHZvaWQgbWFrZUNo
aWxkcmVuTm9uSW5saW5lKFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQgPSAwKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0
aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSogbm9k
ZSkKKyAgICA6IFJlbmRlckJsb2NrKG5vZGUpCit7Cit9CisKK1JlbmRlckJsb2NrRmxvdzo6flJl
bmRlckJsb2NrRmxvdygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0Zmlz
aC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMsICBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUmVuZGVyQmxvY2tGbG93X2gKKyNkZWZpbmUg
UmVuZGVyQmxvY2tGbG93X2gKKworI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2tGbG93IDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSop
OworICAgIHZpcnR1YWwgflJlbmRlckJsb2NrRmxvdygpOworICAgIAorICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckJsb2NrRmxvdygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KK307CisKK2lubGluZSBSZW5kZXJCbG9ja0Zsb3cmIHRvUmVuZGVyQmxvY2tGbG93KFJlbmRl
ck9iamVjdCYgb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KG9iamVjdC5pc1JlbmRlckJsb2NrRmxvdygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyQmxvY2tGbG93Jj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCit7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyQmxvY2tGbG93
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJCbG9ja0Zsb3cmPihvYmpl
Y3QpOworfQorCitpbmxpbmUgUmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhSZW5k
ZXJPYmplY3QqIG9iamVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3Qg
UmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyQmxvY2tGbG93
KGNvbnN0IFJlbmRlckJsb2NrRmxvdyopOwordm9pZCB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UmVuZGVyQmxvY2tGbG93X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwMyw3ICsyMTAzLDcgQEAgdm9pZCBSZW5kZXJC
b3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjbwogICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCkt
Pm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQogICAgIAotICAgIGlmIChwb3NpdGlv
biAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRpb24gJiYgby0+
aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocG9zaXRpb24gIT0g
QWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0aW9uICYmIG8tPmhhc0Nv
bHVtbnMoKSAmJiBvLT5pc1JlbmRlckJsb2NrRmxvdygpKSB7CiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICB0b1JlbmRlckJsb2Nr
KG8pLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50UmVjdCk7CiAgICAgICAgIHRvcExlZnQg
PSByZXBhaW50UmVjdC5sb2NhdGlvbigpOwpAQCAtNDA5Myw3ICs0MDkzLDcgQEAgVmlzaWJsZVBv
c2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQbwogICAgICAgICBhZGp1c3RlZFBvaW50Lm1v
dmVCeShsb2NhdGlvbigpKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3Qg
PSBmaXJzdENoaWxkKCk7IHJlbmRlck9iamVjdDsgcmVuZGVyT2JqZWN0ID0gcmVuZGVyT2JqZWN0
LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGls
ZCgpICYmICFyZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNCbG9j
a0Zsb3coKSApCisgICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFy
ZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNSZW5kZXJCbG9ja0Zs
b3coKSApCiAgICAgICAgICAgICB8fCByZW5kZXJPYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlz
aW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHMpOwogCi0gICAg
Ym9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRpbmco
KSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYgIWlz
VGFibGVDZWxsKCkgJiYgaXNCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9Cisg
ICAgYm9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRp
bmcoKSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYg
IWlzVGFibGVDZWxsKCkgJiYgaXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9j
aygpOyB9CiAKIAogICAgIHZvaWQgZ2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIEludFJlY3QmIGRlc3RSZWN0
LCBJbnRQb2ludCYgcGhhc2UsIEludFNpemUmIHRpbGVTaXplKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg4LDcg
Kzk4OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKIAogICAg
ICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKHJlbGF5b3V0Q2hp
bGRyZW4gfHwgKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgpLT53aWR0aCgp
LmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0g
ICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmIGNoaWxk
LT5pc0Jsb2NrRmxvdygpKSkgeworICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHlsZSgpLT5oZWln
aHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkpIHsKICAgICAgICAg
ICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAKICAg
ICAgICAgICAgIC8vIERpcnR5IGFsbCB0aGUgcG9zaXRpb25lZCBvYmplY3RzLgpAQCAtOTk4LDcg
Kzk5OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNC
bG9ja0Zsb3coKSkKKyAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8o
KSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIG1heExpbmVDb3Vu
dCA9IG1heChtYXhMaW5lQ291bnQsIHRvUmVuZGVyQmxvY2soY2hpbGQpLT5saW5lQ291bnQoKSk7
CiAgICAgfQogCkBAIC0xMDEwLDcgKzEwMTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveDo6YXBwbHlMCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoUmVuZGVyQm94KiBj
aGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkg
ewotICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8
ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc0Jsb2NrRmxv
dygpKQorICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQp
IHx8ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc1JlbmRl
ckJsb2NrRmxvdygpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVuZGVyQmxv
Y2sqIGJsb2NrQ2hpbGQgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKQEAgLTEwODcsNyArMTA4Nyw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpjbGVhckwKIAogICAgICAgICBj
aGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKChjaGlsZC0+aXNSZXBsYWNl
ZCgpICYmIChjaGlsZC0+c3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCBjaGlsZC0+c3R5
bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQotICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHls
ZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNCbG9ja0Zsb3coKSkpIHsKKyAgICAg
ICAgICAgIHx8IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlz
UmVuZGVyQmxvY2tGbG93KCkpKSB7CiAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xh
eW91dCh0cnVlKTsKIAogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1JlbmRlckJsb2NrKCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtl
ci5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXRhaWxzTWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJEZXRh
aWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJr
ZXIuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRldGFpbHNNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTEgKzIyLDExIEBACiAjZGVm
aW5lIFJlbmRlckRldGFpbHNNYXJrZXJfaAogCiAjaWYgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkK
LSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlckRldGFpbHNNYXJrZXIgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRGV0YWlsc01hcmtlciBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckRldGFpbHNNYXJr
ZXIoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWVsZHNldC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWVsZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyRmll
bGRzZXQ6OlJlbmRlckZpZWxkc2V0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9j
ayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCShyZXZpc2lvbiAxNTUw
NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAjaWZuZGVmIFJlbmRlckZpZWxkc2V0X2gKICNk
ZWZpbmUgUmVuZGVyRmllbGRzZXRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBS
ZW5kZXJGaWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJG
aWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFJlbmRlckZpZWxkc2V0KEVsZW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCShyZXZpc2lv
biAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IGludCBkZWZh
dWx0V2lkdGhOdW1DaGFycyA9IDM0OwogY29uc3QgaW50IGJ1dHRvblNoYWRvd0hlaWdodCA9IDI7
CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCkKLSAgICA6IFJlbmRlckJsb2NrKGlucHV0KQorICAgIDogUmVu
ZGVyQmxvY2tGbG93KGlucHV0KQogICAgICwgbV9jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKGlucHV0
LT5jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKCkpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAkocmV2aXNpb24gMTU1
MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbF9oCiAKLSNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVu
dDsKIC8vIHN1ZmZpY2llbnQgc3BhY2UgdG8gZHJhdyBhIGZpbGUgaWNvbiBhbmQgZmlsZW5hbWUu
IFRoZSBSZW5kZXJCdXR0b24gaGFzIGEgc2hhZG93IG5vZGUKIC8vIGFzc29jaWF0ZWQgd2l0aCBp
dCB0byByZWNlaXZlIGNsaWNrL2hvdmVyIGV2ZW50cy4KIAotY2xhc3MgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVh
bCB+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJGbG93VGhyZWFk
OjpSZW5kZXJGbG93VGhyZWFkKCkKLSAgICA6IFJlbmRlckJsb2NrKDApCisgICAgOiBSZW5kZXJC
bG9ja0Zsb3coMCkKICAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQo
ZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgUmVu
ZGVyRmxvd1RocmVhZF9oCiAKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAi
UmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVuZGVyUmVnaQog
Ly8gYW5kIG5vZGVBdFBvaW50IG1ldGhvZHMgdG8gdGhpcyBvYmplY3QuIEVhY2ggUmVuZGVyUmVn
aW9uIHdpbGwgYWN0dWFsbHkgYmUgYSB2aWV3UG9ydAogLy8gb2YgdGhlIFJlbmRlckZsb3dUaHJl
YWQuCiAKLWNsYXNzIFJlbmRlckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFz
cyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGbG93VGhyZWFkKCk7CiAgICAgdmlydHVhbCB+UmVuZGVyRmxvd1RocmVhZCgpIHsg
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKQEAgLTM2LDEwICszNywxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xh
c3MgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcihS
ZW5kZXJGdWxsU2NyZWVuKiBvd25lcikgCi0gICAgICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICAg
ICAgOiBSZW5kZXJCbG9ja0Zsb3coMCkKICAgICAgICAgLCBtX293bmVyKG93bmVyKSAKICAgICB7
CiAgICAgICAgIHNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZvd25lci0+ZG9jdW1lbnQoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21w
dXRlUmVjdEZvclJlcGFpbnQKIAogICAgIExheW91dFBvaW50IHRvcExlZnQgPSByZWN0LmxvY2F0
aW9uKCk7CiAKLSAgICBpZiAoby0+aXNCbG9ja0Zsb3coKSAmJiAhc3R5bGUoKS0+aGFzT3V0T2ZG
bG93UG9zaXRpb24oKSkgeworICAgIGlmIChvLT5pc1JlbmRlckJsb2NrRmxvdygpICYmICFzdHls
ZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKSB7CiAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9
IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgIGlmIChjYi0+aGFzQ29sdW1ucygpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHRvcExlZnQsIHJlY3Quc2l6ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAko
cmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
b3hMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw3IEBAIGJvb2wgUmVuZGVy
TGluZUJveExpc3Q6OmhpdFRlc3QoUmVuZGVyQm8KIAogdm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIFJlbmRl
ck9iamVjdCogY2hpbGQpCiB7Ci0gICAgaWYgKCFjb250YWluZXItPnBhcmVudCgpIHx8IChjb250
YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVlZHNMYXlvdXQoKSB8
fCAhY29udGFpbmVyLT5pc0Jsb2NrRmxvdygpKSkpCisgICAgaWYgKCFjb250YWluZXItPnBhcmVu
dCgpIHx8IChjb250YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVl
ZHNMYXlvdXQoKSB8fCAhY29udGFpbmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFpbmVy
LT5pc1JlbmRlcklubGluZSgpID8gdG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogUmVuZGVyTWV0ZXI6OlJlbmRlck1ldGVyKEhUTUxFbGVtZW50KiBl
bGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxv
dyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUgUmVuZGVy
TWV0ZXJfaAogCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCi0jaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRn
ZXQuaCIKIAogCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTE1ldGVyRWxlbWVudDsKIAotY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJNZXRlcihIVE1MRWxlbWVudCopOwog
ICAgIHZpcnR1YWwgflJlbmRlck1ldGVyKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZpc2lvbiAxNTUwNjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6UmVuZGVyTXVsdGlD
b2x1bW5CbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkK
KyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogICAgICwgbV9mbG93VGhyZWFkKDApCiAg
ICAgLCBtX2NvbHVtbkNvdW50KDEpCiAgICAgLCBtX2NvbHVtbldpZHRoKDApCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgJKHJl
dmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtbkJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywxMyBAQAogI2lmbmRlZiBS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKICNkZWZpbmUgUmVuZGVyTXVsdGlDb2x1bW5CbG9ja19o
CiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZDsKIAotY2xhc3MgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhFbGVt
ZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCkpIHsKLSAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93
KCkpIHsKKyAgICAgICAgaWYgKG8tPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAg
IFJlbmRlckJsb2NrKiBjYiA9IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgICAgICBpZiAoY2It
Pmhhc0NvbHVtbnMoKSkKICAgICAgICAgICAgICAgICBjYi0+YWRqdXN0UmVjdEZvckNvbHVtbnMo
cmVjdCk7CkBAIC0xOTY0LDcgKzE5NjQsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKFN0eWxlCiAKICAgICAgICAgc19hZmZlY3RzUGFyZW50QmxvY2sgPSBpc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkKICAgICAgICAgICAgICYmICghbmV3U3R5bGUtPmlzRmxv
YXRpbmcoKSAmJiAhbmV3U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCi0gICAgICAgICAg
ICAmJiBwYXJlbnQoKSAmJiAocGFyZW50KCktPmlzQmxvY2tGbG93KCkgfHwgcGFyZW50KCktPmlz
UmVuZGVySW5saW5lKCkpOworICAgICAgICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5p
c1JlbmRlckJsb2NrRmxvdygpIHx8IHBhcmVudCgpLT5pc1JlbmRlcklubGluZSgpKTsKIAogICAg
ICAgICBzX25vTG9uZ2VyQWZmZWN0c1BhcmVudEJsb2NrID0gKCghaXNGbG9hdGluZygpICYmIG5l
d1N0eWxlLT5pc0Zsb2F0aW5nKCkpIHx8ICghaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbmV3
U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpKQogICAgICAgICAgICAgJiYgcGFyZW50KCkg
JiYgcGFyZW50KCktPmlzUmVuZGVyQmxvY2soKTsKQEAgLTI3OTYsNyArMjc5Niw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBmaXJzdExpbmUKICAgICBpZiAocmVuZGVyZXItPmlz
QmVmb3JlT3JBZnRlckNvbnRlbnQoKSkKICAgICAgICAgcmVuZGVyZXJGb3JGaXJzdExpbmVTdHls
ZSA9IHJlbmRlcmVyLT5wYXJlbnQoKTsKIAotICAgIGlmIChyZW5kZXJlckZvckZpcnN0TGluZVN0
eWxlLT5pc0Jsb2NrRmxvdygpKSB7CisgICAgaWYgKHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUt
PmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBmaXJzdExp
bmVCbG9jayA9IHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZpcnN0TGluZUJsb2NrKCkpIHsK
ICAgICAgICAgICAgIGlmICh0eXBlID09IENhY2hlZCkKICAgICAgICAgICAgICAgICByZXR1cm4g
Zmlyc3RMaW5lQmxvY2stPmdldENhY2hlZFBzZXVkb1N0eWxlKEZJUlNUX0xJTkUsIHN0eWxlKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1
NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIxLDcgKzMyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUHNldWRvRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgp
OyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNCUigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzUw
LDYgKzM0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxv
Y2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJTVkdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIFJlbmRlck9iamVj
dCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW0KIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBuZXdD
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBub3RpZnlSZW5kZXJlcikKIHsK
ICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnQoKSk7Ci0gICAgQVNTRVJUKCFvd25lci0+aXNC
bG9ja0Zsb3coKSB8fCAoIW5ld0NoaWxkLT5pc1RhYmxlU2VjdGlvbigpICYmICFuZXdDaGlsZC0+
aXNUYWJsZVJvdygpICYmICFuZXdDaGlsZC0+aXNUYWJsZUNlbGwoKSkpOworICAgIEFTU0VSVCgh
b3duZXItPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKCFuZXdDaGlsZC0+aXNUYWJsZVNlY3Rpb24o
KSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVDZWxsKCkp
KTsKIAogICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgJiYg
YmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9IG93bmVyKQogICAgICAgICBiZWZvcmVDaGlsZCA9IGJl
Zm9yZUNoaWxkLT5wYXJlbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJQcm9n
cmVzczo6UmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJC
bG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX3Bv
c2l0aW9uKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbikKICAgICAsIG1fYW5p
bWF0aW9uU3RhcnRUaW1lKDApCiAgICAgLCBtX2FuaW1hdGlvblJlcGVhdEludGVydmFsKDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDEzICsyMiwxMyBAQAogI2RlZmluZSBSZW5kZXJQcm9ncmVzc19o
CiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFM
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFMIDogcHVi
bGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyUHJvZ3Jl
c3MoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVzcygpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVsZW1lbnQs
IFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50
KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxv
d1RocmVhZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzVmFs
aWQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCShy
ZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpZm5kZWYgUmVuZGVyUmVnaW9u
X2gKICNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisj
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRh
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUmVuZGVy
Qm94UmVnaW9uSW5mbzsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ7CiAKLWNsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CitjbGFzcyBSZW5kZXJSZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24oRWxlbWVudCosIFJlbmRlckZsb3dUaHJlYWQqKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OnJl
bW92ZUNoaWxkKFJlbgogLy89PT0gcnVieSBhcyBibG9jayBvYmplY3QgPT09CiAKIFJlbmRlclJ1
YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVu
ZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgUmVuZGVyUnVieV9oCiAjZGVmaW5lIFJlbmRl
clJ1YnlfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogfTsKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBh
cyAnZGlzcGxheTpibG9jaycgb3IgJ2Rpc3BsYXk6aW5saW5lLWJsb2NrJwotY2xhc3MgUmVuZGVy
UnVieUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVi
eUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBS
ZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzQmxv
Y2soKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNw
cAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVi
eUJhc2UoKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQog
ewogICAgIHNldElubGluZShmYWxzZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwx
MyBAQAogI2lmbmRlZiBSZW5kZXJSdWJ5QmFzZV9oCiAjZGVmaW5lIFJlbmRlclJ1YnlCYXNlX2gK
IAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAotY2xhc3Mg
UmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVy
UnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5SZW5kZXJSdWJ5QmFzZSgpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4oKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdygwKQogewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogICAgIHNldElu
bGluZSh0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
aAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBSZW5kZXJS
dWJ5UnVuX2gKICNkZWZpbmUgUmVuZGVyUnVieVJ1bl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyUnVieVRleHQ7CiAvLyBSZW5kZXJSdWJ5
UnVuIGFyZSAnaW5saW5lLWJsb2NrL3RhYmxlJyBsaWtlIG9iamVjdHMsYW5kIHdyYXAgYSBzaW5n
bGUgcGFpcmluZyBvZiBhIHJ1YnkgYmFzZSB3aXRoIGl0cyBydWJ5IHRleHQocykuCiAvLyBTZWUg
UmVuZGVyUnVieS5oIGZvciBmdXJ0aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1Y3R1cmUKIAotY2xh
c3MgUmVuZGVyUnVieVJ1biBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJSdWJ5UnVuIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UmVuZGVyUnVieVJ1bigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5k
ZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCShyZXZpc2lv
biAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaWZuZGVmIFJlbmRlclJ1YnlUZXh0
X2gKICNkZWZpbmUgUmVuZGVyUnVieVRleHRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
KyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBS
ZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgog
ICAgIFJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5VGV4
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Fw
dGlvbi5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNhcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVDYXB0
aW9uKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMTMgKzIwLDEzIEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAjZGVm
aW5lIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJlbmRlclRhYmxlOwogCi1jbGFzcyBSZW5kZXJUYWJsZUNhcHRpb24gRklOQUwgOiBwdWJsaWMg
UmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVGFibGVDYXB0aW9uIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDYXB0aW9u
KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUYWJsZUNhcHRpb24oKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiAx
NTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3N0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzOwog
ICAgIGludCBwYWRkaW5nc1syXTsKIH07CkBAIC01Nyw3ICs1Nyw3IEBAIENPTVBJTEVfQVNTRVJU
KHNpemVvZihSZW5kZXJUYWJsZUNlbGwpID0KIENPTVBJTEVfQVNTRVJUKHNpemVvZihDb2xsYXBz
ZWRCb3JkZXJWYWx1ZSkgPT0gOCwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21h
bGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVt
ZW50KQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdpZHRo
Q2hhbmdlZChmYWxzZSkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0JlZm9yZSgwKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAkocmV2aXNpb24gMTU1
MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2VsbF9oCiAj
ZGVmaW5lIFJlbmRlclRhYmxlQ2VsbF9oCiAKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlU2VjdGlv
bi5oIgogCkBAIC0zNSw3ICszNiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5J
bmRleCA9IDAKIAogZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJv
cmRlckNvbG9yLCBJbmNsdWRlQm9yZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVuZGVyVGFibGVDZWxs
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRhYmxlQ2VsbCBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clRhYmxlQ2VsbChFbGVtZW50Kik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKGlzSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoZWxlbWVu
dCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNCArMjIsMTQgQEAKICNpZm5k
ZWYgUmVuZGVyVGV4dENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJUZXh0Q29udHJvbF9oCiAKLSNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclRleHRDb250cm9s
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9sIDogcHVibGlj
IFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRy
b2woKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZShjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRl
clRleHRDb250cm9sSW5uZXJCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJUZXh0Q29udHJvbElubmVyQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KSB7IH0KKyAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2so
RWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkgeyB9CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFj
a0N1ZS5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRleHRUcmFja0N1ZTo6UmVuZGVyVGV4dFRyYWNr
Q3VlKFRleHRUcmFja0N1ZUJveCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQp
CisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKICAgICAsIG1fY3VlKGVsZW1lbnQtPmdl
dEN1ZSgpKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRU
cmFja0N1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0VHJhY2tDdWUuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRUcmFja0N1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogCkBAIC0zOCw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFRleHRUcmFja0N1ZUJveDsKIAotY2xhc3MgUmVuZGVy
VGV4dFRyYWNrQ3VlIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRl
eHRUcmFja0N1ZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAg
IGV4cGxpY2l0IFJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gqKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw3ICs1Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclZpZXc6OlJl
bmRlclZpZXcoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogUmVuZGVyQmxvY2soZG9jdW1lbnQp
CisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQpCiAgICAgLCBtX2ZyYW1lVmlldygqZG9j
dW1lbnQtPnZpZXcoKSkKICAgICAsIG1fc2VsZWN0aW9uU3RhcnQoMCkKICAgICAsIG1fc2VsZWN0
aW9uRW5kKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHJldmlz
aW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0QXJlbmEuaCIKLSNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CiBjbGFzcyBDdXN0b21GaWx0ZXJHbG9i
YWxDb250ZXh0OwogI2VuZGlmCiAKLWNsYXNzIFJlbmRlclZpZXcgRklOQUwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVmlldyBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zs
b3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclZpZXcoRG9jdW1lbnQqKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJWaWV3KCk7CkBAIC0yNTAsNyArMjUwLDcgQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBk
aXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAgICAgICAgIGlmICgh
ZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVu
ZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9j
aygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJl
ci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkg
JiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRl
LT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJT
dHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93KCkp
CiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgICAgICAgICB8fCAocmVuZGVyZXItPmlzUmVu
ZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+c2hhcGVJbnNpZGVJbmZvKCkp
CiAgICAgICAgICAgICB8fCAobV9sYXlvdXRTdGF0ZS0+c2hhcGVJbnNpZGVJbmZvKCkgJiYgcmVu
ZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiAhdG9SZW5kZXJCbG9jayhyZW5kZXJlciktPmFsbG93
c1NoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdCbG9j
azo6UmVuZGVyU1ZHQmxvY2soU1ZHRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2Nr
KGVsZW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKIHsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAkocmV2aXNp
b24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxNCArMjEsMTQgQEAKICNkZWZpbmUgUmVuZGVyU1ZH
QmxvY2tfaAogCiAjaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBSZW5k
ZXJTVkdCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJTVkdCbG9jayA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNW
R0Jsb2NrKFNWR0VsZW1lbnQqKTsKIAo=
</data>
<flag name="review"
          id="232719"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="232721"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210631</attachid>
            <date>2013-09-05 10:29:38 -0700</date>
            <delta_ts>2013-09-05 10:35:33 -0700</delta_ts>
            <desc>Patch to try to trick EWS into building.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>69095</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTEyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OSBAQAorMjAxMy0wOS0wNSAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBSZW5kZXJCbG9ja0Zs
b3cgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMDc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSZW5kZXJCbG9ja0Zsb3cgY2xhc3MuIFRoZSBpZGVhIGlz
IHRvIGdldCBhbGwgb2YgdGhlIGxpbmUvZmxvYXQvbWFyZ2luCisgICAgICAgIGNvZGUgb3V0IG9m
IFJlbmRlckJsb2NrIGFuZCBpbnRvIHRoZSBzdWJjbGFzcywgYW5kIHRoZW4gd2UgY2FuIG1ha2Ug
UmVuZGVyQmxvY2sgYW4gYWJzdHJhY3QKKyAgICAgICAgYmFzZS4gVGhpcyB3aWxsIHNhdmUgbWVt
b3J5IGZvciBhbGwgb2YgdGhlIGNsYXNzZXMgdGhhdCBkZXJpdmUgZnJvbSBSZW5kZXJCbG9jayBi
dXQgaGF2ZQorICAgICAgICB0aGVpciBvd24gbGF5b3V0IHN5c3RlbXMgKGUuZy4sIGZsZXhib3gs
IGdyaWQsIHRhYmxlKSwgYW5kIGl0IHdpbGwgbGV0IHVzIHRpZ2h0ZW4gdXAKKyAgICAgICAgdHlw
ZXMgdG8gbWFrZSBpdCBtb3JlIGNsZWFyIHdoZW4gd2UncmUgdGFsa2luZyBhYm91dCBibG9jayBs
YXlvdXQgY29kZSB2cy4gYSBtb3JlIGdlbmVyaWMKKyAgICAgICAgYmxvY2stbGV2ZWwgb2JqZWN0
IHRoYXQgY2FuIGhhdmUgYW55IGtpbmQgb2YgbGF5b3V0LgorCisgICAgICAgIFRoZSBvbmx5IHJl
YWwgY2hhbmdlIGhlcmUgaXMgdGhhdCBpc0Jsb2NrRmxvdygpIGhhcyBiZWVuIHJlbmFtZWQgdG8g
aXNSZW5kZXJCbG9ja0Zsb3coKSBhbmQKKyAgICAgICAgaXMgbm93IGNoZWNraW5nIGlmIHRoZSBv
YmplY3QgaXMgYSBSZW5kZXJCbG9ja0Zsb3cuIEFsbCBvZiB0aGUgYmxvY2sgc3ViY2xhc3NlcyBo
YXZlIGJlZW4gcGF0Y2hlZAorICAgICAgICB0byBiZSBhIFJlbmRlckJsb2NrIG9yIFJlbmRlckJs
b2NrRmxvdy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAg
ICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aXNDYW5k
aWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmdldElubGluZUJveEFuZE9mZnNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cHJpbWFyeURpcmVjdGlvbik6CisgICAg
ICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRp
b25JdGVyYXRvcjo6aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5s
aW5lU3R5bGVUb1B1c2hEb3duKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9j
a1BsYWNlaG9sZGVySWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25T
dGFydCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYXJldFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVP
ZmZzZXRaZXJvKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAg
ICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tG
bG93RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJTbGlkZXJUaHVt
Yik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0
YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpmaXJzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGFzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Zmlyc3RMaW5lQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TGV0dGVyQmxvY2sp
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQ2hlY2tMaW5lcyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVyRml0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2NrRmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6On5SZW5kZXJCbG9ja0Zsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjp0b1JlbmRlckJsb2NrRmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9pbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbkhhdmVCb3hJbmZvSW5SZWdpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmNsZWFyTGlu
ZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXRhaWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2Vy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
aWVsZHNldDo6UmVuZGVyRmllbGRzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVs
ZHNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZXRlcjo6UmVuZGVyTWV0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxv
Y2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpmaXJzdExpbmVT
dHlsZUZvckNhY2hlZFVuY2FjaGVkVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JSKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJCbG9ja0Zsb3cpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJQcm9ncmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6
UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSdWJ5QXNCbG9jazo6UmVuZGVyUnVieUFzQmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSdWJ5Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlCYXNlOjpSZW5kZXJSdWJ5QmFz
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1
bjo6UmVuZGVyUnVieVJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUnVieVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVD
YXB0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6UmVuZGVyVGV4dENvbnRy
b2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRUcmFja0N1ZTo6UmVuZGVyVGV4dFRyYWNrQ3VlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVy
Vmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R0Jsb2NrOjpSZW5kZXJTVkdCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorCiAyMDEzLTA5LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVmVjdG9yOjpyZWxlYXNlQnVmZmVyIHNob3VsZCByZXR1cm4gYW4g
T3duUHRyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU1MDYzKQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxMDksNiArMjEw
OSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3Bw
CiAgICAgcmVuZGVyaW5nL1JlbmRlckJSLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAogICAgIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNzIsNiArNDM3Miw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFyZW5hLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJ
KHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTExNTQsNiArMTE1NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJBcHBsZXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3BwIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgXAogICAgIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTY2Myw2ICs5NjYzLDIw
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFJlbmRlckJsb2NrRmxvdy5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzA2LDYgKzQ3MDYsOCBAQAogCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBB
QzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07
CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUJDMTBENzY3MTdEOEVFNkUwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4
RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgKi87IH07CisJCUJDMTBENzY4MTdE
OEVFNzEwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5k
ZXJCbG9ja0Zsb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0MUNEMDA5
RTIzNDkgLyogQmFyUHJvcC5jcHAgKi87IH07CiAJCUJDMTI0RUU4MEMyNjQxQ0QwMDlFMjM0OSAv
KiBCYXJQcm9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oICovOyB9OwogCQlCQzEyNEVG
RjBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUZEMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0Jh
clByb3AuY3BwICovOyB9OwpAQCAtMTIwMTIsNiArMTIwMTQsOCBAQAogCQlCQ0ZCMkU1RDA5NzlF
NDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJlbmEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZW5hLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNS
ZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMTAwQzFCNTgzNzAw
MjAyMzVGIC8qIEpTUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDhGMEVBRDE1QzIwMEMx
RDZGNyAvKiBMZW5ndGhCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVu
Z3RoQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM4Miw2ICsyMDM4Niw4
IEBACiAJCQkJQkNFQTQ4MUYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckFyZW5hLmggKi8sCiAJ
CQkJQkNFQTQ4MjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmNwcCAqLywKIAkJCQlC
Q0VBNDgyMTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQmxvY2suaCAqLywKKwkJCQlCQ0ZCNDVG
NDE3RDhFNDk0MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLywKKwkJCQlCQ0ZCNDVG
MzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8sCiAJCQkJQkNFQTQ4MTMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAgKi8sCiAJCQkJQkNF
QTQ4MjIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5jcHAgKi8sCiAJCQkJQkNFQTQ4MjMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5oICovLApAQCAtMjQ1MzUsNiArMjQ1NDEsNyBA
QAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTE2QzU5MzE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1OTUxN0NGRTE3MjAwODUy
QzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMxMEQ3
NjgxN0Q4RUU3MTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yNzU1Niw2ICsyNzU2Myw3IEBACiAJCQkJRkJCMEM1QjcxN0JCRDYyNjAwM0QzNjc3IC8qIENT
U0ZpbHRlckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkUxNkM1OTIxN0NGRTE3
MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkUxNkM1OTQxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBCiAgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aGFzVGFnTmFtZShzcGFuVGFnKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0g
ICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgbV9yZW5kZXJlci0+Y2hpbGRyZW5J
bmxpbmUoKSAmJiAhY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSkKKyAgICBpZiAobV9yZW5kZXJlci0+
aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBtX3JlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmICFj
YW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gIXRvUmVuZGVyQmxvY2sobV9y
ZW5kZXJlciktPmZpcnN0TGluZUJveCgpICYmICFtb3VzZUJ1dHRvbkxpc3RlbmVyKCk7CiAgICAg
CiAgICAgLy8gaWdub3JlIGltYWdlcyBzZWVtaW5nbHkgdXNlZCBhcyBzcGFjZXJzCkBAIC0yNTYy
LDcgKzI1NjIsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqCiAg
ICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShmb290ZXJUYWcpICYmICFpc0Rlc2NlbmRh
bnRPZkVsZW1lbnRUeXBlKGFydGljbGVUYWcpICYmICFpc0Rlc2NlbmRhbnRPZkVsZW1lbnRUeXBl
KHNlY3Rpb25UYWcpKQogICAgICAgICByZXR1cm4gRm9vdGVyUm9sZTsKIAotICAgIGlmIChtX3Jl
bmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlckJsb2Nr
RmxvdygpKQogICAgICAgICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBl
bGVtZW50IGRvZXMgbm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFj
Y2Vzc2liaWxpdHkgc2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBA
QCBib29sIFBvc2l0aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9k
ZS0+aGFzVGFnTmFtZShodG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
LSAgICBpZiAocmVuZGVyZXItPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKHRvUmVuZGVyQmxvY2socmVuZGVyZXIp
LT5sb2dpY2FsSGVpZ2h0KCkgfHwgbV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7
CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2Nl
bmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0Rmly
c3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0
Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsKQEAgLTExODUsNyArMTE4NSw3IEBAIHZvaWQgUG9zaXRp
b246OmdldElubGluZUJveEFuZE9mZnNldChFQWYKIAogICAgIGlmICghcmVuZGVyZXItPmlzVGV4
dCgpKSB7CiAgICAgICAgIGlubGluZUJveCA9IDA7Ci0gICAgICAgIGlmIChjYW5IYXZlQ2hpbGRy
ZW5Gb3JFZGl0aW5nKGRlcHJlY2F0ZWROb2RlKCkpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygp
ICYmIGhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVy
KSkgeworICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhkZXByZWNhdGVkTm9k
ZSgpKSAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpIHsKICAgICAgICAgICAgIC8v
IFRyeSBhIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9zaXRpb24gd2l0aCBwb3NzaWJseSBvcHBvc2l0
ZSBlZGl0YWJpbGl0eS4gVGhpcyBoZWxwcyBpbiBjYXNlIHx0aGlzfCBpcyBpbgogICAgICAgICAg
ICAgLy8gYW4gZWRpdGFibGUgYmxvY2sgYnV0IHN1cnJvdW5kZWQgYnkgbm9uLWVkaXRhYmxlIHBv
c2l0aW9ucy4gSXQgYWN0cyB0byBuZWdhdGUgdGhlIGxvZ2ljIGF0IHRoZSBiZWdpbm5pbmcKICAg
ICAgICAgICAgIC8vIG9mIFJlbmRlck9iamVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKCkuCkBA
IC0xMzMzLDcgKzEzMzMsNyBAQCBUZXh0RGlyZWN0aW9uIFBvc2l0aW9uOjpwcmltYXJ5RGlyZWN0
aW9uCiB7CiAgICAgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uID0gTFRSOwogICAgIGZv
ciAoY29uc3QgUmVuZGVyT2JqZWN0KiByID0gbV9hbmNob3JOb2RlLT5yZW5kZXJlcigpOyByOyBy
ID0gci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKHItPmlzQmxvY2tGbG93KCkpIHsKKyAgICAg
ICAgaWYgKHItPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAgIHByaW1hcnlEaXJl
Y3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIFBvc2l0aW9uSXRlcmF0b3I6
OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFibGVFbGVtZW50KG1fYW5jaG9yTm9kZSkg
fHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZSkpCiAgICAgICAgIHJldHVybiAo
YXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNl
clNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOwogCi0gICAgaWYgKCFtX2Fu
Y2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkp
IHsKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiByZW5kZXJl
ci0+aXNSZW5kZXJCbG9ja0Zsb3coKSkgewogICAgICAgICBpZiAodG9SZW5kZXJCbG9jayhyZW5k
ZXJlciktPmxvZ2ljYWxIZWlnaHQoKSB8fCBtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoYm9keVRh
ZykpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3Vz
RGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
YXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNo
b3JOb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgdm9p
ZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZQogCiAgICAgLy8gU2luY2UgYWRk
SW5saW5lU3R5bGVJZk5lZWRlZCBjYW4ndCBhZGQgc3R5bGVzIHRvIGJsb2NrLWZsb3cgcmVuZGVy
IG9iamVjdHMsIGFkZCBzdHlsZSBhdHRyaWJ1dGUgaW5zdGVhZC4KICAgICAvLyBGSVhNRTogYXBw
bHlJbmxpbmVTdHlsZVRvUmFuZ2Ugc2hvdWxkIGJlIHVzZWQgaGVyZSBpbnN0ZWFkLgotICAgIGlm
ICgobm9kZS0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSB8fCBub2RlLT5jaGlsZE5vZGVDb3Vu
dCgpKSAmJiBub2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKKyAgICBpZiAoKG5vZGUtPnJlbmRlcmVy
KCktPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9k
ZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxl
bWVudChub2RlKSwgc3R5bGVBdHRyLCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NzQsNyArODc0LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6YQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29udGFpbmVyLT5yZW5kZXJlcigp
OwotICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlm
ICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICAvLyBhcHBlbmQgdGhlIHBsYWNlaG9sZGVyIHRvIG1ha2Ugc3Vy
ZSBpdCBmb2xsb3dzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAx
NTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MjUsNyArMTQyNSw3IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3Jp
dGluZ0RpcmUKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0g
ICAgaWYgKCFyZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkgeworICAgIGlmICghcmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFp
bmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJ
KHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMgUmVuZGVy
T2JqZWN0KiBjYXJldFJlbmRlcmVyKE5vZGUqCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8g
aWYgY2FyZXROb2RlIGlzIGEgYmxvY2sgYW5kIGNhcmV0IGlzIGluc2lkZSBpdCB0aGVuIGNhcmV0
IHNob3VsZCBiZSBwYWludGVkIGJ5IHRoYXQgYmxvY2sKLSAgICBib29sIHBhaW50ZWRCeUJsb2Nr
ID0gcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2Rl
KTsKKyAgICBib29sIHBhaW50ZWRCeUJsb2NrID0gcmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93
KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2RlKTsKICAgICByZXR1cm4gcGFpbnRlZEJ5
QmxvY2sgPyByZW5kZXJlciA6IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gMTU1MDYz
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MTgsNyArOTE4LDcgQEAgYm9vbCBUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2Vu
dE5vZGVPZgogICAgIC8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIHJhbmdlIHdlIGFyZSBpdGVyYXRp
bmcgb3ZlciBjb250YWlucyBodWdlIHNlY3Rpb25zIG9mIHVucmVuZGVyZWQgY29udGVudCwgCiAg
ICAgLy8gd2Ugd291bGQgY3JlYXRlIFZpc2libGVQb3NpdGlvbnMgb24gZXZlcnkgY2FsbCB0byB0
aGlzIGZ1bmN0aW9uIHdpdGhvdXQgdGhpcyBjaGVjay4KICAgICBpZiAoIW1fbm9kZS0+cmVuZGVy
ZXIoKSB8fCBtX25vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFCi0gICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93KCkgJiYgIXRv
UmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVpZ2h0KCkgJiYgIW1fbm9kZS0+aGFz
VGFnTmFtZShib2R5VGFnKSkpCisgICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzUmVu
ZGVyQmxvY2tGbG93KCkgJiYgIXRvUmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVp
Z2h0KCkgJiYgIW1fbm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIC8vIFRoZSBzdGFydFBvcy5pc05vdE51bGwoKSBjaGVjayBpcyBuZWVkZWQg
YmVjYXVzZSB0aGUgc3RhcnQgY291bGQgYmUgYmVmb3JlIHRoZSBib2R5LApJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDQsNyArNDA0LDcgQEAgYm9vbCBUeXBpbmdDb21tYW5kOjptYWtlRWRpdGFibGVSb290RW1w
dAogCiAgICAgaWYgKHJvb3QtPmZpcnN0Q2hpbGQoKSA9PSByb290LT5sYXN0Q2hpbGQoKSAmJiBy
b290LT5maXJzdEVsZW1lbnRDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxlbWVudENoaWxkKCktPmhh
c1RhZ05hbWUoYnJUYWcpKSB7CiAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc2luZ2xlIGNoaWxk
IGFuZCBpdCBjb3VsZCBiZSBhIHBsYWNlaG9sZGVyLCBsZWF2ZSBpdCBhbG9uZS4KLSAgICAgICAg
aWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSkK
KyAgICAgICAgaWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNSZW5k
ZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTUwNjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5MCw3ICsxMjkwLDcgQEAgYm9vbCBpc0Jsb2NrRmxvd0VsZW1lbnQoY29uc3QgTm9kZSog
bm9kZQogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAg
cmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpOworICAgIHJldHVybiBy
ZW5kZXJlciAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKTsKIH0KIAogRWxlbWVudCog
ZGVwcmVjYXRlZEVuY2xvc2luZ0Jsb2NrRmxvd0VsZW1lbnQoTm9kZSogbm9kZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBIVE1MRWxlbWVu
dCogc2xpZGVyVHJhY2tFbGVtZW50T2YoTm9kZSogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiBSZW5kZXJTbGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVy
VGh1bWJFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Niw3ICs5Niw3IEBAIEhUTUxFbGVtZW50KiBzbGlkZXJUcmFj
a0VsZW1lbnRPZihOb2RlKikKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotY2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsK
IHB1YmxpYzoKICAgICBSZW5kZXJTbGlkZXJUaHVtYihTbGlkZXJUaHVtYkVsZW1lbnQqKTsKICAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2UoUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24gMTU1MDYz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRT
dGF0ZSogcHIKICAgICAgICAgY29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihyZW5kZXJl
cik7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3IGdyaWQgdG8gdHJhY2ssIHRoZW4gYWRkIGl0
IHRvIG91ciBzZXQuCi0gICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkK
KyAgICBpZiAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6Omlu
aXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAg
ICBlc3RhYmxpc2hMaW5lR3JpZCh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKSk7CiAKICAgICAvLyBG
SVhNRTogPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQzPiBBcHBs
eSBjb250cm9sIGNsaXAgaWYgcHJlc2VudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczMSw3ICsxNzMxLDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheQogICAgICAgICBpZiAo
b2xkSGVpZ2h0ID4gbmV3SGVpZ2h0ICYmIG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdo
dCAmJiAhY2hpbGRyZW5JbmxpbmUoKSkgewogICAgICAgICAgICAgLy8gT25lIG9mIG91ciBjaGls
ZHJlbidzIGZsb2F0cyBtYXkgaGF2ZSBiZWNvbWUgYW4gb3ZlcmhhbmdpbmcgZmxvYXQgZm9yIHVz
LiBXZSBuZWVkIHRvIGxvb2sgZm9yIGl0LgogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNCbG9ja0Zsb3coKSAmJiAhY2hpbGQt
PmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAgICAgICAgIGlm
IChjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhY2hpbGQtPmlzRmxvYXRpbmdPck91dE9m
Rmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxv
Y2sgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nr
LT5sb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20oKSArIGJsb2NrLT5sb2dpY2FsVG9wKCkgPiBuZXdI
ZWlnaHQpCiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9j
aywgZmFsc2UpOwpAQCAtMjI2OSw3ICsyMjY5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
Y29sbGFwc2VNYXJnaW5zKAogICAgIExheW91dFVuaXQgb2xkTG9naWNhbEhlaWdodCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxUb3ApOwogICAgIFJlbmRl
ck9iamVjdCogcHJldiA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICBpZiAocHJldiAm
JiBwcmV2LT5pc0Jsb2NrRmxvdygpICYmICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpIHsKKyAgICBpZiAocHJldiAmJiBwcmV2LT5pc1JlbmRlckJsb2NrRmxvdygpICYm
ICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgUmVu
ZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhwcmV2KTsKICAgICAgICAgaWYgKGJsb2Nr
LT5jb250YWluc0Zsb2F0cygpICYmICFibG9jay0+YXZvaWRzRmxvYXRzKCkgJiYgKGJsb2NrLT5s
b2dpY2FsVG9wKCkgKyBibG9jay0+bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkpID4gbG9naWNh
bFRvcCkgCiAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9jaywgZmFsc2UpOwpA
QCAtMzY5Miw3ICszNjkyLDcgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMo
UmVuZAogICAgIC8vIEZJWE1FOiBvdmVyZmxvdzogYXV0by9zY3JvbGwgcmVnaW9ucyBuZWVkIG1v
cmUgbWF0aCBoZXJlLCBzaW5jZSBwYWludGluZyBpbiB0aGUgYm9yZGVyIGJveCBpcyBkaWZmZXJl
bnQgZnJvbSBwYWludGluZyBpbiB0aGUgcGFkZGluZyBib3ggKG9uZSBpcyBzY3JvbGxlZCwgdGhl
IG90aGVyIGlzCiAgICAgLy8gZml4ZWQpLgogICAgIEdhcFJlY3RzIHJlc3VsdDsKLSAgICBpZiAo
IWlzQmxvY2tGbG93KCkpIC8vIEZJWE1FOiBNYWtlIG11bHRpLWNvbHVtbiBzZWxlY3Rpb24gZ2Fw
IGZpbGxpbmcgd29yayBzb21lZGF5LgorICAgIGlmICghaXNSZW5kZXJCbG9ja0Zsb3coKSkgLy8g
RklYTUU6IE1ha2UgbXVsdGktY29sdW1uIHNlbGVjdGlvbiBnYXAgZmlsbGluZyB3b3JrIHNvbWVk
YXkuCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBpZiAoaGFzQ29sdW1ucygpIHx8IGhh
c1RyYW5zZm9ybSgpIHx8IHN0eWxlKCktPmNvbHVtblNwYW4oKSkgewpAQCAtNjc3MSw3ICs2Nzcx
LDcgQEAgaW50IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYQogCiBpbnQgUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJveEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQmxv
Y2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKSkKKyAgICBp
ZiAoIWlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVi
eVJ1bigpKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkp
IHsKQEAgLTY4MDAsNyArNjgwMCw3IEBAIGludCBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNl
bGluZShMaW4KIAogaW50IFJlbmRlckJsb2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKExpbmVEaXJl
Y3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygp
IHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKCFpc1Jl
bmRlckJsb2NrRmxvdygpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkp
CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChjaGlsZHJlbklubGluZSgpKSB7CkBAIC02
ODYxLDcgKzY4NjEsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJsb2Nr
CiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBidXR0b25zIGFyZSBpbXBsZW1lbnRlZCB3
aXRoIGFsaWduLWl0ZW1zIGluc3RlYWQKICAgICAgICAgLy8gb2YgZmxleGJveC4KICAgICAgICAg
aWYgKGZpcnN0TGluZUJsb2NrLT5pc1JlcGxhY2VkKCkgfHwgZmlyc3RMaW5lQmxvY2stPmlzRmxv
YXRpbmcoKQotICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJz
dENoaWxkKCkgIT0gZmlyc3RMaW5lQmxvY2sgfHwgIXBhcmVudEJsb2NrLT5pc0Jsb2NrRmxvdygp
CisgICAgICAgICAgICB8fCAhcGFyZW50QmxvY2sgfHwgcGFyZW50QmxvY2stPmZpcnN0Q2hpbGQo
KSAhPSBmaXJzdExpbmVCbG9jayB8fCAhcGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2tGbG93KCkK
ICAgICAgICAgICAgIHx8IChwYXJlbnRCbG9jay0+aXNGbGV4aWJsZUJveCgpICYmICFwYXJlbnRC
bG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2so
KSk7CkBAIC02OTIwLDcgKzY5MjAsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmlu
ZEZpcnN0TGV0CiAKICAgICAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRCbG9jayA9IGZpcnN0TGV0
dGVyQmxvY2stPnBhcmVudCgpOwogICAgICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBs
YWNlZCgpIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmlyc3RDaGlsZCgpICE9IGZp
cnN0TGV0dGVyQmxvY2sgfHwgCi0gICAgICAgICAgICAhcGFyZW50QmxvY2stPmlzQmxvY2tGbG93
KCkgfHwgKHBhcmVudEJsb2NrLT5pc0ZsZXhpYmxlQm94KCkgJiYgIXBhcmVudEJsb2NrLT5pc1Jl
bmRlckJ1dHRvbigpKSkKKyAgICAgICAgICAgICFwYXJlbnRCbG9jay0+aXNSZW5kZXJCbG9ja0Zs
b3coKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAhcGFyZW50QmxvY2stPmlz
UmVuZGVyQnV0dG9uKCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGZpcnN0TGV0
dGVyQmxvY2sgPSBwYXJlbnRCbG9jazsKICAgICB9IApAQCAtNzEwMiw3ICs3MTAyLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogc3RhdGljIGJvb2wgc2hvdWxkQ2hl
Y2tMaW5lcyhSZW5kZXJPYmplY3QqIG9iaikKIHsKICAgICByZXR1cm4gIW9iai0+aXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFvYmotPmlzUnVuSW4oKQotICAgICAgICAgICAg
JiYgb2JqLT5pc0Jsb2NrRmxvdygpICYmIG9iai0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkK
KyAgICAgICAgICAgICYmIG9iai0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBvYmotPnN0eWxlKCkt
PmhlaWdodCgpLmlzQXV0bygpCiAgICAgICAgICAgICAmJiAoIW9iai0+aXNEZXByZWNhdGVkRmxl
eGlibGVCb3goKSB8fCBvYmotPnN0eWxlKCktPmJveE9yaWVudCgpID09IFZFUlRJQ0FMKTsKIH0K
IApAQCAtNzIwNyw3ICs3MjA3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVy
Rml0KExheQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94KiBvYmog
PSBmaXJzdENoaWxkQm94KCk7IG9iajsgb2JqID0gb2JqLT5uZXh0U2libGluZ0JveCgpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCFvYmotPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQo
KSkgewotICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc0Jsb2NrRmxvdygpICYmICFvYmot
Pmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc1JlbmRl
ckJsb2NrRmxvdygpICYmICFvYmotPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdG9SZW5kZXJCbG9jayhvYmopLT5hZGp1c3RGb3JCb3JkZXJGaXQoeCArIG9iai0+
eCgpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9iai0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGFyZSBhIHJlcGxhY2VkIGVsZW1lbnQgb3Igc29tZSBraW5kIG9mIG5vbi1ibG9jay1m
bG93IG9iamVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShy
ZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtNjI3LDcgKzYyNyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJCbG9jaygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiAo
IWlzSW5saW5lKCkgfHwgaXNSZXBsYWNlZCgpKSAmJiAhaXNUYWJsZSgpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gaXNJbmxpbmUoKSAmJiBpc1JlcGxhY2VkKCk7IH0KIAogICAgIHZvaWQgbWFrZUNo
aWxkcmVuTm9uSW5saW5lKFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQgPSAwKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0
aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSogbm9k
ZSkKKyAgICA6IFJlbmRlckJsb2NrKG5vZGUpCit7Cit9CisKK1JlbmRlckJsb2NrRmxvdzo6flJl
bmRlckJsb2NrRmxvdygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0Zmlz
aC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMsICBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUmVuZGVyQmxvY2tGbG93X2gKKyNkZWZpbmUg
UmVuZGVyQmxvY2tGbG93X2gKKworI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2tGbG93IDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSop
OworICAgIHZpcnR1YWwgflJlbmRlckJsb2NrRmxvdygpOworICAgIAorICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckJsb2NrRmxvdygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KK307CisKK2lubGluZSBSZW5kZXJCbG9ja0Zsb3cmIHRvUmVuZGVyQmxvY2tGbG93KFJlbmRl
ck9iamVjdCYgb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KG9iamVjdC5pc1JlbmRlckJsb2NrRmxvdygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyQmxvY2tGbG93Jj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCit7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyQmxvY2tGbG93
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJCbG9ja0Zsb3cmPihvYmpl
Y3QpOworfQorCitpbmxpbmUgUmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhSZW5k
ZXJPYmplY3QqIG9iamVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3Qg
UmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyQmxvY2tGbG93
KGNvbnN0IFJlbmRlckJsb2NrRmxvdyopOwordm9pZCB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UmVuZGVyQmxvY2tGbG93X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwMyw3ICsyMTAzLDcgQEAgdm9pZCBSZW5kZXJC
b3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjbwogICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCkt
Pm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQogICAgIAotICAgIGlmIChwb3NpdGlv
biAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRpb24gJiYgby0+
aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocG9zaXRpb24gIT0g
QWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0aW9uICYmIG8tPmhhc0Nv
bHVtbnMoKSAmJiBvLT5pc1JlbmRlckJsb2NrRmxvdygpKSB7CiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICB0b1JlbmRlckJsb2Nr
KG8pLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50UmVjdCk7CiAgICAgICAgIHRvcExlZnQg
PSByZXBhaW50UmVjdC5sb2NhdGlvbigpOwpAQCAtNDA5Myw3ICs0MDkzLDcgQEAgVmlzaWJsZVBv
c2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQbwogICAgICAgICBhZGp1c3RlZFBvaW50Lm1v
dmVCeShsb2NhdGlvbigpKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3Qg
PSBmaXJzdENoaWxkKCk7IHJlbmRlck9iamVjdDsgcmVuZGVyT2JqZWN0ID0gcmVuZGVyT2JqZWN0
LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGls
ZCgpICYmICFyZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNCbG9j
a0Zsb3coKSApCisgICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFy
ZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNSZW5kZXJCbG9ja0Zs
b3coKSApCiAgICAgICAgICAgICB8fCByZW5kZXJPYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlz
aW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHMpOwogCi0gICAg
Ym9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRpbmco
KSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYgIWlz
VGFibGVDZWxsKCkgJiYgaXNCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9Cisg
ICAgYm9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRp
bmcoKSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYg
IWlzVGFibGVDZWxsKCkgJiYgaXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9j
aygpOyB9CiAKIAogICAgIHZvaWQgZ2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIEludFJlY3QmIGRlc3RSZWN0
LCBJbnRQb2ludCYgcGhhc2UsIEludFNpemUmIHRpbGVTaXplKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg4LDcg
Kzk4OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKIAogICAg
ICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKHJlbGF5b3V0Q2hp
bGRyZW4gfHwgKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgpLT53aWR0aCgp
LmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0g
ICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmIGNoaWxk
LT5pc0Jsb2NrRmxvdygpKSkgeworICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHlsZSgpLT5oZWln
aHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkpIHsKICAgICAgICAg
ICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAKICAg
ICAgICAgICAgIC8vIERpcnR5IGFsbCB0aGUgcG9zaXRpb25lZCBvYmplY3RzLgpAQCAtOTk4LDcg
Kzk5OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNC
bG9ja0Zsb3coKSkKKyAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8o
KSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIG1heExpbmVDb3Vu
dCA9IG1heChtYXhMaW5lQ291bnQsIHRvUmVuZGVyQmxvY2soY2hpbGQpLT5saW5lQ291bnQoKSk7
CiAgICAgfQogCkBAIC0xMDEwLDcgKzEwMTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveDo6YXBwbHlMCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoUmVuZGVyQm94KiBj
aGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkg
ewotICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8
ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc0Jsb2NrRmxv
dygpKQorICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQp
IHx8ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc1JlbmRl
ckJsb2NrRmxvdygpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVuZGVyQmxv
Y2sqIGJsb2NrQ2hpbGQgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKQEAgLTEwODcsNyArMTA4Nyw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpjbGVhckwKIAogICAgICAgICBj
aGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKChjaGlsZC0+aXNSZXBsYWNl
ZCgpICYmIChjaGlsZC0+c3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCBjaGlsZC0+c3R5
bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQotICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHls
ZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNCbG9ja0Zsb3coKSkpIHsKKyAgICAg
ICAgICAgIHx8IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlz
UmVuZGVyQmxvY2tGbG93KCkpKSB7CiAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xh
eW91dCh0cnVlKTsKIAogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1JlbmRlckJsb2NrKCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtl
ci5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXRhaWxzTWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJEZXRh
aWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJr
ZXIuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRldGFpbHNNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTEgKzIyLDExIEBACiAjZGVm
aW5lIFJlbmRlckRldGFpbHNNYXJrZXJfaAogCiAjaWYgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkK
LSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlckRldGFpbHNNYXJrZXIgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRGV0YWlsc01hcmtlciBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckRldGFpbHNNYXJr
ZXIoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWVsZHNldC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWVsZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyRmll
bGRzZXQ6OlJlbmRlckZpZWxkc2V0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9j
ayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCShyZXZpc2lvbiAxNTUw
NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAjaWZuZGVmIFJlbmRlckZpZWxkc2V0X2gKICNk
ZWZpbmUgUmVuZGVyRmllbGRzZXRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBS
ZW5kZXJGaWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJG
aWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFJlbmRlckZpZWxkc2V0KEVsZW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCShyZXZpc2lv
biAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IGludCBkZWZh
dWx0V2lkdGhOdW1DaGFycyA9IDM0OwogY29uc3QgaW50IGJ1dHRvblNoYWRvd0hlaWdodCA9IDI7
CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCkKLSAgICA6IFJlbmRlckJsb2NrKGlucHV0KQorICAgIDogUmVu
ZGVyQmxvY2tGbG93KGlucHV0KQogICAgICwgbV9jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKGlucHV0
LT5jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKCkpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAkocmV2aXNpb24gMTU1
MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbF9oCiAKLSNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVu
dDsKIC8vIHN1ZmZpY2llbnQgc3BhY2UgdG8gZHJhdyBhIGZpbGUgaWNvbiBhbmQgZmlsZW5hbWUu
IFRoZSBSZW5kZXJCdXR0b24gaGFzIGEgc2hhZG93IG5vZGUKIC8vIGFzc29jaWF0ZWQgd2l0aCBp
dCB0byByZWNlaXZlIGNsaWNrL2hvdmVyIGV2ZW50cy4KIAotY2xhc3MgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVh
bCB+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJGbG93VGhyZWFk
OjpSZW5kZXJGbG93VGhyZWFkKCkKLSAgICA6IFJlbmRlckJsb2NrKDApCisgICAgOiBSZW5kZXJC
bG9ja0Zsb3coMCkKICAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQo
ZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgUmVu
ZGVyRmxvd1RocmVhZF9oCiAKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAi
UmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVuZGVyUmVnaQog
Ly8gYW5kIG5vZGVBdFBvaW50IG1ldGhvZHMgdG8gdGhpcyBvYmplY3QuIEVhY2ggUmVuZGVyUmVn
aW9uIHdpbGwgYWN0dWFsbHkgYmUgYSB2aWV3UG9ydAogLy8gb2YgdGhlIFJlbmRlckZsb3dUaHJl
YWQuCiAKLWNsYXNzIFJlbmRlckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFz
cyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGbG93VGhyZWFkKCk7CiAgICAgdmlydHVhbCB+UmVuZGVyRmxvd1RocmVhZCgpIHsg
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKQEAgLTM2LDEwICszNywxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xh
c3MgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcihS
ZW5kZXJGdWxsU2NyZWVuKiBvd25lcikgCi0gICAgICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICAg
ICAgOiBSZW5kZXJCbG9ja0Zsb3coMCkKICAgICAgICAgLCBtX293bmVyKG93bmVyKSAKICAgICB7
CiAgICAgICAgIHNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZvd25lci0+ZG9jdW1lbnQoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21w
dXRlUmVjdEZvclJlcGFpbnQKIAogICAgIExheW91dFBvaW50IHRvcExlZnQgPSByZWN0LmxvY2F0
aW9uKCk7CiAKLSAgICBpZiAoby0+aXNCbG9ja0Zsb3coKSAmJiAhc3R5bGUoKS0+aGFzT3V0T2ZG
bG93UG9zaXRpb24oKSkgeworICAgIGlmIChvLT5pc1JlbmRlckJsb2NrRmxvdygpICYmICFzdHls
ZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKSB7CiAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9
IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgIGlmIChjYi0+aGFzQ29sdW1ucygpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHRvcExlZnQsIHJlY3Quc2l6ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAko
cmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
b3hMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw3IEBAIGJvb2wgUmVuZGVy
TGluZUJveExpc3Q6OmhpdFRlc3QoUmVuZGVyQm8KIAogdm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIFJlbmRl
ck9iamVjdCogY2hpbGQpCiB7Ci0gICAgaWYgKCFjb250YWluZXItPnBhcmVudCgpIHx8IChjb250
YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVlZHNMYXlvdXQoKSB8
fCAhY29udGFpbmVyLT5pc0Jsb2NrRmxvdygpKSkpCisgICAgaWYgKCFjb250YWluZXItPnBhcmVu
dCgpIHx8IChjb250YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVl
ZHNMYXlvdXQoKSB8fCAhY29udGFpbmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFpbmVy
LT5pc1JlbmRlcklubGluZSgpID8gdG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogUmVuZGVyTWV0ZXI6OlJlbmRlck1ldGVyKEhUTUxFbGVtZW50KiBl
bGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxv
dyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUgUmVuZGVy
TWV0ZXJfaAogCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCi0jaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRn
ZXQuaCIKIAogCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTE1ldGVyRWxlbWVudDsKIAotY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJNZXRlcihIVE1MRWxlbWVudCopOwog
ICAgIHZpcnR1YWwgflJlbmRlck1ldGVyKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZpc2lvbiAxNTUwNjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6UmVuZGVyTXVsdGlD
b2x1bW5CbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkK
KyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogICAgICwgbV9mbG93VGhyZWFkKDApCiAg
ICAgLCBtX2NvbHVtbkNvdW50KDEpCiAgICAgLCBtX2NvbHVtbldpZHRoKDApCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgJKHJl
dmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtbkJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywxMyBAQAogI2lmbmRlZiBS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKICNkZWZpbmUgUmVuZGVyTXVsdGlDb2x1bW5CbG9ja19o
CiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZDsKIAotY2xhc3MgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhFbGVt
ZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCkpIHsKLSAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93
KCkpIHsKKyAgICAgICAgaWYgKG8tPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAg
IFJlbmRlckJsb2NrKiBjYiA9IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgICAgICBpZiAoY2It
Pmhhc0NvbHVtbnMoKSkKICAgICAgICAgICAgICAgICBjYi0+YWRqdXN0UmVjdEZvckNvbHVtbnMo
cmVjdCk7CkBAIC0xOTY0LDcgKzE5NjQsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKFN0eWxlCiAKICAgICAgICAgc19hZmZlY3RzUGFyZW50QmxvY2sgPSBpc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkKICAgICAgICAgICAgICYmICghbmV3U3R5bGUtPmlzRmxv
YXRpbmcoKSAmJiAhbmV3U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCi0gICAgICAgICAg
ICAmJiBwYXJlbnQoKSAmJiAocGFyZW50KCktPmlzQmxvY2tGbG93KCkgfHwgcGFyZW50KCktPmlz
UmVuZGVySW5saW5lKCkpOworICAgICAgICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5p
c1JlbmRlckJsb2NrRmxvdygpIHx8IHBhcmVudCgpLT5pc1JlbmRlcklubGluZSgpKTsKIAogICAg
ICAgICBzX25vTG9uZ2VyQWZmZWN0c1BhcmVudEJsb2NrID0gKCghaXNGbG9hdGluZygpICYmIG5l
d1N0eWxlLT5pc0Zsb2F0aW5nKCkpIHx8ICghaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbmV3
U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpKQogICAgICAgICAgICAgJiYgcGFyZW50KCkg
JiYgcGFyZW50KCktPmlzUmVuZGVyQmxvY2soKTsKQEAgLTI3OTYsNyArMjc5Niw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBmaXJzdExpbmUKICAgICBpZiAocmVuZGVyZXItPmlz
QmVmb3JlT3JBZnRlckNvbnRlbnQoKSkKICAgICAgICAgcmVuZGVyZXJGb3JGaXJzdExpbmVTdHls
ZSA9IHJlbmRlcmVyLT5wYXJlbnQoKTsKIAotICAgIGlmIChyZW5kZXJlckZvckZpcnN0TGluZVN0
eWxlLT5pc0Jsb2NrRmxvdygpKSB7CisgICAgaWYgKHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUt
PmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBmaXJzdExp
bmVCbG9jayA9IHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZpcnN0TGluZUJsb2NrKCkpIHsK
ICAgICAgICAgICAgIGlmICh0eXBlID09IENhY2hlZCkKICAgICAgICAgICAgICAgICByZXR1cm4g
Zmlyc3RMaW5lQmxvY2stPmdldENhY2hlZFBzZXVkb1N0eWxlKEZJUlNUX0xJTkUsIHN0eWxlKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1
NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIxLDcgKzMyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUHNldWRvRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgp
OyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNCUigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzUw
LDYgKzM0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxv
Y2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJTVkdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCShyZXZp
c2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIFJlbmRlck9iamVj
dCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW0KIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBuZXdD
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBub3RpZnlSZW5kZXJlcikKIHsK
ICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnQoKSk7Ci0gICAgQVNTRVJUKCFvd25lci0+aXNC
bG9ja0Zsb3coKSB8fCAoIW5ld0NoaWxkLT5pc1RhYmxlU2VjdGlvbigpICYmICFuZXdDaGlsZC0+
aXNUYWJsZVJvdygpICYmICFuZXdDaGlsZC0+aXNUYWJsZUNlbGwoKSkpOworICAgIEFTU0VSVCgh
b3duZXItPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKCFuZXdDaGlsZC0+aXNUYWJsZVNlY3Rpb24o
KSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVDZWxsKCkp
KTsKIAogICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgJiYg
YmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9IG93bmVyKQogICAgICAgICBiZWZvcmVDaGlsZCA9IGJl
Zm9yZUNoaWxkLT5wYXJlbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJQcm9n
cmVzczo6UmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJC
bG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX3Bv
c2l0aW9uKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbikKICAgICAsIG1fYW5p
bWF0aW9uU3RhcnRUaW1lKDApCiAgICAgLCBtX2FuaW1hdGlvblJlcGVhdEludGVydmFsKDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDEzICsyMiwxMyBAQAogI2RlZmluZSBSZW5kZXJQcm9ncmVzc19o
CiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFM
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFMIDogcHVi
bGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyUHJvZ3Jl
c3MoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVzcygpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVsZW1lbnQs
IFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50
KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxv
d1RocmVhZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzVmFs
aWQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCShy
ZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpZm5kZWYgUmVuZGVyUmVnaW9u
X2gKICNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisj
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRh
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUmVuZGVy
Qm94UmVnaW9uSW5mbzsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ7CiAKLWNsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CitjbGFzcyBSZW5kZXJSZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24oRWxlbWVudCosIFJlbmRlckZsb3dUaHJlYWQqKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAkocmV2aXNpb24g
MTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OnJl
bW92ZUNoaWxkKFJlbgogLy89PT0gcnVieSBhcyBibG9jayBvYmplY3QgPT09CiAKIFJlbmRlclJ1
YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVu
ZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHJldmlzaW9uIDE1NTA2
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgUmVuZGVyUnVieV9oCiAjZGVmaW5lIFJlbmRl
clJ1YnlfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogfTsKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBh
cyAnZGlzcGxheTpibG9jaycgb3IgJ2Rpc3BsYXk6aW5saW5lLWJsb2NrJwotY2xhc3MgUmVuZGVy
UnVieUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVi
eUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBS
ZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzQmxv
Y2soKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNw
cAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVi
eUJhc2UoKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQog
ewogICAgIHNldElubGluZShmYWxzZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwx
MyBAQAogI2lmbmRlZiBSZW5kZXJSdWJ5QmFzZV9oCiAjZGVmaW5lIFJlbmRlclJ1YnlCYXNlX2gK
IAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAotY2xhc3Mg
UmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVy
UnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5SZW5kZXJSdWJ5QmFzZSgpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4oKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdygwKQogewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogICAgIHNldElu
bGluZSh0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
aAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBSZW5kZXJS
dWJ5UnVuX2gKICNkZWZpbmUgUmVuZGVyUnVieVJ1bl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyUnVieVRleHQ7CiAvLyBSZW5kZXJSdWJ5
UnVuIGFyZSAnaW5saW5lLWJsb2NrL3RhYmxlJyBsaWtlIG9iamVjdHMsYW5kIHdyYXAgYSBzaW5n
bGUgcGFpcmluZyBvZiBhIHJ1YnkgYmFzZSB3aXRoIGl0cyBydWJ5IHRleHQocykuCiAvLyBTZWUg
UmVuZGVyUnVieS5oIGZvciBmdXJ0aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1Y3R1cmUKIAotY2xh
c3MgUmVuZGVyUnVieVJ1biBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJSdWJ5UnVuIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UmVuZGVyUnVieVJ1bigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5k
ZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCShyZXZpc2lv
biAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaWZuZGVmIFJlbmRlclJ1YnlUZXh0
X2gKICNkZWZpbmUgUmVuZGVyUnVieVRleHRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
KyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBS
ZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgog
ICAgIFJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5VGV4
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Fw
dGlvbi5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNhcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVDYXB0
aW9uKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMTMgKzIwLDEzIEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAjZGVm
aW5lIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJlbmRlclRhYmxlOwogCi1jbGFzcyBSZW5kZXJUYWJsZUNhcHRpb24gRklOQUwgOiBwdWJsaWMg
UmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVGFibGVDYXB0aW9uIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDYXB0aW9u
KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUYWJsZUNhcHRpb24oKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiAx
NTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3N0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzOwog
ICAgIGludCBwYWRkaW5nc1syXTsKIH07CkBAIC01Nyw3ICs1Nyw3IEBAIENPTVBJTEVfQVNTRVJU
KHNpemVvZihSZW5kZXJUYWJsZUNlbGwpID0KIENPTVBJTEVfQVNTRVJUKHNpemVvZihDb2xsYXBz
ZWRCb3JkZXJWYWx1ZSkgPT0gOCwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21h
bGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVt
ZW50KQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdpZHRo
Q2hhbmdlZChmYWxzZSkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0JlZm9yZSgwKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAkocmV2aXNpb24gMTU1
MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2VsbF9oCiAj
ZGVmaW5lIFJlbmRlclRhYmxlQ2VsbF9oCiAKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlU2VjdGlv
bi5oIgogCkBAIC0zNSw3ICszNiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5J
bmRleCA9IDAKIAogZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJv
cmRlckNvbG9yLCBJbmNsdWRlQm9yZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVuZGVyVGFibGVDZWxs
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRhYmxlQ2VsbCBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clRhYmxlQ2VsbChFbGVtZW50Kik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKGlzSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoZWxlbWVu
dCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNCArMjIsMTQgQEAKICNpZm5k
ZWYgUmVuZGVyVGV4dENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJUZXh0Q29udHJvbF9oCiAKLSNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclRleHRDb250cm9s
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9sIDogcHVibGlj
IFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRy
b2woKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gMTU1MDYzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZShjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRl
clRleHRDb250cm9sSW5uZXJCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJUZXh0Q29udHJvbElubmVyQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KSB7IH0KKyAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2so
RWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkgeyB9CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFj
a0N1ZS5jcHAJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiUmVuZGVyVGV4dFRyYWNrQ3VlLmgi
CisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAj
aW5jbHVkZSAiVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIgpAQCAtMzYsNyArMzcsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJUZXh0VHJhY2tDdWU6OlJlbmRlclRleHRUcmFja0N1ZShU
ZXh0VHJhY2tDdWVCb3gqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2N1ZShlbGVtZW50LT5nZXRDdWUo
KSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tD
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRy
YWNrQ3VlLmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0VHJhY2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5LDE1IEBACiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1
ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW5saW5lLmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFRleHRUcmFja0N1ZUJveDsKIAot
Y2xhc3MgUmVuZGVyVGV4dFRyYWNrQ3VlIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2Ns
YXNzIFJlbmRlclRleHRUcmFja0N1ZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewog
cHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gq
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNp
b24gMTU1MDYzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogUmVuZGVyQmxv
Y2soZG9jdW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQpCiAgICAgLCBtX2Zy
YW1lVmlldygqZG9jdW1lbnQtPnZpZXcoKSkKICAgICAsIG1fc2VsZWN0aW9uU3RhcnQoMCkKICAg
ICAsIG1fc2VsZWN0aW9uRW5kKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgJKHJldmlzaW9uIDE1NTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0
QXJlbmEuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2Nr
Rmxvdy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDIsNyArNDIsNyBAQCBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CiBjbGFzcyBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0OwogI2VuZGlmCiAKLWNsYXNzIFJlbmRlclZpZXcgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVmlldyBGSU5BTCA6IHB1YmxpYyBS
ZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclZpZXcoRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJWaWV3KCk7CkBAIC0yNTAsNyArMjUwLDcgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlv
dXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAg
ICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5h
dGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+Zmxvd1RocmVhZENv
bnRhaW5pbmdCbG9jaygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgp
IHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlh
bExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisgICAgICAgICAgICB8fCBt
X2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQo
KSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVy
QmxvY2tGbG93KCkpCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgICAgICAgICB8fCAocmVu
ZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+c2hhcGVJ
bnNpZGVJbmZvKCkpCiAgICAgICAgICAgICB8fCAobV9sYXlvdXRTdGF0ZS0+c2hhcGVJbnNpZGVJ
bmZvKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiAhdG9SZW5kZXJCbG9jayhyZW5k
ZXJlciktPmFsbG93c1NoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAkocmV2aXNpb24gMTU1MDYz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckFyZW5hLmNwcCIK
ICNpbmNsdWRlICJSZW5kZXJCUi5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suY3BwIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJCb3guY3BwIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQmxvY2suY3BwCShyZXZpc2lvbiAxNTUwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyAr
MzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdCbG9jazo6UmVuZGVyU1ZH
QmxvY2soU1ZHRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCisg
ICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAkocmV2aXNpb24gMTU1MDYzKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSwxNCArMjEsMTQgQEAKICNkZWZpbmUgUmVuZGVyU1ZHQmxvY2tfaAogCiAj
aWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJTVkdCbG9jayA6
IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJTVkdCbG9jayA6IHB1YmxpYyBSZW5k
ZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0Jsb2NrKFNWR0Vs
ZW1lbnQqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210633</attachid>
            <date>2013-09-05 10:35:33 -0700</date>
            <delta_ts>2013-09-06 12:50:36 -0700</delta_ts>
            <desc>Just trying to test EWS</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>69095</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OSBAQAorMjAxMy0wOS0wNSAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBSZW5kZXJCbG9ja0Zs
b3cgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMDc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSZW5kZXJCbG9ja0Zsb3cgY2xhc3MuIFRoZSBpZGVhIGlz
IHRvIGdldCBhbGwgb2YgdGhlIGxpbmUvZmxvYXQvbWFyZ2luCisgICAgICAgIGNvZGUgb3V0IG9m
IFJlbmRlckJsb2NrIGFuZCBpbnRvIHRoZSBzdWJjbGFzcywgYW5kIHRoZW4gd2UgY2FuIG1ha2Ug
UmVuZGVyQmxvY2sgYW4gYWJzdHJhY3QKKyAgICAgICAgYmFzZS4gVGhpcyB3aWxsIHNhdmUgbWVt
b3J5IGZvciBhbGwgb2YgdGhlIGNsYXNzZXMgdGhhdCBkZXJpdmUgZnJvbSBSZW5kZXJCbG9jayBi
dXQgaGF2ZQorICAgICAgICB0aGVpciBvd24gbGF5b3V0IHN5c3RlbXMgKGUuZy4sIGZsZXhib3gs
IGdyaWQsIHRhYmxlKSwgYW5kIGl0IHdpbGwgbGV0IHVzIHRpZ2h0ZW4gdXAKKyAgICAgICAgdHlw
ZXMgdG8gbWFrZSBpdCBtb3JlIGNsZWFyIHdoZW4gd2UncmUgdGFsa2luZyBhYm91dCBibG9jayBs
YXlvdXQgY29kZSB2cy4gYSBtb3JlIGdlbmVyaWMKKyAgICAgICAgYmxvY2stbGV2ZWwgb2JqZWN0
IHRoYXQgY2FuIGhhdmUgYW55IGtpbmQgb2YgbGF5b3V0LgorCisgICAgICAgIFRoZSBvbmx5IHJl
YWwgY2hhbmdlIGhlcmUgaXMgdGhhdCBpc0Jsb2NrRmxvdygpIGhhcyBiZWVuIHJlbmFtZWQgdG8g
aXNSZW5kZXJCbG9ja0Zsb3coKSBhbmQKKyAgICAgICAgaXMgbm93IGNoZWNraW5nIGlmIHRoZSBv
YmplY3QgaXMgYSBSZW5kZXJCbG9ja0Zsb3cuIEFsbCBvZiB0aGUgYmxvY2sgc3ViY2xhc3NlcyBo
YXZlIGJlZW4gcGF0Y2hlZAorICAgICAgICB0byBiZSBhIFJlbmRlckJsb2NrIG9yIFJlbmRlckJs
b2NrRmxvdy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAg
ICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aXNDYW5k
aWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmdldElubGluZUJveEFuZE9mZnNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cHJpbWFyeURpcmVjdGlvbik6CisgICAg
ICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRp
b25JdGVyYXRvcjo6aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5s
aW5lU3R5bGVUb1B1c2hEb3duKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9j
a1BsYWNlaG9sZGVySWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25T
dGFydCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYXJldFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVP
ZmZzZXRaZXJvKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAg
ICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tG
bG93RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJTbGlkZXJUaHVt
Yik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0
YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpmaXJzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGFzdExpbmVCb3hCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Zmlyc3RMaW5lQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TGV0dGVyQmxvY2sp
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQ2hlY2tMaW5lcyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVyRml0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2NrRmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6On5SZW5kZXJCbG9ja0Zsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjp0b1JlbmRlckJsb2NrRmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9pbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbkhhdmVCb3hJbmZvSW5SZWdpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmNsZWFyTGlu
ZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXRhaWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2Vy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
aWVsZHNldDo6UmVuZGVyRmllbGRzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVs
ZHNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZXRlcjo6UmVuZGVyTWV0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OlJlbmRlck11bHRpQ29sdW1uQmxv
Y2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpmaXJzdExpbmVT
dHlsZUZvckNhY2hlZFVuY2FjaGVkVHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JSKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJCbG9ja0Zsb3cpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJQcm9ncmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6
UmVuZGVyUHJvZ3Jlc3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSdWJ5QXNCbG9jazo6UmVuZGVyUnVieUFzQmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSdWJ5Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlCYXNlOjpSZW5kZXJSdWJ5QmFz
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieVJ1
bjo6UmVuZGVyUnVieVJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUnVieVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVD
YXB0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6UmVuZGVyVGV4dENvbnRy
b2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRUcmFja0N1ZTo6UmVuZGVyVGV4dFRyYWNrQ3VlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVy
Vmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R0Jsb2NrOjpSZW5kZXJTVkdCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorCiAyMDEzLTA5LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVmVjdG9yOjpyZWxlYXNlQnVmZmVyIHNob3VsZCByZXR1cm4gYW4g
T3duUHRyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU1MTI4KQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxMTEsNiArMjEx
MSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3Bw
CiAgICAgcmVuZGVyaW5nL1JlbmRlckJSLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAogICAgIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNzQsNiArNDM3NCw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFyZW5hLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJ
KHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcg
Y29weSkKQEAgLTExNTUsNiArMTE1NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJBcHBsZXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQXJlbmEuY3BwIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgXAogICAgIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTY4Myw2ICs5NjgzLDIw
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFJlbmRlckJsb2NrRmxvdy5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU1MTI4KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzA5LDYgKzQ3MDksOCBAQAogCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdDMDBB
QzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87IH07
CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdFQjUg
LyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUJDMTBENzY3MTdEOEVFNkUwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjQ1RjQxN0Q4
RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgKi87IH07CisJCUJDMTBENzY4MTdE
OEVFNzEwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5k
ZXJCbG9ja0Zsb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0MUNEMDA5
RTIzNDkgLyogQmFyUHJvcC5jcHAgKi87IH07CiAJCUJDMTI0RUU4MEMyNjQxQ0QwMDlFMjM0OSAv
KiBCYXJQcm9wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oICovOyB9OwogCQlCQzEyNEVG
RjBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUZEMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0Jh
clByb3AuY3BwICovOyB9OwpAQCAtMTIwMTgsNiArMTIwMjAsOCBAQAogCQlCQ0ZCMkU1RDA5NzlF
NDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkIyRjc0MDk3QTJFMUEwMEJBNzAzRCAvKiBBcmVuYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJlbmEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0ZCMkY3NTA5N0EyRTFBMDBCQTcwM0QgLyogQXJlbmEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZW5hLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNS
ZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGRTJGMTAwQzFCNTgzNzAw
MjAyMzVGIC8qIEpTUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDhGMEVBRDE1QzIwMEMx
RDZGNyAvKiBMZW5ndGhCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVu
Z3RoQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM5MSw2ICsyMDM5NSw4
IEBACiAJCQkJQkNFQTQ4MUYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckFyZW5hLmggKi8sCiAJ
CQkJQkNFQTQ4MjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmNwcCAqLywKIAkJCQlC
Q0VBNDgyMTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQmxvY2suaCAqLywKKwkJCQlCQ0ZCNDVG
NDE3RDhFNDk0MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLywKKwkJCQlCQ0ZCNDVG
MzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8sCiAJCQkJQkNFQTQ4MTMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrTGluZUxheW91dC5jcHAgKi8sCiAJCQkJQkNF
QTQ4MjIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5jcHAgKi8sCiAJCQkJQkNFQTQ4MjMw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5oICovLApAQCAtMjQ1NDUsNiArMjQ1NTEsNyBA
QAogCQkJCUZCQjBDNUI4MTdCQkQ2MjkwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTE2QzU5MzE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1OTUxN0NGRTE3MjAwODUy
QzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMxMEQ3
NjgxN0Q4RUU3MTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yNzU2OCw2ICsyNzU3NSw3IEBACiAJCQkJRkJCMEM1QjcxN0JCRDYyNjAwM0QzNjc3IC8qIENT
U0ZpbHRlckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkUxNkM1OTIxN0NGRTE3
MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkUxNkM1OTQxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzEwRDc2NzE3RDhFRTZFMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBCiAgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aGFzVGFnTmFtZShzcGFuVGFnKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0g
ICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgbV9yZW5kZXJlci0+Y2hpbGRyZW5J
bmxpbmUoKSAmJiAhY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSkKKyAgICBpZiAobV9yZW5kZXJlci0+
aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBtX3JlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmICFj
YW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gIXRvUmVuZGVyQmxvY2sobV9y
ZW5kZXJlciktPmZpcnN0TGluZUJveCgpICYmICFtb3VzZUJ1dHRvbkxpc3RlbmVyKCk7CiAgICAg
CiAgICAgLy8gaWdub3JlIGltYWdlcyBzZWVtaW5nbHkgdXNlZCBhcyBzcGFjZXJzCkBAIC0yNTYy
LDcgKzI1NjIsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqCiAg
ICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShmb290ZXJUYWcpICYmICFpc0Rlc2NlbmRh
bnRPZkVsZW1lbnRUeXBlKGFydGljbGVUYWcpICYmICFpc0Rlc2NlbmRhbnRPZkVsZW1lbnRUeXBl
KHNlY3Rpb25UYWcpKQogICAgICAgICByZXR1cm4gRm9vdGVyUm9sZTsKIAotICAgIGlmIChtX3Jl
bmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc1JlbmRlckJsb2Nr
RmxvdygpKQogICAgICAgICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBl
bGVtZW50IGRvZXMgbm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFj
Y2Vzc2liaWxpdHkgc2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBA
QCBib29sIFBvc2l0aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9k
ZS0+aGFzVGFnTmFtZShodG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
LSAgICBpZiAocmVuZGVyZXItPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKHRvUmVuZGVyQmxvY2socmVuZGVyZXIp
LT5sb2dpY2FsSGVpZ2h0KCkgfHwgbV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7
CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2Nl
bmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0Rmly
c3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0
Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsKQEAgLTExODUsNyArMTE4NSw3IEBAIHZvaWQgUG9zaXRp
b246OmdldElubGluZUJveEFuZE9mZnNldChFQWYKIAogICAgIGlmICghcmVuZGVyZXItPmlzVGV4
dCgpKSB7CiAgICAgICAgIGlubGluZUJveCA9IDA7Ci0gICAgICAgIGlmIChjYW5IYXZlQ2hpbGRy
ZW5Gb3JFZGl0aW5nKGRlcHJlY2F0ZWROb2RlKCkpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygp
ICYmIGhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVy
KSkgeworICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhkZXByZWNhdGVkTm9k
ZSgpKSAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBoYXNSZW5kZXJlZE5vbkFu
b255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpIHsKICAgICAgICAgICAgIC8v
IFRyeSBhIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9zaXRpb24gd2l0aCBwb3NzaWJseSBvcHBvc2l0
ZSBlZGl0YWJpbGl0eS4gVGhpcyBoZWxwcyBpbiBjYXNlIHx0aGlzfCBpcyBpbgogICAgICAgICAg
ICAgLy8gYW4gZWRpdGFibGUgYmxvY2sgYnV0IHN1cnJvdW5kZWQgYnkgbm9uLWVkaXRhYmxlIHBv
c2l0aW9ucy4gSXQgYWN0cyB0byBuZWdhdGUgdGhlIGxvZ2ljIGF0IHRoZSBiZWdpbm5pbmcKICAg
ICAgICAgICAgIC8vIG9mIFJlbmRlck9iamVjdDo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKCkuCkBA
IC0xMzMzLDcgKzEzMzMsNyBAQCBUZXh0RGlyZWN0aW9uIFBvc2l0aW9uOjpwcmltYXJ5RGlyZWN0
aW9uCiB7CiAgICAgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uID0gTFRSOwogICAgIGZv
ciAoY29uc3QgUmVuZGVyT2JqZWN0KiByID0gbV9hbmNob3JOb2RlLT5yZW5kZXJlcigpOyByOyBy
ID0gci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKHItPmlzQmxvY2tGbG93KCkpIHsKKyAgICAg
ICAgaWYgKHItPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAgIHByaW1hcnlEaXJl
Y3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCShyZXZp
c2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIFBvc2l0aW9uSXRlcmF0b3I6
OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFibGVFbGVtZW50KG1fYW5jaG9yTm9kZSkg
fHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZSkpCiAgICAgICAgIHJldHVybiAo
YXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNl
clNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOwogCi0gICAgaWYgKCFtX2Fu
Y2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkp
IHsKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiByZW5kZXJl
ci0+aXNSZW5kZXJCbG9ja0Zsb3coKSkgewogICAgICAgICBpZiAodG9SZW5kZXJCbG9jayhyZW5k
ZXJlciktPmxvZ2ljYWxIZWlnaHQoKSB8fCBtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoYm9keVRh
ZykpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3Vz
RGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
YXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNo
b3JOb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCShyZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgdm9p
ZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZQogCiAgICAgLy8gU2luY2UgYWRk
SW5saW5lU3R5bGVJZk5lZWRlZCBjYW4ndCBhZGQgc3R5bGVzIHRvIGJsb2NrLWZsb3cgcmVuZGVy
IG9iamVjdHMsIGFkZCBzdHlsZSBhdHRyaWJ1dGUgaW5zdGVhZC4KICAgICAvLyBGSVhNRTogYXBw
bHlJbmxpbmVTdHlsZVRvUmFuZ2Ugc2hvdWxkIGJlIHVzZWQgaGVyZSBpbnN0ZWFkLgotICAgIGlm
ICgobm9kZS0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSB8fCBub2RlLT5jaGlsZE5vZGVDb3Vu
dCgpKSAmJiBub2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKKyAgICBpZiAoKG5vZGUtPnJlbmRlcmVy
KCktPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9k
ZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxl
bWVudChub2RlKSwgc3R5bGVBdHRyLCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NzQsNyArODc0LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6YQogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29udGFpbmVyLT5yZW5kZXJlcigp
OwotICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgIGlm
ICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKICAgICAvLyBhcHBlbmQgdGhlIHBsYWNlaG9sZGVyIHRvIG1ha2Ugc3Vy
ZSBpdCBmb2xsb3dzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAx
NTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MjUsNyArMTQyNSw3IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdG9yOjpiYXNlV3Jp
dGluZ0RpcmUKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0g
ICAgaWYgKCFyZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkgeworICAgIGlmICghcmVuZGVyZXItPmlz
UmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFp
bmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJ
KHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMgUmVuZGVy
T2JqZWN0KiBjYXJldFJlbmRlcmVyKE5vZGUqCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8g
aWYgY2FyZXROb2RlIGlzIGEgYmxvY2sgYW5kIGNhcmV0IGlzIGluc2lkZSBpdCB0aGVuIGNhcmV0
IHNob3VsZCBiZSBwYWludGVkIGJ5IHRoYXQgYmxvY2sKLSAgICBib29sIHBhaW50ZWRCeUJsb2Nr
ID0gcmVuZGVyZXItPmlzQmxvY2tGbG93KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2Rl
KTsKKyAgICBib29sIHBhaW50ZWRCeUJsb2NrID0gcmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93
KCkgJiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2RlKTsKICAgICByZXR1cm4gcGFpbnRlZEJ5
QmxvY2sgPyByZW5kZXJlciA6IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAkocmV2aXNpb24gMTU1MTI4
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MTgsNyArOTE4LDcgQEAgYm9vbCBUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2Vu
dE5vZGVPZgogICAgIC8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIHJhbmdlIHdlIGFyZSBpdGVyYXRp
bmcgb3ZlciBjb250YWlucyBodWdlIHNlY3Rpb25zIG9mIHVucmVuZGVyZWQgY29udGVudCwgCiAg
ICAgLy8gd2Ugd291bGQgY3JlYXRlIFZpc2libGVQb3NpdGlvbnMgb24gZXZlcnkgY2FsbCB0byB0
aGlzIGZ1bmN0aW9uIHdpdGhvdXQgdGhpcyBjaGVjay4KICAgICBpZiAoIW1fbm9kZS0+cmVuZGVy
ZXIoKSB8fCBtX25vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFCi0gICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93KCkgJiYgIXRv
UmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVpZ2h0KCkgJiYgIW1fbm9kZS0+aGFz
VGFnTmFtZShib2R5VGFnKSkpCisgICAgICAgIHx8IChtX25vZGUtPnJlbmRlcmVyKCktPmlzUmVu
ZGVyQmxvY2tGbG93KCkgJiYgIXRvUmVuZGVyQmxvY2sobV9ub2RlLT5yZW5kZXJlcigpKS0+aGVp
Z2h0KCkgJiYgIW1fbm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIC8vIFRoZSBzdGFydFBvcy5pc05vdE51bGwoKSBjaGVjayBpcyBuZWVkZWQg
YmVjYXVzZSB0aGUgc3RhcnQgY291bGQgYmUgYmVmb3JlIHRoZSBib2R5LApJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCShyZXZpc2lvbiAxNTUxMjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDQsNyArNDA0LDcgQEAgYm9vbCBUeXBpbmdDb21tYW5kOjptYWtlRWRpdGFibGVSb290RW1w
dAogCiAgICAgaWYgKHJvb3QtPmZpcnN0Q2hpbGQoKSA9PSByb290LT5sYXN0Q2hpbGQoKSAmJiBy
b290LT5maXJzdEVsZW1lbnRDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxlbWVudENoaWxkKCktPmhh
c1RhZ05hbWUoYnJUYWcpKSB7CiAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc2luZ2xlIGNoaWxk
IGFuZCBpdCBjb3VsZCBiZSBhIHBsYWNlaG9sZGVyLCBsZWF2ZSBpdCBhbG9uZS4KLSAgICAgICAg
aWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNCbG9ja0Zsb3coKSkK
KyAgICAgICAgaWYgKHJvb3QtPnJlbmRlcmVyKCkgJiYgcm9vdC0+cmVuZGVyZXIoKS0+aXNSZW5k
ZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTUxMjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5MCw3ICsxMjkwLDcgQEAgYm9vbCBpc0Jsb2NrRmxvd0VsZW1lbnQoY29uc3QgTm9kZSog
bm9kZQogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAg
cmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpOworICAgIHJldHVybiBy
ZW5kZXJlciAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKTsKIH0KIAogRWxlbWVudCog
ZGVwcmVjYXRlZEVuY2xvc2luZ0Jsb2NrRmxvd0VsZW1lbnQoTm9kZSogbm9kZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBIVE1MRWxlbWVu
dCogc2xpZGVyVHJhY2tFbGVtZW50T2YoTm9kZSogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiBSZW5kZXJTbGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVy
VGh1bWJFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAkocmV2aXNpb24gMTU1MTI4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Niw3ICs5Niw3IEBAIEhUTUxFbGVtZW50KiBzbGlkZXJUcmFj
a0VsZW1lbnRPZihOb2RlKikKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotY2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyU2xpZGVyVGh1bWIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsK
IHB1YmxpYzoKICAgICBSZW5kZXJTbGlkZXJUaHVtYihTbGlkZXJUaHVtYkVsZW1lbnQqKTsKICAg
ICB2b2lkIHVwZGF0ZUFwcGVhcmFuY2UoUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24gMTU1MTI4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxLDcgKzEzMSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRT
dGF0ZSogcHIKICAgICAgICAgY29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihyZW5kZXJl
cik7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3IGdyaWQgdG8gdHJhY2ssIHRoZW4gYWRkIGl0
IHRvIG91ciBzZXQuCi0gICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkK
KyAgICBpZiAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6Omlu
aXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKQogICAgICAg
ICBlc3RhYmxpc2hMaW5lR3JpZCh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKSk7CiAKICAgICAvLyBG
SVhNRTogPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQzPiBBcHBs
eSBjb250cm9sIGNsaXAgaWYgcHJlc2VudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcyMCw3ICsxNzIwLDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheQogICAgICAgICBpZiAo
b2xkSGVpZ2h0ID4gbmV3SGVpZ2h0ICYmIG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdo
dCAmJiAhY2hpbGRyZW5JbmxpbmUoKSkgewogICAgICAgICAgICAgLy8gT25lIG9mIG91ciBjaGls
ZHJlbidzIGZsb2F0cyBtYXkgaGF2ZSBiZWNvbWUgYW4gb3ZlcmhhbmdpbmcgZmxvYXQgZm9yIHVz
LiBXZSBuZWVkIHRvIGxvb2sgZm9yIGl0LgogICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNCbG9ja0Zsb3coKSAmJiAhY2hpbGQt
PmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICAgICAgICAgIGlm
IChjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhY2hpbGQtPmlzRmxvYXRpbmdPck91dE9m
Rmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxv
Y2sgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nr
LT5sb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20oKSArIGJsb2NrLT5sb2dpY2FsVG9wKCkgPiBuZXdI
ZWlnaHQpCiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9j
aywgZmFsc2UpOwpAQCAtMjI1OCw3ICsyMjU4LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
Y29sbGFwc2VNYXJnaW5zKAogICAgIExheW91dFVuaXQgb2xkTG9naWNhbEhlaWdodCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxUb3ApOwogICAgIFJlbmRl
ck9iamVjdCogcHJldiA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICBpZiAocHJldiAm
JiBwcmV2LT5pc0Jsb2NrRmxvdygpICYmICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpIHsKKyAgICBpZiAocHJldiAmJiBwcmV2LT5pc1JlbmRlckJsb2NrRmxvdygpICYm
ICFwcmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgUmVu
ZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhwcmV2KTsKICAgICAgICAgaWYgKGJsb2Nr
LT5jb250YWluc0Zsb2F0cygpICYmICFibG9jay0+YXZvaWRzRmxvYXRzKCkgJiYgKGJsb2NrLT5s
b2dpY2FsVG9wKCkgKyBibG9jay0+bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkpID4gbG9naWNh
bFRvcCkgCiAgICAgICAgICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9jaywgZmFsc2UpOwpA
QCAtMzY4Myw3ICszNjgzLDcgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMo
UmVuZAogICAgIC8vIEZJWE1FOiBvdmVyZmxvdzogYXV0by9zY3JvbGwgcmVnaW9ucyBuZWVkIG1v
cmUgbWF0aCBoZXJlLCBzaW5jZSBwYWludGluZyBpbiB0aGUgYm9yZGVyIGJveCBpcyBkaWZmZXJl
bnQgZnJvbSBwYWludGluZyBpbiB0aGUgcGFkZGluZyBib3ggKG9uZSBpcyBzY3JvbGxlZCwgdGhl
IG90aGVyIGlzCiAgICAgLy8gZml4ZWQpLgogICAgIEdhcFJlY3RzIHJlc3VsdDsKLSAgICBpZiAo
IWlzQmxvY2tGbG93KCkpIC8vIEZJWE1FOiBNYWtlIG11bHRpLWNvbHVtbiBzZWxlY3Rpb24gZ2Fw
IGZpbGxpbmcgd29yayBzb21lZGF5LgorICAgIGlmICghaXNSZW5kZXJCbG9ja0Zsb3coKSkgLy8g
RklYTUU6IE1ha2UgbXVsdGktY29sdW1uIHNlbGVjdGlvbiBnYXAgZmlsbGluZyB3b3JrIHNvbWVk
YXkuCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBpZiAoaGFzQ29sdW1ucygpIHx8IGhh
c1RyYW5zZm9ybSgpIHx8IHN0eWxlKCktPmNvbHVtblNwYW4oKSkgewpAQCAtNjc2Miw3ICs2NzYy
LDcgQEAgaW50IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYQogCiBpbnQgUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJveEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQmxv
Y2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKSkKKyAgICBp
ZiAoIWlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVi
eVJ1bigpKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkp
IHsKQEAgLTY3OTEsNyArNjc5MSw3IEBAIGludCBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNl
bGluZShMaW4KIAogaW50IFJlbmRlckJsb2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKExpbmVEaXJl
Y3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygp
IHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKCFpc1Jl
bmRlckJsb2NrRmxvdygpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkp
CiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChjaGlsZHJlbklubGluZSgpKSB7CkBAIC02
ODUyLDcgKzY4NTIsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJsb2Nr
CiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBidXR0b25zIGFyZSBpbXBsZW1lbnRlZCB3
aXRoIGFsaWduLWl0ZW1zIGluc3RlYWQKICAgICAgICAgLy8gb2YgZmxleGJveC4KICAgICAgICAg
aWYgKGZpcnN0TGluZUJsb2NrLT5pc1JlcGxhY2VkKCkgfHwgZmlyc3RMaW5lQmxvY2stPmlzRmxv
YXRpbmcoKQotICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJz
dENoaWxkKCkgIT0gZmlyc3RMaW5lQmxvY2sgfHwgIXBhcmVudEJsb2NrLT5pc0Jsb2NrRmxvdygp
CisgICAgICAgICAgICB8fCAhcGFyZW50QmxvY2sgfHwgcGFyZW50QmxvY2stPmZpcnN0Q2hpbGQo
KSAhPSBmaXJzdExpbmVCbG9jayB8fCAhcGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2tGbG93KCkK
ICAgICAgICAgICAgIHx8IChwYXJlbnRCbG9jay0+aXNGbGV4aWJsZUJveCgpICYmICFwYXJlbnRC
bG9jay0+aXNSZW5kZXJCdXR0b24oKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocGFyZW50QmxvY2stPmlzUmVuZGVyQmxvY2so
KSk7CkBAIC02OTExLDcgKzY5MTEsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmlu
ZEZpcnN0TGV0CiAKICAgICAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRCbG9jayA9IGZpcnN0TGV0
dGVyQmxvY2stPnBhcmVudCgpOwogICAgICAgICBpZiAoZmlyc3RMZXR0ZXJCbG9jay0+aXNSZXBs
YWNlZCgpIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmlyc3RDaGlsZCgpICE9IGZp
cnN0TGV0dGVyQmxvY2sgfHwgCi0gICAgICAgICAgICAhcGFyZW50QmxvY2stPmlzQmxvY2tGbG93
KCkgfHwgKHBhcmVudEJsb2NrLT5pc0ZsZXhpYmxlQm94KCkgJiYgIXBhcmVudEJsb2NrLT5pc1Jl
bmRlckJ1dHRvbigpKSkKKyAgICAgICAgICAgICFwYXJlbnRCbG9jay0+aXNSZW5kZXJCbG9ja0Zs
b3coKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAhcGFyZW50QmxvY2stPmlz
UmVuZGVyQnV0dG9uKCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGZpcnN0TGV0
dGVyQmxvY2sgPSBwYXJlbnRCbG9jazsKICAgICB9IApAQCAtNzA5Myw3ICs3MDkzLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogc3RhdGljIGJvb2wgc2hvdWxkQ2hl
Y2tMaW5lcyhSZW5kZXJPYmplY3QqIG9iaikKIHsKICAgICByZXR1cm4gIW9iai0+aXNGbG9hdGlu
Z09yT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFvYmotPmlzUnVuSW4oKQotICAgICAgICAgICAg
JiYgb2JqLT5pc0Jsb2NrRmxvdygpICYmIG9iai0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkK
KyAgICAgICAgICAgICYmIG9iai0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiBvYmotPnN0eWxlKCkt
PmhlaWdodCgpLmlzQXV0bygpCiAgICAgICAgICAgICAmJiAoIW9iai0+aXNEZXByZWNhdGVkRmxl
eGlibGVCb3goKSB8fCBvYmotPnN0eWxlKCktPmJveE9yaWVudCgpID09IFZFUlRJQ0FMKTsKIH0K
IApAQCAtNzE5OCw3ICs3MTk4LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVy
Rml0KExheQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAoUmVuZGVyQm94KiBvYmog
PSBmaXJzdENoaWxkQm94KCk7IG9iajsgb2JqID0gb2JqLT5uZXh0U2libGluZ0JveCgpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCFvYmotPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQo
KSkgewotICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc0Jsb2NrRmxvdygpICYmICFvYmot
Pmhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAob2JqLT5pc1JlbmRl
ckJsb2NrRmxvdygpICYmICFvYmotPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdG9SZW5kZXJCbG9jayhvYmopLT5hZGp1c3RGb3JCb3JkZXJGaXQoeCArIG9iai0+
eCgpLCBsZWZ0LCByaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9iai0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGFyZSBhIHJlcGxhY2VkIGVsZW1lbnQgb3Igc29tZSBraW5kIG9mIG5vbi1ibG9jay1m
bG93IG9iamVjdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShy
ZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtNjI3LDcgKzYyNyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJCbG9jaygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiAo
IWlzSW5saW5lKCkgfHwgaXNSZXBsYWNlZCgpKSAmJiAhaXNUYWJsZSgpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gaXNJbmxpbmUoKSAmJiBpc1JlcGxhY2VkKCk7IH0KIAogICAgIHZvaWQgbWFrZUNo
aWxkcmVuTm9uSW5saW5lKFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQgPSAwKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0
aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSogbm9k
ZSkKKyAgICA6IFJlbmRlckJsb2NrKG5vZGUpCit7Cit9CisKK1JlbmRlckJsb2NrRmxvdzo6flJl
bmRlckJsb2NrRmxvdygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0Zmlz
aC5tYW5AZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMsICBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUmVuZGVyQmxvY2tGbG93X2gKKyNkZWZpbmUg
UmVuZGVyQmxvY2tGbG93X2gKKworI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2tGbG93IDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW5kZXJCbG9ja0Zsb3coQ29udGFpbmVyTm9kZSop
OworICAgIHZpcnR1YWwgflJlbmRlckJsb2NrRmxvdygpOworICAgIAorICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckJsb2NrRmxvdygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KK307CisKK2lubGluZSBSZW5kZXJCbG9ja0Zsb3cmIHRvUmVuZGVyQmxvY2tGbG93KFJlbmRl
ck9iamVjdCYgb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KG9iamVjdC5pc1JlbmRlckJsb2NrRmxvdygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyQmxvY2tGbG93Jj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCit7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyQmxvY2tGbG93
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJCbG9ja0Zsb3cmPihvYmpl
Y3QpOworfQorCitpbmxpbmUgUmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhSZW5k
ZXJPYmplY3QqIG9iamVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCitpbmxpbmUgY29uc3Qg
UmVuZGVyQmxvY2tGbG93KiB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKK3sgCisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzUmVuZGVyQmxvY2tGbG93KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBSZW5kZXJCbG9ja0Zsb3cqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyQmxvY2tGbG93
KGNvbnN0IFJlbmRlckJsb2NrRmxvdyopOwordm9pZCB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UmVuZGVyQmxvY2tGbG93X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCShyZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwMyw3ICsyMTAzLDcgQEAgdm9pZCBSZW5kZXJC
b3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjbwogICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCkt
Pm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQogICAgIAotICAgIGlmIChwb3NpdGlv
biAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRpb24gJiYgby0+
aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocG9zaXRpb24gIT0g
QWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0aW9uICYmIG8tPmhhc0Nv
bHVtbnMoKSAmJiBvLT5pc1JlbmRlckJsb2NrRmxvdygpKSB7CiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICB0b1JlbmRlckJsb2Nr
KG8pLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50UmVjdCk7CiAgICAgICAgIHRvcExlZnQg
PSByZXBhaW50UmVjdC5sb2NhdGlvbigpOwpAQCAtNDA5Myw3ICs0MDkzLDcgQEAgVmlzaWJsZVBv
c2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQbwogICAgICAgICBhZGp1c3RlZFBvaW50Lm1v
dmVCeShsb2NhdGlvbigpKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3Qg
PSBmaXJzdENoaWxkKCk7IHJlbmRlck9iamVjdDsgcmVuZGVyT2JqZWN0ID0gcmVuZGVyT2JqZWN0
LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGls
ZCgpICYmICFyZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNCbG9j
a0Zsb3coKSApCisgICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFy
ZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNSZW5kZXJCbG9ja0Zs
b3coKSApCiAgICAgICAgICAgICB8fCByZW5kZXJPYmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlz
aW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHMpOwogCi0gICAg
Ym9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRpbmco
KSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYgIWlz
VGFibGVDZWxsKCkgJiYgaXNCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9Cisg
ICAgYm9vbCBjYW5IYXZlQm94SW5mb0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRp
bmcoKSAmJiAhaXNSZXBsYWNlZCgpICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYg
IWlzVGFibGVDZWxsKCkgJiYgaXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhaXNSZW5kZXJTVkdCbG9j
aygpOyB9CiAKIAogICAgIHZvaWQgZ2V0R2VvbWV0cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIEludFJlY3QmIGRlc3RSZWN0
LCBJbnRQb2ludCYgcGhhc2UsIEludFNpemUmIHRpbGVTaXplKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCShyZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg4LDcg
Kzk4OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKIAogICAg
ICAgICBjaGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKHJlbGF5b3V0Q2hp
bGRyZW4gfHwgKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgpLT53aWR0aCgp
LmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0g
ICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmIGNoaWxk
LT5pc0Jsb2NrRmxvdygpKSkgeworICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHlsZSgpLT5oZWln
aHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkpIHsKICAgICAgICAg
ICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAKICAg
ICAgICAgICAgIC8vIERpcnR5IGFsbCB0aGUgcG9zaXRpb25lZCBvYmplY3RzLgpAQCAtOTk4LDcg
Kzk5OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNC
bG9ja0Zsb3coKSkKKyAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8o
KSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIG1heExpbmVDb3Vu
dCA9IG1heChtYXhMaW5lQ291bnQsIHRvUmVuZGVyQmxvY2soY2hpbGQpLT5saW5lQ291bnQoKSk7
CiAgICAgfQogCkBAIC0xMDEwLDcgKzEwMTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveDo6YXBwbHlMCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoUmVuZGVyQm94KiBj
aGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkg
ewotICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8
ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc0Jsb2NrRmxv
dygpKQorICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQp
IHx8ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc1JlbmRl
ckJsb2NrRmxvdygpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVuZGVyQmxv
Y2sqIGJsb2NrQ2hpbGQgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsKQEAgLTEwODcsNyArMTA4Nyw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpjbGVhckwKIAogICAgICAgICBj
aGlsZC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKICAgICAgICAgaWYgKChjaGlsZC0+aXNSZXBsYWNl
ZCgpICYmIChjaGlsZC0+c3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCBjaGlsZC0+c3R5
bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQotICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHls
ZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNCbG9ja0Zsb3coKSkpIHsKKyAgICAg
ICAgICAgIHx8IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlz
UmVuZGVyQmxvY2tGbG93KCkpKSB7CiAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xh
eW91dCh0cnVlKTsKIAogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1JlbmRlckJsb2NrKCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtl
ci5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXRhaWxzTWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJEZXRh
aWxzTWFya2VyOjpSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJr
ZXIuaAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRldGFpbHNNYXJrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTEgKzIyLDExIEBACiAjZGVm
aW5lIFJlbmRlckRldGFpbHNNYXJrZXJfaAogCiAjaWYgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkK
LSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlckRldGFpbHNNYXJrZXIgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRGV0YWlsc01hcmtlciBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckRldGFpbHNNYXJr
ZXIoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWVsZHNldC5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWVsZHNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyRmll
bGRzZXQ6OlJlbmRlckZpZWxkc2V0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9j
ayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCShyZXZpc2lvbiAxNTUx
MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAjaWZuZGVmIFJlbmRlckZpZWxkc2V0X2gKICNk
ZWZpbmUgUmVuZGVyRmllbGRzZXRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBS
ZW5kZXJGaWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJG
aWVsZHNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFJlbmRlckZpZWxkc2V0KEVsZW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCShyZXZpc2lv
biAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIGNvbnN0IGludCBkZWZh
dWx0V2lkdGhOdW1DaGFycyA9IDM0OwogY29uc3QgaW50IGJ1dHRvblNoYWRvd0hlaWdodCA9IDI7
CiAKIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCkKLSAgICA6IFJlbmRlckJsb2NrKGlucHV0KQorICAgIDogUmVu
ZGVyQmxvY2tGbG93KGlucHV0KQogICAgICwgbV9jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKGlucHV0
LT5jYW5SZWNlaXZlRHJvcHBlZEZpbGVzKCkpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAkocmV2aXNpb24gMTU1
MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbF9oCiAKLSNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxLDcgKzMxLDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVu
dDsKIC8vIHN1ZmZpY2llbnQgc3BhY2UgdG8gZHJhdyBhIGZpbGUgaWNvbiBhbmQgZmlsZW5hbWUu
IFRoZSBSZW5kZXJCdXR0b24gaGFzIGEgc2hhZG93IG5vZGUKIC8vIGFzc29jaWF0ZWQgd2l0aCBp
dCB0byByZWNlaXZlIGNsaWNrL2hvdmVyIGV2ZW50cy4KIAotY2xhc3MgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVh
bCB+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJGbG93VGhyZWFk
OjpSZW5kZXJGbG93VGhyZWFkKCkKLSAgICA6IFJlbmRlckJsb2NrKDApCisgICAgOiBSZW5kZXJC
bG9ja0Zsb3coMCkKICAgICAsIG1fcHJldmlvdXNSZWdpb25Db3VudCgwKQogICAgICwgbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0ZWQo
ZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNkZWZpbmUgUmVu
ZGVyRmxvd1RocmVhZF9oCiAKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAi
UmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlckxheWVyKiwgUmVuZGVyUmVnaQog
Ly8gYW5kIG5vZGVBdFBvaW50IG1ldGhvZHMgdG8gdGhpcyBvYmplY3QuIEVhY2ggUmVuZGVyUmVn
aW9uIHdpbGwgYWN0dWFsbHkgYmUgYSB2aWV3UG9ydAogLy8gb2YgdGhlIFJlbmRlckZsb3dUaHJl
YWQuCiAKLWNsYXNzIFJlbmRlckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFz
cyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAg
ICBSZW5kZXJGbG93VGhyZWFkKCk7CiAgICAgdmlydHVhbCB+UmVuZGVyRmxvd1RocmVhZCgpIHsg
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKQEAgLTM2LDEwICszNywxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xh
c3MgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcihS
ZW5kZXJGdWxsU2NyZWVuKiBvd25lcikgCi0gICAgICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICAg
ICAgOiBSZW5kZXJCbG9ja0Zsb3coMCkKICAgICAgICAgLCBtX293bmVyKG93bmVyKSAKICAgICB7
CiAgICAgICAgIHNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZvd25lci0+ZG9jdW1lbnQoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24g
MTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21w
dXRlUmVjdEZvclJlcGFpbnQKIAogICAgIExheW91dFBvaW50IHRvcExlZnQgPSByZWN0LmxvY2F0
aW9uKCk7CiAKLSAgICBpZiAoby0+aXNCbG9ja0Zsb3coKSAmJiAhc3R5bGUoKS0+aGFzT3V0T2ZG
bG93UG9zaXRpb24oKSkgeworICAgIGlmIChvLT5pc1JlbmRlckJsb2NrRmxvdygpICYmICFzdHls
ZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKSB7CiAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9
IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgIGlmIChjYi0+aGFzQ29sdW1ucygpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHRvcExlZnQsIHJlY3Quc2l6ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAko
cmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
b3hMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw3IEBAIGJvb2wgUmVuZGVy
TGluZUJveExpc3Q6OmhpdFRlc3QoUmVuZGVyQm8KIAogdm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIFJlbmRl
ck9iamVjdCogY2hpbGQpCiB7Ci0gICAgaWYgKCFjb250YWluZXItPnBhcmVudCgpIHx8IChjb250
YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVlZHNMYXlvdXQoKSB8
fCAhY29udGFpbmVyLT5pc0Jsb2NrRmxvdygpKSkpCisgICAgaWYgKCFjb250YWluZXItPnBhcmVu
dCgpIHx8IChjb250YWluZXItPmlzUmVuZGVyQmxvY2soKSAmJiAoY29udGFpbmVyLT5zZWxmTmVl
ZHNMYXlvdXQoKSB8fCAhY29udGFpbmVyLT5pc1JlbmRlckJsb2NrRmxvdygpKSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFpbmVy
LT5pc1JlbmRlcklubGluZSgpID8gdG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHJldmlzaW9uIDE1NTEy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogUmVuZGVyTWV0ZXI6OlJlbmRlck1ldGVyKEhUTUxFbGVtZW50KiBl
bGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxv
dyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuaAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUgUmVuZGVy
TWV0ZXJfaAogCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCi0jaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRn
ZXQuaCIKIAogCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTE1ldGVyRWxlbWVudDsKIAotY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyTWV0ZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJNZXRlcihIVE1MRWxlbWVudCopOwog
ICAgIHZpcnR1YWwgflJlbmRlck1ldGVyKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZpc2lvbiAxNTUxMjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6UmVuZGVyTXVsdGlD
b2x1bW5CbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkK
KyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogICAgICwgbV9mbG93VGhyZWFkKDApCiAg
ICAgLCBtX2NvbHVtbkNvdW50KDEpCiAgICAgLCBtX2NvbHVtbldpZHRoKDApCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgJKHJl
dmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtbkJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywxMyBAQAogI2lmbmRlZiBS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKICNkZWZpbmUgUmVuZGVyTXVsdGlDb2x1bW5CbG9ja19o
CiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZDsKIAotY2xhc3MgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhFbGVt
ZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCkpIHsKLSAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93
KCkpIHsKKyAgICAgICAgaWYgKG8tPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgICAg
IFJlbmRlckJsb2NrKiBjYiA9IHRvUmVuZGVyQmxvY2sobyk7CiAgICAgICAgICAgICBpZiAoY2It
Pmhhc0NvbHVtbnMoKSkKICAgICAgICAgICAgICAgICBjYi0+YWRqdXN0UmVjdEZvckNvbHVtbnMo
cmVjdCk7CkBAIC0xOTY0LDcgKzE5NjQsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKFN0eWxlCiAKICAgICAgICAgc19hZmZlY3RzUGFyZW50QmxvY2sgPSBpc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkKICAgICAgICAgICAgICYmICghbmV3U3R5bGUtPmlzRmxv
YXRpbmcoKSAmJiAhbmV3U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCi0gICAgICAgICAg
ICAmJiBwYXJlbnQoKSAmJiAocGFyZW50KCktPmlzQmxvY2tGbG93KCkgfHwgcGFyZW50KCktPmlz
UmVuZGVySW5saW5lKCkpOworICAgICAgICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5p
c1JlbmRlckJsb2NrRmxvdygpIHx8IHBhcmVudCgpLT5pc1JlbmRlcklubGluZSgpKTsKIAogICAg
ICAgICBzX25vTG9uZ2VyQWZmZWN0c1BhcmVudEJsb2NrID0gKCghaXNGbG9hdGluZygpICYmIG5l
d1N0eWxlLT5pc0Zsb2F0aW5nKCkpIHx8ICghaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbmV3
U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpKQogICAgICAgICAgICAgJiYgcGFyZW50KCkg
JiYgcGFyZW50KCktPmlzUmVuZGVyQmxvY2soKTsKQEAgLTI3OTYsNyArMjc5Niw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBmaXJzdExpbmUKICAgICBpZiAocmVuZGVyZXItPmlz
QmVmb3JlT3JBZnRlckNvbnRlbnQoKSkKICAgICAgICAgcmVuZGVyZXJGb3JGaXJzdExpbmVTdHls
ZSA9IHJlbmRlcmVyLT5wYXJlbnQoKTsKIAotICAgIGlmIChyZW5kZXJlckZvckZpcnN0TGluZVN0
eWxlLT5pc0Jsb2NrRmxvdygpKSB7CisgICAgaWYgKHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUt
PmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBmaXJzdExp
bmVCbG9jayA9IHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZpcnN0TGluZUJsb2NrKCkpIHsK
ICAgICAgICAgICAgIGlmICh0eXBlID09IENhY2hlZCkKICAgICAgICAgICAgICAgICByZXR1cm4g
Zmlyc3RMaW5lQmxvY2stPmdldENhY2hlZFBzZXVkb1N0eWxlKEZJUlNUX0xJTkUsIHN0eWxlKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1
NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIxLDcgKzMyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUHNldWRvRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgp
OyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNCUigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzUw
LDYgKzM0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxv
Y2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJTVkdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCShyZXZp
c2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIFJlbmRlck9iamVj
dCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW0KIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBuZXdD
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBub3RpZnlSZW5kZXJlcikKIHsK
ICAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnQoKSk7Ci0gICAgQVNTRVJUKCFvd25lci0+aXNC
bG9ja0Zsb3coKSB8fCAoIW5ld0NoaWxkLT5pc1RhYmxlU2VjdGlvbigpICYmICFuZXdDaGlsZC0+
aXNUYWJsZVJvdygpICYmICFuZXdDaGlsZC0+aXNUYWJsZUNlbGwoKSkpOworICAgIEFTU0VSVCgh
b3duZXItPmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKCFuZXdDaGlsZC0+aXNUYWJsZVNlY3Rpb24o
KSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVDZWxsKCkp
KTsKIAogICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgJiYg
YmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9IG93bmVyKQogICAgICAgICBiZWZvcmVDaGlsZCA9IGJl
Zm9yZUNoaWxkLT5wYXJlbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJQcm9n
cmVzczo6UmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJC
bG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX3Bv
c2l0aW9uKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbikKICAgICAsIG1fYW5p
bWF0aW9uU3RhcnRUaW1lKDApCiAgICAgLCBtX2FuaW1hdGlvblJlcGVhdEludGVydmFsKDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24g
MTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDEzICsyMiwxMyBAQAogI2RlZmluZSBSZW5kZXJQcm9ncmVzc19o
CiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFM
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFMIDogcHVi
bGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyUHJvZ3Jl
c3MoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVzcygpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAJKHJldmlzaW9uIDE1NTEy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVsZW1lbnQs
IFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50
KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxv
d1RocmVhZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzVmFs
aWQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCShy
ZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpZm5kZWYgUmVuZGVyUmVnaW9u
X2gKICNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisj
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRh
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUmVuZGVy
Qm94UmVnaW9uSW5mbzsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ7CiAKLWNsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CitjbGFzcyBSZW5kZXJSZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24oRWxlbWVudCosIFJlbmRlckZsb3dUaHJlYWQqKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAkocmV2aXNpb24g
MTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OnJl
bW92ZUNoaWxkKFJlbgogLy89PT0gcnVieSBhcyBibG9jayBvYmplY3QgPT09CiAKIFJlbmRlclJ1
YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVu
ZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHJldmlzaW9uIDE1NTEy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgUmVuZGVyUnVieV9oCiAjZGVmaW5lIFJlbmRl
clJ1YnlfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogfTsKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBh
cyAnZGlzcGxheTpibG9jaycgb3IgJ2Rpc3BsYXk6aW5saW5lLWJsb2NrJwotY2xhc3MgUmVuZGVy
UnVieUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVi
eUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBS
ZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzQmxv
Y2soKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNw
cAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVi
eUJhc2UoKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQog
ewogICAgIHNldElubGluZShmYWxzZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwx
MyBAQAogI2lmbmRlZiBSZW5kZXJSdWJ5QmFzZV9oCiAjZGVmaW5lIFJlbmRlclJ1YnlCYXNlX2gK
IAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAotY2xhc3Mg
UmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVy
UnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5SZW5kZXJSdWJ5QmFzZSgpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4oKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6
IFJlbmRlckJsb2NrRmxvdygwKQogewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogICAgIHNldElu
bGluZSh0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
aAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBSZW5kZXJS
dWJ5UnVuX2gKICNkZWZpbmUgUmVuZGVyUnVieVJ1bl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyUnVieVRleHQ7CiAvLyBSZW5kZXJSdWJ5
UnVuIGFyZSAnaW5saW5lLWJsb2NrL3RhYmxlJyBsaWtlIG9iamVjdHMsYW5kIHdyYXAgYSBzaW5n
bGUgcGFpcmluZyBvZiBhIHJ1YnkgYmFzZSB3aXRoIGl0cyBydWJ5IHRleHQocykuCiAvLyBTZWUg
UmVuZGVyUnVieS5oIGZvciBmdXJ0aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1Y3R1cmUKIAotY2xh
c3MgUmVuZGVyUnVieVJ1biBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJSdWJ5UnVuIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UmVuZGVyUnVieVJ1bigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5k
ZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCShyZXZpc2lv
biAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaWZuZGVmIFJlbmRlclJ1YnlUZXh0
X2gKICNkZWZpbmUgUmVuZGVyUnVieVRleHRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
KyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBS
ZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgog
ICAgIFJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5VGV4
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Fw
dGlvbi5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNhcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVDYXB0
aW9uKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMTMgKzIwLDEzIEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAjZGVm
aW5lIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJlbmRlclRhYmxlOwogCi1jbGFzcyBSZW5kZXJUYWJsZUNhcHRpb24gRklOQUwgOiBwdWJsaWMg
UmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVGFibGVDYXB0aW9uIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDYXB0aW9u
KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUYWJsZUNhcHRpb24oKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiAx
NTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3N0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVD
ZWxsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzOwog
ICAgIGludCBwYWRkaW5nc1syXTsKIH07CkBAIC01Nyw3ICs1Nyw3IEBAIENPTVBJTEVfQVNTRVJU
KHNpemVvZihSZW5kZXJUYWJsZUNlbGwpID0KIENPTVBJTEVfQVNTRVJUKHNpemVvZihDb2xsYXBz
ZWRCb3JkZXJWYWx1ZSkgPT0gOCwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21h
bGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVt
ZW50KQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdpZHRo
Q2hhbmdlZChmYWxzZSkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0JlZm9yZSgwKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAkocmV2aXNpb24gMTU1
MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2VsbF9oCiAj
ZGVmaW5lIFJlbmRlclRhYmxlQ2VsbF9oCiAKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlU2VjdGlv
bi5oIgogCkBAIC0zNSw3ICszNiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5J
bmRleCA9IDAKIAogZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJv
cmRlckNvbG9yLCBJbmNsdWRlQm9yZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVuZGVyVGFibGVDZWxs
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRhYmxlQ2VsbCBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clRhYmxlQ2VsbChFbGVtZW50Kik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKGlzSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoZWxlbWVu
dCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmgJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNCArMjIsMTQgQEAKICNpZm5k
ZWYgUmVuZGVyVGV4dENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJUZXh0Q29udHJvbF9oCiAKLSNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclRleHRDb250cm9s
IDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9sIDogcHVibGlj
IFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRy
b2woKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gMTU1MTI4KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZShjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRl
clRleHRDb250cm9sSW5uZXJCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5k
ZXJUZXh0Q29udHJvbElubmVyQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KSB7IH0KKyAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2so
RWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkgeyB9CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFj
a0N1ZS5jcHAJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiUmVuZGVyVGV4dFRyYWNrQ3VlLmgi
CisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFja0N1ZS5oIgpAQCAtMzcsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJUZXh0VHJhY2tDdWU6OlJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tD
dWVCb3gqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVy
QmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2N1ZShlbGVtZW50LT5nZXRDdWUoKSkKIHsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmgJ
KHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
VHJhY2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlcklu
bGluZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFRleHRUcmFja0N1ZUJveDsKIAot
Y2xhc3MgUmVuZGVyVGV4dFRyYWNrQ3VlIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2Ns
YXNzIFJlbmRlclRleHRUcmFja0N1ZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewog
cHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gq
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNp
b24gMTU1MTI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogUmVuZGVyQmxv
Y2soZG9jdW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQpCiAgICAgLCBtX2Zy
YW1lVmlldygqZG9jdW1lbnQtPnZpZXcoKSkKICAgICAsIG1fc2VsZWN0aW9uU3RhcnQoMCkKICAg
ICAsIG1fc2VsZWN0aW9uRW5kKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgJKHJldmlzaW9uIDE1NTEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0
QXJlbmEuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2Nr
Rmxvdy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CiBjbGFzcyBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0OwogI2VuZGlmCiAKLWNsYXNzIFJlbmRlclZpZXcgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVmlldyBGSU5BTCA6IHB1YmxpYyBS
ZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclZpZXcoRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJWaWV3KCk7CkBAIC0yNTMsNyArMjUzLDcgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlv
dXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAg
ICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5h
dGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+Zmxvd1RocmVhZENv
bnRhaW5pbmdCbG9jaygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgp
IHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlh
bExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisgICAgICAgICAgICB8fCBt
X2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQo
KSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVy
QmxvY2tGbG93KCkpCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgICAgICAgICB8fCAocmVu
ZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+c2hhcGVJ
bnNpZGVJbmZvKCkpCiAgICAgICAgICAgICB8fCAobV9sYXlvdXRTdGF0ZS0+c2hhcGVJbnNpZGVJ
bmZvKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiAhdG9SZW5kZXJCbG9jayhyZW5k
ZXJlciktPmFsbG93c1NoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAkocmV2aXNpb24gMTU1MTI4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckFyZW5hLmNwcCIK
ICNpbmNsdWRlICJSZW5kZXJCUi5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suY3BwIgorI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJCb3guY3BwIgogI2luY2x1ZGUgIlJlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQmxvY2suY3BwCShyZXZpc2lvbiAxNTUxMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyAr
MzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTVkdCbG9jazo6UmVuZGVyU1ZH
QmxvY2soU1ZHRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQpCisg
ICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAkocmV2aXNpb24gMTU1MTI4KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSwxNCArMjEsMTQgQEAKICNkZWZpbmUgUmVuZGVyU1ZHQmxvY2tfaAogCiAj
aWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJTVkdCbG9jayA6
IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJTVkdCbG9jayA6IHB1YmxpYyBSZW5k
ZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0Jsb2NrKFNWR0Vs
ZW1lbnQqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210781</attachid>
            <date>2013-09-06 12:50:36 -0700</date>
            <delta_ts>2013-09-06 12:57:55 -0700</delta_ts>
            <desc>Patch that deals with the layout test regressions</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>74487</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MyBAQAorMjAxMy0wOS0wNiAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBSZW5kZXJCbG9ja0Zs
b3cgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjA3NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgUmVuZGVyQmxvY2tGbG93IGNsYXNzLiBUaGUgaWRlYSBp
cyB0byBnZXQgYWxsIG9mIHRoZSBsaW5lL2Zsb2F0L21hcmdpbgorICAgICAgICBjb2RlIG91dCBv
ZiBSZW5kZXJCbG9jayBhbmQgaW50byB0aGUgc3ViY2xhc3MsIGFuZCB0aGVuIHdlIGNhbiBtYWtl
IFJlbmRlckJsb2NrIGFuIGFic3RyYWN0CisgICAgICAgIGJhc2UuIFRoaXMgd2lsbCBzYXZlIG1l
bW9yeSBmb3IgYWxsIG9mIHRoZSBjbGFzc2VzIHRoYXQgZGVyaXZlIGZyb20gUmVuZGVyQmxvY2sg
YnV0IGhhdmUKKyAgICAgICAgdGhlaXIgb3duIGxheW91dCBzeXN0ZW1zIChlLmcuLCBmbGV4Ym94
LCBncmlkLCB0YWJsZSksIGFuZCBpdCB3aWxsIGxldCB1cyB0aWdodGVuIHVwCisgICAgICAgIHR5
cGVzIHRvIG1ha2UgaXQgbW9yZSBjbGVhciB3aGVuIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYmxvY2sg
bGF5b3V0IGNvZGUgdnMuIGEgbW9yZSBnZW5lcmljCisgICAgICAgIGJsb2NrLWxldmVsIG9iamVj
dCB0aGF0IGNhbiBoYXZlIGFueSBraW5kIG9mIGxheW91dC4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIG5ldyBjbGFzcyBhbmQgaXQgbWFrZXMgc3VyZSBhbGwgdGhlIG9iamVjdHMgdGhh
dCBzaG91bGQgYmUgYmxvY2sgZmxvd3MKKyAgICAgICAgaW5oZXJpdCBmcm9tIHRoZSBuZXcgY2xh
c3MuCisgICAgICAgIAorICAgICAgICBpc0Jsb2NrRmxvdygpIHByb3ZlZCB0byBiZSBhIHByb2Js
ZW1hdGljIG1ldGhvZCAoYW5kIHdhcyB0aGUgc291cmNlIG9mIHJlZ3Jlc3Npb25zIHdoZW4gSQor
ICAgICAgICBsYW5kZWQgdGhpcyBwYXRjaCB0aGUgZmlyc3QgdGltZSkuIFdoZW4gdGhlIG1ldGhv
ZCB3YXMgZmlyc3QgaW1wbGVtZW50ZWQsIGl0IHdhcyBhZGRlZCBhcworICAgICAgICAiSSdtIGEg
YmxvY2sgYnV0IG5vdCBhIHRhYmxlLiIgYW5kIGF0IHRoZSB0aW1lIHRhYmxlIHdhcyB0aGUgb25s
eSBzdWJjbGFzcyBvZiBibG9jay4gSG93ZXZlcgorICAgICAgICB3aGVuIG5ldyBzdWJjbGFzc2Vz
IHdlcmUgYWRkZWQsIHRoaXMgZnVuY3Rpb24gd2FzIG5ldmVyIHBhdGNoZWQgdG8gYWNjb3VudCBm
b3IgdGhlbS4gVGhpcworICAgICAgICBtZWFucywgZm9yIGV4YW1wbGUsIHRoYXQgZmxleGlibGUg
Ym94ZXMgYW5kIGdyaWRzIGNsYWltIHRvIGJlIGJsb2NrIGZsb3dzIGluIHRoZSBjb2RlYmFzZQor
ICAgICAgICBhbmQgaGF2ZSBmb3IgeWVhcnMuIFRoaXMgaXMgb2J2aW91c2x5IHdyb25nLCBzaW5j
ZSBmbGV4aWJsZSBib3hlcyBhcmUgbm90IGluIGZhY3QgYmxvY2sKKyAgICAgICAgZmxvd3MsIGJ1
dCBiZWNhdXNlIG9mIHRoaXMgbWlzdGFrZSwgY29kZSBoYXMgc3RhcnRlZCByZWx5aW5nIG9uIHRo
ZSBpbmNvcnJlY3QgYmVoYXZpb3Igb2YKKyAgICAgICAgaXNCbG9ja0Zsb3coKSAoZm9ybSBjb250
cm9scyBtb3N0bHkpLgorICAgICAgICAKKyAgICAgICAgV2hhdCBJJ3ZlIGRvbmUgdG8gZGVhbCB3
aXRoIHRoaXMgcHJvYmxlbSBpcyByZW5hbWVkIGlzQmxvY2tGbG93KCkgdG8gYmUKKyAgICAgICAg
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgaW4gb3JkZXIgdG8gbWFrZSBpdCBvYnZpb3VzIHRo
YXQgdGhpcyBtZXRob2QgaXMgcmV0dXJuaW5nIHRydWUKKyAgICAgICAgZm9yIHByZXR0eSBtdWNo
IGFsbCBibG9ja3Mgb3RoZXIgdGhhbiB0YWJsZXMuIFRoaXMgbWFrZXMgYSBsb3Qgb2YgY2FsbCBz
aXRlcyBsb29rIHByZXR0eQorICAgICAgICBzdHVwaWQsIHNpbmNlIHRoZXkgb2J2aW91c2x5IG5l
dmVyIGludGVuZGVkIHRvIGluY2x1ZGUgZmxleGlibGUgYm94ZXMgb3IgZ3JpZHMsIGJ1dCBhdCBs
ZWFzdAorICAgICAgICBpdCBpcyBjbGVhciB3aGF0IHRoZSBtZXRob2QgaXMgZG9pbmcgbm93Lgor
ICAgICAgICAKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gbGFuZCB0aGlzIHBhdGNoIGFuZCB0aGVu
IHN0YXJ0IGNvbnZlcnRpbmcgY2FsbCBzaXRlcyBmcm9tIAorICAgICAgICBpc0Jsb2NrRmxvd0Zs
ZXhCb3hPckdyaWQoKSB0byBpc1JlbmRlckJsb2NrRmxvdygpIG9uZSBieSBvbmUsIGFuZCB0aGF0
IHdheSB3ZSBjYW4gZmlndXJlCisgICAgICAgIG91dCB3aGljaCBjb2RlIGlzIG1ha2luZyBiYWQg
YXNzdW1wdGlvbnMgYW5kIGNoYW5nZSB0aG9zZSBjYWxsZXJzIHRvIGJlIGlzUmVuZGVyQmxvY2so
KQorICAgICAgICBpbnN0ZWFkLiBVbHRpbWF0ZWx5IHRoaXMgaXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkgbWV0aG9kIHdpbGwgZ28gYXdheSB3aXRoIGNhbGxlcnMgZWl0aGVyCisgICAgICAgIGNo
YW5naW5nIHRvIHVzZSBpc1JlbmRlckJsb2NrKCkgb3IgaXNSZW5kZXJCbG9ja0Zsb3coKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGRvbS9Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aXNDYW5kaWRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmdldElubGluZUJveEFuZE9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbjo6cHJpbWFyeURpcmVjdGlvbik6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6
aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb1B1
c2hEb3duKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9ja1BsYWNlaG9sZGVy
SWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCk6CisgICAg
ICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYXJl
dFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAgICAgKiBlZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tGbG93RWxlbWVudCk6
CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJT
bGlkZXJUaHVtYik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmZpcnN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpmaXJzdExpbmVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRmlyc3RMZXR0ZXJCbG9j
ayk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRDaGVja0xpbmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjphZGp1c3RGb3JCb3JkZXJGaXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpwb3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eE1vZGVsT2JqZWN0OjpjYW5IYXZlQm94SW5mb0luUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpjbGVhckxpbmVDbGFtcCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRGV0YWlsc01hcmtlcjo6UmVuZGVyRGV0YWlsc01hcmtlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRmllbGRzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6OlJlbmRl
ckZpZWxkc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlu
ZUJveExpc3Q6OmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06
OlJlbmRlckxpc3RJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjp3aWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZVJl
bW92ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6bGF5b3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjphZGRPdmVyZmxvd0Zyb21DaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OnBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWV0ZXI6OlJl
bmRlck1ldGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpj
cmVhdGVPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RMaW5lU3R5bGVGb3JDYWNoZWRVbmNhY2hl
ZFR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNCUik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmlzUmVuZGVyQmxvY2tGbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlz
dDo6aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVu
ZGVyUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVi
eUFzQmxvY2s6OlJlbmRlclJ1YnlBc0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UnVieS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2UpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5
UnVuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4p
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJ1YnlUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlUZXh0
OjpSZW5kZXJSdWJ5VGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZUNhcHRpb246OlJlbmRlclRhYmxlQ2FwdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpS
ZW5kZXJUYWJsZUNlbGwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbElubmVyQmxvY2s6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0VHJhY2tDdWU6OlJlbmRlclRleHRUcmFja0N1ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRleHRUcmFja0N1ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcmluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJh
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjcmVhdGVH
bHlwaCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdCbG9jazo6UmVuZGVyU1ZHQmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaDoKKwogMjAxMy0wOS0wNiAgTWlrZSBXZXN0
ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmFsaWRhdGlvbiBoZWFkZXIgYmxh
Y2tsaXN0aW5nIHNob3VsZCBiZSBjYXNlLWluc2Vuc2l0aXZlLgpJbmRleDogU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTExLDYgKzIxMTEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL1JlbmRlckFyZW5hLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJCUi5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAogICAg
IHJlbmRlcmluZy9SZW5kZXJCb3guY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNTUx
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC00Mzc0LDYgKzQzNzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJBcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aCBcCisgICAgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU1LDYgKzExNTUsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCBcCiAgICAgcmVu
ZGVyaW5nL1JlbmRlckFyZW5hLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBc
CisgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NTE5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTk2ODMsNiArOTY4MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9ja0Zsb3cuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDcxMCw2ICs0NzEw
LDggQEAKIAkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1
RTIyQSAvKiBSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovOyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdF
QjUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzEwRDc2NzE3RDhFRTZFMDA1
RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9j
a0Zsb3cuY3BwICovOyB9OworCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0ZCNDVGMzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAw
OUUyMzQ5IC8qIEJhclByb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuY3BwICovOyB9
OwogCQlCQzEyNEVFODBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTUwQzI2NDFDRDAwOUUyMzQ5
IC8qIEJhclByb3AuaCAqLzsgfTsKIAkJQkMxMjRFRkYwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFy
UHJvcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzEyNEVGRDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmNwcCAqLzsgfTsKQEAgLTEyMDIw
LDYgKzEyMDIyLDggQEAKIAkJQkNGQjJFNUQwOTc5RTQ2NDAwQkE3MDNEIC8qIENhY2hlZFJlc291
cmNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNv
dXJjZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZCMkY3NDA5N0Ey
RTFBMDBCQTcwM0QgLyogQXJlbmEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGQjJGNzUw
OTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcmVuYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZCNDVGMzE3RDhF
MzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckJs
b2NrRmxvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZCNDVGNDE3RDhFNDk0
MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0ZGNjQ4RjBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoQm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEJveC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjAzOTQsNiArMjAzOTgsOCBAQAogCQkJCUJDRUE0ODFGMDk3RDkzMDIw
MDk0QzlFNCAvKiBSZW5kZXJBcmVuYS5oICovLAogCQkJCUJDRUE0ODIwMDk3RDkzMDIwMDk0QzlF
NCAvKiBSZW5kZXJCbG9jay5jcHAgKi8sCiAJCQkJQkNFQTQ4MjEwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlckJsb2NrLmggKi8sCisJCQkJQkNGQjQ1RjQxN0Q4RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRl
ckJsb2NrRmxvdy5jcHAgKi8sCisJCQkJQkNGQjQ1RjMxN0Q4RTM5MjAwNDQ0NDQ2IC8qIFJlbmRl
ckJsb2NrRmxvdy5oICovLAogCQkJCUJDRUE0ODEzMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwICovLAogCQkJCUJDRUE0ODIyMDk3RDkzMDIwMDk0QzlFNCAvKiBS
ZW5kZXJCb3guY3BwICovLAogCQkJCUJDRUE0ODIzMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJC
b3guaCAqLywKQEAgLTI0NTQ4LDYgKzI0NTU0LDcgQEAKIAkJCQlGQkIwQzVCODE3QkJENjI5MDAz
RDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1
OTMxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFMTZDNTk1MTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMTBENzY4MTdEOEVFNzEwMDVFMjYyNiAvKiBSZW5k
ZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjc1NzIsNiArMjc1NzksNyBAQAogCQkJ
CUZCQjBDNUI3MTdCQkQ2MjYwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJFMTZDNTkyMTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFMTZDNTk0MTdDRkUxNzIwMDg1MkMw
NCAvKiBJbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMxMEQ3
NjcxN0Q4RUU2RTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpjb21wdXRlQQogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoc3BhblRhZykp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc0Jsb2Nr
RmxvdygpICYmIG1fcmVuZGVyZXItPmNoaWxkcmVuSW5saW5lKCkgJiYgIWNhblNldEZvY3VzQXR0
cmlidXRlKCkpCisgICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgp
ICYmIG1fcmVuZGVyZXItPmNoaWxkcmVuSW5saW5lKCkgJiYgIWNhblNldEZvY3VzQXR0cmlidXRl
KCkpCiAgICAgICAgIHJldHVybiAhdG9SZW5kZXJCbG9jayhtX3JlbmRlcmVyKS0+Zmlyc3RMaW5l
Qm94KCkgJiYgIW1vdXNlQnV0dG9uTGlzdGVuZXIoKTsKICAgICAKICAgICAvLyBpZ25vcmUgaW1h
Z2VzIHNlZW1pbmdseSB1c2VkIGFzIHNwYWNlcnMKQEAgLTI1NjIsNyArMjU2Miw3IEBAIEFjY2Vz
c2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmoKICAgICBpZiAobm9kZSAmJiBub2Rl
LT5oYXNUYWdOYW1lKGZvb3RlclRhZykgJiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoYXJ0
aWNsZVRhZykgJiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoc2VjdGlvblRhZykpCiAgICAg
ICAgIHJldHVybiBGb290ZXJSb2xlOwogCi0gICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93
KCkpCisgICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKQogICAg
ICAgICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGRvZXMg
bm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFjY2Vzc2liaWxpdHkg
c2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBAQCBib29sIFBvc2l0
aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFt
ZShodG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICBpZiAocmVu
ZGVyZXItPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPmlzQmxvY2tGbG93Rmxl
eEJveE9yR3JpZCgpKSB7CiAgICAgICAgIGlmICh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+bG9n
aWNhbEhlaWdodCgpIHx8IG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkgewogICAg
ICAgICAgICAgaWYgKCFQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZXNjZW5kYW50
c1dpdGhIZWlnaHQocmVuZGVyZXIpKQogICAgICAgICAgICAgICAgIHJldHVybiBhdEZpcnN0RWRp
dGluZ1Bvc2l0aW9uRm9yTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUo
ZGVwcmVjYXRlZE5vZGUoKSk7CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIFBvc2l0aW9uOjpn
ZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmCiAKICAgICBpZiAoIXJlbmRlcmVyLT5pc1RleHQoKSkg
ewogICAgICAgICBpbmxpbmVCb3ggPSAwOwotICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVuRm9y
RWRpdGluZyhkZXByZWNhdGVkTm9kZSgpKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSAmJiBo
YXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpIHsK
KyAgICAgICAgaWYgKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcoZGVwcmVjYXRlZE5vZGUoKSkg
JiYgcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmIGhhc1JlbmRlcmVkTm9u
QW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkgewogICAgICAgICAgICAg
Ly8gVHJ5IGEgdmlzdWFsbHkgZXF1aXZhbGVudCBwb3NpdGlvbiB3aXRoIHBvc3NpYmx5IG9wcG9z
aXRlIGVkaXRhYmlsaXR5LiBUaGlzIGhlbHBzIGluIGNhc2UgfHRoaXN8IGlzIGluCiAgICAgICAg
ICAgICAvLyBhbiBlZGl0YWJsZSBibG9jayBidXQgc3Vycm91bmRlZCBieSBub24tZWRpdGFibGUg
cG9zaXRpb25zLiBJdCBhY3RzIHRvIG5lZ2F0ZSB0aGUgbG9naWMgYXQgdGhlIGJlZ2lubmluZwog
ICAgICAgICAgICAgLy8gb2YgUmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9zaXRpb24oKS4K
QEAgLTEzMzMsNyArMTMzMyw3IEBAIFRleHREaXJlY3Rpb24gUG9zaXRpb246OnByaW1hcnlEaXJl
Y3Rpb24KIHsKICAgICBUZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24gPSBMVFI7CiAgICAg
Zm9yIChjb25zdCBSZW5kZXJPYmplY3QqIHIgPSBtX2FuY2hvck5vZGUtPnJlbmRlcmVyKCk7IHI7
IHIgPSByLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoci0+aXNCbG9ja0Zsb3coKSkgeworICAg
ICAgICBpZiAoci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAgICAgICAgIHBy
aW1hcnlEaXJlY3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3Iu
Y3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIFBvc2l0aW9u
SXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFibGVFbGVtZW50KG1fYW5j
aG9yTm9kZSkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZSkpCiAgICAgICAg
IHJldHVybiAoYXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6
bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOwogCi0gICAg
aWYgKCFtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzQmxv
Y2tGbG93KCkpIHsKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAm
JiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAgICAgaWYgKHRv
UmVuZGVyQmxvY2socmVuZGVyZXIpLT5sb2dpY2FsSGVpZ2h0KCkgfHwgbV9hbmNob3JOb2RlLT5o
YXNUYWdOYW1lKGJvZHlUYWcpKSB7CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5k
ZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGF0U3RhcnRPZk5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJT
ZWxlY3ROb25lKG1fYW5jaG9yTm9kZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTMs
NyArMTAxMyw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUKIAog
ICAgIC8vIFNpbmNlIGFkZElubGluZVN0eWxlSWZOZWVkZWQgY2FuJ3QgYWRkIHN0eWxlcyB0byBi
bG9jay1mbG93IHJlbmRlciBvYmplY3RzLCBhZGQgc3R5bGUgYXR0cmlidXRlIGluc3RlYWQuCiAg
ICAgLy8gRklYTUU6IGFwcGx5SW5saW5lU3R5bGVUb1JhbmdlIHNob3VsZCBiZSB1c2VkIGhlcmUg
aW5zdGVhZC4KLSAgICBpZiAoKG5vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93KCkgfHwgbm9k
ZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CisgICAgaWYg
KChub2RlLT5yZW5kZXJlcigpLT5pc1JlbmRlckJsb2NrRmxvdygpIHx8IG5vZGUtPmNoaWxkTm9k
ZUNvdW50KCkpICYmIG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHRvSFRNTEVsZW1lbnQobm9kZSksIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0
eWxlKCktPmFzVGV4dCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiAx
NTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODc0LDcgKzg3NCw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmEKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnRh
aW5lci0+cmVuZGVyZXIoKTsKLSAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNCbG9j
a0Zsb3coKSkKKyAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4
Qm94T3JHcmlkKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAogICAgIC8vIGFwcGVuZCB0aGUg
cGxhY2Vob2xkZXIgdG8gbWFrZSBzdXJlIGl0IGZvbGxvd3MKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyOSw3ICsxNDI5LDcgQEAgV3JpdGluZ0Rp
cmVjdGlvbiBFZGl0b3I6OmJhc2VXcml0aW5nRGlyZQogICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBpZiAoIXJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKSB7
CisgICAgaWYgKCFyZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAg
ICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBjYXJldFJlbmRlcmVyKE5vZGUq
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8gaWYgY2FyZXROb2RlIGlzIGEgYmxvY2sgYW5k
IGNhcmV0IGlzIGluc2lkZSBpdCB0aGVuIGNhcmV0IHNob3VsZCBiZSBwYWludGVkIGJ5IHRoYXQg
YmxvY2sKLSAgICBib29sIHBhaW50ZWRCeUJsb2NrID0gcmVuZGVyZXItPmlzQmxvY2tGbG93KCkg
JiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2RlKTsKKyAgICBib29sIHBhaW50ZWRCeUJsb2Nr
ID0gcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmIGNhcmV0UmVuZGVyc0lu
c2lkZU5vZGUobm9kZSk7CiAgICAgcmV0dXJuIHBhaW50ZWRCeUJsb2NrID8gcmVuZGVyZXIgOiBy
ZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE4LDcgKzkxOCw3
IEBAIGJvb2wgVGV4dEl0ZXJhdG9yOjpzaG91bGRSZXByZXNlbnROb2RlT2YKICAgICAvLyBBZGRp
dGlvbmFsbHksIGlmIHRoZSByYW5nZSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIgY29udGFpbnMgaHVn
ZSBzZWN0aW9ucyBvZiB1bnJlbmRlcmVkIGNvbnRlbnQsIAogICAgIC8vIHdlIHdvdWxkIGNyZWF0
ZSBWaXNpYmxlUG9zaXRpb25zIG9uIGV2ZXJ5IGNhbGwgdG8gdGhpcyBmdW5jdGlvbiB3aXRob3V0
IHRoaXMgY2hlY2suCiAgICAgaWYgKCFtX25vZGUtPnJlbmRlcmVyKCkgfHwgbV9ub2RlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRQotICAgICAgICB8fCAobV9u
b2RlLT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvdygpICYmICF0b1JlbmRlckJsb2NrKG1fbm9kZS0+
cmVuZGVyZXIoKSktPmhlaWdodCgpICYmICFtX25vZGUtPmhhc1RhZ05hbWUoYm9keVRhZykpKQor
ICAgICAgICB8fCAobV9ub2RlLT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQo
KSAmJiAhdG9SZW5kZXJCbG9jayhtX25vZGUtPnJlbmRlcmVyKCkpLT5oZWlnaHQoKSAmJiAhbV9u
b2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ly8gVGhlIHN0YXJ0UG9zLmlzTm90TnVsbCgpIGNoZWNrIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBz
dGFydCBjb3VsZCBiZSBiZWZvcmUgdGhlIGJvZHksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNCw3ICs0MDQs
NyBAQCBib29sIFR5cGluZ0NvbW1hbmQ6Om1ha2VFZGl0YWJsZVJvb3RFbXB0CiAKICAgICBpZiAo
cm9vdC0+Zmlyc3RDaGlsZCgpID09IHJvb3QtPmxhc3RDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxl
bWVudENoaWxkKCkgJiYgcm9vdC0+Zmlyc3RFbGVtZW50Q2hpbGQoKS0+aGFzVGFnTmFtZShiclRh
ZykpIHsKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBzaW5nbGUgY2hpbGQgYW5kIGl0IGNvdWxk
IGJlIGEgcGxhY2Vob2xkZXIsIGxlYXZlIGl0IGFsb25lLgotICAgICAgICBpZiAocm9vdC0+cmVu
ZGVyZXIoKSAmJiByb290LT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvdygpKQorICAgICAgICBpZiAo
cm9vdC0+cmVuZGVyZXIoKSAmJiByb290LT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvd0ZsZXhCb3hP
ckdyaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5
MCw3ICsxMjkwLDcgQEAgYm9vbCBpc0Jsb2NrRmxvd0VsZW1lbnQoY29uc3QgTm9kZSogbm9kZQog
ICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJu
IHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpOworICAgIHJldHVybiByZW5kZXJl
ciAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCk7CiB9CiAKIEVsZW1lbnQq
IGRlcHJlY2F0ZWRFbmNsb3NpbmdCbG9ja0Zsb3dFbGVtZW50KE5vZGUqIG5vZGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTUx
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVsZW1lbnQu
aCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAtMTEzLDcg
KzExMyw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGMKIAogUmVu
ZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogewotICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJC
bG9jayh0aGlzKTsKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2tGbG93KHRoaXMp
OwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9v
dChTaGFkb3dSb290KiByb290KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNyArNjgsNyBAQCBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OkhUTUxTdW1tYXJ5RWxlbWVudChjCiAKIFJlbmRlck9iamVjdCogSFRNTFN1bW1hcnlF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikK
IHsKLSAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2sodGhpcyk7CisgICAgcmV0dXJu
IG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrRmxvdyh0aGlzKTsKIH0KIAogYm9vbCBIVE1MU3VtbWFy
eUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcg
QEAgSFRNTEVsZW1lbnQqIHNsaWRlclRyYWNrRWxlbWVudE9mKE5vZGUqIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVuZGVyU2xpZGVyVGh1bWI6OlJlbmRlclNsaWRl
clRodW1iKFNsaWRlclRodW1iRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVs
ZW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKIHsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJIVE1M
RGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlJlbmRlckJs
b2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTYsNyArOTYsNyBAQCBIVE1MRWxlbWVu
dCogc2xpZGVyVHJhY2tFbGVtZW50T2YoTm9kZSopCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRlclNsaWRlclRodW1iIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclNsaWRlclRodW1iIEZJTkFMIDogcHVibGljIFJlbmRl
ckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVyVGh1bWJF
bGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlKFJlbmRlclN0eWxlKiBwYXJlbnRT
dHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAJKHJl
dmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUoTGF5b3V0U3RhdGUqIHByCiAgICAgICAgIGNvbXB1dGVMaW5lR3JpZFBhZ2luYXRpb25P
cmlnaW4ocmVuZGVyZXIpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIG5ldyBncmlkIHRvIHRyYWNr
LCB0aGVuIGFkZCBpdCB0byBvdXIgc2V0LgotICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKS0+bGlu
ZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlz
QmxvY2tGbG93KCkpCisgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4
Qm94T3JHcmlkKCkpCiAgICAgICAgIGVzdGFibGlzaExpbmVHcmlkKHRvUmVuZGVyQmxvY2socmVu
ZGVyZXIpKTsKIAogICAgIC8vIEZJWE1FOiA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM0NDM+IEFwcGx5IGNvbnRyb2wgY2xpcCBpZiBwcmVzZW50LgpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxNTUxOTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzcsNyArMjM3LDcgQEAgUmVuZGVyQmxvY2s6On5SZW5kZXJCbG9jaygpCiAKIFJlbmRl
ckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKERvY3VtZW50KiBkb2N1bWVudCkK
IHsKLSAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJCbG9jaygwKTsKKyAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRv
Y3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9ja0Zsb3coMCk7CiAgICAgcmVuZGVyZXIt
PnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7
CiB9CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhi
b29sIHJlbGF5CiAgICAgICAgIGlmIChvbGRIZWlnaHQgPiBuZXdIZWlnaHQgJiYgbWF4RmxvYXRM
b2dpY2FsQm90dG9tID4gbmV3SGVpZ2h0ICYmICFjaGlsZHJlbklubGluZSgpKSB7CiAgICAgICAg
ICAgICAvLyBPbmUgb2Ygb3VyIGNoaWxkcmVuJ3MgZmxvYXRzIG1heSBoYXZlIGJlY29tZSBhbiBv
dmVyaGFuZ2luZyBmbG9hdCBmb3IgdXMuIFdlIG5lZWQgdG8gbG9vayBmb3IgaXQuCiAgICAgICAg
ICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkLT5p
c0Jsb2NrRmxvdygpICYmICFjaGlsZC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQo
KSAmJiAhY2hpbGQtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAg
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5sb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20o
KSArIGJsb2NrLT5sb2dpY2FsVG9wKCkgPiBuZXdIZWlnaHQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9jaywgZmFsc2UpOwpAQCAtMjI1OCw3ICsyMjU4
LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKAogICAgIExheW91
dFVuaXQgb2xkTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBzZXRMb2dpY2Fs
SGVpZ2h0KGxvZ2ljYWxUb3ApOwogICAgIFJlbmRlck9iamVjdCogcHJldiA9IGNoaWxkLT5wcmV2
aW91c1NpYmxpbmcoKTsKLSAgICBpZiAocHJldiAmJiBwcmV2LT5pc0Jsb2NrRmxvdygpICYmICFw
cmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICBpZiAocHJldiAm
JiBwcmV2LT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSAmJiAhcHJldi0+aXNGbG9hdGluZ09y
T3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CiAgICAgICAgIFJlbmRlckJsb2NrKiBibG9jayA9IHRv
UmVuZGVyQmxvY2socHJldik7CiAgICAgICAgIGlmIChibG9jay0+Y29udGFpbnNGbG9hdHMoKSAm
JiAhYmxvY2stPmF2b2lkc0Zsb2F0cygpICYmIChibG9jay0+bG9naWNhbFRvcCgpICsgYmxvY2st
Pmxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSgpKSA+IGxvZ2ljYWxUb3ApIAogICAgICAgICAgICAg
YWRkT3ZlcmhhbmdpbmdGbG9hdHMoYmxvY2ssIGZhbHNlKTsKQEAgLTM2ODMsNyArMzY4Myw3IEBA
IEdhcFJlY3RzIFJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKFJlbmQKICAgICAvLyBGSVhNRTog
b3ZlcmZsb3c6IGF1dG8vc2Nyb2xsIHJlZ2lvbnMgbmVlZCBtb3JlIG1hdGggaGVyZSwgc2luY2Ug
cGFpbnRpbmcgaW4gdGhlIGJvcmRlciBib3ggaXMgZGlmZmVyZW50IGZyb20gcGFpbnRpbmcgaW4g
dGhlIHBhZGRpbmcgYm94IChvbmUgaXMgc2Nyb2xsZWQsIHRoZSBvdGhlciBpcwogICAgIC8vIGZp
eGVkKS4KICAgICBHYXBSZWN0cyByZXN1bHQ7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygpKSAvLyBG
SVhNRTogTWFrZSBtdWx0aS1jb2x1bW4gc2VsZWN0aW9uIGdhcCBmaWxsaW5nIHdvcmsgc29tZWRh
eS4KKyAgICBpZiAoIWlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSAvLyBGSVhNRTogTWFrZSBt
dWx0aS1jb2x1bW4gc2VsZWN0aW9uIGdhcCBmaWxsaW5nIHdvcmsgc29tZWRheS4KICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKIAogICAgIGlmIChoYXNDb2x1bW5zKCkgfHwgaGFzVHJhbnNmb3JtKCkg
fHwgc3R5bGUoKS0+Y29sdW1uU3BhbigpKSB7CkBAIC02NzYyLDcgKzY3NjIsNyBAQCBpbnQgUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhCiAKIGludCBSZW5kZXJCbG9jazo6Zmly
c3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdAogewotICAgIGlmICghaXNCbG9ja0Zsb3coKSB8fCAo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNSdWJ5UnVuKCkpKQorICAgIGlmICghaXNCbG9ja0Zs
b3dGbGV4Qm94T3JHcmlkKCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigp
KSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkpIHsKQEAg
LTY3OTEsNyArNjc5MSw3IEBAIGludCBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShM
aW4KIAogaW50IFJlbmRlckJsb2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygpIHx8IChp
c1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKCFpc0Jsb2NrRmxv
d0ZsZXhCb3hPckdyaWQoKSB8fCAoaXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNSdWJ5UnVuKCkp
KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkgewpAQCAt
Njg1Miw3ICs2ODUyLDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCbG9j
awogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gYnV0dG9ucyBhcmUgaW1wbGVtZW50ZWQg
d2l0aCBhbGlnbi1pdGVtcyBpbnN0ZWFkCiAgICAgICAgIC8vIG9mIGZsZXhib3guCiAgICAgICAg
IGlmIChmaXJzdExpbmVCbG9jay0+aXNSZXBsYWNlZCgpIHx8IGZpcnN0TGluZUJsb2NrLT5pc0Zs
b2F0aW5nKCkKLSAgICAgICAgICAgIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmly
c3RDaGlsZCgpICE9IGZpcnN0TGluZUJsb2NrIHx8ICFwYXJlbnRCbG9jay0+aXNCbG9ja0Zsb3co
KQorICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxk
KCkgIT0gZmlyc3RMaW5lQmxvY2sgfHwgIXBhcmVudEJsb2NrLT5pc0Jsb2NrRmxvd0ZsZXhCb3hP
ckdyaWQoKQogICAgICAgICAgICAgfHwgKHBhcmVudEJsb2NrLT5pc0ZsZXhpYmxlQm94KCkgJiYg
IXBhcmVudEJsb2NrLT5pc1JlbmRlckJ1dHRvbigpKSkKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihwYXJlbnRCbG9jay0+aXNSZW5k
ZXJCbG9jaygpKTsKQEAgLTY5MTEsNyArNjkxMSw3IEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyT2Jq
ZWN0KiBmaW5kRmlyc3RMZXQKIAogICAgICAgICBSZW5kZXJPYmplY3QqIHBhcmVudEJsb2NrID0g
Zmlyc3RMZXR0ZXJCbG9jay0+cGFyZW50KCk7CiAgICAgICAgIGlmIChmaXJzdExldHRlckJsb2Nr
LT5pc1JlcGxhY2VkKCkgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxk
KCkgIT0gZmlyc3RMZXR0ZXJCbG9jayB8fCAKLSAgICAgICAgICAgICFwYXJlbnRCbG9jay0+aXNC
bG9ja0Zsb3coKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAhcGFyZW50Qmxv
Y2stPmlzUmVuZGVyQnV0dG9uKCkpKQorICAgICAgICAgICAgIXBhcmVudEJsb2NrLT5pc0Jsb2Nr
Rmxvd0ZsZXhCb3hPckdyaWQoKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAh
cGFyZW50QmxvY2stPmlzUmVuZGVyQnV0dG9uKCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIGZpcnN0TGV0dGVyQmxvY2sgPSBwYXJlbnRCbG9jazsKICAgICB9IApAQCAtNzA5Myw3
ICs3MDkzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogc3RhdGlj
IGJvb2wgc2hvdWxkQ2hlY2tMaW5lcyhSZW5kZXJPYmplY3QqIG9iaikKIHsKICAgICByZXR1cm4g
IW9iai0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFvYmotPmlzUnVuSW4o
KQotICAgICAgICAgICAgJiYgb2JqLT5pc0Jsb2NrRmxvdygpICYmIG9iai0+c3R5bGUoKS0+aGVp
Z2h0KCkuaXNBdXRvKCkKKyAgICAgICAgICAgICYmIG9iai0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkgJiYgb2JqLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKQogICAgICAgICAgICAgJiYg
KCFvYmotPmlzRGVwcmVjYXRlZEZsZXhpYmxlQm94KCkgfHwgb2JqLT5zdHlsZSgpLT5ib3hPcmll
bnQoKSA9PSBWRVJUSUNBTCk7CiB9CiAKQEAgLTcxOTgsNyArNzE5OCw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmFkanVzdEZvckJvcmRlckZpdChMYXkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBmb3IgKFJlbmRlckJveCogb2JqID0gZmlyc3RDaGlsZEJveCgpOyBvYmo7IG9iaiA9IG9iai0+
bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICAgICAgICAgIGlmICghb2JqLT5pc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG9iai0+
aXNCbG9ja0Zsb3coKSAmJiAhb2JqLT5oYXNPdmVyZmxvd0NsaXAoKSkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG9iai0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYgIW9iai0+aGFzT3Zl
cmZsb3dDbGlwKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0b1JlbmRlckJsb2NrKG9iaikt
PmFkanVzdEZvckJvcmRlckZpdCh4ICsgb2JqLT54KCksIGxlZnQsIHJpZ2h0KTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAob2JqLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJM
RSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGEgcmVwbGFjZWQgZWxlbWVu
dCBvciBzb21lIGtpbmQgb2Ygbm9uLWJsb2NrLWZsb3cgb2JqZWN0LgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw5ICs4
OSwxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGUgPGNsYXNzPiBmcmllbmQgc3RydWN0IFZhbHVl
VG9TdHJpbmc7CiAjZW5kaWYKIAorcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlbmRlckJsb2Nr
KENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJCbG9jaygpOwogCitwdWJsaWM6
CiAgICAgc3RhdGljIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKIAog
ICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgQVNTRVJUKGNoaWxkcmVuKCkg
PT0gdmlydHVhbENoaWxkcmVuKCkpOyByZXR1cm4gY2hpbGRyZW4oKS0+Zmlyc3RDaGlsZCgpOyB9
CkBAIC02MjcsNyArNjI5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJsb2NrKCkgY29u
c3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0Js
b2NrRmxvdygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICghaXNJbmxpbmUoKSB8fCBp
c1JlcGxhY2VkKCkpICYmICFpc1RhYmxlKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmxpbmVC
bG9ja09ySW5saW5lVGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBpc0lubGlu
ZSgpICYmIGlzUmVwbGFjZWQoKTsgfQogCiAgICAgdm9pZCBtYWtlQ2hpbGRyZW5Ob25JbmxpbmUo
UmVuZGVyT2JqZWN0KiBpbnNlcnRpb25Qb2ludCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAzLDcgKzIxMDMs
NyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvCiAgICAgICAgIHRv
cExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKICAgICB9CiAgICAg
Ci0gICAgaWYgKHBvc2l0aW9uICE9IEFic29sdXRlUG9zaXRpb24gJiYgcG9zaXRpb24gIT0gRml4
ZWRQb3NpdGlvbiAmJiBvLT5oYXNDb2x1bW5zKCkgJiYgby0+aXNCbG9ja0Zsb3coKSkgeworICAg
IGlmIChwb3NpdGlvbiAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9z
aXRpb24gJiYgby0+aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgp
KSB7CiAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkp
OwogICAgICAgICB0b1JlbmRlckJsb2NrKG8pLT5hZGp1c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50
UmVjdCk7CiAgICAgICAgIHRvcExlZnQgPSByZXBhaW50UmVjdC5sb2NhdGlvbigpOwpAQCAtNDA5
Myw3ICs0MDkzLDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQbwog
ICAgICAgICBhZGp1c3RlZFBvaW50Lm1vdmVCeShsb2NhdGlvbigpKTsKIAogICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBmaXJzdENoaWxkKCk7IHJlbmRlck9iamVjdDsgcmVu
ZGVyT2JqZWN0ID0gcmVuZGVyT2JqZWN0LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICgo
IXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFyZW5kZXJPYmplY3QtPmlzSW5saW5lKCkg
JiYgIXJlbmRlck9iamVjdC0+aXNCbG9ja0Zsb3coKSApCisgICAgICAgIGlmICgoIXJlbmRlck9i
amVjdC0+Zmlyc3RDaGlsZCgpICYmICFyZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRl
ck9iamVjdC0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgKQogICAgICAgICAgICAgfHwgcmVu
ZGVyT2JqZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25T
dGF0ZShTZWxlY3Rpb25TdGF0ZSBzKTsKIAotICAgIGJvb2wgY2FuSGF2ZUJveEluZm9JblJlZ2lv
bigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkgJiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJ
bmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1RhYmxlQ2VsbCgpICYmIGlzQmxvY2tGbG93
KCkgJiYgIWlzUmVuZGVyU1ZHQmxvY2soKTsgfQorICAgIGJvb2wgY2FuSGF2ZUJveEluZm9JblJl
Z2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkgJiYgIWlzUmVwbGFjZWQoKSAmJiAh
aXNJbmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1RhYmxlQ2VsbCgpICYmIGlzQmxvY2tG
bG93RmxleEJveE9yR3JpZCgpICYmICFpc1JlbmRlclNWR0Jsb2NrKCk7IH0KIAogCiAgICAgdm9p
ZCBnZXRHZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBwYWludENvbnRhaW5lciwgSW50UmVjdCYgZGVzdFJlY3QsIEludFBvaW50JiBwaGFzZSwg
SW50U2l6ZSYgdGlsZVNpemUpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAJKHJldmlzaW9u
IDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODgsNyArOTg4LDcgQEAgdm9pZCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TAogCiAgICAgICAgIGNoaWxkLT5jbGVhck92
ZXJyaWRlU2l6ZSgpOwogICAgICAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8fCAoY2hpbGQtPmlz
UmVwbGFjZWQoKSAmJiAoY2hpbGQtPnN0eWxlKCktPndpZHRoKCkuaXNQZXJjZW50KCkgfHwgY2hp
bGQtPnN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgpKSkKLSAgICAgICAgICAgIHx8IChjaGls
ZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlzQmxvY2tGbG93KCkpKSB7
CisgICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmIGNo
aWxkLT5pc1JlbmRlckJsb2NrKCkpKSB7CiAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVk
c0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogCiAgICAgICAgICAgICAvLyBEaXJ0eSBhbGwg
dGhlIHBvc2l0aW9uZWQgb2JqZWN0cy4KQEAgLTk5OCw3ICs5OTgsNyBAQCB2b2lkIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7Ci0gICAgICAgIGlmIChjaGlsZC0+c3R5bGUo
KS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlzQmxvY2tGbG93KCkpCisgICAgICAgIGlm
IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlzUmVuZGVyQmxv
Y2soKSkKICAgICAgICAgICAgIG1heExpbmVDb3VudCA9IG1heChtYXhMaW5lQ291bnQsIHRvUmVu
ZGVyQmxvY2soY2hpbGQpLT5saW5lQ291bnQoKSk7CiAgICAgfQogCkBAIC0xMDEwLDcgKzEwMTAs
NyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNo
aWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkgewotICAgICAgICBpZiAoY2hpbGREb2VzTm90
QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCku
aXNBdXRvKCkgfHwgIWNoaWxkLT5pc0Jsb2NrRmxvdygpKQorICAgICAgICBpZiAoY2hpbGREb2Vz
Tm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0
KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc1JlbmRlckJsb2NrKCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICBSZW5kZXJCbG9jayogYmxvY2tDaGlsZCA9IHRvUmVuZGVyQmxvY2so
Y2hpbGQpOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OmNsZWFyTAogCiAgICAgICAgIGNoaWxkLT5jbGVhck92ZXJyaWRlU2l6ZSgpOwogICAg
ICAgICBpZiAoKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgpLT53aWR0aCgp
LmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0g
ICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmIGNoaWxk
LT5pc0Jsb2NrRmxvdygpKSkgeworICAgICAgICAgICAgfHwgKGNoaWxkLT5zdHlsZSgpLT5oZWln
aHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNSZW5kZXJCbG9jaygpKSkgewogICAgICAgICAgICAg
Y2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7CiAKICAgICAgICAgICAgIGlmIChjaGls
ZC0+aXNSZW5kZXJCbG9jaygpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGV0YWlsc01hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAogUmVuZGVyRGV0YWlsc01hcmtlcjo6UmVuZGVyRGV0YWlsc01hcmtlcihFbGVt
ZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJs
b2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGV0YWlsc01hcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDExICsyMiwxMSBAQAogI2RlZmluZSBSZW5kZXJEZXRhaWxzTWFya2VyX2gKIAogI2lmIEVO
QUJMRShERVRBSUxTX0VMRU1FTlQpCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRl
ICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5k
ZXJEZXRhaWxzTWFya2VyIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRl
ckRldGFpbHNNYXJrZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKIFJlbmRlckZpZWxkc2V0OjpSZW5kZXJGaWVsZHNldChFbGVtZW50KiBlbGVt
ZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhl
bGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpZWxkc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMSBAQAogI2lmbmRl
ZiBSZW5kZXJGaWVsZHNldF9oCiAjZGVmaW5lIFJlbmRlckZpZWxkc2V0X2gKIAotI2luY2x1ZGUg
IlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVuZGVyRmllbGRzZXQgRklOQUwgOiBwdWJsaWMgUmVuZGVy
QmxvY2sgeworY2xhc3MgUmVuZGVyRmllbGRzZXQgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJGaWVsZHNldChFbGVtZW50Kik7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyAr
NTEsNyBAQCBjb25zdCBpbnQgZGVmYXVsdFdpZHRoTnVtQ2hhcnMgPSAzNDsKIGNvbnN0IGludCBi
dXR0b25TaGFkb3dIZWlnaHQgPSAyOwogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2woSFRNTElucHV0RWxlbWVudCogaW5wdXQpCi0gICAgOiBSZW5kZXJC
bG9jayhpbnB1dCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhpbnB1dCkKICAgICAsIG1fY2FuUmVj
ZWl2ZURyb3BwZWRGaWxlcyhpbnB1dC0+Y2FuUmVjZWl2ZURyb3BwZWRGaWxlcygpKQogewogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBA
CiAjaWZuZGVmIFJlbmRlckZpbGVVcGxvYWRDb250cm9sX2gKICNkZWZpbmUgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2xfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5k
ZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMSw3ICszMSw3IEBA
IGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAvLyBzdWZmaWNpZW50IHNwYWNlIHRvIGRyYXcgYSBm
aWxlIGljb24gYW5kIGZpbGVuYW1lLiBUaGUgUmVuZGVyQnV0dG9uIGhhcyBhIHNoYWRvdyBub2Rl
CiAvLyBhc3NvY2lhdGVkIHdpdGggaXQgdG8gcmVjZWl2ZSBjbGljay9ob3ZlciBldmVudHMuCiAK
LWNsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIEZJTkFMIDogcHVibGljIFJlbmRlckJs
b2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2woSFRNTElucHV0
RWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckZpbGVVcGxvYWRDb250cm9sKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCShyZXZp
c2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZCgpCi0gICAgOiBSZW5kZXJC
bG9jaygwKQorICAgIDogUmVuZGVyQmxvY2tGbG93KDApCiAgICAgLCBtX3ByZXZpb3VzUmVnaW9u
Q291bnQoMCkKICAgICAsIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoMCkKICAgICAs
IG1fcmVnaW9uc0ludmFsaWRhdGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3
ICszMSw3IEBACiAjZGVmaW5lIFJlbmRlckZsb3dUaHJlYWRfaAogCiAKLSNpbmNsdWRlICJSZW5k
ZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC01NSw3ICs1NSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxSZW5k
ZXJMYXllciosIFJlbmRlclJlZ2kKIC8vIGFuZCBub2RlQXRQb2ludCBtZXRob2RzIHRvIHRoaXMg
b2JqZWN0LiBFYWNoIFJlbmRlclJlZ2lvbiB3aWxsIGFjdHVhbGx5IGJlIGEgdmlld1BvcnQKIC8v
IG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgogCi1jbGFzcyBSZW5kZXJGbG93VGhyZWFkOiBwdWJs
aWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmxvd1RocmVhZDogcHVibGljIFJlbmRlckJs
b2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRmxvd1RocmVhZCgpOwogICAgIHZpcnR1YWwg
flJlbmRlckZsb3dUaHJlYWQoKSB7IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKIAorI2luY2x1ZGUg
IlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0zNiwxMCArMzcsMTAgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLWNsYXNzIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xk
ZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJG
dWxsU2NyZWVuUGxhY2Vob2xkZXIoUmVuZGVyRnVsbFNjcmVlbiogb3duZXIpIAotICAgICAgICA6
IFJlbmRlckJsb2NrKDApCisgICAgICAgIDogUmVuZGVyQmxvY2tGbG93KDApCiAgICAgICAgICwg
bV9vd25lcihvd25lcikgCiAgICAgewogICAgICAgICBzZXREb2N1bWVudEZvckFub255bW91cygm
b3duZXItPmRvY3VtZW50KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2
b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50CiAKICAgICBMYXlvdXRQb2lu
dCB0b3BMZWZ0ID0gcmVjdC5sb2NhdGlvbigpOwogCi0gICAgaWYgKG8tPmlzQmxvY2tGbG93KCkg
JiYgIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpIHsKKyAgICBpZiAoby0+aXNCbG9j
a0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYgIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkp
IHsKICAgICAgICAgUmVuZGVyQmxvY2sqIGNiID0gdG9SZW5kZXJCbG9jayhvKTsKICAgICAgICAg
aWYgKGNiLT5oYXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJl
Y3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpbmVCb3hMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMTEsNyArMzExLDcgQEAgYm9vbCBSZW5kZXJMaW5lQm94TGlzdDo6aGl0VGVzdChSZW5kZXJC
bwogCiB2b2lkIFJlbmRlckxpbmVCb3hMaXN0OjpkaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZChS
ZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKLSAgICBpZiAo
IWNvbnRhaW5lci0+cGFyZW50KCkgfHwgKGNvbnRhaW5lci0+aXNSZW5kZXJCbG9jaygpICYmIChj
b250YWluZXItPnNlbGZOZWVkc0xheW91dCgpIHx8ICFjb250YWluZXItPmlzQmxvY2tGbG93KCkp
KSkKKyAgICBpZiAoIWNvbnRhaW5lci0+cGFyZW50KCkgfHwgKGNvbnRhaW5lci0+aXNSZW5kZXJC
bG9jaygpICYmIChjb250YWluZXItPnNlbGZOZWVkc0xheW91dCgpIHx8ICFjb250YWluZXItPmlz
QmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRl
cklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFpbmVyLT5pc1JlbmRlcklubGluZSgpID8g
dG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
LDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAogUmVuZGVyTGlzdEl0ZW06OlJlbmRlckxpc3RJdGVtKEVsZW1lbnQqIGVsZW1lbnQpCi0g
ICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQp
CiAgICAgLCBtX21hcmtlcigwKQogICAgICwgbV9oYXNFeHBsaWNpdFZhbHVlKGZhbHNlKQogICAg
ICwgbV9pc1ZhbHVlVXBUb0RhdGUoZmFsc2UpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgUmVuZGVy
TGlzdEl0ZW06OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIG1fbWFya2VyLT5kZXN0cm95KCk7
CiAgICAgICAgIG1fbWFya2VyID0gMDsKICAgICB9Ci0gICAgUmVuZGVyQmxvY2s6OndpbGxCZURl
c3Ryb3llZCgpOworICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAK
IHZvaWQgUmVuZGVyTGlzdEl0ZW06Omluc2VydGVkSW50b1RyZWUoKQpAQCAtODgsNyArODgsNyBA
QCB2b2lkIFJlbmRlckxpc3RJdGVtOjppbnNlcnRlZEludG9UcmVlKCkKIAogdm9pZCBSZW5kZXJM
aXN0SXRlbTo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkKIHsKLSAgICBSZW5kZXJCbG9jazo6d2ls
bEJlUmVtb3ZlZEZyb21UcmVlKCk7CisgICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVSZW1vdmVk
RnJvbVRyZWUoKTsKIAogICAgIHVwZGF0ZUxpc3RNYXJrZXJOdW1iZXJzKCk7CiB9CkBAIC0zMDYs
MTIgKzMwNiwxMiBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpsYXlvdXQoKQogICAgIEFTU0VSVChu
ZWVkc0xheW91dCgpKTsgCiAKICAgICBpbnNlcnRPck1vdmVNYXJrZXJSZW5kZXJlcklmTmVlZGVk
KCk7Ci0gICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOworICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5
b3V0KCk7CiB9CiAKIHZvaWQgUmVuZGVyTGlzdEl0ZW06OmFkZE92ZXJmbG93RnJvbUNoaWxkcmVu
KCkKIHsKLSAgICBSZW5kZXJCbG9jazo6YWRkT3ZlcmZsb3dGcm9tQ2hpbGRyZW4oKTsKKyAgICBS
ZW5kZXJCbG9ja0Zsb3c6OmFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCk7CiAgICAgcG9zaXRpb25M
aXN0TWFya2VyKCk7CiB9CiAKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIFJlbmRlckxpc3RJdGVt
Ojpjb21wdXRlUHJlZmVycmVkTG9nCiAgICAgU2V0TGF5b3V0TmVlZGVkRm9yYmlkZGVuU2NvcGUg
bGF5b3V0Rm9yYmlkZGVuU2NvcGUodGhpcywgZmFsc2UpOwogI2VuZGlmCiAgICAgaW5zZXJ0T3JN
b3ZlTWFya2VyUmVuZGVyZXJJZk5lZWRlZCgpOwotICAgIFJlbmRlckJsb2NrOjpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRlckJsb2NrRmxvdzo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKTsKIH0KIAogdm9pZCBSZW5kZXJMaXN0SXRlbTo6cG9zaXRpb25M
aXN0TWFya2VyKCkKQEAgLTQyOCw3ICs0MjgsNyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpwYWlu
dChQYWludEluZm8mIHBhCiAgICAgaWYgKCFsb2dpY2FsSGVpZ2h0KCkgJiYgaGFzT3ZlcmZsb3dD
bGlwKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlbmRlckJsb2NrOjpwYWludChwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OnBhaW50KHBhaW50SW5mbywg
cGFpbnRPZmZzZXQpOwogfQogCiBjb25zdCBTdHJpbmcmIFJlbmRlckxpc3RJdGVtOjptYXJrZXJU
ZXh0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRl
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRl
bS5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTQgKzIzLDE0IEBACiAjaWZuZGVmIFJl
bmRlckxpc3RJdGVtX2gKICNkZWZpbmUgUmVuZGVyTGlzdEl0ZW1faAogCi0jaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MT0xpc3RFbGVtZW50OwogY2xhc3MgUmVuZGVyTGlzdE1hcmtl
cjsKIAotY2xhc3MgUmVuZGVyTGlzdEl0ZW0gRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyTGlzdEl0ZW0gRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJMaXN0SXRlbShFbGVtZW50Kik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBSZW5kZXJNZXRlcjo6UmVuZGVyTWV0ZXIoSFRNTEVsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5o
CShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogI2RlZmluZSBSZW5kZXJNZXRl
cl9oCiAKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5o
IgogCiAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1M
TWV0ZXJFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJNZXRlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJC
bG9jayB7CitjbGFzcyBSZW5kZXJNZXRlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlck1ldGVyKEhUTUxFbGVtZW50Kik7CiAgICAg
dmlydHVhbCB+UmVuZGVyTWV0ZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpSZW5kZXJNdWx0aUNvbHVt
bkJsb2NrKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2Zsb3dUaHJlYWQoMCkKICAgICAs
IG1fY29sdW1uQ291bnQoMSkKICAgICAsIG1fY29sdW1uV2lkdGgoMCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAkocmV2aXNp
b24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTMgKzI3LDEzIEBACiAjaWZuZGVmIFJlbmRl
ck11bHRpQ29sdW1uQmxvY2tfaAogI2RlZmluZSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrX2gKIAot
I2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFk
OwogCi1jbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIEZJTkFMIDogcHVibGljIFJlbmRlckJs
b2NrIHsKK2NsYXNzIFJlbmRlck11bHRpQ29sdW1uQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVy
QmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKEVsZW1lbnQq
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJl
dmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNyArMjA3LDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5k
ZXJPYmplY3Q6OmNyZWF0ZU9iamVjdAogICAgIGNhc2UgQ09NUEFDVDoKICAgICAgICAgaWYgKCgh
c3R5bGUtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzdHlsZS0+aGFzQXV0b0NvbHVtbldpZHRo
KCkpICYmIGRvY3VtZW50LnJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKSkKICAgICAgICAgICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKGVsZW1lbnQpOwotICAg
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2soZWxlbWVudCk7CisgICAgICAgIHJl
dHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCk7CiAgICAgY2FzZSBMSVNU
X0lURU06CiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJMaXN0SXRlbShlbGVtZW50
KTsKICAgICBjYXNlIFRBQkxFOgpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoUmVu
ZGVyT2JqZWN0KiBvID0gcGFyZW50KCkpIHsKLSAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93KCkp
IHsKKyAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSB7CiAgICAgICAg
ICAgICBSZW5kZXJCbG9jayogY2IgPSB0b1JlbmRlckJsb2NrKG8pOwogICAgICAgICAgICAgaWYg
KGNiLT5oYXNDb2x1bW5zKCkpCiAgICAgICAgICAgICAgICAgY2ItPmFkanVzdFJlY3RGb3JDb2x1
bW5zKHJlY3QpOwpAQCAtMTk2NCw3ICsxOTY0LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxl
V2lsbENoYW5nZShTdHlsZQogCiAgICAgICAgIHNfYWZmZWN0c1BhcmVudEJsb2NrID0gaXNGbG9h
dGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpCiAgICAgICAgICAgICAmJiAoIW5ld1N0eWxlLT5p
c0Zsb2F0aW5nKCkgJiYgIW5ld1N0eWxlLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpKQotICAgICAg
ICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5pc0Jsb2NrRmxvdygpIHx8IHBhcmVudCgp
LT5pc1JlbmRlcklubGluZSgpKTsKKyAgICAgICAgICAgICYmIHBhcmVudCgpICYmIChwYXJlbnQo
KS0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgfHwgcGFyZW50KCktPmlzUmVuZGVySW5saW5l
KCkpOwogCiAgICAgICAgIHNfbm9Mb25nZXJBZmZlY3RzUGFyZW50QmxvY2sgPSAoKCFpc0Zsb2F0
aW5nKCkgJiYgbmV3U3R5bGUtPmlzRmxvYXRpbmcoKSkgfHwgKCFpc091dE9mRmxvd1Bvc2l0aW9u
ZWQoKSAmJiBuZXdTdHlsZS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSkpCiAgICAgICAgICAgICAm
JiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNSZW5kZXJCbG9jaygpOwpAQCAtMjc5Niw3ICsyNzk2
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGZpcnN0TGluZQogICAgIGlmIChy
ZW5kZXJlci0+aXNCZWZvcmVPckFmdGVyQ29udGVudCgpKQogICAgICAgICByZW5kZXJlckZvckZp
cnN0TGluZVN0eWxlID0gcmVuZGVyZXItPnBhcmVudCgpOwogCi0gICAgaWYgKHJlbmRlcmVyRm9y
Rmlyc3RMaW5lU3R5bGUtPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXJGb3JGaXJz
dExpbmVTdHlsZS0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAgICAgaWYgKFJl
bmRlckJsb2NrKiBmaXJzdExpbmVCbG9jayA9IHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZp
cnN0TGluZUJsb2NrKCkpIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IENhY2hlZCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmxvY2stPmdldENhY2hlZFBzZXVkb1N0eWxlKEZJ
UlNUX0xJTkUsIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIxLDcgKzMyMSw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG5vZGUoKSAmJiBub2RlKCkt
PmlzUHNldWRvRWxlbWVudCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNCUigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpAQCAtMzUwLDYgKzM0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNSZW5kZXJTVkdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Owog
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KQEAgLTQwNiw2ICs0MDYsMTIgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1RhYmxlUGFydCgp
IGNvbnN0IHsgcmV0dXJuIGlzVGFibGVDZWxsKCkgfHwgaXNSZW5kZXJUYWJsZUNvbCgpIHx8IGlz
VGFibGVDYXB0aW9uKCkgfHwgaXNUYWJsZVJvdygpIHx8IGlzVGFibGVTZWN0aW9uKCk7IH0KIAor
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRoZSByZW5hbWVkIHZlcnNpb24gb2YgaXNCbG9ja0Zsb3co
KSBhbmQgaXQgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHRoYXQgZmxleGlibGUgYm94ZXMgYW5kIGdy
aWRzIGFyZSBiZWluZyBpbmNsdWRlZC4gTW9zdAorICAgIC8vIG9mIHRoZSBjdXJyZW50IGNhbGxl
cnMgZGlkIG5vdCBpbiBmYWN0IGludGVuZCB0byBpbmNsdWRlIGZsZXhpYmxlIGJveGVzIGFuZCBn
cmlkcyAoYnV0IGhhdmUgYmVlbiBmb3IgeWVhcnMpLCBzbyB3ZSB3aWxsIHdhbnQgdG8KKyAgICAv
LyBjb252ZXJ0IHRob3NlIGNhbGxlcnMgb3ZlciB0byBpc1JlbmRlckJsb2NrRmxvdygpIGluc3Rl
YWQuIFdlJ2xsIGRvIHRoaXMgY2FsbCBzaXRlIGJ5IGNhbGwgc2l0ZSBpbiBvcmRlciB0byB0cnkg
dG8gZmluZCB0aGUKKyAgICAvLyBjb2RlIHRoYXQgaXMgbWFraW5nIGJhZCBhc3N1bXB0aW9ucyBh
bmQgY2hhbmdlIGl0LiBPbmNlIHRoYXQncyBmaW5pc2hlZCwgdGhpcyBtZXRob2Qgd2lsbCBqdXN0
IGdvIGF3YXkuCisgICAgYm9vbCBpc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSBjb25zdCB7IHJl
dHVybiBpc1JlbmRlckJsb2NrRmxvdygpIHx8IGlzRmxleGlibGVCb3hJbmNsdWRpbmdEZXByZWNh
dGVkKCkgfHwgaXNSZW5kZXJHcmlkKCk7IH0KKwogICAgIGlubGluZSBib29sIGlzQmVmb3JlQ29u
dGVudCgpIGNvbnN0OwogICAgIGlubGluZSBib29sIGlzQWZ0ZXJDb250ZW50KCkgY29uc3Q7CiAg
ICAgaW5saW5lIGJvb2wgaXNCZWZvcmVPckFmdGVyQ29udGVudCgpIGNvbnN0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAJ
KHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDcgQEAgUmVuZGVy
T2JqZWN0KiBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnJlbQogdm9pZCBSZW5kZXJPYmplY3RDaGls
ZExpc3Q6Omluc2VydENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXJPYmplY3Qq
IG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBib29sIG5vdGlmeVJlbmRlcmVy
KQogewogICAgIEFTU0VSVCghbmV3Q2hpbGQtPnBhcmVudCgpKTsKLSAgICBBU1NFUlQoIW93bmVy
LT5pc0Jsb2NrRmxvdygpIHx8ICghbmV3Q2hpbGQtPmlzVGFibGVTZWN0aW9uKCkgJiYgIW5ld0No
aWxkLT5pc1RhYmxlUm93KCkgJiYgIW5ld0NoaWxkLT5pc1RhYmxlQ2VsbCgpKSk7CisgICAgQVNT
RVJUKCFvd25lci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgfHwgKCFuZXdDaGlsZC0+aXNU
YWJsZVNlY3Rpb24oKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlz
VGFibGVDZWxsKCkpKTsKIAogICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+
cGFyZW50KCkgJiYgYmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9IG93bmVyKQogICAgICAgICBiZWZv
cmVDaGlsZCA9IGJlZm9yZUNoaWxkLT5wYXJlbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0g
ICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQp
CiAgICAgLCBtX3Bvc2l0aW9uKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbikK
ICAgICAsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKDApCiAgICAgLCBtX2FuaW1hdGlvblJlcGVhdElu
dGVydmFsKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
aAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDEzICsyMiwxMyBAQAogI2RlZmluZSBSZW5k
ZXJQcm9ncmVzc19oCiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKLSNpbmNsdWRlICJS
ZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclBy
b2dyZXNzIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclByb2dyZXNz
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
UmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVz
cygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAJKHJl
dmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1l
bnQqIGVsZW1lbnQsIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCi0gICAgOiBSZW5kZXJC
bG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2Zs
b3dUaHJlYWQoZmxvd1RocmVhZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKDApCiAg
ICAgLCBtX2lzVmFsaWQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpZm5kZWYg
UmVuZGVyUmVnaW9uX2gKICNkZWZpbmUgUmVuZGVyUmVnaW9uX2gKIAotI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiU3R5bGVJ
bmhlcml0ZWREYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQzLDcgQEAg
Y2xhc3MgUmVuZGVyQm94UmVnaW9uSW5mbzsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFz
cyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ7CiAKLWNsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBS
ZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24oRWxlbWVudCosIFJlbmRlckZs
b3dUaHJlYWQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1Ynku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNw
cAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBSZW5kZXJSdWJ5
QXNJbmxpbmU6OnJlbW92ZUNoaWxkKFJlbgogLy89PT0gcnVieSBhcyBibG9jayBvYmplY3QgPT09
CiAKIFJlbmRlclJ1YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50KiBlbGVtZW50
KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVt
ZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHJl
dmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgUmVuZGVyUnVieV9oCiAj
ZGVmaW5lIFJlbmRlclJ1YnlfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRl
ICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogfTsKIAogLy8gPHJ1Ynk+
IHdoZW4gdXNlZCBhcyAnZGlzcGxheTpibG9jaycgb3IgJ2Rpc3BsYXk6aW5saW5lLWJsb2NrJwot
Y2xhc3MgUmVuZGVyUnVieUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xh
c3MgUmVuZGVyUnVieUFzQmxvY2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1
YmxpYzoKICAgICBSZW5kZXJSdWJ5QXNCbG9jayhFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVu
ZGVyUnVieUFzQmxvY2soKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJ1YnlCYXNlLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJ1YnlCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSdWJ5QmFz
ZTo6UmVuZGVyUnVieUJhc2UoKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6IFJlbmRlckJs
b2NrRmxvdygwKQogewogICAgIHNldElubGluZShmYWxzZSk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDEzICszMSwxMyBAQAogI2lmbmRlZiBSZW5kZXJSdWJ5QmFzZV9oCiAjZGVmaW5lIFJlbmRl
clJ1YnlCYXNlX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVy
QmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1
bjsKIAotY2xhc3MgUmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5QmFzZSgpOwogICAgIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4oKQotICAgIDogUmVuZGVyQmxv
Y2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQogewogICAgIHNldFJlcGxhY2VkKHRydWUp
OwogICAgIHNldElubGluZSh0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSdWJ5UnVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnlSdW4uaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJ1YnlSdW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lm
bmRlZiBSZW5kZXJSdWJ5UnVuX2gKICNkZWZpbmUgUmVuZGVyUnVieVJ1bl9oCiAKLSNpbmNsdWRl
ICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyUnVieVRleHQ7CiAv
LyBSZW5kZXJSdWJ5UnVuIGFyZSAnaW5saW5lLWJsb2NrL3RhYmxlJyBsaWtlIG9iamVjdHMsYW5k
IHdyYXAgYSBzaW5nbGUgcGFpcmluZyBvZiBhIHJ1YnkgYmFzZSB3aXRoIGl0cyBydWJ5IHRleHQo
cykuCiAvLyBTZWUgUmVuZGVyUnVieS5oIGZvciBmdXJ0aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1
Y3R1cmUKIAotY2xhc3MgUmVuZGVyUnVieVJ1biBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CitjbGFzcyBSZW5kZXJSdWJ5UnVuIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieVJ1bigpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqIGVsZW1lbnQp
Ci0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1l
bnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4
dC5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieVRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDExIEBACiAjaWZuZGVmIFJl
bmRlclJ1YnlUZXh0X2gKICNkZWZpbmUgUmVuZGVyUnVieVRleHRfaAogCi0jaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9j
ayB7CitjbGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cg
ewogcHVibGljOgogICAgIFJlbmRlclJ1YnlUZXh0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5S
ZW5kZXJSdWJ5VGV4dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2FwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2FwdGlvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3
ICsyNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclRhYmxlQ2FwdGlvbjo6UmVu
ZGVyVGFibGVDYXB0aW9uKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVt
ZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgJKHJldmlzaW9uIDE1
NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMjAsMTMgKzIwLDEzIEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2Fw
dGlvbl9oCiAjZGVmaW5lIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAKLSNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlbmRlclRhYmxlOwogCi1jbGFzcyBSZW5kZXJUYWJsZUNhcHRpb24gRklO
QUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVGFibGVDYXB0aW9uIEZJTkFM
IDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVy
VGFibGVDYXB0aW9uKEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUYWJsZUNhcHRpb24o
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3Bw
CShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0cnVjdCBTYW1lU2l6ZUFz
UmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKK3N0cnVjdCBTYW1lU2l6ZUFz
UmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiAgICAgdW5zaWduZWQg
Yml0ZmllbGRzOwogICAgIGludCBwYWRkaW5nc1syXTsKIH07CkBAIC01Nyw3ICs1Nyw3IEBAIENP
TVBJTEVfQVNTRVJUKHNpemVvZihSZW5kZXJUYWJsZUNlbGwpID0KIENPTVBJTEVfQVNTRVJUKHNp
emVvZihDb2xsYXBzZWRCb3JkZXJWYWx1ZSkgPT0gOCwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hv
dWxkX3N0YXlfc21hbGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChFbGVt
ZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAgICA6IFJlbmRlckJs
b2NrRmxvdyhlbGVtZW50KQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAs
IG1fY2VsbFdpZHRoQ2hhbmdlZChmYWxzZSkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0JlZm9y
ZSgwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAko
cmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWZuZGVmIFJlbmRlclRh
YmxlQ2VsbF9oCiAjZGVmaW5lIFJlbmRlclRhYmxlQ2VsbF9oCiAKKyNpbmNsdWRlICJSZW5kZXJC
bG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRl
clRhYmxlU2VjdGlvbi5oIgogCkBAIC0zNSw3ICszNiw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtYXhDb2x1bW5JbmRleCA9IDAKIAogZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERv
Tm90SW5jbHVkZUJvcmRlckNvbG9yLCBJbmNsdWRlQm9yZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVu
ZGVyVGFibGVDZWxsIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRh
YmxlQ2VsbCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFJlbmRlclRhYmxlQ2VsbChFbGVtZW50Kik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDE1NTE5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKEVs
ZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVy
QmxvY2tGbG93KGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGlzSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQoZWxlbWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNCArMjIs
MTQgQEAKICNpZm5kZWYgUmVuZGVyVGV4dENvbnRyb2xfaAogI2RlZmluZSBSZW5kZXJUZXh0Q29u
dHJvbF9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2Nr
Rmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRl
clRleHRDb250cm9sIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRDb250
cm9sIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVu
ZGVyVGV4dENvbnRyb2woKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCB0b1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZShjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LWNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CitjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tG
bG93IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCog
ZWxlbWVudCkgOiBSZW5kZXJCbG9jayhlbGVtZW50KSB7IH0KKyAgICBSZW5kZXJUZXh0Q29udHJv
bElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRUcmFja0N1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRUcmFja0N1ZS5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dFRyYWNrQ3VlLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgpAQCAtMzcsNyArMzgsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJUZXh0VHJhY2tDdWU6OlJlbmRlclRleHRUcmFja0N1
ZShUZXh0VHJhY2tDdWVCb3gqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQor
ICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX2N1ZShlbGVtZW50LT5nZXRD
dWUoKSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJh
Y2tDdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dFRyYWNrQ3VlLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0VHJhY2tDdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1
ZGUgIlJlbmRlcklubGluZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFRleHRUcmFj
a0N1ZUJveDsKIAotY2xhc3MgUmVuZGVyVGV4dFRyYWNrQ3VlIEZJTkFMIDogcHVibGljIFJlbmRl
ckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRUcmFja0N1ZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJC
bG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRleHRUcmFja0N1ZShUZXh0
VHJhY2tDdWVCb3gqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQqIGRvY3VtZW50KQotICAg
IDogUmVuZGVyQmxvY2soZG9jdW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQp
CiAgICAgLCBtX2ZyYW1lVmlldygqZG9jdW1lbnQtPnZpZXcoKSkKICAgICAsIG1fc2VsZWN0aW9u
U3RhcnQoMCkKICAgICAsIG1fc2VsZWN0aW9uRW5kKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUg
IlBPREZyZWVMaXN0QXJlbmEuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUg
IlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7
CiBjbGFzcyBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0OwogI2VuZGlmCiAKLWNsYXNzIFJlbmRl
clZpZXcgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyVmlldyBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clZpZXcoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJWaWV3KCk7CkBAIC0yNTMsNyAr
MjUzLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUg
ZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXRE
ZWx0YSB0b28uCiAgICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3Rh
dGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0YXRl
LT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJT
dHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisgICAg
ICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUo
KS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVy
ZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKQogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQog
ICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgdG9SZW5kZXJCbG9j
ayhyZW5kZXJlciktPnNoYXBlSW5zaWRlSW5mbygpKQogICAgICAgICAgICAgfHwgKG1fbGF5b3V0
U3RhdGUtPnNoYXBlSW5zaWRlSW5mbygpICYmIHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYg
IXRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT5hbGxvd3NTaGFwZUluc2lkZUluZm9TaGFyaW5nKCkp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5j
cHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJp
bmdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJBcmVuYS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQlIuY3BwIgogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmNwcCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuY3BwIgogI2luY2x1ZGUg
IlJlbmRlckJsb2NrTGluZUxheW91dC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmNwcCIKICNp
bmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAko
cmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxPcGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRl
ICJNYXRoTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzA3LDcgKzMwOCw3IEBA
IFJlbmRlckJsb2NrKiBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6Y3JlYXQKICAgICBhZGRDaGlsZChj
b250YWluZXIpOwogICAgIFJlbmRlckJsb2NrKiBwYXJlbnQgPSBjb250YWluZXI7CiAgICAgaWYg
KGNoYXJSZWxhdGl2ZSkgewotICAgICAgICBSZW5kZXJCbG9jayogY2hhckJsb2NrID0gbmV3IChy
ZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhub2RlKCkpOworICAgICAgICBSZW5kZXJCbG9jayog
Y2hhckJsb2NrID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9ja0Zsb3cobm9kZSgpKTsK
ICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBjaGFyU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3Jl
YXRlKCk7CiAgICAgICAgIGNoYXJTdHlsZS0+aW5oZXJpdEZyb20oY29udGFpbmVyLT5zdHlsZSgp
KTsKICAgICAgICAgY2hhclN0eWxlLT5zZXREaXNwbGF5KElOTElORV9CTE9DSyk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAkocmV2
aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVuZGVyU1ZHQmxvY2s6OlJlbmRlclNWR0Jsb2NrKFNWR0VsZW1lbnQqIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVs
ZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0Jsb2NrLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTQgKzIxLDE0
IEBACiAjZGVmaW5lIFJlbmRlclNWR0Jsb2NrX2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVk
ZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZH
RWxlbWVudDsKIAotY2xhc3MgUmVuZGVyU1ZHQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewor
Y2xhc3MgUmVuZGVyU1ZHQmxvY2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBSZW5kZXJTVkdCbG9jayhTVkdFbGVtZW50Kik7CiAK
</data>
<flag name="review"
          id="232864"
          type_id="1"
          status="+"
          setter="bdakin"
    />
    <flag name="commit-queue"
          id="232865"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210782</attachid>
            <date>2013-09-06 12:57:55 -0700</date>
            <delta_ts>2013-09-06 13:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>78729</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4MyBAQAorMjAxMy0wOS0wNiAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBSZW5kZXJCbG9ja0Zs
b3cgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjA3NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgUmVuZGVyQmxvY2tGbG93IGNsYXNzLiBUaGUgaWRlYSBp
cyB0byBnZXQgYWxsIG9mIHRoZSBsaW5lL2Zsb2F0L21hcmdpbgorICAgICAgICBjb2RlIG91dCBv
ZiBSZW5kZXJCbG9jayBhbmQgaW50byB0aGUgc3ViY2xhc3MsIGFuZCB0aGVuIHdlIGNhbiBtYWtl
IFJlbmRlckJsb2NrIGFuIGFic3RyYWN0CisgICAgICAgIGJhc2UuIFRoaXMgd2lsbCBzYXZlIG1l
bW9yeSBmb3IgYWxsIG9mIHRoZSBjbGFzc2VzIHRoYXQgZGVyaXZlIGZyb20gUmVuZGVyQmxvY2sg
YnV0IGhhdmUKKyAgICAgICAgdGhlaXIgb3duIGxheW91dCBzeXN0ZW1zIChlLmcuLCBmbGV4Ym94
LCBncmlkLCB0YWJsZSksIGFuZCBpdCB3aWxsIGxldCB1cyB0aWdodGVuIHVwCisgICAgICAgIHR5
cGVzIHRvIG1ha2UgaXQgbW9yZSBjbGVhciB3aGVuIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYmxvY2sg
bGF5b3V0IGNvZGUgdnMuIGEgbW9yZSBnZW5lcmljCisgICAgICAgIGJsb2NrLWxldmVsIG9iamVj
dCB0aGF0IGNhbiBoYXZlIGFueSBraW5kIG9mIGxheW91dC4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgdGhlIG5ldyBjbGFzcyBhbmQgaXQgbWFrZXMgc3VyZSBhbGwgdGhlIG9iamVjdHMgdGhh
dCBzaG91bGQgYmUgYmxvY2sgZmxvd3MKKyAgICAgICAgaW5oZXJpdCBmcm9tIHRoZSBuZXcgY2xh
c3MuCisgICAgICAgIAorICAgICAgICBpc0Jsb2NrRmxvdygpIHByb3ZlZCB0byBiZSBhIHByb2Js
ZW1hdGljIG1ldGhvZCAoYW5kIHdhcyB0aGUgc291cmNlIG9mIHJlZ3Jlc3Npb25zIHdoZW4gSQor
ICAgICAgICBsYW5kZWQgdGhpcyBwYXRjaCB0aGUgZmlyc3QgdGltZSkuIFdoZW4gdGhlIG1ldGhv
ZCB3YXMgZmlyc3QgaW1wbGVtZW50ZWQsIGl0IHdhcyBhZGRlZCBhcworICAgICAgICAiSSdtIGEg
YmxvY2sgYnV0IG5vdCBhIHRhYmxlLiIgYW5kIGF0IHRoZSB0aW1lIHRhYmxlIHdhcyB0aGUgb25s
eSBzdWJjbGFzcyBvZiBibG9jay4gSG93ZXZlcgorICAgICAgICB3aGVuIG5ldyBzdWJjbGFzc2Vz
IHdlcmUgYWRkZWQsIHRoaXMgZnVuY3Rpb24gd2FzIG5ldmVyIHBhdGNoZWQgdG8gYWNjb3VudCBm
b3IgdGhlbS4gVGhpcworICAgICAgICBtZWFucywgZm9yIGV4YW1wbGUsIHRoYXQgZmxleGlibGUg
Ym94ZXMgYW5kIGdyaWRzIGNsYWltIHRvIGJlIGJsb2NrIGZsb3dzIGluIHRoZSBjb2RlYmFzZQor
ICAgICAgICBhbmQgaGF2ZSBmb3IgeWVhcnMuIFRoaXMgaXMgb2J2aW91c2x5IHdyb25nLCBzaW5j
ZSBmbGV4aWJsZSBib3hlcyBhcmUgbm90IGluIGZhY3QgYmxvY2sKKyAgICAgICAgZmxvd3MsIGJ1
dCBiZWNhdXNlIG9mIHRoaXMgbWlzdGFrZSwgY29kZSBoYXMgc3RhcnRlZCByZWx5aW5nIG9uIHRo
ZSBpbmNvcnJlY3QgYmVoYXZpb3Igb2YKKyAgICAgICAgaXNCbG9ja0Zsb3coKSAoZm9ybSBjb250
cm9scyBtb3N0bHkpLgorICAgICAgICAKKyAgICAgICAgV2hhdCBJJ3ZlIGRvbmUgdG8gZGVhbCB3
aXRoIHRoaXMgcHJvYmxlbSBpcyByZW5hbWVkIGlzQmxvY2tGbG93KCkgdG8gYmUKKyAgICAgICAg
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgaW4gb3JkZXIgdG8gbWFrZSBpdCBvYnZpb3VzIHRo
YXQgdGhpcyBtZXRob2QgaXMgcmV0dXJuaW5nIHRydWUKKyAgICAgICAgZm9yIHByZXR0eSBtdWNo
IGFsbCBibG9ja3Mgb3RoZXIgdGhhbiB0YWJsZXMuIFRoaXMgbWFrZXMgYSBsb3Qgb2YgY2FsbCBz
aXRlcyBsb29rIHByZXR0eQorICAgICAgICBzdHVwaWQsIHNpbmNlIHRoZXkgb2J2aW91c2x5IG5l
dmVyIGludGVuZGVkIHRvIGluY2x1ZGUgZmxleGlibGUgYm94ZXMgb3IgZ3JpZHMsIGJ1dCBhdCBs
ZWFzdAorICAgICAgICBpdCBpcyBjbGVhciB3aGF0IHRoZSBtZXRob2QgaXMgZG9pbmcgbm93Lgor
ICAgICAgICAKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gbGFuZCB0aGlzIHBhdGNoIGFuZCB0aGVu
IHN0YXJ0IGNvbnZlcnRpbmcgY2FsbCBzaXRlcyBmcm9tIAorICAgICAgICBpc0Jsb2NrRmxvd0Zs
ZXhCb3hPckdyaWQoKSB0byBpc1JlbmRlckJsb2NrRmxvdygpIG9uZSBieSBvbmUsIGFuZCB0aGF0
IHdheSB3ZSBjYW4gZmlndXJlCisgICAgICAgIG91dCB3aGljaCBjb2RlIGlzIG1ha2luZyBiYWQg
YXNzdW1wdGlvbnMgYW5kIGNoYW5nZSB0aG9zZSBjYWxsZXJzIHRvIGJlIGlzUmVuZGVyQmxvY2so
KQorICAgICAgICBpbnN0ZWFkLiBVbHRpbWF0ZWx5IHRoaXMgaXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkgbWV0aG9kIHdpbGwgZ28gYXdheSB3aXRoIGNhbGxlcnMgZWl0aGVyCisgICAgICAgIGNo
YW5naW5nIHRvIHVzZSBpc1JlbmRlckJsb2NrKCkgb3IgaXNSZW5kZXJCbG9ja0Zsb3coKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGRvbS9Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aXNDYW5kaWRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmdldElubGluZUJveEFuZE9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbjo6cHJpbWFyeURpcmVjdGlvbik6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6
aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb1B1
c2hEb3duKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphZGRCbG9ja1BsYWNlaG9sZGVy
SWZOZWVkZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6YmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCk6CisgICAg
ICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYXJl
dFJlbmRlcmVyKToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnNob3VsZFJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KToKKyAgICAgICAgKiBlZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQmxvY2tGbG93RWxlbWVudCk6
CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpSZW5kZXJT
bGlkZXJUaHVtYik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmZpcnN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpmaXJzdExpbmVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRmlyc3RMZXR0ZXJCbG9j
ayk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRDaGVja0xpbmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjphZGp1c3RGb3JCb3JkZXJGaXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpwb3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eE1vZGVsT2JqZWN0OjpjYW5IYXZlQm94SW5mb0luUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpjbGVhckxpbmVDbGFtcCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRGV0YWlsc01hcmtlcjo6UmVuZGVyRGV0YWlsc01hcmtlcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRmllbGRzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmllbGRzZXQ6OlJlbmRl
ckZpZWxkc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OlJlbmRlckZpbGVVcGxvYWRDb250cm9sKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlu
ZUJveExpc3Q6OmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06
OlJlbmRlckxpc3RJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjp3aWxs
QmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZVJl
bW92ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6bGF5b3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjphZGRPdmVyZmxvd0Zyb21DaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OnBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWV0ZXI6OlJl
bmRlck1ldGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpj
cmVhdGVPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RMaW5lU3R5bGVGb3JDYWNoZWRVbmNhY2hl
ZFR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNCUik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmlzUmVuZGVyQmxvY2tGbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlz
dDo6aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVu
ZGVyUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVi
eUFzQmxvY2s6OlJlbmRlclJ1YnlBc0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UnVieS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2UpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5
UnVuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlSdW46OlJlbmRlclJ1YnlSdW4p
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJ1YnlUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlUZXh0
OjpSZW5kZXJSdWJ5VGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZUNhcHRpb246OlJlbmRlclRhYmxlQ2FwdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpS
ZW5kZXJUYWJsZUNlbGwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OlJlbmRlclRleHRDb250cm9sKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbElubmVyQmxvY2s6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0VHJhY2tDdWU6OlJlbmRlclRleHRUcmFja0N1ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRleHRUcmFja0N1ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcmluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJh
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjcmVhdGVH
bHlwaCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdCbG9jazo6UmVuZGVyU1ZHQmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaDoKKwogMjAxMy0wOS0wNiAgTWlrZSBXZXN0
ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmFsaWRhdGlvbiBoZWFkZXIgYmxh
Y2tsaXN0aW5nIHNob3VsZCBiZSBjYXNlLWluc2Vuc2l0aXZlLgpJbmRleDogU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTExLDYgKzIxMTEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL1JlbmRlckFyZW5hLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJCUi5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAogICAg
IHJlbmRlcmluZy9SZW5kZXJCb3guY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNTUx
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC00Mzc0LDYgKzQzNzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJBcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aCBcCisgICAgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU1LDYgKzExNTUsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCBcCiAgICAgcmVu
ZGVyaW5nL1JlbmRlckFyZW5hLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBc
CisgICAgcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NTE5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTk2ODMsNiArOTY4MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9ja0Zsb3cuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDcxMCw2ICs0NzEw
LDggQEAKIAkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg2MTRDNEY5ODMwMDU1
RTIyQSAvKiBSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTEwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovOyB9OwogCQlCQzBCMzZBNTBDRDNDNjdDMDBBQzdF
QjUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzEwRDc2NzE3RDhFRTZFMDA1
RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9j
a0Zsb3cuY3BwICovOyB9OworCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxv
Y2tGbG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0ZCNDVGMzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAw
OUUyMzQ5IC8qIEJhclByb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuY3BwICovOyB9
OwogCQlCQzEyNEVFODBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTUwQzI2NDFDRDAwOUUyMzQ5
IC8qIEJhclByb3AuaCAqLzsgfTsKIAkJQkMxMjRFRkYwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFy
UHJvcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzEyNEVGRDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmNwcCAqLzsgfTsKQEAgLTEyMDIw
LDYgKzEyMDIyLDggQEAKIAkJQkNGQjJFNUQwOTc5RTQ2NDAwQkE3MDNEIC8qIENhY2hlZFJlc291
cmNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNv
dXJjZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZCMkY3NDA5N0Ey
RTFBMDBCQTcwM0QgLyogQXJlbmEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGQjJGNzUw
OTdBMkUxQTAwQkE3MDNEIC8qIEFyZW5hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcmVuYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZCNDVGMzE3RDhF
MzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckJs
b2NrRmxvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0ZCNDVGNDE3RDhFNDk0
MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0ZGNjQ4RjBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoQm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEJveC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjAzOTQsNiArMjAzOTgsOCBAQAogCQkJCUJDRUE0ODFGMDk3RDkzMDIw
MDk0QzlFNCAvKiBSZW5kZXJBcmVuYS5oICovLAogCQkJCUJDRUE0ODIwMDk3RDkzMDIwMDk0QzlF
NCAvKiBSZW5kZXJCbG9jay5jcHAgKi8sCiAJCQkJQkNFQTQ4MjEwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlckJsb2NrLmggKi8sCisJCQkJQkNGQjQ1RjQxN0Q4RTQ5NDAwNDQ0NDQ2IC8qIFJlbmRl
ckJsb2NrRmxvdy5jcHAgKi8sCisJCQkJQkNGQjQ1RjMxN0Q4RTM5MjAwNDQ0NDQ2IC8qIFJlbmRl
ckJsb2NrRmxvdy5oICovLAogCQkJCUJDRUE0ODEzMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwICovLAogCQkJCUJDRUE0ODIyMDk3RDkzMDIwMDk0QzlFNCAvKiBS
ZW5kZXJCb3guY3BwICovLAogCQkJCUJDRUE0ODIzMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJC
b3guaCAqLywKQEAgLTI0NTQ4LDYgKzI0NTU0LDcgQEAKIAkJCQlGQkIwQzVCODE3QkJENjI5MDAz
RDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1
OTMxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFMTZDNTk1MTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2suaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMTBENzY4MTdEOEVFNzEwMDVFMjYyNiAvKiBSZW5k
ZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjc1NzIsNiArMjc1NzksNyBAQAogCQkJ
CUZCQjBDNUI3MTdCQkQ2MjYwMDNEMzY3NyAvKiBDU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJFMTZDNTkyMTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFMTZDNTk0MTdDRkUxNzIwMDg1MkMw
NCAvKiBJbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMxMEQ3
NjcxN0Q4RUU2RTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpjb21wdXRlQQogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoc3BhblRhZykp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc0Jsb2Nr
RmxvdygpICYmIG1fcmVuZGVyZXItPmNoaWxkcmVuSW5saW5lKCkgJiYgIWNhblNldEZvY3VzQXR0
cmlidXRlKCkpCisgICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgp
ICYmIG1fcmVuZGVyZXItPmNoaWxkcmVuSW5saW5lKCkgJiYgIWNhblNldEZvY3VzQXR0cmlidXRl
KCkpCiAgICAgICAgIHJldHVybiAhdG9SZW5kZXJCbG9jayhtX3JlbmRlcmVyKS0+Zmlyc3RMaW5l
Qm94KCkgJiYgIW1vdXNlQnV0dG9uTGlzdGVuZXIoKTsKICAgICAKICAgICAvLyBpZ25vcmUgaW1h
Z2VzIHNlZW1pbmdseSB1c2VkIGFzIHNwYWNlcnMKQEAgLTI1NjIsNyArMjU2Miw3IEBAIEFjY2Vz
c2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmoKICAgICBpZiAobm9kZSAmJiBub2Rl
LT5oYXNUYWdOYW1lKGZvb3RlclRhZykgJiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoYXJ0
aWNsZVRhZykgJiYgIWlzRGVzY2VuZGFudE9mRWxlbWVudFR5cGUoc2VjdGlvblRhZykpCiAgICAg
ICAgIHJldHVybiBGb290ZXJSb2xlOwogCi0gICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93
KCkpCisgICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKQogICAg
ICAgICByZXR1cm4gR3JvdXBSb2xlOwogICAgIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGRvZXMg
bm90IGhhdmUgcm9sZSwgYnV0IGl0IGhhcyBBUklBIGF0dHJpYnV0ZXMsIGFjY2Vzc2liaWxpdHkg
c2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9zaW5nIGl0IGFzIGEgZ3JvdXAuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw3ICs5MjUsNyBAQCBib29sIFBvc2l0
aW9uOjppc0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFt
ZShodG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICBpZiAocmVu
ZGVyZXItPmlzQmxvY2tGbG93KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPmlzQmxvY2tGbG93Rmxl
eEJveE9yR3JpZCgpKSB7CiAgICAgICAgIGlmICh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+bG9n
aWNhbEhlaWdodCgpIHx8IG1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSkgewogICAg
ICAgICAgICAgaWYgKCFQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNEZXNjZW5kYW50
c1dpdGhIZWlnaHQocmVuZGVyZXIpKQogICAgICAgICAgICAgICAgIHJldHVybiBhdEZpcnN0RWRp
dGluZ1Bvc2l0aW9uRm9yTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUo
ZGVwcmVjYXRlZE5vZGUoKSk7CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIFBvc2l0aW9uOjpn
ZXRJbmxpbmVCb3hBbmRPZmZzZXQoRUFmCiAKICAgICBpZiAoIXJlbmRlcmVyLT5pc1RleHQoKSkg
ewogICAgICAgICBpbmxpbmVCb3ggPSAwOwotICAgICAgICBpZiAoY2FuSGF2ZUNoaWxkcmVuRm9y
RWRpdGluZyhkZXByZWNhdGVkTm9kZSgpKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSAmJiBo
YXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpIHsK
KyAgICAgICAgaWYgKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcoZGVwcmVjYXRlZE5vZGUoKSkg
JiYgcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmIGhhc1JlbmRlcmVkTm9u
QW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRlcmVyKSkgewogICAgICAgICAgICAg
Ly8gVHJ5IGEgdmlzdWFsbHkgZXF1aXZhbGVudCBwb3NpdGlvbiB3aXRoIHBvc3NpYmx5IG9wcG9z
aXRlIGVkaXRhYmlsaXR5LiBUaGlzIGhlbHBzIGluIGNhc2UgfHRoaXN8IGlzIGluCiAgICAgICAg
ICAgICAvLyBhbiBlZGl0YWJsZSBibG9jayBidXQgc3Vycm91bmRlZCBieSBub24tZWRpdGFibGUg
cG9zaXRpb25zLiBJdCBhY3RzIHRvIG5lZ2F0ZSB0aGUgbG9naWMgYXQgdGhlIGJlZ2lubmluZwog
ICAgICAgICAgICAgLy8gb2YgUmVuZGVyT2JqZWN0OjpjcmVhdGVWaXNpYmxlUG9zaXRpb24oKS4K
QEAgLTEzMzMsNyArMTMzMyw3IEBAIFRleHREaXJlY3Rpb24gUG9zaXRpb246OnByaW1hcnlEaXJl
Y3Rpb24KIHsKICAgICBUZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24gPSBMVFI7CiAgICAg
Zm9yIChjb25zdCBSZW5kZXJPYmplY3QqIHIgPSBtX2FuY2hvck5vZGUtPnJlbmRlcmVyKCk7IHI7
IHIgPSByLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoci0+aXNCbG9ja0Zsb3coKSkgeworICAg
ICAgICBpZiAoci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAgICAgICAgIHBy
aW1hcnlEaXJlY3Rpb24gPSByLT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3Iu
Y3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVy
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBib29sIFBvc2l0aW9u
SXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uCiAgICAgaWYgKGlzVGFibGVFbGVtZW50KG1fYW5j
aG9yTm9kZSkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZSkpCiAgICAgICAg
IHJldHVybiAoYXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkpICYmICFQb3NpdGlvbjo6
bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOwogCi0gICAg
aWYgKCFtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgJiYgcmVuZGVyZXItPmlzQmxv
Y2tGbG93KCkpIHsKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAm
JiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAgICAgaWYgKHRv
UmVuZGVyQmxvY2socmVuZGVyZXIpLT5sb2dpY2FsSGVpZ2h0KCkgfHwgbV9hbmNob3JOb2RlLT5o
YXNUYWdOYW1lKGJvZHlUYWcpKSB7CiAgICAgICAgICAgICBpZiAoIVBvc2l0aW9uOjpoYXNSZW5k
ZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChyZW5kZXJlcikpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGF0U3RhcnRPZk5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJT
ZWxlY3ROb25lKG1fYW5jaG9yTm9kZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTMs
NyArMTAxMyw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUKIAog
ICAgIC8vIFNpbmNlIGFkZElubGluZVN0eWxlSWZOZWVkZWQgY2FuJ3QgYWRkIHN0eWxlcyB0byBi
bG9jay1mbG93IHJlbmRlciBvYmplY3RzLCBhZGQgc3R5bGUgYXR0cmlidXRlIGluc3RlYWQuCiAg
ICAgLy8gRklYTUU6IGFwcGx5SW5saW5lU3R5bGVUb1JhbmdlIHNob3VsZCBiZSB1c2VkIGhlcmUg
aW5zdGVhZC4KLSAgICBpZiAoKG5vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93KCkgfHwgbm9k
ZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CisgICAgaWYg
KChub2RlLT5yZW5kZXJlcigpLT5pc1JlbmRlckJsb2NrRmxvdygpIHx8IG5vZGUtPmNoaWxkTm9k
ZUNvdW50KCkpICYmIG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHRvSFRNTEVsZW1lbnQobm9kZSksIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0
eWxlKCktPmFzVGV4dCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiAx
NTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODc0LDcgKzg3NCw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmEKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnRh
aW5lci0+cmVuZGVyZXIoKTsKLSAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNCbG9j
a0Zsb3coKSkKKyAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4
Qm94T3JHcmlkKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAogICAgIC8vIGFwcGVuZCB0aGUg
cGxhY2Vob2xkZXIgdG8gbWFrZSBzdXJlIGl0IGZvbGxvd3MKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyOSw3ICsxNDI5LDcgQEAgV3JpdGluZ0Rp
cmVjdGlvbiBFZGl0b3I6OmJhc2VXcml0aW5nRGlyZQogICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBpZiAoIXJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKSB7
CisgICAgaWYgKCFyZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkpIHsKICAgICAg
ICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBjYXJldFJlbmRlcmVyKE5vZGUq
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8gaWYgY2FyZXROb2RlIGlzIGEgYmxvY2sgYW5k
IGNhcmV0IGlzIGluc2lkZSBpdCB0aGVuIGNhcmV0IHNob3VsZCBiZSBwYWludGVkIGJ5IHRoYXQg
YmxvY2sKLSAgICBib29sIHBhaW50ZWRCeUJsb2NrID0gcmVuZGVyZXItPmlzQmxvY2tGbG93KCkg
JiYgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShub2RlKTsKKyAgICBib29sIHBhaW50ZWRCeUJsb2Nr
ID0gcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmIGNhcmV0UmVuZGVyc0lu
c2lkZU5vZGUobm9kZSk7CiAgICAgcmV0dXJuIHBhaW50ZWRCeUJsb2NrID8gcmVuZGVyZXIgOiBy
ZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE4LDcgKzkxOCw3
IEBAIGJvb2wgVGV4dEl0ZXJhdG9yOjpzaG91bGRSZXByZXNlbnROb2RlT2YKICAgICAvLyBBZGRp
dGlvbmFsbHksIGlmIHRoZSByYW5nZSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIgY29udGFpbnMgaHVn
ZSBzZWN0aW9ucyBvZiB1bnJlbmRlcmVkIGNvbnRlbnQsIAogICAgIC8vIHdlIHdvdWxkIGNyZWF0
ZSBWaXNpYmxlUG9zaXRpb25zIG9uIGV2ZXJ5IGNhbGwgdG8gdGhpcyBmdW5jdGlvbiB3aXRob3V0
IHRoaXMgY2hlY2suCiAgICAgaWYgKCFtX25vZGUtPnJlbmRlcmVyKCkgfHwgbV9ub2RlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRQotICAgICAgICB8fCAobV9u
b2RlLT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvdygpICYmICF0b1JlbmRlckJsb2NrKG1fbm9kZS0+
cmVuZGVyZXIoKSktPmhlaWdodCgpICYmICFtX25vZGUtPmhhc1RhZ05hbWUoYm9keVRhZykpKQor
ICAgICAgICB8fCAobV9ub2RlLT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQo
KSAmJiAhdG9SZW5kZXJCbG9jayhtX25vZGUtPnJlbmRlcmVyKCkpLT5oZWlnaHQoKSAmJiAhbV9u
b2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ly8gVGhlIHN0YXJ0UG9zLmlzTm90TnVsbCgpIGNoZWNrIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBz
dGFydCBjb3VsZCBiZSBiZWZvcmUgdGhlIGJvZHksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNCw3ICs0MDQs
NyBAQCBib29sIFR5cGluZ0NvbW1hbmQ6Om1ha2VFZGl0YWJsZVJvb3RFbXB0CiAKICAgICBpZiAo
cm9vdC0+Zmlyc3RDaGlsZCgpID09IHJvb3QtPmxhc3RDaGlsZCgpICYmIHJvb3QtPmZpcnN0RWxl
bWVudENoaWxkKCkgJiYgcm9vdC0+Zmlyc3RFbGVtZW50Q2hpbGQoKS0+aGFzVGFnTmFtZShiclRh
ZykpIHsKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBzaW5nbGUgY2hpbGQgYW5kIGl0IGNvdWxk
IGJlIGEgcGxhY2Vob2xkZXIsIGxlYXZlIGl0IGFsb25lLgotICAgICAgICBpZiAocm9vdC0+cmVu
ZGVyZXIoKSAmJiByb290LT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvdygpKQorICAgICAgICBpZiAo
cm9vdC0+cmVuZGVyZXIoKSAmJiByb290LT5yZW5kZXJlcigpLT5pc0Jsb2NrRmxvd0ZsZXhCb3hP
ckdyaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5
MCw3ICsxMjkwLDcgQEAgYm9vbCBpc0Jsb2NrRmxvd0VsZW1lbnQoY29uc3QgTm9kZSogbm9kZQog
ICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJu
IHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpOworICAgIHJldHVybiByZW5kZXJl
ciAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCk7CiB9CiAKIEVsZW1lbnQq
IGRlcHJlY2F0ZWRFbmNsb3NpbmdCbG9ja0Zsb3dFbGVtZW50KE5vZGUqIG5vZGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTUx
OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVsZW1lbnQu
aCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAtMTEzLDcg
KzExMyw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGMKIAogUmVu
ZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogewotICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJC
bG9jayh0aGlzKTsKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2tGbG93KHRoaXMp
OwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9v
dChTaGFkb3dSb290KiByb290KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9j
ay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNyArNjgsNyBAQCBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OkhUTUxTdW1tYXJ5RWxlbWVudChjCiAKIFJlbmRlck9iamVjdCogSFRNTFN1bW1hcnlF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikK
IHsKLSAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2sodGhpcyk7CisgICAgcmV0dXJu
IG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrRmxvdyh0aGlzKTsKIH0KIAogYm9vbCBIVE1MU3VtbWFy
eUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcg
QEAgSFRNTEVsZW1lbnQqIHNsaWRlclRyYWNrRWxlbWVudE9mKE5vZGUqIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVuZGVyU2xpZGVyVGh1bWI6OlJlbmRlclNsaWRl
clRodW1iKFNsaWRlclRodW1iRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlckJsb2NrKGVs
ZW1lbnQpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkKIHsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJIVE1M
RGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlJlbmRlckJs
b2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTYsNyArOTYsNyBAQCBIVE1MRWxlbWVu
dCogc2xpZGVyVHJhY2tFbGVtZW50T2YoTm9kZSopCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRlclNsaWRlclRodW1iIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclNsaWRlclRodW1iIEZJTkFMIDogcHVibGljIFJlbmRl
ckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVyVGh1bWJF
bGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGVBcHBlYXJhbmNlKFJlbmRlclN0eWxlKiBwYXJlbnRT
dHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAJKHJl
dmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUoTGF5b3V0U3RhdGUqIHByCiAgICAgICAgIGNvbXB1dGVMaW5lR3JpZFBhZ2luYXRpb25P
cmlnaW4ocmVuZGVyZXIpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIG5ldyBncmlkIHRvIHRyYWNr
LCB0aGVuIGFkZCBpdCB0byBvdXIgc2V0LgotICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKS0+bGlu
ZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlz
QmxvY2tGbG93KCkpCisgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3dGbGV4
Qm94T3JHcmlkKCkpCiAgICAgICAgIGVzdGFibGlzaExpbmVHcmlkKHRvUmVuZGVyQmxvY2socmVu
ZGVyZXIpKTsKIAogICAgIC8vIEZJWE1FOiA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM0NDM+IEFwcGx5IGNvbnRyb2wgY2xpcCBpZiBwcmVzZW50LgpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxNTUxOTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzcsNyArMjM3LDcgQEAgUmVuZGVyQmxvY2s6On5SZW5kZXJCbG9jaygpCiAKIFJlbmRl
ckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKERvY3VtZW50KiBkb2N1bWVudCkK
IHsKLSAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJCbG9jaygwKTsKKyAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRv
Y3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9ja0Zsb3coMCk7CiAgICAgcmVuZGVyZXIt
PnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7
CiB9CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhi
b29sIHJlbGF5CiAgICAgICAgIGlmIChvbGRIZWlnaHQgPiBuZXdIZWlnaHQgJiYgbWF4RmxvYXRM
b2dpY2FsQm90dG9tID4gbmV3SGVpZ2h0ICYmICFjaGlsZHJlbklubGluZSgpKSB7CiAgICAgICAg
ICAgICAvLyBPbmUgb2Ygb3VyIGNoaWxkcmVuJ3MgZmxvYXRzIG1heSBoYXZlIGJlY29tZSBhbiBv
dmVyaGFuZ2luZyBmbG9hdCBmb3IgdXMuIFdlIG5lZWQgdG8gbG9vayBmb3IgaXQuCiAgICAgICAg
ICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkLT5p
c0Jsb2NrRmxvdygpICYmICFjaGlsZC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkLT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQo
KSAmJiAhY2hpbGQtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAg
ICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSB0b1JlbmRlckJsb2NrKGNoaWxkKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5sb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20o
KSArIGJsb2NrLT5sb2dpY2FsVG9wKCkgPiBuZXdIZWlnaHQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRPdmVyaGFuZ2luZ0Zsb2F0cyhibG9jaywgZmFsc2UpOwpAQCAtMjI1OCw3ICsyMjU4
LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKAogICAgIExheW91
dFVuaXQgb2xkTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBzZXRMb2dpY2Fs
SGVpZ2h0KGxvZ2ljYWxUb3ApOwogICAgIFJlbmRlck9iamVjdCogcHJldiA9IGNoaWxkLT5wcmV2
aW91c1NpYmxpbmcoKTsKLSAgICBpZiAocHJldiAmJiBwcmV2LT5pc0Jsb2NrRmxvdygpICYmICFw
cmV2LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICBpZiAocHJldiAm
JiBwcmV2LT5pc0Jsb2NrRmxvd0ZsZXhCb3hPckdyaWQoKSAmJiAhcHJldi0+aXNGbG9hdGluZ09y
T3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CiAgICAgICAgIFJlbmRlckJsb2NrKiBibG9jayA9IHRv
UmVuZGVyQmxvY2socHJldik7CiAgICAgICAgIGlmIChibG9jay0+Y29udGFpbnNGbG9hdHMoKSAm
JiAhYmxvY2stPmF2b2lkc0Zsb2F0cygpICYmIChibG9jay0+bG9naWNhbFRvcCgpICsgYmxvY2st
Pmxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSgpKSA+IGxvZ2ljYWxUb3ApIAogICAgICAgICAgICAg
YWRkT3ZlcmhhbmdpbmdGbG9hdHMoYmxvY2ssIGZhbHNlKTsKQEAgLTM2ODMsNyArMzY4Myw3IEBA
IEdhcFJlY3RzIFJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKFJlbmQKICAgICAvLyBGSVhNRTog
b3ZlcmZsb3c6IGF1dG8vc2Nyb2xsIHJlZ2lvbnMgbmVlZCBtb3JlIG1hdGggaGVyZSwgc2luY2Ug
cGFpbnRpbmcgaW4gdGhlIGJvcmRlciBib3ggaXMgZGlmZmVyZW50IGZyb20gcGFpbnRpbmcgaW4g
dGhlIHBhZGRpbmcgYm94IChvbmUgaXMgc2Nyb2xsZWQsIHRoZSBvdGhlciBpcwogICAgIC8vIGZp
eGVkKS4KICAgICBHYXBSZWN0cyByZXN1bHQ7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygpKSAvLyBG
SVhNRTogTWFrZSBtdWx0aS1jb2x1bW4gc2VsZWN0aW9uIGdhcCBmaWxsaW5nIHdvcmsgc29tZWRh
eS4KKyAgICBpZiAoIWlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSAvLyBGSVhNRTogTWFrZSBt
dWx0aS1jb2x1bW4gc2VsZWN0aW9uIGdhcCBmaWxsaW5nIHdvcmsgc29tZWRheS4KICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKIAogICAgIGlmIChoYXNDb2x1bW5zKCkgfHwgaGFzVHJhbnNmb3JtKCkg
fHwgc3R5bGUoKS0+Y29sdW1uU3BhbigpKSB7CkBAIC02NzYyLDcgKzY3NjIsNyBAQCBpbnQgUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhCiAKIGludCBSZW5kZXJCbG9jazo6Zmly
c3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdAogewotICAgIGlmICghaXNCbG9ja0Zsb3coKSB8fCAo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNSdWJ5UnVuKCkpKQorICAgIGlmICghaXNCbG9ja0Zs
b3dGbGV4Qm94T3JHcmlkKCkgfHwgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigp
KSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkpIHsKQEAg
LTY3OTEsNyArNjc5MSw3IEBAIGludCBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShM
aW4KIAogaW50IFJlbmRlckJsb2NrOjpsYXN0TGluZUJveEJhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Jsb2NrRmxvdygpIHx8IChp
c1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSkpCisgICAgaWYgKCFpc0Jsb2NrRmxv
d0ZsZXhCb3hPckdyaWQoKSB8fCAoaXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNSdWJ5UnVuKCkp
KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkgewpAQCAt
Njg1Miw3ICs2ODUyLDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCbG9j
awogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gYnV0dG9ucyBhcmUgaW1wbGVtZW50ZWQg
d2l0aCBhbGlnbi1pdGVtcyBpbnN0ZWFkCiAgICAgICAgIC8vIG9mIGZsZXhib3guCiAgICAgICAg
IGlmIChmaXJzdExpbmVCbG9jay0+aXNSZXBsYWNlZCgpIHx8IGZpcnN0TGluZUJsb2NrLT5pc0Zs
b2F0aW5nKCkKLSAgICAgICAgICAgIHx8ICFwYXJlbnRCbG9jayB8fCBwYXJlbnRCbG9jay0+Zmly
c3RDaGlsZCgpICE9IGZpcnN0TGluZUJsb2NrIHx8ICFwYXJlbnRCbG9jay0+aXNCbG9ja0Zsb3co
KQorICAgICAgICAgICAgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxk
KCkgIT0gZmlyc3RMaW5lQmxvY2sgfHwgIXBhcmVudEJsb2NrLT5pc0Jsb2NrRmxvd0ZsZXhCb3hP
ckdyaWQoKQogICAgICAgICAgICAgfHwgKHBhcmVudEJsb2NrLT5pc0ZsZXhpYmxlQm94KCkgJiYg
IXBhcmVudEJsb2NrLT5pc1JlbmRlckJ1dHRvbigpKSkKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihwYXJlbnRCbG9jay0+aXNSZW5k
ZXJCbG9jaygpKTsKQEAgLTY5MTEsNyArNjkxMSw3IEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyT2Jq
ZWN0KiBmaW5kRmlyc3RMZXQKIAogICAgICAgICBSZW5kZXJPYmplY3QqIHBhcmVudEJsb2NrID0g
Zmlyc3RMZXR0ZXJCbG9jay0+cGFyZW50KCk7CiAgICAgICAgIGlmIChmaXJzdExldHRlckJsb2Nr
LT5pc1JlcGxhY2VkKCkgfHwgIXBhcmVudEJsb2NrIHx8IHBhcmVudEJsb2NrLT5maXJzdENoaWxk
KCkgIT0gZmlyc3RMZXR0ZXJCbG9jayB8fCAKLSAgICAgICAgICAgICFwYXJlbnRCbG9jay0+aXNC
bG9ja0Zsb3coKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAhcGFyZW50Qmxv
Y2stPmlzUmVuZGVyQnV0dG9uKCkpKQorICAgICAgICAgICAgIXBhcmVudEJsb2NrLT5pc0Jsb2Nr
Rmxvd0ZsZXhCb3hPckdyaWQoKSB8fCAocGFyZW50QmxvY2stPmlzRmxleGlibGVCb3goKSAmJiAh
cGFyZW50QmxvY2stPmlzUmVuZGVyQnV0dG9uKCkpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIGZpcnN0TGV0dGVyQmxvY2sgPSBwYXJlbnRCbG9jazsKICAgICB9IApAQCAtNzA5Myw3
ICs3MDkzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0ZXIoKQogc3RhdGlj
IGJvb2wgc2hvdWxkQ2hlY2tMaW5lcyhSZW5kZXJPYmplY3QqIG9iaikKIHsKICAgICByZXR1cm4g
IW9iai0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFvYmotPmlzUnVuSW4o
KQotICAgICAgICAgICAgJiYgb2JqLT5pc0Jsb2NrRmxvdygpICYmIG9iai0+c3R5bGUoKS0+aGVp
Z2h0KCkuaXNBdXRvKCkKKyAgICAgICAgICAgICYmIG9iai0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkgJiYgb2JqLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKQogICAgICAgICAgICAgJiYg
KCFvYmotPmlzRGVwcmVjYXRlZEZsZXhpYmxlQm94KCkgfHwgb2JqLT5zdHlsZSgpLT5ib3hPcmll
bnQoKSA9PSBWRVJUSUNBTCk7CiB9CiAKQEAgLTcxOTgsNyArNzE5OCw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmFkanVzdEZvckJvcmRlckZpdChMYXkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBmb3IgKFJlbmRlckJveCogb2JqID0gZmlyc3RDaGlsZEJveCgpOyBvYmo7IG9iaiA9IG9iai0+
bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICAgICAgICAgIGlmICghb2JqLT5pc0Zsb2F0aW5n
T3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG9iai0+
aXNCbG9ja0Zsb3coKSAmJiAhb2JqLT5oYXNPdmVyZmxvd0NsaXAoKSkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG9iai0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYgIW9iai0+aGFzT3Zl
cmZsb3dDbGlwKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0b1JlbmRlckJsb2NrKG9iaikt
PmFkanVzdEZvckJvcmRlckZpdCh4ICsgb2JqLT54KCksIGxlZnQsIHJpZ2h0KTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAob2JqLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJM
RSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGEgcmVwbGFjZWQgZWxlbWVu
dCBvciBzb21lIGtpbmQgb2Ygbm9uLWJsb2NrLWZsb3cgb2JqZWN0LgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw5ICs4
OSwxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGUgPGNsYXNzPiBmcmllbmQgc3RydWN0IFZhbHVl
VG9TdHJpbmc7CiAjZW5kaWYKIAorcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlbmRlckJsb2Nr
KENvbnRhaW5lck5vZGUqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJCbG9jaygpOwogCitwdWJsaWM6
CiAgICAgc3RhdGljIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKIAog
ICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgQVNTRVJUKGNoaWxkcmVuKCkg
PT0gdmlydHVhbENoaWxkcmVuKCkpOyByZXR1cm4gY2hpbGRyZW4oKS0+Zmlyc3RDaGlsZCgpOyB9
CkBAIC02MjcsNyArNjI5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJsb2NrKCkgY29u
c3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0Js
b2NrRmxvdygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICghaXNJbmxpbmUoKSB8fCBp
c1JlcGxhY2VkKCkpICYmICFpc1RhYmxlKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbmxpbmVC
bG9ja09ySW5saW5lVGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBpc0lubGlu
ZSgpICYmIGlzUmVwbGFjZWQoKTsgfQogCiAgICAgdm9pZCBtYWtlQ2hpbGRyZW5Ob25JbmxpbmUo
UmVuZGVyT2JqZWN0KiBpbnNlcnRpb25Qb2ludCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDA3IERhdmlkIFNtaXRoIChjYXRmaXNoLm1hbkBn
bWFpbC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJCbG9ja0Zsb3cuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJCbG9j
a0Zsb3c6OlJlbmRlckJsb2NrRmxvdyhDb250YWluZXJOb2RlKiBub2RlKQorICAgIDogUmVuZGVy
QmxvY2sobm9kZSkKK3sKK30KKworUmVuZGVyQmxvY2tGbG93Ojp+UmVuZGVyQmxvY2tGbG93KCkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQor
ICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQor
ICogICAgICAgICAgIChDKSAyMDA3IERhdmlkIFNtaXRoIChjYXRmaXNoLm1hbkBnbWFpbC5jb20p
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxMywgIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmbmRlZiBSZW5kZXJCbG9ja0Zsb3dfaAorI2RlZmluZSBSZW5kZXJCbG9ja0Zsb3df
aAorCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBSZW5kZXJCbG9ja0Zsb3cgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFJlbmRlckJsb2NrRmxvdyhDb250YWluZXJOb2RlKik7CisgICAgdmlydHVhbCB+
UmVuZGVyQmxvY2tGbG93KCk7CisgICAgCisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxvY2tG
bG93KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworaW5saW5l
IFJlbmRlckJsb2NrRmxvdyYgdG9SZW5kZXJCbG9ja0Zsb3coUmVuZGVyT2JqZWN0JiBvYmplY3Qp
Cit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVy
QmxvY2tGbG93KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJCbG9ja0Zsb3cmPihv
YmplY3QpOworfQorCitpbmxpbmUgY29uc3QgUmVuZGVyQmxvY2tGbG93JiB0b1JlbmRlckJsb2Nr
Rmxvdyhjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJCbG9ja0Zsb3coKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckJsb2NrRmxvdyY+KG9iamVjdCk7Cit9CisKK2lubGlu
ZSBSZW5kZXJCbG9ja0Zsb3cqIHRvUmVuZGVyQmxvY2tGbG93KFJlbmRlck9iamVjdCogb2JqZWN0
KQoreyAKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9i
amVjdC0+aXNSZW5kZXJCbG9ja0Zsb3coKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
ckJsb2NrRmxvdyo+KG9iamVjdCk7Cit9CisKK2lubGluZSBjb25zdCBSZW5kZXJCbG9ja0Zsb3cq
IHRvUmVuZGVyQmxvY2tGbG93KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreyAKKyAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5k
ZXJCbG9ja0Zsb3coKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckJsb2Nr
Rmxvdyo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4g
dW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyQmxv
Y2tGbG93Kik7Cit2b2lkIHRvUmVuZGVyQmxvY2tGbG93KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJCbG9ja0Zsb3df
aApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDE1
NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAzLDcgKzIxMDMsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RG
b3JSZXBhaW50KGNvCiAgICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93
UG9zaXRpb24oKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHBvc2l0aW9uICE9IEFic29sdXRlUG9z
aXRpb24gJiYgcG9zaXRpb24gIT0gRml4ZWRQb3NpdGlvbiAmJiBvLT5oYXNDb2x1bW5zKCkgJiYg
by0+aXNCbG9ja0Zsb3coKSkgeworICAgIGlmIChwb3NpdGlvbiAhPSBBYnNvbHV0ZVBvc2l0aW9u
ICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRpb24gJiYgby0+aGFzQ29sdW1ucygpICYmIG8tPmlz
QmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSB7CiAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJl
Y3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICB0b1JlbmRlckJsb2NrKG8pLT5hZGp1
c3RSZWN0Rm9yQ29sdW1ucyhyZXBhaW50UmVjdCk7CiAgICAgICAgIHRvcExlZnQgPSByZXBhaW50
UmVjdC5sb2NhdGlvbigpOwpAQCAtNDA5Myw3ICs0MDkzLDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJl
bmRlckJveDo6cG9zaXRpb25Gb3JQbwogICAgICAgICBhZGp1c3RlZFBvaW50Lm1vdmVCeShsb2Nh
dGlvbigpKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBmaXJzdENo
aWxkKCk7IHJlbmRlck9iamVjdDsgcmVuZGVyT2JqZWN0ID0gcmVuZGVyT2JqZWN0LT5uZXh0U2li
bGluZygpKSB7Ci0gICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFy
ZW5kZXJPYmplY3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNCbG9ja0Zsb3coKSAp
CisgICAgICAgIGlmICgoIXJlbmRlck9iamVjdC0+Zmlyc3RDaGlsZCgpICYmICFyZW5kZXJPYmpl
Y3QtPmlzSW5saW5lKCkgJiYgIXJlbmRlck9iamVjdC0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlk
KCkgKQogICAgICAgICAgICAgfHwgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZpc2lv
biAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSBzKTsKIAotICAgIGJv
b2wgY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkg
JiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1Rh
YmxlQ2VsbCgpICYmIGlzQmxvY2tGbG93KCkgJiYgIWlzUmVuZGVyU1ZHQmxvY2soKTsgfQorICAg
IGJvb2wgY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5n
KCkgJiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFp
c1RhYmxlQ2VsbCgpICYmIGlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpICYmICFpc1JlbmRlclNW
R0Jsb2NrKCk7IH0KIAogCiAgICAgdm9pZCBnZXRHZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciwgSW50UmVjdCYgZGVz
dFJlY3QsIEludFBvaW50JiBwaGFzZSwgSW50U2l6ZSYgdGlsZVNpemUpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
ODgsNyArOTg4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TAog
CiAgICAgICAgIGNoaWxkLT5jbGVhck92ZXJyaWRlU2l6ZSgpOwogICAgICAgICBpZiAocmVsYXlv
dXRDaGlsZHJlbiB8fCAoY2hpbGQtPmlzUmVwbGFjZWQoKSAmJiAoY2hpbGQtPnN0eWxlKCktPndp
ZHRoKCkuaXNQZXJjZW50KCkgfHwgY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgp
KSkKLSAgICAgICAgICAgIHx8IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYg
Y2hpbGQtPmlzQmxvY2tGbG93KCkpKSB7CisgICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCkt
PmhlaWdodCgpLmlzQXV0bygpICYmIGNoaWxkLT5pc1JlbmRlckJsb2NrKCkpKSB7CiAgICAgICAg
ICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogCiAg
ICAgICAgICAgICAvLyBEaXJ0eSBhbGwgdGhlIHBvc2l0aW9uZWQgb2JqZWN0cy4KQEAgLTk5OCw3
ICs5OTgsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7Ci0g
ICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlz
QmxvY2tGbG93KCkpCisgICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRv
KCkgJiYgY2hpbGQtPmlzUmVuZGVyQmxvY2soKSkKICAgICAgICAgICAgIG1heExpbmVDb3VudCA9
IG1heChtYXhMaW5lQ291bnQsIHRvUmVuZGVyQmxvY2soY2hpbGQpLT5saW5lQ291bnQoKSk7CiAg
ICAgfQogCkBAIC0xMDEwLDcgKzEwMTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDo6YXBwbHlMCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGls
ZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0ZXJhdG9yLm5leHQoKSkgewot
ICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8ICFj
aGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc0Jsb2NrRmxvdygp
KQorICAgICAgICBpZiAoY2hpbGREb2VzTm90QWZmZWN0V2lkdGhPckZsZXhpbmcoY2hpbGQpIHx8
ICFjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgfHwgIWNoaWxkLT5pc1JlbmRlckJs
b2NrKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBSZW5kZXJCbG9jayogYmxv
Y2tDaGlsZCA9IHRvUmVuZGVyQmxvY2soY2hpbGQpOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9p
ZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmNsZWFyTAogCiAgICAgICAgIGNoaWxkLT5j
bGVhck92ZXJyaWRlU2l6ZSgpOwogICAgICAgICBpZiAoKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYg
KGNoaWxkLT5zdHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5o
ZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0gICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhl
aWdodCgpLmlzQXV0bygpICYmIGNoaWxkLT5pc0Jsb2NrRmxvdygpKSkgeworICAgICAgICAgICAg
fHwgKGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAmJiBjaGlsZC0+aXNSZW5kZXJC
bG9jaygpKSkgewogICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7
CiAKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJCbG9jaygpKSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCShyZXZp
c2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01h
cmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyRGV0YWlsc01hcmtlcjo6
UmVuZGVyRGV0YWlsc01hcmtlcihFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2so
ZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgJKHJldmlz
aW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFy
a2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDExICsyMiwxMSBAQAogI2RlZmluZSBSZW5kZXJE
ZXRhaWxzTWFya2VyX2gKIAogI2lmIEVOQUJMRShERVRBSUxTX0VMRU1FTlQpCi0jaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJEZXRhaWxzTWFya2VyIEZJTkFMIDogcHVibGljIFJl
bmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlckRldGFpbHNNYXJrZXIgRklOQUwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJEZXRhaWxzTWFya2VyKEVsZW1lbnQq
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3Bw
CShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlckZpZWxkc2V0OjpSZW5k
ZXJGaWVsZHNldChFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkK
KyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDExICsyNCwxMSBAQAogI2lmbmRlZiBSZW5kZXJGaWVsZHNldF9oCiAjZGVmaW5lIFJlbmRl
ckZpZWxkc2V0X2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVy
QmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVuZGVyRmllbGRz
ZXQgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmllbGRzZXQgRklO
QUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5k
ZXJGaWVsZHNldChFbGVtZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBjb25zdCBpbnQgZGVmYXVsdFdpZHRoTnVt
Q2hhcnMgPSAzNDsKIGNvbnN0IGludCBidXR0b25TaGFkb3dIZWlnaHQgPSAyOwogCiBSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woSFRNTElucHV0RWxlbWVu
dCogaW5wdXQpCi0gICAgOiBSZW5kZXJCbG9jayhpbnB1dCkKKyAgICA6IFJlbmRlckJsb2NrRmxv
dyhpbnB1dCkKICAgICAsIG1fY2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhpbnB1dC0+Y2FuUmVjZWl2
ZURyb3BwZWRGaWxlcygpKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBACiAjaWZuZGVmIFJlbmRlckZpbGVVcGxvYWRDb250cm9s
X2gKICNkZWZpbmUgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2xfaAogCi0jaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAvLyBzdWZm
aWNpZW50IHNwYWNlIHRvIGRyYXcgYSBmaWxlIGljb24gYW5kIGZpbGVuYW1lLiBUaGUgUmVuZGVy
QnV0dG9uIGhhcyBhIHNoYWRvdyBub2RlCiAvLyBhc3NvY2lhdGVkIHdpdGggaXQgdG8gcmVjZWl2
ZSBjbGljay9ob3ZlciBldmVudHMuCiAKLWNsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIEZJ
TkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9s
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2woSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckZp
bGVVcGxvYWRDb250cm9sKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUx
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxv
d1RocmVhZCgpCi0gICAgOiBSZW5kZXJCbG9jaygwKQorICAgIDogUmVuZGVyQmxvY2tGbG93KDAp
CiAgICAgLCBtX3ByZXZpb3VzUmVnaW9uQ291bnQoMCkKICAgICAsIG1fYXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zQ291bnQoMCkKICAgICAsIG1fcmVnaW9uc0ludmFsaWRhdGVkKGZhbHNlKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCShyZXZpc2lv
biAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjZGVmaW5lIFJlbmRlckZsb3dUaHJl
YWRfaAogCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2Nr
Rmxvdy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
aXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC01NSw3ICs1NSw3
IEBAIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJlbmRlclJlZ2kKIC8vIGFuZCBub2Rl
QXRQb2ludCBtZXRob2RzIHRvIHRoaXMgb2JqZWN0LiBFYWNoIFJlbmRlclJlZ2lvbiB3aWxsIGFj
dHVhbGx5IGJlIGEgdmlld1BvcnQKIC8vIG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgogCi1jbGFz
cyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyRmxv
d1RocmVhZDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRmxv
d1RocmVhZCgpOwogICAgIHZpcnR1YWwgflJlbmRlckZsb3dUaHJlYWQoKSB7IH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCShyZXZpc2lv
biAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIlJlbmRlckZ1
bGxTY3JlZW4uaCIKIAorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0zNiwx
MCArMzcsMTAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLWNsYXNzIFJlbmRlckZ1
bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBS
ZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93
IHsKIHB1YmxpYzoKICAgICBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoUmVuZGVyRnVsbFNj
cmVlbiogb3duZXIpIAotICAgICAgICA6IFJlbmRlckJsb2NrKDApCisgICAgICAgIDogUmVuZGVy
QmxvY2tGbG93KDApCiAgICAgICAgICwgbV9vd25lcihvd25lcikgCiAgICAgewogICAgICAgICBz
ZXREb2N1bWVudEZvckFub255bW91cygmb3duZXItPmRvY3VtZW50KCkpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50CiAKICAgICBMYXlvdXRQb2ludCB0b3BMZWZ0ID0gcmVjdC5sb2NhdGlvbigpOwogCi0g
ICAgaWYgKG8tPmlzQmxvY2tGbG93KCkgJiYgIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9u
KCkpIHsKKyAgICBpZiAoby0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgJiYgIXN0eWxlKCkt
Pmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpIHsKICAgICAgICAgUmVuZGVyQmxvY2sqIGNiID0gdG9S
ZW5kZXJCbG9jayhvKTsKICAgICAgICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpIHsKICAgICAgICAg
ICAgIExheW91dFJlY3QgcmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCShyZXZp
c2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNyArMzExLDcgQEAgYm9vbCBSZW5kZXJMaW5l
Qm94TGlzdDo6aGl0VGVzdChSZW5kZXJCbwogCiB2b2lkIFJlbmRlckxpbmVCb3hMaXN0OjpkaXJ0
eUxpbmVzRnJvbUNoYW5nZWRDaGlsZChSZW5kZXJPYmplY3QqIGNvbnRhaW5lciwgUmVuZGVyT2Jq
ZWN0KiBjaGlsZCkKIHsKLSAgICBpZiAoIWNvbnRhaW5lci0+cGFyZW50KCkgfHwgKGNvbnRhaW5l
ci0+aXNSZW5kZXJCbG9jaygpICYmIChjb250YWluZXItPnNlbGZOZWVkc0xheW91dCgpIHx8ICFj
b250YWluZXItPmlzQmxvY2tGbG93KCkpKSkKKyAgICBpZiAoIWNvbnRhaW5lci0+cGFyZW50KCkg
fHwgKGNvbnRhaW5lci0+aXNSZW5kZXJCbG9jaygpICYmIChjb250YWluZXItPnNlbGZOZWVkc0xh
eW91dCgpIHx8ICFjb250YWluZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKSkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udGFpbmVyID0gY29udGFp
bmVyLT5pc1JlbmRlcklubGluZSgpID8gdG9SZW5kZXJJbmxpbmUoY29udGFpbmVyKSA6IDA7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAJKHJldmlz
aW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmVuZGVyTGlzdEl0ZW06OlJlbmRlckxpc3RJ
dGVtKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX21hcmtlcigwKQogICAgICwgbV9oYXNF
eHBsaWNpdFZhbHVlKGZhbHNlKQogICAgICwgbV9pc1ZhbHVlVXBUb0RhdGUoZmFsc2UpCkBAIC03
Niw3ICs3Niw3IEBAIHZvaWQgUmVuZGVyTGlzdEl0ZW06OndpbGxCZURlc3Ryb3llZCgpCiAgICAg
ICAgIG1fbWFya2VyLT5kZXN0cm95KCk7CiAgICAgICAgIG1fbWFya2VyID0gMDsKICAgICB9Ci0g
ICAgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJsb2NrRmxvdzo6
d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGlzdEl0ZW06Omluc2VydGVkSW50
b1RyZWUoKQpAQCAtODgsNyArODgsNyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjppbnNlcnRlZElu
dG9UcmVlKCkKIAogdm9pZCBSZW5kZXJMaXN0SXRlbTo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkK
IHsKLSAgICBSZW5kZXJCbG9jazo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCk7CisgICAgUmVuZGVy
QmxvY2tGbG93Ojp3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKTsKIAogICAgIHVwZGF0ZUxpc3RNYXJr
ZXJOdW1iZXJzKCk7CiB9CkBAIC0zMDYsMTIgKzMwNiwxMiBAQCB2b2lkIFJlbmRlckxpc3RJdGVt
OjpsYXlvdXQoKQogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsgCiAKICAgICBpbnNlcnRPck1v
dmVNYXJrZXJSZW5kZXJlcklmTmVlZGVkKCk7Ci0gICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwor
ICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0KCk7CiB9CiAKIHZvaWQgUmVuZGVyTGlzdEl0ZW06
OmFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCkKIHsKLSAgICBSZW5kZXJCbG9jazo6YWRkT3ZlcmZs
b3dGcm9tQ2hpbGRyZW4oKTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OmFkZE92ZXJmbG93RnJvbUNo
aWxkcmVuKCk7CiAgICAgcG9zaXRpb25MaXN0TWFya2VyKCk7CiB9CiAKQEAgLTMyNSw3ICszMjUs
NyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpjb21wdXRlUHJlZmVycmVkTG9nCiAgICAgU2V0TGF5
b3V0TmVlZGVkRm9yYmlkZGVuU2NvcGUgbGF5b3V0Rm9yYmlkZGVuU2NvcGUodGhpcywgZmFsc2Up
OwogI2VuZGlmCiAgICAgaW5zZXJ0T3JNb3ZlTWFya2VyUmVuZGVyZXJJZk5lZWRlZCgpOwotICAg
IFJlbmRlckJsb2NrOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRl
ckJsb2NrRmxvdzo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKIH0KIAogdm9pZCBS
ZW5kZXJMaXN0SXRlbTo6cG9zaXRpb25MaXN0TWFya2VyKCkKQEAgLTQyOCw3ICs0MjgsNyBAQCB2
b2lkIFJlbmRlckxpc3RJdGVtOjpwYWludChQYWludEluZm8mIHBhCiAgICAgaWYgKCFsb2dpY2Fs
SGVpZ2h0KCkgJiYgaGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJl
bmRlckJsb2NrOjpwYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICBSZW5kZXJCbG9j
a0Zsb3c6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiBjb25zdCBTdHJpbmcm
IFJlbmRlckxpc3RJdGVtOjptYXJrZXJUZXh0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjMs
MTQgKzIzLDE0IEBACiAjaWZuZGVmIFJlbmRlckxpc3RJdGVtX2gKICNkZWZpbmUgUmVuZGVyTGlz
dEl0ZW1faAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT0xpc3RFbGVtZW50
OwogY2xhc3MgUmVuZGVyTGlzdE1hcmtlcjsKIAotY2xhc3MgUmVuZGVyTGlzdEl0ZW0gRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyTGlzdEl0ZW0gRklOQUwgOiBwdWJs
aWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJMaXN0SXRl
bShFbGVtZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVy
LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBSZW5kZXJNZXRlcjo6UmVuZGVy
TWV0ZXIoSFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQor
ICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIs
NyBAQAogI2RlZmluZSBSZW5kZXJNZXRlcl9oCiAKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkK
LSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgog
I2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogCiAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTWV0ZXJFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJNZXRl
ciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJNZXRlciBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlck1l
dGVyKEhUTUxFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyTWV0ZXIoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5j
cHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtbkJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJNdWx0aUNvbHVt
bkJsb2NrOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAg
LCBtX2Zsb3dUaHJlYWQoMCkKICAgICAsIG1fY29sdW1uQ291bnQoMSkKICAgICAsIG1fY29sdW1u
V2lkdGgoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
bkJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uQmxvY2suaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTMg
KzI3LDEzIEBACiAjaWZuZGVmIFJlbmRlck11bHRpQ29sdW1uQmxvY2tfaAogI2RlZmluZSBSZW5k
ZXJNdWx0aUNvbHVtbkJsb2NrX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVk
ZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVu
ZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkOwogCi1jbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2Nr
IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlck11bHRpQ29sdW1uQmxv
Y2sgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJN
dWx0aUNvbHVtbkJsb2NrKEVsZW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNyArMjA3
LDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdAogICAgIGNhc2Ug
Q09NUEFDVDoKICAgICAgICAgaWYgKCghc3R5bGUtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFz
dHlsZS0+aGFzQXV0b0NvbHVtbldpZHRoKCkpICYmIGRvY3VtZW50LnJlZ2lvbkJhc2VkQ29sdW1u
c0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJNdWx0aUNv
bHVtbkJsb2NrKGVsZW1lbnQpOwotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxv
Y2soZWxlbWVudCk7CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCbG9ja0Zsb3co
ZWxlbWVudCk7CiAgICAgY2FzZSBMSVNUX0lURU06CiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJMaXN0SXRlbShlbGVtZW50KTsKICAgICBjYXNlIFRBQkxFOgpAQCAtMTU1Nyw3ICsx
NTU3LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCkpIHsKLSAgICAg
ICAgaWYgKG8tPmlzQmxvY2tGbG93KCkpIHsKKyAgICAgICAgaWYgKG8tPmlzQmxvY2tGbG93Rmxl
eEJveE9yR3JpZCgpKSB7CiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSB0b1JlbmRlckJs
b2NrKG8pOwogICAgICAgICAgICAgaWYgKGNiLT5oYXNDb2x1bW5zKCkpCiAgICAgICAgICAgICAg
ICAgY2ItPmFkanVzdFJlY3RGb3JDb2x1bW5zKHJlY3QpOwpAQCAtMTk2NCw3ICsxOTY0LDcgQEAg
dm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZQogCiAgICAgICAgIHNfYWZm
ZWN0c1BhcmVudEJsb2NrID0gaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpCiAgICAg
ICAgICAgICAmJiAoIW5ld1N0eWxlLT5pc0Zsb2F0aW5nKCkgJiYgIW5ld1N0eWxlLT5oYXNPdXRP
ZkZsb3dQb3NpdGlvbigpKQotICAgICAgICAgICAgJiYgcGFyZW50KCkgJiYgKHBhcmVudCgpLT5p
c0Jsb2NrRmxvdygpIHx8IHBhcmVudCgpLT5pc1JlbmRlcklubGluZSgpKTsKKyAgICAgICAgICAg
ICYmIHBhcmVudCgpICYmIChwYXJlbnQoKS0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JHcmlkKCkgfHwg
cGFyZW50KCktPmlzUmVuZGVySW5saW5lKCkpOwogCiAgICAgICAgIHNfbm9Mb25nZXJBZmZlY3Rz
UGFyZW50QmxvY2sgPSAoKCFpc0Zsb2F0aW5nKCkgJiYgbmV3U3R5bGUtPmlzRmxvYXRpbmcoKSkg
fHwgKCFpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBuZXdTdHlsZS0+aGFzT3V0T2ZGbG93UG9z
aXRpb24oKSkpCiAgICAgICAgICAgICAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNSZW5kZXJC
bG9jaygpOwpAQCAtMjc5Niw3ICsyNzk2LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IGZpcnN0TGluZQogICAgIGlmIChyZW5kZXJlci0+aXNCZWZvcmVPckFmdGVyQ29udGVudCgp
KQogICAgICAgICByZW5kZXJlckZvckZpcnN0TGluZVN0eWxlID0gcmVuZGVyZXItPnBhcmVudCgp
OwogCi0gICAgaWYgKHJlbmRlcmVyRm9yRmlyc3RMaW5lU3R5bGUtPmlzQmxvY2tGbG93KCkpIHsK
KyAgICBpZiAocmVuZGVyZXJGb3JGaXJzdExpbmVTdHlsZS0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkpIHsKICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jayA9IHJlbmRl
cmVyRm9yRmlyc3RMaW5lU3R5bGUtPmZpcnN0TGluZUJsb2NrKCkpIHsKICAgICAgICAgICAgIGlm
ICh0eXBlID09IENhY2hlZCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmxvY2st
PmdldENhY2hlZFBzZXVkb1N0eWxlKEZJUlNUX0xJTkUsIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIx
LDcgKzMyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUHNldWRvRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG5vZGUoKSAmJiBub2RlKCktPmlzUHNldWRvRWxlbWVudCgpOyB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNCUigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzUwLDYgKzM0OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCbG9jaygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxvY2tGbG93KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTVkdCbG9jaygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJ1dHRvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySUZyYW1l
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTQwNiw2ICs0MDYsMTIgQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc1RhYmxlUGFydCgpIGNvbnN0IHsgcmV0dXJuIGlzVGFibGVDZWxsKCkgfHwg
aXNSZW5kZXJUYWJsZUNvbCgpIHx8IGlzVGFibGVDYXB0aW9uKCkgfHwgaXNUYWJsZVJvdygpIHx8
IGlzVGFibGVTZWN0aW9uKCk7IH0KIAorICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRoZSByZW5hbWVk
IHZlcnNpb24gb2YgaXNCbG9ja0Zsb3coKSBhbmQgaXQgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHRo
YXQgZmxleGlibGUgYm94ZXMgYW5kIGdyaWRzIGFyZSBiZWluZyBpbmNsdWRlZC4gTW9zdAorICAg
IC8vIG9mIHRoZSBjdXJyZW50IGNhbGxlcnMgZGlkIG5vdCBpbiBmYWN0IGludGVuZCB0byBpbmNs
dWRlIGZsZXhpYmxlIGJveGVzIGFuZCBncmlkcyAoYnV0IGhhdmUgYmVlbiBmb3IgeWVhcnMpLCBz
byB3ZSB3aWxsIHdhbnQgdG8KKyAgICAvLyBjb252ZXJ0IHRob3NlIGNhbGxlcnMgb3ZlciB0byBp
c1JlbmRlckJsb2NrRmxvdygpIGluc3RlYWQuIFdlJ2xsIGRvIHRoaXMgY2FsbCBzaXRlIGJ5IGNh
bGwgc2l0ZSBpbiBvcmRlciB0byB0cnkgdG8gZmluZCB0aGUKKyAgICAvLyBjb2RlIHRoYXQgaXMg
bWFraW5nIGJhZCBhc3N1bXB0aW9ucyBhbmQgY2hhbmdlIGl0LiBPbmNlIHRoYXQncyBmaW5pc2hl
ZCwgdGhpcyBtZXRob2Qgd2lsbCBqdXN0IGdvIGF3YXkuCisgICAgYm9vbCBpc0Jsb2NrRmxvd0Zs
ZXhCb3hPckdyaWQoKSBjb25zdCB7IHJldHVybiBpc1JlbmRlckJsb2NrRmxvdygpIHx8IGlzRmxl
eGlibGVCb3hJbmNsdWRpbmdEZXByZWNhdGVkKCkgfHwgaXNSZW5kZXJHcmlkKCk7IH0KKwogICAg
IGlubGluZSBib29sIGlzQmVmb3JlQ29udGVudCgpIGNvbnN0OwogICAgIGlubGluZSBib29sIGlz
QWZ0ZXJDb250ZW50KCkgY29uc3Q7CiAgICAgaW5saW5lIGJvb2wgaXNCZWZvcmVPckFmdGVyQ29u
dGVudCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dENoaWxkTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdENoaWxkTGlzdC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnJl
bQogdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6Omluc2VydENoaWxkTm9kZShSZW5kZXJPYmpl
Y3QqIG93bmVyLCBSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkLCBib29sIG5vdGlmeVJlbmRlcmVyKQogewogICAgIEFTU0VSVCghbmV3Q2hpbGQtPnBhcmVu
dCgpKTsKLSAgICBBU1NFUlQoIW93bmVyLT5pc0Jsb2NrRmxvdygpIHx8ICghbmV3Q2hpbGQtPmlz
VGFibGVTZWN0aW9uKCkgJiYgIW5ld0NoaWxkLT5pc1RhYmxlUm93KCkgJiYgIW5ld0NoaWxkLT5p
c1RhYmxlQ2VsbCgpKSk7CisgICAgQVNTRVJUKCFvd25lci0+aXNCbG9ja0Zsb3dGbGV4Qm94T3JH
cmlkKCkgfHwgKCFuZXdDaGlsZC0+aXNUYWJsZVNlY3Rpb24oKSAmJiAhbmV3Q2hpbGQtPmlzVGFi
bGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVDZWxsKCkpKTsKIAogICAgIHdoaWxlIChiZWZv
cmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgJiYgYmVmb3JlQ2hpbGQtPnBhcmVudCgp
ICE9IG93bmVyKQogICAgICAgICBiZWZvcmVDaGlsZCA9IGJlZm9yZUNoaWxkLT5wYXJlbnQoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAkocmV2
aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJvZ3Jlc3Mo
SFRNTEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDog
UmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAgICAgLCBtX3Bvc2l0aW9uKEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OkludmFsaWRQb3NpdGlvbikKICAgICAsIG1fYW5pbWF0aW9uU3RhcnRUaW1lKDApCiAg
ICAgLCBtX2FuaW1hdGlvblJlcGVhdEludGVydmFsKDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDEz
ICsyMiwxMyBAQAogI2RlZmluZSBSZW5kZXJQcm9ncmVzc19oCiAKICNpZiBFTkFCTEUoUFJPR1JF
U1NfRUxFTUVOVCkKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJs
b2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlclByb2dyZXNzIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyUHJvZ3Jlc3MoSFRNTEVsZW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVzcygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJl
Z2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tG
bG93KGVsZW1lbnQpCiAgICAgLCBtX2Zsb3dUaHJlYWQoZmxvd1RocmVhZCkKICAgICAsIG1fcGFy
ZW50TmFtZWRGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzVmFsaWQoZmFsc2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDcgQEAKICNpZm5kZWYgUmVuZGVyUmVnaW9uX2gKICNkZWZpbmUgUmVuZGVyUmVn
aW9uX2gKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tG
bG93LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUmVuZGVyQm94UmVnaW9uSW5mbzsKIGNsYXNz
IFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ7CiAKLWNsYXNz
IFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSZWdpb24g
OiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJS
ZWdpb24oRWxlbWVudCosIFJlbmRlckZsb3dUaHJlYWQqKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OnJlbW92ZUNoaWxkKFJlbgogLy89PT0g
cnVieSBhcyBibG9jayBvYmplY3QgPT09CiAKIFJlbmRlclJ1YnlBc0Jsb2NrOjpSZW5kZXJSdWJ5
QXNCbG9jayhFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKKyAg
ICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5LmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAK
ICNpZm5kZWYgUmVuZGVyUnVieV9oCiAjZGVmaW5lIFJlbmRlclJ1YnlfaAogCi0jaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzAsNyArNzAsNyBAQCBw
cml2YXRlOgogfTsKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBhcyAnZGlzcGxheTpibG9jaycgb3Ig
J2Rpc3BsYXk6aW5saW5lLWJsb2NrJwotY2xhc3MgUmVuZGVyUnVieUFzQmxvY2sgRklOQUwgOiBw
dWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVieUFzQmxvY2sgRklOQUwgOiBwdWJs
aWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBSZW5kZXJSdWJ5QXNCbG9jayhFbGVt
ZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUFzQmxvY2soKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZW5kZXJSdWJ5QmFzZTo6UmVuZGVyUnVieUJhc2UoKQotICAgIDogUmVuZGVy
QmxvY2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQogewogICAgIHNldElubGluZShmYWxz
ZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAko
cmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlC
YXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQAogI2lmbmRlZiBSZW5kZXJS
dWJ5QmFzZV9oCiAjZGVmaW5lIFJlbmRlclJ1YnlCYXNlX2gKIAotI2luY2x1ZGUgIlJlbmRlckJs
b2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAotY2xhc3MgUmVuZGVyUnVieUJhc2UgRklOQUwg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVieUJhc2UgRklOQUwgOiBwdWJs
aWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5QmFz
ZSgpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJ1YnlSdW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclJ1YnlSdW46OlJlbmRlclJ1
YnlSdW4oKQotICAgIDogUmVuZGVyQmxvY2soMCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdygwKQog
ewogICAgIHNldFJlcGxhY2VkKHRydWUpOwogICAgIHNldElubGluZSh0cnVlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAkocmV2aXNpb24gMTU1MTk0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRlZiBSZW5kZXJSdWJ5UnVuX2gKICNkZWZpbmUgUmVu
ZGVyUnVieVJ1bl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDcgKzQxLDcgQEAg
Y2xhc3MgUmVuZGVyUnVieVRleHQ7CiAvLyBSZW5kZXJSdWJ5UnVuIGFyZSAnaW5saW5lLWJsb2Nr
L3RhYmxlJyBsaWtlIG9iamVjdHMsYW5kIHdyYXAgYSBzaW5nbGUgcGFpcmluZyBvZiBhIHJ1Ynkg
YmFzZSB3aXRoIGl0cyBydWJ5IHRleHQocykuCiAvLyBTZWUgUmVuZGVyUnVieS5oIGZvciBmdXJ0
aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1Y3R1cmUKIAotY2xhc3MgUmVuZGVyUnVieVJ1biBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSdWJ5UnVuIEZJTkFMIDogcHVi
bGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieVJ1
bigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5j
cHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyUnVieVRleHQ6OlJlbmRlclJ1
YnlUZXh0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAg
IDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTEgKzMxLDExIEBACiAjaWZuZGVmIFJlbmRlclJ1YnlUZXh0X2gKICNkZWZpbmUgUmVuZGVyUnVi
eVRleHRfaAogCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJSdWJ5VGV4dCBG
SU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIFJlbmRlclJ1YnlUZXh0KEVs
ZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSdWJ5VGV4dCgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAJKHJldmlzaW9uIDE1
NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFJlbmRlclRhYmxlQ2FwdGlvbjo6UmVuZGVyVGFibGVDYXB0aW9uKEVsZW1lbnQqIGVsZW1lbnQp
Ci0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1l
bnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNh
cHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDYXB0aW9uLmgJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNhcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTMgKzIwLDEzIEBA
CiAjaWZuZGVmIFJlbmRlclRhYmxlQ2FwdGlvbl9oCiAjZGVmaW5lIFJlbmRlclRhYmxlQ2FwdGlv
bl9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxv
dy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclRhYmxlOwogCi1jbGFz
cyBSZW5kZXJUYWJsZUNhcHRpb24gRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3Mg
UmVuZGVyVGFibGVDYXB0aW9uIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDYXB0aW9uKEVsZW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5SZW5kZXJUYWJsZUNhcHRpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiAxNTUxOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJlbmRlckJs
b2NrIHsKK3N0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJlbmRlckJs
b2NrRmxvdyB7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzOwogICAgIGludCBwYWRkaW5nc1syXTsK
IH07CkBAIC01Nyw3ICs1Nyw3IEBAIENPTVBJTEVfQVNTRVJUKHNpemVvZihSZW5kZXJUYWJsZUNl
bGwpID0KIENPTVBJTEVfQVNTRVJUKHNpemVvZihDb2xsYXBzZWRCb3JkZXJWYWx1ZSkgPT0gOCwg
Q29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21hbGwpOwogCiBSZW5kZXJUYWJsZUNl
bGw6OlJlbmRlclRhYmxlQ2VsbChFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyQmxvY2so
ZWxlbWVudCkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50KQogICAgICwgbV9jb2x1bW4o
dW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdpZHRoQ2hhbmdlZChmYWxzZSkKICAgICAs
IG1faW50cmluc2ljUGFkZGluZ0JlZm9yZSgwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsy
NSw3IEBACiAjaWZuZGVmIFJlbmRlclRhYmxlQ2VsbF9oCiAjZGVmaW5lIFJlbmRlclRhYmxlQ2Vs
bF9oCiAKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJs
ZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlU2VjdGlvbi5oIgogCkBAIC0zNSw3ICszNiw3
IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5JbmRleCA9IDAKIAogZW51bSBJbmNs
dWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJvcmRlckNvbG9yLCBJbmNsdWRlQm9y
ZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVuZGVyVGFibGVDZWxsIEZJTkFMIDogcHVibGljIFJlbmRl
ckJsb2NrIHsKK2NsYXNzIFJlbmRlclRhYmxlQ2VsbCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9j
a0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlQ2VsbChFbGVtZW50Kik7
CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyVGV4dENvbnRy
b2w6OlJlbmRlclRleHRDb250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9j
ayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiAgICAgQVNTRVJU
KGlzSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoZWxlbWVudCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHJldmlzaW9uIDE1NTE5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiwxNCArMjIsMTQgQEAKICNpZm5kZWYgUmVuZGVyVGV4dENvbnRyb2xf
aAogI2RlZmluZSBSZW5kZXJUZXh0Q29udHJvbF9oCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxl
Qm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclRleHRDb250cm9sIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9sIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2woKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuaAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOSArMTA4LDkg
QEAgdm9pZCB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShjb25zdAogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9j
ayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2sgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0Q29u
dHJvbElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBSZW5kZXJCbG9jayhlbGVtZW50KSB7
IH0KKyAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCogZWxlbWVudCkgOiBS
ZW5kZXJCbG9ja0Zsb3coZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGhhc0xpbmVJZkVtcHR5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5jcHAJKHJldmlzaW9uIDE1
NTE5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCiAjaW5jbHVkZSAiUmVuZGVyVGV4dFRyYWNrQ3VlLmgiCisjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgogCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5o
IgpAQCAtMzcsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJUZXh0VHJh
Y2tDdWU6OlJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gqIGVsZW1lbnQpCi0gICAg
OiBSZW5kZXJCbG9jayhlbGVtZW50KQorICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiAg
ICAgLCBtX2N1ZShlbGVtZW50LT5nZXRDdWUoKSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmgJKHJldmlzaW9uIDE1NTE5NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJl
bmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJl
bmRlckJveDsKIGNsYXNzIFRleHRUcmFja0N1ZUJveDsKIAotY2xhc3MgUmVuZGVyVGV4dFRyYWNr
Q3VlIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRUcmFja0N1
ZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgogICAgIGV4cGxpY2l0
IFJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gqKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3
ICs1Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclZpZXc6OlJlbmRlclZpZXco
RG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogUmVuZGVyQmxvY2soZG9jdW1lbnQpCisgICAgOiBS
ZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQpCiAgICAgLCBtX2ZyYW1lVmlldygqZG9jdW1lbnQtPnZp
ZXcoKSkKICAgICAsIG1fc2VsZWN0aW9uU3RhcnQoMCkKICAgICAsIG1fc2VsZWN0aW9uRW5kKDAp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDE1NTE5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJM
YXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0QXJlbmEuaCIKLSNpbmNsdWRlICJS
ZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDMsNyBAQCBjbGFz
cyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CiBjbGFzcyBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0
OwogI2VuZGlmCiAKLWNsYXNzIFJlbmRlclZpZXcgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sg
eworY2xhc3MgUmVuZGVyVmlldyBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFJlbmRlclZpZXcoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5S
ZW5kZXJWaWV3KCk7CkBAIC0yNTMsNyArMjUzLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAg
IC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBi
ZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAgICAgICAgIGlmICghZG9pbmdGdWxs
UmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVuZGVyZXItPmhh
c0NvbHVtbnMoKSB8fCByZW5kZXJlci0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpCi0gICAg
ICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUo
KS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVy
ZXItPmlzQmxvY2tGbG93KCkpCisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3Jp
ZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5p
dGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93RmxleEJveE9yR3JpZCgpKQog
I2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRl
ckJsb2NrKCkgJiYgdG9SZW5kZXJCbG9jayhyZW5kZXJlciktPnNoYXBlSW5zaWRlSW5mbygpKQog
ICAgICAgICAgICAgfHwgKG1fbGF5b3V0U3RhdGUtPnNoYXBlSW5zaWRlSW5mbygpICYmIHJlbmRl
cmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgIXRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT5hbGxvd3NT
aGFwZUluc2lkZUluZm9TaGFyaW5nKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyaW5nQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDE1NTE5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5jcHAiCiAjaW5jbHVkZSAiUmVu
ZGVyQlIuY3BwIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmNwcCIKKyNpbmNsdWRlICJSZW5kZXJC
bG9ja0Zsb3cuY3BwIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrTGluZUxheW91dC5jcHAiCiAjaW5j
bHVkZSAiUmVuZGVyQm94LmNwcCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTE9wZXJhdG9yLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJG
b250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzA3LDcgKzMwOCw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJNYXRoTUxPcGVyYXRv
cjo6Y3JlYXQKICAgICBhZGRDaGlsZChjb250YWluZXIpOwogICAgIFJlbmRlckJsb2NrKiBwYXJl
bnQgPSBjb250YWluZXI7CiAgICAgaWYgKGNoYXJSZWxhdGl2ZSkgewotICAgICAgICBSZW5kZXJC
bG9jayogY2hhckJsb2NrID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9jayhub2RlKCkp
OworICAgICAgICBSZW5kZXJCbG9jayogY2hhckJsb2NrID0gbmV3IChyZW5kZXJBcmVuYSgpKSBS
ZW5kZXJCbG9ja0Zsb3cobm9kZSgpKTsKICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBjaGFy
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CiAgICAgICAgIGNoYXJTdHlsZS0+aW5oZXJp
dEZyb20oY29udGFpbmVyLT5zdHlsZSgpKTsKICAgICAgICAgY2hhclN0eWxlLT5zZXREaXNwbGF5
KElOTElORV9CTE9DSyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0Jsb2NrLmNwcAkocmV2aXNpb24gMTU1MTk0KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcg
KzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZHQmxvY2s6OlJlbmRlclNW
R0Jsb2NrKFNWR0VsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBSZW5kZXJCbG9jayhlbGVtZW50KQor
ICAgIDogUmVuZGVyQmxvY2tGbG93KGVsZW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgJKHJldmlzaW9uIDE1NTE5NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsMTQgKzIxLDE0IEBACiAjZGVmaW5lIFJlbmRlclNWR0Jsb2NrX2gKIAog
I2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5k
ZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRWxlbWVudDsKIAotY2xhc3MgUmVuZGVyU1ZHQmxvY2sg
OiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyU1ZHQmxvY2sgOiBwdWJsaWMgUmVu
ZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTVkdCbG9jayhTVkdF
bGVtZW50Kik7CiAK
</data>
<flag name="review"
          id="232866"
          type_id="1"
          status="+"
          setter="bdakin"
    />
    <flag name="commit-queue"
          id="232873"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>