<?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>216935</bug_id>
          
          <creation_ts>2020-09-24 10:22:12 -0700</creation_ts>
          <short_desc>Declare render quantum size constant in AudioUtilities.h</short_desc>
          <delta_ts>2020-09-24 11:33:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1691562</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 10:22:12 -0700</bug_when>
    <thetext>Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both platform/ and Modules/webaudio/. Also update the code so that we have a single constant instead of many.

[1] https://www.w3.org/TR/webaudio/#render-quantum-size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691563</commentid>
    <comment_count>1</comment_count>
      <attachid>409591</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 10:24:54 -0700</bug_when>
    <thetext>Created attachment 409591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691571</commentid>
    <comment_count>2</comment_count>
      <attachid>409595</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 10:36:41 -0700</bug_when>
    <thetext>Created attachment 409595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691572</commentid>
    <comment_count>3</comment_count>
      <attachid>409596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 10:40:07 -0700</bug_when>
    <thetext>Created attachment 409596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691578</commentid>
    <comment_count>4</comment_count>
      <attachid>409596</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-24 10:49:04 -0700</bug_when>
    <thetext>Comment on attachment 409596
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691588</commentid>
    <comment_count>5</comment_count>
      <attachid>409596</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-24 11:04:06 -0700</bug_when>
    <thetext>Comment on attachment 409596
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both
&gt; +        platform/ and Modules/webaudio/. Also update the code so that we have a single constant
&gt; +        instead of many.

Conceptually, this feels wrong. The intent of platform is to abstract away differences between different platforms base libraries. Having it know about a web platform concept like a specific &quot;render quantum size&quot; seems like a violation of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691589</commentid>
    <comment_count>6</comment_count>
      <attachid>409596</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-24 11:04:46 -0700</bug_when>
    <thetext>Comment on attachment 409596
Patch

Crap, bugzilla in-air-conflict made it automatically change the review flag.

Eric, please re-do what ever change to the flag you made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691590</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 11:06:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 409596 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409596&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both
&gt; &gt; +        platform/ and Modules/webaudio/. Also update the code so that we have a single constant
&gt; &gt; +        instead of many.
&gt; 
&gt; Conceptually, this feels wrong. The intent of platform is to abstract away
&gt; differences between different platforms base libraries. Having it know about
&gt; a web platform concept like a specific &quot;render quantum size&quot; seems like a
&gt; violation of that.

The situation right now is that we have different constants in platform/ and WebAudio/ that need to be kept in sync. You view it as a WebPlatform concept but I am not sure I agree, this is WebKit&apos;s render quantum size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691595</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 11:15:19 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Sam Weinig from comment #5)
&gt; &gt; Comment on attachment 409596 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=409596&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; +        Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both
&gt; &gt; &gt; +        platform/ and Modules/webaudio/. Also update the code so that we have a single constant
&gt; &gt; &gt; +        instead of many.
&gt; &gt; 
&gt; &gt; Conceptually, this feels wrong. The intent of platform is to abstract away
&gt; &gt; differences between different platforms base libraries. Having it know about
&gt; &gt; a web platform concept like a specific &quot;render quantum size&quot; seems like a
&gt; &gt; violation of that.
&gt; 
&gt; The situation right now is that we have different constants in platform/ and
&gt; WebAudio/ that need to be kept in sync. You view it as a WebPlatform concept
&gt; but I am not sure I agree, this is WebKit&apos;s render quantum size.

To put it in other word, the thing you are saying is bad is not new in my patch. What my patch does it merge 5+ constants (that have to be in sync) into a single one, in a common header. It does not feel that controversial to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691596</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-24 11:16:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Sam Weinig from comment #5)
&gt; &gt; Comment on attachment 409596 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=409596&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; +        Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both
&gt; &gt; &gt; +        platform/ and Modules/webaudio/. Also update the code so that we have a single constant
&gt; &gt; &gt; +        instead of many.
&gt; &gt; 
&gt; &gt; Conceptually, this feels wrong. The intent of platform is to abstract away
&gt; &gt; differences between different platforms base libraries. Having it know about
&gt; &gt; a web platform concept like a specific &quot;render quantum size&quot; seems like a
&gt; &gt; violation of that.
&gt; 
&gt; The situation right now is that we have different constants in platform/ and
&gt; WebAudio/ that need to be kept in sync. You view it as a WebPlatform concept
&gt; but I am not sure I agree, this is WebKit&apos;s render quantum size.

Ok, I could buy that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691597</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-24 11:16:59 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; (In reply to Sam Weinig from comment #5)
&gt; &gt; &gt; Comment on attachment 409596 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=409596&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; &gt; +        Declare render quantum size [1] constant in AudioUtilities.h so that it can be used in both
&gt; &gt; &gt; &gt; +        platform/ and Modules/webaudio/. Also update the code so that we have a single constant
&gt; &gt; &gt; &gt; +        instead of many.
&gt; &gt; &gt; 
&gt; &gt; &gt; Conceptually, this feels wrong. The intent of platform is to abstract away
&gt; &gt; &gt; differences between different platforms base libraries. Having it know about
&gt; &gt; &gt; a web platform concept like a specific &quot;render quantum size&quot; seems like a
&gt; &gt; &gt; violation of that.
&gt; &gt; 
&gt; &gt; The situation right now is that we have different constants in platform/ and
&gt; &gt; WebAudio/ that need to be kept in sync. You view it as a WebPlatform concept
&gt; &gt; but I am not sure I agree, this is WebKit&apos;s render quantum size.
&gt; 
&gt; To put it in other word, the thing you are saying is bad is not new in my
&gt; patch. What my patch does it merge 5+ constants (that have to be in sync)
&gt; into a single one, in a common header. It does not feel that controversial
&gt; to me.

Fair. 

Also, I really didn&apos;t mean to change the review flag at all. It was just this dumb site :(. Please put it back to the way it was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691613</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-24 11:32:59 -0700</bug_when>
    <thetext>Committed r267541: &lt;https://trac.webkit.org/changeset/267541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691614</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-24 11:33:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/69515634&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409591</attachid>
            <date>2020-09-24 10:24:54 -0700</date>
            <delta_ts>2020-09-24 10:36:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216935-20200924102453.patch</filename>
            <type>text/plain</type>
            <size>59190</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhmZTAzODUzOTM4ODA2
NWQzZGM5OTE2YTJkMzZjZGJlYTVjMDM1Yy4uOTgxMDBkMzFjMDUwMzMzNDc0ZWQ5NTBjNGQ0Zjkw
YjNiZjE2MjFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTA5LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGVjbGFyZSByZW5kZXIgcXVh
bnR1bSBzaXplIGNvbnN0YW50IGluIEF1ZGlvVXRpbGl0aWVzLmgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjkzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgcmVuZGVyIHF1YW50dW0gc2l6
ZSBbMV0gY29uc3RhbnQgaW4gQXVkaW9VdGlsaXRpZXMuaCBzbyB0aGF0IGl0IGNhbiBiZSB1c2Vk
IGluIGJvdGgKKyAgICAgICAgcGxhdGZvcm0vIGFuZCBNb2R1bGVzL3dlYmF1ZGlvLy4gQWxzbyB1
cGRhdGUgdGhlIGNvZGUgc28gdGhhdCB3ZSBoYXZlIGEgc2luZ2xlIGNvbnN0YW50CisgICAgICAg
IGluc3RlYWQgb2YgbWFueS4KKworICAgICAgICBbMV0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1ZGlvLyNyZW5kZXItcXVhbnR1bS1zaXplCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVk
aW9MaXN0ZW5lcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpBdWRpb05vZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9k
ZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91
dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5h
bFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVUaW1lbGlu
ZVZhbHVlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRl
eHRUaW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnVw
ZGF0ZVNjaGVkdWxpbmdJbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERT
UEtlcm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWREU1BLZXJuZWw6OnVwZGF0ZUNv
ZWZmaWNpZW50c0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OnByb2Nl
c3NPbmx5QXVkaW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRT
b3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50U291cmNlTm9kZTo6Q29u
c3RhbnRTb3VyY2VOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291
cmNlTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpzZXRCdWZmZXIpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5
RFNQS2VybmVsOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHlu
YW1pY3NDb21wcmVzc29yTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYWluTm9k
ZTo6R2Fpbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Fpbk5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpzdXNwZW5kT2Zm
bGluZVJlbmRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6T3NjaWxsYXRvck5vZGU6Ok9zY2lsbGF0b3JOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzc1NhbXBsZUFj
Y3VyYXRlVmFsdWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6UmVhbHRpbWVBbmFs
eXNlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdGVyZW9QYW5uZXJOb2RlOjpTdGVyZW9QYW5uZXJOb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0ZXJlb1Bhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9QYXJh
bXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpsYXp5SW5pdGlhbGl6ZU92ZXJzYW1wbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUy
eCk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmU0
eCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVzYW1wbGVyS2Vy
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpnZXRTb3VyY2VQ
b2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpwcm9jZXNz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQmlxdWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZDo6QmlxdWFkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9CaXF1YWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9IUlRGUGFubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OkhSVEZQ
YW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFJURlBhbm5lcjo6cGFuKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SUlSRmlsdGVy
Ojp0YWlsVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
QXVkaW9EZXN0aW5hdGlvbkNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmcmFtZXNQZXJC
dWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2F1ZGlvX3Ny
Y19jbGFzc19pbml0KToKKwogMjAyMC0wOS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Ob2RlOjpyZXNldCgpIGFuZCBhbGwgaXRzIG92ZXJy
aWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci5jcHAKaW5kZXggNGFjMGVlMjhlYjkxNjA2MzFhZTA0ZmVmNTZjOTQyYTI5MGRkMzFjNy4uYzkx
ZmQ3ZWM2MTY2OTZlODlhMmQ0NzcxN2I5YWM1NDMyODRjNzNlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCkBAIC00OCwxNSArNDgs
MTUgQEAgQXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcihCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXh0KQogICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFY
LCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogICAgICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQotICAgICwgbV9wb3NpdGlvblhWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6
ZUluRnJhbWVzKQotICAgICwgbV9wb3NpdGlvbllWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5n
U2l6ZUluRnJhbWVzKQotICAgICwgbV9wb3NpdGlvblpWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNz
aW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV9mb3J3YXJkWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nl
c3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX2ZvcndhcmRZVmFsdWVzKEF1ZGlvTm9kZTo6UHJv
Y2Vzc2luZ1NpemVJbkZyYW1lcykKLSAgICAsIG1fZm9yd2FyZFpWYWx1ZXMoQXVkaW9Ob2RlOjpQ
cm9jZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV91cFhWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV91cFlWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNz
aW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV91cFpWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5n
U2l6ZUluRnJhbWVzKQorICAgICwgbV9wb3NpdGlvblhWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplKQorICAgICwgbV9wb3NpdGlvbllWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9wb3NpdGlvblpWYWx1ZXMoQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9mb3J3YXJkWFZhbHVlcyhBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX2ZvcndhcmRZVmFsdWVzKEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKKyAgICAsIG1fZm9yd2FyZFpWYWx1ZXMoQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV91cFhWYWx1ZXMoQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV91cFlWYWx1ZXMoQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV91cFpWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGUuaAppbmRleCA4NDNhNjc0N2FmM2YyY2EzNGJiZWM0M2JlYWRkOTQyNzU2
MWMwNjc3Li44NGM1MGQyY2UwZDgzYjYzMDAxNzdjMjYxN2M0YzM5MmNmY2Y1NzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTU5LDggKzU5LDYg
QEAgY2xhc3MgQXVkaW9Ob2RlCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9Ob2RlKTsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlvTm9kZSk7CiBwdWJsaWM6Ci0gICAgZW51
bSB7IFByb2Nlc3NpbmdTaXplSW5GcmFtZXMgPSAxMjggfTsKLQogICAgIGV4cGxpY2l0IEF1ZGlv
Tm9kZShCYXNlQXVkaW9Db250ZXh0Jik7CiAgICAgdmlydHVhbCB+QXVkaW9Ob2RlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAK
aW5kZXggMzk2ZjhiN2VhNTQ1MWVjZjNhN2VhOTI0YmQwODkxM2Y5NDkyMzUwMi4uZWMyNzJlZjRi
OTNlNjBkOGMxMDZiMzgyMmRkZjJiZDY0NzI0MTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAg
QXVkaW9Ob2RlSW5wdXQ6OkF1ZGlvTm9kZUlucHV0KEF1ZGlvTm9kZSogbm9kZSkKICAgICAsIG1f
bm9kZShub2RlKQogewogICAgIC8vIFNldCB0byBtb25vIGJ5IGRlZmF1bHQuCi0gICAgbV9pbnRl
cm5hbFN1bW1pbmdCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKDEsIEF1ZGlvTm9kZTo6UHJvY2Vzc2lu
Z1NpemVJbkZyYW1lcyk7CisgICAgbV9pbnRlcm5hbFN1bW1pbmdCdXMgPSBBdWRpb0J1czo6Y3Jl
YXRlKDEsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHZvaWQgQXVk
aW9Ob2RlSW5wdXQ6OmNvbm5lY3QoQXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCkBAIC0xNDEsNyAr
MTQxLDcgQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogICAgIGlm
IChudW1iZXJPZklucHV0Q2hhbm5lbHMgPT0gbV9pbnRlcm5hbFN1bW1pbmdCdXMtPm51bWJlck9m
Q2hhbm5lbHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnRlcm5hbFN1bW1pbmdCdXMg
PSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVscywgQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVz
OjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOwogfQogCiB1bnNpZ25lZCBBdWRpb05vZGVJbnB1dDo6bnVtYmVyT2ZDaGFubmVs
cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZU91dHB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZU91dHB1dC5jcHAKaW5kZXggYjgxMGMyN2Y0NTE0ZTQxNjczMDgwYTFjMDhhOGRlZTFlYTYz
NzAwNS4uMzY3MzRkYTExM2RmNGM3YzM4NTU1YTliYTU3ZmM0ZTFjYmE0Mjc1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcApA
QCAtNDcsNyArNDcsNyBAQCBBdWRpb05vZGVPdXRwdXQ6OkF1ZGlvTm9kZU91dHB1dChBdWRpb05v
ZGUqIG5vZGUsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpCiB7CiAgICAgQVNTRVJUKG51bWJl
ck9mQ2hhbm5lbHMgPD0gQXVkaW9Db250ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkpOwogCi0g
ICAgbV9pbnRlcm5hbEJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgQXVk
aW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2ludGVybmFsQnVzID0gQXVk
aW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOwogfQogCiB2b2lkIEF1ZGlvTm9kZU91dHB1dDo6c2V0TnVtYmVyT2ZDaGFubmVs
cyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEF1ZGlv
Tm9kZU91dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogICAgIGlmIChudW1iZXJPZkNoYW5uZWxz
KCkgPT0gbV9pbnRlcm5hbEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2ludGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxz
KCksIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgbV9pbnRlcm5hbEJ1
cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscygpLCBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOwogfQogCiB2b2lkIEF1ZGlvTm9kZU91dHB1dDo6dXBkYXRlUmVu
ZGVyaW5nU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5jcHAKaW5kZXggYThhODk3ZGFjNzkyNDYyM2M3MDZiZjVlNDI5MjNhMTI4NGQ4ZGIzOS4u
ZmE3YWY1ZGE2ZjA2YjUzNTg4MWMyN2JlMDA5MDhkNjA3ZjY3YzdkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0yNzksNyArMjc5LDcg
QEAgdm9pZCBBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1
bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgYm8KICAgICAgICAgQVNTRVJUKG91dHB1dCk7CiAKICAg
ICAgICAgLy8gUmVuZGVyIGF1ZGlvIGZyb20gdGhpcyBvdXRwdXQuCi0gICAgICAgIEF1ZGlvQnVz
KiBjb25uZWN0aW9uQnVzID0gb3V0cHV0LT5wdWxsKDAsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcyk7CisgICAgICAgIEF1ZGlvQnVzKiBjb25uZWN0aW9uQnVzID0gb3V0cHV0LT5w
dWxsKDAsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICAgICAgLy8g
U3VtLCB3aXRoIHVuaXR5LWdhaW4uCiAgICAgICAgIHN1bW1pbmdCdXMtPnN1bUZyb20oKmNvbm5l
Y3Rpb25CdXMpOwpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgQXVkaW9QYXJhbTo6Y2FsY3VsYXRl
RmluYWxWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGJvCiB2
b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZVRpbWVsaW5lVmFsdWVzKGZsb2F0KiB2YWx1ZXMsIHVu
c2lnbmVkIG51bWJlck9mVmFsdWVzKQogewogICAgIC8vIENhbGN1bGF0ZSB2YWx1ZXMgZm9yIHRo
aXMgcmVuZGVyIHF1YW50dW0uCi0gICAgLy8gTm9ybWFsbHkgbnVtYmVyT2ZWYWx1ZXMgd2lsbCBl
cXVhbCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMgKHRoZSByZW5kZXIgcXVhbnR1
bSBzaXplKS4KKyAgICAvLyBOb3JtYWxseSBudW1iZXJPZlZhbHVlcyB3aWxsIGVxdWFsIEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAodGhlIHJlbmRlciBxdWFudHVtIHNpemUpLgog
ICAgIGRvdWJsZSBzYW1wbGVSYXRlID0gY29udGV4dCgpLnNhbXBsZVJhdGUoKTsKICAgICBzaXpl
X3Qgc3RhcnRGcmFtZSA9IGNvbnRleHQoKS5jdXJyZW50U2FtcGxlRnJhbWUoKTsKICAgICBzaXpl
X3QgZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgbnVtYmVyT2ZWYWx1ZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5k
ZXggZjA5Zjk5OTcwMzhmYjA2ZjA4YmMzNWQ0MTRmMjUxODBlZWJlYmUwNi4uMzJmZTI5MzNkMTY4
MTYwNmVhYzdlMmM1ZmZlNjFmMjA2M2YwYzExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMzI5LDcgKzMy
OSw3IEBAIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4
dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAgZG91YmxlIHNhbXBsZVJhdGUgPSBj
b250ZXh0LnNhbXBsZVJhdGUoKTsKICAgICBzaXplX3Qgc3RhcnRGcmFtZSA9IGNvbnRleHQuY3Vy
cmVudFNhbXBsZUZyYW1lKCk7CiAgICAgc2l6ZV90IGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIDE7
Ci0gICAgZG91YmxlIGNvbnRyb2xSYXRlID0gc2FtcGxlUmF0ZSAvIEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lczsgLy8gb25lIHBhcmFtZXRlciBjaGFuZ2UgcGVyIHJlbmRlciBxdWFu
dHVtCisgICAgZG91YmxlIGNvbnRyb2xSYXRlID0gc2FtcGxlUmF0ZSAvIEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZTsgLy8gb25lIHBhcmFtZXRlciBjaGFuZ2UgcGVyIHJlbmRlciBx
dWFudHVtCiAgICAgdmFsdWUgPSB2YWx1ZXNGb3JUaW1lUmFuZ2Uoc3RhcnRGcmFtZSwgZW5kRnJh
bWUsIGRlZmF1bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCAmdmFsdWUsIDEsIHNhbXBsZVJh
dGUsIGNvbnRyb2xSYXRlKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKaW5kZXggNjI3NmFmOTkwYTM4Yzk2MmNhODk2Mzc0Y2M5NmUwNGVmOGVmMGQ5Ni4uZDFk
NDMzMDVlM2JlMTJjNjNjZmM2ODMwMjYwMGNhNDMzMDQzYzkxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcApAQCAtNjQsOCArNjQsOCBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6
dXBkYXRlU2NoZWR1bGluZ0luZm8oc2l6ZV90IHF1YW50dW1GcmFtZVNpemUsIEF1ZAogICAgIHF1
YW50dW1GcmFtZU9mZnNldCA9IDA7CiAgICAgc3RhcnRGcmFtZU9mZnNldCA9IDA7CiAKLSAgICBB
U1NFUlQocXVhbnR1bUZyYW1lU2l6ZSA9PSBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFt
ZXMpOwotICAgIGlmIChxdWFudHVtRnJhbWVTaXplICE9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcykKKyAgICBBU1NFUlQocXVhbnR1bUZyYW1lU2l6ZSA9PSBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGlmIChxdWFudHVtRnJhbWVTaXplICE9IEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZG91
YmxlIHNhbXBsZVJhdGUgPSB0aGlzLT5zYW1wbGVSYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKaW5kZXggYjliYjUzMWQ1
NDYwZmQ5MzZhYjViNjBiNWRiZWFkZWY2NDk1NDkyMS4uY2I2NzFjYWFiNjNkZWIxODhkODgxZTQ3
YjY1NzU1NWFkNTk1ZGJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWREU1BLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QmlxdWFkRFNQS2VybmVsLmgiCiAKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1
ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUgIkJpcXVhZFByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkZs
b2F0Q29udmVyc2lvbi5oIgpAQCAtNTgsMTIgKzU5LDEyIEBAIHZvaWQgQmlxdWFkRFNQS2VybmVs
Ojp1cGRhdGVDb2VmZmljaWVudHNJZk5lY2Vzc2FyeShzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQog
ewogICAgIGlmIChiaXF1YWRQcm9jZXNzb3IoKS0+ZmlsdGVyQ29lZmZpY2llbnRzRGlydHkoKSkg
ewogICAgICAgICBpZiAoYmlxdWFkUHJvY2Vzc29yKCktPmhhc1NhbXBsZUFjY3VyYXRlVmFsdWVz
KCkgJiYgYmlxdWFkUHJvY2Vzc29yKCktPnNob3VsZFVzZUFSYXRlKCkpIHsKLSAgICAgICAgICAg
IGZsb2F0IGN1dG9mZkZyZXF1ZW5jeVtCaXF1YWQ6Ok1heEZyYW1lc1RvUHJvY2Vzc107Ci0gICAg
ICAgICAgICBmbG9hdCBxW0JpcXVhZDo6TWF4RnJhbWVzVG9Qcm9jZXNzXTsKLSAgICAgICAgICAg
IGZsb2F0IGdhaW5bQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3NdOwotICAgICAgICAgICAgZmxv
YXQgZGV0dW5lW0JpcXVhZDo6TWF4RnJhbWVzVG9Qcm9jZXNzXTsgLy8gaW4gQ2VudHMKKyAgICAg
ICAgICAgIGZsb2F0IGN1dG9mZkZyZXF1ZW5jeVtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemVdOworICAgICAgICAgICAgZmxvYXQgcVtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemVdOworICAgICAgICAgICAgZmxvYXQgZ2FpbltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemVdOworICAgICAgICAgICAgZmxvYXQgZGV0dW5lW0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07IC8vIGluIENlbnRzCiAKLSAgICAgICAgICAgIEFTU0VSVChmcmFtZXNU
b1Byb2Nlc3MgPD0gQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgQVNT
RVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OwogCiAgICAgICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyMSgpLmNhbGN1bGF0
ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGN1dG9mZkZyZXF1ZW5jeSwgZnJhbWVzVG9Qcm9jZXNzKTsK
ICAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIyKCkuY2FsY3VsYXRlU2Ft
cGxlQWNjdXJhdGVWYWx1ZXMocSwgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcAppbmRleCA5NTdmY2E5
ODM2MmQ0ODllMjBmOWIwZmUyNTcyNjNkYWYwZDY1YWQwLi5mMzIyNWUxNzJiZDM2MDBlNjkxYjg1
MjZlZTczY2EyYTU0NTk2ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCkBAIC0xMTAsOCArMTEwLDggQEAgdm9pZCBCaXF1
YWRQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVkaW9CdXMqIGRl
c3RpbmF0aW9uLCBzaXoKIAogdm9pZCBCaXF1YWRQcm9jZXNzb3I6OnByb2Nlc3NPbmx5QXVkaW9Q
YXJhbXMoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBmbG9hdCB2YWx1ZXNbQXVkaW9O
b2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNz
IDw9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgZmxvYXQgdmFsdWVz
W0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgQVNTRVJUKGZyYW1lc1Rv
UHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgbV9w
YXJhbWV0ZXIxLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyh2YWx1ZXMsIGZyYW1lc1Rv
UHJvY2Vzcyk7CiAgICAgbV9wYXJhbWV0ZXIyLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVl
cyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAKaW5kZXggMGU0MjdlMjBmNDMx
OTcwMDE3ZmRlNjRkMzA3NTY3NzVlMjRmMWFmZC4uNDM0MGU5NWExODZlYjlhNjM1ODBhYWQ4YzAz
NWFhNmYzMzAyZmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Db25zdGFudFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVk
ZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9QYXJhbS5oIgorI2luY2x1ZGUg
IkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiQ29uc3RhbnRTb3VyY2VPcHRpb25zLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNTUsNiArNTYsNyBAQCBFeGNl
cHRpb25PcjxSZWY8Q29uc3RhbnRTb3VyY2VOb2RlPj4gQ29uc3RhbnRTb3VyY2VOb2RlOjpjcmVh
dGUoQmFzZUF1ZGlvQ29udGV4dAogQ29uc3RhbnRTb3VyY2VOb2RlOjpDb25zdGFudFNvdXJjZU5v
ZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgb2Zmc2V0KQogICAgIDogQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlKGNvbnRleHQpCiAgICAgLCBtX29mZnNldChBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgIm9mZnNldCJfcywgb2Zmc2V0LCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fc2FtcGxlQWNjdXJhdGVWYWx1ZXMoQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBl
Q29uc3RhbnQpOwogICAgIGFkZE91dHB1dChtYWtlVW5pcXVlPEF1ZGlvTm9kZU91dHB1dD4odGhp
cywgMSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db25z
dGFudFNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3Rh
bnRTb3VyY2VOb2RlLmgKaW5kZXggZTgzMGU0YzQ0M2EyODBkMWMzN2ZhNDRiOWNlNjU4NDk5NjAz
ZDlhYi4uYjZhNjcyZjdmZTNmYWEyMjJhNTM4YWU0OWJhYmNmYzM4OTM3ZjA0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db25zdGFudFNvdXJjZU5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5o
CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPEF1ZGlvUGFyYW0+IG1fb2Zmc2V0
OwogICAgIAogICAgIC8vIFN0b3JlcyBzYW1wbGUtYWNjdXJhdGUgdmFsdWVzIGNhbGN1bGF0ZWQu
Ci0gICAgQXVkaW9GbG9hdEFycmF5IG1fc2FtcGxlQWNjdXJhdGVWYWx1ZXMgeyBBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMgfTsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9zYW1wbGVB
Y2N1cmF0ZVZhbHVlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4IDY0NDgw
N2FmOGFhNjExZmMyMWIzMGQ4NjUwMDJiYmVjOGE1ZWZmZTIuLmZjZTJkMDczMjczM2IwODljMGZi
OTc5MDMxZGU3MjMwODg2ZDk4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IENvbnZvbHZlck5vZGU6OnNldEJ1ZmZlcihSZWZQdHI8QXVkaW9CdWZmZXI+JiYgYnVm
ZmVyKQogCiAgICAgLy8gQ3JlYXRlIHRoZSByZXZlcmIgd2l0aCB0aGUgZ2l2ZW4gaW1wdWxzZSBy
ZXNwb25zZS4KICAgICBib29sIHVzZUJhY2tncm91bmRUaHJlYWRzID0gIWNvbnRleHQoKS5pc09m
ZmxpbmVDb250ZXh0KCk7Ci0gICAgYXV0byByZXZlcmIgPSBtYWtlVW5pcXVlPFJldmVyYj4oYnVm
ZmVyQnVzLmdldCgpLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMsIE1heEZGVFNp
emUsIHVzZUJhY2tncm91bmRUaHJlYWRzLCBtX25vcm1hbGl6ZSk7CisgICAgYXV0byByZXZlcmIg
PSBtYWtlVW5pcXVlPFJldmVyYj4oYnVmZmVyQnVzLmdldCgpLCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUsIE1heEZGVFNpemUsIHVzZUJhY2tncm91bmRUaHJlYWRzLCBtX25vcm1h
bGl6ZSk7CiAKICAgICB7CiAgICAgICAgIC8vIFRoZSBjb250ZXh0IG11c3QgYmUgbG9ja2VkIHNp
bmNlIGNoYW5naW5nIHRoZSBidWZmZXIgY2FuIHJlLWNvbmZpZ3VyZSB0aGUgbnVtYmVyIG9mIGNo
YW5uZWxzIHRoYXQgYXJlIG91dHB1dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKaW5kZXggM2M3Yjc4MTRhYzM0ZDRlMmE0MGU3ZjE5
NWIxMmM3MzNmMmNkYmU3YS4uYzIyMDJjNmIxYWI3MTMxYzM0MjBjZDE1Nzc1MmM1N2VjYjVkYmM3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtl
cm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtl
cm5lbC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBEZWxheURT
UEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwoRGVsYXlQcm9jZXNzb3IqIHByb2Nlc3NvcikKICAgICA6
IEF1ZGlvRFNQS2VybmVsKHByb2Nlc3NvcikKLSAgICAsIG1fZGVsYXlUaW1lcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCisgICAgLCBtX2RlbGF5VGltZXMoQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIEFTU0VSVChwcm9jZXNzb3IgJiYgcHJvY2Vz
c29yLT5zYW1wbGVSYXRlKCkgPiAwKTsKICAgICBpZiAoIShwcm9jZXNzb3IgJiYgcHJvY2Vzc29y
LT5zYW1wbGVSYXRlKCkgPiAwKSkKQEAgLTEzOCw4ICsxMzgsOCBAQCB2b2lkIERlbGF5RFNQS2Vy
bmVsOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAg
aWYgKCFkZWxheVByb2Nlc3NvcigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB2YWx1
ZXNbQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKLSAgICBBU1NFUlQoZnJhbWVz
VG9Qcm9jZXNzIDw9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgZmxv
YXQgdmFsdWVzW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgQVNTRVJU
KGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwog
CiAgICAgZGVsYXlQcm9jZXNzb3IoKS0+ZGVsYXlUaW1lKCkuY2FsY3VsYXRlU2FtcGxlQWNjdXJh
dGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAK
aW5kZXggOGE0MWNmOGQ0ODBhMDkzODdlYTNhYzk2NjA0NDBlNjQxMGFmZjMyNy4uNTk4M2M2ZGIy
MmFlZjMyYjFhY2I2NGQ3NjNhZWQ5MmZkMTI2ZWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVk
aW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJB
dWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkR5bmFtaWNzQ29tcHJlc3Nvci5oIgogI2luY2x1
ZGUgIldlYktpdER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgpAQCAtMTA1LDggKzEwNiw4IEBAIHZvaWQgRHluYW1pY3NDb21wcmVzc29y
Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogCiB2b2lkIER5bmFtaWNzQ29t
cHJlc3Nvck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9QYXJhbXMoc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKIHsKLSAgICBmbG9hdCB2YWx1ZXNbQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVz
XTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcyk7CisgICAgZmxvYXQgdmFsdWVzW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZV07CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgbV90aHJlc2hvbGQtPmNhbGN1bGF0ZVNhbXBsZUFj
Y3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBtX2tuZWUtPmNhbGN1
bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vR2Fpbk5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHAKaW5kZXggNDRmZWI4ODNj
ZTMyMjZiNTBkNmRmNjQ0MTg3NzU3MWJiODU4NjI1Ni4uNDg2ODI2ZWM0NjQyOTQzOTlkZmRmNDNl
ZDMzMWU2MzhiYjUyZjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9HYWluTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9H
YWluTm9kZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgRXhjZXB0aW9uT3I8UmVmPEdhaW5Ob2RlPj4g
R2Fpbk5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBHYWkKIAog
R2Fpbk5vZGU6OkdhaW5Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQpCiAgICAgOiBBdWRp
b05vZGUoY29udGV4dCkKLSAgICAsIG1fc2FtcGxlQWNjdXJhdGVHYWluVmFsdWVzKEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykgLy8gRklYTUU6IGNhbiBwcm9iYWJseSBzaGFyZSB0
ZW1wIGJ1ZmZlciBpbiBjb250ZXh0CisgICAgLCBtX3NhbXBsZUFjY3VyYXRlR2FpblZhbHVlcyhB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpIC8vIEZJWE1FOiBjYW4gcHJvYmFibHkg
c2hhcmUgdGVtcCBidWZmZXIgaW4gY29udGV4dAogICAgICwgbV9nYWluKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlv
blJhdGU6OkFSYXRlKSkKIHsKICAgICBzZXROb2RlVHlwZShOb2RlVHlwZUdhaW4pOwpAQCAtMTA0
LDggKzEwNCw4IEBAIHZvaWQgR2Fpbk5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKIAogdm9pZCBHYWluTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVlc1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXpl
SW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9hdCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICBtX2dhaW4tPmNhbGN1bGF0ZVNhbXBs
ZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3Bw
CmluZGV4IDgwOTZjOWEwY2NmMDk4MjM4ODUxNzkwNjMzNDAwNjlhZTEyNGVkZTguLjI0ZmEwNDM5
OTRiOGY1YWFlOGVhNDdlMDdiMzgzZmNhOGI1MTUyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMTQy
LDcgKzE0Miw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvQ29udGV4dDo6c3VzcGVuZE9mZmxpbmVSZW5k
ZXJpbmcoZG91YmxlIHN1c3BlbmRUaW1lLCBSZWY8RGVmZXJyCiAgICAgfQogCiAgICAgc2l6ZV90
IGZyYW1lID0gQXVkaW9VdGlsaXRpZXM6OnRpbWVUb1NhbXBsZUZyYW1lKHN1c3BlbmRUaW1lLCBz
YW1wbGVSYXRlKCkpOwotICAgIGZyYW1lID0gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpy
ZW5kZXJRdWFudHVtU2l6ZSAqICgoZnJhbWUgKyBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6
OnJlbmRlclF1YW50dW1TaXplIC0gMSkgLyBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJl
bmRlclF1YW50dW1TaXplKTsKKyAgICBmcmFtZSA9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSAqICgoZnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUgLSAx
KSAvIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAgaWYgKGZyYW1lIDwg
Y3VycmVudFNhbXBsZUZyYW1lKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiU3VzcGVuc2lvbiBmcmFtZSBpcyBlYXJsaWVyIHRoYW4g
Y3VycmVudCBmcmFtZSJfcyB9KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IGMxODFhYmZmODdjMzQ3Y2YwZmE0MDE1YTk1MjRkYThjYzU5Y2YzMjgu
LmZhYTMzNjUyZWRiMzc2M2IzOWMxZjZiYjQ3ZjZiYjI0ZmEwM2M0MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVz
LmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTM4LDggKzM5LDYgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9mZmxpbmVB
dWRpb0Rlc3RpbmF0aW9uTm9kZSk7Ci0gICAgCi1jb25zdCBzaXplX3QgT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpyZW5kZXJRdWFudHVtU2l6ZSA9IDEyODsKIAogT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4
dCYgY29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVy
PiYmIHJlbmRlclRhcmdldCkKICAgICA6IEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQpCkBA
IC00Nyw3ICs0Niw3IEBAIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6T2ZmbGluZUF1ZGlv
RGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRlCiAgICAgLCBtX3JlbmRlclRh
cmdldChXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiAgICAgLCBtX2ZyYW1lc1RvUHJvY2VzcyhtX3Jl
bmRlclRhcmdldCA/IG1fcmVuZGVyVGFyZ2V0LT5sZW5ndGgoKSA6IDApCiB7Ci0gICAgbV9yZW5k
ZXJCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIHJlbmRlclF1YW50dW1T
aXplKTsKKyAgICBtX3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVs
cywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICBpbml0aWFsaXplRGVm
YXVsdE5vZGVPcHRpb25zKG51bWJlck9mQ2hhbm5lbHMsIENoYW5uZWxDb3VudE1vZGU6OkV4cGxp
Y2l0LCBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKTsKIH0KIApAQCAtMTM0LDcgKzEz
Myw3IEBAIGF1dG8gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyKCkg
LT4gT2ZmbGluZVJlbmRlclJlc3VsdAogICAgIGlmICghY2hhbm5lbHNNYXRjaCkKICAgICAgICAg
cmV0dXJuIE9mZmxpbmVSZW5kZXJSZXN1bHQ6OkZhaWx1cmU7CiAKLSAgICBib29sIGlzUmVuZGVy
QnVzQWxsb2NhdGVkID0gbV9yZW5kZXJCdXMtPmxlbmd0aCgpID49IHJlbmRlclF1YW50dW1TaXpl
OworICAgIGJvb2wgaXNSZW5kZXJCdXNBbGxvY2F0ZWQgPSBtX3JlbmRlckJ1cy0+bGVuZ3RoKCkg
Pj0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogICAgIEFTU0VSVChpc1JlbmRl
ckJ1c0FsbG9jYXRlZCk7CiAgICAgaWYgKCFpc1JlbmRlckJ1c0FsbG9jYXRlZCkKICAgICAgICAg
cmV0dXJuIE9mZmxpbmVSZW5kZXJSZXN1bHQ6OkZhaWx1cmU7CkBAIC0xNDgsOSArMTQ3LDkgQEAg
YXV0byBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXIoKSAtPiBPZmZs
aW5lUmVuZGVyUmVzdWx0CiAgICAgICAgICAgICByZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6
U3VzcGVuZGVkOwogCiAgICAgICAgIC8vIFJlbmRlciBvbmUgcmVuZGVyIHF1YW50dW0uCi0gICAg
ICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7
CisgICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplLCB7IH0pOwogICAgICAgICAKLSAgICAgICAgc2l6ZV90IGZyYW1lc0F2
YWlsYWJsZVRvQ29weSA9IHN0ZDo6bWluKG1fZnJhbWVzVG9Qcm9jZXNzLCByZW5kZXJRdWFudHVt
U2l6ZSk7CisgICAgICAgIHNpemVfdCBmcmFtZXNBdmFpbGFibGVUb0NvcHkgPSBzdGQ6Om1pbiht
X2ZyYW1lc1RvUHJvY2VzcywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAg
ICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbElu
ZGV4IDwgbnVtYmVyT2ZDaGFubmVsczsgKytjaGFubmVsSW5kZXgpIHsKICAgICAgICAgICAgIGNv
bnN0IGZsb2F0KiBzb3VyY2UgPSBtX3JlbmRlckJ1cy0+Y2hhbm5lbChjaGFubmVsSW5kZXgpLT5k
YXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCA1YzJlYmUwNmZmYWE2NTRiNzI2
OWU1NThhOTQxZGYwYjZkZWQ0ZGE3Li42ZTQ5NjdlNzZhMzZjOTQwNmNiMjFkZmJmMTZjMThiNzVl
ODY5M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTU0LDggKzU0LDYgQEAgcHVi
bGljOgogCiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVu
ZGVyVGFyZ2V0LT5zYW1wbGVSYXRlKCk7IH0KIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcmVu
ZGVyUXVhbnR1bVNpemU7Ci0KIHByaXZhdGU6CiAgICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlKEJhc2VBdWRpb0NvbnRleHQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8
QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCAwNDhiOWI0ODRhMmM4NDE5
ZGRhODNlYjgxYThhYzNiZDIxZWQ5MjM0Li4xMzQxYTJkNDk4MDJjZjU2YmU2NjU0YmYxYTYzMGUw
OGQ1Yzc2NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Ob2Rl
T3V0cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9QYXJhbS5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiUGVyaW9kaWNXYXZlLmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC05NCw2ICs5NSw4IEBAIE9z
Y2lsbGF0b3JOb2RlOjpPc2NpbGxhdG9yTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBj
b25zdCBPc2NpbGxhdG9yT3B0aW9uCiAgICAgOiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoY29u
dGV4dCkKICAgICAsIG1fZnJlcXVlbmN5KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJl
cXVlbmN5Il9zLCBvcHRpb25zLmZyZXF1ZW5jeSwgLWNvbnRleHQuc2FtcGxlUmF0ZSgpIC8gMiwg
Y29udGV4dC5zYW1wbGVSYXRlKCkgLyAyLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogICAgICwg
bV9kZXR1bmUoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1bmUiX3MsIG9wdGlvbnMu
ZGV0dW5lLCAtMTIwMCAqIGxvZzJmKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSks
IDEyMDAgKiBsb2cyZihzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9waGFzZUluY3JlbWVudHMoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9kZXR1bmVWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlT3NjaWxsYXRv
cik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0
b3JOb2RlLmgKaW5kZXggNDQyYTBlNWM3MDhkZTNlMjVjNThiNzE5ODg5M2Y0MjdjN2YwYzgyZi4u
ZDdiNmI1ZTI1Mjc1ODc4ZmEwYzc3NDdhZDhiMDQ3Yzg5NzQ3NTkwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaApAQCAtODgsOCArODgs
OCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTG9jayBtX3Byb2Nlc3NNdXRleDsKIAogICAgIC8v
IFN0b3JlcyBzYW1wbGUtYWNjdXJhdGUgdmFsdWVzIGNhbGN1bGF0ZWQgYWNjb3JkaW5nIHRvIGZy
ZXF1ZW5jeSBhbmQgZGV0dW5lLgotICAgIEF1ZGlvRmxvYXRBcnJheSBtX3BoYXNlSW5jcmVtZW50
cyB7IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9OwotICAgIEF1ZGlvRmxvYXRB
cnJheSBtX2RldHVuZVZhbHVlcyB7IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9
OworICAgIEF1ZGlvRmxvYXRBcnJheSBtX3BoYXNlSW5jcmVtZW50czsKKyAgICBBdWRpb0Zsb2F0
QXJyYXkgbV9kZXR1bmVWYWx1ZXM7CiAgICAgCiAgICAgUmVmUHRyPFBlcmlvZGljV2F2ZT4gbV9w
ZXJpb2RpY1dhdmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFu
bmVyTm9kZS5jcHAKaW5kZXggMDQ4NTdhY2RmMjYxODlkYWYwODRhNWNlMmZiZTY2OGQ2OGM0ZjBm
Zi4uMTQ1NTJmZWY5MjgzNjU3MjBmNjc3MDU4MzU0NzlmZGZmYzRhZmY1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0xODMsOCArMTgz
LDggQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAK
IHZvaWQgUGFubmVyTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVlc1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5G
cmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNz
aW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9hdCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICBtX3Bvc2l0aW9uWC0+Y2FsY3VsYXRlU2Ft
cGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nlc3MpOwogICAgIG1fcG9zaXRp
b25ZLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vz
cyk7CkBAIC0yMDEsMTMgKzIwMSwxMyBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3NTYW1wbGVB
Y2N1cmF0ZVZhbHVlcyhBdWRpb0J1cyogZGVzdGluYXRpb24sIGNvbnN0IEF1ZGlvQgogewogICAg
IC8vIEdldCB0aGUgc2FtcGxlIGFjY3VyYXRlIHZhbHVlcyBmcm9tIGFsbCBvZiB0aGUgQXVkaW9Q
YXJhbXMsIGluY2x1ZGluZyB0aGUKICAgICAvLyB2YWx1ZXMgZnJvbSB0aGUgQXVkaW9MaXN0ZW5l
ci4KLSAgICBmbG9hdCBwYW5uZXJYW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107
Ci0gICAgZmxvYXQgcGFubmVyWVtBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwot
ICAgIGZsb2F0IHBhbm5lclpbQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKKyAg
ICBmbG9hdCBwYW5uZXJYW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAg
ZmxvYXQgcGFubmVyWVtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZs
b2F0IHBhbm5lclpbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKIAotICAgIGZs
b2F0IG9yaWVudGF0aW9uWFtBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAg
IGZsb2F0IG9yaWVudGF0aW9uWVtBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwot
ICAgIGZsb2F0IG9yaWVudGF0aW9uWltBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNd
OworICAgIGZsb2F0IG9yaWVudGF0aW9uWFtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emVdOworICAgIGZsb2F0IG9yaWVudGF0aW9uWVtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemVdOworICAgIGZsb2F0IG9yaWVudGF0aW9uWltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemVdOwogCiAgICAgbV9wb3NpdGlvblgtPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFs
dWVzKHBhbm5lclgsIGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgbV9wb3NpdGlvblktPmNhbGN1bGF0
ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHBhbm5lclksIGZyYW1lc1RvUHJvY2Vzcyk7CkBAIC0yMTcs
MjIgKzIxNywyMiBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3NTYW1wbGVBY2N1cmF0ZVZhbHVl
cyhBdWRpb0J1cyogZGVzdGluYXRpb24sIGNvbnN0IEF1ZGlvQgogICAgIG1fb3JpZW50YXRpb25a
LT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhvcmllbnRhdGlvblosIGZyYW1lc1RvUHJv
Y2Vzcyk7CiAKICAgICAvLyBHZXQgdGhlIGF1dG9tYXRpb24gdmFsdWVzIGZyb20gdGhlIGxpc3Rl
bmVyLgotICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclggPSBsaXN0ZW5lcigpLnBvc2l0aW9uWFZh
bHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0
KiBsaXN0ZW5lclkgPSBsaXN0ZW5lcigpLnBvc2l0aW9uWVZhbHVlcyhBdWRpb05vZGU6OlByb2Nl
c3NpbmdTaXplSW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclogPSBsaXN0ZW5l
cigpLnBvc2l0aW9uWlZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwor
ICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclggPSBsaXN0ZW5lcigpLnBvc2l0aW9uWFZhbHVlcyhB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZsb2F0KiBsaXN0
ZW5lclkgPSBsaXN0ZW5lcigpLnBvc2l0aW9uWVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclogPSBsaXN0ZW5lcigpLnBv
c2l0aW9uWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCi0gICAg
Y29uc3QgZmxvYXQqIGZvcndhcmRYID0gbGlzdGVuZXIoKS5mb3J3YXJkWFZhbHVlcyhBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0KiBmb3J3YXJkWSA9
IGxpc3RlbmVyKCkuZm9yd2FyZFlWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJh
bWVzKTsKLSAgICBjb25zdCBmbG9hdCogZm9yd2FyZFogPSBsaXN0ZW5lcigpLmZvcndhcmRaVmFs
dWVzKEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgY29uc3QgZmxvYXQq
IGZvcndhcmRYID0gbGlzdGVuZXIoKS5mb3J3YXJkWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZsb2F0KiBmb3J3YXJkWSA9IGxpc3RlbmVyKCku
Zm9yd2FyZFlWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBj
b25zdCBmbG9hdCogZm9yd2FyZFogPSBsaXN0ZW5lcigpLmZvcndhcmRaVmFsdWVzKEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKLSAgICBjb25zdCBmbG9hdCogdXBYID0gbGlz
dGVuZXIoKS51cFhWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKLSAg
ICBjb25zdCBmbG9hdCogdXBZID0gbGlzdGVuZXIoKS51cFlWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKLSAgICBjb25zdCBmbG9hdCogdXBaID0gbGlzdGVuZXIoKS51
cFpWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBjb25zdCBm
bG9hdCogdXBYID0gbGlzdGVuZXIoKS51cFhWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKTsKKyAgICBjb25zdCBmbG9hdCogdXBZID0gbGlzdGVuZXIoKS51cFlWYWx1ZXMo
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBjb25zdCBmbG9hdCogdXBa
ID0gbGlzdGVuZXIoKS51cFpWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
KTsKIAogICAgIC8vIENvbXB1dGUgdGhlIGF6aW11dGgsIGVsZXZhdGlvbiwgYW5kIHRvdGFsIGdh
aW5zIGZvciBlYWNoIHBvc2l0aW9uLgotICAgIGRvdWJsZSBhemltdXRoW0F1ZGlvTm9kZTo6UHJv
Y2Vzc2luZ1NpemVJbkZyYW1lc107Ci0gICAgZG91YmxlIGVsZXZhdGlvbltBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIGZsb2F0IHRvdGFsR2FpbltBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXNdOworICAgIGRvdWJsZSBhemltdXRoW0F1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgZG91YmxlIGVsZXZhdGlvbltBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZsb2F0IHRvdGFsR2FpbltBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemVdOwogCiAgICAgZm9yIChzaXplX3QgayA9IDA7IGsgPCBmcmFt
ZXNUb1Byb2Nlc3M7ICsraykgewogICAgICAgICBGbG9hdFBvaW50M0QgcGFubmVyUG9zaXRpb24o
cGFubmVyWFtrXSwgcGFubmVyWVtrXSwgcGFubmVyWltrXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCA1MTNhMDhi
MmNiNGM3ZGNiZDA2M2U2NGFlMDIwYmZhOWU5YzBhOTE4Li4yOThkNTFmZmVjOTUxNDlkZDAxYWJk
MTg4YjEzZmQ1OGNlNDI5ZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgY29uc3QgdW5z
aWduZWQgUmVhbHRpbWVBbmFseXNlcjo6SW5wdXRCdWZmZXJTaXplID0gUmVhbHRpbWVBbmFseXNl
cjo6TWF4RkZUU2l6ZQogUmVhbHRpbWVBbmFseXNlcjo6UmVhbHRpbWVBbmFseXNlcigpCiAgICAg
OiBtX2lucHV0QnVmZmVyKElucHV0QnVmZmVyU2l6ZSkKICAgICAsIG1fd3JpdGVJbmRleCgwKQot
ICAgICwgbV9kb3dubWl4QnVzKEF1ZGlvQnVzOjpjcmVhdGUoMSwgQXVkaW9Ob2RlOjpQcm9jZXNz
aW5nU2l6ZUluRnJhbWVzKSkKKyAgICAsIG1fZG93bm1peEJ1cyhBdWRpb0J1czo6Y3JlYXRlKDEs
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkpCiAgICAgLCBtX2ZmdFNpemUoRGVm
YXVsdEZGVFNpemUpCiAgICAgLCBtX21hZ25pdHVkZUJ1ZmZlcihEZWZhdWx0RkZUU2l6ZSAvIDIp
CiAgICAgLCBtX3Ntb290aGluZ1RpbWVDb25zdGFudChEZWZhdWx0U21vb3RoaW5nVGltZUNvbnN0
YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYjg2OTc2YzdhOGM3MWQyNDMwNWNkNWViMTIyYmVmYWU1
MGFjMWYyYi4uN2ZiZDY0M2JlYjE4MTI5OTY0YjI0OTdkYzA1NThkNjY4NTNlODI4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIK
ICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1Byb2Nlc3NpbmdF
dmVudC5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxv
YXQzMkFycmF5Lmg+CkBAIC01OCwxMSArNTksMTEgQEAgU2NyaXB0UHJvY2Vzc29yTm9kZTo6U2Ny
aXB0UHJvY2Vzc29yTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBzaXplX3QgYnVmZmUK
ICAgICAsIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXgoMCkKICAgICAsIG1fbnVtYmVyT2ZJbnB1dENo
YW5uZWxzKG51bWJlck9mSW5wdXRDaGFubmVscykKICAgICAsIG1fbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscyhudW1iZXJPZk91dHB1dENoYW5uZWxzKQotICAgICwgbV9pbnRlcm5hbElucHV0QnVzKEF1
ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBBdWRpb05vZGU6OlByb2Nlc3Np
bmdTaXplSW5GcmFtZXMsIGZhbHNlKSkKKyAgICAsIG1faW50ZXJuYWxJbnB1dEJ1cyhBdWRpb0J1
czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplLCBmYWxzZSkpCiB7CiAgICAgLy8gUmVnYXJkbGVzcyBvZiB0aGUgYWxsb3dlZCBi
dWZmZXIgc2l6ZXMsIHdlIHN0aWxsIG5lZWQgdG8gcHJvY2VzcyBhdCB0aGUgZ3JhbnVsYXJpdHkg
b2YgdGhlIEF1ZGlvTm9kZS4KLSAgICBpZiAobV9idWZmZXJTaXplIDwgQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICAgICBtX2J1ZmZlclNpemUgPSBBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXM7CisgICAgaWYgKG1fYnVmZmVyU2l6ZSA8IEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKKyAgICAgICAgbV9idWZmZXJTaXplID0gQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogCiAgICAgQVNTRVJUKG51bWJlck9mSW5wdXRDaGFu
bmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1N0ZXJlb1Bhbm5lck5vZGUuY3BwCmlu
ZGV4IDhjOWI5NmY0ZDAzMjk4MDM3MDYyMWVmZGNlMmQxN2E1NjdkNGI4MGMuLjhkYjY5MTViYjQx
Y2I0MTA0YjI0NzQzZGRjNzY5YmUzNmZjOWJhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJOb2RlLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNp
bmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU3LDYgKzU4LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFN0ZXJlb1Bhbm5lck5vZGU+PiBTdGVy
ZW9QYW5uZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY28KIFN0ZXJlb1Bhbm5lck5v
ZGU6OlN0ZXJlb1Bhbm5lck5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgcGFu
KQogICAgIDogQXVkaW9Ob2RlKGNvbnRleHQpCiAgICAgLCBtX3BhbihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInBhbiJfcywgcGFuLCAtMSwgMSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
KyAgICAsIG1fc2FtcGxlQWNjdXJhdGVWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlU3RlcmVvKTsKICAgICAKQEAgLTEw
Miw4ICsxMDQsOCBAQCB2b2lkIFN0ZXJlb1Bhbm5lck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1l
c1RvUHJvY2VzcykKIAogdm9pZCBTdGVyZW9QYW5uZXJOb2RlOjpwcm9jZXNzT25seUF1ZGlvUGFy
YW1zKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgZmxvYXQgdmFsdWVzW0F1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107Ci0gICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8
PSBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIGZsb2F0IHZhbHVlc1tB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIEFTU0VSVChmcmFtZXNUb1By
b2Nlc3MgPD0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIG1fcGFu
LT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1N0ZXJlb1Bh
bm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVy
Tm9kZS5oCmluZGV4IDg0NDYxNDE2N2FkOGQwMjllNzhiMWRhM2NiYTg1MWZkODVmNWI1NWEuLmI3
OTMwMDkzMjNmOTkxMDBiYjNjZmVjMTI3MmY2Y2NmMWU5Njc2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gMDsgfQogICAgIAogICAgIFJlZjxBdWRpb1BhcmFtPiBtX3BhbjsKLSAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9zYW1wbGVBY2N1cmF0ZVZhbHVlcyB7IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcyB9OworICAgIEF1ZGlvRmxvYXRBcnJheSBtX3NhbXBsZUFjY3VyYXRlVmFsdWVz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAKaW5kZXggZGY1ODM2
Y2JkYmE3ZmY2MmE1ZjBlMTdmNzc4MmNhNTE0YjRkMWEwNi4uMGRhODM1NzcwZjdmOGI3NzdmZjc4
NDNjY2I4YzgzZTYwOTU1NTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJEU1BLZXJuZWwuY3BwCkBAIC0yOCwxMyArMjgsMTIgQEAK
IAogI2luY2x1ZGUgIldhdmVTaGFwZXJEU1BLZXJuZWwuaCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRp
bGl0aWVzLmgiCiAjaW5jbHVkZSAiV2F2ZVNoYXBlclByb2Nlc3Nvci5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIAotY29uc3QgdW5zaWduZWQgUmVuZGVyaW5nUXVhbnR1bSA9IDEyODsKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXYXZlU2hhcGVyRFNQS2VybmVsOjpXYXZlU2hhcGVyRFNQS2Vy
bmVsKFdhdmVTaGFwZXJQcm9jZXNzb3IqIHByb2Nlc3NvcikKQEAgLTQ5LDEyICs0OCwxMiBAQCB2
b2lkIFdhdmVTaGFwZXJEU1BLZXJuZWw6OmxhenlJbml0aWFsaXplT3ZlcnNhbXBsaW5nKCkKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKCFtX3RlbXBCdWZmZXIpIHsKLSAg
ICAgICAgbV90ZW1wQnVmZmVyID0gbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KFJlbmRlcmlu
Z1F1YW50dW0gKiAyKTsKLSAgICAgICAgbV90ZW1wQnVmZmVyMiA9IG1ha2VVbmlxdWU8QXVkaW9G
bG9hdEFycmF5PihSZW5kZXJpbmdRdWFudHVtICogNCk7Ci0gICAgICAgIG1fdXBTYW1wbGVyID0g
bWFrZVVuaXF1ZTxVcFNhbXBsZXI+KFJlbmRlcmluZ1F1YW50dW0pOwotICAgICAgICBtX2Rvd25T
YW1wbGVyID0gbWFrZVVuaXF1ZTxEb3duU2FtcGxlcj4oUmVuZGVyaW5nUXVhbnR1bSAqIDIpOwot
ICAgICAgICBtX3VwU2FtcGxlcjIgPSBtYWtlVW5pcXVlPFVwU2FtcGxlcj4oUmVuZGVyaW5nUXVh
bnR1bSAqIDIpOwotICAgICAgICBtX2Rvd25TYW1wbGVyMiA9IG1ha2VVbmlxdWU8RG93blNhbXBs
ZXI+KFJlbmRlcmluZ1F1YW50dW0gKiA0KTsKKyAgICAgICAgbV90ZW1wQnVmZmVyID0gbWFrZVVu
aXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAq
IDIpOworICAgICAgICBtX3RlbXBCdWZmZXIyID0gbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+
KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAqIDQpOworICAgICAgICBtX3VwU2Ft
cGxlciA9IG1ha2VVbmlxdWU8VXBTYW1wbGVyPihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpOworICAgICAgICBtX2Rvd25TYW1wbGVyID0gbWFrZVVuaXF1ZTxEb3duU2FtcGxlcj4o
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplICogMik7CisgICAgICAgIG1fdXBTYW1w
bGVyMiA9IG1ha2VVbmlxdWU8VXBTYW1wbGVyPihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUgKiAyKTsKKyAgICAgICAgbV9kb3duU2FtcGxlcjIgPSBtYWtlVW5pcXVlPERvd25TYW1w
bGVyPihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUgKiA0KTsKICAgICB9CiB9CiAK
QEAgLTExNyw3ICsxMTYsNyBAQCB2b2lkIFdhdmVTaGFwZXJEU1BLZXJuZWw6OnByb2Nlc3NDdXJ2
ZShjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sCiAKIHZvaWQgV2F2ZVNo
YXBlckRTUEtlcm5lbDo6cHJvY2Vzc0N1cnZlMngoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQq
IGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGJvb2wgaXNTYWZl
ID0gZnJhbWVzVG9Qcm9jZXNzID09IFJlbmRlcmluZ1F1YW50dW07CisgICAgYm9vbCBpc1NhZmUg
PSBmcmFtZXNUb1Byb2Nlc3MgPT0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwog
ICAgIEFTU0VSVChpc1NhZmUpOwogICAgIGlmICghaXNTYWZlKQogICAgICAgICByZXR1cm47CkBA
IC0xMzQsNyArMTMzLDcgQEAgdm9pZCBXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUy
eChjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24KIAogdm9pZCBXYXZlU2hh
cGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmU0eChjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCog
ZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgYm9vbCBpc1NhZmUg
PSBmcmFtZXNUb1Byb2Nlc3MgPT0gUmVuZGVyaW5nUXVhbnR1bTsKKyAgICBib29sIGlzU2FmZSA9
IGZyYW1lc1RvUHJvY2VzcyA9PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAg
ICAgQVNTRVJUKGlzU2FmZSk7CiAgICAgaWYgKCFpc1NhZmUpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2Vy
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2Vy
bmVsLmNwcAppbmRleCA4NmE4ZWI1MTAyZGI4ZWNmZDQ3M2RmNzExNGQ3YzcyZTU3ODQ3NmVkLi4z
Nzk4ZDdlZWQzZTVlMzk4NTFmMDJiYTE5YzFiYTgzNzExY2Y0MTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuY3BwCkBA
IC0yOSwxNiArMjksMTUgQEAKICNpbmNsdWRlICJBdWRpb1Jlc2FtcGxlcktlcm5lbC5oIgogCiAj
aW5jbHVkZSAiQXVkaW9SZXNhbXBsZXIuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgog
I2luY2x1ZGUgPGFsZ29yaXRobT4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY29uc3Qg
c2l6ZV90IEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpNYXhGcmFtZXNUb1Byb2Nlc3MgPSAxMjg7CiAK
IEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpBdWRpb1Jlc2FtcGxlcktlcm5lbChBdWRpb1Jlc2FtcGxl
ciogcmVzYW1wbGVyKQogICAgIDogbV9yZXNhbXBsZXIocmVzYW1wbGVyKQogICAgIC8vIFRoZSBi
dWZmZXIgc2l6ZSBtdXN0IGJlIGxhcmdlIGVub3VnaCB0byBob2xkIHVwIHRvIHR3byBleHRyYSBz
YW1wbGUgZnJhbWVzIGZvciB0aGUgbGluZWFyIGludGVycG9sYXRpb24uCi0gICAgLCBtX3NvdXJj
ZUJ1ZmZlcigyICsgc3RhdGljX2Nhc3Q8aW50PihNYXhGcmFtZXNUb1Byb2Nlc3MgKiBBdWRpb1Jl
c2FtcGxlcjo6TWF4UmF0ZSkpCisgICAgLCBtX3NvdXJjZUJ1ZmZlcigyICsgc3RhdGljX2Nhc3Q8
aW50PihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUgKiBBdWRpb1Jlc2FtcGxlcjo6
TWF4UmF0ZSkpCiAgICAgLCBtX3ZpcnR1YWxSZWFkSW5kZXgoMC4wKQogICAgICwgbV9maWxsSW5k
ZXgoMCkKIHsKQEAgLTQ4LDcgKzQ3LDcgQEAgQXVkaW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVz
YW1wbGVyS2VybmVsKEF1ZGlvUmVzYW1wbGVyKiByZXNhbXBsZXIpCiAKIGZsb2F0KiBBdWRpb1Jl
c2FtcGxlcktlcm5lbDo6Z2V0U291cmNlUG9pbnRlcihzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBz
aXplX3QqIG51bWJlck9mU291cmNlRnJhbWVzTmVlZGVkUCkKIHsKLSAgICBBU1NFUlQoZnJhbWVz
VG9Qcm9jZXNzIDw9IE1heEZyYW1lc1RvUHJvY2Vzcyk7CisgICAgQVNTRVJUKGZyYW1lc1RvUHJv
Y2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgIAogICAgIC8v
IENhbGN1bGF0ZSB0aGUgbmV4dCAidmlydHVhbCIgaW5kZXguICBBZnRlciBwcm9jZXNzKCkgaXMg
Y2FsbGVkLCBtX3ZpcnR1YWxSZWFkSW5kZXggd2lsbCBlcXVhbCB0aGlzIHZhbHVlLgogICAgIGRv
dWJsZSBuZXh0RnJhY3Rpb25hbEluZGV4ID0gbV92aXJ0dWFsUmVhZEluZGV4ICsgZnJhbWVzVG9Q
cm9jZXNzICogcmF0ZSgpOwpAQCAtNzMsNyArNzIsNyBAQCBmbG9hdCogQXVkaW9SZXNhbXBsZXJL
ZXJuZWw6OmdldFNvdXJjZVBvaW50ZXIoc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcywgc2l6ZV90KiBu
dQogCiB2b2lkIEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlv
biwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNz
IDw9IE1heEZyYW1lc1RvUHJvY2Vzcyk7CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgZmxvYXQqIHNvdXJjZSA9
IG1fc291cmNlQnVmZmVyLmRhdGEoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5oCmluZGV4IDE3NDZkY2UxYzYzOTBj
NTIxYzdiMzEzZTY4NWEyYmQxNjcyNTVlYmEuLmQxM2ZlNTczNDIxOTE0ZjNiZjRmYTAzYTVjYTcx
ZWQ5MDU3ZTg2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvUmVzYW1wbGVyS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9SZXNhbXBsZXJLZXJuZWwuaApAQCAtNDUsMTkgKzQ1LDE3IEBAIHB1YmxpYzoKICAgICAv
LyBnZXRTb3VyY2VQb2ludGVyKCkgc2hvdWxkIGJlIGNhbGxlZCBlYWNoIHRpbWUgYmVmb3JlIHBy
b2Nlc3MoKSBpcyBjYWxsZWQuCiAgICAgLy8gR2l2ZW4gYSBudW1iZXIgb2YgZnJhbWVzIHRvIHBy
b2Nlc3MgKGZvciBzdWJzZXF1ZW50IGNhbGwgdG8gcHJvY2VzcygpKSwgaXQgcmV0dXJucyBhIHBv
aW50ZXIgYW5kIG51bWJlck9mU291cmNlRnJhbWVzTmVlZGVkCiAgICAgLy8gd2hlcmUgc2FtcGxl
IGRhdGEgc2hvdWxkIGJlIGNvcGllZC4gVGhpcyBzYW1wbGUgZGF0YSBwcm92aWRlcyB0aGUgaW5w
dXQgdG8gdGhlIHJlc2FtcGxlciB3aGVuIHByb2Nlc3MoKSBpcyBjYWxsZWQuCi0gICAgLy8gZnJh
bWVzVG9Qcm9jZXNzIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIE1heEZyYW1lc1RvUHJv
Y2Vzcy4KKyAgICAvLyBmcmFtZXNUb1Byb2Nlc3MgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLgogICAgIGZsb2F0KiBnZXRTb3Vy
Y2VQb2ludGVyKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIHNpemVfdCogbnVtYmVyT2ZTb3VyY2VG
cmFtZXNOZWVkZWQpOwogCiAgICAgLy8gcHJvY2VzcygpIHJlc2FtcGxlcyBmcmFtZXNUb1Byb2Nl
c3MgZnJhbWVzIGZyb20gdGhlIHNvdXJjZSBpbnRvIGRlc3RpbmF0aW9uLgogICAgIC8vIEVhY2gg
Y2FsbCB0byBwcm9jZXNzKCkgbXVzdCBiZSBwcmVjZWRlZCBieSBhIGNhbGwgdG8gZ2V0U291cmNl
UG9pbnRlcigpIHNvIHRoYXQgc291cmNlIGlucHV0IG1heSBiZSBzdXBwbGllZC4KLSAgICAvLyBm
cmFtZXNUb1Byb2Nlc3MgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gTWF4RnJhbWVzVG9Q
cm9jZXNzLgorICAgIC8vIGZyYW1lc1RvUHJvY2VzcyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVh
bCB0byBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUuCiAgICAgdm9pZCBwcm9jZXNz
KGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICAvLyBS
ZXNldHMgdGhlIHByb2Nlc3Npbmcgc3RhdGUuCiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBNYXhGcmFtZXNUb1Byb2Nlc3M7Ci0KIHByaXZhdGU6CiAgICAgZG91
YmxlIHJhdGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvVXRpbGl0aWVzLmgKaW5kZXggMWUxOWFlMWZkNTBhMGVjODFkNzYzNjBmOTVlOGY0MzM0Zjhk
NDFkZC4uZTVkMTM1MjgyMWU3ZTAxZmI5M2I2NTE2OGFmZmYyNzY1OTY1YjBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9VdGlsaXRpZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1V0aWxpdGllcy5oCkBAIC0yOSw2ICsy
OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIEF1ZGlvVXRpbGl0aWVzIHsK
IAorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1ZGlvLyNyZW5kZXItcXVhbnR1bS1zaXpl
Citjb25zdGV4cHIgc2l6ZV90IHJlbmRlclF1YW50dW1TaXplID0gMTI4OworCiAvLyBTdGFuZGFy
ZCBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgdG8gYW5kIGZyb20gZGVjaWJlbCB2YWx1ZXMgZnJv
bSBsaW5lYXIuCiBmbG9hdCBsaW5lYXJUb0RlY2liZWxzKGZsb2F0KTsKIGZsb2F0IGRlY2liZWxz
VG9MaW5lYXIoZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQmlxdWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAK
aW5kZXggM2I2NDNiMGIzYWEwN2I2Y2VkMDcwM2JkZjdkMWViNTg3NmM3M2MzZi4uMDVmOWU2MmYx
YjMxNWNkNGY3YzBmMTZjYWVlMzIzZDNkMTI0ZTE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9CaXF1YWQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJCaXF1YWQu
aCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRGVub3JtYWxEaXNh
Ymxlci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNTks
MTEgKzYwLDExIEBAIEJpcXVhZDo6QmlxdWFkKCkKIAogICAgIC8vIEFsbG9jYXRlIGVub3VnaCBz
cGFjZSBmb3IgdGhlIGEtcmF0ZSBmaWx0ZXIgY29lZmZpY2llbnRzIHRvIGhhbmRsZSBhCiAgICAg
Ly8gcmVuZGVyaW5nIHF1YW50dW0gb2YgMTI4IGZyYW1lcy4KLSAgICBtX2IwLmFsbG9jYXRlKE1h
eEZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgbV9iMS5hbGxvY2F0ZShNYXhGcmFtZXNUb1Byb2Nlc3Mp
OwotICAgIG1fYjIuYWxsb2NhdGUoTWF4RnJhbWVzVG9Qcm9jZXNzKTsKLSAgICBtX2ExLmFsbG9j
YXRlKE1heEZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgbV9hMi5hbGxvY2F0ZShNYXhGcmFtZXNUb1By
b2Nlc3MpOworICAgIG1fYjAuYWxsb2NhdGUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplKTsKKyAgICBtX2IxLmFsbG9jYXRlKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6
ZSk7CisgICAgbV9iMi5hbGxvY2F0ZShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OworICAgIG1fYTEuYWxsb2NhdGUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsK
KyAgICBtX2EyLmFsbG9jYXRlKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAK
ICAgICAvLyBJbml0aWFsaXplIGFzIHBhc3MtdGhydSAoc3RyYWlnaHQtd2lyZSwgbm8gZmlsdGVy
IGVmZmVjdCkKICAgICBzZXROb3JtYWxpemVkQ29lZmZpY2llbnRzKDAsIDEsIDAsIDAsIDEsIDAs
IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuaAppbmRleCA1NDg3OTNjODI3
YWY3MTFiMDM4YjM4NzA3MWIyZmVlODhiZTJkNmU3Li5hYmJlMGY1MmJlNDAzYTNhZTA3YzM2YWUw
ZWQ5ZWJhYThhYjk3YzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9CaXF1YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuaApA
QCAtNDYsOCArNDYsNiBAQCBwdWJsaWM6CiAgICAgQmlxdWFkKCk7CiAgICAgfkJpcXVhZCgpOwog
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTWF4RnJhbWVzVG9Qcm9jZXNzID0gMTI4Owot
CiAgICAgdm9pZCBwcm9jZXNzKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBmbG9hdCogZGVzdFAsIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCiAgICAgYm9vbCBoYXNTYW1wbGVBY2N1cmF0ZVZhbHVl
cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXM7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKaW5kZXggNDA4YjZlMDJlMjg2
M2FmZmNmZjM0NTI3NTE5NDZiYTYwMzM1NDNkNi4uY2Q4YjQyN2U1YWNmNDg1OGM4NjEyYTIxNzM5
NWQwNzQ0ZGQzYjViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURlBhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBh
bm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJIUlRGUGFubmVyLmgiCiAKICNp
bmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVk
ZSAiRkZUQ29udm9sdmVyLmgiCiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
SFJURkRhdGFiYXNlTG9hZGVyLmgiCkBAIC00Miw3ICs0Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNvbnN0IGRvdWJsZSBNYXhEZWxheVRpbWVTZWNvbmRzID0gMC4wMDI7CiAKIGNvbnN0IGlu
dCBVbmluaXRpYWxpemVkQXppbXV0aCA9IC0xOwotY29uc3QgdW5zaWduZWQgUmVuZGVyaW5nUXVh
bnR1bSA9IDEyODsKIAogSFJURlBhbm5lcjo6SFJURlBhbm5lcihmbG9hdCBzYW1wbGVSYXRlLCBI
UlRGRGF0YWJhc2VMb2FkZXIqIGRhdGFiYXNlTG9hZGVyKQogICAgIDogUGFubmVyKFBhbm5pbmdN
b2RlbFR5cGU6OkhSVEYpCkBAIC02MSwxMCArNjEsMTAgQEAgSFJURlBhbm5lcjo6SFJURlBhbm5l
cihmbG9hdCBzYW1wbGVSYXRlLCBIUlRGRGF0YWJhc2VMb2FkZXIqIGRhdGFiYXNlTG9hZGVyKQog
ICAgICwgbV9jb252b2x2ZXJSMihmZnRTaXplRm9yU2FtcGxlUmF0ZShzYW1wbGVSYXRlKSkKICAg
ICAsIG1fZGVsYXlMaW5lTChNYXhEZWxheVRpbWVTZWNvbmRzLCBzYW1wbGVSYXRlKQogICAgICwg
bV9kZWxheUxpbmVSKE1heERlbGF5VGltZVNlY29uZHMsIHNhbXBsZVJhdGUpCi0gICAgLCBtX3Rl
bXBMMShSZW5kZXJpbmdRdWFudHVtKQotICAgICwgbV90ZW1wUjEoUmVuZGVyaW5nUXVhbnR1bSkK
LSAgICAsIG1fdGVtcEwyKFJlbmRlcmluZ1F1YW50dW0pCi0gICAgLCBtX3RlbXBSMihSZW5kZXJp
bmdRdWFudHVtKQorICAgICwgbV90ZW1wTDEoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplKQorICAgICwgbV90ZW1wUjEoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQor
ICAgICwgbV90ZW1wTDIoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwg
bV90ZW1wUjIoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIEFTU0VS
VChkYXRhYmFzZUxvYWRlcik7CiB9CkBAIC0yMTgsMTEgKzIxOCwxMSBAQCB2b2lkIEhSVEZQYW5u
ZXI6OnBhbihkb3VibGUgZGVzaXJlZEF6aW11dGgsIGRvdWJsZSBlbGV2YXRpb24sIGNvbnN0IEF1
ZGlvQnVzKiBpbgogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gVGhpcyBhbGdvcml0aG0gY3Vy
cmVudGx5IHJlcXVpcmVzIHRoYXQgd2UgcHJvY2VzcyBpbiBwb3dlci1vZi10d28gc2l6ZSBjaHVu
a3MgYXQgbGVhc3QgUmVuZGVyaW5nUXVhbnR1bS4KKyAgICAvLyBUaGlzIGFsZ29yaXRobSBjdXJy
ZW50bHkgcmVxdWlyZXMgdGhhdCB3ZSBwcm9jZXNzIGluIHBvd2VyLW9mLXR3byBzaXplIGNodW5r
cyBhdCBsZWFzdCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUuCiAgICAgQVNTRVJU
KDFVTCA8PCBzdGF0aWNfY2FzdDxpbnQ+KGxvZzIoZnJhbWVzVG9Qcm9jZXNzKSkgPT0gZnJhbWVz
VG9Qcm9jZXNzKTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzID49IFJlbmRlcmluZ1F1YW50
dW0pOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPj0gQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKTsKIAotICAgIGNvbnN0IHVuc2lnbmVkIGZyYW1lc1BlclNlZ21lbnQgPSBS
ZW5kZXJpbmdRdWFudHVtOworICAgIGNvbnN0IHVuc2lnbmVkIGZyYW1lc1BlclNlZ21lbnQgPSBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAgICAgY29uc3QgdW5zaWduZWQgbnVt
YmVyT2ZTZWdtZW50cyA9IGZyYW1lc1RvUHJvY2VzcyAvIGZyYW1lc1BlclNlZ21lbnQ7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIHNlZ21lbnQgPSAwOyBzZWdtZW50IDwgbnVtYmVyT2ZTZWdtZW50czsg
KytzZWdtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9J
SVJGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSUlSRmlsdGVyLmNw
cAppbmRleCAyN2FhMmQyOTI5YjZkOWI5ZDQ5Zjg2ODBmMjEwOWQ0MDNhZmI4YTQzLi40MTM5MWMy
ZDlkNjI2NTRmZDRmNmNjNzk3ODllNzI1NTI1ZWIxNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0lJUkZpbHRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJ
SVJGaWx0ZXIuaCIKIAogI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKKyNpbmNsdWRlICJBdWRpb1V0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CiAjaW5jbHVkZSA8Y29tcGxleD4KQEAgLTM2LDggKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jb25zdGV4cHIgdW5zaWduZWQgaWlyUmVuZGVyaW5nUXVhbnR1bSA9IDEyODsKLQog
Ly8gVGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHRoZSBJSVIgZmlsdGVyLiBU
aGlzIE1VU1QgYmUgYSBwb3dlciBvZgogLy8gdHdvIGFuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0
aGUgcG9zc2libGUgbGVuZ3RoIG9mIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzLgogY29uc3RleHBy
IGludCBidWZmZXJMZW5ndGggPSAzMjsKQEAgLTE4OCwxMSArMTg3LDExIEBAIGRvdWJsZSBJSVJG
aWx0ZXI6OnRhaWxUaW1lKGRvdWJsZSBzYW1wbGVSYXRlLCBib29sIGlzRmlsdGVyU3RhYmxlKQog
ICAgIC8vIHplcm8gb3V0IHRoZSBvdXRwdXQgb2YgdGhlIG5vZGUuCiAKICAgICAvLyBOdW1iZXIg
b2YgcmVuZGVyIHF1YW50YSBuZWVkZWQgdG8gcmVhY2ggdGhlIG1heCB0YWlsIHRpbWUuCi0gICAg
aW50IG51bWJlck9mQmxvY2tzID0gc3RkOjpjZWlsKHNhbXBsZVJhdGUgKiBtYXhUYWlsVGltZSAv
IGlpclJlbmRlcmluZ1F1YW50dW0pOworICAgIGludCBudW1iZXJPZkJsb2NrcyA9IHN0ZDo6Y2Vp
bChzYW1wbGVSYXRlICogbWF4VGFpbFRpbWUgLyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpOwogCiAgICAgLy8gSW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGZvciBmaWx0ZXJpbmcu
Ci0gICAgQXVkaW9GbG9hdEFycmF5IGlucHV0KGlpclJlbmRlcmluZ1F1YW50dW0pOwotICAgIEF1
ZGlvRmxvYXRBcnJheSBvdXRwdXQoaWlyUmVuZGVyaW5nUXVhbnR1bSk7CisgICAgQXVkaW9GbG9h
dEFycmF5IGlucHV0KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgQXVk
aW9GbG9hdEFycmF5IG91dHB1dChBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwog
CiAgICAgLy8gQXJyYXkgdG8gaG9sZCB0aGUgbWF4IG1hZ25pdHVkZXMKICAgICBBdWRpb0Zsb2F0
QXJyYXkgbWFnbml0dWRlcyhudW1iZXJPZkJsb2Nrcyk7CkBAIC0yMDEsMTYgKzIwMCwxNiBAQCBk
b3VibGUgSUlSRmlsdGVyOjp0YWlsVGltZShkb3VibGUgc2FtcGxlUmF0ZSwgYm9vbCBpc0ZpbHRl
clN0YWJsZSkKICAgICBpbnB1dFswXSA9IDE7CiAKICAgICAvLyBQcm9jZXNzIHRoZSBmaXJzdCBi
bG9jayBhbmQgZ2V0IHRoZSBtYXggbWFnbml0dWRlIG9mIHRoZSBvdXRwdXQuCi0gICAgcHJvY2Vz
cyhpbnB1dC5kYXRhKCksIG91dHB1dC5kYXRhKCksIGlpclJlbmRlcmluZ1F1YW50dW0pOwotICAg
IFZlY3Rvck1hdGg6OnZtYXhtZ3Yob3V0cHV0LmRhdGEoKSwgMSwgJm1hZ25pdHVkZXNbMF0sIGlp
clJlbmRlcmluZ1F1YW50dW0pOworICAgIHByb2Nlc3MoaW5wdXQuZGF0YSgpLCBvdXRwdXQuZGF0
YSgpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIFZlY3Rvck1hdGg6
OnZtYXhtZ3Yob3V0cHV0LmRhdGEoKSwgMSwgJm1hZ25pdHVkZXNbMF0sIEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICAvLyBQcm9jZXNzIHRoZSByZXN0IG9mIHRoZSBz
aWduYWwsIGdldHRpbmcgdGhlIG1heCBtYWduaXR1ZGUgb2YgdGhlCiAgICAgLy8gb3V0cHV0IGZv
ciBlYWNoIGJsb2NrLgogICAgIGlucHV0WzBdID0gMDsKIAogICAgIGZvciAoaW50IGsgPSAxOyBr
IDwgbnVtYmVyT2ZCbG9ja3M7ICsraykgewotICAgICAgICBwcm9jZXNzKGlucHV0LmRhdGEoKSwg
b3V0cHV0LmRhdGEoKSwgaWlyUmVuZGVyaW5nUXVhbnR1bSk7Ci0gICAgICAgIFZlY3Rvck1hdGg6
OnZtYXhtZ3Yob3V0cHV0LmRhdGEoKSwgMSwgJm1hZ25pdHVkZXNba10sIGlpclJlbmRlcmluZ1F1
YW50dW0pOworICAgICAgICBwcm9jZXNzKGlucHV0LmRhdGEoKSwgb3V0cHV0LmRhdGEoKSwgQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICAgICAgVmVjdG9yTWF0aDo6dm1h
eG1ndihvdXRwdXQuZGF0YSgpLCAxLCAmbWFnbml0dWRlc1trXSwgQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplKTsKICAgICB9CiAKICAgICAvLyBEb25lIGNvbXB1dGluZyB0aGUgaW1w
dWxzZSByZXNwb25zZTsgcmVzZXQgdGhlIHN0YXRlIHNvIHRoZSBhY3R1YWwgbm9kZQpAQCAtMjI4
LDcgKzIyNyw3IEBAIGRvdWJsZSBJSVJGaWx0ZXI6OnRhaWxUaW1lKGRvdWJsZSBzYW1wbGVSYXRl
LCBib29sIGlzRmlsdGVyU3RhYmxlKQogCiAgICAgLy8gVGhlIG1hZ25pdHVkZSBmaXJzdCBiZWNv
bWUgbG93ZXIgdGhhbiB0aGUgdGhyZXNob2xkIGF0IHRoZSBuZXh0IGJsb2NrLgogICAgIC8vIENv
bXB1dGUgdGhlIGNvcnJlc3BvbmRpbmcgdGltZSB2YWx1ZSB2YWx1ZTsgdGhhdCdzIHRoZSB0YWls
IHRpbWUuCi0gICAgcmV0dXJuIChpbmRleCArIDEpICogaWlyUmVuZGVyaW5nUXVhbnR1bSAvIHNh
bXBsZVJhdGU7CisgICAgcmV0dXJuIChpbmRleCArIDEpICogQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplIC8gc2FtcGxlUmF0ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggMDk4OTkxN2NiNWMxNjA5ZjY2MDhiMmUxN2U3
YTlhNjVjMTZlMTIwOS4uNzRhZDYxNmZhOWUyNWRlYjk5OWM5NmI2NjdlZDE0OTQ3MGJmNjg3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0zMCwxNSArMzAsMTQgQEAKIAogI2luY2x1
ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiQXVk
aW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTXVsdGlDaGFu
bmVsUmVzYW1wbGVyLmgiCiAjaW5jbHVkZSAiUHVzaFB1bGxGSUZPLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY29uc3RleHByIHNpemVfdCBrUmVuZGVyQnVmZmVyU2l6ZSA9IDEyODsKLQot
Y29uc3RleHByIHNpemVfdCBmaWZvU2l6ZSA9IDk2ICoga1JlbmRlckJ1ZmZlclNpemU7Citjb25z
dGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25Db2NvYU92ZXJyaWRlIEF1ZGlvRGVzdGlu
YXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRyOwogCkBAIC03NCw4ICs3Myw4IEBA
IHVuc2lnbmVkIGxvbmcgQXVkaW9EZXN0aW5hdGlvbjo6bWF4Q2hhbm5lbENvdW50KCkKIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpCiAgICAgOiBtX291dHB1dFVuaXQoMCkKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCi0g
ICAgLCBtX291dHB1dEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IGtSZW5kZXJCdWZmZXJTaXplLCBmYWxzZSkucmVsZWFzZU5vbk51bGwoKSkKLSAgICAsIG1fcmVu
ZGVyQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZPdXRwdXRDaGFubmVscywga1JlbmRlckJ1
ZmZlclNpemUpLnJlbGVhc2VOb25OdWxsKCkpCisgICAgLCBtX291dHB1dEJ1cyhBdWRpb0J1czo6
Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSwgZmFsc2UpLnJlbGVhc2VOb25OdWxsKCkpCisgICAgLCBtX3JlbmRlckJ1cyhBdWRp
b0J1czo6Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkucmVsZWFzZU5vbk51bGwoKSkKICAgICAsIG1fZmlmbyhtYWtlVW5pcXVl
UmVmPFB1c2hQdWxsRklGTz4obnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmlmb1NpemUpKQogICAg
ICwgbV9jb250ZXh0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKQogewpAQCAtODQsNyArODMsNyBAQCBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2E6OkF1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCB1bnNpZ25lZAogICAgIGF1dG8gaGFyZHdhcmVTYW1wbGVSYXRlID0gdGhp
cy0+aGFyZHdhcmVTYW1wbGVSYXRlKCk7CiAgICAgaWYgKHNhbXBsZVJhdGUgIT0gaGFyZHdhcmVT
YW1wbGVSYXRlKSB7CiAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHN0YXRpY19jYXN0PGRv
dWJsZT4oc2FtcGxlUmF0ZSkgLyBoYXJkd2FyZVNhbXBsZVJhdGU7Ci0gICAgICAgIG1fcmVzYW1w
bGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBrUmVuZGVyQnVmZmVyU2l6ZSk7CisgICAgICAgIG1fcmVzYW1w
bGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwog
ICAgIH0KIH0KIApAQCAtMTc2LDExICsxNzUsMTEgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUludDMyIG4K
ICAgICBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhidWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwg
bnVtYmVyT2ZCdWZmZXJzLCBudW1iZXJPZkZyYW1lcywgMCwgbnVtYmVyT2ZGcmFtZXMpOwogICAg
IHNpemVfdCBmcmFtZXNUb1JlbmRlciA9IG1fZmlmby0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwg
bnVtYmVyT2ZGcmFtZXMpOwogCi0gICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVzID0gMDsgcHVz
aGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBrUmVuZGVyQnVmZmVy
U2l6ZSkgeworICAgIGZvciAoc2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8
IGZyYW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jlc2FtcGxlcikKLSAgICAgICAgICAgIG1fcmVz
YW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVyQnVzLnB0cigpLCBrUmVuZGVyQnVmZmVyU2l6
ZSk7CisgICAgICAgICAgICBtX3Jlc2FtcGxlci0+cHJvY2Vzcyh0aGlzLCBtX3JlbmRlckJ1cy5w
dHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgbV9yZW5kZXJCdXMucHRyKCksIGtSZW5k
ZXJCdWZmZXJTaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CisgICAgICAgICAgICBtX2NhbGxiYWNr
LnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVu
ZGVyQnVzLnB0cigpKTsKICAgICB9CkBAIC0xOTcsOCArMTk2LDggQEAgT1NTdGF0dXMgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjppbnB1dFByb2Modm9pZCogdXNlckRhdGEsIEF1ZGlvVW5pdFJlbmRl
ckFjdGlvbkYKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnByb3ZpZGVJbnB1dChBdWRp
b0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIEFTU0VSVF9VTlVTRUQo
ZnJhbWVzVG9Qcm9jZXNzLCBmcmFtZXNUb1Byb2Nlc3MgPT0ga1JlbmRlckJ1ZmZlclNpemUpOwot
ICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGJ1cywga1JlbmRlckJ1ZmZlclNpemUsIG1fb3V0cHV0
VGltZXN0YW1wKTsKKyAgICBBU1NFUlRfVU5VU0VEKGZyYW1lc1RvUHJvY2VzcywgZnJhbWVzVG9Q
cm9jZXNzID09IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgbV9jYWxs
YmFjay5yZW5kZXIoMCwgYnVzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1f
b3V0cHV0VGltZXN0YW1wKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGJkYzdkZTMyMzEyYWE1YWYyMDExMzBhNjljNmI4NWNm
MTEwZjkyZTYuLjczYWYxNjAzNGI0MTM3NTYxZTMzZjliNTEyZmRiMjI1ZTU1M2VhMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBVU0UoQVVE
SU9fU0VTU0lPTikgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgIkF1ZGlvU2Vzc2lvbi5o
IgorI2ltcG9ydCAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgIkRlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5ncy5oIgogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgpAQCAtNDIsNyArNDMsNiBAQAogCiAjaW1wb3J0ICJNZWRpYVJlbW90ZVNvZnRMaW5rLmgi
CiAKLXN0YXRpYyBjb25zdCBzaXplX3Qga1dlYkF1ZGlvQnVmZmVyU2l6ZSA9IDEyODsKIHN0YXRp
YyBjb25zdCBzaXplX3Qga0xvd1Bvd2VyVmlkZW9CdWZmZXJTaXplID0gNDA5NjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQogICAgICAgICAiV2ViQXVkaW8oIiwgd2ViQXVk
aW9Db3VudCwgIikiKTsKIAogICAgIGlmICh3ZWJBdWRpb0NvdW50KQotICAgICAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1
ZmZlclNpemUpOworICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAg
Ly8gSW4gY2FzZSBvZiBhdWRpbyBjYXB0dXJlLCB3ZSB3YW50IHRvIGdyYWIgMjAgbXMgY2h1bmtz
IHRvIGxpbWl0IHRoZSBsYXRlbmN5IHNvIHRoYXQgaXQgaXMgbm90IG5vdGljZWFibGUgYnkgdXNl
cnMKICAgICAvLyB3aGlsZSBoYXZpbmcgYSBsYXJnZSBlbm91Z2ggYnVmZmVyIHNvIHRoYXQgdGhl
IGF1ZGlvIHJlbmRlcmluZyByZW1haW5zIHN0YWJsZSwgaGVuY2UgYSBjb21wdXRhdGlvbiBiYXNl
ZCBvbiBzYW1wbGUgcmF0ZS4KICAgICBlbHNlIGlmIChjYXB0dXJlQ291bnQpCkBAIC0xMTIsNyAr
MTEyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0
ZSgpCiAgICAgICAgIGlmIChtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5lciAmJiBtX2F1ZGlvSGFyZHdh
cmVMaXN0ZW5lci0+b3V0cHV0RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoKSkKICAgICAgICAg
ICAgIGJ1ZmZlclNpemUgPSBrTG93UG93ZXJWaWRlb0J1ZmZlclNpemU7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGJ1ZmZlclNpemUgPSBrV2ViQXVkaW9CdWZmZXJTaXplOworICAgICAgICAg
ICAgYnVmZmVyU2l6ZSA9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogICAg
ICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXpl
KGJ1ZmZlclNpemUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
LmNwcAppbmRleCAwNGJlZTY0NGQ4ZDJiOTBhZDQyNGU4YTM3NDhhZDY2M2VkMDMxNDI0Li5kYjY5
YzViOTcyYjQ0MjQyMGNhYzY1NmI4NTdhNDc0ZGM3M2EyYjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJB
dWRpb0NoYW5uZWwuaCIKICNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVk
ZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIldlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmgiCkBAIC0zNSwxMCArMzYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFNpemUg
b2YgdGhlIEF1ZGlvQnVzIGZvciBwbGF5YmFjay4gVGhlIHdlYmtpdHdlYmF1ZGlvc3JjIGVsZW1l
bnQKLS8vIG5lZWRzIHRvIGhhbmRsZSB0aGlzIG51bWJlciBvZiBmcmFtZXMgcGVyIGN5Y2xlIGFz
IHdlbGwuCi1jb25zdCB1bnNpZ25lZCBmcmFtZXNUb1B1bGwgPSAxMjg7Ci0KIGdib29sZWFuIG1l
c3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBBdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyKiBkZXN0aW5hdGlvbikKIHsKICAgICByZXR1cm4gZGVzdGluYXRpb24tPmhh
bmRsZU1lc3NhZ2UobWVzc2FnZSk7CkBAIC03OSw3ICs3Niw3IEBAIHVuc2lnbmVkIGxvbmcgQXVk
aW9EZXN0aW5hdGlvbjo6bWF4Q2hhbm5lbENvdW50KCkKIAogQXVkaW9EZXN0aW5hdGlvbkdTdHJl
YW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNr
LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKLSAgICAsIG1f
cmVuZGVyQnVzKEF1ZGlvQnVzOjpjcmVhdGUoMiwgZnJhbWVzVG9QdWxsLCBmYWxzZSkpCisgICAg
LCBtX3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRlKDIsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZSwgZmFsc2UpKQogICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAg
LCBtX2lzUGxheWluZyhmYWxzZSkKIHsKQEAgLTkzLDcgKzkwLDcgQEAgQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNh
bGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyYXRlIiwgc2FtcGxlUmF0ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYnVzIiwgbV9yZW5kZXJCdXMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lcyIsIGZy
YW1lc1RvUHVsbCwgbnVsbHB0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZXMiLCBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG51bGxwdHIpKTsKIAogICAgIEdSZWZQdHI8
R3N0RWxlbWVudD4gYXVkaW9TaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVk
aW9zaW5rIiwgbnVsbHB0cik7CiAgICAgbV9hdWRpb1NpbmtBdmFpbGFibGUgPSBhdWRpb1Npbms7
CkBAIC0xMzgsNyArMTM1LDcgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXIoKQogCiB1bnNpZ25lZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
OjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZXNUb1B1bGw7Cisg
ICAgcmV0dXJuIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKIH0KIAogZ2Jvb2xl
YW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBt
ZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAK
aW5kZXggYzRmOGNhZjQ1ZTQ4ZDg3NDBjZmVmZjA5ZDI2ZWQ4MmY0YzM2OTcxYy4uN2U0OWUxMTUw
OTMyOTk0YWRjZjZjYjQ0MTM3Yzg4NWRhODY3YjIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0
V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5oIgorI2luY2x1ZGUgIkF1
ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSA8
Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRlIDxnc3QvYXVkaW8vYXVkaW8taW5mby5oPgpA
QCAtMTg2LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfYXVkaW9fc3JjX2NsYXNz
X2luaXQoV2ViS2l0V2ViQXVkaW9TcmNDbGFzcyogd2ViS2l0V2ViQXVkCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0ZSQU1FUywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJmcmFtZXMiLCAiZnJhbWVzIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1i
ZXIgb2YgYXVkaW8gZnJhbWVzIHRvIHB1bGwgYXQgZWFjaCBpdGVyYXRpb24iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhVSU5U
OCwgMTI4LCBmbGFncykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgR19NQVhVSU5UOCwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplLCBmbGFncykpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0
cnVjdGVkKEdPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409595</attachid>
            <date>2020-09-24 10:36:41 -0700</date>
            <delta_ts>2020-09-24 10:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216935-20200924103640.patch</filename>
            <type>text/plain</type>
            <size>59312</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhmZTAzODUzOTM4ODA2
NWQzZGM5OTE2YTJkMzZjZGJlYTVjMDM1Yy4uOTgxMDBkMzFjMDUwMzMzNDc0ZWQ5NTBjNGQ0Zjkw
YjNiZjE2MjFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTA5LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGVjbGFyZSByZW5kZXIgcXVh
bnR1bSBzaXplIGNvbnN0YW50IGluIEF1ZGlvVXRpbGl0aWVzLmgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjkzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgcmVuZGVyIHF1YW50dW0gc2l6
ZSBbMV0gY29uc3RhbnQgaW4gQXVkaW9VdGlsaXRpZXMuaCBzbyB0aGF0IGl0IGNhbiBiZSB1c2Vk
IGluIGJvdGgKKyAgICAgICAgcGxhdGZvcm0vIGFuZCBNb2R1bGVzL3dlYmF1ZGlvLy4gQWxzbyB1
cGRhdGUgdGhlIGNvZGUgc28gdGhhdCB3ZSBoYXZlIGEgc2luZ2xlIGNvbnN0YW50CisgICAgICAg
IGluc3RlYWQgb2YgbWFueS4KKworICAgICAgICBbMV0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1ZGlvLyNyZW5kZXItcXVhbnR1bS1zaXplCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVk
aW9MaXN0ZW5lcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpBdWRpb05vZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9k
ZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91
dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5h
bFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVUaW1lbGlu
ZVZhbHVlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRl
eHRUaW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnVw
ZGF0ZVNjaGVkdWxpbmdJbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERT
UEtlcm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWREU1BLZXJuZWw6OnVwZGF0ZUNv
ZWZmaWNpZW50c0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OnByb2Nl
c3NPbmx5QXVkaW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRT
b3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50U291cmNlTm9kZTo6Q29u
c3RhbnRTb3VyY2VOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291
cmNlTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpzZXRCdWZmZXIpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5
RFNQS2VybmVsOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHlu
YW1pY3NDb21wcmVzc29yTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYWluTm9k
ZTo6R2Fpbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Fpbk5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpzdXNwZW5kT2Zm
bGluZVJlbmRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6T3NjaWxsYXRvck5vZGU6Ok9zY2lsbGF0b3JOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzc1NhbXBsZUFj
Y3VyYXRlVmFsdWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6UmVhbHRpbWVBbmFs
eXNlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdGVyZW9QYW5uZXJOb2RlOjpTdGVyZW9QYW5uZXJOb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0ZXJlb1Bhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9QYXJh
bXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpsYXp5SW5pdGlhbGl6ZU92ZXJzYW1wbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUy
eCk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmU0
eCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVzYW1wbGVyS2Vy
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpnZXRTb3VyY2VQ
b2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpwcm9jZXNz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQmlxdWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZDo6QmlxdWFkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9CaXF1YWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9IUlRGUGFubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OkhSVEZQ
YW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFJURlBhbm5lcjo6cGFuKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SUlSRmlsdGVy
Ojp0YWlsVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
QXVkaW9EZXN0aW5hdGlvbkNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmcmFtZXNQZXJC
dWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2F1ZGlvX3Ny
Y19jbGFzc19pbml0KToKKwogMjAyMC0wOS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Ob2RlOjpyZXNldCgpIGFuZCBhbGwgaXRzIG92ZXJy
aWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci5jcHAKaW5kZXggNGFjMGVlMjhlYjkxNjA2MzFhZTA0ZmVmNTZjOTQyYTI5MGRkMzFjNy4uNTU2
NGU2ZGI5NWFiMjE3M2NjM2ZjOTFjNDVmNWQzNjhjOTY3YmRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvUGFyYW0uaCIKKyNp
bmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4
LDE1ICs0OSwxNSBAQCBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCiAgICAgLCBtX3VwWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVw
WCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAg
LCBtX3VwWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSIsIDEuMCwgLUZMVF9NQVgs
IEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAgLCBtX3VwWihBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInVwWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRp
b25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nl
c3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX2ZvcndhcmRYVmFsdWVzKEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykKLSAgICAsIG1fZm9yd2FyZFlWYWx1ZXMoQXVkaW9O
b2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV9mb3J3YXJkWlZhbHVlcyhBdWRp
b05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWFZhbHVlcyhBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWVZhbHVlcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWlZhbHVlcyhBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXMpCisgICAgLCBtX3Bvc2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX2ZvcndhcmRYVmFsdWVzKEF1
ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKKyAgICAsIG1fZm9yd2FyZFlWYWx1ZXMo
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9mb3J3YXJkWlZhbHVl
cyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWFZhbHVlcyhB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWVZhbHVlcyhBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWlZhbHVlcyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDg0M2E2NzQ3YWYzZjJjYTM0YmJlYzQzYmVh
ZGQ5NDI3NTYxYzA2NzcuLjg0YzUwZDJjZTBkODNiNjMwMDE3N2MyNjE3YzRjMzkyY2ZjZjU3MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAtNTks
OCArNTksNiBAQCBjbGFzcyBBdWRpb05vZGUKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRp
b05vZGUpOwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVkaW9Ob2RlKTsKIHB1YmxpYzoK
LSAgICBlbnVtIHsgUHJvY2Vzc2luZ1NpemVJbkZyYW1lcyA9IDEyOCB9OwotCiAgICAgZXhwbGlj
aXQgQXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5BdWRpb05vZGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlu
cHV0LmNwcAppbmRleCAzOTZmOGI3ZWE1NDUxZWNmM2E3ZWE5MjRiZDA4OTEzZjk0OTIzNTAyLi5l
YzI3MmVmNGI5M2U2MGQ4YzEwNmIzODIyZGRmMmJkNjQ3MjQxM2ZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBBdWRpb05vZGVJbnB1dDo6QXVkaW9Ob2RlSW5wdXQoQXVkaW9Ob2RlKiBub2RlKQog
ICAgICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgLy8gU2V0IHRvIG1vbm8gYnkgZGVmYXVsdC4KLSAg
ICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgQXVkaW9Ob2RlOjpQ
cm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlv
QnVzOjpjcmVhdGUoMSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIH0KIAog
dm9pZCBBdWRpb05vZGVJbnB1dDo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKQEAg
LTE0MSw3ICsxNDEsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygp
CiAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+
bnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ludGVybmFsU3Vt
bWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0g
QXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJP
ZkNoYW5uZWxzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAppbmRleCBiODEwYzI3ZjQ1MTRlNDE2NzMwODBhMWMwOGE4
ZGVlMWVhNjM3MDA1Li4zNjczNGRhMTEzZGY0YzdjMzg1NTVhOWJhNTdmYzRlMWNiYTQyNzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEF1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0
KEF1ZGlvTm9kZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKIHsKICAgICBBU1NF
UlQobnVtYmVyT2ZDaGFubmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMo
KSk7CiAKLSAgICBtX2ludGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5u
ZWxzLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIG1faW50ZXJuYWxC
dXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpzZXROdW1iZXJP
ZkNoYW5uZWxzKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpCkBAIC03MSw3ICs3MSw3IEBAIHZv
aWQgQXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9m
Q2hhbm5lbHMoKSA9PSBtX2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1faW50ZXJuYWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9m
Q2hhbm5lbHMoKSwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2lu
dGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzKCksIEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojp1
cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtLmNwcAppbmRleCBhOGE4OTdkYWM3OTI0NjIzYzcwNmJmNWU0MjkyM2ExMjg0
ZDhkYjM5Li5mYTdhZjVkYTZmMDZiNTM1ODgxYzI3YmUwMDkwOGQ2MDdmNjdjN2Q0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTI3OSw3
ICsyNzksNyBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0KiB2
YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBibwogICAgICAgICBBU1NFUlQob3V0cHV0
KTsKIAogICAgICAgICAvLyBSZW5kZXIgYXVkaW8gZnJvbSB0aGlzIG91dHB1dC4KLSAgICAgICAg
QXVkaW9CdXMqIGNvbm5lY3Rpb25CdXMgPSBvdXRwdXQtPnB1bGwoMCwgQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICAgICAgQXVkaW9CdXMqIGNvbm5lY3Rpb25CdXMgPSBv
dXRwdXQtPnB1bGwoMCwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAg
ICAgICAvLyBTdW0sIHdpdGggdW5pdHktZ2Fpbi4KICAgICAgICAgc3VtbWluZ0J1cy0+c3VtRnJv
bSgqY29ubmVjdGlvbkJ1cyk7CkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBBdWRpb1BhcmFtOjpj
YWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVl
cywgYm8KIHZvaWQgQXVkaW9QYXJhbTo6Y2FsY3VsYXRlVGltZWxpbmVWYWx1ZXMoZmxvYXQqIHZh
bHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMpCiB7CiAgICAgLy8gQ2FsY3VsYXRlIHZhbHVl
cyBmb3IgdGhpcyByZW5kZXIgcXVhbnR1bS4KLSAgICAvLyBOb3JtYWxseSBudW1iZXJPZlZhbHVl
cyB3aWxsIGVxdWFsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyAodGhlIHJlbmRl
ciBxdWFudHVtIHNpemUpLgorICAgIC8vIE5vcm1hbGx5IG51bWJlck9mVmFsdWVzIHdpbGwgZXF1
YWwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplICh0aGUgcmVuZGVyIHF1YW50dW0g
c2l6ZSkuCiAgICAgZG91YmxlIHNhbXBsZVJhdGUgPSBjb250ZXh0KCkuc2FtcGxlUmF0ZSgpOwog
ICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29udGV4dCgpLmN1cnJlbnRTYW1wbGVGcmFtZSgpOwog
ICAgIHNpemVfdCBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZlZhbHVlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmNwcAppbmRleCBmMDlmOTk5NzAzOGZiMDZmMDhiYzM1ZDQxNGYyNTE4MGVlYmViZTA2Li4zMmZl
MjkzM2QxNjgxNjA2ZWFjN2UyYzVmZmU2MWYyMDYzZjBjMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBAIC0z
MjksNyArMzI5LDcgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVG
b3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXgKICAgICBkb3VibGUgc2FtcGxl
UmF0ZSA9IGNvbnRleHQuc2FtcGxlUmF0ZSgpOwogICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29u
dGV4dC5jdXJyZW50U2FtcGxlRnJhbWUoKTsKICAgICBzaXplX3QgZW5kRnJhbWUgPSBzdGFydEZy
YW1lICsgMTsKLSAgICBkb3VibGUgY29udHJvbFJhdGUgPSBzYW1wbGVSYXRlIC8gQXVkaW9Ob2Rl
OjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzOyAvLyBvbmUgcGFyYW1ldGVyIGNoYW5nZSBwZXIgcmVu
ZGVyIHF1YW50dW0KKyAgICBkb3VibGUgY29udHJvbFJhdGUgPSBzYW1wbGVSYXRlIC8gQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOyAvLyBvbmUgcGFyYW1ldGVyIGNoYW5nZSBwZXIg
cmVuZGVyIHF1YW50dW0KICAgICB2YWx1ZSA9IHZhbHVlc0ZvclRpbWVSYW5nZShzdGFydEZyYW1l
LCBlbmRGcmFtZSwgZGVmYXVsdFZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUsICZ2YWx1ZSwgMSwg
c2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogICAgIHJldHVybiB2YWx1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmNwcAppbmRleCA2Mjc2YWY5OTBhMzhjOTYyY2E4OTYzNzRjYzk2ZTA0ZWY4ZWYw
ZDk2Li5kMWQ0MzMwNWUzYmUxMmM2M2NmYzY4MzAyNjAwY2E0MzMwNDNjOTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCkBAIC02NCw4ICs2NCw4IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlOjp1cGRhdGVTY2hlZHVsaW5nSW5mbyhzaXplX3QgcXVhbnR1bUZyYW1lU2l6ZSwgQXVk
CiAgICAgcXVhbnR1bUZyYW1lT2Zmc2V0ID0gMDsKICAgICBzdGFydEZyYW1lT2Zmc2V0ID0gMDsK
IAotICAgIEFTU0VSVChxdWFudHVtRnJhbWVTaXplID09IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcyk7Ci0gICAgaWYgKHF1YW50dW1GcmFtZVNpemUgIT0gQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKQorICAgIEFTU0VSVChxdWFudHVtRnJhbWVTaXplID09IEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgaWYgKHF1YW50dW1GcmFtZVNpemUg
IT0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogICAgICAgICByZXR1cm47CiAK
ICAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IHRoaXMtPnNhbXBsZVJhdGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAppbmRleCBi
OWJiNTMxZDU0NjBmZDkzNmFiNWI2MGI1ZGJlYWRlZjY0OTU0OTIxLi5jYjY3MWNhYWI2M2RlYjE4
OGQ4ODFlNDdiNjU3NTU1YWQ1OTVkYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJCaXF1YWREU1BLZXJuZWwuaCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiQmlxdWFkLmgiCiAjaW5jbHVkZSAiQmlxdWFkUHJvY2Vzc29yLmgiCiAjaW5j
bHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCkBAIC01OCwxMiArNTksMTIgQEAgdm9pZCBCaXF1YWRE
U1BLZXJuZWw6OnVwZGF0ZUNvZWZmaWNpZW50c0lmTmVjZXNzYXJ5KHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiB7CiAgICAgaWYgKGJpcXVhZFByb2Nlc3NvcigpLT5maWx0ZXJDb2VmZmljaWVudHNE
aXJ0eSgpKSB7CiAgICAgICAgIGlmIChiaXF1YWRQcm9jZXNzb3IoKS0+aGFzU2FtcGxlQWNjdXJh
dGVWYWx1ZXMoKSAmJiBiaXF1YWRQcm9jZXNzb3IoKS0+c2hvdWxkVXNlQVJhdGUoKSkgewotICAg
ICAgICAgICAgZmxvYXQgY3V0b2ZmRnJlcXVlbmN5W0JpcXVhZDo6TWF4RnJhbWVzVG9Qcm9jZXNz
XTsKLSAgICAgICAgICAgIGZsb2F0IHFbQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3NdOwotICAg
ICAgICAgICAgZmxvYXQgZ2FpbltCaXF1YWQ6Ok1heEZyYW1lc1RvUHJvY2Vzc107Ci0gICAgICAg
ICAgICBmbG9hdCBkZXR1bmVbQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3NdOyAvLyBpbiBDZW50
cworICAgICAgICAgICAgZmxvYXQgY3V0b2ZmRnJlcXVlbmN5W0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBxW0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBnYWluW0F1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBkZXR1bmVbQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplXTsgLy8gaW4gQ2VudHMKIAotICAgICAgICAgICAgQVNTRVJU
KGZyYW1lc1RvUHJvY2VzcyA8PSBCaXF1YWQ6Ok1heEZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSk7CiAKICAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIxKCku
Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMoY3V0b2ZmRnJlcXVlbmN5LCBmcmFtZXNUb1By
b2Nlc3MpOwogICAgICAgICAgICAgYmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRlcjIoKS5jYWxj
dWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhxLCBmcmFtZXNUb1Byb2Nlc3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCmluZGV4
IDk1N2ZjYTk4MzYyZDQ4OWUyMGY5YjBmZTI1NzI2M2RhZjBkNjVhZDAuLmYzMjI1ZTE3MmJkMzYw
MGU2OTFiODUyNmVlNzNjYTJhNTQ1OTY4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKQEAgLTExMCw4ICsxMTAsOCBAQCB2
b2lkIEJpcXVhZFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlLCBBdWRp
b0J1cyogZGVzdGluYXRpb24sIHNpegogCiB2b2lkIEJpcXVhZFByb2Nlc3Nvcjo6cHJvY2Vzc09u
bHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVl
c1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNU
b1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9h
dCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQo
ZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAK
ICAgICBtX3BhcmFtZXRlcjEtPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywg
ZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBtX3BhcmFtZXRlcjItPmNhbGN1bGF0ZVNhbXBsZUFjY3Vy
YXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcAppbmRleCAwZTQy
N2UyMGY0MzE5NzAwMTdmZGU2NGQzMDc1Njc3NWUyNGYxYWZkLi40MzQwZTk1YTE4NmViOWE2MzU4
MGFhZDhjMDM1YWE2ZjMzMDJmZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Db25zdGFudFNvdXJjZU5vZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAK
ICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCisj
aW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDb25zdGFudFNvdXJjZU9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC01NSw2ICs1Niw3
IEBAIEV4Y2VwdGlvbk9yPFJlZjxDb25zdGFudFNvdXJjZU5vZGU+PiBDb25zdGFudFNvdXJjZU5v
ZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0CiBDb25zdGFudFNvdXJjZU5vZGU6OkNvbnN0YW50
U291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBvZmZzZXQpCiAgICAg
OiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoY29udGV4dCkKICAgICAsIG1fb2Zmc2V0KEF1ZGlv
UGFyYW06OmNyZWF0ZShjb250ZXh0LCAib2Zmc2V0Il9zLCBvZmZzZXQsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9zYW1wbGVBY2N1cmF0ZVZhbHVl
cyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiAgICAgc2V0Tm9kZVR5cGUo
Tm9kZVR5cGVDb25zdGFudCk7CiAgICAgYWRkT3V0cHV0KG1ha2VVbmlxdWU8QXVkaW9Ob2RlT3V0
cHV0Pih0aGlzLCAxKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnN0YW50U291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Db25zdGFudFNvdXJjZU5vZGUuaAppbmRleCBlODMwZTRjNDQzYTI4MGQxYzM3ZmE0NGI5Y2U2
NTg0OTk2MDNkOWFiLi5iNmE2NzJmN2ZlM2ZhYTIyMmE1MzhhZTQ5YmFiY2ZjMzg5MzdmMDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNl
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3Vy
Y2VOb2RlLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXVkaW9QYXJhbT4g
bV9vZmZzZXQ7CiAgICAgCiAgICAgLy8gU3RvcmVzIHNhbXBsZS1hY2N1cmF0ZSB2YWx1ZXMgY2Fs
Y3VsYXRlZC4KLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9zYW1wbGVBY2N1cmF0ZVZhbHVlcyB7IEF1
ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9OworICAgIEF1ZGlvRmxvYXRBcnJheSBt
X3NhbXBsZUFjY3VyYXRlVmFsdWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5k
ZXggNjQ0ODA3YWY4YWE2MTFmYzIxYjMwZDg2NTAwMmJiZWM4YTVlZmZlMi4uZmNlMmQwNzMyNzMz
YjA4OWMwZmI5NzkwMzFkZTcyMzA4ODZkOThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gQ29udm9sdmVyTm9kZTo6c2V0QnVmZmVyKFJlZlB0cjxBdWRpb0J1ZmZl
cj4mJiBidWZmZXIpCiAKICAgICAvLyBDcmVhdGUgdGhlIHJldmVyYiB3aXRoIHRoZSBnaXZlbiBp
bXB1bHNlIHJlc3BvbnNlLgogICAgIGJvb2wgdXNlQmFja2dyb3VuZFRocmVhZHMgPSAhY29udGV4
dCgpLmlzT2ZmbGluZUNvbnRleHQoKTsKLSAgICBhdXRvIHJldmVyYiA9IG1ha2VVbmlxdWU8UmV2
ZXJiPihidWZmZXJCdXMuZ2V0KCksIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcywg
TWF4RkZUU2l6ZSwgdXNlQmFja2dyb3VuZFRocmVhZHMsIG1fbm9ybWFsaXplKTsKKyAgICBhdXRv
IHJldmVyYiA9IG1ha2VVbmlxdWU8UmV2ZXJiPihidWZmZXJCdXMuZ2V0KCksIEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgTWF4RkZUU2l6ZSwgdXNlQmFja2dyb3VuZFRocmVhZHMs
IG1fbm9ybWFsaXplKTsKIAogICAgIHsKICAgICAgICAgLy8gVGhlIGNvbnRleHQgbXVzdCBiZSBs
b2NrZWQgc2luY2UgY2hhbmdpbmcgdGhlIGJ1ZmZlciBjYW4gcmUtY29uZmlndXJlIHRoZSBudW1i
ZXIgb2YgY2hhbm5lbHMgdGhhdCBhcmUgb3V0cHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcAppbmRleCAzYzdiNzgxNGFjMzRkNGUy
YTQwZTdmMTk1YjEyYzczM2YyY2RiZTdhLi5jMjIwMmM2YjFhYjcxMzFjMzQyMGNkMTU3NzUyYzU3
ZWNiNWRiYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
bGF5RFNQS2VybmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
bGF5RFNQS2VybmVsLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IERlbGF5RFNQS2VybmVsOjpEZWxheURTUEtlcm5lbChEZWxheVByb2Nlc3NvciogcHJvY2Vzc29y
KQogICAgIDogQXVkaW9EU1BLZXJuZWwocHJvY2Vzc29yKQotICAgICwgbV9kZWxheVRpbWVzKEF1
ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykKKyAgICAsIG1fZGVsYXlUaW1lcyhBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiAgICAgQVNTRVJUKHByb2Nlc3NvciAm
JiBwcm9jZXNzb3ItPnNhbXBsZVJhdGUoKSA+IDApOwogICAgIGlmICghKHByb2Nlc3NvciAmJiBw
cm9jZXNzb3ItPnNhbXBsZVJhdGUoKSA+IDApKQpAQCAtMTM4LDggKzEzOCw4IEBAIHZvaWQgRGVs
YXlEU1BLZXJuZWw6OnByb2Nlc3NPbmx5QXVkaW9QYXJhbXMoc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKICAgICBpZiAoIWRlbGF5UHJvY2Vzc29yKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZs
b2F0IHZhbHVlc1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIEFTU0VS
VChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsK
KyAgICBmbG9hdCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAg
ICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSk7CiAKICAgICBkZWxheVByb2Nlc3NvcigpLT5kZWxheVRpbWUoKS5jYWxjdWxhdGVTYW1w
bGVBY2N1cmF0ZVZhbHVlcyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JO
b2RlLmNwcAppbmRleCA4YTQxY2Y4ZDQ4MGEwOTM4N2VhM2FjOTY2MDQ0MGU2NDEwYWZmMzI3Li41
OTgzYzZkYjIyYWVmMzJiMWFjYjY0ZDc2M2FlZDkyZmQxMjZlYTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNs
dWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2lu
Y2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRHluYW1pY3NDb21wcmVzc29yLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RHluYW1pY3NDb21wcmVzc29yTm9kZS5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC0xMDUsOCArMTA2LDggQEAgdm9pZCBEeW5hbWljc0Nv
bXByZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAKIHZvaWQgRHlu
YW1pY3NDb21wcmVzc29yTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVlc1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXpl
SW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9hdCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICBtX3RocmVzaG9sZC0+Y2FsY3VsYXRl
U2FtcGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nlc3MpOwogICAgIG1fa25l
ZS0+Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nlc3Mp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0dhaW5Ob2RlLmNwcAppbmRleCA0
NGZlYjg4M2NlMzIyNmI1MGQ2ZGY2NDQxODc3NTcxYmI4NTg2MjU2Li40ODY4MjZlYzQ2NDI5NDM5
OWRmZGY0M2VkMzMxZTYzOGJiNTJmMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0dhaW5Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0dhaW5Ob2RlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBFeGNlcHRpb25PcjxSZWY8R2Fp
bk5vZGU+PiBHYWluTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEdhaQogCiBHYWluTm9kZTo6R2Fpbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCkKICAg
ICA6IEF1ZGlvTm9kZShjb250ZXh0KQotICAgICwgbV9zYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXMo
QXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKSAvLyBGSVhNRTogY2FuIHByb2JhYmx5
IHNoYXJlIHRlbXAgYnVmZmVyIGluIGNvbnRleHQKKyAgICAsIG1fc2FtcGxlQWNjdXJhdGVHYWlu
VmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkgLy8gRklYTUU6IGNhbiBw
cm9iYWJseSBzaGFyZSB0ZW1wIGJ1ZmZlciBpbiBjb250ZXh0CiAgICAgLCBtX2dhaW4oQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIl9zLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBB
dXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlR2Fpbik7
CkBAIC0xMDQsOCArMTA0LDggQEAgdm9pZCBHYWluTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogCiB2b2lkIEdhaW5Ob2RlOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgZmxvYXQgdmFsdWVzW0F1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lc107Ci0gICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIGZsb2F0IHZhbHVlc1tBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0g
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIG1fZ2Fpbi0+Y2FsY3Vs
YXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAKaW5kZXggODA5NmM5YTBjY2YwOTgyMzg4NTE3OTA2MzM0MDA2OWFlMTI0ZWRlOC4u
MjRmYTA0Mzk5NGI4ZjVhYWU4ZWE0N2UwN2IzODNmY2E4YjUxNTIyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3Bw
CkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBPZmZsaW5lQXVkaW9Db250ZXh0OjpzdXNwZW5kT2Zm
bGluZVJlbmRlcmluZyhkb3VibGUgc3VzcGVuZFRpbWUsIFJlZjxEZWZlcnIKICAgICB9CiAKICAg
ICBzaXplX3QgZnJhbWUgPSBBdWRpb1V0aWxpdGllczo6dGltZVRvU2FtcGxlRnJhbWUoc3VzcGVu
ZFRpbWUsIHNhbXBsZVJhdGUoKSk7Ci0gICAgZnJhbWUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnJlbmRlclF1YW50dW1TaXplICogKChmcmFtZSArIE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6cmVuZGVyUXVhbnR1bVNpemUgLSAxKSAvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGZyYW1lID0gQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplICogKChmcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSAtIDEpIC8gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICBpZiAo
ZnJhbWUgPCBjdXJyZW50U2FtcGxlRnJhbWUoKSkgewogICAgICAgICBwcm9taXNlLT5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJTdXNwZW5zaW9uIGZyYW1lIGlzIGVhcmxp
ZXIgdGhhbiBjdXJyZW50IGZyYW1lIl9zIH0pOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggYzE4MWFiZmY4N2MzNDdjZjBmYTQwMTVhOTUyNGRhOGNj
NTljZjMyOC4uZmFhMzM2NTJlZGIzNzYzYjM5YzFmNmJiNDdmNmJiMjRmYTAzYzQyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
QXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJBdWRpb1V0
aWxpdGllcy5oIgogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRlci5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtMzgsOCArMzks
NiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKTsKLSAgICAKLWNvbnN0IHNpemVfdCBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlclF1YW50dW1TaXplID0gMTI4OwogCiBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8QXVk
aW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQogICAgIDogQXVkaW9EZXN0aW5hdGlvbk5vZGUoY29u
dGV4dCkKQEAgLTQ3LDcgKzQ2LDcgQEAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGUKICAgICAsIG1f
cmVuZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKICAgICAsIG1fZnJhbWVzVG9Qcm9j
ZXNzKG1fcmVuZGVyVGFyZ2V0ID8gbV9yZW5kZXJUYXJnZXQtPmxlbmd0aCgpIDogMCkKIHsKLSAg
ICBtX3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgcmVuZGVy
UXVhbnR1bVNpemUpOworICAgIG1fcmVuZGVyQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJP
ZkNoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgIGluaXRp
YWxpemVEZWZhdWx0Tm9kZU9wdGlvbnMobnVtYmVyT2ZDaGFubmVscywgQ2hhbm5lbENvdW50TW9k
ZTo6RXhwbGljaXQsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMpOwogfQogCkBAIC0x
MzQsNyArMTMzLDcgQEAgYXV0byBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVS
ZW5kZXIoKSAtPiBPZmZsaW5lUmVuZGVyUmVzdWx0CiAgICAgaWYgKCFjaGFubmVsc01hdGNoKQog
ICAgICAgICByZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6RmFpbHVyZTsKIAotICAgIGJvb2wg
aXNSZW5kZXJCdXNBbGxvY2F0ZWQgPSBtX3JlbmRlckJ1cy0+bGVuZ3RoKCkgPj0gcmVuZGVyUXVh
bnR1bVNpemU7CisgICAgYm9vbCBpc1JlbmRlckJ1c0FsbG9jYXRlZCA9IG1fcmVuZGVyQnVzLT5s
ZW5ndGgoKSA+PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAgICAgQVNTRVJU
KGlzUmVuZGVyQnVzQWxsb2NhdGVkKTsKICAgICBpZiAoIWlzUmVuZGVyQnVzQWxsb2NhdGVkKQog
ICAgICAgICByZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6RmFpbHVyZTsKQEAgLTE0OCw5ICsx
NDcsOSBAQCBhdXRvIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGluZVJlbmRlcigp
IC0+IE9mZmxpbmVSZW5kZXJSZXN1bHQKICAgICAgICAgICAgIHJldHVybiBPZmZsaW5lUmVuZGVy
UmVzdWx0OjpTdXNwZW5kZWQ7CiAKICAgICAgICAgLy8gUmVuZGVyIG9uZSByZW5kZXIgcXVhbnR1
bS4KLSAgICAgICAgcmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCByZW5kZXJRdWFudHVtU2l6
ZSwgeyB9KTsKKyAgICAgICAgcmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7CiAgICAgICAgIAotICAgICAgICBzaXplX3Qg
ZnJhbWVzQXZhaWxhYmxlVG9Db3B5ID0gc3RkOjptaW4obV9mcmFtZXNUb1Byb2Nlc3MsIHJlbmRl
clF1YW50dW1TaXplKTsKKyAgICAgICAgc2l6ZV90IGZyYW1lc0F2YWlsYWJsZVRvQ29weSA9IHN0
ZDo6bWluKG1fZnJhbWVzVG9Qcm9jZXNzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpOwogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBj
aGFubmVsSW5kZXggPCBudW1iZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewogICAgICAg
ICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZSA9IG1fcmVuZGVyQnVzLT5jaGFubmVsKGNoYW5uZWxJ
bmRleCktPmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDVjMmViZTA2ZmZh
YTY1NGI3MjY5ZTU1OGE5NDFkZjBiNmRlZDRkYTcuLjZlNDk2N2U3NmEzNmM5NDA2Y2IyMWRmYmYx
NmMxOGI3NWU4NjkzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNTQsOCArNTQs
NiBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9yZW5kZXJUYXJnZXQtPnNhbXBsZVJhdGUoKTsgfQogCi0gICAgc3RhdGljIGNvbnN0IHNp
emVfdCByZW5kZXJRdWFudHVtU2l6ZTsKLQogcHJpdmF0ZToKICAgICBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMs
IFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IDA0OGI5YjQ4
NGEyYzg0MTlkZGE4M2ViODFhOGFjM2JkMjFlZDkyMzQuLjEzNDFhMmQ0OTgwMmNmNTZiZTY2NTRi
ZjFhNjMwZTA4ZDVjNzY1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJB
dWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCisjaW5jbHVkZSAiQXVk
aW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQZXJpb2RpY1dhdmUuaCIKICNpbmNsdWRlICJWZWN0
b3JNYXRoLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTk0LDYgKzk1
LDggQEAgT3NjaWxsYXRvck5vZGU6Ok9zY2lsbGF0b3JOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IE9zY2lsbGF0b3JPcHRpb24KICAgICA6IEF1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZShjb250ZXh0KQogICAgICwgbV9mcmVxdWVuY3koQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRl
eHQsICJmcmVxdWVuY3kiX3MsIG9wdGlvbnMuZnJlcXVlbmN5LCAtY29udGV4dC5zYW1wbGVSYXRl
KCkgLyAyLCBjb250ZXh0LnNhbXBsZVJhdGUoKSAvIDIsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
CiAgICAgLCBtX2RldHVuZShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRldHVuZSJfcywg
b3B0aW9ucy5kZXR1bmUsIC0xMjAwICogbG9nMmYoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpKSwgMTIwMCAqIGxvZzJmKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSks
IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BoYXNlSW5jcmVtZW50cyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX2RldHVuZVZhbHVlcyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiAgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVP
c2NpbGxhdG9yKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T3NjaWxsYXRvck5vZGUuaAppbmRleCA0NDJhMGU1YzcwOGRlM2UyNWM1OGI3MTk4ODkzZjQyN2M3
ZjBjODJmLi5kN2I2YjVlMjUyNzU4NzhmYTBjNzc0N2FkOGIwNDdjODk3NDc1OTAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCkBAIC04
OCw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBMb2NrIG1fcHJvY2Vzc011dGV4Owog
CiAgICAgLy8gU3RvcmVzIHNhbXBsZS1hY2N1cmF0ZSB2YWx1ZXMgY2FsY3VsYXRlZCBhY2NvcmRp
bmcgdG8gZnJlcXVlbmN5IGFuZCBkZXR1bmUuCi0gICAgQXVkaW9GbG9hdEFycmF5IG1fcGhhc2VJ
bmNyZW1lbnRzIHsgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzIH07Ci0gICAgQXVk
aW9GbG9hdEFycmF5IG1fZGV0dW5lVmFsdWVzIHsgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUlu
RnJhbWVzIH07CisgICAgQXVkaW9GbG9hdEFycmF5IG1fcGhhc2VJbmNyZW1lbnRzOworICAgIEF1
ZGlvRmxvYXRBcnJheSBtX2RldHVuZVZhbHVlczsKICAgICAKICAgICBSZWZQdHI8UGVyaW9kaWNX
YXZlPiBtX3BlcmlvZGljV2F2ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QYW5uZXJOb2RlLmNwcAppbmRleCAwNDg1N2FjZGYyNjE4OWRhZjA4NGE1Y2UyZmJlNjY4
ZDY4YzRmMGZmLi4xNDU1MmZlZjkyODM2NTcyMGY2NzcwNTgzNTQ3OWZkZmZjNGFmZjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKQEAgLTE4
Myw4ICsxODMsOCBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJv
Y2VzcykKIAogdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgZmxvYXQgdmFsdWVzW0F1ZGlvTm9kZTo6UHJvY2Vzc2lu
Z1NpemVJbkZyYW1lc107Ci0gICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIGZsb2F0IHZhbHVlc1tBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIG1fcG9zaXRpb25YLT5jYWxj
dWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAg
bV9wb3NpdGlvblktPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVz
VG9Qcm9jZXNzKTsKQEAgLTIwMSwxMyArMjAxLDEzIEBAIHZvaWQgUGFubmVyTm9kZTo6cHJvY2Vz
c1NhbXBsZUFjY3VyYXRlVmFsdWVzKEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgY29uc3QgQXVkaW9C
CiB7CiAgICAgLy8gR2V0IHRoZSBzYW1wbGUgYWNjdXJhdGUgdmFsdWVzIGZyb20gYWxsIG9mIHRo
ZSBBdWRpb1BhcmFtcywgaW5jbHVkaW5nIHRoZQogICAgIC8vIHZhbHVlcyBmcm9tIHRoZSBBdWRp
b0xpc3RlbmVyLgotICAgIGZsb2F0IHBhbm5lclhbQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUlu
RnJhbWVzXTsKLSAgICBmbG9hdCBwYW5uZXJZW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZy
YW1lc107Ci0gICAgZmxvYXQgcGFubmVyWltBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFt
ZXNdOworICAgIGZsb2F0IHBhbm5lclhbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
XTsKKyAgICBmbG9hdCBwYW5uZXJZW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07
CisgICAgZmxvYXQgcGFubmVyWltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOwog
Ci0gICAgZmxvYXQgb3JpZW50YXRpb25YW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1l
c107Ci0gICAgZmxvYXQgb3JpZW50YXRpb25ZW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZy
YW1lc107Ci0gICAgZmxvYXQgb3JpZW50YXRpb25aW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJ
bkZyYW1lc107CisgICAgZmxvYXQgb3JpZW50YXRpb25YW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZV07CisgICAgZmxvYXQgb3JpZW50YXRpb25ZW0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgZmxvYXQgb3JpZW50YXRpb25aW0F1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZV07CiAKICAgICBtX3Bvc2l0aW9uWC0+Y2FsY3VsYXRlU2FtcGxlQWNj
dXJhdGVWYWx1ZXMocGFubmVyWCwgZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBtX3Bvc2l0aW9uWS0+
Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMocGFubmVyWSwgZnJhbWVzVG9Qcm9jZXNzKTsK
QEAgLTIxNywyMiArMjE3LDIyIEBAIHZvaWQgUGFubmVyTm9kZTo6cHJvY2Vzc1NhbXBsZUFjY3Vy
YXRlVmFsdWVzKEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgY29uc3QgQXVkaW9CCiAgICAgbV9vcmll
bnRhdGlvblotPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKG9yaWVudGF0aW9uWiwgZnJh
bWVzVG9Qcm9jZXNzKTsKIAogICAgIC8vIEdldCB0aGUgYXV0b21hdGlvbiB2YWx1ZXMgZnJvbSB0
aGUgbGlzdGVuZXIuCi0gICAgY29uc3QgZmxvYXQqIGxpc3RlbmVyWCA9IGxpc3RlbmVyKCkucG9z
aXRpb25YVmFsdWVzKEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7Ci0gICAgY29u
c3QgZmxvYXQqIGxpc3RlbmVyWSA9IGxpc3RlbmVyKCkucG9zaXRpb25ZVmFsdWVzKEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7Ci0gICAgY29uc3QgZmxvYXQqIGxpc3RlbmVyWiA9
IGxpc3RlbmVyKCkucG9zaXRpb25aVmFsdWVzKEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZy
YW1lcyk7CisgICAgY29uc3QgZmxvYXQqIGxpc3RlbmVyWCA9IGxpc3RlbmVyKCkucG9zaXRpb25Y
VmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgY29uc3QgZmxv
YXQqIGxpc3RlbmVyWSA9IGxpc3RlbmVyKCkucG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgY29uc3QgZmxvYXQqIGxpc3RlbmVyWiA9IGxpc3Rl
bmVyKCkucG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7
CiAKLSAgICBjb25zdCBmbG9hdCogZm9yd2FyZFggPSBsaXN0ZW5lcigpLmZvcndhcmRYVmFsdWVz
KEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7Ci0gICAgY29uc3QgZmxvYXQqIGZv
cndhcmRZID0gbGlzdGVuZXIoKS5mb3J3YXJkWVZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdT
aXplSW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0KiBmb3J3YXJkWiA9IGxpc3RlbmVyKCkuZm9y
d2FyZFpWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBjb25z
dCBmbG9hdCogZm9yd2FyZFggPSBsaXN0ZW5lcigpLmZvcndhcmRYVmFsdWVzKEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgY29uc3QgZmxvYXQqIGZvcndhcmRZID0gbGlz
dGVuZXIoKS5mb3J3YXJkWVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OworICAgIGNvbnN0IGZsb2F0KiBmb3J3YXJkWiA9IGxpc3RlbmVyKCkuZm9yd2FyZFpWYWx1ZXMo
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAotICAgIGNvbnN0IGZsb2F0KiB1
cFggPSBsaXN0ZW5lcigpLnVwWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFt
ZXMpOwotICAgIGNvbnN0IGZsb2F0KiB1cFkgPSBsaXN0ZW5lcigpLnVwWVZhbHVlcyhBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0KiB1cFogPSBsaXN0
ZW5lcigpLnVwWlZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAg
IGNvbnN0IGZsb2F0KiB1cFggPSBsaXN0ZW5lcigpLnVwWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZsb2F0KiB1cFkgPSBsaXN0ZW5lcigpLnVw
WVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZs
b2F0KiB1cFogPSBsaXN0ZW5lcigpLnVwWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgYXppbXV0aCwgZWxldmF0aW9uLCBhbmQg
dG90YWwgZ2FpbnMgZm9yIGVhY2ggcG9zaXRpb24uCi0gICAgZG91YmxlIGF6aW11dGhbQXVkaW9O
b2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKLSAgICBkb3VibGUgZWxldmF0aW9uW0F1ZGlv
Tm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107Ci0gICAgZmxvYXQgdG90YWxHYWluW0F1ZGlv
Tm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107CisgICAgZG91YmxlIGF6aW11dGhbQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAgICBkb3VibGUgZWxldmF0aW9uW0F1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgZmxvYXQgdG90YWxHYWluW0F1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CiAKICAgICBmb3IgKHNpemVfdCBrID0gMDsg
ayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSB7CiAgICAgICAgIEZsb2F0UG9pbnQzRCBwYW5uZXJQ
b3NpdGlvbihwYW5uZXJYW2tdLCBwYW5uZXJZW2tdLCBwYW5uZXJaW2tdKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4
IDUxM2EwOGIyY2I0YzdkY2JkMDYzZTY0YWUwMjBiZmE5ZTljMGE5MTguLjI5OGQ1MWZmZWM5NTE0
OWRkMDFhYmQxODhiMTNmZDU4Y2U0MjllZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBj
b25zdCB1bnNpZ25lZCBSZWFsdGltZUFuYWx5c2VyOjpJbnB1dEJ1ZmZlclNpemUgPSBSZWFsdGlt
ZUFuYWx5c2VyOjpNYXhGRlRTaXplCiBSZWFsdGltZUFuYWx5c2VyOjpSZWFsdGltZUFuYWx5c2Vy
KCkKICAgICA6IG1faW5wdXRCdWZmZXIoSW5wdXRCdWZmZXJTaXplKQogICAgICwgbV93cml0ZUlu
ZGV4KDApCi0gICAgLCBtX2Rvd25taXhCdXMoQXVkaW9CdXM6OmNyZWF0ZSgxLCBBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKQorICAgICwgbV9kb3dubWl4QnVzKEF1ZGlvQnVzOjpj
cmVhdGUoMSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKSkKICAgICAsIG1fZmZ0
U2l6ZShEZWZhdWx0RkZUU2l6ZSkKICAgICAsIG1fbWFnbml0dWRlQnVmZmVyKERlZmF1bHRGRlRT
aXplIC8gMikKICAgICAsIG1fc21vb3RoaW5nVGltZUNvbnN0YW50KERlZmF1bHRTbW9vdGhpbmdU
aW1lQ29uc3RhbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBiODY5NzZjN2E4YzcxZDI0MzA1Y2Q1ZWIx
MjJiZWZhZTUwYWMxZjJiLi43ZmJkNjQzYmViMTgxMjk5NjRiMjQ5N2RjMDU1OGQ2Njg1M2U4Mjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBdWRpb05vZGVJ
bnB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvUHJv
Y2Vzc2luZ0V2ZW50LmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GbG9hdDMyQXJyYXkuaD4KQEAgLTU4LDExICs1OSwxMSBAQCBTY3JpcHRQcm9jZXNzb3JO
b2RlOjpTY3JpcHRQcm9jZXNzb3JOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIHNpemVf
dCBidWZmZQogICAgICwgbV9idWZmZXJSZWFkV3JpdGVJbmRleCgwKQogICAgICwgbV9udW1iZXJP
ZklucHV0Q2hhbm5lbHMobnVtYmVyT2ZJbnB1dENoYW5uZWxzKQogICAgICwgbV9udW1iZXJPZk91
dHB1dENoYW5uZWxzKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCi0gICAgLCBtX2ludGVybmFsSW5w
dXRCdXMoQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvTm9kZTo6
UHJvY2Vzc2luZ1NpemVJbkZyYW1lcywgZmFsc2UpKQorICAgICwgbV9pbnRlcm5hbElucHV0QnVz
KEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUsIGZhbHNlKSkKIHsKICAgICAvLyBSZWdhcmRsZXNzIG9mIHRoZSBh
bGxvd2VkIGJ1ZmZlciBzaXplcywgd2Ugc3RpbGwgbmVlZCB0byBwcm9jZXNzIGF0IHRoZSBncmFu
dWxhcml0eSBvZiB0aGUgQXVkaW9Ob2RlLgotICAgIGlmIChtX2J1ZmZlclNpemUgPCBBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgICAgIG1fYnVmZmVyU2l6ZSA9IEF1ZGlv
Tm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lczsKKyAgICBpZiAobV9idWZmZXJTaXplIDwgQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICAgICBtX2J1ZmZlclNpemUgPSBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKICAgICBBU1NFUlQobnVtYmVyT2ZJ
bnB1dENoYW5uZWxzIDw9IEF1ZGlvQ29udGV4dDo6bWF4TnVtYmVyT2ZDaGFubmVscygpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9k
ZS5jcHAKaW5kZXggOGM5Yjk2ZjRkMDMyOTgwMzcwNjIxZWZkY2UyZDE3YTU2N2Q0YjgwYy4uOGRi
NjkxNWJiNDFjYjQxMDRiMjQ3NDNkZGM3NjliZTM2ZmM5YmExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1N0ZXJlb1Bhbm5lck5vZGUuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1
dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTcsNiArNTgsNyBAQCBFeGNlcHRpb25PcjxSZWY8U3RlcmVvUGFubmVyTm9k
ZT4+IFN0ZXJlb1Bhbm5lck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjbwogU3RlcmVv
UGFubmVyTm9kZTo6U3RlcmVvUGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBm
bG9hdCBwYW4pCiAgICAgOiBBdWRpb05vZGUoY29udGV4dCkKICAgICAsIG1fcGFuKEF1ZGlvUGFy
YW06OmNyZWF0ZShjb250ZXh0LCAicGFuIl9zLCBwYW4sIC0xLCAxLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9zYW1wbGVBY2N1cmF0ZVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpCiB7CiAgICAgc2V0Tm9kZVR5cGUoTm9kZVR5cGVTdGVyZW8pOwogICAg
IApAQCAtMTAyLDggKzEwNCw4IEBAIHZvaWQgU3RlcmVvUGFubmVyTm9kZTo6cHJvY2VzcyhzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQogCiB2b2lkIFN0ZXJlb1Bhbm5lck5vZGU6OnByb2Nlc3NPbmx5
QXVkaW9QYXJhbXMoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBmbG9hdCB2YWx1ZXNb
QXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Q
cm9jZXNzIDw9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgZmxvYXQg
dmFsdWVzW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgQVNTRVJUKGZy
YW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAg
ICAgbV9wYW4tPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Q
cm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U3RlcmVvUGFubmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVy
ZW9QYW5uZXJOb2RlLmgKaW5kZXggODQ0NjE0MTY3YWQ4ZDAyOWU3OGIxZGEzY2JhODUxZmQ4NWY1
YjU1YS4uYjc5MzAwOTMyM2Y5OTEwMGJiM2NmZWMxMjcyZjZjY2YxZTk2NzYxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJOb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJOb2RlLmgKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAwOyB9CiAgICAgCiAgICAgUmVmPEF1ZGlvUGFyYW0+IG1fcGFuOwotICAg
IEF1ZGlvRmxvYXRBcnJheSBtX3NhbXBsZUFjY3VyYXRlVmFsdWVzIHsgQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzIH07CisgICAgQXVkaW9GbG9hdEFycmF5IG1fc2FtcGxlQWNjdXJh
dGVWYWx1ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJEU1BLZXJuZWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmNwcAppbmRl
eCBkZjU4MzZjYmRiYTdmZjYyYTVmMGUxN2Y3NzgyY2E1MTRiNGQxYTA2Li4wZGE4MzU3NzBmN2Y4
Yjc3N2ZmNzg0M2NjYjhjODNlNjA5NTU1MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJEU1BLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAKQEAgLTI4LDEzICsy
OCwxMiBAQAogCiAjaW5jbHVkZSAiV2F2ZVNoYXBlckRTUEtlcm5lbC5oIgogCisjaW5jbHVkZSAi
QXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXYXZlU2hhcGVyUHJvY2Vzc29yLmgiCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCi1jb25zdCB1bnNpZ25lZCBSZW5kZXJpbmdRdWFudHVtID0gMTI4
OwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdhdmVTaGFwZXJEU1BLZXJuZWw6OldhdmVTaGFw
ZXJEU1BLZXJuZWwoV2F2ZVNoYXBlclByb2Nlc3NvciogcHJvY2Vzc29yKQpAQCAtNDksMTIgKzQ4
LDEyIEBAIHZvaWQgV2F2ZVNoYXBlckRTUEtlcm5lbDo6bGF6eUluaXRpYWxpemVPdmVyc2FtcGxp
bmcoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoIW1fdGVtcEJ1ZmZl
cikgewotICAgICAgICBtX3RlbXBCdWZmZXIgPSBtYWtlVW5pcXVlPEF1ZGlvRmxvYXRBcnJheT4o
UmVuZGVyaW5nUXVhbnR1bSAqIDIpOwotICAgICAgICBtX3RlbXBCdWZmZXIyID0gbWFrZVVuaXF1
ZTxBdWRpb0Zsb2F0QXJyYXk+KFJlbmRlcmluZ1F1YW50dW0gKiA0KTsKLSAgICAgICAgbV91cFNh
bXBsZXIgPSBtYWtlVW5pcXVlPFVwU2FtcGxlcj4oUmVuZGVyaW5nUXVhbnR1bSk7Ci0gICAgICAg
IG1fZG93blNhbXBsZXIgPSBtYWtlVW5pcXVlPERvd25TYW1wbGVyPihSZW5kZXJpbmdRdWFudHVt
ICogMik7Ci0gICAgICAgIG1fdXBTYW1wbGVyMiA9IG1ha2VVbmlxdWU8VXBTYW1wbGVyPihSZW5k
ZXJpbmdRdWFudHVtICogMik7Ci0gICAgICAgIG1fZG93blNhbXBsZXIyID0gbWFrZVVuaXF1ZTxE
b3duU2FtcGxlcj4oUmVuZGVyaW5nUXVhbnR1bSAqIDQpOworICAgICAgICBtX3RlbXBCdWZmZXIg
PSBtYWtlVW5pcXVlPEF1ZGlvRmxvYXRBcnJheT4oQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplICogMik7CisgICAgICAgIG1fdGVtcEJ1ZmZlcjIgPSBtYWtlVW5pcXVlPEF1ZGlvRmxv
YXRBcnJheT4oQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplICogNCk7CisgICAgICAg
IG1fdXBTYW1wbGVyID0gbWFrZVVuaXF1ZTxVcFNhbXBsZXI+KEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIG1fZG93blNhbXBsZXIgPSBtYWtlVW5pcXVlPERvd25T
YW1wbGVyPihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUgKiAyKTsKKyAgICAgICAg
bV91cFNhbXBsZXIyID0gbWFrZVVuaXF1ZTxVcFNhbXBsZXI+KEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSAqIDIpOworICAgICAgICBtX2Rvd25TYW1wbGVyMiA9IG1ha2VVbmlxdWU8
RG93blNhbXBsZXI+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAqIDQpOwogICAg
IH0KIH0KIApAQCAtMTE3LDcgKzExNiw3IEBAIHZvaWQgV2F2ZVNoYXBlckRTUEtlcm5lbDo6cHJv
Y2Vzc0N1cnZlKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwKIAogdm9p
ZCBXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUyeChjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgYm9v
bCBpc1NhZmUgPSBmcmFtZXNUb1Byb2Nlc3MgPT0gUmVuZGVyaW5nUXVhbnR1bTsKKyAgICBib29s
IGlzU2FmZSA9IGZyYW1lc1RvUHJvY2VzcyA9PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemU7CiAgICAgQVNTRVJUKGlzU2FmZSk7CiAgICAgaWYgKCFpc1NhZmUpCiAgICAgICAgIHJl
dHVybjsKQEAgLTEzNCw3ICsxMzMsNyBAQCB2b2lkIFdhdmVTaGFwZXJEU1BLZXJuZWw6OnByb2Nl
c3NDdXJ2ZTJ4KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbgogCiB2b2lk
IFdhdmVTaGFwZXJEU1BLZXJuZWw6OnByb2Nlc3NDdXJ2ZTR4KGNvbnN0IGZsb2F0KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBib29s
IGlzU2FmZSA9IGZyYW1lc1RvUHJvY2VzcyA9PSBSZW5kZXJpbmdRdWFudHVtOworICAgIGJvb2wg
aXNTYWZlID0gZnJhbWVzVG9Qcm9jZXNzID09IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZTsKICAgICBBU1NFUlQoaXNTYWZlKTsKICAgICBpZiAoIWlzU2FmZSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNh
bXBsZXJLZXJuZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNh
bXBsZXJLZXJuZWwuY3BwCmluZGV4IDg2YThlYjUxMDJkYjhlY2ZkNDczZGY3MTE0ZDdjNzJlNTc4
NDc2ZWQuLjM3OThkN2VlZDNlNWUzOTg1MWYwMmJhMTljMWJhODM3MTFjZjQxMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5l
bC5jcHAKQEAgLTI5LDE2ICsyOSwxNSBAQAogI2luY2x1ZGUgIkF1ZGlvUmVzYW1wbGVyS2VybmVs
LmgiCiAKICNpbmNsdWRlICJBdWRpb1Jlc2FtcGxlci5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAg
Ci1jb25zdCBzaXplX3QgQXVkaW9SZXNhbXBsZXJLZXJuZWw6Ok1heEZyYW1lc1RvUHJvY2VzcyA9
IDEyODsKIAogQXVkaW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVzYW1wbGVyS2VybmVsKEF1ZGlv
UmVzYW1wbGVyKiByZXNhbXBsZXIpCiAgICAgOiBtX3Jlc2FtcGxlcihyZXNhbXBsZXIpCiAgICAg
Ly8gVGhlIGJ1ZmZlciBzaXplIG11c3QgYmUgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgdXAgdG8gdHdv
IGV4dHJhIHNhbXBsZSBmcmFtZXMgZm9yIHRoZSBsaW5lYXIgaW50ZXJwb2xhdGlvbi4KLSAgICAs
IG1fc291cmNlQnVmZmVyKDIgKyBzdGF0aWNfY2FzdDxpbnQ+KE1heEZyYW1lc1RvUHJvY2VzcyAq
IEF1ZGlvUmVzYW1wbGVyOjpNYXhSYXRlKSkKKyAgICAsIG1fc291cmNlQnVmZmVyKDIgKyBzdGF0
aWNfY2FzdDxpbnQ+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAqIEF1ZGlvUmVz
YW1wbGVyOjpNYXhSYXRlKSkKICAgICAsIG1fdmlydHVhbFJlYWRJbmRleCgwLjApCiAgICAgLCBt
X2ZpbGxJbmRleCgwKQogewpAQCAtNDgsNyArNDcsNyBAQCBBdWRpb1Jlc2FtcGxlcktlcm5lbDo6
QXVkaW9SZXNhbXBsZXJLZXJuZWwoQXVkaW9SZXNhbXBsZXIqIHJlc2FtcGxlcikKIAogZmxvYXQq
IEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpnZXRTb3VyY2VQb2ludGVyKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MsIHNpemVfdCogbnVtYmVyT2ZTb3VyY2VGcmFtZXNOZWVkZWRQKQogewotICAgIEFTU0VS
VChmcmFtZXNUb1Byb2Nlc3MgPD0gTWF4RnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBBU1NFUlQoZnJh
bWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAg
CiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXh0ICJ2aXJ0dWFsIiBpbmRleC4gIEFmdGVyIHByb2Nl
c3MoKSBpcyBjYWxsZWQsIG1fdmlydHVhbFJlYWRJbmRleCB3aWxsIGVxdWFsIHRoaXMgdmFsdWUu
CiAgICAgZG91YmxlIG5leHRGcmFjdGlvbmFsSW5kZXggPSBtX3ZpcnR1YWxSZWFkSW5kZXggKyBm
cmFtZXNUb1Byb2Nlc3MgKiByYXRlKCk7CkBAIC03Myw3ICs3Miw3IEBAIGZsb2F0KiBBdWRpb1Jl
c2FtcGxlcktlcm5lbDo6Z2V0U291cmNlUG9pbnRlcihzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBz
aXplX3QqIG51CiAKIHZvaWQgQXVkaW9SZXNhbXBsZXJLZXJuZWw6OnByb2Nlc3MoZmxvYXQqIGRl
c3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIEFTU0VSVChmcmFtZXNU
b1Byb2Nlc3MgPD0gTWF4RnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBBU1NFUlQoZnJhbWVzVG9Qcm9j
ZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICBmbG9hdCog
c291cmNlID0gbV9zb3VyY2VCdWZmZXIuZGF0YSgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmgKaW5kZXggMTc0NmRj
ZTFjNjM5MGM1MjFjN2IzMTNlNjg1YTJiZDE2NzI1NWViYS4uZDEzZmU1NzM0MjE5MTRmM2JmNGZh
MDNhNWNhNzFlZDkwNTdlODY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5oCkBAIC00NSwxOSArNDUsMTcgQEAgcHVibGlj
OgogICAgIC8vIGdldFNvdXJjZVBvaW50ZXIoKSBzaG91bGQgYmUgY2FsbGVkIGVhY2ggdGltZSBi
ZWZvcmUgcHJvY2VzcygpIGlzIGNhbGxlZC4KICAgICAvLyBHaXZlbiBhIG51bWJlciBvZiBmcmFt
ZXMgdG8gcHJvY2VzcyAoZm9yIHN1YnNlcXVlbnQgY2FsbCB0byBwcm9jZXNzKCkpLCBpdCByZXR1
cm5zIGEgcG9pbnRlciBhbmQgbnVtYmVyT2ZTb3VyY2VGcmFtZXNOZWVkZWQKICAgICAvLyB3aGVy
ZSBzYW1wbGUgZGF0YSBzaG91bGQgYmUgY29waWVkLiBUaGlzIHNhbXBsZSBkYXRhIHByb3ZpZGVz
IHRoZSBpbnB1dCB0byB0aGUgcmVzYW1wbGVyIHdoZW4gcHJvY2VzcygpIGlzIGNhbGxlZC4KLSAg
ICAvLyBmcmFtZXNUb1Byb2Nlc3MgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gTWF4RnJh
bWVzVG9Qcm9jZXNzLgorICAgIC8vIGZyYW1lc1RvUHJvY2VzcyBtdXN0IGJlIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUuCiAgICAgZmxvYXQq
IGdldFNvdXJjZVBvaW50ZXIoc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcywgc2l6ZV90KiBudW1iZXJP
ZlNvdXJjZUZyYW1lc05lZWRlZCk7CiAKICAgICAvLyBwcm9jZXNzKCkgcmVzYW1wbGVzIGZyYW1l
c1RvUHJvY2VzcyBmcmFtZXMgZnJvbSB0aGUgc291cmNlIGludG8gZGVzdGluYXRpb24uCiAgICAg
Ly8gRWFjaCBjYWxsIHRvIHByb2Nlc3MoKSBtdXN0IGJlIHByZWNlZGVkIGJ5IGEgY2FsbCB0byBn
ZXRTb3VyY2VQb2ludGVyKCkgc28gdGhhdCBzb3VyY2UgaW5wdXQgbWF5IGJlIHN1cHBsaWVkLgot
ICAgIC8vIGZyYW1lc1RvUHJvY2VzcyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBNYXhG
cmFtZXNUb1Byb2Nlc3MuCisgICAgLy8gZnJhbWVzVG9Qcm9jZXNzIG11c3QgYmUgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZS4KICAgICB2b2lk
IHByb2Nlc3MoZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKIAog
ICAgIC8vIFJlc2V0cyB0aGUgcHJvY2Vzc2luZyBzdGF0ZS4KICAgICB2b2lkIHJlc2V0KCk7CiAK
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE1heEZyYW1lc1RvUHJvY2VzczsKLQogcHJpdmF0ZToK
ICAgICBkb3VibGUgcmF0ZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9VdGlsaXRpZXMuaAppbmRleCAxZTE5YWUxZmQ1MGEwZWM4MWQ3NjM2MGY5NWU4
ZjQzMzRmOGQ0MWRkLi5lNWQxMzUyODIxZTdlMDFmYjkzYjY1MTY4YWZmZjI3NjU5NjViMGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1V0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvVXRpbGl0aWVzLmgKQEAg
LTI5LDYgKzI5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgQXVkaW9VdGls
aXRpZXMgewogCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI3JlbmRlci1xdWFu
dHVtLXNpemUKK2NvbnN0ZXhwciBzaXplX3QgcmVuZGVyUXVhbnR1bVNpemUgPSAxMjg7CisKIC8v
IFN0YW5kYXJkIGZ1bmN0aW9ucyBmb3IgY29udmVydGluZyB0byBhbmQgZnJvbSBkZWNpYmVsIHZh
bHVlcyBmcm9tIGxpbmVhci4KIGZsb2F0IGxpbmVhclRvRGVjaWJlbHMoZmxvYXQpOwogZmxvYXQg
ZGVjaWJlbHNUb0xpbmVhcihmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9CaXF1YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlx
dWFkLmNwcAppbmRleCAzYjY0M2IwYjNhYTA3YjZjZWQwNzAzYmRmN2QxZWI1ODc2YzczYzNmLi4w
NWY5ZTYyZjFiMzE1Y2Q0ZjdjMGYxNmNhZWUzMjNkM2QxMjRlMTViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUg
IkJpcXVhZC5oIgogCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJEZW5v
cm1hbERpc2FibGVyLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHN0ZGlvLmg+
CkBAIC01OSwxMSArNjAsMTEgQEAgQmlxdWFkOjpCaXF1YWQoKQogCiAgICAgLy8gQWxsb2NhdGUg
ZW5vdWdoIHNwYWNlIGZvciB0aGUgYS1yYXRlIGZpbHRlciBjb2VmZmljaWVudHMgdG8gaGFuZGxl
IGEKICAgICAvLyByZW5kZXJpbmcgcXVhbnR1bSBvZiAxMjggZnJhbWVzLgotICAgIG1fYjAuYWxs
b2NhdGUoTWF4RnJhbWVzVG9Qcm9jZXNzKTsKLSAgICBtX2IxLmFsbG9jYXRlKE1heEZyYW1lc1Rv
UHJvY2Vzcyk7Ci0gICAgbV9iMi5hbGxvY2F0ZShNYXhGcmFtZXNUb1Byb2Nlc3MpOwotICAgIG1f
YTEuYWxsb2NhdGUoTWF4RnJhbWVzVG9Qcm9jZXNzKTsKLSAgICBtX2EyLmFsbG9jYXRlKE1heEZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgbV9iMC5hbGxvY2F0ZShBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpOworICAgIG1fYjEuYWxsb2NhdGUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKTsKKyAgICBtX2IyLmFsbG9jYXRlKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSk7CisgICAgbV9hMS5hbGxvY2F0ZShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpOworICAgIG1fYTIuYWxsb2NhdGUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplKTsKIAogICAgIC8vIEluaXRpYWxpemUgYXMgcGFzcy10aHJ1IChzdHJhaWdodC13aXJlLCBu
byBmaWx0ZXIgZWZmZWN0KQogICAgIHNldE5vcm1hbGl6ZWRDb2VmZmljaWVudHMoMCwgMSwgMCwg
MCwgMSwgMCwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9C
aXF1YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5oCmluZGV4IDU0
ODc5M2M4MjdhZjcxMWIwMzhiMzg3MDcxYjJmZWU4OGJlMmQ2ZTcuLmFiYmUwZjUyYmU0MDNhM2Fl
MDdjMzZhZTBlZDllYmFhOGFiOTdjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0JpcXVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Jp
cXVhZC5oCkBAIC00Niw4ICs0Niw2IEBAIHB1YmxpYzoKICAgICBCaXF1YWQoKTsKICAgICB+Qmlx
dWFkKCk7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBNYXhGcmFtZXNUb1Byb2Nlc3Mg
PSAxMjg7Ci0KICAgICB2b2lkIHByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGZsb2F0KiBk
ZXN0UCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICBib29sIGhhc1NhbXBsZUFjY3Vy
YXRlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTYW1wbGVBY2N1cmF0ZVZhbHVlczsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGUGFubmVyLmNwcAppbmRleCA0MDhi
NmUwMmUyODYzYWZmY2ZmMzQ1Mjc1MTk0NmJhNjAzMzU0M2Q2Li5jZDhiNDI3ZTVhY2Y0ODU4Yzg2
MTJhMjE3Mzk1ZDA3NDRkZDNiNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGUGFubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGUGFubmVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhSVEZQYW5uZXIu
aCIKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJGRlRDb252b2x2ZXIuaCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2UuaCIKICNp
bmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKQEAgLTQyLDcgKzQzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY29uc3QgZG91YmxlIE1heERlbGF5VGltZVNlY29uZHMgPSAwLjAwMjsKIAog
Y29uc3QgaW50IFVuaW5pdGlhbGl6ZWRBemltdXRoID0gLTE7Ci1jb25zdCB1bnNpZ25lZCBSZW5k
ZXJpbmdRdWFudHVtID0gMTI4OwogCiBIUlRGUGFubmVyOjpIUlRGUGFubmVyKGZsb2F0IHNhbXBs
ZVJhdGUsIEhSVEZEYXRhYmFzZUxvYWRlciogZGF0YWJhc2VMb2FkZXIpCiAgICAgOiBQYW5uZXIo
UGFubmluZ01vZGVsVHlwZTo6SFJURikKQEAgLTYxLDEwICs2MSwxMCBAQCBIUlRGUGFubmVyOjpI
UlRGUGFubmVyKGZsb2F0IHNhbXBsZVJhdGUsIEhSVEZEYXRhYmFzZUxvYWRlciogZGF0YWJhc2VM
b2FkZXIpCiAgICAgLCBtX2NvbnZvbHZlclIyKGZmdFNpemVGb3JTYW1wbGVSYXRlKHNhbXBsZVJh
dGUpKQogICAgICwgbV9kZWxheUxpbmVMKE1heERlbGF5VGltZVNlY29uZHMsIHNhbXBsZVJhdGUp
CiAgICAgLCBtX2RlbGF5TGluZVIoTWF4RGVsYXlUaW1lU2Vjb25kcywgc2FtcGxlUmF0ZSkKLSAg
ICAsIG1fdGVtcEwxKFJlbmRlcmluZ1F1YW50dW0pCi0gICAgLCBtX3RlbXBSMShSZW5kZXJpbmdR
dWFudHVtKQotICAgICwgbV90ZW1wTDIoUmVuZGVyaW5nUXVhbnR1bSkKLSAgICAsIG1fdGVtcFIy
KFJlbmRlcmluZ1F1YW50dW0pCisgICAgLCBtX3RlbXBMMShBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpCisgICAgLCBtX3RlbXBSMShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpCisgICAgLCBtX3RlbXBMMihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
CisgICAgLCBtX3RlbXBSMihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiAg
ICAgQVNTRVJUKGRhdGFiYXNlTG9hZGVyKTsKIH0KQEAgLTIxOCwxMSArMjE4LDExIEBAIHZvaWQg
SFJURlBhbm5lcjo6cGFuKGRvdWJsZSBkZXNpcmVkQXppbXV0aCwgZG91YmxlIGVsZXZhdGlvbiwg
Y29uc3QgQXVkaW9CdXMqIGluCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGlzIGFsZ29y
aXRobSBjdXJyZW50bHkgcmVxdWlyZXMgdGhhdCB3ZSBwcm9jZXNzIGluIHBvd2VyLW9mLXR3byBz
aXplIGNodW5rcyBhdCBsZWFzdCBSZW5kZXJpbmdRdWFudHVtLgorICAgIC8vIFRoaXMgYWxnb3Jp
dGhtIGN1cnJlbnRseSByZXF1aXJlcyB0aGF0IHdlIHByb2Nlc3MgaW4gcG93ZXItb2YtdHdvIHNp
emUgY2h1bmtzIGF0IGxlYXN0IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZS4KICAg
ICBBU1NFUlQoMVVMIDw8IHN0YXRpY19jYXN0PGludD4obG9nMihmcmFtZXNUb1Byb2Nlc3MpKSA9
PSBmcmFtZXNUb1Byb2Nlc3MpOwotICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPj0gUmVuZGVy
aW5nUXVhbnR1bSk7CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA+PSBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUpOwogCi0gICAgY29uc3QgdW5zaWduZWQgZnJhbWVzUGVyU2Vn
bWVudCA9IFJlbmRlcmluZ1F1YW50dW07CisgICAgY29uc3QgdW5zaWduZWQgZnJhbWVzUGVyU2Vn
bWVudCA9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKICAgICBjb25zdCB1bnNp
Z25lZCBudW1iZXJPZlNlZ21lbnRzID0gZnJhbWVzVG9Qcm9jZXNzIC8gZnJhbWVzUGVyU2VnbWVu
dDsKIAogICAgIGZvciAodW5zaWduZWQgc2VnbWVudCA9IDA7IHNlZ21lbnQgPCBudW1iZXJPZlNl
Z21lbnRzOyArK3NlZ21lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0lJUkZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9JSVJG
aWx0ZXIuY3BwCmluZGV4IDI3YWEyZDI5MjliNmQ5YjlkNDlmODY4MGYyMTA5ZDQwM2FmYjhhNDMu
LjQxMzkxYzJkOWQ2MjY1NGZkNGY2Y2M3OTc4OWU3MjU1MjVlYjE1MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0lJUkZpbHRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSUlSRmlsdGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIklJUkZpbHRlci5oIgogCiAjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUg
IkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KICNpbmNsdWRlIDxjb21wbGV4PgpAQCAtMzYsOCArMzcsNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNvbnN0ZXhwciB1bnNpZ25lZCBpaXJSZW5kZXJpbmdRdWFudHVtID0g
MTI4OwotCiAvLyBUaGUgbGVuZ3RoIG9mIHRoZSBtZW1vcnkgYnVmZmVycyBmb3IgdGhlIElJUiBm
aWx0ZXIuIFRoaXMgTVVTVCBiZSBhIHBvd2VyIG9mCiAvLyB0d28gYW5kIG11c3QgYmUgZ3JlYXRl
ciB0aGFuIHRoZSBwb3NzaWJsZSBsZW5ndGggb2YgdGhlIGZpbHRlciBjb2VmZmljaWVudHMuCiBj
b25zdGV4cHIgaW50IGJ1ZmZlckxlbmd0aCA9IDMyOwpAQCAtMTg4LDExICsxODcsMTEgQEAgZG91
YmxlIElJUkZpbHRlcjo6dGFpbFRpbWUoZG91YmxlIHNhbXBsZVJhdGUsIGJvb2wgaXNGaWx0ZXJT
dGFibGUpCiAgICAgLy8gemVybyBvdXQgdGhlIG91dHB1dCBvZiB0aGUgbm9kZS4KIAogICAgIC8v
IE51bWJlciBvZiByZW5kZXIgcXVhbnRhIG5lZWRlZCB0byByZWFjaCB0aGUgbWF4IHRhaWwgdGlt
ZS4KLSAgICBpbnQgbnVtYmVyT2ZCbG9ja3MgPSBzdGQ6OmNlaWwoc2FtcGxlUmF0ZSAqIG1heFRh
aWxUaW1lIC8gaWlyUmVuZGVyaW5nUXVhbnR1bSk7CisgICAgaW50IG51bWJlck9mQmxvY2tzID0g
c3RkOjpjZWlsKHNhbXBsZVJhdGUgKiBtYXhUYWlsVGltZSAvIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CiAKICAgICAvLyBJbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZm9yIGZp
bHRlcmluZy4KLSAgICBBdWRpb0Zsb2F0QXJyYXkgaW5wdXQoaWlyUmVuZGVyaW5nUXVhbnR1bSk7
Ci0gICAgQXVkaW9GbG9hdEFycmF5IG91dHB1dChpaXJSZW5kZXJpbmdRdWFudHVtKTsKKyAgICBB
dWRpb0Zsb2F0QXJyYXkgaW5wdXQoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsK
KyAgICBBdWRpb0Zsb2F0QXJyYXkgb3V0cHV0KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSk7CiAKICAgICAvLyBBcnJheSB0byBob2xkIHRoZSBtYXggbWFnbml0dWRlcwogICAgIEF1
ZGlvRmxvYXRBcnJheSBtYWduaXR1ZGVzKG51bWJlck9mQmxvY2tzKTsKQEAgLTIwMSwxNiArMjAw
LDE2IEBAIGRvdWJsZSBJSVJGaWx0ZXI6OnRhaWxUaW1lKGRvdWJsZSBzYW1wbGVSYXRlLCBib29s
IGlzRmlsdGVyU3RhYmxlKQogICAgIGlucHV0WzBdID0gMTsKIAogICAgIC8vIFByb2Nlc3MgdGhl
IGZpcnN0IGJsb2NrIGFuZCBnZXQgdGhlIG1heCBtYWduaXR1ZGUgb2YgdGhlIG91dHB1dC4KLSAg
ICBwcm9jZXNzKGlucHV0LmRhdGEoKSwgb3V0cHV0LmRhdGEoKSwgaWlyUmVuZGVyaW5nUXVhbnR1
bSk7Ci0gICAgVmVjdG9yTWF0aDo6dm1heG1ndihvdXRwdXQuZGF0YSgpLCAxLCAmbWFnbml0dWRl
c1swXSwgaWlyUmVuZGVyaW5nUXVhbnR1bSk7CisgICAgcHJvY2VzcyhpbnB1dC5kYXRhKCksIG91
dHB1dC5kYXRhKCksIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgVmVj
dG9yTWF0aDo6dm1heG1ndihvdXRwdXQuZGF0YSgpLCAxLCAmbWFnbml0dWRlc1swXSwgQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIC8vIFByb2Nlc3MgdGhlIHJlc3Qg
b2YgdGhlIHNpZ25hbCwgZ2V0dGluZyB0aGUgbWF4IG1hZ25pdHVkZSBvZiB0aGUKICAgICAvLyBv
dXRwdXQgZm9yIGVhY2ggYmxvY2suCiAgICAgaW5wdXRbMF0gPSAwOwogCiAgICAgZm9yIChpbnQg
ayA9IDE7IGsgPCBudW1iZXJPZkJsb2NrczsgKytrKSB7Ci0gICAgICAgIHByb2Nlc3MoaW5wdXQu
ZGF0YSgpLCBvdXRwdXQuZGF0YSgpLCBpaXJSZW5kZXJpbmdRdWFudHVtKTsKLSAgICAgICAgVmVj
dG9yTWF0aDo6dm1heG1ndihvdXRwdXQuZGF0YSgpLCAxLCAmbWFnbml0dWRlc1trXSwgaWlyUmVu
ZGVyaW5nUXVhbnR1bSk7CisgICAgICAgIHByb2Nlc3MoaW5wdXQuZGF0YSgpLCBvdXRwdXQuZGF0
YSgpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgICAgICBWZWN0b3JN
YXRoOjp2bWF4bWd2KG91dHB1dC5kYXRhKCksIDEsICZtYWduaXR1ZGVzW2tdLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgIH0KIAogICAgIC8vIERvbmUgY29tcHV0aW5n
IHRoZSBpbXB1bHNlIHJlc3BvbnNlOyByZXNldCB0aGUgc3RhdGUgc28gdGhlIGFjdHVhbCBub2Rl
CkBAIC0yMjgsNyArMjI3LDcgQEAgZG91YmxlIElJUkZpbHRlcjo6dGFpbFRpbWUoZG91YmxlIHNh
bXBsZVJhdGUsIGJvb2wgaXNGaWx0ZXJTdGFibGUpCiAKICAgICAvLyBUaGUgbWFnbml0dWRlIGZp
cnN0IGJlY29tZSBsb3dlciB0aGFuIHRoZSB0aHJlc2hvbGQgYXQgdGhlIG5leHQgYmxvY2suCiAg
ICAgLy8gQ29tcHV0ZSB0aGUgY29ycmVzcG9uZGluZyB0aW1lIHZhbHVlIHZhbHVlOyB0aGF0J3Mg
dGhlIHRhaWwgdGltZS4KLSAgICByZXR1cm4gKGluZGV4ICsgMSkgKiBpaXJSZW5kZXJpbmdRdWFu
dHVtIC8gc2FtcGxlUmF0ZTsKKyAgICByZXR1cm4gKGluZGV4ICsgMSkgKiBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUgLyBzYW1wbGVSYXRlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCAwOTg5OTE3Y2I1YzE2MDlmNjYw
OGIyZTE3ZTdhOWE2NWMxNmUxMjA5Li43NGFkNjE2ZmE5ZTI1ZGViOTk5Yzk2YjY2N2VkMTQ5NDcw
YmY2ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9B
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTMwLDE1ICszMCwxNCBAQAog
CiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKKyNpbmNs
dWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
dWx0aUNoYW5uZWxSZXNhbXBsZXIuaCIKICNpbmNsdWRlICJQdXNoUHVsbEZJRk8uaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdGV4cHIgc2l6ZV90IGtSZW5kZXJCdWZmZXJTaXplID0g
MTI4OwotCi1jb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBrUmVuZGVyQnVmZmVyU2l6
ZTsKK2NvbnN0ZXhwciBzaXplX3QgZmlmb1NpemUgPSA5NiAqIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZTsKIAogQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbkNvY29hT3ZlcnJpZGUgQXVk
aW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSA9IG51bGxwdHI7CiAKQEAgLTc0LDgg
KzczLDggQEAgdW5zaWduZWQgbG9uZyBBdWRpb0Rlc3RpbmF0aW9uOjptYXhDaGFubmVsQ291bnQo
KQogQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQg
c2FtcGxlUmF0ZSkKICAgICA6IG1fb3V0cHV0VW5pdCgwKQogICAgICwgbV9jYWxsYmFjayhjYWxs
YmFjaykKLSAgICAsIG1fb3V0cHV0QnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZPdXRwdXRD
aGFubmVscywga1JlbmRlckJ1ZmZlclNpemUsIGZhbHNlKS5yZWxlYXNlTm9uTnVsbCgpKQotICAg
ICwgbV9yZW5kZXJCdXMoQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZk91dHB1dENoYW5uZWxzLCBr
UmVuZGVyQnVmZmVyU2l6ZSkucmVsZWFzZU5vbk51bGwoKSkKKyAgICAsIG1fb3V0cHV0QnVzKEF1
ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZPdXRwdXRDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplLCBmYWxzZSkucmVsZWFzZU5vbk51bGwoKSkKKyAgICAsIG1fcmVuZGVy
QnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZPdXRwdXRDaGFubmVscywgQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKS5yZWxlYXNlTm9uTnVsbCgpKQogICAgICwgbV9maWZvKG1h
a2VVbmlxdWVSZWY8UHVzaFB1bGxGSUZPPihudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmaWZvU2l6
ZSkpCiAgICAgLCBtX2NvbnRleHRTYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiB7CkBAIC04NCw3ICs4
Myw3IEBAIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhY2ssIHVuc2lnbmVkCiAgICAgYXV0byBoYXJkd2FyZVNhbXBsZVJh
dGUgPSB0aGlzLT5oYXJkd2FyZVNhbXBsZVJhdGUoKTsKICAgICBpZiAoc2FtcGxlUmF0ZSAhPSBo
YXJkd2FyZVNhbXBsZVJhdGUpIHsKICAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0gc3RhdGlj
X2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKSAvIGhhcmR3YXJlU2FtcGxlUmF0ZTsKLSAgICAgICAg
bV9yZXNhbXBsZXIgPSBtYWtlVW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0
b3IsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGtSZW5kZXJCdWZmZXJTaXplKTsKKyAgICAgICAg
bV9yZXNhbXBsZXIgPSBtYWtlVW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0
b3IsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSk7CiAgICAgfQogfQogCkBAIC0xNzYsMTEgKzE3NSwxMSBAQCBPU1N0YXR1cyBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnJlbmRlcihjb25zdCBBdWRpb1RpbWVTdGFtcCogdGltZXN0YW1wLCBV
SW50MzIgbgogICAgIGFzc2lnbkF1ZGlvQnVmZmVyc1RvQnVzKGJ1ZmZlcnMsIG1fb3V0cHV0QnVz
LmdldCgpLCBudW1iZXJPZkJ1ZmZlcnMsIG51bWJlck9mRnJhbWVzLCAwLCBudW1iZXJPZkZyYW1l
cyk7CiAgICAgc2l6ZV90IGZyYW1lc1RvUmVuZGVyID0gbV9maWZvLT5wdWxsKG1fb3V0cHV0QnVz
LnB0cigpLCBudW1iZXJPZkZyYW1lcyk7CiAKLSAgICBmb3IgKHNpemVfdCBwdXNoZWRGcmFtZXMg
PSAwOyBwdXNoZWRGcmFtZXMgPCBmcmFtZXNUb1JlbmRlcjsgcHVzaGVkRnJhbWVzICs9IGtSZW5k
ZXJCdWZmZXJTaXplKSB7CisgICAgZm9yIChzaXplX3QgcHVzaGVkRnJhbWVzID0gMDsgcHVzaGVk
RnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1c2hlZEZyYW1lcyArPSBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpIHsKICAgICAgICAgaWYgKG1fcmVzYW1wbGVyKQotICAgICAgICAg
ICAgbV9yZXNhbXBsZXItPnByb2Nlc3ModGhpcywgbV9yZW5kZXJCdXMucHRyKCksIGtSZW5kZXJC
dWZmZXJTaXplKTsKKyAgICAgICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVu
ZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIo
KSwga1JlbmRlckJ1ZmZlclNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKKyAgICAgICAgICAgIG1f
Y2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIAogICAgICAgICBtX2ZpZm8tPnB1
c2gobV9yZW5kZXJCdXMucHRyKCkpOwogICAgIH0KQEAgLTE5Nyw4ICsxOTYsOCBAQCBPU1N0YXR1
cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmlucHV0UHJvYyh2b2lkKiB1c2VyRGF0YSwgQXVkaW9V
bml0UmVuZGVyQWN0aW9uRgogCiB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cHJvdmlkZUlu
cHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChmcmFtZXNUb1Byb2Nlc3MsIGZyYW1lc1RvUHJvY2VzcyA9PSBrUmVuZGVyQnVmZmVy
U2l6ZSk7Ci0gICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYnVzLCBrUmVuZGVyQnVmZmVyU2l6ZSwg
bV9vdXRwdXRUaW1lc3RhbXApOworICAgIEFTU0VSVF9VTlVTRUQoZnJhbWVzVG9Qcm9jZXNzLCBm
cmFtZXNUb1Byb2Nlc3MgPT0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAg
ICBtX2NhbGxiYWNrLnJlbmRlcigwLCBidXMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSwgbV9vdXRwdXRUaW1lc3RhbXApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5kZXggYmRjN2RlMzIzMTJhYTVhZjIwMTEzMGE2
OWM2Yjg1Y2YxMTBmOTJlNi4uNzNhZjE2MDM0YjQxMzc1NjFlMzNmOWI1MTJmZGIyMjVlNTUzZWEw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lm
IFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2ltcG9ydCAiQXVkaW9T
ZXNzaW9uLmgiCisjaW1wb3J0ICJBdWRpb1V0aWxpdGllcy5oIgogI2ltcG9ydCAiRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzLmgiCiAjaW1wb3J0ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0
ICJMb2dnaW5nLmgiCkBAIC00Miw3ICs0Myw2IEBACiAKICNpbXBvcnQgIk1lZGlhUmVtb3RlU29m
dExpbmsuaCIKIAotc3RhdGljIGNvbnN0IHNpemVfdCBrV2ViQXVkaW9CdWZmZXJTaXplID0gMTI4
Owogc3RhdGljIGNvbnN0IHNpemVfdCBrTG93UG93ZXJWaWRlb0J1ZmZlclNpemUgPSA0MDk2Owog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAgICAgICAgICJXZWJBdWRpbygi
LCB3ZWJBdWRpb0NvdW50LCAiKSIpOwogCiAgICAgaWYgKHdlYkF1ZGlvQ291bnQpCi0gICAgICAg
IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoa1dl
YkF1ZGlvQnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnNldFByZWZlcnJlZEJ1ZmZlclNpemUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
KTsKICAgICAvLyBJbiBjYXNlIG9mIGF1ZGlvIGNhcHR1cmUsIHdlIHdhbnQgdG8gZ3JhYiAyMCBt
cyBjaHVua3MgdG8gbGltaXQgdGhlIGxhdGVuY3kgc28gdGhhdCBpdCBpcyBub3Qgbm90aWNlYWJs
ZSBieSB1c2VycwogICAgIC8vIHdoaWxlIGhhdmluZyBhIGxhcmdlIGVub3VnaCBidWZmZXIgc28g
dGhhdCB0aGUgYXVkaW8gcmVuZGVyaW5nIHJlbWFpbnMgc3RhYmxlLCBoZW5jZSBhIGNvbXB1dGF0
aW9uIGJhc2VkIG9uIHNhbXBsZSByYXRlLgogICAgIGVsc2UgaWYgKGNhcHR1cmVDb3VudCkKQEAg
LTExMiw3ICsxMTIsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlU2Vz
c2lvblN0YXRlKCkKICAgICAgICAgaWYgKG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyICYmIG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyLT5vdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZSgpKQog
ICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtMb3dQb3dlclZpZGVvQnVmZmVyU2l6ZTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IGtXZWJBdWRpb0J1ZmZlclNpemU7Cisg
ICAgICAgICAgICBidWZmZXJTaXplID0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
OwogCiAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1
ZmZlclNpemUoYnVmZmVyU2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuY3BwCmluZGV4IDA0YmVlNjQ0ZDhkMmI5MGFkNDI0ZThhMzc0OGFkNjYzZWQwMzE0
MjQuLmRiNjljNWI5NzJiNDQyNDIwY2FjNjU2Yjg1N2E0NzRkYzczYTJiMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lu
Y2x1ZGUgIkF1ZGlvQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuaCIKQEAgLTM1LDEwICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Ly8gU2l6ZSBvZiB0aGUgQXVkaW9CdXMgZm9yIHBsYXliYWNrLiBUaGUgd2Via2l0d2ViYXVkaW9z
cmMgZWxlbWVudAotLy8gbmVlZHMgdG8gaGFuZGxlIHRoaXMgbnVtYmVyIG9mIGZyYW1lcyBwZXIg
Y3ljbGUgYXMgd2VsbC4KLWNvbnN0IHVuc2lnbmVkIGZyYW1lc1RvUHVsbCA9IDEyODsKLQogZ2Jv
b2xlYW4gbWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyosIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIEF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIqIGRlc3RpbmF0aW9uKQogewogICAgIHJldHVybiBkZXN0aW5h
dGlvbi0+aGFuZGxlTWVzc2FnZShtZXNzYWdlKTsKQEAgLTc5LDcgKzc2LDcgQEAgdW5zaWduZWQg
bG9uZyBBdWRpb0Rlc3RpbmF0aW9uOjptYXhDaGFubmVsQ291bnQoKQogCiBBdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQot
ICAgICwgbV9yZW5kZXJCdXMoQXVkaW9CdXM6OmNyZWF0ZSgyLCBmcmFtZXNUb1B1bGwsIGZhbHNl
KSkKKyAgICAsIG1fcmVuZGVyQnVzKEF1ZGlvQnVzOjpjcmVhdGUoMiwgQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplLCBmYWxzZSkpCiAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0
ZSkKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewpAQCAtOTMsNyArOTAsNyBAQCBBdWRpb0Rl
c3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxs
YmFjayYgY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhdGUiLCBzYW1wbGVSYXRlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJidXMiLCBtX3JlbmRlckJ1cy5nZXQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicHJvdmlkZXIiLCAmbV9jYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJh
bWVzIiwgZnJhbWVzVG9QdWxsLCBudWxscHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1l
cyIsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgbnVsbHB0cikpOwogCiAgICAg
R1JlZlB0cjxHc3RFbGVtZW50PiBhdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImF1dG9hdWRpb3NpbmsiLCBudWxscHRyKTsKICAgICBtX2F1ZGlvU2lua0F2YWlsYWJsZSA9IGF1
ZGlvU2luazsKQEAgLTEzOCw3ICsxMzUsNyBAQCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjp+
QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCiAKIHVuc2lnbmVkIEF1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXI6OmZyYW1lc1BlckJ1ZmZlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lc1Rv
UHVsbDsKKyAgICByZXR1cm4gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogfQog
CiBnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcAppbmRleCBjNGY4Y2FmNDVlNDhkODc0MGNmZWZmMDlkMjZlZDgyZjRjMzY5NzFjLi43
ZTQ5ZTExNTA5MzI5OTRhZGNmNmNiNDQxMzdjODg1ZGE4NjdiMjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9JT0NhbGxiYWNrLmgiCisjaW5j
bHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNp
bmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgogI2luY2x1ZGUgPGdzdC9hdWRpby9hdWRpby1p
bmZvLmg+CkBAIC0xODYsNyArMTg3LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19z
cmNfY2xhc3NfaW5pdChXZWJLaXRXZWJBdWRpb1NyY0NsYXNzKiB3ZWJLaXRXZWJBdWQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRlJBTUVTLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3VpbnQoImZyYW1lcyIsICJmcmFt
ZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIk51bWJlciBvZiBhdWRpbyBmcmFtZXMgdG8gcHVsbCBhdCBlYWNoIGl0ZXJhdGlvbiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBH
X01BWFVJTlQ4LCAxMjgsIGZsYWdzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCBHX01BWFVJTlQ4LCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUsIGZsYWdzKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlv
U3JjQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQo=
</data>
<flag name="commit-queue"
          id="425351"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409596</attachid>
            <date>2020-09-24 10:40:07 -0700</date>
            <delta_ts>2020-09-24 11:33:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216935-20200924104006.patch</filename>
            <type>text/plain</type>
            <size>59502</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhmZTAzODUzOTM4ODA2
NWQzZGM5OTE2YTJkMzZjZGJlYTVjMDM1Yy4uOTgxMDBkMzFjMDUwMzMzNDc0ZWQ5NTBjNGQ0Zjkw
YjNiZjE2MjFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDIwLTA5LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGVjbGFyZSByZW5kZXIgcXVh
bnR1bSBzaXplIGNvbnN0YW50IGluIEF1ZGlvVXRpbGl0aWVzLmgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjkzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgcmVuZGVyIHF1YW50dW0gc2l6
ZSBbMV0gY29uc3RhbnQgaW4gQXVkaW9VdGlsaXRpZXMuaCBzbyB0aGF0IGl0IGNhbiBiZSB1c2Vk
IGluIGJvdGgKKyAgICAgICAgcGxhdGZvcm0vIGFuZCBNb2R1bGVzL3dlYmF1ZGlvLy4gQWxzbyB1
cGRhdGUgdGhlIGNvZGUgc28gdGhhdCB3ZSBoYXZlIGEgc2luZ2xlIGNvbnN0YW50CisgICAgICAg
IGluc3RlYWQgb2YgbWFueS4KKworICAgICAgICBbMV0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1ZGlvLyNyZW5kZXItcXVhbnR1bS1zaXplCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVk
aW9MaXN0ZW5lcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvTm9kZUlucHV0OjpBdWRpb05vZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9k
ZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91
dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVGaW5h
bFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpjYWxjdWxhdGVUaW1lbGlu
ZVZhbHVlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRl
eHRUaW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnVw
ZGF0ZVNjaGVkdWxpbmdJbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERT
UEtlcm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWREU1BLZXJuZWw6OnVwZGF0ZUNv
ZWZmaWNpZW50c0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OnByb2Nl
c3NPbmx5QXVkaW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRT
b3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50U291cmNlTm9kZTo6Q29u
c3RhbnRTb3VyY2VOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291
cmNlTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpzZXRCdWZmZXIpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5
RFNQS2VybmVsOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHlu
YW1pY3NDb21wcmVzc29yTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1BhcmFtcyk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYWluTm9k
ZTo6R2Fpbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Fpbk5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpzdXNwZW5kT2Zm
bGluZVJlbmRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6T3NjaWxsYXRvck5vZGU6Ok9zY2lsbGF0b3JOb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVk
aW9QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzc1NhbXBsZUFj
Y3VyYXRlVmFsdWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6UmVhbHRpbWVBbmFs
eXNlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdGVyZW9QYW5uZXJOb2RlOjpTdGVyZW9QYW5uZXJOb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0ZXJlb1Bhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9QYXJh
bXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpsYXp5SW5pdGlhbGl6ZU92ZXJzYW1wbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUy
eCk6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmU0
eCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVzYW1wbGVyS2Vy
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpnZXRTb3VyY2VQ
b2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyS2VybmVsOjpwcm9jZXNz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktlcm5lbC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQmlxdWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZDo6QmlxdWFkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9CaXF1YWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9IUlRGUGFubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhSVEZQYW5uZXI6OkhSVEZQ
YW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFJURlBhbm5lcjo6cGFuKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SUlSRmlsdGVy
Ojp0YWlsVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
QXVkaW9EZXN0aW5hdGlvbkNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2Nv
YTo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmcmFtZXNQZXJC
dWZmZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2F1ZGlvX3Ny
Y19jbGFzc19pbml0KToKKwogMjAyMC0wOS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Ob2RlOjpyZXNldCgpIGFuZCBhbGwgaXRzIG92ZXJy
aWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci5jcHAKaW5kZXggNGFjMGVlMjhlYjkxNjA2MzFhZTA0ZmVmNTZjOTQyYTI5MGRkMzFjNy4uNTU2
NGU2ZGI5NWFiMjE3M2NjM2ZjOTFjNDVmNWQzNjhjOTY3YmRiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvUGFyYW0uaCIKKyNp
bmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4
LDE1ICs0OSwxNSBAQCBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCiAgICAgLCBtX3VwWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVw
WCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAg
LCBtX3VwWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSIsIDEuMCwgLUZMVF9NQVgs
IEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAgLCBtX3VwWihBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInVwWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRp
b25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nl
c3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX2ZvcndhcmRYVmFsdWVzKEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykKLSAgICAsIG1fZm9yd2FyZFlWYWx1ZXMoQXVkaW9O
b2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICwgbV9mb3J3YXJkWlZhbHVlcyhBdWRp
b05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWFZhbHVlcyhBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWVZhbHVlcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCi0gICAgLCBtX3VwWlZhbHVlcyhBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXMpCisgICAgLCBtX3Bvc2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX2ZvcndhcmRYVmFsdWVzKEF1
ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKKyAgICAsIG1fZm9yd2FyZFlWYWx1ZXMo
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9mb3J3YXJkWlZhbHVl
cyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWFZhbHVlcyhB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWVZhbHVlcyhBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCisgICAgLCBtX3VwWlZhbHVlcyhBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDg0M2E2NzQ3YWYzZjJjYTM0YmJlYzQzYmVh
ZGQ5NDI3NTYxYzA2NzcuLjg0YzUwZDJjZTBkODNiNjMwMDE3N2MyNjE3YzRjMzkyY2ZjZjU3MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAtNTks
OCArNTksNiBAQCBjbGFzcyBBdWRpb05vZGUKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRp
b05vZGUpOwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVkaW9Ob2RlKTsKIHB1YmxpYzoK
LSAgICBlbnVtIHsgUHJvY2Vzc2luZ1NpemVJbkZyYW1lcyA9IDEyOCB9OwotCiAgICAgZXhwbGlj
aXQgQXVkaW9Ob2RlKEJhc2VBdWRpb0NvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5BdWRpb05vZGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlu
cHV0LmNwcAppbmRleCAzOTZmOGI3ZWE1NDUxZWNmM2E3ZWE5MjRiZDA4OTEzZjk0OTIzNTAyLi5l
YzI3MmVmNGI5M2U2MGQ4YzEwNmIzODIyZGRmMmJkNjQ3MjQxM2ZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBBdWRpb05vZGVJbnB1dDo6QXVkaW9Ob2RlSW5wdXQoQXVkaW9Ob2RlKiBub2RlKQog
ICAgICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgLy8gU2V0IHRvIG1vbm8gYnkgZGVmYXVsdC4KLSAg
ICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgQXVkaW9Ob2RlOjpQ
cm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlv
QnVzOjpjcmVhdGUoMSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIH0KIAog
dm9pZCBBdWRpb05vZGVJbnB1dDo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKQEAg
LTE0MSw3ICsxNDEsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygp
CiAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+
bnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ludGVybmFsU3Vt
bWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0g
QXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJP
ZkNoYW5uZWxzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAppbmRleCBiODEwYzI3ZjQ1MTRlNDE2NzMwODBhMWMwOGE4
ZGVlMWVhNjM3MDA1Li4zNjczNGRhMTEzZGY0YzdjMzg1NTVhOWJhNTdmYzRlMWNiYTQyNzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEF1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0
KEF1ZGlvTm9kZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKIHsKICAgICBBU1NF
UlQobnVtYmVyT2ZDaGFubmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMo
KSk7CiAKLSAgICBtX2ludGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5u
ZWxzLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIG1faW50ZXJuYWxC
dXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpzZXROdW1iZXJP
ZkNoYW5uZWxzKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpCkBAIC03MSw3ICs3MSw3IEBAIHZv
aWQgQXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9m
Q2hhbm5lbHMoKSA9PSBtX2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1faW50ZXJuYWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9m
Q2hhbm5lbHMoKSwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBtX2lu
dGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzKCksIEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojp1
cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtLmNwcAppbmRleCBhOGE4OTdkYWM3OTI0NjIzYzcwNmJmNWU0MjkyM2ExMjg0
ZDhkYjM5Li5mYTdhZjVkYTZmMDZiNTM1ODgxYzI3YmUwMDkwOGQ2MDdmNjdjN2Q0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTI3OSw3
ICsyNzksNyBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0KiB2
YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBibwogICAgICAgICBBU1NFUlQob3V0cHV0
KTsKIAogICAgICAgICAvLyBSZW5kZXIgYXVkaW8gZnJvbSB0aGlzIG91dHB1dC4KLSAgICAgICAg
QXVkaW9CdXMqIGNvbm5lY3Rpb25CdXMgPSBvdXRwdXQtPnB1bGwoMCwgQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICAgICAgQXVkaW9CdXMqIGNvbm5lY3Rpb25CdXMgPSBv
dXRwdXQtPnB1bGwoMCwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAg
ICAgICAvLyBTdW0sIHdpdGggdW5pdHktZ2Fpbi4KICAgICAgICAgc3VtbWluZ0J1cy0+c3VtRnJv
bSgqY29ubmVjdGlvbkJ1cyk7CkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBBdWRpb1BhcmFtOjpj
YWxjdWxhdGVGaW5hbFZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVl
cywgYm8KIHZvaWQgQXVkaW9QYXJhbTo6Y2FsY3VsYXRlVGltZWxpbmVWYWx1ZXMoZmxvYXQqIHZh
bHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMpCiB7CiAgICAgLy8gQ2FsY3VsYXRlIHZhbHVl
cyBmb3IgdGhpcyByZW5kZXIgcXVhbnR1bS4KLSAgICAvLyBOb3JtYWxseSBudW1iZXJPZlZhbHVl
cyB3aWxsIGVxdWFsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyAodGhlIHJlbmRl
ciBxdWFudHVtIHNpemUpLgorICAgIC8vIE5vcm1hbGx5IG51bWJlck9mVmFsdWVzIHdpbGwgZXF1
YWwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplICh0aGUgcmVuZGVyIHF1YW50dW0g
c2l6ZSkuCiAgICAgZG91YmxlIHNhbXBsZVJhdGUgPSBjb250ZXh0KCkuc2FtcGxlUmF0ZSgpOwog
ICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29udGV4dCgpLmN1cnJlbnRTYW1wbGVGcmFtZSgpOwog
ICAgIHNpemVfdCBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBudW1iZXJPZlZhbHVlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmNwcAppbmRleCBmMDlmOTk5NzAzOGZiMDZmMDhiYzM1ZDQxNGYyNTE4MGVlYmViZTA2Li4zMmZl
MjkzM2QxNjgxNjA2ZWFjN2UyYzVmZmU2MWYyMDYzZjBjMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBAIC0z
MjksNyArMzI5LDcgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVG
b3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXgKICAgICBkb3VibGUgc2FtcGxl
UmF0ZSA9IGNvbnRleHQuc2FtcGxlUmF0ZSgpOwogICAgIHNpemVfdCBzdGFydEZyYW1lID0gY29u
dGV4dC5jdXJyZW50U2FtcGxlRnJhbWUoKTsKICAgICBzaXplX3QgZW5kRnJhbWUgPSBzdGFydEZy
YW1lICsgMTsKLSAgICBkb3VibGUgY29udHJvbFJhdGUgPSBzYW1wbGVSYXRlIC8gQXVkaW9Ob2Rl
OjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzOyAvLyBvbmUgcGFyYW1ldGVyIGNoYW5nZSBwZXIgcmVu
ZGVyIHF1YW50dW0KKyAgICBkb3VibGUgY29udHJvbFJhdGUgPSBzYW1wbGVSYXRlIC8gQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOyAvLyBvbmUgcGFyYW1ldGVyIGNoYW5nZSBwZXIg
cmVuZGVyIHF1YW50dW0KICAgICB2YWx1ZSA9IHZhbHVlc0ZvclRpbWVSYW5nZShzdGFydEZyYW1l
LCBlbmRGcmFtZSwgZGVmYXVsdFZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUsICZ2YWx1ZSwgMSwg
c2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogICAgIHJldHVybiB2YWx1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmNwcAppbmRleCA2Mjc2YWY5OTBhMzhjOTYyY2E4OTYzNzRjYzk2ZTA0ZWY4ZWYw
ZDk2Li5kMWQ0MzMwNWUzYmUxMmM2M2NmYzY4MzAyNjAwY2E0MzMwNDNjOTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCkBAIC02NCw4ICs2NCw4IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlOjp1cGRhdGVTY2hlZHVsaW5nSW5mbyhzaXplX3QgcXVhbnR1bUZyYW1lU2l6ZSwgQXVk
CiAgICAgcXVhbnR1bUZyYW1lT2Zmc2V0ID0gMDsKICAgICBzdGFydEZyYW1lT2Zmc2V0ID0gMDsK
IAotICAgIEFTU0VSVChxdWFudHVtRnJhbWVTaXplID09IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1Np
emVJbkZyYW1lcyk7Ci0gICAgaWYgKHF1YW50dW1GcmFtZVNpemUgIT0gQXVkaW9Ob2RlOjpQcm9j
ZXNzaW5nU2l6ZUluRnJhbWVzKQorICAgIEFTU0VSVChxdWFudHVtRnJhbWVTaXplID09IEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgaWYgKHF1YW50dW1GcmFtZVNpemUg
IT0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogICAgICAgICByZXR1cm47CiAK
ICAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IHRoaXMtPnNhbXBsZVJhdGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAppbmRleCBi
OWJiNTMxZDU0NjBmZDkzNmFiNWI2MGI1ZGJlYWRlZjY0OTU0OTIxLi5jYjY3MWNhYWI2M2RlYjE4
OGQ4ODFlNDdiNjU3NTU1YWQ1OTVkYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJCaXF1YWREU1BLZXJuZWwuaCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiQmlxdWFkLmgiCiAjaW5jbHVkZSAiQmlxdWFkUHJvY2Vzc29yLmgiCiAjaW5j
bHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCkBAIC01OCwxMiArNTksMTIgQEAgdm9pZCBCaXF1YWRE
U1BLZXJuZWw6OnVwZGF0ZUNvZWZmaWNpZW50c0lmTmVjZXNzYXJ5KHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiB7CiAgICAgaWYgKGJpcXVhZFByb2Nlc3NvcigpLT5maWx0ZXJDb2VmZmljaWVudHNE
aXJ0eSgpKSB7CiAgICAgICAgIGlmIChiaXF1YWRQcm9jZXNzb3IoKS0+aGFzU2FtcGxlQWNjdXJh
dGVWYWx1ZXMoKSAmJiBiaXF1YWRQcm9jZXNzb3IoKS0+c2hvdWxkVXNlQVJhdGUoKSkgewotICAg
ICAgICAgICAgZmxvYXQgY3V0b2ZmRnJlcXVlbmN5W0JpcXVhZDo6TWF4RnJhbWVzVG9Qcm9jZXNz
XTsKLSAgICAgICAgICAgIGZsb2F0IHFbQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3NdOwotICAg
ICAgICAgICAgZmxvYXQgZ2FpbltCaXF1YWQ6Ok1heEZyYW1lc1RvUHJvY2Vzc107Ci0gICAgICAg
ICAgICBmbG9hdCBkZXR1bmVbQmlxdWFkOjpNYXhGcmFtZXNUb1Byb2Nlc3NdOyAvLyBpbiBDZW50
cworICAgICAgICAgICAgZmxvYXQgY3V0b2ZmRnJlcXVlbmN5W0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBxW0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBnYWluW0F1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZV07CisgICAgICAgICAgICBmbG9hdCBkZXR1bmVbQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplXTsgLy8gaW4gQ2VudHMKIAotICAgICAgICAgICAgQVNTRVJU
KGZyYW1lc1RvUHJvY2VzcyA8PSBCaXF1YWQ6Ok1heEZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSk7CiAKICAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIxKCku
Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMoY3V0b2ZmRnJlcXVlbmN5LCBmcmFtZXNUb1By
b2Nlc3MpOwogICAgICAgICAgICAgYmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRlcjIoKS5jYWxj
dWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhxLCBmcmFtZXNUb1Byb2Nlc3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCmluZGV4
IDk1N2ZjYTk4MzYyZDQ4OWUyMGY5YjBmZTI1NzI2M2RhZjBkNjVhZDAuLmYzMjI1ZTE3MmJkMzYw
MGU2OTFiODUyNmVlNzNjYTJhNTQ1OTY4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKQEAgLTExMCw4ICsxMTAsOCBAQCB2
b2lkIEJpcXVhZFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlLCBBdWRp
b0J1cyogZGVzdGluYXRpb24sIHNpegogCiB2b2lkIEJpcXVhZFByb2Nlc3Nvcjo6cHJvY2Vzc09u
bHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVl
c1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNU
b1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9h
dCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQo
ZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAK
ICAgICBtX3BhcmFtZXRlcjEtPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywg
ZnJhbWVzVG9Qcm9jZXNzKTsKICAgICBtX3BhcmFtZXRlcjItPmNhbGN1bGF0ZVNhbXBsZUFjY3Vy
YXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcAppbmRleCAwZTQy
N2UyMGY0MzE5NzAwMTdmZGU2NGQzMDc1Njc3NWUyNGYxYWZkLi40MzQwZTk1YTE4NmViOWE2MzU4
MGFhZDhjMDM1YWE2ZjMzMDJmZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Db25zdGFudFNvdXJjZU5vZGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAK
ICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCisj
aW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDb25zdGFudFNvdXJjZU9wdGlv
bnMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC01NSw2ICs1Niw3
IEBAIEV4Y2VwdGlvbk9yPFJlZjxDb25zdGFudFNvdXJjZU5vZGU+PiBDb25zdGFudFNvdXJjZU5v
ZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0CiBDb25zdGFudFNvdXJjZU5vZGU6OkNvbnN0YW50
U291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBvZmZzZXQpCiAgICAg
OiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoY29udGV4dCkKICAgICAsIG1fb2Zmc2V0KEF1ZGlv
UGFyYW06OmNyZWF0ZShjb250ZXh0LCAib2Zmc2V0Il9zLCBvZmZzZXQsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9zYW1wbGVBY2N1cmF0ZVZhbHVl
cyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiB7CiAgICAgc2V0Tm9kZVR5cGUo
Tm9kZVR5cGVDb25zdGFudCk7CiAgICAgYWRkT3V0cHV0KG1ha2VVbmlxdWU8QXVkaW9Ob2RlT3V0
cHV0Pih0aGlzLCAxKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnN0YW50U291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Db25zdGFudFNvdXJjZU5vZGUuaAppbmRleCBlODMwZTRjNDQzYTI4MGQxYzM3ZmE0NGI5Y2U2
NTg0OTk2MDNkOWFiLi5iNmE2NzJmN2ZlM2ZhYTIyMmE1MzhhZTQ5YmFiY2ZjMzg5MzdmMDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNl
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3Vy
Y2VOb2RlLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXVkaW9QYXJhbT4g
bV9vZmZzZXQ7CiAgICAgCiAgICAgLy8gU3RvcmVzIHNhbXBsZS1hY2N1cmF0ZSB2YWx1ZXMgY2Fs
Y3VsYXRlZC4KLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9zYW1wbGVBY2N1cmF0ZVZhbHVlcyB7IEF1
ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9OworICAgIEF1ZGlvRmxvYXRBcnJheSBt
X3NhbXBsZUFjY3VyYXRlVmFsdWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5k
ZXggNjQ0ODA3YWY4YWE2MTFmYzIxYjMwZDg2NTAwMmJiZWM4YTVlZmZlMi4uNmQ0NzYyMjUzNTdk
ZmZjNmYyNTc0YmJiZTY1YWFiMzBmZDJmMjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1
ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiUmV2ZXJiLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAt
MTQ2LDcgKzE0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENvbnZvbHZlck5vZGU6OnNldEJ1ZmZl
cihSZWZQdHI8QXVkaW9CdWZmZXI+JiYgYnVmZmVyKQogCiAgICAgLy8gQ3JlYXRlIHRoZSByZXZl
cmIgd2l0aCB0aGUgZ2l2ZW4gaW1wdWxzZSByZXNwb25zZS4KICAgICBib29sIHVzZUJhY2tncm91
bmRUaHJlYWRzID0gIWNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCk7Ci0gICAgYXV0byByZXZl
cmIgPSBtYWtlVW5pcXVlPFJldmVyYj4oYnVmZmVyQnVzLmdldCgpLCBBdWRpb05vZGU6OlByb2Nl
c3NpbmdTaXplSW5GcmFtZXMsIE1heEZGVFNpemUsIHVzZUJhY2tncm91bmRUaHJlYWRzLCBtX25v
cm1hbGl6ZSk7CisgICAgYXV0byByZXZlcmIgPSBtYWtlVW5pcXVlPFJldmVyYj4oYnVmZmVyQnVz
LmdldCgpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIE1heEZGVFNpemUsIHVz
ZUJhY2tncm91bmRUaHJlYWRzLCBtX25vcm1hbGl6ZSk7CiAKICAgICB7CiAgICAgICAgIC8vIFRo
ZSBjb250ZXh0IG11c3QgYmUgbG9ja2VkIHNpbmNlIGNoYW5naW5nIHRoZSBidWZmZXIgY2FuIHJl
LWNvbmZpZ3VyZSB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIHRoYXQgYXJlIG91dHB1dC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKaW5k
ZXggM2M3Yjc4MTRhYzM0ZDRlMmE0MGU3ZjE5NWIxMmM3MzNmMmNkYmU3YS4uYzIyMDJjNmIxYWI3
MTMxYzM0MjBjZDE1Nzc1MmM1N2VjYjVkYmM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwoRGVsYXlQ
cm9jZXNzb3IqIHByb2Nlc3NvcikKICAgICA6IEF1ZGlvRFNQS2VybmVsKHByb2Nlc3NvcikKLSAg
ICAsIG1fZGVsYXlUaW1lcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpCisgICAg
LCBtX2RlbGF5VGltZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAg
IEFTU0VSVChwcm9jZXNzb3IgJiYgcHJvY2Vzc29yLT5zYW1wbGVSYXRlKCkgPiAwKTsKICAgICBp
ZiAoIShwcm9jZXNzb3IgJiYgcHJvY2Vzc29yLT5zYW1wbGVSYXRlKCkgPiAwKSkKQEAgLTEzOCw4
ICsxMzgsOCBAQCB2b2lkIERlbGF5RFNQS2VybmVsOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKCFkZWxheVByb2Nlc3NvcigpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBmbG9hdCB2YWx1ZXNbQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUlu
RnJhbWVzXTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lcyk7CisgICAgZmxvYXQgdmFsdWVzW0F1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZV07CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgZGVsYXlQcm9jZXNzb3IoKS0+ZGVsYXlU
aW1lKCkuY2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFtZXNUb1Byb2Nl
c3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5h
bWljc0NvbXByZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAKaW5kZXggOGE0MWNmOGQ0ODBhMDkzODdlYTNhYzk2
NjA0NDBlNjQxMGFmZjMyNy4uNTk4M2M2ZGIyMmFlZjMyYjFhY2I2NGQ3NjNhZWQ5MmZkMTI2ZWE1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0Nv
bXByZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXVk
aW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRp
b05vZGVPdXRwdXQuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkR5
bmFtaWNzQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYktpdER5bmFtaWNzQ29tcHJlc3Nvck5v
ZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtMTA1LDggKzEwNiw4
IEBAIHZvaWQgRHluYW1pY3NDb21wcmVzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogCiB2b2lkIER5bmFtaWNzQ29tcHJlc3Nvck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9Q
YXJhbXMoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBmbG9hdCB2YWx1ZXNbQXVkaW9O
b2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNz
IDw9IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CisgICAgZmxvYXQgdmFsdWVz
W0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgQVNTRVJUKGZyYW1lc1Rv
UHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgbV90
aHJlc2hvbGQtPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVzVG9Q
cm9jZXNzKTsKICAgICBtX2tuZWUtPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVl
cywgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vR2Fpbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9H
YWluTm9kZS5jcHAKaW5kZXggNDRmZWI4ODNjZTMyMjZiNTBkNmRmNjQ0MTg3NzU3MWJiODU4NjI1
Ni4uNDg2ODI2ZWM0NjQyOTQzOTlkZmRmNDNlZDMzMWU2MzhiYjUyZjAxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPEdhaW5Ob2RlPj4gR2Fpbk5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBHYWkKIAogR2Fpbk5vZGU6OkdhaW5Ob2RlKEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleHQpCiAgICAgOiBBdWRpb05vZGUoY29udGV4dCkKLSAgICAsIG1fc2FtcGxl
QWNjdXJhdGVHYWluVmFsdWVzKEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykgLy8g
RklYTUU6IGNhbiBwcm9iYWJseSBzaGFyZSB0ZW1wIGJ1ZmZlciBpbiBjb250ZXh0CisgICAgLCBt
X3NhbXBsZUFjY3VyYXRlR2FpblZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpIC8vIEZJWE1FOiBjYW4gcHJvYmFibHkgc2hhcmUgdGVtcCBidWZmZXIgaW4gY29udGV4dAog
ICAgICwgbV9nYWluKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMS4wLCAt
RkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKIHsKICAgICBzZXROb2Rl
VHlwZShOb2RlVHlwZUdhaW4pOwpAQCAtMTA0LDggKzEwNCw4IEBAIHZvaWQgR2Fpbk5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIAogdm9pZCBHYWluTm9kZTo6cHJvY2Vzc09u
bHlBdWRpb1BhcmFtcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVl
c1tBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNU
b1Byb2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9h
dCB2YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQo
ZnJhbWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAK
ICAgICBtX2dhaW4tPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHZhbHVlcywgZnJhbWVz
VG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCmluZGV4IDgwOTZjOWEwY2NmMDk4MjM4ODUxNzkw
NjMzNDAwNjlhZTEyNGVkZTguLjI0ZmEwNDM5OTRiOGY1YWFlOGVhNDdlMDdiMzgzZmNhOGI1MTUy
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlv
Q29udGV4dDo6c3VzcGVuZE9mZmxpbmVSZW5kZXJpbmcoZG91YmxlIHN1c3BlbmRUaW1lLCBSZWY8
RGVmZXJyCiAgICAgfQogCiAgICAgc2l6ZV90IGZyYW1lID0gQXVkaW9VdGlsaXRpZXM6OnRpbWVU
b1NhbXBsZUZyYW1lKHN1c3BlbmRUaW1lLCBzYW1wbGVSYXRlKCkpOwotICAgIGZyYW1lID0gT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXJRdWFudHVtU2l6ZSAqICgoZnJhbWUgKyBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlclF1YW50dW1TaXplIC0gMSkgLyBPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBmcmFtZSA9
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAqICgoZnJhbWUgKyBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUgLSAxKSAvIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSk7CiAgICAgaWYgKGZyYW1lIDwgY3VycmVudFNhbXBsZUZyYW1lKCkpIHsKICAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiU3VzcGVu
c2lvbiBmcmFtZSBpcyBlYXJsaWVyIHRoYW4gY3VycmVudCBmcmFtZSJfcyB9KTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGMxODFhYmZmODdjMzQ3
Y2YwZmE0MDE1YTk1MjRkYThjYzU5Y2YzMjguLmZhYTMzNjUyZWRiMzc2M2IzOWMxZjZiYjQ3ZjZi
YjI0ZmEwM2M0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0Lmgi
CisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2Fk
ZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KQEAgLTM4LDggKzM5LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk7Ci0gICAgCi1j
b25zdCBzaXplX3QgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXJRdWFudHVtU2l6
ZSA9IDEyODsKIAogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZD
aGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCkKICAgICA6IEF1ZGlv
RGVzdGluYXRpb25Ob2RlKGNvbnRleHQpCkBAIC00Nyw3ICs0Niw3IEBAIE9mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRlCiAgICAgLCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiAg
ICAgLCBtX2ZyYW1lc1RvUHJvY2VzcyhtX3JlbmRlclRhcmdldCA/IG1fcmVuZGVyVGFyZ2V0LT5s
ZW5ndGgoKSA6IDApCiB7Ci0gICAgbV9yZW5kZXJCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJl
ck9mQ2hhbm5lbHMsIHJlbmRlclF1YW50dW1TaXplKTsKKyAgICBtX3JlbmRlckJ1cyA9IEF1ZGlv
QnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplKTsKICAgICBpbml0aWFsaXplRGVmYXVsdE5vZGVPcHRpb25zKG51bWJlck9mQ2hhbm5l
bHMsIENoYW5uZWxDb3VudE1vZGU6OkV4cGxpY2l0LCBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNw
ZWFrZXJzKTsKIH0KIApAQCAtMTM0LDcgKzEzMyw3IEBAIGF1dG8gT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyKCkgLT4gT2ZmbGluZVJlbmRlclJlc3VsdAogICAgIGlm
ICghY2hhbm5lbHNNYXRjaCkKICAgICAgICAgcmV0dXJuIE9mZmxpbmVSZW5kZXJSZXN1bHQ6OkZh
aWx1cmU7CiAKLSAgICBib29sIGlzUmVuZGVyQnVzQWxsb2NhdGVkID0gbV9yZW5kZXJCdXMtPmxl
bmd0aCgpID49IHJlbmRlclF1YW50dW1TaXplOworICAgIGJvb2wgaXNSZW5kZXJCdXNBbGxvY2F0
ZWQgPSBtX3JlbmRlckJ1cy0+bGVuZ3RoKCkgPj0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplOwogICAgIEFTU0VSVChpc1JlbmRlckJ1c0FsbG9jYXRlZCk7CiAgICAgaWYgKCFpc1Jl
bmRlckJ1c0FsbG9jYXRlZCkKICAgICAgICAgcmV0dXJuIE9mZmxpbmVSZW5kZXJSZXN1bHQ6OkZh
aWx1cmU7CkBAIC0xNDgsOSArMTQ3LDkgQEAgYXV0byBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGU6Om9mZmxpbmVSZW5kZXIoKSAtPiBPZmZsaW5lUmVuZGVyUmVzdWx0CiAgICAgICAgICAgICBy
ZXR1cm4gT2ZmbGluZVJlbmRlclJlc3VsdDo6U3VzcGVuZGVkOwogCiAgICAgICAgIC8vIFJlbmRl
ciBvbmUgcmVuZGVyIHF1YW50dW0uCi0gICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQo
KSwgcmVuZGVyUXVhbnR1bVNpemUsIHsgfSk7CisgICAgICAgIHJlbmRlcigwLCBtX3JlbmRlckJ1
cy5nZXQoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCB7IH0pOwogICAgICAg
ICAKLSAgICAgICAgc2l6ZV90IGZyYW1lc0F2YWlsYWJsZVRvQ29weSA9IHN0ZDo6bWluKG1fZnJh
bWVzVG9Qcm9jZXNzLCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIHNpemVfdCBmcmFtZXNB
dmFpbGFibGVUb0NvcHkgPSBzdGQ6Om1pbihtX2ZyYW1lc1RvUHJvY2VzcywgQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQg
Y2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgbnVtYmVyT2ZDaGFubmVsczsgKytjaGFu
bmVsSW5kZXgpIHsKICAgICAgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2UgPSBtX3JlbmRlckJ1
cy0+Y2hhbm5lbChjaGFubmVsSW5kZXgpLT5kYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aAppbmRleCA1YzJlYmUwNmZmYWE2NTRiNzI2OWU1NThhOTQxZGYwYjZkZWQ0ZGE3Li42ZTQ5Njdl
NzZhMzZjOTQwNmNiMjFkZmJmMTZjMThiNzVlODY5M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlLmgKQEAgLTU0LDggKzU0LDYgQEAgcHVibGljOgogCiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVuZGVyVGFyZ2V0LT5zYW1wbGVSYXRlKCk7IH0KIAot
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcmVuZGVyUXVhbnR1bVNpemU7Ci0KIHByaXZhdGU6CiAg
ICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9y
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2Rl
LmNwcAppbmRleCAwNDhiOWI0ODRhMmM4NDE5ZGRhODNlYjgxYThhYzNiZDIxZWQ5MjM0Li4xMzQx
YTJkNDk4MDJjZjU2YmU2NjU0YmYxYTYzMGUwOGQ1Yzc2NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9QYXJh
bS5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGVyaW9kaWNXYXZl
LmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CkBAIC05NCw2ICs5NSw4IEBAIE9zY2lsbGF0b3JOb2RlOjpPc2NpbGxhdG9yTm9kZShC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBPc2NpbGxhdG9yT3B0aW9uCiAgICAgOiBB
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoY29udGV4dCkKICAgICAsIG1fZnJlcXVlbmN5KEF1ZGlv
UGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJlcXVlbmN5Il9zLCBvcHRpb25zLmZyZXF1ZW5jeSwg
LWNvbnRleHQuc2FtcGxlUmF0ZSgpIC8gMiwgY29udGV4dC5zYW1wbGVSYXRlKCkgLyAyLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQogICAgICwgbV9kZXR1bmUoQXVkaW9QYXJhbTo6Y3JlYXRlKGNv
bnRleHQsICJkZXR1bmUiX3MsIG9wdGlvbnMuZGV0dW5lLCAtMTIwMCAqIGxvZzJmKHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIDEyMDAgKiBsb2cyZihzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9waGFz
ZUluY3JlbWVudHMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV9k
ZXR1bmVWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIHNl
dE5vZGVUeXBlKE5vZGVUeXBlT3NjaWxsYXRvcik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmgKaW5kZXggNDQyYTBlNWM3MDhkZTNl
MjVjNThiNzE5ODg5M2Y0MjdjN2YwYzgyZi4uZDdiNmI1ZTI1Mjc1ODc4ZmEwYzc3NDdhZDhiMDQ3
Yzg5NzQ3NTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
c2NpbGxhdG9yTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3Nj
aWxsYXRvck5vZGUuaApAQCAtODgsOCArODgsOCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTG9j
ayBtX3Byb2Nlc3NNdXRleDsKIAogICAgIC8vIFN0b3JlcyBzYW1wbGUtYWNjdXJhdGUgdmFsdWVz
IGNhbGN1bGF0ZWQgYWNjb3JkaW5nIHRvIGZyZXF1ZW5jeSBhbmQgZGV0dW5lLgotICAgIEF1ZGlv
RmxvYXRBcnJheSBtX3BoYXNlSW5jcmVtZW50cyB7IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJ
bkZyYW1lcyB9OwotICAgIEF1ZGlvRmxvYXRBcnJheSBtX2RldHVuZVZhbHVlcyB7IEF1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9OworICAgIEF1ZGlvRmxvYXRBcnJheSBtX3BoYXNl
SW5jcmVtZW50czsKKyAgICBBdWRpb0Zsb2F0QXJyYXkgbV9kZXR1bmVWYWx1ZXM7CiAgICAgCiAg
ICAgUmVmUHRyPFBlcmlvZGljV2F2ZT4gbV9wZXJpb2RpY1dhdmU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggMDQ4NTdhY2RmMjYx
ODlkYWYwODRhNWNlMmZiZTY2OGQ2OGM0ZjBmZi4uMTQ1NTJmZWY5MjgzNjU3MjBmNjc3MDU4MzU0
NzlmZGZmYzRhZmY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5lck5vZGUuY3BwCkBAIC0xODMsOCArMTgzLDggQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAKIHZvaWQgUGFubmVyTm9kZTo6cHJvY2Vzc09ubHlB
dWRpb1BhcmFtcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGZsb2F0IHZhbHVlc1tB
dWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIEFTU0VSVChmcmFtZXNUb1By
b2Nlc3MgPD0gQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKKyAgICBmbG9hdCB2
YWx1ZXNbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsKKyAgICBBU1NFUlQoZnJh
bWVzVG9Qcm9jZXNzIDw9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAg
ICBtX3Bvc2l0aW9uWC0+Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXModmFsdWVzLCBmcmFt
ZXNUb1Byb2Nlc3MpOwogICAgIG1fcG9zaXRpb25ZLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZh
bHVlcyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7CkBAIC0yMDEsMTMgKzIwMSwxMyBAQCB2b2lk
IFBhbm5lck5vZGU6OnByb2Nlc3NTYW1wbGVBY2N1cmF0ZVZhbHVlcyhBdWRpb0J1cyogZGVzdGlu
YXRpb24sIGNvbnN0IEF1ZGlvQgogewogICAgIC8vIEdldCB0aGUgc2FtcGxlIGFjY3VyYXRlIHZh
bHVlcyBmcm9tIGFsbCBvZiB0aGUgQXVkaW9QYXJhbXMsIGluY2x1ZGluZyB0aGUKICAgICAvLyB2
YWx1ZXMgZnJvbSB0aGUgQXVkaW9MaXN0ZW5lci4KLSAgICBmbG9hdCBwYW5uZXJYW0F1ZGlvTm9k
ZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107Ci0gICAgZmxvYXQgcGFubmVyWVtBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIGZsb2F0IHBhbm5lclpbQXVkaW9Ob2RlOjpQ
cm9jZXNzaW5nU2l6ZUluRnJhbWVzXTsKKyAgICBmbG9hdCBwYW5uZXJYW0F1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgZmxvYXQgcGFubmVyWVtBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZsb2F0IHBhbm5lclpbQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplXTsKIAotICAgIGZsb2F0IG9yaWVudGF0aW9uWFtBdWRpb05vZGU6OlBy
b2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIGZsb2F0IG9yaWVudGF0aW9uWVtBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIGZsb2F0IG9yaWVudGF0aW9uWltBdWRpb05v
ZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOworICAgIGZsb2F0IG9yaWVudGF0aW9uWFtBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZsb2F0IG9yaWVudGF0aW9uWVtB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZsb2F0IG9yaWVudGF0aW9u
WltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOwogCiAgICAgbV9wb3NpdGlvblgt
PmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHBhbm5lclgsIGZyYW1lc1RvUHJvY2Vzcyk7
CiAgICAgbV9wb3NpdGlvblktPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHBhbm5lclks
IGZyYW1lc1RvUHJvY2Vzcyk7CkBAIC0yMTcsMjIgKzIxNywyMiBAQCB2b2lkIFBhbm5lck5vZGU6
OnByb2Nlc3NTYW1wbGVBY2N1cmF0ZVZhbHVlcyhBdWRpb0J1cyogZGVzdGluYXRpb24sIGNvbnN0
IEF1ZGlvQgogICAgIG1fb3JpZW50YXRpb25aLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVl
cyhvcmllbnRhdGlvblosIGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICAvLyBHZXQgdGhlIGF1dG9t
YXRpb24gdmFsdWVzIGZyb20gdGhlIGxpc3RlbmVyLgotICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5l
clggPSBsaXN0ZW5lcigpLnBvc2l0aW9uWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXpl
SW5GcmFtZXMpOwotICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclkgPSBsaXN0ZW5lcigpLnBvc2l0
aW9uWVZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwotICAgIGNvbnN0
IGZsb2F0KiBsaXN0ZW5lclogPSBsaXN0ZW5lcigpLnBvc2l0aW9uWlZhbHVlcyhBdWRpb05vZGU6
OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOworICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclggPSBs
aXN0ZW5lcigpLnBvc2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpOworICAgIGNvbnN0IGZsb2F0KiBsaXN0ZW5lclkgPSBsaXN0ZW5lcigpLnBvc2l0aW9uWVZh
bHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZsb2F0
KiBsaXN0ZW5lclogPSBsaXN0ZW5lcigpLnBvc2l0aW9uWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUpOwogCi0gICAgY29uc3QgZmxvYXQqIGZvcndhcmRYID0gbGlzdGVu
ZXIoKS5mb3J3YXJkWFZhbHVlcyhBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpOwot
ICAgIGNvbnN0IGZsb2F0KiBmb3J3YXJkWSA9IGxpc3RlbmVyKCkuZm9yd2FyZFlWYWx1ZXMoQXVk
aW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKLSAgICBjb25zdCBmbG9hdCogZm9yd2Fy
ZFogPSBsaXN0ZW5lcigpLmZvcndhcmRaVmFsdWVzKEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJ
bkZyYW1lcyk7CisgICAgY29uc3QgZmxvYXQqIGZvcndhcmRYID0gbGlzdGVuZXIoKS5mb3J3YXJk
WFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIGNvbnN0IGZs
b2F0KiBmb3J3YXJkWSA9IGxpc3RlbmVyKCkuZm9yd2FyZFlWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBjb25zdCBmbG9hdCogZm9yd2FyZFogPSBsaXN0ZW5l
cigpLmZvcndhcmRaVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAK
LSAgICBjb25zdCBmbG9hdCogdXBYID0gbGlzdGVuZXIoKS51cFhWYWx1ZXMoQXVkaW9Ob2RlOjpQ
cm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKLSAgICBjb25zdCBmbG9hdCogdXBZID0gbGlzdGVuZXIo
KS51cFlWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKLSAgICBjb25z
dCBmbG9hdCogdXBaID0gbGlzdGVuZXIoKS51cFpWYWx1ZXMoQXVkaW9Ob2RlOjpQcm9jZXNzaW5n
U2l6ZUluRnJhbWVzKTsKKyAgICBjb25zdCBmbG9hdCogdXBYID0gbGlzdGVuZXIoKS51cFhWYWx1
ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBjb25zdCBmbG9hdCog
dXBZID0gbGlzdGVuZXIoKS51cFlWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplKTsKKyAgICBjb25zdCBmbG9hdCogdXBaID0gbGlzdGVuZXIoKS51cFpWYWx1ZXMoQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIC8vIENvbXB1dGUgdGhlIGF6aW11
dGgsIGVsZXZhdGlvbiwgYW5kIHRvdGFsIGdhaW5zIGZvciBlYWNoIHBvc2l0aW9uLgotICAgIGRv
dWJsZSBhemltdXRoW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107Ci0gICAgZG91
YmxlIGVsZXZhdGlvbltBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOwotICAgIGZs
b2F0IHRvdGFsR2FpbltBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXNdOworICAgIGRv
dWJsZSBhemltdXRoW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07CisgICAgZG91
YmxlIGVsZXZhdGlvbltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOworICAgIGZs
b2F0IHRvdGFsR2FpbltBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemVdOwogCiAgICAg
Zm9yIChzaXplX3QgayA9IDA7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7ICsraykgewogICAgICAgICBG
bG9hdFBvaW50M0QgcGFubmVyUG9zaXRpb24ocGFubmVyWFtrXSwgcGFubmVyWVtrXSwgcGFubmVy
WltrXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGlt
ZUFuYWx5c2VyLmNwcAppbmRleCA1MTNhMDhiMmNiNGM3ZGNiZDA2M2U2NGFlMDIwYmZhOWU5YzBh
OTE4Li4yOThkNTFmZmVjOTUxNDlkZDAxYWJkMTg4YjEzZmQ1OGNlNDI5ZWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgY29uc3QgdW5zaWduZWQgUmVhbHRpbWVBbmFseXNlcjo6SW5wdXRC
dWZmZXJTaXplID0gUmVhbHRpbWVBbmFseXNlcjo6TWF4RkZUU2l6ZQogUmVhbHRpbWVBbmFseXNl
cjo6UmVhbHRpbWVBbmFseXNlcigpCiAgICAgOiBtX2lucHV0QnVmZmVyKElucHV0QnVmZmVyU2l6
ZSkKICAgICAsIG1fd3JpdGVJbmRleCgwKQotICAgICwgbV9kb3dubWl4QnVzKEF1ZGlvQnVzOjpj
cmVhdGUoMSwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKSkKKyAgICAsIG1fZG93
bm1peEJ1cyhBdWRpb0J1czo6Y3JlYXRlKDEsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSkpCiAgICAgLCBtX2ZmdFNpemUoRGVmYXVsdEZGVFNpemUpCiAgICAgLCBtX21hZ25pdHVk
ZUJ1ZmZlcihEZWZhdWx0RkZUU2l6ZSAvIDIpCiAgICAgLCBtX3Ntb290aGluZ1RpbWVDb25zdGFu
dChEZWZhdWx0U21vb3RoaW5nVGltZUNvbnN0YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYjg2OTc2
YzdhOGM3MWQyNDMwNWNkNWViMTIyYmVmYWU1MGFjMWYyYi4uN2ZiZDY0M2JlYjE4MTI5OTY0YjI0
OTdkYzA1NThkNjY4NTNlODI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIK
ICNpbmNsdWRlICJBdWRpb1Byb2Nlc3NpbmdFdmVudC5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CkBAIC01OCwxMSArNTksMTEg
QEAgU2NyaXB0UHJvY2Vzc29yTm9kZTo6U2NyaXB0UHJvY2Vzc29yTm9kZShCYXNlQXVkaW9Db250
ZXh0JiBjb250ZXh0LCBzaXplX3QgYnVmZmUKICAgICAsIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXgo
MCkKICAgICAsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzKG51bWJlck9mSW5wdXRDaGFubmVscykK
ICAgICAsIG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyhudW1iZXJPZk91dHB1dENoYW5uZWxzKQot
ICAgICwgbV9pbnRlcm5hbElucHV0QnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMsIGZhbHNlKSkKKyAgICAs
IG1faW50ZXJuYWxJbnB1dEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVs
cywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBmYWxzZSkpCiB7CiAgICAgLy8g
UmVnYXJkbGVzcyBvZiB0aGUgYWxsb3dlZCBidWZmZXIgc2l6ZXMsIHdlIHN0aWxsIG5lZWQgdG8g
cHJvY2VzcyBhdCB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIEF1ZGlvTm9kZS4KLSAgICBpZiAobV9i
dWZmZXJTaXplIDwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKQotICAgICAgICBt
X2J1ZmZlclNpemUgPSBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXM7CisgICAgaWYg
KG1fYnVmZmVyU2l6ZSA8IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKKyAgICAg
ICAgbV9idWZmZXJTaXplID0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogCiAg
ICAgQVNTRVJUKG51bWJlck9mSW5wdXRDaGFubmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJl
ck9mQ2hhbm5lbHMoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vU3RlcmVvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1N0ZXJlb1Bhbm5lck5vZGUuY3BwCmluZGV4IDhjOWI5NmY0ZDAzMjk4MDM3MDYyMWVmZGNl
MmQxN2E1NjdkNGI4MGMuLjhkYjY5MTViYjQxY2I0MTA0YjI0NzQzZGRjNzY5YmUzNmZjOWJhMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVy
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5u
ZXJOb2RlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5j
bHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKKyNp
bmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDYgKzU4LDcgQEAgRXhjZXB0aW9uT3I8
UmVmPFN0ZXJlb1Bhbm5lck5vZGU+PiBTdGVyZW9QYW5uZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlv
Q29udGV4dCYgY28KIFN0ZXJlb1Bhbm5lck5vZGU6OlN0ZXJlb1Bhbm5lck5vZGUoQmFzZUF1ZGlv
Q29udGV4dCYgY29udGV4dCwgZmxvYXQgcGFuKQogICAgIDogQXVkaW9Ob2RlKGNvbnRleHQpCiAg
ICAgLCBtX3BhbihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBhbiJfcywgcGFuLCAtMSwg
MSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fc2FtcGxlQWNjdXJhdGVWYWx1ZXMo
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQogewogICAgIHNldE5vZGVUeXBlKE5v
ZGVUeXBlU3RlcmVvKTsKICAgICAKQEAgLTEwMiw4ICsxMDQsOCBAQCB2b2lkIFN0ZXJlb1Bhbm5l
ck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIAogdm9pZCBTdGVyZW9QYW5u
ZXJOb2RlOjpwcm9jZXNzT25seUF1ZGlvUGFyYW1zKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7
Ci0gICAgZmxvYXQgdmFsdWVzW0F1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lc107Ci0g
ICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5G
cmFtZXMpOworICAgIGZsb2F0IHZhbHVlc1tBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emVdOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKTsKIAogICAgIG1fcGFuLT5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVl
cyh2YWx1ZXMsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1N0ZXJlb1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU3RlcmVvUGFubmVyTm9kZS5oCmluZGV4IDg0NDYxNDE2N2FkOGQwMjll
NzhiMWRhM2NiYTg1MWZkODVmNWI1NWEuLmI3OTMwMDkzMjNmOTkxMDBiYjNjZmVjMTI3MmY2Y2Nm
MWU5Njc2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3Rl
cmVvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU3Rl
cmVvUGFubmVyTm9kZS5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGxh
dGVuY3lUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIAogICAgIFJlZjxBdWRp
b1BhcmFtPiBtX3BhbjsKLSAgICBBdWRpb0Zsb2F0QXJyYXkgbV9zYW1wbGVBY2N1cmF0ZVZhbHVl
cyB7IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyB9OworICAgIEF1ZGlvRmxvYXRB
cnJheSBtX3NhbXBsZUFjY3VyYXRlVmFsdWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVy
RFNQS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBl
ckRTUEtlcm5lbC5jcHAKaW5kZXggZGY1ODM2Y2JkYmE3ZmY2MmE1ZjBlMTdmNzc4MmNhNTE0YjRk
MWEwNi4uMGRhODM1NzcwZjdmOGI3NzdmZjc4NDNjY2I4YzgzZTYwOTU1NTFiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJEU1BLZXJu
ZWwuY3BwCkBAIC0yOCwxMyArMjgsMTIgQEAKIAogI2luY2x1ZGUgIldhdmVTaGFwZXJEU1BLZXJu
ZWwuaCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiV2F2ZVNoYXBl
clByb2Nlc3Nvci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAotY29uc3QgdW5zaWduZWQgUmVu
ZGVyaW5nUXVhbnR1bSA9IDEyODsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXYXZlU2hhcGVy
RFNQS2VybmVsOjpXYXZlU2hhcGVyRFNQS2VybmVsKFdhdmVTaGFwZXJQcm9jZXNzb3IqIHByb2Nl
c3NvcikKQEAgLTQ5LDEyICs0OCwxMiBAQCB2b2lkIFdhdmVTaGFwZXJEU1BLZXJuZWw6OmxhenlJ
bml0aWFsaXplT3ZlcnNhbXBsaW5nKCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAg
ICAgaWYgKCFtX3RlbXBCdWZmZXIpIHsKLSAgICAgICAgbV90ZW1wQnVmZmVyID0gbWFrZVVuaXF1
ZTxBdWRpb0Zsb2F0QXJyYXk+KFJlbmRlcmluZ1F1YW50dW0gKiAyKTsKLSAgICAgICAgbV90ZW1w
QnVmZmVyMiA9IG1ha2VVbmlxdWU8QXVkaW9GbG9hdEFycmF5PihSZW5kZXJpbmdRdWFudHVtICog
NCk7Ci0gICAgICAgIG1fdXBTYW1wbGVyID0gbWFrZVVuaXF1ZTxVcFNhbXBsZXI+KFJlbmRlcmlu
Z1F1YW50dW0pOwotICAgICAgICBtX2Rvd25TYW1wbGVyID0gbWFrZVVuaXF1ZTxEb3duU2FtcGxl
cj4oUmVuZGVyaW5nUXVhbnR1bSAqIDIpOwotICAgICAgICBtX3VwU2FtcGxlcjIgPSBtYWtlVW5p
cXVlPFVwU2FtcGxlcj4oUmVuZGVyaW5nUXVhbnR1bSAqIDIpOwotICAgICAgICBtX2Rvd25TYW1w
bGVyMiA9IG1ha2VVbmlxdWU8RG93blNhbXBsZXI+KFJlbmRlcmluZ1F1YW50dW0gKiA0KTsKKyAg
ICAgICAgbV90ZW1wQnVmZmVyID0gbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSAqIDIpOworICAgICAgICBtX3RlbXBCdWZmZXIyID0g
bWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVt
U2l6ZSAqIDQpOworICAgICAgICBtX3VwU2FtcGxlciA9IG1ha2VVbmlxdWU8VXBTYW1wbGVyPihB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgICAgICBtX2Rvd25TYW1wbGVy
ID0gbWFrZVVuaXF1ZTxEb3duU2FtcGxlcj4oQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplICogMik7CisgICAgICAgIG1fdXBTYW1wbGVyMiA9IG1ha2VVbmlxdWU8VXBTYW1wbGVyPihB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUgKiAyKTsKKyAgICAgICAgbV9kb3duU2Ft
cGxlcjIgPSBtYWtlVW5pcXVlPERvd25TYW1wbGVyPihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUgKiA0KTsKICAgICB9CiB9CiAKQEAgLTExNyw3ICsxMTYsNyBAQCB2b2lkIFdhdmVT
aGFwZXJEU1BLZXJuZWw6OnByb2Nlc3NDdXJ2ZShjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCog
ZGVzdGluYXRpb24sCiAKIHZvaWQgV2F2ZVNoYXBlckRTUEtlcm5lbDo6cHJvY2Vzc0N1cnZlMngo
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogewotICAgIGJvb2wgaXNTYWZlID0gZnJhbWVzVG9Qcm9jZXNzID09IFJlbmRlcmlu
Z1F1YW50dW07CisgICAgYm9vbCBpc1NhZmUgPSBmcmFtZXNUb1Byb2Nlc3MgPT0gQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwogICAgIEFTU0VSVChpc1NhZmUpOwogICAgIGlmICgh
aXNTYWZlKQogICAgICAgICByZXR1cm47CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBXYXZlU2hh
cGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmUyeChjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCog
ZGVzdGluYXRpb24KIAogdm9pZCBXYXZlU2hhcGVyRFNQS2VybmVsOjpwcm9jZXNzQ3VydmU0eChj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiB7Ci0gICAgYm9vbCBpc1NhZmUgPSBmcmFtZXNUb1Byb2Nlc3MgPT0gUmVuZGVyaW5n
UXVhbnR1bTsKKyAgICBib29sIGlzU2FmZSA9IGZyYW1lc1RvUHJvY2VzcyA9PSBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAgICAgQVNTRVJUKGlzU2FmZSk7CiAgICAgaWYgKCFp
c1NhZmUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmNwcAppbmRleCA4NmE4ZWI1MTAyZGI4ZWNm
ZDQ3M2RmNzExNGQ3YzcyZTU3ODQ3NmVkLi4zNzk4ZDdlZWQzZTVlMzk4NTFmMDJiYTE5YzFiYTgz
NzExY2Y0MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1Jlc2FtcGxlcktlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9SZXNhbXBsZXJLZXJuZWwuY3BwCkBAIC0yOSwxNiArMjksMTUgQEAKICNpbmNsdWRlICJB
dWRpb1Jlc2FtcGxlcktlcm5lbC5oIgogCiAjaW5jbHVkZSAiQXVkaW9SZXNhbXBsZXIuaCIKKyNp
bmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotICAgIAotY29uc3Qgc2l6ZV90IEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpN
YXhGcmFtZXNUb1Byb2Nlc3MgPSAxMjg7CiAKIEF1ZGlvUmVzYW1wbGVyS2VybmVsOjpBdWRpb1Jl
c2FtcGxlcktlcm5lbChBdWRpb1Jlc2FtcGxlciogcmVzYW1wbGVyKQogICAgIDogbV9yZXNhbXBs
ZXIocmVzYW1wbGVyKQogICAgIC8vIFRoZSBidWZmZXIgc2l6ZSBtdXN0IGJlIGxhcmdlIGVub3Vn
aCB0byBob2xkIHVwIHRvIHR3byBleHRyYSBzYW1wbGUgZnJhbWVzIGZvciB0aGUgbGluZWFyIGlu
dGVycG9sYXRpb24uCi0gICAgLCBtX3NvdXJjZUJ1ZmZlcigyICsgc3RhdGljX2Nhc3Q8aW50PihN
YXhGcmFtZXNUb1Byb2Nlc3MgKiBBdWRpb1Jlc2FtcGxlcjo6TWF4UmF0ZSkpCisgICAgLCBtX3Nv
dXJjZUJ1ZmZlcigyICsgc3RhdGljX2Nhc3Q8aW50PihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUgKiBBdWRpb1Jlc2FtcGxlcjo6TWF4UmF0ZSkpCiAgICAgLCBtX3ZpcnR1YWxSZWFk
SW5kZXgoMC4wKQogICAgICwgbV9maWxsSW5kZXgoMCkKIHsKQEAgLTQ4LDcgKzQ3LDcgQEAgQXVk
aW9SZXNhbXBsZXJLZXJuZWw6OkF1ZGlvUmVzYW1wbGVyS2VybmVsKEF1ZGlvUmVzYW1wbGVyKiBy
ZXNhbXBsZXIpCiAKIGZsb2F0KiBBdWRpb1Jlc2FtcGxlcktlcm5lbDo6Z2V0U291cmNlUG9pbnRl
cihzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBzaXplX3QqIG51bWJlck9mU291cmNlRnJhbWVzTmVl
ZGVkUCkKIHsKLSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IE1heEZyYW1lc1RvUHJvY2Vz
cyk7CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpOwogICAgIAogICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV4dCAidmlydHVhbCIg
aW5kZXguICBBZnRlciBwcm9jZXNzKCkgaXMgY2FsbGVkLCBtX3ZpcnR1YWxSZWFkSW5kZXggd2ls
bCBlcXVhbCB0aGlzIHZhbHVlLgogICAgIGRvdWJsZSBuZXh0RnJhY3Rpb25hbEluZGV4ID0gbV92
aXJ0dWFsUmVhZEluZGV4ICsgZnJhbWVzVG9Qcm9jZXNzICogcmF0ZSgpOwpAQCAtNzMsNyArNzIs
NyBAQCBmbG9hdCogQXVkaW9SZXNhbXBsZXJLZXJuZWw6OmdldFNvdXJjZVBvaW50ZXIoc2l6ZV90
IGZyYW1lc1RvUHJvY2Vzcywgc2l6ZV90KiBudQogCiB2b2lkIEF1ZGlvUmVzYW1wbGVyS2VybmVs
Ojpwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsK
LSAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9IE1heEZyYW1lc1RvUHJvY2Vzcyk7CisgICAg
QVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpOwogCiAgICAgZmxvYXQqIHNvdXJjZSA9IG1fc291cmNlQnVmZmVyLmRhdGEoKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVy
S2VybmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlcktl
cm5lbC5oCmluZGV4IDE3NDZkY2UxYzYzOTBjNTIxYzdiMzEzZTY4NWEyYmQxNjcyNTVlYmEuLmQx
M2ZlNTczNDIxOTE0ZjNiZjRmYTAzYTVjYTcxZWQ5MDU3ZTg2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9SZXNhbXBsZXJLZXJuZWwuaApAQCAtNDUs
MTkgKzQ1LDE3IEBAIHB1YmxpYzoKICAgICAvLyBnZXRTb3VyY2VQb2ludGVyKCkgc2hvdWxkIGJl
IGNhbGxlZCBlYWNoIHRpbWUgYmVmb3JlIHByb2Nlc3MoKSBpcyBjYWxsZWQuCiAgICAgLy8gR2l2
ZW4gYSBudW1iZXIgb2YgZnJhbWVzIHRvIHByb2Nlc3MgKGZvciBzdWJzZXF1ZW50IGNhbGwgdG8g
cHJvY2VzcygpKSwgaXQgcmV0dXJucyBhIHBvaW50ZXIgYW5kIG51bWJlck9mU291cmNlRnJhbWVz
TmVlZGVkCiAgICAgLy8gd2hlcmUgc2FtcGxlIGRhdGEgc2hvdWxkIGJlIGNvcGllZC4gVGhpcyBz
YW1wbGUgZGF0YSBwcm92aWRlcyB0aGUgaW5wdXQgdG8gdGhlIHJlc2FtcGxlciB3aGVuIHByb2Nl
c3MoKSBpcyBjYWxsZWQuCi0gICAgLy8gZnJhbWVzVG9Qcm9jZXNzIG11c3QgYmUgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIE1heEZyYW1lc1RvUHJvY2Vzcy4KKyAgICAvLyBmcmFtZXNUb1Byb2Nlc3Mg
bXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplLgogICAgIGZsb2F0KiBnZXRTb3VyY2VQb2ludGVyKHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MsIHNpemVfdCogbnVtYmVyT2ZTb3VyY2VGcmFtZXNOZWVkZWQpOwogCiAgICAgLy8gcHJvY2Vz
cygpIHJlc2FtcGxlcyBmcmFtZXNUb1Byb2Nlc3MgZnJhbWVzIGZyb20gdGhlIHNvdXJjZSBpbnRv
IGRlc3RpbmF0aW9uLgogICAgIC8vIEVhY2ggY2FsbCB0byBwcm9jZXNzKCkgbXVzdCBiZSBwcmVj
ZWRlZCBieSBhIGNhbGwgdG8gZ2V0U291cmNlUG9pbnRlcigpIHNvIHRoYXQgc291cmNlIGlucHV0
IG1heSBiZSBzdXBwbGllZC4KLSAgICAvLyBmcmFtZXNUb1Byb2Nlc3MgbXVzdCBiZSBsZXNzIHRo
YW4gb3IgZXF1YWwgdG8gTWF4RnJhbWVzVG9Qcm9jZXNzLgorICAgIC8vIGZyYW1lc1RvUHJvY2Vz
cyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUuCiAgICAgdm9pZCBwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZy
YW1lc1RvUHJvY2Vzcyk7CiAKICAgICAvLyBSZXNldHMgdGhlIHByb2Nlc3Npbmcgc3RhdGUuCiAg
ICAgdm9pZCByZXNldCgpOwogCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBNYXhGcmFtZXNUb1By
b2Nlc3M7Ci0KIHByaXZhdGU6CiAgICAgZG91YmxlIHJhdGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9VdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvVXRpbGl0aWVzLmgKaW5kZXggMWUxOWFlMWZk
NTBhMGVjODFkNzYzNjBmOTVlOGY0MzM0ZjhkNDFkZC4uZTVkMTM1MjgyMWU3ZTAxZmI5M2I2NTE2
OGFmZmYyNzY1OTY1YjBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1V0aWxpdGllcy5oCkBAIC0yOSw2ICsyOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIEF1ZGlvVXRpbGl0aWVzIHsKIAorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1ZGlvLyNyZW5kZXItcXVhbnR1bS1zaXplCitjb25zdGV4cHIgc2l6ZV90IHJlbmRlclF1YW50
dW1TaXplID0gMTI4OworCiAvLyBTdGFuZGFyZCBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgdG8g
YW5kIGZyb20gZGVjaWJlbCB2YWx1ZXMgZnJvbSBsaW5lYXIuCiBmbG9hdCBsaW5lYXJUb0RlY2li
ZWxzKGZsb2F0KTsKIGZsb2F0IGRlY2liZWxzVG9MaW5lYXIoZmxvYXQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAKaW5kZXggM2I2NDNiMGIzYWEwN2I2Y2VkMDcwM2Jk
ZjdkMWViNTg3NmM3M2MzZi4uMDVmOWU2MmYxYjMxNWNkNGY3YzBmMTZjYWVlMzIzZDNkMTI0ZTE1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAKICNpbmNsdWRlICJCaXF1YWQuaCIKIAorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVz
LmgiCiAjaW5jbHVkZSAiRGVub3JtYWxEaXNhYmxlci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4K
ICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNTksMTEgKzYwLDExIEBAIEJpcXVhZDo6QmlxdWFkKCkK
IAogICAgIC8vIEFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3IgdGhlIGEtcmF0ZSBmaWx0ZXIgY29l
ZmZpY2llbnRzIHRvIGhhbmRsZSBhCiAgICAgLy8gcmVuZGVyaW5nIHF1YW50dW0gb2YgMTI4IGZy
YW1lcy4KLSAgICBtX2IwLmFsbG9jYXRlKE1heEZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgbV9iMS5h
bGxvY2F0ZShNYXhGcmFtZXNUb1Byb2Nlc3MpOwotICAgIG1fYjIuYWxsb2NhdGUoTWF4RnJhbWVz
VG9Qcm9jZXNzKTsKLSAgICBtX2ExLmFsbG9jYXRlKE1heEZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAg
bV9hMi5hbGxvY2F0ZShNYXhGcmFtZXNUb1Byb2Nlc3MpOworICAgIG1fYjAuYWxsb2NhdGUoQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBtX2IxLmFsbG9jYXRlKEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgbV9iMi5hbGxvY2F0ZShBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgIG1fYTEuYWxsb2NhdGUoQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBtX2EyLmFsbG9jYXRlKEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICAvLyBJbml0aWFsaXplIGFzIHBhc3MtdGhy
dSAoc3RyYWlnaHQtd2lyZSwgbm8gZmlsdGVyIGVmZmVjdCkKICAgICBzZXROb3JtYWxpemVkQ29l
ZmZpY2llbnRzKDAsIDEsIDAsIDAsIDEsIDAsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9CaXF1YWQuaAppbmRleCA1NDg3OTNjODI3YWY3MTFiMDM4YjM4NzA3MWIyZmVlODhiZTJkNmU3
Li5hYmJlMGY1MmJlNDAzYTNhZTA3YzM2YWUwZWQ5ZWJhYThhYjk3YzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuaApAQCAtNDYsOCArNDYsNiBAQCBwdWJsaWM6CiAgICAg
QmlxdWFkKCk7CiAgICAgfkJpcXVhZCgpOwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
TWF4RnJhbWVzVG9Qcm9jZXNzID0gMTI4OwotCiAgICAgdm9pZCBwcm9jZXNzKGNvbnN0IGZsb2F0
KiBzb3VyY2VQLCBmbG9hdCogZGVzdFAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCiAgICAg
Ym9vbCBoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2FtcGxl
QWNjdXJhdGVWYWx1ZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZQYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBh
bm5lci5jcHAKaW5kZXggNDA4YjZlMDJlMjg2M2FmZmNmZjM0NTI3NTE5NDZiYTYwMzM1NDNkNi4u
Y2Q4YjQyN2U1YWNmNDg1OGM4NjEyYTIxNzM5NWQwNzQ0ZGQzYjViZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJIUlRGUGFubmVyLmgiCiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUg
IkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRkZUQ29udm9sdmVyLmgiCiAjaW5jbHVkZSAi
SFJURkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCkBAIC00Miw3
ICs0Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBNYXhEZWxheVRpbWVT
ZWNvbmRzID0gMC4wMDI7CiAKIGNvbnN0IGludCBVbmluaXRpYWxpemVkQXppbXV0aCA9IC0xOwot
Y29uc3QgdW5zaWduZWQgUmVuZGVyaW5nUXVhbnR1bSA9IDEyODsKIAogSFJURlBhbm5lcjo6SFJU
RlBhbm5lcihmbG9hdCBzYW1wbGVSYXRlLCBIUlRGRGF0YWJhc2VMb2FkZXIqIGRhdGFiYXNlTG9h
ZGVyKQogICAgIDogUGFubmVyKFBhbm5pbmdNb2RlbFR5cGU6OkhSVEYpCkBAIC02MSwxMCArNjEs
MTAgQEAgSFJURlBhbm5lcjo6SFJURlBhbm5lcihmbG9hdCBzYW1wbGVSYXRlLCBIUlRGRGF0YWJh
c2VMb2FkZXIqIGRhdGFiYXNlTG9hZGVyKQogICAgICwgbV9jb252b2x2ZXJSMihmZnRTaXplRm9y
U2FtcGxlUmF0ZShzYW1wbGVSYXRlKSkKICAgICAsIG1fZGVsYXlMaW5lTChNYXhEZWxheVRpbWVT
ZWNvbmRzLCBzYW1wbGVSYXRlKQogICAgICwgbV9kZWxheUxpbmVSKE1heERlbGF5VGltZVNlY29u
ZHMsIHNhbXBsZVJhdGUpCi0gICAgLCBtX3RlbXBMMShSZW5kZXJpbmdRdWFudHVtKQotICAgICwg
bV90ZW1wUjEoUmVuZGVyaW5nUXVhbnR1bSkKLSAgICAsIG1fdGVtcEwyKFJlbmRlcmluZ1F1YW50
dW0pCi0gICAgLCBtX3RlbXBSMihSZW5kZXJpbmdRdWFudHVtKQorICAgICwgbV90ZW1wTDEoQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV90ZW1wUjEoQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV90ZW1wTDIoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKQorICAgICwgbV90ZW1wUjIoQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKQogewogICAgIEFTU0VSVChkYXRhYmFzZUxvYWRlcik7CiB9CkBAIC0yMTgs
MTEgKzIxOCwxMSBAQCB2b2lkIEhSVEZQYW5uZXI6OnBhbihkb3VibGUgZGVzaXJlZEF6aW11dGgs
IGRvdWJsZSBlbGV2YXRpb24sIGNvbnN0IEF1ZGlvQnVzKiBpbgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgLy8gVGhpcyBhbGdvcml0aG0gY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgd2UgcHJvY2Vz
cyBpbiBwb3dlci1vZi10d28gc2l6ZSBjaHVua3MgYXQgbGVhc3QgUmVuZGVyaW5nUXVhbnR1bS4K
KyAgICAvLyBUaGlzIGFsZ29yaXRobSBjdXJyZW50bHkgcmVxdWlyZXMgdGhhdCB3ZSBwcm9jZXNz
IGluIHBvd2VyLW9mLXR3byBzaXplIGNodW5rcyBhdCBsZWFzdCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUuCiAgICAgQVNTRVJUKDFVTCA8PCBzdGF0aWNfY2FzdDxpbnQ+KGxvZzIo
ZnJhbWVzVG9Qcm9jZXNzKSkgPT0gZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICBBU1NFUlQoZnJhbWVz
VG9Qcm9jZXNzID49IFJlbmRlcmluZ1F1YW50dW0pOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nl
c3MgPj0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAotICAgIGNvbnN0IHVu
c2lnbmVkIGZyYW1lc1BlclNlZ21lbnQgPSBSZW5kZXJpbmdRdWFudHVtOworICAgIGNvbnN0IHVu
c2lnbmVkIGZyYW1lc1BlclNlZ21lbnQgPSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emU7CiAgICAgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZTZWdtZW50cyA9IGZyYW1lc1RvUHJvY2Vz
cyAvIGZyYW1lc1BlclNlZ21lbnQ7CiAKICAgICBmb3IgKHVuc2lnbmVkIHNlZ21lbnQgPSAwOyBz
ZWdtZW50IDwgbnVtYmVyT2ZTZWdtZW50czsgKytzZWdtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vSUlSRmlsdGVyLmNwcAppbmRleCAyN2FhMmQyOTI5YjZkOWI5ZDQ5Zjg2
ODBmMjEwOWQ0MDNhZmI4YTQzLi40MTM5MWMyZDlkNjI2NTRmZDRmNmNjNzk3ODllNzI1NTI1ZWIx
NTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9JSVJGaWx0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0lJUkZpbHRlci5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJSVJGaWx0ZXIuaCIKIAogI2luY2x1ZGUgIkF1ZGlv
QXJyYXkuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZlY3Rvck1h
dGguaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8Y29tcGxleD4KQEAgLTM2LDgg
KzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdGV4cHIgdW5zaWduZWQgaWly
UmVuZGVyaW5nUXVhbnR1bSA9IDEyODsKLQogLy8gVGhlIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGJ1
ZmZlcnMgZm9yIHRoZSBJSVIgZmlsdGVyLiBUaGlzIE1VU1QgYmUgYSBwb3dlciBvZgogLy8gdHdv
IGFuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGUgcG9zc2libGUgbGVuZ3RoIG9mIHRoZSBmaWx0
ZXIgY29lZmZpY2llbnRzLgogY29uc3RleHByIGludCBidWZmZXJMZW5ndGggPSAzMjsKQEAgLTE4
OCwxMSArMTg3LDExIEBAIGRvdWJsZSBJSVJGaWx0ZXI6OnRhaWxUaW1lKGRvdWJsZSBzYW1wbGVS
YXRlLCBib29sIGlzRmlsdGVyU3RhYmxlKQogICAgIC8vIHplcm8gb3V0IHRoZSBvdXRwdXQgb2Yg
dGhlIG5vZGUuCiAKICAgICAvLyBOdW1iZXIgb2YgcmVuZGVyIHF1YW50YSBuZWVkZWQgdG8gcmVh
Y2ggdGhlIG1heCB0YWlsIHRpbWUuCi0gICAgaW50IG51bWJlck9mQmxvY2tzID0gc3RkOjpjZWls
KHNhbXBsZVJhdGUgKiBtYXhUYWlsVGltZSAvIGlpclJlbmRlcmluZ1F1YW50dW0pOworICAgIGlu
dCBudW1iZXJPZkJsb2NrcyA9IHN0ZDo6Y2VpbChzYW1wbGVSYXRlICogbWF4VGFpbFRpbWUgLyBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgLy8gSW5wdXQgYW5kIG91
dHB1dCBidWZmZXJzIGZvciBmaWx0ZXJpbmcuCi0gICAgQXVkaW9GbG9hdEFycmF5IGlucHV0KGlp
clJlbmRlcmluZ1F1YW50dW0pOwotICAgIEF1ZGlvRmxvYXRBcnJheSBvdXRwdXQoaWlyUmVuZGVy
aW5nUXVhbnR1bSk7CisgICAgQXVkaW9GbG9hdEFycmF5IGlucHV0KEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgQXVkaW9GbG9hdEFycmF5IG91dHB1dChBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogCiAgICAgLy8gQXJyYXkgdG8gaG9sZCB0aGUgbWF4
IG1hZ25pdHVkZXMKICAgICBBdWRpb0Zsb2F0QXJyYXkgbWFnbml0dWRlcyhudW1iZXJPZkJsb2Nr
cyk7CkBAIC0yMDEsMTYgKzIwMCwxNiBAQCBkb3VibGUgSUlSRmlsdGVyOjp0YWlsVGltZShkb3Vi
bGUgc2FtcGxlUmF0ZSwgYm9vbCBpc0ZpbHRlclN0YWJsZSkKICAgICBpbnB1dFswXSA9IDE7CiAK
ICAgICAvLyBQcm9jZXNzIHRoZSBmaXJzdCBibG9jayBhbmQgZ2V0IHRoZSBtYXggbWFnbml0dWRl
IG9mIHRoZSBvdXRwdXQuCi0gICAgcHJvY2VzcyhpbnB1dC5kYXRhKCksIG91dHB1dC5kYXRhKCks
IGlpclJlbmRlcmluZ1F1YW50dW0pOwotICAgIFZlY3Rvck1hdGg6OnZtYXhtZ3Yob3V0cHV0LmRh
dGEoKSwgMSwgJm1hZ25pdHVkZXNbMF0sIGlpclJlbmRlcmluZ1F1YW50dW0pOworICAgIHByb2Nl
c3MoaW5wdXQuZGF0YSgpLCBvdXRwdXQuZGF0YSgpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOworICAgIFZlY3Rvck1hdGg6OnZtYXhtZ3Yob3V0cHV0LmRhdGEoKSwgMSwgJm1h
Z25pdHVkZXNbMF0sIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAKICAgICAv
LyBQcm9jZXNzIHRoZSByZXN0IG9mIHRoZSBzaWduYWwsIGdldHRpbmcgdGhlIG1heCBtYWduaXR1
ZGUgb2YgdGhlCiAgICAgLy8gb3V0cHV0IGZvciBlYWNoIGJsb2NrLgogICAgIGlucHV0WzBdID0g
MDsKIAogICAgIGZvciAoaW50IGsgPSAxOyBrIDwgbnVtYmVyT2ZCbG9ja3M7ICsraykgewotICAg
ICAgICBwcm9jZXNzKGlucHV0LmRhdGEoKSwgb3V0cHV0LmRhdGEoKSwgaWlyUmVuZGVyaW5nUXVh
bnR1bSk7Ci0gICAgICAgIFZlY3Rvck1hdGg6OnZtYXhtZ3Yob3V0cHV0LmRhdGEoKSwgMSwgJm1h
Z25pdHVkZXNba10sIGlpclJlbmRlcmluZ1F1YW50dW0pOworICAgICAgICBwcm9jZXNzKGlucHV0
LmRhdGEoKSwgb3V0cHV0LmRhdGEoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
KTsKKyAgICAgICAgVmVjdG9yTWF0aDo6dm1heG1ndihvdXRwdXQuZGF0YSgpLCAxLCAmbWFnbml0
dWRlc1trXSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKICAgICB9CiAKICAg
ICAvLyBEb25lIGNvbXB1dGluZyB0aGUgaW1wdWxzZSByZXNwb25zZTsgcmVzZXQgdGhlIHN0YXRl
IHNvIHRoZSBhY3R1YWwgbm9kZQpAQCAtMjI4LDcgKzIyNyw3IEBAIGRvdWJsZSBJSVJGaWx0ZXI6
OnRhaWxUaW1lKGRvdWJsZSBzYW1wbGVSYXRlLCBib29sIGlzRmlsdGVyU3RhYmxlKQogCiAgICAg
Ly8gVGhlIG1hZ25pdHVkZSBmaXJzdCBiZWNvbWUgbG93ZXIgdGhhbiB0aGUgdGhyZXNob2xkIGF0
IHRoZSBuZXh0IGJsb2NrLgogICAgIC8vIENvbXB1dGUgdGhlIGNvcnJlc3BvbmRpbmcgdGltZSB2
YWx1ZSB2YWx1ZTsgdGhhdCdzIHRoZSB0YWlsIHRpbWUuCi0gICAgcmV0dXJuIChpbmRleCArIDEp
ICogaWlyUmVuZGVyaW5nUXVhbnR1bSAvIHNhbXBsZVJhdGU7CisgICAgcmV0dXJuIChpbmRleCAr
IDEpICogQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplIC8gc2FtcGxlUmF0ZTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXgg
MDk4OTkxN2NiNWMxNjA5ZjY2MDhiMmUxN2U3YTlhNjVjMTZlMTIwOS4uNzRhZDYxNmZhOWUyNWRl
Yjk5OWM5NmI2NjdlZDE0OTQ3MGJmNjg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBA
IC0zMCwxNSArMzAsMTQgQEAKIAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTXVsdGlDaGFubmVsUmVzYW1wbGVyLmgiCiAjaW5jbHVkZSAiUHVz
aFB1bGxGSUZPLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3RleHByIHNpemVfdCBr
UmVuZGVyQnVmZmVyU2l6ZSA9IDEyODsKLQotY29uc3RleHByIHNpemVfdCBmaWZvU2l6ZSA9IDk2
ICoga1JlbmRlckJ1ZmZlclNpemU7Citjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CiAKIENyZWF0ZUF1ZGlvRGVzdGluYXRp
b25Db2NvYU92ZXJyaWRlIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBu
dWxscHRyOwogCkBAIC03NCw4ICs3Myw4IEBAIHVuc2lnbmVkIGxvbmcgQXVkaW9EZXN0aW5hdGlv
bjo6bWF4Q2hhbm5lbENvdW50KCkKIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6QXVkaW9EZXN0aW5h
dGlvbkNvY29hKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgOiBtX291dHB1dFVuaXQoMCkKICAg
ICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgLCBtX291dHB1dEJ1cyhBdWRpb0J1czo6Y3Jl
YXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGtSZW5kZXJCdWZmZXJTaXplLCBmYWxzZSkucmVs
ZWFzZU5vbk51bGwoKSkKLSAgICAsIG1fcmVuZGVyQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVy
T2ZPdXRwdXRDaGFubmVscywga1JlbmRlckJ1ZmZlclNpemUpLnJlbGVhc2VOb25OdWxsKCkpCisg
ICAgLCBtX291dHB1dEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgZmFsc2UpLnJlbGVhc2VOb25OdWxs
KCkpCisgICAgLCBtX3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkucmVsZWFzZU5vbk51bGwo
KSkKICAgICAsIG1fZmlmbyhtYWtlVW5pcXVlUmVmPFB1c2hQdWxsRklGTz4obnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgZmlmb1NpemUpKQogICAgICwgbV9jb250ZXh0U2FtcGxlUmF0ZShzYW1wbGVS
YXRlKQogewpAQCAtODQsNyArODMsNyBAQCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OkF1ZGlvRGVz
dGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCB1bnNpZ25lZAogICAgIGF1
dG8gaGFyZHdhcmVTYW1wbGVSYXRlID0gdGhpcy0+aGFyZHdhcmVTYW1wbGVSYXRlKCk7CiAgICAg
aWYgKHNhbXBsZVJhdGUgIT0gaGFyZHdhcmVTYW1wbGVSYXRlKSB7CiAgICAgICAgIGRvdWJsZSBz
Y2FsZUZhY3RvciA9IHN0YXRpY19jYXN0PGRvdWJsZT4oc2FtcGxlUmF0ZSkgLyBoYXJkd2FyZVNh
bXBsZVJhdGU7Ci0gICAgICAgIG1fcmVzYW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxS
ZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBrUmVuZGVyQnVm
ZmVyU2l6ZSk7CisgICAgICAgIG1fcmVzYW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxS
ZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgIH0KIH0KIApAQCAtMTc2LDExICsxNzUsMTEg
QEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1l
U3RhbXAqIHRpbWVzdGFtcCwgVUludDMyIG4KICAgICBhc3NpZ25BdWRpb0J1ZmZlcnNUb0J1cyhi
dWZmZXJzLCBtX291dHB1dEJ1cy5nZXQoKSwgbnVtYmVyT2ZCdWZmZXJzLCBudW1iZXJPZkZyYW1l
cywgMCwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIHNpemVfdCBmcmFtZXNUb1JlbmRlciA9IG1fZmlm
by0+cHVsbChtX291dHB1dEJ1cy5wdHIoKSwgbnVtYmVyT2ZGcmFtZXMpOwogCi0gICAgZm9yIChz
aXplX3QgcHVzaGVkRnJhbWVzID0gMDsgcHVzaGVkRnJhbWVzIDwgZnJhbWVzVG9SZW5kZXI7IHB1
c2hlZEZyYW1lcyArPSBrUmVuZGVyQnVmZmVyU2l6ZSkgeworICAgIGZvciAoc2l6ZV90IHB1c2hl
ZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8IGZyYW1lc1RvUmVuZGVyOyBwdXNoZWRGcmFtZXMg
Kz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKSB7CiAgICAgICAgIGlmIChtX3Jl
c2FtcGxlcikKLSAgICAgICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNzKHRoaXMsIG1fcmVuZGVy
QnVzLnB0cigpLCBrUmVuZGVyQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBtX3Jlc2FtcGxlci0+
cHJvY2Vzcyh0aGlzLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIo
MCwgbV9yZW5kZXJCdXMucHRyKCksIGtSZW5kZXJCdWZmZXJTaXplLCBtX291dHB1dFRpbWVzdGFt
cCk7CisgICAgICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwg
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAK
ICAgICAgICAgbV9maWZvLT5wdXNoKG1fcmVuZGVyQnVzLnB0cigpKTsKICAgICB9CkBAIC0xOTcs
OCArMTk2LDggQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjppbnB1dFByb2Modm9p
ZCogdXNlckRhdGEsIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkYKIAogdm9pZCBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewotICAgIEFTU0VSVF9VTlVTRUQoZnJhbWVzVG9Qcm9jZXNzLCBmcmFtZXNUb1Byb2Nl
c3MgPT0ga1JlbmRlckJ1ZmZlclNpemUpOwotICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGJ1cywg
a1JlbmRlckJ1ZmZlclNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKKyAgICBBU1NFUlRfVU5VU0VE
KGZyYW1lc1RvUHJvY2VzcywgZnJhbWVzVG9Qcm9jZXNzID09IEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CisgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYnVzLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGJkYzdk
ZTMyMzEyYWE1YWYyMDExMzBhNjljNmI4NWNmMTEwZjkyZTYuLjczYWYxNjAzNGI0MTM3NTYxZTMz
ZjliNTEyZmRiMjI1ZTU1M2VhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oQ09DT0Ep
CiAKICNpbXBvcnQgIkF1ZGlvU2Vzc2lvbi5oIgorI2ltcG9ydCAiQXVkaW9VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2ltcG9ydCAiSFRNTE1lZGlh
RWxlbWVudC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNDIsNyArNDMsNiBAQAogCiAjaW1w
b3J0ICJNZWRpYVJlbW90ZVNvZnRMaW5rLmgiCiAKLXN0YXRpYyBjb25zdCBzaXplX3Qga1dlYkF1
ZGlvQnVmZmVyU2l6ZSA9IDEyODsKIHN0YXRpYyBjb25zdCBzaXplX3Qga0xvd1Bvd2VyVmlkZW9C
dWZmZXJTaXplID0gNDA5NjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTAyLDcgKzEwMiw3
IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVTZXNzaW9uU3RhdGUoKQog
ICAgICAgICAiV2ViQXVkaW8oIiwgd2ViQXVkaW9Db3VudCwgIikiKTsKIAogICAgIGlmICh3ZWJB
dWRpb0NvdW50KQotICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKGtXZWJBdWRpb0J1ZmZlclNpemUpOworICAgICAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAgLy8gSW4gY2FzZSBvZiBhdWRpbyBjYXB0dXJlLCB3
ZSB3YW50IHRvIGdyYWIgMjAgbXMgY2h1bmtzIHRvIGxpbWl0IHRoZSBsYXRlbmN5IHNvIHRoYXQg
aXQgaXMgbm90IG5vdGljZWFibGUgYnkgdXNlcnMKICAgICAvLyB3aGlsZSBoYXZpbmcgYSBsYXJn
ZSBlbm91Z2ggYnVmZmVyIHNvIHRoYXQgdGhlIGF1ZGlvIHJlbmRlcmluZyByZW1haW5zIHN0YWJs
ZSwgaGVuY2UgYSBjb21wdXRhdGlvbiBiYXNlZCBvbiBzYW1wbGUgcmF0ZS4KICAgICBlbHNlIGlm
IChjYXB0dXJlQ291bnQpCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiAgICAgICAgIGlmIChtX2F1ZGlvSGFyZHdh
cmVMaXN0ZW5lciAmJiBtX2F1ZGlvSGFyZHdhcmVMaXN0ZW5lci0+b3V0cHV0RGV2aWNlU3VwcG9y
dHNMb3dQb3dlck1vZGUoKSkKICAgICAgICAgICAgIGJ1ZmZlclNpemUgPSBrTG93UG93ZXJWaWRl
b0J1ZmZlclNpemU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1ZmZlclNpemUgPSBrV2Vi
QXVkaW9CdWZmZXJTaXplOworICAgICAgICAgICAgYnVmZmVyU2l6ZSA9IEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZTsKIAogICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCAwNGJlZTY0NGQ4ZDJiOTBhZDQy
NGU4YTM3NDhhZDY2M2VkMDMxNDI0Li5kYjY5YzViOTcyYjQ0MjQyMGNhYzY1NmI4NTdhNDc0ZGM3
M2EyYjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJBdWRpb0NoYW5uZWwuaCIKICNpbmNsdWRlICJBdWRp
b1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIldl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmgiCkBAIC0zNSwxMCArMzYsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLS8vIFNpemUgb2YgdGhlIEF1ZGlvQnVzIGZvciBwbGF5YmFjay4g
VGhlIHdlYmtpdHdlYmF1ZGlvc3JjIGVsZW1lbnQKLS8vIG5lZWRzIHRvIGhhbmRsZSB0aGlzIG51
bWJlciBvZiBmcmFtZXMgcGVyIGN5Y2xlIGFzIHdlbGwuCi1jb25zdCB1bnNpZ25lZCBmcmFtZXNU
b1B1bGwgPSAxMjg7Ci0KIGdib29sZWFuIG1lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RNZXNz
YWdlKiBtZXNzYWdlLCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKiBkZXN0aW5hdGlvbikKIHsK
ICAgICByZXR1cm4gZGVzdGluYXRpb24tPmhhbmRsZU1lc3NhZ2UobWVzc2FnZSk7CkBAIC03OSw3
ICs3Niw3IEBAIHVuc2lnbmVkIGxvbmcgQXVkaW9EZXN0aW5hdGlvbjo6bWF4Q2hhbm5lbENvdW50
KCkKIAogQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
cihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIDogbV9j
YWxsYmFjayhjYWxsYmFjaykKLSAgICAsIG1fcmVuZGVyQnVzKEF1ZGlvQnVzOjpjcmVhdGUoMiwg
ZnJhbWVzVG9QdWxsLCBmYWxzZSkpCisgICAgLCBtX3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRl
KDIsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgZmFsc2UpKQogICAgICwgbV9z
YW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsKQEAgLTkz
LDcgKzkwLDcgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
YXRlIiwgc2FtcGxlUmF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnVzIiwgbV9yZW5kZXJCdXMu
Z2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImZyYW1lcyIsIGZyYW1lc1RvUHVsbCwgbnVsbHB0cikpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJmcmFtZXMiLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUs
IG51bGxwdHIpKTsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gYXVkaW9TaW5rID0gZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgbnVsbHB0cik7CiAgICAgbV9hdWRp
b1NpbmtBdmFpbGFibGUgPSBhdWRpb1Npbms7CkBAIC0xMzgsNyArMTM1LDcgQEAgQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKQogCiB1bnNpZ25l
ZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmcmFtZXNQZXJCdWZmZXIoKSBjb25zdAogewot
ICAgIHJldHVybiBmcmFtZXNUb1B1bGw7CisgICAgcmV0dXJuIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZTsKIH0KIAogZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6
aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYzRmOGNhZjQ1ZTQ4ZDg3NDBjZmVmZjA5
ZDI2ZWQ4MmY0YzM2OTcxYy4uN2U0OWUxMTUwOTMyOTk0YWRjZjZjYjQ0MTM3Yzg4NWRhODY3YjIz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlv
SU9DYWxsYmFjay5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR1N0
cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRl
IDxnc3QvYXVkaW8vYXVkaW8taW5mby5oPgpAQCAtMTg2LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfYXVkaW9fc3JjX2NsYXNzX2luaXQoV2ViS2l0V2ViQXVkaW9TcmNDbGFzcyog
d2ViS2l0V2ViQXVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0ZS
QU1FUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191
aW50KCJmcmFtZXMiLCAiZnJhbWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIgb2YgYXVkaW8gZnJhbWVzIHRvIHB1bGwgYXQg
ZWFjaCBpdGVyYXRpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgR19NQVhVSU5UOCwgMTI4LCBmbGFncykpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhVSU5UOCwg
QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBmbGFncykpOwogfQogCiBzdGF0aWMg
dm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>