<?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>230916</bug_id>
          
          <creation_ts>2021-09-28 14:39:01 -0700</creation_ts>
          <short_desc>[css-ui] getComputedStyle() must return the specified value for &apos;-webkit-appearance&apos;</short_desc>
          <delta_ts>2021-09-29 15:25:21 -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>CSS</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230900</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>samuel_white</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798043</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-28 14:39:01 -0700</bug_when>
    <thetext>As specified in https://www.w3.org/TR/css-ui-4/#appearance-switching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798049</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-28 14:41:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/83640938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798073</commentid>
    <comment_count>2</comment_count>
      <attachid>439532</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-28 15:24:31 -0700</bug_when>
    <thetext>Created attachment 439532
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798423</commentid>
    <comment_count>3</comment_count>
      <attachid>439620</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-29 10:09:37 -0700</bug_when>
    <thetext>Created attachment 439620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798610</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 15:25:14 -0700</bug_when>
    <thetext>Committed r283269 (242298@main): &lt;https://commits.webkit.org/242298@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439620.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439532</attachid>
            <date>2021-09-28 15:24:31 -0700</date>
            <delta_ts>2021-09-29 10:09:36 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-230916-20210928152430.patch</filename>
            <type>text/plain</type>
            <size>78346</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyZGVkMmQwMWRhZjMz
YjFjOGQ2YjAwOTMxMTZiOTc1YWI0MmEyOC4uMGM4MjRmM2RjNjdlYzkxNDdlMDc4ZjJhNGMzMzM2
MDM5ZjUyMWM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2OCBAQAorMjAyMS0wOS0yOCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy11aV0gZ2V0
Q29tcHV0ZWRTdHlsZSgpIG11c3QgcmV0dXJuIHRoZSBzcGVjaWZpZWQgdmFsdWUgZm9yICctd2Vi
a2l0LWFwcGVhcmFuY2UnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA5MTYKKyAgICAgICAgcmRhcjovLzgzNjQwOTM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBhbiBlbGVtZW50J3Mg
YXBwZWFyYW5jZSBjYW4gYmUgYWRqdXN0ZWQgdG8gIm5vbmUiIGRlcGVuZGluZworICAgICAgICBv
biB0aGUgYXBwbGllZCBDU1MgcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIGJ1dHRvbnMgdGhhdCBz
cGVjaWZ5IGEKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvciBsb3NlIHRoZWlyIG5hdGl2ZSBhcHBl
YXJhbmNlLiBUaGUgZXhpc3RpbmcgYmVoYXZpb3IgaXMKKyAgICAgICAgaW1wbGVtZW50ZWQgYnkg
bW9kaWZ5aW5nIHRoZSBhcHBlYXJhbmNlIGZpZWxkIG9uIFJlbmRlclN0eWxlLgorCisgICAgICAg
IFdoaWxlIHRoZSBzcGVjIGFsbG93cyBjZXJ0YWluIHByb3BlcnRpZXMgdG8gYWZmZWN0IGFwcGVh
cmFuY2UsIGl0CisgICAgICAgIGFsc28gYXNzZXJ0cyB0aGF0IHRoZSBjb21wdXRlZCB2YWx1ZSBt
dXN0IGJlIGVxdWFsIHRvIHRoZSBzcGVjaWZpYworICAgICAgICB2YWx1ZSBbMV0uIEhvd2V2ZXIs
IHNpbmNlIHRoZSBzcGVjaWZpZWQgYW5kIGFkanVzdGVkIHZhbHVlcyBhcmUgc3RvcmVkCisgICAg
ICAgIGluIHRoZSBzYW1lIGZpZWxkIGluIFJlbmRlclN0eWxlLCB0aGUgY29tcHV0ZWQgdmFsdWUg
ZG9lcyBub3QgYWx3YXlzCisgICAgICAgIGVxdWFsIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisKKyAg
ICAgICAgVG8gZml4LCBpbnRyb2R1Y2UgYW4gZWZmZWN0aXZlQXBwZWFyYW5jZSBmaWVsZCB0byBS
ZW5kZXJTdHlsZSwgd2hpY2gKKyAgICAgICAgc3RvcmVzIHRoZSB1c2VkIGFwcGVhcmFuY2UuIFRo
ZSBzcGVjaWZpZWQgYXBwZWFyYW5jZSByZW1haW5zIGluIHRoZQorICAgICAgICBhcHBlYXJhbmNl
IGZpZWxkLCBlbnN1cmluZyB0aGUgY29tcHV0ZWQgdmFsdWUgYWRoZXJlcyB0byB0aGUgc3BlYy4K
KworICAgICAgICBUaGUgbmV3IGJlaGF2aW9yIG1hdGNoZXMgQ2hyb21lIGFuZCBGaXJlZm94LiBU
aGlzIHdvcmsgaXMgYWxzbyBuZWNlc3NhcnkKKyAgICAgICAgZm9yIFdlYktpdCB0byBzdXBwb3J0
ICdhdXRvJyBhcyBhIHZhbGlkIGFwcGVhcmFuY2UgdmFsdWUsIHNpbmNlIHRoZQorICAgICAgICB1
c2VkIHZhbHVlIHdpbGwgbmVlZCB0byBiZSBhZGp1c3RlZCBkZXBlbmRpbmcgb24gdGhlIGVsZW1l
bnQgdHlwZSwgYnV0CisgICAgICAgIHRoZSBjb21wdXRlZCB2YWx1ZSBzaG91bGQgcmVtYWluICdh
dXRvJy4KKworICAgICAgICBbMV0gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNhcHBl
YXJhbmNlLXN3aXRjaGluZworCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5k
aW5nQm94Rm9yUXVhZHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0FwcGxlUGF5QnV0dG9uIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRIb3ZlcmVkKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpmb2N1c2VkT3JBY3RpdmVTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudDo6c2V0SW5kZXRlcm1pbmF0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1
dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzU2hhZG93RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0lubmVy
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJUaHVtYjo6dXBkYXRlQXBwZWFyYW5j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVDdXN0b21T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZl
Q3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJBdHRh
Y2htZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckF0dGFjaG1lbnQ6OnNob3VsZERy
YXdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6cGFp
bnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRWaXN1YWxPdmVyZmxvd0Zyb21UaGVtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6aGFzVmlzaWJsZUJveERlY29yYXRpb25T
dHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym94
U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpo
YXNWaXNpYmxlQm94RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlckxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAg
KFJlbmRlck1lbnVMaXN0OjptZW51U3R5bGUgY29uc3QpOgorICAgICAgICAoUmVuZGVyTWVudUxp
c3Q6OmNsaWVudFBhZGRpbmdMZWZ0IGNvbnN0KToKKyAgICAgICAgKFJlbmRlck1lbnVMaXN0Ojpj
bGllbnRQYWRkaW5nUmlnaHQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9n
cmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dXBkYXRlQW5pbWF0
aW9uU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorCisgICAgICAgIEVuc3VyZSB0
aGUgc3BlY2lmaWVkIHZhbHVlIGlzIG5vdCBtb2RpZmllZCBieSBhZGp1c3RpbmcgdGhlCisgICAg
ICAgIGVmZmVjdGl2ZUFwcGVhcmFuY2UgZmllbGQgaW5zdGVhZCBvZiB0aGUgYXBwZWFyYW5jZSBm
aWVsZC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFNlYXJjaEZpZWxk
RGVjb3JhdGlvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c0ZvY3VzUmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aXNEZWZhdWx0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVBZHdhaXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQWR3YWl0
YTo6c3VwcG9ydHNGb2N1c1JpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVBZHdhaXRhOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUFkd2FpdGE6OnBhaW50U2xpZGVyVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjphZGp1c3RTbGlkZXJUaHVtYlNpemUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjpwYWludFNsaWRlclRodW1iKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUlPUzo6YWRqdXN0ZWRQYWludFJlY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVJT1M6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3ggY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdFJvdW5kQm9yZGVyUmFk
aXVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphZGp1c3RTbGlkZXJUaHVtYlNp
emUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRv
blN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzdXBwb3J0
c0JveFNoYWRvdyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFp
bnRTbGlkZXJUaWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRT
bGlkZXJUcmFja1dpdGhGb3JtQ29udHJvbFJlZnJlc2gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjppc0Nv
bnRyb2xTdHlsZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFk
anVzdFJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpjb250
cm9sU3VwcG9ydHNUaW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6bWV0ZXJTaXplRm9yQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTWFjOjpsZXZlbEluZGljYXRvckZvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU1hYzo6cHJvZ3Jlc3NCYXJSZWN0Rm9yQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUcmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzRm9jdXNSaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVDbGFzc2ljU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVXaW46OmRldGVybWluZVN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVTbGlkZXJUaHVtYlN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVCdXR0b25TdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6Z2V0Q2xhc3NpY1RoZW1lRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6Z2V0VGhlbWVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmRyYXdDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpwYWlu
dFNsaWRlclRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzaEZvclRleHRBdXRv
c2l6aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjplcXVhbEZvclRl
eHRBdXRvc2l6aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnJhcmVOb25Jbmhlcml0ZWRE
YXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc0VmZmVjdGl2ZUFw
cGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmVmZmVjdGl2
ZUFwcGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEVmZmVjdGl2ZUFw
cGVhcmFuY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9NYXRj
aGVkRGVjbGFyYXRpb25zQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Ok1hdGNo
ZWREZWNsYXJhdGlvbnNDYWNoZTo6aXNDYWNoZWFibGUpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3Qg
Y29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKwogMjAyMS0w
OS0yMiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gVHJhbnNjb2RlIHZpZGVvcyBzZWxlY3RlZCBmcm9tIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAppbmRleCAyZTE2M2QzMzQ2MjIyNDg1N2ZhZDI5ZmEwYzY3MTk5NmEzMTQxOWUyLi5m
OWQzN2YzYjI4MTUyYmZhZWU4NTdmNzQ1YWEzYTUyNTk2NjA4ODIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTc4
Niw3ICs3ODYsNyBAQCBJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kaW5nQm94Rm9y
UXVhZHMoUmVuZGVyT2JqZWN0KiBvYmosIGNvbnN0IFZlY3RvcgogICAgIGZvciAoY29uc3QgYXV0
byYgcXVhZCA6IHF1YWRzKSB7CiAgICAgICAgIEZsb2F0UmVjdCByID0gcXVhZC5lbmNsb3NpbmdC
b3VuZGluZ0JveCgpOwogICAgICAgICBpZiAoIXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBp
ZiAob2JqLT5zdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgICAgIGlmIChvYmotPnN0
eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAgICAgICAgICAgIG9iai0+dGhl
bWUoKS5hZGp1c3RSZXBhaW50UmVjdCgqb2JqLCByKTsKICAgICAgICAgICAgIHJlc3VsdC51bml0
ZShyKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggODIwYWQ2NTg5MzRhMTQ0
YzFkNTJiOTBiZDNiODlmYzVjN2FmZGQ2NS4uM2IxMDkwMjQwOGViYWIyYjM2NjgzOWQwOGI3MDQz
NmE4ZTk5MjBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zODUyLDcgKzM4NTIsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQXBwbGVQYXlCdXR0b24oKSBjb25zdAog
ewogICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVy
biBtX3JlbmRlcmVyLT5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBBcHBsZVBheUJ1dHRvblBhcnQ7
CisgICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09
IEFwcGxlUGF5QnV0dG9uUGFydDsKIH0KIAogQXBwbGVQYXlCdXR0b25UeXBlIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCBh
YzdjZTU0YWI0NjRhMGUxZGRkNTRjNzY1YzRjNTQ0MzMyMjUxYjJhLi43ZDA3M2JkNmE4OGQxYTY0
YmZmYThlZGFmYTcwOTVmY2M1ZTViZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2liaWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkg
Y29uc3QKICAgICAKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSBtX3JlbmRlcmVyLT5z
dHlsZSgpOwogCi0gICAgQ29udHJvbFBhcnQgc3R5bGVBcHBlYXJhbmNlID0gc3R5bGUuYXBwZWFy
YW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHN0eWxlQXBwZWFyYW5jZSA9IHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKTsKICAgICBzd2l0Y2ggKHN0eWxlQXBwZWFyYW5jZSkgewogICAgIGNhc2Ug
U2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydDoKICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDNlNmY3NGIzMTBkYTJhNzlhNzI4N2M4ZTBjMmFk
ZWE3NzYzYzU3NGQuLmQwNTAxYmI1MTY2MGQ2NzdkM2MxMzQ4YzgyMWZkOTIwNDMxMmE1NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTcwOCw3ICs3MDgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNl
dEFjdGl2ZShib29sIGZsYWcsIGJvb2wgcGF1c2UsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29wZSBp
bnZhbGlkYQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHJlYWN0c1RvUHJlc3MgPSBmYWxz
ZTsKLSAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkgJiYgcmVuZGVy
ZXIoKS0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyKCksIENvbnRyb2xTdGF0ZXM6OlN0
YXRlczo6UHJlc3NlZCkpCisgICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZl
QXBwZWFyYW5jZSgpICYmIHJlbmRlcmVyKCktPnRoZW1lKCkuc3RhdGVDaGFuZ2VkKCpyZW5kZXJl
cigpLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OlByZXNzZWQpKQogICAgICAgICByZWFjdHNUb1By
ZXNzID0gdHJ1ZTsKIAogICAgIC8vIFRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gaW1wbGVtZW50
cyBhIGZlYXR1cmUgdGhhdCBvbmx5IHdvcmtzIGlmIHRoZQpAQCAtODA1LDcgKzgwNSw3IEBAIHZv
aWQgRWxlbWVudDo6c2V0SG92ZXJlZChib29sIGZsYWcsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29w
ZSBpbnZhbGlkYXRpb25TY29wZSkKICAgICAgICAgZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVu
dHMoKS5zZXRIb3ZlcmVkKCp0aGlzLCBmbGFnKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byogc3R5
bGUgPSByZW5kZXJTdHlsZSgpOyBzdHlsZSAmJiBzdHlsZS0+aGFzQXBwZWFyYW5jZSgpKQorICAg
IGlmIChhdXRvKiBzdHlsZSA9IHJlbmRlclN0eWxlKCk7IHN0eWxlICYmIHN0eWxlLT5oYXNFZmZl
Y3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnRoZW1lKCkuc3RhdGVDaGFu
Z2VkKCpyZW5kZXJlcigpLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkhvdmVyZWQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDViZmIyNjAxNGE0
M2U1MmQyMmVmNmQ4MDE1ZWFlZDU3NWFkMWNmYTEuLmMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNh
MjM1ZmZlOTdiNWViYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0yMTA0LDcgKzIxMDQsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpmb2N1c2VkT3JB
Y3RpdmVTdGF0ZUNoYW5nZWQoKQogICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbV9kb2N1bWVu
dC0+Zm9jdXNlZEVsZW1lbnQoKSkgewogICAgICAgICBlbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVG
b3JTdWJ0cmVlKCk7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVu
dC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+c3R5
bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAgICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVy
ZXItPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIsIENvbnRyb2xTdGF0ZXM6OlN0
YXRlczo6Rm9jdXNlZCk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBhMjY2MmE2NTBmMmNkODg0NjYyM2QwYzYx
MDg3NjcwN2ViY2JkMzAxLi41YjA0MjRmNjZkODdkZjc3OTc3ZWYzMmQ5MGU1Yzk1ZjZiNmYwNTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVk
U3RhdGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwog
ICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKLSAgICBpZiAocmVuZGVyZXIoKSAmJiBy
ZW5kZXJlcigpLT5zdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAgICBpZiAocmVuZGVyZXIoKSAm
JiByZW5kZXJlcigpLT5zdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAg
cmVuZGVyZXIoKS0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyKCksIENvbnRyb2xTdGF0
ZXM6OlN0YXRlczo6RW5hYmxlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDFiOWIyZTFiMjIxZTBmZTNhYWY2YTVlMjAyOTQ1OWI0MDM0MzcyMzcu
LjA2OWNjNDE3NzBjYzlmYzUxYjk1ODIyMzUzMjQ2MzIzMzMyNmI3YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZChib29sIG5vd0NoZWNrZWQpCiAKICAgICBpZiAoUmFk
aW9CdXR0b25Hcm91cHMqIGJ1dHRvbnMgPSByYWRpb0J1dHRvbkdyb3VwcygpKQogICAgICAgICBi
dXR0b25zLT51cGRhdGVDaGVja2VkU3RhdGUoKnRoaXMpOwotICAgIGlmIChyZW5kZXJlcigpICYm
IHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpKQorICAgIGlmIChyZW5kZXJlcigp
ICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAg
ICByZW5kZXJlcigpLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIoKSwgQ29udHJvbFN0
YXRlczo6U3RhdGVzOjpDaGVja2VkKTsKICAgICB1cGRhdGVWYWxpZGl0eSgpOwogCkBAIC0xMDA5
LDcgKzEwMDksNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEluZGV0ZXJtaW5hdGUoYm9v
bCBuZXdWYWx1ZSkKIAogICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKIAotICAgIGlm
IChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpKQorICAg
IGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFy
YW5jZSgpKQogICAgICAgICByZW5kZXJlcigpLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVy
ZXIoKSwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpDaGVja2VkKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggMjI5NTRjNTY4NjFhMTJjMTBhMDYwNGNh
MjAzOWY4OWNjMjY4OTEyYi4uYjIxMmU4ODAwNDM5NGQxZGUxNDkzYjBiODNjNjU4NzIxM2U0Yzdk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC01OCw3ICs1
OCw3IEBAIFJlZjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKLSAgICBpZiAoIVJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5zdXBwb3J0c01ldGVyKHN0eWxlLmFwcGVhcmFuY2UoKSwgKnRoaXMpKQor
ICAgIGlmICghUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnN1cHBvcnRzTWV0ZXIoc3R5bGUuZWZm
ZWN0aXZlQXBwZWFyYW5jZSgpLCAqdGhpcykpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50
OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggZDA1ZjJlN2I5YzYzMDA2NTczMjZl
YTVmMTk3ZGI4NzUzZDQxYTU4ZC4uYjcyNWRlMjQxZDMyMzExYWQ0ZDg5NjYxZGYxMDRmYmUzMmZk
OGI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE3
OSw3ICsxNzksNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICBtX2Rpc2FibGVk
ID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICBpZiAob2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxl
ZCkgewogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotICAgICAgICAg
ICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkp
CisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLmhhc0Vm
ZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlcigpLT50aGVtZSgp
LnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIoKSwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVk
KTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBzZWxlY3RlZEF0dHIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDYzNDNhYmI1
OWY2MDg0YmY0ZTQ4MDljMTcyNDM5NzkwZmFkOGNmZmQuLjY4MGNkZTg4YmEyMGYyZDdjMjZjYWM3
Mjg0ZjA1NmQyY2NlYTUxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRN
TFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7Ci0gICAgaWYgKCFzdHlsZS5oYXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKCFzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVh
dGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJQcm9ncmVzcz4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggOTNkMTFkNjRlZTAyY2Q4ODJkZGZiMWQ4NjQ4MjQx
NmJkODgyYjI2MS4uNGIxZTNhMjljMGE0MzZlNDZlYjU2YzE5ZThhYzE5N2IwOWJlNGM0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTIwNSw3ICsyMDUsNyBAQCBh
dXRvIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIC0+IFNob3VsZENhbGxCYXNlRQogCiAgICAgYm9vbCBpc1ZlcnRpY2FsID0gZmFsc2U7CiAg
ICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudCgpLT5yZW5kZXJlcigpKSB7Ci0gICAgICAg
IENvbnRyb2xQYXJ0IHBhcnQgPSByZW5kZXJlci0+c3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAg
ICAgIENvbnRyb2xQYXJ0IHBhcnQgPSByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJh
bmNlKCk7CiAgICAgICAgIGlzVmVydGljYWwgPSBwYXJ0ID09IFNsaWRlclZlcnRpY2FsUGFydCB8
fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCmluZGV4IGY1
NzRmMDc0N2QxOWFiMDhiMTBhNDVmMzE5ZTc4NDNhYTI0YjI2YTAuLjdiYmQ5OWQ0MDEzYTI1MjBh
MjJiN2NkNjkxNjQ1M2FkYzI5NmE1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBIVE1M
UHJvZ3Jlc3NFbGVtZW50KiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQ6OnByb2dyZXNzRWxlbWVudCgp
IGNvbnN0CiBib29sIFByb2dyZXNzU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBwcm9ncmVzc1JlbmRl
cmVyID0gcHJvZ3Jlc3NFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHByb2dyZXNz
UmVuZGVyZXIgJiYgIXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpICYm
IEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKKyAgICByZXR1cm4gcHJv
Z3Jlc3NSZW5kZXJlciAmJiAhcHJvZ3Jlc3NSZW5kZXJlci0+c3R5bGUoKS5oYXNFZmZlY3RpdmVB
cHBlYXJhbmNlKCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwog
fQogCiBQcm9ncmVzc0lubmVyRWxlbWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNzEsNyArNzEsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZQogYm9v
bCBQcm9ncmVzc0lubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBwcm9ncmVzc1JlbmRlcmVyID0gcHJvZ3Jl
c3NFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIgJiYg
IXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpICYmIEhUTUxEaXZFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsgICAgCisgICAgcmV0dXJuIHByb2dyZXNzUmVu
ZGVyZXIgJiYgIXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5j
ZSgpICYmIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsgICAgCiB9CiAK
IFByb2dyZXNzQmFyRWxlbWVudDo6UHJvZ3Jlc3NCYXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCmluZGV4IDI5ODBhMTMzNzNjOTY2YTJkZTlmOTM0MGZmNmFmZDhjMDFiMDg3MzEuLmRiYWE4
ZDk1ZjM2MTM4Mjc0MTNlMDFkYzY2Y2YxZTFlNjVhYjZiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNzcsMTEgKzc3LDEx
IEBAIGlubGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxl
bWVudCYgaW5wdXQpCiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHNsaWRlclN0eWxlID0gaW5wdXQu
cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAogI2lmIEVOQUJMRShWSURFTykKLSAgICBpZiAoc2xpZGVy
U3R5bGUuYXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCAmJiBpbnB1dC5yZW5k
ZXJlcigpLT50aGVtZSgpLnVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpKQorICAgIGlmIChzbGlk
ZXJTdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0ICYm
IGlucHV0LnJlbmRlcmVyKCktPnRoZW1lKCkudXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSAgICByZXR1cm4gc2xpZGVyU3R5bGUuYXBw
ZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydDsKKyAgICByZXR1cm4gc2xpZGVyU3R5bGUu
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydDsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTkzLDE3ICs5MywxNyBAQCBSZW5kZXJT
bGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVyVGh1bWJFbGVtZW50JiBlbGVtZW50
LCBSZW5kZXJTdHlsZSYmCiAKIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OnVwZGF0ZUFwcGVhcmFu
Y2UoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQogewotICAgIGlmIChwYXJlbnRTdHls
ZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKLSAgICAgICAgbXV0YWJsZVN0
eWxlKCkuc2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7Ci0gICAgZWxzZSBp
ZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCkKLSAg
ICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQ
YXJ0KTsKLSAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xp
ZGVyUGFydCkKLSAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShNZWRpYVNsaWRl
clRodW1iUGFydCk7Ci0gICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQpCi0gICAgICAgIG11dGFibGVTdHlsZSgpLnNldEFwcGVhcmFu
Y2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpOwotICAgIGVsc2UgaWYgKHBhcmVudFN0eWxl
LT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCkKLSAgICAg
ICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlk
ZXJUaHVtYlBhcnQpOwotICAgIGlmIChzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkgeworICAgIGlm
IChwYXJlbnRTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFy
dCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShTbGlkZXJU
aHVtYlZlcnRpY2FsUGFydCk7CisgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxl
KCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKKyAg
ICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lZGlhU2xp
ZGVyUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShN
ZWRpYVNsaWRlclRodW1iUGFydCk7CisgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCisgICAgICAgIG11dGFibGVT
dHlsZSgpLnNldEVmZmVjdGl2ZUFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQp
OworICAgIGVsc2UgaWYgKHBhcmVudFN0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVk
aWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0
RWZmZWN0aXZlQXBwZWFyYW5jZShNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQp
OworICAgIGlmIChzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBB
U1NFUlQoZWxlbWVudCgpKTsKICAgICAgICAgdGhlbWUoKS5hZGp1c3RTbGlkZXJUaHVtYlNpemUo
bXV0YWJsZVN0eWxlKCksIGVsZW1lbnQoKSk7CiAgICAgfQpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0
ZDo6b3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyVGh1bWJFbGVtZW50OjpyZXNv
bHZlQ3VzdG9tU3R5bGUoY29uc3QKICAgICBpZiAoIWhvc3RTdHlsZSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIHN3aXRjaCAoaG9zdFN0eWxlLT5hcHBlYXJhbmNlKCkpIHsK
KyAgICBzd2l0Y2ggKGhvc3RTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpKSB7CiAgICAgY2Fz
ZSBNZWRpYVNsaWRlclBhcnQ6CiAgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKICAgICBj
YXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKQEAgLTY0OSw3ICs2NDksNyBAQCBzdGQ6Om9wdGlv
bmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZShjbwogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCi0gICAgc3dpdGNoIChob3N0U3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIHN3
aXRjaCAoaG9zdFN0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIE1lZGlh
U2xpZGVyUGFydDoKICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgogICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNDZjNDcwNTA4NTdkNGYxM2Q4
Mjc4NTZkZTFhMWJmMmIwOGE1NzhhNC4uYmQyNzYwNzE0YjdjMDljMDJmZDc0YzllNjU4YWI0OTNk
YzUxYWU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RkOjpvcHRpb25h
bDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpy
ZXNvbHZlQ3VzdG8KICAgICBpZiAoaW5wdXQgJiYgaW5wdXQtPm1heFJlc3VsdHMoKSA+PSAwKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKHNoYWRvd0hvc3RTdHlsZSAm
JiBzaGFkb3dIb3N0U3R5bGUtPmFwcGVhcmFuY2UoKSAhPSBTZWFyY2hGaWVsZFBhcnQpIHsKKyAg
ICBpZiAoc2hhZG93SG9zdFN0eWxlICYmIHNoYWRvd0hvc3RTdHlsZS0+ZWZmZWN0aXZlQXBwZWFy
YW5jZSgpICE9IFNlYXJjaEZpZWxkUGFydCkgewogICAgICAgICBTZXRGb3JTY29wZTxib29sPiBj
YW5BZGp1c3RTdHlsZUZvckFwcGVhcmFuY2UobV9jYW5BZGp1c3RTdHlsZUZvckFwcGVhcmFuY2Us
IGZhbHNlKTsKICAgICAgICAgcmV0dXJuIHJlc29sdmVTdHlsZSgmcGFyZW50U3R5bGUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAppbmRl
eCBmOTY1Yjk4OTliZTJlODVhN2M3ZTQ2MjZhYTBkYTQyMTNkYzllY2Q1Li4wZTIzMDAyNDE5OTIx
ZjAzZjg4ZThmMmI2NDg0OTU0NjE4MWVjNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC03OSwxNCArNzksMTQgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCwgTGlu
ZURpcmVjdGlvbk0KIAogYm9vbCBSZW5kZXJBdHRhY2htZW50OjpzaG91bGREcmF3Qm9yZGVyKCkg
Y29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gQm9yZGVybGVzc0F0dGFj
aG1lbnRQYXJ0KQorICAgIGlmIChzdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBCb3Jk
ZXJsZXNzQXR0YWNobWVudFBhcnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bV9zaG91bGREcmF3Qm9yZGVyOwogfQogCiB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OnBhaW50UmVw
bGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBvZmZzZXQpCiB7
Ci0gICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpTZWxlY3Rpb24gfHwgIWhh
c1Zpc2libGVCb3hEZWNvcmF0aW9ucygpIHx8ICFzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAg
ICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OlNlbGVjdGlvbiB8fCAhaGFzVmlz
aWJsZUJveERlY29yYXRpb25zKCkgfHwgIXN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHBhaW50UmVjdCA9IGJvcmRlckJveFJlY3Qo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDA0YjEyOTc0
NGRmMWFhYzdhZTY4NTI1ZjZiMjY4MTBhNWU1ZTBjMDIuLjY5Y2QwMGIyOWJiYTMwMDM1NjZkY2Fi
NWQyZjg0YjM0MGJjY2RjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcApAQCAtNzU0LDcgKzc1NCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkZE92ZXJmbG93RnJv
bVBvc2l0aW9uZWRPYmplY3RzKCkKIAogdm9pZCBSZW5kZXJCbG9jazo6YWRkVmlzdWFsT3ZlcmZs
b3dGcm9tVGhlbWUoKQogewotICAgIGlmICghc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAg
aWYgKCFzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgRmxvYXRSZWN0IGluZmxhdGVkUmVjdCA9IGJvcmRlckJveFJlY3QoKTsKQEAgLTI0NTEs
NyArMjQ1MSw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgYm9vbCBmaXJzdExpCiAgICAgICAgIC8vIEZJWE1FOiBN
aWdodCBiZSBiZXR0ZXIgdG8gaGF2ZSBhIGN1c3RvbSBDU1MgcHJvcGVydHkgaW5zdGVhZCwgc28g
dGhhdCBpZiB0aGUgdGhlbWUKICAgICAgICAgLy8gaXMgdHVybmVkIG9mZiwgY2hlY2tib3hlcy9y
YWRpb3Mgd2lsbCBzdGlsbCBoYXZlIGRlY2VudCBiYXNlbGluZXMuCiAgICAgICAgIC8vIEZJWE1F
OiBOZWVkIHRvIHBhdGNoIGZvcm0gY29udHJvbHMgdG8gZGVhbCB3aXRoIHZlcnRpY2FsIGxpbmVz
LgotICAgICAgICBpZiAoc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkgJiYgIXRoZW1lKCkuaXNDb250
cm9sQ29udGFpbmVyKHN0eWxlKCkuYXBwZWFyYW5jZSgpKSkKKyAgICAgICAgaWYgKHN0eWxlKCku
aGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpICYmICF0aGVtZSgpLmlzQ29udHJvbENvbnRhaW5lcihz
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhlbWUo
KS5iYXNlbGluZVBvc2l0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIAogICAgICAgICAvLyBDU1My
LjEgc3RhdGVzIHRoYXQgdGhlIGJhc2VsaW5lIG9mIGFuIGlubGluZSBibG9jayBpcyB0aGUgYmFz
ZWxpbmUgb2YgdGhlIGxhc3QgbGluZSBib3ggaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggNWJmYzNmYzFjZGU2MjIxMGM3OGU4MDY0ZGQyNDk2YTk0MjdmOTBjMC4u
MzA0YWExZjI3Y2E5NDE3YzM0NGYyZjEwNjUwYjVjNDMwMGZjODNhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE1MDMsNyArMTUwMyw3IEBAIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBSZW5kZXJCb3g6OmRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZShHcmFwaGljc0NvCiAKICAgICBpZiAoYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb250
ZXh0U2NhbGluZykpCiAgICAgICAgIHJldHVybiBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3Jv
dW5kOwotICAgIGlmICghc3R5bGUuaGFzQXBwZWFyYW5jZSgpICYmIGJvcmRlck9ic2N1cmVzQmFj
a2dyb3VuZCgpICYmIGJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpKQorICAgIGlmICghc3R5
bGUuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpICYmIGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZCgp
ICYmIGJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpKQogICAgICAgICByZXR1cm4gQmFja2dy
b3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4gQmFja2dyb3VuZEJs
ZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CkBAIC0xNTM5LDcgKzE1MzksNyBAQCB2b2lkIFJlbmRl
ckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaQogICAgIC8vIElmIHdlIGhhdmUgYSBuYXRpdmUgdGhlbWUgYXBwZWFyYW5j
ZSwgcGFpbnQgdGhhdCBiZWZvcmUgcGFpbnRpbmcgb3VyIGJhY2tncm91bmQuCiAgICAgLy8gVGhl
IHRoZW1lIHdpbGwgdGVsbCB1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0
aGUgQ1NTIGJhY2tncm91bmQuCiAgICAgYm9vbCBib3JkZXJPckJhY2tncm91bmRQYWludGluZ0lz
TmVlZGVkID0gdHJ1ZTsKLSAgICBpZiAoc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpIHsKKyAgICBp
ZiAoc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICAgICAgQ29udHJvbFN0
YXRlcyogY29udHJvbFN0YXRlcyA9IGNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcigqdGhpcyk7CiAg
ICAgICAgIGJvcmRlck9yQmFja2dyb3VuZFBhaW50aW5nSXNOZWVkZWQgPSB0aGVtZSgpLnBhaW50
KCp0aGlzLCAqY29udHJvbFN0YXRlcywgcGFpbnRJbmZvLCBwYWludFJlY3QpOwogICAgICAgICBp
ZiAoY29udHJvbFN0YXRlcy0+bmVlZHNSZXBhaW50KCkpCkBAIC0xNTUyLDEzICsxNTUyLDEzIEBA
IHZvaWQgUmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpCiAKICAgICAgICAgcGFpbnRCYWNrZ3JvdW5kKHBhaW50
SW5mbywgcGFpbnRSZWN0LCBibGVlZEF2b2lkYW5jZSk7CiAKLSAgICAgICAgaWYgKHN0eWxlKCku
aGFzQXBwZWFyYW5jZSgpKQorICAgICAgICBpZiAoc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJh
bmNlKCkpCiAgICAgICAgICAgICB0aGVtZSgpLnBhaW50RGVjb3JhdGlvbnMoKnRoaXMsIHBhaW50
SW5mbywgcGFpbnRSZWN0KTsKICAgICB9CiAgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRJbmZvLCBw
YWludFJlY3QsIHN0eWxlKCksIFNoYWRvd1N0eWxlOjpJbnNldCk7CiAKICAgICAvLyBUaGUgdGhl
bWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBD
U1MgYm9yZGVyLgotICAgIGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNr
Z3JvdW5kT3ZlckJvcmRlciAmJiAoIXN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpIHx8IChib3JkZXJP
ckJhY2tncm91bmRQYWludGluZ0lzTmVlZGVkICYmIHRoZW1lKCkucGFpbnRCb3JkZXJPbmx5KCp0
aGlzLCBwYWludEluZm8sIHBhaW50UmVjdCkpKSAmJiBzdHlsZSgpLmhhc1Zpc2libGVCb3JkZXJE
ZWNvcmF0aW9uKCkpCisgICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZEJh
Y2tncm91bmRPdmVyQm9yZGVyICYmICghc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkg
fHwgKGJvcmRlck9yQmFja2dyb3VuZFBhaW50aW5nSXNOZWVkZWQgJiYgdGhlbWUoKS5wYWludEJv
cmRlck9ubHkoKnRoaXMsIHBhaW50SW5mbywgcGFpbnRSZWN0KSkpICYmIHN0eWxlKCkuaGFzVmlz
aWJsZUJvcmRlckRlY29yYXRpb24oKSkKICAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBw
YWludFJlY3QsIHN0eWxlKCksIGJsZWVkQXZvaWRhbmNlKTsKIAogICAgIGlmIChibGVlZEF2b2lk
YW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKQEAgLTE2MzMsNyAr
MTYzMyw3IEBAIGJvb2wgUmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0KSBjCiAgICAgLy8gV2UgY2Fubm90IGJlIHN1
cmUgaWYgdGhlbWUgcGFpbnRzIHRoZSBiYWNrZ3JvdW5kIG9wYXF1ZS4KICAgICAvLyBJbiB0aGlz
IGNhc2UgaXQgaXMgc2FmZSB0byBub3QgYXNzdW1lIG9wYXF1ZW5lc3MuCiAgICAgLy8gRklYTUU6
IE1heSBiZSBhc2sgdGhlbWUgaWYgaXQgcGFpbnRzIG9wYXF1ZS4KLSAgICBpZiAoc3R5bGUoKS5o
YXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKHN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gRklYTUU6IENoZWNrIHRoZSBvcGFxdWVu
ZXNzIG9mIGJhY2tncm91bmQgaW1hZ2VzLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA4ODhkZTMyODNmOTI2MmM1YmQyMGVm
MjU5ODk2MGU0YTY4YzBlNzFmLi45NGI2NDE0MjAxYmQxZDMyMTAwZDM4MzAyODg5YjRjZjYwODQ0
NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3
aWxsQmVEZXN0cm95ZWQoKQogCiBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpoYXNWaXNpYmxl
Qm94RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzQmFja2dyb3VuZCgp
IHx8IHN0eWxlKCkuaGFzVmlzaWJsZUJvcmRlckRlY29yYXRpb24oKSB8fCBzdHlsZSgpLmhhc0Fw
cGVhcmFuY2UoKSB8fCBzdHlsZSgpLmJveFNoYWRvdygpOworICAgIHJldHVybiBoYXNCYWNrZ3Jv
dW5kKCkgfHwgc3R5bGUoKS5oYXNWaXNpYmxlQm9yZGVyRGVjb3JhdGlvbigpIHx8IHN0eWxlKCku
aGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpIHx8IHN0eWxlKCkuYm94U2hhZG93KCk7CiB9CiAKIHZv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21TdHlsZSgpCkBAIC0yMzMxLDcgKzIz
MzEsNyBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxp
ZWRUb0JhY2tncm91bmQoY29uc3QgTGF5b3V0UG9pbgogICAgIGlmIChibGVlZEF2b2lkYW5jZSAh
PSBCYWNrZ3JvdW5kQmxlZWROb25lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKHN0eWxlKCkuaGFzRWZmZWN0aXZlQXBw
ZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGhhc09uZU5vcm1h
bEJveFNoYWRvdyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA0MDQxNDU2NDNkYzYwMDEwYWE2ZWY3MmM2MWY5ZGIwMjNh
NTk3ZGJjLi41MDE0NDJmMjAxZTg5NTdhMTlkMDNiZTM2ZGRkNTcyMDc3YjUyY2JkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNzcx
LDcgKzc3MSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVCbGVuZE1vZGUoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
Q3VzdG9tQXBwZWFyYW5jZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0gICAgQ29udHJv
bFBhcnQgYXBwZWFyYW5jZSA9IHN0eWxlLmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBh
cHBlYXJhbmNlID0gc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogICAgIGlmIChhcHBlYXJh
bmNlID09IE1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmRQYXJ0KQogICAgICAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldEN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBw
ZWFyYW5jZTo6TGlnaHRCYWNrZHJvcCk7CiAgICAgZWxzZSBpZiAoYXBwZWFyYW5jZSA9PSBNZWRp
YUNvbnRyb2xzRGFya0JhckJhY2tncm91bmRQYXJ0KQpAQCAtMjQ2OCw3ICsyNDY4LDcgQEAgZmxv
YXQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkoZmxvYXQgcmVuZGVyZXJP
cGFjaXR5KSBjb25zdAogLy8gRklYTUU6IENvZGUgaXMgZHVwbGljYXRlZCBpbiBSZW5kZXJMYXll
ci4gQWxzbywgd2Ugc2hvdWxkIHByb2JhYmx5IG5vdCBjb25zaWRlciBmaWx0ZXJzIGEgYm94IGRl
Y29yYXRpb24gaGVyZS4KIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNWaXNpYmxlQm94RGVjb3JhdGlv
bnMoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIHJldHVybiBzdHlsZS5oYXNWaXNp
YmxlQm9yZGVyKCkgfHwgc3R5bGUuaGFzQm9yZGVyUmFkaXVzKCkgfHwgc3R5bGUuaGFzT3V0bGlu
ZSgpIHx8IHN0eWxlLmhhc0FwcGVhcmFuY2UoKSB8fCBzdHlsZS5ib3hTaGFkb3coKSB8fCBzdHls
ZS5oYXNGaWx0ZXIoKTsKKyAgICByZXR1cm4gc3R5bGUuaGFzVmlzaWJsZUJvcmRlcigpIHx8IHN0
eWxlLmhhc0JvcmRlclJhZGl1cygpIHx8IHN0eWxlLmhhc091dGxpbmUoKSB8fCBzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgfHwgc3R5bGUuYm94U2hhZG93KCkgfHwgc3R5bGUuaGFzRmls
dGVyKCk7CiB9CiAKIHN0YXRpYyBib29sIGNhbkRpcmVjdGx5Q29tcG9zaXRlQmFja2dyb3VuZEJh
Y2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXgg
ZGYyYmVlMTg2MTVlNWRkMmIwMzUxNjU3ZjdiNDA3ZDNlYThiZDE4ZC4uYTFlNWU4NzMyZTA3YTg5
MTRlZDdkZTVkZmJiMzRjNjUzNmM4MmU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMTExOCw3ICsxMTE4
LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
TGlzdCBib3ggcGFydHMgaGFuZGxlIHRoZSBzY3JvbGxiYXJzIGJ5IHRoZW1zZWx2ZXMgc28gd2Ug
aGF2ZSBub3RoaW5nIHRvIGRvLgotICAgIGlmIChib3gtPnN0eWxlKCkuYXBwZWFyYW5jZSgpID09
IExpc3Rib3hQYXJ0KQorICAgIGlmIChib3gtPnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgp
ID09IExpc3Rib3hQYXJ0KQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGhhZFZlcnRpY2Fs
U2Nyb2xsYmFyID0gaGFzVmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTExMzgsNyArMTEzOCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5
b3V0KCkKICAgICBBU1NFUlQoYm94KTsKIAogICAgIC8vIExpc3QgYm94IHBhcnRzIGhhbmRsZSB0
aGUgc2Nyb2xsYmFycyBieSB0aGVtc2VsdmVzIHNvIHdlIGhhdmUgbm90aGluZyB0byBkby4KLSAg
ICBpZiAoYm94LT5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKKyAgICBpZiAo
Ym94LT5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRIb3Jpem9udGFsU2Nyb2xsYmFyID0gaGFzSG9yaXpv
bnRhbFNjcm9sbGJhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKaW5kZXggNzczMjMzYzE0ZmMyMWI0ZTI4MmMxYjE5ZjI1NGJmMTlmYjI1MjFiNy4uNDVj
NTFmZDEwMGI3ZjgxOThmM2JhZDEyMzcyZTEzYTNhZGNmZDExNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC01NDAsNyArNTQwLDcgQEAgUG9wdXBN
ZW51U3R5bGUgUmVuZGVyTWVudUxpc3Q6Om1lbnVTdHlsZSgpIGNvbnN0CiAgICAgSW50UmVjdCBh
YnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwog
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZShzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eUNvbG9yKSwgc3R5bGVUb1VzZS52aXNpdGVkRGVw
ZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLAog
ICAgICAgICBzdHlsZVRvVXNlLmZvbnRDYXNjYWRlKCksIHN0eWxlVG9Vc2UudmlzaWJpbGl0eSgp
ID09IFZpc2liaWxpdHk6OlZpc2libGUsIHN0eWxlVG9Vc2UuZGlzcGxheSgpID09IERpc3BsYXlU
eXBlOjpOb25lLAotICAgICAgICBzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSAmJiBzdHlsZSgpLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQsIHN0eWxlVG9Vc2UudGV4dEluZGVudCgpLAorICAg
ICAgICBzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSAmJiBzdHlsZSgpLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQsIHN0eWxlVG9Vc2UudGV4dEluZGVudCgpLAog
ICAgICAgICBzdHlsZSgpLmRpcmVjdGlvbigpLCBpc092ZXJyaWRlKHN0eWxlKCkudW5pY29kZUJp
ZGkoKSksIFBvcHVwTWVudVN0eWxlOjpEZWZhdWx0QmFja2dyb3VuZENvbG9yLAogICAgICAgICBQ
b3B1cE1lbnVTdHlsZTo6U2VsZWN0UG9wdXAsIHRoZW1lKCkucG9wdXBNZW51U2l6ZShzdHlsZVRv
VXNlLCBhYnNCb3VuZHMpKTsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQCBjb25zdCBpbnQgZW5kT2ZM
aW5lUGFkZGluZyA9IDI7CiAKIExheW91dFVuaXQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudFBhZGRp
bmdMZWZ0KCkgY29uc3QKIHsKLSAgICBpZiAoKHN0eWxlKCkuYXBwZWFyYW5jZSgpID09IE1lbnVs
aXN0UGFydCB8fCBzdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpICYm
IHN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKSB7CisgICAgaWYgKChz
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQgfHwgc3R5bGUoKS5l
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KSAmJiBzdHlsZSgpLmRp
cmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTCkgewogICAgICAgICAvLyBGb3IgdGhlc2Ug
YXBwZWFyYW5jZSB2YWx1ZXMsIHRoZSB0aGVtZSBhcHBsaWVzIHBhZGRpbmcgdG8gbGVhdmUgcm9v
bSBmb3IgdGhlCiAgICAgICAgIC8vIGRyb3AtZG93biBidXR0b24uIEJ1dCBsZWF2aW5nIHJvb20g
Zm9yIHRoZSBidXR0b24gaW5zaWRlIHRoZSBwb3B1cCBtZW51IGl0c2VsZgogICAgICAgICAvLyBs
b29rcyBzdHJhbmdlLCBzbyB3ZSByZXR1cm4gYSBzbWFsbCBkZWZhdWx0IHBhZGRpbmcgdG8gYXZv
aWQgaGF2aW5nIGEgbGFyZ2UgZW1wdHkKQEAgLTU4Niw3ICs1ODYsNyBAQCBMYXlvdXRVbml0IFJl
bmRlck1lbnVMaXN0OjpjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0CiAKIExheW91dFVuaXQgUmVu
ZGVyTWVudUxpc3Q6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiB7Ci0gICAgaWYgKChzdHls
ZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQgfHwgc3R5bGUoKS5hcHBlYXJhbmNlKCkg
PT0gTWVudWxpc3RCdXR0b25QYXJ0KSAmJiBzdHlsZSgpLmRpcmVjdGlvbigpID09IFRleHREaXJl
Y3Rpb246OkxUUikKKyAgICBpZiAoKHN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1l
bnVsaXN0UGFydCB8fCBzdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1
dHRvblBhcnQpICYmIHN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6TFRSKQog
ICAgICAgICByZXR1cm4gZW5kT2ZMaW5lUGFkZGluZzsKIAogICAgIHJldHVybiBwYWRkaW5nUmln
aHQoKSArIG1faW5uZXJCbG9jay0+cGFkZGluZ1JpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAzOGFhYTBlZTU4YTAzODRmNWI3ODI5MmQ2
MDgxMDRiNGUxODcxODkyLi4zZjgzOTFiYzhlMDI0NmIyNmU4NTUyMmY0YmM2NjE4YWVkYTEwNTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRlQW5pbWF0aW9uU3RhdGUoKQog
ICAgIG1fYW5pbWF0aW9uRHVyYXRpb24gPSB0aGVtZSgpLmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJv
Z3Jlc3NCYXIoKnRoaXMpOwogICAgIG1fYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWwgPSB0aGVtZSgp
LmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoKnRoaXMpOwogCi0gICAgYm9v
bCBhbmltYXRpbmcgPSBzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSAmJiBtX2FuaW1hdGlvblJlcGVh
dEludGVydmFsID4gMF9zICYmICFpc0RldGVybWluYXRlKCk7CisgICAgYm9vbCBhbmltYXRpbmcg
PSBzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSAmJiBtX2FuaW1hdGlvblJlcGVhdElu
dGVydmFsID4gMF9zICYmICFpc0RldGVybWluYXRlKCk7CiAgICAgaWYgKGFuaW1hdGluZyA9PSBt
X2FuaW1hdGluZykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmNwcAppbmRleCBlOGQ0MGJhNjQ1YTI4ZDdhYTEzNjg5YjBmNGVmNjk5MjBhYWE5
Y2NlLi5iOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAzM2E4NWU4NzFjMDVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTkwLDE2ICs5MCwxNiBAQCB2b2lk
IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0CiAgICAgaWYgKHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSAmJiBp
c0NvbnRyb2xTdHlsZWQoc3R5bGUsICp1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUpKSB7CiAgICAg
ICAgIHN3aXRjaCAocGFydCkgewogICAgICAgICBjYXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAg
ICAgIHN0eWxlLnNldEFwcGVhcmFuY2UoTWVudWxpc3RCdXR0b25QYXJ0KTsKKyAgICAgICAgICAg
IHN0eWxlLnNldEVmZmVjdGl2ZUFwcGVhcmFuY2UoTWVudWxpc3RCdXR0b25QYXJ0KTsKICAgICAg
ICAgICAgIHBhcnQgPSBNZW51bGlzdEJ1dHRvblBhcnQ7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN0eWxlLnNldEFwcGVhcmFuY2UoTm9Db250cm9s
UGFydCk7CisgICAgICAgICAgICBzdHlsZS5zZXRFZmZlY3RpdmVBcHBlYXJhbmNlKE5vQ29udHJv
bFBhcnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
IXN0eWxlLmhhc0FwcGVhcmFuY2UoKSkKKyAgICBpZiAoIXN0eWxlLmhhc0VmZmVjdGl2ZUFwcGVh
cmFuY2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFzdXBwb3J0c0JveFNoYWRvdyhz
dHlsZSkpCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdAogI2VuZGlm
CiAKICAgICAvLyBDYWxsIHRoZSBhcHByb3ByaWF0ZSBzdHlsZSBhZGp1c3RtZW50IG1ldGhvZCBi
YXNlZCBvZmYgdGhlIGFwcGVhcmFuY2UgdmFsdWUuCi0gICAgc3dpdGNoIChzdHlsZS5hcHBlYXJh
bmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogI2lm
ICFVU0UoTkVXX1RIRU1FKQogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICByZXR1cm4g
YWRqdXN0Q2hlY2tib3hTdHlsZShzdHlsZSwgZWxlbWVudCk7CkBAIC0yNzMsMTEgKzI3MywxMSBA
QCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0CiB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTZWFyY2hG
aWVsZERlY29yYXRpb25TdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpIGNvbnN0CiB7CiAgICAgaWYgKGlzPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ+KGVsZW1lbnQpICYmICFkb3duY2FzdDxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
PigqZWxlbWVudCkuY2FuQWRqdXN0U3R5bGVGb3JBcHBlYXJhbmNlKCkpIHsKLSAgICAgICAgc3R5
bGUuc2V0QXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKKyAgICAgICAgc3R5bGUuc2V0RWZmZWN0
aXZlQXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHN3aXRjaCAoc3R5bGUuYXBwZWFyYW5jZSgpKSB7CisgICAgc3dpdGNoIChzdHlsZS5lZmZl
Y3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnQ6
CiAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUoc3R5
bGUsIGVsZW1lbnQpOwogICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQ6
CkBAIC0zMDUsNyArMzA1LDcgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVy
Qm94JiBib3gsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICAgICBpZiAoVU5M
SUtFTFkoIWNhblBhaW50KHBhaW50SW5mbywgYm94LnNldHRpbmdzKCkpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgQ29udHJvbFBhcnQgcGFydCA9IGJveC5zdHlsZSgpLmFwcGVhcmFu
Y2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gYm94LnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFy
YW5jZSgpOwogICAgIEludFJlY3QgaW50ZWdyYWxTbmFwcGVkUmVjdCA9IHNuYXBwZWRJbnRSZWN0
KHJlY3QpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gYm94LmRvY3VtZW50KCkuZGV2
aWNlU2NhbGVGYWN0b3IoKTsKICAgICBGbG9hdFJlY3QgZGV2aWNlUGl4ZWxTbmFwcGVkUmVjdCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdCwgZGV2aWNlU2NhbGVGYWN0b3IpOwpAQCAtNDUw
LDExICs0NTAsMTEgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KGNvbnN0IFJl
bmRlckJveCYgYm94LCBjb25zdCBQYWludEluZm8mIHBhaW50SW4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBib3guc3R5bGUo
KS5hcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydDsKKyAgICByZXR1cm4gYm94LnN0eWxlKCku
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpICE9IE5vQ29udHJvbFBhcnQ7CiAjZWxzZQogICAgIEZsb2F0
UmVjdCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0
LCBib3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICAvLyBDYWxsIHRoZSBh
cHByb3ByaWF0ZSBwYWludCBtZXRob2QgYmFzZWQgb2ZmIHRoZSBhcHBlYXJhbmNlIHZhbHVlLgot
ICAgIHN3aXRjaCAoYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpKSB7CisgICAgc3dpdGNoIChib3gu
c3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIFRleHRGaWVsZFBhcnQ6
CiAgICAgICAgIHJldHVybiBwYWludFRleHRGaWVsZChib3gsIHBhaW50SW5mbywgZGV2aWNlUGl4
ZWxTbmFwcGVkUmVjdCk7CiAgICAgY2FzZSBMaXN0Ym94UGFydDoKQEAgLTUwNyw3ICs1MDcsNyBA
QCB2b2lkIFJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKGNvbnN0IFJlbmRlckJveCYgYm94
LCBjb25zdCBQYWludEluZm8mIHBhaW50SQogICAgIEZsb2F0UmVjdCBkZXZpY2VQaXhlbFNuYXBw
ZWRSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0LCBib3guZG9jdW1lbnQoKS5kZXZp
Y2VTY2FsZUZhY3RvcigpKTsKIAogICAgIC8vIENhbGwgdGhlIGFwcHJvcHJpYXRlIHBhaW50IG1l
dGhvZCBiYXNlZCBvZmYgdGhlIGFwcGVhcmFuY2UgdmFsdWUuCi0gICAgc3dpdGNoIChib3guc3R5
bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKGJveC5zdHlsZSgpLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSkgewogICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgogICAgICAgICBwYWlu
dE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnMoYm94LCBwYWludEluZm8sIGRldmljZVBpeGVsU25h
cHBlZFJlY3QpOwogICAgICAgICBicmVhazsKQEAgLTcyMCw3ICs3MjAsNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eQogaW50IFJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJl
bmRlckJveCYgYm94KSBjb25zdAogewogI2lmIFVTRShORVdfVEhFTUUpCi0gICAgcmV0dXJuIGJv
eC5oZWlnaHQoKSArIGJveC5tYXJnaW5Ub3AoKSArIFRoZW1lOjpzaW5nbGV0b24oKS5iYXNlbGlu
ZVBvc2l0aW9uQWRqdXN0bWVudChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkpICogYm94LnN0eWxl
KCkuZWZmZWN0aXZlWm9vbSgpOworICAgIHJldHVybiBib3guaGVpZ2h0KCkgKyBib3gubWFyZ2lu
VG9wKCkgKyBUaGVtZTo6c2luZ2xldG9uKCkuYmFzZWxpbmVQb3NpdGlvbkFkanVzdG1lbnQoYm94
LnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpKSAqIGJveC5zdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKTsKICNlbHNlCiAgICAgcmV0dXJuIGJveC5oZWlnaHQoKSArIGJveC5tYXJnaW5Ub3AoKTsK
ICNlbmRpZgpAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OmlzQ29udHJvbENv
bnRhaW5lcihDb250cm9sUGFydCBhcHBlYXJhbmNlKSBjb25zdAogCiBib29sIFJlbmRlclRoZW1l
Ojppc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChzdHlsZS5hcHBlYXJh
bmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAg
IGNhc2UgUHVzaEJ1dHRvblBhcnQ6CiAgICAgY2FzZSBTcXVhcmVCdXR0b25QYXJ0OgogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNzY3LDcgKzc2Nyw3IEBAIHZvaWQgUmVuZGVyVGhl
bWU6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEZsb2F0
UmVjdCYgcmVjCiB7CiAjaWYgVVNFKE5FV19USEVNRSkKICAgICBDb250cm9sU3RhdGVzIHN0YXRl
cyhleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKHJlbmRlcmVyKSk7Ci0gICAgVGhlbWU6
OnNpbmdsZXRvbigpLmluZmxhdGVDb250cm9sUGFpbnRSZWN0KHJlbmRlcmVyLnN0eWxlKCkuYXBw
ZWFyYW5jZSgpLCBzdGF0ZXMsIHJlY3QsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KTsKKyAgICBUaGVtZTo6c2luZ2xldG9uKCkuaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QocmVuZGVy
ZXIuc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCksIHN0YXRlcywgcmVjdCwgcmVuZGVyZXIu
c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVuZGVy
ZXIpOwogICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKQEAgLTc3Niw3ICs3NzYsNyBAQCB2b2lkIFJl
bmRlclRoZW1lOjphZGp1c3RSZXBhaW50UmVjdChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
LCBGbG9hdFJlY3QmIHJlYwogCiBib29sIFJlbmRlclRoZW1lOjpzdXBwb3J0c0ZvY3VzUmluZyhj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChzdHlsZS5oYXNB
cHBlYXJhbmNlKCkgJiYgc3R5bGUuYXBwZWFyYW5jZSgpICE9IFRleHRGaWVsZFBhcnQgJiYgc3R5
bGUuYXBwZWFyYW5jZSgpICE9IFRleHRBcmVhUGFydCAmJiBzdHlsZS5hcHBlYXJhbmNlKCkgIT0g
TWVudWxpc3RCdXR0b25QYXJ0ICYmIHN0eWxlLmFwcGVhcmFuY2UoKSAhPSBMaXN0Ym94UGFydCk7
CisgICAgcmV0dXJuIChzdHlsZS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkgJiYgc3R5bGUuZWZm
ZWN0aXZlQXBwZWFyYW5jZSgpICE9IFRleHRGaWVsZFBhcnQgJiYgc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpICE9IFRleHRBcmVhUGFydCAmJiBzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
IT0gTWVudWxpc3RCdXR0b25QYXJ0ICYmIHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSAhPSBM
aXN0Ym94UGFydCk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWU6OnN0YXRlQ2hhbmdlZChjb25zdCBS
ZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0ZSkgY29uc3QKQEAgLTky
NCw3ICs5MjQsNyBAQCBib29sIFJlbmRlclRoZW1lOjppc0RlZmF1bHQoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogICAgIGlmICghaXNBY3RpdmUobykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IERlZmF1bHRCdXR0b25Q
YXJ0OworICAgIHJldHVybiBvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IERlZmF1
bHRCdXR0b25QYXJ0OwogfQogCiAjaWYgIVVTRShORVdfVEhFTUUpCkBAIC0xMDg5LDcgKzEwODks
NyBAQCB2b2lkIFJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9iamVj
dCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludAogCiAgICAgZG91YmxlIG1pbiA9IGlucHV0Lm1p
bmltdW0oKTsKICAgICBkb3VibGUgbWF4ID0gaW5wdXQubWF4aW11bSgpOwotICAgIENvbnRyb2xQ
YXJ0IHBhcnQgPSBvLnN0eWxlKCkuYXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHBhcnQg
PSBvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogICAgIC8vIFdlIGRvbid0IHN1cHBv
cnQgdGlja3Mgb24gYWx0ZXJuYXRlIHNsaWRlcnMgbGlrZSBNZWRpYVZvbHVtZVNsaWRlcnMuCiAg
ICAgaWYgKHBhcnQgIT0gIFNsaWRlckhvcml6b250YWxQYXJ0ICYmIHBhcnQgIT0gU2xpZGVyVmVy
dGljYWxQYXJ0KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCmluZGV4IGY0NTk4NGI2NzQzNTNhODRlYTBlMjQ4ZjAw
NTliYTYwOWI2MTVhZjIuLjMyYWI1YzJjOTg2MjM0NDIzZWE0OWZmODQxYzM1N2EzYThkZGM2YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAgUmVuZGVyVGhlbWUmIFJlbmRlclRoZW1lOjpzaW5nbGV0b24o
KQogCiBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6c3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotICAgIHN3aXRjaCAoc3R5bGUuYXBwZWFyYW5jZSgp
KSB7CisgICAgc3dpdGNoIChzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNl
IFB1c2hCdXR0b25QYXJ0OgogICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICBjYXNlIFRleHRGaWVs
ZFBhcnQ6CkBAIC0zNjAsNyArMzYwLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUFkd2FpdGE6OmFkanVz
dE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGUKIAogTGVu
Z3RoQm94IFJlbmRlclRoZW1lQWR3YWl0YTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTZXR0aW5ncyYpIGNvbnN0CiB7Ci0gICAgaWYgKHN0
eWxlLmFwcGVhcmFuY2UoKSA9PSBOb0NvbnRyb2xQYXJ0KQorICAgIGlmIChzdHlsZS5lZmZlY3Rp
dmVBcHBlYXJhbmNlKCkgPT0gTm9Db250cm9sUGFydCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIGludCBsZWZ0UGFkZGluZyA9IG1lbnVMaXN0QnV0dG9uUGFkZGluZyArIChzdHlsZS5kaXJl
Y3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEwgPyBtZW51TGlzdEJ1dHRvbkFycm93U2l6ZSA6
IDApOwpAQCAtNDk4LDcgKzQ5OCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVBZHdhaXRhOjpwYWludFNs
aWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zCiAgICAgYXV0
byYgZ3JhcGhpY3NDb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQoKTsKICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3JhcGhpY3NDb250ZXh0KTsKIAotICAgIENvbnRy
b2xQYXJ0IHBhcnQgPSByZW5kZXJPYmplY3Quc3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAgQ29u
dHJvbFBhcnQgcGFydCA9IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KTsKICAgICBBU1NFUlQocGFydCA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNs
aWRlclZlcnRpY2FsUGFydCk7CiAKICAgICBGbG9hdFJlY3QgZmllbGRSZWN0ID0gcmVjdDsKQEAg
LTU4MSw3ICs1ODEsNyBAQCBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6cGFpbnRTbGlkZXJUcmFj
ayhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29ucwogCiB2b2lkIFJlbmRlclRo
ZW1lQWR3YWl0YTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlJiBzdHlsZSwgY29u
c3QgRWxlbWVudCopIGNvbnN0CiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxlLmFwcGVh
cmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5j
ZSgpOwogICAgIGlmIChwYXJ0ICE9IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgJiYgcGFydCAh
PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgcmV0dXJuOwogCkBAIC01OTQsNyAr
NTk0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUFkd2FpdGE6OnBhaW50U2xpZGVyVGh1bWIoY29uc3Qg
UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnMKICAgICBhdXRvJiBncmFwaGljc0NvbnRl
eHQgPSBwYWludEluZm8uY29udGV4dCgpOwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwogCi0gICAgQVNTRVJUKHJlbmRlck9iamVjdC5z
dHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IHJlbmRl
ck9iamVjdC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7
CisgICAgQVNTRVJUKHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9
PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVj
dGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7CiAKICAgICBTUkdC
QTx1aW50OF90PiBzbGlkZXJUaHVtYkJhY2tncm91bmRDb2xvcjsKICAgICBTUkdCQTx1aW50OF90
PiBzbGlkZXJUaHVtYkJhY2tncm91bmRIb3ZlcmVkQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNDgyNzUxN2Q0ZWZkNDExYjg0ODNhZDk3ZDBm
ZmY2YjFiMmZjNmVmZi4uNmRkN2U4OTRlMjk0OGQ4YjFkM2Q1YzI3NWE0MmRmMmMwNTdkMDk2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtNDQ2LDcg
KzQ0Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50Q2hlY2tib3hEZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpCiBMYXlvdXRSZWN0IFJlbmRlclRoZW1l
SU9TOjphZGp1c3RlZFBhaW50UmVjdChjb25zdCBSZW5kZXJCb3gmIGJveCwgY29uc3QgTGF5b3V0
UmVjdCYgcGFpbnRSZWN0KSBjb25zdAogewogICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8v
cHJvYmxlbS82MjA5NzYzPi4gRm9yY2UgdGhlIHBhaW50aW5nIGJvdW5kcyBvZiBjaGVja2JveGVz
IGFuZCByYWRpbyBjb250cm9scyB0byBiZSBzcXVhcmUuCi0gICAgaWYgKGJveC5zdHlsZSgpLmFw
cGVhcmFuY2UoKSA9PSBDaGVja2JveFBhcnQgfHwgYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpID09
IFJhZGlvUGFydCkgeworICAgIGlmIChib3guc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
PT0gQ2hlY2tib3hQYXJ0IHx8IGJveC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBS
YWRpb1BhcnQpIHsKICAgICAgICAgZmxvYXQgd2lkdGggPSBzdGQ6Om1pbihwYWludFJlY3Qud2lk
dGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKTsKICAgICAgICAgZmxvYXQgaGVpZ2h0ID0gd2lkdGg7
CiAgICAgICAgIHJldHVybiBlbmNsb3NpbmdMYXlvdXRSZWN0KEZsb2F0UmVjdChwYWludFJlY3Qu
eCgpLCBwYWludFJlY3QueSgpICsgKGJveC5oZWlnaHQoKSAtIGhlaWdodCkgLyAyLCB3aWR0aCwg
aGVpZ2h0KSk7IC8vIFZlcnRpY2FsbHkgY2VudGVyIHRoZSBjaGVja2JveCwgbGlrZSBvbiBkZXNr
dG9wCkBAIC00NTcsOSArNDU3LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0
ZWRQYWludFJlY3QoY29uc3QgUmVuZGVyQm94JiBib3gsIGNvbnN0IExheW91dFIKIAogaW50IFJl
bmRlclRoZW1lSU9TOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYgYm94KSBjb25z
dAogewotICAgIGlmIChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gQ2hlY2tib3hQYXJ0IHx8
IGJveC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBSYWRpb1BhcnQpCisgICAgaWYgKGJveC5zdHls
ZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBDaGVja2JveFBhcnQgfHwgYm94LnN0eWxlKCku
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFJhZGlvUGFydCkKICAgICAgICAgcmV0dXJuIGJveC5t
YXJnaW5Ub3AoKSArIGJveC5oZWlnaHQoKSAtIDI7IC8vIFRoZSBiYXNlbGluZSBpcyAycHggdXAg
ZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBjaGVja2JveC9yYWRpbyBpbiBBcHBLaXQuCi0gICAgaWYg
KGJveC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCisgICAgaWYgKGJveC5z
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCiAgICAgICAgIHJl
dHVybiBib3gubWFyZ2luVG9wKCkgKyBib3guaGVpZ2h0KCkgLSA1OyAvLyBUaGlzIGlzIHRvIG1h
dGNoIEFwcEtpdC4gVGhlcmUgbWlnaHQgYmUgYSBiZXR0ZXIgd2F5IHRvIGNhbGN1bGF0ZSB0aGlz
IHRob3VnaC4KICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OmJhc2VsaW5lUG9zaXRpb24oYm94KTsK
IH0KQEAgLTQ2NywxMCArNDY3LDEwIEBAIGludCBSZW5kZXJUaGVtZUlPUzo6YmFzZWxpbmVQb3Np
dGlvbihjb25zdCBSZW5kZXJCb3gmIGJveCkgY29uc3QKIGJvb2wgUmVuZGVyVGhlbWVJT1M6Omlz
Q29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
JiB1c2VyQWdlbnRTdHlsZSkgY29uc3QKIHsKICAgICAvLyBCdXR0b25zIGFuZCBNZW51bGlzdEJ1
dHRvbnMgYXJlIHN0eWxlZCBpZiB0aGV5IGNvbnRhaW4gYSBiYWNrZ3JvdW5kIGltYWdlLgotICAg
IGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gUHVzaEJ1dHRvblBhcnQgfHwgc3R5bGUuYXBwZWFy
YW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkKKyAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpID09IFB1c2hCdXR0b25QYXJ0IHx8IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpCiAgICAgICAgIHJldHVybiAhc3R5bGUudmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5pc1Zpc2libGUoKSB8fCBz
dHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCkuaGFzSW1hZ2UoKTsKIAotICAgIGlmIChzdHlsZS5hcHBl
YXJhbmNlKCkgPT0gVGV4dEZpZWxkUGFydCB8fCBzdHlsZS5hcHBlYXJhbmNlKCkgPT0gVGV4dEFy
ZWFQYXJ0KQorICAgIGlmIChzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxk
UGFydCB8fCBzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gVGV4dEFyZWFQYXJ0KQogICAg
ICAgICByZXR1cm4gc3R5bGUuYmFja2dyb3VuZExheWVycygpICE9IHVzZXJBZ2VudFN0eWxlLmJh
Y2tncm91bmRMYXllcnMoKTsKIAogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6aXNDb250cm9sU3R5
bGVkKHN0eWxlLCB1c2VyQWdlbnRTdHlsZSk7CkBAIC01OTUsNyArNTk1LDcgQEAgTGVuZ3RoQm94
IFJlbmRlclRoZW1lSU9TOjpwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnMKICAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxm
bG9hdD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KSk7CiAgICAgfQogCi0gICAgaWYgKHN0eWxlLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpIHsKKyAgICBpZiAoc3R5bGUuZWZmZWN0
aXZlQXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkgewogICAgICAgICBpZiAoc3R5
bGUuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKQogICAgICAgICAgICAgcmV0dXJu
IHsgMCwgMCwgMCwgc3RhdGljX2Nhc3Q8aW50PihwYWRkaW5nICsgc3R5bGUuYm9yZGVyVG9wV2lk
dGgoKSkgfTsKICAgICAgICAgcmV0dXJuIHsgMCwgc3RhdGljX2Nhc3Q8aW50PihwYWRkaW5nICsg
c3R5bGUuYm9yZGVyVG9wV2lkdGgoKSksIDAsIDAgfTsKQEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgY2FuQWRqdXN0Qm9yZGVyUmFkaXVzRm9yQXBwZWFyYW5jZShDb250cm9s
UGFydCBhcHBlYXJhbmNlLCBjbwogCiB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSb3VuZEJv
cmRlclJhZGl1cyhSZW5kZXJTdHlsZSYgc3R5bGUsIFJlbmRlckJveCYgYm94KQogewotICAgIGlm
ICghY2FuQWRqdXN0Qm9yZGVyUmFkaXVzRm9yQXBwZWFyYW5jZShzdHlsZS5hcHBlYXJhbmNlKCks
IGJveCkgfHwgc3R5bGUuYmFja2dyb3VuZExheWVycygpLmhhc0ltYWdlKCkpCisgICAgaWYgKCFj
YW5BZGp1c3RCb3JkZXJSYWRpdXNGb3JBcHBlYXJhbmNlKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFu
Y2UoKSwgYm94KSB8fCBzdHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCkuaGFzSW1hZ2UoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKChpczxSZW5kZXJCdXR0b24+KGJveCkgfHwgaXM8UmVuZGVy
TWVudUxpc3Q+KGJveCkpICYmIGJveC5oZWlnaHQoKSA+PSBsYXJnZUJ1dHRvblNpemUpIHsKQEAg
LTg3Niw3ICs4NzYsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNrKGNv
bnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWludEluZm8mCiAgICAgYXV0byYgc3R5bGUg
PSBib3guc3R5bGUoKTsKIAogICAgIGJvb2wgaXNIb3Jpem9udGFsID0gdHJ1ZTsKLSAgICBzd2l0
Y2ggKHN0eWxlLmFwcGVhcmFuY2UoKSkgeworICAgIHN3aXRjaCAoc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpKSB7CiAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKICAgICAgICAgaXNI
b3Jpem9udGFsID0gdHJ1ZTsKICAgICAgICAgLy8gSW5zZXQgc2xpZ2h0bHkgc28gdGhlIHRodW1i
IGNvdmVycyB0aGUgZWRnZS4KQEAgLTk1MCw3ICs5NTAsNyBAQCBib29sIFJlbmRlclRoZW1lSU9T
OjpwYWludFNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWludElu
Zm8mCiAKIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAogewotICAgIGlmIChzdHlsZS5hcHBl
YXJhbmNlKCkgIT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCAmJiBzdHlsZS5hcHBlYXJhbmNl
KCkgIT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSAhPSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0ICYmIHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSAhPSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gRW5mb3JjZSAiYm9yZGVyLXJhZGl1czogNTAlIi4KQEAgLTExMzIsNyArMTEz
Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVuCiAgICAgICAgIHN0eWxlLnNldE1pbkhlaWdo
dChMZW5ndGgoQ29udHJvbEJhc2VIZWlnaHQgLyBDb250cm9sQmFzZUZvbnRTaXplICogc3R5bGUu
Zm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgp
ID09IENvbG9yV2VsbFBhcnQpCisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9
PSBDb2xvcldlbGxQYXJ0KQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIApAQCAtMTI4OCw3ICsx
Mjg4LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdAogYm9vbCBSZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNCb3hTaGFkb3co
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBTZWUgaWYg
YWRkaXRpb25hbCBuYXRpdmUgY29udHJvbHMgY2FuIHN1cHBvcnQgYm94IHNoYWRvd3MuCi0gICAg
c3dpdGNoIChzdHlsZS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSkgewogICAgIGNhc2UgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydDoKICAg
ICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTIzNzAsNyArMjM3MCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50U2xpZGVyVGlja3Mo
Y29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0IFBhaW50SW5mbyYKICAgICBGbG9hdFJlY3Qg
dGlja1JlY3Q7CiAgICAgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkgdGlja0Nvcm5lclJhZGlpKHRp
Y2tDb3JuZXJSYWRpdXMpOwogCi0gICAgYm9vbCBpc0hvcml6b250YWwgPSBib3guc3R5bGUoKS5h
cHBlYXJhbmNlKCkgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQ7CisgICAgYm9vbCBpc0hvcml6b250
YWwgPSBib3guc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVySG9yaXpvbnRh
bFBhcnQ7CiAgICAgaWYgKGlzSG9yaXpvbnRhbCkgewogICAgICAgICB0aWNrUmVjdC5zZXRXaWR0
aCh0aWNrV2lkdGgpOwogICAgICAgICB0aWNrUmVjdC5zZXRIZWlnaHQodGlja0hlaWdodCk7CkBA
IC0yNDE3LDcgKzI0MTcsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNr
V2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdCBSZW5kZXJPYmplY3QmCiAgICAgYm9vbCBpc0hv
cml6b250YWwgPSB0cnVlOwogICAgIEZsb2F0UmVjdCB0cmFja0NsaXAgPSByZWN0OwogCi0gICAg
c3dpdGNoIChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKGJveC5zdHls
ZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBh
cnQ6CiAgICAgICAgIC8vIEluc2V0IHNsaWdodGx5IHNvIHRoZSB0aHVtYiBjb3ZlcnMgdGhlIGVk
Z2UuCiAgICAgICAgIGlmICh0cmFja0NsaXAud2lkdGgoKSA+IDIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAxZWU3MjE0M2Y5MDQyZjBmNzE3ZmQy
NzE4NjRmYzE5NTRmNDMzMzVlLi5mMzgyOTZhYmIwY2ZiZTg3MTM1OWU2OGU5OTU1ZjYzMGRiYmU3
ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC03
NDksNyArNzQ5LDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6dXNlc1Rlc3RNb2RlRm9jdXNSaW5n
Q29sb3IoKSBjb25zdAogCiBib29sIFJlbmRlclRoZW1lTWFjOjppc0NvbnRyb2xTdHlsZWQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUp
IGNvbnN0CiB7Ci0gICAgYXV0byBhcHBlYXJhbmNlID0gc3R5bGUuYXBwZWFyYW5jZSgpOworICAg
IGF1dG8gYXBwZWFyYW5jZSA9IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKTsKICAgICBpZiAo
YXBwZWFyYW5jZSA9PSBUZXh0RmllbGRQYXJ0IHx8IGFwcGVhcmFuY2UgPT0gVGV4dEFyZWFQYXJ0
IHx8IGFwcGVhcmFuY2UgPT0gU2VhcmNoRmllbGRQYXJ0IHx8IGFwcGVhcmFuY2UgPT0gTGlzdGJv
eFBhcnQpCiAgICAgICAgIHJldHVybiBzdHlsZS5ib3JkZXIoKSAhPSB1c2VyQWdlbnRTdHlsZS5i
b3JkZXIoKTsKIApAQCAtNzgzLDcgKzc4Myw3IEBAIHN0YXRpYyBGbG9hdFJlY3QgaW5mbGF0ZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBpCiAK
IHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVj
dCYgcmVuZGVyZXIsIEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBDb250cm9sUGFydCBwYXJ0ID0g
cmVuZGVyZXIuc3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAgQ29udHJvbFBhcnQgcGFydCA9IHJl
bmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogCiAjaWYgVVNFKE5FV19USEVN
RSkKICAgICBzd2l0Y2ggKHBhcnQpIHsKQEAgLTg3NSw3ICs4NzUsNyBAQCBib29sIFJlbmRlclRo
ZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIENoZWNrYm94ZXMgb25seSBoYXZlIHRp
bnQgd2hlbiBjaGVja2VkLgotICAgIGlmIChvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IENoZWNr
Ym94UGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBDaGVj
a2JveFBhcnQpCiAgICAgICAgIHJldHVybiBpc0NoZWNrZWQobyk7CiAKICAgICAvLyBGb3Igbm93
IGFzc3VtZSBvdGhlciBjb250cm9scyBoYXZlIHRpbnQgaWYgZW5hYmxlZC4KQEAgLTExNTQsNyAr
MTE1NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvCiAKIEludFNpemUgUmVuZGVyVGhlbWVN
YWM6Om1ldGVyU2l6ZUZvckJvdW5kcyhjb25zdCBSZW5kZXJNZXRlciYgcmVuZGVyTWV0ZXIsIGNv
bnN0IEludFJlY3QmIGJvdW5kcykgY29uc3QKIHsKLSAgICBpZiAoTm9Db250cm9sUGFydCA9PSBy
ZW5kZXJNZXRlci5zdHlsZSgpLmFwcGVhcmFuY2UoKSkKKyAgICBpZiAoTm9Db250cm9sUGFydCA9
PSByZW5kZXJNZXRlci5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0
dXJuIGJvdW5kcy5zaXplKCk7CiAKICAgICBOU0xldmVsSW5kaWNhdG9yQ2VsbCogY2VsbCA9IGxl
dmVsSW5kaWNhdG9yRm9yKHJlbmRlck1ldGVyKTsKQEAgLTEyMTMsNyArMTIxMyw3IEBAIE5TTGV2
ZWxJbmRpY2F0b3JTdHlsZSBSZW5kZXJUaGVtZU1hYzo6bGV2ZWxJbmRpY2F0b3JTdHlsZUZvcihD
b250cm9sUGFydCBwYXJ0KSBjCiBOU0xldmVsSW5kaWNhdG9yQ2VsbCogUmVuZGVyVGhlbWVNYWM6
OmxldmVsSW5kaWNhdG9yRm9yKGNvbnN0IFJlbmRlck1ldGVyJiByZW5kZXJNZXRlcikgY29uc3QK
IHsKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJNZXRlci5zdHlsZSgpOwot
ICAgIEFTU0VSVChzdHlsZS5hcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydCk7CisgICAgQVNT
RVJUKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSAhPSBOb0NvbnRyb2xQYXJ0KTsKIAogICAg
IGlmICghbV9sZXZlbEluZGljYXRvcikKICAgICAgICAgbV9sZXZlbEluZGljYXRvciA9IGFkb3B0
TlMoW1tOU0xldmVsSW5kaWNhdG9yQ2VsbCBhbGxvY10gaW5pdFdpdGhMZXZlbEluZGljYXRvclN0
eWxlOk5TTGV2ZWxJbmRpY2F0b3JTdHlsZUNvbnRpbnVvdXNDYXBhY2l0eV0pOwpAQCAtMTI0Miw3
ICsxMjQyLDcgQEAgTlNMZXZlbEluZGljYXRvckNlbGwqIFJlbmRlclRoZW1lTWFjOjpsZXZlbElu
ZGljYXRvckZvcihjb25zdCBSZW5kZXJNZXRlciYgcmVuZGUKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCi0gICAgW2NlbGwgc2V0TGV2ZWxJbmRpY2F0b3JTdHlsZTpsZXZlbEluZGljYXRvclN0eWxl
Rm9yKHN0eWxlLmFwcGVhcmFuY2UoKSldOworICAgIFtjZWxsIHNldExldmVsSW5kaWNhdG9yU3R5
bGU6bGV2ZWxJbmRpY2F0b3JTdHlsZUZvcihzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpXTsK
ICAgICBbY2VsbCBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1Jp
Z2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOwogICAgIFtj
ZWxsIHNldE1pblZhbHVlOmVsZW1lbnQtPm1pbigpXTsKICAgICBbY2VsbCBzZXRNYXhWYWx1ZTpl
bGVtZW50LT5tYXgoKV07CkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBJbnRSZWN0IFJlbmRlclRoZW1l
TWFjOjpwcm9ncmVzc0JhclJlY3RGb3JCb3VuZHMoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJP
YmplYwogICAgIC8vIFdvcmthcm91bmQgdW50aWwgPHJkYXI6Ly9wcm9ibGVtLzE1ODU1MDg2PiBp
cyBmaXhlZC4KICAgICBpbnQgbWF4RGltZW5zaW9uID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6Om51
bWVyaWNfbGltaXRzPHVzaG9ydD46Om1heCgpKTsKICAgICBJbnRSZWN0IHByb2dyZXNzQmFyQm91
bmRzKGJvdW5kcy54KCksIGJvdW5kcy55KCksIHN0ZDo6bWluKGJvdW5kcy53aWR0aCgpLCBtYXhE
aW1lbnNpb24pLCBzdGQ6Om1pbihib3VuZHMuaGVpZ2h0KCksIG1heERpbWVuc2lvbikpOwotICAg
IGlmIChOb0NvbnRyb2xQYXJ0ID09IHJlbmRlck9iamVjdC5zdHlsZSgpLmFwcGVhcmFuY2UoKSkK
KyAgICBpZiAoTm9Db250cm9sUGFydCA9PSByZW5kZXJPYmplY3Quc3R5bGUoKS5lZmZlY3RpdmVB
cHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBwcm9ncmVzc0JhckJvdW5kczsKIAogICAgIGZs
b2F0IHpvb21MZXZlbCA9IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKTsKQEAg
LTE1ODksNyArMTU4OSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5
bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlKSBjCiAKIExlbmd0aEJveCBS
ZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBjb25zdCBTZXR0aW5ncyYpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFu
Y2UoKSA9PSBNZW51bGlzdFBhcnQpIHsKKyAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5j
ZSgpID09IE1lbnVsaXN0UGFydCkgewogICAgICAgICBjb25zdCBpbnQqIHBhZGRpbmcgPSBwb3B1
cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSwgc3R5bGUuZGlyZWN0aW9u
KCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKTsKICAgICAgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8
aW50PihwYWRkaW5nW3RvcFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKSwKICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGludD4ocGFkZGluZ1tyaWdodFBhZGRpbmddICogc3R5bGUuZWZm
ZWN0aXZlWm9vbSgpKSwKQEAgLTE1OTcsNyArMTU5Nyw3IEBAIExlbmd0aEJveCBSZW5kZXJUaGVt
ZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHBhZGRpbmdbbGVmdFBhZGRpbmddICog
c3R5bGUuZWZmZWN0aXZlWm9vbSgpKSB9OwogICAgIH0KIAotICAgIGlmIChzdHlsZS5hcHBlYXJh
bmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KSB7CisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpIHsKICAgICAgICAgZmxvYXQgYXJyb3dX
aWR0aCA9IGJhc2VBcnJvd1dpZHRoICogKHN0eWxlLmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpIC8g
YmFzZUZvbnRTaXplKTsKICAgICAgICAgZmxvYXQgcmlnaHRQYWRkaW5nID0gY2VpbGYoYXJyb3dX
aWR0aCArIChhcnJvd1BhZGRpbmdCZWZvcmUgKyBhcnJvd1BhZGRpbmdBZnRlciArIHBhZGRpbmdC
ZWZvcmVTZXBhcmF0b3IpICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgZmxvYXQg
bGVmdFBhZGRpbmcgPSBzdHlsZWRQb3B1cFBhZGRpbmdMZWZ0ICogc3R5bGUuZWZmZWN0aXZlWm9v
bSgpOwpAQCAtMTY5NCwxMCArMTY5NCwxMCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNs
aWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYQogICAg
IGZsb2F0IHpvb21MZXZlbCA9IG8uc3R5bGUoKS5lZmZlY3RpdmVab29tKCk7CiAgICAgZmxvYXQg
em9vbWVkVHJhY2tXaWR0aCA9IHRyYWNrV2lkdGggKiB6b29tTGV2ZWw7CiAKLSAgICBpZiAoby5z
dHlsZSgpLmFwcGVhcmFuY2UoKSA9PSAgU2xpZGVySG9yaXpvbnRhbFBhcnQgfHwgby5zdHlsZSgp
LmFwcGVhcmFuY2UoKSA9PSAgTWVkaWFTbGlkZXJQYXJ0KSB7CisgICAgaWYgKG8uc3R5bGUoKS5l
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gIFNsaWRlckhvcml6b250YWxQYXJ0IHx8IG8uc3R5bGUo
KS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gIE1lZGlhU2xpZGVyUGFydCkgewogICAgICAgICBi
b3VuZHMuc2V0SGVpZ2h0KHpvb21lZFRyYWNrV2lkdGgpOwogICAgICAgICBib3VuZHMuc2V0WShy
LnkoKSArIHIuaGVpZ2h0KCkgLyAyIC0gem9vbWVkVHJhY2tXaWR0aCAvIDIpOwotICAgIH0gZWxz
ZSBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpIHsKKyAg
ICB9IGVsc2UgaWYgKG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVy
dGljYWxQYXJ0KSB7CiAgICAgICAgIGJvdW5kcy5zZXRXaWR0aCh6b29tZWRUcmFja1dpZHRoKTsK
ICAgICAgICAgYm91bmRzLnNldFgoci54KCkgKyByLndpZHRoKCkgLyAyIC0gem9vbWVkVHJhY2tX
aWR0aCAvIDIpOwogICAgIH0KQEAgLTE3MTYsNyArMTcxNiw3IEBAIGJvb2wgUmVuZGVyVGhlbWVN
YWM6OnBhaW50U2xpZGVyVHJhY2soY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludElu
Zm8mIHBhCiAgICAgc3RydWN0IENHRnVuY3Rpb25DYWxsYmFja3MgbWFpbkNhbGxiYWNrcyA9IHsg
MCwgVHJhY2tHcmFkaWVudEludGVycG9sYXRlLCBOVUxMIH07CiAgICAgUmV0YWluUHRyPENHRnVu
Y3Rpb25SZWY+IG1haW5GdW5jdGlvbiA9IGFkb3B0Q0YoQ0dGdW5jdGlvbkNyZWF0ZShOVUxMLCAx
LCBOVUxMLCA0LCBOVUxMLCAmbWFpbkNhbGxiYWNrcykpOwogICAgIFJldGFpblB0cjxDR1NoYWRp
bmdSZWY+IG1haW5TaGFkaW5nOwotICAgIGlmIChvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IFNs
aWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCiAgICAgICAgIG1haW5TaGFkaW5nID0gYWRvcHRDRihD
R1NoYWRpbmdDcmVhdGVBeGlhbChjc3BhY2UsIENHUG9pbnRNYWtlKGJvdW5kcy54KCksICBib3Vu
ZHMubWF4WSgpKSwgQ0dQb2ludE1ha2UoYm91bmRzLm1heFgoKSwgYm91bmRzLm1heFkoKSksIG1h
aW5GdW5jdGlvbi5nZXQoKSwgZmFsc2UsIGZhbHNlKSk7CiAgICAgZWxzZQogICAgICAgICBtYWlu
U2hhZGluZyA9IGFkb3B0Q0YoQ0dTaGFkaW5nQ3JlYXRlQXhpYWwoY3NwYWNlLCBDR1BvaW50TWFr
ZShib3VuZHMueCgpLCAgYm91bmRzLnkoKSksIENHUG9pbnRNYWtlKGJvdW5kcy54KCksIGJvdW5k
cy5tYXhZKCkpLCBtYWluRnVuY3Rpb24uZ2V0KCksIGZhbHNlLCBmYWxzZSkpOwpAQCAtMTczOSw3
ICsxNzM5LDcgQEAgY29uc3QgZmxvYXQgdmVydGljYWxTbGlkZXJIZWlnaHRQYWRkaW5nID0gMC4x
ZjsKIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYihjb25zdCBSZW5kZXJP
YmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQog
ewotICAgIE5TU2xpZGVyQ2VsbCogc2xpZGVyVGh1bWJDZWxsID0gby5zdHlsZSgpLmFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydAorICAgIE5TU2xpZGVyQ2VsbCogc2xpZGVy
VGh1bWJDZWxsID0gby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVt
YlZlcnRpY2FsUGFydAogICAgICAgICA/IHNsaWRlclRodW1iVmVydGljYWwoKQogICAgICAgICA6
IHNsaWRlclRodW1iSG9yaXpvbnRhbCgpOwogCkBAIC0xNzU0LDE0ICsxNzU0LDE0IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBj
b25zdCBQYWludEluZm8mIHBhCiAKICAgICAvLyBVcGRhdGUgdGhlIHByZXNzZWQgc3RhdGUgdXNp
bmcgdGhlIE5TQ2VsbCB0cmFja2luZyBtZXRob2RzLCBzaW5jZSB0aGF0J3MgaG93IE5TU2xpZGVy
Q2VsbCBrZWVwcyB0cmFjayBvZiBpdC4KICAgICBib29sIG9sZFByZXNzZWQ7Ci0gICAgaWYgKG8u
c3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCisgICAgaWYg
KG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpCiAgICAgICAgIG9sZFByZXNzZWQgPSBtX2lzU2xpZGVyVGh1bWJWZXJ0aWNhbFByZXNzZWQ7
CiAgICAgZWxzZQogICAgICAgICBvbGRQcmVzc2VkID0gbV9pc1NsaWRlclRodW1iSG9yaXpvbnRh
bFByZXNzZWQ7CiAKICAgICBib29sIHByZXNzZWQgPSBpc1ByZXNzZWQobyk7CiAKLSAgICBpZiAo
by5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICBp
ZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydCkKICAgICAgICAgbV9pc1NsaWRlclRodW1iVmVydGljYWxQcmVzc2VkID0gcHJlc3NlZDsK
ICAgICBlbHNlCiAgICAgICAgIG1faXNTbGlkZXJUaHVtYkhvcml6b250YWxQcmVzc2VkID0gcHJl
c3NlZDsKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xp
ZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAKICAg
ICBGbG9hdFJlY3QgYm91bmRzID0gcjsKICAgICAvLyBNYWtlIHRoZSBoZWlnaHQgb2YgdGhlIHZl
cnRpY2FsIHNsaWRlciBzbGlnaHRseSBsYXJnZXIgc28gTlNTbGlkZXJDZWxsIHdpbGwgZHJhdyBh
IHZlcnRpY2FsIHNsaWRlci4KLSAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgYm91bmRzLnNldEhlaWdo
dChib3VuZHMuaGVpZ2h0KCkgKyB2ZXJ0aWNhbFNsaWRlckhlaWdodFBhZGRpbmcgKiBvLnN0eWxl
KCkuZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihwYWludEluZm8uY29udGV4dCgpKTsKQEAgLTIxMTQsNyArMjExNCw3IEBAIGNvbnN0
ZXhwciBpbnQgc2xpZGVyVGh1bWJUaGlja25lc3MgPSAxNTsKIHZvaWQgUmVuZGVyVGhlbWVNYWM6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQq
KSBjb25zdAogewogICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxlLmVmZmVjdGl2ZVpvb20oKTsK
LSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQg
fHwgc3R5bGUuYXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAg
aWYgKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQ
YXJ0IHx8IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydCkgewogICAgICAgICBzdHlsZS5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihz
bGlkZXJUaHVtYlRoaWNrbmVzcyAqIHpvb21MZXZlbCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAg
ICAgICAgIHN0eWxlLnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzbGlkZXJUaHVt
YlRoaWNrbmVzcyAqIHpvb21MZXZlbCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZDVmYmRlNGNi
N2ZmMDFhYzRhMzYxYjMyNDQ5ODk0ZjgzMGYzN2MwNy4uODVkYWFkODU3N2JkOGU3NmM3YWQ5Nzhl
MmMyZGQwYzgwNGUxY2I4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uY3BwCkBAIC0zNzksMTMgKzM3OSwxMyBAQCBib29sIFJlbmRlclRoZW1lV2luOjpzdXBw
b3J0c0ZvY3VzKENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpIGNvbnN0CiAKIGJvb2wgUmVuZGVyVGhl
bWVXaW46OnN1cHBvcnRzRm9jdXNSaW5nKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QK
IHsKLSAgICByZXR1cm4gc3VwcG9ydHNGb2N1cyhzdHlsZS5hcHBlYXJhbmNlKCkpOworICAgIHJl
dHVybiBzdXBwb3J0c0ZvY3VzKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSk7CiB9CiAKIHVu
c2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVDbGFzc2ljU3RhdGUoY29uc3QgUmVuZGVy
T2JqZWN0JiBvLCBDb250cm9sU3ViUGFydCBzdWJQYXJ0KQogewogICAgIHVuc2lnbmVkIHN0YXRl
ID0gMDsKLSAgICBzd2l0Y2ggKG8uc3R5bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2gg
KG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICAgICAgY2FzZSBQdXNoQnV0
dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIERlZmF1bHRC
dXR0b25QYXJ0OgpAQCAtMzk3LDcgKzM5Nyw3IEBAIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpk
ZXRlcm1pbmVDbGFzc2ljU3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBDb250cm9sU3ViCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSYWRpb1BhcnQ6CiAgICAgICAgIGNhc2Ug
Q2hlY2tib3hQYXJ0OgotICAgICAgICAgICAgc3RhdGUgPSAoby5zdHlsZSgpLmFwcGVhcmFuY2Uo
KSA9PSBSYWRpb1BhcnQpID8gREZDU19CVVRUT05SQURJTyA6IERGQ1NfQlVUVE9OQ0hFQ0s7Cisg
ICAgICAgICAgICBzdGF0ZSA9IChvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFJh
ZGlvUGFydCkgPyBERkNTX0JVVFRPTlJBRElPIDogREZDU19CVVRUT05DSEVDSzsKICAgICAgICAg
ICAgIGlmIChpc0NoZWNrZWQobykpCiAgICAgICAgICAgICAgICAgc3RhdGUgfD0gREZDU19DSEVD
S0VEOwogICAgICAgICAgICAgaWYgKCFpc0VuYWJsZWQobykpCkBAIC00MzIsNyArNDMyLDcgQEAg
dW5zaWduZWQgUmVuZGVyVGhlbWVXaW46OmRldGVybWluZUNsYXNzaWNTdGF0ZShjb25zdCBSZW5k
ZXJPYmplY3QmIG8sIENvbnRyb2xTdWIKIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1p
bmVTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QmIG8pCiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0g
VFNfTk9STUFMOwotICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBvLnN0eWxlKCkuYXBwZWFy
YW5jZSgpOworICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBvLnN0eWxlKCkuZWZmZWN0aXZl
QXBwZWFyYW5jZSgpOwogICAgIGlmICghaXNFbmFibGVkKG8pKQogICAgICAgICByZXN1bHQgPSBU
U19ESVNBQkxFRDsKICAgICBlbHNlIGlmIChpc1JlYWRPbmx5Q29udHJvbChvKSAmJiAoVGV4dEZp
ZWxkUGFydCA9PSBhcHBlYXJhbmNlIHx8IFRleHRBcmVhUGFydCA9PSBhcHBlYXJhbmNlIHx8IFNl
YXJjaEZpZWxkUGFydCA9PSBhcHBlYXJhbmNlKSkKQEAgLTQ1NSw3ICs0NTUsNyBAQCB1bnNpZ25l
ZCBSZW5kZXJUaGVtZVdpbjo6ZGV0ZXJtaW5lU2xpZGVyVGh1bWJTdGF0ZShjb25zdCBSZW5kZXJP
YmplY3QmIG8pCiAgICAgdW5zaWduZWQgcmVzdWx0ID0gVFVTX05PUk1BTDsKICAgICBpZiAoIWlz
RW5hYmxlZChvKSkKICAgICAgICAgcmVzdWx0ID0gVFVTX0RJU0FCTEVEOwotICAgIGVsc2UgaWYg
KHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8pKQor
ICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSkgJiYgaXNGb2N1c2VkKG8pKQogICAgICAgICByZXN1bHQgPSBUVVNfRk9DVVNFRDsKICAgICBl
bHNlIGlmIChpc1ByZXNzZWQobykpCiAgICAgICAgIHJlc3VsdCA9IFRVU19QUkVTU0VEOwpAQCAt
NDcxLDcgKzQ3MSw3IEBAIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVCdXR0b25T
dGF0ZShjb25zdCBSZW5kZXJPYmplY3QmIG8pCiAgICAgICAgIHJlc3VsdCA9IFBCU19ESVNBQkxF
RDsKICAgICBlbHNlIGlmIChpc1ByZXNzZWQobykpCiAgICAgICAgIHJlc3VsdCA9IFBCU19QUkVT
U0VEOwotICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkg
JiYgaXNGb2N1c2VkKG8pKQorICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmVm
ZmVjdGl2ZUFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8pKQogICAgICAgICByZXN1bHQgPSBQ
QlNfREVGQVVMVEVEOwogICAgIGVsc2UgaWYgKGlzSG92ZXJlZChvKSkKICAgICAgICAgcmVzdWx0
ID0gUEJTX0hPVDsKQEAgLTQ5Niw3ICs0OTYsNyBAQCB1bnNpZ25lZCBSZW5kZXJUaGVtZVdpbjo6
ZGV0ZXJtaW5lU3BpbkJ1dHRvblN0YXRlKGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJvbAog
VGhlbWVEYXRhIFJlbmRlclRoZW1lV2luOjpnZXRDbGFzc2ljVGhlbWVEYXRhKGNvbnN0IFJlbmRl
ck9iamVjdCYgbywgQ29udHJvbFN1YlBhcnQgc3ViUGFydCkKIHsKICAgICBUaGVtZURhdGEgcmVz
dWx0OwotICAgIHN3aXRjaCAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgeworICAgIHN3aXRjaCAo
by5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgRGVmYXVsdEJ1
dHRvblBhcnQ6CkBAIC01NTEsNyArNTUxLDcgQEAgVGhlbWVEYXRhIFJlbmRlclRoZW1lV2luOjpn
ZXRUaGVtZURhdGEoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBDb250cm9sU3ViUGFydCBzdWIKICAg
ICAgICAgcmV0dXJuIGdldENsYXNzaWNUaGVtZURhdGEobywgc3ViUGFydCk7CiAKICAgICBUaGVt
ZURhdGEgcmVzdWx0OwotICAgIHN3aXRjaCAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgeworICAg
IHN3aXRjaCAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBjYXNl
IFB1c2hCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2Ug
RGVmYXVsdEJ1dHRvblBhcnQ6CkBAIC02MzMsOCArNjMzLDggQEAgc3RhdGljIHZvaWQgZHJhd0Nv
bnRyb2woR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QmIG8sIEhB
TkRMRQogICAgICAgICB9IGVsc2UgaWYgKHRoZW1lRGF0YS5tX3BhcnQgPT0gVEtQX1RSQUNLIHx8
IHRoZW1lRGF0YS5tX3BhcnQgPT0gVEtQX1RSQUNLVkVSVCkgewogICAgICAgICAgICAgOjpEcmF3
RWRnZShoZGMsICZ3aWRnZXRSZWN0LCBFREdFX1NVTktFTiwgQkZfUkVDVCB8IEJGX0FESlVTVCk7
CiAgICAgICAgICAgICA6OkZpbGxSZWN0KGhkYywgJndpZGdldFJlY3QsIChIQlJVU0gpR2V0U3Rv
Y2tPYmplY3QoR1JBWV9CUlVTSCkpOwotICAgICAgICB9IGVsc2UgaWYgKChvLnN0eWxlKCkuYXBw
ZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQKLSAgICAgICAgfHwgby5zdHls
ZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICAgICAgfSBl
bHNlIGlmICgoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhv
cml6b250YWxQYXJ0CisgICAgICAgIHx8IG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCiAgICAgICAgICYmICh0aGVtZURhdGEubV9wYXJ0
ID09IFRLUF9USFVNQkJPVFRPTSB8fCB0aGVtZURhdGEubV9wYXJ0ID09IFRLUF9USFVNQlRPUAog
ICAgICAgICB8fCB0aGVtZURhdGEubV9wYXJ0ID09IFRLUF9USFVNQkxFRlQgfHwgdGhlbWVEYXRh
Lm1fcGFydCA9PSBUS1BfVEhVTUJSSUdIVCkpIHsKICAgICAgICAgICAgIDo6RHJhd0VkZ2UoaGRj
LCAmd2lkZ2V0UmVjdCwgRURHRV9SQUlTRUQsIEJGX1JFQ1QgfCBCRl9TT0ZUIHwgQkZfTUlERExF
IHwgQkZfQURKVVNUKTsKQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q29udHJv
bChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgSEFORExF
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBQdXNoIGJ1
dHRvbnMsIGJ1dHRvbnMsIGNoZWNrYm94ZXMgYW5kIHJhZGlvcywgYW5kIHRoZSBkcm9wZG93biBh
cnJvdyBpbiBtZW51bGlzdHMuCi0gICAgICAgICAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2Uo
KSA9PSBEZWZhdWx0QnV0dG9uUGFydCkgeworICAgICAgICAgICAgaWYgKG8uc3R5bGUoKS5lZmZl
Y3RpdmVBcHBlYXJhbmNlKCkgPT0gRGVmYXVsdEJ1dHRvblBhcnQpIHsKICAgICAgICAgICAgICAg
ICBIQlJVU0ggYnJ1c2ggPSA6OkdldFN5c0NvbG9yQnJ1c2goQ09MT1JfM0RES1NIQURPVyk7CiAg
ICAgICAgICAgICAgICAgOjpGcmFtZVJlY3QoaGRjLCAmd2lkZ2V0UmVjdCwgYnJ1c2gpOwogICAg
ICAgICAgICAgICAgIDo6SW5mbGF0ZVJlY3QoJndpZGdldFJlY3QsIC0xLCAtMSk7CkBAIC04MTAs
MTAgKzgxMCwxMCBAQCBib29sIFJlbmRlclRoZW1lV2luOjpwYWludFNsaWRlclRyYWNrKGNvbnN0
IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBpLAogewogICAgIEludFJlY3QgYm91
bmRzID0gcjsKICAgICAKLSAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSAgU2xpZGVy
SG9yaXpvbnRhbFBhcnQpIHsKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSAgU2xpZGVySG9yaXpvbnRhbFBhcnQpIHsKICAgICAgICAgYm91bmRzLnNldEhlaWdodCh0
cmFja1dpZHRoKTsKICAgICAgICAgYm91bmRzLnNldFkoci55KCkgKyByLmhlaWdodCgpIC8gMiAt
IHRyYWNrV2lkdGggLyAyKTsKLSAgICB9IGVsc2UgaWYgKG8uc3R5bGUoKS5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0KSB7CisgICAgfSBlbHNlIGlmIChvLnN0eWxlKCkuZWZmZWN0
aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkgewogICAgICAgICBib3VuZHMu
c2V0V2lkdGgodHJhY2tXaWR0aCk7CiAgICAgICAgIGJvdW5kcy5zZXRYKHIueCgpICsgci53aWR0
aCgpIC8gMiAtIHRyYWNrV2lkdGggLyAyKTsKICAgICB9CkBAIC04MzMsNyArODMzLDcgQEAgY29u
c3QgaW50IHNsaWRlclRodW1iSGVpZ2h0ID0gMTU7CiAKIHZvaWQgUmVuZGVyVGhlbWVXaW46OmFk
anVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBj
b25zdAogewotICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS5hcHBlYXJhbmNlKCk7CisgICAg
Q29udHJvbFBhcnQgcGFydCA9IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKTsKICAgICBpZiAo
cGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewogICAgICAgICBzdHlsZS5zZXRXaWR0
aChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAgICAgICAg
IHN0eWxlLnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgTGVuZ3RoVHlwZTo6Rml4
ZWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CmluZGV4IDk5YjJlODNlNDdjM2MzYzdiMDQxNzhhYjkzMGNmMWFhN2E5YTdiNTcuLjI5MDY5NjUz
NmRkMDk0NDkxMmRlNGI1OTA2YWFmNmI1NjNlOWYwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDU3LDcgKzQ1Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUZvbnRIYXNoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
KQogdW5zaWduZWQgUmVuZGVyU3R5bGU6Omhhc2hGb3JUZXh0QXV0b3NpemluZygpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IE5vdCBhIHZlcnkgc21hcnQgaGFzaC4gQ291bGQgYmUgaW1wcm92ZWQg
dXBvbi4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMTMx
Pi4KLSAgICB1bnNpZ25lZCBoYXNoID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+YXBwZWFyYW5j
ZTsKKyAgICB1bnNpZ25lZCBoYXNoID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZl
QXBwZWFyYW5jZTsKICAgICBoYXNoIF49IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkJl
Zm9yZUNvbGxhcHNlOwogICAgIGhhc2ggXj0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2lu
QWZ0ZXJDb2xsYXBzZTsKICAgICBoYXNoIF49IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmxpbmVD
bGFtcC52YWx1ZSgpOwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHVuc2lnbmVkIFJlbmRlclN0eWxlOjpo
YXNoRm9yVGV4dEF1dG9zaXppbmcoKSBjb25zdAogCiBib29sIFJlbmRlclN0eWxlOjplcXVhbEZv
clRleHRBdXRvc2l6aW5nKGNvbnN0IFJlbmRlclN0eWxlJiBvdGhlcikgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+YXBwZWFyYW5jZSA9PSBvdGhlci5tX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5hcHBlYXJhbmNlCisgICAgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRl
ZERhdGEtPmVmZmVjdGl2ZUFwcGVhcmFuY2UgPT0gb3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+ZWZmZWN0aXZlQXBwZWFyYW5jZQogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5tYXJnaW5CZWZvcmVDb2xsYXBzZSA9PSBvdGhlci5tX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
YXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
YXJnaW5BZnRlckNvbGxhcHNlID09IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdp
bkFmdGVyQ29sbGFwc2UKICAgICAgICAgJiYgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bGluZUNs
YW1wID09IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmxpbmVDbGFtcApAQCAtNjUwLDcg
KzY1MCw3IEBAIHN0YXRpYyBib29sIHJhcmVOb25Jbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNM
YXlvdXQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiB7CiAgICAgQVNTRVJUKCZmaXJzdCAh
PSAmc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC5hcHBlYXJhbmNlICE9IHNlY29uZC5hcHBlYXJh
bmNlCisgICAgaWYgKGZpcnN0LmVmZmVjdGl2ZUFwcGVhcmFuY2UgIT0gc2Vjb25kLmVmZmVjdGl2
ZUFwcGVhcmFuY2UKICAgICAgICAgfHwgZmlyc3QubWFyZ2luQmVmb3JlQ29sbGFwc2UgIT0gc2Vj
b25kLm1hcmdpbkJlZm9yZUNvbGxhcHNlCiAgICAgICAgIHx8IGZpcnN0Lm1hcmdpbkFmdGVyQ29s
bGFwc2UgIT0gc2Vjb25kLm1hcmdpbkFmdGVyQ29sbGFwc2UKICAgICAgICAgfHwgZmlyc3QubGlu
ZUNsYW1wICE9IHNlY29uZC5saW5lQ2xhbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMTc1NjQ5ODEwODIyYjAyNWFlOWZlZTYxZjBkYjkyMzky
ZWVlNWFjYS4uODE2OTQ5Y2FjMmY1ZGFjNGEyMzRmZjFiYjRhNzIyZDgwYWQ5ZGQxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTIxNSw2ICsy
MTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpIGNv
bnN0OwogCiAgICAgYm9vbCBoYXNBcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1cm4gYXBwZWFyYW5j
ZSgpICE9IE5vQ29udHJvbFBhcnQ7IH0KKyAgICBib29sIGhhc0VmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVBcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydDsg
fQogCiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5kKCkgY29uc3Q7CiAgICAgCkBAIC01MDgsNiArNTA5
LDcgQEAgcHVibGljOgogICAgIGZsb2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5vcGFjaXR5OyB9CiAgICAgYm9vbCBoYXNPcGFjaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eSA8IDE7IH0KICAgICBDb250
cm9sUGFydCBhcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udHJvbFBh
cnQ+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFwcGVhcmFuY2UpOyB9CisgICAgQ29udHJvbFBh
cnQgZWZmZWN0aXZlQXBwZWFyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRy
b2xQYXJ0PihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5lZmZlY3RpdmVBcHBlYXJhbmNlKTsgfQog
ICAgIEFzcGVjdFJhdGlvVHlwZSBhc3BlY3RSYXRpb1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxBc3BlY3RSYXRpb1R5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFzcGVjdFJh
dGlvVHlwZSk7IH0KICAgICBkb3VibGUgYXNwZWN0UmF0aW9XaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFzcGVjdFJhdGlvV2lkdGg7IH0KICAgICBkb3VibGUg
YXNwZWN0UmF0aW9IZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5hc3BlY3RSYXRpb0hlaWdodDsgfQpAQCAtMTEyNyw3ICsxMTI5LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2FyZXRDb2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZUluaGVy
aXRlZERhdGEsIGNhcmV0Q29sb3IsIGMpOyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIGhh
c0F1dG9DYXJldENvbG9yLCBmYWxzZSk7ICB9CiAgICAgdm9pZCBzZXRIYXNBdXRvQ2FyZXRDb2xv
cigpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBoYXNBdXRvQ2FyZXRDb2xvciwgdHJ1
ZSk7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgY2FyZXRDb2xvciwgY3VycmVudENvbG9y
KCkpOyB9CiAgICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IGYpIHsgZmxvYXQgdiA9IGNsYW1wVG88
ZmxvYXQ+KGYsIDAuZiwgMS5mKTsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvcGFj
aXR5LCB2KTsgfQotICAgIHZvaWQgc2V0QXBwZWFyYW5jZShDb250cm9sUGFydCBhKSB7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgYXBwZWFyYW5jZSwgYSk7IH0KKyAgICB2b2lkIHNl
dEFwcGVhcmFuY2UoQ29udHJvbFBhcnQgYSkgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEsIGFwcGVhcmFuY2UsIGEpOyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGVmZmVj
dGl2ZUFwcGVhcmFuY2UsIGEpOyB9CisgICAgdm9pZCBzZXRFZmZlY3RpdmVBcHBlYXJhbmNlKENv
bnRyb2xQYXJ0IGEpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBlZmZlY3RpdmVB
cHBlYXJhbmNlLCBhKTsgfQogICAgIC8vIEZvciB2YWxpZCB2YWx1ZXMgb2YgYm94LWFsaWduIHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA5L1dELWNzczMtZmxleGJveC0yMDA5MDcyMy8jYWxp
Z25tZW50CiAgICAgdm9pZCBzZXRCb3hBbGlnbihCb3hBbGlnbm1lbnQgYSkgeyBTRVRfTkVTVEVE
X1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBkZXByZWNhdGVkRmxleGlibGVCb3gsIGFsaWdu
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYSkpOyB9CiAgICAgdm9pZCBzZXRCb3hEaXJlY3Rpb24o
Qm94RGlyZWN0aW9uIGQpIHsgbV9pbmhlcml0ZWRGbGFncy5ib3hEaXJlY3Rpb24gPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA3MzE1NTU3
MTgzYmMwODA1ZDNiYmRlZTc4NmQzNTA4Yjk4NzIzYTZkLi5kN2ZiM2MwMTY3ODY5YWI2ODI4Mzg3
YTVjZDlkNGY4YzMwZGQyMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC05Miw2ICs5
Miw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEoKQogICAgICwgbWFyZ2luQmVmb3JlQ29sbGFwc2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KE1h
cmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAgICwgYXBwZWFy
YW5jZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxBcHBlYXJhbmNl
KCkpKQorICAgICwgZWZmZWN0aXZlQXBwZWFyYW5jZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVu
ZGVyU3R5bGU6OmluaXRpYWxBcHBlYXJhbmNlKCkpKQogICAgICwgYm9yZGVyRml0KHN0YXRpY19j
YXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlckZpdCgpKSkKICAgICAsIHRl
eHRDb21iaW5lKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRD
b21iaW5lKCkpKQogICAgICwgdGV4dERlY29yYXRpb25TdHlsZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlKCkpKQpAQCAtMTkyLDYg
KzE5Myw3IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xs
YXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShv
Lm1hcmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKKyAg
ICAsIGVmZmVjdGl2ZUFwcGVhcmFuY2Uoby5lZmZlY3RpdmVBcHBlYXJhbmNlKQogICAgICwgYm9y
ZGVyRml0KG8uYm9yZGVyRml0KQogICAgICwgdGV4dENvbWJpbmUoby50ZXh0Q29tYmluZSkKICAg
ICAsIHRleHREZWNvcmF0aW9uU3R5bGUoby50ZXh0RGVjb3JhdGlvblN0eWxlKQpAQCAtMjk2LDYg
KzI5OCw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25z
dCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1hcmdpbkJlZm9y
ZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UKICAgICAgICAgJiYgbWFyZ2luQWZ0
ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFwc2UKICAgICAgICAgJiYgYXBwZWFyYW5j
ZSA9PSBvLmFwcGVhcmFuY2UKKyAgICAgICAgJiYgZWZmZWN0aXZlQXBwZWFyYW5jZSA9PSBvLmVm
ZmVjdGl2ZUFwcGVhcmFuY2UKICAgICAgICAgJiYgYm9yZGVyRml0ID09IG8uYm9yZGVyRml0CiAg
ICAgICAgICYmIHRleHRDb21iaW5lID09IG8udGV4dENvbWJpbmUKICAgICAgICAgJiYgdGV4dERl
Y29yYXRpb25TdHlsZSA9PSBvLnRleHREZWNvcmF0aW9uU3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDhmMTRmZGExMThkNThkMjU0MGU5Y2JmNTlhZDFkNDU4N2I2ZTYxYzguLmViN2NiMWE2
YzQwNWZjM2FjYzYyNTI1YjY5M2JiYmE3MDZjOTQ4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMjAxLDYgKzIwMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBtYXJnaW5CZWZvcmVDb2xs
YXBzZSA6IDI7IC8vIE1hcmdpbkNvbGxhcHNlCiAgICAgdW5zaWduZWQgbWFyZ2luQWZ0ZXJDb2xs
YXBzZSA6IDI7IC8vIE1hcmdpbkNvbGxhcHNlCiAgICAgdW5zaWduZWQgYXBwZWFyYW5jZSA6IDY7
IC8vIEVBcHBlYXJhbmNlCisgICAgdW5zaWduZWQgZWZmZWN0aXZlQXBwZWFyYW5jZSA6IDY7IC8v
IEVBcHBlYXJhbmNlCiAgICAgdW5zaWduZWQgYm9yZGVyRml0IDogMTsgLy8gQm9yZGVyRml0CiAg
ICAgdW5zaWduZWQgdGV4dENvbWJpbmUgOiAxOyAvLyBDU1MzIHRleHQtY29tYmluZSBwcm9wZXJ0
aWVzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoZWREZWNsYXJhdGlv
bnNDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9NYXRjaGVkRGVjbGFyYXRpb25zQ2Fj
aGUuY3BwCmluZGV4IDViYTMwOTg2MGU2MDgwNTM5MjQwYzA4M2ZhMDViMTJkNDcxNzYyMTMuLmQ3
NGUwMGY1ZjUzMTc0NGZmNTViZWFhZGYyOTQyZDBkZDhmYmJhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL01hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBib29sIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZTo6aXNDYWNoZWFibGUoY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyUwogICAgIC8vIGNvbnRlbnQ6YXR0cigpIHZhbHVl
IGRlcGVuZHMgb24gdGhlIGVsZW1lbnQgaXQgaXMgYmVpbmcgYXBwbGllZCB0by4KICAgICBpZiAo
c3R5bGUuaGFzQXR0ckNvbnRlbnQoKSB8fCAoc3R5bGUuc3R5bGVUeXBlKCkgIT0gUHNldWRvSWQ6
Ok5vbmUgJiYgcGFyZW50U3R5bGUuaGFzQXR0ckNvbnRlbnQoKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoc3R5bGUuaGFzQXBwZWFyYW5jZSgpKQorICAgIGlmIChzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5
bGUuem9vbSgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGU3MzBmNGUx
MGY0YjQwN2U2YmY2N2UwYTgxN2U2ZDZkNjdlMzE4NTcuLjVmYWM2MGMyNWVlZTBkMjM2YjQ2Mjdm
ZWY2NTM2YzY5ZDJkNjI5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3Bw
CkBAIC00NTgsNyArNDU4LDcgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICB9CiAKICAg
ICAvLyBNZW51bGlzdHMgc2hvdWxkIGhhdmUgdmlzaWJsZSBvdmVyZmxvdwotICAgIGlmIChzdHls
ZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KSB7CisgICAgaWYgKHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpIHsKICAgICAgICAgc3R5bGUuc2V0T3ZlcmZs
b3dYKE92ZXJmbG93OjpWaXNpYmxlKTsKICAgICAgICAgc3R5bGUuc2V0T3ZlcmZsb3dZKE92ZXJm
bG93OjpWaXNpYmxlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKaW5kZXggMjJmZThkZjA2MzI1Nzk1MTVmZThhZTgyYWJjMWY5ZDM4NTkzYzY3OC4u
Y2MyOWNmOGU0M2JmYzkzMDRmNTc2ZjlhNWM4MzgyMWRjN2NmMzA2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBAIEVsZW1l
bnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
ICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6bWV0ZXJUYWcpCiAgICAgICAg
IHx8IGlzPEhUTUxQcm9ncmVzc0VsZW1lbnQ+KGVsZW1lbnQpCiAgICAgICAgIHx8IChpczxIVE1M
SW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVt
ZW50KS5pc1NlYXJjaEZpZWxkKCkpKSB7Ci0gICAgICAgIGlmIChleGlzdGluZ1N0eWxlICYmIHVw
ZGF0ZS5zdHlsZS0+YXBwZWFyYW5jZSgpICE9IGV4aXN0aW5nU3R5bGUtPmFwcGVhcmFuY2UoKSkg
eworICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiB1cGRhdGUuc3R5bGUtPmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSAhPSBleGlzdGluZ1N0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAg
ICAgICAgICAgIHVwZGF0ZS5jaGFuZ2UgPSBDaGFuZ2U6OlJlbmRlcmVyOwogICAgICAgICAgICAg
ZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1NmFkNzBjYjQ2NjAxNzAxZGNk
OWY5MmFjYTIyMThlZGI4Mzg0ZjhhLi43MGE5ZWRhM2VlNGY4MjA1YjFmZjk3M2U1NjExYWMwYmM3
ZDhjZDc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wOS0yOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2Nzcy11aV0gZ2V0Q29tcHV0ZWRTdHlsZSgpIG11c3QgcmV0dXJuIHRoZSBzcGVjaWZpZWQg
dmFsdWUgZm9yICctd2Via2l0LWFwcGVhcmFuY2UnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MTYKKyAgICAgICAgcmRhcjovLzgzNjQwOTM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQ6
CisKKyAgICAgICAgUmViYXNlbGluZSBmb3IgcHJvZ3Jlc3Npb24uCisKIDIwMjEtMDktMjggIEFk
aXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBjc3Mt
dWkgV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVh
cmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dAppbmRleCA0ZDViMGM1ODg1NWJiOTgxMTU2M2Jj
MGQzOGMxODJmOTg5ZmQ5YmQ5Li5mNjQ1Nzk0Yzk0NjYxMDk4MmYxN2Y4MmRmODFlNDkzZjUyN2Zj
M2U0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBl
YXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQKQEAgLTIsMTggKzIsMTggQEAgVGVzdAogCiBQ
QVNTIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZQogRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IGF1
dG8gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4
cGVjdGVkICJhdXRvIiBidXQgZ290ICIiCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9u
IGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBl
Y3RlZCAiYnV0dG9uIiBidXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1
dHRvbgogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94CiBQQVNTIC13ZWJraXQtYXBw
ZWFyYW5jZTogbGlzdGJveAotRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0IGFzc2Vy
dF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAi
bWVudWxpc3QiIGJ1dCBnb3QgIm1lbnVsaXN0LWJ1dHRvbiIKK1BBU1MgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZW51bGlzdAogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbgot
RkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtp
dEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAibWV0ZXIiIGJ1dCBnb3QgIm5vbmUi
Ci1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyIGFzc2VydF9lcXVhbHM6IHN0
eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAicHJvZ3Jlc3MtYmFy
IiBidXQgZ290ICJub25lIgotRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IHB1c2gtYnV0dG9uIGFz
c2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3Rl
ZCAicHVzaC1idXR0b24iIGJ1dCBnb3QgIm5vbmUiCitQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTog
bWV0ZXIKK1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVzcy1iYXIKK1BBU1MgLXdlYmtp
dC1hcHBlYXJhbmNlOiBwdXNoLWJ1dHRvbgogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHJhZGlv
CiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogc2VhcmNoZmllbGQKIFBBU1MgLXdlYmtpdC1hcHBl
YXJhbmNlOiBzbGlkZXItaG9yaXpvbnRhbAotRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IHNxdWFy
ZS1idXR0b24gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNl
IFcpIGV4cGVjdGVkICJzcXVhcmUtYnV0dG9uIiBidXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0
LWFwcGVhcmFuY2U6IHNxdWFyZS1idXR0b24KIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0
YXJlYQogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZAogRkFJTCAtd2Via2l0LWFw
cGVhcmFuY2U6IGJvZ3VzLWJ1dHRvbiAoaW52YWxpZCkgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Vi
a2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5l
ZCBidXQgZ290IChzdHJpbmcpICJidXR0b24iCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439620</attachid>
            <date>2021-09-29 10:09:37 -0700</date>
            <delta_ts>2021-09-29 15:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230916-20210929100936.patch</filename>
            <type>text/plain</type>
            <size>85600</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyZGVkMmQwMWRhZjMz
YjFjOGQ2YjAwOTMxMTZiOTc1YWI0MmEyOC4uYjhhZTc0MjBkYWE4NzdmMGNhZDcyNTYxMTI0ODVh
YzVlOWMxMTgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2OCBAQAorMjAyMS0wOS0yOSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy11aV0gZ2V0
Q29tcHV0ZWRTdHlsZSgpIG11c3QgcmV0dXJuIHRoZSBzcGVjaWZpZWQgdmFsdWUgZm9yICctd2Vi
a2l0LWFwcGVhcmFuY2UnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA5MTYKKyAgICAgICAgcmRhcjovLzgzNjQwOTM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBhbiBlbGVtZW50J3Mg
YXBwZWFyYW5jZSBjYW4gYmUgYWRqdXN0ZWQgdG8gIm5vbmUiIGRlcGVuZGluZworICAgICAgICBv
biB0aGUgYXBwbGllZCBDU1MgcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIGJ1dHRvbnMgdGhhdCBz
cGVjaWZ5IGEKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvciBsb3NlIHRoZWlyIG5hdGl2ZSBhcHBl
YXJhbmNlLiBUaGUgZXhpc3RpbmcgYmVoYXZpb3IgaXMKKyAgICAgICAgaW1wbGVtZW50ZWQgYnkg
bW9kaWZ5aW5nIHRoZSBhcHBlYXJhbmNlIGZpZWxkIG9uIFJlbmRlclN0eWxlLgorCisgICAgICAg
IFdoaWxlIHRoZSBzcGVjIGFsbG93cyBjZXJ0YWluIHByb3BlcnRpZXMgdG8gYWZmZWN0IGFwcGVh
cmFuY2UsIGl0CisgICAgICAgIGFsc28gYXNzZXJ0cyB0aGF0IHRoZSBjb21wdXRlZCB2YWx1ZSBt
dXN0IGJlIGVxdWFsIHRvIHRoZSBzcGVjaWZpYworICAgICAgICB2YWx1ZSBbMV0uIEhvd2V2ZXIs
IHNpbmNlIHRoZSBzcGVjaWZpZWQgYW5kIGFkanVzdGVkIHZhbHVlcyBhcmUgc3RvcmVkCisgICAg
ICAgIGluIHRoZSBzYW1lIGZpZWxkIGluIFJlbmRlclN0eWxlLCB0aGUgY29tcHV0ZWQgdmFsdWUg
ZG9lcyBub3QgYWx3YXlzCisgICAgICAgIGVxdWFsIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisKKyAg
ICAgICAgVG8gZml4LCBpbnRyb2R1Y2UgYW4gZWZmZWN0aXZlQXBwZWFyYW5jZSBmaWVsZCB0byBS
ZW5kZXJTdHlsZSwgd2hpY2gKKyAgICAgICAgc3RvcmVzIHRoZSB1c2VkIGFwcGVhcmFuY2UuIFRo
ZSBzcGVjaWZpZWQgYXBwZWFyYW5jZSByZW1haW5zIGluIHRoZQorICAgICAgICBhcHBlYXJhbmNl
IGZpZWxkLCBlbnN1cmluZyB0aGUgY29tcHV0ZWQgdmFsdWUgYWRoZXJlcyB0byB0aGUgc3BlYy4K
KworICAgICAgICBUaGUgbmV3IGJlaGF2aW9yIG1hdGNoZXMgQ2hyb21lIGFuZCBGaXJlZm94LiBU
aGlzIHdvcmsgaXMgYWxzbyBuZWNlc3NhcnkKKyAgICAgICAgZm9yIFdlYktpdCB0byBzdXBwb3J0
ICdhdXRvJyBhcyBhIHZhbGlkIGFwcGVhcmFuY2UgdmFsdWUsIHNpbmNlIHRoZQorICAgICAgICB1
c2VkIHZhbHVlIHdpbGwgbmVlZCB0byBiZSBhZGp1c3RlZCBkZXBlbmRpbmcgb24gdGhlIGVsZW1l
bnQgdHlwZSwgYnV0CisgICAgICAgIHRoZSBjb21wdXRlZCB2YWx1ZSBzaG91bGQgcmVtYWluICdh
dXRvJy4KKworICAgICAgICBbMV0gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy11aS00LyNhcHBl
YXJhbmNlLXN3aXRjaGluZworCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5k
aW5nQm94Rm9yUXVhZHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojppc0FwcGxlUGF5QnV0dG9uIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNs
aWRlcjo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRIb3ZlcmVkKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpmb2N1c2VkT3JBY3RpdmVTdGF0
ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudDo6c2V0SW5kZXRlcm1pbmF0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1
dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzU2hhZG93RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0lubmVy
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJUaHVtYjo6dXBkYXRlQXBwZWFyYW5j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVDdXN0b21T
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZl
Q3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJBdHRh
Y2htZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckF0dGFjaG1lbnQ6OnNob3VsZERy
YXdCb3JkZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6cGFp
bnRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRWaXN1YWxPdmVyZmxvd0Zyb21UaGVtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6aGFzVmlzaWJsZUJveERlY29yYXRpb25T
dHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym94
U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpo
YXNWaXNpYmxlQm94RGVjb3JhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlckxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAg
KFJlbmRlck1lbnVMaXN0OjptZW51U3R5bGUgY29uc3QpOgorICAgICAgICAoUmVuZGVyTWVudUxp
c3Q6OmNsaWVudFBhZGRpbmdMZWZ0IGNvbnN0KToKKyAgICAgICAgKFJlbmRlck1lbnVMaXN0Ojpj
bGllbnRQYWRkaW5nUmlnaHQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9n
cmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dXBkYXRlQW5pbWF0
aW9uU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorCisgICAgICAgIEVuc3VyZSB0
aGUgc3BlY2lmaWVkIHZhbHVlIGlzIG5vdCBtb2RpZmllZCBieSBhZGp1c3RpbmcgdGhlCisgICAg
ICAgIGVmZmVjdGl2ZUFwcGVhcmFuY2UgZmllbGQgaW5zdGVhZCBvZiB0aGUgYXBwZWFyYW5jZSBm
aWVsZC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFNlYXJjaEZpZWxk
RGVjb3JhdGlvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpzdXBwb3J0c0ZvY3VzUmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aXNEZWZhdWx0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVBZHdhaXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQWR3YWl0
YTo6c3VwcG9ydHNGb2N1c1JpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVBZHdhaXRhOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUFkd2FpdGE6OnBhaW50U2xpZGVyVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjphZGp1c3RTbGlkZXJUaHVtYlNpemUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjpwYWludFNsaWRlclRodW1iKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUlPUzo6YWRqdXN0ZWRQYWludFJlY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVJT1M6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3ggY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdFJvdW5kQm9yZGVyUmFk
aXVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphZGp1c3RTbGlkZXJUaHVtYlNp
emUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRv
blN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzdXBwb3J0
c0JveFNoYWRvdyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFp
bnRTbGlkZXJUaWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRT
bGlkZXJUcmFja1dpdGhGb3JtQ29udHJvbFJlZnJlc2gpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjppc0Nv
bnRyb2xTdHlsZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFk
anVzdFJlcGFpbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpjb250
cm9sU3VwcG9ydHNUaW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1h
Yzo6bWV0ZXJTaXplRm9yQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTWFjOjpsZXZlbEluZGljYXRvckZvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU1hYzo6cHJvZ3Jlc3NCYXJSZWN0Rm9yQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUcmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVXaW46OnN1cHBvcnRzRm9jdXNSaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVDbGFzc2ljU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVXaW46OmRldGVybWluZVN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVTbGlkZXJUaHVtYlN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVCdXR0b25TdGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6Z2V0Q2xhc3NpY1RoZW1lRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6Z2V0VGhlbWVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmRyYXdDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpwYWlu
dFNsaWRlclRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzaEZvclRleHRBdXRv
c2l6aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjplcXVhbEZvclRl
eHRBdXRvc2l6aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnJhcmVOb25Jbmhlcml0ZWRE
YXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc0VmZmVjdGl2ZUFw
cGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmVmZmVjdGl2
ZUFwcGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEVmZmVjdGl2ZUFw
cGVhcmFuY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9NYXRj
aGVkRGVjbGFyYXRpb25zQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Ok1hdGNo
ZWREZWNsYXJhdGlvbnNDYWNoZTo6aXNDYWNoZWFibGUpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3Qg
Y29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKwogMjAyMS0w
OS0yMiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gVHJhbnNjb2RlIHZpZGVvcyBzZWxlY3RlZCBmcm9tIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAppbmRleCAyZTE2M2QzMzQ2MjIyNDg1N2ZhZDI5ZmEwYzY3MTk5NmEzMTQxOWUyLi5m
OWQzN2YzYjI4MTUyYmZhZWU4NTdmNzQ1YWEzYTUyNTk2NjA4ODIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTc4
Niw3ICs3ODYsNyBAQCBJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kaW5nQm94Rm9y
UXVhZHMoUmVuZGVyT2JqZWN0KiBvYmosIGNvbnN0IFZlY3RvcgogICAgIGZvciAoY29uc3QgYXV0
byYgcXVhZCA6IHF1YWRzKSB7CiAgICAgICAgIEZsb2F0UmVjdCByID0gcXVhZC5lbmNsb3NpbmdC
b3VuZGluZ0JveCgpOwogICAgICAgICBpZiAoIXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBp
ZiAob2JqLT5zdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgICAgIGlmIChvYmotPnN0
eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAgICAgICAgICAgIG9iai0+dGhl
bWUoKS5hZGp1c3RSZXBhaW50UmVjdCgqb2JqLCByKTsKICAgICAgICAgICAgIHJlc3VsdC51bml0
ZShyKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggODIwYWQ2NTg5MzRhMTQ0
YzFkNTJiOTBiZDNiODlmYzVjN2FmZGQ2NS4uM2IxMDkwMjQwOGViYWIyYjM2NjgzOWQwOGI3MDQz
NmE4ZTk5MjBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zODUyLDcgKzM4NTIsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQXBwbGVQYXlCdXR0b24oKSBjb25zdAog
ewogICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVy
biBtX3JlbmRlcmVyLT5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBBcHBsZVBheUJ1dHRvblBhcnQ7
CisgICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09
IEFwcGxlUGF5QnV0dG9uUGFydDsKIH0KIAogQXBwbGVQYXlCdXR0b25UeXBlIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCBh
YzdjZTU0YWI0NjRhMGUxZGRkNTRjNzY1YzRjNTQ0MzMyMjUxYjJhLi43ZDA3M2JkNmE4OGQxYTY0
YmZmYThlZGFmYTcwOTVmY2M1ZTViZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2liaWxpdHlTbGlkZXI6Om9yaWVudGF0aW9uKCkg
Y29uc3QKICAgICAKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSBtX3JlbmRlcmVyLT5z
dHlsZSgpOwogCi0gICAgQ29udHJvbFBhcnQgc3R5bGVBcHBlYXJhbmNlID0gc3R5bGUuYXBwZWFy
YW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHN0eWxlQXBwZWFyYW5jZSA9IHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKTsKICAgICBzd2l0Y2ggKHN0eWxlQXBwZWFyYW5jZSkgewogICAgIGNhc2Ug
U2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydDoKICAgICBjYXNlIFNsaWRlckhvcml6b250YWxQYXJ0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDNlNmY3NGIzMTBkYTJhNzlhNzI4N2M4ZTBjMmFk
ZWE3NzYzYzU3NGQuLmQwNTAxYmI1MTY2MGQ2NzdkM2MxMzQ4YzgyMWZkOTIwNDMxMmE1NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTcwOCw3ICs3MDgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNl
dEFjdGl2ZShib29sIGZsYWcsIGJvb2wgcGF1c2UsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29wZSBp
bnZhbGlkYQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHJlYWN0c1RvUHJlc3MgPSBmYWxz
ZTsKLSAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkgJiYgcmVuZGVy
ZXIoKS0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyKCksIENvbnRyb2xTdGF0ZXM6OlN0
YXRlczo6UHJlc3NlZCkpCisgICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZl
QXBwZWFyYW5jZSgpICYmIHJlbmRlcmVyKCktPnRoZW1lKCkuc3RhdGVDaGFuZ2VkKCpyZW5kZXJl
cigpLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OlByZXNzZWQpKQogICAgICAgICByZWFjdHNUb1By
ZXNzID0gdHJ1ZTsKIAogICAgIC8vIFRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gaW1wbGVtZW50
cyBhIGZlYXR1cmUgdGhhdCBvbmx5IHdvcmtzIGlmIHRoZQpAQCAtODA1LDcgKzgwNSw3IEBAIHZv
aWQgRWxlbWVudDo6c2V0SG92ZXJlZChib29sIGZsYWcsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29w
ZSBpbnZhbGlkYXRpb25TY29wZSkKICAgICAgICAgZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVu
dHMoKS5zZXRIb3ZlcmVkKCp0aGlzLCBmbGFnKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byogc3R5
bGUgPSByZW5kZXJTdHlsZSgpOyBzdHlsZSAmJiBzdHlsZS0+aGFzQXBwZWFyYW5jZSgpKQorICAg
IGlmIChhdXRvKiBzdHlsZSA9IHJlbmRlclN0eWxlKCk7IHN0eWxlICYmIHN0eWxlLT5oYXNFZmZl
Y3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnRoZW1lKCkuc3RhdGVDaGFu
Z2VkKCpyZW5kZXJlcigpLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkhvdmVyZWQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDViZmIyNjAxNGE0
M2U1MmQyMmVmNmQ4MDE1ZWFlZDU3NWFkMWNmYTEuLmMyZWI4YTdiYzQxMzIyY2E4ZDIwODQ0MzNh
MjM1ZmZlOTdiNWViYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0yMTA0LDcgKzIxMDQsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpmb2N1c2VkT3JB
Y3RpdmVTdGF0ZUNoYW5nZWQoKQogICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbV9kb2N1bWVu
dC0+Zm9jdXNlZEVsZW1lbnQoKSkgewogICAgICAgICBlbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVG
b3JTdWJ0cmVlKCk7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVu
dC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+c3R5
bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAgICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVy
ZXItPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIsIENvbnRyb2xTdGF0ZXM6OlN0
YXRlczo6Rm9jdXNlZCk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBhMjY2MmE2NTBmMmNkODg0NjYyM2QwYzYx
MDg3NjcwN2ViY2JkMzAxLi41YjA0MjRmNjZkODdkZjc3OTc3ZWYzMmQ5MGU1Yzk1ZjZiNmYwNTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVk
U3RhdGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwog
ICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKLSAgICBpZiAocmVuZGVyZXIoKSAmJiBy
ZW5kZXJlcigpLT5zdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAgICBpZiAocmVuZGVyZXIoKSAm
JiByZW5kZXJlcigpLT5zdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAg
cmVuZGVyZXIoKS0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyKCksIENvbnRyb2xTdGF0
ZXM6OlN0YXRlczo6RW5hYmxlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDFiOWIyZTFiMjIxZTBmZTNhYWY2YTVlMjAyOTQ1OWI0MDM0MzcyMzcu
LjA2OWNjNDE3NzBjYzlmYzUxYjk1ODIyMzUzMjQ2MzIzMzMyNmI3YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZChib29sIG5vd0NoZWNrZWQpCiAKICAgICBpZiAoUmFk
aW9CdXR0b25Hcm91cHMqIGJ1dHRvbnMgPSByYWRpb0J1dHRvbkdyb3VwcygpKQogICAgICAgICBi
dXR0b25zLT51cGRhdGVDaGVja2VkU3RhdGUoKnRoaXMpOwotICAgIGlmIChyZW5kZXJlcigpICYm
IHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpKQorICAgIGlmIChyZW5kZXJlcigp
ICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpKQogICAgICAg
ICByZW5kZXJlcigpLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIoKSwgQ29udHJvbFN0
YXRlczo6U3RhdGVzOjpDaGVja2VkKTsKICAgICB1cGRhdGVWYWxpZGl0eSgpOwogCkBAIC0xMDA5
LDcgKzEwMDksNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEluZGV0ZXJtaW5hdGUoYm9v
bCBuZXdWYWx1ZSkKIAogICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKIAotICAgIGlm
IChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpKQorICAg
IGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFy
YW5jZSgpKQogICAgICAgICByZW5kZXJlcigpLT50aGVtZSgpLnN0YXRlQ2hhbmdlZCgqcmVuZGVy
ZXIoKSwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpDaGVja2VkKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggMjI5NTRjNTY4NjFhMTJjMTBhMDYwNGNh
MjAzOWY4OWNjMjY4OTEyYi4uYjIxMmU4ODAwNDM5NGQxZGUxNDkzYjBiODNjNjU4NzIxM2U0Yzdk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC01OCw3ICs1
OCw3IEBAIFJlZjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKLSAgICBpZiAoIVJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5zdXBwb3J0c01ldGVyKHN0eWxlLmFwcGVhcmFuY2UoKSwgKnRoaXMpKQor
ICAgIGlmICghUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLnN1cHBvcnRzTWV0ZXIoc3R5bGUuZWZm
ZWN0aXZlQXBwZWFyYW5jZSgpLCAqdGhpcykpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50
OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJNZXRlcj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggZDA1ZjJlN2I5YzYzMDA2NTczMjZl
YTVmMTk3ZGI4NzUzZDQxYTU4ZC4uYjcyNWRlMjQxZDMyMzExYWQ0ZDg5NjYxZGYxMDRmYmUzMmZk
OGI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE3
OSw3ICsxNzksNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICBtX2Rpc2FibGVk
ID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICBpZiAob2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxl
ZCkgewogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotICAgICAgICAg
ICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkp
CisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLmhhc0Vm
ZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlcigpLT50aGVtZSgp
LnN0YXRlQ2hhbmdlZCgqcmVuZGVyZXIoKSwgQ29udHJvbFN0YXRlczo6U3RhdGVzOjpFbmFibGVk
KTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBzZWxlY3RlZEF0dHIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDYzNDNhYmI1
OWY2MDg0YmY0ZTQ4MDljMTcyNDM5NzkwZmFkOGNmZmQuLjY4MGNkZTg4YmEyMGYyZDdjMjZjYWM3
Mjg0ZjA1NmQyY2NlYTUxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRN
TFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogCiBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7Ci0gICAgaWYgKCFzdHlsZS5oYXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKCFzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVh
dGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIAogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJQcm9ncmVzcz4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggOTNkMTFkNjRlZTAyY2Q4ODJkZGZiMWQ4NjQ4MjQx
NmJkODgyYjI2MS4uNGIxZTNhMjljMGE0MzZlNDZlYjU2YzE5ZThhYzE5N2IwOWJlNGM0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTIwNSw3ICsyMDUsNyBAQCBh
dXRvIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIC0+IFNob3VsZENhbGxCYXNlRQogCiAgICAgYm9vbCBpc1ZlcnRpY2FsID0gZmFsc2U7CiAg
ICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudCgpLT5yZW5kZXJlcigpKSB7Ci0gICAgICAg
IENvbnRyb2xQYXJ0IHBhcnQgPSByZW5kZXJlci0+c3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAg
ICAgIENvbnRyb2xQYXJ0IHBhcnQgPSByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJh
bmNlKCk7CiAgICAgICAgIGlzVmVydGljYWwgPSBwYXJ0ID09IFNsaWRlclZlcnRpY2FsUGFydCB8
fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCmluZGV4IGY1
NzRmMDc0N2QxOWFiMDhiMTBhNDVmMzE5ZTc4NDNhYTI0YjI2YTAuLjdiYmQ5OWQ0MDEzYTI1MjBh
MjJiN2NkNjkxNjQ1M2FkYzI5NmE1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBIVE1M
UHJvZ3Jlc3NFbGVtZW50KiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQ6OnByb2dyZXNzRWxlbWVudCgp
IGNvbnN0CiBib29sIFByb2dyZXNzU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBwcm9ncmVzc1JlbmRl
cmVyID0gcHJvZ3Jlc3NFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHByb2dyZXNz
UmVuZGVyZXIgJiYgIXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpICYm
IEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKKyAgICByZXR1cm4gcHJv
Z3Jlc3NSZW5kZXJlciAmJiAhcHJvZ3Jlc3NSZW5kZXJlci0+c3R5bGUoKS5oYXNFZmZlY3RpdmVB
cHBlYXJhbmNlKCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwog
fQogCiBQcm9ncmVzc0lubmVyRWxlbWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNzEsNyArNzEsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZQogYm9v
bCBQcm9ncmVzc0lubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBwcm9ncmVzc1JlbmRlcmVyID0gcHJvZ3Jl
c3NFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIgJiYg
IXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpICYmIEhUTUxEaXZFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsgICAgCisgICAgcmV0dXJuIHByb2dyZXNzUmVu
ZGVyZXIgJiYgIXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5j
ZSgpICYmIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsgICAgCiB9CiAK
IFByb2dyZXNzQmFyRWxlbWVudDo6UHJvZ3Jlc3NCYXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCmluZGV4IDI5ODBhMTMzNzNjOTY2YTJkZTlmOTM0MGZmNmFmZDhjMDFiMDg3MzEuLmRiYWE4
ZDk1ZjM2MTM4Mjc0MTNlMDFkYzY2Y2YxZTFlNjVhYjZiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNzcsMTEgKzc3LDEx
IEBAIGlubGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0RWxl
bWVudCYgaW5wdXQpCiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHNsaWRlclN0eWxlID0gaW5wdXQu
cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAogI2lmIEVOQUJMRShWSURFTykKLSAgICBpZiAoc2xpZGVy
U3R5bGUuYXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCAmJiBpbnB1dC5yZW5k
ZXJlcigpLT50aGVtZSgpLnVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpKQorICAgIGlmIChzbGlk
ZXJTdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0ICYm
IGlucHV0LnJlbmRlcmVyKCktPnRoZW1lKCkudXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSAgICByZXR1cm4gc2xpZGVyU3R5bGUuYXBw
ZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydDsKKyAgICByZXR1cm4gc2xpZGVyU3R5bGUu
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydDsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTkzLDE3ICs5MywxNyBAQCBSZW5kZXJT
bGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIoU2xpZGVyVGh1bWJFbGVtZW50JiBlbGVtZW50
LCBSZW5kZXJTdHlsZSYmCiAKIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OnVwZGF0ZUFwcGVhcmFu
Y2UoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQogewotICAgIGlmIChwYXJlbnRTdHls
ZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKLSAgICAgICAgbXV0YWJsZVN0
eWxlKCkuc2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7Ci0gICAgZWxzZSBp
ZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCkKLSAg
ICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQ
YXJ0KTsKLSAgICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xp
ZGVyUGFydCkKLSAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShNZWRpYVNsaWRl
clRodW1iUGFydCk7Ci0gICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQpCi0gICAgICAgIG11dGFibGVTdHlsZSgpLnNldEFwcGVhcmFu
Y2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpOwotICAgIGVsc2UgaWYgKHBhcmVudFN0eWxl
LT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCkKLSAgICAg
ICAgbXV0YWJsZVN0eWxlKCkuc2V0QXBwZWFyYW5jZShNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlk
ZXJUaHVtYlBhcnQpOwotICAgIGlmIChzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkgeworICAgIGlm
IChwYXJlbnRTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFy
dCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShTbGlkZXJU
aHVtYlZlcnRpY2FsUGFydCk7CisgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxl
KCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKKyAg
ICBlbHNlIGlmIChwYXJlbnRTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lZGlhU2xp
ZGVyUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0RWZmZWN0aXZlQXBwZWFyYW5jZShN
ZWRpYVNsaWRlclRodW1iUGFydCk7CisgICAgZWxzZSBpZiAocGFyZW50U3R5bGUtPmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCisgICAgICAgIG11dGFibGVT
dHlsZSgpLnNldEVmZmVjdGl2ZUFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQp
OworICAgIGVsc2UgaWYgKHBhcmVudFN0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVk
aWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCkKKyAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0
RWZmZWN0aXZlQXBwZWFyYW5jZShNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQp
OworICAgIGlmIChzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBB
U1NFUlQoZWxlbWVudCgpKTsKICAgICAgICAgdGhlbWUoKS5hZGp1c3RTbGlkZXJUaHVtYlNpemUo
bXV0YWJsZVN0eWxlKCksIGVsZW1lbnQoKSk7CiAgICAgfQpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0
ZDo6b3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyVGh1bWJFbGVtZW50OjpyZXNv
bHZlQ3VzdG9tU3R5bGUoY29uc3QKICAgICBpZiAoIWhvc3RTdHlsZSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIHN3aXRjaCAoaG9zdFN0eWxlLT5hcHBlYXJhbmNlKCkpIHsK
KyAgICBzd2l0Y2ggKGhvc3RTdHlsZS0+ZWZmZWN0aXZlQXBwZWFyYW5jZSgpKSB7CiAgICAgY2Fz
ZSBNZWRpYVNsaWRlclBhcnQ6CiAgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKICAgICBj
YXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKQEAgLTY0OSw3ICs2NDksNyBAQCBzdGQ6Om9wdGlv
bmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZShjbwogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCi0gICAgc3dpdGNoIChob3N0U3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIHN3
aXRjaCAoaG9zdFN0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIE1lZGlh
U2xpZGVyUGFydDoKICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgogICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNDZjNDcwNTA4NTdkNGYxM2Q4
Mjc4NTZkZTFhMWJmMmIwOGE1NzhhNC4uYmQyNzYwNzE0YjdjMDljMDJmZDc0YzllNjU4YWI0OTNk
YzUxYWU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RkOjpvcHRpb25h
bDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpy
ZXNvbHZlQ3VzdG8KICAgICBpZiAoaW5wdXQgJiYgaW5wdXQtPm1heFJlc3VsdHMoKSA+PSAwKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKHNoYWRvd0hvc3RTdHlsZSAm
JiBzaGFkb3dIb3N0U3R5bGUtPmFwcGVhcmFuY2UoKSAhPSBTZWFyY2hGaWVsZFBhcnQpIHsKKyAg
ICBpZiAoc2hhZG93SG9zdFN0eWxlICYmIHNoYWRvd0hvc3RTdHlsZS0+ZWZmZWN0aXZlQXBwZWFy
YW5jZSgpICE9IFNlYXJjaEZpZWxkUGFydCkgewogICAgICAgICBTZXRGb3JTY29wZTxib29sPiBj
YW5BZGp1c3RTdHlsZUZvckFwcGVhcmFuY2UobV9jYW5BZGp1c3RTdHlsZUZvckFwcGVhcmFuY2Us
IGZhbHNlKTsKICAgICAgICAgcmV0dXJuIHJlc29sdmVTdHlsZSgmcGFyZW50U3R5bGUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAppbmRl
eCBmOTY1Yjk4OTliZTJlODVhN2M3ZTQ2MjZhYTBkYTQyMTNkYzllY2Q1Li4wZTIzMDAyNDE5OTIx
ZjAzZjg4ZThmMmI2NDg0OTU0NjE4MWVjNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC03OSwxNCArNzksMTQgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCwgTGlu
ZURpcmVjdGlvbk0KIAogYm9vbCBSZW5kZXJBdHRhY2htZW50OjpzaG91bGREcmF3Qm9yZGVyKCkg
Y29uc3QKIHsKLSAgICBpZiAoc3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gQm9yZGVybGVzc0F0dGFj
aG1lbnRQYXJ0KQorICAgIGlmIChzdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBCb3Jk
ZXJsZXNzQXR0YWNobWVudFBhcnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bV9zaG91bGREcmF3Qm9yZGVyOwogfQogCiB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OnBhaW50UmVw
bGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBvZmZzZXQpCiB7
Ci0gICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpTZWxlY3Rpb24gfHwgIWhh
c1Zpc2libGVCb3hEZWNvcmF0aW9ucygpIHx8ICFzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKKyAg
ICBpZiAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OlNlbGVjdGlvbiB8fCAhaGFzVmlz
aWJsZUJveERlY29yYXRpb25zKCkgfHwgIXN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHBhaW50UmVjdCA9IGJvcmRlckJveFJlY3Qo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDA0YjEyOTc0
NGRmMWFhYzdhZTY4NTI1ZjZiMjY4MTBhNWU1ZTBjMDIuLjY5Y2QwMGIyOWJiYTMwMDM1NjZkY2Fi
NWQyZjg0YjM0MGJjY2RjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcApAQCAtNzU0LDcgKzc1NCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkZE92ZXJmbG93RnJv
bVBvc2l0aW9uZWRPYmplY3RzKCkKIAogdm9pZCBSZW5kZXJCbG9jazo6YWRkVmlzdWFsT3ZlcmZs
b3dGcm9tVGhlbWUoKQogewotICAgIGlmICghc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAg
aWYgKCFzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgRmxvYXRSZWN0IGluZmxhdGVkUmVjdCA9IGJvcmRlckJveFJlY3QoKTsKQEAgLTI0NTEs
NyArMjQ1MSw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgYm9vbCBmaXJzdExpCiAgICAgICAgIC8vIEZJWE1FOiBN
aWdodCBiZSBiZXR0ZXIgdG8gaGF2ZSBhIGN1c3RvbSBDU1MgcHJvcGVydHkgaW5zdGVhZCwgc28g
dGhhdCBpZiB0aGUgdGhlbWUKICAgICAgICAgLy8gaXMgdHVybmVkIG9mZiwgY2hlY2tib3hlcy9y
YWRpb3Mgd2lsbCBzdGlsbCBoYXZlIGRlY2VudCBiYXNlbGluZXMuCiAgICAgICAgIC8vIEZJWE1F
OiBOZWVkIHRvIHBhdGNoIGZvcm0gY29udHJvbHMgdG8gZGVhbCB3aXRoIHZlcnRpY2FsIGxpbmVz
LgotICAgICAgICBpZiAoc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkgJiYgIXRoZW1lKCkuaXNDb250
cm9sQ29udGFpbmVyKHN0eWxlKCkuYXBwZWFyYW5jZSgpKSkKKyAgICAgICAgaWYgKHN0eWxlKCku
aGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpICYmICF0aGVtZSgpLmlzQ29udHJvbENvbnRhaW5lcihz
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhlbWUo
KS5iYXNlbGluZVBvc2l0aW9uKCp0aGlzKTsKICAgICAgICAgICAgIAogICAgICAgICAvLyBDU1My
LjEgc3RhdGVzIHRoYXQgdGhlIGJhc2VsaW5lIG9mIGFuIGlubGluZSBibG9jayBpcyB0aGUgYmFz
ZWxpbmUgb2YgdGhlIGxhc3QgbGluZSBib3ggaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggNWJmYzNmYzFjZGU2MjIxMGM3OGU4MDY0ZGQyNDk2YTk0MjdmOTBjMC4u
MzA0YWExZjI3Y2E5NDE3YzM0NGYyZjEwNjUwYjVjNDMwMGZjODNhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE1MDMsNyArMTUwMyw3IEBAIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBSZW5kZXJCb3g6OmRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZShHcmFwaGljc0NvCiAKICAgICBpZiAoYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb250
ZXh0U2NhbGluZykpCiAgICAgICAgIHJldHVybiBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3Jv
dW5kOwotICAgIGlmICghc3R5bGUuaGFzQXBwZWFyYW5jZSgpICYmIGJvcmRlck9ic2N1cmVzQmFj
a2dyb3VuZCgpICYmIGJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpKQorICAgIGlmICghc3R5
bGUuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpICYmIGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZCgp
ICYmIGJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpKQogICAgICAgICByZXR1cm4gQmFja2dy
b3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4gQmFja2dyb3VuZEJs
ZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CkBAIC0xNTM5LDcgKzE1MzksNyBAQCB2b2lkIFJlbmRl
ckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaQogICAgIC8vIElmIHdlIGhhdmUgYSBuYXRpdmUgdGhlbWUgYXBwZWFyYW5j
ZSwgcGFpbnQgdGhhdCBiZWZvcmUgcGFpbnRpbmcgb3VyIGJhY2tncm91bmQuCiAgICAgLy8gVGhl
IHRoZW1lIHdpbGwgdGVsbCB1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0
aGUgQ1NTIGJhY2tncm91bmQuCiAgICAgYm9vbCBib3JkZXJPckJhY2tncm91bmRQYWludGluZ0lz
TmVlZGVkID0gdHJ1ZTsKLSAgICBpZiAoc3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpIHsKKyAgICBp
ZiAoc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICAgICAgQ29udHJvbFN0
YXRlcyogY29udHJvbFN0YXRlcyA9IGNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcigqdGhpcyk7CiAg
ICAgICAgIGJvcmRlck9yQmFja2dyb3VuZFBhaW50aW5nSXNOZWVkZWQgPSB0aGVtZSgpLnBhaW50
KCp0aGlzLCAqY29udHJvbFN0YXRlcywgcGFpbnRJbmZvLCBwYWludFJlY3QpOwogICAgICAgICBp
ZiAoY29udHJvbFN0YXRlcy0+bmVlZHNSZXBhaW50KCkpCkBAIC0xNTUyLDEzICsxNTUyLDEzIEBA
IHZvaWQgUmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpCiAKICAgICAgICAgcGFpbnRCYWNrZ3JvdW5kKHBhaW50
SW5mbywgcGFpbnRSZWN0LCBibGVlZEF2b2lkYW5jZSk7CiAKLSAgICAgICAgaWYgKHN0eWxlKCku
aGFzQXBwZWFyYW5jZSgpKQorICAgICAgICBpZiAoc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJh
bmNlKCkpCiAgICAgICAgICAgICB0aGVtZSgpLnBhaW50RGVjb3JhdGlvbnMoKnRoaXMsIHBhaW50
SW5mbywgcGFpbnRSZWN0KTsKICAgICB9CiAgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRJbmZvLCBw
YWludFJlY3QsIHN0eWxlKCksIFNoYWRvd1N0eWxlOjpJbnNldCk7CiAKICAgICAvLyBUaGUgdGhl
bWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBD
U1MgYm9yZGVyLgotICAgIGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNr
Z3JvdW5kT3ZlckJvcmRlciAmJiAoIXN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpIHx8IChib3JkZXJP
ckJhY2tncm91bmRQYWludGluZ0lzTmVlZGVkICYmIHRoZW1lKCkucGFpbnRCb3JkZXJPbmx5KCp0
aGlzLCBwYWludEluZm8sIHBhaW50UmVjdCkpKSAmJiBzdHlsZSgpLmhhc1Zpc2libGVCb3JkZXJE
ZWNvcmF0aW9uKCkpCisgICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZEJh
Y2tncm91bmRPdmVyQm9yZGVyICYmICghc3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkg
fHwgKGJvcmRlck9yQmFja2dyb3VuZFBhaW50aW5nSXNOZWVkZWQgJiYgdGhlbWUoKS5wYWludEJv
cmRlck9ubHkoKnRoaXMsIHBhaW50SW5mbywgcGFpbnRSZWN0KSkpICYmIHN0eWxlKCkuaGFzVmlz
aWJsZUJvcmRlckRlY29yYXRpb24oKSkKICAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBw
YWludFJlY3QsIHN0eWxlKCksIGJsZWVkQXZvaWRhbmNlKTsKIAogICAgIGlmIChibGVlZEF2b2lk
YW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKQEAgLTE2MzMsNyAr
MTYzMyw3IEBAIGJvb2wgUmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0KSBjCiAgICAgLy8gV2UgY2Fubm90IGJlIHN1
cmUgaWYgdGhlbWUgcGFpbnRzIHRoZSBiYWNrZ3JvdW5kIG9wYXF1ZS4KICAgICAvLyBJbiB0aGlz
IGNhc2UgaXQgaXMgc2FmZSB0byBub3QgYXNzdW1lIG9wYXF1ZW5lc3MuCiAgICAgLy8gRklYTUU6
IE1heSBiZSBhc2sgdGhlbWUgaWYgaXQgcGFpbnRzIG9wYXF1ZS4KLSAgICBpZiAoc3R5bGUoKS5o
YXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKHN0eWxlKCkuaGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gRklYTUU6IENoZWNrIHRoZSBvcGFxdWVu
ZXNzIG9mIGJhY2tncm91bmQgaW1hZ2VzLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA4ODhkZTMyODNmOTI2MmM1YmQyMGVm
MjU5ODk2MGU0YTY4YzBlNzFmLi45NGI2NDE0MjAxYmQxZDMyMTAwZDM4MzAyODg5YjRjZjYwODQ0
NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3
aWxsQmVEZXN0cm95ZWQoKQogCiBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpoYXNWaXNpYmxl
Qm94RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzQmFja2dyb3VuZCgp
IHx8IHN0eWxlKCkuaGFzVmlzaWJsZUJvcmRlckRlY29yYXRpb24oKSB8fCBzdHlsZSgpLmhhc0Fw
cGVhcmFuY2UoKSB8fCBzdHlsZSgpLmJveFNoYWRvdygpOworICAgIHJldHVybiBoYXNCYWNrZ3Jv
dW5kKCkgfHwgc3R5bGUoKS5oYXNWaXNpYmxlQm9yZGVyRGVjb3JhdGlvbigpIHx8IHN0eWxlKCku
aGFzRWZmZWN0aXZlQXBwZWFyYW5jZSgpIHx8IHN0eWxlKCkuYm94U2hhZG93KCk7CiB9CiAKIHZv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnVwZGF0ZUZyb21TdHlsZSgpCkBAIC0yMzMxLDcgKzIz
MzEsNyBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxp
ZWRUb0JhY2tncm91bmQoY29uc3QgTGF5b3V0UG9pbgogICAgIGlmIChibGVlZEF2b2lkYW5jZSAh
PSBCYWNrZ3JvdW5kQmxlZWROb25lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
c3R5bGUoKS5oYXNBcHBlYXJhbmNlKCkpCisgICAgaWYgKHN0eWxlKCkuaGFzRWZmZWN0aXZlQXBw
ZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGhhc09uZU5vcm1h
bEJveFNoYWRvdyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA0MDQxNDU2NDNkYzYwMDEwYWE2ZWY3MmM2MWY5ZGIwMjNh
NTk3ZGJjLi41MDE0NDJmMjAxZTg5NTdhMTlkMDNiZTM2ZGRkNTcyMDc3YjUyY2JkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNzcx
LDcgKzc3MSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVCbGVuZE1vZGUoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
Q3VzdG9tQXBwZWFyYW5jZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0gICAgQ29udHJv
bFBhcnQgYXBwZWFyYW5jZSA9IHN0eWxlLmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBh
cHBlYXJhbmNlID0gc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogICAgIGlmIChhcHBlYXJh
bmNlID09IE1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmRQYXJ0KQogICAgICAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldEN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBw
ZWFyYW5jZTo6TGlnaHRCYWNrZHJvcCk7CiAgICAgZWxzZSBpZiAoYXBwZWFyYW5jZSA9PSBNZWRp
YUNvbnRyb2xzRGFya0JhckJhY2tncm91bmRQYXJ0KQpAQCAtMjQ2OCw3ICsyNDY4LDcgQEAgZmxv
YXQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkoZmxvYXQgcmVuZGVyZXJP
cGFjaXR5KSBjb25zdAogLy8gRklYTUU6IENvZGUgaXMgZHVwbGljYXRlZCBpbiBSZW5kZXJMYXll
ci4gQWxzbywgd2Ugc2hvdWxkIHByb2JhYmx5IG5vdCBjb25zaWRlciBmaWx0ZXJzIGEgYm94IGRl
Y29yYXRpb24gaGVyZS4KIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNWaXNpYmxlQm94RGVjb3JhdGlv
bnMoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIHJldHVybiBzdHlsZS5oYXNWaXNp
YmxlQm9yZGVyKCkgfHwgc3R5bGUuaGFzQm9yZGVyUmFkaXVzKCkgfHwgc3R5bGUuaGFzT3V0bGlu
ZSgpIHx8IHN0eWxlLmhhc0FwcGVhcmFuY2UoKSB8fCBzdHlsZS5ib3hTaGFkb3coKSB8fCBzdHls
ZS5oYXNGaWx0ZXIoKTsKKyAgICByZXR1cm4gc3R5bGUuaGFzVmlzaWJsZUJvcmRlcigpIHx8IHN0
eWxlLmhhc0JvcmRlclJhZGl1cygpIHx8IHN0eWxlLmhhc091dGxpbmUoKSB8fCBzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgfHwgc3R5bGUuYm94U2hhZG93KCkgfHwgc3R5bGUuaGFzRmls
dGVyKCk7CiB9CiAKIHN0YXRpYyBib29sIGNhbkRpcmVjdGx5Q29tcG9zaXRlQmFja2dyb3VuZEJh
Y2tncm91bmRJbWFnZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXgg
ZGYyYmVlMTg2MTVlNWRkMmIwMzUxNjU3ZjdiNDA3ZDNlYThiZDE4ZC4uYTFlNWU4NzMyZTA3YTg5
MTRlZDdkZTVkZmJiMzRjNjUzNmM4MmU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMTExOCw3ICsxMTE4
LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
TGlzdCBib3ggcGFydHMgaGFuZGxlIHRoZSBzY3JvbGxiYXJzIGJ5IHRoZW1zZWx2ZXMgc28gd2Ug
aGF2ZSBub3RoaW5nIHRvIGRvLgotICAgIGlmIChib3gtPnN0eWxlKCkuYXBwZWFyYW5jZSgpID09
IExpc3Rib3hQYXJ0KQorICAgIGlmIChib3gtPnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgp
ID09IExpc3Rib3hQYXJ0KQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGhhZFZlcnRpY2Fs
U2Nyb2xsYmFyID0gaGFzVmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTExMzgsNyArMTEzOCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5
b3V0KCkKICAgICBBU1NFUlQoYm94KTsKIAogICAgIC8vIExpc3QgYm94IHBhcnRzIGhhbmRsZSB0
aGUgc2Nyb2xsYmFycyBieSB0aGVtc2VsdmVzIHNvIHdlIGhhdmUgbm90aGluZyB0byBkby4KLSAg
ICBpZiAoYm94LT5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKKyAgICBpZiAo
Ym94LT5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRIb3Jpem9udGFsU2Nyb2xsYmFyID0gaGFzSG9yaXpv
bnRhbFNjcm9sbGJhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKaW5kZXggNzczMjMzYzE0ZmMyMWI0ZTI4MmMxYjE5ZjI1NGJmMTlmYjI1MjFiNy4uNDVj
NTFmZDEwMGI3ZjgxOThmM2JhZDEyMzcyZTEzYTNhZGNmZDExNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC01NDAsNyArNTQwLDcgQEAgUG9wdXBN
ZW51U3R5bGUgUmVuZGVyTWVudUxpc3Q6Om1lbnVTdHlsZSgpIGNvbnN0CiAgICAgSW50UmVjdCBh
YnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwog
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZShzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eUNvbG9yKSwgc3R5bGVUb1VzZS52aXNpdGVkRGVw
ZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLAog
ICAgICAgICBzdHlsZVRvVXNlLmZvbnRDYXNjYWRlKCksIHN0eWxlVG9Vc2UudmlzaWJpbGl0eSgp
ID09IFZpc2liaWxpdHk6OlZpc2libGUsIHN0eWxlVG9Vc2UuZGlzcGxheSgpID09IERpc3BsYXlU
eXBlOjpOb25lLAotICAgICAgICBzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSAmJiBzdHlsZSgpLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQsIHN0eWxlVG9Vc2UudGV4dEluZGVudCgpLAorICAg
ICAgICBzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSAmJiBzdHlsZSgpLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQsIHN0eWxlVG9Vc2UudGV4dEluZGVudCgpLAog
ICAgICAgICBzdHlsZSgpLmRpcmVjdGlvbigpLCBpc092ZXJyaWRlKHN0eWxlKCkudW5pY29kZUJp
ZGkoKSksIFBvcHVwTWVudVN0eWxlOjpEZWZhdWx0QmFja2dyb3VuZENvbG9yLAogICAgICAgICBQ
b3B1cE1lbnVTdHlsZTo6U2VsZWN0UG9wdXAsIHRoZW1lKCkucG9wdXBNZW51U2l6ZShzdHlsZVRv
VXNlLCBhYnNCb3VuZHMpKTsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQCBjb25zdCBpbnQgZW5kT2ZM
aW5lUGFkZGluZyA9IDI7CiAKIExheW91dFVuaXQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudFBhZGRp
bmdMZWZ0KCkgY29uc3QKIHsKLSAgICBpZiAoKHN0eWxlKCkuYXBwZWFyYW5jZSgpID09IE1lbnVs
aXN0UGFydCB8fCBzdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpICYm
IHN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKSB7CisgICAgaWYgKChz
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQgfHwgc3R5bGUoKS5l
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KSAmJiBzdHlsZSgpLmRp
cmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTCkgewogICAgICAgICAvLyBGb3IgdGhlc2Ug
YXBwZWFyYW5jZSB2YWx1ZXMsIHRoZSB0aGVtZSBhcHBsaWVzIHBhZGRpbmcgdG8gbGVhdmUgcm9v
bSBmb3IgdGhlCiAgICAgICAgIC8vIGRyb3AtZG93biBidXR0b24uIEJ1dCBsZWF2aW5nIHJvb20g
Zm9yIHRoZSBidXR0b24gaW5zaWRlIHRoZSBwb3B1cCBtZW51IGl0c2VsZgogICAgICAgICAvLyBs
b29rcyBzdHJhbmdlLCBzbyB3ZSByZXR1cm4gYSBzbWFsbCBkZWZhdWx0IHBhZGRpbmcgdG8gYXZv
aWQgaGF2aW5nIGEgbGFyZ2UgZW1wdHkKQEAgLTU4Niw3ICs1ODYsNyBAQCBMYXlvdXRVbml0IFJl
bmRlck1lbnVMaXN0OjpjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0CiAKIExheW91dFVuaXQgUmVu
ZGVyTWVudUxpc3Q6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiB7Ci0gICAgaWYgKChzdHls
ZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQgfHwgc3R5bGUoKS5hcHBlYXJhbmNlKCkg
PT0gTWVudWxpc3RCdXR0b25QYXJ0KSAmJiBzdHlsZSgpLmRpcmVjdGlvbigpID09IFRleHREaXJl
Y3Rpb246OkxUUikKKyAgICBpZiAoKHN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1l
bnVsaXN0UGFydCB8fCBzdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1
dHRvblBhcnQpICYmIHN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6TFRSKQog
ICAgICAgICByZXR1cm4gZW5kT2ZMaW5lUGFkZGluZzsKIAogICAgIHJldHVybiBwYWRkaW5nUmln
aHQoKSArIG1faW5uZXJCbG9jay0+cGFkZGluZ1JpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAzOGFhYTBlZTU4YTAzODRmNWI3ODI5MmQ2
MDgxMDRiNGUxODcxODkyLi4zZjgzOTFiYzhlMDI0NmIyNmU4NTUyMmY0YmM2NjE4YWVkYTEwNTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRlQW5pbWF0aW9uU3RhdGUoKQog
ICAgIG1fYW5pbWF0aW9uRHVyYXRpb24gPSB0aGVtZSgpLmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJv
Z3Jlc3NCYXIoKnRoaXMpOwogICAgIG1fYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWwgPSB0aGVtZSgp
LmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoKnRoaXMpOwogCi0gICAgYm9v
bCBhbmltYXRpbmcgPSBzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSAmJiBtX2FuaW1hdGlvblJlcGVh
dEludGVydmFsID4gMF9zICYmICFpc0RldGVybWluYXRlKCk7CisgICAgYm9vbCBhbmltYXRpbmcg
PSBzdHlsZSgpLmhhc0VmZmVjdGl2ZUFwcGVhcmFuY2UoKSAmJiBtX2FuaW1hdGlvblJlcGVhdElu
dGVydmFsID4gMF9zICYmICFpc0RldGVybWluYXRlKCk7CiAgICAgaWYgKGFuaW1hdGluZyA9PSBt
X2FuaW1hdGluZykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmNwcAppbmRleCBlOGQ0MGJhNjQ1YTI4ZDdhYTEzNjg5YjBmNGVmNjk5MjBhYWE5
Y2NlLi5iOTA4MmI1Njc3OTVmMmNkNWU0ZDZhNzRkNzAzM2E4NWU4NzFjMDVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTkwLDE2ICs5MCwxNiBAQCB2b2lk
IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0CiAgICAgaWYgKHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSAmJiBp
c0NvbnRyb2xTdHlsZWQoc3R5bGUsICp1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUpKSB7CiAgICAg
ICAgIHN3aXRjaCAocGFydCkgewogICAgICAgICBjYXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAg
ICAgIHN0eWxlLnNldEFwcGVhcmFuY2UoTWVudWxpc3RCdXR0b25QYXJ0KTsKKyAgICAgICAgICAg
IHN0eWxlLnNldEVmZmVjdGl2ZUFwcGVhcmFuY2UoTWVudWxpc3RCdXR0b25QYXJ0KTsKICAgICAg
ICAgICAgIHBhcnQgPSBNZW51bGlzdEJ1dHRvblBhcnQ7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN0eWxlLnNldEFwcGVhcmFuY2UoTm9Db250cm9s
UGFydCk7CisgICAgICAgICAgICBzdHlsZS5zZXRFZmZlY3RpdmVBcHBlYXJhbmNlKE5vQ29udHJv
bFBhcnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
IXN0eWxlLmhhc0FwcGVhcmFuY2UoKSkKKyAgICBpZiAoIXN0eWxlLmhhc0VmZmVjdGl2ZUFwcGVh
cmFuY2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFzdXBwb3J0c0JveFNoYWRvdyhz
dHlsZSkpCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdAogI2VuZGlm
CiAKICAgICAvLyBDYWxsIHRoZSBhcHByb3ByaWF0ZSBzdHlsZSBhZGp1c3RtZW50IG1ldGhvZCBi
YXNlZCBvZmYgdGhlIGFwcGVhcmFuY2UgdmFsdWUuCi0gICAgc3dpdGNoIChzdHlsZS5hcHBlYXJh
bmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogI2lm
ICFVU0UoTkVXX1RIRU1FKQogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICByZXR1cm4g
YWRqdXN0Q2hlY2tib3hTdHlsZShzdHlsZSwgZWxlbWVudCk7CkBAIC0yNzMsMTEgKzI3MywxMSBA
QCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0CiB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTZWFyY2hG
aWVsZERlY29yYXRpb25TdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpIGNvbnN0CiB7CiAgICAgaWYgKGlzPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ+KGVsZW1lbnQpICYmICFkb3duY2FzdDxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
PigqZWxlbWVudCkuY2FuQWRqdXN0U3R5bGVGb3JBcHBlYXJhbmNlKCkpIHsKLSAgICAgICAgc3R5
bGUuc2V0QXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKKyAgICAgICAgc3R5bGUuc2V0RWZmZWN0
aXZlQXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHN3aXRjaCAoc3R5bGUuYXBwZWFyYW5jZSgpKSB7CisgICAgc3dpdGNoIChzdHlsZS5lZmZl
Y3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnQ6
CiAgICAgICAgIHJldHVybiBhZGp1c3RTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUoc3R5
bGUsIGVsZW1lbnQpOwogICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBhcnQ6
CkBAIC0zMDUsNyArMzA1LDcgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVy
Qm94JiBib3gsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICAgICBpZiAoVU5M
SUtFTFkoIWNhblBhaW50KHBhaW50SW5mbywgYm94LnNldHRpbmdzKCkpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgQ29udHJvbFBhcnQgcGFydCA9IGJveC5zdHlsZSgpLmFwcGVhcmFu
Y2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gYm94LnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFy
YW5jZSgpOwogICAgIEludFJlY3QgaW50ZWdyYWxTbmFwcGVkUmVjdCA9IHNuYXBwZWRJbnRSZWN0
KHJlY3QpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gYm94LmRvY3VtZW50KCkuZGV2
aWNlU2NhbGVGYWN0b3IoKTsKICAgICBGbG9hdFJlY3QgZGV2aWNlUGl4ZWxTbmFwcGVkUmVjdCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdCwgZGV2aWNlU2NhbGVGYWN0b3IpOwpAQCAtNDUw
LDExICs0NTAsMTEgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KGNvbnN0IFJl
bmRlckJveCYgYm94LCBjb25zdCBQYWludEluZm8mIHBhaW50SW4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBib3guc3R5bGUo
KS5hcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydDsKKyAgICByZXR1cm4gYm94LnN0eWxlKCku
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpICE9IE5vQ29udHJvbFBhcnQ7CiAjZWxzZQogICAgIEZsb2F0
UmVjdCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0
LCBib3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICAvLyBDYWxsIHRoZSBh
cHByb3ByaWF0ZSBwYWludCBtZXRob2QgYmFzZWQgb2ZmIHRoZSBhcHBlYXJhbmNlIHZhbHVlLgot
ICAgIHN3aXRjaCAoYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpKSB7CisgICAgc3dpdGNoIChib3gu
c3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIFRleHRGaWVsZFBhcnQ6
CiAgICAgICAgIHJldHVybiBwYWludFRleHRGaWVsZChib3gsIHBhaW50SW5mbywgZGV2aWNlUGl4
ZWxTbmFwcGVkUmVjdCk7CiAgICAgY2FzZSBMaXN0Ym94UGFydDoKQEAgLTUwNyw3ICs1MDcsNyBA
QCB2b2lkIFJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKGNvbnN0IFJlbmRlckJveCYgYm94
LCBjb25zdCBQYWludEluZm8mIHBhaW50SQogICAgIEZsb2F0UmVjdCBkZXZpY2VQaXhlbFNuYXBw
ZWRSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0LCBib3guZG9jdW1lbnQoKS5kZXZp
Y2VTY2FsZUZhY3RvcigpKTsKIAogICAgIC8vIENhbGwgdGhlIGFwcHJvcHJpYXRlIHBhaW50IG1l
dGhvZCBiYXNlZCBvZmYgdGhlIGFwcGVhcmFuY2UgdmFsdWUuCi0gICAgc3dpdGNoIChib3guc3R5
bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKGJveC5zdHlsZSgpLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSkgewogICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgogICAgICAgICBwYWlu
dE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnMoYm94LCBwYWludEluZm8sIGRldmljZVBpeGVsU25h
cHBlZFJlY3QpOwogICAgICAgICBicmVhazsKQEAgLTcyMCw3ICs3MjAsNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eQogaW50IFJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJl
bmRlckJveCYgYm94KSBjb25zdAogewogI2lmIFVTRShORVdfVEhFTUUpCi0gICAgcmV0dXJuIGJv
eC5oZWlnaHQoKSArIGJveC5tYXJnaW5Ub3AoKSArIFRoZW1lOjpzaW5nbGV0b24oKS5iYXNlbGlu
ZVBvc2l0aW9uQWRqdXN0bWVudChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkpICogYm94LnN0eWxl
KCkuZWZmZWN0aXZlWm9vbSgpOworICAgIHJldHVybiBib3guaGVpZ2h0KCkgKyBib3gubWFyZ2lu
VG9wKCkgKyBUaGVtZTo6c2luZ2xldG9uKCkuYmFzZWxpbmVQb3NpdGlvbkFkanVzdG1lbnQoYm94
LnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpKSAqIGJveC5zdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKTsKICNlbHNlCiAgICAgcmV0dXJuIGJveC5oZWlnaHQoKSArIGJveC5tYXJnaW5Ub3AoKTsK
ICNlbmRpZgpAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OmlzQ29udHJvbENv
bnRhaW5lcihDb250cm9sUGFydCBhcHBlYXJhbmNlKSBjb25zdAogCiBib29sIFJlbmRlclRoZW1l
Ojppc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChzdHlsZS5hcHBlYXJh
bmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAg
IGNhc2UgUHVzaEJ1dHRvblBhcnQ6CiAgICAgY2FzZSBTcXVhcmVCdXR0b25QYXJ0OgogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNzY3LDcgKzc2Nyw3IEBAIHZvaWQgUmVuZGVyVGhl
bWU6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEZsb2F0
UmVjdCYgcmVjCiB7CiAjaWYgVVNFKE5FV19USEVNRSkKICAgICBDb250cm9sU3RhdGVzIHN0YXRl
cyhleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKHJlbmRlcmVyKSk7Ci0gICAgVGhlbWU6
OnNpbmdsZXRvbigpLmluZmxhdGVDb250cm9sUGFpbnRSZWN0KHJlbmRlcmVyLnN0eWxlKCkuYXBw
ZWFyYW5jZSgpLCBzdGF0ZXMsIHJlY3QsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KTsKKyAgICBUaGVtZTo6c2luZ2xldG9uKCkuaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QocmVuZGVy
ZXIuc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCksIHN0YXRlcywgcmVjdCwgcmVuZGVyZXIu
c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVuZGVy
ZXIpOwogICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKQEAgLTc3Niw3ICs3NzYsNyBAQCB2b2lkIFJl
bmRlclRoZW1lOjphZGp1c3RSZXBhaW50UmVjdChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
LCBGbG9hdFJlY3QmIHJlYwogCiBib29sIFJlbmRlclRoZW1lOjpzdXBwb3J0c0ZvY3VzUmluZyhj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChzdHlsZS5oYXNB
cHBlYXJhbmNlKCkgJiYgc3R5bGUuYXBwZWFyYW5jZSgpICE9IFRleHRGaWVsZFBhcnQgJiYgc3R5
bGUuYXBwZWFyYW5jZSgpICE9IFRleHRBcmVhUGFydCAmJiBzdHlsZS5hcHBlYXJhbmNlKCkgIT0g
TWVudWxpc3RCdXR0b25QYXJ0ICYmIHN0eWxlLmFwcGVhcmFuY2UoKSAhPSBMaXN0Ym94UGFydCk7
CisgICAgcmV0dXJuIChzdHlsZS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkgJiYgc3R5bGUuZWZm
ZWN0aXZlQXBwZWFyYW5jZSgpICE9IFRleHRGaWVsZFBhcnQgJiYgc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpICE9IFRleHRBcmVhUGFydCAmJiBzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
IT0gTWVudWxpc3RCdXR0b25QYXJ0ICYmIHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSAhPSBM
aXN0Ym94UGFydCk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWU6OnN0YXRlQ2hhbmdlZChjb25zdCBS
ZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0ZSkgY29uc3QKQEAgLTky
NCw3ICs5MjQsNyBAQCBib29sIFJlbmRlclRoZW1lOjppc0RlZmF1bHQoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogICAgIGlmICghaXNBY3RpdmUobykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IERlZmF1bHRCdXR0b25Q
YXJ0OworICAgIHJldHVybiBvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IERlZmF1
bHRCdXR0b25QYXJ0OwogfQogCiAjaWYgIVVTRShORVdfVEhFTUUpCkBAIC0xMDg5LDcgKzEwODks
NyBAQCB2b2lkIFJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9iamVj
dCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludAogCiAgICAgZG91YmxlIG1pbiA9IGlucHV0Lm1p
bmltdW0oKTsKICAgICBkb3VibGUgbWF4ID0gaW5wdXQubWF4aW11bSgpOwotICAgIENvbnRyb2xQ
YXJ0IHBhcnQgPSBvLnN0eWxlKCkuYXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHBhcnQg
PSBvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogICAgIC8vIFdlIGRvbid0IHN1cHBv
cnQgdGlja3Mgb24gYWx0ZXJuYXRlIHNsaWRlcnMgbGlrZSBNZWRpYVZvbHVtZVNsaWRlcnMuCiAg
ICAgaWYgKHBhcnQgIT0gIFNsaWRlckhvcml6b250YWxQYXJ0ICYmIHBhcnQgIT0gU2xpZGVyVmVy
dGljYWxQYXJ0KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCmluZGV4IGY0NTk4NGI2NzQzNTNhODRlYTBlMjQ4ZjAw
NTliYTYwOWI2MTVhZjIuLjMyYWI1YzJjOTg2MjM0NDIzZWE0OWZmODQxYzM1N2EzYThkZGM2YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAgUmVuZGVyVGhlbWUmIFJlbmRlclRoZW1lOjpzaW5nbGV0b24o
KQogCiBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6c3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotICAgIHN3aXRjaCAoc3R5bGUuYXBwZWFyYW5jZSgp
KSB7CisgICAgc3dpdGNoIChzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICBjYXNl
IFB1c2hCdXR0b25QYXJ0OgogICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICBjYXNlIFRleHRGaWVs
ZFBhcnQ6CkBAIC0zNjAsNyArMzYwLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUFkd2FpdGE6OmFkanVz
dE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGUKIAogTGVu
Z3RoQm94IFJlbmRlclRoZW1lQWR3YWl0YTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTZXR0aW5ncyYpIGNvbnN0CiB7Ci0gICAgaWYgKHN0
eWxlLmFwcGVhcmFuY2UoKSA9PSBOb0NvbnRyb2xQYXJ0KQorICAgIGlmIChzdHlsZS5lZmZlY3Rp
dmVBcHBlYXJhbmNlKCkgPT0gTm9Db250cm9sUGFydCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIGludCBsZWZ0UGFkZGluZyA9IG1lbnVMaXN0QnV0dG9uUGFkZGluZyArIChzdHlsZS5kaXJl
Y3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEwgPyBtZW51TGlzdEJ1dHRvbkFycm93U2l6ZSA6
IDApOwpAQCAtNDk4LDcgKzQ5OCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVBZHdhaXRhOjpwYWludFNs
aWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zCiAgICAgYXV0
byYgZ3JhcGhpY3NDb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQoKTsKICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3JhcGhpY3NDb250ZXh0KTsKIAotICAgIENvbnRy
b2xQYXJ0IHBhcnQgPSByZW5kZXJPYmplY3Quc3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAgQ29u
dHJvbFBhcnQgcGFydCA9IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KTsKICAgICBBU1NFUlQocGFydCA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNs
aWRlclZlcnRpY2FsUGFydCk7CiAKICAgICBGbG9hdFJlY3QgZmllbGRSZWN0ID0gcmVjdDsKQEAg
LTU4MSw3ICs1ODEsNyBAQCBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6cGFpbnRTbGlkZXJUcmFj
ayhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29ucwogCiB2b2lkIFJlbmRlclRo
ZW1lQWR3YWl0YTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlJiBzdHlsZSwgY29u
c3QgRWxlbWVudCopIGNvbnN0CiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxlLmFwcGVh
cmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5j
ZSgpOwogICAgIGlmIChwYXJ0ICE9IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgJiYgcGFydCAh
PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgcmV0dXJuOwogCkBAIC01OTQsNyAr
NTk0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUFkd2FpdGE6OnBhaW50U2xpZGVyVGh1bWIoY29uc3Qg
UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnMKICAgICBhdXRvJiBncmFwaGljc0NvbnRl
eHQgPSBwYWludEluZm8uY29udGV4dCgpOwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwogCi0gICAgQVNTRVJUKHJlbmRlck9iamVjdC5z
dHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IHJlbmRl
ck9iamVjdC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7
CisgICAgQVNTRVJUKHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9
PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVj
dGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7CiAKICAgICBTUkdC
QTx1aW50OF90PiBzbGlkZXJUaHVtYkJhY2tncm91bmRDb2xvcjsKICAgICBTUkdCQTx1aW50OF90
PiBzbGlkZXJUaHVtYkJhY2tncm91bmRIb3ZlcmVkQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNDgyNzUxN2Q0ZWZkNDExYjg0ODNhZDk3ZDBm
ZmY2YjFiMmZjNmVmZi4uNmRkN2U4OTRlMjk0OGQ4YjFkM2Q1YzI3NWE0MmRmMmMwNTdkMDk2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtNDQ2LDcg
KzQ0Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50Q2hlY2tib3hEZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpCiBMYXlvdXRSZWN0IFJlbmRlclRoZW1l
SU9TOjphZGp1c3RlZFBhaW50UmVjdChjb25zdCBSZW5kZXJCb3gmIGJveCwgY29uc3QgTGF5b3V0
UmVjdCYgcGFpbnRSZWN0KSBjb25zdAogewogICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8v
cHJvYmxlbS82MjA5NzYzPi4gRm9yY2UgdGhlIHBhaW50aW5nIGJvdW5kcyBvZiBjaGVja2JveGVz
IGFuZCByYWRpbyBjb250cm9scyB0byBiZSBzcXVhcmUuCi0gICAgaWYgKGJveC5zdHlsZSgpLmFw
cGVhcmFuY2UoKSA9PSBDaGVja2JveFBhcnQgfHwgYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpID09
IFJhZGlvUGFydCkgeworICAgIGlmIChib3guc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
PT0gQ2hlY2tib3hQYXJ0IHx8IGJveC5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBS
YWRpb1BhcnQpIHsKICAgICAgICAgZmxvYXQgd2lkdGggPSBzdGQ6Om1pbihwYWludFJlY3Qud2lk
dGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKTsKICAgICAgICAgZmxvYXQgaGVpZ2h0ID0gd2lkdGg7
CiAgICAgICAgIHJldHVybiBlbmNsb3NpbmdMYXlvdXRSZWN0KEZsb2F0UmVjdChwYWludFJlY3Qu
eCgpLCBwYWludFJlY3QueSgpICsgKGJveC5oZWlnaHQoKSAtIGhlaWdodCkgLyAyLCB3aWR0aCwg
aGVpZ2h0KSk7IC8vIFZlcnRpY2FsbHkgY2VudGVyIHRoZSBjaGVja2JveCwgbGlrZSBvbiBkZXNr
dG9wCkBAIC00NTcsOSArNDU3LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0
ZWRQYWludFJlY3QoY29uc3QgUmVuZGVyQm94JiBib3gsIGNvbnN0IExheW91dFIKIAogaW50IFJl
bmRlclRoZW1lSU9TOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYgYm94KSBjb25z
dAogewotICAgIGlmIChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gQ2hlY2tib3hQYXJ0IHx8
IGJveC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBSYWRpb1BhcnQpCisgICAgaWYgKGJveC5zdHls
ZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBDaGVja2JveFBhcnQgfHwgYm94LnN0eWxlKCku
ZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFJhZGlvUGFydCkKICAgICAgICAgcmV0dXJuIGJveC5t
YXJnaW5Ub3AoKSArIGJveC5oZWlnaHQoKSAtIDI7IC8vIFRoZSBiYXNlbGluZSBpcyAycHggdXAg
ZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBjaGVja2JveC9yYWRpbyBpbiBBcHBLaXQuCi0gICAgaWYg
KGJveC5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCisgICAgaWYgKGJveC5z
dHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCiAgICAgICAgIHJl
dHVybiBib3gubWFyZ2luVG9wKCkgKyBib3guaGVpZ2h0KCkgLSA1OyAvLyBUaGlzIGlzIHRvIG1h
dGNoIEFwcEtpdC4gVGhlcmUgbWlnaHQgYmUgYSBiZXR0ZXIgd2F5IHRvIGNhbGN1bGF0ZSB0aGlz
IHRob3VnaC4KICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OmJhc2VsaW5lUG9zaXRpb24oYm94KTsK
IH0KQEAgLTQ2NywxMCArNDY3LDEwIEBAIGludCBSZW5kZXJUaGVtZUlPUzo6YmFzZWxpbmVQb3Np
dGlvbihjb25zdCBSZW5kZXJCb3gmIGJveCkgY29uc3QKIGJvb2wgUmVuZGVyVGhlbWVJT1M6Omlz
Q29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
JiB1c2VyQWdlbnRTdHlsZSkgY29uc3QKIHsKICAgICAvLyBCdXR0b25zIGFuZCBNZW51bGlzdEJ1
dHRvbnMgYXJlIHN0eWxlZCBpZiB0aGV5IGNvbnRhaW4gYSBiYWNrZ3JvdW5kIGltYWdlLgotICAg
IGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gUHVzaEJ1dHRvblBhcnQgfHwgc3R5bGUuYXBwZWFy
YW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkKKyAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpID09IFB1c2hCdXR0b25QYXJ0IHx8IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpCiAgICAgICAgIHJldHVybiAhc3R5bGUudmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5pc1Zpc2libGUoKSB8fCBz
dHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCkuaGFzSW1hZ2UoKTsKIAotICAgIGlmIChzdHlsZS5hcHBl
YXJhbmNlKCkgPT0gVGV4dEZpZWxkUGFydCB8fCBzdHlsZS5hcHBlYXJhbmNlKCkgPT0gVGV4dEFy
ZWFQYXJ0KQorICAgIGlmIChzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxk
UGFydCB8fCBzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gVGV4dEFyZWFQYXJ0KQogICAg
ICAgICByZXR1cm4gc3R5bGUuYmFja2dyb3VuZExheWVycygpICE9IHVzZXJBZ2VudFN0eWxlLmJh
Y2tncm91bmRMYXllcnMoKTsKIAogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6aXNDb250cm9sU3R5
bGVkKHN0eWxlLCB1c2VyQWdlbnRTdHlsZSk7CkBAIC01OTUsNyArNTk1LDcgQEAgTGVuZ3RoQm94
IFJlbmRlclRoZW1lSU9TOjpwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnMKICAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxm
bG9hdD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KSk7CiAgICAgfQogCi0gICAgaWYgKHN0eWxlLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpIHsKKyAgICBpZiAoc3R5bGUuZWZmZWN0
aXZlQXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkgewogICAgICAgICBpZiAoc3R5
bGUuZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKQogICAgICAgICAgICAgcmV0dXJu
IHsgMCwgMCwgMCwgc3RhdGljX2Nhc3Q8aW50PihwYWRkaW5nICsgc3R5bGUuYm9yZGVyVG9wV2lk
dGgoKSkgfTsKICAgICAgICAgcmV0dXJuIHsgMCwgc3RhdGljX2Nhc3Q8aW50PihwYWRkaW5nICsg
c3R5bGUuYm9yZGVyVG9wV2lkdGgoKSksIDAsIDAgfTsKQEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgY2FuQWRqdXN0Qm9yZGVyUmFkaXVzRm9yQXBwZWFyYW5jZShDb250cm9s
UGFydCBhcHBlYXJhbmNlLCBjbwogCiB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSb3VuZEJv
cmRlclJhZGl1cyhSZW5kZXJTdHlsZSYgc3R5bGUsIFJlbmRlckJveCYgYm94KQogewotICAgIGlm
ICghY2FuQWRqdXN0Qm9yZGVyUmFkaXVzRm9yQXBwZWFyYW5jZShzdHlsZS5hcHBlYXJhbmNlKCks
IGJveCkgfHwgc3R5bGUuYmFja2dyb3VuZExheWVycygpLmhhc0ltYWdlKCkpCisgICAgaWYgKCFj
YW5BZGp1c3RCb3JkZXJSYWRpdXNGb3JBcHBlYXJhbmNlKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFu
Y2UoKSwgYm94KSB8fCBzdHlsZS5iYWNrZ3JvdW5kTGF5ZXJzKCkuaGFzSW1hZ2UoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKChpczxSZW5kZXJCdXR0b24+KGJveCkgfHwgaXM8UmVuZGVy
TWVudUxpc3Q+KGJveCkpICYmIGJveC5oZWlnaHQoKSA+PSBsYXJnZUJ1dHRvblNpemUpIHsKQEAg
LTg3Niw3ICs4NzYsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNrKGNv
bnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWludEluZm8mCiAgICAgYXV0byYgc3R5bGUg
PSBib3guc3R5bGUoKTsKIAogICAgIGJvb2wgaXNIb3Jpem9udGFsID0gdHJ1ZTsKLSAgICBzd2l0
Y2ggKHN0eWxlLmFwcGVhcmFuY2UoKSkgeworICAgIHN3aXRjaCAoc3R5bGUuZWZmZWN0aXZlQXBw
ZWFyYW5jZSgpKSB7CiAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKICAgICAgICAgaXNI
b3Jpem9udGFsID0gdHJ1ZTsKICAgICAgICAgLy8gSW5zZXQgc2xpZ2h0bHkgc28gdGhlIHRodW1i
IGNvdmVycyB0aGUgZWRnZS4KQEAgLTk1MCw3ICs5NTAsNyBAQCBib29sIFJlbmRlclRoZW1lSU9T
OjpwYWludFNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdCBQYWludElu
Zm8mCiAKIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAogewotICAgIGlmIChzdHlsZS5hcHBl
YXJhbmNlKCkgIT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCAmJiBzdHlsZS5hcHBlYXJhbmNl
KCkgIT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSAhPSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0ICYmIHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSAhPSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gRW5mb3JjZSAiYm9yZGVyLXJhZGl1czogNTAlIi4KQEAgLTExMzIsNyArMTEz
Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVuCiAgICAgICAgIHN0eWxlLnNldE1pbkhlaWdo
dChMZW5ndGgoQ29udHJvbEJhc2VIZWlnaHQgLyBDb250cm9sQmFzZUZvbnRTaXplICogc3R5bGUu
Zm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgp
ID09IENvbG9yV2VsbFBhcnQpCisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9
PSBDb2xvcldlbGxQYXJ0KQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIApAQCAtMTI4OCw3ICsx
Mjg4LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdAogYm9vbCBSZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNCb3hTaGFkb3co
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBTZWUgaWYg
YWRkaXRpb25hbCBuYXRpdmUgY29udHJvbHMgY2FuIHN1cHBvcnQgYm94IHNoYWRvd3MuCi0gICAg
c3dpdGNoIChzdHlsZS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSkgewogICAgIGNhc2UgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydDoKICAg
ICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTIzNzAsNyArMjM3MCw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50U2xpZGVyVGlja3Mo
Y29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0IFBhaW50SW5mbyYKICAgICBGbG9hdFJlY3Qg
dGlja1JlY3Q7CiAgICAgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkgdGlja0Nvcm5lclJhZGlpKHRp
Y2tDb3JuZXJSYWRpdXMpOwogCi0gICAgYm9vbCBpc0hvcml6b250YWwgPSBib3guc3R5bGUoKS5h
cHBlYXJhbmNlKCkgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQ7CisgICAgYm9vbCBpc0hvcml6b250
YWwgPSBib3guc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVySG9yaXpvbnRh
bFBhcnQ7CiAgICAgaWYgKGlzSG9yaXpvbnRhbCkgewogICAgICAgICB0aWNrUmVjdC5zZXRXaWR0
aCh0aWNrV2lkdGgpOwogICAgICAgICB0aWNrUmVjdC5zZXRIZWlnaHQodGlja0hlaWdodCk7CkBA
IC0yNDE3LDcgKzI0MTcsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNr
V2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdCBSZW5kZXJPYmplY3QmCiAgICAgYm9vbCBpc0hv
cml6b250YWwgPSB0cnVlOwogICAgIEZsb2F0UmVjdCB0cmFja0NsaXAgPSByZWN0OwogCi0gICAg
c3dpdGNoIChib3guc3R5bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2ggKGJveC5zdHls
ZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBh
cnQ6CiAgICAgICAgIC8vIEluc2V0IHNsaWdodGx5IHNvIHRoZSB0aHVtYiBjb3ZlcnMgdGhlIGVk
Z2UuCiAgICAgICAgIGlmICh0cmFja0NsaXAud2lkdGgoKSA+IDIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAxZWU3MjE0M2Y5MDQyZjBmNzE3ZmQy
NzE4NjRmYzE5NTRmNDMzMzVlLi5mMzgyOTZhYmIwY2ZiZTg3MTM1OWU2OGU5OTU1ZjYzMGRiYmU3
ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC03
NDksNyArNzQ5LDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6dXNlc1Rlc3RNb2RlRm9jdXNSaW5n
Q29sb3IoKSBjb25zdAogCiBib29sIFJlbmRlclRoZW1lTWFjOjppc0NvbnRyb2xTdHlsZWQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUp
IGNvbnN0CiB7Ci0gICAgYXV0byBhcHBlYXJhbmNlID0gc3R5bGUuYXBwZWFyYW5jZSgpOworICAg
IGF1dG8gYXBwZWFyYW5jZSA9IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKTsKICAgICBpZiAo
YXBwZWFyYW5jZSA9PSBUZXh0RmllbGRQYXJ0IHx8IGFwcGVhcmFuY2UgPT0gVGV4dEFyZWFQYXJ0
IHx8IGFwcGVhcmFuY2UgPT0gU2VhcmNoRmllbGRQYXJ0IHx8IGFwcGVhcmFuY2UgPT0gTGlzdGJv
eFBhcnQpCiAgICAgICAgIHJldHVybiBzdHlsZS5ib3JkZXIoKSAhPSB1c2VyQWdlbnRTdHlsZS5i
b3JkZXIoKTsKIApAQCAtNzgzLDcgKzc4Myw3IEBAIHN0YXRpYyBGbG9hdFJlY3QgaW5mbGF0ZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBpCiAK
IHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVj
dCYgcmVuZGVyZXIsIEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBDb250cm9sUGFydCBwYXJ0ID0g
cmVuZGVyZXIuc3R5bGUoKS5hcHBlYXJhbmNlKCk7CisgICAgQ29udHJvbFBhcnQgcGFydCA9IHJl
bmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpOwogCiAjaWYgVVNFKE5FV19USEVN
RSkKICAgICBzd2l0Y2ggKHBhcnQpIHsKQEAgLTg3NSw3ICs4NzUsNyBAQCBib29sIFJlbmRlclRo
ZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIENoZWNrYm94ZXMgb25seSBoYXZlIHRp
bnQgd2hlbiBjaGVja2VkLgotICAgIGlmIChvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IENoZWNr
Ym94UGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBDaGVj
a2JveFBhcnQpCiAgICAgICAgIHJldHVybiBpc0NoZWNrZWQobyk7CiAKICAgICAvLyBGb3Igbm93
IGFzc3VtZSBvdGhlciBjb250cm9scyBoYXZlIHRpbnQgaWYgZW5hYmxlZC4KQEAgLTExNTQsNyAr
MTE1NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvCiAKIEludFNpemUgUmVuZGVyVGhlbWVN
YWM6Om1ldGVyU2l6ZUZvckJvdW5kcyhjb25zdCBSZW5kZXJNZXRlciYgcmVuZGVyTWV0ZXIsIGNv
bnN0IEludFJlY3QmIGJvdW5kcykgY29uc3QKIHsKLSAgICBpZiAoTm9Db250cm9sUGFydCA9PSBy
ZW5kZXJNZXRlci5zdHlsZSgpLmFwcGVhcmFuY2UoKSkKKyAgICBpZiAoTm9Db250cm9sUGFydCA9
PSByZW5kZXJNZXRlci5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0
dXJuIGJvdW5kcy5zaXplKCk7CiAKICAgICBOU0xldmVsSW5kaWNhdG9yQ2VsbCogY2VsbCA9IGxl
dmVsSW5kaWNhdG9yRm9yKHJlbmRlck1ldGVyKTsKQEAgLTEyMTMsNyArMTIxMyw3IEBAIE5TTGV2
ZWxJbmRpY2F0b3JTdHlsZSBSZW5kZXJUaGVtZU1hYzo6bGV2ZWxJbmRpY2F0b3JTdHlsZUZvcihD
b250cm9sUGFydCBwYXJ0KSBjCiBOU0xldmVsSW5kaWNhdG9yQ2VsbCogUmVuZGVyVGhlbWVNYWM6
OmxldmVsSW5kaWNhdG9yRm9yKGNvbnN0IFJlbmRlck1ldGVyJiByZW5kZXJNZXRlcikgY29uc3QK
IHsKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJNZXRlci5zdHlsZSgpOwot
ICAgIEFTU0VSVChzdHlsZS5hcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydCk7CisgICAgQVNT
RVJUKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSAhPSBOb0NvbnRyb2xQYXJ0KTsKIAogICAg
IGlmICghbV9sZXZlbEluZGljYXRvcikKICAgICAgICAgbV9sZXZlbEluZGljYXRvciA9IGFkb3B0
TlMoW1tOU0xldmVsSW5kaWNhdG9yQ2VsbCBhbGxvY10gaW5pdFdpdGhMZXZlbEluZGljYXRvclN0
eWxlOk5TTGV2ZWxJbmRpY2F0b3JTdHlsZUNvbnRpbnVvdXNDYXBhY2l0eV0pOwpAQCAtMTI0Miw3
ICsxMjQyLDcgQEAgTlNMZXZlbEluZGljYXRvckNlbGwqIFJlbmRlclRoZW1lTWFjOjpsZXZlbElu
ZGljYXRvckZvcihjb25zdCBSZW5kZXJNZXRlciYgcmVuZGUKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCi0gICAgW2NlbGwgc2V0TGV2ZWxJbmRpY2F0b3JTdHlsZTpsZXZlbEluZGljYXRvclN0eWxl
Rm9yKHN0eWxlLmFwcGVhcmFuY2UoKSldOworICAgIFtjZWxsIHNldExldmVsSW5kaWNhdG9yU3R5
bGU6bGV2ZWxJbmRpY2F0b3JTdHlsZUZvcihzdHlsZS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpXTsK
ICAgICBbY2VsbCBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1Jp
Z2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOwogICAgIFtj
ZWxsIHNldE1pblZhbHVlOmVsZW1lbnQtPm1pbigpXTsKICAgICBbY2VsbCBzZXRNYXhWYWx1ZTpl
bGVtZW50LT5tYXgoKV07CkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBJbnRSZWN0IFJlbmRlclRoZW1l
TWFjOjpwcm9ncmVzc0JhclJlY3RGb3JCb3VuZHMoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJP
YmplYwogICAgIC8vIFdvcmthcm91bmQgdW50aWwgPHJkYXI6Ly9wcm9ibGVtLzE1ODU1MDg2PiBp
cyBmaXhlZC4KICAgICBpbnQgbWF4RGltZW5zaW9uID0gc3RhdGljX2Nhc3Q8aW50PihzdGQ6Om51
bWVyaWNfbGltaXRzPHVzaG9ydD46Om1heCgpKTsKICAgICBJbnRSZWN0IHByb2dyZXNzQmFyQm91
bmRzKGJvdW5kcy54KCksIGJvdW5kcy55KCksIHN0ZDo6bWluKGJvdW5kcy53aWR0aCgpLCBtYXhE
aW1lbnNpb24pLCBzdGQ6Om1pbihib3VuZHMuaGVpZ2h0KCksIG1heERpbWVuc2lvbikpOwotICAg
IGlmIChOb0NvbnRyb2xQYXJ0ID09IHJlbmRlck9iamVjdC5zdHlsZSgpLmFwcGVhcmFuY2UoKSkK
KyAgICBpZiAoTm9Db250cm9sUGFydCA9PSByZW5kZXJPYmplY3Quc3R5bGUoKS5lZmZlY3RpdmVB
cHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBwcm9ncmVzc0JhckJvdW5kczsKIAogICAgIGZs
b2F0IHpvb21MZXZlbCA9IHJlbmRlck9iamVjdC5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKTsKQEAg
LTE1ODksNyArMTU4OSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5
bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlKSBjCiAKIExlbmd0aEJveCBS
ZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBjb25zdCBTZXR0aW5ncyYpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFu
Y2UoKSA9PSBNZW51bGlzdFBhcnQpIHsKKyAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5j
ZSgpID09IE1lbnVsaXN0UGFydCkgewogICAgICAgICBjb25zdCBpbnQqIHBhZGRpbmcgPSBwb3B1
cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSwgc3R5bGUuZGlyZWN0aW9u
KCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKTsKICAgICAgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8
aW50PihwYWRkaW5nW3RvcFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKSwKICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGludD4ocGFkZGluZ1tyaWdodFBhZGRpbmddICogc3R5bGUuZWZm
ZWN0aXZlWm9vbSgpKSwKQEAgLTE1OTcsNyArMTU5Nyw3IEBAIExlbmd0aEJveCBSZW5kZXJUaGVt
ZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHBhZGRpbmdbbGVmdFBhZGRpbmddICog
c3R5bGUuZWZmZWN0aXZlWm9vbSgpKSB9OwogICAgIH0KIAotICAgIGlmIChzdHlsZS5hcHBlYXJh
bmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KSB7CisgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpIHsKICAgICAgICAgZmxvYXQgYXJyb3dX
aWR0aCA9IGJhc2VBcnJvd1dpZHRoICogKHN0eWxlLmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpIC8g
YmFzZUZvbnRTaXplKTsKICAgICAgICAgZmxvYXQgcmlnaHRQYWRkaW5nID0gY2VpbGYoYXJyb3dX
aWR0aCArIChhcnJvd1BhZGRpbmdCZWZvcmUgKyBhcnJvd1BhZGRpbmdBZnRlciArIHBhZGRpbmdC
ZWZvcmVTZXBhcmF0b3IpICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgZmxvYXQg
bGVmdFBhZGRpbmcgPSBzdHlsZWRQb3B1cFBhZGRpbmdMZWZ0ICogc3R5bGUuZWZmZWN0aXZlWm9v
bSgpOwpAQCAtMTY5NCwxMCArMTY5NCwxMCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNs
aWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYQogICAg
IGZsb2F0IHpvb21MZXZlbCA9IG8uc3R5bGUoKS5lZmZlY3RpdmVab29tKCk7CiAgICAgZmxvYXQg
em9vbWVkVHJhY2tXaWR0aCA9IHRyYWNrV2lkdGggKiB6b29tTGV2ZWw7CiAKLSAgICBpZiAoby5z
dHlsZSgpLmFwcGVhcmFuY2UoKSA9PSAgU2xpZGVySG9yaXpvbnRhbFBhcnQgfHwgby5zdHlsZSgp
LmFwcGVhcmFuY2UoKSA9PSAgTWVkaWFTbGlkZXJQYXJ0KSB7CisgICAgaWYgKG8uc3R5bGUoKS5l
ZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gIFNsaWRlckhvcml6b250YWxQYXJ0IHx8IG8uc3R5bGUo
KS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gIE1lZGlhU2xpZGVyUGFydCkgewogICAgICAgICBi
b3VuZHMuc2V0SGVpZ2h0KHpvb21lZFRyYWNrV2lkdGgpOwogICAgICAgICBib3VuZHMuc2V0WShy
LnkoKSArIHIuaGVpZ2h0KCkgLyAyIC0gem9vbWVkVHJhY2tXaWR0aCAvIDIpOwotICAgIH0gZWxz
ZSBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpIHsKKyAg
ICB9IGVsc2UgaWYgKG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVy
dGljYWxQYXJ0KSB7CiAgICAgICAgIGJvdW5kcy5zZXRXaWR0aCh6b29tZWRUcmFja1dpZHRoKTsK
ICAgICAgICAgYm91bmRzLnNldFgoci54KCkgKyByLndpZHRoKCkgLyAyIC0gem9vbWVkVHJhY2tX
aWR0aCAvIDIpOwogICAgIH0KQEAgLTE3MTYsNyArMTcxNiw3IEBAIGJvb2wgUmVuZGVyVGhlbWVN
YWM6OnBhaW50U2xpZGVyVHJhY2soY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludElu
Zm8mIHBhCiAgICAgc3RydWN0IENHRnVuY3Rpb25DYWxsYmFja3MgbWFpbkNhbGxiYWNrcyA9IHsg
MCwgVHJhY2tHcmFkaWVudEludGVycG9sYXRlLCBOVUxMIH07CiAgICAgUmV0YWluUHRyPENHRnVu
Y3Rpb25SZWY+IG1haW5GdW5jdGlvbiA9IGFkb3B0Q0YoQ0dGdW5jdGlvbkNyZWF0ZShOVUxMLCAx
LCBOVUxMLCA0LCBOVUxMLCAmbWFpbkNhbGxiYWNrcykpOwogICAgIFJldGFpblB0cjxDR1NoYWRp
bmdSZWY+IG1haW5TaGFkaW5nOwotICAgIGlmIChvLnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IFNs
aWRlclZlcnRpY2FsUGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCiAgICAgICAgIG1haW5TaGFkaW5nID0gYWRvcHRDRihD
R1NoYWRpbmdDcmVhdGVBeGlhbChjc3BhY2UsIENHUG9pbnRNYWtlKGJvdW5kcy54KCksICBib3Vu
ZHMubWF4WSgpKSwgQ0dQb2ludE1ha2UoYm91bmRzLm1heFgoKSwgYm91bmRzLm1heFkoKSksIG1h
aW5GdW5jdGlvbi5nZXQoKSwgZmFsc2UsIGZhbHNlKSk7CiAgICAgZWxzZQogICAgICAgICBtYWlu
U2hhZGluZyA9IGFkb3B0Q0YoQ0dTaGFkaW5nQ3JlYXRlQXhpYWwoY3NwYWNlLCBDR1BvaW50TWFr
ZShib3VuZHMueCgpLCAgYm91bmRzLnkoKSksIENHUG9pbnRNYWtlKGJvdW5kcy54KCksIGJvdW5k
cy5tYXhZKCkpLCBtYWluRnVuY3Rpb24uZ2V0KCksIGZhbHNlLCBmYWxzZSkpOwpAQCAtMTczOSw3
ICsxNzM5LDcgQEAgY29uc3QgZmxvYXQgdmVydGljYWxTbGlkZXJIZWlnaHRQYWRkaW5nID0gMC4x
ZjsKIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUaHVtYihjb25zdCBSZW5kZXJP
YmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQog
ewotICAgIE5TU2xpZGVyQ2VsbCogc2xpZGVyVGh1bWJDZWxsID0gby5zdHlsZSgpLmFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydAorICAgIE5TU2xpZGVyQ2VsbCogc2xpZGVy
VGh1bWJDZWxsID0gby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVt
YlZlcnRpY2FsUGFydAogICAgICAgICA/IHNsaWRlclRodW1iVmVydGljYWwoKQogICAgICAgICA6
IHNsaWRlclRodW1iSG9yaXpvbnRhbCgpOwogCkBAIC0xNzU0LDE0ICsxNzU0LDE0IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBj
b25zdCBQYWludEluZm8mIHBhCiAKICAgICAvLyBVcGRhdGUgdGhlIHByZXNzZWQgc3RhdGUgdXNp
bmcgdGhlIE5TQ2VsbCB0cmFja2luZyBtZXRob2RzLCBzaW5jZSB0aGF0J3MgaG93IE5TU2xpZGVy
Q2VsbCBrZWVwcyB0cmFjayBvZiBpdC4KICAgICBib29sIG9sZFByZXNzZWQ7Ci0gICAgaWYgKG8u
c3R5bGUoKS5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCisgICAgaWYg
KG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpCiAgICAgICAgIG9sZFByZXNzZWQgPSBtX2lzU2xpZGVyVGh1bWJWZXJ0aWNhbFByZXNzZWQ7
CiAgICAgZWxzZQogICAgICAgICBvbGRQcmVzc2VkID0gbV9pc1NsaWRlclRodW1iSG9yaXpvbnRh
bFByZXNzZWQ7CiAKICAgICBib29sIHByZXNzZWQgPSBpc1ByZXNzZWQobyk7CiAKLSAgICBpZiAo
by5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICBp
ZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydCkKICAgICAgICAgbV9pc1NsaWRlclRodW1iVmVydGljYWxQcmVzc2VkID0gcHJlc3NlZDsK
ICAgICBlbHNlCiAgICAgICAgIG1faXNTbGlkZXJUaHVtYkhvcml6b250YWxQcmVzc2VkID0gcHJl
c3NlZDsKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xp
ZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAKICAg
ICBGbG9hdFJlY3QgYm91bmRzID0gcjsKICAgICAvLyBNYWtlIHRoZSBoZWlnaHQgb2YgdGhlIHZl
cnRpY2FsIHNsaWRlciBzbGlnaHRseSBsYXJnZXIgc28gTlNTbGlkZXJDZWxsIHdpbGwgZHJhdyBh
IHZlcnRpY2FsIHNsaWRlci4KLSAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKICAgICAgICAgYm91bmRzLnNldEhlaWdo
dChib3VuZHMuaGVpZ2h0KCkgKyB2ZXJ0aWNhbFNsaWRlckhlaWdodFBhZGRpbmcgKiBvLnN0eWxl
KCkuZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihwYWludEluZm8uY29udGV4dCgpKTsKQEAgLTIxMTQsNyArMjExNCw3IEBAIGNvbnN0
ZXhwciBpbnQgc2xpZGVyVGh1bWJUaGlja25lc3MgPSAxNTsKIHZvaWQgUmVuZGVyVGhlbWVNYWM6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQq
KSBjb25zdAogewogICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxlLmVmZmVjdGl2ZVpvb20oKTsK
LSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQg
fHwgc3R5bGUuYXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAg
aWYgKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQ
YXJ0IHx8IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydCkgewogICAgICAgICBzdHlsZS5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihz
bGlkZXJUaHVtYlRoaWNrbmVzcyAqIHpvb21MZXZlbCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAg
ICAgICAgIHN0eWxlLnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzbGlkZXJUaHVt
YlRoaWNrbmVzcyAqIHpvb21MZXZlbCksIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggZDVmYmRlNGNi
N2ZmMDFhYzRhMzYxYjMyNDQ5ODk0ZjgzMGYzN2MwNy4uODVkYWFkODU3N2JkOGU3NmM3YWQ5Nzhl
MmMyZGQwYzgwNGUxY2I4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uY3BwCkBAIC0zNzksMTMgKzM3OSwxMyBAQCBib29sIFJlbmRlclRoZW1lV2luOjpzdXBw
b3J0c0ZvY3VzKENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UpIGNvbnN0CiAKIGJvb2wgUmVuZGVyVGhl
bWVXaW46OnN1cHBvcnRzRm9jdXNSaW5nKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QK
IHsKLSAgICByZXR1cm4gc3VwcG9ydHNGb2N1cyhzdHlsZS5hcHBlYXJhbmNlKCkpOworICAgIHJl
dHVybiBzdXBwb3J0c0ZvY3VzKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSk7CiB9CiAKIHVu
c2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVDbGFzc2ljU3RhdGUoY29uc3QgUmVuZGVy
T2JqZWN0JiBvLCBDb250cm9sU3ViUGFydCBzdWJQYXJ0KQogewogICAgIHVuc2lnbmVkIHN0YXRl
ID0gMDsKLSAgICBzd2l0Y2ggKG8uc3R5bGUoKS5hcHBlYXJhbmNlKCkpIHsKKyAgICBzd2l0Y2gg
KG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAgICAgICAgY2FzZSBQdXNoQnV0
dG9uUGFydDoKICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIERlZmF1bHRC
dXR0b25QYXJ0OgpAQCAtMzk3LDcgKzM5Nyw3IEBAIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpk
ZXRlcm1pbmVDbGFzc2ljU3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBDb250cm9sU3ViCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSYWRpb1BhcnQ6CiAgICAgICAgIGNhc2Ug
Q2hlY2tib3hQYXJ0OgotICAgICAgICAgICAgc3RhdGUgPSAoby5zdHlsZSgpLmFwcGVhcmFuY2Uo
KSA9PSBSYWRpb1BhcnQpID8gREZDU19CVVRUT05SQURJTyA6IERGQ1NfQlVUVE9OQ0hFQ0s7Cisg
ICAgICAgICAgICBzdGF0ZSA9IChvLnN0eWxlKCkuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IFJh
ZGlvUGFydCkgPyBERkNTX0JVVFRPTlJBRElPIDogREZDU19CVVRUT05DSEVDSzsKICAgICAgICAg
ICAgIGlmIChpc0NoZWNrZWQobykpCiAgICAgICAgICAgICAgICAgc3RhdGUgfD0gREZDU19DSEVD
S0VEOwogICAgICAgICAgICAgaWYgKCFpc0VuYWJsZWQobykpCkBAIC00MzIsNyArNDMyLDcgQEAg
dW5zaWduZWQgUmVuZGVyVGhlbWVXaW46OmRldGVybWluZUNsYXNzaWNTdGF0ZShjb25zdCBSZW5k
ZXJPYmplY3QmIG8sIENvbnRyb2xTdWIKIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1p
bmVTdGF0ZShjb25zdCBSZW5kZXJPYmplY3QmIG8pCiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0g
VFNfTk9STUFMOwotICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBvLnN0eWxlKCkuYXBwZWFy
YW5jZSgpOworICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBvLnN0eWxlKCkuZWZmZWN0aXZl
QXBwZWFyYW5jZSgpOwogICAgIGlmICghaXNFbmFibGVkKG8pKQogICAgICAgICByZXN1bHQgPSBU
U19ESVNBQkxFRDsKICAgICBlbHNlIGlmIChpc1JlYWRPbmx5Q29udHJvbChvKSAmJiAoVGV4dEZp
ZWxkUGFydCA9PSBhcHBlYXJhbmNlIHx8IFRleHRBcmVhUGFydCA9PSBhcHBlYXJhbmNlIHx8IFNl
YXJjaEZpZWxkUGFydCA9PSBhcHBlYXJhbmNlKSkKQEAgLTQ1NSw3ICs0NTUsNyBAQCB1bnNpZ25l
ZCBSZW5kZXJUaGVtZVdpbjo6ZGV0ZXJtaW5lU2xpZGVyVGh1bWJTdGF0ZShjb25zdCBSZW5kZXJP
YmplY3QmIG8pCiAgICAgdW5zaWduZWQgcmVzdWx0ID0gVFVTX05PUk1BTDsKICAgICBpZiAoIWlz
RW5hYmxlZChvKSkKICAgICAgICAgcmVzdWx0ID0gVFVTX0RJU0FCTEVEOwotICAgIGVsc2UgaWYg
KHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8pKQor
ICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSkgJiYgaXNGb2N1c2VkKG8pKQogICAgICAgICByZXN1bHQgPSBUVVNfRk9DVVNFRDsKICAgICBl
bHNlIGlmIChpc1ByZXNzZWQobykpCiAgICAgICAgIHJlc3VsdCA9IFRVU19QUkVTU0VEOwpAQCAt
NDcxLDcgKzQ3MSw3IEBAIHVuc2lnbmVkIFJlbmRlclRoZW1lV2luOjpkZXRlcm1pbmVCdXR0b25T
dGF0ZShjb25zdCBSZW5kZXJPYmplY3QmIG8pCiAgICAgICAgIHJlc3VsdCA9IFBCU19ESVNBQkxF
RDsKICAgICBlbHNlIGlmIChpc1ByZXNzZWQobykpCiAgICAgICAgIHJlc3VsdCA9IFBCU19QUkVT
U0VEOwotICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkg
JiYgaXNGb2N1c2VkKG8pKQorICAgIGVsc2UgaWYgKHN1cHBvcnRzRm9jdXMoby5zdHlsZSgpLmVm
ZmVjdGl2ZUFwcGVhcmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8pKQogICAgICAgICByZXN1bHQgPSBQ
QlNfREVGQVVMVEVEOwogICAgIGVsc2UgaWYgKGlzSG92ZXJlZChvKSkKICAgICAgICAgcmVzdWx0
ID0gUEJTX0hPVDsKQEAgLTQ5Niw3ICs0OTYsNyBAQCB1bnNpZ25lZCBSZW5kZXJUaGVtZVdpbjo6
ZGV0ZXJtaW5lU3BpbkJ1dHRvblN0YXRlKGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJvbAog
VGhlbWVEYXRhIFJlbmRlclRoZW1lV2luOjpnZXRDbGFzc2ljVGhlbWVEYXRhKGNvbnN0IFJlbmRl
ck9iamVjdCYgbywgQ29udHJvbFN1YlBhcnQgc3ViUGFydCkKIHsKICAgICBUaGVtZURhdGEgcmVz
dWx0OwotICAgIHN3aXRjaCAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgeworICAgIHN3aXRjaCAo
by5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgRGVmYXVsdEJ1
dHRvblBhcnQ6CkBAIC01NTEsNyArNTUxLDcgQEAgVGhlbWVEYXRhIFJlbmRlclRoZW1lV2luOjpn
ZXRUaGVtZURhdGEoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBDb250cm9sU3ViUGFydCBzdWIKICAg
ICAgICAgcmV0dXJuIGdldENsYXNzaWNUaGVtZURhdGEobywgc3ViUGFydCk7CiAKICAgICBUaGVt
ZURhdGEgcmVzdWx0OwotICAgIHN3aXRjaCAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgeworICAg
IHN3aXRjaCAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSkgewogICAgICAgICBjYXNl
IFB1c2hCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2Ug
RGVmYXVsdEJ1dHRvblBhcnQ6CkBAIC02MzMsOCArNjMzLDggQEAgc3RhdGljIHZvaWQgZHJhd0Nv
bnRyb2woR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QmIG8sIEhB
TkRMRQogICAgICAgICB9IGVsc2UgaWYgKHRoZW1lRGF0YS5tX3BhcnQgPT0gVEtQX1RSQUNLIHx8
IHRoZW1lRGF0YS5tX3BhcnQgPT0gVEtQX1RSQUNLVkVSVCkgewogICAgICAgICAgICAgOjpEcmF3
RWRnZShoZGMsICZ3aWRnZXRSZWN0LCBFREdFX1NVTktFTiwgQkZfUkVDVCB8IEJGX0FESlVTVCk7
CiAgICAgICAgICAgICA6OkZpbGxSZWN0KGhkYywgJndpZGdldFJlY3QsIChIQlJVU0gpR2V0U3Rv
Y2tPYmplY3QoR1JBWV9CUlVTSCkpOwotICAgICAgICB9IGVsc2UgaWYgKChvLnN0eWxlKCkuYXBw
ZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQKLSAgICAgICAgfHwgby5zdHls
ZSgpLmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkKKyAgICAgICAgfSBl
bHNlIGlmICgoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhv
cml6b250YWxQYXJ0CisgICAgICAgIHx8IG8uc3R5bGUoKS5lZmZlY3RpdmVBcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpCiAgICAgICAgICYmICh0aGVtZURhdGEubV9wYXJ0
ID09IFRLUF9USFVNQkJPVFRPTSB8fCB0aGVtZURhdGEubV9wYXJ0ID09IFRLUF9USFVNQlRPUAog
ICAgICAgICB8fCB0aGVtZURhdGEubV9wYXJ0ID09IFRLUF9USFVNQkxFRlQgfHwgdGhlbWVEYXRh
Lm1fcGFydCA9PSBUS1BfVEhVTUJSSUdIVCkpIHsKICAgICAgICAgICAgIDo6RHJhd0VkZ2UoaGRj
LCAmd2lkZ2V0UmVjdCwgRURHRV9SQUlTRUQsIEJGX1JFQ1QgfCBCRl9TT0ZUIHwgQkZfTUlERExF
IHwgQkZfQURKVVNUKTsKQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q29udHJv
bChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgSEFORExF
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBQdXNoIGJ1
dHRvbnMsIGJ1dHRvbnMsIGNoZWNrYm94ZXMgYW5kIHJhZGlvcywgYW5kIHRoZSBkcm9wZG93biBh
cnJvdyBpbiBtZW51bGlzdHMuCi0gICAgICAgICAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2Uo
KSA9PSBEZWZhdWx0QnV0dG9uUGFydCkgeworICAgICAgICAgICAgaWYgKG8uc3R5bGUoKS5lZmZl
Y3RpdmVBcHBlYXJhbmNlKCkgPT0gRGVmYXVsdEJ1dHRvblBhcnQpIHsKICAgICAgICAgICAgICAg
ICBIQlJVU0ggYnJ1c2ggPSA6OkdldFN5c0NvbG9yQnJ1c2goQ09MT1JfM0RES1NIQURPVyk7CiAg
ICAgICAgICAgICAgICAgOjpGcmFtZVJlY3QoaGRjLCAmd2lkZ2V0UmVjdCwgYnJ1c2gpOwogICAg
ICAgICAgICAgICAgIDo6SW5mbGF0ZVJlY3QoJndpZGdldFJlY3QsIC0xLCAtMSk7CkBAIC04MTAs
MTAgKzgxMCwxMCBAQCBib29sIFJlbmRlclRoZW1lV2luOjpwYWludFNsaWRlclRyYWNrKGNvbnN0
IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBpLAogewogICAgIEludFJlY3QgYm91
bmRzID0gcjsKICAgICAKLSAgICBpZiAoby5zdHlsZSgpLmFwcGVhcmFuY2UoKSA9PSAgU2xpZGVy
SG9yaXpvbnRhbFBhcnQpIHsKKyAgICBpZiAoby5zdHlsZSgpLmVmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSA9PSAgU2xpZGVySG9yaXpvbnRhbFBhcnQpIHsKICAgICAgICAgYm91bmRzLnNldEhlaWdodCh0
cmFja1dpZHRoKTsKICAgICAgICAgYm91bmRzLnNldFkoci55KCkgKyByLmhlaWdodCgpIC8gMiAt
IHRyYWNrV2lkdGggLyAyKTsKLSAgICB9IGVsc2UgaWYgKG8uc3R5bGUoKS5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0KSB7CisgICAgfSBlbHNlIGlmIChvLnN0eWxlKCkuZWZmZWN0
aXZlQXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkgewogICAgICAgICBib3VuZHMu
c2V0V2lkdGgodHJhY2tXaWR0aCk7CiAgICAgICAgIGJvdW5kcy5zZXRYKHIueCgpICsgci53aWR0
aCgpIC8gMiAtIHRyYWNrV2lkdGggLyAyKTsKICAgICB9CkBAIC04MzMsNyArODMzLDcgQEAgY29u
c3QgaW50IHNsaWRlclRodW1iSGVpZ2h0ID0gMTU7CiAKIHZvaWQgUmVuZGVyVGhlbWVXaW46OmFk
anVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBj
b25zdAogewotICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS5hcHBlYXJhbmNlKCk7CisgICAg
Q29udHJvbFBhcnQgcGFydCA9IHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKTsKICAgICBpZiAo
cGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewogICAgICAgICBzdHlsZS5zZXRXaWR0
aChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIExlbmd0aFR5cGU6OkZpeGVkKSk7CiAgICAgICAg
IHN0eWxlLnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgTGVuZ3RoVHlwZTo6Rml4
ZWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CmluZGV4IDk5YjJlODNlNDdjM2MzYzdiMDQxNzhhYjkzMGNmMWFhN2E5YTdiNTcuLjI5MDY5NjUz
NmRkMDk0NDkxMmRlNGI1OTA2YWFmNmI1NjNlOWYwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDU3LDcgKzQ1Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUZvbnRIYXNoKGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
KQogdW5zaWduZWQgUmVuZGVyU3R5bGU6Omhhc2hGb3JUZXh0QXV0b3NpemluZygpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IE5vdCBhIHZlcnkgc21hcnQgaGFzaC4gQ291bGQgYmUgaW1wcm92ZWQg
dXBvbi4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMTMx
Pi4KLSAgICB1bnNpZ25lZCBoYXNoID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+YXBwZWFyYW5j
ZTsKKyAgICB1bnNpZ25lZCBoYXNoID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZl
QXBwZWFyYW5jZTsKICAgICBoYXNoIF49IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkJl
Zm9yZUNvbGxhcHNlOwogICAgIGhhc2ggXj0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2lu
QWZ0ZXJDb2xsYXBzZTsKICAgICBoYXNoIF49IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmxpbmVD
bGFtcC52YWx1ZSgpOwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHVuc2lnbmVkIFJlbmRlclN0eWxlOjpo
YXNoRm9yVGV4dEF1dG9zaXppbmcoKSBjb25zdAogCiBib29sIFJlbmRlclN0eWxlOjplcXVhbEZv
clRleHRBdXRvc2l6aW5nKGNvbnN0IFJlbmRlclN0eWxlJiBvdGhlcikgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+YXBwZWFyYW5jZSA9PSBvdGhlci5tX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5hcHBlYXJhbmNlCisgICAgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRl
ZERhdGEtPmVmZmVjdGl2ZUFwcGVhcmFuY2UgPT0gb3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+ZWZmZWN0aXZlQXBwZWFyYW5jZQogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5tYXJnaW5CZWZvcmVDb2xsYXBzZSA9PSBvdGhlci5tX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
YXJnaW5CZWZvcmVDb2xsYXBzZQogICAgICAgICAmJiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5t
YXJnaW5BZnRlckNvbGxhcHNlID09IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdp
bkFmdGVyQ29sbGFwc2UKICAgICAgICAgJiYgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bGluZUNs
YW1wID09IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmxpbmVDbGFtcApAQCAtNjUwLDcg
KzY1MCw3IEBAIHN0YXRpYyBib29sIHJhcmVOb25Jbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNM
YXlvdXQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiB7CiAgICAgQVNTRVJUKCZmaXJzdCAh
PSAmc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC5hcHBlYXJhbmNlICE9IHNlY29uZC5hcHBlYXJh
bmNlCisgICAgaWYgKGZpcnN0LmVmZmVjdGl2ZUFwcGVhcmFuY2UgIT0gc2Vjb25kLmVmZmVjdGl2
ZUFwcGVhcmFuY2UKICAgICAgICAgfHwgZmlyc3QubWFyZ2luQmVmb3JlQ29sbGFwc2UgIT0gc2Vj
b25kLm1hcmdpbkJlZm9yZUNvbGxhcHNlCiAgICAgICAgIHx8IGZpcnN0Lm1hcmdpbkFmdGVyQ29s
bGFwc2UgIT0gc2Vjb25kLm1hcmdpbkFmdGVyQ29sbGFwc2UKICAgICAgICAgfHwgZmlyc3QubGlu
ZUNsYW1wICE9IHNlY29uZC5saW5lQ2xhbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMTc1NjQ5ODEwODIyYjAyNWFlOWZlZTYxZjBkYjkyMzky
ZWVlNWFjYS4uODE2OTQ5Y2FjMmY1ZGFjNGEyMzRmZjFiYjRhNzIyZDgwYWQ5ZGQxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTIxNSw2ICsy
MTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpIGNv
bnN0OwogCiAgICAgYm9vbCBoYXNBcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1cm4gYXBwZWFyYW5j
ZSgpICE9IE5vQ29udHJvbFBhcnQ7IH0KKyAgICBib29sIGhhc0VmZmVjdGl2ZUFwcGVhcmFuY2Uo
KSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVBcHBlYXJhbmNlKCkgIT0gTm9Db250cm9sUGFydDsg
fQogCiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5kKCkgY29uc3Q7CiAgICAgCkBAIC01MDgsNiArNTA5
LDcgQEAgcHVibGljOgogICAgIGZsb2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5vcGFjaXR5OyB9CiAgICAgYm9vbCBoYXNPcGFjaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eSA8IDE7IH0KICAgICBDb250
cm9sUGFydCBhcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udHJvbFBh
cnQ+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFwcGVhcmFuY2UpOyB9CisgICAgQ29udHJvbFBh
cnQgZWZmZWN0aXZlQXBwZWFyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRy
b2xQYXJ0PihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5lZmZlY3RpdmVBcHBlYXJhbmNlKTsgfQog
ICAgIEFzcGVjdFJhdGlvVHlwZSBhc3BlY3RSYXRpb1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxBc3BlY3RSYXRpb1R5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFzcGVjdFJh
dGlvVHlwZSk7IH0KICAgICBkb3VibGUgYXNwZWN0UmF0aW9XaWR0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmFzcGVjdFJhdGlvV2lkdGg7IH0KICAgICBkb3VibGUg
YXNwZWN0UmF0aW9IZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5hc3BlY3RSYXRpb0hlaWdodDsgfQpAQCAtMTEyNyw3ICsxMTI5LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2FyZXRDb2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZUluaGVy
aXRlZERhdGEsIGNhcmV0Q29sb3IsIGMpOyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIGhh
c0F1dG9DYXJldENvbG9yLCBmYWxzZSk7ICB9CiAgICAgdm9pZCBzZXRIYXNBdXRvQ2FyZXRDb2xv
cigpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBoYXNBdXRvQ2FyZXRDb2xvciwgdHJ1
ZSk7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgY2FyZXRDb2xvciwgY3VycmVudENvbG9y
KCkpOyB9CiAgICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IGYpIHsgZmxvYXQgdiA9IGNsYW1wVG88
ZmxvYXQ+KGYsIDAuZiwgMS5mKTsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvcGFj
aXR5LCB2KTsgfQotICAgIHZvaWQgc2V0QXBwZWFyYW5jZShDb250cm9sUGFydCBhKSB7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgYXBwZWFyYW5jZSwgYSk7IH0KKyAgICB2b2lkIHNl
dEFwcGVhcmFuY2UoQ29udHJvbFBhcnQgYSkgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEsIGFwcGVhcmFuY2UsIGEpOyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGVmZmVj
dGl2ZUFwcGVhcmFuY2UsIGEpOyB9CisgICAgdm9pZCBzZXRFZmZlY3RpdmVBcHBlYXJhbmNlKENv
bnRyb2xQYXJ0IGEpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBlZmZlY3RpdmVB
cHBlYXJhbmNlLCBhKTsgfQogICAgIC8vIEZvciB2YWxpZCB2YWx1ZXMgb2YgYm94LWFsaWduIHNl
ZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA5L1dELWNzczMtZmxleGJveC0yMDA5MDcyMy8jYWxp
Z25tZW50CiAgICAgdm9pZCBzZXRCb3hBbGlnbihCb3hBbGlnbm1lbnQgYSkgeyBTRVRfTkVTVEVE
X1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBkZXByZWNhdGVkRmxleGlibGVCb3gsIGFsaWdu
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYSkpOyB9CiAgICAgdm9pZCBzZXRCb3hEaXJlY3Rpb24o
Qm94RGlyZWN0aW9uIGQpIHsgbV9pbmhlcml0ZWRGbGFncy5ib3hEaXJlY3Rpb24gPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA3MzE1NTU3
MTgzYmMwODA1ZDNiYmRlZTc4NmQzNTA4Yjk4NzIzYTZkLi5kN2ZiM2MwMTY3ODY5YWI2ODI4Mzg3
YTVjZDlkNGY4YzMwZGQyMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC05Miw2ICs5
Miw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEoKQogICAgICwgbWFyZ2luQmVmb3JlQ29sbGFwc2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KE1h
cmdpbkNvbGxhcHNlOjpDb2xsYXBzZSkpCiAgICAgLCBtYXJnaW5BZnRlckNvbGxhcHNlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2UpKQogICAgICwgYXBwZWFy
YW5jZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxBcHBlYXJhbmNl
KCkpKQorICAgICwgZWZmZWN0aXZlQXBwZWFyYW5jZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVu
ZGVyU3R5bGU6OmluaXRpYWxBcHBlYXJhbmNlKCkpKQogICAgICwgYm9yZGVyRml0KHN0YXRpY19j
YXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlckZpdCgpKSkKICAgICAsIHRl
eHRDb21iaW5lKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRD
b21iaW5lKCkpKQogICAgICwgdGV4dERlY29yYXRpb25TdHlsZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlKCkpKQpAQCAtMTkyLDYg
KzE5Myw3IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xs
YXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQogICAgICwgbWFyZ2luQWZ0ZXJDb2xsYXBzZShv
Lm1hcmdpbkFmdGVyQ29sbGFwc2UpCiAgICAgLCBhcHBlYXJhbmNlKG8uYXBwZWFyYW5jZSkKKyAg
ICAsIGVmZmVjdGl2ZUFwcGVhcmFuY2Uoby5lZmZlY3RpdmVBcHBlYXJhbmNlKQogICAgICwgYm9y
ZGVyRml0KG8uYm9yZGVyRml0KQogICAgICwgdGV4dENvbWJpbmUoby50ZXh0Q29tYmluZSkKICAg
ICAsIHRleHREZWNvcmF0aW9uU3R5bGUoby50ZXh0RGVjb3JhdGlvblN0eWxlKQpAQCAtMjk2LDYg
KzI5OCw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25z
dCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1hcmdpbkJlZm9y
ZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UKICAgICAgICAgJiYgbWFyZ2luQWZ0
ZXJDb2xsYXBzZSA9PSBvLm1hcmdpbkFmdGVyQ29sbGFwc2UKICAgICAgICAgJiYgYXBwZWFyYW5j
ZSA9PSBvLmFwcGVhcmFuY2UKKyAgICAgICAgJiYgZWZmZWN0aXZlQXBwZWFyYW5jZSA9PSBvLmVm
ZmVjdGl2ZUFwcGVhcmFuY2UKICAgICAgICAgJiYgYm9yZGVyRml0ID09IG8uYm9yZGVyRml0CiAg
ICAgICAgICYmIHRleHRDb21iaW5lID09IG8udGV4dENvbWJpbmUKICAgICAgICAgJiYgdGV4dERl
Y29yYXRpb25TdHlsZSA9PSBvLnRleHREZWNvcmF0aW9uU3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDhmMTRmZGExMThkNThkMjU0MGU5Y2JmNTlhZDFkNDU4N2I2ZTYxYzguLmViN2NiMWE2
YzQwNWZjM2FjYzYyNTI1YjY5M2JiYmE3MDZjOTQ4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMjAxLDYgKzIwMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBtYXJnaW5CZWZvcmVDb2xs
YXBzZSA6IDI7IC8vIE1hcmdpbkNvbGxhcHNlCiAgICAgdW5zaWduZWQgbWFyZ2luQWZ0ZXJDb2xs
YXBzZSA6IDI7IC8vIE1hcmdpbkNvbGxhcHNlCiAgICAgdW5zaWduZWQgYXBwZWFyYW5jZSA6IDY7
IC8vIEVBcHBlYXJhbmNlCisgICAgdW5zaWduZWQgZWZmZWN0aXZlQXBwZWFyYW5jZSA6IDY7IC8v
IEVBcHBlYXJhbmNlCiAgICAgdW5zaWduZWQgYm9yZGVyRml0IDogMTsgLy8gQm9yZGVyRml0CiAg
ICAgdW5zaWduZWQgdGV4dENvbWJpbmUgOiAxOyAvLyBDU1MzIHRleHQtY29tYmluZSBwcm9wZXJ0
aWVzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL01hdGNoZWREZWNsYXJhdGlv
bnNDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9NYXRjaGVkRGVjbGFyYXRpb25zQ2Fj
aGUuY3BwCmluZGV4IDViYTMwOTg2MGU2MDgwNTM5MjQwYzA4M2ZhMDViMTJkNDcxNzYyMTMuLmQ3
NGUwMGY1ZjUzMTc0NGZmNTViZWFhZGYyOTQyZDBkZDhmYmJhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL01hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBib29sIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZTo6aXNDYWNoZWFibGUoY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyUwogICAgIC8vIGNvbnRlbnQ6YXR0cigpIHZhbHVl
IGRlcGVuZHMgb24gdGhlIGVsZW1lbnQgaXQgaXMgYmVpbmcgYXBwbGllZCB0by4KICAgICBpZiAo
c3R5bGUuaGFzQXR0ckNvbnRlbnQoKSB8fCAoc3R5bGUuc3R5bGVUeXBlKCkgIT0gUHNldWRvSWQ6
Ok5vbmUgJiYgcGFyZW50U3R5bGUuaGFzQXR0ckNvbnRlbnQoKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoc3R5bGUuaGFzQXBwZWFyYW5jZSgpKQorICAgIGlmIChzdHlsZS5oYXNF
ZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5
bGUuem9vbSgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGU3MzBmNGUx
MGY0YjQwN2U2YmY2N2UwYTgxN2U2ZDZkNjdlMzE4NTcuLjVmYWM2MGMyNWVlZTBkMjM2YjQ2Mjdm
ZWY2NTM2YzY5ZDJkNjI5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3Bw
CkBAIC00NTgsNyArNDU4LDcgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICB9CiAKICAg
ICAvLyBNZW51bGlzdHMgc2hvdWxkIGhhdmUgdmlzaWJsZSBvdmVyZmxvdwotICAgIGlmIChzdHls
ZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KSB7CisgICAgaWYgKHN0eWxlLmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpIHsKICAgICAgICAgc3R5bGUuc2V0T3ZlcmZs
b3dYKE92ZXJmbG93OjpWaXNpYmxlKTsKICAgICAgICAgc3R5bGUuc2V0T3ZlcmZsb3dZKE92ZXJm
bG93OjpWaXNpYmxlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKaW5kZXggMjJmZThkZjA2MzI1Nzk1MTVmZThhZTgyYWJjMWY5ZDM4NTkzYzY3OC4u
Y2MyOWNmOGU0M2JmYzkzMDRmNTc2ZjlhNWM4MzgyMWRjN2NmMzA2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBAIEVsZW1l
bnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
ICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6bWV0ZXJUYWcpCiAgICAgICAg
IHx8IGlzPEhUTUxQcm9ncmVzc0VsZW1lbnQ+KGVsZW1lbnQpCiAgICAgICAgIHx8IChpczxIVE1M
SW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVt
ZW50KS5pc1NlYXJjaEZpZWxkKCkpKSB7Ci0gICAgICAgIGlmIChleGlzdGluZ1N0eWxlICYmIHVw
ZGF0ZS5zdHlsZS0+YXBwZWFyYW5jZSgpICE9IGV4aXN0aW5nU3R5bGUtPmFwcGVhcmFuY2UoKSkg
eworICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiB1cGRhdGUuc3R5bGUtPmVmZmVjdGl2ZUFw
cGVhcmFuY2UoKSAhPSBleGlzdGluZ1N0eWxlLT5lZmZlY3RpdmVBcHBlYXJhbmNlKCkpIHsKICAg
ICAgICAgICAgIHVwZGF0ZS5jaGFuZ2UgPSBDaGFuZ2U6OlJlbmRlcmVyOwogICAgICAgICAgICAg
ZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMmM4MDQ1NDNjZTdjMTAxYTU1MTkxYTcwM2U0YzY3MDhkYTFiY2M1Ny4uN2Ez
NjY5NDE2N2FlNDNhZTQ2MzViMzAxNjk1MDhjN2JjOTNkNDRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbY3NzLXVpXSBnZXRDb21wdXRlZFN0eWxlKCkgbXVzdCByZXR1cm4gdGhlIHNwZWNp
ZmllZCB2YWx1ZSBmb3IgJy13ZWJraXQtYXBwZWFyYW5jZScKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDkxNgorICAgICAgICByZGFyOi8vODM2NDA5
MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvYXBw
ZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2Ut
Y3Nzb20tMDAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0wOS0yOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNzcy11aSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDAzNzA2ZGM1ZDg1NWRlZDg5YTJlZDZiODNjZTg1OTY5NmQ0NDc4YTQuLjQ3
NjZhNmIxYWU0ZjdiMzNiYzkxMGYyOGE3ZTNlNjNlYjI0NTA4N2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI5ICBBZGl0eWEgS2VlcnRo
aSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLXVpXSBnZXRDb21wdXRlZFN0
eWxlKCkgbXVzdCByZXR1cm4gdGhlIHNwZWNpZmllZCB2YWx1ZSBmb3IgJy13ZWJraXQtYXBwZWFy
YW5jZScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MDkxNgorICAgICAgICByZGFyOi8vODM2NDA5MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2Fw
cGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dDoKKworICAgICAgICBSZWJhc2VsaW5lIGZv
ciBwcm9ncmVzc2lvbi4KKwogMjAyMS0wOS0yOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNzcy11aSBXUFQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJh
bmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQu
dHh0CmluZGV4IDRkNWIwYzU4ODU1YmI5ODExNTYzYmMwZDM4YzE4MmY5ODlmZDliZDkuLmY2NDU3
OTRjOTQ2NjEwOTgyZjE3ZjgyZGY4MWU0OTNmNTI3ZmMzZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNl
LWNzc29tLTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVk
LnR4dApAQCAtMiwxOCArMiwxOCBAQCBUZXN0CiAKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBu
b25lCiBGQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogYXV0byBhc3NlcnRfZXF1YWxzOiBzdHlsZS5X
ZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgImF1dG8iIGJ1dCBnb3QgIiIK
LUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b24gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Vi
a2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJidXR0b24iIGJ1dCBnb3QgIm5v
bmUiCitQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uCiBQQVNTIC13ZWJraXQtYXBwZWFy
YW5jZTogY2hlY2tib3gKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94Ci1GQUlMIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBw
ZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJtZW51bGlzdCIgYnV0IGdvdCAibWVudWxp
c3QtYnV0dG9uIgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0CiBQQVNTIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTog
bWV0ZXIgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcp
IGV4cGVjdGVkICJtZXRlciIgYnV0IGdvdCAibm9uZSIKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNl
OiBwcm9ncmVzcy1iYXIgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBw
ZXJjYXNlIFcpIGV4cGVjdGVkICJwcm9ncmVzcy1iYXIiIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIC13
ZWJraXQtYXBwZWFyYW5jZTogcHVzaC1idXR0b24gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0
QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJwdXNoLWJ1dHRvbiIgYnV0IGdvdCAi
bm9uZSIKK1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZXRlcgorUEFTUyAtd2Via2l0LWFwcGVh
cmFuY2U6IHByb2dyZXNzLWJhcgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHB1c2gtYnV0dG9u
CiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogcmFkaW8KIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNl
OiBzZWFyY2hmaWVsZAogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlci1ob3Jpem9udGFs
Ci1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogc3F1YXJlLWJ1dHRvbiBhc3NlcnRfZXF1YWxzOiBz
dHlsZS5XZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgInNxdWFyZS1idXR0
b24iIGJ1dCBnb3QgIm5vbmUiCitQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogc3F1YXJlLWJ1dHRv
bgogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRhcmVhCiBQQVNTIC13ZWJraXQtYXBwZWFy
YW5jZTogdGV4dGZpZWxkCiBGQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogYm9ndXMtYnV0dG9uIChp
bnZhbGlkKSBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2Ug
VykgZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKHN0cmluZykgImJ1dHRv
biIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQKaW5kZXgg
MDA1NDc2NzFhZDgyZWI3NzA0MzBiMWExZGFiZTY2ZDhiNTc5MWE2Yi4uNmUxYmNlYzk0Yzc1MjI1
YjYyZWEwMjRiYjNhZjQwZTZkNjk5MzA2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJh
bmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNz
c29tLTAwMS1leHBlY3RlZC50eHQKQEAgLTIsMTggKzIsMTggQEAgVGVzdAogCiBQQVNTIC13ZWJr
aXQtYXBwZWFyYW5jZTogbm9uZQogRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IGF1dG8gYXNzZXJ0
X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJh
dXRvIiBidXQgZ290ICIiCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uIGFzc2VydF9l
cXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAiYnV0
dG9uIiBidXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbgogUEFT
UyAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ci1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTog
bGlzdGJveCBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2Ug
VykgZXhwZWN0ZWQgImxpc3Rib3giIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVudWxpc3QgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBw
ZXJjYXNlIFcpIGV4cGVjdGVkICJtZW51bGlzdCIgYnV0IGdvdCAibWVudWxpc3QtYnV0dG9uIgor
UEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3gKK1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZW51bGlzdAogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbgotRkFJ
TCAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFw
cGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAibWV0ZXIiIGJ1dCBnb3QgIm5vbmUiCi1G
QUlMIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyIGFzc2VydF9lcXVhbHM6IHN0eWxl
LldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAicHJvZ3Jlc3MtYmFyIiBi
dXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyCitQQVNTIC13ZWJr
aXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogcHVz
aC1idXR0b24KIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiByYWRpbwogUEFTUyAtd2Via2l0LWFw
cGVhcmFuY2U6IHNlYXJjaGZpZWxkCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVyLWhv
cml6b250YWwKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBzcXVhcmUtYnV0dG9uIGFzc2VydF9l
cXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAic3F1
YXJlLWJ1dHRvbiIgYnV0IGdvdCAibm9uZSIKK1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBzcXVh
cmUtYnV0dG9uCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGFyZWEKIFBBU1MgLXdlYmtp
dC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQKIEZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBib2d1cy1i
dXR0b24gKGludmFsaWQpIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVw
cGVyY2FzZSBXKSBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAoc3RyaW5n
KSAiYnV0dG9uIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0w
MDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkvYXBwZWFyYW5jZS1jc3NvbS0wMDEtZXhw
ZWN0ZWQudHh0CmluZGV4IDc0N2M0ODZjY2YyOWUyMTg4MGY2ZGFiODJjMTc4ODI3ZmFiN2JkOGUu
LmY2NDU3OTRjOTQ2NjEwOTgyZjE3ZjgyZGY4MWU0OTNmNTI3ZmMzZTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy11aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQKQEAgLTIsMTggKzIs
MTggQEAgVGVzdAogCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZQogRkFJTCAtd2Via2l0
LWFwcGVhcmFuY2U6IGF1dG8gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAo
dXBwZXJjYXNlIFcpIGV4cGVjdGVkICJhdXRvIiBidXQgZ290ICIiCi1GQUlMIC13ZWJraXQtYXBw
ZWFyYW5jZTogYnV0dG9uIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVw
cGVyY2FzZSBXKSBleHBlY3RlZCAiYnV0dG9uIiBidXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0
LWFwcGVhcmFuY2U6IGJ1dHRvbgogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ci1G
QUlMIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveCBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJr
aXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgImxpc3Rib3giIGJ1dCBnb3QgIm5v
bmUiCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QgYXNzZXJ0X2VxdWFsczogc3R5
bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJtZW51bGlzdCIgYnV0
IGdvdCAibWVudWxpc3QtYnV0dG9uIgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3gK
K1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlzdAogUEFTUyAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lbnVsaXN0LWJ1dHRvbgotRkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyIGFzc2Vy
dF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAi
bWV0ZXIiIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3Mt
YmFyIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBl
eHBlY3RlZCAicHJvZ3Jlc3MtYmFyIiBidXQgZ290ICJub25lIgorUEFTUyAtd2Via2l0LWFwcGVh
cmFuY2U6IG1ldGVyCitQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyCiBQQVNT
IC13ZWJraXQtYXBwZWFyYW5jZTogcHVzaC1idXR0b24KIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNl
OiByYWRpbwogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHNlYXJjaGZpZWxkCiBQQVNTIC13ZWJr
aXQtYXBwZWFyYW5jZTogc2xpZGVyLWhvcml6b250YWwKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNl
OiBzcXVhcmUtYnV0dG9uIGFzc2VydF9lcXVhbHM6IHN0eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVw
cGVyY2FzZSBXKSBleHBlY3RlZCAic3F1YXJlLWJ1dHRvbiIgYnV0IGdvdCAibm9uZSIKK1BBU1Mg
LXdlYmtpdC1hcHBlYXJhbmNlOiBzcXVhcmUtYnV0dG9uCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5j
ZTogdGV4dGFyZWEKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQKIEZBSUwgLXdl
YmtpdC1hcHBlYXJhbmNlOiBib2d1cy1idXR0b24gKGludmFsaWQpIGFzc2VydF9lcXVhbHM6IHN0
eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAodW5kZWZpbmVkKSB1
bmRlZmluZWQgYnV0IGdvdCAoc3RyaW5nKSAiYnV0dG9uIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11
aS9hcHBlYXJhbmNlLWNzc29tLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFu
Y2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dAppbmRleCA4OGQ0MGIwNzZkMThhMjcyZmJiNGRiZDZh
ZTYwZWY2MmRlMDgwMGExLi5kYWE2MTMwZGRiMmEwYjgwMDliZjMwNTYzMjg4YmZmYWI1MzRmODlk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXVpL2FwcGVhcmFuY2UtY3Nzb20tMDAxLWV4cGVjdGVkLnR4dApAQCAt
MiwxOCArMiwxOCBAQCBUZXN0CiAKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lCiBGQUlM
IC13ZWJraXQtYXBwZWFyYW5jZTogYXV0byBhc3NlcnRfZXF1YWxzOiBzdHlsZS5XZWJraXRBcHBl
YXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgImF1dG8iIGJ1dCBnb3QgIiIKLUZBSUwgLXdl
YmtpdC1hcHBlYXJhbmNlOiBidXR0b24gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFy
YW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJidXR0b24iIGJ1dCBnb3QgIm5vbmUiCitQQVNT
IC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogY2hl
Y2tib3gKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94IGFzc2VydF9lcXVhbHM6IHN0
eWxlLldlYmtpdEFwcGVhcmFuY2UgKHVwcGVyY2FzZSBXKSBleHBlY3RlZCAibGlzdGJveCIgYnV0
IGdvdCAibm9uZSIKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlzdCBhc3NlcnRfZXF1
YWxzOiBzdHlsZS5XZWJraXRBcHBlYXJhbmNlICh1cHBlcmNhc2UgVykgZXhwZWN0ZWQgIm1lbnVs
aXN0IiBidXQgZ290ICJtZW51bGlzdC1idXR0b24iCitQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTog
bGlzdGJveAorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0CiBQQVNTIC13ZWJraXQt
YXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uCi1GQUlMIC13ZWJraXQtYXBwZWFyYW5jZTogbWV0
ZXIgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4
cGVjdGVkICJtZXRlciIgYnV0IGdvdCAibm9uZSIKLUZBSUwgLXdlYmtpdC1hcHBlYXJhbmNlOiBw
cm9ncmVzcy1iYXIgYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJj
YXNlIFcpIGV4cGVjdGVkICJwcm9ncmVzcy1iYXIiIGJ1dCBnb3QgIm5vbmUiCitQQVNTIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWV0ZXIKK1BBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVzcy1i
YXIKIFBBU1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBwdXNoLWJ1dHRvbgogUEFTUyAtd2Via2l0LWFw
cGVhcmFuY2U6IHJhZGlvCiBQQVNTIC13ZWJraXQtYXBwZWFyYW5jZTogc2VhcmNoZmllbGQKIFBB
U1MgLXdlYmtpdC1hcHBlYXJhbmNlOiBzbGlkZXItaG9yaXpvbnRhbAotRkFJTCAtd2Via2l0LWFw
cGVhcmFuY2U6IHNxdWFyZS1idXR0b24gYXNzZXJ0X2VxdWFsczogc3R5bGUuV2Via2l0QXBwZWFy
YW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICJzcXVhcmUtYnV0dG9uIiBidXQgZ290ICJub25l
IgorUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHNxdWFyZS1idXR0b24KIFBBU1MgLXdlYmtpdC1h
cHBlYXJhbmNlOiB0ZXh0YXJlYQogUEFTUyAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZAog
RkFJTCAtd2Via2l0LWFwcGVhcmFuY2U6IGJvZ3VzLWJ1dHRvbiAoaW52YWxpZCkgYXNzZXJ0X2Vx
dWFsczogc3R5bGUuV2Via2l0QXBwZWFyYW5jZSAodXBwZXJjYXNlIFcpIGV4cGVjdGVkICh1bmRl
ZmluZWQpIHVuZGVmaW5lZCBidXQgZ290IChzdHJpbmcpICJidXR0b24iCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>