<?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>231037</bug_id>
          
          <creation_ts>2021-09-30 13:59:39 -0700</creation_ts>
          <short_desc>Simplify some scrolling-related code in WebKit with use of RectEdges&lt;bool&gt;</short_desc>
          <delta_ts>2021-10-02 09:58:18 -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>Scrolling</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>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>1799019</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-30 13:59:39 -0700</bug_when>
    <thetext>Simplify some scrolling-related code in WebKit with use of RectEdges&lt;bool&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799021</commentid>
    <comment_count>1</comment_count>
      <attachid>439778</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-30 14:02:33 -0700</bug_when>
    <thetext>Created attachment 439778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799026</commentid>
    <comment_count>2</comment_count>
      <attachid>439780</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-30 14:16:05 -0700</bug_when>
    <thetext>Created attachment 439780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799748</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-02 09:58:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/283353/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799749</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-02 09:58:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83799258&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439778</attachid>
            <date>2021-09-30 14:02:33 -0700</date>
            <delta_ts>2021-09-30 14:28:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231037-20210930140232.patch</filename>
            <type>text/plain</type>
            <size>28000</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU4N2NjYmJkOGY4NzNi
NzRmMzYyNjU4ZmNjZWVlYTA0Y2U1ZWQ2YS4uYTk1YmFjZjNhZTRjZWNkOTYyYjE3ZDJiMjU4Njc4
OGNlMGUxNjVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHNv
bWUgc2Nyb2xsaW5nLXJlbGF0ZWQgY29kZSBpbiBXZWJLaXQgd2l0aCB1c2Ugb2YgUmVjdEVkZ2Vz
PGJvb2w+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzEwMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBvcnQgZWRnZVBpbm5lZFN0YXRlKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorCiAyMDIxLTA5LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlcGxhY2UgdGhlIGNvbmZ1c2luZyBpc1Bpbm5lZEZvclNjcm9sbERl
bHRhKCkgbG9naWMgd2l0aCBjb2RlIHRoYXQgdXNlcyBCb3hTaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZTM2
OGZhYjZmM2JkZWM0YmJmMjJkNjZhNzM0ZmM5ZjNmOWE0NTUuLjNlZDM0MGYzZGUwMTJiNmQ3Nzg2
OGFjMzRhMTliZjZmYTRjNWQ2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMDkt
MzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2lt
cGxpZnkgc29tZSBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFdlYktpdCB3aXRoIHVzZSBvZiBS
ZWN0RWRnZXM8Ym9vbD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTAzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBSZWN0RWRnZXM8Ym9vbD4gaW4gY29kZSB0aGF0IHRyYWNrcyBydWJiZXIgYmFu
ZGluZyBzdGF0ZSwgYW5kIGVkZ2UgcGlubmVkIHN0YXRlLgorCisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVj
dEVkZ2VzPGJvb2w+Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWN0
RWRnZXM8Ym9vbD4+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZUlzUGlubmVkVG9MZWZ0U2lkZSk6CisgICAgICAgIChXS1BhZ2VJc1Bpbm5lZFRvUmln
aHRTaWRlKToKKyAgICAgICAgKFdLUGFnZUlzUGlubmVkVG9Ub3BTaWRlKToKKyAgICAgICAgKFdL
UGFnZUlzUGlubmVkVG9Cb3R0b21TaWRlKToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRM
ZWZ0KToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRSaWdodCk6CisgICAgICAgIChXS1Bh
Z2VSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdl
YktpdDo6dG9XS1JlY3RFZGdlKToKKyAgICAgICAgKFdlYktpdDo6dG9SZWN0RWRnZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGlubmVkU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cnViYmVyQmFuZGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0UnViYmVyQmFuZGluZ0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVy
ZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dp
cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFJpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJ1YmJlckJhbmRzQXRMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5kc0F0UmlnaHQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3AgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRCb3R0
b20gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlTWFpbkZyYW1lU2Ny
b2xsT2Zmc2V0UGlubmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAyMS0wOS0zMCAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+
CiAKICAgICAgICAgRml4ICFFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSBidWlsZCBh
ZnRlciByMjgzMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRl
eCAyYjM3NWY1YmQ0NDI3YzgzNzFlNTA1ZjYwNzQ4YTIzZmJjNDliNmIyLi45YjE1MWQ3YjFmM2Fh
ZTBkNjEzYmI1MjMzYjg4MTBhMDQ5MTA0MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKQEAgLTMyMSw3ICszMjEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyAiUGlu
bmVkIiBtZWFucyBzY3JvbGxlZCBhdCBvciBiZXlvbmQgdGhlIGVkZ2UuCiAgICAgYm9vbCBpc1Bp
bm5lZE9uU2lkZShCb3hTaWRlKSBjb25zdDsKLSAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5l
ZFN0YXRlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVjdEVkZ2VzPGJvb2w+IGVkZ2VQ
aW5uZWRTdGF0ZSgpIGNvbnN0OwogCiAgICAgLy8gVHJ1ZSBpZiBzY3JvbGxpbmcgaGFwcGVucyBi
eSBtb3ZpbmcgY29tcG9zaXRpbmcgbGF5ZXJzLgogICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmYWJjZWY2YzIxMjUyM2Vm
MDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi40ZTExNzMxZmZjM2ZlZDg0ZjMzNzlmNGIzYWI4MWVi
NzM2ZGUxMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKQEAgLTY3NCw3ICs2NzQsMTggQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94
RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG8KIHsK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdEJveEV4dGVudCk7CiB9CisKKwordm9pZCBBcmd1bWVudENvZGVyPFJlY3RF
ZGdlczxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9v
bD4mIGJveEVkZ2VzKQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+
Pjo6ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKK30KICAgICAKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVjdEVkZ2VzPGJv
b2w+JiBib3hFZGdlcykKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRn
ZXM8Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOworfQorCiAKIHZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRT
aXplJiBmbG9hdFNpemUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJlMDFmOTYu
LjNlMDZkYWJiNjI0Njc0MzU3NjFiZjAzNTc4M2I3NGU1NmZlYzUzNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMjEsNiArMzIxLDExIEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+
IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiYpOworICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlY3RF
ZGdlczxib29sPiYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGbG9hdFNpemU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYWIyMjkxZTM0MWI1MzA4YjhlNTVlNDVkYWQ5
YWZiOWU0NGM5NjY0OC4uYzBkNjkwNDVmOGI2NzQ2ZGYxMGU3MWY5YjQzNWI4YjkyNmY2OTkxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC02NzgsMjcgKzY3
OCwyNyBAQCBib29sIFdLUGFnZUFyZVNjcm9sbGJhckFuaW1hdGlvbnNTdXBwcmVzc2VkKFdLUGFn
ZVJlZiBwYWdlUmVmKQogCiBib29sIFdLUGFnZUlzUGlubmVkVG9MZWZ0U2lkZShXS1BhZ2VSZWYg
cGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5pc1Bpbm5lZFRvTGVmdFNp
ZGUoKTsKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLmxlZnQoKTsK
IH0KIAogYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvUmlnaHRTaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQog
ewotICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPmlzUGlubmVkVG9SaWdodFNpZGUoKTsKKyAg
ICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLnJpZ2h0KCk7CiB9CiAKIGJv
b2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7Ci0gICAgcmV0
dXJuIHRvSW1wbChwYWdlUmVmKS0+aXNQaW5uZWRUb1RvcFNpZGUoKTsKKyAgICByZXR1cm4gdG9J
bXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLnRvcCgpOwogfQogCiBib29sIFdLUGFnZUlzUGlu
bmVkVG9Cb3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwo
cGFnZVJlZiktPmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdl
UmVmKS0+cGlubmVkU3RhdGUoKS5ib3R0b20oKTsKIH0KIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5k
c0F0TGVmdChXS1BhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYp
LT5ydWJiZXJCYW5kc0F0TGVmdCgpOworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJl
ckJhbmRhYmxlRWRnZXMoKS5sZWZ0KCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dExlZnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdExlZnQpCkBAIC03MDks
NyArNzA5LDcgQEAgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0TGVmdChXS1BhZ2VSZWYgcGFn
ZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0TGVmdCkKIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0
UmlnaHQoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+
cnViYmVyQmFuZHNBdFJpZ2h0KCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVy
QmFuZGFibGVFZGdlcygpLnJpZ2h0KCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dFJpZ2h0KFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRSaWdodCkKQEAgLTcy
MCw3ICs3MjAsNyBAQCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRSaWdodChXS1BhZ2VSZWYg
cGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQpCiAKIGJvb2wgV0tQYWdlUnViYmVyQmFu
ZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYp
LT5ydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVy
QmFuZGFibGVFZGdlcygpLnRvcCgpOwogfQogCiB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRU
b3AoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKQEAgLTczMSw3ICs3
MzEsNyBAQCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBhZ2VSZWYs
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9t
KFdLUGFnZVJlZiBwYWdlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJl
ckJhbmRzQXRCb3R0b20oKTsKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5ydWJiZXJCYW5k
YWJsZUVkZ2VzKCkuYm90dG9tKCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdEJv
dHRvbShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA5YWFiN2ZiNjg2
YmY2ZTU2YWI1MzYyY2Q3ZmRmMmRjOTk5ZjRiNWM1Li43NTVlNmE2YzJmYTVhNGJkYjBmMjM2NDIy
MGE5NDA3NTRhNjhiOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtNTYwOSw0MCArNTYwOSw0OCBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3Vz
ZU1vdmVkKE5TRXZlbnQgKmV2ZW50KQogICAgIG1vdXNlTW92ZWRJbnRlcm5hbChldmVudCk7CiB9
CiAKK3N0YXRpYyBfV0tSZWN0RWRnZSB0b1dLUmVjdEVkZ2UoUmVjdEVkZ2VzPGJvb2w+IGVkZ2Vz
KQoreworICAgIF9XS1JlY3RFZGdlIHJlc3VsdCA9IF9XS1JlY3RFZGdlTm9uZTsKKworICAgIGlm
IChlZGdlcy5sZWZ0KCkpCisgICAgICAgIHJlc3VsdCB8PSBfV0tSZWN0RWRnZUxlZnQ7CisKKyAg
ICBpZiAoZWRnZXMucmlnaHQoKSkKKyAgICAgICAgcmVzdWx0IHw9IF9XS1JlY3RFZGdlUmlnaHQ7
CisKKyAgICBpZiAoZWRnZXMudG9wKCkpCisgICAgICAgIHJlc3VsdCB8PSBfV0tSZWN0RWRnZVRv
cDsKKworICAgIGlmIChlZGdlcy5ib3R0b20oKSkKKyAgICAgICAgcmVzdWx0IHw9IF9XS1JlY3RF
ZGdlQm90dG9tOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFJlY3RFZGdlczxi
b29sPiB0b1JlY3RFZGdlcyhfV0tSZWN0RWRnZSBlZGdlcykKK3sKKyAgICByZXR1cm4geworICAg
ICAgICBlZGdlcyAmIF9XS1JlY3RFZGdlVG9wLAorICAgICAgICBlZGdlcyAmIF9XS1JlY3RFZGdl
UmlnaHQsCisgICAgICAgIGVkZ2VzICYgX1dLUmVjdEVkZ2VCb3R0b20sCisgICAgICAgIGVkZ2Vz
ICYgX1dLUmVjdEVkZ2VMZWZ0CisgICAgfTsKK30KKwogX1dLUmVjdEVkZ2UgV2ViVmlld0ltcGw6
OnBpbm5lZFN0YXRlKCkKIHsKLSAgICBfV0tSZWN0RWRnZSBzdGF0ZSA9IF9XS1JlY3RFZGdlTm9u
ZTsKLSAgICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvTGVmdFNpZGUoKSkKLSAgICAgICAgc3RhdGUg
fD0gX1dLUmVjdEVkZ2VMZWZ0OwotICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9SaWdodFNpZGUo
KSkKLSAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VSaWdodDsKLSAgICBpZiAobV9wYWdlLT5p
c1Bpbm5lZFRvVG9wU2lkZSgpKQotICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVRvcDsKLSAg
ICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvQm90dG9tU2lkZSgpKQotICAgICAgICBzdGF0ZSB8PSBf
V0tSZWN0RWRnZUJvdHRvbTsKLSAgICByZXR1cm4gc3RhdGU7CisgICAgcmV0dXJuIHRvV0tSZWN0
RWRnZShtX3BhZ2UtPnBpbm5lZFN0YXRlKCkpOwogfQogCiBfV0tSZWN0RWRnZSBXZWJWaWV3SW1w
bDo6cnViYmVyQmFuZGluZ0VuYWJsZWQoKQogewotICAgIF9XS1JlY3RFZGdlIHN0YXRlID0gX1dL
UmVjdEVkZ2VOb25lOwotICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRMZWZ0KCkpCi0gICAg
ICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlTGVmdDsKLSAgICBpZiAobV9wYWdlLT5ydWJiZXJCYW5k
c0F0UmlnaHQoKSkKLSAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VSaWdodDsKLSAgICBpZiAo
bV9wYWdlLT5ydWJiZXJCYW5kc0F0VG9wKCkpCi0gICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdl
VG9wOwotICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRCb3R0b20oKSkKLSAgICAgICAgc3Rh
dGUgfD0gX1dLUmVjdEVkZ2VCb3R0b207Ci0gICAgcmV0dXJuIHN0YXRlOworICAgIHJldHVybiB0
b1dLUmVjdEVkZ2UobV9wYWdlLT5ydWJiZXJCYW5kYWJsZUVkZ2VzKCkpOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRSdWJiZXJCYW5kaW5nRW5hYmxlZChfV0tSZWN0RWRnZSBzdGF0ZSkKIHsK
LSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRMZWZ0KHN0YXRlICYgX1dLUmVjdEVkZ2VMZWZ0
KTsKLSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRSaWdodChzdGF0ZSAmIF9XS1JlY3RFZGdl
UmlnaHQpOwotICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdFRvcChzdGF0ZSAmIF9XS1JlY3RF
ZGdlVG9wKTsKLSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRCb3R0b20oc3RhdGUgJiBfV0tS
ZWN0RWRnZUJvdHRvbSk7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kYWJsZUVkZ2VzKHRvUmVj
dEVkZ2VzKHN0YXRlKSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihOU0V2ZW50
ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIuY3BwCmluZGV4IDE2NTU5MWU0MDI3ZmVkNDk5YWI3ZDJiYzk2MzlkMjM5MDM3MzViMjQu
LjViNDliOTkxN2I3NzQ3NTYyZDg3ZTBiMzgzNmIxNGNjMWU3ZDY0MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtNDIxLDgg
KzQyMSw4IEBAIGJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpQZW5kaW5nU3dpcGVUcmFja2Vy
OjpzY3JvbGxFdmVudENhbkJlY29tZVN3aXBlKFBsYXRmCiAgICAgaWYgKGRlbHRhU2hvdWxkQ2Fu
Y2VsU3dpcGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wgaXNQaW5u
ZWRUb0xlZnQgPSBtX3Nob3VsZElnbm9yZVBpbm5lZFN0YXRlIHx8IG1fd2ViUGFnZVByb3h5Lmlz
UGlubmVkVG9MZWZ0U2lkZSgpOwotICAgIGJvb2wgaXNQaW5uZWRUb1JpZ2h0ID0gbV9zaG91bGRJ
Z25vcmVQaW5uZWRTdGF0ZSB8fCBtX3dlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmlnaHRTaWRlKCk7
CisgICAgYm9vbCBpc1Bpbm5lZFRvTGVmdCA9IG1fc2hvdWxkSWdub3JlUGlubmVkU3RhdGUgfHwg
bV93ZWJQYWdlUHJveHkucGlubmVkU3RhdGUoKS5sZWZ0KCk7CisgICAgYm9vbCBpc1Bpbm5lZFRv
UmlnaHQgPSBtX3Nob3VsZElnbm9yZVBpbm5lZFN0YXRlIHx8IG1fd2ViUGFnZVByb3h5LnBpbm5l
ZFN0YXRlKCkucmlnaHQoKTsKIAogICAgIGJvb2wgdHJ5aW5nVG9Td2lwZUJhY2sgPSBzaXplLndp
ZHRoKCkgPiAwICYmIGlzUGlubmVkVG9MZWZ0OwogICAgIGJvb2wgdHJ5aW5nVG9Td2lwZUZvcndh
cmQgPSBzaXplLndpZHRoKCkgPCAwICYmIGlzUGlubmVkVG9SaWdodDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI1YTRiNjk4OGJlMDRmMjZiODQ3YTMzYjRk
MjEyNTJhZGNjODYwNjIuLmM3MjBhYTk5NzRkYWE5MTgyN2NkMWRmYzc1MDA2NjJiZDBiMmNiOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjkxOCwxNSAr
MjkxOCwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZFdoZWVsRXZlbnQoY29uc3QgV2ViV2hl
ZWxFdmVudCYgZXZlbnQpCiAgICAgbV93aGVlbEV2ZW50QWN0aXZpdHlIeXN0ZXJlc2lzLmltcHVs
c2UoKTsKICNlbmRpZgogCi0gICAgc2VuZCgKLSAgICAgICAgTWVzc2FnZXM6OkV2ZW50RGlzcGF0
Y2hlcjo6V2hlZWxFdmVudCgKLSAgICAgICAgICAgIG1fd2ViUGFnZUlELAotICAgICAgICAgICAg
ZXZlbnQsCi0gICAgICAgICAgICBzaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKCkg
PyAhbV9iYWNrRm9yd2FyZExpc3QtPmJhY2tJdGVtKCkgOiBydWJiZXJCYW5kc0F0TGVmdCgpLAot
ICAgICAgICAgICAgc2hvdWxkVXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbCgpID8gIW1fYmFj
a0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpIDogcnViYmVyQmFuZHNBdFJpZ2h0KCksCi0gICAg
ICAgICAgICBydWJiZXJCYW5kc0F0VG9wKCksCi0gICAgICAgICAgICBydWJiZXJCYW5kc0F0Qm90
dG9tKCkKLSAgICAgICAgKSwgMCk7CisgICAgYXV0byBydWJiZXJCYW5kYWJsZUVkZ2VzID0gdGhp
cy0+cnViYmVyQmFuZGFibGVFZGdlcygpOworICAgIGlmIChzaG91bGRVc2VJbXBsaWNpdFJ1YmJl
ckJhbmRDb250cm9sKCkpIHsKKyAgICAgICAgcnViYmVyQmFuZGFibGVFZGdlcy5zZXRMZWZ0KCFt
X2JhY2tGb3J3YXJkTGlzdC0+YmFja0l0ZW0oKSk7CisgICAgICAgIHJ1YmJlckJhbmRhYmxlRWRn
ZXMuc2V0UmlnaHQoIW1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKKyAgICB9Cisg
ICAgc2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpXaGVlbEV2ZW50KG1fd2ViUGFnZUlE
LCBldmVudCwgcnViYmVyQmFuZGFibGVFZGdlcyksIDApOwogCiAgICAgLy8gTWFudWFsbHkgcGlu
ZyB0aGUgd2ViIHByb2Nlc3MgdG8gY2hlY2sgZm9yIHJlc3BvbnNpdmVuZXNzIHNpbmNlIG91ciB3
aGVlbAogICAgIC8vIGV2ZW50IHdpbGwgZGlzcGF0Y2ggdG8gYSBub24tbWFpbiB0aHJlYWQsIHdo
aWNoIGFsd2F5cyByZXNwb25kcy4KQEAgLTQxMzMsNDQgKzQxMzAsMjQgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0
aW9ucykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTdXBwcmVzc1Njcm9sbGJhckFu
aW1hdGlvbnMoc3VwcHJlc3NBbmltYXRpb25zKSk7CiB9CiAKLWJvb2wgV2ViUGFnZVByb3h5Ojpy
dWJiZXJCYW5kc0F0TGVmdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdExl
ZnQ7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0TGVmdChib29sIHJ1
YmJlckJhbmRzQXRMZWZ0KQogewotICAgIG1fcnViYmVyQmFuZHNBdExlZnQgPSBydWJiZXJCYW5k
c0F0TGVmdDsKLX0KLQotYm9vbCBXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRSaWdodCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFJpZ2h0OworICAgIG1fcnViYmVyQmFu
ZGFibGVFZGdlcy5zZXRMZWZ0KHJ1YmJlckJhbmRzQXRMZWZ0KTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnNldFJ1YmJlckJhbmRzQXRSaWdodChib29sIHJ1YmJlckJhbmRzQXRSaWdodCkKIHsK
LSAgICBtX3J1YmJlckJhbmRzQXRSaWdodCA9IHJ1YmJlckJhbmRzQXRSaWdodDsKLX0KLQotYm9v
bCBXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdAotewotICAgIHJldHVybiBt
X3J1YmJlckJhbmRzQXRUb3A7CisgICAgbV9ydWJiZXJCYW5kYWJsZUVkZ2VzLnNldFJpZ2h0KHJ1
YmJlckJhbmRzQXRSaWdodCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5k
c0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKIHsKLSAgICBtX3J1YmJlckJhbmRzQXRUb3Ag
PSBydWJiZXJCYW5kc0F0VG9wOwotfQotCi1ib29sIFdlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNB
dEJvdHRvbSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAg
ICBtX3J1YmJlckJhbmRhYmxlRWRnZXMuc2V0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRz
QXRCb3R0b20pCiB7Ci0gICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJv
dHRvbTsKKyAgICBtX3J1YmJlckJhbmRhYmxlRWRnZXMuc2V0Qm90dG9tKHJ1YmJlckJhbmRzQXRC
b3R0b20pOwogfQogICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEVuYWJsZVZlcnRpY2FsUnVi
YmVyQmFuZGluZyhib29sIGVuYWJsZVZlcnRpY2FsUnViYmVyQmFuZGluZykKQEAgLTQ5NDIsMTEg
KzQ5MTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgICAgICBpZiAobV9tYWluRnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIpIHsKICAgICAgICAgICAgIC8vIEFsd2F5cyBhc3N1
bWUgdGhhdCB0aGUgbWFpbiBmcmFtZSBpcyBwaW5uZWQgaGVyZSwgc2luY2UgdGhlIGN1c3RvbSBy
ZXByZXNlbnRhdGlvbiB2aWV3IHdpbGwgaGFuZGxlCiAgICAgICAgICAgICAvLyBhbnkgd2hlZWwg
ZXZlbnRzIGFuZCBkaXNwYXRjaCB0aGVtIHRvIHRoZSBXS1ZpZXcgd2hlbiBuZWNlc3NhcnkuCi0g
ICAgICAgICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZSA9IHRydWU7Ci0gICAgICAg
ICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUgPSB0cnVlOwotICAgICAgICAgICAg
bV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSA9IHRydWU7Ci0gICAgICAgICAgICBtX21haW5G
cmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlID0gdHJ1ZTsKLQorICAgICAgICAgICAgbV9tYWluRnJh
bWVQaW5uZWRTdGF0ZSA9IHsgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSB9OwogICAgICAgICAgICAg
bV91aUNsaWVudC0+cGlubmVkU3RhdGVEaWRDaGFuZ2UoKnRoaXMpOwogICAgICAgICB9CiAgICAg
ICAgIHBhZ2VDbGllbnQoKS5kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKG1pbWVUeXBlLCBmcmFt
ZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlcik7CkBAIC03ODgyLDEwICs3ODU1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29u
KQogICAgIG1fbWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGZhbHNlOwogICAgIG1f
bWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgPSBmYWxzZTsKIAotICAgIG1fbWFpbkZyYW1l
SXNQaW5uZWRUb0xlZnRTaWRlID0gdHJ1ZTsKLSAgICBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdo
dFNpZGUgPSB0cnVlOwotICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGUgPSB0cnVlOwot
ICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUgPSB0cnVlOworICAgIG1fbWFpbkZy
YW1lUGlubmVkU3RhdGUgPSB7IHRydWUsIHRydWUsIHRydWUsIHRydWUgfTsKIAogICAgIG1fdmlz
aWJsZVNjcm9sbGVyVGh1bWJSZWN0ID0gSW50UmVjdCgpOwogCkBAIC04Nzk4LDEzICs4NzY4LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKGJv
b2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwKICAgICBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Ny
b2xsYmFyID0gaGFzVmVydGljYWxTY3JvbGxiYXI7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0
U2lkZSwgYm9vbCBwaW5uZWRUb1JpZ2h0U2lkZSwgYm9vbCBwaW5uZWRUb1RvcFNpZGUsIGJvb2wg
cGlubmVkVG9Cb3R0b21TaWRlKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVNjcm9sbE9m
ZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoUmVjdEVkZ2VzPGJvb2w+IHBpbm5lZFN0YXRlKQogewog
ICAgIHBhZ2VDbGllbnQoKS5waW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKTsKLSAgICBtX21haW5GcmFt
ZUlzUGlubmVkVG9MZWZ0U2lkZSA9IHBpbm5lZFRvTGVmdFNpZGU7Ci0gICAgbV9tYWluRnJhbWVJ
c1Bpbm5lZFRvUmlnaHRTaWRlID0gcGlubmVkVG9SaWdodFNpZGU7Ci0gICAgbV9tYWluRnJhbWVJ
c1Bpbm5lZFRvVG9wU2lkZSA9IHBpbm5lZFRvVG9wU2lkZTsKLSAgICBtX21haW5GcmFtZUlzUGlu
bmVkVG9Cb3R0b21TaWRlID0gcGlubmVkVG9Cb3R0b21TaWRlOworICAgIG1fbWFpbkZyYW1lUGlu
bmVkU3RhdGUgPSBwaW5uZWRTdGF0ZTsKICAgICBwYWdlQ2xpZW50KCkucGlubmVkU3RhdGVEaWRD
aGFuZ2UoKTsKIAogICAgIG1fdWlDbGllbnQtPnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCp0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTJjMjA4OTI4N2U3MjQ1
MzhkMWFhNzA1YjFlZjQyZDE3MmNhNjQ4OC4uMDY5OWU0NGY5ZDdlNzU5Y2NjMThiNzc0ZjQzNTZm
NDljODYwZTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEw
NCw2ICsxMDQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVj
dEVkZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CkBAIC0xMDk0LDE4ICsxMDk1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sKTsKICAgICBib29sIGFyZVNjcm9s
bGJhckFuaW1hdGlvbnNTdXBwcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc1Njcm9s
bGJhckFuaW1hdGlvbnM7IH0KIAotICAgIGJvb2wgaXNQaW5uZWRUb0xlZnRTaWRlKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGU7IH0KLSAgICBib29sIGlzUGlu
bmVkVG9SaWdodFNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdo
dFNpZGU7IH0KLSAgICBib29sIGlzUGlubmVkVG9Ub3BTaWRlKCkgY29uc3QgeyByZXR1cm4gbV9t
YWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsgfQotICAgIGJvb2wgaXNQaW5uZWRUb0JvdHRvbVNp
ZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlOyB9Cisg
ICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IHBpbm5lZFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9tYWluRnJhbWVQaW5uZWRTdGF0ZTsgfQogCi0gICAgYm9vbCBydWJiZXJCYW5kc0F0TGVmdCgp
IGNvbnN0OworICAgIFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBydWJiZXJCYW5kYWJsZUVkZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9ydWJiZXJCYW5kYWJsZUVkZ2VzOyB9CisgICAgdm9pZCBzZXRS
dWJiZXJCYW5kYWJsZUVkZ2VzKFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBlZGdlcykgeyBtX3J1
YmJlckJhbmRhYmxlRWRnZXMgPSBlZGdlczsgfQogICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdExl
ZnQoYm9vbCk7Ci0gICAgYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQoKSBjb25zdDsKICAgICB2b2lk
IHNldFJ1YmJlckJhbmRzQXRSaWdodChib29sKTsKLSAgICBib29sIHJ1YmJlckJhbmRzQXRUb3Ao
KSBjb25zdDsKICAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7Ci0gICAgYm9vbCBy
dWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250
cm9sKGJvb2wgc2hvdWxkVXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbCkgeyBtX3Nob3VsZFVz
ZUltcGxpY2l0UnViYmVyQmFuZENvbnRyb2wgPSBzaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRD
b250cm9sOyB9CkBAIC0yMTUyLDcgKzIxNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5
U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAg
ICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5
bGUpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hv
cml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwotICAgIHZvaWQg
ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVm
dFNpZGUsIGJvb2wgcGlubmVkVG9SaWdodFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29s
IHBpbm5lZFRvQm90dG9tU2lkZSk7CisgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5u
aW5nRm9yTWFpbkZyYW1lKFdlYkNvcmU6OlJlY3RFZGdlczxib29sPik7CiAgICAgdm9pZCBkaWRD
aGFuZ2VQYWdlQ291bnQodW5zaWduZWQpOwogICAgIHZvaWQgdGhlbWVDb2xvckNoYW5nZWQoY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2b2lkIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xv
ckRpZENoYW5nZShjb25zdCBXZWJDb3JlOjpDb2xvciYpOwpAQCAtMjg1OSw3ICsyODU1LDEwIEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFBhZ2VMb2FkU3RhdGUgbV9wYWdlTG9hZFN0YXRlOwot
ICAgIAorCisgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IG1fbWFpbkZyYW1lUGlubmVkU3Rh
dGUgeyB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlIH07CisgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJv
b2w+IG1fcnViYmVyQmFuZGFibGVFZGdlcyB7IHRydWUsIHRydWUsIHRydWUsIHRydWUgfTsKKwog
ICAgIGJvb2wgbV9kZWxlZ2F0ZXNTY3JvbGxpbmcgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX21h
aW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwpAQCAtMjg2OCwxNiArMjg2
Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2hldGhlciBob3Jpem9udGFsIHdoZWVsIGV2ZW50cyBj
YW4gYmUgaGFuZGxlZCBkaXJlY3RseSBmb3Igc3dpcGluZyBwdXJwb3Nlcy4KICAgICBib29sIG1f
Y2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzIHsgdHJ1ZSB9OwogCi0gICAgYm9v
bCBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZSB7IHRydWUgfTsKLSAgICBib29sIG1fbWFp
bkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZSB7IHRydWUgfTsKLSAgICBib29sIG1fbWFpbkZyYW1l
SXNQaW5uZWRUb1RvcFNpZGUgeyB0cnVlIH07Ci0gICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVk
VG9Cb3R0b21TaWRlIHsgdHJ1ZSB9OwotCiAgICAgYm9vbCBtX3Nob3VsZFVzZUltcGxpY2l0UnVi
YmVyQmFuZENvbnRyb2wgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0TGVmdCB7
IHRydWUgfTsKLSAgICBib29sIG1fcnViYmVyQmFuZHNBdFJpZ2h0IHsgdHJ1ZSB9OwotICAgIGJv
b2wgbV9ydWJiZXJCYW5kc0F0VG9wIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0
Qm90dG9tIHsgdHJ1ZSB9OwogICAgICAgICAKICAgICBib29sIG1fZW5hYmxlVmVydGljYWxSdWJi
ZXJCYW5kaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9lbmFibGVIb3Jpem9udGFsUnViYmVyQmFu
ZGluZyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA0MzZlOWM5NGZmZWQzZDZjYTYxYjIyOWM0ZTg3OTgxMjJjODUx
YjE5Li43MmU1NmRmZmU2ZTVmNDBiM2VhNTMyZWFkZTNmZDE5OGQ4ZGVmMGU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC03NSw3
ICs3NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTm90aWZ5U2Nyb2xsZXJU
aHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAg
UmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogICAg
IERpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xs
YmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKQotICAgIERpZENoYW5nZVNjcm9sbE9mZnNl
dFBpbm5pbmdGb3JNYWluRnJhbWUoYm9vbCBwaW5uZWRUb0xlZnRTaWRlLCBib29sIHBpbm5lZFRv
UmlnaHRTaWRlLCBib29sIHBpbm5lZFRvVG9wU2lkZSwgYm9vbCBwaW5uZWRUb0JvdHRvbVNpZGUp
CisgICAgRGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShXZWJDb3JlOjpS
ZWN0RWRnZXM8Ym9vbD4gcGlubmVkU3RhdGUpCiAgICAgRGlkQ2hhbmdlUGFnZUNvdW50KHVuc2ln
bmVkIHBhZ2VDb3VudCkKICAgICBUaGVtZUNvbG9yQ2hhbmdlZChXZWJDb3JlOjpDb2xvciB0aGVt
ZUNvbG9yKQogICAgIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShXZWJDb3Jl
OjpDb2xvciBiYWNrZ3JvdW5kQ29sb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA0M2NmZTMxY2U4NGRkNjBjNGQ5
ZTgxMTQzODExZGQyNjAxYmRlYzk3Li4zYzQxNTU0NTViNjI4N2YxNzEwNjM5OWQ4YThhYzM2YzQ1
NzQ1ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICBj
b25uZWN0aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkV2ZW50RGlz
cGF0Y2hlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdldCgpLCB0aGlzKTsKIH0K
IAotdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sIGNhblJ1YmJlckJhbmRBdExl
ZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBi
b29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2
ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgUmVjdEVkZ2VzPGJvb2w+IHJ1YmJlckJhbmRhYmxlRWRnZXMpCiB7CiAjaWYgUExBVEZPUk0o
Q09DT0EpIHx8IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIFBsYXRmb3JtV2hlZWxFdmVu
dCBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsKQEAgLTEzNyw3ICsx
MzcsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBw
YWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAgICAgICAvLyBzY3JvbGxpbmcgdHJl
ZSBjYW4gYmUgbm90aWZpZWQuCiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGF0
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdlc3R1cmUuCiAgICAgICAgIGlmIChwbGF0Zm9ybVdoZWVs
RXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4pCi0gICAgICAg
ICAgICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJiZXJCYW5kKHsgY2FuUnViYmVy
QmFuZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnViYmVyQmFuZEF0Qm90dG9tLCBj
YW5SdWJiZXJCYW5kQXRMZWZ0IH0pOworICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+c2V0TWFp
bkZyYW1lQ2FuUnViYmVyQmFuZChydWJiZXJCYW5kYWJsZUVkZ2VzKTsKIAogICAgICAgICBhdXRv
IHByb2Nlc3NpbmdTdGVwcyA9IHNjcm9sbGluZ1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9j
ZXNzaW5nKHBsYXRmb3JtV2hlZWxFdmVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggZGExNWVjNDcwZjIzMTA3YTg1
MWMyNGI2YmIxNmZhMDEzM2M0OTE1NS4uOTg4MTIyMDFmMDQ2ZTMyM2ZlZDExYjRhMDVhMGFjOTVl
ZDUyN2QxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtV2hlZWxFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVjdEVkZ2VzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaD4KICNpbmNsdWRlIDxtZW1vcnk+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTgyLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwotICAgIHZvaWQgd2hlZWxFdmVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYsIGJvb2wgY2Fu
UnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBjYW5SdWJi
ZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKTsKKyAgICB2b2lkIHdoZWVs
RXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYldoZWVsRXZlbnQmLCBXZWJD
b3JlOjpSZWN0RWRnZXM8Ym9vbD4gcnViYmVyQmFuZGFibGVFZGdlcyk7CiAjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCB0b3VjaEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCB0b3VjaEV2ZW50V2l0aG91dENhbGxiYWNrKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KaW5k
ZXggYWM3N2ZlMWNiYTk5YTQ2MzQ5Y2NkNzViYzk2ZmJkMTVlMzczZGM1Zi4uMDlhZmMyY2VkMWQz
ZmJmYzYzOTkwYjg4ODZiNjM2NGY2ODgwYjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpA
QCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBFdmVudERpc3Bh
dGNoZXIgewotICAgIFdoZWVsRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9v
bCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2Fu
UnViYmVyQmFuZEF0Qm90dG9tKQorICAgIFdoZWVsRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQsIFdlYkNvcmU6OlJlY3RFZGdl
czxib29sPiBydWJiZXJCYW5kYWJsZUVkZ2VzKQogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQogICAgIFRvdWNoRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6
OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQpIEFzeW5jIE1haW5UaHJlYWRD
YWxsYmFjawogICAgIFRvdWNoRXZlbnRXaXRob3V0Q2FsbGJhY2soV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDIyZDA5MjFlOWIxZGRjM2Yy
ZGY2ODk3ZjVjODcyYTljYmE1YzU4OTEuLmRiMDRmMThhOGQ3NmRlNTY4MmZkNTZjN2Q4YTExMmY3
OWY3ZGVjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC00OTQzLDIzICs0OTQzLDE0IEBAIHZvaWQgV2ViUGFnZTo6YWRkTUlNRVR5cGVXaXRo
Q3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAKIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpCiB7Ci0gICAgRnJhbWUm
IGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKLSAgICBTY3JvbGxQb3NpdGlvbiBzY3JvbGxQ
b3NpdGlvbiA9IGZyYW1lLnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKTsKLSAgICBTY3JvbGxQb3Np
dGlvbiBtYXhpbXVtU2Nyb2xsUG9zaXRpb24gPSBmcmFtZS52aWV3KCktPm1heGltdW1TY3JvbGxQ
b3NpdGlvbigpOwotICAgIFNjcm9sbFBvc2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbiA9IGZy
YW1lLnZpZXcoKS0+bWluaW11bVNjcm9sbFBvc2l0aW9uKCk7Ci0KLSAgICBib29sIGlzUGlubmVk
VG9MZWZ0U2lkZSA9IChzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9u
LngoKSk7Ci0gICAgYm9vbCBpc1Bpbm5lZFRvUmlnaHRTaWRlID0gKHNjcm9sbFBvc2l0aW9uLngo
KSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24ueCgpKTsKLSAgICBib29sIGlzUGlubmVkVG9Ub3BT
aWRlID0gKHNjcm9sbFBvc2l0aW9uLnkoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24ueSgpKTsK
LSAgICBib29sIGlzUGlubmVkVG9Cb3R0b21TaWRlID0gKHNjcm9sbFBvc2l0aW9uLnkoKSA+PSBt
YXhpbXVtU2Nyb2xsUG9zaXRpb24ueSgpKTsKLQotICAgIGlmIChpc1Bpbm5lZFRvTGVmdFNpZGUg
IT0gbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUgfHwgaXNQaW5uZWRUb1JpZ2h0
U2lkZSAhPSBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUgfHwgaXNQaW5uZWRU
b1RvcFNpZGUgIT0gbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSB8fCBpc1Bpbm5l
ZFRvQm90dG9tU2lkZSAhPSBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlKSB7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0UGlubmluZ0Zvck1haW5GcmFtZShpc1Bpbm5lZFRvTGVmdFNpZGUsIGlzUGlubmVkVG9SaWdo
dFNpZGUsIGlzUGlubmVkVG9Ub3BTaWRlLCBpc1Bpbm5lZFRvQm90dG9tU2lkZSkpOwotICAgICAg
ICAKLSAgICAgICAgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUgPSBpc1Bpbm5l
ZFRvTGVmdFNpZGU7Ci0gICAgICAgIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lk
ZSA9IGlzUGlubmVkVG9SaWdodFNpZGU7Ci0gICAgICAgIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5u
ZWRUb1RvcFNpZGUgPSBpc1Bpbm5lZFRvVG9wU2lkZTsKLSAgICAgICAgbV9jYWNoZWRNYWluRnJh
bWVJc1Bpbm5lZFRvQm90dG9tU2lkZSA9IGlzUGlubmVkVG9Cb3R0b21TaWRlOworICAgIGF1dG8q
IGZyYW1lVmlldyA9IG1haW5GcmFtZVZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBwaW5uZWRTdGF0ZSA9IGZyYW1lVmlldy0+ZWRnZVBpbm5l
ZFN0YXRlKCk7CisgICAgaWYgKHBpbm5lZFN0YXRlICE9IG1fY2FjaGVkTWFpbkZyYW1lUGlubmVk
U3RhdGUpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VT
Y3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKHBpbm5lZFN0YXRlKSk7CisgICAgICAgIG1f
Y2FjaGVkTWFpbkZyYW1lUGlubmVkU3RhdGUgPSBwaW5uZWRTdGF0ZTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwNDU1NjFlZWJm
NzJkMGE1NmJiYTdiZGFiYmIyNmE0YzFjZjFiM2E5Li5jMTM4NTU3M2IwYmU1ZmVjODAxNTBhOTVm
YjM5NTE5NDNhNTA0NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qb2ludGVySUQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlY3RFZGdlcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgpA
QCAtMjE2NiwxMCArMjE2Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTaW1wbGVSYW5nZT4gbV9yYW5nZUZvckRyb3BTbmFwc2hvdDsKICNlbmRpZgogCi0gICAgYm9v
bCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZSB7IHRydWUgfTsKLSAgICBib29s
IG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZSB7IHRydWUgfTsKLSAgICBib29s
IG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGUgeyB0cnVlIH07Ci0gICAgYm9vbCBt
X2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlIHsgdHJ1ZSB9OworICAgIFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPiBtX2NhY2hlZE1haW5GcmFtZVBpbm5lZFN0YXRlIHsgdHJ1ZSwg
dHJ1ZSwgdHJ1ZSwgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYW5TaG9ydENpcmN1aXRIb3Jpem9udGFs
V2hlZWxFdmVudHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNXaGVlbEV2ZW50SGFuZGxlcnMg
eyBmYWxzZSB9OwogCg==
</data>
<flag name="commit-queue"
          id="463518"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439780</attachid>
            <date>2021-09-30 14:16:05 -0700</date>
            <delta_ts>2021-09-30 21:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231037-20210930141604.patch</filename>
            <type>text/plain</type>
            <size>28431</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU4N2NjYmJkOGY4NzNi
NzRmMzYyNjU4ZmNjZWVlYTA0Y2U1ZWQ2YS4uYTk1YmFjZjNhZTRjZWNkOTYyYjE3ZDJiMjU4Njc4
OGNlMGUxNjVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHNv
bWUgc2Nyb2xsaW5nLXJlbGF0ZWQgY29kZSBpbiBXZWJLaXQgd2l0aCB1c2Ugb2YgUmVjdEVkZ2Vz
PGJvb2w+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzEwMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHBvcnQgZWRnZVBpbm5lZFN0YXRlKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorCiAyMDIxLTA5LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlcGxhY2UgdGhlIGNvbmZ1c2luZyBpc1Bpbm5lZEZvclNjcm9sbERl
bHRhKCkgbG9naWMgd2l0aCBjb2RlIHRoYXQgdXNlcyBCb3hTaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjZTM2
OGZhYjZmM2JkZWM0YmJmMjJkNjZhNzM0ZmM5ZjNmOWE0NTUuLjNlZDM0MGYzZGUwMTJiNmQ3Nzg2
OGFjMzRhMTliZjZmYTRjNWQ2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMDkt
MzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2lt
cGxpZnkgc29tZSBzY3JvbGxpbmctcmVsYXRlZCBjb2RlIGluIFdlYktpdCB3aXRoIHVzZSBvZiBS
ZWN0RWRnZXM8Ym9vbD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTAzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBSZWN0RWRnZXM8Ym9vbD4gaW4gY29kZSB0aGF0IHRyYWNrcyBydWJiZXIgYmFu
ZGluZyBzdGF0ZSwgYW5kIGVkZ2UgcGlubmVkIHN0YXRlLgorCisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVj
dEVkZ2VzPGJvb2w+Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWN0
RWRnZXM8Ym9vbD4+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZUlzUGlubmVkVG9MZWZ0U2lkZSk6CisgICAgICAgIChXS1BhZ2VJc1Bpbm5lZFRvUmln
aHRTaWRlKToKKyAgICAgICAgKFdLUGFnZUlzUGlubmVkVG9Ub3BTaWRlKToKKyAgICAgICAgKFdL
UGFnZUlzUGlubmVkVG9Cb3R0b21TaWRlKToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRM
ZWZ0KToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRSaWdodCk6CisgICAgICAgIChXS1Bh
Z2VSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRCb3R0b20p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdl
YktpdDo6dG9XS1JlY3RFZGdlKToKKyAgICAgICAgKFdlYktpdDo6dG9SZWN0RWRnZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGlubmVkU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cnViYmVyQmFuZGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0UnViYmVyQmFuZGluZ0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVy
ZUNvbnRyb2xsZXI6OlBlbmRpbmdTd2lwZVRyYWNrZXI6OnNjcm9sbEV2ZW50Q2FuQmVjb21lU3dp
cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0TGVmdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFJpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0VG9wKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJ1YmJlckJhbmRzQXRMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5kc0F0UmlnaHQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3AgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRCb3R0
b20gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlTWFpbkZyYW1lU2Ny
b2xsT2Zmc2V0UGlubmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAyMS0wOS0zMCAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+
CiAKICAgICAgICAgRml4ICFFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSBidWlsZCBh
ZnRlciByMjgzMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRl
eCAyYjM3NWY1YmQ0NDI3YzgzNzFlNTA1ZjYwNzQ4YTIzZmJjNDliNmIyLi45YjE1MWQ3YjFmM2Fh
ZTBkNjEzYmI1MjMzYjg4MTBhMDQ5MTA0MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKQEAgLTMyMSw3ICszMjEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyAiUGlu
bmVkIiBtZWFucyBzY3JvbGxlZCBhdCBvciBiZXlvbmQgdGhlIGVkZ2UuCiAgICAgYm9vbCBpc1Bp
bm5lZE9uU2lkZShCb3hTaWRlKSBjb25zdDsKLSAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5l
ZFN0YXRlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVjdEVkZ2VzPGJvb2w+IGVkZ2VQ
aW5uZWRTdGF0ZSgpIGNvbnN0OwogCiAgICAgLy8gVHJ1ZSBpZiBzY3JvbGxpbmcgaGFwcGVucyBi
eSBtb3ZpbmcgY29tcG9zaXRpbmcgbGF5ZXJzLgogICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmYWJjZWY2YzIxMjUyM2Vm
MDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi40ZTExNzMxZmZjM2ZlZDg0ZjMzNzlmNGIzYWI4MWVi
NzM2ZGUxMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKQEAgLTY3NCw3ICs2NzQsMTggQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94
RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG8KIHsK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdEJveEV4dGVudCk7CiB9CisKKwordm9pZCBBcmd1bWVudENvZGVyPFJlY3RF
ZGdlczxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9v
bD4mIGJveEVkZ2VzKQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+
Pjo6ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKK30KICAgICAKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVjdEVkZ2VzPGJv
b2w+JiBib3hFZGdlcykKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRn
ZXM8Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOworfQorCiAKIHZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRT
aXplJiBmbG9hdFNpemUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJlMDFmOTYu
LjNlMDZkYWJiNjI0Njc0MzU3NjFiZjAzNTc4M2I3NGU1NmZlYzUzNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMjEsNiArMzIxLDExIEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+
IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiYpOworICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlY3RF
ZGdlczxib29sPiYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGbG9hdFNpemU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYWIyMjkxZTM0MWI1MzA4YjhlNTVlNDVkYWQ5
YWZiOWU0NGM5NjY0OC4uYzBkNjkwNDVmOGI2NzQ2ZGYxMGU3MWY5YjQzNWI4YjkyNmY2OTkxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC02NzgsMjcgKzY3
OCwyNyBAQCBib29sIFdLUGFnZUFyZVNjcm9sbGJhckFuaW1hdGlvbnNTdXBwcmVzc2VkKFdLUGFn
ZVJlZiBwYWdlUmVmKQogCiBib29sIFdLUGFnZUlzUGlubmVkVG9MZWZ0U2lkZShXS1BhZ2VSZWYg
cGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5pc1Bpbm5lZFRvTGVmdFNp
ZGUoKTsKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLmxlZnQoKTsK
IH0KIAogYm9vbCBXS1BhZ2VJc1Bpbm5lZFRvUmlnaHRTaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQog
ewotICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPmlzUGlubmVkVG9SaWdodFNpZGUoKTsKKyAg
ICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLnJpZ2h0KCk7CiB9CiAKIGJv
b2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7Ci0gICAgcmV0
dXJuIHRvSW1wbChwYWdlUmVmKS0+aXNQaW5uZWRUb1RvcFNpZGUoKTsKKyAgICByZXR1cm4gdG9J
bXBsKHBhZ2VSZWYpLT5waW5uZWRTdGF0ZSgpLnRvcCgpOwogfQogCiBib29sIFdLUGFnZUlzUGlu
bmVkVG9Cb3R0b21TaWRlKFdLUGFnZVJlZiBwYWdlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwo
cGFnZVJlZiktPmlzUGlubmVkVG9Cb3R0b21TaWRlKCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdl
UmVmKS0+cGlubmVkU3RhdGUoKS5ib3R0b20oKTsKIH0KIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5k
c0F0TGVmdChXS1BhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYp
LT5ydWJiZXJCYW5kc0F0TGVmdCgpOworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJl
ckJhbmRhYmxlRWRnZXMoKS5sZWZ0KCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dExlZnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdExlZnQpCkBAIC03MDks
NyArNzA5LDcgQEAgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0TGVmdChXS1BhZ2VSZWYgcGFn
ZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0TGVmdCkKIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0
UmlnaHQoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+
cnViYmVyQmFuZHNBdFJpZ2h0KCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVy
QmFuZGFibGVFZGdlcygpLnJpZ2h0KCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dFJpZ2h0KFdLUGFnZVJlZiBwYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRSaWdodCkKQEAgLTcy
MCw3ICs3MjAsNyBAQCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRSaWdodChXS1BhZ2VSZWYg
cGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQpCiAKIGJvb2wgV0tQYWdlUnViYmVyQmFu
ZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYp
LT5ydWJiZXJCYW5kc0F0VG9wKCk7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVy
QmFuZGFibGVFZGdlcygpLnRvcCgpOwogfQogCiB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRU
b3AoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKQEAgLTczMSw3ICs3
MzEsNyBAQCB2b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRUb3AoV0tQYWdlUmVmIHBhZ2VSZWYs
IGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKIAogYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9t
KFdLUGFnZVJlZiBwYWdlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJl
ckJhbmRzQXRCb3R0b20oKTsKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5ydWJiZXJCYW5k
YWJsZUVkZ2VzKCkuYm90dG9tKCk7CiB9CiAKIHZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNBdEJv
dHRvbShXS1BhZ2VSZWYgcGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA5YWFiN2ZiNjg2
YmY2ZTU2YWI1MzYyY2Q3ZmRmMmRjOTk5ZjRiNWM1Li43NTVlNmE2YzJmYTVhNGJkYjBmMjM2NDIy
MGE5NDA3NTRhNjhiOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtNTYwOSw0MCArNTYwOSw0OCBAQCB2b2lkIFdlYlZpZXdJbXBsOjptb3Vz
ZU1vdmVkKE5TRXZlbnQgKmV2ZW50KQogICAgIG1vdXNlTW92ZWRJbnRlcm5hbChldmVudCk7CiB9
CiAKK3N0YXRpYyBfV0tSZWN0RWRnZSB0b1dLUmVjdEVkZ2UoUmVjdEVkZ2VzPGJvb2w+IGVkZ2Vz
KQoreworICAgIF9XS1JlY3RFZGdlIHJlc3VsdCA9IF9XS1JlY3RFZGdlTm9uZTsKKworICAgIGlm
IChlZGdlcy5sZWZ0KCkpCisgICAgICAgIHJlc3VsdCB8PSBfV0tSZWN0RWRnZUxlZnQ7CisKKyAg
ICBpZiAoZWRnZXMucmlnaHQoKSkKKyAgICAgICAgcmVzdWx0IHw9IF9XS1JlY3RFZGdlUmlnaHQ7
CisKKyAgICBpZiAoZWRnZXMudG9wKCkpCisgICAgICAgIHJlc3VsdCB8PSBfV0tSZWN0RWRnZVRv
cDsKKworICAgIGlmIChlZGdlcy5ib3R0b20oKSkKKyAgICAgICAgcmVzdWx0IHw9IF9XS1JlY3RF
ZGdlQm90dG9tOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFJlY3RFZGdlczxi
b29sPiB0b1JlY3RFZGdlcyhfV0tSZWN0RWRnZSBlZGdlcykKK3sKKyAgICByZXR1cm4geworICAg
ICAgICBlZGdlcyAmIF9XS1JlY3RFZGdlVG9wLAorICAgICAgICBlZGdlcyAmIF9XS1JlY3RFZGdl
UmlnaHQsCisgICAgICAgIGVkZ2VzICYgX1dLUmVjdEVkZ2VCb3R0b20sCisgICAgICAgIGVkZ2Vz
ICYgX1dLUmVjdEVkZ2VMZWZ0CisgICAgfTsKK30KKwogX1dLUmVjdEVkZ2UgV2ViVmlld0ltcGw6
OnBpbm5lZFN0YXRlKCkKIHsKLSAgICBfV0tSZWN0RWRnZSBzdGF0ZSA9IF9XS1JlY3RFZGdlTm9u
ZTsKLSAgICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvTGVmdFNpZGUoKSkKLSAgICAgICAgc3RhdGUg
fD0gX1dLUmVjdEVkZ2VMZWZ0OwotICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9SaWdodFNpZGUo
KSkKLSAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VSaWdodDsKLSAgICBpZiAobV9wYWdlLT5p
c1Bpbm5lZFRvVG9wU2lkZSgpKQotICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVRvcDsKLSAg
ICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvQm90dG9tU2lkZSgpKQotICAgICAgICBzdGF0ZSB8PSBf
V0tSZWN0RWRnZUJvdHRvbTsKLSAgICByZXR1cm4gc3RhdGU7CisgICAgcmV0dXJuIHRvV0tSZWN0
RWRnZShtX3BhZ2UtPnBpbm5lZFN0YXRlKCkpOwogfQogCiBfV0tSZWN0RWRnZSBXZWJWaWV3SW1w
bDo6cnViYmVyQmFuZGluZ0VuYWJsZWQoKQogewotICAgIF9XS1JlY3RFZGdlIHN0YXRlID0gX1dL
UmVjdEVkZ2VOb25lOwotICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRMZWZ0KCkpCi0gICAg
ICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlTGVmdDsKLSAgICBpZiAobV9wYWdlLT5ydWJiZXJCYW5k
c0F0UmlnaHQoKSkKLSAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VSaWdodDsKLSAgICBpZiAo
bV9wYWdlLT5ydWJiZXJCYW5kc0F0VG9wKCkpCi0gICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdl
VG9wOwotICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRCb3R0b20oKSkKLSAgICAgICAgc3Rh
dGUgfD0gX1dLUmVjdEVkZ2VCb3R0b207Ci0gICAgcmV0dXJuIHN0YXRlOworICAgIHJldHVybiB0
b1dLUmVjdEVkZ2UobV9wYWdlLT5ydWJiZXJCYW5kYWJsZUVkZ2VzKCkpOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRSdWJiZXJCYW5kaW5nRW5hYmxlZChfV0tSZWN0RWRnZSBzdGF0ZSkKIHsK
LSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRMZWZ0KHN0YXRlICYgX1dLUmVjdEVkZ2VMZWZ0
KTsKLSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRSaWdodChzdGF0ZSAmIF9XS1JlY3RFZGdl
UmlnaHQpOwotICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdFRvcChzdGF0ZSAmIF9XS1JlY3RF
ZGdlVG9wKTsKLSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRCb3R0b20oc3RhdGUgJiBfV0tS
ZWN0RWRnZUJvdHRvbSk7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kYWJsZUVkZ2VzKHRvUmVj
dEVkZ2VzKHN0YXRlKSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihOU0V2ZW50
ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIuY3BwCmluZGV4IDE2NTU5MWU0MDI3ZmVkNDk5YWI3ZDJiYzk2MzlkMjM5MDM3MzViMjQu
LjViNDliOTkxN2I3NzQ3NTYyZDg3ZTBiMzgzNmIxNGNjMWU3ZDY0MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtNDIxLDgg
KzQyMSw4IEBAIGJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpQZW5kaW5nU3dpcGVUcmFja2Vy
OjpzY3JvbGxFdmVudENhbkJlY29tZVN3aXBlKFBsYXRmCiAgICAgaWYgKGRlbHRhU2hvdWxkQ2Fu
Y2VsU3dpcGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wgaXNQaW5u
ZWRUb0xlZnQgPSBtX3Nob3VsZElnbm9yZVBpbm5lZFN0YXRlIHx8IG1fd2ViUGFnZVByb3h5Lmlz
UGlubmVkVG9MZWZ0U2lkZSgpOwotICAgIGJvb2wgaXNQaW5uZWRUb1JpZ2h0ID0gbV9zaG91bGRJ
Z25vcmVQaW5uZWRTdGF0ZSB8fCBtX3dlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmlnaHRTaWRlKCk7
CisgICAgYm9vbCBpc1Bpbm5lZFRvTGVmdCA9IG1fc2hvdWxkSWdub3JlUGlubmVkU3RhdGUgfHwg
bV93ZWJQYWdlUHJveHkucGlubmVkU3RhdGUoKS5sZWZ0KCk7CisgICAgYm9vbCBpc1Bpbm5lZFRv
UmlnaHQgPSBtX3Nob3VsZElnbm9yZVBpbm5lZFN0YXRlIHx8IG1fd2ViUGFnZVByb3h5LnBpbm5l
ZFN0YXRlKCkucmlnaHQoKTsKIAogICAgIGJvb2wgdHJ5aW5nVG9Td2lwZUJhY2sgPSBzaXplLndp
ZHRoKCkgPiAwICYmIGlzUGlubmVkVG9MZWZ0OwogICAgIGJvb2wgdHJ5aW5nVG9Td2lwZUZvcndh
cmQgPSBzaXplLndpZHRoKCkgPCAwICYmIGlzUGlubmVkVG9SaWdodDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI1YTRiNjk4OGJlMDRmMjZiODQ3YTMzYjRk
MjEyNTJhZGNjODYwNjIuLmM3MjBhYTk5NzRkYWE5MTgyN2NkMWRmYzc1MDA2NjJiZDBiMmNiOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjkxOCwxNSAr
MjkxOCwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZFdoZWVsRXZlbnQoY29uc3QgV2ViV2hl
ZWxFdmVudCYgZXZlbnQpCiAgICAgbV93aGVlbEV2ZW50QWN0aXZpdHlIeXN0ZXJlc2lzLmltcHVs
c2UoKTsKICNlbmRpZgogCi0gICAgc2VuZCgKLSAgICAgICAgTWVzc2FnZXM6OkV2ZW50RGlzcGF0
Y2hlcjo6V2hlZWxFdmVudCgKLSAgICAgICAgICAgIG1fd2ViUGFnZUlELAotICAgICAgICAgICAg
ZXZlbnQsCi0gICAgICAgICAgICBzaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKCkg
PyAhbV9iYWNrRm9yd2FyZExpc3QtPmJhY2tJdGVtKCkgOiBydWJiZXJCYW5kc0F0TGVmdCgpLAot
ICAgICAgICAgICAgc2hvdWxkVXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbCgpID8gIW1fYmFj
a0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpIDogcnViYmVyQmFuZHNBdFJpZ2h0KCksCi0gICAg
ICAgICAgICBydWJiZXJCYW5kc0F0VG9wKCksCi0gICAgICAgICAgICBydWJiZXJCYW5kc0F0Qm90
dG9tKCkKLSAgICAgICAgKSwgMCk7CisgICAgYXV0byBydWJiZXJCYW5kYWJsZUVkZ2VzID0gdGhp
cy0+cnViYmVyQmFuZGFibGVFZGdlcygpOworICAgIGlmIChzaG91bGRVc2VJbXBsaWNpdFJ1YmJl
ckJhbmRDb250cm9sKCkpIHsKKyAgICAgICAgcnViYmVyQmFuZGFibGVFZGdlcy5zZXRMZWZ0KCFt
X2JhY2tGb3J3YXJkTGlzdC0+YmFja0l0ZW0oKSk7CisgICAgICAgIHJ1YmJlckJhbmRhYmxlRWRn
ZXMuc2V0UmlnaHQoIW1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKKyAgICB9Cisg
ICAgc2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpXaGVlbEV2ZW50KG1fd2ViUGFnZUlE
LCBldmVudCwgcnViYmVyQmFuZGFibGVFZGdlcyksIDApOwogCiAgICAgLy8gTWFudWFsbHkgcGlu
ZyB0aGUgd2ViIHByb2Nlc3MgdG8gY2hlY2sgZm9yIHJlc3BvbnNpdmVuZXNzIHNpbmNlIG91ciB3
aGVlbAogICAgIC8vIGV2ZW50IHdpbGwgZGlzcGF0Y2ggdG8gYSBub24tbWFpbiB0aHJlYWQsIHdo
aWNoIGFsd2F5cyByZXNwb25kcy4KQEAgLTQxMzMsNDQgKzQxMzAsMjQgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0
aW9ucykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTdXBwcmVzc1Njcm9sbGJhckFu
aW1hdGlvbnMoc3VwcHJlc3NBbmltYXRpb25zKSk7CiB9CiAKLWJvb2wgV2ViUGFnZVByb3h5Ojpy
dWJiZXJCYW5kc0F0TGVmdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdExl
ZnQ7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0TGVmdChib29sIHJ1
YmJlckJhbmRzQXRMZWZ0KQogewotICAgIG1fcnViYmVyQmFuZHNBdExlZnQgPSBydWJiZXJCYW5k
c0F0TGVmdDsKLX0KLQotYm9vbCBXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRSaWdodCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdFJpZ2h0OworICAgIG1fcnViYmVyQmFu
ZGFibGVFZGdlcy5zZXRMZWZ0KHJ1YmJlckJhbmRzQXRMZWZ0KTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnNldFJ1YmJlckJhbmRzQXRSaWdodChib29sIHJ1YmJlckJhbmRzQXRSaWdodCkKIHsK
LSAgICBtX3J1YmJlckJhbmRzQXRSaWdodCA9IHJ1YmJlckJhbmRzQXRSaWdodDsKLX0KLQotYm9v
bCBXZWJQYWdlUHJveHk6OnJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdAotewotICAgIHJldHVybiBt
X3J1YmJlckJhbmRzQXRUb3A7CisgICAgbV9ydWJiZXJCYW5kYWJsZUVkZ2VzLnNldFJpZ2h0KHJ1
YmJlckJhbmRzQXRSaWdodCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5k
c0F0VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKIHsKLSAgICBtX3J1YmJlckJhbmRzQXRUb3Ag
PSBydWJiZXJCYW5kc0F0VG9wOwotfQotCi1ib29sIFdlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNB
dEJvdHRvbSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAg
ICBtX3J1YmJlckJhbmRhYmxlRWRnZXMuc2V0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRz
QXRCb3R0b20pCiB7Ci0gICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJv
dHRvbTsKKyAgICBtX3J1YmJlckJhbmRhYmxlRWRnZXMuc2V0Qm90dG9tKHJ1YmJlckJhbmRzQXRC
b3R0b20pOwogfQogICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEVuYWJsZVZlcnRpY2FsUnVi
YmVyQmFuZGluZyhib29sIGVuYWJsZVZlcnRpY2FsUnViYmVyQmFuZGluZykKQEAgLTQ5NDIsMTEg
KzQ5MTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgICAgICBpZiAobV9tYWluRnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIpIHsKICAgICAgICAgICAgIC8vIEFsd2F5cyBhc3N1
bWUgdGhhdCB0aGUgbWFpbiBmcmFtZSBpcyBwaW5uZWQgaGVyZSwgc2luY2UgdGhlIGN1c3RvbSBy
ZXByZXNlbnRhdGlvbiB2aWV3IHdpbGwgaGFuZGxlCiAgICAgICAgICAgICAvLyBhbnkgd2hlZWwg
ZXZlbnRzIGFuZCBkaXNwYXRjaCB0aGVtIHRvIHRoZSBXS1ZpZXcgd2hlbiBuZWNlc3NhcnkuCi0g
ICAgICAgICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZSA9IHRydWU7Ci0gICAgICAg
ICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUgPSB0cnVlOwotICAgICAgICAgICAg
bV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSA9IHRydWU7Ci0gICAgICAgICAgICBtX21haW5G
cmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlID0gdHJ1ZTsKLQorICAgICAgICAgICAgbV9tYWluRnJh
bWVQaW5uZWRTdGF0ZSA9IHsgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSB9OwogICAgICAgICAgICAg
bV91aUNsaWVudC0+cGlubmVkU3RhdGVEaWRDaGFuZ2UoKnRoaXMpOwogICAgICAgICB9CiAgICAg
ICAgIHBhZ2VDbGllbnQoKS5kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKG1pbWVUeXBlLCBmcmFt
ZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlcik7CkBAIC03ODgyLDEwICs3ODU1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29u
KQogICAgIG1fbWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGZhbHNlOwogICAgIG1f
bWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgPSBmYWxzZTsKIAotICAgIG1fbWFpbkZyYW1l
SXNQaW5uZWRUb0xlZnRTaWRlID0gdHJ1ZTsKLSAgICBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdo
dFNpZGUgPSB0cnVlOwotICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGUgPSB0cnVlOwot
ICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUgPSB0cnVlOworICAgIG1fbWFpbkZy
YW1lUGlubmVkU3RhdGUgPSB7IHRydWUsIHRydWUsIHRydWUsIHRydWUgfTsKIAogICAgIG1fdmlz
aWJsZVNjcm9sbGVyVGh1bWJSZWN0ID0gSW50UmVjdCgpOwogCkBAIC04Nzk4LDEzICs4NzY4LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKGJv
b2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwKICAgICBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Ny
b2xsYmFyID0gaGFzVmVydGljYWxTY3JvbGxiYXI7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0
U2lkZSwgYm9vbCBwaW5uZWRUb1JpZ2h0U2lkZSwgYm9vbCBwaW5uZWRUb1RvcFNpZGUsIGJvb2wg
cGlubmVkVG9Cb3R0b21TaWRlKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVNjcm9sbE9m
ZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoUmVjdEVkZ2VzPGJvb2w+IHBpbm5lZFN0YXRlKQogewog
ICAgIHBhZ2VDbGllbnQoKS5waW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKTsKLSAgICBtX21haW5GcmFt
ZUlzUGlubmVkVG9MZWZ0U2lkZSA9IHBpbm5lZFRvTGVmdFNpZGU7Ci0gICAgbV9tYWluRnJhbWVJ
c1Bpbm5lZFRvUmlnaHRTaWRlID0gcGlubmVkVG9SaWdodFNpZGU7Ci0gICAgbV9tYWluRnJhbWVJ
c1Bpbm5lZFRvVG9wU2lkZSA9IHBpbm5lZFRvVG9wU2lkZTsKLSAgICBtX21haW5GcmFtZUlzUGlu
bmVkVG9Cb3R0b21TaWRlID0gcGlubmVkVG9Cb3R0b21TaWRlOworICAgIG1fbWFpbkZyYW1lUGlu
bmVkU3RhdGUgPSBwaW5uZWRTdGF0ZTsKICAgICBwYWdlQ2xpZW50KCkucGlubmVkU3RhdGVEaWRD
aGFuZ2UoKTsKIAogICAgIG1fdWlDbGllbnQtPnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCp0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTJjMjA4OTI4N2U3MjQ1
MzhkMWFhNzA1YjFlZjQyZDE3MmNhNjQ4OC4uMDY5OWU0NGY5ZDdlNzU5Y2NjMThiNzc0ZjQzNTZm
NDljODYwZTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEw
NCw2ICsxMDQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVj
dEVkZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CkBAIC0xMDk0LDE4ICsxMDk1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sKTsKICAgICBib29sIGFyZVNjcm9s
bGJhckFuaW1hdGlvbnNTdXBwcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwcmVzc1Njcm9s
bGJhckFuaW1hdGlvbnM7IH0KIAotICAgIGJvb2wgaXNQaW5uZWRUb0xlZnRTaWRlKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGU7IH0KLSAgICBib29sIGlzUGlu
bmVkVG9SaWdodFNpZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdo
dFNpZGU7IH0KLSAgICBib29sIGlzUGlubmVkVG9Ub3BTaWRlKCkgY29uc3QgeyByZXR1cm4gbV9t
YWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsgfQotICAgIGJvb2wgaXNQaW5uZWRUb0JvdHRvbVNp
ZGUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlOyB9Cisg
ICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IHBpbm5lZFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9tYWluRnJhbWVQaW5uZWRTdGF0ZTsgfQogCi0gICAgYm9vbCBydWJiZXJCYW5kc0F0TGVmdCgp
IGNvbnN0OworICAgIFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBydWJiZXJCYW5kYWJsZUVkZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9ydWJiZXJCYW5kYWJsZUVkZ2VzOyB9CisgICAgdm9pZCBzZXRS
dWJiZXJCYW5kYWJsZUVkZ2VzKFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBlZGdlcykgeyBtX3J1
YmJlckJhbmRhYmxlRWRnZXMgPSBlZGdlczsgfQogICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdExl
ZnQoYm9vbCk7Ci0gICAgYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQoKSBjb25zdDsKICAgICB2b2lk
IHNldFJ1YmJlckJhbmRzQXRSaWdodChib29sKTsKLSAgICBib29sIHJ1YmJlckJhbmRzQXRUb3Ao
KSBjb25zdDsKICAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7Ci0gICAgYm9vbCBy
dWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250
cm9sKGJvb2wgc2hvdWxkVXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbCkgeyBtX3Nob3VsZFVz
ZUltcGxpY2l0UnViYmVyQmFuZENvbnRyb2wgPSBzaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRD
b250cm9sOyB9CkBAIC0yMTUyLDcgKzIxNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5
U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAg
ICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5
bGUpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hv
cml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwotICAgIHZvaWQg
ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVm
dFNpZGUsIGJvb2wgcGlubmVkVG9SaWdodFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29s
IHBpbm5lZFRvQm90dG9tU2lkZSk7CisgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5u
aW5nRm9yTWFpbkZyYW1lKFdlYkNvcmU6OlJlY3RFZGdlczxib29sPik7CiAgICAgdm9pZCBkaWRD
aGFuZ2VQYWdlQ291bnQodW5zaWduZWQpOwogICAgIHZvaWQgdGhlbWVDb2xvckNoYW5nZWQoY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2b2lkIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xv
ckRpZENoYW5nZShjb25zdCBXZWJDb3JlOjpDb2xvciYpOwpAQCAtMjg1OSw3ICsyODU1LDEwIEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFBhZ2VMb2FkU3RhdGUgbV9wYWdlTG9hZFN0YXRlOwot
ICAgIAorCisgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IG1fbWFpbkZyYW1lUGlubmVkU3Rh
dGUgeyB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlIH07CisgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJv
b2w+IG1fcnViYmVyQmFuZGFibGVFZGdlcyB7IHRydWUsIHRydWUsIHRydWUsIHRydWUgfTsKKwog
ICAgIGJvb2wgbV9kZWxlZ2F0ZXNTY3JvbGxpbmcgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX21h
aW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwpAQCAtMjg2OCwxNiArMjg2
Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2hldGhlciBob3Jpem9udGFsIHdoZWVsIGV2ZW50cyBj
YW4gYmUgaGFuZGxlZCBkaXJlY3RseSBmb3Igc3dpcGluZyBwdXJwb3Nlcy4KICAgICBib29sIG1f
Y2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzIHsgdHJ1ZSB9OwogCi0gICAgYm9v
bCBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZSB7IHRydWUgfTsKLSAgICBib29sIG1fbWFp
bkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZSB7IHRydWUgfTsKLSAgICBib29sIG1fbWFpbkZyYW1l
SXNQaW5uZWRUb1RvcFNpZGUgeyB0cnVlIH07Ci0gICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVk
VG9Cb3R0b21TaWRlIHsgdHJ1ZSB9OwotCiAgICAgYm9vbCBtX3Nob3VsZFVzZUltcGxpY2l0UnVi
YmVyQmFuZENvbnRyb2wgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0TGVmdCB7
IHRydWUgfTsKLSAgICBib29sIG1fcnViYmVyQmFuZHNBdFJpZ2h0IHsgdHJ1ZSB9OwotICAgIGJv
b2wgbV9ydWJiZXJCYW5kc0F0VG9wIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0
Qm90dG9tIHsgdHJ1ZSB9OwogICAgICAgICAKICAgICBib29sIG1fZW5hYmxlVmVydGljYWxSdWJi
ZXJCYW5kaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9lbmFibGVIb3Jpem9udGFsUnViYmVyQmFu
ZGluZyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA0MzZlOWM5NGZmZWQzZDZjYTYxYjIyOWM0ZTg3OTgxMjJjODUx
YjE5Li43MmU1NmRmZmU2ZTVmNDBiM2VhNTMyZWFkZTNmZDE5OGQ4ZGVmMGU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC03NSw3
ICs3NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTm90aWZ5U2Nyb2xsZXJU
aHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAg
UmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQogICAg
IERpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xs
YmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKQotICAgIERpZENoYW5nZVNjcm9sbE9mZnNl
dFBpbm5pbmdGb3JNYWluRnJhbWUoYm9vbCBwaW5uZWRUb0xlZnRTaWRlLCBib29sIHBpbm5lZFRv
UmlnaHRTaWRlLCBib29sIHBpbm5lZFRvVG9wU2lkZSwgYm9vbCBwaW5uZWRUb0JvdHRvbVNpZGUp
CisgICAgRGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShXZWJDb3JlOjpS
ZWN0RWRnZXM8Ym9vbD4gcGlubmVkU3RhdGUpCiAgICAgRGlkQ2hhbmdlUGFnZUNvdW50KHVuc2ln
bmVkIHBhZ2VDb3VudCkKICAgICBUaGVtZUNvbG9yQ2hhbmdlZChXZWJDb3JlOjpDb2xvciB0aGVt
ZUNvbG9yKQogICAgIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShXZWJDb3Jl
OjpDb2xvciBiYWNrZ3JvdW5kQ29sb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA0M2NmZTMxY2U4NGRkNjBjNGQ5
ZTgxMTQzODExZGQyNjAxYmRlYzk3Li42NDg0ZDkzNjllOTYyYjEwYjk1MjZkZTM5ZmI4ZmNjZjg1
MDA1OTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICBj
b25uZWN0aW9uLT5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkV2ZW50RGlz
cGF0Y2hlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdldCgpLCB0aGlzKTsKIH0K
IAotdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sIGNhblJ1YmJlckJhbmRBdExl
ZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBi
b29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2
ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgUmVjdEVkZ2VzPGJvb2w+IHJ1YmJlckJhbmRhYmxlRWRnZXMpCiB7CiAjaWYgUExBVEZPUk0o
Q09DT0EpIHx8IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIFBsYXRmb3JtV2hlZWxFdmVu
dCBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsKQEAgLTEzNyw3ICsx
MzcsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBw
YWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAgICAgICAvLyBzY3JvbGxpbmcgdHJl
ZSBjYW4gYmUgbm90aWZpZWQuCiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGF0
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdlc3R1cmUuCiAgICAgICAgIGlmIChwbGF0Zm9ybVdoZWVs
RXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4pCi0gICAgICAg
ICAgICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJiZXJCYW5kKHsgY2FuUnViYmVy
QmFuZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnViYmVyQmFuZEF0Qm90dG9tLCBj
YW5SdWJiZXJCYW5kQXRMZWZ0IH0pOworICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+c2V0TWFp
bkZyYW1lQ2FuUnViYmVyQmFuZChydWJiZXJCYW5kYWJsZUVkZ2VzKTsKIAogICAgICAgICBhdXRv
IHByb2Nlc3NpbmdTdGVwcyA9IHNjcm9sbGluZ1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9j
ZXNzaW5nKHBsYXRmb3JtV2hlZWxFdmVudCk7CiAKQEAgLTE2NSwxMCArMTY1LDcgQEAgdm9pZCBF
dmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBX
ZWJXaGVlbEV2ZW50JiB3aGUKICAgICAgICAgfSk7CiAgICAgfSB3aGlsZSAoZmFsc2UpOwogI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0TGVmdCk7Ci0gICAgVU5VU0VEX1BB
UkFNKGNhblJ1YmJlckJhbmRBdFJpZ2h0KTsKLSAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFu
ZEF0VG9wKTsKLSAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0Qm90dG9tKTsKKyAgICBV
TlVTRURfUEFSQU0ocnViYmVyQmFuZGFibGVFZGdlcyk7CiAKICAgICBkaXNwYXRjaFdoZWVsRXZl
bnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaAppbmRleCBkYTE1ZWM0NzBmMjMxMDdhODUxYzI0YjZiYjE2ZmEwMTMzYzQ5MTU1Li45
ODgxMjIwMWYwNDZlMzIzZmVkMTFiNGEwNWEwYWM5NWVkNTI3ZDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1XaGVlbEV2ZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZWN0RWRnZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1doZWVsRXZlbnRE
ZWx0YUZpbHRlci5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgpAQCAtODIsNyArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzCi0gICAgdm9pZCB3aGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBib29sIGNh
blJ1YmJlckJhbmRBdFJpZ2h0LCBib29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBjYW5SdWJi
ZXJCYW5kQXRCb3R0b20pOworICAgIHZvaWQgd2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYsIFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBydWJi
ZXJCYW5kYWJsZUVkZ2VzKTsKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lk
IHRvdWNoRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlRvdWNoRXZlbnQm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHRvdWNoRXZlbnRX
aXRob3V0Q2FsbGJhY2soV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlRvdWNoRXZl
bnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgppbmRleCBhYzc3ZmUxY2JhOTlhNDYzNDljY2Q3
NWJjOTZmYmQxNWUzNzNkYzVmLi4wOWFmYzJjZWQxZDNmYmZjNjM5OTBiODg4NmI2MzY0ZjY4ODBi
MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7Ci0gICAgV2hlZWxFdmVudChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVu
dCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBib29sIGNhblJ1YmJlckJhbmRBdFJpZ2h0LCBi
b29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRCb3R0b20pCisgICAg
V2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViV2hl
ZWxFdmVudCBldmVudCwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IHJ1YmJlckJhbmRhYmxlRWRn
ZXMpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgVG91Y2hFdmVudChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4g
KGJvb2wgaGFuZGxlZCkgQXN5bmMgTWFpblRocmVhZENhbGxiYWNrCiAgICAgVG91Y2hFdmVudFdp
dGhvdXRDYWxsYmFjayhXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2Vi
VG91Y2hFdmVudCBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMjJkMDkyMWU5YjFkZGMzZjJkZjY4OTdmNWM4NzJhOWNiYTVjNTg5MS4u
ZGIwNGYxOGE4ZDc2ZGU1NjgyZmQ1NmM3ZDhhMTEyZjc5ZjdkZWNlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ5NDMsMjMgKzQ5NDMsMTQg
QEAgdm9pZCBXZWJQYWdlOjphZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50UHJvdmlkZXIoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVNYWluRnJhbWVTY3Jv
bGxPZmZzZXRQaW5uaW5nKCkKIHsKLSAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpOwotICAgIFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uID0gZnJhbWUudmlldygpLT5z
Y3JvbGxQb3NpdGlvbigpOwotICAgIFNjcm9sbFBvc2l0aW9uIG1heGltdW1TY3JvbGxQb3NpdGlv
biA9IGZyYW1lLnZpZXcoKS0+bWF4aW11bVNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgU2Nyb2xsUG9z
aXRpb24gbWluaW11bVNjcm9sbFBvc2l0aW9uID0gZnJhbWUudmlldygpLT5taW5pbXVtU2Nyb2xs
UG9zaXRpb24oKTsKLQotICAgIGJvb2wgaXNQaW5uZWRUb0xlZnRTaWRlID0gKHNjcm9sbFBvc2l0
aW9uLngoKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24ueCgpKTsKLSAgICBib29sIGlzUGlubmVk
VG9SaWdodFNpZGUgPSAoc2Nyb2xsUG9zaXRpb24ueCgpID49IG1heGltdW1TY3JvbGxQb3NpdGlv
bi54KCkpOwotICAgIGJvb2wgaXNQaW5uZWRUb1RvcFNpZGUgPSAoc2Nyb2xsUG9zaXRpb24ueSgp
IDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbi55KCkpOwotICAgIGJvb2wgaXNQaW5uZWRUb0JvdHRv
bVNpZGUgPSAoc2Nyb2xsUG9zaXRpb24ueSgpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbi55KCkp
OwotCi0gICAgaWYgKGlzUGlubmVkVG9MZWZ0U2lkZSAhPSBtX2NhY2hlZE1haW5GcmFtZUlzUGlu
bmVkVG9MZWZ0U2lkZSB8fCBpc1Bpbm5lZFRvUmlnaHRTaWRlICE9IG1fY2FjaGVkTWFpbkZyYW1l
SXNQaW5uZWRUb1JpZ2h0U2lkZSB8fCBpc1Bpbm5lZFRvVG9wU2lkZSAhPSBtX2NhY2hlZE1haW5G
cmFtZUlzUGlubmVkVG9Ub3BTaWRlIHx8IGlzUGlubmVkVG9Cb3R0b21TaWRlICE9IG1fY2FjaGVk
TWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGlz
UGlubmVkVG9MZWZ0U2lkZSwgaXNQaW5uZWRUb1JpZ2h0U2lkZSwgaXNQaW5uZWRUb1RvcFNpZGUs
IGlzUGlubmVkVG9Cb3R0b21TaWRlKSk7Ci0gICAgICAgIAotICAgICAgICBtX2NhY2hlZE1haW5G
cmFtZUlzUGlubmVkVG9MZWZ0U2lkZSA9IGlzUGlubmVkVG9MZWZ0U2lkZTsKLSAgICAgICAgbV9j
YWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlID0gaXNQaW5uZWRUb1JpZ2h0U2lkZTsK
LSAgICAgICAgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSA9IGlzUGlubmVkVG9U
b3BTaWRlOwotICAgICAgICBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlID0g
aXNQaW5uZWRUb0JvdHRvbVNpZGU7CisgICAgYXV0byogZnJhbWVWaWV3ID0gbWFpbkZyYW1lVmll
dygpOworICAgIGlmICghZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHBp
bm5lZFN0YXRlID0gZnJhbWVWaWV3LT5lZGdlUGlubmVkU3RhdGUoKTsKKyAgICBpZiAocGlubmVk
U3RhdGUgIT0gbV9jYWNoZWRNYWluRnJhbWVQaW5uZWRTdGF0ZSkgeworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWlu
RnJhbWUocGlubmVkU3RhdGUpKTsKKyAgICAgICAgbV9jYWNoZWRNYWluRnJhbWVQaW5uZWRTdGF0
ZSA9IHBpbm5lZFN0YXRlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDA0NTU2MWVlYmY3MmQwYTU2YmJhN2JkYWJiYjI2YTRjMWNm
MWIzYTkuLmMxMzg1NTczYjBiZTVmZWM4MDE1MGE5NWZiMzk1MTk0M2E1MDQ2NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTgzLDYgKzgzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50
ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJRC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVjdEVkZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NpbXBsZVJhbmdlLmg+CkBAIC0yMTY2LDEwICsyMTY3LDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNpbXBsZVJhbmdlPiBtX3JhbmdlRm9y
RHJvcFNuYXBzaG90OwogI2VuZGlmCiAKLSAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5u
ZWRUb0xlZnRTaWRlIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5l
ZFRvUmlnaHRTaWRlIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5l
ZFRvVG9wU2lkZSB7IHRydWUgfTsKLSAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRU
b0JvdHRvbVNpZGUgeyB0cnVlIH07CisgICAgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+IG1fY2Fj
aGVkTWFpbkZyYW1lUGlubmVkU3RhdGUgeyB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlIH07CiAgICAg
Ym9vbCBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2hhc1doZWVsRXZlbnRIYW5kbGVycyB7IGZhbHNlIH07CiAK
</data>
<flag name="commit-queue"
          id="463564"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>