<?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>184188</bug_id>
          
          <creation_ts>2018-03-30 11:32:29 -0700</creation_ts>
          <short_desc>[Extra zoom mode] Replace video with a placeholder image during fullscreen transition</short_desc>
          <delta_ts>2018-04-05 21:06:38 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1410679</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-03-30 11:32:29 -0700</bug_when>
    <thetext>Replace video with a placeholder image during fullscreen transition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410680</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-03-30 11:32:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/38940307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410689</commentid>
    <comment_count>2</comment_count>
      <attachid>336876</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-03-30 11:52:06 -0700</bug_when>
    <thetext>Created attachment 336876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410690</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-30 11:53:47 -0700</bug_when>
    <thetext>Attachment 336876 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 26 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>1410710</commentid>
    <comment_count>4</comment_count>
      <attachid>336882</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-03-30 13:03:38 -0700</bug_when>
    <thetext>Created attachment 336882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410714</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-30 13:06:43 -0700</bug_when>
    <thetext>Attachment 336882 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1410718</commentid>
    <comment_count>6</comment_count>
      <attachid>336885</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-03-30 13:24:19 -0700</bug_when>
    <thetext>Created attachment 336885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410719</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-30 13:25:45 -0700</bug_when>
    <thetext>Attachment 336885 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1410865</commentid>
    <comment_count>8</comment_count>
      <attachid>336885</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-31 10:58:49 -0700</bug_when>
    <thetext>Comment on attachment 336885
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6028
&gt; +    if (m_player)

Is there a case where m_player is nullified before exiting full screen?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:265
&gt; +    enum UpdateType { UpdateSynchronously, UpdateAsynchronously };

Can it be an enum class?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:1175
&gt;  void MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer(PlatformLayer* videoFullscreenLayer, WTF::Function&lt;void()&gt;&amp;&amp; completionHandler)

WTF:: is no longer needed.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:1069
&gt;  void MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer(PlatformLayer *videoFullscreenLayer, WTF::Function&lt;void()&gt;&amp;&amp; completionHandler)

Ditto here.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:77
&gt; +    [m_videoInlineLayer setContentsGravity:kCAGravityResizeAspect];

Not sure why this is needed now, maybe a comment in changelog?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:91
&gt; +        [m_videoInlineLayer setContents:(id)image.get()];

This is ObjC so if m_videoInlinLayer is null, would this line be a no op, in which case we can remove if(m_videoInlineLayer) ?

&gt; Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:1112
&gt; +    if (m_waitingForPreparedToExit) {

early return?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:287
&gt; +    WebThreadRun([protectedThis = makeRefPtr(this), this] () mutable {

makeRef(*this) is usually what we use.
Is it supposed to work in WK1?

&gt; Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm:443
&gt; +    dispatch_async(dispatch_get_main_queue(), [protectedThis = makeRefPtr(this), videoElement, contextId] {

makeRef(*this) maybe and WTFMove(videoElement) to reduce count churn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411004</commentid>
    <comment_count>9</comment_count>
      <attachid>336971</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-04-01 22:26:28 -0700</bug_when>
    <thetext>Created attachment 336971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411005</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-01 22:27:24 -0700</bug_when>
    <thetext>Attachment 336971 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1411006</commentid>
    <comment_count>11</comment_count>
      <attachid>336971</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-01 22:57:50 -0700</bug_when>
    <thetext>Comment on attachment 336971
Patch

Rejecting attachment 336971 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
Kit/Source/WebKit/UIProcess/WebContextMenuListenerProxy.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebContextMenuListenerProxy.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/VideoFullscreenManager.o WebProcess/cocoa/VideoFullscreenManager.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/7172584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411044</commentid>
    <comment_count>12</comment_count>
      <attachid>336978</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-04-02 04:33:02 -0700</bug_when>
    <thetext>Created attachment 336978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411046</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-02 04:34:35 -0700</bug_when>
    <thetext>Attachment 336978 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1411047</commentid>
    <comment_count>14</comment_count>
      <attachid>336978</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-02 05:03:53 -0700</bug_when>
    <thetext>Comment on attachment 336978
Patch

Rejecting attachment 336978 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
/Data/EWS/WebKit/Source/WebKit/Shared/WebContextMenuItemData.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebContextMenuItemData.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/VideoFullscreenManager.o WebProcess/cocoa/VideoFullscreenManager.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/7174886</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411062</commentid>
    <comment_count>15</comment_count>
      <attachid>336980</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-04-02 06:32:52 -0700</bug_when>
    <thetext>Created attachment 336980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411063</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-02 06:34:56 -0700</bug_when>
    <thetext>Attachment 336980 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1411068</commentid>
    <comment_count>17</comment_count>
      <attachid>336980</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-02 07:03:13 -0700</bug_when>
    <thetext>Comment on attachment 336980
Patch

Rejecting attachment 336980 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
/Data/EWS/WebKit/Source/WebKit/Shared/WebContextMenuItemData.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebContextMenuItemData.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/VideoFullscreenManager.o WebProcess/cocoa/VideoFullscreenManager.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/7175981</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411225</commentid>
    <comment_count>18</comment_count>
      <attachid>337021</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-04-02 13:20:56 -0700</bug_when>
    <thetext>Created attachment 337021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411228</commentid>
    <comment_count>19</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-02 13:22:53 -0700</bug_when>
    <thetext>Attachment 337021 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:266:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 27 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>1411324</commentid>
    <comment_count>20</comment_count>
      <attachid>337021</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-02 17:50:34 -0700</bug_when>
    <thetext>Comment on attachment 337021
Patch

Clearing flags on attachment: 337021

Committed r230194: &lt;https://trac.webkit.org/changeset/230194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411325</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-02 17:50:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412295</commentid>
    <comment_count>22</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-04-05 21:02:47 -0700</bug_when>
    <thetext>This seems to have broken the !HAVE(AVFOUNDATION_VIDEO_OUTPUT) build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412296</commentid>
    <comment_count>23</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-04-05 21:06:38 -0700</bug_when>
    <thetext>(In reply to mitz from comment #22)
&gt; This seems to have broken the !HAVE(AVFOUNDATION_VIDEO_OUTPUT) build.

Bug 184309, already fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336876</attachid>
            <date>2018-03-30 11:52:06 -0700</date>
            <delta_ts>2018-03-30 13:03:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180330115205.patch</filename>
            <type>text/plain</type>
            <size>35863</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjYyNTNjYjFkYmUwN2YxNTU4MjFkNDAwYTg3ZDE1
ZjljNTBmZDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dXBkYXRlVmlkZW9GdWxsc2Ny
ZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnVwZGF0ZVZpZGVv
RnVsbHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVySXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb0Z1
bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4
ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRFeGl0RnVs
bHNjcmVlbldpdGhSZWFzb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKwogMjAxOC0wMy0zMCAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlc0ZvckVuY29kaW5nKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTI5YWJiMTk1YzNjMTAyMzAzZDk5YzFmOWRlNDYzNmRhYWE4MWE0MS4uOGE2YzUwNzMw
NTNhZDg1NzE3MmY3NDE0YjYyNzVlZTJiNzliYmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxOC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBSZXBsYWNlIHZpZGVvIHdpdGggYSBwbGFjZWhvbGRl
ciBpbWFnZSBkdXJpbmcgZnVsbHNjcmVlbiB0cmFuc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxODgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM4OTQwMzA3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0
Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4p
OgorCiAyMDE4LTAzLTMwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbWVzc2FnZXMucHkgY29kZWdlbiBmb3IgU3RyaW5nLCBmaXggdGVzdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEwYTA5MjU4NzY1M2Vh
NzYwOWNiNDQ1NTMzZjlhY2ExMmRlMmEwOTguLjQyNjEwNTJlMzBhMTdlNGRlNjE3ODE5MzM2YTM5
NjA4NjgxZGFkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNjAyMSw2ICs2MDIxLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2FpdEZvclByZXBh
cmVkRm9ySW5saW5lVGhlbihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wCiAgICAgbV9wcmVw
YXJlZEZvcklubGluZUNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cik7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKCkKK3sK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT51cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSgpOworfQorCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmlzVmlkZW9MYXllcklubGluZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCmluZGV4IDQ3ODI1NGY4NTk3ODgzMTQyMjlkNzE2OGNkNjE3YjkyOWI2ZjIyMWEuLmEz
MjQ1ODAzNjAwYjM3NzFiOWNlNzI2MmI3Y2M4ZjlkMzMwODExM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01NTQsNiArNTU0LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNTdXNwZW5kZWQoKSBjb25zdCBmaW5hbDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaAppbmRleCA1YjA0ZmQzMzEwYWVmMDUxMGFl
MmI0MmY0NDQzYmY0NzE5MjQ2MDVlLi40ZWIwNTgwYzk2MTM5ZGQ0N2U3NTgxMmU2MTliYzkwNWQ2
Yjc2ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxFeGl0RnVs
bHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQuaAppbmRleCA2MDczNzQ4NmE0NGZlOTk1NGQ3NWNhNWY5MWE5Y2U2MmM0
MTQ4OTMxLi44MWY4NGY1MDFkZmRlODc0MjQ1YmVjYzQzMGRhMjFlOGU0MWZiNjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqKTsK
ICAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZGVvRWxlbWVudC5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyID0gW10geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxFeGl0
RnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2FpdEZvclByZXBhcmVkRm9y
SW5saW5lVGhlbihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IFtd
IHsgfSk7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBoYW5kbGVFdmVudChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6RXZlbnQmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggMjJlZDIxMzU4Y2U2M2ZlM2VmYmY5
MGQ4NTBjZjRlMTVjOTJmNjQ1Mi4uZWJjY2E3NDg0MjVkYjY1ODVlNjNiODhmYjQ1ZDE1OWNhZTUx
NjJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTEwMCw2ICsxMDAs
MTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6dXBkYXRlRm9yRXZl
bnROYW1lKGNvbnN0IFdURjo6QXRvbWljU3RyaW4KICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYg
KG1fdmlkZW9FbGVtZW50KQorICAgICAgICBtX3ZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2Ny
ZWVuKCk7CisKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0
VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9MYXllciwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgPT0gdmlkZW9MYXllcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQzZGQxMGYwZWZmODczODhiNjFiYThl
MGQxOTY2ODU5Zjc1MzUzZGYuLjhhNDY4NmFlMjY2YTY3ZWJjMjFkMDg4MGQzMDZmODMyNjhlNmI1
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTcwNSw2ICs3MDUsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIsIFdURjo6RnVuY3Rpb248dm8KICAgICBt
X3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKGxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnVwZGF0ZVZpZGVvRnVsbHNjcmVl
bklubGluZUltYWdlKCkKK3sKKyAgICBtX3ByaXZhdGUtPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oCmluZGV4IDdmYjE4NDg1NGVjODg3YjVkN2JmOTdhNTc2MTZmZDY0MjQ4YWQ5NDYu
LmM2NGVkOTE3NzIwN2ZiNDViYzhiYjFlNGEwYjQ0YmY3ZTM1NzUwYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzM1LDYgKzMzNSw3
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIgPSBbXSB7IH0pOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRS
ZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCk7CiAgICAg
dXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5OwogICAgIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2Ny
ZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZDNmMjUwMTc3MDQ4
NWMwZjhjMTUxYmQ3NDY2ZWExMTc5MzVlMjcwZC4uZjY2MDM2MTEwNzQ5MTY5NWU3Mzk1ZWUyZmU5
YzE0MjlhMWY1MzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogCiAj
aWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1
bGxzY3JlZW5JbmxpbmVJbWFnZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShGbG9hdFJlY3QpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKaW5kZXggYWMzOWQ0ZjRhNWI5ZTkz
ZDYzM2UxNjlkZjRkZWE0YjkwMjY3NmQ1ZC4uNjYyYTk0YzllMzA2OGVjM2IyOThhN2I0ODNmOGE2
MWI1ZjUzY2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDcgKzQ2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciosIEludFNpemUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYjhhMThhNzcwZjE5M2Q3NWQ0MTcxZGVhZDNk
N2YwYmFjMThiNjUxMC4uMzFkN2M0YjNmNWVmMjM1NmViMjVkYzU5ZjUyMjczODIzOWUzYzIwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTg2LDYgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJy
aWRlOworICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSBmaW5hbDsK
ICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZp
dHkpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShNZWRpYVBsYXll
cjo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7CkBAIC0yNjEsMTAgKzI2MiwxMiBAQCBw
cml2YXRlOgogICAgIHZvaWQgcGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9WSURFT19PVVRQ
VVQpCisgICAgZW51bSBVcGRhdGVUeXBlIHsgVXBkYXRlU3luY2hyb25vdXNseSwgVXBkYXRlQXN5
bmNocm9ub3VzbHkgfTsKKyAgICB2b2lkIHVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUg
PSBVcGRhdGVBc3luY2hyb25vdXNseSk7CisKICAgICB2b2lkIGNyZWF0ZVZpZGVvT3V0cHV0KCk7
CiAgICAgdm9pZCBkZXN0cm95VmlkZW9PdXRwdXQoKTsKICAgICBib29sIHVwZGF0ZUxhc3RQaXhl
bEJ1ZmZlcigpOwotICAgIHZvaWQgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgYm9vbCB2aWRlb091
dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBOYXRpdmVJbWFnZVB0ciBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQppbmRleCA1YzJiMmZiM2U5NGYzMzk4ZDJmMjMzNWE1NTVmOTg3YWE5ZTVkYzIwLi44ZjBmMTM2
NGMwM2M5MjMzM2U1NzdiNzA3MmFlYjczNDRkYmNmMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KQEAgLTEwNzksNiArMTA3OSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUFWUGxheWVySXRlbSgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CisjZW5kaWYKKwog
ICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIH0KIApAQCAtMTE2Miw5ICsxMTY2LDE2IEBA
IFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ci0+dmlkZW9JbmxpbmVMYXllcigpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKK3sKKyAgICB1
cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CisgICAgbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUlt
YWdlKG1fbGFzdEltYWdlKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxz
Y3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgdXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9ub3VzbHkpOworICAg
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2
aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fbGFzdElt
YWdlKTsKICAgICB1cGRhdGVEaXNhYmxlRXh0ZXJuYWxQbGF5YmFjaygpOwogfQogCkBAIC0yMjMx
LDYgKzIyNDIsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRl
c3Ryb3lWaWRlb091dHB1dCgpCiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6dXBkYXRlTGFzdFBpeGVsQnVmZmVyKCkKIHsKKyAgICBpZiAoIW1fYXZQbGF5ZXJJdGVt
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCiAgICAg
ICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwpAQCAt
MjI1OSw5ICsyMjczLDE1IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6dmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpCiAgICAgcmV0dXJuIFttX3ZpZGVvT3V0
cHV0IGhhc05ld1BpeGVsQnVmZmVyRm9ySXRlbVRpbWU6W21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRU
aW1lXV07CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBk
YXRlTGFzdEltYWdlKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
dXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGUgdHlwZSkKIHsKICNpZiBIQVZFKENPUkVfVklERU8p
CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHR5
cGUgPT0gVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSAmJiAhbV9sYXN0SW1hZ2UgJiYg
IXZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKSkKKyAgICAgICAgd2FpdEZvclZpZGVvT3V0
cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOworCiAgICAgLy8gQ2FsbHMgdG8gY29weVBpeGVsQnVm
ZmVyRm9ySXRlbVRpbWU6aXRlbVRpbWVGb3JEaXNwbGF5OiBtYXkgcmV0dXJuIG5pbCBpZiB0aGUg
cGl4ZWwgYnVmZmVyCiAgICAgLy8gZm9yIHRoZSByZXF1ZXN0ZWQgdGltZSBoYXMgYWxyZWFkeSBi
ZWVuIHJldHJpZXZlZC4gSW4gdGhpcyBjYXNlLCB0aGUgbGFzdCB2YWxpZCBpbWFnZSAoaWYgYW55
KQogICAgIC8vIHNob3VsZCBiZSBkaXNwbGF5ZWQuCkBAIC0yMjkxLDExICsyMzExLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoKQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVv
T3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBvdXRwdXRS
ZWN0KQogewotICAgIGlmIChtX3ZpZGVvT3V0cHV0ICYmICFtX2xhc3RJbWFnZSAmJiAhdmlkZW9P
dXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpKQotICAgICAgICB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRp
YURhdGFXaWxsQ2hhbmdlKCk7Ci0KLSAgICB1cGRhdGVMYXN0SW1hZ2UoKTsKLQorICAgIHVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKICAgICBpZiAoIW1f
bGFzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpp
bmRleCBiNGJjOTQwYTE5NzhlMzhkYTM4NTBjZDk1NTA1MzdhYjc4MGRlMTk0Li41OTc5NzIyYWM1
YmZmZTM4NmY1NDgwYWFmYTFhNjZkMGMyYzQ0MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCkBAIC0xMDY4LDcgKzEwNjgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgdXBkYXRlTGFzdEltYWdlKCk7CisgICAgbV92aWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVl
bkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOwogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4
IGQ3YWYzYTM0NDA5MWY2N2QyMTUxZWE3YmE1NGVhY2M2YTM0YzhlNjMuLjU2NDdkYzIzYzc2MWEz
ZGI0ZmYyNTgxZjVmMDdjNmExNjIyMzk2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
QEAgLTg5OSw3ICs4OTksOCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkgY29uc3QKIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRm
b3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpOworICAgIG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRl
b0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1faW1hZ2VQYWlu
dGVyLmNnSW1hZ2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2Jq
Qy5oCmluZGV4IDRkN2Y0NjdjNGU4ZmNkMjY1ZGUzOTdjMTVjYmRkMzI0ZjNmNDAxZTIuLmFhMmE1
N2YxZmIyNDIzOTJiMDVjMTM1MmUxNmZlYzA0MzU5MWI2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgKQEAg
LTQzLDcgKzQzLDggQEAgcHVibGljOgogICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVl
bkxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQo
KTsgfQogICAgIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7IH0KICAgICB2b2lkIHNldFZpZGVvTGF5ZXIo
UGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKSBmaW5hbDsKLSAgICB2b2lkIHNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlVmlkZW9G
dWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwogICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsKICAgICB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCmluZGV4IDJjYmZlZWYyYzk0
Y2I2ZDM3Y2RiOWY3YTY0MGNmODYzN2E1NmY5YzIuLmM4NjEzM2E0ZGU0ODVkNTFjYzAwZmNkODM5
OGM5NjkwZDA4ZTc4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNzQsNiArNzQsOCBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1M
YXllciAqdmlkZW9MYXllciwgSQogICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0TmFtZTpAIldl
YlZpZGVvQ29udGFpbmVyTGF5ZXIiXTsKICNlbmRpZgogICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIg
c2V0RnJhbWU6bV92aWRlb0lubGluZUZyYW1lXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNl
dENvbnRlbnRzR3Jhdml0eTprQ0FHcmF2aXR5UmVzaXplQXNwZWN0XTsKKwogICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyKSB7CiAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksIG1fdmlkZW9GdWxs
c2NyZWVuRnJhbWUuaGVpZ2h0KCkpXTsKICAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
aW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CkBAIC04Myw3ICs4
NSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5
ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9MYXllciwgSQogICAgIH0KIH0KIAotdm9pZCBWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlKQorewor
ICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIg
c2V0Q29udGVudHM6KGlkKWltYWdlLmdldCgpXTsKK30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2
aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIsIE5hdGl2ZUltYWdlUHRyIGN1cnJlbnRJbWFnZSkKIHsKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5MYXllciA9PSB2aWRlb0Z1bGxzY3JlZW5MYXllcikgewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwpAQCAtOTgsNiArMTA2LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWQK
ICAgICBpZiAobV92aWRlb0xheWVyKSB7CiAgICAgICAgIENBQ29udGV4dCAqb2xkQ29udGV4dCA9
IFttX3ZpZGVvTGF5ZXIgY29udGV4dF07CiAKKyAgICAgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXll
cikKKyAgICAgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KGlkKWN1cnJl
bnRJbWFnZS5nZXQoKV07CisKICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsK
ICAgICAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2VydFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwogICAgICAgICAgICAgW21fdmlkZW9MYXllciBzZXRG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lkdGgoKSwgbV92
aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRl
eCBhYzE2Y2Q2OTY5ZThmNjQ2OTFiZjgyYjZiZmJlODY4ODVlOTM2N2MxLi5iNDdkZWRhZmNlNjY1
MGE1ODg5NjQ2ZGFhMTRmNGI2MmEzNzY4NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAt
ODQsNiArODQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRl
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVu
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9v
bCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0KTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKGJv
b2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0
JiwgYm9vbCB2aXNpYmxlKTsKQEAgLTIyNyw2ICsyMjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBtX2V4aXRDb21wbGV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlclJlcXVlc3RlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkFmdGVyRW50ZXJp
bmdGb3JlZ3JvdW5kIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0ZvclByZXBhcmVkVG9F
eGl0IHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4
IDVlOTljMWYzYjUyMDZkYWU5NGYxZGI0OTVkMTkxY2U2NGIzZDQyYTguLjg4ZTM0ZWUyMTJhMWYy
N2ZmNTViMTExMzA5Yjc1YzRhN2U0NTM5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAg
LTYwLDcgKzYwLDExIEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJW
aWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3Vu
ZGF0aW9uLCBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBOU1N0cmluZyAqKQogU09G
VF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFz
cGVjdEZpbGwsIE5TU3RyaW5nICopCiAKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKEFWS2l0KQorI2Vsc2UKIFNPRlRfTElO
S19GUkFNRVdPUktfT1BUSU9OQUwoQVZLaXQpCisjZW5kaWYKIFNPRlRfTElOS19DTEFTU19PUFRJ
T05BTChBVktpdCwgQVZQaWN0dXJlSW5QaWN0dXJlQ29udHJvbGxlcikKIFNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVktpdCwgQVZQbGF5ZXJWaWV3Q29udHJvbGxlcikKIFNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVktpdCwgX19BVlBsYXllckxheWVyVmlldykKQEAgLTk3OSw3ICs5ODMsNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25z
dCBJbnRSZWN0JiBmaW5hbFJlY3QpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAK
KwogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4
aXRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwogICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNl
dFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAgICAgCkBAIC0xMTAzLDYgKzExMDcsMTQgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKGJvb2wgdmlzaWJsZSwgY29uc3QKICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYgKG1f
d2FpdGluZ0ZvclByZXBhcmVkVG9FeGl0KSB7CisgICAgICAgIG1fd2FpdGluZ0ZvclByZXBhcmVk
VG9FeGl0ID0gZmFsc2U7CisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RG
dWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVO
b25lLCB0cnVlKTsKKyAgICB9Cit9CisKIGJvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5QaWN0dXJlKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlpbmddICYmIG1fY3VycmVudE1v
ZGUuaXNGdWxsc2NyZWVuKCkgJiYgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CkBAIC0xMjUx
LDEzICsxMjYzLDIxIEBAIGJvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNob3Vs
ZEV4aXRGdWxsc2NyZWVuV2l0aFJlYXNvbihWaWRlb0Z1bGxzY3JlCiAgICAgaWYgKHBsYXliYWNr
U2Vzc2lvbk1vZGVsKCkgJiYgKHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNvbjo6RG9uZUJ1
dHRvblRhcHBlZCB8fCByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OlJlbW90ZUNvbnRy
b2xTdG9wRXZlbnRSZWNlaXZlZCkpCiAgICAgICAgIHBsYXliYWNrU2Vzc2lvbk1vZGVsKCktPnBh
dXNlKCk7CiAKLSAgICBCT09MIGZpbmlzaGVkID0gcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVh
c29uOjpEb25lQnV0dG9uVGFwcGVkIHx8IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNvbjo6
UGluY2hHZXN0dXJlSGFuZGxlZDsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0
RnVsbHNjcmVlbk1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSwgZmluaXNoZWQpOwotCiAgICAgaWYgKCFtX3dhdGNoZG9nVGltZXIuaXNBY3RpdmUoKSAm
JiAhaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcpCiAgICAgICAgIG1fd2F0Y2hkb2dUaW1lci5z
dGFydE9uZVNob3QoZGVmYXVsdFdhdGNoZG9nVGltZXJJbnRlcnZhbCk7CiAKLSAgICByZXR1cm4g
ZmFsc2U7CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBpZiAobV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIpIHsKKyAgICAgICAgbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSB0
cnVlOworICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+d2lsbEV4aXRGdWxsc2Ny
ZWVuKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIEJPT0wg
ZmluaXNoZWQgPSByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBw
ZWQgfHwgcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVk
OworICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7CisK
K3JldHVybiBmYWxzZTsKIH0KIAogI2Vsc2UgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAt
MTM5MCw2ICsxNDEwLDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnBy
ZXBhcmVkVG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIGNvbnN0CiAgICAgfQogfQogCit2
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3Jl
ZW4oKQoreworfQorCiBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRv
bWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiAobV9zdGFuZGJ5IHx8IG1fY3VycmVu
dE1vZGUuaXNGdWxsc2NyZWVuKCkpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggMDQwMmZlY2U2OTY5YzM4MmJhZmQ3NWQ5
ZmNjZDMyZWIzZTA3NTAwNi4uMTU1NDUyNTRjNjY5YmE1YTkzOTEyZmZkNjcyY2NmYmViYmRhMWRh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMjIsMTQgKzEyMiwxNSBA
QCBwcml2YXRlOgogICAgIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0KCkgeyB9CiAK
ICAgICAvLyBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZvaWQgcmVxdWVzdFVw
ZGF0ZUlubGluZVJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRM
YXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBkaWRFeGl0RnVsbHNj
cmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZv
aWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgZmluYWwgeyB9CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxz
Y3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAg
dm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCkgZmluYWw7CiAKICAgICAvLyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENs
aWVudAogICAgIHZvaWQgaGFzVmlkZW9DaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwpAQCAtMjc5LDYg
KzI4MCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRTZXR1
cEZ1bGxzY3JlZW4oKQogI2VuZGlmCiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckNvbnRleHQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQo
KSk7CisjaWYgIShQTEFURk9STShJT1MpICYmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkpCisgICAg
V2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKCkg
bXV0YWJsZSB7CisgICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT53aWxsRXhpdEZ1bGxzY3JlZW4o
KTsKKyAgICB9KTsKKyNlbmRpZgorCit9CisKIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckNvbnRleHQ6OmRpZEV4aXRGdWxsc2NyZWVuKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMmI2MzYzMmExZjNjNTdhZTBjOGZkZGE2NWY4
YjQyM2VmMzJmNmYzMC4uYjY2ZWM3Zjg5ODUyNDI0N2JmNDdjZGIyM2IwNTkxYzY2MjJjNjE2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTkxLDE0ICs5MSwxNSBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICAvLyBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZvaWQgcmVx
dWVzdFVwZGF0ZUlubGluZVJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0Nv
bnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGl0RnVs
bHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVl
c3RWaWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50
TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIGZpbmFsOworICAg
IHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxz
Y3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAg
dm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqIG1fbWFuYWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0PiBtX3Bs
YXliYWNrU2Vzc2lvbk1vZGVsOwpAQCAtMTUwLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmlu
YWxSZWN0KTsKICAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBi
b29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVw
YXJlZFRvRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRGdWxs
c2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAjZW5kaWYKQEAg
LTE2MCw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExh
eWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXll
cih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2
NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2EwYzc3ZGIzNDA2ZDJkMGRiZjkw
NTdiYmNlODg5YjgxMzlkYjg2NC4uMGE3MWQyNmZhODA1OWU2ZGJiYzhmYTczOGEzNzhhYzJiMWNl
NmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEs
NiArMzEsNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAg
IFNldEhhc1ZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkK
ICAgICBDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3Jl
OjpJbnRSZWN0IGlubGluZVJlY3QpCisgICAgUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2
NF90IGNvbnRleHRJZCkKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKICAgICBFeGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWlu
dDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tCmluZGV4IDdiZjI2NTkwN2UyNGU0ODI1Y2Q3NDYxNzA1YmQ2MGFiZjFkODM0MTAuLmY3
MTAxYzM0MGNkZmNiYmU4NTE2NGQ0ZTgyM2UxODBkNjRlZmM4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0KQEAgLTI1OCw2ICsyNTgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQ6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdlci0+ZGlkRW50ZXJG
dWxsc2NyZWVuKG1fY29udGV4dElkKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAg
ICAgbV9tYW5hZ2VyLT53aWxsRXhpdEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOworfQorCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAg
IGlmIChtX21hbmFnZXIpCkBAIC01NDEsNiArNTQ3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElk
LCBiCiAjZW5kaWYKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBh
cmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZW5zdXJlSW50
ZXJmYWNlKGNvbnRleHRJZCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7Cit9CisKICNwcmFn
bWEgbWFyayBNZXNzYWdlcyB0byBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyCiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKQEAgLTU2OCw2ICs1NzksMTEgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRf
dCBjb250ZXh0SWQpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpEaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7
CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6V2lsbEV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIG1fcGFn
ZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlk
RXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4
dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBjM2NiMWRmMzc3OGVi
MGQxNGM3NWIyZjg1ZWI0ODM0Y2RmMGEzYzM3Li5mZjhjNGJhZjQ2M2JlMzUzOTgzMDI5MGVjZDI0
NmVmOWZjZmIxZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElk
KTsKICAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2
b2lkIHdpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlk
RXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEVudGVyRnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
aW5kZXggYTc0YWM0OGNlNWNhZmZjYTU0ZmRhZWZjYmI1ZDE5Y2Y2MmM5ZTM0Yi4uYzdjZWMxZTIy
ZTAxNDM1NTgyMWYwYjY2M2MwNTg5YmZlYTc3MmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVu
TWFuYWdlciB7CiAgICAgUmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAg
RGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBXaWxsRXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
ICAgIERpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KaW5kZXggMjE0MGJkZDE5ZWE1MTI3NjNlMzIxYjQzMjY1MzAwMmEzZDc1YjFjZi4uYzUwNGRj
NmM1MWNlMjc1NmM5MTRmOTZhZDBkZjY4MjUzMmE3MjE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAg
LTQyNyw3ICs0MjcsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1
bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisK
K3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKK3sKKyAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OndpbGxFeGl0RnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsKKworICAg
IFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7CisgICAgUmVm
UHRyPFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKKyAgICBzdGQ6
OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJ
ZCk7CisKKyAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwt
PnZpZGVvRWxlbWVudCgpOworICAgIGlmICghdmlkZW9FbGVtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCwgY29udGV4dElkXSB7Cisg
ICAgICAgIHZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIGlmIChw
cm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb0V4
aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+cGFnZUlEKCkp
OworICAgIH0pOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNv
bnRleHRJZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336882</attachid>
            <date>2018-03-30 13:03:38 -0700</date>
            <delta_ts>2018-03-30 13:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180330130337.patch</filename>
            <type>text/plain</type>
            <size>36579</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjYyNTNjYjFkYmUwN2YxNTU4MjFkNDAwYTg3ZDE1
ZjljNTBmZDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dXBkYXRlVmlkZW9GdWxsc2Ny
ZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnVwZGF0ZVZpZGVv
RnVsbHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVySXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb0Z1
bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4
ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRFeGl0RnVs
bHNjcmVlbldpdGhSZWFzb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKwogMjAxOC0wMy0zMCAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlc0ZvckVuY29kaW5nKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTI5YWJiMTk1YzNjMTAyMzAzZDk5YzFmOWRlNDYzNmRhYWE4MWE0MS4uOGE2YzUwNzMw
NTNhZDg1NzE3MmY3NDE0YjYyNzVlZTJiNzliYmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxOC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBSZXBsYWNlIHZpZGVvIHdpdGggYSBwbGFjZWhvbGRl
ciBpbWFnZSBkdXJpbmcgZnVsbHNjcmVlbiB0cmFuc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxODgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM4OTQwMzA3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0
Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4p
OgorCiAyMDE4LTAzLTMwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbWVzc2FnZXMucHkgY29kZWdlbiBmb3IgU3RyaW5nLCBmaXggdGVzdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEwYTA5MjU4NzY1M2Vh
NzYwOWNiNDQ1NTMzZjlhY2ExMmRlMmEwOTguLjE3YzE0YjVjNzA3ZTEzZWJjMzU5OTdiYWRmMTNk
MTg5Njg5N2RiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNjAyMyw2ICs2MDIzLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2FpdEZvclByZXBh
cmVkRm9ySW5saW5lVGhlbihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wCiAKICNpZiBQTEFU
Rk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkpCiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKCkKK3sK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT51cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSgpOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9MYXll
cklubGluZSgpCiB7CiAgICAgcmV0dXJuICFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA0NzgyNTRmODU5Nzg4MzE0MjI5ZDcx
NjhjZDYxN2I5MjliNmYyMjFhLi5hMzI0NTgwMzYwMGIzNzcxYjljZTcyNjJiN2NjOGY5ZDMzMDgx
MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTU0LDYgKzU1
NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgZmluYWw7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3ZlcnJp
ZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKIAogcHJv
dGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKaW5k
ZXggNWIwNGZkMzMxMGFlZjA1MTBhZTJiNDJmNDQ0M2JmNDcxOTI0NjA1ZS4uNGViMDU4MGM5NjEz
OWRkNDdlNzU4MTJlNjE5YmM5MDVkNmI3NmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNj
cmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKaW5kZXggNjA3Mzc0ODZhNDRm
ZTk5NTRkNzVjYTVmOTFhOWNlNjJjNDE0ODkzMS4uODFmODRmNTAxZGZkZTg3NDI0NWJlY2M0MzBk
YTIxZThlNDFmYjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50Kik7CiAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0VsZW1lbnQuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgaGFuZGxlRXZlbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNvcmU6
OkV2ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4
IDIyZWQyMTM1OGNlNjNmZTNlZmJmOTBkODUwY2Y0ZTE1YzkyZjY0NTIuLmMzZjdkZWU3NzQ2OGI1
NmRmN2ZmNjZhMzQ1NTIyZTYyMTBiNzBjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xMDAsNiArMTAwLDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQ6OnVwZGF0ZUZvckV2ZW50TmFtZShjb25zdCBXVEY6OkF0b21pY1N0cmluCiAgICAg
fQogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxsRXhpdEZ1
bGxzY3JlZW4oKQoreworICAgIGlmIChtX3ZpZGVvRWxlbWVudCkKKyAgICAgICAgbV92aWRlb0Vs
ZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2
aWRlb0xheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllciA9PSB2aWRlb0xheWVyKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZDNk
ZDEwZjBlZmY4NzM4OGI2MWJhOGUwZDE5NjY4NTlmNzUzNTNkZi4uOGE0Njg2YWUyNjZhNjdlYmMy
MWQwODgwZDMwNmY4MzI2OGU2YjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzA1LDYgKzcwNSwxMSBAQCB2b2lkIE1lZGlh
UGxheWVyOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiBsYXllciwgV1RG
OjpGdW5jdGlvbjx2bwogICAgIG1fcHJpdmF0ZS0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobGF5
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6
dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQoreworICAgIG1fcHJpdmF0ZS0+dXBk
YXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllcjo6
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIG1fcHJpdmF0
ZS0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggN2ZiMTg0ODU0ZWM4ODdiNWQ3YmY5
N2E1NzYxNmZkNjQyNDhhZDk0Ni4uYzY0ZWQ5MTc3MjA3ZmI0NWJjOGJiMWU0YTBiNDRiZjdlMzU3
NTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfSk7CiAgICAgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOworICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKICAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHk7
CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFZpZGVvR3Jhdml0eSk7CiAgICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAppbmRleCBkM2YyNTAxNzcwNDg1YzBmOGMxNTFiZDc0NjZlYTExNzkzNWUyNzBkLi5mNjYwMzYx
MTA3NDkxNjk1ZTczOTVlZTJmZTljMTQyOWExZjUzNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtNjEsNiAr
NjEsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0
eSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVkaWFQbGF5
ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaApp
bmRleCBhYzM5ZDRmNGE1YjllOTNkNjMzZTE2OWRmNGRlYTRiOTAyNjc2ZDVkLi42NjJhOTRjOWUz
MDY4ZWMzYjI5OGE3YjQ4M2Y4YTYxYjVmNTNjZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIk5hdGl2
ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsNyArNDYsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
KiwgSW50U2l6ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZv
cm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRp
dmVJbWFnZVB0cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGVz
dHJveVZpZGVvTGF5ZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBiOGExOGE3
NzBmMTkzZDc1ZDQxNzFkZWFkM2Q3ZjBiYWMxOGI2NTEwLi4zMWQ3YzRiM2Y1ZWYyMzU2ZWIyNWRj
NTlmNTIyNzM4MjM5ZTNjMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xODYsNiArMTg2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZSgpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKQEAg
LTI2MSwxMCArMjYyLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludFdpdGhJbWFnZUdlbmVy
YXRvcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKIAogI2lmIEhBVkUoQVZG
T1VOREFUSU9OX1ZJREVPX09VVFBVVCkKKyAgICBlbnVtIFVwZGF0ZVR5cGUgeyBVcGRhdGVTeW5j
aHJvbm91c2x5LCBVcGRhdGVBc3luY2hyb25vdXNseSB9OworICAgIHZvaWQgdXBkYXRlTGFzdElt
YWdlKFVwZGF0ZVR5cGUgdHlwZSA9IFVwZGF0ZUFzeW5jaHJvbm91c2x5KTsKKwogICAgIHZvaWQg
Y3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICB2b2lkIGRlc3Ryb3lWaWRlb091dHB1dCgpOwogICAg
IGJvb2wgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2Uo
KTsKICAgICBib29sIHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKTsKICAgICB2b2lkIHBh
aW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwog
ICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDVjMmIyZmIzZTk0ZjMzOThkMmYyMzM1YTU1NWY5
ODdhYTllNWRjMjAuLjhmMGYxMzY0YzAzYzkyMzMzZTU3N2I3MDcyYWViNzM0NGRiY2YzNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTA3OSw2ICsxMDc5LDEwIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKCkKICAgICB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgY3JlYXRlVmlkZW9P
dXRwdXQoKTsKKyNlbmRpZgorCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBA
IC0xMTYyLDkgKzExNjYsMTYgQEAgUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0lubGluZUxheWVyKCk7CiB9CiAKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoKQoreworICAgIHVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5j
aHJvbm91c2x5KTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UobV9sYXN0SW1hZ2UpOworfQorCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRm
b3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRl
U3luY2hyb25vdXNseSk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOwogICAgIHVwZGF0ZURpc2FibGVFeHRlcm5hbFBsYXli
YWNrKCk7CiB9CiAKQEAgLTIyMzEsNiArMjI0Miw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIAogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogeworICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICgh
bV92aWRlb091dHB1dCkKICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICBBU1NFUlQo
bV92aWRlb091dHB1dCk7CkBAIC0yMjU5LDkgKzIyNzMsMTUgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAg
ICByZXR1cm4gW21fdmlkZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9h
dlBsYXllckl0ZW0gY3VycmVudFRpbWVdXTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZSB0eXBlKQogewog
I2lmIEhBVkUoQ09SRV9WSURFTykKKyAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAodHlwZSA9PSBVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5
ICYmICFtX2xhc3RJbWFnZSAmJiAhdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpKQorICAg
ICAgICB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKICAgICAvLyBD
YWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1h
eSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZmZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3Rl
ZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0
IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8gc2hvdWxkIGJlIGRpc3BsYXllZC4KQEAgLTIy
OTEsMTEgKzIzMTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RJbWFnZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIG91dHB1dFJlY3QpCiB7Ci0gICAgaWYgKG1fdmlkZW9PdXRwdXQgJiYgIW1f
bGFzdEltYWdlICYmICF2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCi0gICAgICAgIHdh
aXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKLQotICAgIHVwZGF0ZUxhc3RJ
bWFnZSgpOwotCisgICAgdXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9u
b3VzbHkpOwogICAgIGlmICghbV9sYXN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGI0YmM5NDBhMTk3OGUzOGRhMzg1MGNkOTU1MDUzN2Fi
NzgwZGUxOTQuLjU5Nzk3MjJhYzViZmZlMzg2ZjU0ODBhYWZhMWE2NmQwYzJjNDQyYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTEwNjgsNyArMTA2OCw4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3ZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVu
TGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2Uo
KTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBt
X2xhc3RJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KaW5kZXggZDdhZjNhMzQ0MDkxZjY3ZDIxNTFlYTdiYTU0ZWFjYzZhMzRj
OGU2My4uNTY0N2RjMjNjNzYxYTNkYjRmZjI1ODFmNWYwN2M2YTE2MjIzOTY2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODk5LDcgKzg5OSw4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSBjb25z
dAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHVwZGF0ZUN1cnJlbnRG
cmFtZUltYWdlKCk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QgZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDLmgKaW5kZXggNGQ3ZjQ2N2M0ZThmY2QyNjVkZTM5N2MxNWNi
ZGQzMjRmM2Y0MDFlMi4uYWEyYTU3ZjFmYjI0MjM5MmIwNWMxMzUyZTE2ZmVjMDQzNTkxYjY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlck9iakMuaApAQCAtNDMsNyArNDMsOCBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1M
YXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpOyB9CiAgICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQogICAg
IHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICosIEludFNpemUgY29udGVudFNpemUp
IGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAq
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CisgICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7Cisg
ICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFs
OwogICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMu
bW0KaW5kZXggMmNiZmVlZjJjOTRjYjZkMzdjZGI5ZjdhNjQwY2Y4NjM3YTU2ZjljMi4uYzg2MTMz
YTRkZTQ4NWQ1MWNjMDBmY2Q4Mzk4Yzk2OTBkMDhlNzhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCkBA
IC03NCw2ICs3NCw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0
VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJCiAgICAgW21fdmlkZW9Jbmxp
bmVMYXllciBzZXROYW1lOkAiV2ViVmlkZW9Db250YWluZXJMYXllciJdOwogI2VuZGlmCiAgICAg
W21fdmlkZW9JbmxpbmVMYXllciBzZXRGcmFtZTptX3ZpZGVvSW5saW5lRnJhbWVdOworICAgIFtt
X3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHNHcmF2aXR5OmtDQUdyYXZpdHlSZXNpemVBc3Bl
Y3RdOworCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgW21fdmlk
ZW9MYXllciBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUu
d2lkdGgoKSwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSldOwogICAgICAgICBbbV92
aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJ
bmRleDowXTsKQEAgLTgzLDcgKzg1LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJCiAgICAg
fQogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZl
SW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAg
W21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooaWQpaW1hZ2UuZ2V0KCldOworfQorCit2
b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdlKQog
ewogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID09IHZpZGVvRnVsbHNjcmVlbkxheWVy
KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05OCw2ICsxMDYsOSBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KFBsYXRmb3JtTGF5ZXIgKnZpZAogICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKICAgICAgICAgQ0FD
b250ZXh0ICpvbGRDb250ZXh0ID0gW21fdmlkZW9MYXllciBjb250ZXh0XTsKIAorICAgICAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBz
ZXRDb250ZW50czooaWQpY3VycmVudEltYWdlLmdldCgpXTsKKwogICAgICAgICBpZiAobV92aWRl
b0Z1bGxzY3JlZW5MYXllcikgewogICAgICAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
aW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CiAgICAgICAgICAg
ICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxzY3Jl
ZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCmluZGV4IGFjMTZjZDY5NjllOGY2NDY5MWJmODJiNmJmYmU4Njg4NWU5
MzY3YzEuLmI0N2RlZGFmY2U2NjUwYTU4ODk2NDZkYWExNGY0YjYyYTM3Njg2NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RI
aWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIGNvbnN0IEludFJlY3QmIGlubGluZVJlY3Qp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGFz
VmlkZW9Db250ZW50TGF5ZXIoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbmxp
bmVSZWN0KGNvbnN0IEludFJlY3QmLCBib29sIHZpc2libGUpOwpAQCAtMjI3LDYgKzIyOCw3IEBA
IHByb3RlY3RlZDoKICAgICBib29sIG1fZXhpdENvbXBsZXRlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2VudGVyUmVxdWVzdGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuQWZ0ZXJFbnRlcmluZ0ZvcmVncm91bmQgeyBmYWxzZSB9OworICAgIGJvb2wgbV93
YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KaW5kZXggNWU5OWMxZjNiNTIwNmRhZTk0ZjFkYjQ5NWQxOTFjZTY0YjNk
NDJhOC4uY2E2YzQxY2FjMDk0NjRkNDk4NGM0NGEwYTBiMTRiNjI5YTAyZWVhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQpAQCAtNjAsNyArNjAsMTEgQEAgU09GVF9MSU5LX0NPTlNUQU5UKEFW
Rm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZSwgTlNTdHJpbmcgKikKIFNPRlRf
TElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3Bl
Y3QsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVkxheWVy
VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCwgTlNTdHJpbmcgKikKIAorI2lmIEVOQUJMRShF
WFRSQV9aT09NX01PREUpCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoQVZL
aXQpCisjZWxzZQogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKKyNlbmRpZgog
U09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlBpY3R1cmVJblBpY3R1cmVDb250cm9s
bGVyKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlBsYXllclZpZXdDb250cm9s
bGVyKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBfX0FWUGxheWVyTGF5ZXJWaWV3
KQpAQCAtOTc5LDcgKzk4Myw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCkKICAgICAgICAgICAgIG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVlbigpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7CiAgICAgW21fcGxh
eWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOk5PXTsKICAgICAKQEAg
LTExMDMsNiArMTEwNywxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpw
cmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdAogICAgIH0KIH0KIAor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRGdWxsc2Ny
ZWVuKCkKK3sKKyAgICBpZiAobV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQpIHsKKyAgICAgICAg
bV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSBmYWxzZTsKKyAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIHRydWUpOworICAgIH0KK30KKwogYm9vbCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJ
blBpY3R1cmUoKSBjb25zdAogewogICAgIHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxh
eWluZ10gJiYgbV9jdXJyZW50TW9kZS5pc0Z1bGxzY3JlZW4oKSAmJiBzdXBwb3J0c1BpY3R1cmVJ
blBpY3R1cmUoKTsKQEAgLTEyNTEsMTIgKzEyNjMsMjAgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6c2hvdWxkRXhpdEZ1bGxzY3JlZW5XaXRoUmVhc29uKFZpZGVvRnVsbHNj
cmUKICAgICBpZiAocGxheWJhY2tTZXNzaW9uTW9kZWwoKSAmJiAocmVhc29uID09IEV4aXRGdWxs
U2NyZWVuUmVhc29uOjpEb25lQnV0dG9uVGFwcGVkIHx8IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVl
blJlYXNvbjo6UmVtb3RlQ29udHJvbFN0b3BFdmVudFJlY2VpdmVkKSkKICAgICAgICAgcGxheWJh
Y2tTZXNzaW9uTW9kZWwoKS0+cGF1c2UoKTsKIAotICAgIEJPT0wgZmluaXNoZWQgPSByZWFzb24g
PT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4
aXRGdWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOwotICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7Ci0KICAgICBpZiAoIW1fd2F0Y2hk
b2dUaW1lci5pc0FjdGl2ZSgpICYmICFpZ25vcmVXYXRjaGRvZ0ZvckRlYnVnZ2luZykKICAgICAg
ICAgbV93YXRjaGRvZ1RpbWVyLnN0YXJ0T25lU2hvdChkZWZhdWx0V2F0Y2hkb2dUaW1lckludGVy
dmFsKTsKIAorI2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgaWYgKG1fZnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyKSB7CisgICAgICAgIG1fd2FpdGluZ0ZvclByZXBhcmVkVG9FeGl0ID0g
dHJ1ZTsKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPndpbGxFeGl0RnVsbHNj
cmVlbigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCisKKyAgICBCT09M
IGZpbmlzaGVkID0gcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpEb25lQnV0dG9uVGFw
cGVkIHx8IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNvbjo6UGluY2hHZXN0dXJlSGFuZGxl
ZDsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgZmluaXNoZWQpOwor
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xMzkwLDYgKzE0MTAsMTAgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wg
dmlzaWJsZSwgY29uc3QKICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpCit7Cit9CisKIGJvb2wgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY29uc3QKIHsKICAgICByZXR1cm4gW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlp
bmddICYmIChtX3N0YW5kYnkgfHwgbV9jdXJyZW50TW9kZS5pc0Z1bGxzY3JlZW4oKSkgJiYgc3Vw
cG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpp
bmRleCAwNDAyZmVjZTY5NjljMzgyYmFmZDc1ZDlmY2NkMzJlYjNlMDc1MDA2Li4yNTU5MTRmNDRj
NWQ2ODEzNDMxMmVkODlhZTQ3OGVjY2ZlZWMxYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0KQEAgLTEyMiwxNCArMTIyLDE1IEBAIHByaXZhdGU6CiAgICAgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQoKSB7IH0KIAogICAgIC8vIFZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyCi0gICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2V0dXBGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZSB7IH0KLSAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRDbGVhbnVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVj
dCgpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgZmluYWw7Cisg
ICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgZGlkU2V0
dXBGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlk
RXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkg
ZmluYWw7CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAog
ICAgIC8vIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CiAgICAgdm9pZCBoYXNWaWRlb0NoYW5n
ZWQoYm9vbCkgb3ZlcnJpZGU7CkBAIC0yNzksNiArMjgwLDE2IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAjZW5kaWYKIH0KIAor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVu
KCkKK3sKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIEFTU0VSVChpc1VJVGhyZWFk
KCkpOworICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyks
IHRoaXNdICgpIG11dGFibGUgeworICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+d2lsbEV4aXRG
dWxsc2NyZWVuKCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAgIEFTU0VSVChpc1VJ
VGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Zp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCmluZGV4IDhjMDlmMTI3NWE4NjI1MWQwY2UyNTMx
YTVhZjQxYWQ3NjNiZjhiN2IuLjczOGNhYTE1OGI4ZTA1YzFhMjA4MTNiZWFhZDUxZTA2MWY5YTZj
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIHZvaWQgcmVxdWVzdEhpZGVBbmRF
eGl0RnVsbHNjcmVlbigpIHsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCwgTlNX
aW5kb3cgKnBhcmVudFdpbmRvdyk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFy
ZWRUb0V4aXRGdWxsc2NyZWVuKCkgeyB9CiAKICAgICBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAgIGJv
b2wgaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSkgY29uc3QgeyByZXR1cm4gbV9tb2RlICYgbW9kZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApp
bmRleCAyYjYzNjMyYTFmM2M1N2FlMGM4ZmRkYTY1ZjhiNDIzZWYzMmY2ZjMwLi5iNjZlYzdmODk4
NTI0MjQ3YmY0N2NkYjIzYjA1OTFjNjYyMmM2MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApA
QCAtOTEsMTQgKzkxLDE1IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIFZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyCi0gICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCgpIG92
ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlk
U2V0dXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4o
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5s
aW5lUmVjdCgpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgZmlu
YWw7CisgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQg
ZGlkU2V0dXBGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4o
KSBmaW5hbDsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQg
ZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVu
KCkgZmluYWw7CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsK
IAogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIFJlZjxQ
bGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7CkBAIC0x
NTAsNiArMTUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpOwogICAgIHZvaWQgY2xlYW51
cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHByZXBhcmVkVG9SZXR1
cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50
UmVjdCBpbmxpbmVSZWN0KTsKKyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICNlbmRpZgpAQCAtMTYwLDYgKzE2Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAg
ICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lk
IHdpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
dWludDY0X3QgY29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAzYTBjNzdkYjM0MDZkMmQwZGJmOTA1N2JiY2U4ODliODEzOWRiODY0Li4wYTcx
ZDI2ZmE4MDU5ZTZkYmJjOGZhNzM4YTM3OGFjMmIxY2U2YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIo
dWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCkKICAgICBQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3Qg
Y29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKKyAg
ICBQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIEV4aXRGdWxs
c2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggN2JmMjY1OTA3ZTI0
ZTQ4MjVjZDc0NjE3MDViZDYwYWJmMWQ4MzQxMC4uZjcxMDFjMzQwY2RmY2JiZTg1MTY0ZDRlODIz
ZTE4MGQ2NGVmYzhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMjU4LDYgKzI1OCwx
MiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZGlkRW50ZXJGdWxsc2NyZWVu
KCkKICAgICAgICAgbV9tYW5hZ2VyLT5kaWRFbnRlckZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOwog
fQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVu
KCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPndpbGxFeGl0RnVs
bHNjcmVlbihtX2NvbnRleHRJZCk7Cit9CisKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250
ZXh0OjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7CiAgICAgaWYgKG1fbWFuYWdlcikKQEAgLTU0MSw2
ICs1NDcsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGIKICNlbmRpZgogfQogCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2
NF90IGNvbnRleHRJZCkKK3sKKyAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5wcmVwYXJl
ZFRvRXhpdEZ1bGxzY3JlZW4oKTsKK30KKwogI3ByYWdtYSBtYXJrIE1lc3NhZ2VzIHRvIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJl
cXVlc3RGdWxsc2NyZWVuTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sIGZpbmlzaGVkV2l0
aE1lZGlhKQpAQCAtNTY4LDYgKzU3OSwxMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZFNldHVwRnVsbHNjcmVl
bihjb250ZXh0SWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7
CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXaWxs
RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpEaWRFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oCmluZGV4IGMzY2IxZGYzNzc4ZWIwZDE0Yzc1YjJmODVlYjQ4MzRjZGYwYTNj
MzcuLmZmOGM0YmFmNDYzYmUzNTM5ODMwMjkwZWNkMjQ2ZWY5ZmNmYjFkZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaApAQCAtMTQzLDYgKzE0Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlcXVlc3RWaWRl
b0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgcmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFNldHVwRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCk7CiAgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBhNzRhYzQ4Y2U1Y2FmZmNhNTRm
ZGFlZmNiYjVkMTljZjYyYzllMzRiLi5jN2NlYzFlMjJlMDE0MzU1ODIxZjBiNjYzYzA1ODliZmVh
NzcyYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcs
NyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBSZXF1ZXN0Vmlk
ZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQogICAgIFJldHVyblZpZGVvQ29udGVu
dExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBEaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKQorICAgIFdpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
CiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZEVudGVy
RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgRGlkQ2xlYW51cEZ1bGxzY3JlZW4o
dWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAyMTQwYmRkMTllYTUxMjc2
M2UzMjFiNDMyNjUzMDAyYTNkNzViMWNmLi5jNTA0ZGM2YzUxY2UyNzU2YzkxNGY5NmFkMGRmNjgy
NTMyYTcyMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtNDI3LDcgKzQyNywyNiBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgfSk7CiAjZW5kaWYKIH0KLSAgICAKKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQoreworICAgIExPRyhG
dWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKCVw
LCAleCkiLCB0aGlzLCBjb250ZXh0SWQpOworCisgICAgUmVmUHRyPFZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50PiBtb2RlbDsKKyAgICBSZWZQdHI8VmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQ29udGV4dD4gaW50ZXJmYWNlOworICAgIHN0ZDo6dGllKG1vZGVsLCBpbnRlcmZhY2UpID0g
ZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKKworICAgIFJlZlB0cjxIVE1MVmlk
ZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQgPSBtb2RlbC0+dmlkZW9FbGVtZW50KCk7CisgICAgaWYg
KCF2aWRlb0VsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdmlkZW9FbGVtZW50LCBjb250ZXh0SWRdIHsKKyAgICAgICAgdmlkZW9FbGVtZW50LT53aWxs
RXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKyAg
ICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSwg
cHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5wYWdlSUQoKSk7CisgICAgfSk7Cit9CisKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVu
dGVyRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336885</attachid>
            <date>2018-03-30 13:24:19 -0700</date>
            <delta_ts>2018-04-01 22:26:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180330132418.patch</filename>
            <type>text/plain</type>
            <size>36560</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjYyNTNjYjFkYmUwN2YxNTU4MjFkNDAwYTg3ZDE1
ZjljNTBmZDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2ls
bEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dXBkYXRlVmlkZW9GdWxsc2Ny
ZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnVwZGF0ZVZpZGVv
RnVsbHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVySXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb0Z1
bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4
ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRFeGl0RnVs
bHNjcmVlbldpdGhSZWFzb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKwogMjAxOC0wMy0zMCAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXRTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlc0ZvckVuY29kaW5nKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTI5YWJiMTk1YzNjMTAyMzAzZDk5YzFmOWRlNDYzNmRhYWE4MWE0MS4uOGE2YzUwNzMw
NTNhZDg1NzE3MmY3NDE0YjYyNzVlZTJiNzliYmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxOC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBSZXBsYWNlIHZpZGVvIHdpdGggYSBwbGFjZWhvbGRl
ciBpbWFnZSBkdXJpbmcgZnVsbHNjcmVlbiB0cmFuc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxODgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM4OTQwMzA3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0
Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4p
OgorCiAyMDE4LTAzLTMwICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbWVzc2FnZXMucHkgY29kZWdlbiBmb3IgU3RyaW5nLCBmaXggdGVzdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEwYTA5MjU4NzY1M2Vh
NzYwOWNiNDQ1NTMzZjlhY2ExMmRlMmEwOTguLjE3YzE0YjVjNzA3ZTEzZWJjMzU5OTdiYWRmMTNk
MTg5Njg5N2RiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNjAyMyw2ICs2MDIzLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2FpdEZvclByZXBh
cmVkRm9ySW5saW5lVGhlbihXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wCiAKICNpZiBQTEFU
Rk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkpCiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKCkKK3sK
KyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT51cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSgpOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzVmlkZW9MYXll
cklubGluZSgpCiB7CiAgICAgcmV0dXJuICFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA0NzgyNTRmODU5Nzg4MzE0MjI5ZDcx
NjhjZDYxN2I5MjliNmYyMjFhLi5hMzI0NTgwMzYwMGIzNzcxYjljZTcyNjJiN2NjOGY5ZDMzMDgx
MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTU0LDYgKzU1
NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgZmluYWw7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3ZlcnJp
ZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKIAogcHJv
dGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKaW5k
ZXggNWIwNGZkMzMxMGFlZjA1MTBhZTJiNDJmNDQ0M2JmNDcxOTI0NjA1ZS4uNGViMDU4MGM5NjEz
OWRkNDdlNzU4MTJlNjE5YmM5MDVkNmI3NmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNj
cmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKaW5kZXggNjA3Mzc0ODZhNDRm
ZTk5NTRkNzVjYTVmOTFhOWNlNjJjNDE0ODkzMS4uODFmODRmNTAxZGZkZTg3NDI0NWJlY2M0MzBk
YTIxZThlNDFmYjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50Kik7CiAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0VsZW1lbnQuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgaGFuZGxlRXZlbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNvcmU6
OkV2ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4
IDIyZWQyMTM1OGNlNjNmZTNlZmJmOTBkODUwY2Y0ZTE1YzkyZjY0NTIuLmMzZjdkZWU3NzQ2OGI1
NmRmN2ZmNjZhMzQ1NTIyZTYyMTBiNzBjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xMDAsNiArMTAwLDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQ6OnVwZGF0ZUZvckV2ZW50TmFtZShjb25zdCBXVEY6OkF0b21pY1N0cmluCiAgICAg
fQogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxsRXhpdEZ1
bGxzY3JlZW4oKQoreworICAgIGlmIChtX3ZpZGVvRWxlbWVudCkKKyAgICAgICAgbV92aWRlb0Vs
ZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2
aWRlb0xheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllciA9PSB2aWRlb0xheWVyKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZDNk
ZDEwZjBlZmY4NzM4OGI2MWJhOGUwZDE5NjY4NTlmNzUzNTNkZi4uOGE0Njg2YWUyNjZhNjdlYmMy
MWQwODgwZDMwNmY4MzI2OGU2YjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzA1LDYgKzcwNSwxMSBAQCB2b2lkIE1lZGlh
UGxheWVyOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiBsYXllciwgV1RG
OjpGdW5jdGlvbjx2bwogICAgIG1fcHJpdmF0ZS0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobGF5
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6
dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQoreworICAgIG1fcHJpdmF0ZS0+dXBk
YXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllcjo6
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIG1fcHJpdmF0
ZS0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggN2ZiMTg0ODU0ZWM4ODdiNWQ3YmY5
N2E1NzYxNmZkNjQyNDhhZDk0Ni4uYzY0ZWQ5MTc3MjA3ZmI0NWJjOGJiMWU0YTBiNDRiZjdlMzU3
NTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IFtdIHsgfSk7CiAgICAgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOworICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKICAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHk7
CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFZpZGVvR3Jhdml0eSk7CiAgICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAppbmRleCBkM2YyNTAxNzcwNDg1YzBmOGMxNTFiZDc0NjZlYTExNzkzNWUyNzBkLi5mNjYwMzYx
MTA3NDkxNjk1ZTczOTVlZTJmZTljMTQyOWExZjUzNDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtNjEsNiAr
NjEsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0
eSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVkaWFQbGF5
ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaApp
bmRleCBhYzM5ZDRmNGE1YjllOTNkNjMzZTE2OWRmNGRlYTRiOTAyNjc2ZDVkLi42NjJhOTRjOWUz
MDY4ZWMzYjI5OGE3YjQ4M2Y4YTYxYjVmNTNjZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIk5hdGl2
ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsNyArNDYsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
KiwgSW50U2l6ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZv
cm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRp
dmVJbWFnZVB0cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGVz
dHJveVZpZGVvTGF5ZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBiOGExOGE3
NzBmMTkzZDc1ZDQxNzFkZWFkM2Q3ZjBiYWMxOGI2NTEwLi4zMWQ3YzRiM2Y1ZWYyMzU2ZWIyNWRj
NTlmNTIyNzM4MjM5ZTNjMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xODYsNiArMTg2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZSgpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKQEAg
LTI2MSwxMCArMjYyLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludFdpdGhJbWFnZUdlbmVy
YXRvcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKIAogI2lmIEhBVkUoQVZG
T1VOREFUSU9OX1ZJREVPX09VVFBVVCkKKyAgICBlbnVtIFVwZGF0ZVR5cGUgeyBVcGRhdGVTeW5j
aHJvbm91c2x5LCBVcGRhdGVBc3luY2hyb25vdXNseSB9OworICAgIHZvaWQgdXBkYXRlTGFzdElt
YWdlKFVwZGF0ZVR5cGUgdHlwZSA9IFVwZGF0ZUFzeW5jaHJvbm91c2x5KTsKKwogICAgIHZvaWQg
Y3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICB2b2lkIGRlc3Ryb3lWaWRlb091dHB1dCgpOwogICAg
IGJvb2wgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2Uo
KTsKICAgICBib29sIHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKTsKICAgICB2b2lkIHBh
aW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwog
ICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDVjMmIyZmIzZTk0ZjMzOThkMmYyMzM1YTU1NWY5
ODdhYTllNWRjMjAuLjhmMGYxMzY0YzAzYzkyMzMzZTU3N2I3MDcyYWViNzM0NGRiY2YzNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTA3OSw2ICsxMDc5LDEwIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKCkKICAgICB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgY3JlYXRlVmlkZW9P
dXRwdXQoKTsKKyNlbmRpZgorCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBA
IC0xMTYyLDkgKzExNjYsMTYgQEAgUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0lubGluZUxheWVyKCk7CiB9CiAKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoKQoreworICAgIHVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5j
aHJvbm91c2x5KTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UobV9sYXN0SW1hZ2UpOworfQorCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRm
b3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRl
U3luY2hyb25vdXNseSk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOwogICAgIHVwZGF0ZURpc2FibGVFeHRlcm5hbFBsYXli
YWNrKCk7CiB9CiAKQEAgLTIyMzEsNiArMjI0Miw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvT3V0cHV0KCkKIAogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogeworICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICgh
bV92aWRlb091dHB1dCkKICAgICAgICAgY3JlYXRlVmlkZW9PdXRwdXQoKTsKICAgICBBU1NFUlQo
bV92aWRlb091dHB1dCk7CkBAIC0yMjU5LDkgKzIyNzMsMTUgQEAgYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkKICAg
ICByZXR1cm4gW21fdmlkZW9PdXRwdXQgaGFzTmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9h
dlBsYXllckl0ZW0gY3VycmVudFRpbWVdXTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZSB0eXBlKQogewog
I2lmIEhBVkUoQ09SRV9WSURFTykKKyAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAodHlwZSA9PSBVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5
ICYmICFtX2xhc3RJbWFnZSAmJiAhdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpKQorICAg
ICAgICB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CisKICAgICAvLyBD
YWxscyB0byBjb3B5UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTppdGVtVGltZUZvckRpc3BsYXk6IG1h
eSByZXR1cm4gbmlsIGlmIHRoZSBwaXhlbCBidWZmZXIKICAgICAvLyBmb3IgdGhlIHJlcXVlc3Rl
ZCB0aW1lIGhhcyBhbHJlYWR5IGJlZW4gcmV0cmlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0
IHZhbGlkIGltYWdlIChpZiBhbnkpCiAgICAgLy8gc2hvdWxkIGJlIGRpc3BsYXllZC4KQEAgLTIy
OTEsMTEgKzIzMTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RJbWFnZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIG91dHB1dFJlY3QpCiB7Ci0gICAgaWYgKG1fdmlkZW9PdXRwdXQgJiYgIW1f
bGFzdEltYWdlICYmICF2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCi0gICAgICAgIHdh
aXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKLQotICAgIHVwZGF0ZUxhc3RJ
bWFnZSgpOwotCisgICAgdXBkYXRlTGFzdEltYWdlKFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9u
b3VzbHkpOwogICAgIGlmICghbV9sYXN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGI0YmM5NDBhMTk3OGUzOGRhMzg1MGNkOTU1MDUzN2Fi
NzgwZGUxOTQuLjU5Nzk3MjJhYzViZmZlMzg2ZjU0ODBhYWZhMWE2NmQwYzJjNDQyYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTEwNjgsNyArMTA2OCw4IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3ZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVu
TGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRhdGVMYXN0SW1hZ2Uo
KTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBt
X2xhc3RJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KaW5kZXggZDdhZjNhMzQ0MDkxZjY3ZDIxNTFlYTdiYTU0ZWFjYzZhMzRj
OGU2My4uNTY0N2RjMjNjNzYxYTNkYjRmZjI1ODFmNWYwN2M2YTE2MjIzOTY2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODk5LDcgKzg5OSw4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSBjb25z
dAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHVwZGF0ZUN1cnJlbnRG
cmFtZUltYWdlKCk7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QgZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDLmgKaW5kZXggNGQ3ZjQ2N2M0ZThmY2QyNjVkZTM5N2MxNWNi
ZGQzMjRmM2Y0MDFlMi4uYWEyYTU3ZjFmYjI0MjM5MmIwNWMxMzUyZTE2ZmVjMDQzNTkxYjY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlck9iakMuaApAQCAtNDMsNyArNDMsOCBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1M
YXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpOyB9CiAgICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQogICAg
IHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICosIEludFNpemUgY29udGVudFNpemUp
IGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAq
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CisgICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7Cisg
ICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFs
OwogICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMu
bW0KaW5kZXggMmNiZmVlZjJjOTRjYjZkMzdjZGI5ZjdhNjQwY2Y4NjM3YTU2ZjljMi4uYzg2MTMz
YTRkZTQ4NWQ1MWNjMDBmY2Q4Mzk4Yzk2OTBkMDhlNzhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCkBA
IC03NCw2ICs3NCw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0
VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJCiAgICAgW21fdmlkZW9Jbmxp
bmVMYXllciBzZXROYW1lOkAiV2ViVmlkZW9Db250YWluZXJMYXllciJdOwogI2VuZGlmCiAgICAg
W21fdmlkZW9JbmxpbmVMYXllciBzZXRGcmFtZTptX3ZpZGVvSW5saW5lRnJhbWVdOworICAgIFtt
X3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHNHcmF2aXR5OmtDQUdyYXZpdHlSZXNpemVBc3Bl
Y3RdOworCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgW21fdmlk
ZW9MYXllciBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUu
d2lkdGgoKSwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSldOwogICAgICAgICBbbV92
aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJ
bmRleDowXTsKQEAgLTgzLDcgKzg1LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJCiAgICAg
fQogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZl
SW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAg
W21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooaWQpaW1hZ2UuZ2V0KCldOworfQorCit2
b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdlKQog
ewogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID09IHZpZGVvRnVsbHNjcmVlbkxheWVy
KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC05OCw2ICsxMDYsOSBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KFBsYXRmb3JtTGF5ZXIgKnZpZAogICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKICAgICAgICAgQ0FD
b250ZXh0ICpvbGRDb250ZXh0ID0gW21fdmlkZW9MYXllciBjb250ZXh0XTsKIAorICAgICAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBz
ZXRDb250ZW50czooaWQpY3VycmVudEltYWdlLmdldCgpXTsKKwogICAgICAgICBpZiAobV92aWRl
b0Z1bGxzY3JlZW5MYXllcikgewogICAgICAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
aW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CiAgICAgICAgICAg
ICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxzY3Jl
ZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCmluZGV4IGFjMTZjZDY5NjllOGY2NDY5MWJmODJiNmJmYmU4Njg4NWU5
MzY3YzEuLmI0N2RlZGFmY2U2NjUwYTU4ODk2NDZkYWExNGY0YjYyYTM3Njg2NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RI
aWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIGNvbnN0IEludFJlY3QmIGlubGluZVJlY3Qp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SGFz
VmlkZW9Db250ZW50TGF5ZXIoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbmxp
bmVSZWN0KGNvbnN0IEludFJlY3QmLCBib29sIHZpc2libGUpOwpAQCAtMjI3LDYgKzIyOCw3IEBA
IHByb3RlY3RlZDoKICAgICBib29sIG1fZXhpdENvbXBsZXRlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2VudGVyUmVxdWVzdGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuQWZ0ZXJFbnRlcmluZ0ZvcmVncm91bmQgeyBmYWxzZSB9OworICAgIGJvb2wgbV93
YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KaW5kZXggNWU5OWMxZjNiNTIwNmRhZTk0ZjFkYjQ5NWQxOTFjZTY0YjNk
NDJhOC4uY2E2YzQxY2FjMDk0NjRkNDk4NGM0NGEwYTBiMTRiNjI5YTAyZWVhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbQpAQCAtNjAsNyArNjAsMTEgQEAgU09GVF9MSU5LX0NPTlNUQU5UKEFW
Rm91bmRhdGlvbiwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZSwgTlNTdHJpbmcgKikKIFNPRlRf
TElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3Bl
Y3QsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVkxheWVy
VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCwgTlNTdHJpbmcgKikKIAorI2lmIEVOQUJMRShF
WFRSQV9aT09NX01PREUpCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoQVZL
aXQpCisjZWxzZQogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKKyNlbmRpZgog
U09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlBpY3R1cmVJblBpY3R1cmVDb250cm9s
bGVyKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlBsYXllclZpZXdDb250cm9s
bGVyKQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBfX0FWUGxheWVyTGF5ZXJWaWV3
KQpAQCAtOTc5LDcgKzk4Myw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCkKICAgICAgICAgICAgIG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVlbigpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7CiAgICAgW21fcGxh
eWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOk5PXTsKICAgICAKQEAg
LTExMDMsNiArMTEwNywxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpw
cmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdAogICAgIH0KIH0KIAor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRGdWxsc2Ny
ZWVuKCkKK3sKKyAgICBpZiAobV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQpIHsKKyAgICAgICAg
bV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSBmYWxzZTsKKyAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIHRydWUpOworICAgIH0KK30KKwogYm9vbCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJ
blBpY3R1cmUoKSBjb25zdAogewogICAgIHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxh
eWluZ10gJiYgbV9jdXJyZW50TW9kZS5pc0Z1bGxzY3JlZW4oKSAmJiBzdXBwb3J0c1BpY3R1cmVJ
blBpY3R1cmUoKTsKQEAgLTEyNTEsMTIgKzEyNjMsMjAgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6c2hvdWxkRXhpdEZ1bGxzY3JlZW5XaXRoUmVhc29uKFZpZGVvRnVsbHNj
cmUKICAgICBpZiAocGxheWJhY2tTZXNzaW9uTW9kZWwoKSAmJiAocmVhc29uID09IEV4aXRGdWxs
U2NyZWVuUmVhc29uOjpEb25lQnV0dG9uVGFwcGVkIHx8IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVl
blJlYXNvbjo6UmVtb3RlQ29udHJvbFN0b3BFdmVudFJlY2VpdmVkKSkKICAgICAgICAgcGxheWJh
Y2tTZXNzaW9uTW9kZWwoKS0+cGF1c2UoKTsKIAotICAgIEJPT0wgZmluaXNoZWQgPSByZWFzb24g
PT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4
aXRGdWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOwotICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7Ci0KICAgICBpZiAoIW1fd2F0Y2hk
b2dUaW1lci5pc0FjdGl2ZSgpICYmICFpZ25vcmVXYXRjaGRvZ0ZvckRlYnVnZ2luZykKICAgICAg
ICAgbV93YXRjaGRvZ1RpbWVyLnN0YXJ0T25lU2hvdChkZWZhdWx0V2F0Y2hkb2dUaW1lckludGVy
dmFsKTsKIAorI2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgaWYgKG1fZnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyKSB7CisgICAgICAgIG1fd2FpdGluZ0ZvclByZXBhcmVkVG9FeGl0ID0g
dHJ1ZTsKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPndpbGxFeGl0RnVsbHNj
cmVlbigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCisKKyAgICBCT09M
IGZpbmlzaGVkID0gcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpEb25lQnV0dG9uVGFw
cGVkIHx8IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNvbjo6UGluY2hHZXN0dXJlSGFuZGxl
ZDsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgZmluaXNoZWQpOwor
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xMzkwLDYgKzE0MTAsMTAgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wg
dmlzaWJsZSwgY29uc3QKICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpCit7Cit9CisKIGJvb2wgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY29uc3QKIHsKICAgICByZXR1cm4gW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlp
bmddICYmIChtX3N0YW5kYnkgfHwgbV9jdXJyZW50TW9kZS5pc0Z1bGxzY3JlZW4oKSkgJiYgc3Vw
cG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpp
bmRleCAwNDAyZmVjZTY5NjljMzgyYmFmZDc1ZDlmY2NkMzJlYjNlMDc1MDA2Li4yNTU5MTRmNDRj
NWQ2ODEzNDMxMmVkODlhZTQ3OGVjY2ZlZWMxYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0KQEAgLTEyMiwxNCArMTIyLDE1IEBAIHByaXZhdGU6CiAgICAgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQoKSB7IH0KIAogICAgIC8vIFZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyCi0gICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2V0dXBGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZSB7IH0KLSAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRDbGVhbnVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVj
dCgpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKCkgZmluYWw7Cisg
ICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgZGlkU2V0
dXBGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlk
RXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkg
ZmluYWw7CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAog
ICAgIC8vIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CiAgICAgdm9pZCBoYXNWaWRlb0NoYW5n
ZWQoYm9vbCkgb3ZlcnJpZGU7CkBAIC0yNzksNiArMjgwLDE2IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAjZW5kaWYKIH0KIAor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6d2lsbEV4aXRGdWxsc2NyZWVu
KCkKK3sKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIEFTU0VSVChpc1VJVGhyZWFk
KCkpOworICAgIFdlYlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyks
IHRoaXNdICgpIG11dGFibGUgeworICAgICAgICBtX2Z1bGxzY3JlZW5Nb2RlbC0+d2lsbEV4aXRG
dWxsc2NyZWVuKCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAgIEFTU0VSVChpc1VJ
VGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Zp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCmluZGV4IDhjMDlmMTI3NWE4NjI1MWQwY2UyNTMx
YTVhZjQxYWQ3NjNiZjhiN2IuLjVlNDhlYWEyMTRmYjM3N2Y4MjM5YmZjZmY4NjI2M2ZhMDFiMGY0
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIHZvaWQgcmVxdWVzdEhpZGVBbmRF
eGl0RnVsbHNjcmVlbigpIHsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCwgTlNX
aW5kb3cgKnBhcmVudFdpbmRvdyk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4o
KSB7IH0KIAogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBt
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBt
X21vZGUgJiBtb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDJiNjM2MzJhMWYzYzU3
YWUwYzhmZGRhNjVmOGI0MjNlZjMyZjZmMzAuLmI2NmVjN2Y4OTg1MjQyNDdiZjQ3Y2RiMjNiMDU5
MWM2NjIyYzYxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC05MSwxNCArOTEsMTUgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIK
LSAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJldHVyblZpZGVv
Q29udGVudExheWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsZWFudXBGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgZmluYWw7Cisg
ICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHJldHVy
blZpZGVvQ29udGVudExheWVyKCkgZmluYWw7CisgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4o
KSBmaW5hbDsKKyAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQg
d2lsbEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IGZpbmFsOworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lk
IGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgUmVmPFBsYXliYWNrU2Vzc2lvbk1vZGVs
Q29udGV4dD4gbV9wbGF5YmFja1Nlc3Npb25Nb2RlbDsKQEAgLTE1MCw2ICsxNTEsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3Jl
OjpJbnRSZWN0IGZpbmFsUmVjdCk7CiAgICAgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbih1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90
IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpOwor
ICAgIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAg
dm9pZCBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWludDY0X3QgY29udGV4
dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
OwogI2VuZGlmCkBAIC0xNjAsNiArMTYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgcmV0dXJuVmlk
ZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFNldHVwRnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNhMGM3N2Ri
MzQwNmQyZDBkYmY5MDU3YmJjZTg4OWI4MTM5ZGI4NjQuLjBhNzFkMjZmYTgwNTllNmRiYmM4ZmE3
MzhhMzc4YWMyYjFjZTZiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5IHsKICAgICBTZXRIYXNWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQs
IGJvb2wgdmFsdWUpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
ICAgIFByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlz
aWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KQorICAgIFByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgRXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCA3YmYyNjU5MDdlMjRlNDgyNWNkNzQ2MTcwNWJkNjBh
YmYxZDgzNDEwLi5mNzEwMWMzNDBjZGZjYmJlODUxNjRkNGU4MjNlMTgwZDY0ZWZjOGFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0yNTgsNiArMjU4LDEyIEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTW9kZWxDb250ZXh0OjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogICAgICAgICBtX21hbmFn
ZXItPmRpZEVudGVyRnVsbHNjcmVlbihtX2NvbnRleHRJZCk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxs
c2NyZWVuTW9kZWxDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+d2lsbEV4aXRGdWxsc2NyZWVuKG1fY29udGV4dElk
KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmRpZEV4aXRGdWxsc2Ny
ZWVuKCkKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAtNTQxLDYgKzU0NywxMSBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2
NF90IGNvbnRleHRJZCwgYgogI2VuZGlmCiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQorewor
ICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigp
OworfQorCiAjcHJhZ21hIG1hcmsgTWVzc2FnZXMgdG8gVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgog
CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEZ1bGxzY3JlZW5Nb2Rl
KHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpCkBAIC01NjgsNiAr
NTc5LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRTZXR1cEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkU2V0dXBGdWxsc2NyZWVuKGNvbnRleHRJZCksIG1fcGFn
ZS0+cGFnZUlEKCkpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6d2ls
bEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldpbGxFeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZEV4aXRGdWxs
c2NyZWVuKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXgg
YzNjYjFkZjM3NzhlYjBkMTRjNzViMmY4NWViNDgzNGNkZjBhM2MzNy4uZmY4YzRiYWY0NjNiZTM1
Mzk4MzAyOTBlY2QyNDZlZjlmY2ZiMWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xNDMsNiArMTQz
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2
NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1lc3NhZ2VzLmluCmluZGV4IGE3NGFjNDhjZTVjYWZmY2E1NGZkYWVmY2JiNWQxOWNmNjJjOWUz
NGIuLmM3Y2VjMWUyMmUwMTQzNTU4MjFmMGI2NjNjMDU4OWJmZWE3NzJjNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNyw2ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29u
dGV4dElkKQogICAgIERpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCisgICAg
V2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBEaWRFeGl0RnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKICAgICBEaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1tCmluZGV4IDIxNDBiZGQxOWVhNTEyNzYzZTMyMWI0MzI2NTMwMDJhM2Q3
NWIxY2YuLmM1MDRkYzZjNTFjZTI3NTZjOTE0Zjk2YWQwZGY2ODI1MzJhNzIxOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tCkBAIC00MjcsNyArNDI3LDI2IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICB9KTsKICNlbmRp
ZgogfQotICAgIAorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNvbnRl
eHRJZCk7CisKKyAgICBSZWZQdHI8VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ+IG1v
ZGVsOworICAgIFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0PiBpbnRlcmZh
Y2U7CisgICAgc3RkOjp0aWUobW9kZWwsIGludGVyZmFjZSkgPSBlbnN1cmVNb2RlbEFuZEludGVy
ZmFjZShjb250ZXh0SWQpOworCisgICAgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+IHZpZGVvRWxl
bWVudCA9IG1vZGVsLT52aWRlb0VsZW1lbnQoKTsKKyAgICBpZiAoIXZpZGVvRWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnQsIGNv
bnRleHRJZF0geworICAgICAgICB2aWRlb0VsZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOwor
ICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQorICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpLCBwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UtPnBhZ2VJRCgpKTsKKyAgICB9KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIExPRyhGdWxs
c2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCVwLCAl
eCkiLCB0aGlzLCBjb250ZXh0SWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336971</attachid>
            <date>2018-04-01 22:26:28 -0700</date>
            <delta_ts>2018-04-02 04:33:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180401222627.patch</filename>
            <type>text/plain</type>
            <size>37439</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjU3ZWIyY2Q4YWNiNmQ0OWExZWMxMTVhNWQ2NmZk
OTU0NGUxY2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp1cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dXBkYXRlVmlkZW9G
dWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhl
bEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4p
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNob3VsZEV4aXRGdWxs
c2NyZWVuV2l0aFJlYXNvbik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorCiAyMDE4LTAzLTMwICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1JTUVUeXBl
UmVnaXN0cnk6OmdldFN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5MjlhYmIxOTVjM2MxMDIzMDNkOTljMWY5ZGU0NjM2ZGFhYTgxYTQxLi5iNGQ0ODdiMjU0
NGRmMTU0MjExYjY1ZWNmNWEzOTM2NmEyN2VhNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE4LTAzLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVy
IGltYWdlIGR1cmluZyBmdWxsc2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg5NDAzMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKToK
KwogMjAxOC0wMy0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIG1lc3NhZ2VzLnB5IGNvZGVnZW4gZm9yIFN0cmluZywgZml4IHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhMGEwOTI1ODc2NTNlYTc2
MDljYjQ0NTUzM2Y5YWNhMTJkZTJhMDk4Li4xN2MxNGI1YzcwN2UxM2ViYzM1OTk3YmFkZjEzZDE4
OTY4OTdkYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTYwMjMsNiArNjAyMywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogCiAjaWYgUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpKQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7Cisg
ICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+dXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJ
bmxpbmUoKQogewogICAgIHJldHVybiAhbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDc4MjU0Zjg1OTc4ODMxNDIyOWQ3MTY4
Y2Q2MTdiOTI5YjZmMjIxYS4uYTMyNDU4MDM2MDBiMzc3MWI5Y2U3MjYyYjdjYzhmOWQzMzA4MTEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw2ICs1NTQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4
IDViMDRmZDMzMTBhZWYwNTEwYWUyYjQyZjQ0NDNiZjQ3MTkyNDYwNWUuLjRlYjA1ODBjOTYxMzlk
ZDQ3ZTc1ODEyZTYxOWJjOTA1ZDZiNzZlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCmluZGV4IDYwNzM3NDg2YTQ0ZmU5
OTU0ZDc1Y2E1ZjkxYTljZTYyYzQxNDg5MzEuLjgxZjg0ZjUwMWRmZGU4NzQyNDViZWNjNDMwZGEy
MWU4ZTQxZmI2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCopOwogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9FbGVtZW50LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB3YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyID0gW10geyB9KTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpF
dmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAy
MmVkMjEzNThjZTYzZmUzZWZiZjkwZDg1MGNmNGUxNWM5MmY2NDUyLi5jM2Y3ZGVlNzc0NjhiNTZk
ZjdmZjY2YTM0NTUyMmU2MjEwYjcwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5tbQpAQCAtMTAwLDYgKzEwMCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdHJpbgogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2lsbEV4aXRGdWxs
c2NyZWVuKCkKK3sKKyAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgIG1fdmlkZW9FbGVt
ZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9MYXllcikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQzZGQx
MGYwZWZmODczODhiNjFiYThlMGQxOTY2ODU5Zjc1MzUzZGYuLjhhNDY4NmFlMjY2YTY3ZWJjMjFk
MDg4MGQzMDZmODMyNjhlNmI1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTcwNSw2ICs3MDUsMTEgQEAgdm9pZCBNZWRpYVBs
YXllcjo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIsIFdURjo6
RnVuY3Rpb248dm8KICAgICBtX3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKGxheWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKK3sKKyAgICBtX3ByaXZhdGUtPnVwZGF0
ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdmYjE4NDg1NGVjODg3YjVkN2JmOTdh
NTc2MTZmZDY0MjQ4YWQ5NDYuLmM2NGVkOTE3NzIwN2ZiNDViYzhiYjFlNGEwYjQ0YmY3ZTM1NzUw
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMzM1LDYgKzMzNSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCk7CiAgICAgdXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5Owog
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogICAgIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggZDNmMjUwMTc3MDQ4NWMwZjhjMTUxYmQ3NDY2ZWExMTc5MzVlMjcwZC4uZjY2MDM2MTEw
NzQ5MTY5NWU3Mzk1ZWUyZmU5YzE0MjlhMWY1MzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTYxLDYgKzYx
LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggYWMzOWQ0ZjRhNWI5ZTkzZDYzM2UxNjlkZjRkZWE0YjkwMjY3NmQ1ZC4uNjYyYTk0YzllMzA2
OGVjM2IyOThhN2I0ODNmOGE2MWI1ZjUzY2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDcgKzQ2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllcios
IEludFNpemUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3Jt
TGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZl
SW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYjhhMThhNzcw
ZjE5M2Q3NWQ0MTcxZGVhZDNkN2YwYmFjMThiNjUxMC4uZjQ2NDcwM2NmOTdmNDhhNDkxZWIwYzkw
NTk3YjNjNjdhZGYxZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTg1LDcgKzE4NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVk
aWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwpAQCAtMjYxLDEwICsyNjIs
MTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklE
RU9fT1VUUFVUKQorICAgIGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7IFVwZGF0ZVN5bmNocm9ub3Vz
bHksIFVwZGF0ZUFzeW5jaHJvbm91c2x5IH07CisgICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2UoVXBk
YXRlVHlwZSB0eXBlID0gVXBkYXRlVHlwZTo6VXBkYXRlQXN5bmNocm9ub3VzbHkpOworCiAgICAg
dm9pZCBjcmVhdGVWaWRlb091dHB1dCgpOwogICAgIHZvaWQgZGVzdHJveVZpZGVvT3V0cHV0KCk7
CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUxhc3RJ
bWFnZSgpOwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZv
aWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNWMyYjJmYjNlOTRmMzM5OGQyZjIzMzVh
NTU1Zjk4N2FhOWU1ZGMyMC4uZTBiZWYyMWI2YTRiODMyN2M0NTdjZjlmMDI5YjNmNmQ3MjU4M2M5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBjcmVhdGVW
aWRlb091dHB1dCgpOworI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9
CiAKQEAgLTExNjIsOSArMTE2NiwxNiBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKIHsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRh
dGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CisgICAgbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KG1fbGFzdEltYWdlKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVw
ZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKKyAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFnZSk7
CiAgICAgdXBkYXRlRGlzYWJsZUV4dGVybmFsUGxheWJhY2soKTsKIH0KIApAQCAtMjIzMSw2ICsy
MjQyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
VmlkZW9PdXRwdXQoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiB7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICBj
cmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKQEAgLTIyNTks
OSArMjI3MywxNSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZp
ZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBo
YXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1d
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxh
c3RJbWFnZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiB7CiAjaWYgSEFWRShDT1JFX1ZJREVPKQorICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09
IFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9ub3VzbHkgJiYgIW1fbGFzdEltYWdlICYmICF2aWRl
b091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCisgICAgICAgIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogICAgIC8vIENhbGxzIHRvIGNvcHlQaXhlbEJ1ZmZlckZv
ckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVybiBuaWwgaWYgdGhlIHBpeGVs
IGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUgaGFzIGFscmVhZHkgYmVlbiBy
ZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQgaW1hZ2UgKGlmIGFueSkKICAg
ICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgpAQCAtMjI5MSwxMSArMjMxMSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkK
IHsKLSAgICBpZiAobV92aWRlb091dHB1dCAmJiAhbV9sYXN0SW1hZ2UgJiYgIXZpZGVvT3V0cHV0
SGFzQXZhaWxhYmxlRnJhbWUoKSkKLSAgICAgICAgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSgpOwotCi0gICAgdXBkYXRlTGFzdEltYWdlKCk7Ci0KKyAgICB1cGRhdGVMYXN0
SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
YjRiYzk0MGExOTc4ZTM4ZGEzODUwY2Q5NTUwNTM3YWI3ODBkZTE5NC4uNTk3OTcyMmFjNWJmZmUz
ODZmNTQ4MGFhZmExYTY2ZDBjMmM0NDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtMTA2OCw3ICsxMDY4LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHVwZGF0ZUxhc3RJbWFnZSgpOworICAgIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fbGFzdEltYWdlKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkN2Fm
M2EzNDQwOTFmNjdkMjE1MWVhN2JhNTRlYWNjNmEzNGM4ZTYzLi41NjQ3ZGMyM2M3NjFhM2RiNGZm
MjU4MWY1ZjA3YzZhMTYyMjM5NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC04
OTksNyArODk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgdXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2ltYWdlUGFpbnRlci5j
Z0ltYWdlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaApp
bmRleCA0ZDdmNDY3YzRlOGZjZDI2NWRlMzk3YzE1Y2JkZDMyNGYzZjQwMWUyLi5hYTJhNTdmMWZi
MjQyMzkyYjA1YzEzNTJlMTZmZWMwNDM1OTFiNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC00Myw3
ICs0Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0K
ICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRm
b3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNj
cmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Vmlk
ZW9MYXllcigpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCAyY2JmZWVmMmM5NGNiNmQz
N2NkYjlmN2E2NDBjZjg2MzdhNTZmOWMyLi5jODYxMzNhNGRlNDg1ZDUxY2MwMGZjZDgzOThjOTY5
MGQwOGU3OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIg
KnZpZGVvTGF5ZXIsIEkKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldE5hbWU6QCJXZWJWaWRl
b0NvbnRhaW5lckxheWVyIl07CiAjZW5kaWYKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50c0dyYXZpdHk6a0NBR3Jhdml0eVJlc2l6ZUFzcGVjdF07CisKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5MYXllcikgewogICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVl
bkZyYW1lLmhlaWdodCgpKV07CiAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2Vy
dFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwpAQCAtODMsNyArODUsMTMg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBs
YXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVW
aWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENv
bnRlbnRzOihpZClpbWFnZS5nZXQoKV07Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKQEAgLTk4LDYgKzEwNiw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkCiAgICAg
aWYgKG1fdmlkZW9MYXllcikgewogICAgICAgICBDQUNvbnRleHQgKm9sZENvbnRleHQgPSBbbV92
aWRlb0xheWVyIGNvbnRleHRdOwogCisgICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisg
ICAgICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihpZCljdXJyZW50SW1h
Z2UuZ2V0KCldOworCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7CiAgICAg
ICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5
ZXIuZ2V0KCkgYXRJbmRleDowXTsKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksIG1fdmlkZW9G
dWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggYWMx
NmNkNjk2OWU4ZjY0NjkxYmY4MmI2YmZiZTg2ODg1ZTkzNjdjMS4uYjQ3ZGVkYWZjZTY2NTBhNTg4
OTY0NmRhYTE0ZjRiNjJhMzc2ODY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg0LDYg
Kzg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlz
aWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElubGluZVJlY3QoY29uc3QgSW50UmVjdCYsIGJv
b2wgdmlzaWJsZSk7CkBAIC0yMjcsNiArMjI4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9l
eGl0Q29tcGxldGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50ZXJSZXF1ZXN0ZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5BZnRlckVudGVyaW5nRm9y
ZWdyb3VuZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dhaXRpbmdGb3JQcmVwYXJlZFRvRXhpdCB7
IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA1ZTk5
YzFmM2I1MjA2ZGFlOTRmMWRiNDk1ZDE5MWNlNjRiM2Q0MmE4Li4wOTIzNzM3NTNhNjg3OWRjZTQ5
ODRkNjczYmZkYzMxNzI2N2FlNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02MCw3
ICs2MCwxMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlv
biwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElO
S19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RG
aWxsLCBOU1N0cmluZyAqKQogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKKyNlbHNlCiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWS2l0KQorI2VuZGlmCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZLaXQsIEFWUGljdHVyZUluUGljdHVyZUNvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIEFWUGxheWVyVmlld0NvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIF9fQVZQbGF5ZXJMYXllclZpZXcpCkBAIC05NzksNyArOTgzLDcgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50
UmVjdCYgZmluYWxSZWN0KQogICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIt
PmRpZEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAg
ICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93
c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAgIApAQCAtMTEwMyw2ICsxMTA3LDE1IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShi
b29sIHZpc2libGUsIGNvbnN0CiAgICAgfQogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGlmICghbV93YWl0
aW5nRm9yUHJlcGFyZWRUb0V4aXQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2FpdGluZ0Zv
clByZXBhcmVkVG9FeGl0ID0gZmFsc2U7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVx
dWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUsIHRydWUpOworfQorCiBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiBtX2N1cnJlbnRNb2Rl
LmlzRnVsbHNjcmVlbigpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwpAQCAtMTI1MSwx
MiArMTI2NCwyMCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRF
eGl0RnVsbHNjcmVlbldpdGhSZWFzb24oVmlkZW9GdWxsc2NyZQogICAgIGlmIChwbGF5YmFja1Nl
c3Npb25Nb2RlbCgpICYmIChyZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0
b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpSZW1vdGVDb250cm9s
U3RvcEV2ZW50UmVjZWl2ZWQpKQogICAgICAgICBwbGF5YmFja1Nlc3Npb25Nb2RlbCgpLT5wYXVz
ZSgpOwogCi0gICAgQk9PTCBmaW5pc2hlZCA9IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNv
bjo6RG9uZUJ1dHRvblRhcHBlZCB8fCByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OlBp
bmNoR2VzdHVyZUhhbmRsZWQ7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEZ1
bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmUsIGZpbmlzaGVkKTsKLQogICAgIGlmICghbV93YXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkgJiYg
IWlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5nKQogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3Rh
cnRPbmVTaG90KGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwpOwogCisjaWYgRU5BQkxFKEVY
VFJBX1pPT01fTU9ERSkKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAg
ICAgICAgbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSB0cnVlOworICAgICAgICBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIEJPT0wgZmluaXNoZWQgPSByZWFzb24gPT0g
RXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRG
dWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7CisKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKQEAgLTEzOTAsNiArMTQxMSwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdAogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRG
dWxsc2NyZWVuKCkKK3sKK30KKwogYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdAogewogICAg
IHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ10gJiYgKG1fc3RhbmRieSB8fCBt
X2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDA0MDJmZWNlNjk2OWMzODJi
YWZkNzVkOWZjY2QzMmViM2UwNzUwMDYuLmJiZjFlMmE0ZDdiYTA0MGY3M2M1MDQ0YjY1YWE3YWUz
ZDhmN2Q5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTIyLDE0ICsx
MjIsMTUgQEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dCgp
IHsgfQogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIKLSAgICB2b2lkIHJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVy
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgZmluYWw7CisgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIGZpbmFsIHsgfQorICAgIHZvaWQgd2lsbEV4
aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFs
OworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsKQEAg
LTI3OSw2ICsyODAsMTYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
ZGlkU2V0dXBGdWxsc2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQoreworI2lmIEVOQUJMRShFWFRS
QV9aT09NX01PREUpCisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgV2ViVGhyZWFkUnVu
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsK
KyNlbmRpZgorfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRF
eGl0RnVsbHNjcmVlbigpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CkBAIC0yODcsNyAr
Mjk4LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZGlkRXhpdEZ1
bGxzY3JlZW4oKQogICAgICAgICBtX2ludGVyZmFjZS0+Y2xlYW51cEZ1bGxzY3JlZW4oKTsKICAg
ICB9KTsKICNlbHNlCi0gICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CisgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdICgpIG11dGFibGUgewogICAgICAgICBtX2Z1bGxz
Y3JlZW5Nb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsLCBbcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXNdICgpIG11dGFibGUgewogICAgICAgICAgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzXSB7CiAgICAgICAgICAgICAgICAgbV9pbnRl
cmZhY2UtPmNsZWFudXBGdWxsc2NyZWVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKaW5kZXggOGMwOWYx
Mjc1YTg2MjUxZDBjZTI1MzFhNWFmNDFhZDc2M2JmOGI3Yi4uNWU0OGVhYTIxNGZiMzc3ZjgyMzli
ZmNmZjg2MjYzZmEwMWIwZjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaApAQCAtNzgsNiArNzgsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9p
ZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0
JiBpbmxpbmVSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93KTsKKyAgICB2b2lkIHByZXBhcmVk
VG9FeGl0RnVsbHNjcmVlbigpIHsgfQogCiAgICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICBib29s
IGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUp
IGNvbnN0IHsgcmV0dXJuIG1fbW9kZSAmIG1vZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5k
ZXggMmI2MzYzMmExZjNjNTdhZTBjOGZkZGE2NWY4YjQyM2VmMzJmNmYzMC4uYjY2ZWM3Zjg5ODUy
NDI0N2JmNDdjZGIyM2IwNTkxYzY2MjJjNjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAg
LTkxLDE0ICs5MSwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAg
IHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNl
dHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSgpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGlu
ZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcigpIGZpbmFs
OworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFNldHVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkg
ZmluYWw7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigp
IGZpbmFsOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWw7CiAK
ICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICBSZWY8UGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0PiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsOwpAQCAtMTUw
LDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsKICAgICB2b2lkIGNsZWFudXBG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJl
Y3QgaW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9k
ZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSk7CiAjZW5kaWYKQEAgLTE2MCw2ICsxNjIsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAg
ICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwogICAg
IHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB3
aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEV4aXRG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggM2EwYzc3ZGIzNDA2ZDJkMGRiZjkwNTdiYmNlODg5YjgxMzlkYjg2NC4uMGE3MWQy
NmZhODA1OWU2ZGJiYzhmYTczOGEzNzhhYzJiMWNlNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNiArMzEsNyBAQCBtZXNzYWdlcyAtPiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEhhc1ZpZGVvQ29udGVudExheWVyKHVp
bnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKICAgICBDbGVhbnVwRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgUHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCisgICAg
UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVu
TW9kZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDdiZjI2NTkwN2UyNGU0
ODI1Y2Q3NDYxNzA1YmQ2MGFiZjFkODM0MTAuLmY3MTAxYzM0MGNkZmNiYmU4NTE2NGQ0ZTgyM2Ux
ODBkNjRlZmM4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI1OCw2ICsyNTgsMTIg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmRpZEVudGVyRnVsbHNjcmVlbigp
CiAgICAgICAgIG1fbWFuYWdlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKG1fY29udGV4dElkKTsKIH0K
IAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OndpbGxFeGl0RnVsbHNjcmVlbigp
Cit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT53aWxsRXhpdEZ1bGxz
Y3JlZW4obV9jb250ZXh0SWQpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4
dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAgIGlmIChtX21hbmFnZXIpCkBAIC01NDEsNiAr
NTQ3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBiCiAjZW5kaWYKIH0KIAordm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRf
dCBjb250ZXh0SWQpCit7CisgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkucHJlcGFyZWRU
b0V4aXRGdWxsc2NyZWVuKCk7Cit9CisKICNwcmFnbWEgbWFyayBNZXNzYWdlcyB0byBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1
ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhN
ZWRpYSkKQEAgLTU2OCw2ICs1NzksMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpEaWRTZXR1cEZ1bGxzY3JlZW4o
Y29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQorewor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6V2lsbEV4
aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCBjM2NiMWRmMzc3OGViMGQxNGM3NWIyZjg1ZWI0ODM0Y2RmMGEzYzM3
Li5mZjhjNGJhZjQ2M2JlMzUzOTgzMDI5MGVjZDI0NmVmOWZjZmIxZGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTc0YWM0OGNlNWNhZmZjYTU0ZmRh
ZWZjYmI1ZDE5Y2Y2MmM5ZTM0Yi4uYzdjZWMxZTIyZTAxNDM1NTgyMWYwYjY2M2MwNTg5YmZlYTc3
MmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcg
QEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgUmVxdWVzdFZpZGVv
Q29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRM
YXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgRGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKKyAgICBXaWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
ICAgIERpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBEaWRFbnRlckZ1
bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZENsZWFudXBGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMjE0MGJkZDE5ZWE1MTI3NjNl
MzIxYjQzMjY1MzAwMmEzZDc1YjFjZi4uODQ3OWYzOGRiNTUyODUyZTZlOTU5ZmIzODYzNzc5MjIz
MGIwMWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTQyNyw3ICs0MjcsMjYgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElk
KQogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBMT0coRnVs
bHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbiglcCwg
JXgpIiwgdGhpcywgY29udGV4dElkKTsKKworICAgIFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudD4gbW9kZWw7CisgICAgUmVmUHRyPFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUNvbnRleHQ+IGludGVyZmFjZTsKKyAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVu
c3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CisKKyAgICBSZWZQdHI8SFRNTFZpZGVv
RWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZpZGVvRWxlbWVudCgpOworICAgIGlmICgh
dmlkZW9FbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBX
VEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0geworICAgICAgICB2aWRlb0VsZW1lbnQt
PndpbGxFeGl0RnVsbHNjcmVlbigpOworICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdl
KQorICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0
SWQpLCBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
ZGlkRW50ZXJGdWxsc2NyZWVuKCVwLCAleCkiLCB0aGlzLCBjb250ZXh0SWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336978</attachid>
            <date>2018-04-02 04:33:02 -0700</date>
            <delta_ts>2018-04-02 06:32:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180402043301.patch</filename>
            <type>text/plain</type>
            <size>36887</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjU3ZWIyY2Q4YWNiNmQ0OWExZWMxMTVhNWQ2NmZk
OTU0NGUxY2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp1cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dXBkYXRlVmlkZW9G
dWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhl
bEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4p
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNob3VsZEV4aXRGdWxs
c2NyZWVuV2l0aFJlYXNvbik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorCiAyMDE4LTAzLTMwICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1JTUVUeXBl
UmVnaXN0cnk6OmdldFN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5MjlhYmIxOTVjM2MxMDIzMDNkOTljMWY5ZGU0NjM2ZGFhYTgxYTQxLi5iNGQ0ODdiMjU0
NGRmMTU0MjExYjY1ZWNmNWEzOTM2NmEyN2VhNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE4LTAzLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVy
IGltYWdlIGR1cmluZyBmdWxsc2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg5NDAzMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKToK
KwogMjAxOC0wMy0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIG1lc3NhZ2VzLnB5IGNvZGVnZW4gZm9yIFN0cmluZywgZml4IHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhMGEwOTI1ODc2NTNlYTc2
MDljYjQ0NTUzM2Y5YWNhMTJkZTJhMDk4Li4xN2MxNGI1YzcwN2UxM2ViYzM1OTk3YmFkZjEzZDE4
OTY4OTdkYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTYwMjMsNiArNjAyMywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogCiAjaWYgUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpKQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7Cisg
ICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+dXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJ
bmxpbmUoKQogewogICAgIHJldHVybiAhbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDc4MjU0Zjg1OTc4ODMxNDIyOWQ3MTY4
Y2Q2MTdiOTI5YjZmMjIxYS4uYTMyNDU4MDM2MDBiMzc3MWI5Y2U3MjYyYjdjYzhmOWQzMzA4MTEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw2ICs1NTQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4
IDViMDRmZDMzMTBhZWYwNTEwYWUyYjQyZjQ0NDNiZjQ3MTkyNDYwNWUuLjRlYjA1ODBjOTYxMzlk
ZDQ3ZTc1ODEyZTYxOWJjOTA1ZDZiNzZlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCmluZGV4IDYwNzM3NDg2YTQ0ZmU5
OTU0ZDc1Y2E1ZjkxYTljZTYyYzQxNDg5MzEuLjgxZjg0ZjUwMWRmZGU4NzQyNDViZWNjNDMwZGEy
MWU4ZTQxZmI2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCopOwogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9FbGVtZW50LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB3YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyID0gW10geyB9KTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpF
dmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAy
MmVkMjEzNThjZTYzZmUzZWZiZjkwZDg1MGNmNGUxNWM5MmY2NDUyLi5jM2Y3ZGVlNzc0NjhiNTZk
ZjdmZjY2YTM0NTUyMmU2MjEwYjcwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5tbQpAQCAtMTAwLDYgKzEwMCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdHJpbgogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2lsbEV4aXRGdWxs
c2NyZWVuKCkKK3sKKyAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgIG1fdmlkZW9FbGVt
ZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9MYXllcikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQzZGQx
MGYwZWZmODczODhiNjFiYThlMGQxOTY2ODU5Zjc1MzUzZGYuLjhhNDY4NmFlMjY2YTY3ZWJjMjFk
MDg4MGQzMDZmODMyNjhlNmI1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTcwNSw2ICs3MDUsMTEgQEAgdm9pZCBNZWRpYVBs
YXllcjo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIsIFdURjo6
RnVuY3Rpb248dm8KICAgICBtX3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKGxheWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKK3sKKyAgICBtX3ByaXZhdGUtPnVwZGF0
ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdmYjE4NDg1NGVjODg3YjVkN2JmOTdh
NTc2MTZmZDY0MjQ4YWQ5NDYuLmM2NGVkOTE3NzIwN2ZiNDViYzhiYjFlNGEwYjQ0YmY3ZTM1NzUw
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMzM1LDYgKzMzNSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCk7CiAgICAgdXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5Owog
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogICAgIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggZDNmMjUwMTc3MDQ4NWMwZjhjMTUxYmQ3NDY2ZWExMTc5MzVlMjcwZC4uZjY2MDM2MTEw
NzQ5MTY5NWU3Mzk1ZWUyZmU5YzE0MjlhMWY1MzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTYxLDYgKzYx
LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggYWMzOWQ0ZjRhNWI5ZTkzZDYzM2UxNjlkZjRkZWE0YjkwMjY3NmQ1ZC4uNjYyYTk0YzllMzA2
OGVjM2IyOThhN2I0ODNmOGE2MWI1ZjUzY2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDcgKzQ2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllcios
IEludFNpemUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3Jt
TGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZl
SW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYjhhMThhNzcw
ZjE5M2Q3NWQ0MTcxZGVhZDNkN2YwYmFjMThiNjUxMC4uZjQ2NDcwM2NmOTdmNDhhNDkxZWIwYzkw
NTk3YjNjNjdhZGYxZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTg1LDcgKzE4NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVk
aWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwpAQCAtMjYxLDEwICsyNjIs
MTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklE
RU9fT1VUUFVUKQorICAgIGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7IFVwZGF0ZVN5bmNocm9ub3Vz
bHksIFVwZGF0ZUFzeW5jaHJvbm91c2x5IH07CisgICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2UoVXBk
YXRlVHlwZSB0eXBlID0gVXBkYXRlVHlwZTo6VXBkYXRlQXN5bmNocm9ub3VzbHkpOworCiAgICAg
dm9pZCBjcmVhdGVWaWRlb091dHB1dCgpOwogICAgIHZvaWQgZGVzdHJveVZpZGVvT3V0cHV0KCk7
CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUxhc3RJ
bWFnZSgpOwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZv
aWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNWMyYjJmYjNlOTRmMzM5OGQyZjIzMzVh
NTU1Zjk4N2FhOWU1ZGMyMC4uZTBiZWYyMWI2YTRiODMyN2M0NTdjZjlmMDI5YjNmNmQ3MjU4M2M5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBjcmVhdGVW
aWRlb091dHB1dCgpOworI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9
CiAKQEAgLTExNjIsOSArMTE2NiwxNiBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKIHsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRh
dGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CisgICAgbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KG1fbGFzdEltYWdlKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVw
ZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKKyAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFnZSk7
CiAgICAgdXBkYXRlRGlzYWJsZUV4dGVybmFsUGxheWJhY2soKTsKIH0KIApAQCAtMjIzMSw2ICsy
MjQyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
VmlkZW9PdXRwdXQoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiB7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICBj
cmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKQEAgLTIyNTks
OSArMjI3MywxNSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZp
ZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBo
YXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1d
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxh
c3RJbWFnZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiB7CiAjaWYgSEFWRShDT1JFX1ZJREVPKQorICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09
IFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9ub3VzbHkgJiYgIW1fbGFzdEltYWdlICYmICF2aWRl
b091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCisgICAgICAgIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogICAgIC8vIENhbGxzIHRvIGNvcHlQaXhlbEJ1ZmZlckZv
ckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVybiBuaWwgaWYgdGhlIHBpeGVs
IGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUgaGFzIGFscmVhZHkgYmVlbiBy
ZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQgaW1hZ2UgKGlmIGFueSkKICAg
ICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgpAQCAtMjI5MSwxMSArMjMxMSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkK
IHsKLSAgICBpZiAobV92aWRlb091dHB1dCAmJiAhbV9sYXN0SW1hZ2UgJiYgIXZpZGVvT3V0cHV0
SGFzQXZhaWxhYmxlRnJhbWUoKSkKLSAgICAgICAgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSgpOwotCi0gICAgdXBkYXRlTGFzdEltYWdlKCk7Ci0KKyAgICB1cGRhdGVMYXN0
SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
YjRiYzk0MGExOTc4ZTM4ZGEzODUwY2Q5NTUwNTM3YWI3ODBkZTE5NC4uNTk3OTcyMmFjNWJmZmUz
ODZmNTQ4MGFhZmExYTY2ZDBjMmM0NDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtMTA2OCw3ICsxMDY4LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHVwZGF0ZUxhc3RJbWFnZSgpOworICAgIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fbGFzdEltYWdlKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkN2Fm
M2EzNDQwOTFmNjdkMjE1MWVhN2JhNTRlYWNjNmEzNGM4ZTYzLi41NjQ3ZGMyM2M3NjFhM2RiNGZm
MjU4MWY1ZjA3YzZhMTYyMjM5NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC04
OTksNyArODk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgdXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2ltYWdlUGFpbnRlci5j
Z0ltYWdlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaApp
bmRleCA0ZDdmNDY3YzRlOGZjZDI2NWRlMzk3YzE1Y2JkZDMyNGYzZjQwMWUyLi5hYTJhNTdmMWZi
MjQyMzkyYjA1YzEzNTJlMTZmZWMwNDM1OTFiNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC00Myw3
ICs0Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0K
ICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRm
b3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNj
cmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Vmlk
ZW9MYXllcigpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCAyY2JmZWVmMmM5NGNiNmQz
N2NkYjlmN2E2NDBjZjg2MzdhNTZmOWMyLi5jODYxMzNhNGRlNDg1ZDUxY2MwMGZjZDgzOThjOTY5
MGQwOGU3OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIg
KnZpZGVvTGF5ZXIsIEkKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldE5hbWU6QCJXZWJWaWRl
b0NvbnRhaW5lckxheWVyIl07CiAjZW5kaWYKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50c0dyYXZpdHk6a0NBR3Jhdml0eVJlc2l6ZUFzcGVjdF07CisKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5MYXllcikgewogICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVl
bkZyYW1lLmhlaWdodCgpKV07CiAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2Vy
dFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwpAQCAtODMsNyArODUsMTMg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBs
YXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVW
aWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENv
bnRlbnRzOihpZClpbWFnZS5nZXQoKV07Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKQEAgLTk4LDYgKzEwNiw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkCiAgICAg
aWYgKG1fdmlkZW9MYXllcikgewogICAgICAgICBDQUNvbnRleHQgKm9sZENvbnRleHQgPSBbbV92
aWRlb0xheWVyIGNvbnRleHRdOwogCisgICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisg
ICAgICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihpZCljdXJyZW50SW1h
Z2UuZ2V0KCldOworCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7CiAgICAg
ICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5
ZXIuZ2V0KCkgYXRJbmRleDowXTsKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksIG1fdmlkZW9G
dWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggYWMx
NmNkNjk2OWU4ZjY0NjkxYmY4MmI2YmZiZTg2ODg1ZTkzNjdjMS4uYjQ3ZGVkYWZjZTY2NTBhNTg4
OTY0NmRhYTE0ZjRiNjJhMzc2ODY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg0LDYg
Kzg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlz
aWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElubGluZVJlY3QoY29uc3QgSW50UmVjdCYsIGJv
b2wgdmlzaWJsZSk7CkBAIC0yMjcsNiArMjI4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9l
eGl0Q29tcGxldGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50ZXJSZXF1ZXN0ZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5BZnRlckVudGVyaW5nRm9y
ZWdyb3VuZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dhaXRpbmdGb3JQcmVwYXJlZFRvRXhpdCB7
IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA1ZTk5
YzFmM2I1MjA2ZGFlOTRmMWRiNDk1ZDE5MWNlNjRiM2Q0MmE4Li4wOTIzNzM3NTNhNjg3OWRjZTQ5
ODRkNjczYmZkYzMxNzI2N2FlNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02MCw3
ICs2MCwxMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlv
biwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElO
S19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RG
aWxsLCBOU1N0cmluZyAqKQogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKKyNlbHNlCiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWS2l0KQorI2VuZGlmCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZLaXQsIEFWUGljdHVyZUluUGljdHVyZUNvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIEFWUGxheWVyVmlld0NvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIF9fQVZQbGF5ZXJMYXllclZpZXcpCkBAIC05NzksNyArOTgzLDcgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50
UmVjdCYgZmluYWxSZWN0KQogICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIt
PmRpZEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAg
ICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93
c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAgIApAQCAtMTEwMyw2ICsxMTA3LDE1IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShi
b29sIHZpc2libGUsIGNvbnN0CiAgICAgfQogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGlmICghbV93YWl0
aW5nRm9yUHJlcGFyZWRUb0V4aXQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2FpdGluZ0Zv
clByZXBhcmVkVG9FeGl0ID0gZmFsc2U7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVx
dWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUsIHRydWUpOworfQorCiBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiBtX2N1cnJlbnRNb2Rl
LmlzRnVsbHNjcmVlbigpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwpAQCAtMTI1MSwx
MiArMTI2NCwyMCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRF
eGl0RnVsbHNjcmVlbldpdGhSZWFzb24oVmlkZW9GdWxsc2NyZQogICAgIGlmIChwbGF5YmFja1Nl
c3Npb25Nb2RlbCgpICYmIChyZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0
b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpSZW1vdGVDb250cm9s
U3RvcEV2ZW50UmVjZWl2ZWQpKQogICAgICAgICBwbGF5YmFja1Nlc3Npb25Nb2RlbCgpLT5wYXVz
ZSgpOwogCi0gICAgQk9PTCBmaW5pc2hlZCA9IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNv
bjo6RG9uZUJ1dHRvblRhcHBlZCB8fCByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OlBp
bmNoR2VzdHVyZUhhbmRsZWQ7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEZ1
bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmUsIGZpbmlzaGVkKTsKLQogICAgIGlmICghbV93YXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkgJiYg
IWlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5nKQogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3Rh
cnRPbmVTaG90KGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwpOwogCisjaWYgRU5BQkxFKEVY
VFJBX1pPT01fTU9ERSkKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAg
ICAgICAgbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSB0cnVlOworICAgICAgICBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIEJPT0wgZmluaXNoZWQgPSByZWFzb24gPT0g
RXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRG
dWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7CisKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKQEAgLTEzOTAsNiArMTQxMSwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdAogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRG
dWxsc2NyZWVuKCkKK3sKK30KKwogYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdAogewogICAg
IHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ10gJiYgKG1fc3RhbmRieSB8fCBt
X2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDA0MDJmZWNlNjk2OWMzODJi
YWZkNzVkOWZjY2QzMmViM2UwNzUwMDYuLjI1NTkxNGY0NGM1ZDY4MTM0MzEyZWQ4OWFlNDc4ZWNj
ZmVlYzFhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTIyLDE0ICsx
MjIsMTUgQEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dCgp
IHsgfQogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIKLSAgICB2b2lkIHJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVy
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgZmluYWw7CisgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIGZpbmFsIHsgfQorICAgIHZvaWQgd2lsbEV4
aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFs
OworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsKQEAg
LTI3OSw2ICsyODAsMTYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
ZGlkU2V0dXBGdWxsc2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQoreworI2lmIEVOQUJMRShFWFRS
QV9aT09NX01PREUpCisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgV2ViVGhyZWFkUnVu
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsK
KyNlbmRpZgorfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRF
eGl0RnVsbHNjcmVlbigpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLmgKaW5kZXggOGMwOWYxMjc1YTg2MjUxZDBjZTI1MzFhNWFmNDFhZDc2M2JmOGI3Yi4uNWU0
OGVhYTIxNGZiMzc3ZjgyMzliZmNmZjg2MjYzZmEwMWIwZjRjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZh
bGlkYXRlKCk7CiAgICAgdm9pZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkgeyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNp
YmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93KTsK
KyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpIHsgfQogCiAgICAgSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBt
X21vZGU7IH0KICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSAmIG1vZGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKaW5kZXggMmI2MzYzMmExZjNjNTdhZTBjOGZkZGE2NWY4YjQyM2VmMzJm
NmYzMC4uYjY2ZWM3Zjg5ODUyNDI0N2JmNDdjZGIyM2IwNTkxYzY2MjJjNjE2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKQEAgLTkxLDE0ICs5MSwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICAvLyBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZvaWQgcmVxdWVzdFVwZGF0
ZUlubGluZVJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXll
cigpIG92ZXJyaWRlOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlk
RW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0Nv
bnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlk
RW50ZXJGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSBm
aW5hbDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRD
bGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFu
YWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0PiBtX3BsYXliYWNrU2Vz
c2lvbk1vZGVsOwpAQCAtMTUwLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleGl0RnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsK
ICAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICNpZiBQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0
aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAjZW5kaWYKQEAgLTE2MCw2ICsx
NjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2
NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2EwYzc3ZGIzNDA2ZDJkMGRiZjkwNTdiYmNlODg5
YjgxMzlkYjg2NC4uMGE3MWQyNmZhODA1OWU2ZGJiYzhmYTczOGEzNzhhYzJiMWNlNmJmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNiArMzEsNyBA
QCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEhhc1Zp
ZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKICAgICBDbGVh
bnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0
IGlubGluZVJlY3QpCisgICAgUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCkKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKICAgICBFeGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmlu
ZGV4IDdiZjI2NTkwN2UyNGU0ODI1Y2Q3NDYxNzA1YmQ2MGFiZjFkODM0MTAuLmY3MTAxYzM0MGNk
ZmNiYmU4NTE2NGQ0ZTgyM2UxODBkNjRlZmM4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
QEAgLTI1OCw2ICsyNTgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmRp
ZEVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdlci0+ZGlkRW50ZXJGdWxsc2NyZWVu
KG1fY29udGV4dElkKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6Ondp
bGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5h
Z2VyLT53aWxsRXhpdEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOworfQorCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1vZGVsQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAgIGlmIChtX21h
bmFnZXIpCkBAIC01NDEsNiArNTQ3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBiCiAjZW5k
aWYKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7Cit9CisKICNwcmFnbWEgbWFyayBN
ZXNzYWdlcyB0byBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpyZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwg
Ym9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKQEAgLTU2OCw2ICs1NzksMTEgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpE
aWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKK3Zv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6V2lsbEV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlE
KCkpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBjM2NiMWRmMzc3OGViMGQxNGM3NWIy
Zjg1ZWI0ODM0Y2RmMGEzYzM3Li5mZjhjNGJhZjQ2M2JlMzUzOTgzMDI5MGVjZDI0NmVmOWZjZmIx
ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHdpbGxF
eGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTc0
YWM0OGNlNWNhZmZjYTU0ZmRhZWZjYmI1ZDE5Y2Y2MmM5ZTM0Yi4uYzdjZWMxZTIyZTAxNDM1NTgy
MWYwYjY2M2MwNTg5YmZlYTc3MmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7
CiAgICAgUmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBS
ZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgRGlkU2V0dXBG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBXaWxsRXhpdEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKQogICAgIERpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
MjE0MGJkZDE5ZWE1MTI3NjNlMzIxYjQzMjY1MzAwMmEzZDc1YjFjZi4uODQ3OWYzOGRiNTUyODUy
ZTZlOTU5ZmIzODYzNzc5MjIzMGIwMWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTQyNyw3ICs0
MjcsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4o
dWludDY0X3QgY29udGV4dElkKQogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisKK3ZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxF
eGl0RnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsKKworICAgIFJlZlB0cjxW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7CisgICAgUmVmUHRyPFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKKyAgICBzdGQ6OnRpZShtb2Rl
bCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CisKKyAg
ICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZpZGVvRWxl
bWVudCgpOworICAgIGlmICghdmlkZW9FbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0geworICAg
ICAgICB2aWRlb0VsZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOworICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+bV9wYWdlKQorICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihjb250ZXh0SWQpLCBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnBhZ2VJRCgpKTsK
KyAgICB9KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCVwLCAleCkiLCB0aGlzLCBjb250
ZXh0SWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336980</attachid>
            <date>2018-04-02 06:32:52 -0700</date>
            <delta_ts>2018-04-02 13:20:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180402063251.patch</filename>
            <type>text/plain</type>
            <size>36902</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjU3ZWIyY2Q4YWNiNmQ0OWExZWMxMTVhNWQ2NmZk
OTU0NGUxY2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp1cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dXBkYXRlVmlkZW9G
dWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhl
bEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4p
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNob3VsZEV4aXRGdWxs
c2NyZWVuV2l0aFJlYXNvbik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorCiAyMDE4LTAzLTMwICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1JTUVUeXBl
UmVnaXN0cnk6OmdldFN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5MjlhYmIxOTVjM2MxMDIzMDNkOTljMWY5ZGU0NjM2ZGFhYTgxYTQxLi5iNGQ0ODdiMjU0
NGRmMTU0MjExYjY1ZWNmNWEzOTM2NmEyN2VhNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE4LTAzLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVy
IGltYWdlIGR1cmluZyBmdWxsc2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg5NDAzMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKToK
KwogMjAxOC0wMy0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIG1lc3NhZ2VzLnB5IGNvZGVnZW4gZm9yIFN0cmluZywgZml4IHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhMGEwOTI1ODc2NTNlYTc2
MDljYjQ0NTUzM2Y5YWNhMTJkZTJhMDk4Li4xN2MxNGI1YzcwN2UxM2ViYzM1OTk3YmFkZjEzZDE4
OTY4OTdkYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTYwMjMsNiArNjAyMywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogCiAjaWYgUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpKQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7Cisg
ICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+dXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJ
bmxpbmUoKQogewogICAgIHJldHVybiAhbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDc4MjU0Zjg1OTc4ODMxNDIyOWQ3MTY4
Y2Q2MTdiOTI5YjZmMjIxYS4uYTMyNDU4MDM2MDBiMzc3MWI5Y2U3MjYyYjdjYzhmOWQzMzA4MTEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw2ICs1NTQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4
IDViMDRmZDMzMTBhZWYwNTEwYWUyYjQyZjQ0NDNiZjQ3MTkyNDYwNWUuLjRlYjA1ODBjOTYxMzlk
ZDQ3ZTc1ODEyZTYxOWJjOTA1ZDZiNzZlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCmluZGV4IDYwNzM3NDg2YTQ0ZmU5
OTU0ZDc1Y2E1ZjkxYTljZTYyYzQxNDg5MzEuLjgxZjg0ZjUwMWRmZGU4NzQyNDViZWNjNDMwZGEy
MWU4ZTQxZmI2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCopOwogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9FbGVtZW50LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB3YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyID0gW10geyB9KTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpF
dmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAy
MmVkMjEzNThjZTYzZmUzZWZiZjkwZDg1MGNmNGUxNWM5MmY2NDUyLi5jM2Y3ZGVlNzc0NjhiNTZk
ZjdmZjY2YTM0NTUyMmU2MjEwYjcwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5tbQpAQCAtMTAwLDYgKzEwMCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdHJpbgogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2lsbEV4aXRGdWxs
c2NyZWVuKCkKK3sKKyAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgIG1fdmlkZW9FbGVt
ZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9MYXllcikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQzZGQx
MGYwZWZmODczODhiNjFiYThlMGQxOTY2ODU5Zjc1MzUzZGYuLjhhNDY4NmFlMjY2YTY3ZWJjMjFk
MDg4MGQzMDZmODMyNjhlNmI1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTcwNSw2ICs3MDUsMTEgQEAgdm9pZCBNZWRpYVBs
YXllcjo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIsIFdURjo6
RnVuY3Rpb248dm8KICAgICBtX3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKGxheWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKK3sKKyAgICBtX3ByaXZhdGUtPnVwZGF0
ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdmYjE4NDg1NGVjODg3YjVkN2JmOTdh
NTc2MTZmZDY0MjQ4YWQ5NDYuLmM2NGVkOTE3NzIwN2ZiNDViYzhiYjFlNGEwYjQ0YmY3ZTM1NzUw
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMzM1LDYgKzMzNSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCk7CiAgICAgdXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5Owog
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogICAgIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggZDNmMjUwMTc3MDQ4NWMwZjhjMTUxYmQ3NDY2ZWExMTc5MzVlMjcwZC4uZjY2MDM2MTEw
NzQ5MTY5NWU3Mzk1ZWUyZmU5YzE0MjlhMWY1MzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTYxLDYgKzYx
LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggYWMzOWQ0ZjRhNWI5ZTkzZDYzM2UxNjlkZjRkZWE0YjkwMjY3NmQ1ZC4uNjYyYTk0YzllMzA2
OGVjM2IyOThhN2I0ODNmOGE2MWI1ZjUzY2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDcgKzQ2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllcios
IEludFNpemUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3Jt
TGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZl
SW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYjhhMThhNzcw
ZjE5M2Q3NWQ0MTcxZGVhZDNkN2YwYmFjMThiNjUxMC4uZjQ2NDcwM2NmOTdmNDhhNDkxZWIwYzkw
NTk3YjNjNjdhZGYxZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTg1LDcgKzE4NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVk
aWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwpAQCAtMjYxLDEwICsyNjIs
MTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklE
RU9fT1VUUFVUKQorICAgIGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7IFVwZGF0ZVN5bmNocm9ub3Vz
bHksIFVwZGF0ZUFzeW5jaHJvbm91c2x5IH07CisgICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2UoVXBk
YXRlVHlwZSB0eXBlID0gVXBkYXRlVHlwZTo6VXBkYXRlQXN5bmNocm9ub3VzbHkpOworCiAgICAg
dm9pZCBjcmVhdGVWaWRlb091dHB1dCgpOwogICAgIHZvaWQgZGVzdHJveVZpZGVvT3V0cHV0KCk7
CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUxhc3RJ
bWFnZSgpOwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZv
aWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNWMyYjJmYjNlOTRmMzM5OGQyZjIzMzVh
NTU1Zjk4N2FhOWU1ZGMyMC4uZTBiZWYyMWI2YTRiODMyN2M0NTdjZjlmMDI5YjNmNmQ3MjU4M2M5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBjcmVhdGVW
aWRlb091dHB1dCgpOworI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9
CiAKQEAgLTExNjIsOSArMTE2NiwxNiBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKIHsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRh
dGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CisgICAgbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KG1fbGFzdEltYWdlKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVw
ZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKKyAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFnZSk7
CiAgICAgdXBkYXRlRGlzYWJsZUV4dGVybmFsUGxheWJhY2soKTsKIH0KIApAQCAtMjIzMSw2ICsy
MjQyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
VmlkZW9PdXRwdXQoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiB7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICBj
cmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKQEAgLTIyNTks
OSArMjI3MywxNSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZp
ZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBo
YXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1d
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxh
c3RJbWFnZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiB7CiAjaWYgSEFWRShDT1JFX1ZJREVPKQorICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09
IFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9ub3VzbHkgJiYgIW1fbGFzdEltYWdlICYmICF2aWRl
b091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCisgICAgICAgIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogICAgIC8vIENhbGxzIHRvIGNvcHlQaXhlbEJ1ZmZlckZv
ckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVybiBuaWwgaWYgdGhlIHBpeGVs
IGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUgaGFzIGFscmVhZHkgYmVlbiBy
ZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQgaW1hZ2UgKGlmIGFueSkKICAg
ICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgpAQCAtMjI5MSwxMSArMjMxMSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkK
IHsKLSAgICBpZiAobV92aWRlb091dHB1dCAmJiAhbV9sYXN0SW1hZ2UgJiYgIXZpZGVvT3V0cHV0
SGFzQXZhaWxhYmxlRnJhbWUoKSkKLSAgICAgICAgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSgpOwotCi0gICAgdXBkYXRlTGFzdEltYWdlKCk7Ci0KKyAgICB1cGRhdGVMYXN0
SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
YjRiYzk0MGExOTc4ZTM4ZGEzODUwY2Q5NTUwNTM3YWI3ODBkZTE5NC4uNTk3OTcyMmFjNWJmZmUz
ODZmNTQ4MGFhZmExYTY2ZDBjMmM0NDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtMTA2OCw3ICsxMDY4LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHVwZGF0ZUxhc3RJbWFnZSgpOworICAgIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fbGFzdEltYWdlKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkN2Fm
M2EzNDQwOTFmNjdkMjE1MWVhN2JhNTRlYWNjNmEzNGM4ZTYzLi41NjQ3ZGMyM2M3NjFhM2RiNGZm
MjU4MWY1ZjA3YzZhMTYyMjM5NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC04
OTksNyArODk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgdXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2ltYWdlUGFpbnRlci5j
Z0ltYWdlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaApp
bmRleCA0ZDdmNDY3YzRlOGZjZDI2NWRlMzk3YzE1Y2JkZDMyNGYzZjQwMWUyLi5hYTJhNTdmMWZi
MjQyMzkyYjA1YzEzNTJlMTZmZWMwNDM1OTFiNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC00Myw3
ICs0Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0K
ICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRm
b3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNj
cmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Vmlk
ZW9MYXllcigpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCAyY2JmZWVmMmM5NGNiNmQz
N2NkYjlmN2E2NDBjZjg2MzdhNTZmOWMyLi5jODYxMzNhNGRlNDg1ZDUxY2MwMGZjZDgzOThjOTY5
MGQwOGU3OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIg
KnZpZGVvTGF5ZXIsIEkKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldE5hbWU6QCJXZWJWaWRl
b0NvbnRhaW5lckxheWVyIl07CiAjZW5kaWYKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50c0dyYXZpdHk6a0NBR3Jhdml0eVJlc2l6ZUFzcGVjdF07CisKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5MYXllcikgewogICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVl
bkZyYW1lLmhlaWdodCgpKV07CiAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2Vy
dFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwpAQCAtODMsNyArODUsMTMg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBs
YXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVW
aWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENv
bnRlbnRzOihpZClpbWFnZS5nZXQoKV07Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKQEAgLTk4LDYgKzEwNiw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkCiAgICAg
aWYgKG1fdmlkZW9MYXllcikgewogICAgICAgICBDQUNvbnRleHQgKm9sZENvbnRleHQgPSBbbV92
aWRlb0xheWVyIGNvbnRleHRdOwogCisgICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisg
ICAgICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihpZCljdXJyZW50SW1h
Z2UuZ2V0KCldOworCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7CiAgICAg
ICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5
ZXIuZ2V0KCkgYXRJbmRleDowXTsKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksIG1fdmlkZW9G
dWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggYWMx
NmNkNjk2OWU4ZjY0NjkxYmY4MmI2YmZiZTg2ODg1ZTkzNjdjMS4uYjQ3ZGVkYWZjZTY2NTBhNTg4
OTY0NmRhYTE0ZjRiNjJhMzc2ODY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg0LDYg
Kzg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlz
aWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElubGluZVJlY3QoY29uc3QgSW50UmVjdCYsIGJv
b2wgdmlzaWJsZSk7CkBAIC0yMjcsNiArMjI4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9l
eGl0Q29tcGxldGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50ZXJSZXF1ZXN0ZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5BZnRlckVudGVyaW5nRm9y
ZWdyb3VuZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dhaXRpbmdGb3JQcmVwYXJlZFRvRXhpdCB7
IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA1ZTk5
YzFmM2I1MjA2ZGFlOTRmMWRiNDk1ZDE5MWNlNjRiM2Q0MmE4Li4wOTIzNzM3NTNhNjg3OWRjZTQ5
ODRkNjczYmZkYzMxNzI2N2FlNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02MCw3
ICs2MCwxMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlv
biwgQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgTlNTdHJpbmcgKikKIFNPRlRfTElO
S19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RG
aWxsLCBOU1N0cmluZyAqKQogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBVktpdCkKKyNlbHNlCiBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWS2l0KQorI2VuZGlmCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZLaXQsIEFWUGljdHVyZUluUGljdHVyZUNvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIEFWUGxheWVyVmlld0NvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZLaXQsIF9fQVZQbGF5ZXJMYXllclZpZXcpCkBAIC05NzksNyArOTgzLDcgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50
UmVjdCYgZmluYWxSZWN0KQogICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIt
PmRpZEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAg
ICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93
c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAgIApAQCAtMTEwMyw2ICsxMTA3LDE1IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShi
b29sIHZpc2libGUsIGNvbnN0CiAgICAgfQogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIGlmICghbV93YWl0
aW5nRm9yUHJlcGFyZWRUb0V4aXQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2FpdGluZ0Zv
clByZXBhcmVkVG9FeGl0ID0gZmFsc2U7CisgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVx
dWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUsIHRydWUpOworfQorCiBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAmJiBtX2N1cnJlbnRNb2Rl
LmlzRnVsbHNjcmVlbigpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwpAQCAtMTI1MSwx
MiArMTI2NCwyMCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzaG91bGRF
eGl0RnVsbHNjcmVlbldpdGhSZWFzb24oVmlkZW9GdWxsc2NyZQogICAgIGlmIChwbGF5YmFja1Nl
c3Npb25Nb2RlbCgpICYmIChyZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0
b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpSZW1vdGVDb250cm9s
U3RvcEV2ZW50UmVjZWl2ZWQpKQogICAgICAgICBwbGF5YmFja1Nlc3Npb25Nb2RlbCgpLT5wYXVz
ZSgpOwogCi0gICAgQk9PTCBmaW5pc2hlZCA9IHJlYXNvbiA9PSBFeGl0RnVsbFNjcmVlblJlYXNv
bjo6RG9uZUJ1dHRvblRhcHBlZCB8fCByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OlBp
bmNoR2VzdHVyZUhhbmRsZWQ7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEZ1
bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmUsIGZpbmlzaGVkKTsKLQogICAgIGlmICghbV93YXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkgJiYg
IWlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5nKQogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3Rh
cnRPbmVTaG90KGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwpOwogCisjaWYgRU5BQkxFKEVY
VFJBX1pPT01fTU9ERSkKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAg
ICAgICAgbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSB0cnVlOworICAgICAgICBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIEJPT0wgZmluaXNoZWQgPSByZWFzb24gPT0g
RXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRG
dWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7CisKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKQEAgLTEzOTAsNiArMTQxMSwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdAogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZWRUb0V4aXRG
dWxsc2NyZWVuKCkKK3sKK30KKwogYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdAogewogICAg
IHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ10gJiYgKG1fc3RhbmRieSB8fCBt
X2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDA0MDJmZWNlNjk2OWMzODJi
YWZkNzVkOWZjY2QzMmViM2UwNzUwMDYuLjI1NTkxNGY0NGM1ZDY4MTM0MzEyZWQ4OWFlNDc4ZWNj
ZmVlYzFhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTIyLDE0ICsx
MjIsMTUgQEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dCgp
IHsgfQogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIKLSAgICB2b2lkIHJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVy
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgZmluYWw7CisgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIGZpbmFsIHsgfQorICAgIHZvaWQgd2lsbEV4
aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIGZpbmFs
OworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVu
TW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsKQEAg
LTI3OSw2ICsyODAsMTYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
ZGlkU2V0dXBGdWxsc2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQoreworI2lmIEVOQUJMRShFWFRS
QV9aT09NX01PREUpCisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CisgICAgV2ViVGhyZWFkUnVu
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9KTsK
KyNlbmRpZgorfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRF
eGl0RnVsbHNjcmVlbigpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLmgKaW5kZXggOGMwOWYxMjc1YTg2MjUxZDBjZTI1MzFhNWFmNDFhZDc2M2JmOGI3Yi4uNWU0
OGVhYTIxNGZiMzc3ZjgyMzliZmNmZjg2MjYzZmEwMWIwZjRjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZh
bGlkYXRlKCk7CiAgICAgdm9pZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkgeyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNp
YmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93KTsK
KyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpIHsgfQogCiAgICAgSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBt
X21vZGU7IH0KICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSAmIG1vZGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKaW5kZXggMmI2MzYzMmExZjNjNTdhZTBjOGZkZGE2NWY4YjQyM2VmMzJm
NmYzMC4uYjY2ZWM3Zjg5ODUyNDI0N2JmNDdjZGIyM2IwNTkxYzY2MjJjNjE2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgKQEAgLTkxLDE0ICs5MSwxNSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICAvLyBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZvaWQgcmVxdWVzdFVwZGF0
ZUlubGluZVJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXll
cigpIG92ZXJyaWRlOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlk
RW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0Nv
bnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlk
RW50ZXJGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKSBm
aW5hbDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRD
bGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFu
YWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0PiBtX3BsYXliYWNrU2Vz
c2lvbk1vZGVsOwpAQCAtMTUwLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleGl0RnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsK
ICAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICNpZiBQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0
aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAjZW5kaWYKQEAgLTE2MCw2ICsx
NjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2
NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2EwYzc3ZGIzNDA2ZDJkMGRiZjkwNTdiYmNlODg5
YjgxMzlkYjg2NC4uMGE3MWQyNmZhODA1OWU2ZGJiYzhmYTczOGEzNzhhYzJiMWNlNmJmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEsNiArMzEsNyBA
QCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEhhc1Zp
ZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKICAgICBDbGVh
bnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0
IGlubGluZVJlY3QpCisgICAgUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCkKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKICAgICBFeGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmlu
ZGV4IDdiZjI2NTkwN2UyNGU0ODI1Y2Q3NDYxNzA1YmQ2MGFiZjFkODM0MTAuLmY3MTAxYzM0MGNk
ZmNiYmU4NTE2NGQ0ZTgyM2UxODBkNjRlZmM4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
QEAgLTI1OCw2ICsyNTgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmRp
ZEVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdlci0+ZGlkRW50ZXJGdWxsc2NyZWVu
KG1fY29udGV4dElkKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6Ondp
bGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5h
Z2VyLT53aWxsRXhpdEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOworfQorCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1vZGVsQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewogICAgIGlmIChtX21h
bmFnZXIpCkBAIC01NDEsNiArNTQ3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBiCiAjZW5k
aWYKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7Cit9CisKICNwcmFnbWEgbWFyayBN
ZXNzYWdlcyB0byBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpyZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwg
Ym9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKQEAgLTU2OCw2ICs1NzksMTEgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpE
aWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKK3Zv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6V2lsbEV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIG1fcGFnZS0+cGFnZUlE
KCkpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBjM2NiMWRmMzc3OGViMGQxNGM3NWIy
Zjg1ZWI0ODM0Y2RmMGEzYzM3Li5mZjhjNGJhZjQ2M2JlMzUzOTgzMDI5MGVjZDI0NmVmOWZjZmIx
ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9p
ZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHdpbGxF
eGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYTc0
YWM0OGNlNWNhZmZjYTU0ZmRhZWZjYmI1ZDE5Y2Y2MmM5ZTM0Yi4uYzdjZWMxZTIyZTAxNDM1NTgy
MWYwYjY2M2MwNTg5YmZlYTc3MmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7
CiAgICAgUmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBS
ZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgRGlkU2V0dXBG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBXaWxsRXhpdEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKQogICAgIERpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
MjE0MGJkZDE5ZWE1MTI3NjNlMzIxYjQzMjY1MzAwMmEzZDc1YjFjZi4uOTYwNWMxMTRiOWE0OThj
NTJiMmMzYjAwNDI4ODQ4MGMwNDhhNGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTQyNyw3ICs0
MjcsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4o
dWludDY0X3QgY29udGV4dElkKQogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisKK3ZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxF
eGl0RnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsKKworICAgIFJlZlB0cjxW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7CisgICAgUmVmUHRyPFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKKyAgICBzdGQ6OnRpZShtb2Rl
bCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CisKKyAg
ICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZpZGVvRWxl
bWVudCgpOworICAgIGlmICghdmlkZW9FbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCB2aWRlb0VsZW1lbnQgPSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNv
bnRleHRJZF0geworICAgICAgICB2aWRlb0VsZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOwor
ICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQorICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpLCBwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UtPnBhZ2VJRCgpKTsKKyAgICB9KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIExPRyhGdWxs
c2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCVwLCAl
eCkiLCB0aGlzLCBjb250ZXh0SWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337021</attachid>
            <date>2018-04-02 13:20:56 -0700</date>
            <delta_ts>2018-04-02 17:50:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184188-20180402132056.patch</filename>
            <type>text/plain</type>
            <size>36349</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc1ZjFlZTY2YWViZWVj
NDkwNjI5MmM0OTg4ZjZhMDIzN2MzZDhjNS4uYjU3ZWIyY2Q4YWNiNmQ0OWExZWMxMTVhNWQ2NmZk
OTU0NGUxY2QyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29t
IG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVyIGltYWdlIGR1cmluZyBmdWxs
c2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg5NDAzMDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp3aWxs
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp1cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dXBkYXRlVmlkZW9G
dWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhl
bEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp1cGRhdGVMYXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAo
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4p
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNob3VsZEV4aXRGdWxs
c2NyZWVuV2l0aFJlYXNvbik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorCiAyMDE4LTAzLTMwICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1JTUVUeXBl
UmVnaXN0cnk6OmdldFN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA5MjlhYmIxOTVjM2MxMDIzMDNkOTljMWY5ZGU0NjM2ZGFhYTgxYTQxLi5iNGQ0ODdiMjU0
NGRmMTU0MjExYjY1ZWNmNWEzOTM2NmEyN2VhNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE4LTAzLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIFJlcGxhY2UgdmlkZW8gd2l0aCBhIHBsYWNlaG9sZGVy
IGltYWdlIGR1cmluZyBmdWxsc2NyZWVuIHRyYW5zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg5NDAzMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6
d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKToK
KwogMjAxOC0wMy0zMCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIG1lc3NhZ2VzLnB5IGNvZGVnZW4gZm9yIFN0cmluZywgZml4IHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhMGEwOTI1ODc2NTNlYTc2
MDljYjQ0NTUzM2Y5YWNhMTJkZTJhMDk4Li4xN2MxNGI1YzcwN2UxM2ViYzM1OTk3YmFkZjEzZDE4
OTY4OTdkYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTYwMjMsNiArNjAyMywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcAogCiAjaWYgUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpKQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7Cisg
ICAgaWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+dXBkYXRlVmlkZW9GdWxsc2NyZWVu
SW5saW5lSW1hZ2UoKTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1ZpZGVvTGF5ZXJJ
bmxpbmUoKQogewogICAgIHJldHVybiAhbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDc4MjU0Zjg1OTc4ODMxNDIyOWQ3MTY4
Y2Q2MTdiOTI5YjZmMjIxYS4uYTMyNDU4MDM2MDBiMzc3MWI5Y2U3MjYyYjdjYzhmOWQzMzA4MTEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw2ICs1NTQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4
IDViMDRmZDMzMTBhZWYwNTEwYWUyYjQyZjQ0NDNiZjQ3MTkyNDYwNWUuLjRlYjA1ODBjOTYxMzlk
ZDQ3ZTc1ODEyZTYxOWJjOTA1ZDZiNzZlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJldHVyblZpZGVvQ29u
dGVudExheWVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4oKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oCmluZGV4IDYwNzM3NDg2YTQ0ZmU5
OTU0ZDc1Y2E1ZjkxYTljZTYyYzQxNDg5MzEuLjgxZjg0ZjUwMWRmZGU4NzQyNDViZWNjNDMwZGEy
MWU4ZTQxZmI2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCopOwogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9FbGVtZW50LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB3YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyID0gW10geyB9KTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpF
dmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAy
MmVkMjEzNThjZTYzZmUzZWZiZjkwZDg1MGNmNGUxNWM5MmY2NDUyLi5jM2Y3ZGVlNzc0NjhiNTZk
ZjdmZjY2YTM0NTUyMmU2MjEwYjcwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5tbQpAQCAtMTAwLDYgKzEwMCwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUoY29uc3QgV1RGOjpBdG9taWNTdHJpbgogICAgIH0K
IH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6d2lsbEV4aXRGdWxs
c2NyZWVuKCkKK3sKKyAgICBpZiAobV92aWRlb0VsZW1lbnQpCisgICAgICAgIG1fdmlkZW9FbGVt
ZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4oKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9MYXllcikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGQzZGQx
MGYwZWZmODczODhiNjFiYThlMGQxOTY2ODU5Zjc1MzUzZGYuLjhhNDY4NmFlMjY2YTY3ZWJjMjFk
MDg4MGQzMDZmODMyNjhlNmI1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTcwNSw2ICs3MDUsMTEgQEAgdm9pZCBNZWRpYVBs
YXllcjo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIsIFdURjo6
RnVuY3Rpb248dm8KICAgICBtX3ByaXZhdGUtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKGxheWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKK3sKKyAgICBtX3ByaXZhdGUtPnVwZGF0
ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdmYjE4NDg1NGVjODg3YjVkN2JmOTdh
NTc2MTZmZDY0MjQ4YWQ5NDYuLmM2NGVkOTE3NzIwN2ZiNDViYzhiYjFlNGEwYjQ0YmY3ZTM1NzUw
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMzM1LDYgKzMzNSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIgPSBbXSB7IH0pOwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCk7CiAgICAgdXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5Owog
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogICAgIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggZDNmMjUwMTc3MDQ4NWMwZjhjMTUxYmQ3NDY2ZWExMTc5MzVlMjcwZC4uZjY2MDM2MTEw
NzQ5MTY5NWU3Mzk1ZWUyZmU5YzE0MjlhMWY1MzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTYxLDYgKzYx
LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggYWMzOWQ0ZjRhNWI5ZTkzZDYzM2UxNjlkZjRkZWE0YjkwMjY3NmQ1ZC4uNjYyYTk0YzllMzA2
OGVjM2IyOThhN2I0ODNmOGE2MWI1ZjUzY2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDcgKzQ2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllcios
IEludFNpemUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3Jt
TGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZl
SW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYjhhMThhNzcw
ZjE5M2Q3NWQ0MTcxZGVhZDNkN2YwYmFjMThiNjUxMC4uZjQ2NDcwM2NmOTdmNDhhNDkxZWIwYzkw
NTk3YjNjNjdhZGYxZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTg1LDcgKzE4NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
TGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVk
aWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwpAQCAtMjYxLDEwICsyNjIs
MTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50V2l0aEltYWdlR2VuZXJhdG9yKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklE
RU9fT1VUUFVUKQorICAgIGVudW0gY2xhc3MgVXBkYXRlVHlwZSB7IFVwZGF0ZVN5bmNocm9ub3Vz
bHksIFVwZGF0ZUFzeW5jaHJvbm91c2x5IH07CisgICAgdm9pZCB1cGRhdGVMYXN0SW1hZ2UoVXBk
YXRlVHlwZSB0eXBlID0gVXBkYXRlVHlwZTo6VXBkYXRlQXN5bmNocm9ub3VzbHkpOworCiAgICAg
dm9pZCBjcmVhdGVWaWRlb091dHB1dCgpOwogICAgIHZvaWQgZGVzdHJveVZpZGVvT3V0cHV0KCk7
CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUxhc3RJ
bWFnZSgpOwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZv
aWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNWMyYjJmYjNlOTRmMzM5OGQyZjIzMzVh
NTU1Zjk4N2FhOWU1ZGMyMC4uZTBiZWYyMWI2YTRiODMyN2M0NTdjZjlmMDI5YjNmNmQ3MjU4M2M5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBjcmVhdGVW
aWRlb091dHB1dCgpOworI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9
CiAKQEAgLTExNjIsOSArMTE2NiwxNiBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKIHsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB1cGRh
dGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CisgICAgbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KG1fbGFzdEltYWdlKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3Jl
ZW5MYXllciwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVw
ZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKKyAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFnZSk7
CiAgICAgdXBkYXRlRGlzYWJsZUV4dGVybmFsUGxheWJhY2soKTsKIH0KIApAQCAtMjIzMSw2ICsy
MjQyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95
VmlkZW9PdXRwdXQoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiB7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICBj
cmVhdGVWaWRlb091dHB1dCgpOwogICAgIEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsKQEAgLTIyNTks
OSArMjI3MywxNSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZp
ZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKQogICAgIHJldHVybiBbbV92aWRlb091dHB1dCBo
YXNOZXdQaXhlbEJ1ZmZlckZvckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1d
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxh
c3RJbWFnZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0
ZUxhc3RJbWFnZShVcGRhdGVUeXBlIHR5cGUpCiB7CiAjaWYgSEFWRShDT1JFX1ZJREVPKQorICAg
IGlmICghbV9hdlBsYXllckl0ZW0pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09
IFVwZGF0ZVR5cGU6OlVwZGF0ZVN5bmNocm9ub3VzbHkgJiYgIW1fbGFzdEltYWdlICYmICF2aWRl
b091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCkpCisgICAgICAgIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKKwogICAgIC8vIENhbGxzIHRvIGNvcHlQaXhlbEJ1ZmZlckZv
ckl0ZW1UaW1lOml0ZW1UaW1lRm9yRGlzcGxheTogbWF5IHJldHVybiBuaWwgaWYgdGhlIHBpeGVs
IGJ1ZmZlcgogICAgIC8vIGZvciB0aGUgcmVxdWVzdGVkIHRpbWUgaGFzIGFscmVhZHkgYmVlbiBy
ZXRyaWV2ZWQuIEluIHRoaXMgY2FzZSwgdGhlIGxhc3QgdmFsaWQgaW1hZ2UgKGlmIGFueSkKICAg
ICAvLyBzaG91bGQgYmUgZGlzcGxheWVkLgpAQCAtMjI5MSwxMSArMjMxMSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlTGFzdEltYWdlKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgb3V0cHV0UmVjdCkK
IHsKLSAgICBpZiAobV92aWRlb091dHB1dCAmJiAhbV9sYXN0SW1hZ2UgJiYgIXZpZGVvT3V0cHV0
SGFzQXZhaWxhYmxlRnJhbWUoKSkKLSAgICAgICAgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRh
V2lsbENoYW5nZSgpOwotCi0gICAgdXBkYXRlTGFzdEltYWdlKCk7Ci0KKyAgICB1cGRhdGVMYXN0
SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7CiAgICAgaWYgKCFtX2xhc3RJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
YjRiYzk0MGExOTc4ZTM4ZGEzODUwY2Q5NTUwNTM3YWI3ODBkZTE5NC4uNTk3OTcyMmFjNWJmZmUz
ODZmNTQ4MGFhZmExYTY2ZDBjMmM0NDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtMTA2OCw3ICsxMDY4LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHVwZGF0ZUxhc3RJbWFnZSgpOworICAgIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fbGFzdEltYWdlKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkN2Fm
M2EzNDQwOTFmNjdkMjE1MWVhN2JhNTRlYWNjNmEzNGM4ZTYzLi41NjQ3ZGMyM2M3NjFhM2RiNGZm
MjU4MWY1ZjA3YzZhMTYyMjM5NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC04
OTksNyArODk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgdXBkYXRlQ3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2ltYWdlUGFpbnRlci5j
Z0ltYWdlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaApp
bmRleCA0ZDdmNDY3YzRlOGZjZDI2NWRlMzk3YzE1Y2JkZDMyNGYzZjQwMWUyLi5hYTJhNTdmMWZi
MjQyMzkyYjA1YzEzNTJlMTZmZWMwNDM1OTFiNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC00Myw3
ICs0Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0K
ICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRm
b3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNj
cmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Vmlk
ZW9MYXllcigpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCAyY2JmZWVmMmM5NGNiNmQz
N2NkYjlmN2E2NDBjZjg2MzdhNTZmOWMyLi5jODYxMzNhNGRlNDg1ZDUxY2MwMGZjZDgzOThjOTY5
MGQwOGU3OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KQEAgLTc0LDYgKzc0LDggQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIg
KnZpZGVvTGF5ZXIsIEkKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldE5hbWU6QCJXZWJWaWRl
b0NvbnRhaW5lckxheWVyIl07CiAjZW5kaWYKICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50c0dyYXZpdHk6a0NBR3Jhdml0eVJlc2l6ZUFzcGVjdF07CisKICAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5MYXllcikgewogICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVl
bkZyYW1lLmhlaWdodCgpKV07CiAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2Vy
dFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwpAQCAtODMsNyArODUsMTMg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBs
YXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVW
aWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBp
ZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENv
bnRlbnRzOihpZClpbWFnZS5nZXQoKV07Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKQEAgLTk4LDYgKzEwNiw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkCiAgICAg
aWYgKG1fdmlkZW9MYXllcikgewogICAgICAgICBDQUNvbnRleHQgKm9sZENvbnRleHQgPSBbbV92
aWRlb0xheWVyIGNvbnRleHRdOwogCisgICAgICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisg
ICAgICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihpZCljdXJyZW50SW1h
Z2UuZ2V0KCldOworCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7CiAgICAg
ICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5
ZXIuZ2V0KCkgYXRJbmRleDowXTsKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksIG1fdmlkZW9G
dWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggYWMx
NmNkNjk2OWU4ZjY0NjkxYmY4MmI2YmZiZTg2ODg1ZTkzNjdjMS4uYjQ3ZGVkYWZjZTY2NTBhNTg4
OTY0NmRhYTE0ZjRiNjJhMzc2ODY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTg0LDYg
Kzg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlz
aWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElubGluZVJlY3QoY29uc3QgSW50UmVjdCYsIGJv
b2wgdmlzaWJsZSk7CkBAIC0yMjcsNiArMjI4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9l
eGl0Q29tcGxldGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50ZXJSZXF1ZXN0ZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5BZnRlckVudGVyaW5nRm9y
ZWdyb3VuZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3dhaXRpbmdGb3JQcmVwYXJlZFRvRXhpdCB7
IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA1ZTk5
YzFmM2I1MjA2ZGFlOTRmMWRiNDk1ZDE5MWNlNjRiM2Q0MmE4Li40YTJlMGQ5ZjhjNWE0YWY4Mzc0
MGIwOTFjZWIxNzAwN2FiMTIzOTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC05Nzks
NyArOTc5LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxz
Y3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0KQogICAgICAgICAgICAgbV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgCisKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6Tk9dOwogICAgIApAQCAtMTEwMyw2ICsx
MTAzLDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShib29sIHZpc2libGUsIGNvbnN0CiAgICAgfQogfQogCit2b2lkIFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKQorewor
ICAgIGlmICghbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fd2FpdGluZ0ZvclByZXBhcmVkVG9FeGl0ID0gZmFsc2U7CisgICAgbV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIHRydWUpOworfQorCiBib29sIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVy
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFtwbGF5ZXJDb250cm9sbGVyKCkgaXNQbGF5aW5nXSAm
JiBtX2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpICYmIHN1cHBvcnRzUGljdHVyZUluUGljdHVy
ZSgpOwpAQCAtMTI1MSwxMiArMTI2MCwyMCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzaG91bGRFeGl0RnVsbHNjcmVlbldpdGhSZWFzb24oVmlkZW9GdWxsc2NyZQogICAg
IGlmIChwbGF5YmFja1Nlc3Npb25Nb2RlbCgpICYmIChyZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5S
ZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwgcmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29u
OjpSZW1vdGVDb250cm9sU3RvcEV2ZW50UmVjZWl2ZWQpKQogICAgICAgICBwbGF5YmFja1Nlc3Np
b25Nb2RlbCgpLT5wYXVzZSgpOwogCi0gICAgQk9PTCBmaW5pc2hlZCA9IHJlYXNvbiA9PSBFeGl0
RnVsbFNjcmVlblJlYXNvbjo6RG9uZUJ1dHRvblRhcHBlZCB8fCByZWFzb24gPT0gRXhpdEZ1bGxT
Y3JlZW5SZWFzb246OlBpbmNoR2VzdHVyZUhhbmRsZWQ7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5N
b2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZU5vbmUsIGZpbmlzaGVkKTsKLQogICAgIGlmICghbV93YXRjaGRvZ1RpbWVy
LmlzQWN0aXZlKCkgJiYgIWlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5nKQogICAgICAgICBtX3dh
dGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwpOwog
CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIpIHsKKyAgICAgICAgbV93YWl0aW5nRm9yUHJlcGFyZWRUb0V4aXQgPSB0cnVlOwor
ICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIEJPT0wgZmluaXNo
ZWQgPSByZWFzb24gPT0gRXhpdEZ1bGxTY3JlZW5SZWFzb246OkRvbmVCdXR0b25UYXBwZWQgfHwg
cmVhc29uID09IEV4aXRGdWxsU2NyZWVuUmVhc29uOjpQaW5jaEdlc3R1cmVIYW5kbGVkOworICAg
IG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmaW5pc2hlZCk7CisKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTEzOTAsNiArMTQwNywxMCBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxl
LCBjb25zdAogICAgIH0KIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCkKK3sKK30KKwogYm9vbCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6bWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBpY3R1cmUo
KSBjb25zdAogewogICAgIHJldHVybiBbcGxheWVyQ29udHJvbGxlcigpIGlzUGxheWluZ10gJiYg
KG1fc3RhbmRieSB8fCBtX2N1cnJlbnRNb2RlLmlzRnVsbHNjcmVlbigpKSAmJiBzdXBwb3J0c1Bp
Y3R1cmVJblBpY3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDA0
MDJmZWNlNjk2OWMzODJiYWZkNzVkOWZjY2QzMmViM2UwNzUwMDYuLjI1NTkxNGY0NGM1ZDY4MTM0
MzEyZWQ4OWFlNDc4ZWNjZmVlYzFhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bQpAQCAtMTIyLDE0ICsxMjIsMTUgQEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dCgpIHsgfQogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIKLSAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJldHVyblZp
ZGVvQ29udGVudExheWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4o
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlIHsgfQot
ICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsZWFu
dXBGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KCkgZmlu
YWw7CisgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lk
IHJldHVyblZpZGVvQ29udGVudExheWVyKCkgZmluYWw7CisgICAgdm9pZCBkaWRTZXR1cEZ1bGxz
Y3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpIGZpbmFsIHsgfQor
ICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCBkaWRFeGl0RnVs
bHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKSBmaW5hbDsK
KyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8g
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29s
KSBvdmVycmlkZTsKQEAgLTI3OSw2ICsyODAsMTYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKICNlbmRpZgogfQogCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojp3aWxsRXhpdEZ1bGxzY3JlZW4oKQorewor
I2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7Cisg
ICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10g
KCkgbXV0YWJsZSB7CisgICAgICAgIG1fZnVsbHNjcmVlbk1vZGVsLT53aWxsRXhpdEZ1bGxzY3Jl
ZW4oKTsKKyAgICB9KTsKKyNlbmRpZgorfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmgKaW5kZXggOGMwOWYxMjc1YTg2MjUxZDBjZTI1MzFhNWFmNDFh
ZDc2M2JmOGI3Yi4uNWU0OGVhYTIxNGZiMzc3ZjgyMzliZmNmZjg2MjYzZmEwMWIwZjRjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCByZXF1ZXN0SGlkZUFuZEV4aXRGdWxs
c2NyZWVuKCkgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUoYm9vbCB2aXNpYmxlLCBjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBOU1dpbmRvdyAq
cGFyZW50V2luZG93KTsKKyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpIHsgfQog
CiAgICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBj
b25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSAm
IG1vZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMmI2MzYzMmExZjNjNTdhZTBjOGZk
ZGE2NWY4YjQyM2VmMzJmNmYzMC4uYjY2ZWM3Zjg5ODUyNDI0N2JmNDdjZGIyM2IwNTkxYzY2MjJj
NjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTkxLDE0ICs5MSwxNSBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICAvLyBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcgotICAgIHZv
aWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcigpIG92ZXJyaWRlOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50
TGF5ZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
KSBvdmVycmlkZTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIG92ZXJy
aWRlOworICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoKSBmaW5hbDsKKyAgICB2b2lk
IHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIGZpbmFs
OworICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCkgZmluYWw7CisgICAgdm9pZCB3aWxsRXhp
dEZ1bGxzY3JlZW4oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7
CisgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOworICAgIHZvaWQgZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0
PiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsOwpAQCAtMTUwLDYgKzE1MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJl
Y3QgZmluYWxSZWN0KTsKICAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4
dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICNpZiBQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAjZW5k
aWYKQEAgLTE2MCw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29u
dGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRl
bnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2EwYzc3ZGIzNDA2ZDJk
MGRiZjkwNTdiYmNlODg5YjgxMzlkYjg2NC4uMGE3MWQyNmZhODA1OWU2ZGJiYzhmYTczOGEzNzhh
YzJiMWNlNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMzEsNiArMzEsNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkg
ewogICAgIFNldEhhc1ZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2
YWx1ZSkKICAgICBDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUHJl
cGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCisgICAgUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCkKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkKICAgICBFeGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tCmluZGV4IDdiZjI2NTkwN2UyNGU0ODI1Y2Q3NDYxNzA1YmQ2MGFiZjFkODM0
MTAuLmY3MTAxYzM0MGNkZmNiYmU4NTE2NGQ0ZTgyM2UxODBkNjRlZmM4YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0KQEAgLTI1OCw2ICsyNTgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
b2RlbENvbnRleHQ6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgICAgIG1fbWFuYWdlci0+ZGlk
RW50ZXJGdWxsc2NyZWVuKG1fY29udGV4dElkKTsKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5N
b2RlbENvbnRleHQ6OndpbGxFeGl0RnVsbHNjcmVlbigpCit7CisgICAgaWYgKG1fbWFuYWdlcikK
KyAgICAgICAgbV9tYW5hZ2VyLT53aWxsRXhpdEZ1bGxzY3JlZW4obV9jb250ZXh0SWQpOworfQor
CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQog
ewogICAgIGlmIChtX21hbmFnZXIpCkBAIC01NDEsNiArNTQ3LDExIEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29u
dGV4dElkLCBiCiAjZW5kaWYKIH0KIAordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgZW5z
dXJlSW50ZXJmYWNlKGNvbnRleHRJZCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7Cit9CisK
ICNwcmFnbWEgbWFyayBNZXNzYWdlcyB0byBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyCiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0
X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKQEAgLTU2OCw2ICs1NzksMTEg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpEaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1
bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6V2lsbEV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZGlkRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4o
Y29udGV4dElkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBjM2NiMWRm
Mzc3OGViMGQxNGM3NWIyZjg1ZWI0ODM0Y2RmMGEzYzM3Li5mZjhjNGJhZjQ2M2JlMzUzOTgzMDI5
MGVjZDI0NmVmOWZjZmIxZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29u
dGV4dElkKTsKICAgICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CiAgICAgdm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsK
KyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZv
aWQgZGlkRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZEVu
dGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkQ2xlYW51cEZ1
bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2Fn
ZXMuaW4KaW5kZXggYTc0YWM0OGNlNWNhZmZjYTU0ZmRhZWZjYmI1ZDE5Y2Y2MmM5ZTM0Yi4uYzdj
ZWMxZTIyZTAxNDM1NTgyMWYwYjY2M2MwNTg5YmZlYTc3MmM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9GdWxs
c2NyZWVuTWFuYWdlciB7CiAgICAgUmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQp
CiAgICAgRGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBXaWxsRXhp
dEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIERpZEV4aXRGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQogICAgIERpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KaW5kZXggMjE0MGJkZDE5ZWE1MTI3NjNlMzIxYjQzMjY1MzAwMmEzZDc1YjFjZi4u
ZjFjYjA5Nzg4ZmM5MmEyMDM5ZDhhYTgyZTQ2NjUzZDM0ZTgzY2VkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KQEAgLTQyNyw3ICs0MjcsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRT
ZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIH0pOwogI2VuZGlmCiB9Ci0g
ICAgCisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsK
KworICAgIFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gbW9kZWw7Cisg
ICAgUmVmUHRyPFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ+IGludGVyZmFjZTsKKyAg
ICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNv
bnRleHRJZCk7CisKKyAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0g
bW9kZWwtPnZpZGVvRWxlbWVudCgpOworICAgIGlmICghdmlkZW9FbGVtZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCA9IFdURk1vdmUo
dmlkZW9FbGVtZW50KSwgY29udGV4dElkXSB7CisgICAgICAgIHZpZGVvRWxlbWVudC0+d2lsbEV4
aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCksIHBy
b3RlY3RlZFRoaXMtPm1fcGFnZS0+cGFnZUlEKCkpOworICAgIH0pOworfQorCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
CiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRl
ckZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNvbnRleHRJZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>