<?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>201428</bug_id>
          
          <creation_ts>2019-09-03 10:05:38 -0700</creation_ts>
          <short_desc>Rename WebPage::pageID() to WebPage::identifier()</short_desc>
          <delta_ts>2019-09-03 11:38: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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567413</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-03 10:05:38 -0700</bug_when>
    <thetext>Rename WebPage::pageID() to WebPage::identifier(). Using &quot;page&quot; is the name is redundant here, using identifier() is more consistent with WebPageProxy::identifier().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567414</commentid>
    <comment_count>1</comment_count>
      <attachid>377903</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-03 10:06:20 -0700</bug_when>
    <thetext>Created attachment 377903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567426</commentid>
    <comment_count>2</comment_count>
      <attachid>377905</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-03 10:34:58 -0700</bug_when>
    <thetext>Created attachment 377905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567428</commentid>
    <comment_count>3</comment_count>
      <attachid>377906</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-03 10:41:05 -0700</bug_when>
    <thetext>Created attachment 377906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567450</commentid>
    <comment_count>4</comment_count>
      <attachid>377906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-03 11:37:43 -0700</bug_when>
    <thetext>Comment on attachment 377906
Patch

Clearing flags on attachment: 377906

Committed r249435: &lt;https://trac.webkit.org/changeset/249435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567451</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-03 11:37:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567452</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-03 11:38:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/54983782&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377903</attachid>
            <date>2019-09-03 10:06:20 -0700</date>
            <delta_ts>2019-09-03 10:34:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201428-20190903100620.patch</filename>
            <type>text/plain</type>
            <size>79309</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2NWQxOWY1MWU4ZThjMjVk
ZDA3ZWJhNDQ1ODA4YTI5Mzc5OTZhNDIuLmVjNjBhMTY3NDhmMDQwMzc1NDU5OTVjOWIyNTYwNTA5
ZjkwMDlkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1IEBACisyMDE5LTA5LTAzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFdlYlBhZ2U6OnBhZ2VJ
RCgpIHRvIFdlYlBhZ2U6OmlkZW50aWZpZXIoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
OnNob3dQYXltZW50VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Fk
ZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2Vk
RnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6dG9vbGJhcnNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpzdGF0dXNiYXJWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjptZW51YmFyVmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6d3JhcENyeXB0b0tleSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpXZWJDb2xvckNob29zZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnJlYXR0YWNoQ29sb3JDaG9vc2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6aGFuZGxlS2V5ZG93bldp
dGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVu
dTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNsaWVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjpUZXh0Q2hl
Y2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNo
RXZlbnRzRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6Z2V0UXVl
dWVkVG91Y2hFdmVudHNGb3JQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2Fn
ZVRvQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFu
Z2VTaGVldFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c3Rh
cnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmJy
aW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjbG9z
ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpyZW9wZW4p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cmVzZXRTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpvcGVuSW5OZXdUYWIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2F2ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjphcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2hvd0NlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjp+
Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1BdEluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6OmJhY2tMaXN0Q291bnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3Rvcjo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yOjpicmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OmVsZW1lbnRTZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yOjp0aW1lbGluZVJlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3I6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1Npemlu
Z0FkanVzdG1lbnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZnJlZXplTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dW5mcmVlemVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlU2Vz
c2lvbkludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Q3VycmVudEhpc3Rv
cnlJdGVtRm9yUmVhdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJc0lu
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1haW5GcmFtZURpZExheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0
c0luUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JUZXh0SW5wdXRD
b250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cGFnZUlEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW06CisgICAg
ICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6Y29weSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6UGxheWJhY2tTZXNzaW9uTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6On5QbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6aW52YWxpZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKToKKwogMjAxOS0wOS0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBE
ZXByZWNhdGUgbm9uZnVuY3Rpb25hbCBwcm9jZXNzIGxpbWl0IEFQSXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5t
bQppbmRleCBjNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4Li5hYjJlZDli
ZTMwZWFhNzg1NWExZDM0NDNmMGQ0ZmM4YzhiMjM4Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCkBA
IC0zOSw3ICszOSw3IEBAIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdl
UHJveHkmKXBhZ2UKIAogLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdl
CiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVBy
b3h5SWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLnBhZ2VJRCgpXTsKKyAgICByZXR1cm4g
W3NlbGYgX2luaXRXaXRoUGFnZVByb3h5SUQ6cGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkg
YW5kV2ViUGFnZUlEOnBhZ2UuaWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2luaXRXaXRoUGFn
ZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRX
ZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcAppbmRleCA1N2YzZmUxNzNjY2Q5NTE3MzY0MmExOTVlN2NmZDEwMTg4Njk4OGNjLi4y
NDY4YzAwYWMxNzdmZDFiMGQ0ZGY0YzIyMDJlYWMzMTI0NTE5ZDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlBheW1lbnRD
b29yZGluYXRvcjo6V2ViUGF5bWVudENvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAg
OiBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29y
ZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmllcigpLCAq
dGhpcyk7CiB9CiAKIFdlYlBheW1lbnRDb29yZGluYXRvcjo6fldlYlBheW1lbnRDb29yZGluYXRv
cigpCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5
bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvCiAgICAgICAgIGxp
bmtJY29uVVJMU3RyaW5ncy5hcHBlbmQobGlua0ljb25VUkwuc3RyaW5nKCkpOwogCiAgICAgYm9v
bCByZXN1bHQ7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OlNob3dQYXltZW50VUkobV93ZWJQYWdlLnBhZ2VJRCgpLCBtX3dlYlBhZ2Uuc2Vz
c2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBsaW5rSWNvblVSTFN0cmluZ3MsIHBh
eW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpTaG93
UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKKyAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6U2hvd1BheW1lbnRVSShtX3dlYlBhZ2UuaWRlbnRp
ZmllcigpLCBtX3dlYlBhZ2Uuc2Vzc2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBs
aW5rSWNvblVSTFN0cmluZ3MsIHBheW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5OjpTaG93UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE2OCw3ICsxNjgsNyBAQCBJ
UEM6OkNvbm5lY3Rpb24qIFdlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdAogCiB1aW50NjRfdCBXZWJQYXltZW50Q29vcmRpbmF0b3I6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJ
RCgpLnRvVUludDY0KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50
NjQoKTsKIH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OnZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDgwNTZl
OTI3NWE1M2I1ODA5OGRiZGY0ZjE4OGZiOTI1NTQwYTY3MjAuLmVjOGYxOWQ2ZjQ4NmEzN2IyY2Yz
YTJiZTcwZTQ3MjIwMTE4MjA4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9h
ZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1l
TG9hZGVyQ2xpZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiBudWxscHRy
OwogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiBu
dWxscHRyOwogCi0gICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkg
OiBQYWdlSWRlbnRpZmllciB7IH07CisgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFn
ZS0+aWRlbnRpZmllcigpIDogUGFnZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gZnJhbWVJRCA9
IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZyYW1lSWRlbnRpZmllciB7IH07CiAg
ICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCkBAIC02NzAsNyArNjcwLDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRl
ciwgY29uc3QgVVJMJiB1cmwsIFMKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IHBhcmFtZXRlcnMgeyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSB9OwogICAgIHBhcmFtZXRlcnMucmVx
dWVzdCA9IFJlc291cmNlUmVxdWVzdCB7IHVybCB9OwotICAgIHBhcmFtZXRlcnMud2ViUGFnZUlE
ID0gd2ViUGFnZS0+cGFnZUlEKCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdl
LT5pZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZy
YW1lSUQoKTsKICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCgpOwogICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXgg
MjBlNGQ1YzVhZGJkMDhhNTVkMTA3NzVlYjUyOWU3NzBlYWUyZDIyNS4uYTY1YmZhNWJiYWU5ZDlk
MzRkZDAwMTc5MzlkMmFmM2UzNjFiNzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNo
b3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgYXV0byBp
dCA9IG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5hZGQobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIFZlY3Rvcjx1aW50NjRfdD4oKSkuaXRlcmF0b3I7CiAgICAgaXQtPnZh
bHVlLmFwcGVuZChub3RpZmljYXRpb25JRCk7CiAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNh
dGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24t
PmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+cGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZp
Y2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29u
KCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBu
b3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5p
ZGVudGlmaWVyKCkpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkK
ICAgICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkp
OworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2Ut
PmlkZW50aWZpZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwog
ICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3Rp
ZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25z
KG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5v
dGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBz
aXplX3QgY291bnQgPSBub3RpZmljYXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3Rp
ZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsK
QEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ry
b3lOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlm
aWNhdGlvbklETWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0
aW9uRnJvbUNvbnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPnBhZ2VJ
RCgpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNh
dGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCA4NTY1OTE2NmNjMjFlZDk2MjY0MDc0Yjdl
ODY0MmIyYTg2MjE4Y2E1Li42NmZhMWE3OWJkMWY2NTk0Y2QyNmQ5NGMzNTc2ODg2MzFhNThmODli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApA
QCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAg
ICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2Uu
aWRlbnRpZmllcigpLCAqdGhpcyk7CiB9CiAKIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IDgzMzZhNDcyZjM2ODdmNjYzZGVlODQ0MmUyM2JlMzExMDllMDgwYWIuLjY2N2Y0N2ExNWQyNTZj
MzcyNTVjZDNlMThmMTY4MTBlNWViMGQ1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0x
ODAsNyArMTgwLDcgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiAK
ICAgICBGbG9hdFJlY3QgbmV3V2luZG93RnJhbWU7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okdl
dFdpbmRvd0ZyYW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSksIG1fcGFnZS5wYWdlSUQoKSkpCisg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZSgpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZTo6UmVwbHkobmV3V2luZG93RnJhbWUp
LCBtX3BhZ2UuaWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogCiAg
ICAgcmV0dXJuIG5ld1dpbmRvd0ZyYW1lOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkg
OiBudWxscHRyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFu
Z2VkKHdlYkZyYW1lID8gbWFrZU9wdGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpu
dWxsb3B0KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZv
Y3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1l
SUQoKSkgOiBXVEY6Om51bGxvcHQpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogUGFnZSog
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCkBAIC0yOTIsMTQgKzI5
MiwxNCBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IG5ld1BhZ2VJRDsKICAgICBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZy
YW1lLT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwg
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rp
b25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3
UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nl
c3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFnZSgpLT53
ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRv
d0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlE
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBBU1NFUlQocGFyYW1ldGVycyk7CiAgICAg
aWYgKHBhcmFtZXRlcnMtPnNlc3Npb25JRCA9PSBtX3BhZ2Uuc2Vzc2lvbklEKCkpCi0gICAgICAg
IHBhcmFtZXRlcnMtPm9sZFBhZ2VJRCA9IG1fcGFnZS5wYWdlSUQoKTsKKyAgICAgICAgcGFyYW1l
dGVycy0+b2xkUGFnZUlEID0gbV9wYWdlLmlkZW50aWZpZXIoKTsKIAogICAgIHdlYlByb2Nlc3Mu
Y3JlYXRlV2ViUGFnZSgqbmV3UGFnZUlELCBXVEZNb3ZlKCpwYXJhbWV0ZXJzKSk7CiAgICAgcmV0
dXJuIHdlYlByb2Nlc3Mud2ViUGFnZSgqbmV3UGFnZUlEKS0+Y29yZVBhZ2UoKTsKQEAgLTMwOSw3
ICszMDksNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKIHsKICAgICBJUEM6OlVuYm91bmRlZFN5
bmNocm9ub3VzSVBDU2NvcGUgdW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZTsKICAgICBib29s
IGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5j
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShtX3BhZ2UucGFnZUlEKCkpLCBNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5j
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQorICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5KG1fcGFnZS5pZGVudGlmaWVyKCkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIGhhbmRsZWQ7CiB9CkBAIC0zNDYsNyArMzQ2LDcgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnRvb2xiYXJzVmlzaWJsZSgpCiAgICAgICAgIHJldHVybiB0b29sYmFyc1Zpc2li
aWxpdHkgPT0gQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1lbnRWaXNp
YmlsaXR5OjpWaXNpYmxlOwogICAgIAogICAgIGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlID0gdHJ1
ZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlz
aWJsZSgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OlJl
cGx5KHRvb2xiYXJzQXJlVmlzaWJsZSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGUoKSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6R2V0VG9vbGJhcnNBcmVWaXNpYmxlOjpSZXBseSh0b29sYmFyc0FyZVZp
c2libGUpLCBtX3BhZ2UuaWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICByZXR1cm4gdG9vbGJhcnNBcmVWaXNpYmxlOwpAQCAtMzY0LDcgKzM2NCw3IEBAIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzdGF0dXNiYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIHN0YXR1c2Jh
clZpc2liaWxpdHkgPT0gQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1l
bnRWaXNpYmlsaXR5OjpWaXNpYmxlOwogCiAgICAgYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUgPSB0
cnVlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNW
aXNpYmxlKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZTo6
UmVwbHkoc3RhdHVzQmFySXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZSgpLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OlJlcGx5KHN0YXR1c0Jhcklz
VmlzaWJsZSksIG1fcGFnZS5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHJldHVybiBzdGF0dXNCYXJJc1Zpc2libGU7CkBAIC0zOTMsNyArMzkzLDcgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6Om1lbnViYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIG1lbnViYXJW
aXNpYmlsaXR5ID09IEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6VUlFbGVtZW50
VmlzaWJpbGl0eTo6VmlzaWJsZTsKICAgICAKICAgICBib29sIG1lbnVCYXJJc1Zpc2libGUgPSB0
cnVlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklzVmlz
aWJsZSgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlOjpSZXBs
eShtZW51QmFySXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGUoKSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6R2V0TWVudUJhcklzVmlzaWJsZTo6UmVwbHkobWVudUJhcklzVmlzaWJsZSksIG1f
cGFnZS5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBt
ZW51QmFySXNWaXNpYmxlOwpAQCAtMTE4NSw3ICsxMTg1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmZvY3VzZWRDb250ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdlKHVpbnQ2NF90IGVsZW1lbnRJ
RCkKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgYm9v
bCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXcmFwQ3J5
cHRvS2V5KGtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldyYXBDcnlwdG9LZXk6OlJlcGx5
KHN1Y2NlZWRlZCwgd3JhcHBlZEtleSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXcmFwQ3J5cHRvS2V5KGtleSksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OldyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwgd3JhcHBlZEtleSksIG1f
cGFnZS5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHN1
Y2NlZWRlZDsKIH0KQEAgLTExOTMsNyArMTE5Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3
cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4m
CiBib29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgd3JhcHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIGNvbnN0CiB7CiAgICAgYm9v
bCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbndyYXBD
cnlwdG9LZXkod3JhcHBlZEtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVud3JhcENyeXB0
b0tleTo6UmVwbHkoc3VjY2VlZGVkLCBrZXkpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5
bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXkpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbndyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwg
a2V5KSwgbV9wYWdlLmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBy
ZXR1cm4gc3VjY2VlZGVkOwogfQpAQCAtMTIwMyw3ICsxMjAzLDcgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnVud3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXks
IFZlY3RvcjwKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxs
ZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdl
U3RyaW5nLCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2lnbmVkUHVibGljS2V5QW5kQ2hhbGxl
bmdlU3RyaW5nKGtleVNpemVJbmRleCwgY2hhbGxlbmdlU3RyaW5nLCB1cmwpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmc6OlJlcGx5KHJl
c3VsdCksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoa2V5U2l6ZUluZGV4LCBjaGFs
bGVuZ2VTdHJpbmcsIHVybCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNpZ25lZFB1YmxpY0tl
eUFuZENoYWxsZW5nZVN0cmluZzo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLmlkZW50aWZpZXIoKSkp
CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29s
b3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb2xvckNob29zZXIuY3BwCmluZGV4IGQ1MzVlNWM1NWM2YmRhNTVkZTQ1OGJhOTJmOTE0N2Mw
MmVlNGNkMzIuLmJkNzYyYTdiMmM1ZDI2ZjAwZGM4Mjc3MjlkM2Y1ZTcyMjk1MGM3NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb2xvckNob29zZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFdlYkNvbG9yQ2hvb3Nlcjo6V2Vi
Q29sb3JDaG9vc2VyKFdlYlBhZ2UqIHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBj
b25zCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPnNldEFjdGl2ZUNvbG9yQ2hv
b3Nlcih0aGlzKTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihp
bml0aWFsQ29sb3IsIGNsaWVudC0+ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgY2xp
ZW50LT5zdWdnZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2hvd0NvbG9yUGlja2VyKGluaXRpYWxDb2xvciwgY2xpZW50LT5lbGVt
ZW50UmVjdFJlbGF0aXZlVG9Sb290VmlldygpLCBjbGllbnQtPnN1Z2dlc3RlZENvbG9ycygpKSwg
bV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiBXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNo
b29zZXIoKQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6cmVhdHRhY2hD
b2xvckNob29zZXIoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIG1fcGFnZS0+c2V0QWN0aXZlQ29s
b3JDaG9vc2VyKHRoaXMpOwogCiAgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyQ2xpZW50KTsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihjb2xvciwgbV9jb2xvckNo
b29zZXJDbGllbnQtPmVsZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCksIG1fY29sb3JDaG9v
c2VyQ2xpZW50LT5zdWdnZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0NvbG9yUGlja2VyKGNvbG9yLCBtX2NvbG9yQ2hvb3Nl
ckNsaWVudC0+ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgbV9jb2xvckNob29zZXJD
bGllbnQtPnN1Z2dlc3RlZENvbG9ycygpKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3Ip
CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBpZiAobV9wYWdlLT5hY3RpdmVDb2xvckNob29zZXIo
KSAhPSB0aGlzKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNldENvbG9yUGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldENvbG9yUGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPmlk
ZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKCkKQEAg
LTkzLDcgKzkzLDcgQEAgdm9pZCBXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIoKQogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkVuZENvbG9yUGlja2VyKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RW5kQ29sb3JQaWNrZXIoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlci5jcHAKaW5kZXggZDAyNWRmYWNmYTJjYzdmNmE4YTY3MmUwYTczNTUyOTI1YmUxMWNhOC4u
YWViODczN2FkZDQ3M2MwM2FiNmUxMTc1MmZmMGMyMjRjOGRlMDgxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyOjp+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgeyB9
CiAKIHZvaWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpoYW5kbGVLZXlkb3duV2l0aElk
ZW50aWZpZXIoY29uc3QgV1RGOjpTdHJpbmcmIGtleSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkhhbmRsZUtleWRvd25JbkRhdGFMaXN0KGtleSksIG1fcGFnZS0+cGFnZUlEKCkpOwor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlS2V5ZG93bkluRGF0YUxpc3Qoa2V5KSwg
bV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcjo6ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBzZWxlY3RlZE9wdGlvbikK
QEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENs
b3NlU3VnZ2VzdGlvbnMoKQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6Y2xv
c2UoKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW5kRGF0YUxpc3RTdWdnZXN0aW9u
cygpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZERh
dGFMaXN0U3VnZ2VzdGlvbnMoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRh
TGlzdFN1Z2dlc3Rpb25BY3RpdmF0aW9uVHlwZSB0eXBlKQpAQCAtNzUsNyArNzUsNyBAQCB2b2lk
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShE
YXRhTGlzdFN1Z2dlc3Rpb25BYwogICAgIG1fcGFnZS0+c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyKHRoaXMpOwogCiAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24gaW5m
byA9IHsgdHlwZSwgbV9kYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LT5zdWdnZXN0aW9ucygpLCBt
X2RhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQtPmVsZW1lbnRSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgfTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRhTGlzdFN1Z2dlc3Rp
b25zKGluZm8pLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNob3dEYXRhTGlzdFN1Z2dlc3Rpb25zKGluZm8pLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggNDhkZTM1ZmQwNWUzYjg5YjQxZWM5MjlhYTJjMmRkMzYyNmU5OTAzMi4uZjY0ZmM3ZDUz
Yjc3ZThhNDE5MTY1ZjVlOTRkNWU4NmUyNzllMzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgV2ViRnJhbWVMb2FkZXJDbGllbnQ6On5XZWJG
cmFtZUxvYWRlckNsaWVudCgpCiBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+
cGFnZSgpKQotICAgICAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5wYWdlSUQoKTsKKyAgICAg
ICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKS0+aWRlbnRpZmllcigpOwogCiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0co
TmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIp
IiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgp
LnRvVUludDY0KCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZp
ZXIoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJF
TEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiki
LCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCku
dG9VSW50NjQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2
NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpP
YmplY3Q+IHVzZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGQxNmZlODU3Nzg0ZGMzZWFj
ZGQyYmY5MWE3M2VhZTg2OTYyZTVkNWIuLjBmOGY3MjA4M2QzZTY1N2Y4NDNkYjUxMDc3MWQ3NjMz
NDg2NmMxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQb3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBXZWJQ
b3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQg
aW5kZXgpCiAgICAgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHBsYXRmb3JtRGF0YTsKICAgICBzZXRV
cFBsYXRmb3JtRGF0YShwYWdlQ29vcmRpbmF0ZXMsIHBsYXRmb3JtRGF0YSk7CiAKLSAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigp
KSwgaXRlbXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlv
bigpKSwgaXRlbXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7
CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lk
IFdlYlBvcHVwTWVudTo6aGlkZSgpCiAgICAgaWYgKCFtX3BhZ2UgfHwgIW1fcG9wdXBDbGllbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGlkZVBvcHVw
TWVudSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okhp
ZGVQb3B1cE1lbnUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0QWN0
aXZlUG9wdXBNZW51KG51bGxwdHIpOwogICAgIG1fcG9wdXBDbGllbnQtPnBvcHVwRGlkSGlkZSgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAppbmRleCBkM2JkNDM4YzcxY2JmNjQxYTRh
M2U1ZDQxMTMxYzNlZGQ1NzdjYTgwLi45MDFlZmQ0NWI0MzkxYWJkZTJiNWEwNjBjYjY5MjhjZWU4
YzRiMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21TdHJp
bmcmIG5hbWUsIGNvbnN0IFZlY3RvcgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgc2Vh
cmNoSXRlbXMpLCBwYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
YXZlUmVjZW50U2VhcmNoZXMobmFtZSwgc2VhcmNoSXRlbXMpLCBwYWdlLT5pZGVudGlmaWVyKCkp
OwogfQogCiB2b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21TdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWNlbnRTZWFyY2g+JiByZXN1bHRJdGVtcykKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjZW4KICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRSZWNl
bnRTZWFyY2hlcyhuYW1lKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFJlY2VudFNlYXJj
aGVzOjpSZXBseShyZXN1bHRJdGVtcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpMb2FkUmVjZW50U2VhcmNoZXMobmFtZSksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkxvYWRSZWNlbnRTZWFyY2hlczo6UmVwbHkocmVzdWx0SXRlbXMpLCBwYWdlLT5p
ZGVudGlmaWVyKCkpOwogfQogCiBib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dl
YkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQppbmRleCA0ZDdlNjQzNjU1
MGY1NzVjOTg0YmQwOTg3YTM5NzVmODRkMWU5YzY1Li5mY2E5YmRmMDZlZGFhM2I0OTg3YjE5ODU0
ZTkzM2NlNmYzNDc1Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJ
T1MubW0KQEAgLTc0LDcgKzc0LDcgQEAgUmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnMKICAgICBpZiAo
IXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIFdlYlByZXZp
ZXdMb2FkZXJDbGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRpLCB3ZWJQYWdlLT5wYWdlSUQoKSk7
CisgICAgcmV0dXJuIFdlYlByZXZpZXdMb2FkZXJDbGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRp
LCB3ZWJQYWdlLT5pZGVudGlmaWVyKCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eS5tbQppbmRleCAxZDVjMGE2ZGE1NTJjNjU1NTNmYzE4Y2ZlY2Fk
NDI5YjE3MGM0YWM5Li42YzlmZDJjYzI3YmNkOGVmYTkyNTQ5MTE2NzQ1MGRiZGRlNDBkYTY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hl
Y2tpbmdDb250cm9sbGVyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5Lm1tCkBAIC01NywxMiArNTcs
MTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJv
eHk6OlRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eShXZWJQYWdlJiBwYWdlKQogICAgIDogbV9w
YWdlKHBhZ2UpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMp
OwogfQogCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9s
bGVyUHJveHkoKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAK
IHN0YXRpYyBPcHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+IHJlbGV2YW50TWFy
a2VyVHlwZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmluZGV4IDQzYWI2
ZTcyZDJkZWVkNDA0NDc3NmEwNDFlZDBjMjU0OTdjNzI4YmEuLmQzYzk4ZGRkZmExMTg0ODQxYTI1
ZTY5ZTQ2ZjI3ZjRiNTg4MGExNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9i
amVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGUKICAgICA6IFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KHJlbW90ZU9iamVjdFJlZ2lzdHJ5KQogICAgICwgbV9wYWdlKHBhZ2Up
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uu
cGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBwYWdlLnNldFJlbW90ZU9i
amVjdFJlZ2lzdHJ5KHRoaXMpOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5Ojp+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogdm9pZCBXZWJSZW1vdGVPYmpl
Y3RSZWdpc3RyeTo6Y2xvc2UoKQogewogICAgIGlmIChtX3BhZ2UucmVtb3RlT2JqZWN0UmVnaXN0
cnkoKSA9PSB0aGlzKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKICAgICAgICAg
bV9wYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lzdHJ5KG51bGxwdHIpOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
CmluZGV4IGNmMzkzODRhYWQ1NWRiN2U0NzJiYTE2YmQxODAzYWY5Njg1MTJkZTkuLjBhMjU0MDVk
ZTg4ZDljNzU0NDE3NjUxMDVmZDY3NzI4ODVlZmY1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNjgsMTggKzY4
LDE4IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFnZShXZWJQ
YWdlKiB3ZWJQYWdlKQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRl
eCk7CiAKICAgICBBU1NFUlQod2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSk7Ci0gICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBh
Z2VJRCgpKSk7CisgICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2Ut
PmlkZW50aWZpZXIoKSkpOwogCiAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xs
aW5nQ29vcmRpbmF0b3IgPSBkb3duY2FzdDxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPigqd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSk7Ci0gICAgbV9zY3JvbGxp
bmdUcmVlcy5zZXQod2ViUGFnZS0+cGFnZUlEKCksIGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5n
VHJlZT4oc2Nyb2xsaW5nQ29vcmRpbmF0b3Iuc2Nyb2xsaW5nVHJlZSgpKSk7CisgICAgbV9zY3Jv
bGxpbmdUcmVlcy5zZXQod2ViUGFnZS0+aWRlbnRpZmllcigpLCBkb3duY2FzdDxUaHJlYWRlZFNj
cm9sbGluZ1RyZWU+KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNjcm9sbGluZ1RyZWUoKSkpOwogfQog
CiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFn
ZSogd2ViUGFnZSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0
ZXgpOwotICAgIEFTU0VSVChtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJ
RCgpKSk7CisgICAgQVNTRVJUKG1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+aWRl
bnRpZmllcigpKSk7CiAKLSAgICBtX3Njcm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdl
SUQoKSk7CisgICAgbV9zY3JvbGxpbmdUcmVlcy5yZW1vdmUod2ViUGFnZS0+aWRlbnRpZmllcigp
KTsKIH0KICNlbmRpZgogCkBAIC0xNTUsMTMgKzE1NSwxMyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6Z2VzdHVyZUV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViS2l0OjpXZWJH
ZXN0dQogdm9pZCBFdmVudERpc3BhdGNoZXI6OmNsZWFyUXVldWVkVG91Y2hFdmVudHNGb3JQYWdl
KGNvbnN0IFdlYlBhZ2UmIHdlYlBhZ2UpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoJm1fdG91
Y2hFdmVudHNMb2NrKTsKLSAgICBtX3RvdWNoRXZlbnRzLnJlbW92ZSh3ZWJQYWdlLnBhZ2VJRCgp
KTsKKyAgICBtX3RvdWNoRXZlbnRzLnJlbW92ZSh3ZWJQYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAK
IHZvaWQgRXZlbnREaXNwYXRjaGVyOjpnZXRRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3Qg
V2ViUGFnZSYgd2ViUGFnZSwgVG91Y2hFdmVudFF1ZXVlJiBkZXN0aW5hdGlvblF1ZXVlKQogewog
ICAgIExvY2tIb2xkZXIgbG9ja2VyKCZtX3RvdWNoRXZlbnRzTG9jayk7Ci0gICAgZGVzdGluYXRp
b25RdWV1ZSA9IG1fdG91Y2hFdmVudHMudGFrZSh3ZWJQYWdlLnBhZ2VJRCgpKTsKKyAgICBkZXN0
aW5hdGlvblF1ZXVlID0gbV90b3VjaEV2ZW50cy50YWtlKHdlYlBhZ2UuaWRlbnRpZmllcigpKTsK
IH0KIAogdm9pZCBFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggNDQ0
NmYzNGQwNGNjZmJmYmViMzY5YmE0NGMzMjA2YmYwZGQyM2VjZC4uMTc4MjAwMWQ2NDkxMWIwNTA4
NjExYjNhNGE4ZTIzYzU3NGIwMDk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNzUsNyArNzUsNyBAQCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2Vi
UGFnZSwgY29uc3QgVwogICAgIC8vIEZJWE1FOiBXaGlsZSB1c2luZyB0aGUgaGlnaCBlbmQgb2Yg
dGhlIHJhbmdlIG9mIERpc3BsYXlJRHMgbWFrZXMgYSBjb2xsaXNpb24gd2l0aCByZWFsLCBub24t
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEKICAgICAvLyBEaXNwbGF5SURzIGxlc3MgbGlrZWx5
LCBpdCBpcyBub3QgZW50aXJlbHkgc2FmZSB0byBoYXZlIGEgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEgYW5kIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhCiAgICAgLy8gY29lZXhpc3Qg
aW4gdGhlIHNhbWUgcHJvY2Vzcy4KLSAgICB3ZWJQYWdlLndpbmRvd1NjcmVlbkRpZENoYW5nZShz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSB3ZWJQYWdlLnBhZ2VJRCgpLnRv
VUludDY0KCkpOworICAgIHdlYlBhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIHdlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0
KCkpOwogfQogCiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6flJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhKCkKQEAgLTQ0OSw3ICs0NDksNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjpmbHVzaExheWVycygpCiAgICAgUmVmUHRyPEJhY2tpbmdTdG9yZUZsdXNoZXI+IGJh
Y2tpbmdTdG9yZUZsdXNoZXIgPSBCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgV1RGTW92ZShjb21taXRF
bmNvZGVyKSwgV1RGTW92ZShjb250ZXh0c1RvRmx1c2gpKTsKICAgICBtX3BlbmRpbmdCYWNraW5n
U3RvcmVGbHVzaGVyID0gYmFja2luZ1N0b3JlRmx1c2hlcjsKIAotICAgIGF1dG8gcGFnZUlEID0g
bV93ZWJQYWdlLnBhZ2VJRCgpOworICAgIGF1dG8gcGFnZUlEID0gbV93ZWJQYWdlLmlkZW50aWZp
ZXIoKTsKICAgICBkaXNwYXRjaF9hc3luYyhtX2NvbW1pdFF1ZXVlLCBbYmFja2luZ1N0b3JlRmx1
c2hlciA9IFdURk1vdmUoYmFja2luZ1N0b3JlRmx1c2hlciksIHBhZ2VJRF0gewogICAgICAgICBi
YWNraW5nU3RvcmVGbHVzaGVyLT5mbHVzaCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggZDdjZDIwZmEwYzBiZmVmM2M0
ZmNjZDAwN2ZkMzhjNDFkOTRjOTE3YS4uODM1NDQxZDMxOWI5NWY0NjY4Nzc1ODUzODkwOTJjOWVl
YTI5Mzg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbQpAQCAtNTEsMTIgKzUxLDEyIEBAIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJQYWdlKiBwYWdlKQogICAgIDogQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlLT5jb3JlUGFnZSgpKQogICAgICwgbV93ZWJQYWdl
KHBhZ2UpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3dlYlBhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UtPmlkZW50aWZpZXIoKSwgKnRo
aXMpOwogfQogCiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6flJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLT5pZGVudGlmaWVyKCkp
OwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVRyZWVTdGF0
ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZDRiOGIwMGZhNGI2N2JlZTI3ZDM3ZTBi
NTRlMGMzYjA1ZGY0MTg3NS4uOTExOTA1YjhhY2RmY2MyMWYyOTQyNDAwNmIxOTM2ZTA2NWQ5YmM4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OlNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2UpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTZW5kTWVzc2FnZVRvQmFja2VuZChtZXNz
YWdlKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
VUk6OndpbmRvd09iamVjdENsZWFyZWQoKQpAQCAtMTAyLDEyICsxMDIsMTIgQEAgdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogCiB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTZXRTaGVldFJlY3QocmVjdCksIG1fcGFn
ZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlNldFNo
ZWV0UmVjdChyZWN0KSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OnN0YXJ0V2luZG93RHJhZygpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6OlN0YXJ0V2luZG93RHJhZygpLCBtX3BhZ2UucGFnZUlEKCkpOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTdGFydFdpbmRvd0RyYWcoKSwgbV9w
YWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Om1vdmVX
aW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KQpAQCAtMTI0LDM5ICsxMjQsMzkgQEAgV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXNlcklu
dGVyZmFjZUxheW91dEQKIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6YnJpbmdUb0Zyb250
KCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zyb250
KCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OkJyaW5nVG9Gcm9udCgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6Y2xvc2VXaW5kb3coKQogewogICAgIG1fcGFnZS5jb3JlUGFnZSgp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQobnVsbHB0
cik7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6RnJvbnRlbmREaWRD
bG9zZSgpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpGcm9udGVuZERpZENsb3NlKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZW9wZW4oKQogewotICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVdlYkluc3BlY3RvclByb3h5OjpSZW9wZW4oKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6UmVvcGVuKCksIG1fcGFnZS5pZGVudGlmaWVy
KCkpOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZXNldFN0YXRlKCkKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6UmVzZXRTdGF0ZSgpLCBtX3BhZ2Uu
cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpSZXNldFN0
YXRlKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3Rv
clVJOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6Ok9wZW5Jbk5ld1RhYih1cmwpLCBtX3BhZ2UucGFnZUlEKCkp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpPcGVuSW5OZXdUYWIodXJs
KSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6
OnNhdmUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29s
IGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OlNhdmUoZmlsZW5hbWUsIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQs
IGZvcmNlU2F2ZUFzKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6U2F2ZShmaWxlbmFtZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgZm9y
Y2VTYXZlQXMpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6YXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29u
dGVudCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6QXBwZW5kKGZp
bGVuYW1lLCBjb250ZW50KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6QXBwZW5kKGZpbGVuYW1lLCBjb250ZW50KSwgbV9wYWdlLmlkZW50
aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFVSTENo
YW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIHVy
bFN0cmluZykKIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2hvd0NlcnRpZmljYXRlKGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVdlYkluc3BlY3RvclByb3h5OjpTaG93Q2VydGlmaWNhdGUoY2VydGlmaWNhdGVJbmZvKSwg
bV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
U2hvd0NlcnRpZmljYXRlKGNlcnRpZmljYXRlSW5mbyksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5j
cHAKaW5kZXggYWJmY2VjZGIxZmJmZWU5ZmVkNmEyNTNjODg2ODU3Y2VjYzAxYTg4Yy4uNWZiNTMy
OTNhYTc0NGJmNjBkZGU2M2YxNzM3ZjdkNGUwZGFiMGRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvci5jcHAKQEAgLTYxLDEyICs2MSwxMiBAQCBWaWV3R2VzdHVyZUdlb21ldHJ5Q29s
bGVjdG9yOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAg
ICAgLCBtX3JlbmRlclRyZWVTaXplTm90aWZpY2F0aW9uVGhyZXNob2xkKDApCiAjZW5kaWYKIHsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93
ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKIH0K
IAogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6flZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3IoKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmllcigpKTsK
IH0KIAogdm9pZCBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpkaXNwYXRjaERpZENvbGxl
Y3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoRmxvYXRQb2ludCBvcmlnaW4s
IEZsb2F0UmVjdCB0YXJnZXRSZWN0LCBGbG9hdFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0LCBib29s
IGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdw
b3J0TWF4aW11bVNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCmluZGV4IDdhMGMwYzgwZmU4
Y2M2MDExNjkzZDdiNDUyN2FiZWM3ZTllNWU3NDguLmQ4MGQ3Zjk1N2E5NjNiZDJiOWRmYjkyYmJk
OTU1YjhkNWQ1MjQ0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKQEAgLTExNiw3ICsxMTYs
NyBAQCBSZWZQdHI8SGlzdG9yeUl0ZW0+IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtQXRJ
bmRleChpbnQgaXRlbUluZGV4KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE9wdGlv
bmFsPEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI+IGl0ZW1JRDsKLSAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaXRlbUluZGV4KSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRJdGVtQXRJbmRleDo6UmVwbHkoaXRlbUlE
KSwgbV9wYWdlLT5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGl0ZW1JbmRleCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkJhY2tGb3J3YXJkSXRlbUF0SW5kZXg6OlJlcGx5KGl0ZW1JRCksIG1fcGFnZS0+aWRlbnRp
ZmllcigpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIWl0ZW1JRCkKQEAg
LTEzMSw3ICsxMzEsNyBAQCB1bnNpZ25lZCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6YmFja0xp
c3RDb3VudCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgdW5zaWduZWQgYmFja0xp
c3RDb3VudCA9IDA7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9y
d2FyZEJhY2tMaXN0Q291bnQoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRC
YWNrTGlzdENvdW50OjpSZXBseShiYWNrTGlzdENvdW50KSwgbV9wYWdlLT5wYWdlSUQoKSkpCisg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291
bnQoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRCYWNrTGlzdENvdW50OjpS
ZXBseShiYWNrTGlzdENvdW50KSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHJldHVybiBiYWNrTGlzdENvdW50OwpAQCAtMTQzLDcgKzE0Myw3IEBAIHVu
c2lnbmVkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkTGlzdENvdW50KCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIDA7CiAKICAgICB1bnNpZ25lZCBmb3J3YXJkTGlzdENvdW50ID0gMDsK
LSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExp
c3RDb3VudCgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0
Q291bnQ6OlJlcGx5KGZvcndhcmRMaXN0Q291bnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3Vu
dCgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6
OlJlcGx5KGZvcndhcmRMaXN0Q291bnQpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSkpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgcmV0dXJuIGZvcndhcmRMaXN0Q291bnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCAxZjAxNmFl
YWRhOTk2Zjk2M2RkNWU0ZWZiOTZkMGNhZmU2MGFkNjE3Li4zMzIyNWQxM2RkM2E4ZTFiZThmODNk
ZWI3NWYzNzI5ZWU1MjJkMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgV2ViSW5zcGVjdG9yOjp+
V2ViSW5zcGVjdG9yKCkKIAogdm9pZCBXZWJJbnNwZWN0b3I6Om9wZW5Mb2NhbEluc3BlY3RvckZy
b250ZW5kKGJvb2wgdW5kZXJUZXN0KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5
OjpPcGVuTG9jYWxJbnNwZWN0b3JGcm9udGVuZChjYW5BdHRhY2hXaW5kb3coKSwgdW5kZXJUZXN0
KSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Ok9w
ZW5Mb2NhbEluc3BlY3RvckZyb250ZW5kKGNhbkF0dGFjaFdpbmRvdygpLCB1bmRlclRlc3QpLCBt
X3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRGcm9udGVu
ZENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcikK
QEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c2V0RnJvbnRlbmRDb25uZWN0
aW9uKElQQzo6QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aQogCiB2b2lkIFdlYklu
c3BlY3Rvcjo6Y2xvc2VGcm9udGVuZENvbm5lY3Rpb24oKQogewotICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYklu
c3BlY3RvclByb3h5OjpEaWRDbG9zZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwog
CiAgICAgLy8gSWYgd2UgdHJpZWQgdG8gY2xvc2UgdGhlIGZyb250ZW5kIGJlZm9yZSBpdCB3YXMg
Y3JlYXRlZCwgdGhlbiBubyBjb25uZWN0aW9uIGV4aXN0cyB5ZXQuCiAgICAgaWYgKG1fZnJvbnRl
bmRDb25uZWN0aW9uKSB7CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OmNs
b3NlRnJvbnRlbmRDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJJbnNwZWN0b3I6OmJyaW5nVG9Gcm9u
dCgpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkJyaW5nVG9Gcm9udCgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdU
b0Zyb250KCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6
OndoZW5Gcm9udGVuZENvbm5lY3Rpb25Fc3RhYmxpc2hlZChGdW5jdGlvbjx2b2lkKCk+JiYgY2Fs
bGJhY2spCkBAIC0yNzMsMTcgKzI3MywxNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c3RvcEVsZW1l
bnRTZWxlY3Rpb24oKQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6ZWxlbWVudFNlbGVjdGlvbkNoYW5n
ZWQoYm9vbCBhY3RpdmUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkVsZW1l
bnRTZWxlY3Rpb25DaGFuZ2VkKGFjdGl2ZSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclByb3h5OjpFbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChhY3RpdmUpLCBt
X3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjp0aW1lbGluZVJl
Y29yZGluZ0NoYW5nZWQoYm9vbCBhY3RpdmUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9y
UHJveHk6OlRpbWVsaW5lUmVjb3JkaW5nQ2hhbmdlZChhY3RpdmUpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6VGltZWxpbmVSZWNvcmRpbmdDaGFu
Z2VkKGFjdGl2ZSksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3I6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShPcHRpb25hbDxib29sPiBl
bmFibGVkKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpTZXRNb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkT3ZlcnJpZGUoZW5hYmxlZCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
T3ZlcnJpZGUoZW5hYmxlZCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogYm9vbCBXZWJJ
bnNwZWN0b3I6OmNhbkF0dGFjaFdpbmRvdygpCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3I6OnVwZGF0ZURvY2tpbmdBdmFpbGFiaWxpdHkoKQogCiAgICAgbV9wcmV2aW91c0Nh
bkF0dGFjaCA9IGNhbkF0dGFjaFdpbmRvdzsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclBy
b3h5OjpBdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGNhbkF0dGFjaFdpbmRvdyksIG1fcGFnZS0+
cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRhY2hBdmFpbGFi
aWxpdHlDaGFuZ2VkKGNhbkF0dGFjaFdpbmRvdyksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IDU0MDZlMWY0YjQxMzQ2Yzk2NjU5NWMzYjE0ZTQwYzE4MjZk
ZjE2NzYuLmMzNGQ5YzIwMmI4NDViZGY3MTIzOWY0Njg1ZDc3ZDM5YzdkN2VjODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNzEsNyArMzcx
LDcgQEAgUmVmPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJgogfQogCiBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
Ci0gICAgOiBtX3BhZ2VJRChwYWdlSUQpCisgICAgOiBtX2lkZW50aWZpZXIocGFnZUlEKQogICAg
ICwgbV92aWV3U2l6ZShwYXJhbWV0ZXJzLnZpZXdTaXplKQogICAgICwgbV9hbHdheXNTaG93c0hv
cml6b250YWxTY3JvbGxlciB7IHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xs
ZXIgfQogICAgICwgbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgeyBwYXJhbWV0ZXJzLmFs
d2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciB9CkBAIC00MzQsNyArNDM0LDcgQEAgV2ViUGFnZTo6
V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogICAgICwgbV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcigqdGhp
cywgJldlYlBhZ2U6OnRleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQpCiAjZW5kaWYK
IHsKLSAgICBBU1NFUlQobV9wYWdlSUQpOworICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCiAg
ICAgbV9wYWdlR3JvdXAgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlR3JvdXAocGFy
YW1ldGVycy5wYWdlR3JvdXBEYXRhKTsKIApAQCAtNjA4LDE0ICs2MDgsMTQgQEAgV2ViUGFnZTo6
V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogICAgIG1fcGFnZS0+YWRkTGF5b3V0TWlsZXN0b25lcyh7IERpZEZpcnN0
TGF5b3V0LCBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgfSk7CiAKICAgICBhdXRvJiB3
ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgd2ViUHJvY2Vzcy5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2U6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlSUQsICp0aGlzKTsKKyAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlz
KTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSBvYmplY3QgY29u
c3RydWN0b3JzLCBhbmQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcyBzaG91bGQgYmUgbWVzc2FnZSBy
ZWNlaXZlcnMuCi0gICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
Ykluc3BlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwotICAg
IHdlYlByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwotICAgIHdlYlByb2Nlc3Mu
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOworICAgIHdlYlByb2Nlc3MuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CisgICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRl
bnRpZmllciwgKnRoaXMpOworICAgIHdlYlByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50
aWZpZXIsICp0aGlzKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgd2ViUHJvY2Vz
cy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7CisgICAgd2ViUHJvY2Vzcy5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogI2VuZGlmCiAKICNpZm5kZWYgTkRF
QlVHCkBAIC04NDMsNyArODQzLDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJQYWdlOjptZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiAKIHVpbnQ2NF90IFdlYlBhZ2U6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gcGFnZUlEKCkudG9VSW50NjQo
KTsKKyAgICByZXR1cm4gaWRlbnRpZmllcigpLnRvVUludDY0KCk7CiB9CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKQEAgLTEzMzgsNyArMTMzOCw3IEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2Uo
KQogICAgICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhz
ZXNzaW9uSUQoKSwgbV9wYWdlSUQpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNsZWFyUGFnZVNwZWNpZmljRGF0YUZv
clJlc291cmNlTG9hZFN0YXRpc3RpY3Moc2Vzc2lvbklEKCksIG1faWRlbnRpZmllciksIDApOwog
I2VuZGlmCiAKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKQEAgLTE0MzksMjAgKzE0MzksMjAgQEAg
dm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgaWYgKG1fdXNlQXN5bmNTY3JvbGxpbmcpCiAgICAg
ICAgIHdlYlByb2Nlc3MuZXZlbnREaXNwYXRjaGVyKCkucmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBh
Z2UodGhpcyk7CiAjZW5kaWYKLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CisgICAg
d2ViUHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2U6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgZG9uZSBpbiB0aGUgb2JqZWN0IGRlc3RydWN0b3JzLCBhbmQgdGhlIG9iamVjdHMgdGhl
bXNlbHZlcyBzaG91bGQgYmUgbWVzc2FnZSByZWNlaXZlcnMuCi0gICAgd2ViUHJvY2Vzcy5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3Rvcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2VJRCk7Ci0gICAgd2ViUHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlE
KTsKLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
V2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOworICAgIHdl
YlByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgd2ViUHJv
Y2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShHVEspCiAgICAgbV92aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yID0g
bnVsbHB0cjsKICNlbmRpZgogCiAgICAgLy8gVGhlIFdlYlBhZ2UgY2FuIGJlIGRlc3Ryb3llZCBi
eSB0aGlzIGNhbGwuCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlV2ViUGFnZShz
ZXNzaW9uSUQsIG1fcGFnZUlEKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVX
ZWJQYWdlKHNlc3Npb25JRCwgbV9pZGVudGlmaWVyKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKCk7CiAKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQg
V2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IEJhY2tGb3J3YXJkSXRlbUlkCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBMT0coTG9hZGluZywgIkluIFdlYlByb2Nlc3MgcGlkICVpLCBXZWJQYWdlICUiIFBSSXU2NCAi
IGlzIG5hdmlnYXRpbmcgdG8gYmFjay9mb3J3YXJkIFVSTCAlcyIsIGdldEN1cnJlbnRQcm9jZXNz
SUQoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgaXRlbS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgTE9HKExvYWRpbmcsICJJbiBXZWJQcm9jZXNzIHBpZCAlaSwgV2ViUGFnZSAl
IiBQUkl1NjQgIiBpcyBuYXZpZ2F0aW5nIHRvIGJhY2svZm9yd2FyZCBVUkwgJXMiLCBnZXRDdXJy
ZW50UHJvY2Vzc0lEKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBpdGVtLT51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklE
KTsKICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CkBAIC0yMDk0LDcg
KzIwOTQsNyBAQCBib29sIFdlYlBhZ2U6OnNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKQogICAgIGlmICghdmlldyB8fCB2aWV3LT5maXhlZExheW91dFNpemUoKSA9PSBzaXpl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJl
Y3RzLCBzdHJlYW0gPDwgIldlYlBhZ2UgIiA8PCBtX3BhZ2VJRC50b1VJbnQ2NCgpIDw8ICIgc2V0
Rml4ZWRMYXlvdXRTaXplICIgPDwgc2l6ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVS
ZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkgPDwg
IiBzZXRGaXhlZExheW91dFNpemUgIiA8PCBzaXplKTsKICAgICB2aWV3LT5zZXRGaXhlZExheW91
dFNpemUoc2l6ZSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpeGVkTGF5
b3V0U2l6ZURpZENoYW5nZShzaXplKSk7CkBAIC0yNTI2LDcgKzI1MjYsNyBAQCBjb25zdCBXZWJF
dmVudCogV2ViUGFnZTo6Y3VycmVudEV2ZW50KCkKIHZvaWQgV2ViUGFnZTo6ZnJlZXplTGF5ZXJU
cmVlKExheWVyVHJlZUZyZWV6ZVJlYXNvbiByZWFzb24pCiB7CiAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlBhZ2UgKFBhZ2VJRD0lbGx1KSAtIEFkZGluZyBhIHJl
YXNvbiAlZCB0byBmcmVlemUgbGF5ZXIgdHJlZTsgY3VycmVudCByZWFzb25zIGFyZSAlZCIsCi0g
ICAgICAgIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihy
ZWFzb24pLCBtX2xheWVyVHJlZUZyZWV6ZVJlYXNvbnMudG9SYXcoKSk7CisgICAgICAgIHRoaXMs
IG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVhc29uKSwg
bV9sYXllclRyZWVGcmVlemVSZWFzb25zLnRvUmF3KCkpOwogICAgIG1fbGF5ZXJUcmVlRnJlZXpl
UmVhc29ucy5hZGQocmVhc29uKTsKICAgICB1cGRhdGVEcmF3aW5nQXJlYUxheWVyVHJlZUZyZWV6
ZVN0YXRlKCk7CiB9CkBAIC0yNTM0LDcgKzI1MzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmZyZWV6ZUxh
eWVyVHJlZShMYXllclRyZWVGcmVlemVSZWFzb24gcmVhc29uKQogdm9pZCBXZWJQYWdlOjp1bmZy
ZWV6ZUxheWVyVHJlZShMYXllclRyZWVGcmVlemVSZWFzb24gcmVhc29uKQogewogICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQYWdlIChQYWdlSUQ9JWxsdSkgLSBS
ZW1vdmluZyBhIHJlYXNvbiAlZCB0byBmcmVlemUgbGF5ZXIgdHJlZTsgY3VycmVudCByZWFzb25z
IGFyZSAlZCIsCi0gICAgICAgIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihyZWFzb24pLCBtX2xheWVyVHJlZUZyZWV6ZVJlYXNvbnMudG9SYXcoKSk7Cisg
ICAgICAgIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4ocmVhc29uKSwgbV9sYXllclRyZWVGcmVlemVSZWFzb25zLnRvUmF3KCkpOwogICAgIG1fbGF5
ZXJUcmVlRnJlZXplUmVhc29ucy5yZW1vdmUocmVhc29uKTsKICAgICB1cGRhdGVEcmF3aW5nQXJl
YUxheWVyVHJlZUZyZWV6ZVN0YXRlKCk7CiB9CkBAIC0yODQwLDcgKzI4NDAsNyBAQCB2b2lkIFdl
YlBhZ2U6OnJlc3RvcmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlz
dEl0ZW1TdGF0ZT4mIGl0ZQogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbVN0YXRlIDogaXRlbVN0
YXRlcykgewogICAgICAgICBhdXRvIGhpc3RvcnlJdGVtID0gdG9IaXN0b3J5SXRlbShpdGVtU3Rh
dGUpOwogICAgICAgICBoaXN0b3J5SXRlbS0+c2V0V2FzUmVzdG9yZWRGcm9tU2Vzc2lvbihyZXN0
b3JlZEJ5QVBJUmVxdWVzdCA9PSBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdDo6WWVzKTsKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8V2ViQmFja0ZvcndhcmRMaXN0UHJveHkmPihjb3JlUGFnZSgpLT5iYWNr
Rm9yd2FyZCgpLmNsaWVudCgpKS5hZGRJdGVtRnJvbVVJUHJvY2VzcyhpdGVtU3RhdGUuaWRlbnRp
ZmllciwgV1RGTW92ZShoaXN0b3J5SXRlbSksIG1fcGFnZUlELCBvdmVyd3JpdGUpOworICAgICAg
ICBzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eSY+KGNvcmVQYWdlKCktPmJhY2tG
b3J3YXJkKCkuY2xpZW50KCkpLmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKGl0ZW1TdGF0ZS5pZGVudGlm
aWVyLCBXVEZNb3ZlKGhpc3RvcnlJdGVtKSwgbV9pZGVudGlmaWVyLCBvdmVyd3JpdGUpOwogICAg
IH0KIH0KIApAQCAtMjg1OCw3ICsyODU4LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRDdXJyZW50SGlz
dG9yeUl0ZW1Gb3JSZWF0dGFjaChXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYKIHsK
ICAgICBhdXRvIGhpc3RvcnlJdGVtID0gdG9IaXN0b3J5SXRlbShpdGVtU3RhdGUpOwogICAgIGF1
dG8mIGhpc3RvcnlJdGVtUmVmID0gaGlzdG9yeUl0ZW0uZ2V0KCk7Ci0gICAgc3RhdGljX2Nhc3Q8
V2ViQmFja0ZvcndhcmRMaXN0UHJveHkmPihjb3JlUGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVu
dCgpKS5hZGRJdGVtRnJvbVVJUHJvY2VzcyhpdGVtU3RhdGUuaWRlbnRpZmllciwgV1RGTW92ZSho
aXN0b3J5SXRlbSksIG1fcGFnZUlELCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRl
RXhpc3RpbmdJdGVtOjpZZXMpOworICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFBy
b3h5Jj4oY29yZVBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSkuYWRkSXRlbUZyb21VSVBy
b2Nlc3MoaXRlbVN0YXRlLmlkZW50aWZpZXIsIFdURk1vdmUoaGlzdG9yeUl0ZW0pLCBtX2lkZW50
aWZpZXIsIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW06Olll
cyk7CiAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuaGlzdG9yeSgpLnNldEN1
cnJlbnRJdGVtKGhpc3RvcnlJdGVtUmVmKTsKIH0KIApAQCAtMzE2Miw3ICszMTYyLDcgQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUpCiAgICAgICAg
IAogICAgICAgICAvLyBUaGUgV2ViUHJvY2VzcyBkb2VzIG5vdCB5ZXQga25vdyBhYm91dCB0aGlz
IHBhZ2U7IG5vIG5lZWQgdG8gdGVsbCBpdCB3ZSdyZSBsZWF2aW5nIHRoZSB3aW5kb3cuCiAgICAg
ICAgIGlmICghaXNJbml0aWFsU3RhdGUpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYWdlV2lsbExlYXZlV2luZG93KG1fcGFnZUlEKTsKKyAgICAgICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhZ2VXaWxsTGVhdmVXaW5kb3cobV9pZGVudGlmaWVyKTsKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBEZWZlciB0aGUgY2FsbCB0byBQYWdlOjpzZXRDYW5TdGFydE1l
ZGlhKCkgc2luY2UgaXQgZW5kcyB1cCBzZW5kaW5nIGEgc3luY2hyb25vdXMgbWVzc2FnZSB0byB0
aGUgVUkgcHJvY2VzcwogICAgICAgICAvLyBpbiBvcmRlciB0byBnZXQgcGx1Zy1pbiBjb25uZWN0
aW9ucywgYW5kIHRoZSBVSSBwcm9jZXNzIHdpbGwgYmUgd2FpdGluZyBmb3IgdGhlIFdlYiBwcm9j
ZXNzIHRvIHVwZGF0ZSB0aGUgYmFja2luZwpAQCAtMzE3MCw3ICszMTcwLDcgQEAgdm9pZCBXZWJQ
YWdlOjp1cGRhdGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUpCiAgICAgICAgIGlmICht
X21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cpCiAgICAgICAgICAgICBtX3NldENhblN0YXJ0TWVk
aWFUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYWdlRGlkRW50ZXJXaW5kb3cobV9wYWdlSUQpOworICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYWdlRGlkRW50ZXJXaW5kb3cobV9pZGVudGlmaWVyKTsKICAgICB9CiAKICAg
ICBpZiAoaXNJbldpbmRvdykKQEAgLTMxOTAsNyArMzE5MCw3IEBAIHZvaWQgV2ViUGFnZTo6dmlz
aWJpbGl0eURpZENoYW5nZSgpCiAKIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRp
b25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNo
YW5nZUlEIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCwgY29uc3QgVmVjdG9yPENhbGxiYWNrSUQ+JiBj
YWxsYmFja0lEcykKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oQWN0aXZpdHlTdGF0ZSwgc3RyZWFt
IDw8ICJXZWJQYWdlICIgPDwgcGFnZUlEKCkudG9VSW50NjQoKSA8PCAiIHNldEFjdGl2aXR5U3Rh
dGUgdG8gIiA8PCBhY3Rpdml0eVN0YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oQWN0aXZpdHlT
dGF0ZSwgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwgaWRlbnRpZmllcigpLnRvVUludDY0KCkgPDwg
IiBzZXRBY3Rpdml0eVN0YXRlIHRvICIgPDwgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICBhdXRvIGNo
YW5nZWQgPSBtX2FjdGl2aXR5U3RhdGUgXiBhY3Rpdml0eVN0YXRlOwogICAgIG1fYWN0aXZpdHlT
dGF0ZSA9IGFjdGl2aXR5U3RhdGU7CkBAIC0zMTk4LDcgKzMxOTgsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5
U3RhdGUsIEFjdAogICAgIGlmIChjaGFuZ2VkKQogICAgICAgICB1cGRhdGVUaHJvdHRsZVN0YXRl
KCk7CiAKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcGFnZSwgInNldEFjdGl2aXR5U3RhdGUg
Y2FsbGVkIG9uICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3JlIHBhZ2Ugd2FzIG51bGwiLCBwYWdlSUQo
KS50b1VJbnQ2NCgpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcGFnZSwgInNldEFjdGl2
aXR5U3RhdGUgY2FsbGVkIG9uICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3JlIHBhZ2Ugd2FzIG51bGwi
LCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgaWYgKG1fcGFnZSkgewogICAgICAgICBT
ZXRGb3JTY29wZTxPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4+IGN1cnJlbnRseUNoYW5n
aW5nQWN0aXZpdHlTdGF0ZSB7IG1fbGFzdEFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjaGFuZ2VkIH07
CiAgICAgICAgIG1fcGFnZS0+c2V0QWN0aXZpdHlTdGF0ZShhY3Rpdml0eVN0YXRlKTsKQEAgLTMy
MDgsNyArMzIwOCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8
QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgQWN0CiAgICAgICAgIHBsdWdpblZp
ZXctPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZCk7CiAKICAgICBtX2RyYXdpbmdBcmVh
LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWQsIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCwg
Y2FsbGJhY2tJRHMpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhZ2VBY3Rpdml0eVN0
YXRlRGlkQ2hhbmdlKG1fcGFnZUlELCBjaGFuZ2VkKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYWdlQWN0aXZpdHlTdGF0ZURpZENoYW5nZShtX2lkZW50aWZpZXIsIGNoYW5nZWQpOwog
CiAgICAgaWYgKGNoYW5nZWQgJiBBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQogICAgICAgICB1
cGRhdGVJc0luV2luZG93KCk7CkBAIC00MzYzLDcgKzQzNjMsNyBAQCB2b2lkIFdlYlBhZ2U6Om1h
aW5GcmFtZURpZExheW91dCgpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBtYWluRnJhbWVWaWV3KCkpIHsKICAgICAgICAgSW50U2l6ZSBu
ZXdDb250ZW50U2l6ZSA9IGZyYW1lVmlldy0+Y29udGVudHNTaXplKCk7Ci0gICAgICAgIExPR19X
SVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlE
LnRvVUludDY0KCkgPDwgIiBtYWluRnJhbWVEaWRMYXlvdXQgc2V0dGluZyBjb250ZW50IHNpemUg
dG8gIiA8PCBuZXdDb250ZW50U2l6ZSk7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxl
UmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1faWRlbnRpZmllci50b1VJbnQ2NCgpIDw8
ICIgbWFpbkZyYW1lRGlkTGF5b3V0IHNldHRpbmcgY29udGVudCBzaXplIHRvICIgPDwgbmV3Q29u
dGVudFNpemUpOwogICAgICAgICBpZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Q29udGVu
dHNTaXplKG5ld0NvbnRlbnRTaXplKSkKICAgICAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlv
bkNoYW5nZWQoKTsKICAgICB9CkBAIC01Nzc2LDcgKzU3NzYsNyBAQCB2b2lkIFdlYlBhZ2U6OmRp
ZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIAogICAgIGJvb2wgdmlld3BvcnRDaGFu
Z2VkID0gZmFsc2U7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0g
PDwgIldlYlBhZ2UgIiA8PCBtX3BhZ2VJRC50b1VJbnQ2NCgpIDw8ICIgZGlkQ29tbWl0TG9hZCBz
ZXR0aW5nIGNvbnRlbnQgc2l6ZSB0byAiIDw8IGNvcmVGcmFtZS0+dmlldygpLT5jb250ZW50c1Np
emUoKSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQ
YWdlICIgPDwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkgPDwgIiBkaWRDb21taXRMb2FkIHNldHRp
bmcgY29udGVudCBzaXplIHRvICIgPDwgY29yZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzU2l6ZSgp
KTsKICAgICBpZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Q29udGVudHNTaXplKGNvcmVG
cmFtZS0+dmlldygpLT5jb250ZW50c1NpemUoKSkpCiAgICAgICAgIHZpZXdwb3J0Q2hhbmdlZCA9
IHRydWU7CiAKQEAgLTY1MzIsMTIgKzY1MzIsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2Ft
ZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogdm9pZCBXZWJQYWdlOjpoYXNT
dG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJh
YmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkZyYW1lJiBmcmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6SGFzU3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFp
biksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZS5mcmFtZUlEKCksIG1fcGFnZUlEKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9y
YWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0
b3BGcmFtZURvbWFpbiksIGZyYW1lLmZyYW1lSUQoKSwgbV9pZGVudGlmaWVyKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIFdlYkZyYW1lJiBmcmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVE
b21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWUuZnJhbWVJRCgpLCBtX3BhZ2VJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVx
dWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBX
VEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWUuZnJhbWVJRCgpLCBtX2lkZW50aWZpZXIpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6d2FzTG9hZGVk
V2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpCkBAIC02NzU1LDcgKzY3NTUs
NyBAQCB2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0
UmVjdCBzZWFyY2hSZWN0LCBDb21wbGV0aW9uSAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgICAgICBXZWJLaXQ6OlRleHRJbnB1dENvbnRleHQgY29udGV4dDsKLSAgICAgICAg
ICAgIGNvbnRleHQud2ViUGFnZUlkZW50aWZpZXIgPSBtX3BhZ2VJRDsKKyAgICAgICAgICAgIGNv
bnRleHQud2ViUGFnZUlkZW50aWZpZXIgPSBtX2lkZW50aWZpZXI7CiAgICAgICAgICAgICBjb250
ZXh0LmRvY3VtZW50SWRlbnRpZmllciA9IGRvY3VtZW50LT5pZGVudGlmaWVyKCk7CiAgICAgICAg
ICAgICBjb250ZXh0LmVsZW1lbnRJZGVudGlmaWVyID0gZG9jdW1lbnQtPmlkZW50aWZpZXJGb3JF
bGVtZW50KGVsZW1lbnQpOwogICAgICAgICAgICAgY29udGV4dC5ib3VuZGluZ1JlY3QgPSBlbGVt
ZW50UmVjdDsKQEAgLTY3NzksNyArNjc3OSw3IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5w
dXRDb250ZXh0KGNvbnN0IFRleHRJbnB1dENvbnRleHQmIHRleHRJbnB1dENvbnRleHQsIENvCiAK
IEVsZW1lbnQqIFdlYlBhZ2U6OmVsZW1lbnRGb3JUZXh0SW5wdXRDb250ZXh0KGNvbnN0IFRleHRJ
bnB1dENvbnRleHQmIHRleHRJbnB1dENvbnRleHQpCiB7Ci0gICAgaWYgKHRleHRJbnB1dENvbnRl
eHQud2ViUGFnZUlkZW50aWZpZXIgIT0gbV9wYWdlSUQpCisgICAgaWYgKHRleHRJbnB1dENvbnRl
eHQud2ViUGFnZUlkZW50aWZpZXIgIT0gbV9pZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgp
LmdldCh0ZXh0SW5wdXRDb250ZXh0LmRvY3VtZW50SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2I4OWIwNjgyMzRlMDdkMzNjNjdh
YThlMDYyMWM5YjUxMDU2ZjczYy4uZGYxYzgyNTljOGRkZmJkYTExYWEwNThlZDVjYWUxN2FhMmQx
MjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
MjkxLDcgKzI5MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUGFnZSYgZnJvbUNvcmVQYWdl
KFdlYkNvcmU6OlBhZ2UmKTsKIAogICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlLmdldCgpOyB9Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8U3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXJUeXBlPihtX3dlYlBhZ2VQcm94eUlkZW50aWZpZXIudG9VSW50NjQoKSk7IH0KICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UtPnNlc3Np
b25JRCgpOyB9CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsgfQpAQCAtMTYyMSw3ICsxNjIxLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlTW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50QWZ0ZXJD
b21taXR0aW5nTG9hZCgpOwogCi0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7
CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8V2ViRnJhbWU+IG1f
bWFpbkZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcAppbmRleCBiNzc5OWI0ZmJiOGI1NWNiNjZi
NjIyMjdhNmE2NWYzYWIxMmNhMDBmLi41NmIwZDUyZWM1OTU3Y2M3M2ExM2YwNjdlYjNjZGEwMzJk
ZTIxNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcApAQCAtNDEsNyArNDEsNyBAQCBXZWJQYWdl
SW5zcGVjdG9yVGFyZ2V0OjpXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0KFdlYlBhZ2UmIHBhZ2UpCiAK
IFN0cmluZyBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0OjppZGVudGlmaWVyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbWFrZVN0cmluZygicGFnZS0iLCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSk7
CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoInBhZ2UtIiwgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Ojpjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBjaGFubmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNl
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3RCYXNlLm1tCmluZGV4IDYxNjVhMDFmZTYwODI0OGZkZTNiOTYwZjc4OTQ1
MTM5MjM3MWRmOGYuLjQyNzNkYjVlYjJiNmZhMWQ3NzdiOGMyODcyNjFlNjBiYWU1NjVjMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KQEAgLTE0Myw3
ICsxNDMsNyBAQCAtICh2b2lkKXNldFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSopcGFnZQogICAg
IG1fcGFnZSA9IHBhZ2U7CiAKICAgICBpZiAocGFnZSkgewotICAgICAgICBtX3BhZ2VJRCA9IHBh
Z2UtPnBhZ2VJRCgpOworICAgICAgICBtX3BhZ2VJRCA9IHBhZ2UtPmlkZW50aWZpZXIoKTsKIAog
ICAgICAgICBhdXRvKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgICAgICBtX2hhc01h
aW5GcmFtZVBsdWdpbiA9IGZyYW1lICYmIGZyYW1lLT5kb2N1bWVudCgpID8gZnJhbWUtPmRvY3Vt
ZW50KCktPmlzUGx1Z2luRG9jdW1lbnQoKSA6IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBmZTI0MTdiMGE3ZDU4
MzYzYzU0YmI4NmRhNTc4OThkMTFmYmUzNTM4Li4yNWYzZjc3YWU3OWNiNDI2YmVlMzU3ZWVlNDE3
YzA5NGU2NWZkZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgV2ViUGFnZTo6ZXhl
Y3V0ZUtleXByZXNzQ29tbWFuZHNJbnRlcm5hbChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGJvb2wgY29tbWFu
ZFdhc0hhbmRsZWRCeVVJUHJvY2VzcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbW1hbmRz
W2ldLmNvbW1hbmROYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3I6OlJlcGx5KGNvbW1hbmRXYXNIYW5k
bGVkQnlVSVByb2Nlc3MpLCBtX3BhZ2VJRCk7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yOjpSZXBseShjb21t
YW5kV2FzSGFuZGxlZEJ5VUlQcm9jZXNzKSwgbV9pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAg
ICBldmVudFdhc0hhbmRsZWQgfD0gY29tbWFuZFdhc0hhbmRsZWRCeVVJUHJvY2VzczsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGUyNzlkNDRmNzZhODJkNWU5ZjUwOGZjZjBmZTRkOGFiNTBkYTlhMTUuLmNjYjUyN2Rh
N2JhYWQ5ODI3ZWEyYjkzMWYwM2JiMjNjM2I4ZDhhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE3NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVj
dD4gV2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyhBUEk6Ok9iamVjdCogb2Jq
ZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRv
Y29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJGcmFtZSY+KG9iamVjdCkuZnJhbWVJRCgp
KTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGlu
ZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlm
aWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2UmPihvYmplY3QpLnBhZ2VJRCgpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGlu
ZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlm
aWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2UmPihvYmplY3QpLmlkZW50aWZpZXIoKSk7
CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2VHcm91cDog
ewogICAgICAgICAgICAgICAgIFdlYlBhZ2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmNwcAppbmRleCA1YzAwYTU1NDY1NDA5ZTRhM2M0NWFmMGYxMWVjODA3ODYz
NzBjNjRiLi5lMWUzYTc0MzJjYzFiN2RmOTQ5MTI1MTY2ODJkYTIyODAyYmZlODZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2U+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjb3B5KFBhZ2UmIG5ld1BhZ2UpCiAgICAgaWYgKGF1
dG8gbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhp
c3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAgICAgbmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6
OkNsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UobmV3UGFnZS5zZXNzaW9uSUQoKSwgbV9zdG9y
YWdlTmFtZXNwYWNlSUQsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS5zZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSksIDApOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQ
YWdlKG5ld1BhZ2UpLnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBXZWJQYWdl
Ojpmcm9tQ29yZVBhZ2UobmV3UGFnZSkucGFnZUlEKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCks
IG1fcXVvdGFJbkJ5dGVzLCBuZXdQYWdlLnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJv
bUNvcmVQYWdlKG5ld1BhZ2UpLnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBX
ZWJQYWdlOjpmcm9tQ29yZVBhZ2UobmV3UGFnZSkuaWRlbnRpZmllcigpLCBtX3RvcExldmVsT3Jp
Z2luLmdldCgpLCBtX3F1b3RhSW5CeXRlcywgbmV3UGFnZS5zZXNzaW9uSUQoKSkpOwogfQogCiB2
b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCmlu
ZGV4IGYyZjc5MWFhNzVlMDE0MDFkNTdlOTM4MjE3ZDI5NmMyMDhkODQ0MDEuLjIxNTNmMTk0ZWYy
NzA4ZWY3ZTZkOWFkN2QzMWZmMjA0YmQyNjhhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyLmNwcApAQCAtNjcsNyArNjcsNyBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXI6On5XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKQogUmVmPFdlYkNvcmU6OlN0b3JhZ2VO
YW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2UoUGFnZSYgcGFnZSwgdW5zaWduZWQgcXVvdGEpCiB7CiAgICAgYXV0byYgd2Vi
UGFnZSA9IFdlYlBhZ2U6OmZyb21Db3JlUGFnZShwYWdlKTsKLSAgICByZXR1cm4gU3RvcmFnZU5h
bWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHdlYlBhZ2Uuc2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBhZ2UucGFnZUlEKCksIHF1b3RhLCBw
YWdlLnNlc3Npb25JRCgpKTsKKyAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0
ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHdlYlBhZ2Uuc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyKCksIHdlYlBhZ2UuaWRlbnRpZmllcigpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQo
KSk7CiB9CiAKIFJlZjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXI6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCA2NmYwNGRlNDQ4
M2M5OTNmZjUwY2NmOGU2YWQ3MzEyMGMzNGI3ZTVjLi4yMGRlMzQxZjZkMTdiYjFkYzMyZThhMTk2
NzA3YjU0NGFhOTIxOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIFJl
ZjxQbGF5YmFja1Nlc3Npb25NYW5hZ2VyPiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpjcmVhdGUo
V2ViUGFnZSYgcGFnZSkKIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZSgmcGFnZSkKIHsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS5wYWdlSUQoKSwgKnRoaXMp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLmlk
ZW50aWZpZXIoKSwgKnRoaXMpOwogfQogCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp+UGxheWJh
Y2tTZXNzaW9uTWFuYWdlcigpCkBAIC0xODcsMTMgKzE4NywxMyBAQCBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyOjp+UGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiAgICAgbV9jbGllbnRDb3VudHMuY2xl
YXIoKTsKIAogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmll
cigpKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsK
ICAgICBBU1NFUlQobV9wYWdlKTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBt
X3BhZ2UgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDU4OTBmNzI5NTE3Mjc1
NDA0MTkzYWMyMzIzM2UxNjIzMzE1MjU4MWMuLmQ5NmQyMGVjYjEzYzZlZDRkNjZjYmFmZjQ2YjYw
N2UwMjBlYWI0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0xMTcsNyArMTE3LDcgQEAgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcihXZWJQYWdlJiBwYWdlLCBQ
bGF5YmFja1Nlc3Npb25NYW4KICAgICA6IG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlcihwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKQogewotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLnBhZ2VJRCgpLCAqdGhpcyk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRlbnRp
ZmllcigpLCAqdGhpcyk7CiB9CiAKIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyKCkKQEAgLTEzNCwxMyArMTM0LDEzIEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6On5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKICAgICBtX2NsaWVudENvdW50cy5jbGVhcigp
OwogICAgIAogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmll
cigpKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsK
ICAgICBBU1NFUlQobV9wYWdlKTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBt
X3BhZ2UgPSBudWxscHRyOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377905</attachid>
            <date>2019-09-03 10:34:58 -0700</date>
            <delta_ts>2019-09-03 10:41:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201428-20190903103457.patch</filename>
            <type>text/plain</type>
            <size>83516</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2NWQxOWY1MWU4ZThjMjVk
ZDA3ZWJhNDQ1ODA4YTI5Mzc5OTZhNDIuLjA2YTRlNTcyYjc4ZWU5Nzg0NWU4NzQ1OGU5Y2Y2M2Uz
ZjA0MTA0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1IEBACisyMDE5LTA5LTAzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFdlYlBhZ2U6OnBhZ2VJ
RCgpIHRvIFdlYlBhZ2U6OmlkZW50aWZpZXIoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkg
S29pdmlzdG8uCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
OnNob3dQYXltZW50VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Fk
ZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2Vk
RnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6dG9vbGJhcnNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpzdGF0dXNiYXJWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjptZW51YmFyVmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6d3JhcENyeXB0b0tleSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpXZWJDb2xvckNob29zZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnJlYXR0YWNoQ29sb3JDaG9vc2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6aGFuZGxlS2V5ZG93bldp
dGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVu
dTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNsaWVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjpUZXh0Q2hl
Y2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNo
RXZlbnRzRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6Z2V0UXVl
dWVkVG91Y2hFdmVudHNGb3JQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2Fn
ZVRvQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFu
Z2VTaGVldFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c3Rh
cnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmJy
aW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjbG9z
ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpyZW9wZW4p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cmVzZXRTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpvcGVuSW5OZXdUYWIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2F2ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjphcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2hvd0NlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjp+
Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1BdEluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6OmJhY2tMaXN0Q291bnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3Rvcjo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yOjpicmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OmVsZW1lbnRTZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yOjp0aW1lbGluZVJlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3I6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1Npemlu
Z0FkanVzdG1lbnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZnJlZXplTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dW5mcmVlemVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlU2Vz
c2lvbkludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Q3VycmVudEhpc3Rv
cnlJdGVtRm9yUmVhdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJc0lu
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1haW5GcmFtZURpZExheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0
c0luUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JUZXh0SW5wdXRD
b250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cGFnZUlEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW06CisgICAg
ICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6Y29weSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6UGxheWJhY2tTZXNzaW9uTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6On5QbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6aW52YWxpZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKToKKwogMjAxOS0wOS0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBE
ZXByZWNhdGUgbm9uZnVuY3Rpb25hbCBwcm9jZXNzIGxpbWl0IEFQSXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5t
bQppbmRleCBjNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4Li5hYjJlZDli
ZTMwZWFhNzg1NWExZDM0NDNmMGQ0ZmM4YzhiMjM4Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCkBA
IC0zOSw3ICszOSw3IEBAIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdl
UHJveHkmKXBhZ2UKIAogLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdl
CiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVBy
b3h5SWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLnBhZ2VJRCgpXTsKKyAgICByZXR1cm4g
W3NlbGYgX2luaXRXaXRoUGFnZVByb3h5SUQ6cGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkg
YW5kV2ViUGFnZUlEOnBhZ2UuaWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2luaXRXaXRoUGFn
ZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRX
ZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcAppbmRleCA1N2YzZmUxNzNjY2Q5NTE3MzY0MmExOTVlN2NmZDEwMTg4Njk4OGNjLi4y
NDY4YzAwYWMxNzdmZDFiMGQ0ZGY0YzIyMDJlYWMzMTI0NTE5ZDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlBheW1lbnRD
b29yZGluYXRvcjo6V2ViUGF5bWVudENvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAg
OiBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29y
ZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmllcigpLCAq
dGhpcyk7CiB9CiAKIFdlYlBheW1lbnRDb29yZGluYXRvcjo6fldlYlBheW1lbnRDb29yZGluYXRv
cigpCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5
bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvCiAgICAgICAgIGxp
bmtJY29uVVJMU3RyaW5ncy5hcHBlbmQobGlua0ljb25VUkwuc3RyaW5nKCkpOwogCiAgICAgYm9v
bCByZXN1bHQ7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OlNob3dQYXltZW50VUkobV93ZWJQYWdlLnBhZ2VJRCgpLCBtX3dlYlBhZ2Uuc2Vz
c2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBsaW5rSWNvblVSTFN0cmluZ3MsIHBh
eW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpTaG93
UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKKyAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6U2hvd1BheW1lbnRVSShtX3dlYlBhZ2UuaWRlbnRp
ZmllcigpLCBtX3dlYlBhZ2Uuc2Vzc2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBs
aW5rSWNvblVSTFN0cmluZ3MsIHBheW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5OjpTaG93UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE2OCw3ICsxNjgsNyBAQCBJ
UEM6OkNvbm5lY3Rpb24qIFdlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdAogCiB1aW50NjRfdCBXZWJQYXltZW50Q29vcmRpbmF0b3I6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJ
RCgpLnRvVUludDY0KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50
NjQoKTsKIH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OnZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
V2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAppbmRleCBlMzA2ZTNmZWYyNjMxZDU0NjY1NTcxMTZlNWU0
ODdkMzcxYzc4NTc5Li5mMDVkZThlNTEyNDhkN2RiMjhlODI4YzZiNmY5ZTg0ZTMxZDczOTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcApAQCAtMjI0LDcg
KzIyNCw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlKFdl
YktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBndWluCiAgICAgV2ViS2l0V2ViRXh0ZW5zaW9u
UHJpdmF0ZSogcHJpdiA9IGV4dGVuc2lvbi0+cHJpdjsKICAgICBXZWJQYWdlTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBwcml2LT5wYWdlcy5lbmQoKTsKICAgICBmb3IgKFdlYlBhZ2VNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gcHJpdi0+cGFnZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQot
ICAgICAgICBpZiAoaXQtPmtleS0+cGFnZUlEKCkudG9VSW50NjQoKSA9PSBwYWdlSUQpCisgICAg
ICAgIGlmIChpdC0+a2V5LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA9PSBwYWdlSUQpCiAgICAg
ICAgICAgICByZXR1cm4gaXQtPnZhbHVlLmdldCgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2Vi
S2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggYzkyMDRiMjM5ODFkN2YxN2FkMDczYjll
ZDQxMmE4Nzc2ODVjZTdkMy4uNGRiMjIwMjY4M2FkZjJjZWU1YTNjOGM2NGJkYWUyOGUxOWZkZWE5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjQ5LDcgKzI0OSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICB3ZWJraXRVUklSZXF1ZXN0R2V0UmVz
b3VyY2VSZXF1ZXN0KHJlcXVlc3QuZ2V0KCksIHJlc291cmNlUmVxdWVzdCk7Ci0gICAgICAgIHJl
c291cmNlUmVxdWVzdC5zZXRJbml0aWF0aW5nUGFnZUlEKHBhZ2UucGFnZUlEKCkpOworICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0SW5pdGlhdGluZ1BhZ2VJRChwYWdlLmlkZW50aWZpZXIoKSk7
CiAKICAgICAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgICAgIG1l
c3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgJnBhZ2UpOwpAQCAtNzY0LDcgKzc2
NCw3IEBAIGd1aW50NjQgd2Via2l0X3dlYl9wYWdlX2dldF9pZChXZWJLaXRXZWJQYWdlKiB3ZWJQ
YWdlKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQ
YWdlKSwgMCk7CiAKLSAgICByZXR1cm4gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+cGFnZUlEKCku
dG9VSW50NjQoKTsKKyAgICByZXR1cm4gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+aWRlbnRpZmll
cigpLnRvVUludDY0KCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDgwNTZlOTI3NWE1M2I1
ODA5OGRiZGY0ZjE4OGZiOTI1NTQwYTY3MjAuLmVjOGYxOWQ2ZjQ4NmEzN2IyY2YzYTJiZTcwZTQ3
MjIwMTE4MjA4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFt
ZUxvYWRlciwgdW5zaQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xp
ZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiBudWxscHRyOwogICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiBudWxscHRyOwog
Ci0gICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiBQYWdlSWRl
bnRpZmllciB7IH07CisgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+aWRlbnRp
ZmllcigpIDogUGFnZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1l
ID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZyYW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBz
ZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3Qg
VVJMJiB1cmwsIFMKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMgeyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSB9OwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFJl
c291cmNlUmVxdWVzdCB7IHVybCB9OwotICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFn
ZS0+cGFnZUlEKCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlLT5pZGVudGlm
aWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZyYW1lSUQoKTsK
ICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwog
ICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMjBlNGQ1YzVh
ZGJkMDhhNTVkMTA3NzVlYjUyOWU3NzBlYWUyZDIyNS4uYTY1YmZhNWJiYWU5ZDlkMzRkZDAwMTc5
MzlkMmFmM2UzNjFiNzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAg
LTE1MCw3ICsxNTAsNyBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgYXV0byBpdCA9IG1fbm90
aWZpY2F0aW9uQ29udGV4dE1hcC5hZGQobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIFZlY3Rvcjx1aW50NjRfdD4oKSkuaXRlcmF0b3I7CiAgICAgaXQtPnZhbHVlLmFwcGVu
ZChub3RpZmljYXRpb25JRCk7CiAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uKG5vdGlm
aWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+aWNv
bigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24tPmxhbmcoKSwg
bm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
cGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50
aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5n
KCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRp
b24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVy
KCkpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0
aW9uKTsKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNh
bmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBpZiAo
IW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2Fu
Y2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworICAgIG1f
cHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZp
ZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNF
RF9QQVJBTShwYWdlKTsKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNh
dGlvbklEcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5vdGlmaWNhdGlv
bnMobm90aWZpY2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBzaXplX3QgY291
bnQgPSBub3RpZmljYXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24g
PSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsKQEAgLTIxMCw3
ICsyMTAsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmlj
YXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlmaWNhdGlvbklE
TWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0aW9uRnJvbUNv
bnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
RGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAg
ICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
aWRlbnRpZmllcigpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAg
ICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcAppbmRleCA4NTY1OTE2NmNjMjFlZDk2MjY0MDc0YjdlODY0MmIyYTg2
MjE4Y2E1Li42NmZhMWE3OWJkMWY2NTk0Y2QyNmQ5NGMzNTc2ODg2MzFhNThmODliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBtX3dl
YlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmll
cigpLCAqdGhpcyk7CiB9CiAKIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6fldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDgzMzZhNDcy
ZjM2ODdmNjYzZGVlODQ0MmUyM2JlMzExMDllMDgwYWIuLjY2N2Y0N2ExNWQyNTZjMzcyNTVjZDNl
MThmMTY4MTBlNWViMGQ1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xODAsNyArMTgw
LDcgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiAKICAgICBGbG9h
dFJlY3QgbmV3V2luZG93RnJhbWU7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0Zy
YW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZSgpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZTo6UmVwbHkobmV3V2luZG93RnJhbWUpLCBtX3BhZ2Uu
aWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogCiAgICAgcmV0dXJu
IG5ld1dpbmRvd0ZyYW1lOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkgOiBudWxscHRy
OwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZy
YW1lID8gbWFrZU9wdGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwg
bV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFt
ZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1lSUQoKSkgOiBX
VEY6Om51bGxvcHQpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCkBAIC0yOTIsMTQgKzI5MiwxNCBAQCBQ
YWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG5l
d1BhZ2VJRDsKICAgICBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBwYXJhbWV0
ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5pbmZv
KCksIHdlYkZyYW1lLT5wYWdlKCktPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBw
YXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFnZSgpLT53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRvd0ZlYXR1cmVz
LCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5l
d1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5pZGVudGlmaWVyKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBBU1NFUlQocGFyYW1ldGVycyk7CiAgICAgaWYgKHBhcmFt
ZXRlcnMtPnNlc3Npb25JRCA9PSBtX3BhZ2Uuc2Vzc2lvbklEKCkpCi0gICAgICAgIHBhcmFtZXRl
cnMtPm9sZFBhZ2VJRCA9IG1fcGFnZS5wYWdlSUQoKTsKKyAgICAgICAgcGFyYW1ldGVycy0+b2xk
UGFnZUlEID0gbV9wYWdlLmlkZW50aWZpZXIoKTsKIAogICAgIHdlYlByb2Nlc3MuY3JlYXRlV2Vi
UGFnZSgqbmV3UGFnZUlELCBXVEZNb3ZlKCpwYXJhbWV0ZXJzKSk7CiAgICAgcmV0dXJuIHdlYlBy
b2Nlc3Mud2ViUGFnZSgqbmV3UGFnZUlEKS0+Y29yZVBhZ2UoKTsKQEAgLTMwOSw3ICszMDksNyBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKIHsKICAgICBJUEM6OlVuYm91bmRlZFN5bmNocm9ub3Vz
SVBDU2NvcGUgdW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZTsKICAgICBib29sIGhhbmRsZWQg
PSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseShtX3BhZ2UucGFnZUlEKCkpLCBNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQorICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KG1fcGFnZS5pZGVudGlmaWVyKCkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIGhhbmRsZWQ7CiB9CkBAIC0zNDYsNyArMzQ2LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnRvb2xiYXJzVmlzaWJsZSgpCiAgICAgICAgIHJldHVybiB0b29sYmFyc1Zpc2liaWxpdHkgPT0g
QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1lbnRWaXNpYmlsaXR5OjpW
aXNpYmxlOwogICAgIAogICAgIGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlID0gdHJ1ZTsKLSAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZSgpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OlJlcGx5KHRvb2xi
YXJzQXJlVmlzaWJsZSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6R2V0VG9vbGJhcnNBcmVWaXNpYmxlOjpSZXBseSh0b29sYmFyc0FyZVZpc2libGUpLCBt
X3BhZ2UuaWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4g
dG9vbGJhcnNBcmVWaXNpYmxlOwpAQCAtMzY0LDcgKzM2NCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzdGF0dXNiYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIHN0YXR1c2JhclZpc2liaWxp
dHkgPT0gQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1lbnRWaXNpYmls
aXR5OjpWaXNpYmxlOwogCiAgICAgYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUgPSB0cnVlOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlKCks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZTo6UmVwbHkoc3Rh
dHVzQmFySXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZSgpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OlJlcGx5KHN0YXR1c0JhcklzVmlzaWJsZSks
IG1fcGFnZS5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBzdGF0dXNCYXJJc1Zpc2libGU7CkBAIC0zOTMsNyArMzkzLDcgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6Om1lbnViYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIG1lbnViYXJWaXNpYmlsaXR5
ID09IEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6VUlFbGVtZW50VmlzaWJpbGl0
eTo6VmlzaWJsZTsKICAgICAKICAgICBib29sIG1lbnVCYXJJc1Zpc2libGUgPSB0cnVlOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklzVmlzaWJsZSgpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlOjpSZXBseShtZW51QmFy
SXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
R2V0TWVudUJhcklzVmlzaWJsZTo6UmVwbHkobWVudUJhcklzVmlzaWJsZSksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBtZW51QmFySXNW
aXNpYmxlOwpAQCAtMTE4NSw3ICsxMTg1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3Vz
ZWRDb250ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdlKHVpbnQ2NF90IGVsZW1lbnRJRCkKIGJvb2wg
V2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5
LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXcmFwQ3J5cHRvS2V5KGtl
eSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRl
ZCwgd3JhcHBlZEtleSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpXcmFwQ3J5cHRvS2V5KGtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OldyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwgd3JhcHBlZEtleSksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHN1Y2NlZWRlZDsK
IH0KQEAgLTExOTMsNyArMTE5Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRv
S2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mCiBib29sIFdl
YkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3Jh
cHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIGNvbnN0CiB7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbndyYXBDcnlwdG9LZXko
d3JhcHBlZEtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVud3JhcENyeXB0b0tleTo6UmVw
bHkoc3VjY2VlZGVkLCBrZXkpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6VW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXkpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpVbndyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwga2V5KSwgbV9w
YWdlLmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc3Vj
Y2VlZGVkOwogfQpAQCAtMTIwMyw3ICsxMjAzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnVu
d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3RvcjwK
IFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmlu
Zyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBj
b25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KGtleVNpemVJbmRleCwgY2hhbGxlbmdlU3RyaW5nLCB1cmwpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmc6OlJlcGx5KHJlc3VsdCksIG1f
cGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoa2V5U2l6ZUluZGV4LCBjaGFsbGVuZ2VTdHJp
bmcsIHVybCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNpZ25lZFB1YmxpY0tleUFuZENoYWxs
ZW5nZVN0cmluZzo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLmlkZW50aWZpZXIoKSkpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwCmluZGV4IGQ1MzVlNWM1NWM2YmRhNTVkZTQ1OGJhOTJmOTE0N2MwMmVlNGNkMzIu
LmJkNzYyYTdiMmM1ZDI2ZjAwZGM4Mjc3MjlkM2Y1ZTcyMjk1MGM3NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFdlYkNvbG9yQ2hvb3Nlcjo6V2ViQ29sb3JDaG9v
c2VyKFdlYlBhZ2UqIHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zCiAgICAg
LCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPnNldEFjdGl2ZUNvbG9yQ2hvb3Nlcih0aGlz
KTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihpbml0aWFsQ29s
b3IsIGNsaWVudC0+ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgY2xpZW50LT5zdWdn
ZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2hvd0NvbG9yUGlja2VyKGluaXRpYWxDb2xvciwgY2xpZW50LT5lbGVtZW50UmVjdFJl
bGF0aXZlVG9Sb290VmlldygpLCBjbGllbnQtPnN1Z2dlc3RlZENvbG9ycygpKSwgbV9wYWdlLT5p
ZGVudGlmaWVyKCkpOwogfQogCiBXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNob29zZXIoKQpA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6cmVhdHRhY2hDb2xvckNob29z
ZXIoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIG1fcGFnZS0+c2V0QWN0aXZlQ29sb3JDaG9vc2Vy
KHRoaXMpOwogCiAgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyQ2xpZW50KTsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihjb2xvciwgbV9jb2xvckNob29zZXJDbGll
bnQtPmVsZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCksIG1fY29sb3JDaG9vc2VyQ2xpZW50
LT5zdWdnZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd0NvbG9yUGlja2VyKGNvbG9yLCBtX2NvbG9yQ2hvb3NlckNsaWVudC0+
ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgbV9jb2xvckNob29zZXJDbGllbnQtPnN1
Z2dlc3RlZENvbG9ycygpKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkNv
bG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCkBAIC04NSw3
ICs4NSw3IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKICAgICBpZiAobV9wYWdlLT5hY3RpdmVDb2xvckNob29zZXIoKSAhPSB0aGlz
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldENvbG9y
UGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldENvbG9yUGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPmlkZW50aWZpZXIo
KSk7CiB9CiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKCkKQEAgLTkzLDcgKzkz
LDcgQEAgdm9pZCBXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIoKQogICAgIGlmICghbV9wYWdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZENvbG9y
UGlja2VyKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RW5kQ29sb3JQaWNrZXIoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAK
aW5kZXggZDAyNWRmYWNmYTJjYzdmNmE4YTY3MmUwYTczNTUyOTI1YmUxMWNhOC4uYWViODczN2Fk
ZDQ3M2MwM2FiNmUxMTc1MmZmMGMyMjRjOGRlMDgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyOjp+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgeyB9CiAKIHZvaWQg
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpoYW5kbGVLZXlkb3duV2l0aElkZW50aWZpZXIo
Y29uc3QgV1RGOjpTdHJpbmcmIGtleSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okhh
bmRsZUtleWRvd25JbkRhdGFMaXN0KGtleSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlS2V5ZG93bkluRGF0YUxpc3Qoa2V5KSwgbV9wYWdlLT5p
ZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlk
U2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBzZWxlY3RlZE9wdGlvbikKQEAgLTYyLDcg
KzYyLDcgQEAgdm9pZCBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENsb3NlU3VnZ2Vz
dGlvbnMoKQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6Y2xvc2UoKQogewot
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW5kRGF0YUxpc3RTdWdnZXN0aW9ucygpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZERhdGFMaXN0U3Vn
Z2VzdGlvbnMoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1Z2dl
c3Rpb25BY3RpdmF0aW9uVHlwZSB0eXBlKQpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1
Z2dlc3Rpb25BYwogICAgIG1fcGFnZS0+c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
KHRoaXMpOwogCiAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24gaW5mbyA9IHsgdHlw
ZSwgbV9kYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LT5zdWdnZXN0aW9ucygpLCBtX2RhdGFMaXN0
U3VnZ2VzdGlvbnNDbGllbnQtPmVsZW1lbnRSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgfTsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRhTGlzdFN1Z2dlc3Rpb25zKGluZm8p
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRh
TGlzdFN1Z2dlc3Rpb25zKGluZm8pLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNDhk
ZTM1ZmQwNWUzYjg5YjQxZWM5MjlhYTJjMmRkMzYyNmU5OTAzMi4uZjY0ZmM3ZDUzYjc3ZThhNDE5
MTY1ZjVlOTRkNWU4NmUyNzllMzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgV2ViRnJhbWVMb2FkZXJDbGllbnQ6On5XZWJGcmFtZUxvYWRl
ckNsaWVudCgpCiBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnBhZ2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQot
ICAgICAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5wYWdlSUQoKTsKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWUtPnBhZ2UoKS0+aWRlbnRpZmllcigpOwogCiAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogICAgIGlm
ICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywg
IiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywg
d2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0
KCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJ
OjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3
ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQo
KSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX2Zy
YW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVz
ZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGQxNmZlODU3Nzg0ZGMzZWFjZGQyYmY5MWE3
M2VhZTg2OTYyZTVkNWIuLjBmOGY3MjA4M2QzZTY1N2Y4NDNkYjUxMDc3MWQ3NjMzNDg2NmMxMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
b3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnU6
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAg
ICAgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHBsYXRmb3JtRGF0YTsKICAgICBzZXRVcFBsYXRmb3Jt
RGF0YShwYWdlQ29vcmRpbmF0ZXMsIHBsYXRmb3JtRGF0YSk7CiAKLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpKSwgaXRlbXMs
IGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpKSwgaXRl
bXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIHZv
aWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYlBvcHVw
TWVudTo6aGlkZSgpCiAgICAgaWYgKCFtX3BhZ2UgfHwgIW1fcG9wdXBDbGllbnQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGlkZVBvcHVwTWVudSgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhpZGVQb3B1cE1l
bnUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0QWN0aXZlUG9wdXBN
ZW51KG51bGxwdHIpOwogICAgIG1fcG9wdXBDbGllbnQtPnBvcHVwRGlkSGlkZSgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmNwcAppbmRleCBkM2JkNDM4YzcxY2JmNjQxYTRhM2U1ZDQxMTMx
YzNlZGQ1NzdjYTgwLi45MDFlZmQ0NWI0MzkxYWJkZTJiNWEwNjBjYjY5MjhjZWU4YzRiMDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdlYlNl
YXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgc2VhcmNoSXRlbXMp
LCBwYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50
U2VhcmNoZXMobmFtZSwgc2VhcmNoSXRlbXMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21TdHJp
bmcmIG5hbWUsIFZlY3RvcjxSZWNlbnRTZWFyY2g+JiByZXN1bHRJdGVtcykKQEAgLTY4LDcgKzY4
LDcgQEAgdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9tU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjZW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRSZWNlbnRTZWFyY2hl
cyhuYW1lKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFJlY2VudFNlYXJjaGVzOjpSZXBs
eShyZXN1bHRJdGVtcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpMb2FkUmVjZW50U2VhcmNoZXMobmFtZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkxvYWRSZWNlbnRTZWFyY2hlczo6UmVwbHkocmVzdWx0SXRlbXMpLCBwYWdlLT5pZGVudGlmaWVy
KCkpOwogfQogCiBib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9h
ZGVyQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQppbmRleCA0ZDdlNjQzNjU1MGY1NzVjOTg0
YmQwOTg3YTM5NzVmODRkMWU5YzY1Li5mY2E5YmRmMDZlZGFhM2I0OTg3YjE5ODU0ZTkzM2NlNmYz
NDc1Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KQEAg
LTc0LDcgKzc0LDcgQEAgUmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnMKICAgICBpZiAoIXdlYlBhZ2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIFdlYlByZXZpZXdMb2FkZXJD
bGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRpLCB3ZWJQYWdlLT5wYWdlSUQoKSk7CisgICAgcmV0
dXJuIFdlYlByZXZpZXdMb2FkZXJDbGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRpLCB3ZWJQYWdl
LT5pZGVudGlmaWVyKCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eS5tbQppbmRleCAxZDVjMGE2ZGE1NTJjNjU1NTNmYzE4Y2ZlY2FkNDI5YjE3MGM0
YWM5Li42YzlmZDJjYzI3YmNkOGVmYTkyNTQ5MTE2NzQ1MGRiZGRlNDBkYTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5Lm1tCkBAIC01NywxMiArNTcsMTIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6OlRleHRD
aGVja2luZ0NvbnRyb2xsZXJQcm94eShXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2Up
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQogCiBU
ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHko
KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBP
cHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+IHJlbGV2YW50TWFya2VyVHlwZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmluZGV4IDQzYWI2ZTcyZDJkZWVk
NDA0NDc3NmEwNDFlZDBjMjU0OTdjNzI4YmEuLmQzYzk4ZGRkZmExMTg0ODQxYTI1ZTY5ZTQ2ZjI3
ZjRiNTg4MGExNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKQEAgLTM1
LDcgKzM1LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9iamVjdFJlZ2lz
dHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGUKICAgICA6IFJlbW90ZU9iamVjdFJl
Z2lzdHJ5KHJlbW90ZU9iamVjdFJlZ2lzdHJ5KQogICAgICwgbV9wYWdlKHBhZ2UpCiB7Ci0gICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCks
ICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBwYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lz
dHJ5KHRoaXMpOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
Ojp+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogdm9pZCBXZWJSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6Y2xvc2UoKQogewogICAgIGlmIChtX3BhZ2UucmVtb3RlT2JqZWN0UmVnaXN0cnkoKSA9PSB0
aGlzKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKICAgICAgICAgbV9wYWdlLnNl
dFJlbW90ZU9iamVjdFJlZ2lzdHJ5KG51bGxwdHIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IGNm
MzkzODRhYWQ1NWRiN2U0NzJiYTE2YmQxODAzYWY5Njg1MTJkZTkuLjBhMjU0MDVkZTg4ZDljNzU0
NDE3NjUxMDVmZDY3NzI4ODVlZmY1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNjgsMTggKzY4LDE4IEBAIHZv
aWQgRXZlbnREaXNwYXRjaGVyOjphZGRTY3JvbGxpbmdUcmVlRm9yUGFnZShXZWJQYWdlKiB3ZWJQ
YWdlKQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAKICAg
ICBBU1NFUlQod2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSk7Ci0g
ICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7
CisgICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPmlkZW50aWZp
ZXIoKSkpOwogCiAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRp
bmF0b3IgPSBkb3duY2FzdDxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPigqd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSk7Ci0gICAgbV9zY3JvbGxpbmdUcmVlcy5z
ZXQod2ViUGFnZS0+cGFnZUlEKCksIGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Ny
b2xsaW5nQ29vcmRpbmF0b3Iuc2Nyb2xsaW5nVHJlZSgpKSk7CisgICAgbV9zY3JvbGxpbmdUcmVl
cy5zZXQod2ViUGFnZS0+aWRlbnRpZmllcigpLCBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU+KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNjcm9sbGluZ1RyZWUoKSkpOwogfQogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFn
ZSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwotICAg
IEFTU0VSVChtX3Njcm9sbGluZ1RyZWVzLmNvbnRhaW5zKHdlYlBhZ2UtPnBhZ2VJRCgpKSk7Cisg
ICAgQVNTRVJUKG1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+aWRlbnRpZmllcigp
KSk7CiAKLSAgICBtX3Njcm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5wYWdlSUQoKSk7Cisg
ICAgbV9zY3JvbGxpbmdUcmVlcy5yZW1vdmUod2ViUGFnZS0+aWRlbnRpZmllcigpKTsKIH0KICNl
bmRpZgogCkBAIC0xNTUsMTMgKzE1NSwxMyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6Z2VzdHVy
ZUV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViS2l0OjpXZWJHZXN0dQogdm9p
ZCBFdmVudERpc3BhdGNoZXI6OmNsZWFyUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKGNvbnN0IFdl
YlBhZ2UmIHdlYlBhZ2UpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoJm1fdG91Y2hFdmVudHNM
b2NrKTsKLSAgICBtX3RvdWNoRXZlbnRzLnJlbW92ZSh3ZWJQYWdlLnBhZ2VJRCgpKTsKKyAgICBt
X3RvdWNoRXZlbnRzLnJlbW92ZSh3ZWJQYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgRXZl
bnREaXNwYXRjaGVyOjpnZXRRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYg
d2ViUGFnZSwgVG91Y2hFdmVudFF1ZXVlJiBkZXN0aW5hdGlvblF1ZXVlKQogewogICAgIExvY2tI
b2xkZXIgbG9ja2VyKCZtX3RvdWNoRXZlbnRzTG9jayk7Ci0gICAgZGVzdGluYXRpb25RdWV1ZSA9
IG1fdG91Y2hFdmVudHMudGFrZSh3ZWJQYWdlLnBhZ2VJRCgpKTsKKyAgICBkZXN0aW5hdGlvblF1
ZXVlID0gbV90b3VjaEV2ZW50cy50YWtlKHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9p
ZCBFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25z
dCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggNDQ0NmYzNGQwNGNj
ZmJmYmViMzY5YmE0NGMzMjA2YmYwZGQyM2VjZC4uMTc4MjAwMWQ2NDkxMWIwNTA4NjExYjNhNGE4
ZTIzYzU3NGIwMDk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNzUsNyArNzUsNyBAQCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29u
c3QgVwogICAgIC8vIEZJWE1FOiBXaGlsZSB1c2luZyB0aGUgaGlnaCBlbmQgb2YgdGhlIHJhbmdl
IG9mIERpc3BsYXlJRHMgbWFrZXMgYSBjb2xsaXNpb24gd2l0aCByZWFsLCBub24tUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEKICAgICAvLyBEaXNwbGF5SURzIGxlc3MgbGlrZWx5LCBpdCBpcyBu
b3QgZW50aXJlbHkgc2FmZSB0byBoYXZlIGEgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgYW5k
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhCiAgICAgLy8gY29lZXhpc3QgaW4gdGhlIHNh
bWUgcHJvY2Vzcy4KLSAgICB3ZWJQYWdlLndpbmRvd1NjcmVlbkRpZENoYW5nZShzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSB3ZWJQYWdlLnBhZ2VJRCgpLnRvVUludDY0KCkp
OworICAgIHdlYlBhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDMyX3Q+OjptYXgoKSAtIHdlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogfQog
CiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
KCkKQEAgLTQ0OSw3ICs0NDksNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
bHVzaExheWVycygpCiAgICAgUmVmUHRyPEJhY2tpbmdTdG9yZUZsdXNoZXI+IGJhY2tpbmdTdG9y
ZUZsdXNoZXIgPSBCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgV1RGTW92ZShjb21taXRFbmNvZGVyKSwg
V1RGTW92ZShjb250ZXh0c1RvRmx1c2gpKTsKICAgICBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVz
aGVyID0gYmFja2luZ1N0b3JlRmx1c2hlcjsKIAotICAgIGF1dG8gcGFnZUlEID0gbV93ZWJQYWdl
LnBhZ2VJRCgpOworICAgIGF1dG8gcGFnZUlEID0gbV93ZWJQYWdlLmlkZW50aWZpZXIoKTsKICAg
ICBkaXNwYXRjaF9hc3luYyhtX2NvbW1pdFF1ZXVlLCBbYmFja2luZ1N0b3JlRmx1c2hlciA9IFdU
Rk1vdmUoYmFja2luZ1N0b3JlRmx1c2hlciksIHBhZ2VJRF0gewogICAgICAgICBiYWNraW5nU3Rv
cmVGbHVzaGVyLT5mbHVzaCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggZDdjZDIwZmEwYzBiZmVmM2M0ZmNjZDAwN2Zk
MzhjNDFkOTRjOTE3YS4uODM1NDQxZDMxOWI5NWY0NjY4Nzc1ODUzODkwOTJjOWVlYTI5Mzg2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ci5tbQpAQCAtNTEsMTIgKzUxLDEyIEBAIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJQYWdlKiBwYWdlKQogICAgIDogQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcihwYWdlLT5jb3JlUGFnZSgpKQogICAgICwgbV93ZWJQYWdlKHBhZ2UpCiB7
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dl
YlBhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UtPmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQog
CiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6flJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fd2ViUGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVX
ZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZDRiOGIwMGZhNGI2N2JlZTI3ZDM3ZTBiNTRlMGMzYjA1
ZGY0MTg3NS4uOTExOTA1YjhhY2RmY2MyMWYyOTQyNDAwNmIxOTM2ZTA2NWQ5YmM4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYklu
c3BlY3RvclVJLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJ
OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogCiB2b2lkIFJl
bW90ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlNlbmRNZXNz
YWdlVG9CYWNrZW5kKG1lc3NhZ2UpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVdlYkluc3BlY3RvclByb3h5OjpTZW5kTWVzc2FnZVRvQmFja2VuZChtZXNzYWdlKSwgbV9w
YWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OndpbmRv
d09iamVjdENsZWFyZWQoKQpAQCAtMTAyLDEyICsxMDIsMTIgQEAgdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpj
aGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVdlYkluc3BlY3RvclByb3h5OjpTZXRTaGVldFJlY3QocmVjdCksIG1fcGFnZS5wYWdlSUQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlNldFNoZWV0UmVjdChy
ZWN0KSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
VUk6OnN0YXJ0V2luZG93RHJhZygpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6OlN0YXJ0V2luZG93RHJhZygpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTdGFydFdpbmRvd0RyYWcoKSwgbV9wYWdlLmlkZW50
aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Om1vdmVXaW5kb3dCeShm
bG9hdCB4LCBmbG9hdCB5KQpAQCAtMTI0LDM5ICsxMjQsMzkgQEAgV2ViQ29yZTo6VXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXNlckludGVyZmFjZUxh
eW91dEQKIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6YnJpbmdUb0Zyb250KCkKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zyb250KCksIG1fcGFn
ZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OkJyaW5n
VG9Gcm9udCgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6Y2xvc2VXaW5kb3coKQogewogICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQobnVsbHB0cik7CiAKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6RnJvbnRlbmREaWRDbG9zZSgpLCBt
X3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpG
cm9udGVuZERpZENsb3NlKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpyZW9wZW4oKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpSZW9wZW4oKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eTo6UmVvcGVuKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQog
CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZXNldFN0YXRlKCkKIHsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6UmVzZXRTdGF0ZSgpLCBtX3BhZ2UucGFnZUlEKCkp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpSZXNldFN0YXRlKCksIG1f
cGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpvcGVu
SW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6Ok9wZW5Jbk5ld1RhYih1cmwpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpPcGVuSW5OZXdUYWIodXJsKSwgbV9wYWdl
LmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNhdmUoY29u
c3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJhc2U2NEVu
Y29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6OlNhdmUoZmlsZW5hbWUsIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIGZvcmNlU2F2
ZUFzKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6U2F2ZShmaWxlbmFtZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZlQXMp
LCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6
YXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCkKIHsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6QXBwZW5kKGZpbGVuYW1lLCBj
b250ZW50KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0
b3JQcm94eTo6QXBwZW5kKGZpbGVuYW1lLCBjb250ZW50KSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7
CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFVSTENoYW5nZWQoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykK
IAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRp
ZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYklu
c3BlY3RvclByb3h5OjpTaG93Q2VydGlmaWNhdGUoY2VydGlmaWNhdGVJbmZvKSwgbV9wYWdlLnBh
Z2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2hvd0NlcnRp
ZmljYXRlKGNlcnRpZmljYXRlSW5mbyksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAKaW5kZXgg
YWJmY2VjZGIxZmJmZWU5ZmVkNmEyNTNjODg2ODU3Y2VjYzAxYTg4Yy4uNWZiNTMyOTNhYTc0NGJm
NjBkZGU2M2YxNzM3ZjdkNGUwZGFiMGRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rv
ci5jcHAKQEAgLTYxLDEyICs2MSwxMiBAQCBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpW
aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgLCBtX3Jl
bmRlclRyZWVTaXplTm90aWZpY2F0aW9uVGhyZXNob2xkKDApCiAjZW5kaWYKIHsKLSAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZpZXdHZXN0
dXJlR2VvbWV0cnlDb2xsZWN0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLnBh
Z2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKIH0KIAogVmlld0dl
c3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6flZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IoKQog
ewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3dlYlBhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9p
ZCBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpkaXNwYXRjaERpZENvbGxlY3RHZW9tZXRy
eUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoRmxvYXRQb2ludCBvcmlnaW4sIEZsb2F0UmVj
dCB0YXJnZXRSZWN0LCBGbG9hdFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0LCBib29sIGZpdEVudGly
ZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11
bVNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCmluZGV4IDdhMGMwYzgwZmU4Y2M2MDExNjkz
ZDdiNDUyN2FiZWM3ZTllNWU3NDguLmQ4MGQ3Zjk1N2E5NjNiZDJiOWRmYjkyYmJkOTU1YjhkNWQ1
MjQ0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJh
Y2tGb3J3YXJkTGlzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBSZWZQ
dHI8SGlzdG9yeUl0ZW0+IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtQXRJbmRleChpbnQg
aXRlbUluZGV4KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE9wdGlvbmFsPEJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXI+IGl0ZW1JRDsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaXRlbUluZGV4KSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6QmFja0ZvcndhcmRJdGVtQXRJbmRleDo6UmVwbHkoaXRlbUlEKSwgbV9wYWdl
LT5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9y
d2FyZEl0ZW1BdEluZGV4KGl0ZW1JbmRleCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tG
b3J3YXJkSXRlbUF0SW5kZXg6OlJlcGx5KGl0ZW1JRCksIG1fcGFnZS0+aWRlbnRpZmllcigpKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIWl0ZW1JRCkKQEAgLTEzMSw3ICsx
MzEsNyBAQCB1bnNpZ25lZCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6YmFja0xpc3RDb3VudCgp
IGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgdW5zaWduZWQgYmFja0xpc3RDb3VudCA9
IDA7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tM
aXN0Q291bnQoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRCYWNrTGlzdENv
dW50OjpSZXBseShiYWNrTGlzdENvdW50KSwgbV9wYWdlLT5wYWdlSUQoKSkpCisgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQoKSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRCYWNrTGlzdENvdW50OjpSZXBseShiYWNr
TGlzdENvdW50KSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIHJldHVybiBiYWNrTGlzdENvdW50OwpAQCAtMTQzLDcgKzE0Myw3IEBAIHVuc2lnbmVkIFdl
YkJhY2tGb3J3YXJkTGlzdFByb3h5Ojpmb3J3YXJkTGlzdENvdW50KCkgY29uc3QKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICB1bnNpZ25lZCBmb3J3YXJkTGlzdENvdW50ID0gMDsKLSAgICBpZiAo
IVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6OlJl
cGx5KGZvcndhcmRMaXN0Q291bnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQ6OlJlcGx5KGZv
cndhcmRMaXN0Q291bnQpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgcmV0dXJuIGZvcndhcmRMaXN0Q291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCAxZjAxNmFlYWRhOTk2Zjk2
M2RkNWU0ZWZiOTZkMGNhZmU2MGFkNjE3Li4zMzIyNWQxM2RkM2E4ZTFiZThmODNkZWI3NWYzNzI5
ZWU1MjJkMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgV2ViSW5zcGVjdG9yOjp+V2ViSW5zcGVj
dG9yKCkKIAogdm9pZCBXZWJJbnNwZWN0b3I6Om9wZW5Mb2NhbEluc3BlY3RvckZyb250ZW5kKGJv
b2wgdW5kZXJUZXN0KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpPcGVuTG9j
YWxJbnNwZWN0b3JGcm9udGVuZChjYW5BdHRhY2hXaW5kb3coKSwgdW5kZXJUZXN0KSwgbV9wYWdl
LT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Ok9wZW5Mb2NhbElu
c3BlY3RvckZyb250ZW5kKGNhbkF0dGFjaFdpbmRvdygpLCB1bmRlclRlc3QpLCBtX3BhZ2UtPmlk
ZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRGcm9udGVuZENvbm5lY3Rp
b24oSVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllcikKQEAgLTEwOCw3
ICsxMDgsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c2V0RnJvbnRlbmRDb25uZWN0aW9uKElQQzo6
QXR0YWNobWVudCBlbmNvZGVkQ29ubmVjdGlvbklkZW50aQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6
Y2xvc2VGcm9udGVuZENvbm5lY3Rpb24oKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclBy
b3h5OjpEaWRDbG9zZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogCiAgICAgLy8g
SWYgd2UgdHJpZWQgdG8gY2xvc2UgdGhlIGZyb250ZW5kIGJlZm9yZSBpdCB3YXMgY3JlYXRlZCwg
dGhlbiBubyBjb25uZWN0aW9uIGV4aXN0cyB5ZXQuCiAgICAgaWYgKG1fZnJvbnRlbmRDb25uZWN0
aW9uKSB7CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OmNsb3NlRnJvbnRl
bmRDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJJbnNwZWN0b3I6OmJyaW5nVG9Gcm9udCgpCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkJyaW5nVG9Gcm9udCgpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zyb250KCks
IG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OndoZW5Gcm9u
dGVuZENvbm5lY3Rpb25Fc3RhYmxpc2hlZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCkBA
IC0yNzMsMTcgKzI3MywxNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c3RvcEVsZW1lbnRTZWxlY3Rp
b24oKQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6ZWxlbWVudFNlbGVjdGlvbkNoYW5nZWQoYm9vbCBh
Y3RpdmUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkVsZW1lbnRTZWxlY3Rp
b25DaGFuZ2VkKGFjdGl2ZSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYklu
c3BlY3RvclByb3h5OjpFbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChhY3RpdmUpLCBtX3BhZ2UtPmlk
ZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjp0aW1lbGluZVJlY29yZGluZ0No
YW5nZWQoYm9vbCBhY3RpdmUpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlRp
bWVsaW5lUmVjb3JkaW5nQ2hhbmdlZChhY3RpdmUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6VGltZWxpbmVSZWNvcmRpbmdDaGFuZ2VkKGFjdGl2
ZSksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnNldE1v
Y2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShPcHRpb25hbDxib29sPiBlbmFibGVkKQog
ewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpTZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkT3ZlcnJpZGUoZW5hYmxlZCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkluc3BlY3RvclByb3h5OjpTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUo
ZW5hYmxlZCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogYm9vbCBXZWJJbnNwZWN0b3I6
OmNhbkF0dGFjaFdpbmRvdygpCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6
OnVwZGF0ZURvY2tpbmdBdmFpbGFiaWxpdHkoKQogCiAgICAgbV9wcmV2aW91c0NhbkF0dGFjaCA9
IGNhbkF0dGFjaFdpbmRvdzsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRh
Y2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGNhbkF0dGFjaFdpbmRvdyksIG1fcGFnZS0+cGFnZUlEKCkp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpBdHRhY2hBdmFpbGFiaWxpdHlDaGFu
Z2VkKGNhbkF0dGFjaFdpbmRvdyksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDU0MDZlMWY0YjQxMzQ2Yzk2NjU5NWMzYjE0ZTQwYzE4MjZkZjE2NzYuLmMz
NGQ5YzIwMmI4NDViZGY3MTIzOWY0Njg1ZDc3ZDM5YzdkN2VjODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgUmVm
PFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJgogfQogCiBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBt
X3BhZ2VJRChwYWdlSUQpCisgICAgOiBtX2lkZW50aWZpZXIocGFnZUlEKQogICAgICwgbV92aWV3
U2l6ZShwYXJhbWV0ZXJzLnZpZXdTaXplKQogICAgICwgbV9hbHdheXNTaG93c0hvcml6b250YWxT
Y3JvbGxlciB7IHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgfQogICAg
ICwgbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgeyBwYXJhbWV0ZXJzLmFsd2F5c1Nob3dz
VmVydGljYWxTY3JvbGxlciB9CkBAIC00MzQsNyArNDM0LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogICAgICwgbV90ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lcigqdGhpcywgJldlYlBh
Z2U6OnRleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyRmlyZWQpCiAjZW5kaWYKIHsKLSAgICBB
U1NFUlQobV9wYWdlSUQpOworICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCiAgICAgbV9wYWdl
R3JvdXAgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlR3JvdXAocGFyYW1ldGVycy5w
YWdlR3JvdXBEYXRhKTsKIApAQCAtNjA4LDE0ICs2MDgsMTQgQEAgV2ViUGFnZTo6V2ViUGFnZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogICAgIG1fcGFnZS0+YWRkTGF5b3V0TWlsZXN0b25lcyh7IERpZEZpcnN0TGF5b3V0LCBE
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgfSk7CiAKICAgICBhdXRvJiB3ZWJQcm9jZXNz
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2U6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQs
ICp0aGlzKTsKKyAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
UGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKIAogICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSBvYmplY3QgY29uc3RydWN0b3Jz
LCBhbmQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcyBzaG91bGQgYmUgbWVzc2FnZSByZWNlaXZlcnMu
Ci0gICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3Rv
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwotICAgIHdlYlByb2Nl
c3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwotICAgIHdlYlByb2Nlc3MuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOworICAgIHdlYlByb2Nlc3MuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVu
dGlmaWVyLCAqdGhpcyk7CisgICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwg
KnRoaXMpOworICAgIHdlYlByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0
aGlzKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgd2ViUHJvY2Vzcy5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7CisgICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogI2VuZGlmCiAKICNpZm5kZWYgTkRFQlVHCkBAIC04
NDMsNyArODQzLDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJQYWdlOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0CiAKIHVpbnQ2NF90IFdlYlBhZ2U6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gcGFnZUlEKCkudG9VSW50NjQoKTsKKyAgICBy
ZXR1cm4gaWRlbnRpZmllcigpLnRvVUludDY0KCk7CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKQEAgLTEzMzgsNyArMTMzOCw3IEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgICAg
ICByZXR1cm47CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Q2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9uSUQo
KSwgbV9wYWdlSUQpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNl
TG9hZFN0YXRpc3RpY3Moc2Vzc2lvbklEKCksIG1faWRlbnRpZmllciksIDApOwogI2VuZGlmCiAK
ICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKQEAgLTE0MzksMjAgKzE0MzksMjAgQEAgdm9pZCBXZWJQ
YWdlOjpjbG9zZSgpCiAgICAgaWYgKG1fdXNlQXN5bmNTY3JvbGxpbmcpCiAgICAgICAgIHdlYlBy
b2Nlc3MuZXZlbnREaXNwYXRjaGVyKCkucmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UodGhpcyk7
CiAjZW5kaWYKLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CisgICAgd2ViUHJvY2Vz
cy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2U6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZG9u
ZSBpbiB0aGUgb2JqZWN0IGRlc3RydWN0b3JzLCBhbmQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcyBz
aG91bGQgYmUgbWVzc2FnZSByZWNlaXZlcnMuCi0gICAgd2ViUHJvY2Vzcy5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3BhZ2VJRCk7Ci0gICAgd2ViUHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKLSAgICB3
ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVj
dG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOworICAgIHdlYlByb2Nlc3Mu
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9pZGVudGlmaWVyKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVu
dGlmaWVyKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgd2ViUHJvY2Vzcy5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKKyAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9pZGVudGlmaWVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCiAgICAgbV92aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yID0gbnVsbHB0cjsK
ICNlbmRpZgogCiAgICAgLy8gVGhlIFdlYlBhZ2UgY2FuIGJlIGRlc3Ryb3llZCBieSB0aGlzIGNh
bGwuCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlV2ViUGFnZShzZXNzaW9uSUQs
IG1fcGFnZUlEKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVXZWJQYWdlKHNl
c3Npb25JRCwgbV9pZGVudGlmaWVyKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVw
ZGF0ZUFjdGl2ZVBhZ2VzKCk7CiAKQEAgLTE2NjYsNyArMTY2Niw3IEBAIHZvaWQgV2ViUGFnZTo6
Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IEJhY2tGb3J3
YXJkSXRlbUlkCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0coTG9h
ZGluZywgIkluIFdlYlByb2Nlc3MgcGlkICVpLCBXZWJQYWdlICUiIFBSSXU2NCAiIGlzIG5hdmln
YXRpbmcgdG8gYmFjay9mb3J3YXJkIFVSTCAlcyIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgaXRlbS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgTE9HKExvYWRpbmcsICJJbiBXZWJQcm9jZXNzIHBpZCAlaSwgV2ViUGFnZSAlIiBQUkl1NjQg
IiBpcyBuYXZpZ2F0aW5nIHRvIGJhY2svZm9yd2FyZCBVUkwgJXMiLCBnZXRDdXJyZW50UHJvY2Vz
c0lEKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBpdGVtLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKICAgICBt
X3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBib29sIFdlYlBhZ2U6OnNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQog
ICAgIGlmICghdmlldyB8fCB2aWV3LT5maXhlZExheW91dFNpemUoKSA9PSBzaXplKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJl
YW0gPDwgIldlYlBhZ2UgIiA8PCBtX3BhZ2VJRC50b1VJbnQ2NCgpIDw8ICIgc2V0Rml4ZWRMYXlv
dXRTaXplICIgPDwgc2l6ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3Ry
ZWFtIDw8ICJXZWJQYWdlICIgPDwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkgPDwgIiBzZXRGaXhl
ZExheW91dFNpemUgIiA8PCBzaXplKTsKICAgICB2aWV3LT5zZXRGaXhlZExheW91dFNpemUoc2l6
ZSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpeGVkTGF5b3V0U2l6ZURp
ZENoYW5nZShzaXplKSk7CkBAIC0yNTI2LDcgKzI1MjYsNyBAQCBjb25zdCBXZWJFdmVudCogV2Vi
UGFnZTo6Y3VycmVudEV2ZW50KCkKIHZvaWQgV2ViUGFnZTo6ZnJlZXplTGF5ZXJUcmVlKExheWVy
VHJlZUZyZWV6ZVJlYXNvbiByZWFzb24pCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdlYlBhZ2UgKFBhZ2VJRD0lbGx1KSAtIEFkZGluZyBhIHJlYXNvbiAlZCB0
byBmcmVlemUgbGF5ZXIgdHJlZTsgY3VycmVudCByZWFzb25zIGFyZSAlZCIsCi0gICAgICAgIHRo
aXMsIG1fcGFnZUlELnRvVUludDY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZWFzb24pLCBt
X2xheWVyVHJlZUZyZWV6ZVJlYXNvbnMudG9SYXcoKSk7CisgICAgICAgIHRoaXMsIG1faWRlbnRp
Zmllci50b1VJbnQ2NCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVhc29uKSwgbV9sYXllclRy
ZWVGcmVlemVSZWFzb25zLnRvUmF3KCkpOwogICAgIG1fbGF5ZXJUcmVlRnJlZXplUmVhc29ucy5h
ZGQocmVhc29uKTsKICAgICB1cGRhdGVEcmF3aW5nQXJlYUxheWVyVHJlZUZyZWV6ZVN0YXRlKCk7
CiB9CkBAIC0yNTM0LDcgKzI1MzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmZyZWV6ZUxheWVyVHJlZShM
YXllclRyZWVGcmVlemVSZWFzb24gcmVhc29uKQogdm9pZCBXZWJQYWdlOjp1bmZyZWV6ZUxheWVy
VHJlZShMYXllclRyZWVGcmVlemVSZWFzb24gcmVhc29uKQogewogICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQYWdlIChQYWdlSUQ9JWxsdSkgLSBSZW1vdmluZyBh
IHJlYXNvbiAlZCB0byBmcmVlemUgbGF5ZXIgdHJlZTsgY3VycmVudCByZWFzb25zIGFyZSAlZCIs
Ci0gICAgICAgIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihyZWFzb24pLCBtX2xheWVyVHJlZUZyZWV6ZVJlYXNvbnMudG9SYXcoKSk7CisgICAgICAgIHRo
aXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVhc29u
KSwgbV9sYXllclRyZWVGcmVlemVSZWFzb25zLnRvUmF3KCkpOwogICAgIG1fbGF5ZXJUcmVlRnJl
ZXplUmVhc29ucy5yZW1vdmUocmVhc29uKTsKICAgICB1cGRhdGVEcmF3aW5nQXJlYUxheWVyVHJl
ZUZyZWV6ZVN0YXRlKCk7CiB9CkBAIC0yODQwLDcgKzI4NDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnJl
c3RvcmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0
ZT4mIGl0ZQogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbVN0YXRlIDogaXRlbVN0YXRlcykgewog
ICAgICAgICBhdXRvIGhpc3RvcnlJdGVtID0gdG9IaXN0b3J5SXRlbShpdGVtU3RhdGUpOwogICAg
ICAgICBoaXN0b3J5SXRlbS0+c2V0V2FzUmVzdG9yZWRGcm9tU2Vzc2lvbihyZXN0b3JlZEJ5QVBJ
UmVxdWVzdCA9PSBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdDo6WWVzKTsKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8V2ViQmFja0ZvcndhcmRMaXN0UHJveHkmPihjb3JlUGFnZSgpLT5iYWNrRm9yd2FyZCgp
LmNsaWVudCgpKS5hZGRJdGVtRnJvbVVJUHJvY2VzcyhpdGVtU3RhdGUuaWRlbnRpZmllciwgV1RG
TW92ZShoaXN0b3J5SXRlbSksIG1fcGFnZUlELCBvdmVyd3JpdGUpOworICAgICAgICBzdGF0aWNf
Y2FzdDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eSY+KGNvcmVQYWdlKCktPmJhY2tGb3J3YXJkKCku
Y2xpZW50KCkpLmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKGl0ZW1TdGF0ZS5pZGVudGlmaWVyLCBXVEZN
b3ZlKGhpc3RvcnlJdGVtKSwgbV9pZGVudGlmaWVyLCBvdmVyd3JpdGUpOwogICAgIH0KIH0KIApA
QCAtMjg1OCw3ICsyODU4LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRDdXJyZW50SGlzdG9yeUl0ZW1G
b3JSZWF0dGFjaChXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYKIHsKICAgICBhdXRv
IGhpc3RvcnlJdGVtID0gdG9IaXN0b3J5SXRlbShpdGVtU3RhdGUpOwogICAgIGF1dG8mIGhpc3Rv
cnlJdGVtUmVmID0gaGlzdG9yeUl0ZW0uZ2V0KCk7Ci0gICAgc3RhdGljX2Nhc3Q8V2ViQmFja0Zv
cndhcmRMaXN0UHJveHkmPihjb3JlUGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS5hZGRJ
dGVtRnJvbVVJUHJvY2VzcyhpdGVtU3RhdGUuaWRlbnRpZmllciwgV1RGTW92ZShoaXN0b3J5SXRl
bSksIG1fcGFnZUlELCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRlRXhpc3RpbmdJ
dGVtOjpZZXMpOworICAgIHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Jj4oY29y
ZVBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSkuYWRkSXRlbUZyb21VSVByb2Nlc3MoaXRl
bVN0YXRlLmlkZW50aWZpZXIsIFdURk1vdmUoaGlzdG9yeUl0ZW0pLCBtX2lkZW50aWZpZXIsIFdl
YkJhY2tGb3J3YXJkTGlzdFByb3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW06Olllcyk7CiAgICAg
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuaGlzdG9yeSgpLnNldEN1cnJlbnRJdGVt
KGhpc3RvcnlJdGVtUmVmKTsKIH0KIApAQCAtMzE2Miw3ICszMTYyLDcgQEAgdm9pZCBXZWJQYWdl
Ojp1cGRhdGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUpCiAgICAgICAgIAogICAgICAg
ICAvLyBUaGUgV2ViUHJvY2VzcyBkb2VzIG5vdCB5ZXQga25vdyBhYm91dCB0aGlzIHBhZ2U7IG5v
IG5lZWQgdG8gdGVsbCBpdCB3ZSdyZSBsZWF2aW5nIHRoZSB3aW5kb3cuCiAgICAgICAgIGlmICgh
aXNJbml0aWFsU3RhdGUpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYWdl
V2lsbExlYXZlV2luZG93KG1fcGFnZUlEKTsKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhZ2VXaWxsTGVhdmVXaW5kb3cobV9pZGVudGlmaWVyKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICAvLyBEZWZlciB0aGUgY2FsbCB0byBQYWdlOjpzZXRDYW5TdGFydE1lZGlhKCkgc2lu
Y2UgaXQgZW5kcyB1cCBzZW5kaW5nIGEgc3luY2hyb25vdXMgbWVzc2FnZSB0byB0aGUgVUkgcHJv
Y2VzcwogICAgICAgICAvLyBpbiBvcmRlciB0byBnZXQgcGx1Zy1pbiBjb25uZWN0aW9ucywgYW5k
IHRoZSBVSSBwcm9jZXNzIHdpbGwgYmUgd2FpdGluZyBmb3IgdGhlIFdlYiBwcm9jZXNzIHRvIHVw
ZGF0ZSB0aGUgYmFja2luZwpAQCAtMzE3MCw3ICszMTcwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRh
dGVJc0luV2luZG93KGJvb2wgaXNJbml0aWFsU3RhdGUpCiAgICAgICAgIGlmIChtX21heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3cpCiAgICAgICAgICAgICBtX3NldENhblN0YXJ0TWVkaWFUaW1lci5z
dGFydE9uZVNob3QoMF9zKTsKIAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYWdl
RGlkRW50ZXJXaW5kb3cobV9wYWdlSUQpOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYWdlRGlkRW50ZXJXaW5kb3cobV9pZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBpZiAoaXNJ
bldpbmRvdykKQEAgLTMxOTAsNyArMzE5MCw3IEBAIHZvaWQgV2ViUGFnZTo6dmlzaWJpbGl0eURp
ZENoYW5nZSgpCiAKIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0
aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIGFj
dGl2aXR5U3RhdGVDaGFuZ2VJRCwgY29uc3QgVmVjdG9yPENhbGxiYWNrSUQ+JiBjYWxsYmFja0lE
cykKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oQWN0aXZpdHlTdGF0ZSwgc3RyZWFtIDw8ICJXZWJQ
YWdlICIgPDwgcGFnZUlEKCkudG9VSW50NjQoKSA8PCAiIHNldEFjdGl2aXR5U3RhdGUgdG8gIiA8
PCBhY3Rpdml0eVN0YXRlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oQWN0aXZpdHlTdGF0ZSwgc3Ry
ZWFtIDw8ICJXZWJQYWdlICIgPDwgaWRlbnRpZmllcigpLnRvVUludDY0KCkgPDwgIiBzZXRBY3Rp
dml0eVN0YXRlIHRvICIgPDwgYWN0aXZpdHlTdGF0ZSk7CiAKICAgICBhdXRvIGNoYW5nZWQgPSBt
X2FjdGl2aXR5U3RhdGUgXiBhY3Rpdml0eVN0YXRlOwogICAgIG1fYWN0aXZpdHlTdGF0ZSA9IGFj
dGl2aXR5U3RhdGU7CkBAIC0zMTk4LDcgKzMxOTgsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2
aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGUsIEFj
dAogICAgIGlmIChjaGFuZ2VkKQogICAgICAgICB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcGFnZSwgInNldEFjdGl2aXR5U3RhdGUgY2FsbGVkIG9u
ICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3JlIHBhZ2Ugd2FzIG51bGwiLCBwYWdlSUQoKS50b1VJbnQ2
NCgpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcGFnZSwgInNldEFjdGl2aXR5U3RhdGUg
Y2FsbGVkIG9uICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3JlIHBhZ2Ugd2FzIG51bGwiLCBpZGVudGlm
aWVyKCkudG9VSW50NjQoKSk7CiAgICAgaWYgKG1fcGFnZSkgewogICAgICAgICBTZXRGb3JTY29w
ZTxPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4+IGN1cnJlbnRseUNoYW5naW5nQWN0aXZp
dHlTdGF0ZSB7IG1fbGFzdEFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjaGFuZ2VkIH07CiAgICAgICAg
IG1fcGFnZS0+c2V0QWN0aXZpdHlTdGF0ZShhY3Rpdml0eVN0YXRlKTsKQEAgLTMyMDgsNyArMzIw
OCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlT
dGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgQWN0CiAgICAgICAgIHBsdWdpblZpZXctPmFjdGl2
aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZCk7CiAKICAgICBtX2RyYXdpbmdBcmVhLT5hY3Rpdml0
eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWQsIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCwgY2FsbGJhY2tJ
RHMpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhZ2VBY3Rpdml0eVN0YXRlRGlkQ2hh
bmdlKG1fcGFnZUlELCBjaGFuZ2VkKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYWdl
QWN0aXZpdHlTdGF0ZURpZENoYW5nZShtX2lkZW50aWZpZXIsIGNoYW5nZWQpOwogCiAgICAgaWYg
KGNoYW5nZWQgJiBBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQogICAgICAgICB1cGRhdGVJc0lu
V2luZG93KCk7CkBAIC00MzYzLDcgKzQzNjMsNyBAQCB2b2lkIFdlYlBhZ2U6Om1haW5GcmFtZURp
ZExheW91dCgpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSBtYWluRnJhbWVWaWV3KCkpIHsKICAgICAgICAgSW50U2l6ZSBuZXdDb250ZW50
U2l6ZSA9IGZyYW1lVmlldy0+Y29udGVudHNTaXplKCk7Ci0gICAgICAgIExPR19XSVRIX1NUUkVB
TShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlELnRvVUludDY0
KCkgPDwgIiBtYWluRnJhbWVEaWRMYXlvdXQgc2V0dGluZyBjb250ZW50IHNpemUgdG8gIiA8PCBu
ZXdDb250ZW50U2l6ZSk7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0
cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1faWRlbnRpZmllci50b1VJbnQ2NCgpIDw8ICIgbWFpbkZy
YW1lRGlkTGF5b3V0IHNldHRpbmcgY29udGVudCBzaXplIHRvICIgPDwgbmV3Q29udGVudFNpemUp
OwogICAgICAgICBpZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Q29udGVudHNTaXplKG5l
d0NvbnRlbnRTaXplKSkKICAgICAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQo
KTsKICAgICB9CkBAIC01Nzc2LDcgKzU3NzYsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExv
YWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIAogICAgIGJvb2wgdmlld3BvcnRDaGFuZ2VkID0gZmFs
c2U7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBh
Z2UgIiA8PCBtX3BhZ2VJRC50b1VJbnQ2NCgpIDw8ICIgZGlkQ29tbWl0TG9hZCBzZXR0aW5nIGNv
bnRlbnQgc2l6ZSB0byAiIDw8IGNvcmVGcmFtZS0+dmlldygpLT5jb250ZW50c1NpemUoKSk7Cisg
ICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwg
bV9pZGVudGlmaWVyLnRvVUludDY0KCkgPDwgIiBkaWRDb21taXRMb2FkIHNldHRpbmcgY29udGVu
dCBzaXplIHRvICIgPDwgY29yZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzU2l6ZSgpKTsKICAgICBp
ZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Q29udGVudHNTaXplKGNvcmVGcmFtZS0+dmll
dygpLT5jb250ZW50c1NpemUoKSkpCiAgICAgICAgIHZpZXdwb3J0Q2hhbmdlZCA9IHRydWU7CiAK
QEAgLTY1MzIsMTIgKzY1MzIsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogdm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIFdlYkZyYW1lJiBmcmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6SGFz
U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1v
dmUodG9wRnJhbWVEb21haW4pLCBmcmFtZS5mcmFtZUlEKCksIG1fcGFnZUlEKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9yYWdlQWNjZXNz
KHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURv
bWFpbiksIGZyYW1lLmZyYW1lSUQoKSwgbV9pZGVudGlmaWVyKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIFdlYkZyYW1lJiBmcmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVx
dWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBX
VEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWUuZnJhbWVJRCgpLCBtX3BhZ2VJRCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3Jh
Z2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRv
cEZyYW1lRG9tYWluKSwgZnJhbWUuZnJhbWVJRCgpLCBtX2lkZW50aWZpZXIpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpCkBAIC02NzU1LDcgKzY3NTUsNyBAQCB2b2lk
IFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFy
Y2hSZWN0LCBDb21wbGV0aW9uSAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICBXZWJLaXQ6OlRleHRJbnB1dENvbnRleHQgY29udGV4dDsKLSAgICAgICAgICAgIGNvbnRl
eHQud2ViUGFnZUlkZW50aWZpZXIgPSBtX3BhZ2VJRDsKKyAgICAgICAgICAgIGNvbnRleHQud2Vi
UGFnZUlkZW50aWZpZXIgPSBtX2lkZW50aWZpZXI7CiAgICAgICAgICAgICBjb250ZXh0LmRvY3Vt
ZW50SWRlbnRpZmllciA9IGRvY3VtZW50LT5pZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBjb250
ZXh0LmVsZW1lbnRJZGVudGlmaWVyID0gZG9jdW1lbnQtPmlkZW50aWZpZXJGb3JFbGVtZW50KGVs
ZW1lbnQpOwogICAgICAgICAgICAgY29udGV4dC5ib3VuZGluZ1JlY3QgPSBlbGVtZW50UmVjdDsK
QEAgLTY3NzksNyArNjc3OSw3IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0
KGNvbnN0IFRleHRJbnB1dENvbnRleHQmIHRleHRJbnB1dENvbnRleHQsIENvCiAKIEVsZW1lbnQq
IFdlYlBhZ2U6OmVsZW1lbnRGb3JUZXh0SW5wdXRDb250ZXh0KGNvbnN0IFRleHRJbnB1dENvbnRl
eHQmIHRleHRJbnB1dENvbnRleHQpCiB7Ci0gICAgaWYgKHRleHRJbnB1dENvbnRleHQud2ViUGFn
ZUlkZW50aWZpZXIgIT0gbV9wYWdlSUQpCisgICAgaWYgKHRleHRJbnB1dENvbnRleHQud2ViUGFn
ZUlkZW50aWZpZXIgIT0gbV9pZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIGF1dG8qIGRvY3VtZW50ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldCh0ZXh0
SW5wdXRDb250ZXh0LmRvY3VtZW50SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2I4OWIwNjgyMzRlMDdkMzNjNjdhYThlMDYyMWM5
YjUxMDU2ZjczYy4uZGYxYzgyNTljOGRkZmJkYTExYWEwNThlZDVjYWUxN2FhMmQxMjU4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjkxLDcgKzI5
MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUGFnZSYgZnJvbUNvcmVQYWdlKFdlYkNvcmU6
OlBhZ2UmKTsKIAogICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlLmdldCgpOyB9Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgU3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXJU
eXBlPihtX3dlYlBhZ2VQcm94eUlkZW50aWZpZXIudG9VSW50NjQoKSk7IH0KICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgpOyB9
CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+
dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsgfQpAQCAtMTYyMSw3ICsxNjIxLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgdXBkYXRlTW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50QWZ0ZXJDb21taXR0aW5n
TG9hZCgpOwogCi0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8V2ViRnJhbWU+IG1fbWFpbkZyYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUlu
c3BlY3RvclRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0LmNwcAppbmRleCBiNzc5OWI0ZmJiOGI1NWNiNjZiNjIyMjdhNmE2
NWYzYWIxMmNhMDBmLi41NmIwZDUyZWM1OTU3Y2M3M2ExM2YwNjdlYjNjZGEwMzJkZTIxNzU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlSW5zcGVjdG9yVGFyZ2V0LmNwcApAQCAtNDEsNyArNDEsNyBAQCBXZWJQYWdlSW5zcGVjdG9y
VGFyZ2V0OjpXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0KFdlYlBhZ2UmIHBhZ2UpCiAKIFN0cmluZyBX
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0OjppZGVudGlmaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bWFrZVN0cmluZygicGFnZS0iLCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSk7CisgICAgcmV0
dXJuIG1ha2VTdHJpbmcoInBhZ2UtIiwgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsK
IH0KIAogdm9pZCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Ojpjb25uZWN0KEluc3BlY3Rvcjo6RnJv
bnRlbmRDaGFubmVsJiBjaGFubmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmgKaW5k
ZXggOWZkYTdjYWE1NzdlZjlkMzI0ZDgyZWU1N2MxY2Y5NmQwNDhkMzZmNC4uN2IzMjI1YWMyOTUx
NjNkNDQ4N2U2ZjAzZTc2NTViYjc3YmZhNzFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5
bGFuZC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB+QWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZCgpID0gZGVmYXVsdDsKIAogICAgIHVpbnQ2NF90IHdpbmRvdygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1fd2luZG93KTsgfQotICAg
IHVpbnQ2NF90IHN1cmZhY2VJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fd2ViUGFnZS5w
YWdlSUQoKS50b1VJbnQ2NCgpOyB9CisgICAgdWludDY0X3Qgc3VyZmFjZUlEKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV93ZWJQYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpOyB9CiAgICAg
dm9pZCBjbGllbnRSZXNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogICAg
IGJvb2wgc2hvdWxkUGFpbnRNaXJyb3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbGlid3Bl
L0FjY2VsZXJhdGVkU3VyZmFjZUxpYldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGliV1BFLmNwcAppbmRleCA5NjYxNDY3
NWI2ZDJkNmRjNWRhOTI3ZTBiMTQ5OTgyZDkzZTAyNTA1Li43OTcwZDZiMTJhMDI0NjhhMjhmNTUx
NzI4ODRmNDQ0Y2ZmOTAzMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGliV1BFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGliV1BF
LmNwcApAQCAtOTEsNyArOTEsNyBAQCB1aW50NjRfdCBBY2NlbGVyYXRlZFN1cmZhY2VMaWJXUEU6
OndpbmRvdygpIGNvbnN0CiAKIHVpbnQ2NF90IEFjY2VsZXJhdGVkU3VyZmFjZUxpYldQRTo6c3Vy
ZmFjZUlEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJRCgpLnRvVUludDY0
KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKIH0KIAog
dm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VMaWJXUEU6OmNsaWVudFJlc2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCmlu
ZGV4IDYxNjVhMDFmZTYwODI0OGZkZTNiOTYwZjc4OTQ1MTM5MjM3MWRmOGYuLjQyNzNkYjVlYjJi
NmZhMWQ3NzdiOGMyODcyNjFlNjBiYWU1NjVjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdEJhc2UubW0KQEAgLTE0Myw3ICsxNDMsNyBAQCAtICh2b2lkKXNldFdl
YlBhZ2U6KFdlYktpdDo6V2ViUGFnZSopcGFnZQogICAgIG1fcGFnZSA9IHBhZ2U7CiAKICAgICBp
ZiAocGFnZSkgewotICAgICAgICBtX3BhZ2VJRCA9IHBhZ2UtPnBhZ2VJRCgpOworICAgICAgICBt
X3BhZ2VJRCA9IHBhZ2UtPmlkZW50aWZpZXIoKTsKIAogICAgICAgICBhdXRvKiBmcmFtZSA9IHBh
Z2UtPm1haW5GcmFtZSgpOwogICAgICAgICBtX2hhc01haW5GcmFtZVBsdWdpbiA9IGZyYW1lICYm
IGZyYW1lLT5kb2N1bWVudCgpID8gZnJhbWUtPmRvY3VtZW50KCktPmlzUGx1Z2luRG9jdW1lbnQo
KSA6IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbQppbmRleCBmZTI0MTdiMGE3ZDU4MzYzYzU0YmI4NmRhNTc4OThkMTFmYmUz
NTM4Li4yNWYzZjc3YWU3OWNiNDI2YmVlMzU3ZWVlNDE3YzA5NGU2NWZkZTY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAt
MjY4LDcgKzI2OCw3IEBAIGJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUtleXByZXNzQ29tbWFuZHNJbnRl
cm5hbChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tCiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGJvb2wgY29tbWFuZFdhc0hhbmRsZWRCeVVJUHJvY2VzcyA9
IGZhbHNlOwogICAgICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1
dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lKSwKLSAgICAg
ICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVNhdmVkQ29tbWFu
ZEJ5U2VsZWN0b3I6OlJlcGx5KGNvbW1hbmRXYXNIYW5kbGVkQnlVSVByb2Nlc3MpLCBtX3BhZ2VJ
RCk7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVT
YXZlZENvbW1hbmRCeVNlbGVjdG9yOjpSZXBseShjb21tYW5kV2FzSGFuZGxlZEJ5VUlQcm9jZXNz
KSwgbV9pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQgfD0gY29t
bWFuZFdhc0hhbmRsZWRCeVVJUHJvY2VzczsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGUyNzlkNDRmNzZhODJkNWU5
ZjUwOGZjZjBmZTRkOGFiNTBkYTlhMTUuLmNjYjUyN2RhN2JhYWQ5ODI3ZWEyYjkzMWYwM2JiMjNj
M2I4ZDhhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE3
NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6dHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyhBUEk6Ok9iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAgIHJl
dHVybiBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxj
b25zdCBXZWJGcmFtZSY+KG9iamVjdCkuZnJhbWVJRCgpKTsKIAogICAgICAgICAgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVBJ
OjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQ
YWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNvbnN0
IFdlYlBhZ2UmPihvYmplY3QpLnBhZ2VJRCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVBJ
OjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQ
YWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNvbnN0
IFdlYlBhZ2UmPihvYmplY3QpLmlkZW50aWZpZXIoKSk7CiAKICAgICAgICAgICAgIGNhc2UgQVBJ
OjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2VHcm91cDogewogICAgICAgICAgICAgICAgIFdlYlBh
Z2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCA1
YzAwYTU1NDY1NDA5ZTRhM2M0NWFmMGYxMWVjODA3ODYzNzBjNjRiLi5lMWUzYTc0MzJjYzFiN2Rm
OTQ5MTI1MTY2ODJkYTIyODAyYmZlODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC0x
MTksNyArMTE5LDcgQEAgUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lc3BhY2VJbXBs
Ojpjb3B5KFBhZ2UmIG5ld1BhZ2UpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSkKICAgICAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkNsb25lU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UobmV3UGFnZS5zZXNzaW9uSUQoKSwgbV9zdG9yYWdlTmFtZXNwYWNlSUQsIFdlYlBhZ2U6
OmZyb21Db3JlUGFnZShuZXdQYWdlKS5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIo
KSksIDApOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwo
bV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLnNlc3Npb25TdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UobmV3UGFnZSku
cGFnZUlEKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVzLCBuZXdQYWdl
LnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFj
ZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLnNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UobmV3
UGFnZSkuaWRlbnRpZmllcigpLCBtX3RvcExldmVsT3JpZ2luLmdldCgpLCBtX3F1b3RhSW5CeXRl
cywgbmV3UGFnZS5zZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9X
ZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCmluZGV4IGYyZjc5MWFhNzVlMDE0MDFkNTdl
OTM4MjE3ZDI5NmMyMDhkODQ0MDEuLjIxNTNmMTk0ZWYyNzA4ZWY3ZTZkOWFkN2QzMWZmMjA0YmQy
NjhhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dl
YlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcApAQCAtNjcsNyAr
NjcsNyBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6On5XZWJTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXIoKQogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYgcGFnZSwg
dW5zaWduZWQgcXVvdGEpCiB7CiAgICAgYXV0byYgd2ViUGFnZSA9IFdlYlBhZ2U6OmZyb21Db3Jl
UGFnZShwYWdlKTsKLSAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlKHdlYlBhZ2Uuc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlm
aWVyKCksIHdlYlBhZ2UucGFnZUlEKCksIHF1b3RhLCBwYWdlLnNlc3Npb25JRCgpKTsKKyAgICBy
ZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
KHdlYlBhZ2Uuc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBhZ2UuaWRl
bnRpZmllcigpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxXZWJDb3JlOjpT
dG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZUxvY2Fs
U3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci5tbQppbmRleCA2NmYwNGRlNDQ4M2M5OTNmZjUwY2NmOGU2YWQ3MzEyMGMz
NGI3ZTVjLi4yMGRlMzQxZjZkMTdiYjFkYzMyZThhMTk2NzA3YjU0NGFhOTIxOTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlci5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZjxQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
PiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXI6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKICAg
ICA6IG1fcGFnZSgmcGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQog
CiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp+UGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCkBAIC0x
ODcsMTMgKzE4NywxMyBAQCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp+UGxheWJhY2tTZXNzaW9u
TWFuYWdlcigpCiAgICAgbV9jbGllbnRDb3VudHMuY2xlYXIoKTsKIAogICAgIGlmIChtX3BhZ2Up
Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBtX3BhZ2UgPSBudWxscHRyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCmluZGV4IDU4OTBmNzI5NTE3Mjc1NDA0MTkzYWMyMzIzM2UxNjIzMzE1MjU4
MWMuLmQ5NmQyMGVjYjEzYzZlZDRkNjZjYmFmZjQ2YjYwN2UwMjBlYWI0ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tCkBAIC0xMTcsNyArMTE3LDcgQEAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcihXZWJQYWdlJiBwYWdlLCBQbGF5YmFja1Nlc3Npb25NYW4KICAgICA6
IG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcihwbGF5YmFja1Nl
c3Npb25NYW5hZ2VyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBwYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRlbnRpZmllcigpLCAqdGhpcyk7CiB9CiAKIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKQEAgLTEzNCwx
MyArMTM0LDEzIEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKCkKICAgICBtX2NsaWVudENvdW50cy5jbGVhcigpOwogICAgIAogICAgIGlmIChtX3BhZ2Up
Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBtX3BhZ2UgPSBudWxscHRyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
RGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3Np
dG9yRGlzcGxheS5jcHAKaW5kZXggYmYyNWUxMDZkN2MxNzljN2NiNTM1YzJjMzNjODJiNzg5NjQy
YmExYy4uZTZiYTZhNWZlZDRiMDdkZmU4NWM1ZDA1NGFmNmI3YzNhNmI1ODE5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JE
aXNwbGF5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yRGlzcGxh
eTo6YmluZFN1cmZhY2VUb1BhZ2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIFdlYgogICAg
IGlmICghbV93ZWJraXRndGspCiAgICAgICAgIHJldHVybjsKIAotICAgIHdsX3dlYmtpdGd0a19i
aW5kX3N1cmZhY2VfdG9fcGFnZShyZWludGVycHJldF9jYXN0PHN0cnVjdCB3bF93ZWJraXRndGsq
PihtX3dlYmtpdGd0ay5nZXQoKSksIHN1cmZhY2UsIHBhZ2UucGFnZUlEKCkudG9VSW50NjQoKSk7
CisgICAgd2xfd2Via2l0Z3RrX2JpbmRfc3VyZmFjZV90b19wYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8
c3RydWN0IHdsX3dlYmtpdGd0ayo+KG1fd2Via2l0Z3RrLmdldCgpKSwgc3VyZmFjZSwgcGFnZS5p
ZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNw
bGF5KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377906</attachid>
            <date>2019-09-03 10:41:05 -0700</date>
            <delta_ts>2019-09-03 11:37:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201428-20190903104104.patch</filename>
            <type>text/plain</type>
            <size>88991</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2NWQxOWY1MWU4ZThjMjVk
ZDA3ZWJhNDQ1ODA4YTI5Mzc5OTZhNDIuLjA2YTRlNTcyYjc4ZWU5Nzg0NWU4NzQ1OGU5Y2Y2M2Uz
ZjA0MTA0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ1IEBACisyMDE5LTA5LTAzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFdlYlBhZ2U6OnBhZ2VJ
RCgpIHRvIFdlYlBhZ2U6OmlkZW50aWZpZXIoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkg
S29pdmlzdG8uCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
OnNob3dQYXltZW50VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Fk
ZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2Vk
RnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6dG9vbGJhcnNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpzdGF0dXNiYXJWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjptZW51YmFyVmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6d3JhcENyeXB0b0tleSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpXZWJDb2xvckNob29zZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnJlYXR0YWNoQ29sb3JDaG9vc2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6aGFuZGxlS2V5ZG93bldp
dGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVu
dTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNsaWVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjpUZXh0Q2hl
Y2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6YWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNo
RXZlbnRzRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6Z2V0UXVl
dWVkVG91Y2hFdmVudHNGb3JQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2Fn
ZVRvQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFu
Z2VTaGVldFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c3Rh
cnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmJy
aW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpjbG9z
ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpyZW9wZW4p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cmVzZXRTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpvcGVuSW5OZXdUYWIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2F2ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjphcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2hvd0NlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjp+
Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1BdEluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6OmJhY2tMaXN0Q291bnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Zm9yd2FyZExpc3RDb3VudCBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3Rvcjo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yOjpicmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OmVsZW1lbnRTZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yOjp0aW1lbGluZVJlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3I6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6dXBkYXRlRG9ja2luZ0F2YWlsYWJpbGl0eSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6bV90ZXh0QXV0b1Npemlu
Z0FkanVzdG1lbnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZnJlZXplTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dW5mcmVlemVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlU2Vz
c2lvbkludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Q3VycmVudEhpc3Rv
cnlJdGVtRm9yUmVhdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJc0lu
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1haW5GcmFtZURpZExheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0
c0luUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRGb3JUZXh0SW5wdXRD
b250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cGFnZUlEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZUluc3BlY3RvclRhcmdldC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW06CisgICAg
ICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6Y29weSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6UGxheWJhY2tTZXNzaW9uTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6On5QbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6aW52YWxpZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKToKKwogMjAxOS0wOS0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBE
ZXByZWNhdGUgbm9uZnVuY3Rpb25hbCBwcm9jZXNzIGxpbWl0IEFQSXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5t
bQppbmRleCBjNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4Li5hYjJlZDli
ZTMwZWFhNzg1NWExZDM0NDNmMGQ0ZmM4YzhiMjM4Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCkBA
IC0zOSw3ICszOSw3IEBAIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdl
UHJveHkmKXBhZ2UKIAogLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdl
CiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVBy
b3h5SWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLnBhZ2VJRCgpXTsKKyAgICByZXR1cm4g
W3NlbGYgX2luaXRXaXRoUGFnZVByb3h5SUQ6cGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkg
YW5kV2ViUGFnZUlEOnBhZ2UuaWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2luaXRXaXRoUGFn
ZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRX
ZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcAppbmRleCA1N2YzZmUxNzNjY2Q5NTE3MzY0MmExOTVlN2NmZDEwMTg4Njk4OGNjLi4y
NDY4YzAwYWMxNzdmZDFiMGQ0ZGY0YzIyMDJlYWMzMTI0NTE5ZDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlBheW1lbnRD
b29yZGluYXRvcjo6V2ViUGF5bWVudENvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAg
OiBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBheW1lbnRDb29y
ZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmllcigpLCAq
dGhpcyk7CiB9CiAKIFdlYlBheW1lbnRDb29yZGluYXRvcjo6fldlYlBheW1lbnRDb29yZGluYXRv
cigpCkBAIC05Niw3ICs5Niw3IEBAIGJvb2wgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5
bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvCiAgICAgICAgIGxp
bmtJY29uVVJMU3RyaW5ncy5hcHBlbmQobGlua0ljb25VUkwuc3RyaW5nKCkpOwogCiAgICAgYm9v
bCByZXN1bHQ7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OlNob3dQYXltZW50VUkobV93ZWJQYWdlLnBhZ2VJRCgpLCBtX3dlYlBhZ2Uuc2Vz
c2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBsaW5rSWNvblVSTFN0cmluZ3MsIHBh
eW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpTaG93
UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKKyAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6U2hvd1BheW1lbnRVSShtX3dlYlBhZ2UuaWRlbnRp
ZmllcigpLCBtX3dlYlBhZ2Uuc2Vzc2lvbklEKCksIG9yaWdpbmF0aW5nVVJMLnN0cmluZygpLCBs
aW5rSWNvblVSTFN0cmluZ3MsIHBheW1lbnRSZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5OjpTaG93UGF5bWVudFVJOjpSZXBseShyZXN1bHQpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE2OCw3ICsxNjgsNyBAQCBJ
UEM6OkNvbm5lY3Rpb24qIFdlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdAogCiB1aW50NjRfdCBXZWJQYXltZW50Q29vcmRpbmF0b3I6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJ
RCgpLnRvVUludDY0KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50
NjQoKTsKIH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OnZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
V2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAppbmRleCBlMzA2ZTNmZWYyNjMxZDU0NjY1NTcxMTZlNWU0
ODdkMzcxYzc4NTc5Li5mMDVkZThlNTEyNDhkN2RiMjhlODI4YzZiNmY5ZTg0ZTMxZDczOTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcApAQCAtMjI0LDcg
KzIyNCw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2dldF9wYWdlKFdl
YktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBndWluCiAgICAgV2ViS2l0V2ViRXh0ZW5zaW9u
UHJpdmF0ZSogcHJpdiA9IGV4dGVuc2lvbi0+cHJpdjsKICAgICBXZWJQYWdlTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBwcml2LT5wYWdlcy5lbmQoKTsKICAgICBmb3IgKFdlYlBhZ2VNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gcHJpdi0+cGFnZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQot
ICAgICAgICBpZiAoaXQtPmtleS0+cGFnZUlEKCkudG9VSW50NjQoKSA9PSBwYWdlSUQpCisgICAg
ICAgIGlmIChpdC0+a2V5LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA9PSBwYWdlSUQpCiAgICAg
ICAgICAgICByZXR1cm4gaXQtPnZhbHVlLmdldCgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2Vi
S2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggYzkyMDRiMjM5ODFkN2YxN2FkMDczYjll
ZDQxMmE4Nzc2ODVjZTdkMy4uNGRiMjIwMjY4M2FkZjJjZWU1YTNjOGM2NGJkYWUyOGUxOWZkZWE5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjQ5LDcgKzI0OSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICB3ZWJraXRVUklSZXF1ZXN0R2V0UmVz
b3VyY2VSZXF1ZXN0KHJlcXVlc3QuZ2V0KCksIHJlc291cmNlUmVxdWVzdCk7Ci0gICAgICAgIHJl
c291cmNlUmVxdWVzdC5zZXRJbml0aWF0aW5nUGFnZUlEKHBhZ2UucGFnZUlEKCkpOworICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0SW5pdGlhdGluZ1BhZ2VJRChwYWdlLmlkZW50aWZpZXIoKSk7
CiAKICAgICAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgICAgIG1l
c3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgJnBhZ2UpOwpAQCAtNzY0LDcgKzc2
NCw3IEBAIGd1aW50NjQgd2Via2l0X3dlYl9wYWdlX2dldF9pZChXZWJLaXRXZWJQYWdlKiB3ZWJQ
YWdlKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQ
YWdlKSwgMCk7CiAKLSAgICByZXR1cm4gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+cGFnZUlEKCku
dG9VSW50NjQoKTsKKyAgICByZXR1cm4gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+aWRlbnRpZmll
cigpLnRvVUludDY0KCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDgwNTZlOTI3NWE1M2I1
ODA5OGRiZGY0ZjE4OGZiOTI1NTQwYTY3MjAuLmVjOGYxOWQ2ZjQ4NmEzN2IyY2YzYTJiZTcwZTQ3
MjIwMTE4MjA4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFt
ZUxvYWRlciwgdW5zaQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdlYkZyYW1lTG9hZGVyQ2xp
ZW50ID8gd2ViRnJhbWVMb2FkZXJDbGllbnQtPndlYkZyYW1lKCkgOiBudWxscHRyOwogICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiBudWxscHRyOwog
Ci0gICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiBQYWdlSWRl
bnRpZmllciB7IH07CisgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+aWRlbnRp
ZmllcigpIDogUGFnZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1l
ID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZyYW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBz
ZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgY29uc3Qg
VVJMJiB1cmwsIFMKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMgeyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSB9OwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFJl
c291cmNlUmVxdWVzdCB7IHVybCB9OwotICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFn
ZS0+cGFnZUlEKCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdlLT5pZGVudGlm
aWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gd2ViRnJhbWUtPmZyYW1lSUQoKTsK
ICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwog
ICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMjBlNGQ1YzVh
ZGJkMDhhNTVkMTA3NzVlYjUyOWU3NzBlYWUyZDIyNS4uYTY1YmZhNWJiYWU5ZDlkMzRkZDAwMTc5
MzlkMmFmM2UzNjFiNzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAg
LTE1MCw3ICsxNTAsNyBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgYXV0byBpdCA9IG1fbm90
aWZpY2F0aW9uQ29udGV4dE1hcC5hZGQobm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIFZlY3Rvcjx1aW50NjRfdD4oKSkuaXRlcmF0b3I7CiAgICAgaXQtPnZhbHVlLmFwcGVu
ZChub3RpZmljYXRpb25JRCk7CiAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Tm90aWZpY2F0aW9uKG5vdGlm
aWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+aWNv
bigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24tPmxhbmcoKSwg
bm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
cGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50
aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5n
KCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRp
b24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVy
KCkpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0
aW9uKTsKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNh
bmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBpZiAo
IW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2Fu
Y2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+cGFnZUlEKCkpOworICAgIG1f
cHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZp
ZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwogICAgIFVOVVNF
RF9QQVJBTShwYWdlKTsKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNh
dGlvbklEcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5vdGlmaWNhdGlv
bnMobm90aWZpY2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBzaXplX3QgY291
bnQgPSBub3RpZmljYXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24g
PSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsKQEAgLTIxMCw3
ICsyMTAsNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmlj
YXRpb24oTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlmaWNhdGlvbklE
TWFwLnJlbW92ZShub3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0aW9uRnJvbUNv
bnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
RGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAg
ICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+
aWRlbnRpZmllcigpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAg
ICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcAppbmRleCA4NTY1OTE2NmNjMjFlZDk2MjY0MDc0YjdlODY0MmIyYTg2
MjE4Y2E1Li42NmZhMWE3OWJkMWY2NTk0Y2QyNmQ5NGMzNTc2ODg2MzFhNThmODliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBtX3dl
YlBhZ2Uod2ViUGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UuaWRlbnRpZmll
cigpLCAqdGhpcyk7CiB9CiAKIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6fldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDgzMzZhNDcy
ZjM2ODdmNjYzZGVlODQ0MmUyM2JlMzExMDllMDgwYWIuLjY2N2Y0N2ExNWQyNTZjMzcyNTVjZDNl
MThmMTY4MTBlNWViMGQ1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xODAsNyArMTgw
LDcgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiAKICAgICBGbG9h
dFJlY3QgbmV3V2luZG93RnJhbWU7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0Zy
YW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZSgpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZTo6UmVwbHkobmV3V2luZG93RnJhbWUpLCBtX3BhZ2Uu
aWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogCiAgICAgcmV0dXJu
IG5ld1dpbmRvd0ZyYW1lOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkgOiBudWxscHRy
OwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZy
YW1lID8gbWFrZU9wdGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwg
bV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFt
ZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1lSUQoKSkgOiBX
VEY6Om51bGxvcHQpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCkBAIC0yOTIsMTQgKzI5MiwxNCBAQCBQ
YWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG5l
d1BhZ2VJRDsKICAgICBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBwYXJhbWV0
ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5pbmZv
KCksIHdlYkZyYW1lLT5wYWdlKCktPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBw
YXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFnZSgpLT53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRvd0ZlYXR1cmVz
LCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5l
d1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5pZGVudGlmaWVyKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBBU1NFUlQocGFyYW1ldGVycyk7CiAgICAgaWYgKHBhcmFt
ZXRlcnMtPnNlc3Npb25JRCA9PSBtX3BhZ2Uuc2Vzc2lvbklEKCkpCi0gICAgICAgIHBhcmFtZXRl
cnMtPm9sZFBhZ2VJRCA9IG1fcGFnZS5wYWdlSUQoKTsKKyAgICAgICAgcGFyYW1ldGVycy0+b2xk
UGFnZUlEID0gbV9wYWdlLmlkZW50aWZpZXIoKTsKIAogICAgIHdlYlByb2Nlc3MuY3JlYXRlV2Vi
UGFnZSgqbmV3UGFnZUlELCBXVEZNb3ZlKCpwYXJhbWV0ZXJzKSk7CiAgICAgcmV0dXJuIHdlYlBy
b2Nlc3Mud2ViUGFnZSgqbmV3UGFnZUlEKS0+Y29yZVBhZ2UoKTsKQEAgLTMwOSw3ICszMDksNyBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkKIHsKICAgICBJUEM6OlVuYm91bmRlZFN5bmNocm9ub3Vz
SVBDU2NvcGUgdW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZTsKICAgICBib29sIGhhbmRsZWQg
PSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseShtX3BhZ2UucGFnZUlEKCkpLCBNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQorICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KG1fcGFnZS5pZGVudGlmaWVyKCkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIGhhbmRsZWQ7CiB9CkBAIC0zNDYsNyArMzQ2LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnRvb2xiYXJzVmlzaWJsZSgpCiAgICAgICAgIHJldHVybiB0b29sYmFyc1Zpc2liaWxpdHkgPT0g
QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1lbnRWaXNpYmlsaXR5OjpW
aXNpYmxlOwogICAgIAogICAgIGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlID0gdHJ1ZTsKLSAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFRvb2xiYXJzQXJlVmlzaWJsZSgpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGU6OlJlcGx5KHRvb2xi
YXJzQXJlVmlzaWJsZSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpHZXRUb29sYmFyc0FyZVZpc2libGUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6R2V0VG9vbGJhcnNBcmVWaXNpYmxlOjpSZXBseSh0b29sYmFyc0FyZVZpc2libGUpLCBt
X3BhZ2UuaWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4g
dG9vbGJhcnNBcmVWaXNpYmxlOwpAQCAtMzY0LDcgKzM2NCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzdGF0dXNiYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIHN0YXR1c2JhclZpc2liaWxp
dHkgPT0gQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50OjpVSUVsZW1lbnRWaXNpYmls
aXR5OjpWaXNpYmxlOwogCiAgICAgYm9vbCBzdGF0dXNCYXJJc1Zpc2libGUgPSB0cnVlOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0U3RhdHVzQmFySXNWaXNpYmxlKCks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZTo6UmVwbHkoc3Rh
dHVzQmFySXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkdldFN0YXR1c0JhcklzVmlzaWJsZSgpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpHZXRTdGF0dXNCYXJJc1Zpc2libGU6OlJlcGx5KHN0YXR1c0JhcklzVmlzaWJsZSks
IG1fcGFnZS5pZGVudGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBzdGF0dXNCYXJJc1Zpc2libGU7CkBAIC0zOTMsNyArMzkzLDcgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6Om1lbnViYXJWaXNpYmxlKCkKICAgICAgICAgcmV0dXJuIG1lbnViYXJWaXNpYmlsaXR5
ID09IEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudDo6VUlFbGVtZW50VmlzaWJpbGl0
eTo6VmlzaWJsZTsKICAgICAKICAgICBib29sIG1lbnVCYXJJc1Zpc2libGUgPSB0cnVlOwotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0TWVudUJhcklzVmlzaWJsZSgpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRNZW51QmFySXNWaXNpYmxlOjpSZXBseShtZW51QmFy
SXNWaXNpYmxlKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkdldE1lbnVCYXJJc1Zpc2libGUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
R2V0TWVudUJhcklzVmlzaWJsZTo6UmVwbHkobWVudUJhcklzVmlzaWJsZSksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBtZW51QmFySXNW
aXNpYmxlOwpAQCAtMTE4NSw3ICsxMTg1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3Vz
ZWRDb250ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdlKHVpbnQ2NF90IGVsZW1lbnRJRCkKIGJvb2wg
V2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5
LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXcmFwQ3J5cHRvS2V5KGtl
eSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRl
ZCwgd3JhcHBlZEtleSksIG1fcGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpXcmFwQ3J5cHRvS2V5KGtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OldyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwgd3JhcHBlZEtleSksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHN1Y2NlZWRlZDsK
IH0KQEAgLTExOTMsNyArMTE5Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRv
S2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mCiBib29sIFdl
YkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3Jh
cHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIGNvbnN0CiB7CiAgICAgYm9vbCBzdWNjZWVk
ZWQ7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbndyYXBDcnlwdG9LZXko
d3JhcHBlZEtleSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVud3JhcENyeXB0b0tleTo6UmVw
bHkoc3VjY2VlZGVkLCBrZXkpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6VW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXkpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpVbndyYXBDcnlwdG9LZXk6OlJlcGx5KHN1Y2NlZWRlZCwga2V5KSwgbV9w
YWdlLmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc3Vj
Y2VlZGVkOwogfQpAQCAtMTIwMyw3ICsxMjAzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnVu
d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3RvcjwK
IFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmlu
Zyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBj
b25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KGtleVNpemVJbmRleCwgY2hhbGxlbmdlU3RyaW5nLCB1cmwpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmc6OlJlcGx5KHJlc3VsdCksIG1f
cGFnZS5wYWdlSUQoKSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoa2V5U2l6ZUluZGV4LCBjaGFsbGVuZ2VTdHJp
bmcsIHVybCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNpZ25lZFB1YmxpY0tleUFuZENoYWxs
ZW5nZVN0cmluZzo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLmlkZW50aWZpZXIoKSkpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwCmluZGV4IGQ1MzVlNWM1NWM2YmRhNTVkZTQ1OGJhOTJmOTE0N2MwMmVlNGNkMzIu
LmJkNzYyYTdiMmM1ZDI2ZjAwZGM4Mjc3MjlkM2Y1ZTcyMjk1MGM3NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNo
b29zZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFdlYkNvbG9yQ2hvb3Nlcjo6V2ViQ29sb3JDaG9v
c2VyKFdlYlBhZ2UqIHBhZ2UsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zCiAgICAg
LCBtX3BhZ2UocGFnZSkKIHsKICAgICBtX3BhZ2UtPnNldEFjdGl2ZUNvbG9yQ2hvb3Nlcih0aGlz
KTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihpbml0aWFsQ29s
b3IsIGNsaWVudC0+ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgY2xpZW50LT5zdWdn
ZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2hvd0NvbG9yUGlja2VyKGluaXRpYWxDb2xvciwgY2xpZW50LT5lbGVtZW50UmVjdFJl
bGF0aXZlVG9Sb290VmlldygpLCBjbGllbnQtPnN1Z2dlc3RlZENvbG9ycygpKSwgbV9wYWdlLT5p
ZGVudGlmaWVyKCkpOwogfQogCiBXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNob29zZXIoKQpA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIFdlYkNvbG9yQ2hvb3Nlcjo6cmVhdHRhY2hDb2xvckNob29z
ZXIoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIG1fcGFnZS0+c2V0QWN0aXZlQ29sb3JDaG9vc2Vy
KHRoaXMpOwogCiAgICAgQVNTRVJUKG1fY29sb3JDaG9vc2VyQ2xpZW50KTsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNob3dDb2xvclBpY2tlcihjb2xvciwgbV9jb2xvckNob29zZXJDbGll
bnQtPmVsZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCksIG1fY29sb3JDaG9vc2VyQ2xpZW50
LT5zdWdnZXN0ZWRDb2xvcnMoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd0NvbG9yUGlja2VyKGNvbG9yLCBtX2NvbG9yQ2hvb3NlckNsaWVudC0+
ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXcoKSwgbV9jb2xvckNob29zZXJDbGllbnQtPnN1
Z2dlc3RlZENvbG9ycygpKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkNv
bG9yQ2hvb3Nlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCkBAIC04NSw3
ICs4NSw3IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikKICAgICBpZiAobV9wYWdlLT5hY3RpdmVDb2xvckNob29zZXIoKSAhPSB0aGlz
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldENvbG9y
UGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldENvbG9yUGlja2VyQ29sb3IoY29sb3IpLCBtX3BhZ2UtPmlkZW50aWZpZXIo
KSk7CiB9CiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyOjplbmRDaG9vc2VyKCkKQEAgLTkzLDcgKzkz
LDcgQEAgdm9pZCBXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIoKQogICAgIGlmICghbV9wYWdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZENvbG9y
UGlja2VyKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RW5kQ29sb3JQaWNrZXIoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAK
aW5kZXggZDAyNWRmYWNmYTJjYzdmNmE4YTY3MmUwYTczNTUyOTI1YmUxMWNhOC4uYWViODczN2Fk
ZDQ3M2MwM2FiNmUxMTc1MmZmMGMyMjRjOGRlMDgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyOjp+V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyKCkgeyB9CiAKIHZvaWQg
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOjpoYW5kbGVLZXlkb3duV2l0aElkZW50aWZpZXIo
Y29uc3QgV1RGOjpTdHJpbmcmIGtleSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okhh
bmRsZUtleWRvd25JbkRhdGFMaXN0KGtleSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlS2V5ZG93bkluRGF0YUxpc3Qoa2V5KSwgbV9wYWdlLT5p
ZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlk
U2VsZWN0T3B0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBzZWxlY3RlZE9wdGlvbikKQEAgLTYyLDcg
KzYyLDcgQEAgdm9pZCBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI6OmRpZENsb3NlU3VnZ2Vz
dGlvbnMoKQogCiB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjo6Y2xvc2UoKQogewot
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW5kRGF0YUxpc3RTdWdnZXN0aW9ucygpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZERhdGFMaXN0U3Vn
Z2VzdGlvbnMoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1Z2dl
c3Rpb25BY3RpdmF0aW9uVHlwZSB0eXBlKQpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjo6ZGlzcGxheVdpdGhBY3RpdmF0aW9uVHlwZShEYXRhTGlzdFN1
Z2dlc3Rpb25BYwogICAgIG1fcGFnZS0+c2V0QWN0aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
KHRoaXMpOwogCiAgICAgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24gaW5mbyA9IHsgdHlw
ZSwgbV9kYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LT5zdWdnZXN0aW9ucygpLCBtX2RhdGFMaXN0
U3VnZ2VzdGlvbnNDbGllbnQtPmVsZW1lbnRSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgfTsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRhTGlzdFN1Z2dlc3Rpb25zKGluZm8p
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRh
TGlzdFN1Z2dlc3Rpb25zKGluZm8pLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNDhk
ZTM1ZmQwNWUzYjg5YjQxZWM5MjlhYTJjMmRkMzYyNmU5OTAzMi4uZjY0ZmM3ZDUzYjc3ZThhNDE5
MTY1ZjVlOTRkNWU4NmUyNzllMzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgV2ViRnJhbWVMb2FkZXJDbGllbnQ6On5XZWJGcmFtZUxvYWRl
ckNsaWVudCgpCiBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnBhZ2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQot
ICAgICAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5wYWdlSUQoKTsKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWUtPnBhZ2UoKS0+aWRlbnRpZmllcigpOwogCiAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogICAgIGlm
ICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywg
IiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywg
d2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0
KCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJ
OjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3
ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQo
KSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX2Zy
YW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVz
ZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGQxNmZlODU3Nzg0ZGMzZWFjZGQyYmY5MWE3
M2VhZTg2OTYyZTVkNWIuLjBmOGY3MjA4M2QzZTY1N2Y4NDNkYjUxMDc3MWQ3NjMzNDg2NmMxMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
b3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnU6
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAg
ICAgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHBsYXRmb3JtRGF0YTsKICAgICBzZXRVcFBsYXRmb3Jt
RGF0YShwYWdlQ29vcmRpbmF0ZXMsIHBsYXRmb3JtRGF0YSk7CiAKLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpKSwgaXRlbXMs
IGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVzLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpKSwgaXRl
bXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIHZv
aWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYlBvcHVw
TWVudTo6aGlkZSgpCiAgICAgaWYgKCFtX3BhZ2UgfHwgIW1fcG9wdXBDbGllbnQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGlkZVBvcHVwTWVudSgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhpZGVQb3B1cE1l
bnUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0QWN0aXZlUG9wdXBN
ZW51KG51bGxwdHIpOwogICAgIG1fcG9wdXBDbGllbnQtPnBvcHVwRGlkSGlkZSgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmNwcAppbmRleCBkM2JkNDM4YzcxY2JmNjQxYTRhM2U1ZDQxMTMx
YzNlZGQ1NzdjYTgwLi45MDFlZmQ0NWI0MzkxYWJkZTJiNWEwNjBjYjY5MjhjZWU4YzRiMDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdlYlNl
YXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgc2VhcmNoSXRlbXMp
LCBwYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50
U2VhcmNoZXMobmFtZSwgc2VhcmNoSXRlbXMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21TdHJp
bmcmIG5hbWUsIFZlY3RvcjxSZWNlbnRTZWFyY2g+JiByZXN1bHRJdGVtcykKQEAgLTY4LDcgKzY4
LDcgQEAgdm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9tU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVjZW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRSZWNlbnRTZWFyY2hl
cyhuYW1lKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFJlY2VudFNlYXJjaGVzOjpSZXBs
eShyZXN1bHRJdGVtcyksIHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpMb2FkUmVjZW50U2VhcmNoZXMobmFtZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkxvYWRSZWNlbnRTZWFyY2hlczo6UmVwbHkocmVzdWx0SXRlbXMpLCBwYWdlLT5pZGVudGlmaWVy
KCkpOwogfQogCiBib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9h
ZGVyQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQppbmRleCA0ZDdlNjQzNjU1MGY1NzVjOTg0
YmQwOTg3YTM5NzVmODRkMWU5YzY1Li5mY2E5YmRmMDZlZGFhM2I0OTg3YjE5ODU0ZTkzM2NlNmYz
NDc1Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KQEAg
LTc0LDcgKzc0LDcgQEAgUmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnMKICAgICBpZiAoIXdlYlBhZ2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIFdlYlByZXZpZXdMb2FkZXJD
bGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRpLCB3ZWJQYWdlLT5wYWdlSUQoKSk7CisgICAgcmV0
dXJuIFdlYlByZXZpZXdMb2FkZXJDbGllbnQ6OmNyZWF0ZShmaWxlTmFtZSwgdXRpLCB3ZWJQYWdl
LT5pZGVudGlmaWVyKCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRy
b2xsZXJQcm94eS5tbQppbmRleCAxZDVjMGE2ZGE1NTJjNjU1NTNmYzE4Y2ZlY2FkNDI5YjE3MGM0
YWM5Li42YzlmZDJjYzI3YmNkOGVmYTkyNTQ5MTE2NzQ1MGRiZGRlNDBkYTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5Lm1tCkBAIC01NywxMiArNTcsMTIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6OlRleHRD
aGVja2luZ0NvbnRyb2xsZXJQcm94eShXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2Up
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQogCiBU
ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6On5UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHko
KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6VGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBP
cHRpb25TZXQ8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+IHJlbGV2YW50TWFya2VyVHlwZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmluZGV4IDQzYWI2ZTcyZDJkZWVk
NDA0NDc3NmEwNDFlZDBjMjU0OTdjNzI4YmEuLmQzYzk4ZGRkZmExMTg0ODQxYTI1ZTY5ZTQ2ZjI3
ZjRiNTg4MGExNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKQEAgLTM1
LDcgKzM1LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9iamVjdFJlZ2lz
dHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGUKICAgICA6IFJlbW90ZU9iamVjdFJl
Z2lzdHJ5KHJlbW90ZU9iamVjdFJlZ2lzdHJ5KQogICAgICwgbV9wYWdlKHBhZ2UpCiB7Ci0gICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCks
ICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBwYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lz
dHJ5KHRoaXMpOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
Ojp+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogdm9pZCBXZWJSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6Y2xvc2UoKQogewogICAgIGlmIChtX3BhZ2UucmVtb3RlT2JqZWN0UmVnaXN0cnkoKSA9PSB0
aGlzKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKICAgICAgICAgbV9wYWdlLnNl
dFJlbW90ZU9iamVjdFJlZ2lzdHJ5KG51bGxwdHIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2lu
Z0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNz
LmNwcAppbmRleCA2YWIxZjllNjI0Nzg0MWZlNTczMDFkMzlkMjY3MTczZTIxZWY0MDU3Li4wMTBh
Y2U2MjEzYjg5MzMzMjExNzI3ZGFmYTcyMWVjMGNjMmM2ZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVh
Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3Mu
Y3BwCkBAIC01NDUsNyArNTQ1LDcgQEAgdm9pZCBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhp
Y3M6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NMYXkKIAogICAgIC8v
IEluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHdlIGdldCBhIHVuaXF1ZSBEaXNwbGF5UmVmcmVzaE1v
bml0b3IgcGVyLURyYXdpbmdBcmVhIChuZWNlc3NhcnkgYmVjYXVzZSBUaHJlYWRlZERpc3BsYXlS
ZWZyZXNoTW9uaXRvcgogICAgIC8vIGlzIGRyaXZlbiBieSB0aGUgVGhyZWFkZWRDb21wb3NpdG9y
IG9mIHRoZSBkcmF3aW5nIGFyZWEpLCBnaXZlIGVhY2ggcGFnZSBhIHVuaXF1ZSBEaXNwbGF5SUQg
ZGVyaXZlZCBmcm9tIFdlYlBhZ2UncyB1bmlxdWUgSUQuCi0gICAgbV93ZWJQYWdlLndpbmRvd1Nj
cmVlbkRpZENoYW5nZShzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSBtX3dl
YlBhZ2UucGFnZUlEKCkudG9VSW50NjQoKSk7CisgICAgbV93ZWJQYWdlLndpbmRvd1NjcmVlbkRp
ZENoYW5nZShzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSBtX3dlYlBhZ2Uu
aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3Qp
OwogICAgIGlmIChtX3ByZXZpb3VzTGF5ZXJUcmVlSG9zdCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggY2YzOTM4
NGFhZDU1ZGI3ZTQ3MmJhMTZiZDE4MDNhZjk2ODUxMmRlOS4uMGEyNTQwNWRlODhkOWM3NTQ0MTc2
NTEwNWZkNjc3Mjg4NWVmZjUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC02OCwxOCArNjgsMTggQEAgdm9pZCBF
dmVudERpc3BhdGNoZXI6OmFkZFNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBhZ2Up
CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgIEFT
U0VSVCh3ZWJQYWdlLT5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKLSAgICBB
U1NFUlQoIW1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKKyAg
ICBBU1NFUlQoIW1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+aWRlbnRpZmllcigp
KSk7CiAKICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IGRvd25jYXN0PEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+KCp3ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKTsKLSAgICBtX3Njcm9sbGluZ1RyZWVzLnNldCh3
ZWJQYWdlLT5wYWdlSUQoKSwgZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihzY3JvbGxp
bmdDb29yZGluYXRvci5zY3JvbGxpbmdUcmVlKCkpKTsKKyAgICBtX3Njcm9sbGluZ1RyZWVzLnNl
dCh3ZWJQYWdlLT5pZGVudGlmaWVyKCksIGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4o
c2Nyb2xsaW5nQ29vcmRpbmF0b3Iuc2Nyb2xsaW5nVHJlZSgpKSk7CiB9CiAKIHZvaWQgRXZlbnRE
aXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9yUGFnZShXZWJQYWdlKiB3ZWJQYWdlKQog
ewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7Ci0gICAgQVNT
RVJUKG1fc2Nyb2xsaW5nVHJlZXMuY29udGFpbnMod2ViUGFnZS0+cGFnZUlEKCkpKTsKKyAgICBB
U1NFUlQobV9zY3JvbGxpbmdUcmVlcy5jb250YWlucyh3ZWJQYWdlLT5pZGVudGlmaWVyKCkpKTsK
IAotICAgIG1fc2Nyb2xsaW5nVHJlZXMucmVtb3ZlKHdlYlBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBt
X3Njcm9sbGluZ1RyZWVzLnJlbW92ZSh3ZWJQYWdlLT5pZGVudGlmaWVyKCkpOwogfQogI2VuZGlm
CiAKQEAgLTE1NSwxMyArMTU1LDEzIEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpnZXN0dXJlRXZl
bnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYkdlc3R1CiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6Y2xlYXJRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFn
ZSYgd2ViUGFnZSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcigmbV90b3VjaEV2ZW50c0xvY2sp
OwotICAgIG1fdG91Y2hFdmVudHMucmVtb3ZlKHdlYlBhZ2UucGFnZUlEKCkpOworICAgIG1fdG91
Y2hFdmVudHMucmVtb3ZlKHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBFdmVudERp
c3BhdGNoZXI6OmdldFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQ
YWdlLCBUb3VjaEV2ZW50UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCiB7CiAgICAgTG9ja0hvbGRl
ciBsb2NrZXIoJm1fdG91Y2hFdmVudHNMb2NrKTsKLSAgICBkZXN0aW5hdGlvblF1ZXVlID0gbV90
b3VjaEV2ZW50cy50YWtlKHdlYlBhZ2UucGFnZUlEKCkpOworICAgIGRlc3RpbmF0aW9uUXVldWUg
PSBtX3RvdWNoRXZlbnRzLnRha2Uod2ViUGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6dG91Y2hFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdl
YktpdDo6V2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA0NDQ2ZjM0ZDA0Y2NmYmZi
ZWIzNjliYTQ0YzMyMDZiZjBkZDIzZWNkLi4xNzgyMDAxZDY0OTExYjA1MDg2MTFiM2E0YThlMjNj
NTc0YjAwOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tCkBAIC03NSw3ICs3NSw3IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBX
CiAgICAgLy8gRklYTUU6IFdoaWxlIHVzaW5nIHRoZSBoaWdoIGVuZCBvZiB0aGUgcmFuZ2Ugb2Yg
RGlzcGxheUlEcyBtYWtlcyBhIGNvbGxpc2lvbiB3aXRoIHJlYWwsIG5vbi1SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYQogICAgIC8vIERpc3BsYXlJRHMgbGVzcyBsaWtlbHksIGl0IGlzIG5vdCBl
bnRpcmVseSBzYWZlIHRvIGhhdmUgYSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSBhbmQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEKICAgICAvLyBjb2VleGlzdCBpbiB0aGUgc2FtZSBw
cm9jZXNzLgotICAgIHdlYlBhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIHdlYlBhZ2UucGFnZUlEKCkudG9VSW50NjQoKSk7Cisg
ICAgd2ViUGFnZS53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uoc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpIC0gd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiB9CiAKIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoKQpA
QCAtNDQ5LDcgKzQ0OSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNo
TGF5ZXJzKCkKICAgICBSZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gYmFja2luZ1N0b3JlRmx1
c2hlciA9IEJhY2tpbmdTdG9yZUZsdXNoZXI6OmNyZWF0ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLCBXVEZNb3ZlKGNvbW1pdEVuY29kZXIpLCBXVEZN
b3ZlKGNvbnRleHRzVG9GbHVzaCkpOwogICAgIG1fcGVuZGluZ0JhY2tpbmdTdG9yZUZsdXNoZXIg
PSBiYWNraW5nU3RvcmVGbHVzaGVyOwogCi0gICAgYXV0byBwYWdlSUQgPSBtX3dlYlBhZ2UucGFn
ZUlEKCk7CisgICAgYXV0byBwYWdlSUQgPSBtX3dlYlBhZ2UuaWRlbnRpZmllcigpOwogICAgIGRp
c3BhdGNoX2FzeW5jKG1fY29tbWl0UXVldWUsIFtiYWNraW5nU3RvcmVGbHVzaGVyID0gV1RGTW92
ZShiYWNraW5nU3RvcmVGbHVzaGVyKSwgcGFnZUlEXSB7CiAgICAgICAgIGJhY2tpbmdTdG9yZUZs
dXNoZXItPmZsdXNoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQppbmRleCBkN2NkMjBmYTBjMGJmZWYzYzRmY2NkMDA3ZmQzOGM0
MWQ5NGM5MTdhLi44MzU0NDFkMzE5Yjk1ZjQ2Njg3NzU4NTM4OTA5MmM5ZWVhMjkzODYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1t
CkBAIC01MSwxMiArNTEsMTIgQEAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yKFdlYlBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yKHBhZ2UtPmNvcmVQYWdlKCkpCiAgICAgLCBtX3dlYlBhZ2UocGFnZSkKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFn
ZS0+cGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS0+aWRlbnRpZmllcigpLCAqdGhpcyk7CiB9CiAKIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQog
ewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV93ZWJQYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYklu
c3BlY3RvclVJLmNwcAppbmRleCBkNGI4YjAwZmE0YjY3YmVlMjdkMzdlMGI1NGUwYzNiMDVkZjQx
ODc1Li45MTE5MDViOGFjZGZjYzIxZjI5NDI0MDA2YjE5MzZlMDY1ZDliYzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVj
dG9yVUkuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNl
bmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2VuZE1lc3NhZ2VU
b0JhY2tlbmQobWVzc2FnZSksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OlNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2UpLCBtX3BhZ2Uu
aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6d2luZG93T2Jq
ZWN0Q2xlYXJlZCgpCkBAIC0xMDIsMTIgKzEwMiwxMiBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3Rv
clVJOjpmcm9udGVuZExvYWRlZCgpCiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNoYW5n
ZVNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OlNldFNoZWV0UmVjdChyZWN0KSwgbV9wYWdlLnBhZ2VJRCgpKTsK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hlZXRSZWN0KHJlY3Qp
LCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6
c3RhcnRXaW5kb3dEcmFnKCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eTo6U3RhcnRXaW5kb3dEcmFnKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6OlN0YXJ0V2luZG93RHJhZygpLCBtX3BhZ2UuaWRlbnRpZmll
cigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bW92ZVdpbmRvd0J5KGZsb2F0
IHgsIGZsb2F0IHkpCkBAIC0xMjQsMzkgKzEyNCwzOSBAQCBXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uIFJlbW90ZVdlYkluc3BlY3RvclVJOjp1c2VySW50ZXJmYWNlTGF5b3V0
RAogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpicmluZ1RvRnJvbnQoKQogewotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpCcmluZ1RvRnJvbnQoKSwgbV9wYWdlLnBh
Z2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zy
b250KCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3Rv
clVJOjpjbG9zZVdpbmRvdygpCiB7CiAgICAgbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChudWxscHRyKTsKIAotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpGcm9udGVuZERpZENsb3NlKCksIG1fcGFn
ZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OkZyb250
ZW5kRGlkQ2xvc2UoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OnJlb3BlbigpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6OlJlb3BlbigpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdl
Ykluc3BlY3RvclByb3h5OjpSZW9wZW4oKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnJlc2V0U3RhdGUoKQogewotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVdlYkluc3BlY3RvclByb3h5OjpSZXNldFN0YXRlKCksIG1fcGFnZS5wYWdlSUQoKSk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlJlc2V0U3RhdGUoKSwgbV9wYWdl
LmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Om9wZW5Jbk5l
d1RhYihjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0
b3JQcm94eTo6T3BlbkluTmV3VGFiKHVybCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6Ok9wZW5Jbk5ld1RhYih1cmwpLCBtX3BhZ2UuaWRl
bnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2F2ZShjb25zdCBT
dHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2Rl
ZCwgYm9vbCBmb3JjZVNhdmVBcykKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6U2F2ZShmaWxlbmFtZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZlQXMp
LCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5
OjpTYXZlKGZpbGVuYW1lLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBmb3JjZVNhdmVBcyksIG1f
cGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjphcHBl
bmQoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogewotICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpBcHBlbmQoZmlsZW5hbWUsIGNvbnRl
bnQpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpBcHBlbmQoZmlsZW5hbWUsIGNvbnRlbnQpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0K
IAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBT
dHJpbmcmIHVybFN0cmluZykKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclVJOjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogCiB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpzaG93Q2VydGlmaWNhdGUoY29uc3QgQ2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6OlNob3dDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZUluZm8pLCBtX3BhZ2UucGFnZUlE
KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTaG93Q2VydGlmaWNh
dGUoY2VydGlmaWNhdGVJbmZvKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAppbmRleCBhYmZj
ZWNkYjFmYmZlZTlmZWQ2YTI1M2M4ODY4NTdjZWNjMDFhODhjLi41ZmI1MzI5M2FhNzQ0YmY2MGRk
ZTYzZjE3MzdmN2Q0ZTBkYWIwZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNw
cApAQCAtNjEsMTIgKzYxLDEyIEBAIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OlZpZXdH
ZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IoV2ViUGFnZSYgd2ViUGFnZSkKICAgICAsIG1fcmVuZGVy
VHJlZVNpemVOb3RpZmljYXRpb25UaHJlc2hvbGQoMCkKICNlbmRpZgogewotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Vmlld0dlc3R1cmVH
ZW9tZXRyeUNvbGxlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlE
KCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV93ZWJQYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQogCiBWaWV3R2VzdHVy
ZUdlb21ldHJ5Q29sbGVjdG9yOjp+Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvcigpCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
d2ViUGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3I6OmRpc3BhdGNoRGlkQ29sbGVjdEdlb21ldHJ5Rm9y
U21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShGbG9hdFBvaW50IG9yaWdpbiwgRmxvYXRSZWN0IHRh
cmdldFJlY3QsIEZsb2F0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QsIGJvb2wgZml0RW50aXJlUmVj
dCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2Nh
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNr
Rm9yd2FyZExpc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKaW5kZXggN2EwYzBjODBmZThjYzYwMTE2OTNkN2I0
NTI3YWJlYzdlOWU1ZTc0OC4uZDgwZDdmOTU3YTk2M2JkMmI5ZGZiOTJiYmQ5NTViOGQ1ZDUyNDQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIFJlZlB0cjxI
aXN0b3J5SXRlbT4gV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1BdEluZGV4KGludCBpdGVt
SW5kZXgpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgT3B0aW9uYWw8QmFja0Zvcndh
cmRJdGVtSWRlbnRpZmllcj4gaXRlbUlEOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6QmFja0ZvcndhcmRJdGVtQXRJbmRleChpdGVtSW5kZXgpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4OjpSZXBseShpdGVtSUQpLCBtX3BhZ2UtPnBh
Z2VJRCgpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJk
SXRlbUF0SW5kZXgoaXRlbUluZGV4KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0Zvcndh
cmRJdGVtQXRJbmRleDo6UmVwbHkoaXRlbUlEKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghaXRlbUlEKQpAQCAtMTMxLDcgKzEzMSw3
IEBAIHVuc2lnbmVkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrTGlzdENvdW50KCkgY29u
c3QKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICB1bnNpZ25lZCBiYWNrTGlzdENvdW50ID0gMDsK
LSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkQmFja0xpc3RD
b3VudCgpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQ6
OlJlcGx5KGJhY2tMaXN0Q291bnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKSkKKyAgICBpZiAoIVdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkQmFja0xpc3RDb3VudCgpLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEJhY2tMaXN0Q291bnQ6OlJlcGx5KGJhY2tMaXN0
Q291bnQpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
cmV0dXJuIGJhY2tMaXN0Q291bnQ7CkBAIC0xNDMsNyArMTQzLDcgQEAgdW5zaWduZWQgV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRMaXN0Q291bnQoKSBjb25zdAogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHVuc2lnbmVkIGZvcndhcmRMaXN0Q291bnQgPSAwOwotICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50KCksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudDo6UmVwbHko
Zm9yd2FyZExpc3RDb3VudCksIG1fcGFnZS0+cGFnZUlEKCkpKQorICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6QmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50KCksIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudDo6UmVwbHkoZm9yd2Fy
ZExpc3RDb3VudCksIG1fcGFnZS0+aWRlbnRpZmllcigpKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICByZXR1cm4gZm9yd2FyZExpc3RDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDFmMDE2YWVhZGE5OTZmOTYzZGQ1
ZTRlZmI5NmQwY2FmZTYwYWQ2MTcuLjMzMjI1ZDEzZGQzYThlMWJlOGY4M2RlYjc1ZjM3MjllZTUy
MmQyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcApAQCAtNzIsNyArNzIsNyBAQCBXZWJJbnNwZWN0b3I6On5XZWJJbnNwZWN0b3Io
KQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQoYm9vbCB1
bmRlclRlc3QpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Ok9wZW5Mb2NhbElu
c3BlY3RvckZyb250ZW5kKGNhbkF0dGFjaFdpbmRvdygpLCB1bmRlclRlc3QpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6T3BlbkxvY2FsSW5zcGVj
dG9yRnJvbnRlbmQoY2FuQXR0YWNoV2luZG93KCksIHVuZGVyVGVzdCksIG1fcGFnZS0+aWRlbnRp
ZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnNldEZyb250ZW5kQ29ubmVjdGlvbihJ
UEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTA4LDcgKzEw
OCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRGcm9udGVuZENvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpCiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpjbG9z
ZUZyb250ZW5kQ29ubmVjdGlvbigpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6
OkRpZENsb3NlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
clByb3h5OjpEaWRDbG9zZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7CiAKICAgICAvLyBJZiB3
ZSB0cmllZCB0byBjbG9zZSB0aGUgZnJvbnRlbmQgYmVmb3JlIGl0IHdhcyBjcmVhdGVkLCB0aGVu
IG5vIGNvbm5lY3Rpb24gZXhpc3RzIHlldC4KICAgICBpZiAobV9mcm9udGVuZENvbm5lY3Rpb24p
IHsKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6Y2xvc2VGcm9udGVuZENv
bm5lY3Rpb24oKQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6YnJpbmdUb0Zyb250KCkKIHsKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6QnJpbmdUb0Zyb250KCksIG1fcGFnZS0+cGFnZUlE
KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpCcmluZ1RvRnJvbnQoKSwgbV9w
YWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6d2hlbkZyb250ZW5k
Q29ubmVjdGlvbkVzdGFibGlzaGVkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKQEAgLTI3
MywxNyArMjczLDE3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzdG9wRWxlbWVudFNlbGVjdGlvbigp
CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjplbGVtZW50U2VsZWN0aW9uQ2hhbmdlZChib29sIGFjdGl2
ZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RWxlbWVudFNlbGVjdGlvbkNo
YW5nZWQoYWN0aXZlKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVj
dG9yUHJveHk6OkVsZW1lbnRTZWxlY3Rpb25DaGFuZ2VkKGFjdGl2ZSksIG1fcGFnZS0+aWRlbnRp
ZmllcigpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnRpbWVsaW5lUmVjb3JkaW5nQ2hhbmdl
ZChib29sIGFjdGl2ZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6VGltZWxp
bmVSZWNvcmRpbmdDaGFuZ2VkKGFjdGl2ZSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclByb3h5OjpUaW1lbGluZVJlY29yZGluZ0NoYW5nZWQoYWN0aXZlKSwg
bV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6c2V0TW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZE92ZXJyaWRlKE9wdGlvbmFsPGJvb2w+IGVuYWJsZWQpCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWRPdmVycmlkZShlbmFibGVkKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yUHJveHk6OlNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShlbmFi
bGVkKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiBib29sIFdlYkluc3BlY3Rvcjo6Y2Fu
QXR0YWNoV2luZG93KCkKQEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6dXBk
YXRlRG9ja2luZ0F2YWlsYWJpbGl0eSgpCiAKICAgICBtX3ByZXZpb3VzQ2FuQXR0YWNoID0gY2Fu
QXR0YWNoV2luZG93OwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkF0dGFjaEF2
YWlsYWJpbGl0eUNoYW5nZWQoY2FuQXR0YWNoV2luZG93KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkF0dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQo
Y2FuQXR0YWNoV2luZG93KSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNTQwNmUxZjRiNDEzNDZjOTY2NTk1YzNiMTRlNDBjMTgyNmRmMTY3Ni4uYzM0ZDlj
MjAyYjg0NWJkZjcxMjM5ZjQ2ODVkNzdkMzljN2Q3ZWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM3MSw3ICszNzEsNyBAQCBSZWY8V2Vi
UGFnZT4gV2ViUGFnZTo6Y3JlYXRlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYmCiB9CiAKIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IG1fcGFn
ZUlEKHBhZ2VJRCkKKyAgICA6IG1faWRlbnRpZmllcihwYWdlSUQpCiAgICAgLCBtX3ZpZXdTaXpl
KHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9s
bGVyIHsgcGFyYW1ldGVycy5hbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciB9CiAgICAgLCBt
X2Fsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciB7IHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NWZXJ0
aWNhbFNjcm9sbGVyIH0KQEAgLTQzNCw3ICs0MzQsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6
dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkKICNlbmRpZgogewotICAgIEFTU0VS
VChtX3BhZ2VJRCk7CisgICAgQVNTRVJUKG1faWRlbnRpZmllcik7CiAKICAgICBtX3BhZ2VHcm91
cCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2VHcm91cChwYXJhbWV0ZXJzLnBhZ2VH
cm91cERhdGEpOwogCkBAIC02MDgsMTQgKzYwOCwxNCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgbV9wYWdlLT5hZGRMYXlvdXRNaWxlc3RvbmVzKHsgRGlkRmlyc3RMYXlvdXQsIERpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCB9KTsKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKLSAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRo
aXMpOworICAgIHdlYlByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdl
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogCiAgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIG9iamVjdCBjb25zdHJ1Y3RvcnMsIGFu
ZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KLSAg
ICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7Ci0gICAgd2ViUHJvY2Vzcy5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7Ci0gICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZUlELCAqdGhpcyk7CisgICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYkluc3BlY3Rvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZp
ZXIsICp0aGlzKTsKKyAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViSW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhp
cyk7CisgICAgd2ViUHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdl
Ykluc3BlY3RvclVJOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMp
OwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9wYWdlSUQsICp0aGlzKTsKKyAgICB3ZWJQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9pZGVudGlmaWVyLCAqdGhpcyk7CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0Myw3
ICs4NDMsNyBAQCBJUEM6OkNvbm5lY3Rpb24qIFdlYlBhZ2U6Om1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgY29uc3QKIAogdWludDY0X3QgV2ViUGFnZTo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBjb25zdAogewotICAgIHJldHVybiBwYWdlSUQoKS50b1VJbnQ2NCgpOworICAgIHJldHVy
biBpZGVudGlmaWVyKCkudG9VSW50NjQoKTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQpAQCAtMTMzOCw3ICsxMzM4LDcgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgICAgIHJl
dHVybjsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDbGVh
clBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKHNlc3Npb25JRCgpLCBt
X3BhZ2VJRCksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhzZXNzaW9uSUQoKSwgbV9pZGVudGlmaWVyKSwgMCk7CiAjZW5kaWYKIAogICAg
IG1faXNDbG9zZWQgPSB0cnVlOwpAQCAtMTQzOSwyMCArMTQzOSwyMCBAQCB2b2lkIFdlYlBhZ2U6
OmNsb3NlKCkKICAgICBpZiAobV91c2VBc3luY1Njcm9sbGluZykKICAgICAgICAgd2ViUHJvY2Vz
cy5ldmVudERpc3BhdGNoZXIoKS5yZW1vdmVTY3JvbGxpbmdUcmVlRm9yUGFnZSh0aGlzKTsKICNl
bmRpZgotICAgIHdlYlByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQ
YWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKKyAgICB3ZWJQcm9jZXNzLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX2lkZW50aWZpZXIpOwogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGlu
IHRoZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFuZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3Vs
ZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFn
ZUlEKTsKLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOwotICAgIHdlYlBy
b2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JV
STo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CisgICAgd2ViUHJvY2Vzcy5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3Rvcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX2lkZW50aWZpZXIpOworICAgIHdlYlByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lk
ZW50aWZpZXIpOworICAgIHdlYlByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZp
ZXIpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICB3ZWJQcm9jZXNzLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlSUQpOworICAgIHdlYlByb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX2lkZW50aWZpZXIpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykKICAgICBtX3ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IgPSBudWxscHRyOwogI2Vu
ZGlmCiAKICAgICAvLyBUaGUgV2ViUGFnZSBjYW4gYmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4K
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVXZWJQYWdlKHNlc3Npb25JRCwgbV9w
YWdlSUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZVdlYlBhZ2Uoc2Vzc2lv
bklELCBtX2lkZW50aWZpZXIpOwogCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudXBkYXRl
QWN0aXZlUGFnZXMoKTsKIApAQCAtMTY2Niw3ICsxNjY2LDcgQEAgdm9pZCBXZWJQYWdlOjpnb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgQmFja0ZvcndhcmRJ
dGVtSWQKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhMb2FkaW5n
LCAiSW4gV2ViUHJvY2VzcyBwaWQgJWksIFdlYlBhZ2UgJSIgUFJJdTY0ICIgaXMgbmF2aWdhdGlu
ZyB0byBiYWNrL2ZvcndhcmQgVVJMICVzIiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCBtX3BhZ2VJ
RC50b1VJbnQ2NCgpLCBpdGVtLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBM
T0coTG9hZGluZywgIkluIFdlYlByb2Nlc3MgcGlkICVpLCBXZWJQYWdlICUiIFBSSXU2NCAiIGlz
IG5hdmlnYXRpbmcgdG8gYmFjay9mb3J3YXJkIFVSTCAlcyIsIGdldEN1cnJlbnRQcm9jZXNzSUQo
KSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksIGl0ZW0tPnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwogICAgIG1fcGVu
ZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKQEAgLTIwOTQsNyArMjA5NCw3IEBAIGJv
b2wgV2ViUGFnZTo6c2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAg
aWYgKCF2aWV3IHx8IHZpZXctPmZpeGVkTGF5b3V0U2l6ZSgpID09IHNpemUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8
PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlELnRvVUludDY0KCkgPDwgIiBzZXRGaXhlZExheW91dFNp
emUgIiA8PCBzaXplKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0g
PDwgIldlYlBhZ2UgIiA8PCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSA8PCAiIHNldEZpeGVkTGF5
b3V0U2l6ZSAiIDw8IHNpemUpOwogICAgIHZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShzaXplKTsK
IAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rml4ZWRMYXlvdXRTaXplRGlkQ2hh
bmdlKHNpemUpKTsKQEAgLTI1MjYsNyArMjUyNiw3IEBAIGNvbnN0IFdlYkV2ZW50KiBXZWJQYWdl
OjpjdXJyZW50RXZlbnQoKQogdm9pZCBXZWJQYWdlOjpmcmVlemVMYXllclRyZWUoTGF5ZXJUcmVl
RnJlZXplUmVhc29uIHJlYXNvbikKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gV2ViUGFnZSAoUGFnZUlEPSVsbHUpIC0gQWRkaW5nIGEgcmVhc29uICVkIHRvIGZy
ZWV6ZSBsYXllciB0cmVlOyBjdXJyZW50IHJlYXNvbnMgYXJlICVkIiwKLSAgICAgICAgdGhpcywg
bV9wYWdlSUQudG9VSW50NjQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlYXNvbiksIG1fbGF5
ZXJUcmVlRnJlZXplUmVhc29ucy50b1JhdygpKTsKKyAgICAgICAgdGhpcywgbV9pZGVudGlmaWVy
LnRvVUludDY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZWFzb24pLCBtX2xheWVyVHJlZUZy
ZWV6ZVJlYXNvbnMudG9SYXcoKSk7CiAgICAgbV9sYXllclRyZWVGcmVlemVSZWFzb25zLmFkZChy
ZWFzb24pOwogICAgIHVwZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJlZXplU3RhdGUoKTsKIH0K
QEAgLTI1MzQsNyArMjUzNCw3IEBAIHZvaWQgV2ViUGFnZTo6ZnJlZXplTGF5ZXJUcmVlKExheWVy
VHJlZUZyZWV6ZVJlYXNvbiByZWFzb24pCiB2b2lkIFdlYlBhZ2U6OnVuZnJlZXplTGF5ZXJUcmVl
KExheWVyVHJlZUZyZWV6ZVJlYXNvbiByZWFzb24pCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vz
c1N1c3BlbnNpb24sICIlcCAtIFdlYlBhZ2UgKFBhZ2VJRD0lbGx1KSAtIFJlbW92aW5nIGEgcmVh
c29uICVkIHRvIGZyZWV6ZSBsYXllciB0cmVlOyBjdXJyZW50IHJlYXNvbnMgYXJlICVkIiwKLSAg
ICAgICAgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJl
YXNvbiksIG1fbGF5ZXJUcmVlRnJlZXplUmVhc29ucy50b1JhdygpKTsKKyAgICAgICAgdGhpcywg
bV9pZGVudGlmaWVyLnRvVUludDY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZWFzb24pLCBt
X2xheWVyVHJlZUZyZWV6ZVJlYXNvbnMudG9SYXcoKSk7CiAgICAgbV9sYXllclRyZWVGcmVlemVS
ZWFzb25zLnJlbW92ZShyZWFzb24pOwogICAgIHVwZGF0ZURyYXdpbmdBcmVhTGF5ZXJUcmVlRnJl
ZXplU3RhdGUoKTsKIH0KQEAgLTI4NDAsNyArMjg0MCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9y
ZVNlc3Npb25JbnRlcm5hbChjb25zdCBWZWN0b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYg
aXRlCiAgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtU3RhdGUgOiBpdGVtU3RhdGVzKSB7CiAgICAg
ICAgIGF1dG8gaGlzdG9yeUl0ZW0gPSB0b0hpc3RvcnlJdGVtKGl0ZW1TdGF0ZSk7CiAgICAgICAg
IGhpc3RvcnlJdGVtLT5zZXRXYXNSZXN0b3JlZEZyb21TZXNzaW9uKHJlc3RvcmVkQnlBUElSZXF1
ZXN0ID09IFdhc1Jlc3RvcmVkQnlBUElSZXF1ZXN0OjpZZXMpOwotICAgICAgICBzdGF0aWNfY2Fz
dDxXZWJCYWNrRm9yd2FyZExpc3RQcm94eSY+KGNvcmVQYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xp
ZW50KCkpLmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKGl0ZW1TdGF0ZS5pZGVudGlmaWVyLCBXVEZNb3Zl
KGhpc3RvcnlJdGVtKSwgbV9wYWdlSUQsIG92ZXJ3cml0ZSk7CisgICAgICAgIHN0YXRpY19jYXN0
PFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5Jj4oY29yZVBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGll
bnQoKSkuYWRkSXRlbUZyb21VSVByb2Nlc3MoaXRlbVN0YXRlLmlkZW50aWZpZXIsIFdURk1vdmUo
aGlzdG9yeUl0ZW0pLCBtX2lkZW50aWZpZXIsIG92ZXJ3cml0ZSk7CiAgICAgfQogfQogCkBAIC0y
ODU4LDcgKzI4NTgsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEN1cnJlbnRIaXN0b3J5SXRlbUZvclJl
YXR0YWNoKFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJgogewogICAgIGF1dG8gaGlz
dG9yeUl0ZW0gPSB0b0hpc3RvcnlJdGVtKGl0ZW1TdGF0ZSk7CiAgICAgYXV0byYgaGlzdG9yeUl0
ZW1SZWYgPSBoaXN0b3J5SXRlbS5nZXQoKTsKLSAgICBzdGF0aWNfY2FzdDxXZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eSY+KGNvcmVQYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmFkZEl0ZW1G
cm9tVUlQcm9jZXNzKGl0ZW1TdGF0ZS5pZGVudGlmaWVyLCBXVEZNb3ZlKGhpc3RvcnlJdGVtKSwg
bV9wYWdlSUQsIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW06
Olllcyk7CisgICAgc3RhdGljX2Nhc3Q8V2ViQmFja0ZvcndhcmRMaXN0UHJveHkmPihjb3JlUGFn
ZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS5hZGRJdGVtRnJvbVVJUHJvY2VzcyhpdGVtU3Rh
dGUuaWRlbnRpZmllciwgV1RGTW92ZShoaXN0b3J5SXRlbSksIG1faWRlbnRpZmllciwgV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0aW5nSXRlbTo6WWVzKTsKICAgICBjb3Jl
UGFnZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5oaXN0b3J5KCkuc2V0Q3VycmVudEl0ZW0oaGlz
dG9yeUl0ZW1SZWYpOwogfQogCkBAIC0zMTYyLDcgKzMxNjIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVw
ZGF0ZUlzSW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSkKICAgICAgICAgCiAgICAgICAgIC8v
IFRoZSBXZWJQcm9jZXNzIGRvZXMgbm90IHlldCBrbm93IGFib3V0IHRoaXMgcGFnZTsgbm8gbmVl
ZCB0byB0ZWxsIGl0IHdlJ3JlIGxlYXZpbmcgdGhlIHdpbmRvdy4KICAgICAgICAgaWYgKCFpc0lu
aXRpYWxTdGF0ZSkKLSAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhZ2VXaWxs
TGVhdmVXaW5kb3cobV9wYWdlSUQpOworICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFnZVdpbGxMZWF2ZVdpbmRvdyhtX2lkZW50aWZpZXIpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIC8vIERlZmVyIHRoZSBjYWxsIHRvIFBhZ2U6OnNldENhblN0YXJ0TWVkaWEoKSBzaW5jZSBp
dCBlbmRzIHVwIHNlbmRpbmcgYSBzeW5jaHJvbm91cyBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNz
CiAgICAgICAgIC8vIGluIG9yZGVyIHRvIGdldCBwbHVnLWluIGNvbm5lY3Rpb25zLCBhbmQgdGhl
IFVJIHByb2Nlc3Mgd2lsbCBiZSB3YWl0aW5nIGZvciB0aGUgV2ViIHByb2Nlc3MgdG8gdXBkYXRl
IHRoZSBiYWNraW5nCkBAIC0zMTcwLDcgKzMxNzAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUlz
SW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSkKICAgICAgICAgaWYgKG1fbWF5U3RhcnRNZWRp
YVdoZW5JbldpbmRvdykKICAgICAgICAgICAgIG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyLnN0YXJ0
T25lU2hvdCgwX3MpOwogCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhZ2VEaWRF
bnRlcldpbmRvdyhtX3BhZ2VJRCk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
Z2VEaWRFbnRlcldpbmRvdyhtX2lkZW50aWZpZXIpOwogICAgIH0KIAogICAgIGlmIChpc0luV2lu
ZG93KQpAQCAtMzE5MCw3ICszMTkwLDcgQEAgdm9pZCBXZWJQYWdlOjp2aXNpYmlsaXR5RGlkQ2hh
bmdlKCkKIAogdm9pZCBXZWJQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0
eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlLCBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgYWN0aXZp
dHlTdGF0ZUNoYW5nZUlELCBjb25zdCBWZWN0b3I8Q2FsbGJhY2tJRD4mIGNhbGxiYWNrSURzKQog
ewotICAgIExPR19XSVRIX1NUUkVBTShBY3Rpdml0eVN0YXRlLCBzdHJlYW0gPDwgIldlYlBhZ2Ug
IiA8PCBwYWdlSUQoKS50b1VJbnQ2NCgpIDw8ICIgc2V0QWN0aXZpdHlTdGF0ZSB0byAiIDw8IGFj
dGl2aXR5U3RhdGUpOworICAgIExPR19XSVRIX1NUUkVBTShBY3Rpdml0eVN0YXRlLCBzdHJlYW0g
PDwgIldlYlBhZ2UgIiA8PCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSA8PCAiIHNldEFjdGl2aXR5
U3RhdGUgdG8gIiA8PCBhY3Rpdml0eVN0YXRlKTsKIAogICAgIGF1dG8gY2hhbmdlZCA9IG1fYWN0
aXZpdHlTdGF0ZSBeIGFjdGl2aXR5U3RhdGU7CiAgICAgbV9hY3Rpdml0eVN0YXRlID0gYWN0aXZp
dHlTdGF0ZTsKQEAgLTMxOTgsNyArMzE5OCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZpdHlT
dGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgQWN0CiAg
ICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZVRocm90dGxlU3RhdGUoKTsKIAotICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9wYWdlLCAic2V0QWN0aXZpdHlTdGF0ZSBjYWxsZWQgb24gJSIg
UFJJdTY0ICIgYnV0IFdlYkNvcmUgcGFnZSB3YXMgbnVsbCIsIHBhZ2VJRCgpLnRvVUludDY0KCkp
OworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9wYWdlLCAic2V0QWN0aXZpdHlTdGF0ZSBjYWxs
ZWQgb24gJSIgUFJJdTY0ICIgYnV0IFdlYkNvcmUgcGFnZSB3YXMgbnVsbCIsIGlkZW50aWZpZXIo
KS50b1VJbnQ2NCgpKTsKICAgICBpZiAobV9wYWdlKSB7CiAgICAgICAgIFNldEZvclNjb3BlPE9w
dGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPj4gY3VycmVudGx5Q2hhbmdpbmdBY3Rpdml0eVN0
YXRlIHsgbV9sYXN0QWN0aXZpdHlTdGF0ZUNoYW5nZXMsIGNoYW5nZWQgfTsKICAgICAgICAgbV9w
YWdlLT5zZXRBY3Rpdml0eVN0YXRlKGFjdGl2aXR5U3RhdGUpOwpAQCAtMzIwOCw3ICszMjA4LDcg
QEAgdm9pZCBXZWJQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRl
OjpGbGFnPiBhY3Rpdml0eVN0YXRlLCBBY3QKICAgICAgICAgcGx1Z2luVmlldy0+YWN0aXZpdHlT
dGF0ZURpZENoYW5nZShjaGFuZ2VkKTsKIAogICAgIG1fZHJhd2luZ0FyZWEtPmFjdGl2aXR5U3Rh
dGVEaWRDaGFuZ2UoY2hhbmdlZCwgYWN0aXZpdHlTdGF0ZUNoYW5nZUlELCBjYWxsYmFja0lEcyk7
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2Uo
bV9wYWdlSUQsIGNoYW5nZWQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhZ2VBY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKG1faWRlbnRpZmllciwgY2hhbmdlZCk7CiAKICAgICBpZiAoY2hh
bmdlZCAmIEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpCiAgICAgICAgIHVwZGF0ZUlzSW5XaW5k
b3coKTsKQEAgLTQzNjMsNyArNDM2Myw3IEBAIHZvaWQgV2ViUGFnZTo6bWFpbkZyYW1lRGlkTGF5
b3V0KCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChGcmFtZVZpZXcqIGZyYW1l
VmlldyA9IG1haW5GcmFtZVZpZXcoKSkgewogICAgICAgICBJbnRTaXplIG5ld0NvbnRlbnRTaXpl
ID0gZnJhbWVWaWV3LT5jb250ZW50c1NpemUoKTsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFZp
c2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwgbV9wYWdlSUQudG9VSW50NjQoKSA8
PCAiIG1haW5GcmFtZURpZExheW91dCBzZXR0aW5nIGNvbnRlbnQgc2l6ZSB0byAiIDw8IG5ld0Nv
bnRlbnRTaXplKTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFt
IDw8ICJXZWJQYWdlICIgPDwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkgPDwgIiBtYWluRnJhbWVE
aWRMYXlvdXQgc2V0dGluZyBjb250ZW50IHNpemUgdG8gIiA8PCBuZXdDb250ZW50U2l6ZSk7CiAg
ICAgICAgIGlmIChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRDb250ZW50c1NpemUobmV3Q29u
dGVudFNpemUpKQogICAgICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwog
ICAgIH0KQEAgLTU3NzYsNyArNTc3Niw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChX
ZWJGcmFtZSogZnJhbWUpCiAgICAgCiAgICAgYm9vbCB2aWV3cG9ydENoYW5nZWQgPSBmYWxzZTsK
IAotICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAi
IDw8IG1fcGFnZUlELnRvVUludDY0KCkgPDwgIiBkaWRDb21taXRMb2FkIHNldHRpbmcgY29udGVu
dCBzaXplIHRvICIgPDwgY29yZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICBM
T0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBhZ2UgIiA8PCBtX2lk
ZW50aWZpZXIudG9VSW50NjQoKSA8PCAiIGRpZENvbW1pdExvYWQgc2V0dGluZyBjb250ZW50IHNp
emUgdG8gIiA8PCBjb3JlRnJhbWUtPnZpZXcoKS0+Y29udGVudHNTaXplKCkpOwogICAgIGlmICht
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRDb250ZW50c1NpemUoY29yZUZyYW1lLT52aWV3KCkt
PmNvbnRlbnRzU2l6ZSgpKSkKICAgICAgICAgdmlld3BvcnRDaGFuZ2VkID0gdHJ1ZTsKIApAQCAt
NjUzMiwxMiArNjUzMiwxMiBAQCB2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJgogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiB2b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3Mo
UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgV2ViRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9y
YWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0
b3BGcmFtZURvbWFpbiksIGZyYW1lLmZyYW1lSUQoKSwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vz
c2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWlu
KSwgZnJhbWUuZnJhbWVJRCgpLCBtX2lkZW50aWZpZXIpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFi
bGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0
U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1v
dmUodG9wRnJhbWVEb21haW4pLCBmcmFtZS5mcmFtZUlEKCksIG1fcGFnZUlEKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJh
bWVEb21haW4pLCBmcmFtZS5mcmFtZUlEKCksIG1faWRlbnRpZmllciksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRXaXRoRGF0YVRyYW5z
ZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKQEAgLTY3NTUsNyArNjc1NSw3IEBAIHZvaWQgV2Vi
UGFnZTo6dGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHNlYXJjaFJl
Y3QsIENvbXBsZXRpb25ICiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAg
IFdlYktpdDo6VGV4dElucHV0Q29udGV4dCBjb250ZXh0OwotICAgICAgICAgICAgY29udGV4dC53
ZWJQYWdlSWRlbnRpZmllciA9IG1fcGFnZUlEOworICAgICAgICAgICAgY29udGV4dC53ZWJQYWdl
SWRlbnRpZmllciA9IG1faWRlbnRpZmllcjsKICAgICAgICAgICAgIGNvbnRleHQuZG9jdW1lbnRJ
ZGVudGlmaWVyID0gZG9jdW1lbnQtPmlkZW50aWZpZXIoKTsKICAgICAgICAgICAgIGNvbnRleHQu
ZWxlbWVudElkZW50aWZpZXIgPSBkb2N1bWVudC0+aWRlbnRpZmllckZvckVsZW1lbnQoZWxlbWVu
dCk7CiAgICAgICAgICAgICBjb250ZXh0LmJvdW5kaW5nUmVjdCA9IGVsZW1lbnRSZWN0OwpAQCAt
Njc3OSw3ICs2Nzc5LDcgQEAgdm9pZCBXZWJQYWdlOjpmb2N1c1RleHRJbnB1dENvbnRleHQoY29u
c3QgVGV4dElucHV0Q29udGV4dCYgdGV4dElucHV0Q29udGV4dCwgQ28KIAogRWxlbWVudCogV2Vi
UGFnZTo6ZWxlbWVudEZvclRleHRJbnB1dENvbnRleHQoY29uc3QgVGV4dElucHV0Q29udGV4dCYg
dGV4dElucHV0Q29udGV4dCkKIHsKLSAgICBpZiAodGV4dElucHV0Q29udGV4dC53ZWJQYWdlSWRl
bnRpZmllciAhPSBtX3BhZ2VJRCkKKyAgICBpZiAodGV4dElucHV0Q29udGV4dC53ZWJQYWdlSWRl
bnRpZmllciAhPSBtX2lkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
YXV0byogZG9jdW1lbnQgPSBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KHRleHRJbnB1
dENvbnRleHQuZG9jdW1lbnRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjYjg5YjA2ODIzNGUwN2QzM2M2N2FhOGUwNjIxYzliNTEw
NTZmNzNjLi5kZjFjODI1OWM4ZGRmYmRhMTFhYTA1OGVkNWNhZTE3YWEyZDEyNTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTEsNyArMjkxLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBXZWJQYWdlJiBmcm9tQ29yZVBhZ2UoV2ViQ29yZTo6UGFn
ZSYpOwogCiAgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2UuZ2V0KCk7IH0KLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllclR5cGU+
KG1fd2ViUGFnZVByb3h5SWRlbnRpZmllci50b1VJbnQ2NCgpKTsgfQogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7IH0KICAg
ICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT51c2Vz
RXBoZW1lcmFsU2Vzc2lvbigpOyB9CkBAIC0xNjIxLDcgKzE2MjEsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCB1cGRhdGVNb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnRBZnRlckNvbW1pdHRpbmdMb2Fk
KCk7CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKKyAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6UGFnZT4gbV9wYWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXQuY3BwCmluZGV4IGI3Nzk5YjRmYmI4YjU1Y2I2NmI2MjIyN2E2YTY1ZjNh
YjEyY2EwMGYuLjU2YjBkNTJlYzU5NTdjYzczYTEzZjA2N2ViM2NkYTAzMmRlMjE3NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJbnNwZWN0b3JU
YXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VJ
bnNwZWN0b3JUYXJnZXQuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFdlYlBhZ2VJbnNwZWN0b3JUYXJn
ZXQ6OldlYlBhZ2VJbnNwZWN0b3JUYXJnZXQoV2ViUGFnZSYgcGFnZSkKIAogU3RyaW5nIFdlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQ6OmlkZW50aWZpZXIoKSBjb25zdAogewotICAgIHJldHVybiBtYWtl
U3RyaW5nKCJwYWdlLSIsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpKTsKKyAgICByZXR1cm4g
bWFrZVN0cmluZygicGFnZS0iLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogfQog
CiB2b2lkIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXQ6OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaAppbmRleCA5
ZmRhN2NhYTU3N2VmOWQzMjRkODJlZTU3YzFjZjk2ZDA0OGQzNmY0Li43YjMyMjVhYzI5NTE2M2Q0
NDg3ZTZmMDNlNzY1NWJiNzdiZmE3MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5k
LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIH5BY2NlbGVyYXRlZFN1cmZhY2VXYXls
YW5kKCkgPSBkZWZhdWx0OwogCiAgICAgdWludDY0X3Qgd2luZG93KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obV93aW5kb3cpOyB9Ci0gICAgdWlu
dDY0X3Qgc3VyZmFjZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJ
RCgpLnRvVUludDY0KCk7IH0KKyAgICB1aW50NjRfdCBzdXJmYWNlSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3dlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCk7IH0KICAgICB2b2lk
IGNsaWVudFJlc2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAgICAgYm9v
bCBzaG91bGRQYWludE1pcnJvcmVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGY3MjRhZTkyYWMzY2NlMzU5YTE2NjAyNzNlNzNmZjg4MTRhNDk2NzUuLjdkNDBh
MTJmMjY2MjEwYWRhMDE3ZGVhNTc2ZTM3OGVjZGYyMDc2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00NTYsNyArNDU2
LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50JiBldmVudCkKICAgICAvLyBGSVhNRTogSW50ZXJwcmV0IHRoZSBldmVudCBpbW1lZGlhdGVs
eSB1cG9uIHJlY2VpdmluZyBpdCBpbiBVSSBwcm9jZXNzLCB3aXRob3V0IHNlbmRpbmcgdG8gV2Vi
UHJvY2VzcyBmaXJzdC4KICAgICBib29sIGV2ZW50V2FzSGFuZGxlZCA9IGZhbHNlOwogICAgIGJv
b2wgc2VuZFJlc3VsdCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkludGVycHJldEtleUV2
ZW50KGVkaXRvclN0YXRlKCksIHBsYXRmb3JtRXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OkNoYXIpLAotICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbnRlcnBy
ZXRLZXlFdmVudDo6UmVwbHkoZXZlbnRXYXNIYW5kbGVkKSwgbV9wYWdlSUQpOworICAgICAgICBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbnRlcnByZXRLZXlFdmVudDo6UmVwbHkoZXZlbnRXYXNI
YW5kbGVkKSwgbV9pZGVudGlmaWVyKTsKICAgICByZXR1cm4gc2VuZFJlc3VsdCAmJiBldmVudFdh
c0hhbmRsZWQ7CiB9CiAKQEAgLTMwNTYsNyArMzA1Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBh
cmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogCiB2b2lkIFdlYlBh
Z2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgZG91YmxlIHNjYWxlRmFjdG9yLCBkb3VibGUgbWluaW11bUVmZmVjdGl2ZURldmlj
ZVdpZHRoKQogewotICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAi
V2ViUGFnZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xh
eW91dFNpemUgIiA8PCBzaXplIDw8ICIgc2NhbGVGYWN0b3IgIiA8PCBzY2FsZUZhY3RvciA8PCAi
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCAiIDw8IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQ
YWdlICIgPDwgbV9pZGVudGlmaWVyIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xh
eW91dFNpemUgIiA8PCBzaXplIDw8ICIgc2NhbGVGYWN0b3IgIiA8PCBzY2FsZUZhY3RvciA8PCAi
IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCAiIDw8IG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCk7CiAKICAgICBhdXRvIHByZXZpb3VzTGF5b3V0U2l6ZVNjYWxlRmFjdG9yID0gbV92aWV3
cG9ydENvbmZpZ3VyYXRpb24ubGF5b3V0U2l6ZVNjYWxlRmFjdG9yKCk7CiAgICAgYXV0byBjbGFt
cGVkTWluaW11bUVmZmVjdGl2ZURldmljZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmlzS25v
d25Ub0xheU91dFdpZGVyVGhhblZpZXdwb3J0KCkgPyBXVEY6Om51bGxvcHQgOiBPcHRpb25hbDxk
b3VibGU+KG1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCk7CkBAIC0zMjgxLDcgKzMyODEsNyBA
QCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXpl
JiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgVwogCiB2b2lkIFdlYlBhZ2U6OnJlc2V0Vmlld3BvcnRE
ZWZhdWx0Q29uZmlndXJhdGlvbihXZWJGcmFtZSogZnJhbWUsIGJvb2wgaGFzTW9iaWxlRG9jVHlw
ZSkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBh
Z2UgIiA8PCBtX3BhZ2VJRCA8PCAiIHJlc2V0Vmlld3BvcnREZWZhdWx0Q29uZmlndXJhdGlvbiIp
OworICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAi
IDw8IG1faWRlbnRpZmllciA8PCAiIHJlc2V0Vmlld3BvcnREZWZhdWx0Q29uZmlndXJhdGlvbiIp
OwogICAgIGlmIChtX3VzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24pIHsKICAgICAgICAg
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0RGVmYXVsdENvbmZpZ3VyYXRpb24oVmlld3BvcnRD
b25maWd1cmF0aW9uOjp0ZXN0aW5nUGFyYW1ldGVycygpKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MzQ3Miw3ICszNDcyLDcgQEAgdm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFu
Z2VkKFpvb21Ub0luaXRpYWxTY2FsZSB6b29tVG9Jbml0aWFsU2NhbGUKICAgICBlbHNlCiAgICAg
ICAgIHNjYWxlID0gaW5pdGlhbFNjYWxlOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVS
ZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwgbV9wYWdlSUQgPDwgIiB2aWV3cG9ydENvbmZp
Z3VyYXRpb25DaGFuZ2VkIC0gc2V0dGluZyB6b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IgdG8gIiA8
PCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSA8PCAiIGFuZCBzY2FsZSB0
byAiIDw8IHNjYWxlKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0g
PDwgIldlYlBhZ2UgIiA8PCBtX2lkZW50aWZpZXIgPDwgIiB2aWV3cG9ydENvbmZpZ3VyYXRpb25D
aGFuZ2VkIC0gc2V0dGluZyB6b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IgdG8gIiA8PCBtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoKSA8PCAiIGFuZCBzY2FsZSB0byAiIDw8IHNj
YWxlKTsKIAogICAgIG1fcGFnZS0+c2V0Wm9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yKG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgpKTsKIApAQCAtMzYxMiw3ICszNjEyLDcgQEAg
c3RhdGljIGJvb2wgc2VsZWN0aW9uSXNJbnNpZGVGaXhlZFBvc2l0aW9uQ29udGFpbmVyKEZyYW1l
JiBmcmFtZSkKIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8sIE1vbm90b25pY1RpbWUgb2xkZXN0VGltZXN0YW1wKQogewotICAgIExPR19XSVRIX1NUUkVB
TShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiXG5XZWJQYWdlICIgPDwgbV9wYWdlSUQgPDwgIiB1
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzICIgPDwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
byk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJcbldlYlBh
Z2UgIiA8PCBtX2lkZW50aWZpZXIgPDwgIiB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzICIgPDwg
dmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk7CiAKICAgICAvLyBTa2lwIGFueSBWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGUgdGhhdCBoYXZlIGJlZW4gcXVldWVkIGJlZm9yZSBEaWRDb21taXRM
b2FkIHN1cHByZXNzZXMgdGhlIHVwZGF0ZXMgaW4gdGhlIFVJUHJvY2Vzcy4KICAgICBpZiAodmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIDwg
bV9tYWluRnJhbWUtPmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlkQ29tbWl0TG9h
ZCgpICYmICF2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmlzRmlyc3RVcGRhdGVGb3JOZXdW
aWV3U2l6ZSgpKQpAQCAtMzc5OCw3ICszNzk4LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVTdHJp
bmdGb3JGaW5kKGNvbnN0IFN0cmluZyYgZmluZFN0cmluZykKICNpZiBVU0UoUVVJQ0tfTE9PSykK
IHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29u
c3QgU3RyaW5nJiBwYXNzd29yZCkKIHsKLSAgICBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlUGFzc3dvcmQocGFzc3dvcmQsIG1fcGFnZUlEKTsKKyAgICBXZWJQcmV2aWV3TG9hZGVy
Q2xpZW50OjpkaWRSZWNlaXZlUGFzc3dvcmQocGFzc3dvcmQsIG1faWRlbnRpZmllcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbGli
d3BlL0FjY2VsZXJhdGVkU3VyZmFjZUxpYldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGliV1BFLmNwcAppbmRleCA5NjYx
NDY3NWI2ZDJkNmRjNWRhOTI3ZTBiMTQ5OTgyZDkzZTAyNTA1Li43OTcwZDZiMTJhMDI0NjhhMjhm
NTUxNzI4ODRmNDQ0Y2ZmOTAzMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGliV1BFLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9saWJ3cGUvQWNjZWxlcmF0ZWRTdXJmYWNlTGli
V1BFLmNwcApAQCAtOTEsNyArOTEsNyBAQCB1aW50NjRfdCBBY2NlbGVyYXRlZFN1cmZhY2VMaWJX
UEU6OndpbmRvdygpIGNvbnN0CiAKIHVpbnQ2NF90IEFjY2VsZXJhdGVkU3VyZmFjZUxpYldQRTo6
c3VyZmFjZUlEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJRCgpLnRvVUlu
dDY0KCk7CisgICAgcmV0dXJuIG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKIH0K
IAogdm9pZCBBY2NlbGVyYXRlZFN1cmZhY2VMaWJXUEU6OmNsaWVudFJlc2l6ZShjb25zdCBJbnRT
aXplJiBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1t
CmluZGV4IDYxNjVhMDFmZTYwODI0OGZkZTNiOTYwZjc4OTQ1MTM5MjM3MWRmOGYuLjQyNzNkYjVl
YjJiNmZhMWQ3NzdiOGMyODcyNjFlNjBiYWU1NjVjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFz
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KQEAgLTE0Myw3ICsxNDMsNyBAQCAtICh2b2lkKXNl
dFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSopcGFnZQogICAgIG1fcGFnZSA9IHBhZ2U7CiAKICAg
ICBpZiAocGFnZSkgewotICAgICAgICBtX3BhZ2VJRCA9IHBhZ2UtPnBhZ2VJRCgpOworICAgICAg
ICBtX3BhZ2VJRCA9IHBhZ2UtPmlkZW50aWZpZXIoKTsKIAogICAgICAgICBhdXRvKiBmcmFtZSA9
IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgICAgICBtX2hhc01haW5GcmFtZVBsdWdpbiA9IGZyYW1l
ICYmIGZyYW1lLT5kb2N1bWVudCgpID8gZnJhbWUtPmRvY3VtZW50KCktPmlzUGx1Z2luRG9jdW1l
bnQoKSA6IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbQppbmRleCBmZTI0MTdiMGE3ZDU4MzYzYzU0YmI4NmRhNTc4OThkMTFm
YmUzNTM4Li4yNWYzZjc3YWU3OWNiNDI2YmVlMzU3ZWVlNDE3YzA5NGU2NWZkZTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpA
QCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUtleXByZXNzQ29tbWFuZHNJ
bnRlcm5hbChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tCiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIGJvb2wgY29tbWFuZFdhc0hhbmRsZWRCeVVJUHJvY2Vz
cyA9IGZhbHNlOwogICAgICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4
ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lKSwKLSAg
ICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVNhdmVkQ29t
bWFuZEJ5U2VsZWN0b3I6OlJlcGx5KGNvbW1hbmRXYXNIYW5kbGVkQnlVSVByb2Nlc3MpLCBtX3Bh
Z2VJRCk7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1
dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yOjpSZXBseShjb21tYW5kV2FzSGFuZGxlZEJ5VUlQcm9j
ZXNzKSwgbV9pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQgfD0g
Y29tbWFuZFdhc0hhbmRsZWRCeVVJUHJvY2VzczsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGUyNzlkNDRmNzZhODJk
NWU5ZjUwOGZjZjBmZTRkOGFiNTBkYTlhMTUuLmNjYjUyN2RhN2JhYWQ5ODI3ZWEyYjkzMWYwM2Ji
MjNjM2I4ZDhhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTE3NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6dHJhbnNm
b3JtT2JqZWN0c1RvSGFuZGxlcyhBUEk6Ok9iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAg
IHJldHVybiBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2Fz
dDxjb25zdCBXZWJGcmFtZSY+KG9iamVjdCkuZnJhbWVJRCgpKTsKIAogICAgICAgICAgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
QVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBX
ZWJQYWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNv
bnN0IFdlYlBhZ2UmPihvYmplY3QpLnBhZ2VJRCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
QVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBX
ZWJQYWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNv
bnN0IFdlYlBhZ2UmPihvYmplY3QpLmlkZW50aWZpZXIoKSk7CiAKICAgICAgICAgICAgIGNhc2Ug
QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2VHcm91cDogewogICAgICAgICAgICAgICAgIFdl
YlBhZ2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRl
eCA1YzAwYTU1NDY1NDA5ZTRhM2M0NWFmMGYxMWVjODA3ODYzNzBjNjRiLi5lMWUzYTc0MzJjYzFi
N2RmOTQ5MTI1MTY2ODJkYTIyODAyYmZlODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBA
IC0xMTksNyArMTE5LDcgQEAgUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjpjb3B5KFBhZ2UmIG5ld1BhZ2UpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKSkKICAgICAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6OkNsb25lU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UobmV3UGFnZS5zZXNzaW9uSUQoKSwgbV9zdG9yYWdlTmFtZXNwYWNlSUQsIFdlYlBh
Z2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXIoKSksIDApOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUlt
cGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLnNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UobmV3UGFn
ZSkucGFnZUlEKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVzLCBuZXdQ
YWdlLnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVz
cGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLnNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBXZWJQYWdlOjpmcm9tQ29yZVBhZ2Uo
bmV3UGFnZSkuaWRlbnRpZmllcigpLCBtX3RvcExldmVsT3JpZ2luLmdldCgpLCBtX3F1b3RhSW5C
eXRlcywgbmV3UGFnZS5zZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCmluZGV4IGYyZjc5MWFhNzVlMDE0MDFk
NTdlOTM4MjE3ZDI5NmMyMDhkODQ0MDEuLjIxNTNmMTk0ZWYyNzA4ZWY3ZTZkOWFkN2QzMWZmMjA0
YmQyNjhhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcApAQCAtNjcs
NyArNjcsNyBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6On5XZWJTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIoKQogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYgcGFn
ZSwgdW5zaWduZWQgcXVvdGEpCiB7CiAgICAgYXV0byYgd2ViUGFnZSA9IFdlYlBhZ2U6OmZyb21D
b3JlUGFnZShwYWdlKTsKLSAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlKHdlYlBhZ2Uuc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyKCksIHdlYlBhZ2UucGFnZUlEKCksIHF1b3RhLCBwYWdlLnNlc3Npb25JRCgpKTsKKyAg
ICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKHdlYlBhZ2Uuc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBhZ2Uu
aWRlbnRpZmllcigpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxXZWJDb3Jl
OjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZUxv
Y2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNr
U2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJh
Y2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCA2NmYwNGRlNDQ4M2M5OTNmZjUwY2NmOGU2YWQ3MzEy
MGMzNGI3ZTVjLi4yMGRlMzQxZjZkMTdiYjFkYzMyZThhMTk2NzA3YjU0NGFhOTIxOTU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNz
aW9uTWFuYWdlci5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZjxQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyPiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKIFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXI6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoV2ViUGFnZSYgcGFnZSkK
ICAgICA6IG1fcGFnZSgmcGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwog
fQogCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp+UGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCkBA
IC0xODcsMTMgKzE4NywxMyBAQCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjp+UGxheWJhY2tTZXNz
aW9uTWFuYWdlcigpCiAgICAgbV9jbGllbnRDb3VudHMuY2xlYXIoKTsKIAogICAgIGlmIChtX3Bh
Z2UpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBtX3BhZ2UgPSBudWxscHRyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1tCmluZGV4IDU4OTBmNzI5NTE3Mjc1NDA0MTkzYWMyMzIzM2UxNjIzMzE1
MjU4MWMuLmQ5NmQyMGVjYjEzYzZlZDRkNjZjYmFmZjQ2YjYwN2UwMjBlYWI0ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tCkBAIC0xMTcsNyArMTE3LDcgQEAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcihXZWJQYWdlJiBwYWdlLCBQbGF5YmFja1Nlc3Npb25NYW4KICAg
ICA6IG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcihwbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBwYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRlbnRpZmllcigpLCAqdGhpcyk7CiB9CiAK
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKQEAgLTEz
NCwxMyArMTM0LDEzIEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKCkKICAgICBtX2NsaWVudENvdW50cy5jbGVhcigpOwogICAgIAogICAgIGlmIChtX3Bh
Z2UpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBtX3BhZ2UgPSBudWxscHRyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3Np
dG9yRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21w
b3NpdG9yRGlzcGxheS5jcHAKaW5kZXggYmYyNWUxMDZkN2MxNzljN2NiNTM1YzJjMzNjODJiNzg5
NjQyYmExYy4uZTZiYTZhNWZlZDRiMDdkZmU4NWM1ZDA1NGFmNmI3YzNhNmI1ODE5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3Bs
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yRGlz
cGxheTo6YmluZFN1cmZhY2VUb1BhZ2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIFdlYgog
ICAgIGlmICghbV93ZWJraXRndGspCiAgICAgICAgIHJldHVybjsKIAotICAgIHdsX3dlYmtpdGd0
a19iaW5kX3N1cmZhY2VfdG9fcGFnZShyZWludGVycHJldF9jYXN0PHN0cnVjdCB3bF93ZWJraXRn
dGsqPihtX3dlYmtpdGd0ay5nZXQoKSksIHN1cmZhY2UsIHBhZ2UucGFnZUlEKCkudG9VSW50NjQo
KSk7CisgICAgd2xfd2Via2l0Z3RrX2JpbmRfc3VyZmFjZV90b19wYWdlKHJlaW50ZXJwcmV0X2Nh
c3Q8c3RydWN0IHdsX3dlYmtpdGd0ayo+KG1fd2Via2l0Z3RrLmdldCgpKSwgc3VyZmFjZSwgcGFn
ZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9k
aXNwbGF5KTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>