<?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>295150</bug_id>
          
          <creation_ts>2025-06-28 06:02:28 -0700</creation_ts>
          <short_desc>[Cleanup] RenderLineBreak::lineHeight is unused</short_desc>
          <delta_ts>2025-07-16 05:20:19 -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>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2126495</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-06-28 06:02:28 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126496</commentid>
    <comment_count>1</comment_count>
      <attachid>475691</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-28 06:03:46 -0700</bug_when>
    <thetext>Created attachment 475691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127371</commentid>
    <comment_count>2</comment_count>
      <attachid>475757</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-02 13:18:34 -0700</bug_when>
    <thetext>Created attachment 475757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127965</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-05 06:03:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/155099293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130311</commentid>
    <comment_count>4</comment_count>
      <attachid>476030</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-15 16:06:17 -0700</bug_when>
    <thetext>Created attachment 476030
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130484</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-16 05:10:16 -0700</bug_when>
    <thetext>Commit message contains (OOPS!) and no valid reviewer found, blocking PR #None. Details: [Build #2490](https://ews-build.webkit.org/#/builders/27/builds/2490)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130485</commentid>
    <comment_count>6</comment_count>
      <attachid>476043</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-16 05:14:59 -0700</bug_when>
    <thetext>Created attachment 476043
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130487</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-16 05:20:17 -0700</bug_when>
    <thetext>Committed 297463@main (29bdcdc0e586): &lt;https://commits.webkit.org/297463@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476043.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475691</attachid>
            <date>2025-06-28 06:03:46 -0700</date>
            <delta_ts>2025-07-15 16:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295150-20250628060345.patch</filename>
            <type>text/plain</type>
            <size>1152</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhNjM3NTkyMjMwNTRiYTg4YmNjM2FmNTcxYjFkYzI4Y2YzYTVkMTg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDY6MDI6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGlzIHVudXNlZAogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTE1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBtb3ZpbmcgbGluZUhlaWdodCBmcm9tIFJl
bmRlckJveE1vZGVsT2JqZWN0IHRvIFJlbmRlckJveCAoZHJvcHBpbmcgYm90aCBSZW5kZXJJbmxp
bmUgYW5kIFJlbmRlckxpbmVCcmVhaykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGNv
bnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcCB8
IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBkODI1
ODAwODVmNGUuLjc0YjJiZTU4NmU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5jcHAKQEAgLTYxLDcgKzYxLDggQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVu
ZGVyTGluZUJyZWFrKCkKIAogTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQo
KSBjb25zdAogewotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGZpcnN0TGlu
ZVN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiB7IH07CiB9CiAKIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zm
c2V0KCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475757</attachid>
            <date>2025-07-02 13:18:34 -0700</date>
            <delta_ts>2025-07-14 15:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295150-20250702131834.patch</filename>
            <type>text/plain</type>
            <size>54122</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmMDZhMThhZWExYjIwMWQyNTEzYWRhYmY1ZGU0MjU1ZjUzYTc5NTFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMiBKdWwgMjAyNSAxMzoxNzo1NCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQgaXMgdW51c2VkCiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTUwCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0
by4KClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIG1vdmluZyBsaW5lSGVpZ2h0IGZyb20gUmVu
ZGVyQm94TW9kZWxPYmplY3QgdG8gUmVuZGVyQm94IChkcm9wcGluZyBib3RoIFJlbmRlcklubGlu
ZSBhbmQgUmVuZGVyTGluZUJyZWFrKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJ
bnRlZ3JhdGlvbkxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENv
bXB1dGF0aW9uLmNwcDoKKFdlYkNvcmU6OmNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQp
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNv
cmU6OkxlZ2FjeUxpbmVMYXlvdXQ6OmxheW91dExpbmVCb3hlcyk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVu
dDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckF0dGFjaG1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmlubGluZUJsb2NrQmFzZWxpbmUgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhOb0NoaWxk
cmVuKToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5GbG93Q2hpbGRyZW4pOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVyUG9zaXRpb24pOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ29udGVudCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmxpbmVI
ZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6CihXZWJDb3JlOjpSZW5kZXJCdXR0b246OmJhc2VsaW5l
UG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
aDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpv
bnRhbEJveCk6CihXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZl
cnRpY2FsQm94KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwOgooV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJv
bCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0R3JpZCk6CihX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bGluZUhlaWdodCBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxp
bmVCcmVhazo6bGluZUhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OnVw
ZGF0ZUZyb21TdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRp
b24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6Omxp
bmVIZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3Np
dGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlclNsaWRl
cjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6
CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpj
b21wdXRlTG9naWNhbEhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9MaW5lV2lkdGguY3BwOgooV2ViQ29yZTo6TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0
aCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5j
cHA6CihXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oOgot
LS0KIC4uLi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAgICB8ICA3ICsr
Ky0tCiAuLi4vcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwIHwgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcCB8ICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMjYgKysrKysrKy0t
LS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggICAgICAg
IHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAg
fCAxMCArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAg
ICAgfCAxMCArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAg
ICAgICAgfCAgNCArLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAg
ICAgIHwgIDggKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgg
ICAgICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
Y3BwIHwgIDQgKy0tCiAuLi4vcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCAg
ICAgfCAgNCArLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAg
ICB8IDEwICsrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5oICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgICAg
ICAgfCAxMSArKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCAg
ICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAg
ICAgICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAg
ICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwICAg
ICB8IDEyICsrLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
ICAgICAgIHwgIDMgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcCAgfCAyMSArKystLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuaCAgICB8ICA1ICstLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCAgICB8ICA0ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcCB8IDEyICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RNYXJrZXIuaCAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmggICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcCAgICAgIHwgIDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5oICAgICAgICB8ICAyICstCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmggIHwgIDQgKy0tCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lLmNwcCAgfCAgNCArLS0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuaCAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGgu
Y3BwICAgfCAgMiArLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
ICAgIHwgIDcgKystLS0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgg
ICAgICB8ICAyICstCiA0MSBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCAxMzMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5j
cHAKaW5kZXggYzVhMTVkMDdjMzg1Li5mYTAwNWM3MjVlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBk
YXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHN0YXRp
YyBpbmxpbmUgTGF5b3V0U2l6ZSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShjb25zdCBSZW5kZXJCb3gm
IHJlbmRlcmVyKQogICAgIHJldHVybiB7IGhvcml6b250YWxTcGFjZVJlc2VydmVkRm9yU2Nyb2xs
YmFyLCB2ZXJ0aWNhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIgfTsKIH0KIAotc3RhdGljIGlu
bGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJC
b3gsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorc3RhdGljIGlubGluZSB2b2lkIHNldEludGVn
cmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiB7CiAgICAgYXV0byBo
YXNOb25TeW50aGV0aWNCYXNlbGluZSA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJM
aXN0TWFya2VyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlbmRlckJveCkp
CkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFz
ZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIFdyaXRpbmdNb2QKICAgICBpZiAoIWhh
c05vblN5bnRoZXRpY0Jhc2VsaW5lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gYmFz
ZWxpbmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3NpdGlvbihmYWxzZSAvKiBmaXJzdExpbmUgKi8s
IHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7Ci0gICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVs
ZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0
aW9uKGJhc2VsaW5lKTsKKyAgICBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5k
ZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRpb24ocmVuZGVyQm94LmJh
c2VsaW5lUG9zaXRpb24oKSk7CiB9CiAKIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVM
YXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBzdGQ6Om9wdGlvbmFsPExheW91dDo6SW50
cmluc2ljV2lkdGhNb2RlPiBpbnRyaW5zaWNXaWR0aE1vZGUpCkBAIC00ODcsNyArNDg2LDcgQEAg
dm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJbnRlZ3JhdGlv
bkxheW91dChjb25zdCBMYXlvdXQ6OkUKIAogICAgIGF1dG8gaW50ZWdyYXRpb25BZGp1c3RtZW50
cyA9IFsmXSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgZXZlbnR1YWxseSBiZSBh
bGwgYWJzb3JiZWQgYnkgTEZDIGxheW91dC4KLSAgICAgICAgc2V0SW50ZWdyYXRpb25CYXNlbGlu
ZSgqcmVuZGVyQm94LCB3cml0aW5nTW9kZSgpKTsKKyAgICAgICAgc2V0SW50ZWdyYXRpb25CYXNl
bGluZSgqcmVuZGVyQm94KTsKIAogICAgICAgICBpZiAoYXV0byogcmVuZGVyTGlzdE1hcmtlciA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqcmVuZGVyQm94KSkgewogICAgICAg
ICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3gucGFyZW50KCkuc3R5bGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwCmluZGV4IDEy
Yjg1NmVjZWIxNy4uYWE2MWEzNjU0NmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0aWMg
TGF5b3V0UmVjdCBjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KGNvbnN0IFJlbmRlckJv
eE1vZGVsT2JqZWN0JiByZQogICAgIH0KICAgICB4ID0gc3RkOjptaW4oeCwgc3RkOjptYXg8TGF5
b3V0VW5pdD4obWF4WCAtIGNhcmV0V2lkdGgoKSwgMCkpOwogCi0gICAgYXV0byBsaW5lSGVpZ2h0
ID0gcmVuZGVyZXIubGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/
IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94
ZXMpOworICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWlnaHQoKTsKICAgICBh
dXRvIGhlaWdodCA9IHN0ZDo6bWluKGxpbmVIZWlnaHQsIExheW91dFVuaXQgeyBjdXJyZW50U3R5
bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKSB9KTsKICAgICBhdXRvIHkgPSByZW5k
ZXJlci5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyAobGluZUhlaWdodCA+IGhlaWdodCA/IChs
aW5lSGVpZ2h0IC0gaGVpZ2h0KSAvIDIgOiBMYXlvdXRVbml0IHsgfSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCAyYjdhNDE2ZDgzNmUu
LjQ5ZWEwMzNmMDUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5l
TGF5b3V0LmNwcApAQCAtNTc2LDcgKzU3Niw3IEBAIHZvaWQgTGVnYWN5TGluZUxheW91dDo6bGF5
b3V0TGluZUJveGVzKCkKICAgICB9CiAKICAgICBpZiAoIWxlZ2FjeVJvb3RCb3goKSAmJiBtX2Zs
b3cuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgbV9mbG93LnNldExvZ2ljYWxIZWlnaHQobV9m
bG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUsIG1fZmxvdy5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBv
c2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgICAgICBtX2Zsb3cuc2V0TG9naWNhbEhl
aWdodChtX2Zsb3cubG9naWNhbEhlaWdodCgpICsgbV9mbG93LmxpbmVIZWlnaHQoKSk7CiB9CiAK
IHZvaWQgTGVnYWN5TGluZUxheW91dDo6YWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCmluZGV4IDdj
MDAwMWQ1YmZiZC4uODE2NTM5NDdjYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBSZW5kZXJBdHRh
Y2htZW50OjpsYXlvdXQoKQogICAgICAgICBsYXlvdXRTaGFkb3dDb250ZW50KG5ld0ludHJpbnNp
Y1NpemUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlv
dXRVbml0IFJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAg
IGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnQgPSBhdHRhY2htZW50RWxlbWVudCgpLndpZGVMYXlv
dXRJbWFnZUVsZW1lbnQoKSkgewogICAgICAgICBpZiAoYXV0byogYmFzZWxpbmVFbGVtZW50UmVu
ZGVyQm94ID0gYmFzZWxpbmVFbGVtZW50LT5yZW5kZXJCb3goKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKaW5kZXggZTRjNTJlN2I5YTY4Li5mODRmY2I4
YTg1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2ht
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaApA
QCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsK
IAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9k
ZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0IG1fbWluaW11
bUludHJpbnNpY1dpZHRoOwogICAgIGJvb2wgbV9zaG91bGREcmF3Qm9yZGVyIHsgdHJ1ZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggY2NjMjNiODQ0OGMx
Li43Y2IxMWQzMzg4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cApAQCAtMjQ3NCwyNiArMjQ3NCwxOSBAQCBib29sIFJlbmRlckJsb2NrOjpoYXNMaW5lSWZFbXB0
eSgpIGNvbnN0CiAgICAgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC0+aXNSb290RWRpdGFibGVF
bGVtZW50KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBs
aW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdo
dCgpIGNvbnN0CiB7Ci0gICAgLy8gSW5saW5lIGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMu
IE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwotICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYg
d2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUgdGhlIHJvb3QgbGluZQotICAgIC8v
IGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2
YW50LCBhbmQgd2UgYmVoYXZlCi0gICAgLy8ganVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlz
QmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6bGlu
ZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7Ci0KLSAgICBh
dXRvJiBsaW5lU3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsK
LSAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRM
aW5lSGVpZ2h0KCkpOworICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGZpcnN0
TGluZVN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRl
ckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIC8v
IElubGluZSBibG9ja3MgYXJlIHJlcGxhY2VkIGVsZW1lbnRzLiBPdGhlcndpc2UsIGp1c3QgcGFz
cyBvZmYgdG8KICAgICAvLyB0aGUgYmFzZSBjbGFzcy4gIElmIHdlJ3JlIGJlaW5nIHF1ZXJpZWQg
YXMgdGhvdWdoIHdlJ3JlIHRoZSByb290IGxpbmUKICAgICAvLyBib3gsIHRoZW4gdGhlIGZhY3Qg
dGhhdCB3ZSdyZSBhbiBpbmxpbmUtYmxvY2sgaXMgaXJyZWxldmFudCwgYW5kIHdlIGJlaGF2ZQog
ICAgIC8vIGp1c3QgbGlrZSBhIGJsb2NrLgotICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9y
QXRvbWljSW5saW5lKCkgJiYgbGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUpIHsKKyAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpKSB7
CisgICAgICAgIGF1dG8gZGlyZWN0aW9uID0gY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2Rl
KCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZTsKICAgICAg
ICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0
IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJl
dHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRo
ZSB0aGVtZQogICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3JhZGlvcyB3aWxs
IHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzcsMTIgKzI1MzAsMTEgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUgZGlyZWMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQogICAgICAgICAg
ICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFz
ZWxpbmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwog
Ci0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBk
aXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gUmVuZGVyQm94Ojpi
YXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogCi0gICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
ID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0eWxlKCk7Ci0gICAgY29u
c3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQo
KTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxp
bmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1l
dHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgY29uc3QgRm9udE1ldHJpY3Mm
IGZvbnRNZXRyaWNzID0gc3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOworICAgIHJldHVy
biBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodCgpIC0g
Zm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAg
LTI2MDIsNyArMjU5NCw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6
OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluCiAgICAgaWYgKCFoYXZl
Tm9ybWFsRmxvd0NoaWxkICYmIGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAgYXV0byYgZm9u
dE1ldHJpY3MgPSBmaXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAg
ICAgIHJldHVybiBMYXlvdXRVbml0IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQo
KQotICAgICAgICAgICAgKyAobGluZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uLCBQb3NpdGlv
bk9mSW50ZXJpb3JMaW5lQm94ZXMpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgorICAg
ICAgICAgICAgKyAobGluZUhlaWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgog
ICAgICAgICAgICAgKyAobGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpIDogYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKSkudG9J
bnQoKSB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRl
eCAyMWQzZjc2ZjRjMDcuLjlmM2ZmM2YyZWQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKQEAgLTY2LDggKzY2LDggQEAgcHJvdGVjdGVkOgogCiBwdWJsaWM6CiAgICAg
Ly8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgb3ZlcnJpZGRlbiBmb3IgaW5saW5lLWJsb2NrLgot
ICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZp
bmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xp
bmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgbGluZUhlaWdodCgpIGNvbnN0IGZp
bmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgLy8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVuIGFsbCBj
YWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUxpbmVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCmluZGV4IGYwYTZkZWIxOTcwZS4uNGI1M2IyMmI3NDczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhOb0NoaWxkcmVuKCkKICAgICAgICAgICAg
IHNldEhhc01hcmdpbkJlZm9yZVF1aXJrKHN0eWxlLm1hcmdpbkJlZm9yZSgpLmhhc1F1aXJrKCkp
OwogICAgICAgICAgICAgc2V0SGFzTWFyZ2luQWZ0ZXJRdWlyayhzdHlsZS5tYXJnaW5BZnRlcigp
Lmhhc1F1aXJrKCkpOwogICAgICAgICB9Ci0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSArICho
YXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxp
bmVCb3hlcykgOiAwX2x1KSk7CisgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQW5kUGFk
ZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSArIChoYXNMaW5l
SWZFbXB0eSgpID8gbGluZUhlaWdodCgpIDogMF9sdSkpOwogICAgICAgICB1cGRhdGVMb2dpY2Fs
SGVpZ2h0KCk7CiAgICAgfTsKICAgICBjb21wdXRlQmxvY2tBeGlzU2l6ZSgpOwpAQCAtNzgwLDcg
Kzc4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dDaGlsZHJlbihSZWxh
eW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4sIExhCiAKICAgICAgICAgYXV0byBsb2dpY2Fs
SGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAgICBs
b2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpOworICAgICAgICAgICAgbG9naWNhbEhlaWdodCArPSBsaW5lSGVpZ2h0KCk7CiAgICAg
ICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgcmVwYWludExv
Z2ljYWxUb3AgPSB7IH07CkBAIC0yNzQ5LDcgKzI3NDksNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6YWRqdXN0SW5pdGlhbExldHRlclBvc2l0aW9uKFJlbmRlckJveCYgY2hpbGRCb3gsIExheW91
dFVuaQogICAgIGlmICghZm9udE1ldHJpY3MuY2FwSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExheW91dFVuaXQgaGVpZ2h0T2ZMaW5lID0gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0
aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBs
aW5lSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBiZWZvcmVNYXJnaW5Cb3JkZXJQYWRkaW5nID0g
Y2hpbGRCb3guYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgY2hpbGRCb3gubWFyZ2luQmVmb3Jl
KCk7CiAgICAgCiAgICAgLy8gTWFrZSBhbiBhZGp1c3RtZW50IHRvIGFsaWduIHdpdGggdGhlIGNh
cCBoZWlnaHQgb2YgYSB0aGVvcmV0aWNhbCBibG9jayBsaW5lLgpAQCAtMzMyNiw3ICszMzI2LDcg
QEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZUJsb2Nr
QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICAgICAgY29uc3QgYXV0byYgZm9udE1ldHJpY3MgPSBmaXJzdExpbmVT
dHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgICAgICByZXR1cm4gTGF5b3V0
VW5pdCB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50KCkKLSAgICAgICAgICAgICAg
ICArIChsaW5lSGVpZ2h0KHRydWUsIGxpbmVEaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxp
bmVCb3hlcykgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCisgICAgICAgICAgICAgICAg
KyAobGluZUhlaWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgogICAgICAgICAg
ICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkg
fTsKICAgICAgICAgfQogCkBAIC00MDQ1LDcgKzQwNDUsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6bGF5b3V0SW5saW5lQ29udGVudChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4s
IExheQogICAgIGF1dG8gcGFydGlhbFJlcGFpbnRSZWN0ID0gbGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRMaW5lTGF5b3V0LmxheW91dChyZWxheW91dENoaWxkcmVuID09IFJlbGF5b3V0Q2hpbGRyZW46
OlllcyA/IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxMYXlvdXQ6Olll
cyA6IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxMYXlvdXQ6Ok5vKTsK
IAogICAgIGF1dG8gYm9yZGVyQm94Qm90dG9tID0gWyZdIHsKLSAgICAgICAgYXV0byBjb250ZW50
SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1
ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIDogbGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRMaW5lTGF5b3V0LmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGF1dG8gY29udGVu
dEhlaWdodCA9ICFoYXNMaW5lcygpICYmIGhhc0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KCkg
OiBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQo
KTsKICAgICAgICAgcmV0dXJuIGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIGNvbnRlbnRIZWln
aHQgKyBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsK
ICAgICB9OwogICAgIGF1dG8gbmV3Qm9yZGVyQm94Qm90dG9tID0gYm9yZGVyQm94Qm90dG9tKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDk1MGRkOWRlMWY4NC4u
M2ZmODEyNzU2MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
NDk2MCwxNyArNDk2MCwxNyBAQCBib29sIFJlbmRlckJveDo6aXNVbnNwbGl0dGFibGVGb3JQYWdp
bmF0aW9uKCkgY29uc3QKICAgICAgICAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSov
LCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9z
aXRpb25Nb2RlKi8pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodCgpIGNv
bnN0CiB7CiAgICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKLSAg
ICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94LnRv
cCgpICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0
KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gubGVmdCgpOwotICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbWFyZ2luQmVmb3JlKCkgKyBsb2dpY2FsSGVpZ2h0KCkgKyBtYXJnaW5BZnRlcigp
OworICAgIHJldHVybiB7IH07CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94OjpiYXNlbGluZVBv
c2l0aW9uKGJvb2wgLypmaXJzdExpbmUqLywgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBM
aW5lUG9zaXRpb25Nb2RlIC8qbGluZVBvc2l0aW9uTW9kZSovKSBjb25zdAorTGF5b3V0VW5pdCBS
ZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrTGV2
ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpCi0gICAgICAgIHJldHVybiByb3VuZFRvSW50KGRp
cmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkg
KyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsg
bV9tYXJnaW5Cb3gubGVmdCgpKTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoY29udGFpbmlu
Z0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtX21hcmdpbkJveC50b3Ao
KSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9tKCkgOiBtX21hcmdpbkJveC5yaWdodCgp
ICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhODRiNzA2ZTczZDguLmM5Yzc4MjAw
MWM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTI2LDggKzUyNiw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBtYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0
SWZOZWVkZWQoKSB7IH0KICAgICAKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRV
bml0IGxpbmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
aW5kZXggM2JiYTY1NmUyZDI3Li4wYzI2NzBiMzgzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0zMSw3ICszMSw2IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIE1vZGVzIGZvciBzb21lIG9mIHRoZSBsaW5lLXJlbGF0ZWQg
ZnVuY3Rpb25zLgotZW51bSBMaW5lUG9zaXRpb25Nb2RlIHsgUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMgfTsKIGVudW0gTGluZURpcmVjdGlvbk1v
ZGUgeyBIb3Jpem9udGFsTGluZSwgVmVydGljYWxMaW5lIH07CiAKIGVudW0gY2xhc3MgQmxlZWRB
dm9pZGFuY2UgOiB1aW50OF90IHsKQEAgLTE5NCw4ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKSBj
b25zdDsKIAogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGlu
ZSBoZWlnaHQgYW5kIGJhc2VsaW5lIHBvc2l0aW9uLgotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KCkgY29uc3QgPSAwOwogCiAg
ICAgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNN
b2RlPiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCAwMDY4M2M1OWIzNjYuLjRkYzMzMTBiYWVm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAgLTE2Niwx
NCArMTY2LDE0IEBAIHN0YXRpYyBMYXlvdXRVbml0IHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29u
dGVudEJveChjb25zdCBSZW5kZXJCb3gmIGJveCwgTGluZURpCiAgICAgcmV0dXJuIGRpcmVjdGlv
biA9PSBIb3Jpem9udGFsTGluZSA/IGJveC5ib3JkZXJUb3AoKSArIGJveC5wYWRkaW5nVG9wKCkg
KyBib3guY29udGVudEJveEhlaWdodCgpIDogYm94LmJvcmRlclJpZ2h0KCkgKyBib3gucGFkZGlu
Z1JpZ2h0KCkgKyBib3guY29udGVudEJveFdpZHRoKCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
QnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoc2hvdWxkQXBw
bHlMYXlvdXRDb250YWlubWVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyRmxleGlibGVCb3g6
OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIG1vZGUpOworICAgICAgICBy
ZXR1cm4gUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICAvLyBXZSBj
YW5ub3QgcmVseSBvbiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGJlY2F1
c2Ugb2YgZmxleGJveGVzIGhhdmUgc29tZSBzcGVjaWFsIGJlaGF2aW9yCiAgICAgLy8gcmVnYXJk
aW5nIGJhc2VsaW5lcyB0aGF0IHNob3VsZG4ndCBhcHBseSB0byBidXR0b25zLgotICAgIExheW91
dFVuaXQgYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29yKHN5bnRoZXNpemVk
QmFzZWxpbmVGcm9tQ29udGVudEJveCgqdGhpcywgZGlyZWN0aW9uKSk7Ci0gICAgTGF5b3V0VW5p
dCBtYXJnaW5Bc2NlbnQgPSBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBtYXJnaW5Ub3Ao
KSA6IG1hcmdpblJpZ2h0KCk7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IGZpcnN0TGluZUJh
c2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KCp0aGlz
LCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6
b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Bc2NlbnQg
PSBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdp
blRvcCgpIDogbWFyZ2luUmlnaHQoKTsKICAgICByZXR1cm4gYmFzZWxpbmUgKyBtYXJnaW5Bc2Nl
bnQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAppbmRleCA4N2Nm
M2FlZjRkMDMuLjYyMjQ3MzRhMmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
dXR0b24uaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2sqIGlubmVy
UmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX2lubmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRJ
bm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJik7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggYWY4ODZm
NWUyZWI1Li4zMTk4ZDllOTRiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC01MTAsNyArNTEwLDcg
QEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3go
UmVsYXlvdXRDaGlsZHJlbiByZWxheW91dEMKICAgICAgICAgQVNTRVJUKGNoaWxkSW5kZXggPT0g
Y2hpbGRMYXlvdXREZWx0YXMuc2l6ZSgpKTsKIAogICAgICAgICBpZiAoIWl0ZXJhdG9yLmZpcnN0
KCkgJiYgaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSAr
IGxpbmVIZWlnaHQodHJ1ZSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250
YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsKKyAg
ICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQoKSk7CiAKICAgICAgICAg
c2V0SGVpZ2h0KGhlaWdodCgpICsgdG9BZGQpOwogCkBAIC04NDgsNyArODQ4LDcgQEAgdm9pZCBS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KFJlbGF5b3V0Q2hp
bGRyZW4gcmVsYXlvdXRDaGkKICAgICAgICAgeVBvcyA9IGhlaWdodCgpOwogCiAgICAgICAgIGlm
ICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgc2V0
SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpv
bnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlv
ckxpbmVCb3hlcykpOworICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdo
dCgpKTsKIAogICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyB0b0FkZCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmlu
ZGV4IGYwMDg5NWM0YjdmNC4uMzliYjY5NzE2ZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIwNyw4ICsyMDcs
OCBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludENvbnRyb2woUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaQogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gcm91bmRU
b0ludChiYXNlbGluZVBvc2l0aW9uKHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gSG9y
aXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSkpOwor
ICAgICAgICAgICAgLy8gRmlsZSB1cGxvYWQgYnV0dG9uIGlzIGRpc3BsYXk6IG5vbmUgKHNlZSA6
OmZpbGUtc2VsZWN0b3ItYnV0dG9uKS4KKyAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJh
c2VsaW5lUG9zaXRpb24oKSk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBwYWludEluZm8uY29u
dGV4dCgpLnNldEZpbGxDb2xvcihzdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xv
ckZpbHRlcihDU1NQcm9wZXJ0eUNvbG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA4YTZhZTUzYmMzNjguLjJjM2JlODU3MWI1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBA
IC0yNjQsMTMgKzI2NCwxMyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQ2hpbGRJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhzKFJlbmRlckJveCYgZmxleEJveENoaQogICAgIFJlbmRlckJs
b2NrOjpjb21wdXRlQ2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKGZsZXhCb3hDaGlsZCwgbWlu
UHJlZmVycmVkTG9naWNhbFdpZHRoLCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOwogfQogCi1M
YXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGF1
dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpOwogICAgIGlmICghYmFzZWxpbmUpCi0g
ICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUoKSwg
ZGlyZWN0aW9uLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOworICAgICAgICBy
ZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGNvbnRhaW5p
bmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUg
OiBWZXJ0aWNhbExpbmUsIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CiAKLSAg
ICByZXR1cm4gYmFzZWxpbmUudmFsdWUoKSArIChkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUg
PyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkpLnRvSW50KCk7CisgICAgcmV0dXJuIGJhc2Vs
aW5lLnZhbHVlKCkgKyAoY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9u
dGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkpLnRvSW50KCk7CiB9CiAKIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyRmxleGlibGVCb3g6OmZpcnN0TGluZUJhc2VsaW5l
KCkgY29uc3QKQEAgLTEzNDYsNyArMTM0Niw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnBl
cmZvcm1GbGV4TGF5b3V0KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKIAogICAg
IGlmIChhbGxJdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkp
IHsKLSAgICAgICAgICAgIGF1dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxI
ZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMp
ICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgYXV0byBtaW5IZWlnaHQg
PSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdodCgpICsgc2Nyb2xs
YmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgaWYgKGhlaWdodCgpIDwgbWluSGVpZ2h0
KQogICAgICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobWluSGVpZ2h0KTsKICAgICAgICAg
fQpAQCAtMTQyMyw3ICsxNDIzLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZs
ZXhMYXlvdXQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogICAgICAgICAvLyBh
IGxpbmUgYmVjYXVzZSBhbGwgb3VyIGNoaWxkcmVuIG1pZ2h0IGJlIG91dCBvZiBmbG93IHBvc2l0
aW9uZWQuCiAgICAgICAgIC8vIEluc3RlYWQgb2YganVzdCBjaGVja2luZyBpZiB3ZSBoYXZlIGEg
bGluZSwgbWFrZSBzdXJlIHRoZSBmbGV4Ym94CiAgICAgICAgIC8vIGhhcyBhdCBsZWFzdCBhIGxp
bmUncyB3b3J0aCBvZiBoZWlnaHQgdG8gY292ZXIgdGhpcyBjYXNlLgotICAgICAgICBMYXlvdXRV
bml0IG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVp
Z2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSArIHNjcm9sbGJhckxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRk
aW5nTG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdo
dCgpOwogICAgICAgICBpZiAoc2l6ZSgpLmhlaWdodCgpIDwgbWluSGVpZ2h0KQogICAgICAgICAg
ICAgc2V0TG9naWNhbEhlaWdodChtaW5IZWlnaHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXggZTY4Y2FkMjA3NmUzLi44Y2E3ODcy
ZmM4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRyb3BBbm9ueW1vdXNCbG9j
a0NoaWxkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGxheW91dEJs
b2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1
KSBmaW5hbDsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFp
bmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RM
aW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDcw
MDJmODhkYTQ2Ny4uZDZhNjYzMDQyNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwCkBAIC00ODksNyArNDg5LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlk
KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250
YWluZXIgc2hvdWxkIGhhdmUgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVk
aXRhYmxlLiBUaGF0IGRvZXMgbm90IGFmZmVjdCB0cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAg
ICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewogICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWln
aHRGb3JFbXB0eUxpbmUgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAg
ICAgICAgICAgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBI
b3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVz
KQorICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCgpCiAgICAgICAgICAgICAgICAgKyBzY3Jv
bGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHN0ZDo6
bWF4KGxvZ2ljYWxIZWlnaHQoKSwgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lKSk7CiAgICAgICAgIH0K
QEAgLTYyNiw3ICs2MjYsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dE1hc29ucnkoUmVsYXlv
dXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5lciBz
aG91bGQgaGF2ZSB0aGUgbWluaW11bSBoZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFibGUu
IFRoYXQgZG9lcyBub3QgYWZmZWN0IHRyYWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlmICho
YXNMaW5lSWZFbXB0eSgpKSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZvckVt
cHR5TGluZSA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAg
ICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250
YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCisgICAg
ICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KCkKICAgICAgICAgICAgICAgICArIHNjcm9sbGJhckxv
Z2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9n
aWNhbEhlaWdodCgpLCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUpKTsKICAgICAgICAgfQpAQCAtMjAx
MiwxNCArMjAxMiwxMyBAQCBib29sIFJlbmRlckdyaWQ6OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JH
cmlkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVAogfQogCiAvLyBGSVhNRTog
VGhpcyBsb2dpYyBpcyBzaGFyZWQgYnkgUmVuZGVyRmxleGlibGVCb3gsIHNvIGl0IG1pZ2h0IGJl
IHJlZmFjdG9yZWQgc29tZWhvdy4KLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3Np
dGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUg
bW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSk7CiAgICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAg
aWYgKCFiYXNlbGluZSkKLSAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMs
ICpwYXJlbnRTdHlsZSgpLCBkaXJlY3Rpb24sIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVp
Z2h0KCk7CisgICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50
U3R5bGUoKSwgY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkg
PyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2lj
YWxIZWlnaHQoKTsKIAotICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQoKTsK
KyAgICByZXR1cm4gYmFzZWxpbmUudmFsdWUoKSArIChjb250YWluaW5nQmxvY2soKS0+d3JpdGlu
Z01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9J
bnQoKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExp
bmVCYXNlbGluZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRl
eCA4NmIxZWNlMmVhMzguLjdmMjc0Y2RjMDU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oCkBAIC0yNjksNyArMjY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUF1
dG9NYXJnaW5zSW5Sb3dBeGlzSWZOZWVkZWQoUmVuZGVyQm94Jik7CiAgICAgYm9vbCBpc0NoaWxk
RWxpZ2libGVGb3JNYXJnaW5UcmltKE1hcmdpblRyaW1UeXBlLCBjb25zdCBSZW5kZXJCb3gmKSBj
b25zdCBmaW5hbDsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxh
c3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKICAgICBTaW5nbGVUaHJlYWRXZWFrUHRyPFJl
bmRlckJveD4gZ2V0QmFzZWxpbmVHcmlkSXRlbShJdGVtUG9zaXRpb24gYWxpZ25tZW50KSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGNlZWE2YWJj
YWIwZi4uMGZiYTdlMGEyYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCBMYXlvdXRVbml0IFJlbmRlckltYWdlOjpjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZQogICAgIHJl
dHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChlc3RpbWF0
ZWRVc2VkV2lkdGgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0
aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3Np
dGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW1hZ2U6
OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIExheW91dFVuaXQgb2Zmc2V0OwogI2lm
IEVOQUJMRShNVUxUSV9SRVBSRVNFTlRBVElPTl9IRUlDKQpAQCAtMzE1LDcgKzMxNSw3IEBAIExh
eW91dFVuaXQgUmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlIGRpcmVjCiAgICAgICAgIG9mZnNldCA9IExheW91dFVuaXQ6OmZyb21G
bG9hdFJvdW5kKG1ldHJpY3MuZGVzY2VudCk7CiAgICAgfQogI2VuZGlmCi0gICAgcmV0dXJuIFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSkgLSBvZmZzZXQ7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlv
bigpIC0gb2Zmc2V0OwogfQogCiB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQoV3JhcHBl
ZEltYWdlUHRyIG5ld0ltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCAwNTFkMTU2NGMzMTIuLjk5MGE3ZGIzMDRmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBw
cml2YXRlOgogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3Vs
ZENvbXB1dGVQcmVmZXJyZWQgPSBTaG91bGRDb21wdXRlUHJlZmVycmVkOjpDb21wdXRlQWN0dWFs
KSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxI
ZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRVc2VkV2lkdGggPSBzdGQ6
Om51bGxvcHQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZENv
bGxhcHNlVG9FbXB0eSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCmluZGV4IDkwOGY2MmI3OTU0Yi4uMDM4Y2Y1OGRhZjFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtODE3LDE3ICs4MTcsOSBAQCBMZWdh
Y3lJbmxpbmVGbG93Qm94KiBSZW5kZXJJbmxpbmU6OmNyZWF0ZUFuZEFwcGVuZElubGluZUZsb3dC
b3goKQogICAgIHJldHVybiBmbG93Qm94OwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3Rpb24q
LywgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KCkgY29uc3QKIHsKLSAgICBhdXRvJiBsaW5lU3R5
bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKLSAgICByZXR1cm4g
TGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkp
OwotfQotCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxp
bmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgYXV0byYgc3R5bGUgPSBmaXJzdExpbmUgPyBm
aXJzdExpbmVTdHlsZSgpIDogdGhpcy0+c3R5bGUoKTsKLSAgICBhdXRvJiBmb250TWV0cmljcyA9
IHN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBm
b250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBs
aW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKKyAgICByZXR1
cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChmaXJzdExpbmVTdHlsZSgpLmNvbXB1dGVkTGlu
ZUhlaWdodCgpKTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZvckluRmxv
d1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA3NWU2ZGIyZDg3ZDEuLjA1OTcyZjVk
MDE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTM5LDgg
KzEzOSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQo
KSBmaW5hbCB7IG1fbGVnYWN5TGluZUJveGVzLmRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKnRo
aXMpOyB9CiAKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBj
b25zdCBmaW5hbDsKICAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggNGI0ZDc4MzIzY2VkLi43NGIy
YmU1ODZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwCkBAIC01OSwyNCArNTksMTAgQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVuZGVyTGluZUJyZWFr
KCkKIHsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW9uKi8sIExpbmVQb3NpdGlvbk1v
ZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpbmVCcmVh
azo6bGluZUhlaWdodCgpIGNvbnN0CiB7Ci0gICAgaWYgKGZpcnN0TGluZSkgewotICAgICAgICBh
dXRvJiBmaXJzdExpbmVTdHlsZSA9IHRoaXMtPmZpcnN0TGluZVN0eWxlKCk7Ci0gICAgICAgIGlm
ICgmZmlyc3RMaW5lU3R5bGUgIT0gJnN0eWxlKCkpCi0gICAgICAgICAgICByZXR1cm4gTGF5b3V0
VW5pdDo6ZnJvbUZsb2F0Q2VpbChmaXJzdExpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7
Ci0gICAgfQotCi0gICAgaWYgKCFtX2NhY2hlZExpbmVIZWlnaHQpCi0gICAgICAgIG1fY2FjaGVk
TGluZUhlaWdodCA9IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwoc3R5bGUoKS5jb21wdXRlZExp
bmVIZWlnaHQoKSk7Ci0gICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWlnaHQ7Ci19Ci0KLUxheW91
dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9u
TW9kZSkgY29uc3QKLXsKLSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0
eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0
cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmlj
cy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRp
b25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIpIH07CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogaW50IFJlbmRlckxpbmVCcmVhazo6Y2Fy
ZXRNaW5PZmZzZXQoKSBjb25zdApAQCAtMTMxLDcgKzExNyw2IEBAIHZvaWQgUmVuZGVyTGluZUJy
ZWFrOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4
ZWQpIGNvCiAKIHZvaWQgUmVuZGVyTGluZUJyZWFrOjp1cGRhdGVGcm9tU3R5bGUoKQogewotICAg
IG1fY2FjaGVkTGluZUhlaWdodCA9IHsgfTsKICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGlzSW5saW5lKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmgKaW5kZXggZGYxMTk4YTVmY2Q1Li4yMmM0ZmZhM2Y4MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTYxLDggKzYx
LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgY2FyZXRNYXhPZmZzZXQoKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5b3V0VW5p
dCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qg
ZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KCkgY29uc3QgZmluYWw7CiAKICAgICBM
YXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICBMYXlv
dXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KQEAgLTgwLDgg
Kzc5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlRnJvbVN0eWxlKCkgZmluYWw7CiAg
ICAgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLQot
ICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBtX2NhY2hlZExpbmVIZWlnaHQg
eyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IGNmNTNiYjhhYjZhYS4uZmZiNmJlNTIwYjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0zMDgsOSAr
MzA4LDkgQEAgUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyTGlz
dEJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3UKICAgICByZXR1cm4gUmVuZGVyQm94Ojpj
b21wdXRlTG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0LCBsb2dpY2FsVG9wKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSBsaW5lRGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdAogewotICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oZmlyc3RMaW5lLCBsaW5lRGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICBh
dXRvIGJhc2VsaW5lID0gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgaWYgKCFz
aG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCiAgICAgICAgIGJhc2VsaW5lIC09IGJhc2Vs
aW5lQWRqdXN0bWVudDsKICAgICByZXR1cm4gYmFzZWxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA0YTU0NzNmZTIzMDQuLmNlM2VkY2QwNTNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC05Nyw3ICs5Nyw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3Zl
cnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVM
b2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggMTE2Zjhh
NjIzMTVlLi4zNjk2ZmUxMjc1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAKQEAgLTQyMiwxOCArNDIyLDE4IEBAIHZvaWQgUmVuZGVyTGlzdE1h
cmtlcjo6dXBkYXRlSW5saW5lTWFyZ2lucygpCiAgICAgbXV0YWJsZVN0eWxlKCkuc2V0TWFyZ2lu
RW5kKFN0eWxlOjpNYXJnaW5FZGdlOjpGaXhlZCB7IG1hcmdpbkVuZCB9KTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFpc0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVp
Z2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwot
ICAgIHJldHVybiBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxp
bmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+bGluZUhlaWdodCgp
OworICAgIHJldHVybiBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5i
YXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JM
aW5lQm94ZXMpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RM
aW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gbV9saXN0
SXRlbS0+YmFzZWxpbmVQb3NpdGlvbigpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5l
UG9zaXRpb24oKTsKIH0KIAogYm9vbCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCAyNThj
NmEwYjJkMzIuLjUzMmU3YzQ2M2JkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5oCkBAIC04MSw4ICs4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWlu
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0
KCkgZmluYWw7CiAgICAgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJ
bnRSZWN0KikgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KCkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3QgZmluYWw7CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zp
c2libGVDb250ZW50KSBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IDU1MDJkMTc3ODM4OS4uNDlkMTFi
YzNkZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAt
MTI5LDkgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBGbGV4Ym94IGRlZmluZXMgYmFzZWxp
bmVzIGRpZmZlcmVudGx5IHRoYW4gcmVndWxhciBibG9ja3MuCiAgICAgLy8gRm9yIGJhY2t3YXJk
cyBjb21wYXRpYmlsaXR5LCBtZW51bGlzdHMgbmVlZCB0byBkbyB0aGUgcmVndWxhciBibG9jayBi
ZWhhdmlvci4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikg
Y29uc3Qgb3ZlcnJpZGUKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBv
dmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0
aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBwb3NpdGlvbik7CisgICAgICAgIHJldHVybiBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIH0KICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShk
aXJlY3Rpb24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmlu
ZGV4IDU0MzkyOTg2ZjI2YS4uZmVlMTc5Nzk5ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBSZWY8SFRNTElucHV0RWxlbWVu
dD4gUmVuZGVyU2xpZGVyOjpwcm90ZWN0ZWRFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZUZvck5vbkFub255bW91cygpKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAvKmZpcnN0TGluZSov
LCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQg
UmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTog
UGF0Y2ggdGhpcyBmdW5jdGlvbiBmb3Igd3JpdGluZy1tb2RlLgogICAgIHJldHVybiBoZWlnaHQo
KSArIG1hcmdpblRvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmlu
ZGV4IDU4M2Q4MjMxOGI2Ny4uYzA1ZjNhZmMxNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
QVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVy
U2xpZGVyIl9zOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNh
bFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwCmluZGV4IGYxYzE0MWVkNGUxZC4uZmJkNjQ1MTIwZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE1ODIsMTEgKzE1ODIsMTEgQEAgUmVuZGVyVGFi
bGVDZWxsKiBSZW5kZXJUYWJsZTo6Y2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogY2Vs
bCkgY29uc3QKICAgICByZXR1cm4gY2VsbC0+c2VjdGlvbigpLT5wcmltYXJ5Q2VsbEF0KGNlbGwt
PnJvd0luZGV4KCksIGVmZkNvbCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGFibGU6OmJhc2Vs
aW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5k
ZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8gYmFzZWxp
bmVQb3MgPSBmaXJzdExpbmVCYXNlbGluZSgpKQotICAgICAgICByZXR1cm4gKGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkgKyBiYXNlbGlu
ZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmly
c3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gKHdy
aXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkp
ICsgYmFzZWxpbmVQb3MudmFsdWUoKTsKKyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBv
c2l0aW9uKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyVGFibGU6Omlu
bGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IDE5Yzk3NDQxZTVjMC4uNDAxYjBlYWQ0NTYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMjMxLDcgKzIzMSw3IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3Zl
cnJpZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNv
bnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJp
ZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25z
dCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGlu
ZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDEy
MzhiNmFjMWIyYS4uOWJmNjU3YmNmMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBSZW5kZXJCb3g6Okxv
Z2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUxvZ2lj
YWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5uZXJUZXh0Qm94ID0gaW5uZXJUZXh0
LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0IG5vbkNvbnRlbnRIZWlnaHQgPSBp
bm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBpbm5lclRleHRC
b3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgbG9naWNhbEhlaWdodCA9IGNvbXB1
dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gtPmxpbmVIZWlnaHQodHJ1ZSwgSG9y
aXpvbnRhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyksIG5vbkNvbnRlbnRIZWln
aHQpOworICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0
KGlubmVyVGV4dEJveC0+bGluZUhlaWdodCgpLCBub25Db250ZW50SGVpZ2h0KTsKIAogICAgICAg
ICAvLyBXZSBhcmUgYWJsZSB0byBoYXZlIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaWYgdGhlIG92
ZXJmbG93IHN0eWxlIGlzIHNjcm9sbCwgb3IgaWYgaXRzIGF1dG8gYW5kIHRoZXJlJ3Mgbm8gd29y
ZCB3cmFwLgogICAgICAgICBhdXRvIHNob3VsZEluY2x1ZGVTY3JvbGxiYXJIZWlnaHQgPSBbJl0g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCA4
MmUzMmMzOThkZmQuLjg5MDEwYzAwY2ZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg4LDkgKzg4LDkgQEAgcHVibGljOgogICAgIFJlbmRl
clRleHRDb250cm9sSW5uZXJDb250YWluZXIoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAg
IHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIoKTsKIAotICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQorICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAg
ICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJl
Y3Rpb24sIHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBv
c2l0aW9uKCk7CiAgICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5l
QmFzZWxpbmUoKTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tC
YXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuY3BwCmluZGV4IDg0YjNkNmY0MWIyMC4uNWUwOTRkMGNjY2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAK
QEAgLTk4LDkgKzk4LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6
Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGkKICAgICByZXR1cm4gbGlu
ZUhlaWdodCAqIHRleHRBcmVhRWxlbWVudCgpLnJvd3MoKSArIG5vbkNvbnRlbnRIZWlnaHQ7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0
aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwogfQog
CiB2b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpsYXlvdXRFeGNsdWRlZENoaWxkcmVu
KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggZGUxN2Fk
YTNmNWJhLi5hMDE5ZjAwZGY0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZh
dGU6CiAgICAgZmxvYXQgZ2V0QXZlcmFnZUNoYXJXaWR0aCgpIG92ZXJyaWRlOwogICAgIExheW91
dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2ljYWxXaWR0aChmbG9hdCBjaGFyV2lkdGgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCBv
dmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihSZWxh
eW91dENoaWxkcmVuKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xp
bmUvTGluZVdpZHRoLmNwcAppbmRleCBiYTA5N2JiZTM2MjAuLjM5MTA1YTBhMTBiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCkBAIC02OSw3ICs2OSw3
IEBAIGJvb2wgTGluZVdpZHRoOjpmaXRzT25MaW5lRXhjbHVkaW5nVHJhaWxpbmdDb2xsYXBzZWRX
aGl0ZXNwYWNlKCkgY29uc3QKIHZvaWQgTGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCgp
CiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBtX2Jsb2NrLmxvZ2ljYWxIZWlnaHQoKTsKLSAg
ICBhdXRvIGxpbmVIZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQodHJ1
ZSwgbV9ibG9jay5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBW
ZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgIGF1dG8gbGlu
ZUhlaWdodCA9IHN0ZDo6bWF4KDBfbHUsIG1fYmxvY2subGluZUhlaWdodCgpKTsKICAgICBtX2xl
ZnQgPSBtX2Jsb2NrLmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShoZWlnaHQsIGxpbmVIZWlnaHQp
OwogICAgIG1fcmlnaHQgPSBtX2Jsb2NrLmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoaGVpZ2h0
LCBsaW5lSGVpZ2h0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAppbmRleCA1ZDE2N2FlZDc2ODcuLjkxYzM4OWFhNDQy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxCbG9jay5jcHAKQEAgLTk1LDEyICs5NSw5IEBAIExheW91dFVuaXQgUmVuZGVyTWF0aE1M
QmxvY2s6Om1pcnJvcklmTmVlZGVkKExheW91dFVuaXQgaG9yaXpvbnRhbE9mZnNldCwgTGF5b3V0
CiAgICAgcmV0dXJuIGhvcml6b250YWxPZmZzZXQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTWF0
aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAor
TGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7
Ci0gICAgaWYgKGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVz
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpLnZh
bHVlX29yKFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9u
LCBsaW5lUG9zaXRpb25Nb2RlKSk7CisgICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCkudmFs
dWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSk7CiB9CiAKIExheW91dFVuaXQg
dG9Vc2VyVW5pdHMoY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0VW5pdCYgcmVmZXJlbmNlVmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgK
aW5kZXggYjA1YjZlZDA2NTRkLi44MGU1ZDAwNDZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKQEAgLTU5LDcgKzU5LDcg
QEAgcHVibGljOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODYxNy4KICAgICB2aXJ0dWFsIFJlbmRlck1hdGhNTE9wZXJhdG9yKiB1bmVtYmVsbGlzaGVk
T3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKLSAgICBMYXlvdXRVbml0IGJh
c2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9z
aXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVj
dGVkOgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476030</attachid>
            <date>2025-07-15 16:06:17 -0700</date>
            <delta_ts>2025-07-16 05:14:58 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295150-20250715160617.patch</filename>
            <type>text/plain</type>
            <size>1152</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwNzQ2OGU1Zjk2YTNiNWUyNjJlNjg5Y2EwNGFmYWQyNWJiZGEyZTY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDY6MDI6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGlzIHVudXNlZAogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTE1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBtb3ZpbmcgbGluZUhlaWdodCBmcm9tIFJl
bmRlckJveE1vZGVsT2JqZWN0IHRvIFJlbmRlckJveCAoZHJvcHBpbmcgYm90aCBSZW5kZXJJbmxp
bmUgYW5kIFJlbmRlckxpbmVCcmVhaykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGNv
bnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcCB8
IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBkODI1
ODAwODVmNGUuLjc0YjJiZTU4NmU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5jcHAKQEAgLTYxLDcgKzYxLDggQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVu
ZGVyTGluZUJyZWFrKCkKIAogTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQo
KSBjb25zdAogewotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGZpcnN0TGlu
ZVN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiB7IH07CiB9CiAKIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zm
c2V0KCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476043</attachid>
            <date>2025-07-16 05:14:59 -0700</date>
            <delta_ts>2025-07-16 05:20:18 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295150-20250716051459.patch</filename>
            <type>text/plain</type>
            <size>1152</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjYWE0NWJiZmExYTJjYmRkMDgyMDliN2M0OGE1MTA4MWRmZjkzZjJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDY6MDI6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGlzIHVudXNlZAogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTE1MAoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlz
dG8uCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBtb3ZpbmcgbGluZUhlaWdodCBmcm9tIFJl
bmRlckJveE1vZGVsT2JqZWN0IHRvIFJlbmRlckJveCAoZHJvcHBpbmcgYm90aCBSZW5kZXJJbmxp
bmUgYW5kIFJlbmRlckxpbmVCcmVhaykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGNv
bnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcCB8
IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBkODI1
ODAwODVmNGUuLjc0YjJiZTU4NmU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5jcHAKQEAgLTYxLDcgKzYxLDggQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVu
ZGVyTGluZUJyZWFrKCkKIAogTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQo
KSBjb25zdAogewotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGZpcnN0TGlu
ZVN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiB7IH07CiB9CiAKIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zm
c2V0KCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>