<?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>315671</bug_id>
          
          <creation_ts>2026-05-27 09:58:50 -0700</creation_ts>
          <short_desc>[cleanup] Rename computePreferredLogicalWidths to computeIntrinsicLogicalWidthContributions</short_desc>
          <delta_ts>2026-05-28 06:48:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2215003</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-05-27 09:58:50 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2215017</commentid>
    <comment_count>1</comment_count>
      <attachid>479839</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-27 10:36:33 -0700</bug_when>
    <thetext>Created attachment 479839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2215291</commentid>
    <comment_count>2</comment_count>
      <attachid>479864</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-28 05:19:19 -0700</bug_when>
    <thetext>Created attachment 479864
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2215307</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-05-28 06:47:55 -0700</bug_when>
    <thetext>Committed 314036@main (a758094f8699): &lt;https://commits.webkit.org/314036@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479864.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2215308</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-05-28 06:48:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/178146765&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479839</attachid>
            <date>2026-05-27 10:36:33 -0700</date>
            <delta_ts>2026-05-28 05:19:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-315671-20260527103632.patch</filename>
            <type>text/plain</type>
            <size>52565</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMWFhYzljZTk2ODNmMWEyNGJmMjg2OTM5NDE4NzcwZGJjNGRmZWJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjcgTWF5IDIwMjYgMTA6MDE6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gUmVuYW1lIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHRvCiBjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMxNTY3MQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyBw
b3B1bGF0ZXMgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggYW5kIG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoLgpUaGVzZSB2YWx1ZXMgYXJlIHRoZSBib3gncyBtaW4tY29udGVudCAvIG1heC1j
b250ZW50IGNvbnRyaWJ1dGlvbiB0byBpdHMgY29udGFpbmluZyBibG9jawoocGVyIGNzcy1zaXpp
bmctMyDCpzQuMyBsaW5lIDMyMy0zMzA6ICJUaGUgc2l6ZSB0aGF0IGEgYm94IGNvbnRyaWJ1dGVz
IHRvIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgbWluLWNvbnRlbnQgc2l6ZSIsIGFuZCBsaWtld2lz
ZSBmb3IgbWF4LWNvbnRlbnQpLgpUaGV5IGFyZSBub3QgInByZWZlcnJlZCIgc2l6ZXMgaW4gdGhl
IHNwZWMgc2Vuc2UuCgpUaGUgY2FjaGVkIG1lbWJlcnMsIGdldHRlcnMsIGFuZCBkaXJ0eS1mbGFn
IHN0aWxsIHVzZSB0aGUKIlByZWZlcnJlZCIgbmFtaW5nIGZvciBub3cgKG1fbWluUHJlZmVycmVk
TG9naWNhbFdpZHRoLAptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwgbmVlZHNQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzVXBkYXRlKCksCmV0Yy4pLgoKVGhlIHVucmVsYXRlZCBvdmVybG9hZGVkIFJl
bmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzCnRoYXQgdGFrZXMgKGZsb2F0
IGxlYWRXaWR0aCwgLi4uKSBpcyBhIGRpZmZlcmVudCBmYW1pbHkgb2YgZnVuY3Rpb25zCm9uIFJl
bmRlclRleHQgZm9yIHRleHQtc2hhcGluZyB3aWR0aCBjb21wdXRhdGlvbiwgYW5kIGlzIG5vdCBy
ZW5hbWVkIGhlcmUuCgpObyBiZWhhdmlvciBjaGFuZ2UuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDoKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpjYW5Vc2VGb3JQcmVmZXJyZWRXaWR0aENvbXB1dGF0aW9uKToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6Om1pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6Om1heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6Y29tcHV0ZUlu
dHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc0V4dGVudEZvckZsZXhJdGVtKToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRDb250YWluZXIuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyRnJhZ21lbnRDb250YWluZXI6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhD
b250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckZyYWdtZW50Q29udGFpbmVyOjpjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckxpc3RN
YXJrZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
TWVudUxpc3Q6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRl
clJlcGxhY2VkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVwbGljYTo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
UmVwbGljYTo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlclNsaWRl
cjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNvbXB1dGVJbnRyaW5zaWNM
b2dpY2FsV2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6Y29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6Y29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MRnJh
Y3Rpb246OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNv
cmU6OlJlbmRlck1hdGhNTEZyYWN0aW9uOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
cmFjdGlvbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
TWVuY2xvc2UuY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MTWVuY2xvc2U6OmNvbXB1dGVJbnRy
aW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTE1l
bmNsb3NlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhD
b250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFBh
ZGRlZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29y
ZTo6UmVuZGVyTWF0aE1MUGFkZGVkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRk
ZWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3Qu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFJvdzo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
TWF0aE1MUm93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRy
aWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MU3BhY2U6OmNv
bXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRl
ck1hdGhNTFNwYWNlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxUb2tlbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFVuZGVyT3Zl
cjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6
UmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRl
ck92ZXIuaDoKLS0tCiAuLi4vbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292
ZXJhZ2UuY3BwICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4v
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5o
IHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFnbWVudENvbnRhaW5lci5jcHAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudENvbnRhaW5lci5oICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgICAgICAgICAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgICAgICAgICAgICAgIHwgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAgICAgICAgICAg
ICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oICAg
ICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuaCAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICAgICAgICAgICAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCAgICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuaCAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwICAgICAgICAgICAgICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCAgICAgICAgICAgfCAxMCAr
KysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29s
LmggICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5oICAgICAgICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCAgfCAgNCArKy0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmggfCAgMiArLQog
Li4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xv
c2UuaCB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9w
ZXJhdG9yLmNwcCAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MT3BlcmF0b3IuaCB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuaCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAgICB8ICA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oICAgICB8ICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAg
ICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b3cuaCAgICAgIHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU2NyaXB0cy5jcHAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFNwYWNlLmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oICAgIHwgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwICB8ICA2ICsrKy0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oICAg
IHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJP
dmVyLmNwcCB8ICA2ICsrKy0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxVbmRlck92ZXIuaCAgIHwgIDIgKy0KIDUzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlv
bnMoKyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRl
eCBhNzY0ZTlkOGU4ZGMuLjhlMTUxNTA2NzA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcApAQCAtMzcwLDcgKzM3MCw3IEBAIGJvb2wgY2FuVXNlRm9yUHJlZmVycmVkV2lkdGhDb21w
dXRhdGlvbihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrQ29udGFpbmVyKQogICAgICAgICAg
ICAgYXV0byBhbGxvd0ltYWdlc1RvQnJlYWsgPSAhYmxvY2tDb250YWluZXIuZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSB8fCAhYmxvY2tDb250YWluZXIuaXNSZW5kZXJUYWJsZUNlbGwoKTsKICAg
ICAgICAgICAgIGlmICghYWxsb3dJbWFnZXNUb0JyZWFrKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICAgICAgLy8gRklYTUU6IFNlZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMgd2hlcmUgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
aXMgc2V0IHRvIDAuCisgICAgICAgICAgICAvLyBGSVhNRTogU2VlIFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyB3aGVyZSBtX21pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCBpcyBzZXQgdG8gMC4KICAgICAgICAgICAgIGF1dG8gaXNSZXBsYWNl
ZFdpdGhTcGVjaWFsSW50cmluc2ljV2lkdGggPSBbJl0gewogICAgICAgICAgICAgICAgIGlmIChh
dXRvKiByZW5kZXJSZXBsYWNlZCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4odW5z
dXBwb3J0ZWRSZW5kZXJFbGVtZW50LmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbmRlclJlcGxhY2VkLT5zdHlsZSgpLmxvZ2ljYWxNYXhXaWR0aCgpLmlzUGVyY2VudE9yQ2Fs
Y3VsYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
YmZkODVmY2E0OTlmLi5jNzMyMGYzYzVkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMjI2Niw3ICsyMjY2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBM
YXkKICAgICBtaW5Mb2dpY2FsV2lkdGggKz0gc2Nyb2xsYmFyV2lkdGg7CiB9CiAKLXZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyQmxv
Y2s6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBB
U1NFUlQobmVlZHNQcmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGFiNjgwNmZlNzczOC4uOTExOTNiZTgwMjhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtMjg0LDcgKzI4NCw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBv
dmVycmlkZTsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRp
b25zKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJz
dExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA4MTIxYTQxMjY0N2UuLjFkYjgyZWQ1YjE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTEzNjQsNyArMTM2NCw3IEBA
IExheW91dFVuaXQgUmVuZGVyQm94OjptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAog
ewogICAgIGlmIChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkgewogICAgICAg
ICBTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5TY29wZSBsYXlvdXRGb3JiaWRkZW5TY29wZSgqdGhp
cyk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMpLmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMp
LmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgfQogICAg
IHJldHVybiBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KQEAgLTEzNzMsNyArMTM3Myw3
IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjptYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25z
dAogewogICAgIGlmIChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkgewogICAg
ICAgICBTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5TY29wZSBsYXlvdXRGb3JiaWRkZW5TY29wZSgq
dGhpcyk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMpLmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRo
aXMpLmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgfQog
ICAgIHJldHVybiBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KQEAgLTQwMTksNyArNDAx
OSw3IEBAIGJvb2wgUmVuZGVyQm94OjpzaG91bGRDb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
c0Zyb21TdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZpeGVkTG9naWNhbFdpZHRoICYmIGZpeGVk
TG9naWNhbFdpZHRoLT5pc1Bvc2l0aXZlT3JaZXJvKCkgJiYgIShpc0RlcHJlY2F0ZWRGbGV4SXRl
bSgpICYmICFzdGF0aWNfY2FzdDxpbnQ+KGZpeGVkTG9naWNhbFdpZHRoLT5yZXNvbHZlWm9vbShz
dHlsZSgpLnVzZWRab29tRm9yTGVuZ3RoKCkpKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZl
cnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAppbmRleCBmOTQ5NDNhZjZkOWMuLjA5ZDM5YzE1NWU4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaApAQCAtNzY4LDcgKzc2OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhp
cyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHByZWZlcnJlZCB3
aWR0aHMgZm9yIGFuIG9iamVjdC4KICAgICAvLyBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gc2hy
aW5rLXRvLWZpdCBsYXlvdXQgc3lzdGVtcy4KICAgICAvLyBUaGVzZSBpbmNsdWRlIHRhYmxlcywg
cG9zaXRpb25lZCBvYmplY3RzLCBmbG9hdHMgYW5kIGZsZXhpYmxlIGJveGVzLgotICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogICAgIGJvb2wg
Tk9ERUxFVEUgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHNGcm9tU3R5bGUoKSBj
b25zdDsKIAogICAgIExheW91dFJlY3QgZnJhbWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmcmFtZVJlY3QoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRl
eCBlMzE0MGViNmQwZDUuLmQ0NDc4YzY4NWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTI2Niw3
ICsyNjYsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTAogICAgIGFkZFNjcm9sbGJhcldpZHRo
KCk7CiB9CiAKLXZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChu
ZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAppbmRleCA4
MmEyNGY2ZWY4YjQuLjM2YjIwNDUxNmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaApAQCAtNTEsNyArNTEsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxX
aWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENv
bnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGxheW91dFNpbmdsZUNsYW1wZWRGbGV4
SXRlbSgpOwogICAgIGJvb2wgaGFzQ2xhbXBpbmdBbmROb0ZsZXhpbmcoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAKaW5kZXggM2E2MzBjYTI0MzFkLi5mYmU0MmIyNzYxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMzAyLDcg
KzMwMiw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNvbXB1dGVJbnRyaW5zaWNM
b2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljCiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0
aCA9IG1heExvZ2ljYWxXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAg
IEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKaW5kZXgg
MGFlZTFjMTZhZjY5Li44YmI1YzdjOTg4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgs
IExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwYWludENvbnRyb2woUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXgg
NzJmYmU0MWMzMjdiLi45NDQ5MDU5ZjkxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtOTEwLDcgKzkxMCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckZsZXhpYmxl
Qm94Ojpjb21wdXRlCiAKICAgICAvLyBjb21wdXRlTG9naWNhbFdpZHRoIGFsd2F5cyByZS1jb21w
dXRlcyB0aGUgaW50cmluc2ljIHdpZHRocy4gSG93ZXZlciwgd2hlbgogICAgIC8vIG91ciBsb2dp
Y2FsIHdpZHRoIGlzIGF1dG8sIHdlIGNhbiBqdXN0IHVzZSBvdXIgY2FjaGVkIHZhbHVlLiBTbyBs
ZXQncyBkbwotICAgIC8vIHRoYXQgaGVyZS4gKENvbXBhcmUgY29kZSBpbiBSZW5kZXJCbG9jazo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpCisgICAgLy8gdGhhdCBoZXJlLiAoQ29tcGFy
ZSBjb2RlIGluIFJlbmRlckJsb2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJp
YnV0aW9ucykKICAgICBpZiAoZmxleEl0ZW0uc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8o
KSAmJiAhZmxleEl0ZW1IYXNBc3BlY3RSYXRpbyhmbGV4SXRlbSkpIHsKICAgICAgICAgaWYgKHNp
emUuaXNNaW5Db250ZW50KCkpIHsKICAgICAgICAgICAgIGlmIChmbGV4SXRlbS5zaG91bGRJbnZh
bGlkYXRlUHJlZmVycmVkV2lkdGhzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnJhZ21lbnRDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmNwcAppbmRleCA3OGY4OTM1NTI0ZjYuLjU2NWU0
Nzk1ODRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRDb250YWluZXIuY3BwCkBAIC0zODYsMTIgKzM4NiwxMiBAQCB2b2lkIFJlbmRlckZyYWdt
ZW50Q29udGFpbmVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBt
aW5Mb2dpYwogICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHsgfTsKIH0KIAotdm9pZCBSZW5kZXJGcmFn
bWVudENvbnRhaW5lcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5k
ZXJGcmFnbWVudENvbnRhaW5lcjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1
dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUo
KSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBSZW5kZXJCbG9ja0Zsb3c6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYWdtZW50Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRDb250YWluZXIuaAppbmRleCBmYWE0YzIzNTcwMDkuLjI0ZDc4ZWQzN2Q5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmgK
QEAgLTEyOSw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJPdmVyZmxvdyogb3Zl
cmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAKLSAgICB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlv
dXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0UmVj
dCBvdmVyZmxvd1JlY3RGb3JGcmFnbWVudGVkRmxvd1BvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYg
ZnJhZ21lbnRlZEZsb3dQb3J0aW9uUmVjdCwgYm9vbCBpc0ZpcnN0UG9ydGlvbiwgYm9vbCBpc0xh
c3RQb3J0aW9uKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAppbmRleCA0YzZhNjcwZGVlZDYuLmMzMjVjMmNkOWE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgUmVu
ZGVyTGlzdEJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWlu
TG9naWNhbFdpZHRoLCBMCiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IG1heExvZ2ljYWxXaWR0
aDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCit2b2lkIFJlbmRlckxpc3RCb3g6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKCkKIHsKICAgICAvLyBOZXN0ZWQgc3R5bGUgcmVjYWwgZG8gbm90IGZpcmUgcG9z
dCByZWNhbCBjYWxsYmFja3MuIHNlZSB3ZWJraXQub3JnL2IvMTUzNzY3CiAgICAgQVNTRVJUKCFt
X29wdGlvbnNDaGFuZ2VkIHx8IFN0eWxlOjpwb3N0UmVzb2x1dGlvbkNhbGxiYWNrc0FyZVN1c3Bl
bmRlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDE5
OGQ1NDQwNWVmYS4uNDYzNmJhMTM4MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3R5bGVE
aWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpIG92ZXJyaWRlOwogICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlTG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRv
cCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKaW5kZXggNDE3MjAyYTM4ZjFm
Li5hNTE3NGMyMmRkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmNwcApAQCAtMjk1LDEzICsyOTUsMTMgQEAgdm9pZCBSZW5kZXJMaXN0SXRlbTo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG8KICAg
ICAgICAgdXNlZENvdW50ZXJEaXJlY3RpdmVzQ2hhbmdlZCgpOwogfQogCi12b2lkIFJlbmRlckxp
c3RJdGVtOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckxpc3RJ
dGVtOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAg
Ly8gRklYTUU6IFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUlubGluZU1hcmdpbnMoKSBtdXRhdGVz
IG1hcmdpbiBzdHlsZSB3aGljaCBhZmZlY3RzIHByZWZlcnJlZCB3aWR0aHMuCiAgICAgaWYgKG1f
bWFya2VyICYmIG1fbWFya2VyLT5uZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkK
ICAgICAgICAgbV9tYXJrZXItPnVwZGF0ZUlubGluZU1hcmdpbnNBbmRDb250ZW50KCk7CiAKLSAg
ICBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAg
UmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpOwogfQogCiB2b2lkIFJlbmRlckxpc3RJdGVtOjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCA0MGMwNDVhZTA5YzAuLjdhNmI2Y2M1NTZiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgZmluYWw7CiAKLSAgICB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVWYWx1
ZU5vdygpIGNvbnN0OwogICAgIHZvaWQgdXNlZENvdW50ZXJEaXJlY3RpdmVzQ2hhbmdlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDRk
MDRiY2I2NGIzMS4uNTM5OThiNGU3OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC00MzYsNyArNDM2LDcgQEAgdm9pZCBSZW5kZXJMaXN0
TWFya2VyOjp1cGRhdGVDb250ZW50KCkKICAgICApOwogfQogCi12b2lkIFJlbmRlckxpc3RNYXJr
ZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTGlzdE1hcmtl
cjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFT
U0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAgICAgdXBkYXRlQ29u
dGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5k
ZXggOTY4ZjhjMGRiNTk1Li45ZjVhMmRmZWFmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIHJl
bmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyTGlzdE1hcmtlciJfczsgfQot
ICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAgICB2b2lk
IGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7CiAgICAg
Ym9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAgICB2
b2lkIGxheW91dCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKaW5kZXggZmVkZDk1NzRiYTViLi40MjU2MWIyNzkzYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTY4LDEwICsxNjgsMTAgQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0
VW5pdCYgbWluTG9naWNhbFdpZHRoLAogICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBtYXhMb2dp
Y2FsV2lkdGg7CiB9CiAKLXZvaWQgUmVuZGVyTWVudUxpc3Q6OmNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBpZiAoc3R5bGUoKS5maWVsZFNpemluZygpID09
IEZpZWxkU2l6aW5nOjpDb250ZW50KSB7Ci0gICAgICAgIFJlbmRlckZsZXhpYmxlQm94Ojpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgICAgICBSZW5kZXJGbGV4aWJsZUJveDo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApp
bmRleCA4MzVlYTdlZDQ2MzguLjQ3YWZjYTk1NDI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBBU0NJ
SUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNZW51
TGlzdCJfczsgfQogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlv
dXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92
ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlv
bnMoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDAzY2M4YzhjOTMwZS4uYmIx
YTc1Nzc3NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgYm9vbCBjYW5EZXJpdmVQcmVmZXJyZWRXaWR0
aEZyb21Bc3BlY3RSYXRpbyhjb25zdCBSZW5kZXJSZXBsYWNlZCYgcmVwbGFjZQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKQordm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxX
aWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmgKaW5kZXggMDNkNGViMzI1OWZhLi5lNWU5OGQ0NGJlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAg
ICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKSB7IH0KIAogICAgIFJlcGFpbnRSZWN0cyBsb2NhbFJlY3RzRm9yUmVwYWludChSZXBh
aW50T3V0bGluZUJvdW5kcykgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGljYS5jcHAKaW5kZXggMGY2MmYzZDIzMDRkLi5kY2QxZDAwNmQ0NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKQEAgLTYwLDcgKzYw
LDcgQEAgdm9pZCBSZW5kZXJSZXBsaWNhOjpsYXlvdXQoKQogICAgIGNsZWFyTmVlZHNMYXlvdXQo
KTsKIH0KIAotdm9pZCBSZW5kZXJSZXBsaWNhOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCit2b2lkIFJlbmRlclJlcGxpY2E6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKCkKIHsKICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHBhcmVudEJv
eCgpLT53aWR0aCgpOwogICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGljYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2Eu
aAppbmRleCAxMDM3MGQxNDRhN2YuLmZiNzIwNTFkNDkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGljYS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRl
OworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBv
dmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVu
aXQmLCBMYXlvdXRVbml0JikgY29uc3Qgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCBl
ODQ0N2MxMDYyZTQuLjY2ZTZjMzk5MzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGEK
ICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gbWF4TG9naWNhbFdpZHRoOwogfQogCi12b2lkIFJl
bmRlclNsaWRlcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJT
bGlkZXI6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAg
ICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgbV9tYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4
IGJiYmE1ZDcxMmFkNC4uYjVhOWJlMmM5ODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFs
IHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU2xpZGVyIl9zOyB9
CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1p
bkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBpc0ZsZXhpYmxlQm94SW1wbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApp
bmRleCBlYTFhNDc1M2Q1NjMuLmFkY2NjOGZiOGU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCB2b2lkIFJlbmRlclRhYmxl
Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5
b3V0VW5pdAogICAgIC8vIEZJWE1FOiBSZXN0cnVjdHVyZSB0aGUgdGFibGUgbGF5b3V0IGNvZGUg
c28gdGhhdCB3ZSBjYW4gbWFrZSB0aGlzIG1ldGhvZCBjb25zdC4KICAgICBjb25zdF9jYXN0PFJl
bmRlclRhYmxlKj4odGhpcyktPm1fdGFibGVMYXlvdXQtPmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhzKG1pbldpZHRoLCBtYXhXaWR0aCwgaW50cmluc2ljcyk7CiAKLSAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGluY2x1ZGUgY2FwdGlvbnMgd2lkdGhzIGhlcmUgbGlrZSB3ZSBkbyBpbiBjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocy4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGluY2x1
ZGUgY2FwdGlvbnMgd2lkdGhzIGhlcmUgbGlrZSB3ZSBkbyBpbiBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRoQ29udHJpYnV0aW9ucy4KIH0KIAogdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUlu
dHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluV2lkdGgsIExheW91dFVuaXQmIG1h
eFdpZHRoKSBjb25zdApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29t
cHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBM
YXkKICAgICBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhtaW5XaWR0aCwgbWF4V2lkdGgs
IFRhYmxlSW50cmluc2ljczo6Rm9yS2V5d29yZCk7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyVGFibGU6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCkBAIC0xMDY0LDcgKzEwNjQsNyBAQCB2
b2lkIFJlbmRlclRhYmxlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAg
IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gc3RkOjptYXgobV9tYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGgsIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIGJlIGFkZGluZyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoIGhl
cmUsIGJ1dCBtX3RhYmxlTGF5b3V0LT5jb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyBhbHJl
YWR5IGRvZXMsCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhZGRpbmcgYm9yZGVyQW5kUGFk
ZGluZ0xvZ2ljYWxXaWR0aCBoZXJlLCBidXQgbV90YWJsZUxheW91dC0+Y29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMgYWxyZWFkeSBkb2VzLAogICAgIC8vIHNvIGEgYnVu
Y2ggb2YgdGVzdHMgYnJlYWsgZG9pbmcgdGhpcyBuYWl2ZWx5LgogICAgIGNsZWFyTmVlZHNQcmVm
ZXJyZWRXaWR0aHNVcGRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
aAppbmRleCA1MjgyMjRiNDYzMzMuLmEyZTBhYTU4OTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmgKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5
b3V0VW5pdCYgbWF4V2lkdGgsIFRhYmxlSW50cmluc2ljcykgY29uc3Q7CiAgICAgdm9pZCBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5b3V0VW5p
dCYgbWF4V2lkdGgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0tleXdv
cmRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhXaWR0
aCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1
dGlvbnMoKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0
aW9uKSBvdmVycmlkZTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggZTgyOWExZWM2NDkzLi5iN2RhNDYxY2YxNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0yMjgsMTEg
KzIyOCwxMSBAQCBTdHlsZTo6UHJlZmVycmVkU2l6ZSBSZW5kZXJUYWJsZUNlbGw6OmxvZ2ljYWxX
aWR0aEZyb21Db2x1bW5zKFJlbmRlclRhYmxlQ29sKiBmaQogICAgIHJldHVybiBTdHlsZTo6UHJl
ZmVycmVkU2l6ZTo6Rml4ZWQgeyBjb2xXaWR0aFN1bSB9OwogfQogCi12b2lkIFJlbmRlclRhYmxl
Q2VsbDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJUYWJsZUNl
bGw6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKLSAgICAv
LyBUaGUgY2hpbGQgY2VsbHMgcmVseSBvbiB0aGUgZ3JpZHMgdXAgaW4gdGhlIHNlY3Rpb25zIHRv
IGRvIHRoZWlyIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHdvcmsuICBOb3JtYWxseSB0
aGUgc2VjdGlvbnMgYXJlIHNldCB1cCBlYXJseSwgYXMgdGFibGUKLSAgICAvLyBjZWxscyBhcmUg
YWRkZWQsIGJ1dCByZWxheW91dCBjYW4gY2F1c2UgdGhlIGNlbGxzIHRvIGJlIGZyZWVkLCBsZWF2
aW5nIHN0YWxlIHBvaW50ZXJzIGluIHRoZSBzZWN0aW9ucycKLSAgICAvLyBncmlkcy4gIFdlIG11
c3QgcmVmcmVzaCB0aG9zZSBncmlkcyBiZWZvcmUgdGhlIGNoaWxkIGNlbGxzIHRyeSB0byB1c2Ug
dGhlbS4KKyAgICAvLyBUaGUgY2hpbGQgY2VsbHMgcmVseSBvbiB0aGUgZ3JpZHMgdXAgaW4gdGhl
IHNlY3Rpb25zIHRvIGRvIHRoZWlyIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmli
dXRpb25zIHdvcmsuCisgICAgLy8gTm9ybWFsbHkgdGhlIHNlY3Rpb25zIGFyZSBzZXQgdXAgZWFy
bHksIGFzIHRhYmxlIGNlbGxzIGFyZSBhZGRlZCwgYnV0IHJlbGF5b3V0IGNhbiBjYXVzZSB0aGUg
Y2VsbHMgdG8gYmUgZnJlZWQsIGxlYXZpbmcgc3RhbGUgcG9pbnRlcnMgaW4gdGhlIHNlY3Rpb25z
JyBncmlkcy4KKyAgICAvLyBXZSBtdXN0IHJlZnJlc2ggdGhvc2UgZ3JpZHMgYmVmb3JlIHRoZSBj
aGlsZCBjZWxscyB0cnkgdG8gdXNlIHRoZW0uCiAgICAgdGFibGUoKS0+cmVjYWxjU2VjdGlvbnNJ
Zk5lZWRlZCgpOwogCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgcHJlZmVycmVkIHdpZHRoIGZy
b20gY2hpbGRyZW4gdG8gYmUgYWZmZWN0ZWQgYnkgYW55CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICBh
dXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0ID0gdGhpcy0+b3ZlcnJpZGluZ0JvcmRlckJveExv
Z2ljYWxIZWlnaHQoKTsKICAgICBpZiAob3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpCiAgICAgICAg
IHNldE92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KHsgfSk7Ci0gICAgUmVuZGVyQmxv
Y2tGbG93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRlckJsb2Nr
Rmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICBp
ZiAob3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpCiAgICAgICAgIHNldE92ZXJyaWRpbmdCb3JkZXJC
b3hMb2dpY2FsSGVpZ2h0KCpvdmVycmlkaW5nTG9naWNhbEhlaWdodCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCBlMDc4NmIzMTc2NTMuLmFiYjQy
NWYzMmMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApA
QCAtMTQ0LDcgKzE0NCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlOjpEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25z
KCkgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0
aEZvckNvbnRlbnQoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDb2wuaAppbmRleCA5YjM5MDEyOGVmZDIuLjEwNzMzNzhjYzBlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKQEAgLTcwLDcgKzcwLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclRhYmxlQ29sIl9zOyB9Ci0gICAgdm9pZCBjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZvaWQgY29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYsIExheW91dFVuaXQmKSBjb25zdCBvdmVycmlk
ZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICB2b2lkIGluc2VydGVkSW50b1RyZWUo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuY3BwCmluZGV4IDA4OGVmZmZmZWQ5NS4uZGNlNTBlNWNjMGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTIwNiwxMSArMjA2LDEx
IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0CiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IG1h
eExvZ2ljYWxXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZl
cnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAgICAgaWYgKHN0eWxlKCkuZmllbGRTaXppbmco
KSA9PSBGaWVsZFNpemluZzo6Q29udGVudCkgewotICAgICAgICBSZW5kZXJCbG9ja0Zsb3c6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaAppbmRleCAwMDAxMWQ2MWMyMGMuLmJhNjEyNjYxZWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0
ZToKIAogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJlbmRlclRleHRDb250cm9sIl9zOyB9CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExv
Z2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICBib29sIGNhbkhhdmVHZW5lcmF0ZWRD
aGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBjYW5C
ZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRnJhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGcmFjdGlvbi5jcHAKaW5kZXggNDA2M2RlZjcyZTAzLi4yODIzODdjOWU5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJh
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRnJhY3Rpb24uY3BwCkBAIC0xODYsMTIgKzE4NiwxMiBAQCBNYXRoTUxGcmFjdGlvbkVsZW1l
bnQmIFJlbmRlck1hdGhNTEZyYWN0aW9uOjplbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TWF0aE1MRnJhY3Rpb25FbGVtZW50Jj4obm9kZUZvck5vbkFub255bW91cygpKTsK
IH0KIAotdm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKQordm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6Y29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2lj
YWxXaWR0aHNVcGRhdGUoKSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBSZW5k
ZXJNYXRoTUxSb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJl
bmRlck1hdGhNTFJvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCmluZGV4IDA0ZTg4NTYzNzNj
OC4uOGZhZDBjNDM5OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiUmVuZGVyTWF0aE1MRnJhY3Rpb24iX3M7IH0KIAotICAgIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dp
Y2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7CiAgICAgdm9pZCBsYXlvdXRCbG9jayhSZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMF9sdSkgZmluYWw7
CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MTWVuY2xvc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxNZW5jbG9zZS5jcHAKaW5kZXggNmI4NTU2ODU4YzdmLi5iYjE4OTAwMDMzZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVu
Y2xvc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MTWVuY2xvc2UuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgUmVuZGVyTWF0aE1MTWVuY2xvc2U6
OlNwYWNlQXJvdW5kQ29udGVudCBSZW5kZXJNYXRoTUxNZW5jbG9zZTo6c3BhY2VBcm91bmRDb250
ZW4KICAgICByZXR1cm4gc3BhY2U7CiB9CiAKLXZvaWQgUmVuZGVyTWF0aE1MTWVuY2xvc2U6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MTWVuY2xvc2U6
OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NF
UlQobmVlZHNQcmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmgKaW5k
ZXggMThjYjdlMGM0YzI1Li5kY2U1YzZjOTBhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xvc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlJlbmRlck1hdGhNTE1lbmNsb3NlIl9zOyB9Ci0gICAgdm9p
ZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFsOworICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIGxh
eW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQg
PSAwX2x1KSBmaW5hbDsKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKaW5kZXggY2E1YTdkMjY2MzNlLi42NjU1NmI4
ZjJmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0xOTcsMTUgKzE5NywxNSBAQCB2b2lkIFJlbmRl
ck1hdGhNTE9wZXJhdG9yOjpyZXNldFN0cmV0Y2hTaXplKCkKICAgICAgICAgbV9zdHJldGNoV2lk
dGggPSAwOwogfQogCi12b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVy
cmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsKIAogICAgIExheW91dFVuaXQgcHJlZmVycmVkV2lk
dGg7CiAKICAgICBpZiAoIXVzZU1hdGhPcGVyYXRvcigpKSB7Ci0gICAgICAgIC8vIE5vIG5lZWQg
dG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlci9tYXJnaW4gaGVyZSwgUmVuZGVyTWF0aE1MVG9rZW46
OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHRha2VzIGNhcmUgb2YgdGhlbS4KLSAgICAg
ICAgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7Cisg
ICAgICAgIC8vIE5vIG5lZWQgdG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlci9tYXJnaW4gaGVyZSwg
UmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRp
b25zIHRha2VzIGNhcmUgb2YgdGhlbS4KKyAgICAgICAgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgICAgIHByZWZlcnJl
ZFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAgICAgICAgIGlmIChpc0ludmlz
aWJsZU9wZXJhdG9yKCkpIHsKICAgICAgICAgICAgIC8vIEluIHNvbWUgZm9udHMsIGdseXBocyBm
b3IgaW52aXNpYmxlIG9wZXJhdG9ycyBoYXZlIG5vbnplcm8gd2lkdGguIENvbnNlcXVlbnRseSwg
d2Ugc3VidHJhY3QgdGhhdCB3aWR0aCBoZXJlIHRvIGF2b2lkIHdpZGUgZ2Fwcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aAppbmRleCAzZGUzZThlMDEwNmEuLmVhNjc5MTc4NWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaApAQCAtNzMs
NyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBmaW5hbDsK
LSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogICAg
IHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNh
bEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwCmluZGV4IDlmNTY1ODYyMTc5ZS4uYmY5
NDg3ZWFlNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFBhZGRlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIExheW91dFVuaXQgUmVu
ZGVyTWF0aE1MUGFkZGVkOjptcGFkZGVkRGVwdGgoTGF5b3V0VW5pdCBjb250ZW50RGVwdGgpIGNv
bnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHRvVXNlclVuaXRzKGRlcHRoQXR0ciwgc3R5
bGUoKSwgMCkpOwogfQogCi12b2lkIFJlbmRlck1hdGhNTFBhZGRlZDo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJNYXRoTUxQYWRkZWQ6OmNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuaAppbmRleCAyNDA1Njg3NTI4MDQuLjZl
MTgyYTE4MmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxQYWRkZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFBhZGRlZC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVu
ZGVyTWF0aE1MUGFkZGVkIl9zOyB9CiAKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29u
dHJpYnV0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAgIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9v
dC5jcHAKaW5kZXggNDllZGQ0MTM0MzdmLi44Yzk2NDU5ZWMzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNwcApAQCAtMTU5
LDEyICsxNTksMTIgQEAgUmVuZGVyTWF0aE1MUm9vdDo6VmVydGljYWxQYXJhbWV0ZXJzIFJlbmRl
ck1hdGhNTFJvb3Q6OnZlcnRpY2FsUGFyYW1ldGVycygpIGNvbnMKICAgICByZXR1cm4gcGFyYW1l
dGVyczsKIH0KIAotdm9pZCBSZW5kZXJNYXRoTUxSb290Ojpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpCit2b2lkIFJlbmRlck1hdGhNTFJvb3Q6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzVXBkYXRlKCkpOwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgUmVuZGVy
TWF0aE1MUm93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgICAgICBSZW5k
ZXJNYXRoTUxSb3c6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmgKaW5kZXggYTllZGFlNDM0ZjY2Li40NDUwNzA0
YjZiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlOjpEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IGZpbmFsOwogCi0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFs
OworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBm
aW5hbDsKICAgICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQg
cGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKICAgICB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCmluZGV4IGUyODNkOWNj
MDM1MS4uZGNlNGQ1MGJkNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJNYXRoTUxSb3c6OnByZWZlcnJlZExvZ2ljYWxXaWR0aE9mUm93SXRlbXMoKQogICAg
IHJldHVybiBwcmVmZXJyZWRXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJNYXRoTUxSb3c6OmNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MUm93Ojpjb21wdXRl
SW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRz
UHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmgKaW5kZXggNWRjNDYyMWVhYWQwLi44
M2E2OTQ3M2M0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb3cuaApAQCAtNTAsNyArNTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBn
ZXRDb250ZW50Qm91bmRpbmdCb3goTGF5b3V0VW5pdCYgd2lkdGgsIExheW91dFVuaXQmIGFzY2Vu
dCwgTGF5b3V0VW5pdCYgZGVzY2VudCkgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXRSb3dJdGVtcyhM
YXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGFzY2VudCk7CiAgICAgTGF5b3V0VW5pdCBwcmVm
ZXJyZWRMb2dpY2FsV2lkdGhPZlJvd0l0ZW1zKCk7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBBU0NJSUxp
dGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNYXRoTUxS
b3ciX3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MU2NyaXB0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFNjcmlwdHMuY3BwCmluZGV4IDFmNGQ1NTk5OTNhNy4uYmNlMWI2OTM2NWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNj
cmlwdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU2NyaXB0cy5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCBMYXlvdXRVbml0IFJlbmRlck1hdGhN
TFNjcmlwdHM6Oml0YWxpY0NvcnJlY3Rpb24oY29uc3QgUmVmZXJlbmNlQ2hpbGRyZW4mIHJlZmVy
ZQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlck1hdGhNTFNjcmlwdHM6OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVk
c1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2
b2lkIFJlbmRlck1hdGhNTFNjcmlwdHM6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkK
IAogICAgIGF1dG8gcG9zc2libGVSZWZlcmVuY2UgPSB2YWxpZGF0ZUFuZEdldFJlZmVyZW5jZUNo
aWxkcmVuKCk7CiAgICAgaWYgKCFwb3NzaWJsZVJlZmVyZW5jZSkgewotICAgICAgICBSZW5kZXJN
YXRoTUxSb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRl
ck1hdGhNTFJvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvJiByZWZlcmVuY2UgPSBwb3NzaWJsZVJl
ZmVyZW5jZS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaAppbmRleCA5ODU3N2M5NDNkNWQuLjBjZTFkNDRiZGZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxTY3JpcHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNS
ZW5kZXJNYXRoTUxTY3JpcHRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRl
ck1hdGhNTFNjcmlwdHMiX3M7IH0KICAgICBNYXRoTUxTY3JpcHRzRWxlbWVudDo6U2NyaXB0VHlw
ZSBOT0RFTEVURSBzY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGxheW91dEJsb2NrKFJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5jcHAKaW5kZXggZDA4MzMyNGRjYmYzLi42ZDdkZjc1ZjQ1
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MU3BhY2UuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE1hdGhNTFNwYWNlRWxlbWVudCYgUmVu
ZGVyTWF0aE1MU3BhY2U6OmVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxN
YXRoTUxTcGFjZUVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkpOwogfQogCi12b2lkIFJl
bmRlck1hdGhNTFNwYWNlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJl
bmRlck1hdGhNTFNwYWNlOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxT
cGFjZS5oCmluZGV4IGVjMWI1MzFjN2YwMi4uMzdhNjY1NmM1MWIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNwYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyTWF0aE1MU3BhY2UiX3M7IH0KICAgICBib29s
IGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAg
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFRva2VuLmNwcAppbmRleCBjYTE5NjdmMWNkNTguLjYwNDNjZjFmNDMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5j
cHAKQEAgLTc2LDEyICs3NiwxMiBAQCB2b2lkIFJlbmRlck1hdGhNTFRva2VuOjp1cGRhdGVUb2tl
bkNvbnRlbnQoKQogICAgIHNldE1hdGhWYXJpYW50R2x5cGhEaXJ0eSgpOwogfQogCi12b2lkIFJl
bmRlck1hdGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJl
bmRlck1hdGhNTFRva2VuOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsK
IAogICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuY29yZU1hdGhNTERlcHJlY2F0ZUxlZ2Fj
eU1hdGh2YXJpYW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJNYXRoTUxCbG9jazo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlck1hdGhNTEJs
b2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogCiAgICAg
aWYgKG1fbWF0aFZhcmlhbnRHbHlwaERpcnR5KQogICAgICAgICB1cGRhdGVNYXRoVmFyaWFudEds
eXBoKCk7CkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlbmRlck1h
dGhNTEJsb2NrOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRlck1h
dGhNTEJsb2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwog
fQogCiB2b2lkIFJlbmRlck1hdGhNTFRva2VuOjp1cGRhdGVNYXRoVmFyaWFudEdseXBoKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9r
ZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4u
aAppbmRleCAzYWQwOGJmNGE2YmUuLjlkMzc0ZDcwYjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uaApAQCAtNTMsNyArNTMs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENoaWxkcmVuKFBhaW50SW5mbyYgZm9yU2Vs
ZiwgY29uc3QgTGF5b3V0UG9pbnQmLCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVByaW50
UmVjdCkgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVC
YXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1JlbmRlck1hdGhNTFRva2VuKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCmluZGV4IDUzNDEyMmU2ZWVhMy4uNGI5
ZTc0M2NmNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFVuZGVyT3Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCkBAIC0xODUsMTcgKzE4NSwxNyBAQCBSZW5k
ZXJCb3gmIFJlbmRlck1hdGhNTFVuZGVyT3Zlcjo6b3ZlcigpIGNvbnN0CiB9CiAKIAotdm9pZCBS
ZW5kZXJNYXRoTUxVbmRlck92ZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3Zv
aWQgUmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29u
dHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1Vw
ZGF0ZSgpKTsKIAogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIFJlbmRlck1hdGhNTFJv
dzo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKKyAgICAgICAgUmVuZGVyTWF0aE1M
Um93Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHNob3VsZE1vdmVMaW1pdHMoKSkgewotICAgICAg
ICBSZW5kZXJNYXRoTUxTY3JpcHRzOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwor
ICAgICAgICBSZW5kZXJNYXRoTUxTY3JpcHRzOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRo
Q29udHJpYnV0aW9ucygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaApp
bmRleCBlMjk5Y2VmMmFiYWEuLjQxZTBlNGIwZjlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiUmVuZGVyTWF0aE1MVW5kZXJPdmVyIl9zOyB9CiAgICAgTWF0aE1MVW5k
ZXJPdmVyRWxlbWVudCYgTk9ERUxFVEUgZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFsOworICAgIHZvaWQgY29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIGxheW91dEJs
b2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1
KSBmaW5hbDsKIAogICAgIHZvaWQgc3RyZXRjaEhvcml6b250YWxPcGVyYXRvcnNBbmRMYXlvdXRD
aGlsZHJlbigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479864</attachid>
            <date>2026-05-28 05:19:19 -0700</date>
            <delta_ts>2026-05-28 06:47:56 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-315671-20260528051918.patch</filename>
            <type>text/plain</type>
            <size>52565</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhOWRiMDcyYTJiMGQ3ZmRkNjIxMjg2YTdiNTFlYTg5ODU4ZTgwZTk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjcgTWF5IDIwMjYgMTA6MDE6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gUmVuYW1lIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHRvCiBjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMxNTY3MQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKUmV2
aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyBw
b3B1bGF0ZXMgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggYW5kIG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoLgpUaGVzZSB2YWx1ZXMgYXJlIHRoZSBib3gncyBtaW4tY29udGVudCAvIG1heC1j
b250ZW50IGNvbnRyaWJ1dGlvbiB0byBpdHMgY29udGFpbmluZyBibG9jawoocGVyIGNzcy1zaXpp
bmctMyDCpzQuMyBsaW5lIDMyMy0zMzA6ICJUaGUgc2l6ZSB0aGF0IGEgYm94IGNvbnRyaWJ1dGVz
IHRvIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgbWluLWNvbnRlbnQgc2l6ZSIsIGFuZCBsaWtld2lz
ZSBmb3IgbWF4LWNvbnRlbnQpLgpUaGV5IGFyZSBub3QgInByZWZlcnJlZCIgc2l6ZXMgaW4gdGhl
IHNwZWMgc2Vuc2UuCgpUaGUgY2FjaGVkIG1lbWJlcnMsIGdldHRlcnMsIGFuZCBkaXJ0eS1mbGFn
IHN0aWxsIHVzZSB0aGUKIlByZWZlcnJlZCIgbmFtaW5nIGZvciBub3cgKG1fbWluUHJlZmVycmVk
TG9naWNhbFdpZHRoLAptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwgbmVlZHNQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzVXBkYXRlKCksCmV0Yy4pLgoKVGhlIHVucmVsYXRlZCBvdmVybG9hZGVkIFJl
bmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzCnRoYXQgdGFrZXMgKGZsb2F0
IGxlYWRXaWR0aCwgLi4uKSBpcyBhIGRpZmZlcmVudCBmYW1pbHkgb2YgZnVuY3Rpb25zCm9uIFJl
bmRlclRleHQgZm9yIHRleHQtc2hhcGluZyB3aWR0aCBjb21wdXRhdGlvbiwgYW5kIGlzIG5vdCBy
ZW5hbWVkIGhlcmUuCgpObyBiZWhhdmlvciBjaGFuZ2UuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDoKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpjYW5Vc2VGb3JQcmVmZXJyZWRXaWR0aENvbXB1dGF0aW9uKToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6Om1pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6Om1heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6Y29tcHV0ZUlu
dHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc0V4dGVudEZvckZsZXhJdGVtKToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRDb250YWluZXIuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyRnJhZ21lbnRDb250YWluZXI6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhD
b250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckZyYWdtZW50Q29udGFpbmVyOjpjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlckxpc3RN
YXJrZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
TWVudUxpc3Q6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRl
clJlcGxhY2VkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVwbGljYTo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
UmVwbGljYTo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlclNsaWRl
cjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNvbXB1dGVJbnRyaW5zaWNM
b2dpY2FsV2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6Y29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRoQ29udHJpYnV0aW9ucyk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6Y29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MRnJh
Y3Rpb246OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNv
cmU6OlJlbmRlck1hdGhNTEZyYWN0aW9uOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
cmFjdGlvbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
TWVuY2xvc2UuY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MTWVuY2xvc2U6OmNvbXB1dGVJbnRy
aW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTE1l
bmNsb3NlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhD
b250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUGFkZGVkLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFBh
ZGRlZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29y
ZTo6UmVuZGVyTWF0aE1MUGFkZGVkOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRk
ZWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvb3Qu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MUm9vdDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFJvdzo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVy
TWF0aE1MUm93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRy
aWJ1dGlvbnMpOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MU3BhY2U6OmNv
bXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRl
ck1hdGhNTFNwYWNlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKToKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxUb2tlbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1hdGhNTFVuZGVyT3Zl
cjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMpOgooV2ViQ29yZTo6
UmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRl
ck92ZXIuaDoKLS0tCiAuLi4vbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292
ZXJhZ2UuY3BwICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4v
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5o
IHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFnbWVudENvbnRhaW5lci5jcHAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudENvbnRhaW5lci5oICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgICAgICAgICAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgICAgICAgICAgICAgIHwgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAgICAgICAgICAg
ICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oICAg
ICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuaCAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggICAgICAgICAgICAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCAgICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuaCAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwICAgICAgICAgICAgICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCAgICAgICAgICAgfCAxMCAr
KysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29s
LmggICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5oICAgICAgICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCAgfCAgNCArKy0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmggfCAgMiArLQog
Li4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xv
c2UuaCB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9w
ZXJhdG9yLmNwcCAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MT3BlcmF0b3IuaCB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5jcHAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuaCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAgICB8ICA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oICAgICB8ICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAg
ICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b3cuaCAgICAgIHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU2NyaXB0cy5jcHAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFNwYWNlLmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oICAgIHwgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwICB8ICA2ICsrKy0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oICAg
IHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJP
dmVyLmNwcCB8ICA2ICsrKy0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxVbmRlck92ZXIuaCAgIHwgIDIgKy0KIDUzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlv
bnMoKyksIDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRl
eCA0NWRhZjFmOGY1MjMuLjQwMTBmOGY0YTAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcApAQCAtMzcxLDcgKzM3MSw3IEBAIGJvb2wgY2FuVXNlRm9yUHJlZmVycmVkV2lkdGhDb21w
dXRhdGlvbihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrQ29udGFpbmVyKQogICAgICAgICAg
ICAgYXV0byBhbGxvd0ltYWdlc1RvQnJlYWsgPSAhYmxvY2tDb250YWluZXIuZG9jdW1lbnQoKS5p
blF1aXJrc01vZGUoKSB8fCAhYmxvY2tDb250YWluZXIuaXNSZW5kZXJUYWJsZUNlbGwoKTsKICAg
ICAgICAgICAgIGlmICghYWxsb3dJbWFnZXNUb0JyZWFrKQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICAgICAgLy8gRklYTUU6IFNlZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMgd2hlcmUgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
aXMgc2V0IHRvIDAuCisgICAgICAgICAgICAvLyBGSVhNRTogU2VlIFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucyB3aGVyZSBtX21pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCBpcyBzZXQgdG8gMC4KICAgICAgICAgICAgIGF1dG8gaXNSZXBsYWNl
ZFdpdGhTcGVjaWFsSW50cmluc2ljV2lkdGggPSBbJl0gewogICAgICAgICAgICAgICAgIGlmIChh
dXRvKiByZW5kZXJSZXBsYWNlZCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4odW5z
dXBwb3J0ZWRSZW5kZXJFbGVtZW50LmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlbmRlclJlcGxhY2VkLT5zdHlsZSgpLmxvZ2ljYWxNYXhXaWR0aCgpLmlzUGVyY2VudE9yQ2Fs
Y3VsYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
N2YwNzIxMmMyZDk3Li41MWIxYmQxZDNhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMjI2Niw3ICsyMjY2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBM
YXkKICAgICBtaW5Mb2dpY2FsV2lkdGggKz0gc2Nyb2xsYmFyV2lkdGg7CiB9CiAKLXZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyQmxv
Y2s6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBB
U1NFUlQobmVlZHNQcmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGFiNjgwNmZlNzczOC4uOTExOTNiZTgwMjhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtMjg0LDcgKzI4NCw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBv
dmVycmlkZTsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRp
b25zKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJz
dExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA3YmRmZTUxYWI4MWYuLjdmOGJjNmZhZjY2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTEzNjQsNyArMTM2NCw3IEBA
IExheW91dFVuaXQgUmVuZGVyQm94OjptaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAog
ewogICAgIGlmIChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkgewogICAgICAg
ICBTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5TY29wZSBsYXlvdXRGb3JiaWRkZW5TY29wZSgqdGhp
cyk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMpLmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMp
LmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgfQogICAg
IHJldHVybiBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KQEAgLTEzNzMsNyArMTM3Myw3
IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjptYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25z
dAogewogICAgIGlmIChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkgewogICAg
ICAgICBTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5TY29wZSBsYXlvdXRGb3JiaWRkZW5TY29wZSgq
dGhpcyk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRoaXMpLmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyQm94Jj4oKnRo
aXMpLmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgfQog
ICAgIHJldHVybiBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIH0KQEAgLTQwMTcsNyArNDAx
Nyw3IEBAIGJvb2wgUmVuZGVyQm94OjpzaG91bGRDb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
c0Zyb21TdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZpeGVkTG9naWNhbFdpZHRoICYmIGZpeGVk
TG9naWNhbFdpZHRoLT5pc1Bvc2l0aXZlT3JaZXJvKCkgJiYgIShpc0RlcHJlY2F0ZWRGbGV4SXRl
bSgpICYmICFzdGF0aWNfY2FzdDxpbnQ+KGZpeGVkTG9naWNhbFdpZHRoLT5yZXNvbHZlWm9vbShz
dHlsZSgpLnVzZWRab29tRm9yTGVuZ3RoKCkpKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZl
cnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAppbmRleCBmOTQ5NDNhZjZkOWMuLjA5ZDM5YzE1NWU4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaApAQCAtNzY4LDcgKzc2OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhp
cyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHByZWZlcnJlZCB3
aWR0aHMgZm9yIGFuIG9iamVjdC4KICAgICAvLyBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gc2hy
aW5rLXRvLWZpdCBsYXlvdXQgc3lzdGVtcy4KICAgICAvLyBUaGVzZSBpbmNsdWRlIHRhYmxlcywg
cG9zaXRpb25lZCBvYmplY3RzLCBmbG9hdHMgYW5kIGZsZXhpYmxlIGJveGVzLgotICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogICAgIGJvb2wg
Tk9ERUxFVEUgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHNGcm9tU3R5bGUoKSBj
b25zdDsKIAogICAgIExheW91dFJlY3QgZnJhbWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmcmFtZVJlY3QoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRl
eCA2Y2JkNDRkOGQzNzIuLjA1MmNhYzkxNTUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTI2Niw3
ICsyNjYsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTAogICAgIGFkZFNjcm9sbGJhcldpZHRo
KCk7CiB9CiAKLXZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29t
cHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChu
ZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAppbmRleCA4
MmEyNGY2ZWY4YjQuLjM2YjIwNDUxNmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaApAQCAtNTEsNyArNTEsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxX
aWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENv
bnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGxheW91dFNpbmdsZUNsYW1wZWRGbGV4
SXRlbSgpOwogICAgIGJvb2wgaGFzQ2xhbXBpbmdBbmROb0ZsZXhpbmcoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAKaW5kZXggM2E2MzBjYTI0MzFkLi5mYmU0MmIyNzYxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMzAyLDcg
KzMwMiw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNvbXB1dGVJbnRyaW5zaWNM
b2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljCiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0
aCA9IG1heExvZ2ljYWxXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAg
IEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKaW5kZXgg
MGFlZTFjMTZhZjY5Li44YmI1YzdjOTg4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgs
IExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwYWludENvbnRyb2woUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXgg
NzJmYmU0MWMzMjdiLi45NDQ5MDU5ZjkxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtOTEwLDcgKzkxMCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFNpemVUeXBlPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckZsZXhpYmxl
Qm94Ojpjb21wdXRlCiAKICAgICAvLyBjb21wdXRlTG9naWNhbFdpZHRoIGFsd2F5cyByZS1jb21w
dXRlcyB0aGUgaW50cmluc2ljIHdpZHRocy4gSG93ZXZlciwgd2hlbgogICAgIC8vIG91ciBsb2dp
Y2FsIHdpZHRoIGlzIGF1dG8sIHdlIGNhbiBqdXN0IHVzZSBvdXIgY2FjaGVkIHZhbHVlLiBTbyBs
ZXQncyBkbwotICAgIC8vIHRoYXQgaGVyZS4gKENvbXBhcmUgY29kZSBpbiBSZW5kZXJCbG9jazo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpCisgICAgLy8gdGhhdCBoZXJlLiAoQ29tcGFy
ZSBjb2RlIGluIFJlbmRlckJsb2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJp
YnV0aW9ucykKICAgICBpZiAoZmxleEl0ZW0uc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8o
KSAmJiAhZmxleEl0ZW1IYXNBc3BlY3RSYXRpbyhmbGV4SXRlbSkpIHsKICAgICAgICAgaWYgKHNp
emUuaXNNaW5Db250ZW50KCkpIHsKICAgICAgICAgICAgIGlmIChmbGV4SXRlbS5zaG91bGRJbnZh
bGlkYXRlUHJlZmVycmVkV2lkdGhzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnJhZ21lbnRDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmNwcAppbmRleCA3OGY4OTM1NTI0ZjYuLjU2NWU0
Nzk1ODRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdt
ZW50Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRDb250YWluZXIuY3BwCkBAIC0zODYsMTIgKzM4NiwxMiBAQCB2b2lkIFJlbmRlckZyYWdt
ZW50Q29udGFpbmVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBt
aW5Mb2dpYwogICAgIG1pbkxvZ2ljYWxXaWR0aCA9IHsgfTsKIH0KIAotdm9pZCBSZW5kZXJGcmFn
bWVudENvbnRhaW5lcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5k
ZXJGcmFnbWVudENvbnRhaW5lcjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1
dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUo
KSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBSZW5kZXJCbG9ja0Zsb3c6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYWdtZW50Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJh
Z21lbnRDb250YWluZXIuaAppbmRleCBmYWE0YzIzNTcwMDkuLjI0ZDc4ZWQzN2Q5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50Q29udGFpbmVyLmgK
QEAgLTEyOSw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZW5kZXJPdmVyZmxvdyogb3Zl
cmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAKLSAgICB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlv
dXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0UmVj
dCBvdmVyZmxvd1JlY3RGb3JGcmFnbWVudGVkRmxvd1BvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYg
ZnJhZ21lbnRlZEZsb3dQb3J0aW9uUmVjdCwgYm9vbCBpc0ZpcnN0UG9ydGlvbiwgYm9vbCBpc0xh
c3RQb3J0aW9uKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAppbmRleCA0YzZhNjcwZGVlZDYuLmMzMjVjMmNkOWE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgUmVu
ZGVyTGlzdEJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWlu
TG9naWNhbFdpZHRoLCBMCiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IG1heExvZ2ljYWxXaWR0
aDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCit2b2lkIFJlbmRlckxpc3RCb3g6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKCkKIHsKICAgICAvLyBOZXN0ZWQgc3R5bGUgcmVjYWwgZG8gbm90IGZpcmUgcG9z
dCByZWNhbCBjYWxsYmFja3MuIHNlZSB3ZWJraXQub3JnL2IvMTUzNzY3CiAgICAgQVNTRVJUKCFt
X29wdGlvbnNDaGFuZ2VkIHx8IFN0eWxlOjpwb3N0UmVzb2x1dGlvbkNhbGxiYWNrc0FyZVN1c3Bl
bmRlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDE5
OGQ1NDQwNWVmYS4uNDYzNmJhMTM4MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3R5bGVE
aWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpIG92ZXJyaWRlOwogICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlTG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRv
cCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKaW5kZXggNzc5ZmM1NjFhZjIx
Li44Y2IwZWFiYWNjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmNwcApAQCAtMjk1LDEzICsyOTUsMTMgQEAgdm9pZCBSZW5kZXJMaXN0SXRlbTo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG8KICAg
ICAgICAgdXNlZENvdW50ZXJEaXJlY3RpdmVzQ2hhbmdlZCgpOwogfQogCi12b2lkIFJlbmRlckxp
c3RJdGVtOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlckxpc3RJ
dGVtOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAg
Ly8gRklYTUU6IFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUlubGluZU1hcmdpbnMoKSBtdXRhdGVz
IG1hcmdpbiBzdHlsZSB3aGljaCBhZmZlY3RzIHByZWZlcnJlZCB3aWR0aHMuCiAgICAgaWYgKG1f
bWFya2VyICYmIG1fbWFya2VyLT5uZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSkK
ICAgICAgICAgbV9tYXJrZXItPnVwZGF0ZUlubGluZU1hcmdpbnNBbmRDb250ZW50KCk7CiAKLSAg
ICBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAg
UmVuZGVyQmxvY2tGbG93Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpOwogfQogCiB2b2lkIFJlbmRlckxpc3RJdGVtOjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCA0MGMwNDVhZTA5YzAuLjdhNmI2Y2M1NTZiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgZmluYWw7CiAKLSAgICB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVWYWx1
ZU5vdygpIGNvbnN0OwogICAgIHZvaWQgdXNlZENvdW50ZXJEaXJlY3RpdmVzQ2hhbmdlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDRk
MDRiY2I2NGIzMS4uNTM5OThiNGU3OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC00MzYsNyArNDM2LDcgQEAgdm9pZCBSZW5kZXJMaXN0
TWFya2VyOjp1cGRhdGVDb250ZW50KCkKICAgICApOwogfQogCi12b2lkIFJlbmRlckxpc3RNYXJr
ZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTGlzdE1hcmtl
cjo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFT
U0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAgICAgdXBkYXRlQ29u
dGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5k
ZXggOTY4ZjhjMGRiNTk1Li45ZjVhMmRmZWFmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIHJl
bmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyTGlzdE1hcmtlciJfczsgfQot
ICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAgICB2b2lk
IGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7CiAgICAg
Ym9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAgICB2
b2lkIGxheW91dCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKaW5kZXggZmVkZDk1NzRiYTViLi40MjU2MWIyNzkzYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTY4LDEwICsxNjgsMTAgQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0
VW5pdCYgbWluTG9naWNhbFdpZHRoLAogICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBtYXhMb2dp
Y2FsV2lkdGg7CiB9CiAKLXZvaWQgUmVuZGVyTWVudUxpc3Q6OmNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBpZiAoc3R5bGUoKS5maWVsZFNpemluZygpID09
IEZpZWxkU2l6aW5nOjpDb250ZW50KSB7Ci0gICAgICAgIFJlbmRlckZsZXhpYmxlQm94Ojpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgICAgICBSZW5kZXJGbGV4aWJsZUJveDo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApp
bmRleCA4MzVlYTdlZDQ2MzguLjQ3YWZjYTk1NDI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBBU0NJ
SUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNZW51
TGlzdCJfczsgfQogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlv
dXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92
ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlv
bnMoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGM2ODMyYzJmMWFhMi4uMTNh
YTc0YTk3MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgYm9vbCBjYW5EZXJpdmVQcmVmZXJyZWRXaWR0
aEZyb21Bc3BlY3RSYXRpbyhjb25zdCBSZW5kZXJSZXBsYWNlZCYgcmVwbGFjZQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKQordm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2ljYWxX
aWR0aHNVcGRhdGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmgKaW5kZXggZjA1MzgxMjNlNzBlLi4zODdlOGQ4NjNiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAg
ICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKSB7IH0KIAogICAgIFJlcGFpbnRSZWN0cyBsb2NhbFJlY3RzRm9yUmVwYWludChSZXBh
aW50T3V0bGluZUJvdW5kcykgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGljYS5jcHAKaW5kZXggMGY2MmYzZDIzMDRkLi5kY2QxZDAwNmQ0NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKQEAgLTYwLDcgKzYw
LDcgQEAgdm9pZCBSZW5kZXJSZXBsaWNhOjpsYXlvdXQoKQogICAgIGNsZWFyTmVlZHNMYXlvdXQo
KTsKIH0KIAotdm9pZCBSZW5kZXJSZXBsaWNhOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCit2b2lkIFJlbmRlclJlcGxpY2E6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250
cmlidXRpb25zKCkKIHsKICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHBhcmVudEJv
eCgpLT53aWR0aCgpOwogICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGljYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2Eu
aAppbmRleCAxMDM3MGQxNDRhN2YuLmZiNzIwNTFkNDkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGljYS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRl
OworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBv
dmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVu
aXQmLCBMYXlvdXRVbml0JikgY29uc3Qgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCBl
ODQ0N2MxMDYyZTQuLjY2ZTZjMzk5MzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGEK
ICAgICAgICAgbWluTG9naWNhbFdpZHRoID0gbWF4TG9naWNhbFdpZHRoOwogfQogCi12b2lkIFJl
bmRlclNsaWRlcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJT
bGlkZXI6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAg
ICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgbV9tYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4
IGJiYmE1ZDcxMmFkNC4uYjVhOWJlMmM5ODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFs
IHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU2xpZGVyIl9zOyB9
CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1p
bkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBpc0ZsZXhpYmxlQm94SW1wbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApp
bmRleCBlYTFhNDc1M2Q1NjMuLmFkY2NjOGZiOGU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCB2b2lkIFJlbmRlclRhYmxl
Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5
b3V0VW5pdAogICAgIC8vIEZJWE1FOiBSZXN0cnVjdHVyZSB0aGUgdGFibGUgbGF5b3V0IGNvZGUg
c28gdGhhdCB3ZSBjYW4gbWFrZSB0aGlzIG1ldGhvZCBjb25zdC4KICAgICBjb25zdF9jYXN0PFJl
bmRlclRhYmxlKj4odGhpcyktPm1fdGFibGVMYXlvdXQtPmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhzKG1pbldpZHRoLCBtYXhXaWR0aCwgaW50cmluc2ljcyk7CiAKLSAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGluY2x1ZGUgY2FwdGlvbnMgd2lkdGhzIGhlcmUgbGlrZSB3ZSBkbyBpbiBjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocy4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGluY2x1
ZGUgY2FwdGlvbnMgd2lkdGhzIGhlcmUgbGlrZSB3ZSBkbyBpbiBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRoQ29udHJpYnV0aW9ucy4KIH0KIAogdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUlu
dHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluV2lkdGgsIExheW91dFVuaXQmIG1h
eFdpZHRoKSBjb25zdApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29t
cHV0ZUludHJpbnNpY0tleXdvcmRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBM
YXkKICAgICBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhtaW5XaWR0aCwgbWF4V2lkdGgs
IFRhYmxlSW50cmluc2ljczo6Rm9yS2V5d29yZCk7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyVGFibGU6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCkBAIC0xMDY0LDcgKzEwNjQsNyBAQCB2
b2lkIFJlbmRlclRhYmxlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAg
IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gc3RkOjptYXgobV9tYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGgsIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIGJlIGFkZGluZyBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoIGhl
cmUsIGJ1dCBtX3RhYmxlTGF5b3V0LT5jb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyBhbHJl
YWR5IGRvZXMsCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhZGRpbmcgYm9yZGVyQW5kUGFk
ZGluZ0xvZ2ljYWxXaWR0aCBoZXJlLCBidXQgbV90YWJsZUxheW91dC0+Y29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMgYWxyZWFkeSBkb2VzLAogICAgIC8vIHNvIGEgYnVu
Y2ggb2YgdGVzdHMgYnJlYWsgZG9pbmcgdGhpcyBuYWl2ZWx5LgogICAgIGNsZWFyTmVlZHNQcmVm
ZXJyZWRXaWR0aHNVcGRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
aAppbmRleCA1MjgyMjRiNDYzMzMuLmEyZTBhYTU4OTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmgKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5
b3V0VW5pdCYgbWF4V2lkdGgsIFRhYmxlSW50cmluc2ljcykgY29uc3Q7CiAgICAgdm9pZCBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5b3V0VW5p
dCYgbWF4V2lkdGgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0tleXdv
cmRMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhXaWR0
aCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1
dGlvbnMoKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0
aW9uKSBvdmVycmlkZTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggZTgyOWExZWM2NDkzLi5iN2RhNDYxY2YxNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0yMjgsMTEg
KzIyOCwxMSBAQCBTdHlsZTo6UHJlZmVycmVkU2l6ZSBSZW5kZXJUYWJsZUNlbGw6OmxvZ2ljYWxX
aWR0aEZyb21Db2x1bW5zKFJlbmRlclRhYmxlQ29sKiBmaQogICAgIHJldHVybiBTdHlsZTo6UHJl
ZmVycmVkU2l6ZTo6Rml4ZWQgeyBjb2xXaWR0aFN1bSB9OwogfQogCi12b2lkIFJlbmRlclRhYmxl
Q2VsbDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJUYWJsZUNl
bGw6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKLSAgICAv
LyBUaGUgY2hpbGQgY2VsbHMgcmVseSBvbiB0aGUgZ3JpZHMgdXAgaW4gdGhlIHNlY3Rpb25zIHRv
IGRvIHRoZWlyIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHdvcmsuICBOb3JtYWxseSB0
aGUgc2VjdGlvbnMgYXJlIHNldCB1cCBlYXJseSwgYXMgdGFibGUKLSAgICAvLyBjZWxscyBhcmUg
YWRkZWQsIGJ1dCByZWxheW91dCBjYW4gY2F1c2UgdGhlIGNlbGxzIHRvIGJlIGZyZWVkLCBsZWF2
aW5nIHN0YWxlIHBvaW50ZXJzIGluIHRoZSBzZWN0aW9ucycKLSAgICAvLyBncmlkcy4gIFdlIG11
c3QgcmVmcmVzaCB0aG9zZSBncmlkcyBiZWZvcmUgdGhlIGNoaWxkIGNlbGxzIHRyeSB0byB1c2Ug
dGhlbS4KKyAgICAvLyBUaGUgY2hpbGQgY2VsbHMgcmVseSBvbiB0aGUgZ3JpZHMgdXAgaW4gdGhl
IHNlY3Rpb25zIHRvIGRvIHRoZWlyIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmli
dXRpb25zIHdvcmsuCisgICAgLy8gTm9ybWFsbHkgdGhlIHNlY3Rpb25zIGFyZSBzZXQgdXAgZWFy
bHksIGFzIHRhYmxlIGNlbGxzIGFyZSBhZGRlZCwgYnV0IHJlbGF5b3V0IGNhbiBjYXVzZSB0aGUg
Y2VsbHMgdG8gYmUgZnJlZWQsIGxlYXZpbmcgc3RhbGUgcG9pbnRlcnMgaW4gdGhlIHNlY3Rpb25z
JyBncmlkcy4KKyAgICAvLyBXZSBtdXN0IHJlZnJlc2ggdGhvc2UgZ3JpZHMgYmVmb3JlIHRoZSBj
aGlsZCBjZWxscyB0cnkgdG8gdXNlIHRoZW0uCiAgICAgdGFibGUoKS0+cmVjYWxjU2VjdGlvbnNJ
Zk5lZWRlZCgpOwogCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgcHJlZmVycmVkIHdpZHRoIGZy
b20gY2hpbGRyZW4gdG8gYmUgYWZmZWN0ZWQgYnkgYW55CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9p
ZCBSZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICBh
dXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0ID0gdGhpcy0+b3ZlcnJpZGluZ0JvcmRlckJveExv
Z2ljYWxIZWlnaHQoKTsKICAgICBpZiAob3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpCiAgICAgICAg
IHNldE92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KHsgfSk7Ci0gICAgUmVuZGVyQmxv
Y2tGbG93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRlckJsb2Nr
Rmxvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICBp
ZiAob3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpCiAgICAgICAgIHNldE92ZXJyaWRpbmdCb3JkZXJC
b3hMb2dpY2FsSGVpZ2h0KCpvdmVycmlkaW5nTG9naWNhbEhlaWdodCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCBlMDc4NmIzMTc2NTMuLmFiYjQy
NWYzMmMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApA
QCAtMTQ0LDcgKzE0NCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlOjpEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IG92ZXJyaWRlOwotICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25z
KCkgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0
aEZvckNvbnRlbnQoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDb2wuaAppbmRleCA5YjM5MDEyOGVmZDIuLjEwNzMzNzhjYzBlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKQEAgLTcwLDcgKzcwLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclRhYmxlQ29sIl9zOyB9Ci0gICAgdm9pZCBjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZvaWQgY29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYsIExheW91dFVuaXQmKSBjb25zdCBvdmVycmlk
ZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICB2b2lkIGluc2VydGVkSW50b1RyZWUo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuY3BwCmluZGV4IDA4OGVmZmZmZWQ5NS4uZGNlNTBlNWNjMGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTIwNiwxMSArMjA2LDEx
IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0CiAgICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9IG1h
eExvZ2ljYWxXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZl
cnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAgICAgaWYgKHN0eWxlKCkuZmllbGRTaXppbmco
KSA9PSBGaWVsZFNpemluZzo6Q29udGVudCkgewotICAgICAgICBSZW5kZXJCbG9ja0Zsb3c6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaAppbmRleCAwMDAxMWQ2MWMyMGMuLmJhNjEyNjYxZWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0
ZToKIAogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJlbmRlclRleHRDb250cm9sIl9zOyB9CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExv
Z2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICBib29sIGNhbkhhdmVHZW5lcmF0ZWRD
aGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBjYW5C
ZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRnJhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGcmFjdGlvbi5jcHAKaW5kZXggNDA2M2RlZjcyZTAzLi4yODIzODdjOWU5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJh
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRnJhY3Rpb24uY3BwCkBAIC0xODYsMTIgKzE4NiwxMiBAQCBNYXRoTUxGcmFjdGlvbkVsZW1l
bnQmIFJlbmRlck1hdGhNTEZyYWN0aW9uOjplbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TWF0aE1MRnJhY3Rpb25FbGVtZW50Jj4obm9kZUZvck5vbkFub255bW91cygpKTsK
IH0KIAotdm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKQordm9pZCBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6Y29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVkc1ByZWZlcnJlZExvZ2lj
YWxXaWR0aHNVcGRhdGUoKSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBSZW5k
ZXJNYXRoTUxSb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJl
bmRlck1hdGhNTFJvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCmluZGV4IDA0ZTg4NTYzNzNj
OC4uOGZhZDBjNDM5OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiUmVuZGVyTWF0aE1MRnJhY3Rpb24iX3M7IH0KIAotICAgIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dp
Y2FsV2lkdGhDb250cmlidXRpb25zKCkgZmluYWw7CiAgICAgdm9pZCBsYXlvdXRCbG9jayhSZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMF9sdSkgZmluYWw7
CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MTWVuY2xvc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxNZW5jbG9zZS5jcHAKaW5kZXggNmI4NTU2ODU4YzdmLi5iYjE4OTAwMDMzZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVu
Y2xvc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MTWVuY2xvc2UuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgUmVuZGVyTWF0aE1MTWVuY2xvc2U6
OlNwYWNlQXJvdW5kQ29udGVudCBSZW5kZXJNYXRoTUxNZW5jbG9zZTo6c3BhY2VBcm91bmRDb250
ZW4KICAgICByZXR1cm4gc3BhY2U7CiB9CiAKLXZvaWQgUmVuZGVyTWF0aE1MTWVuY2xvc2U6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MTWVuY2xvc2U6
OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NF
UlQobmVlZHNQcmVmZXJyZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmgKaW5k
ZXggMThjYjdlMGM0YzI1Li5kY2U1YzZjOTBhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xvc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNsb3NlLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlJlbmRlck1hdGhNTE1lbmNsb3NlIl9zOyB9Ci0gICAgdm9p
ZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFsOworICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIGxh
eW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQg
PSAwX2x1KSBmaW5hbDsKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKaW5kZXggY2E1YTdkMjY2MzNlLi42NjU1NmI4
ZjJmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC0xOTcsMTUgKzE5NywxNSBAQCB2b2lkIFJlbmRl
ck1hdGhNTE9wZXJhdG9yOjpyZXNldFN0cmV0Y2hTaXplKCkKICAgICAgICAgbV9zdHJldGNoV2lk
dGggPSAwOwogfQogCi12b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCit2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVy
cmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsKIAogICAgIExheW91dFVuaXQgcHJlZmVycmVkV2lk
dGg7CiAKICAgICBpZiAoIXVzZU1hdGhPcGVyYXRvcigpKSB7Ci0gICAgICAgIC8vIE5vIG5lZWQg
dG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlci9tYXJnaW4gaGVyZSwgUmVuZGVyTWF0aE1MVG9rZW46
OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHRha2VzIGNhcmUgb2YgdGhlbS4KLSAgICAg
ICAgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7Cisg
ICAgICAgIC8vIE5vIG5lZWQgdG8gaW5jbHVkZSBwYWRkaW5nL2JvcmRlci9tYXJnaW4gaGVyZSwg
UmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRp
b25zIHRha2VzIGNhcmUgb2YgdGhlbS4KKyAgICAgICAgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1
dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7CiAgICAgICAgIHByZWZlcnJl
ZFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAgICAgICAgIGlmIChpc0ludmlz
aWJsZU9wZXJhdG9yKCkpIHsKICAgICAgICAgICAgIC8vIEluIHNvbWUgZm9udHMsIGdseXBocyBm
b3IgaW52aXNpYmxlIG9wZXJhdG9ycyBoYXZlIG5vbnplcm8gd2lkdGguIENvbnNlcXVlbnRseSwg
d2Ugc3VidHJhY3QgdGhhdCB3aWR0aCBoZXJlIHRvIGF2b2lkIHdpZGUgZ2Fwcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aAppbmRleCAzZGUzZThlMDEwNmEuLmVhNjc5MTc4NWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaApAQCAtNzMs
NyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBmaW5hbDsK
LSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogICAg
IHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNh
bEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwCmluZGV4IDlmNTY1ODYyMTc5ZS4uYmY5
NDg3ZWFlNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFBhZGRlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxQYWRkZWQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIExheW91dFVuaXQgUmVu
ZGVyTWF0aE1MUGFkZGVkOjptcGFkZGVkRGVwdGgoTGF5b3V0VW5pdCBjb250ZW50RGVwdGgpIGNv
bnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4KDBfbHUsIHRvVXNlclVuaXRzKGRlcHRoQXR0ciwgc3R5
bGUoKSwgMCkpOwogfQogCi12b2lkIFJlbmRlck1hdGhNTFBhZGRlZDo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKQordm9pZCBSZW5kZXJNYXRoTUxQYWRkZWQ6OmNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzVXBkYXRlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFBhZGRlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxQYWRkZWQuaAppbmRleCAyNDA1Njg3NTI4MDQuLjZl
MTgyYTE4MmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxQYWRkZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFBhZGRlZC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVu
ZGVyTWF0aE1MUGFkZGVkIl9zOyB9CiAKLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29u
dHJpYnV0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAgIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9v
dC5jcHAKaW5kZXggNDllZGQ0MTM0MzdmLi44Yzk2NDU5ZWMzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNwcApAQCAtMTU5
LDEyICsxNTksMTIgQEAgUmVuZGVyTWF0aE1MUm9vdDo6VmVydGljYWxQYXJhbWV0ZXJzIFJlbmRl
ck1hdGhNTFJvb3Q6OnZlcnRpY2FsUGFyYW1ldGVycygpIGNvbnMKICAgICByZXR1cm4gcGFyYW1l
dGVyczsKIH0KIAotdm9pZCBSZW5kZXJNYXRoTUxSb290Ojpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpCit2b2lkIFJlbmRlck1hdGhNTFJvb3Q6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhDb250cmlidXRpb25zKCkKIHsKICAgICBBU1NFUlQobmVlZHNQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzVXBkYXRlKCkpOwogCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgUmVuZGVy
TWF0aE1MUm93Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgICAgICBSZW5k
ZXJNYXRoTUxSb3c6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmgKaW5kZXggYTllZGFlNDM0ZjY2Li40NDUwNzA0
YjZiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MUm9vdC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlOjpEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IGZpbmFsOwogCi0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFs
OworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBm
aW5hbDsKICAgICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQg
cGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKICAgICB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCmluZGV4IGUyODNkOWNj
MDM1MS4uZGNlNGQ1MGJkNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJNYXRoTUxSb3c6OnByZWZlcnJlZExvZ2ljYWxXaWR0aE9mUm93SXRlbXMoKQogICAg
IHJldHVybiBwcmVmZXJyZWRXaWR0aDsKIH0KIAotdm9pZCBSZW5kZXJNYXRoTUxSb3c6OmNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MUm93Ojpjb21wdXRl
SW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRz
UHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmgKaW5kZXggNWRjNDYyMWVhYWQwLi44
M2E2OTQ3M2M0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxSb3cuaApAQCAtNTAsNyArNTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBn
ZXRDb250ZW50Qm91bmRpbmdCb3goTGF5b3V0VW5pdCYgd2lkdGgsIExheW91dFVuaXQmIGFzY2Vu
dCwgTGF5b3V0VW5pdCYgZGVzY2VudCkgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXRSb3dJdGVtcyhM
YXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGFzY2VudCk7CiAgICAgTGF5b3V0VW5pdCBwcmVm
ZXJyZWRMb2dpY2FsV2lkdGhPZlJvd0l0ZW1zKCk7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBBU0NJSUxp
dGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNYXRoTUxS
b3ciX3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MU2NyaXB0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFNjcmlwdHMuY3BwCmluZGV4IDFmNGQ1NTk5OTNhNy4uYmNlMWI2OTM2NWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNj
cmlwdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU2NyaXB0cy5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCBMYXlvdXRVbml0IFJlbmRlck1hdGhN
TFNjcmlwdHM6Oml0YWxpY0NvcnJlY3Rpb24oY29uc3QgUmVmZXJlbmNlQ2hpbGRyZW4mIHJlZmVy
ZQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlck1hdGhNTFNjcmlwdHM6OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3ZvaWQgUmVuZGVyTWF0aE1MU2NyaXB0czo6Y29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKQogewogICAgIEFTU0VSVChuZWVk
c1ByZWZlcnJlZExvZ2ljYWxXaWR0aHNVcGRhdGUoKSk7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2
b2lkIFJlbmRlck1hdGhNTFNjcmlwdHM6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkK
IAogICAgIGF1dG8gcG9zc2libGVSZWZlcmVuY2UgPSB2YWxpZGF0ZUFuZEdldFJlZmVyZW5jZUNo
aWxkcmVuKCk7CiAgICAgaWYgKCFwb3NzaWJsZVJlZmVyZW5jZSkgewotICAgICAgICBSZW5kZXJN
YXRoTUxSb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgICAgIFJlbmRl
ck1hdGhNTFJvdzo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvJiByZWZlcmVuY2UgPSBwb3NzaWJsZVJl
ZmVyZW5jZS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaAppbmRleCA5ODU3N2M5NDNkNWQuLjBjZTFkNDRiZGZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxTY3JpcHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNS
ZW5kZXJNYXRoTUxTY3JpcHRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IEFTQ0lJTGl0ZXJhbCByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRl
ck1hdGhNTFNjcmlwdHMiX3M7IH0KICAgICBNYXRoTUxTY3JpcHRzRWxlbWVudDo6U2NyaXB0VHlw
ZSBOT0RFTEVURSBzY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGxheW91dEJsb2NrKFJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5jcHAKaW5kZXggZDA4MzMyNGRjYmYzLi42ZDdkZjc1ZjQ1
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MU3BhY2UuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE1hdGhNTFNwYWNlRWxlbWVudCYgUmVu
ZGVyTWF0aE1MU3BhY2U6OmVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxN
YXRoTUxTcGFjZUVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkpOwogfQogCi12b2lkIFJl
bmRlck1hdGhNTFNwYWNlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJl
bmRlck1hdGhNTFNwYWNlOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxT
cGFjZS5oCmluZGV4IGVjMWI1MzFjN2YwMi4uMzdhNjY1NmM1MWIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNwYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyTWF0aE1MU3BhY2UiX3M7IH0KICAgICBib29s
IGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCkgZmluYWw7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRoQ29udHJpYnV0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogICAg
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFRva2VuLmNwcAppbmRleCBjYTE5NjdmMWNkNTguLjYwNDNjZjFmNDMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5j
cHAKQEAgLTc2LDEyICs3NiwxMiBAQCB2b2lkIFJlbmRlck1hdGhNTFRva2VuOjp1cGRhdGVUb2tl
bkNvbnRlbnQoKQogICAgIHNldE1hdGhWYXJpYW50R2x5cGhEaXJ0eSgpOwogfQogCi12b2lkIFJl
bmRlck1hdGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCit2b2lkIFJl
bmRlck1hdGhNTFRva2VuOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9u
cygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1VwZGF0ZSgpKTsK
IAogICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuY29yZU1hdGhNTERlcHJlY2F0ZUxlZ2Fj
eU1hdGh2YXJpYW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJNYXRoTUxCbG9jazo6Y29tcHV0
ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlck1hdGhNTEJs
b2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogCiAgICAg
aWYgKG1fbWF0aFZhcmlhbnRHbHlwaERpcnR5KQogICAgICAgICB1cGRhdGVNYXRoVmFyaWFudEds
eXBoKCk7CkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MVG9rZW46OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlbmRlck1h
dGhNTEJsb2NrOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOworICAgIFJlbmRlck1h
dGhNTEJsb2NrOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwog
fQogCiB2b2lkIFJlbmRlck1hdGhNTFRva2VuOjp1cGRhdGVNYXRoVmFyaWFudEdseXBoKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9r
ZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4u
aAppbmRleCAzYWQwOGJmNGE2YmUuLjlkMzc0ZDcwYjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uaApAQCAtNTMsNyArNTMs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENoaWxkcmVuKFBhaW50SW5mbyYgZm9yU2Vs
ZiwgY29uc3QgTGF5b3V0UG9pbnQmLCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVByaW50
UmVjdCkgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVC
YXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhDb250cmlidXRpb25zKCkgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1JlbmRlck1hdGhNTFRva2VuKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCmluZGV4IDUzNDEyMmU2ZWVhMy4uNGI5
ZTc0M2NmNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFVuZGVyT3Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCkBAIC0xODUsMTcgKzE4NSwxNyBAQCBSZW5k
ZXJCb3gmIFJlbmRlck1hdGhNTFVuZGVyT3Zlcjo6b3ZlcigpIGNvbnN0CiB9CiAKIAotdm9pZCBS
ZW5kZXJNYXRoTUxVbmRlck92ZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKK3Zv
aWQgUmVuZGVyTWF0aE1MVW5kZXJPdmVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29u
dHJpYnV0aW9ucygpCiB7CiAgICAgQVNTRVJUKG5lZWRzUHJlZmVycmVkTG9naWNhbFdpZHRoc1Vw
ZGF0ZSgpKTsKIAogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIFJlbmRlck1hdGhNTFJv
dzo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKKyAgICAgICAgUmVuZGVyTWF0aE1M
Um93Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRoQ29udHJpYnV0aW9ucygpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHNob3VsZE1vdmVMaW1pdHMoKSkgewotICAgICAg
ICBSZW5kZXJNYXRoTUxTY3JpcHRzOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwor
ICAgICAgICBSZW5kZXJNYXRoTUxTY3JpcHRzOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRo
Q29udHJpYnV0aW9ucygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaApp
bmRleCBlMjk5Y2VmMmFiYWEuLjQxZTBlNGIwZjlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiUmVuZGVyTWF0aE1MVW5kZXJPdmVyIl9zOyB9CiAgICAgTWF0aE1MVW5k
ZXJPdmVyRWxlbWVudCYgTk9ERUxFVEUgZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIGZpbmFsOworICAgIHZvaWQgY29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aENvbnRyaWJ1dGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIGxheW91dEJs
b2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1
KSBmaW5hbDsKIAogICAgIHZvaWQgc3RyZXRjaEhvcml6b250YWxPcGVyYXRvcnNBbmRMYXlvdXRD
aGlsZHJlbigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>