<?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>199983</bug_id>
          
          <creation_ts>2019-07-20 13:49:45 -0700</creation_ts>
          <short_desc>[iOS WK2] Make a strongly-typed TransactionID to replace uint64_t transactionIDs</short_desc>
          <delta_ts>2020-05-20 18:57:02 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554541</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 13:49:45 -0700</bug_when>
    <thetext>[iOS WK2] Make a strongly-typed TransactionID to replace uint64_t transactionIDs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554542</commentid>
    <comment_count>1</comment_count>
      <attachid>374563</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 13:53:23 -0700</bug_when>
    <thetext>Created attachment 374563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554543</commentid>
    <comment_count>2</comment_count>
      <attachid>374563</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 13:54:51 -0700</bug_when>
    <thetext>Comment on attachment 374563
Patch

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

&gt; Source/WebKit/Shared/TransactionID.h:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

Oops

&gt; Source/WebKit/Shared/TransactionID.h:36
&gt; +template&lt;typename T&gt; class MonotonicObjectIdentifier {

Maybe MonotonicObjectIdentifier isn&apos;t the right name. I want &quot;always increases by one&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556478</commentid>
    <comment_count>3</comment_count>
      <attachid>375058</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-28 20:13:28 -0700</bug_when>
    <thetext>Created attachment 375058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564879</commentid>
    <comment_count>4</comment_count>
      <attachid>377226</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-25 21:32:25 -0700</bug_when>
    <thetext>Created attachment 377226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564880</commentid>
    <comment_count>5</comment_count>
      <attachid>377226</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-25 23:16:56 -0700</bug_when>
    <thetext>Comment on attachment 377226
Patch

Clearing flags on attachment: 377226

Committed r249093: &lt;https://trac.webkit.org/changeset/249093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565130</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 15:35:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/54725050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654723</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-20 16:42:19 -0700</bug_when>
    <thetext>I’d like to find a way to adjust/tune ObjectIdentifier for this, and retire MonotonicObjectIdentifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654771</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 18:57:02 -0700</bug_when>
    <thetext>Maybe we can give ObjectIdentifier a trait for where its static uint64_t lives (shared with other ObjectIdentifiers or not).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374563</attachid>
            <date>2019-07-20 13:53:23 -0700</date>
            <delta_ts>2019-07-22 11:13:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199983-20190720135322.patch</filename>
            <type>text/plain</type>
            <size>39301</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlYzI0OTI5NzhhZDMzYTA5
NmRiMjIyYjYzYTA0YzRkMzBhMGNhZjUuLjQ4NDMyOTdmZGY0MDJlY2JhNGQzNDIxNWFhMDNjZDUy
MzQxNzEyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMDctMjAgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIE1ha2Ug
YSBzdHJvbmdseS10eXBlZCBUcmFuc2FjdGlvbklEIHRvIHJlcGxhY2UgdWludDY0X3QgdHJhbnNh
Y3Rpb25JRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgQWRkIFRyYW5zYWN0aW9uSUQgd2hpY2ggaXMgYSBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyPFRyYW5zYWN0aW9uSURUeXBlPi4gVGhpcyBpcyBtb2RlbGVkCisgICAgICAgIGFmdGVy
IE9iamVjdElkZW50aWZpZXI8PiwgYnV0IHdlIGNhbid0IHVzZSB0aGF0IGJlY2F1c2UgaXQgZG9l
c24ndCBoYXZlIGEgZ3VhcmFudGVlIG9mCisgICAgICAgIHZhbHVlcyBhbHdheXMgaW5jcmVhc2lu
ZyBieSAxIChhbGwgZGVyaXZlZCBjbGFzc2VzIHNoYXJlIHRoZSBzYW1lIHZhbHVlIHNvdXJjZSku
IEFsc28sIHdlCisgICAgICAgIG5lZWQgYSBwZXItUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEg
c2V0IG9mIHZhbHVlcywgYnV0IGEgc3RhdGljIHNlZWQgd291bGQgY2F1c2UgdmFsdWVzIHRvCisg
ICAgICAgIGJlIGluY3JlbWVudGVkIGJ5IGFsbCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYXMg
aW4gYSBXZWJQcm9jZXNzLgorCisgICAgICAgIFJlcGxhY2UgYWxsIHRoZSBiYXJlIHVpbnQ2NF90
IHdpdGggVHJhbnNhY3Rpb25JRCwgZml4aW5nIG1lc3NhZ2UgZ2VuZXJhdGlvbiBjb2RlZ2VuLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6dHJhbnNhY3Rpb25JRCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzZXRUcmFuc2Fj
dGlvbklEKToKKyAgICAgICAgKiBTaGFyZWQvVHJhbnNhY3Rpb25JRC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6TW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Omlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6TW9ub3Rvbmlj
T2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjwgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcjw9IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0
b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6
OmluY3JlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6
Om5leHQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVy
Ojp0b1VJbnQ2NCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXI6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVyOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aGFzaFRhYmxlRGVsZXRlZFZhbHVlKToKKyAgICAg
ICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6aXNWYWxpZElkZW50aWZpZXIp
OgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6bGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhpdF0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OndpbGxDb21t
aXRMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFu
dXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVGFwKToKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpuZXh0VHJhbnNhY3Rpb25J
RCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjps
YXN0Q29tbWl0dGVkVHJhbnNhY3Rpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp0YWtlTmV4dFRyYW5zYWN0aW9uSUQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6Zmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OnNldEZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
REFmdGVyRGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmhhbmRsZVBvdGVudGlhbERvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcCk6CisKIDIwMTktMDctMTkgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZSBXZWJJbnNw
ZWN0b3Igc2hvdWxkIGVuYWJsZSBtb2NrIGNhcHR1cmUgZGV2aWNlcyBpbiBVSVByb2Nlc3MgaWYg
ZG9pbmcgaXQgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJjY2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4uOWRm
MTUxZTU3YzczYzg0NjQ4Y2EzYzU3ZjNiY2E4ZTdjNWM0M2I1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMTYsNiArMjE2LDcgQEAgZGVmIGZvcndhcmRf
ZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0
YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAor
ICAgICAgICAnV2ViS2l0OjpUcmFuc2FjdGlvbklEJywKICAgICAgICAgJ1dlYktpdDo6VXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCiAgICAgXSkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaAppbmRleCBlYTJiZTkzMDhjYmJlNmRkN2ViOGNmMmM1ODhjOGZmNjE5ZWE5
OTNjLi5lZjI5YmNiZGE5ZDQ3NzRjMWUzZGYyMjU4ZDEyMzJhYTdhYTlmZTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIK
ICNpbmNsdWRlICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIlRyYW5zYWN0
aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWx0ZXJPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50M0QuaD4KQEAg
LTI2MSw4ICsyNjIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhdm9pZHNVbnNhZmVBcmVhKCkgY29u
c3QgeyByZXR1cm4gbV9hdm9pZHNVbnNhZmVBcmVhOyB9CiAgICAgdm9pZCBzZXRBdm9pZHNVbnNh
ZmVBcmVhKGJvb2wgYXZvaWRzVW5zYWZlQXJlYSkgeyBtX2F2b2lkc1Vuc2FmZUFyZWEgPSBhdm9p
ZHNVbnNhZmVBcmVhOyB9CiAKLSAgICB1aW50NjRfdCB0cmFuc2FjdGlvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2FjdGlvbklEOyB9Ci0gICAgdm9pZCBzZXRUcmFuc2FjdGlvbklEKHVpbnQ2
NF90IHRyYW5zYWN0aW9uSUQpIHsgbV90cmFuc2FjdGlvbklEID0gdHJhbnNhY3Rpb25JRDsgfQor
ICAgIFRyYW5zYWN0aW9uSUQgdHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNh
Y3Rpb25JRDsgfQorICAgIHZvaWQgc2V0VHJhbnNhY3Rpb25JRChUcmFuc2FjdGlvbklEIHRyYW5z
YWN0aW9uSUQpIHsgbV90cmFuc2FjdGlvbklEID0gdHJhbnNhY3Rpb25JRDsgfQogCiAgICAgQWN0
aXZpdHlTdGF0ZUNoYW5nZUlEIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEOyB9CiAgICAgdm9pZCBzZXRBY3Rpdml0eVN0YXRlQ2hh
bmdlSUQoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCkgeyBtX2Fj
dGl2aXR5U3RhdGVDaGFuZ2VJRCA9IGFjdGl2aXR5U3RhdGVDaGFuZ2VJRDsgfQpAQCAtMzA2LDcg
KzMwNyw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1faW5pdGlhbFNjYWxlRmFjdG9yIHsgMSB9
OwogICAgIGRvdWJsZSBtX3ZpZXdwb3J0TWV0YVRhZ1dpZHRoIHsgLTEgfTsKICAgICB1aW50NjRf
dCBtX3JlbmRlclRyZWVTaXplIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fdHJhbnNhY3Rpb25JRCB7
IDAgfTsKKyAgICBUcmFuc2FjdGlvbklEIG1fdHJhbnNhY3Rpb25JRDsKICAgICBBY3Rpdml0eVN0
YXRlQ2hhbmdlSUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRlQ2hhbmdl
QXN5bmNocm9ub3VzIH07CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4g
bV9uZXdseVJlYWNoZWRQYWludGluZ01pbGVzdG9uZXM7CiAgICAgYm9vbCBtX3NjYWxlV2FzU2V0
QnlVSVByb2Nlc3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
VHJhbnNhY3Rpb25JRC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVHJhbnNhY3Rpb25JRC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRjMTZjNzc4YTBiYTAwM2IxZTM2NmZhNDA2MjJlNTY5YWQwMjJmZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklELmgKQEAgLTAs
MCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9I
YXNoRnVuY3Rpb25zLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyIHsKK3B1YmxpYzoK
KyAgICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKCkgPSBkZWZhdWx0OworCisgICAgTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAg
ICAgIDogbV9pZGVudGlmaWVyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgIHsgfQorCisg
ICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllciA9PSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsKKyAgICAgICAg
ZW5jb2RlciA8PCBtX2lkZW50aWZpZXI7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVu
dGlmaWVyOworICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgICAgIGlmICghaWRl
bnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIEFTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcigqaWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllciB7ICppZGVudGlmaWVyIH07CisgICAgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA9PSBvdGhlci5tX2lkZW50aWZpZXI7
CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj4oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID4g
b3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2lkZW50aWZpZXIgPj0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3I8KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciA8IG90aGVyLm1faWRlbnRpZmll
cjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPD0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRl
bnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVy
IDw9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pZGVudGlmaWVyICE9IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAg
ICBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBpbmNyZW1lbnQoKQorICAgIHsKKyAgICAgICAg
KyttX2lkZW50aWZpZXI7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyIG5leHQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIobV9pZGVudGlmaWVyICsgMSk7CisgICAgfQorCisg
ICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gU3RyaW5nOjpudW1iZXIobV9pZGVudGlmaWVyKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VT4g
bWFrZU1vbm90b25pY09iamVjdElkZW50aWZpZXIodWludDY0X3QpOworICAgIGZyaWVuZCBzdHJ1
Y3QgSGFzaFRyYWl0czxNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPjsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXJIYXNoOwor
CisgICAgc3RhdGljIHVpbnQ2NF90IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorICAgIHN0YXRpYyBib29sIGlz
VmFsaWRJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIg
IT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIGV4cGxpY2l0IE1vbm90b25pY09i
amVjdElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAgdWludDY0X3QgbV9pZGVudGlmaWVy
IHsgMCB9OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VD4mIGlk
ZW50aWZpZXIpCit7CisgICAgdHMgPDwgaWRlbnRpZmllci50b1VJbnQ2NCgpOworICAgIHJldHVy
biB0czsKK30KKworZW51bSBUcmFuc2FjdGlvbklEVHlwZSB7IH07Cit1c2luZyBUcmFuc2FjdGlv
bklEID0gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxUcmFuc2FjdGlvbklEVHlwZT47CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8uaAppbmRleCA1MGE4ZjllNmIzM2RjYmFjMTZkZjk2Y2U0MmY5MjMyNzg5NmIwZWU5Li4wZDc3
ODhiZmZhYjlhMTNkYzA2N2IyYzY5MTFjODRkMGNhYWQzZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3gu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZlbG9jaXR5RGF0YS5oPgpAQCAtNDYsNyArNDcsNyBAQCBj
bGFzcyBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvKCkgPSBkZWZhdWx0OwogCi0gICAgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVj
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb250ZW50SW5zZXRzLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmll
d0JvdW5kcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVj
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUg
c2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1Np
emUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxv
d1Nocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LCBjb25z
dCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNjcm9sbFZlbG9jaXR5LCB1aW50NjRfdCBsYXN0TGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZCkKKyAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmIGNvbnRlbnRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94
RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwgYm9vbCBpblN0
YWJsZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9vbCBpc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGJv
b2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsIGNvbnN0IFdlYkNvcmU6OlZlbG9j
aXR5RGF0YSYgc2Nyb2xsVmVsb2NpdHksIFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQpCiAgICAgICAgIDogbV9leHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRS
ZWN0KQogICAgICAgICAsIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0KHVub2JzY3VyZWRDb250ZW50
UmVjdCkKICAgICAgICAgLCBtX2NvbnRlbnRJbnNldHMoY29udGVudEluc2V0cykKQEAgLTgyLDcg
KzgzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseTsgfQogICAgIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsb3dTaHJpbmtUb0ZpdDsgfQogICAgIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcoKSBjb25zdCB7IHJldHVybiBtX2VuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3
OyB9Ci0gICAgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJl
dHVybiBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOyB9CisgICAgVHJhbnNhY3Rpb25JRCBs
YXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdExheWVyVHJl
ZVRyYW5zYWN0aW9uSUQ7IH0KIAogICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxWZWxvY2l0eS5sYXN0VXBkYXRlVGltZTsgfQogCkBAIC0xMDEsNyAr
MTAyLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCBtX29ic2N1cmVk
SW5zZXRzOwogICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50IG1fdW5vYnNjdXJlZFNhZmVBcmVh
SW5zZXRzOwogICAgIFdlYkNvcmU6OlZlbG9jaXR5RGF0YSBtX3Njcm9sbFZlbG9jaXR5OwotICAg
IHVpbnQ2NF90IG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQgeyAwIH07CisgICAgVHJhbnNh
Y3Rpb25JRCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOwogICAgIGRvdWJsZSBtX3NjYWxl
IHsgLTEgfTsKICAgICBib29sIG1faW5TdGFibGVTdGF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzY2M4NmE5ZjczZTQ4MmI1
OTQxNWJlZDhlZWU3NGRmOTg1MDI3ZTBmLi4zMTQ5NDgzOGIzMTkxZjNhNjU3YjMwOGMzNjc1YTdh
MjkyZGM2MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTMxNiw3ICszMTYsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IHsK
IAogICAgIEJPT0wgX2hhc0NvbW1pdHRlZExvYWRGb3JNYWluRnJhbWU7CiAgICAgQk9PTCBfbmVl
ZHNSZXNldFZpZXdTdGF0ZUFmdGVyQ29tbWl0TG9hZEZvck1haW5GcmFtZTsKLSAgICB1aW50NjRf
dCBfZmlyc3RQYWludEFmdGVyQ29tbWl0TG9hZFRyYW5zYWN0aW9uSUQ7CisgICAgV2ViS2l0OjpU
cmFuc2FjdGlvbklEIF9maXJzdFBhaW50QWZ0ZXJDb21taXRMb2FkVHJhbnNhY3Rpb25JRDsKICAg
ICBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgX2R5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGU7CiAgICAgV2ViS2l0OjpEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgX2N1cnJlbnRE
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQ7CiAgICAgQ0FUcmFuc2Zvcm0zRCBfcmVzaXplQW5p
bWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHM7CkBAIC0zMzEsNyArMzMxLDcgQEAgQGltcGxlbWVu
dGF0aW9uIFdLV2ViVmlldyB7CiAgICAgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgX29ic2N1cmVk
SW5zZXRzV2hlblNhdmVkOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gX3Vu
b2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmU7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IF9maXJzdFRy
YW5zYWN0aW9uSURBZnRlclBhZ2VSZXN0b3JlOworICAgIE9wdGlvbmFsPFdlYktpdDo6VHJhbnNh
Y3Rpb25JRD4gX2ZpcnN0VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmU7CiAgICAgZG91Ymxl
IF9zY2FsZVRvUmVzdG9yZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlZpZXdHZXN0
dXJlQ29udHJvbGxlcj4gX2dlc3R1cmVDb250cm9sbGVyOwpAQCAtMTg4MSw3ICsxODgxLDcgQEAg
LSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwT3JEaWRFeGl0CiAgICAgX2Zyb3plblZpc2libGVDb250
ZW50UmVjdCA9IFdURjo6bnVsbG9wdDsKICAgICBfZnJvemVuVW5vYnNjdXJlZENvbnRlbnRSZWN0
ID0gV1RGOjpudWxsb3B0OwogCi0gICAgX2ZpcnN0UGFpbnRBZnRlckNvbW1pdExvYWRUcmFuc2Fj
dGlvbklEID0gMDsKKyAgICBfZmlyc3RQYWludEFmdGVyQ29tbWl0TG9hZFRyYW5zYWN0aW9uSUQg
PSB7IH07CiAgICAgX2ZpcnN0VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmUgPSBXVEY6Om51
bGxvcHQ7CiAKICAgICBfaGFzU2NoZWR1bGVkVmlzaWJsZVJlY3RVcGRhdGUgPSBOTzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGY5NGFkM2Y4
NmE3NjkzM2M2MTExMjJiOGU4ODZiODVmMWIxMmJjZTguLjU1NjU5MWU3MTVjZTJiNGQ3YzU1M2Uw
ZTk1ODAyNDg3YWM3ZmEwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJUcmFu
c2FjdGlvbklELmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgpAQCAtNDks
OCArNTAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0
KHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0
VGltZSk7CiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXll
cklELCBjb25zdCBTdHJpbmcmIGtleSk7CiAKLSAgICB1aW50NjRfdCBuZXh0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9u
SUQgKyAxOyB9Ci0gICAgdWludDY0X3QgbGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9u
SUQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSURGb3JQZW5kaW5nQ0FDb21taXQ7IH0K
KyAgICBUcmFuc2FjdGlvbklEIG5leHRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRC5uZXh0KCk7IH0KKyAgICBUcmFu
c2FjdGlvbklEIGxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2FjdGlvbklERm9yUGVuZGluZ0NBQ29tbWl0OyB9CiAKICAgICB2b2lkIGRp
ZFJlZnJlc2hEaXNwbGF5KCk7CiAgICAgCkBAIC05Niw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKLSAgICB2b2lkIHdpbGxDb21taXRM
YXllclRyZWUodWludDY0X3QgdHJhbnNhY3Rpb25JRCk7CisgICAgdm9pZCB3aWxsQ29tbWl0TGF5
ZXJUcmVlKFRyYW5zYWN0aW9uSUQpOwogICAgIHZvaWQgY29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbiYpOwogICAgIAogICAgIHZvaWQgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CkBA
IC0xMTIsMTAgKzExMywxMCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Rp
bGVNYXBIb3N0TGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZXhwb3NlZFJlY3RJbmRp
Y2F0b3JMYXllcjsKIAotICAgIHVpbnQ2NF90IG1fcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9u
SUQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9sYXN0VmlzaWJsZVRyYW5zYWN0aW9uSUQgeyAwIH07
Ci0gICAgdWludDY0X3QgbV90cmFuc2FjdGlvbklERm9yUGVuZGluZ0NBQ29tbWl0IHsgMCB9Owot
ICAgIHVpbnQ2NF90IG1fdHJhbnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudCB7IDAgfTsKKyAg
ICBUcmFuc2FjdGlvbklEIG1fcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9uSUQ7CisgICAgVHJh
bnNhY3Rpb25JRCBtX2xhc3RWaXNpYmxlVHJhbnNhY3Rpb25JRDsKKyAgICBUcmFuc2FjdGlvbklE
IG1fdHJhbnNhY3Rpb25JREZvclBlbmRpbmdDQUNvbW1pdDsKKyAgICBUcmFuc2FjdGlvbklEIG1f
dHJhbnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudDsKICAgICBBY3Rpdml0eVN0YXRlQ2hhbmdl
SUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRlQ2hhbmdlQXN5bmNocm9u
b3VzIH07CiAKICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZGY2ZjVhYTkwOTM5Njk5YjA0NDMwMjFmYjg0Y2E2NTI2NDdhNjhjZi4uMDRkNWQxNDIyNmY1YmU4
YWZiZGFjNmRiMWZhMWE2ODdmYmQwNmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDYgKzIxLDYg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eSA6IERyYXdpbmdBcmVhUHJveHkgewotICAgIHZvaWQgV2lsbENvbW1pdExheWVyVHJl
ZSh1aW50NjRfdCB0cmFuc2FjdGlvbklEKQorICAgIHZvaWQgV2lsbENvbW1pdExheWVyVHJlZShX
ZWJLaXQ6OlRyYW5zYWN0aW9uSUQgdHJhbnNhY3Rpb25JRCkKICAgICB2b2lkIENvbW1pdExheWVy
VHJlZShXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uIGxheWVyVHJlZVRyYW5zYWN0
aW9uLCBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24gc2Nyb2xs
aW5nVHJlZVRyYW5zYWN0aW9uKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbQppbmRleCA2MGYwMmM2MTBmY2Q5ODgzMDYzOWM1N2IzZTlkNjFmZjFm
ZDUyNWZkLi5lYzg0ZDNmZjkwOGI1YjM1ZGYzYmNkMDViODM5NDJkNGY4ODBiMmFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTgzLDcg
KzE4Myw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFVwZGF0
ZUdlb21ldHJ5KCkKICAgICBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsK
IH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3aWxsQ29tbWl0TGF5
ZXJUcmVlKHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OndpbGxDb21taXRMYXllclRyZWUoVHJhbnNhY3Rpb25JRCB0cmFuc2FjdGlv
bklEKQogewogICAgIG1fcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9uSUQgPSB0cmFuc2FjdGlv
bklEOwogfQpAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAg
TE9HKFJlbW90ZUxheWVyVHJlZSwgIiVzIiwgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uZGVzY3JpcHRp
b24oKS5kYXRhKCkpOwogICAgIExPRyhSZW1vdGVMYXllclRyZWUsICIlcyIsIHNjcm9sbGluZ1Ry
ZWVUcmFuc2FjdGlvbi5kZXNjcmlwdGlvbigpLmRhdGEoKSk7CiAKLSAgICBBU1NFUlQobGF5ZXJU
cmVlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JRCgpID09IG1fbGFzdFZpc2libGVUcmFuc2FjdGlv
bklEICsgMSk7CisgICAgQVNTRVJUKGxheWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQo
KSA9PSBtX2xhc3RWaXNpYmxlVHJhbnNhY3Rpb25JRC5uZXh0KCkpOwogICAgIG1fdHJhbnNhY3Rp
b25JREZvclBlbmRpbmdDQUNvbW1pdCA9IGxheWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9u
SUQoKTsKICAgICBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VJRCA9IGxheWVyVHJlZVRyYW5zYWN0aW9u
LmFjdGl2aXR5U3RhdGVDaGFuZ2VJRCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA3YzgxNzg0NzE5MWU5ZjU0MDJkMTQzYTRlZjg1ZWRlNGI2MjU4MWVi
Li44YzkxZTA0MzQ4YzVkMWMyZjM3YTlmNjkwNzAxYzg5NjQxNTllMjU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY5OTgsOCArNjk5OCw4IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNv
bikKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBtX2ZpcnN0TGF5ZXJU
cmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZCA9IDA7Ci0gICAgbV9sYXN0VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlID0gVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbygpOworICAg
IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklkQWZ0ZXJEaWRDb21taXRMb2FkID0geyB9Owor
ICAgIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZSA9IHsgfTsKICAgICBtX2hhc05ldHdv
cmtSZXF1ZXN0c09uU3VzcGVuZGVkID0gZmFsc2U7CiAgICAgbV9pc0tleWJvYXJkQW5pbWF0aW5n
SW4gPSBmYWxzZTsKICAgICBtX2lzU2Nyb2xsaW5nT3Jab29taW5nID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGY1Njc3OGQ3YzY5Zjk2MzcwMWIzNWI0
MjJhMDM5YWFkYjgyMjAyNmIuLjE5NzU5ODljMWZiNzM2YTE5M2I0NDNhZjU5MDVlOTQxMWJlMTQ1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW5jbHVkZSAiU3VzcGVuZGVkUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAiU3lzdGVtUHJldmlld0NvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCkBAIC02NjUs
NyArNjY2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJf
dCk7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2
aWNlT3JpZW50YXRpb247IH0KICAgICB2b2lkIHNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+Jik7Ci0gICAgdm9pZCB3
aWxsQ29tbWl0TGF5ZXJUcmVlKHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpOworICAgIHZvaWQgd2ls
bENvbW1pdExheWVyVHJlZShUcmFuc2FjdGlvbklEKTsKIAogICAgIHZvaWQgc2VsZWN0V2l0aEdl
c3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwg
dWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgYm9vbCBpc0ludGVy
YWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCBDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCwgdWludDMyX3QgdG91Y2hlcywgYm9vbCBiYXNlSXNTdGFydCwgV1RG
OjpGdW5jdGlvbjx2b2lkIChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQzMl90LCB1aW50
MzJfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwpAQCAtMTIyMCwxMCArMTIyMSwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpOwogCiAgICAg
dm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBi
b29sIHNob3VsZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24sIHVpbnQ2NF90JiByZXF1
ZXN0SUQpOwotICAgIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJLaXQ6Oldl
YkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RU
b3VjaFN0YXJ0LCBXZWJDb3JlOjpQb2ludGVySUQpOworICAgIHZvaWQgY29tbWl0UG90ZW50aWFs
VGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFRyYW5zYWN0aW9uSUQg
bGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIFdlYkNvcmU6OlBvaW50ZXJJ
RCk7CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdo
dEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90JiByZXF1ZXN0
SUQpOwotICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXllclRyZWVUcmFu
c2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CisgICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4s
IFRyYW5zYWN0aW9uSUQgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOwog
ICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ1ByZXNzKCk7CiAKICAgICB2b2lkIGluc3BlY3Rvck5v
ZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpAQCAt
MjE3MCw3ICsyMTcxLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRB
cmd1bWVudHM7CiAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyBtX2xhc3RWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGU7Ci0gICAgdWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0
aW9uSWRBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CisgICAgVHJhbnNhY3Rpb25JRCBtX2ZpcnN0
TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZDsKICAgICBpbnQzMl90IG1f
ZGV2aWNlT3JpZW50YXRpb24geyAwIH07CiAgICAgYm9vbCBtX2hhc1JlY2VpdmVkTGF5ZXJUcmVl
VHJhbnNhY3Rpb25BZnRlckRpZENvbW1pdExvYWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2hhc05l
dHdvcmtSZXF1ZXN0c09uU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCAzNmVm
YzZjYjgzMTJiZWYzY2EwMjk3ZGZiNDVmNzgzNTAxNDk4MTUzLi43ODVhYWU3MDM2ODRkN2NkYjZk
MTIwOTUzNmQ3YWIyOWYwZmM0YzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zOCw2ICszOCw3IEBACiAj
aW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiU3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9s
bGVyLmgiCisjaW1wb3J0ICJUcmFuc2FjdGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgog
I2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91
dGVQaWNrZXIuaCIKQEAgLTI5MSw3ICsyOTIsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRh
dGEgewogICAgIEJsb2NrUHRyPHZvaWQoOjpXZWJFdmVudCAqLCBCT09MKT4gX2tleVdlYkV2ZW50
SGFuZGxlcjsKIAogICAgIENHUG9pbnQgX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uOwotICAgIHVp
bnQ2NF90IF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydDsKKyAgICBXZWJL
aXQ6OlRyYW5zYWN0aW9uSUQgX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0
OwogCiAgICAgV2ViS2l0OjpXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIF9sYXN0U2VsZWN0aW9uRHJh
d2luZ0luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDczODM4ZGUxOGFlMmYwYjU4YTQzN2E5NTAw
Y2Y2NzM3ODJkMDMzYjUuLjFmZWM2NWJlMTQ0MDMxNTMxOTUzODViMzQ3OThmOTA5MWYxNTQ0OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTE2LDcgKzkxNiw3IEBAIC0gKHZvaWQpY2xlYW51cEludGVy
YWN0aW9uCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3RvdWNoQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCldOwogI2VuZGlmCiAKLSAgICBfbGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZEF0TGFzdFRvdWNoU3RhcnQgPSAwOworICAgIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRM
YXN0VG91Y2hTdGFydCA9IHsgfTsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAg
IFtleGlzdGluZ0xvY2FsRHJhZ1Nlc3Npb25Db250ZXh0KF9kcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGUuZHJhZ1Nlc3Npb24oKSkgY2xlYW5VcFRlbXBvcmFyeURpcmVjdG9yaWVzXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDZiNDc1ODE1
ZjQ3NTcxZDU5YmQ4YmVmY2E2ZDc5ZjEwMzdjOWIyMmMuLjY0MTQ3MTM0ZjU0NDU5YmE0MWZhMDRh
Nzc3YjZjMTJlYzVkYWZmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQpAQCAtODEzLDcgKzgxMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
b3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9u
LCBiCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0
UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbiksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBv
dGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2
NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBXZWJDb3JlOjpQb2lu
dGVySUQgcG9pbnRlcklkKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChP
cHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFRyYW5zYWN0aW9uSUQgbGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIFdlYkNvcmU6OlBvaW50ZXJJRCBw
b2ludGVySWQpCiB7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbW1p
dFBvdGVudGlhbFRhcChtb2RpZmllcnMsIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3Vj
aFN0YXJ0LCBwb2ludGVySWQpLCBtX3BhZ2VJRCk7CiB9CkBAIC04MjgsNyArODI4LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgcG9zaXRpb24sIHUKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6VGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihyZXF1ZXN0SUQsIHBvc2l0aW9uKSwgbV9wYWdlSUQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVGFwKGNvbnN0IEZsb2F0UG9pbnQmIGxv
Y2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90
IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQordm9pZCBXZWJQYWdlUHJv
eHk6OmhhbmRsZVRhcChjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYkV2
ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpIYW5kbGVUYXAocm91bmRlZEludFBvaW50KGxvY2F0aW9uKSwgbW9kaWZpZXJzLCBs
YXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCksIG1fcGFnZUlEKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBh
MmIxOTJmZjg3NWQ1ZjA1YWQyYmVjMTRhOWFlYzM0MjQzMDJjZDkuLmJkYWI0ZmJkNTMzMjRiMDQw
NGM0NWI2YTY2ZjQwZWVkZjYwNTdlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk0MCw2ICsxOTQwLDcgQEAKIAkJMEYwOENGNTMx
RDYzQzE0MDAwQjQ4REYxIC8qIFdLRm9ybVNlbGVjdFBvcG92ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tGb3JtU2VsZWN0UG9wb3Zlci5oOyBwYXRoID0gaW9zL2Zvcm1z
L1dLRm9ybVNlbGVjdFBvcG92ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYw
QzM2NTcxOEMwNTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjBDMzY1QjE4QzA1Q0ExMDBGNjA3
RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTE3ODE0MjJFMzlCRTYw
MDhCRDU3MCAvKiBUcmFuc2FjdGlvbklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRyYW5zYWN0aW9uSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNzRB
QTIxNDJBNENCNjAwMzkyNTBGIC8qIEFQSUdlb21ldHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSUdlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMTc0QUE2MTQyQUFDNjEwMDM5MjUwRiAvKiBXS0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjNDNzI1NzE5NkY1RjUwMDBBRUREMEMgLyogV0tJbnNwZWN0b3JIaWdo
bGlnaHRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJ
bnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTI1Niw2ICs1MjU3LDcgQEAKIAkJCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyogVG91Y2hC
YXJNZW51RGF0YS5oICovLAogCQkJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAvKiBUb3VjaEJh
ck1lbnVJdGVtRGF0YS5jcHAgKi8sCiAJCQkJMkY4MDlERDkxRkJEMUJGMjAwNUZFNjNBIC8qIFRv
dWNoQmFyTWVudUl0ZW1EYXRhLmggKi8sCisJCQkJMEYxMTc4MTQyMkUzOUJFNjAwOEJENTcwIC8q
IFRyYW5zYWN0aW9uSUQuaCAqLywKIAkJCQk1QzRCOUQ4QTIxMEE4QzQ2MDA4RjE0RDEgLyogVW5k
b09yUmVkby5oICovLAogCQkJCTFBNjQyNDVEMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZv
LmNwcCAqLywKIAkJCQkxQTY0MjQ1QzEyREUyOUExMDBDQUFFMkMgLyogVXBkYXRlSW5mby5oICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aAppbmRleCBhNmQ3YjgwNjVmNzc4N2M1NDEwNmNhYjQ2MTU2NGY2NWE3YjNiZDhjLi5kZTcxMTZl
ZjdjMDIxMzU0N2VjNWZkMDgxM2QzNzY3YjQzZGU0OTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNTEsOCArNTEsOCBAQCBw
dWJsaWM6CiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYSgpOwogCi0gICAgdWludDY0X3QgbmV4dFRyYW5zYWN0aW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEICsgMTsgfQotICAgIHVpbnQ2NF90IGxhc3RD
b21taXR0ZWRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rp
b25JRDsgfQorICAgIFRyYW5zYWN0aW9uSUQgbmV4dFRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJl
dHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklELm5leHQoKTsgfQorICAgIFRyYW5zYWN0aW9uSUQg
bGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUcmFu
c2FjdGlvbklEOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKQEAgLTExOSw3ICsx
MTksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVU
aWxlZEJhY2tpbmcoKSBjb25zdDsKIAotICAgIHVpbnQ2NF90IHRha2VOZXh0VHJhbnNhY3Rpb25J
RCgpIHsgcmV0dXJuICsrbV9jdXJyZW50VHJhbnNhY3Rpb25JRDsgfQorICAgIFRyYW5zYWN0aW9u
SUQgdGFrZU5leHRUcmFuc2FjdGlvbklEKCkgeyByZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25J
RC5pbmNyZW1lbnQoKTsgfQogCiAgICAgYm9vbCBtYXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVs
eUlmUG9zc2libGUoKSBvdmVycmlkZTsKIApAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAg
ICAgSGFzaFNldDxSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IqPiBtX2Rpc3Bs
YXlSZWZyZXNoTW9uaXRvcnM7CiAgICAgSGFzaFNldDxSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVm
cmVzaE1vbml0b3IqPiogbV9kaXNwbGF5UmVmcmVzaE1vbml0b3JzVG9Ob3RpZnkgeyBudWxscHRy
IH07CiAKLSAgICB1aW50NjRfdCBtX2N1cnJlbnRUcmFuc2FjdGlvbklEIHsgMCB9OworICAgIFRy
YW5zYWN0aW9uSUQgbV9jdXJyZW50VHJhbnNhY3Rpb25JRDsKICAgICBWZWN0b3I8UmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uQ2FsbGJhY2tJRD4gbV9wZW5kaW5nQ2FsbGJh
Y2tJRHM7CiAgICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlE
IHsgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1MDU1YjQ0N2U4
N2JmZmY3ZTk2NDA2ZGVlYTljLi4zYjQ2NjM5Nzk5YWQ2N2YwNmU1OTljMzkyNTA3YWY2NWI3NjJk
OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJEb3dubG9h
ZElELmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5jbHVkZSAiVHJhbnNhY3Rp
b25JRC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CkBAIC0xNjcs
OCArMTY4LDggQEAgcHVibGljOgogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNyZWF0ZVNl
bGVjdGlvblNuYXBzaG90KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IHVpbnQ2NF90IGZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21t
aXRMb2FkOyB9Ci0gICAgdm9pZCBzZXRGaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRp
ZENvbW1pdExvYWQodWludDY0X3QgdHJhbnNhY3Rpb25JRCkgeyBtX2ZpcnN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCA9IHRyYW5zYWN0aW9uSUQ7IH0KKyAgICBUcmFu
c2FjdGlvbklEIGZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21t
aXRMb2FkOyB9CisgICAgdm9pZCBzZXRGaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRp
ZENvbW1pdExvYWQoVHJhbnNhY3Rpb25JRCB0cmFuc2FjdGlvbklEKSB7IG1fZmlyc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkID0gdHJhbnNhY3Rpb25JRDsgfQogI2Vu
ZGlmCiAKIHByaXZhdGU6CkBAIC0xOTAsNyArMTkxLDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRf
dCBtX2ZyYW1lSUQgeyAwIH07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQ2
NF90IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9
OworICAgIFRyYW5zYWN0aW9uSUQgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRp
ZENvbW1pdExvYWQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBiMTVkNmI4Njg3NjI1N2M2YTRlZTFmZTg3MGUxOTM2MDY2Yjll
NjQ1Li5mZWYxMTAwY2ZkYTY3OTlhYWFmNDdkZGFlNjA0YTYxMmE1NzZhN2Y3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02MjcsMTUgKzYyNywxNSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd3NVc2VyU2NhbGluZygpIGNvbnN0OwogICAgIGJvb2wg
aGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdGFibGVQYWdl
U2NhbGVGYWN0b3I7IH0KIAotICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGFz
dExheWVyVHJlZVRyYW5zYWN0aW9uSWQpOworICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJh
bnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CiAgICAgdm9pZCBwb3RlbnRp
YWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbik7Ci0gICAg
dm9pZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlm
aWVyPiwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50
ZXJJRCk7CisgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKICAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxl
ZCgpOwogICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7CiAgICAgdm9pZCBjYW5jZWxQb3Rl
bnRpYWxUYXBJbkZyYW1lKFdlYkZyYW1lJik7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAg
IHZvaWQgZGlkUmVjb2duaXplTG9uZ1ByZXNzKCk7Ci0gICAgYm9vbCBoYW5kbGVQb3RlbnRpYWxE
b3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6
Ok1vZGlmaWVyPiwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpOworICAgIGJv
b2wgaGFuZGxlUG90ZW50aWFsRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KE9wdGlvblNl
dDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJl
ZVRyYW5zYWN0aW9uSWQpOwogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bv
c2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5v
ZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpAQCAt
MTg3Myw3ICsxODczLDcgQEAgcHJpdmF0ZToKICAgICBGb2N1c2VkRWxlbWVudElkZW50aWZpZXIg
bV9jdXJyZW50Rm9jdXNlZEVsZW1lbnRJZGVudGlmaWVyIHsgMCB9OwogICAgIE9wdGlvbmFsPER5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRD4gbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEOwogICAgIGRvdWJsZSBtX2xhc3RUcmFuc2FjdGlvblBhZ2VTY2FsZUZhY3RvciB7IDAg
fTsKLSAgICB1aW50NjRfdCBtX2xhc3RUcmFuc2FjdGlvbklEV2l0aFNjYWxlQ2hhbmdlIHsgMCB9
OworICAgIFRyYW5zYWN0aW9uSUQgbV9sYXN0VHJhbnNhY3Rpb25JRFdpdGhTY2FsZUNoYW5nZTsK
ICAgICBPcHRpb25hbDxNb25vdG9uaWNUaW1lPiBtX2xhc3RDb21taXR0ZWRUYXBUaW1lc3RhbXA7
CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gbV9sYXN0Q29tbWl0dGVkVGFwTG9j
YXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IGMxMWI0OWRhMDEyY2E4YjgyNDcwMTY5YTEwMjc1YzdiNWM1
ODhkMzMuLjI5NDBlYWI0MjMyNjM1OWVjOWQ3NGE3MDc1YTQwZmI1NWZkMTRmMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgpAQCAtNTEsOSArNTEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBTZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCiAgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShX
ZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhp
bXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVu
dFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6
RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdl
YkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBk
b3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCkKIAotICAgIEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQb2ludCBw
b2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVp
bnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIEhhbmRsZVRhcChXZWJDb3Jl
OjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZCkKICAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBwb2ludCwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9y
bWF0aW9uKQotICAgIENvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCisgICAgQ29tbWl0UG90ZW50aWFsVGFw
KE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6
OlRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50
ZXJJRCBwb2ludGVySWQpCiAgICAgQ2FuY2VsUG90ZW50aWFsVGFwKCkKICAgICBUYXBIaWdobGln
aHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2lu
dCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjNTY2NjQ5MDI1NWZhMWJj
NzNlMjM2OTI1OWUwODE2NWRiOGYxZjdkLi5kZjI3ZGVlYWI2YTcxYTExNTlkOWFjZWVkMGY1MDU2
ZGVlOTM5MTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtODEwLDcgKzgxMCw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxl
dGVTeW50aGV0aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNv
cmU6CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDb21wbGV0ZVN5bnRoZXRp
Y0NsaWNrKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChjb25zdCBJbnRQb2ludCYg
cG9pbnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3Qg
bGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCit2b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChjb25z
dCBJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVy
cywgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKIHsKICAgICBGbG9h
dFBvaW50IGFkanVzdGVkUG9pbnQ7CiAgICAgTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrID0g
bV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9pbnQsIGFk
anVzdGVkUG9pbnQpOwpAQCAtODMwLDcgKzgzMCw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFw
KGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9k
CiAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFk
anVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CiB9CiAKLWJvb2wgV2ViUGFnZTo6aGFuZGxlUG90ZW50
aWFsRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KE9wdGlvblNldDxXZWJFdmVudDo6TW9k
aWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiti
b29sIFdlYlBhZ2U6OmhhbmRsZVBvdGVudGlhbERvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2lu
dChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFRyYW5zYWN0aW9uSUQg
bGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiB7CiAgICAgaWYgKCFtX2xhc3RDb21taXR0ZWRU
YXBUaW1lc3RhbXAgfHwgIW1fbGFzdENvbW1pdHRlZFRhcExvY2F0aW9uKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMDgwLDcgKzEwODAsNyBAQCB2b2lkIFdlYlBhZ2U6OnBvdGVudGlhbFRh
cEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaQog
I2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCit2b2lkIFdlYlBhZ2U6OmNv
bW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMs
IFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50
ZXJJRCBwb2ludGVySWQpCiB7CiAgICAgYXV0byBjdXJyZW50UG90ZW50aWFsVGFwTG9jYXRpb24g
PSBtX3BvdGVudGlhbFRhcExvY2F0aW9uOyAKICAgICBhdXRvIHVwZGF0ZUxhc3RDb21taXR0ZWRM
b2NhdGlvbkFuZFRpbWVzdGFtcCA9IFsmXSB7Cg==
</data>
<flag name="review"
          id="390350"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375058</attachid>
            <date>2019-07-28 20:13:28 -0700</date>
            <delta_ts>2019-07-28 20:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199983-20190728201327.patch</filename>
            <type>text/plain</type>
            <size>40886</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUyZmY3Yjg5YzJkYmIxZjUw
MWQ0MDc3OTViMjJhODNiNzg0ODNkODIuLjQ0OWM4Yjc5Y2E3YzQwZmU5MTAxZGQxNjJiNzllYzll
NGIyZjU5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMDctMjggIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIE1ha2Ug
YSBzdHJvbmdseS10eXBlZCBUcmFuc2FjdGlvbklEIHRvIHJlcGxhY2UgdWludDY0X3QgdHJhbnNh
Y3Rpb25JRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKyAgICAgICAgCisg
ICAgICAgIEFkZCBUcmFuc2FjdGlvbklEIHdoaWNoIGlzIGEgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllcjxUcmFuc2FjdGlvbklEVHlwZT4uIFRoaXMgaXMgbW9kZWxlZAorICAgICAgICBhZnRlciBP
YmplY3RJZGVudGlmaWVyPD4sIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIGl0IGRvZXNu
J3QgaGF2ZSBhIGd1YXJhbnRlZSBvZgorICAgICAgICB2YWx1ZXMgYWx3YXlzIGluY3JlYXNpbmcg
YnkgMSAoYWxsIGRlcml2ZWQgY2xhc3NlcyBzaGFyZSB0aGUgc2FtZSB2YWx1ZSBzb3VyY2UpLiBB
bHNvLCB3ZQorICAgICAgICBuZWVkIGEgcGVyLVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIHNl
dCBvZiB2YWx1ZXMsIGJ1dCBhIHN0YXRpYyBzZWVkIHdvdWxkIGNhdXNlIHZhbHVlcyB0bworICAg
ICAgICBiZSBpbmNyZW1lbnRlZCBieSBhbGwgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFzIGlu
IGEgV2ViUHJvY2Vzcy4KKworICAgICAgICBSZXBsYWNlIGFsbCB0aGUgYmFyZSB1aW50NjRfdCB3
aXRoIFRyYW5zYWN0aW9uSUQsIGZpeGluZyBtZXNzYWdlIGdlbmVyYXRpb24gY29kZWdlbi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnRyYW5zYWN0aW9uSUQgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6c2V0VHJhbnNhY3Rp
b25JRCk6CisgICAgICAgICogU2hhcmVkL1RyYW5zYWN0aW9uSUQuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25p
Y09iamVjdElkZW50aWZpZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9y
IT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpp
bmNyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpu
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6
dG9VSW50NjQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbzo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChX
ZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86Omxhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBPckRpZEV4aXRdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3aWxsQ29tbWl0
TGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21taXRQb3RlbnRpYWxUYXApOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVRhcCk6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bmV4dFRyYW5zYWN0aW9uSUQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bGFz
dENvbW1pdHRlZFRyYW5zYWN0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6dGFrZU5leHRUcmFuc2FjdGlvbklEKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpzZXRGaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURB
ZnRlckRpZENvbW1pdExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
YW5kbGVQb3RlbnRpYWxEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXApOgorCiAyMDE5LTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgbW9yZSBzeXNjYWxs
cyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzJyBzYW5kYm94IHByb2ZpbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGYwZWM4ZGMxYjcxNjliY2NhNTVhNjU0
OTEyZWQyZmVmNTM3MGRmMTAuLjlkZjE1MWU1N2M3M2M4NDY0OGNhM2M1N2YzYmNhOGU3YzVjNDNi
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjE2LDYg
KzIxNiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6
CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dElEJywKKyAgICAgICAgJ1dlYktpdDo6VHJhbnNhY3Rpb25JRCcsCiAg
ICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXInLAogICAgIF0p
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggZWEyYmU5MzA4Y2JiZTZk
ZDdlYjhjZjJjNTg4YzhmZjYxOWVhOTkzYy4uZWYyOWJjYmRhOWQ0Nzc0YzFlM2RmMjI1OGQxMjMy
YWE3YWE5ZmU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
aCIKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRQb2ludDNELmg+CkBAIC0yNjEsOCArMjYyLDggQEAgcHVibGljOgogICAgIGJvb2wg
YXZvaWRzVW5zYWZlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fYXZvaWRzVW5zYWZlQXJlYTsgfQog
ICAgIHZvaWQgc2V0QXZvaWRzVW5zYWZlQXJlYShib29sIGF2b2lkc1Vuc2FmZUFyZWEpIHsgbV9h
dm9pZHNVbnNhZmVBcmVhID0gYXZvaWRzVW5zYWZlQXJlYTsgfQogCi0gICAgdWludDY0X3QgdHJh
bnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JRDsgfQotICAgIHZvaWQg
c2V0VHJhbnNhY3Rpb25JRCh1aW50NjRfdCB0cmFuc2FjdGlvbklEKSB7IG1fdHJhbnNhY3Rpb25J
RCA9IHRyYW5zYWN0aW9uSUQ7IH0KKyAgICBUcmFuc2FjdGlvbklEIHRyYW5zYWN0aW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSUQ7IH0KKyAgICB2b2lkIHNldFRyYW5zYWN0aW9u
SUQoVHJhbnNhY3Rpb25JRCB0cmFuc2FjdGlvbklEKSB7IG1fdHJhbnNhY3Rpb25JRCA9IHRyYW5z
YWN0aW9uSUQ7IH0KIAogICAgIEFjdGl2aXR5U3RhdGVDaGFuZ2VJRCBhY3Rpdml0eVN0YXRlQ2hh
bmdlSUQoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VJRDsgfQogICAgIHZv
aWQgc2V0QWN0aXZpdHlTdGF0ZUNoYW5nZUlEKEFjdGl2aXR5U3RhdGVDaGFuZ2VJRCBhY3Rpdml0
eVN0YXRlQ2hhbmdlSUQpIHsgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgPSBhY3Rpdml0eVN0YXRl
Q2hhbmdlSUQ7IH0KQEAgLTMwNiw3ICszMDcsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2lu
aXRpYWxTY2FsZUZhY3RvciB7IDEgfTsKICAgICBkb3VibGUgbV92aWV3cG9ydE1ldGFUYWdXaWR0
aCB7IC0xIH07CiAgICAgdWludDY0X3QgbV9yZW5kZXJUcmVlU2l6ZSB7IDAgfTsKLSAgICB1aW50
NjRfdCBtX3RyYW5zYWN0aW9uSUQgeyAwIH07CisgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0
aW9uSUQ7CiAgICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlE
IHsgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogICAgIE9wdGlvblNldDxXZWJD
b3JlOjpMYXlvdXRNaWxlc3RvbmU+IG1fbmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3RvbmVzOwog
ICAgIGJvb2wgbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1RyYW5zYWN0aW9uSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzE2Yzc3OGEwYmEwMDNiMWUzNjZmYTQw
NjIyZTU2OWFkMDIyZmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
VHJhbnNhY3Rpb25JRC5oCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
VHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTW9ub3RvbmljT2JqZWN0
SWRlbnRpZmllciB7CitwdWJsaWM6CisgICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcigpID0g
ZGVmYXVsdDsKKworICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIoV1RGOjpIYXNoVGFibGVE
ZWxldGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1faWRlbnRpZmllcihoYXNoVGFibGVEZWxldGVk
VmFsdWUoKSkKKyAgICB7IH0KKworICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIobV9p
ZGVudGlmaWVyKSk7CisgICAgICAgIGVuY29kZXIgPDwgbV9pZGVudGlmaWVyOworICAgIH0KKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBP
cHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcjsKKyAgICAgICAgZGVjb2RlciA+PiBpZGVudGlm
aWVyOworICAgICAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgICAgICBBU1NFUlQoaXNWYWxpZElkZW50aWZpZXIoKmlkZW50aWZpZXIpKTsK
KyAgICAgICAgcmV0dXJuIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmllciB9
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVu
dGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIg
PT0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0
IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1faWRlbnRpZmllciA+IG90aGVyLm1faWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBi
b29sIG9wZXJhdG9yPj0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID49IG90aGVyLm1faWRlbnRp
ZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZp
ZXIgPCBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcjw9KGNv
bnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1faWRlbnRpZmllciA8PSBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciAhPSBvdGhlci5tX2lk
ZW50aWZpZXI7CisgICAgfQorCisgICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgaW5jcmVt
ZW50KCkKKyAgICB7CisgICAgICAgICsrbV9pZGVudGlmaWVyOworICAgICAgICByZXR1cm4gKnRo
aXM7CisgICAgfQorCisgICAgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciBuZXh0KCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKG1faWRlbnRp
ZmllciArIDEpOworICAgIH0KKworICAgIHVpbnQ2NF90IHRvVUludDY0KCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1faWRlbnRpZmllcik7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBNb25vdG9u
aWNPYmplY3RJZGVudGlmaWVyPFU+IG1ha2VNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2
NF90KTsKKyAgICBmcmllbmQgc3RydWN0IEhhc2hUcmFpdHM8TW9ub3RvbmljT2JqZWN0SWRlbnRp
Zmllcj47CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIHN0cnVjdCBNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVySGFzaDsKKworICAgIHN0YXRpYyB1aW50NjRfdCBoYXNoVGFibGVEZWxl
dGVkVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVy
KSB7IHJldHVybiBpZGVudGlmaWVyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisKKyAg
ICBleHBsaWNpdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIp
CisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBNb25vdG9uaWNP
YmplY3RJZGVudGlmaWVyPFQ+JiBpZGVudGlmaWVyKQoreworICAgIHRzIDw8IGlkZW50aWZpZXIu
dG9VSW50NjQoKTsKKyAgICByZXR1cm4gdHM7Cit9CisKK2VudW0gVHJhbnNhY3Rpb25JRFR5cGUg
eyB9OwordXNpbmcgVHJhbnNhY3Rpb25JRCA9IE1vbm90b25pY09iamVjdElkZW50aWZpZXI8VHJh
bnNhY3Rpb25JRFR5cGU+OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9W
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggNTBhOGY5ZTZiMzNkY2JhYzE2ZGY5NmNl
NDJmOTIzMjc4OTZiMGVlOS4uMGQ3Nzg4YmZmYWI5YTEzZGMwNjdiMmM2OTExYzg0ZDBjYWFkM2Yy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WZWxvY2l0eURhdGEu
aD4KQEAgLTQ2LDcgKzQ3LDcgQEAgY2xhc3MgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyB7
CiBwdWJsaWM6CiAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbygpID0gZGVmYXVsdDsK
IAotICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNj
dXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29udGVudElu
c2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50
UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBv
YnNjdXJlZEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRT
YWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3RhdGUsIGJvb2wgaXNG
aXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0lu
dGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xs
YWJsZUFuY2VzdG9yVmlldywgY29uc3QgV2ViQ29yZTo6VmVsb2NpdHlEYXRhJiBzY3JvbGxWZWxv
Y2l0eSwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCisgICAgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250
ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb250ZW50SW5zZXRzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lu
cHV0Vmlld0JvdW5kcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0
aW9uUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBj
b25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgdW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBk
b3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3
Vmlld1NpemUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9v
bCBhbGxvd1Nocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3
LCBjb25zdCBXZWJDb3JlOjpWZWxvY2l0eURhdGEmIHNjcm9sbFZlbG9jaXR5LCBUcmFuc2FjdGlv
bklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICA6IG1fZXhwb3NlZENvbnRl
bnRSZWN0KGV4cG9zZWRDb250ZW50UmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50
UmVjdCh1bm9ic2N1cmVkQ29udGVudFJlY3QpCiAgICAgICAgICwgbV9jb250ZW50SW5zZXRzKGNv
bnRlbnRJbnNldHMpCkBAIC04Miw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7IH0KICAgICBib29sIGFsbG93U2hyaW5rVG9G
aXQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U2hyaW5rVG9GaXQ7IH0KICAgICBib29sIGVuY2xv
c2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NlZElu
U2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsgfQotICAgIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFu
c2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsg
fQorICAgIFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOyB9CiAKICAgICBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmVsb2NpdHkubGFzdFVwZGF0
ZVRpbWU7IH0KIApAQCAtMTAxLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQgbV9vYnNjdXJlZEluc2V0czsKICAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCBtX3Vub2JzY3VyZWRTYWZlQXJlYUluc2V0czsKICAgICBXZWJDb3JlOjpWZWxvY2l0eURhdGEg
bV9zY3JvbGxWZWxvY2l0eTsKLSAgICB1aW50NjRfdCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlv
bklEIHsgMCB9OworICAgIFRyYW5zYWN0aW9uSUQgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25J
RDsKICAgICBkb3VibGUgbV9zY2FsZSB7IC0xIH07CiAgICAgYm9vbCBtX2luU3RhYmxlU3RhdGUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggY2RlMmM5ODk4Yjk3MmVmNDc1Y2Q2YTM2ODU2MjI4ZjQ2ZjdhMjU3Yi4uOWEzN2U1ZjIx
ZjZjNDc4NjA4NTFjNWNkOTQzM2NmMzJlMzkwMDNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMTYsNyArMzE2LDcgQEAgQGltcGxl
bWVudGF0aW9uIFdLV2ViVmlldyB7CiAKICAgICBCT09MIF9oYXNDb21taXR0ZWRMb2FkRm9yTWFp
bkZyYW1lOwogICAgIEJPT0wgX25lZWRzUmVzZXRWaWV3U3RhdGVBZnRlckNvbW1pdExvYWRGb3JN
YWluRnJhbWU7Ci0gICAgdWludDY0X3QgX2ZpcnN0UGFpbnRBZnRlckNvbW1pdExvYWRUcmFuc2Fj
dGlvbklEOworICAgIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBfZmlyc3RQYWludEFmdGVyQ29tbWl0
TG9hZFRyYW5zYWN0aW9uSUQ7CiAgICAgV2ViS2l0OjpEeW5hbWljVmlld3BvcnRVcGRhdGVNb2Rl
IF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOwogICAgIFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZUlEIF9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogICAgIENB
VHJhbnNmb3JtM0QgX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzOwpAQCAtMzMx
LDcgKzMzMSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXcgewogICAgIFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50IF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZDsKIAogICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UG9pbnQ+IF91bm9ic2N1cmVkQ2VudGVyVG9SZXN0b3JlOwotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBfZmlyc3RUcmFuc2FjdGlvbklEQWZ0ZXJQYWdlUmVzdG9yZTsKKyAgICBP
cHRpb25hbDxXZWJLaXQ6OlRyYW5zYWN0aW9uSUQ+IF9maXJzdFRyYW5zYWN0aW9uSURBZnRlclBh
Z2VSZXN0b3JlOwogICAgIGRvdWJsZSBfc2NhbGVUb1Jlc3RvcmU7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IF9nZXN0dXJlQ29udHJvbGxlcjsK
QEAgLTE4ODEsNyArMTg4MSw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcE9yRGlkRXhpdAog
ICAgIF9mcm96ZW5WaXNpYmxlQ29udGVudFJlY3QgPSBXVEY6Om51bGxvcHQ7CiAgICAgX2Zyb3pl
blVub2JzY3VyZWRDb250ZW50UmVjdCA9IFdURjo6bnVsbG9wdDsKIAotICAgIF9maXJzdFBhaW50
QWZ0ZXJDb21taXRMb2FkVHJhbnNhY3Rpb25JRCA9IDA7CisgICAgX2ZpcnN0UGFpbnRBZnRlckNv
bW1pdExvYWRUcmFuc2FjdGlvbklEID0geyB9OwogICAgIF9maXJzdFRyYW5zYWN0aW9uSURBZnRl
clBhZ2VSZXN0b3JlID0gV1RGOjpudWxsb3B0OwogCiAgICAgX2hhc1NjaGVkdWxlZFZpc2libGVS
ZWN0VXBkYXRlID0gTk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaAppbmRleCBmOTRhZDNmODZhNzY5MzNjNjExMTIyYjhlODg2Yjg1ZjFiMTJiY2U4Li41
NTY1OTFlNzE1Y2UyYjRkN2M1NTNlMGU5NTgwMjQ4N2FjN2ZhMDg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVI
b3N0LmgiCisjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KQEAgLTQ5LDggKzUwLDggQEAgcHVibGljOgogICAgIHZvaWQgYWNjZWxl
cmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtl
eSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRp
b25EaWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpOwogCi0gICAgdWlu
dDY0X3QgbmV4dExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BlbmRp
bmdMYXllclRyZWVUcmFuc2FjdGlvbklEICsgMTsgfQotICAgIHVpbnQ2NF90IGxhc3RDb21taXR0
ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbklE
Rm9yUGVuZGluZ0NBQ29tbWl0OyB9CisgICAgVHJhbnNhY3Rpb25JRCBuZXh0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9u
SUQubmV4dCgpOyB9CisgICAgVHJhbnNhY3Rpb25JRCBsYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJh
bnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JREZvclBlbmRpbmdDQUNv
bW1pdDsgfQogCiAgICAgdm9pZCBkaWRSZWZyZXNoRGlzcGxheSgpOwogICAgIApAQCAtOTYsNyAr
OTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
Ci0gICAgdm9pZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpOwor
ICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZShUcmFuc2FjdGlvbklEKTsKICAgICB2b2lkIGNv
bW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIGNvbnN0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24mKTsKICAgICAKICAgICB2b2lkIHNl
bmRVcGRhdGVHZW9tZXRyeSgpOwpAQCAtMTEyLDEwICsxMTMsMTAgQEAgcHJpdmF0ZToKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gbV90aWxlTWFwSG9zdExheWVyOwogICAgIFJldGFpblB0cjxDQUxh
eWVyPiBtX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXI7CiAKLSAgICB1aW50NjRfdCBtX3BlbmRp
bmdMYXllclRyZWVUcmFuc2FjdGlvbklEIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fbGFzdFZpc2li
bGVUcmFuc2FjdGlvbklEIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fdHJhbnNhY3Rpb25JREZvclBl
bmRpbmdDQUNvbW1pdCB7IDAgfTsKLSAgICB1aW50NjRfdCBtX3RyYW5zYWN0aW9uSURGb3JVbmhp
ZGluZ0NvbnRlbnQgeyAwIH07CisgICAgVHJhbnNhY3Rpb25JRCBtX3BlbmRpbmdMYXllclRyZWVU
cmFuc2FjdGlvbklEOworICAgIFRyYW5zYWN0aW9uSUQgbV9sYXN0VmlzaWJsZVRyYW5zYWN0aW9u
SUQ7CisgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0aW9uSURGb3JQZW5kaW5nQ0FDb21taXQ7
CisgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0aW9uSURGb3JVbmhpZGluZ0NvbnRlbnQ7CiAg
ICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEIHsgQWN0aXZp
dHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFj
a3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRmNmY1YWE5MDkzOTY5OWIwNDQzMDIxZmI4NGNhNjUyNjQ3
YTY4Y2YuLjA0ZDVkMTQyMjZmNWJlOGFmYmRhYzZkYjFmYTFhNjg3ZmJkMDZhNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yMSw2ICsyMSw2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgOiBEcmF3aW5nQXJlYVByb3h5IHsKLSAgICB2
b2lkIFdpbGxDb21taXRMYXllclRyZWUodWludDY0X3QgdHJhbnNhY3Rpb25JRCkKKyAgICB2b2lk
IFdpbGxDb21taXRMYXllclRyZWUoV2ViS2l0OjpUcmFuc2FjdGlvbklEIHRyYW5zYWN0aW9uSUQp
CiAgICAgdm9pZCBDb21taXRMYXllclRyZWUoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiBsYXllclRyZWVUcmFuc2FjdGlvbiwgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uIHNjcm9sbGluZ1RyZWVUcmFuc2FjdGlvbikKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggNjBmMDJjNjEwZmNk
OTg4MzA2MzljNTdiM2U5ZDYxZmYxZmQ1MjVmZC4uZWM4NGQzZmY5MDhiNWIzNWRmM2JjZDA1Yjgz
OTQyZDRmODgwYjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0KQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OnNlbmRVcGRhdGVHZW9tZXRyeSgpCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRV
cGRhdGVHZW9tZXRyeSA9IHRydWU7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eTo6d2lsbENvbW1pdExheWVyVHJlZSh1aW50NjRfdCB0cmFuc2FjdGlvbklEKQordm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKFRy
YW5zYWN0aW9uSUQgdHJhbnNhY3Rpb25JRCkKIHsKICAgICBtX3BlbmRpbmdMYXllclRyZWVUcmFu
c2FjdGlvbklEID0gdHJhbnNhY3Rpb25JRDsKIH0KQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFucwogICAgIExPRyhSZW1vdGVMYXllclRyZWUsICIlcyIsIGxheWVyVHJl
ZVRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uKCkuZGF0YSgpKTsKICAgICBMT0coUmVtb3RlTGF5ZXJU
cmVlLCAiJXMiLCBzY3JvbGxpbmdUcmVlVHJhbnNhY3Rpb24uZGVzY3JpcHRpb24oKS5kYXRhKCkp
OwogCi0gICAgQVNTRVJUKGxheWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSA9PSBt
X2xhc3RWaXNpYmxlVHJhbnNhY3Rpb25JRCArIDEpOworICAgIEFTU0VSVChsYXllclRyZWVUcmFu
c2FjdGlvbi50cmFuc2FjdGlvbklEKCkgPT0gbV9sYXN0VmlzaWJsZVRyYW5zYWN0aW9uSUQubmV4
dCgpKTsKICAgICBtX3RyYW5zYWN0aW9uSURGb3JQZW5kaW5nQ0FDb21taXQgPSBsYXllclRyZWVU
cmFuc2FjdGlvbi50cmFuc2FjdGlvbklEKCk7CiAgICAgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQg
PSBsYXllclRyZWVUcmFuc2FjdGlvbi5hY3Rpdml0eVN0YXRlQ2hhbmdlSUQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTQxMzNjNjI4ZDY3NmU3ZWVj
MzUwYzMxOGRmMmY4ODM2ODM5NTIzYi4uNmI4ODhkODZjNDQ5MTYyNGQzYTg2MDZiYjZhZmRlMWUx
MmQ3ZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
MDE1LDggKzcwMTUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRl
UmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQg
PSAwOwotICAgIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZSA9IFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8oKTsKKyAgICBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVy
RGlkQ29tbWl0TG9hZCA9IHsgfTsKKyAgICBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUg
PSB7IH07CiAgICAgbV9oYXNOZXR3b3JrUmVxdWVzdHNPblN1c3BlbmRlZCA9IGZhbHNlOwogICAg
IG1faXNLZXlib2FyZEFuaW1hdGluZ0luID0gZmFsc2U7CiAgICAgbV9pc1Njcm9sbGluZ09yWm9v
bWluZyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3
Y2Y4ODhjYjJhMTYwMDA4NzJiM2E3NTQyNjU1MWI2NDMzYTg5ODU1Li43YmY4YWFlYjAyMTFhYjBk
NWE0MjI5MmJlNzI5ZjAyZTA4NDU1NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlN1c3BlbmRlZFBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgIlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oIgogI2luY2x1ZGUgIlN5
c3RlbVByZXZpZXdDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2lu
Y2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIlZpc2libGVXZWJQ
YWdlQ291bnRlci5oIgpAQCAtNjY1LDcgKzY2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERl
dmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uOyB9CiAgICAgdm9pZCBzZXRPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzPiYpOwotICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZSh1aW50NjRfdCB0cmFuc2Fj
dGlvbklEKTsKKyAgICB2b2lkIHdpbGxDb21taXRMYXllclRyZWUoVHJhbnNhY3Rpb25JRCk7CiAK
ICAgICB2b2lkIHNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBXZWJD
b3JlOjpUZXh0R3JhbnVsYXJpdHksIHVpbnQzMl90IGdlc3R1cmVUeXBlLCB1aW50MzJfdCBnZXN0
dXJlU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDMyX3QsIHVpbnQzMl90LCB1
aW50MzJfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0
aW9uV2l0aFRvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIHVpbnQzMl90IHRvdWNoZXMs
IGJvb2wgYmFzZUlzU3RhcnQsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCB1aW50MzJfdCwgdWludDMyX3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKQEAg
LTEyMjAsMTIgKzEyMjEsMTIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdn
ZXJlZFpvb21pbmcoKTsKIAogICAgIHZvaWQgcG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9y
bWF0aW9uLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKLSAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRh
cChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXllclRy
ZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKKyAg
ICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9k
aWZpZXI+LCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0
YXJ0LCBXZWJDb3JlOjpQb2ludGVySUQpOwogICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7
CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKLSAgICB2b2lkIGhhbmRsZVRhcChjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwg
dWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOworICAgIHZv
aWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0
OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9u
SWRBdExhc3RUb3VjaFN0YXJ0KTsKICAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdQcmVzcygpOwot
ICAgIHZvaWQgaGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxh
eWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKKyAgICB2b2lkIGhhbmRsZURv
dWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9w
dGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5z
YWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKIAogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJj
aE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBp
bnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmKTsKQEAgLTIxNzMsNyArMjE3NCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gbV9vdmVycmlk
ZVZpZXdwb3J0QXJndW1lbnRzOwogICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gbV9s
YXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlOwotICAgIHVpbnQ2NF90IG1fZmlyc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklkQWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9OworICAgIFRyYW5zYWN0aW9u
SUQgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQ7CiAgICAg
aW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wgbV9oYXNSZWNlaXZl
ZExheWVyVHJlZVRyYW5zYWN0aW9uQWZ0ZXJEaWRDb21taXRMb2FkIHsgdHJ1ZSB9OwogICAgIGJv
b2wgbV9oYXNOZXR3b3JrUmVxdWVzdHNPblN1c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
aW5kZXggZGMwYTNhOWQ0ZWRmNTQwZDY3YmJmOWJkODVhMGNiZGNiNTFjZThlZS4uNWM3OTc2OTAx
MjZmNjYxYTdjOTlhNGU4YzIyMDE1YWYzODI4MThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzgsNiAr
MzgsNyBAQAogI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNp
bXBvcnQgIlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oIgogI2ltcG9ydCAiVGV4dENoZWNr
aW5nQ29udHJvbGxlci5oIgorI2ltcG9ydCAiVHJhbnNhY3Rpb25JRC5oIgogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKICNpbXBvcnQgIldLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCIKICNpbXBvcnQgIldL
QWlyUGxheVJvdXRlUGlja2VyLmgiCkBAIC0yOTIsNyArMjkzLDcgQEAgc3RydWN0IFdLQXV0b0Nv
cnJlY3Rpb25EYXRhIHsKICAgICBCbG9ja1B0cjx2b2lkKDo6V2ViRXZlbnQgKiwgQk9PTCk+IF9r
ZXlXZWJFdmVudEhhbmRsZXI7CiAKICAgICBDR1BvaW50IF9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlv
bjsKLSAgICB1aW50NjRfdCBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQ7
CisgICAgV2ViS2l0OjpUcmFuc2FjdGlvbklEIF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0
VG91Y2hTdGFydDsKIAogICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBfbGFzdFNl
bGVjdGlvbkRyYXdpbmdJbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA5ODRiMjEzYjUyYmVlNmU3
ZjA1ZjllNDdhMWFiN2I0OTM2NTE5YWEwLi45ZjQzN2UwMjI1ZTFlNTU2YTZhNzA1MjljZGUyMDFj
ZWIzNWU1MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTkwOCw3ICs5MDgsNyBAQCAtICh2b2lkKWNs
ZWFudXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3Vj
aEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgogCi0gICAgX2xheWVyVHJl
ZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0ID0gMDsKKyAgICBfbGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQgPSB7IH07CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFD
VElPTikKICAgICBbZXhpc3RpbmdMb2NhbERyYWdTZXNzaW9uQ29udGV4dChfZHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLmRyYWdTZXNzaW9uKCkpIGNsZWFuVXBUZW1wb3JhcnlEaXJlY3Rvcmllc107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRl
eCA5YWVhMzMxNTdjN2IwMGUwMTE4Njk0N2IwNmZkZWVlZTBhMmFiZGU4Li44ZjU2MjIxZjhiZmQ1
MTdkMzYzNWZiY2M0NzY4MmNhZjZiNTc0OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTgxMyw3ICs4MTMsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBwb3NpdGlvbiwgYgogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQb3Rl
bnRpYWxUYXBBdFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24sIHNob3VsZFJlcXVlc3RNYWdu
aWZpY2F0aW9uSW5mb3JtYXRpb24pLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojpjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCwgV2Vi
Q29yZTo6UG9pbnRlcklEIHBvaW50ZXJJZCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQb3Rl
bnRpYWxUYXAoT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBUcmFuc2Fj
dGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBXZWJDb3JlOjpQ
b2ludGVySUQgcG9pbnRlcklkKQogewogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpDb21taXRQb3RlbnRpYWxUYXAobW9kaWZpZXJzLCBsYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCwgcG9pbnRlcklkKSwgbV9wYWdlSUQpOwogfQpAQCAtODI4LDcgKzgy
OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlRhcEhpZ2hsaWdodEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiks
IG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRhcChjb25zdCBGbG9h
dFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJz
LCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVUYXAoY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlv
blNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgVHJhbnNhY3Rpb25JRCBsYXllclRy
ZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkKIHsKICAgICBwcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlVGFwKHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbiksIG1v
ZGlmaWVycywgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJ
RCk7CiB9CkBAIC04MzgsNyArODM4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY29nbml6
ZUxvbmdQcmVzcygpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJl
Y29nbml6ZUxvbmdQcmVzcygpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2
NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQordm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVy
cywgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCkK
IHsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlRG91YmxlVGFw
Rm9yRG91YmxlQ2xpY2tBdFBvaW50KHBvaW50LCBtb2RpZmllcnMsIGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0KSwgbV9wYWdlSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGEyYjE5MmZmODc1ZDVmMDVh
ZDJiZWMxNGE5YWVjMzQyNDMwMmNkOS4uYmRhYjRmYmQ1MzMyNGIwNDA0YzQ1YjZhNjZmNDBlZWRm
NjA1N2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xOTQwLDYgKzE5NDAsNyBAQAogCQkwRjA4Q0Y1MzFENjNDMTQwMDBCNDhERjEg
LyogV0tGb3JtU2VsZWN0UG9wb3Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0Zvcm1TZWxlY3RQb3BvdmVyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9w
b3Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjBDMzY1NzE4QzA1MUJBMDBG
NjA3RDcgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZUhvc3RJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGMEMzNjVCMThDMDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTQyMkUzOUJFNjAwOEJENTcwIC8qIFRyYW5z
YWN0aW9uSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhbnNhY3Rpb25J
RC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NEFBMjE0MkE0Q0I2MDAzOTI1
MEYgLyogQVBJR2VvbWV0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJ
R2VvbWV0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNzRBQTYxNDJBQUM2
MTAwMzkyNTBGIC8qIFdLR2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
M0M3MjU3MTk2RjVGNTAwMEFFREQwQyAvKiBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0luc3BlY3RvckhpZ2hsaWdo
dFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjU2LDYgKzUyNTcsNyBA
QAogCQkJCTJGRDQzQjkxMUZBMDA2QTEwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi8s
CiAJCQkJMkY4MDlERDUxRkJEMUJDOTAwNUZFNjNBIC8qIFRvdWNoQmFyTWVudUl0ZW1EYXRhLmNw
cCAqLywKIAkJCQkyRjgwOUREOTFGQkQxQkYyMDA1RkU2M0EgLyogVG91Y2hCYXJNZW51SXRlbURh
dGEuaCAqLywKKwkJCQkwRjExNzgxNDIyRTM5QkU2MDA4QkQ1NzAgLyogVHJhbnNhY3Rpb25JRC5o
ICovLAogCQkJCTVDNEI5RDhBMjEwQThDNDYwMDhGMTREMSAvKiBVbmRvT3JSZWRvLmggKi8sCiAJ
CQkJMUE2NDI0NUQxMkRFMjlBMTAwQ0FBRTJDIC8qIFVwZGF0ZUluZm8uY3BwICovLAogCQkJCTFB
NjQyNDVDMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmggKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGE2ZDdiODA2
NWY3Nzg3YzU0MTA2Y2FiNDYxNTY0ZjY1YTdiM2JkOGMuLmRlNzExNmVmN2MwMjEzNTQ3ZWM1ZmQw
ODEzZDM3NjdiNDNkZTQ5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlJiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKCk7CiAK
LSAgICB1aW50NjRfdCBuZXh0VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVu
dFRyYW5zYWN0aW9uSUQgKyAxOyB9Ci0gICAgdWludDY0X3QgbGFzdENvbW1pdHRlZFRyYW5zYWN0
aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEOyB9CisgICAgVHJh
bnNhY3Rpb25JRCBuZXh0VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRy
YW5zYWN0aW9uSUQubmV4dCgpOyB9CisgICAgVHJhbnNhY3Rpb25JRCBsYXN0Q29tbWl0dGVkVHJh
bnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0aW9uSUQ7IH0KIAog
cHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQpAQCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6
CiAKICAgICBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIG1haW5GcmFtZVRpbGVkQmFja2luZygpIGNv
bnN0OwogCi0gICAgdWludDY0X3QgdGFrZU5leHRUcmFuc2FjdGlvbklEKCkgeyByZXR1cm4gKytt
X2N1cnJlbnRUcmFuc2FjdGlvbklEOyB9CisgICAgVHJhbnNhY3Rpb25JRCB0YWtlTmV4dFRyYW5z
YWN0aW9uSUQoKSB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklELmluY3JlbWVudCgpOyB9
CiAKICAgICBib29sIG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpIG92
ZXJyaWRlOwogCkBAIC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcio+IG1fZGlzcGxheVJlZnJlc2hNb25pdG9y
czsKICAgICBIYXNoU2V0PFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcio+KiBt
X2Rpc3BsYXlSZWZyZXNoTW9uaXRvcnNUb05vdGlmeSB7IG51bGxwdHIgfTsKIAotICAgIHVpbnQ2
NF90IG1fY3VycmVudFRyYW5zYWN0aW9uSUQgeyAwIH07CisgICAgVHJhbnNhY3Rpb25JRCBtX2N1
cnJlbnRUcmFuc2FjdGlvbklEOwogICAgIFZlY3RvcjxSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6VHJhbnNhY3Rpb25DYWxsYmFja0lEPiBtX3BlbmRpbmdDYWxsYmFja0lEczsKICAgICBBY3Rp
dml0eVN0YXRlQ2hhbmdlSUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRl
Q2hhbmdlQXN5bmNocm9ub3VzIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oCmluZGV4IDcxYjM4ZjYxYWIxOTUwNTViNDQ3ZTg3YmZmZjdlOTY0MDZkZWVh
OWMuLjNiNDY2Mzk3OTlhZDY3ZjA2ZTU5OWMzOTI1MDdhZjY1Yjc2MmQ5Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgiCiAjaW5jbHVk
ZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KQEAgLTE2Nyw4ICsxNjgsOCBAQCBwdWJs
aWM6CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY3JlYXRlU2VsZWN0aW9uU25hcHNob3Qo
KSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdWludDY0X3QgZmlyc3RM
YXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkKCkgY29uc3QgeyByZXR1cm4g
bV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQ7IH0KLSAgICB2
b2lkIHNldEZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCh1aW50
NjRfdCB0cmFuc2FjdGlvbklEKSB7IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJE
aWRDb21taXRMb2FkID0gdHJhbnNhY3Rpb25JRDsgfQorICAgIFRyYW5zYWN0aW9uSUQgZmlyc3RM
YXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkKCkgY29uc3QgeyByZXR1cm4g
bV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQ7IH0KKyAgICB2
b2lkIHNldEZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZChUcmFu
c2FjdGlvbklEIHRyYW5zYWN0aW9uSUQpIHsgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURB
ZnRlckRpZENvbW1pdExvYWQgPSB0cmFuc2FjdGlvbklEOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToK
QEAgLTE5MCw3ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAg
fTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdWludDY0X3QgbV9maXJzdExheWVy
VHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CisgICAgVHJhbnNhY3Rp
b25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZDsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDk1ZjJlMDVlZmJjMzFmNzBiMWY0MmIzZDllYjQ2MDliNGM1MzkxZWYuLjUxODdhZjFhZTJk
MjYwM2Y2MTViZTE5MDlmYTg3OTI0YTI1MTUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYyOCwxNSArNjI4LDE1IEBAIHB1YmxpYzoKICAgICBi
b29sIGFsbG93c1VzZXJTY2FsaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTdGFibGVQYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvcjsgfQog
Ci0gICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZCk7CisgICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFuc2FjdGlvbklEIGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkKTsKICAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24o
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgYm9vbCBzaG91
bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uKTsKLSAgICB2b2lkIGNvbW1pdFBvdGVu
dGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBs
YXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKKyAgICB2b2lk
IGNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+
LCBUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2lu
dGVySUQpOwogICAgIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCk7CiAgICAgdm9pZCBj
YW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcEluRnJhbWUo
V2ViRnJhbWUmKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBkaWRSZWNvZ25p
emVMb25nUHJlc3MoKTsKLSAgICB2b2lkIGhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50
OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKTsKKyAgICB2
b2lkIGhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFRyYW5zYWN0
aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpOwogCiAgICAgdm9pZCBpbnNwZWN0b3JO
b2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAg
ICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYpOwpAQCAtMTg3Nyw3ICsxODc3LDcgQEAgcHJpdmF0ZToKICAgICBGb2N1c2Vk
RWxlbWVudElkZW50aWZpZXIgbV9jdXJyZW50Rm9jdXNlZEVsZW1lbnRJZGVudGlmaWVyIHsgMCB9
OwogICAgIE9wdGlvbmFsPER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRD4gbV9wZW5kaW5nRHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogICAgIGRvdWJsZSBtX2xhc3RUcmFuc2FjdGlvblBh
Z2VTY2FsZUZhY3RvciB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2xhc3RUcmFuc2FjdGlvbklEV2l0
aFNjYWxlQ2hhbmdlIHsgMCB9OworICAgIFRyYW5zYWN0aW9uSUQgbV9sYXN0VHJhbnNhY3Rpb25J
RFdpdGhTY2FsZUNoYW5nZTsKIAogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24mJik+IG1fcGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25J
bmZvcm1hdGlvblJlcGx5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxOTNiY2UxMTM3NzdlMGM0YzRm
YTA3NWZiM2RhOWY0ZTE1YzAyMGFlLi5jZDNmMGUyYzkzMTU1MzNkZjQ5ZmQwODNhOTU0MmYwNDJk
YjdmMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUzLDEzICs1MywxMyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKE9wdGlv
bmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCiAgICAgRHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNv
cmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0
YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1
cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJl
ZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24s
IHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKIAotICAgIEhhbmRsZVRhcChX
ZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlm
aWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAg
IEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCwgYm9vbCBzaG91bGRSZXF1ZXN0
TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uKQotICAgIENvbW1pdFBvdGVudGlhbFRhcChPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExh
eWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCisgICAg
Q29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4g
bW9kaWZpZXJzLCBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiAgICAgQ2FuY2VsUG90ZW50aWFsVGFw
KCkKICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3MoKQotICAgIEhh
bmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2
NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIEhhbmRsZURvdWJsZVRhcEZvckRv
dWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktp
dDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBs
YXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICBJbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRU
b1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQpCiAgICAgSW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQogICAgIEJsdXJG
b2N1c2VkRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIyOTUyZTNiYmZmNWZmMzI3NTYwNjQwNTExZGEzZWEz
YjRkY2FhYWIuLmViMWZlYjFjY2Q4YWI0N2I5ODJkNTY5MDljNDAxNzRmMTI2Mzk5MTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC04MTUsNyArODE1LDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNr
KE5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZToKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbXBsZXRlU3ludGhldGljQ2xpY2soKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0
PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKK3ZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2lu
dCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBUcmFuc2FjdGlvbklE
IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogewogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRQ
b2ludDsKICAgICBOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhwb2ludCwgYWRqdXN0ZWRQb2ludCk7CkBA
IC04MzUsNyArODM1LDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVUYXAoY29uc3QgSW50UG9pbnQm
IHBvaW50LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2QKICAgICAgICAgaGFuZGxl
U3ludGhldGljQ2xpY2soKm5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9k
aWZpZXJzKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlj
a0F0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlm
aWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQordm9p
ZCBXZWJQYWdlOjpoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoY29uc3QgSW50
UG9pbnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFRy
YW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiB7CiAgICAgRmxvYXRQb2lu
dCBhZGp1c3RlZFBvaW50OwogICAgIGF1dG8qIG5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGljayA9
IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrRXZlbnQocG9p
bnQsIGFkanVzdGVkUG9pbnQpOwpAQCAtMTA3Myw3ICsxMDczLDcgQEAgdm9pZCBXZWJQYWdlOjpw
b3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2kKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcChP
cHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXll
clRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQordm9pZCBX
ZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4g
bW9kaWZpZXJzLCBUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJD
b3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewogICAgIGF1dG8gaW52YWxpZFRhcmdldEZvclNp
bmdsZUNsaWNrID0gIW1fcG90ZW50aWFsVGFwTm9kZTsKICAgICBpZiAoIWludmFsaWRUYXJnZXRG
b3JTaW5nbGVDbGljaykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377226</attachid>
            <date>2019-08-25 21:32:25 -0700</date>
            <delta_ts>2019-08-25 23:16:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199983-20190825213224.patch</filename>
            <type>text/plain</type>
            <size>41027</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1MWVjOGVhN2YyMDlkYzM1
MWUwNDU0MTUyZTMzOTM4ZDM2ZWNhMmEuLjFkZTQ0OTEzMzA2MDA5YWRiN2UwYTdmMWE5OGFiMjZi
ODc1NzFlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMDgtMjUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIE1ha2Ug
YSBzdHJvbmdseS10eXBlZCBUcmFuc2FjdGlvbklEIHRvIHJlcGxhY2UgdWludDY0X3QgdHJhbnNh
Y3Rpb25JRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKyAgICAgICAgCisg
ICAgICAgIEFkZCBUcmFuc2FjdGlvbklEIHdoaWNoIGlzIGEgTW9ub3RvbmljT2JqZWN0SWRlbnRp
ZmllcjxUcmFuc2FjdGlvbklEVHlwZT4uIFRoaXMgaXMgbW9kZWxlZAorICAgICAgICBhZnRlciBP
YmplY3RJZGVudGlmaWVyPD4sIGJ1dCB3ZSBjYW4ndCB1c2UgdGhhdCBiZWNhdXNlIGl0IGRvZXNu
J3QgaGF2ZSBhIGd1YXJhbnRlZSBvZgorICAgICAgICB2YWx1ZXMgYWx3YXlzIGluY3JlYXNpbmcg
YnkgMSAoYWxsIGRlcml2ZWQgY2xhc3NlcyBzaGFyZSB0aGUgc2FtZSB2YWx1ZSBzb3VyY2UpLiBB
bHNvLCB3ZQorICAgICAgICBuZWVkIGEgcGVyLVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIHNl
dCBvZiB2YWx1ZXMsIGJ1dCBhIHN0YXRpYyBzZWVkIHdvdWxkIGNhdXNlIHZhbHVlcyB0bworICAg
ICAgICBiZSBpbmNyZW1lbnRlZCBieSBhbGwgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFzIGlu
IGEgV2ViUHJvY2Vzcy4KKworICAgICAgICBSZXBsYWNlIGFsbCB0aGUgYmFyZSB1aW50NjRfdCB3
aXRoIFRyYW5zYWN0aW9uSUQsIGZpeGluZyBtZXNzYWdlIGdlbmVyYXRpb24gY29kZWdlbi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnRyYW5zYWN0aW9uSUQgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6c2V0VHJhbnNhY3Rp
b25JRCk6CisgICAgICAgICogU2hhcmVkL1RyYW5zYWN0aW9uSUQuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Ok1vbm90b25pY09iamVjdElkZW50
aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjppc0hh
c2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25p
Y09iamVjdElkZW50aWZpZXI6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09i
amVjdElkZW50aWZpZXI6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25v
dG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpvcGVyYXRvcj49IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6b3BlcmF0b3I8PSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6Om9wZXJhdG9y
IT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpp
bmNyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyOjpu
ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjo6
dG9VSW50NjQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNb25vdG9uaWNPYmplY3RJZGVudGlm
aWVyOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9ub3RvbmljT2Jq
ZWN0SWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1v
bm90b25pY09iamVjdElkZW50aWZpZXI6Omhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1vbm90b25pY09iamVjdElkZW50aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbzo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChX
ZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86Omxhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBPckRpZEV4aXRdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3aWxsQ29tbWl0
TGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21taXRQb3RlbnRpYWxUYXApOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVRhcCk6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bmV4dFRyYW5zYWN0aW9uSUQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bGFz
dENvbW1pdHRlZFRyYW5zYWN0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6dGFrZU5leHRUcmFuc2FjdGlvbklEKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpzZXRGaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURB
ZnRlckRpZENvbW1pdExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
YW5kbGVQb3RlbnRpYWxEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXApOgorCiAyMDE5LTA4LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBDYWNoZVN0b3JhZ2VF
bmdpbmVDYWNoZXMncyBkZWNvZGVDYWNoZXNOYW1lcygpIG1vcmUgcm9idXN0IGFnYWluc3QgYmFk
IGlucHV0IGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4
IDAxMTU2YWYxMjcxZWJjNWNjMGNkY2VmYzQyNjViYThiM2FmYjE2N2EuLjc2ZmVjYzI4MDY0Mjk5
ZDA1OWEyMjI5OGUzMjNmNTYxN2Y2ZGMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQpAQCAtMjE3LDYgKzIxNyw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9u
c19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlE
JywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKKyAgICAgICAgJ1dl
YktpdDo6VHJhbnNhY3Rpb25JRCcsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDk1NTEzZjQ3OTgyZmQ2N2VlNWY5OGRkNzk5NmM4NTk4
ZjFmNDYzZjIuLmEwZmQ3MDYxZThjMDk5YzNkY2ZlN2M1ODgxNTU0NDVhMzBhOGM0YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiVHJh
bnNhY3Rpb25JRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5o
PgpAQCAtMjY0LDggKzI2NSw4IEBAIHB1YmxpYzoKICAgICBib29sIGF2b2lkc1Vuc2FmZUFyZWEo
KSBjb25zdCB7IHJldHVybiBtX2F2b2lkc1Vuc2FmZUFyZWE7IH0KICAgICB2b2lkIHNldEF2b2lk
c1Vuc2FmZUFyZWEoYm9vbCBhdm9pZHNVbnNhZmVBcmVhKSB7IG1fYXZvaWRzVW5zYWZlQXJlYSA9
IGF2b2lkc1Vuc2FmZUFyZWE7IH0KIAotICAgIHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSUQ7IH0KLSAgICB2b2lkIHNldFRyYW5zYWN0aW9uSUQo
dWludDY0X3QgdHJhbnNhY3Rpb25JRCkgeyBtX3RyYW5zYWN0aW9uSUQgPSB0cmFuc2FjdGlvbklE
OyB9CisgICAgVHJhbnNhY3Rpb25JRCB0cmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2FjdGlvbklEOyB9CisgICAgdm9pZCBzZXRUcmFuc2FjdGlvbklEKFRyYW5zYWN0aW9uSUQg
dHJhbnNhY3Rpb25JRCkgeyBtX3RyYW5zYWN0aW9uSUQgPSB0cmFuc2FjdGlvbklEOyB9CiAKICAg
ICBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgYWN0aXZpdHlTdGF0ZUNoYW5nZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQ7IH0KICAgICB2b2lkIHNldEFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRChBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgYWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7
IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEID0gYWN0aXZpdHlTdGF0ZUNoYW5nZUlEOyB9CkBAIC0z
MDksNyArMzEwLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9pbml0aWFsU2NhbGVGYWN0b3Ig
eyAxIH07CiAgICAgZG91YmxlIG1fdmlld3BvcnRNZXRhVGFnV2lkdGggeyAtMSB9OwogICAgIHVp
bnQ2NF90IG1fcmVuZGVyVHJlZVNpemUgeyAwIH07Ci0gICAgdWludDY0X3QgbV90cmFuc2FjdGlv
bklEIHsgMCB9OworICAgIFRyYW5zYWN0aW9uSUQgbV90cmFuc2FjdGlvbklEOwogICAgIEFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VJRCB7IEFjdGl2aXR5U3RhdGVD
aGFuZ2VBc3luY2hyb25vdXMgfTsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0
b25lPiBtX25ld2x5UmVhY2hlZFBhaW50aW5nTWlsZXN0b25lczsKICAgICBib29sIG1fc2NhbGVX
YXNTZXRCeVVJUHJvY2VzcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9UcmFuc2FjdGlvbklELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UcmFuc2FjdGlvbklE
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGMxNmM3NzhhMGJhMDAzYjFlMzY2ZmE0MDYyMmU1NjlhZDAyMmZmMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RyYW5zYWN0aW9uSUQuaApA
QCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1vbm90b25pY09iamVjdElkZW50aWZpZXIgeworcHVi
bGljOgorICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkK
KyAgICAgICAgOiBtX2lkZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgeyB9
CisKKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAg
ICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1vbm90b25pY09iamVjdElkZW50aWZpZXI+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+
IGlkZW50aWZpZXI7CisgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICAgICAgaWYg
KCFpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAg
QVNTRVJUKGlzVmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBN
b25vdG9uaWNPYmplY3RJZGVudGlmaWVyIHsgKmlkZW50aWZpZXIgfTsKKyAgICB9CisKKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyID09IG90aGVyLm1faWRlbnRp
ZmllcjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBNb25vdG9uaWNPYmplY3RJ
ZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50aWZp
ZXIgPiBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj49KGNv
bnN0IE1vbm90b25pY09iamVjdElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1faWRlbnRpZmllciA+PSBvdGhlci5tX2lkZW50aWZpZXI7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllciYgb3RoZXIp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyIDwgb3RoZXIubV9pZGVu
dGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBNb25vdG9uaWNPYmpl
Y3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lkZW50
aWZpZXIgPD0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2lkZW50aWZpZXIgIT0gb3RoZXIubV9pZGVudGlmaWVyOworICAgIH0K
KworICAgIE1vbm90b25pY09iamVjdElkZW50aWZpZXImIGluY3JlbWVudCgpCisgICAgeworICAg
ICAgICArK21faWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAg
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIgbmV4dCgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcihtX2lkZW50aWZpZXIgKyAxKTsKKyAgICB9
CisKKyAgICB1aW50NjRfdCB0b1VJbnQ2NCgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KKworICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBTdHJpbmc6Om51bWJlcihtX2lkZW50aWZpZXIpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmll
cjxVPiBtYWtlTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCk7CisgICAgZnJpZW5k
IHN0cnVjdCBIYXNoVHJhaXRzPE1vbm90b25pY09iamVjdElkZW50aWZpZXI+OworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBzdHJ1Y3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllckhh
c2g7CisKKyAgICBzdGF0aWMgdWludDY0X3QgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgeyByZXR1
cm4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOyB9CisgICAgc3RhdGljIGJv
b2wgaXNWYWxpZElkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRp
ZmllciAhPSBoYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorCisgICAgZXhwbGljaXQgTW9ub3Rv
bmljT2JqZWN0SWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQorICAgICAgICA6IG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXIgeyAwIH07Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllcjxU
PiYgaWRlbnRpZmllcikKK3sKKyAgICB0cyA8PCBpZGVudGlmaWVyLnRvVUludDY0KCk7CisgICAg
cmV0dXJuIHRzOworfQorCitlbnVtIFRyYW5zYWN0aW9uSURUeXBlIHsgfTsKK3VzaW5nIFRyYW5z
YWN0aW9uSUQgPSBNb25vdG9uaWNPYmplY3RJZGVudGlmaWVyPFRyYW5zYWN0aW9uSURUeXBlPjsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oCmluZGV4IDUwYThmOWU2YjMzZGNiYWMxNmRmOTZjZTQyZjkyMzI3ODk2YjBlZTku
LjBkNzc4OGJmZmFiOWExM2RjMDY3YjJjNjkxMWM4NGQwY2FhZDNmMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUcmFuc2FjdGlvbklELmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0
aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CkBAIC00Niw3ICs0Nyw3
IEBAIGNsYXNzIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oKSA9IGRlZmF1bHQ7CiAKLSAgICBWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRl
bnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbnRlbnRJbnNldHMsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5w
dXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRp
b25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRv
dWJsZSBzY2FsZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdW
aWV3U2l6ZSwgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29s
IGFsbG93U2hyaW5rVG9GaXQsIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcs
IGNvbnN0IFdlYkNvcmU6OlZlbG9jaXR5RGF0YSYgc2Nyb2xsVmVsb2NpdHksIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8oY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYgY29udGVudEluc2V0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBib29s
IGluU3RhYmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlz
Q2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0Zp
dCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywgY29uc3QgV2ViQ29yZTo6
VmVsb2NpdHlEYXRhJiBzY3JvbGxWZWxvY2l0eSwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZCkKICAgICAgICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29u
dGVudFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENv
bnRlbnRSZWN0KQogICAgICAgICAsIG1fY29udGVudEluc2V0cyhjb250ZW50SW5zZXRzKQpAQCAt
ODIsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJ
bnRlcmFjdGl2ZWx5KCkgY29uc3QgeyByZXR1cm4gbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJ
bnRlcmFjdGl2ZWx5OyB9CiAgICAgYm9vbCBhbGxvd1Nocmlua1RvRml0KCkgY29uc3QgeyByZXR1
cm4gbV9hbGxvd1Nocmlua1RvRml0OyB9CiAgICAgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFu
Y2VzdG9yVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXc7IH0KLSAgICB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7IH0KKyAgICBUcmFuc2FjdGlv
bklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGF5
ZXJUcmVlVHJhbnNhY3Rpb25JRDsgfQogCiAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbFZlbG9jaXR5Lmxhc3RVcGRhdGVUaW1lOyB9CiAKQEAgLTEw
MSw3ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50IG1fb2Jz
Y3VyZWRJbnNldHM7CiAgICAgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQgbV91bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHM7CiAgICAgV2ViQ29yZTo6VmVsb2NpdHlEYXRhIG1fc2Nyb2xsVmVsb2NpdHk7
Ci0gICAgdWludDY0X3QgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCB7IDAgfTsKKyAgICBU
cmFuc2FjdGlvbklEIG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7CiAgICAgZG91YmxlIG1f
c2NhbGUgeyAtMSB9OwogICAgIGJvb2wgbV9pblN0YWJsZVN0YXRlIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGUwNzQ0YWY4YjRh
ZGFhODhkZTFkZDFhMjBmNjNlYmZjNWViYjU2M2UuLjhjNDAxZDljMGIxM2QwNmJlNzE5ZWQwNDk5
OTc5ZGE4MGQwMWNjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtMzE2LDcgKzMxNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZp
ZXcgewogCiAgICAgQk9PTCBfaGFzQ29tbWl0dGVkTG9hZEZvck1haW5GcmFtZTsKICAgICBCT09M
IF9uZWVkc1Jlc2V0Vmlld1N0YXRlQWZ0ZXJDb21taXRMb2FkRm9yTWFpbkZyYW1lOwotICAgIHVp
bnQ2NF90IF9maXJzdFBhaW50QWZ0ZXJDb21taXRMb2FkVHJhbnNhY3Rpb25JRDsKKyAgICBXZWJL
aXQ6OlRyYW5zYWN0aW9uSUQgX2ZpcnN0UGFpbnRBZnRlckNvbW1pdExvYWRUcmFuc2FjdGlvbklE
OwogICAgIFdlYktpdDo6RHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSBfZHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZTsKICAgICBXZWJLaXQ6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBfY3Vy
cmVudER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRDsKICAgICBDQVRyYW5zZm9ybTNEIF9yZXNp
emVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50czsKQEAgLTMzMSw3ICszMzEsNyBAQCBAaW1w
bGVtZW50YXRpb24gV0tXZWJWaWV3IHsKICAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCBfb2Jz
Y3VyZWRJbnNldHNXaGVuU2F2ZWQ7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50
PiBfdW5vYnNjdXJlZENlbnRlclRvUmVzdG9yZTsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gX2Zp
cnN0VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmU7CisgICAgT3B0aW9uYWw8V2ViS2l0OjpU
cmFuc2FjdGlvbklEPiBfZmlyc3RUcmFuc2FjdGlvbklEQWZ0ZXJQYWdlUmVzdG9yZTsKICAgICBk
b3VibGUgX3NjYWxlVG9SZXN0b3JlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6Vmll
d0dlc3R1cmVDb250cm9sbGVyPiBfZ2VzdHVyZUNvbnRyb2xsZXI7CkBAIC0xODgzLDcgKzE4ODMs
NyBAQCAtICh2b2lkKV9wcm9jZXNzV2lsbFN3YXBPckRpZEV4aXQKICAgICBfZnJvemVuVmlzaWJs
ZUNvbnRlbnRSZWN0ID0gV1RGOjpudWxsb3B0OwogICAgIF9mcm96ZW5Vbm9ic2N1cmVkQ29udGVu
dFJlY3QgPSBXVEY6Om51bGxvcHQ7CiAKLSAgICBfZmlyc3RQYWludEFmdGVyQ29tbWl0TG9hZFRy
YW5zYWN0aW9uSUQgPSAwOworICAgIF9maXJzdFBhaW50QWZ0ZXJDb21taXRMb2FkVHJhbnNhY3Rp
b25JRCA9IHsgfTsKICAgICBfZmlyc3RUcmFuc2FjdGlvbklEQWZ0ZXJQYWdlUmVzdG9yZSA9IFdU
Rjo6bnVsbG9wdDsKIAogICAgIF9oYXNTY2hlZHVsZWRWaXNpYmxlUmVjdFVwZGF0ZSA9IE5POwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggZjk0
YWQzZjg2YTc2OTMzYzYxMTEyMmI4ZTg4NmI4NWYxYjEyYmNlOC4uNTU2NTkxZTcxNWNlMmI0ZDdj
NTUzZTBlOTU4MDI0ODdhYzdmYTA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUg
IlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CkBA
IC00OSw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
U3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIE1vbm90b25pY1RpbWUg
c3RhcnRUaW1lKTsKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90
IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KTsKIAotICAgIHVpbnQ2NF90IG5leHRMYXllclRy
ZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nTGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRCArIDE7IH0KLSAgICB1aW50NjRfdCBsYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JREZvclBlbmRpbmdDQUNvbW1p
dDsgfQorICAgIFRyYW5zYWN0aW9uSUQgbmV4dExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3BlbmRpbmdMYXllclRyZWVUcmFuc2FjdGlvbklELm5leHQoKTsgfQorICAg
IFRyYW5zYWN0aW9uSUQgbGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSURGb3JQZW5kaW5nQ0FDb21taXQ7IH0KIAogICAgIHZv
aWQgZGlkUmVmcmVzaERpc3BsYXkoKTsKICAgICAKQEAgLTk2LDcgKzk3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwotICAgIHZvaWQgd2lsbENv
bW1pdExheWVyVHJlZSh1aW50NjRfdCB0cmFuc2FjdGlvbklEKTsKKyAgICB2b2lkIHdpbGxDb21t
aXRMYXllclRyZWUoVHJhbnNhY3Rpb25JRCk7CiAgICAgdm9pZCBjb21taXRMYXllclRyZWUoY29u
c3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mLCBjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uJik7CiAgICAgCiAgICAgdm9pZCBzZW5kVXBkYXRlR2VvbWV0cnko
KTsKQEAgLTExMiwxMCArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+
IG1fdGlsZU1hcEhvc3RMYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9leHBvc2VkUmVj
dEluZGljYXRvckxheWVyOwogCi0gICAgdWludDY0X3QgbV9wZW5kaW5nTGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRCB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2xhc3RWaXNpYmxlVHJhbnNhY3Rpb25JRCB7
IDAgfTsKLSAgICB1aW50NjRfdCBtX3RyYW5zYWN0aW9uSURGb3JQZW5kaW5nQ0FDb21taXQgeyAw
IH07Ci0gICAgdWludDY0X3QgbV90cmFuc2FjdGlvbklERm9yVW5oaWRpbmdDb250ZW50IHsgMCB9
OworICAgIFRyYW5zYWN0aW9uSUQgbV9wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKKyAg
ICBUcmFuc2FjdGlvbklEIG1fbGFzdFZpc2libGVUcmFuc2FjdGlvbklEOworICAgIFRyYW5zYWN0
aW9uSUQgbV90cmFuc2FjdGlvbklERm9yUGVuZGluZ0NBQ29tbWl0OworICAgIFRyYW5zYWN0aW9u
SUQgbV90cmFuc2FjdGlvbklERm9yVW5oaWRpbmdDb250ZW50OwogICAgIEFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VJRCB7IEFjdGl2aXR5U3RhdGVDaGFuZ2VBc3lu
Y2hyb25vdXMgfTsKIAogICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBkZjZmNWFhOTA5Mzk2OTliMDQ0MzAyMWZiODRjYTY1MjY0N2E2OGNmLi4wNGQ1ZDE0MjI2
ZjViZThhZmJkYWM2ZGIxZmExYTY4N2ZiZDA2YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjEsNiAr
MjEsNiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5IDogRHJhd2luZ0FyZWFQcm94eSB7Ci0gICAgdm9pZCBXaWxsQ29tbWl0TGF5
ZXJUcmVlKHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpCisgICAgdm9pZCBXaWxsQ29tbWl0TGF5ZXJU
cmVlKFdlYktpdDo6VHJhbnNhY3Rpb25JRCB0cmFuc2FjdGlvbklEKQogICAgIHZvaWQgQ29tbWl0
TGF5ZXJUcmVlKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24gbGF5ZXJUcmVlVHJh
bnNhY3Rpb24sIFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiBz
Y3JvbGxpbmdUcmVlVHJhbnNhY3Rpb24pCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDI3NGFiZDMwMjljMDA3NzMzOWRmZTM3NDhmZjMw
Njk3YzliNDhiNDguLmI2ZWNiMDI4N2JhYjNlMmVmZDFlOTljNjI1YjQ4NmQyYzgzMTMyZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0x
ODMsNyArMTgzLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZW5k
VXBkYXRlR2VvbWV0cnkoKQogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgPSB0
cnVlOwogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OndpbGxDb21t
aXRMYXllclRyZWUodWludDY0X3QgdHJhbnNhY3Rpb25JRCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6d2lsbENvbW1pdExheWVyVHJlZShUcmFuc2FjdGlvbklEIHRyYW5z
YWN0aW9uSUQpCiB7CiAgICAgbV9wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCA9IHRyYW5z
YWN0aW9uSUQ7CiB9CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMK
ICAgICBMT0coUmVtb3RlTGF5ZXJUcmVlLCAiJXMiLCBsYXllclRyZWVUcmFuc2FjdGlvbi5kZXNj
cmlwdGlvbigpLmRhdGEoKSk7CiAgICAgTE9HKFJlbW90ZUxheWVyVHJlZSwgIiVzIiwgc2Nyb2xs
aW5nVHJlZVRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uKCkuZGF0YSgpKTsKIAotICAgIEFTU0VSVChs
YXllclRyZWVUcmFuc2FjdGlvbi50cmFuc2FjdGlvbklEKCkgPT0gbV9sYXN0VmlzaWJsZVRyYW5z
YWN0aW9uSUQgKyAxKTsKKyAgICBBU1NFUlQobGF5ZXJUcmVlVHJhbnNhY3Rpb24udHJhbnNhY3Rp
b25JRCgpID09IG1fbGFzdFZpc2libGVUcmFuc2FjdGlvbklELm5leHQoKSk7CiAgICAgbV90cmFu
c2FjdGlvbklERm9yUGVuZGluZ0NBQ29tbWl0ID0gbGF5ZXJUcmVlVHJhbnNhY3Rpb24udHJhbnNh
Y3Rpb25JRCgpOwogICAgIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEID0gbGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uYWN0aXZpdHlTdGF0ZUNoYW5nZUlEKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGVlN2U1ODgzZTg4ZTBmYWMwZWM1NDU1ZmU1N2I0YmU2MDE4
OTY1OGIuLmE5MWM0MGViMjAxZGEyZWNkMDU0NjQ4NzdlMGJjZThkNjEzMWJiZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzA0Myw4ICs3MDQzLDggQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRl
UmVhc29uKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fZmlyc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkQWZ0ZXJEaWRDb21taXRMb2FkID0gMDsKLSAgICBtX2xhc3RW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGUgPSBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKCk7
CisgICAgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQgPSB7
IH07CisgICAgbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0geyB9OwogICAgIG1faGFz
TmV0d29ya1JlcXVlc3RzT25TdXNwZW5kZWQgPSBmYWxzZTsKICAgICBtX2lzS2V5Ym9hcmRBbmlt
YXRpbmdJbiA9IGZhbHNlOwogICAgIG1faXNTY3JvbGxpbmdPclpvb21pbmcgPSBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGVhMTVhM2JjMTgzOTY4N2Nl
YWUyYWNlNGE5OWI1NTk3OWMzNTYyNS4uZTRiYzEzMDAyNjU3NWU1YjA4ODU3ODI5MzA2ODFhZDky
OTU2ZTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJTdXNwZW5kZWRQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJTeXN0ZW1QcmV2aWV3Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKQEAg
LTY2Niw3ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlvbihp
bnQzMl90KTsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3Vt
ZW50cyhjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4mKTsKLSAgICB2
b2lkIHdpbGxDb21taXRMYXllclRyZWUodWludDY0X3QgdHJhbnNhY3Rpb25JRCk7CisgICAgdm9p
ZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKFRyYW5zYWN0aW9uSUQpOwogCiAgICAgdm9pZCBzZWxlY3RX
aXRoR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCwgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5LCB1aW50MzJfdCBnZXN0dXJlVHlwZSwgdWludDMyX3QgZ2VzdHVyZVN0YXRlLCBib29sIGlz
SW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50LCB1aW50MzJfdCB0b3VjaGVzLCBib29sIGJhc2VJc1N0YXJ0
LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDMyX3Qs
IHVpbnQzMl90LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CkBAIC0xMjIxLDEyICsxMjIyLDEy
IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7CiAK
ICAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiwgdWludDY0X3Qm
IHJlcXVlc3RJRCk7Ci0gICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktp
dDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0
TGFzdFRvdWNoU3RhcnQsIFdlYkNvcmU6OlBvaW50ZXJJRCk7CisgICAgdm9pZCBjb21taXRQb3Rl
bnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rp
b25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCwgV2ViQ29yZTo6UG9p
bnRlcklEKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwogICAgIHZvaWQgdGFwSGln
aGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgdWludDY0X3QmIHJl
cXVlc3RJRCk7Ci0gICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYs
IE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxheWVyVHJl
ZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKKyAgICB2b2lkIGhhbmRsZVRhcChjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlm
aWVyPiwgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFy
dCk7CiAgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nUHJlc3MoKTsKLSAgICB2b2lkIGhhbmRsZURv
dWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9w
dGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlv
bklkQXRMYXN0VG91Y2hTdGFydCk7CisgICAgdm9pZCBoYW5kbGVEb3VibGVUYXBGb3JEb3VibGVD
bGlja0F0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViRXZlbnQ6
Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91
Y2hTdGFydCk7CiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24o
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJj
aEVuZGVkQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CkBAIC0yMTgwLDcg
KzIxODEsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFdlYkNvcmU6OklucHV0TW9kZT4gbV9w
ZW5kaW5nSW5wdXRNb2RlQ2hhbmdlOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAgICAgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7Ci0gICAgdWludDY0
X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQgeyAwIH07
CisgICAgVHJhbnNhY3Rpb25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlk
Q29tbWl0TG9hZDsKICAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRpb24geyAwIH07CiAgICAg
Ym9vbCBtX2hhc1JlY2VpdmVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25BZnRlckRpZENvbW1pdExvYWQg
eyB0cnVlIH07CiAgICAgYm9vbCBtX2hhc05ldHdvcmtSZXF1ZXN0c09uU3VzcGVuZGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCAzMTJmZTE0ZTJlMTM0NmYzZmE3NGZmNjM3YmMzN2Y2MTY0
ZDMxODE0Li42MGNiY2MxMjgzZGE5Njg1Y2YxN2IwM2IyMmM1NjhhY2YwNDFkMjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAj
aW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgiCisjaW1wb3J0ICJUcmFuc2FjdGlvbklE
LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKQEAgLTI5Myw3ICsyOTQsNyBA
QCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIEJsb2NrUHRyPHZvaWQoOjpXZWJF
dmVudCAqLCBCT09MKT4gX2tleVdlYkV2ZW50SGFuZGxlcjsKIAogICAgIENHUG9pbnQgX2xhc3RJ
bnRlcmFjdGlvbkxvY2F0aW9uOwotICAgIHVpbnQ2NF90IF9sYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydDsKKyAgICBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgX2xheWVyVHJlZVRy
YW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0OwogCiAgICAgV2ViS2l0OjpXS1NlbGVjdGlvbkRy
YXdpbmdJbmZvIF9sYXN0U2VsZWN0aW9uRHJhd2luZ0luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IDVmOGRkYmQzZjVkY2NkOGIwN2JlYWNjOGM0YWFmZTAxODE3OGFjMDIuLmZkNGI1MDliZjIzYTI2
NDM5ZDU5MzMzYmQ0NmQ4ZGU2MWJjYTA4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTA5LDcgKzkw
OSw3IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVy
ZVJlY29nbml6ZXI6X3RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogI2VuZGlm
CiAKLSAgICBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQgPSAwOworICAg
IF9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCA9IHsgfTsKIAogI2lmIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIFtleGlzdGluZ0xvY2FsRHJhZ1Nlc3Npb25Db250
ZXh0KF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuZHJhZ1Nlc3Npb24oKSkgY2xlYW5VcFRlbXBv
cmFyeURpcmVjdG9yaWVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCmluZGV4IGQ5Y2ZlMjZmZDUzYjJmM2Y5MTMyNzU0OGNhN2M1NzJmM2E4MjE1
ZjMuLmJiZTM5ZjRmM2U1NTg0YjUwNzQ5OTFmYzJhYTU2NjA2MmJlNDU4MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtODE1LDcgKzgx
NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCBiCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwg
c2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiksIG1fcGFnZUlEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6
Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExh
c3RUb3VjaFN0YXJ0LCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIFRyYW5zYWN0aW9uSUQgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiB7CiAgICAgcHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbW1pdFBvdGVudGlhbFRhcChtb2RpZmllcnMsIGxheWVy
VHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBwb2ludGVySWQpLCBtX3BhZ2VJRCk7
CiB9CkBAIC04MzAsNyArODMwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHUKICAgICBwcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihyZXF1
ZXN0SUQsIHBvc2l0aW9uKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlVGFwKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RU
b3VjaFN0YXJ0KQordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRhcChjb25zdCBGbG9hdFBvaW50
JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBUcmFu
c2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAg
IHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVUYXAocm91bmRlZEludFBv
aW50KGxvY2F0aW9uKSwgbW9kaWZpZXJzLCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91
Y2hTdGFydCksIG1fcGFnZUlEKTsKIH0KQEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjb2duaXplTG9uZ1ByZXNzKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjb2duaXplTG9uZ1ByZXNzKCksIG1fcGFnZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVycywgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3Rh
cnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlRG91YmxlVGFwRm9yRG91YmxlQ2xpY2tBdFBv
aW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpN
b2RpZmllcj4gbW9kaWZpZXJzLCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRB
dExhc3RUb3VjaFN0YXJ0KQogewogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpIYW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQocG9pbnQsIG1vZGlmaWVycywg
bGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
ZWIwMDY2MDE3M2M0OTdjZDFhMmU1NTA3OGI5MThmODFmMWFmZjc0Li5mMGM3YmU1ZWRmMmVhODNl
Mzk0YjM4YTJlMDcyMWMyZjk4MDY2MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NTksNiArMTk1OSw3IEBACiAJCTBGMDhDRjUz
MUQ2M0MxNDAwMEI0OERGMSAvKiBXS0Zvcm1TZWxlY3RQb3BvdmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybVNlbGVjdFBvcG92ZXIuaDsgcGF0aCA9IGlvcy9mb3Jt
cy9XS0Zvcm1TZWxlY3RQb3BvdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MEMzNjU3MThDMDUxQkEwMEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlTGF5ZXJUcmVlSG9zdElP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwQzM2NUIxOEMwNUNBMTAwRjYw
N0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjExNzgxNDIyRTM5QkU2
MDA4QkQ1NzAgLyogVHJhbnNhY3Rpb25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUcmFuc2FjdGlvbklELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTc0
QUEyMTQyQTRDQjYwMDM5MjUwRiAvKiBBUElHZW9tZXRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBUElHZW9tZXRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjE3NEFBNjE0MkFBQzYxMDAzOTI1MEYgLyogV0tHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0dlb21ldHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYzQzcyNTcxOTZGNUY1MDAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGln
aGxpZ2h0Vmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
SW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUyOTksNiArNTMwMCw3IEBACiAJCQkJMkZENDNCOTExRkEwMDZBMTAwODNGNTFDIC8qIFRvdWNo
QmFyTWVudURhdGEuaCAqLywKIAkJCQkyRjgwOURENTFGQkQxQkM5MDA1RkU2M0EgLyogVG91Y2hC
YXJNZW51SXRlbURhdGEuY3BwICovLAogCQkJCTJGODA5REQ5MUZCRDFCRjIwMDVGRTYzQSAvKiBU
b3VjaEJhck1lbnVJdGVtRGF0YS5oICovLAorCQkJCTBGMTE3ODE0MjJFMzlCRTYwMDhCRDU3MCAv
KiBUcmFuc2FjdGlvbklELmggKi8sCiAJCQkJNUM0QjlEOEEyMTBBOEM0NjAwOEYxNEQxIC8qIFVu
ZG9PclJlZG8uaCAqLywKIAkJCQkxQTY0MjQ1RDEyREUyOUExMDBDQUFFMkMgLyogVXBkYXRlSW5m
by5jcHAgKi8sCiAJCQkJMUE2NDI0NUMxMkRFMjlBMTAwQ0FBRTJDIC8qIFVwZGF0ZUluZm8uaCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
LmgKaW5kZXggYTZkN2I4MDY1Zjc3ODdjNTQxMDZjYWI0NjE1NjRmNjVhN2IzYmQ4Yy4uZGU3MTE2
ZWY3YzAyMTM1NDdlYzVmZDA4MTNkMzc2N2I0M2RlNDk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTUxLDggKzUxLDggQEAg
cHVibGljOgogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmLCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoKTsKIAotICAgIHVpbnQ2NF90IG5leHRUcmFuc2FjdGlvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25JRCArIDE7IH0KLSAgICB1aW50NjRfdCBsYXN0
Q29tbWl0dGVkVHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0
aW9uSUQ7IH0KKyAgICBUcmFuc2FjdGlvbklEIG5leHRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25JRC5uZXh0KCk7IH0KKyAgICBUcmFuc2FjdGlvbklE
IGxhc3RDb21taXR0ZWRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VHJh
bnNhY3Rpb25JRDsgfQogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVhCkBAIC0xMTksNyAr
MTE5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZyogbWFpbkZyYW1l
VGlsZWRCYWNraW5nKCkgY29uc3Q7CiAKLSAgICB1aW50NjRfdCB0YWtlTmV4dFRyYW5zYWN0aW9u
SUQoKSB7IHJldHVybiArK21fY3VycmVudFRyYW5zYWN0aW9uSUQ7IH0KKyAgICBUcmFuc2FjdGlv
bklEIHRha2VOZXh0VHJhbnNhY3Rpb25JRCgpIHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0aW9u
SUQuaW5jcmVtZW50KCk7IH0KIAogICAgIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRl
bHlJZlBvc3NpYmxlKCkgb3ZlcnJpZGU7CiAKQEAgLTE2OSw3ICsxNjksNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hTZXQ8UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yKj4gbV9kaXNw
bGF5UmVmcmVzaE1vbml0b3JzOwogICAgIEhhc2hTZXQ8UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKj4qIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yc1RvTm90aWZ5IHsgbnVsbHB0
ciB9OwogCi0gICAgdWludDY0X3QgbV9jdXJyZW50VHJhbnNhY3Rpb25JRCB7IDAgfTsKKyAgICBU
cmFuc2FjdGlvbklEIG1fY3VycmVudFRyYW5zYWN0aW9uSUQ7CiAgICAgVmVjdG9yPFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpUcmFuc2FjdGlvbkNhbGxiYWNrSUQ+IG1fcGVuZGluZ0NhbGxi
YWNrSURzOwogICAgIEFjdGl2aXR5U3RhdGVDaGFuZ2VJRCBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VJ
RCB7IEFjdGl2aXR5U3RhdGVDaGFuZ2VBc3luY2hyb25vdXMgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggMWVjNTA3NTQyNTdmODY2ZWIyYWU4
ZWM0Y2IwYzZkMWZmZTg2NTZlYy4uNWEwM2EzZjVmOTI5ZDEwMjM5ZjkwMjBjNWRhMmI3ZmM1NTg2
N2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRG93bmxv
YWRJRC5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlRyYW5zYWN0
aW9uSUQuaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVUeXBlcy5oPgpAQCAtMTY3
LDggKzE2OCw4IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjcmVhdGVT
ZWxlY3Rpb25TbmFwc2hvdCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICB1aW50NjRfdCBmaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQo
KSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29t
bWl0TG9hZDsgfQotICAgIHZvaWQgc2V0Rmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJE
aWRDb21taXRMb2FkKHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpIHsgbV9maXJzdExheWVyVHJlZVRy
YW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQgPSB0cmFuc2FjdGlvbklEOyB9CisgICAgVHJh
bnNhY3Rpb25JRCBmaXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQo
KSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29t
bWl0TG9hZDsgfQorICAgIHZvaWQgc2V0Rmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJE
aWRDb21taXRMb2FkKFRyYW5zYWN0aW9uSUQgdHJhbnNhY3Rpb25JRCkgeyBtX2ZpcnN0TGF5ZXJU
cmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9hZCA9IHRyYW5zYWN0aW9uSUQ7IH0KICNl
bmRpZgogCiBwcml2YXRlOgpAQCAtMTkwLDcgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgdWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1p
dExvYWQgeyAwIH07CisgICAgVHJhbnNhY3Rpb25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JREFmdGVyRGlkQ29tbWl0TG9hZDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYxY2RhMTIwMzFmMWJlNzY3OGUwYTcyY2I0
ZjA1OGVjZjQwOGNiYWIuLjVmNmIyNzZlYTIwZWU0ZGZiMGE1NDBkZTYyZDkwZTgyN2NmMjk5Zjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYzMiwx
NSArNjMyLDE1IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c1VzZXJTY2FsaW5nKCkgY29uc3Q7
CiAgICAgYm9vbCBoYXNTdGFibGVQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2hh
c1N0YWJsZVBhZ2VTY2FsZUZhY3RvcjsgfQogCi0gICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1
aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CisgICAgdm9pZCBoYW5kbGVUYXAo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9k
aWZpZXI+LCBUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKTsKICAgICB2
b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0
aW9uKTsKLSAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJF
dmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2Vi
Q29yZTo6UG9pbnRlcklEKTsKKyAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVU
cmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQpOwogICAgIHZvaWQgY29tbWl0UG90ZW50
aWFsVGFwRmFpbGVkKCk7CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lk
IGNhbmNlbFBvdGVudGlhbFRhcEluRnJhbWUoV2ViRnJhbWUmKTsKICAgICB2b2lkIHRhcEhpZ2hs
aWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50Jik7CiAgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nUHJlc3MoKTsKLSAgICB2b2lkIGhhbmRs
ZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxhc3RMYXll
clRyZWVUcmFuc2FjdGlvbklkKTsKKyAgICB2b2lkIGhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNs
aWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YkV2ZW50OjpNb2RpZmllcj4sIFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWQpOwogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRl
ZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpAQCAtMTg4MCw3ICsxODgw
LDcgQEAgcHJpdmF0ZToKICAgICBGb2N1c2VkRWxlbWVudElkZW50aWZpZXIgbV9jdXJyZW50Rm9j
dXNlZEVsZW1lbnRJZGVudGlmaWVyIHsgMCB9OwogICAgIE9wdGlvbmFsPER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGVJRD4gbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogICAg
IGRvdWJsZSBtX2xhc3RUcmFuc2FjdGlvblBhZ2VTY2FsZUZhY3RvciB7IDAgfTsKLSAgICB1aW50
NjRfdCBtX2xhc3RUcmFuc2FjdGlvbklEV2l0aFNjYWxlQ2hhbmdlIHsgMCB9OworICAgIFRyYW5z
YWN0aW9uSUQgbV9sYXN0VHJhbnNhY3Rpb25JRFdpdGhTY2FsZUNoYW5nZTsKIAogICAgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mJik+IG1f
cGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblJlcGx5OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCBiODQzYjI4MTNmMjAxZTE3YTYzNjUwNWM0MWNlNzc5ZTZiNWU0M2I4Li41YjllMWUw
N2ViN2Q4YjcwYjI1NWFlMmI3MmI2Njk1MDQ4OWNhZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUzLDEzICs1
MywxMyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzKE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
PiBhcmd1bWVudHMpCiAgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9h
dFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJl
ZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNv
cmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRh
cmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RF
ZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUs
IGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCkKIAotICAgIEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9u
U2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQb2ludCBw
b2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdl
YktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICBQb3Rl
bnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBwb2ludCwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uKQotICAg
IENvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+
IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6
OlBvaW50ZXJJRCBwb2ludGVySWQpCisgICAgQ29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6OlRyYW5zYWN0aW9u
SUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVy
SWQpCiAgICAgQ2FuY2VsUG90ZW50aWFsVGFwKCkKICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9u
KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRS
ZWNvZ25pemVMb25nUHJlc3MoKQotICAgIEhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQ
b2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6
Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklk
KQorICAgIEhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmll
cnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAg
ICBJbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQg
cG9pbnQpCiAgICAgSW5zcGVjdG9yTm9kZVNlYXJjaEVuZGVkQXRQb3NpdGlvbihXZWJDb3JlOjpG
bG9hdFBvaW50IHBvaW50KQogICAgIEJsdXJGb2N1c2VkRWxlbWVudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDJkNmNi
YzVkYTU5ODNmMDFiMjBhZGZhNzc5Y2MwNmE5MzRkZGNlYzcuLjQwMDAyY2Y5MzBmY2JjMWQyZGY1
MzVmZjMzNjA1MDA5Yjc4OGZmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04MTUsNyArODE1LDcgQEAgdm9pZCBXZWJQ
YWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywg
Y29uc3QgV2ViQ29yZToKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbXBs
ZXRlU3ludGhldGljQ2xpY2soKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0
IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJz
LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKK3ZvaWQgV2ViUGFnZTo6aGFu
ZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmll
cj4gbW9kaWZpZXJzLCBUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQog
ewogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRQb2ludDsKICAgICBOb2RlKiBub2RlUmVzcG9uZGlu
Z1RvQ2xpY2sgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50
cyhwb2ludCwgYWRqdXN0ZWRQb2ludCk7CkBAIC04MzUsNyArODM1LDcgQEAgdm9pZCBXZWJQYWdl
OjpoYW5kbGVUYXAoY29uc3QgSW50UG9pbnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2QKICAgICAgICAgaGFuZGxlU3ludGhldGljQ2xpY2soKm5vZGVSZXNwb25kaW5n
VG9DbGljaywgYWRqdXN0ZWRQb2ludCwgbW9kaWZpZXJzKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpo
YW5kbGVEb3VibGVUYXBGb3JEb3VibGVDbGlja0F0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkKQordm9pZCBXZWJQYWdlOjpoYW5kbGVEb3VibGVUYXBGb3JE
b3VibGVDbGlja0F0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViRXZl
bnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSWQpCiB7CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwogICAgIGF1dG8qIG5v
ZGVSZXNwb25kaW5nVG9Eb3VibGVDbGljayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3Bv
bmRpbmdUb0RvdWJsZUNsaWNrRXZlbnQocG9pbnQsIGFkanVzdGVkUG9pbnQpOwpAQCAtMTA3Myw3
ICsxMDczLDcgQEAgdm9pZCBXZWJQYWdlOjpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2kKICNlbmRpZgogfQogCi12b2lkIFdl
YlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQ
b2ludGVySUQgcG9pbnRlcklkKQordm9pZCBXZWJQYWdlOjpjb21taXRQb3RlbnRpYWxUYXAoT3B0
aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBUcmFuc2FjdGlvbklEIGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewog
ICAgIGF1dG8gaW52YWxpZFRhcmdldEZvclNpbmdsZUNsaWNrID0gIW1fcG90ZW50aWFsVGFwTm9k
ZTsKICAgICBpZiAoIWludmFsaWRUYXJnZXRGb3JTaW5nbGVDbGljaykgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>