<?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>295116</bug_id>
          
          <creation_ts>2025-06-27 11:01:54 -0700</creation_ts>
          <short_desc>[Cleanup] RenderBoxModelObject::baselinePosition&apos;s LinePositionMode is unused</short_desc>
          <delta_ts>2025-07-15 04:59:06 -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>2126350</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 11:01:54 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126355</commentid>
    <comment_count>1</comment_count>
      <attachid>475680</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 11:10:07 -0700</bug_when>
    <thetext>Created attachment 475680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126489</commentid>
    <comment_count>2</comment_count>
      <attachid>475687</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-28 05:38:15 -0700</bug_when>
    <thetext>Created attachment 475687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126991</commentid>
    <comment_count>3</comment_count>
      <attachid>475718</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 06:52:16 -0700</bug_when>
    <thetext>Created attachment 475718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127118</commentid>
    <comment_count>4</comment_count>
      <attachid>475725</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 14:01:06 -0700</bug_when>
    <thetext>Created attachment 475725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127119</commentid>
    <comment_count>5</comment_count>
      <attachid>475726</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 14:03:14 -0700</bug_when>
    <thetext>Created attachment 475726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127903</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-04 11:02:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/155054343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130049</commentid>
    <comment_count>7</comment_count>
      <attachid>476011</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-14 19:00:17 -0700</bug_when>
    <thetext>Created attachment 476011
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130134</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-15 04:59:04 -0700</bug_when>
    <thetext>Committed 297389@main (d502356fa563): &lt;https://commits.webkit.org/297389@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476011.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475680</attachid>
            <date>2025-06-27 11:10:07 -0700</date>
            <delta_ts>2025-06-28 05:38:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295116-20250627111006.patch</filename>
            <type>text/plain</type>
            <size>34228</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3MTIyYmRhNDFhZjE0MDQyZmEyMDc5NWNkZDNhMDdlZGFmMTcxM2ExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjcgSnVuIDIwMjUgMTE6MDI6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJhc2VsaW5lUG9zaXRpb24ncwogTGluZVBvc2l0aW9u
TW9kZSBpcyB1bnVzZWQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5
NTExNgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpMaW5lUG9zaXRpb25Nb2RlIGlzIGEg
bGVnYWN5IGNvbmNlcHQgZnJvbSB3aGVuIGlubGluZSBsYXlvdXQvcGFpbnQvaGl0dGVzdCBjYWxs
ZWQgaW50byByZW5kZXJlcnMgdG8gZmlndXJlIG91dCB0aGVpciBiYXNlbGluZXMuClRoZXJlJ3Mg
b25seSBvbmUgcGxhY2Ugd2hlcmUgd2UgZG9uJ3QgcGFzcyBpbiBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUgKHNlZSBSZW5kZXJMaXN0TWFya2VyKSBpbiB3aGljaCBjYXNlIFJlbmRlckxpc3RJdGVt
IGFueXdheSBpZ25vcmVzIHRoZSBpbmNvbWluZyB2YWx1ZSBhbmQgZ28gc3RyYWl0IHRvIGZvbnQg
bWV0cmljcy4KKGFsc28sIGFnYWluIGV2ZXIgc2luY2UgSUZDIGF0IHRoZSBwb2ludCB3aGVuIHRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkLCB3ZSBkb24ndCBoYXZlIGxpbmVzIHlldCkKCiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlV
cGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpzZXRJbnRlZ3JhdGlvbkJh
c2VsaW5lKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHA6
CihXZWJDb3JlOjpSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3Jl
OjpSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNw
cDoKKFdlYkNvcmU6OlJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDo6cGFpbnRDb250cm9sKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcDoKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGlu
ZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmg6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpiYXNlbGlu
ZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKFdlYkNvcmU6
OlJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJh
c2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaDoKLS0tCiAuLi4vaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25C
b3hHZW9tZXRyeVVwZGF0ZXIuY3BwICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXR0YWNobWVudC5jcHAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwICAgICAgICAgICAgICAgICAgfCA4ICsr
KystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAgICAgICAg
ICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAg
ICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAgICAgICAgICAgICAgICB8
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcCAgICAgICAgICAgICAgICAgICB8IDMgKy0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwICAgICAgICAgICAgICAgICAgfCA0
ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgICAgICAg
ICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
ICAgICAgICAgICAgICAgICB8IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oICAgICAgICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAgICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggICAgICAgICAgICAgICAgfCAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgICAgICAgICAgICAgICAg
fCA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggICAgICAg
ICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcCAgICAgICAgICAgICB8IDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5oICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwICAgICAgICAgICAgICAgICB8IDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCAgICAgICAgICAgICAg
ICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAg
ICAgICAgICAgICAgICB8IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmggICAgICAgICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmggICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICAgfCA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICAgICB8
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
Y3BwICAgICB8IDcgKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxCbG9jay5oICAgICAgIHwgMiArLQogMzUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0
aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdl
b21ldHJ5VXBkYXRlci5jcHAKaW5kZXggZGUyYzQ3NTJjNTI5Li4xMDhlMDYwNzIxMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMzE4LDcg
KzMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgIGlmICghaGFzTm9uU3ludGhldGljQmFzZWxpbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5iYXNl
bGluZVBvc2l0aW9uKFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CisgICAgYXV0byBiYXNlbGlu
ZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6
OkVsZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVn
cmF0aW9uKGJhc2VsaW5lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckF0dGFjaG1lbnQuY3BwCmluZGV4IDBjZDk2Y2NiOTUxNy4uODE2NTM5NDdjYWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgdm9pZCBSZW5kZXJBdHRhY2htZW50OjpsYXlvdXQoKQogICAgICAgICBsYXlvdXRT
aGFkb3dDb250ZW50KG5ld0ludHJpbnNpY1NpemUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckF0
dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAg
aWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudCA9IGF0dGFjaG1lbnRFbGVtZW50KCkud2lkZUxheW91
dEltYWdlRWxlbWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnRSZW5k
ZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaAppbmRleCBjYzcwN2FhMjM4M2QuLmY4NGZjYjhh
ODVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCkBA
IC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwog
Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgTGF5b3V0VW5pdCBtX21pbmltdW1JbnRyaW5zaWNXaWR0aDsKICAgICBib29s
IG1fc2hvdWxkRHJhd0JvcmRlciB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IDk0NWJlN2Q5ZGM0Ny4uOWZmZmE1NGJiODhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI0ODcsMTQgKzI0ODcsMTQgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLAogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRD
ZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25N
b2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7CiAgICAgYXV0byBkaXJlY3Rpb24gPSB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgp
ID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7CiAgICAgLy8gSW5saW5lIGJsb2NrcyBh
cmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwogICAgIC8v
IHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUg
dGhlIHJvb3QgbGluZQogICAgIC8vIGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFuIGlu
bGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZlCiAgICAgLy8ganVzdCBsaWtl
IGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAm
JiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgeworICAgIGlm
IChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsKICAgICAgICAgLy8gRm9y
ICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0IHRoZSBiYXNl
bGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJldHRlciB0byBo
YXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRoZSB0aGVtZQog
ICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3JhZGlvcyB3aWxsIHN0aWxsIGhh
dmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzgsMTEgKzI1MzgsMTEgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlv
bk1vZGUpIGNvbnMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQogICAgICAgICAgICAgcmV0dXJu
IGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFzZWxpbmVQb3Mu
dmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwogCi0gICAgICAg
IHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7Cisg
ICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAKICAg
ICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQo
KSArIChsaW5lSGVpZ2h0KGZhbHNlLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9u
dE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgcmV0dXJuIExheW91dFVu
aXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZhbHNlLCBkaXJlY3Rp
b24sIFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkg
LyAyIH0udG9JbnQoKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9j
azo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAppbmRleCA2NDExMjM2MjI3MjcuLmVkMjMxMjljYzg0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJvdGVjdGVkOgogcHVi
bGljOgogICAgIC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIG92ZXJyaWRkZW4gZm9yIGlubGlu
ZS1ibG9jay4KICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBG
SVhNRS1CTE9DS0ZMT1c6IFJlbW92ZSB2aXJ0dWFsaXphaW9uIHdoZW4gYWxsIGNhbGxlcnMgaGF2
ZSBtb3ZlZCB0byBSZW5kZXJCbG9ja0Zsb3cKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZTc0NDZjYWQ5NTYz
Li43YzkxMjAyMzUyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBA
IC00OTk5LDcgKzQ5OTksNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodChib29s
IC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbgogICAgIHJldHVybiAw
OwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlIC8qbGluZVBvc2l0aW9uTW9kZSovKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6
OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNl
ZE9yQXRvbWljSW5saW5lKCkpCiAgICAgICAgIHJldHVybiByb3VuZFRvSW50KHdyaXRpbmdNb2Rl
KCkuaXNIb3Jpem9udGFsKCkgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJn
aW5Cb3guYm90dG9tKCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2lu
Qm94LmxlZnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYjY3M2Q2
NGViNjM2Li4xMzBmMzI3ZmM2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
QEAgLTUzMCw3ICs1MzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1hcmtGb3JQYWdp
bmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsgfQogICAgIAogICAgIExheW91dFVuaXQgbGluZUhl
aWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIExheW91dFVuaXQgb2Zmc2V0TGVmdCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIExheW91dFVuaXQgb2Zmc2V0VG9wKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDZk
NmMwNTdkOTZkMi4uZTE3ZmVhOTZmNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGluZSBoZWlnaHQg
YW5kIGJhc2VsaW5lIHBvc2l0aW9uLgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0ID0gMDsKIAogICAgIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoT3B0aW9u
U2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRlJikgY29uc3Qgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggZWVkOWUx
YjVkZjY2Li5lY2YxYTA3NzZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
dXR0b24uY3BwCkBAIC0xNjYsMTAgKzE2NiwxMCBAQCBzdGF0aWMgTGF5b3V0VW5pdCBzeW50aGVz
aXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goY29uc3QgUmVuZGVyQm94JiBib3gsIExpbmVEaQog
ICAgIHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3guYm9yZGVyVG9wKCkg
KyBib3gucGFkZGluZ1RvcCgpICsgYm94LmNvbnRlbnRCb3hIZWlnaHQoKSA6IGJveC5ib3JkZXJS
aWdodCgpICsgYm94LnBhZGRpbmdSaWdodCgpICsgYm94LmNvbnRlbnRCb3hXaWR0aCgpOwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25N
b2RlIG1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0CiB7CiAgICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKG1vZGUpOwor
ICAgICAgICByZXR1cm4gUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAg
ICAvLyBXZSBjYW5ub3QgcmVseSBvbiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlv
bigpIGJlY2F1c2Ugb2YgZmxleGJveGVzIGhhdmUgc29tZSBzcGVjaWFsIGJlaGF2aW9yCiAgICAg
Ly8gcmVnYXJkaW5nIGJhc2VsaW5lcyB0aGF0IHNob3VsZG4ndCBhcHBseSB0byBidXR0b25zLgog
ICAgIExheW91dFVuaXQgYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29yKHN5
bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveCgqdGhpcywgd3JpdGluZ01vZGUoKS5pc0hv
cml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKaW5kZXggNGNlZWZkNGEzYTVlLi42MjI0NzM0YTJm
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogICAgIFJlbmRlckJsb2NrKiBpbm5lclJlbmRlcmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbm5lci5nZXQoKTsgfQogICAgIHZvaWQgc2V0SW5uZXJSZW5kZXJlcihSZW5kZXJC
bG9jayYpOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1v
ZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggNGZlNzA2YTNjNjE4
Li4zOWJiNjk3MTZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgLy8gRmlsZSB1cGxvYWQgYnV0dG9uIGlzIGRpc3BsYXk6IG5vbmUgKHNlZSA6OmZpbGUtc2Vs
ZWN0b3ItYnV0dG9uKS4KLSAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9z
aXRpb24oUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICByZXR1cm4gcm91
bmRUb0ludChiYXNlbGluZVBvc2l0aW9uKCkpOwogICAgICAgICB9KCk7CiAKICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29s
b3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggYjk4ZWY0ZjIwNmNhLi45NWZk
N2NhZGRiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1
dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hpCiAgICAg
UmVuZGVyQmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxleEJveENo
aWxkLCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oTGlu
ZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2Vs
aW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNl
bGluZSgpOwogICAgIGlmICghYmFzZWxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IGJiOWQ2YjAyNTM4Ni4uOGNhNzg3MmZjOGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtNTYsNyAr
NTYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Ecm9wQW5vbnltb3VzQmxvY2tDaGlsZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBsYXlvdXRCbG9jayhSZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMF9sdSkgZmluYWw7CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9u
TW9kZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAKaW5kZXggYmM4Y2QxYWM4ZGExLi40YWM2Njk4MzEzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE5NjgsOSArMTk2OCw4IEBAIGJvb2wgUmVuZGVyR3Jp
ZDo6aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0
ZW0sIEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJG
bGV4aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93LgotTGF5b3V0VW5p
dCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29u
c3QKK0xheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7
CiAgICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNl
bGluZSkKICAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRT
dHlsZSgpLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBW
ZXJ0aWNhbExpbmUsIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBhMjAxNGZlYjg0NWIuLjdmMjc0Y2RjMDU3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0yNjksNyArMjY5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUF1dG9NYXJnaW5zSW5Sb3dBeGlzSWZOZWVkZWQo
UmVuZGVyQm94Jik7CiAgICAgYm9vbCBpc0NoaWxkRWxpZ2libGVGb3JNYXJnaW5UcmltKE1hcmdp
blRyaW1UeXBlLCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBmaW5hbDsKIAotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBj
b25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2Vs
aW5lKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGlu
ZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgU2luZ2xlVGhyZWFkV2Vha1B0cjxSZW5kZXJC
b3g+IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uIGFsaWdubWVudCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCAyNjIxODM0MjZhOTQu
LjBmYmE3ZTBhMmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CkBAIC0zMDYsNyArMzA2LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGUKICAgICByZXR1cm4g
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoZXN0aW1hdGVkVXNl
ZFdpZHRoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbihM
aW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRl
ckltYWdlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IG9mZnNl
dDsKICNpZiBFTkFCTEUoTVVMVElfUkVQUkVTRU5UQVRJT05fSEVJQykKQEAgLTMxNSw3ICszMTUs
NyBAQCBMYXlvdXRVbml0IFJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlv
bk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29ucwogICAgICAgICBvZmZzZXQgPSBMYXlvdXRVbml0
Ojpmcm9tRmxvYXRSb3VuZChtZXRyaWNzLmRlc2NlbnQpOwogICAgIH0KICNlbmRpZgotICAgIHJl
dHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSkgLSBvZmZz
ZXQ7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbigpIC0gb2Zmc2V0Owog
fQogCiB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIG5ld0lt
YWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuaAppbmRleCA1NjQ2MWM5ZGNiZWMuLjk5MGE3ZGIzMDRmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIExh
eW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJy
ZWQgPSBTaG91bGRDb21wdXRlUHJlZmVycmVkOjpDb21wdXRlQWN0dWFsKSBjb25zdCBvdmVycmlk
ZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRVc2VkV2lkdGggPSBzdGQ6Om51bGxvcHQpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBz
aG91bGRDb2xsYXBzZVRvRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcAppbmRleCBjMzNiY2VlZDNlZjcuLmVjMGE1M2FkZDE2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgyMywxMCArODIzLDEw
IEBAIExheW91dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvCiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21G
bG9hdENlaWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5p
dCBSZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9z
aXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdAogewogICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5tZXRyaWNzT2ZQ
cmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuYXNjZW50
KCkgKyAobGluZUhlaWdodChmYWxzZSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBsaW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRy
aWNzLmhlaWdodCgpKSAvIDIgfTsKKyAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNz
LmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFsc2UsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFs
KCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5k
ZXJJbmxpbmU6Om9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94
KiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRl
eCA0M2M2N2NhMzliZGYuLjg3Y2MyYTk1OWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaApAQCAtMTQwLDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXJ0
eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCkgZmluYWwgeyBtX2xlZ2FjeUxpbmVCb3hlcy5kaXJ0eUxp
bmVGcm9tQ2hhbmdlZENoaWxkKCp0aGlzKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZp
bmFsOwogICAgIAogICAgIHZvaWQgdXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCA2ZDc1ODZmNTRiMzcuLjAzOTJiMWJhNzBj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAg
LTcyLDEwICs3MiwxMCBAQCBMYXlvdXRVbml0IFJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlYwogICAgIHJldHVybiAqbV9j
YWNoZWRMaW5lSGVpZ2h0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpbmVCcmVhazo6YmFzZWxp
bmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlv
dXRVbml0IFJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAg
YXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAg
cmV0dXJuIExheW91dFVuaXQgeyAoZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChm
YWxzZSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVy
dGljYWxMaW5lLCBsaW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIp
IH07CisgICAgcmV0dXJuIExheW91dFVuaXQgeyAoZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGlu
ZUhlaWdodChmYWxzZSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxM
aW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJp
Y3MuaGVpZ2h0KCkpIC8gMikgfTsKIH0KIAogaW50IFJlbmRlckxpbmVCcmVhazo6Y2FyZXRNaW5P
ZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5o
CmluZGV4IDVlZDAzOTFlZmYzOS4uMjRlMjZmODU5MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFVuaXQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5l
UG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gMDsgfQogICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCmluZGV4IDNkYTNmODg4ZmQyNy4uZmZiNmJlNTIwYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0zMDgsOSArMzA4LDkgQEAgUmVuZGVyQm94
OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxvZ2lj
YWxIZWlnaHQoTGF5b3UKICAgICByZXR1cm4gUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdo
dChsb2dpY2FsSGVpZ2h0LCBsb2dpY2FsVG9wKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaXN0
Qm94OjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiB7Ci0gICAgYXV0byBiYXNlbGluZSA9IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihsaW5l
UG9zaXRpb25Nb2RlKTsKKyAgICBhdXRvIGJhc2VsaW5lID0gUmVuZGVyQm94OjpiYXNlbGluZVBv
c2l0aW9uKCk7CiAgICAgaWYgKCFzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCiAgICAg
ICAgIGJhc2VsaW5lIC09IGJhc2VsaW5lQWRqdXN0bWVudDsKICAgICByZXR1cm4gYmFzZWxpbmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCBjYTk0YzVkYzg5
ODcuLmNlM2VkY2QwNTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYg
bWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92
ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRl
OwogICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlTG9naWNhbEhlaWdodChM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IDQ2YjZhODQ4Y2JkOS4uNzU1ZWI0
NDUzMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwCkBAIC00MjksMTEgKzQyOSwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6Omxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdAogICAgIHJl
dHVybiBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3Np
dGlvbk1vZGUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9z
aXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAo
IWlzSW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmJhc2VsaW5lUG9zaXRpb24o
UG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNl
bGluZVBvc2l0aW9uKGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gbV9saXN0SXRl
bS0+YmFzZWxpbmVQb3NpdGlvbigpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKIH0KIAogYm9vbCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCBjYzJlOGUz
M2QyZmIuLjcwNmViYjM5NGM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXQo
KSBmaW5hbDsKICAgICB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IElu
dFJlY3QqKSBmaW5hbDsKICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKLSAgICBM
YXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7
CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgTGF5
b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50KSBmaW5hbDsK
ICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5oCmluZGV4IDYzYzkxYzNlY2U2OC4uNDlkMTFiYzNkZWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtMTI5LDkgKzEyOSw5IEBAIHByaXZh
dGU6CiAKICAgICAvLyBGbGV4Ym94IGRlZmluZXMgYmFzZWxpbmVzIGRpZmZlcmVudGx5IHRoYW4g
cmVndWxhciBibG9ja3MuCiAgICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBtZW51
bGlzdHMgbmVlZCB0byBkbyB0aGUgcmVndWxhciBibG9jayBiZWhhdmlvci4KLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qgb3Zl
cnJpZGUKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKHBvc2l0
aW9uKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCk7CiAg
ICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsg
fQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5l
RGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJs
b2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNzYyZTE4ZmI3OGU2Li5mZWUxNzk3OTlmOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC03Miw3ICs3
Miw3IEBAIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBSZW5kZXJTbGlkZXI6OnByb3RlY3RlZEVsZW1l
bnQoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlRm9y
Tm9uQW5vbnltb3VzKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQ
b3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6
OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBQYXRjaCB0aGlzIGZ1
bmN0aW9uIGZvciB3cml0aW5nLW1vZGUuCiAgICAgcmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKaW5kZXggMzI2NTE4Mjcw
MDM1Li5jMDVmM2FmYzE2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBBU0NJSUxpdGVyYWwg
cmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTbGlkZXIiX3M7IH0K
IAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJh
c2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYg
bWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCmluZGV4IGU5MmViOTdiZmE0MC4uZmJkNjQ1MTIwZTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE1ODIsMTEgKzE1ODIsMTEgQEAg
UmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZTo6Y2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxl
Q2VsbCogY2VsbCkgY29uc3QKICAgICByZXR1cm4gY2VsbC0+c2VjdGlvbigpLT5wcmltYXJ5Q2Vs
bEF0KGNlbGwtPnJvd0luZGV4KCksIGVmZkNvbCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGFi
bGU6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7
CiAgICAgaWYgKGF1dG8gYmFzZWxpbmVQb3MgPSBmaXJzdExpbmVCYXNlbGluZSgpKQogICAgICAg
ICByZXR1cm4gKHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1h
cmdpblJpZ2h0KCkpICsgYmFzZWxpbmVQb3MudmFsdWUoKTsKLSAgICByZXR1cm4gUmVuZGVyQm94
OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQb3NpdGlvbk1vZGUpOworICAgIHJldHVybiBSZW5kZXJC
b3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBS
ZW5kZXJUYWJsZTo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggODZkNTFlMDcwZjk5Li40
MDFiMGVhZDQ1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0y
MzEsNyArMjMxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25J
bkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0
QWN0aW9uKSBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5l
KExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmgKaW5kZXggMDM2YzBkMWQ4NDNmLi44OTAxMGMwMGNmZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC04
OCw5ICs4OCw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVy
KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0Q29udHJv
bElubmVyQ29udGFpbmVyKCk7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGlu
ZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUKKyAgICBMYXlvdXRVbml0IGJh
c2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIFJl
bmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIFJl
bmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBS
ZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24p
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5l
KGRpcmVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4IGM1ZjU1YmE5OTNkNC4uNWUwOTRkMGNj
Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZS5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZTo6Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgbGkKICAgICByZXR1cm4gbGluZUhlaWdodCAqIHRleHRBcmVhRWxlbWVudCgpLnJvd3MoKSAr
IG5vbkNvbnRlbnRIZWlnaHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmU6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2Rl
KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6YmFzZWxpbmVQ
b3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlv
bihsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0
aW9uKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmxheW91dEV4Y2x1
ZGVkQ2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApp
bmRleCBkZmRjYzU1MTQ2ZjAuLmEwMTlmMDBkZjRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBnZXRBdmVyYWdlQ2hhcldpZHRoKCkgb3ZlcnJpZGU7
CiAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRDb250ZW50TG9naWNhbFdpZHRoKGZsb2F0IGNoYXJX
aWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udHJvbExvZ2lj
YWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlvdXRVbml0IG5vbkNvbnRlbnRIZWln
aHQpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsK
KyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwCmluZGV4IGY5MmNmMGRmYzQ2Ni4uOTFjMzg5YWE0NDJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNw
cApAQCAtOTUsMTIgKzk1LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6bWlycm9y
SWZOZWVkZWQoTGF5b3V0VW5pdCBob3Jpem9udGFsT2Zmc2V0LCBMYXlvdXQKICAgICByZXR1cm4g
aG9yaXpvbnRhbE9mZnNldDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFz
ZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitM
YXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsK
LSAgICBpZiAobGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCkudmFs
dWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSkpOwor
ICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29yKFJlbmRlckJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uKCkpOwogfQogCiBMYXlvdXRVbml0IHRvVXNlclVuaXRzKGNvbnN0IE1hdGhN
TEVsZW1lbnQ6Okxlbmd0aCYgbGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0
IExheW91dFVuaXQmIHJlZmVyZW5jZVZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IGVkZjRiNGIzOTZiZi4uODBl
NWQwMDQ2YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxCbG9jay5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTcuCiAgICAgdmlydHVhbCBS
ZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9wZXJhdG9yKCkgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475687</attachid>
            <date>2025-06-28 05:38:15 -0700</date>
            <delta_ts>2025-07-01 14:01:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295116-20250628053814.patch</filename>
            <type>text/plain</type>
            <size>34226</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhMjI0ZmRjYzVhZTgxNjMxZWE3NWM5MDZhOTU0YjZlYjcxOTY0YzRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjggSnVuIDIwMjUgMDU6Mzc6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJhc2VsaW5lUG9zaXRpb24ncwogTGluZVBvc2l0aW9u
TW9kZSBpcyB1bnVzZWQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5
NTExNgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpMaW5lUG9zaXRpb25Nb2RlIGlzIGEg
bGVnYWN5IGNvbmNlcHQgZnJvbSB3aGVuIGlubGluZSBsYXlvdXQvcGFpbnQvaGl0dGVzdCBjYWxs
ZWQgaW50byByZW5kZXJlcnMgdG8gZmlndXJlIG91dCB0aGVpciBiYXNlbGluZXMuClRoZXJlJ3Mg
b25seSBvbmUgcGxhY2Ugd2hlcmUgd2UgZG9uJ3QgcGFzcyBpbiBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUgKHNlZSBSZW5kZXJMaXN0TWFya2VyKSBpbiB3aGljaCBjYXNlIFJlbmRlckxpc3RJdGVt
IGFueXdheSBpZ25vcmVzIHRoZSBpbmNvbWluZyB2YWx1ZSBhbmQgZ28gc3RyYWl0IHRvIGZvbnQg
bWV0cmljcy4KKGFsc28sIGFnYWluIGV2ZXIgc2luY2UgSUZDIGF0IHRoZSBwb2ludCB3aGVuIHRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkLCB3ZSBkb24ndCBoYXZlIGxpbmVzIHlldCkKCiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlV
cGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpzZXRJbnRlZ3JhdGlvbkJh
c2VsaW5lKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHA6
CihXZWJDb3JlOjpSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3Jl
OjpSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNw
cDoKKFdlYkNvcmU6OlJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbDo6cGFpbnRDb250cm9sKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcDoKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGlu
ZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmg6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpiYXNlbGlu
ZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKFdlYkNvcmU6
OlJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJh
c2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0aE1MQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaDoKLS0tCiAuLi4vaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25C
b3hHZW9tZXRyeVVwZGF0ZXIuY3BwICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXR0YWNobWVudC5jcHAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwICAgICAgICAgICAgICAgICAgfCA4ICsr
KystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAgICAgICAg
ICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAg
ICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAgICAgICAgICAgICAgICB8
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcCAgICAgICAgICAgICAgICAgICB8IDMgKy0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwICAgICAgICAgICAgICAgICAgfCA0
ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgICAgICAg
ICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
ICAgICAgICAgICAgICAgICB8IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oICAgICAgICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAgICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggICAgICAgICAgICAgICAgfCAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgICAgICAgICAgICAgICAg
fCA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggICAgICAg
ICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcCAgICAgICAgICAgICB8IDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5oICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwICAgICAgICAgICAgICAgICB8IDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCAgICAgICAgICAgICAg
ICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAg
ICAgICAgICAgICAgICB8IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmggICAgICAgICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmggICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICAgfCA0ICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICAgICB8
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
Y3BwICAgICB8IDcgKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxCbG9jay5oICAgICAgIHwgMiArLQogMzUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0
aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdl
b21ldHJ5VXBkYXRlci5jcHAKaW5kZXggZGUyYzQ3NTJjNTI5Li4xMDhlMDYwNzIxMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMzE4LDcg
KzMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgIGlmICghaGFzTm9uU3ludGhldGljQmFzZWxpbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5iYXNl
bGluZVBvc2l0aW9uKFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CisgICAgYXV0byBiYXNlbGlu
ZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6
OkVsZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVn
cmF0aW9uKGJhc2VsaW5lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckF0dGFjaG1lbnQuY3BwCmluZGV4IDBjZDk2Y2NiOTUxNy4uODE2NTM5NDdjYWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgdm9pZCBSZW5kZXJBdHRhY2htZW50OjpsYXlvdXQoKQogICAgICAgICBsYXlvdXRT
aGFkb3dDb250ZW50KG5ld0ludHJpbnNpY1NpemUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckF0
dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAg
aWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudCA9IGF0dGFjaG1lbnRFbGVtZW50KCkud2lkZUxheW91
dEltYWdlRWxlbWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnRSZW5k
ZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaAppbmRleCBjYzcwN2FhMjM4M2QuLmY4NGZjYjhh
ODVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCkBA
IC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwog
Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgTGF5b3V0VW5pdCBtX21pbmltdW1JbnRyaW5zaWNXaWR0aDsKICAgICBib29s
IG1fc2hvdWxkRHJhd0JvcmRlciB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IDcyOTYxYTM2MDA0Ni4uNmU3MGNkNWM2YTFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI0ODcsMTQgKzI0ODcsMTQgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLAogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRD
ZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25N
b2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7CiAgICAgYXV0byBkaXJlY3Rpb24gPSB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgp
ID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7CiAgICAgLy8gSW5saW5lIGJsb2NrcyBh
cmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwogICAgIC8v
IHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUg
dGhlIHJvb3QgbGluZQogICAgIC8vIGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFuIGlu
bGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZlCiAgICAgLy8ganVzdCBsaWtl
IGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAm
JiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgeworICAgIGlm
IChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkpIHsKICAgICAgICAgLy8gRm9y
ICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0IHRoZSBiYXNl
bGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJldHRlciB0byBo
YXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRoZSB0aGVtZQog
ICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3JhZGlvcyB3aWxsIHN0aWxsIGhh
dmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzgsMTEgKzI1MzgsMTEgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlv
bk1vZGUpIGNvbnMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQogICAgICAgICAgICAgcmV0dXJu
IGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFzZWxpbmVQb3Mu
dmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwogCi0gICAgICAg
IHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7Cisg
ICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAKICAg
ICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQo
KSArIChsaW5lSGVpZ2h0KHRydWUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250
TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKKyAgICByZXR1cm4gTGF5b3V0VW5p
dCB7IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxpbmVIZWlnaHQodHJ1ZSwgZGlyZWN0aW9u
LCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8g
MiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6
OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKaW5kZXggNjQxMTIzNjIyNzI3Li5lZDIzMTI5Y2M4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByb3RlY3RlZDoKIHB1Ymxp
YzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVuIGZvciBpbmxpbmUt
YmxvY2suCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
Y29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gRklY
TUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJzIGhhdmUg
bW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGU3NDQ2Y2FkOTU2My4u
N2M5MTIwMjM1MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
NDk5OSw3ICs0OTk5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoYm9vbCAv
KmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24KICAgICByZXR1cm4gMDsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9u
TW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94Ojpi
YXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRP
ckF0b21pY0lubGluZSgpKQogICAgICAgICByZXR1cm4gcm91bmRUb0ludCh3cml0aW5nTW9kZSgp
LmlzSG9yaXpvbnRhbCgpID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2lu
Qm94LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJv
eC5sZWZ0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGI2NzNkNjRl
YjYzNi4uMTMwZjMyN2ZjNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBA
IC01MzAsNyArNTMwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrRm9yUGFnaW5h
dGlvblJlbGF5b3V0SWZOZWVkZWQoKSB7IH0KICAgICAKICAgICBMYXlvdXRVbml0IGxpbmVIZWln
aHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBMYXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA2ZDZj
MDU3ZDk2ZDIuLmUxN2ZlYTk2ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFu
ZCBiYXNlbGluZSBwb3NpdGlvbi4KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCA9IDA7CiAKICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9wdGlvblNl
dDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IGVlZDllMWI1
ZGY2Ni4uZWNmMWEwNzc2YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0
dG9uLmNwcApAQCAtMTY2LDEwICsxNjYsMTAgQEAgc3RhdGljIExheW91dFVuaXQgc3ludGhlc2l6
ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KGNvbnN0IFJlbmRlckJveCYgYm94LCBMaW5lRGkKICAg
ICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm94LmJvcmRlclRvcCgpICsg
Ym94LnBhZGRpbmdUb3AoKSArIGJveC5jb250ZW50Qm94SGVpZ2h0KCkgOiBib3guYm9yZGVyUmln
aHQoKSArIGJveC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50Qm94V2lkdGgoKTsKIH0KIAot
TGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9k
ZSBtb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdAogewogICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCi0gICAg
ICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbihtb2RlKTsKKyAg
ICAgICAgcmV0dXJuIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAg
Ly8gV2UgY2Fubm90IHJlbHkgb24gUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24o
KSBiZWNhdXNlIG9mIGZsZXhib3hlcyBoYXZlIHNvbWUgc3BlY2lhbCBiZWhhdmlvcgogICAgIC8v
IHJlZ2FyZGluZyBiYXNlbGluZXMgdGhhdCBzaG91bGRuJ3QgYXBwbHkgdG8gYnV0dG9ucy4KICAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihzeW50
aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goKnRoaXMsIHdyaXRpbmdNb2RlKCkuaXNIb3Jp
em9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDRjZWVmZDRhM2E1ZS4uNjIyNDczNGEyZjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogaW5uZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1faW5uZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldElubmVyUmVuZGVyZXIoUmVuZGVyQmxv
Y2smKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IDRmZTcwNmEzYzYxOC4u
MzliYjY5NzE2ZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFJlbmRlckZp
bGVVcGxvYWRDb250cm9sOjpwYWludENvbnRyb2woUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IC8vIEZpbGUgdXBsb2FkIGJ1dHRvbiBpcyBkaXNwbGF5OiBub25lIChzZWUgOjpmaWxlLXNlbGVj
dG9yLWJ1dHRvbikuCi0gICAgICAgICAgICByZXR1cm4gcm91bmRUb0ludChiYXNlbGluZVBvc2l0
aW9uKFBvc2l0aW9uT25Db250YWluaW5nTGluZSkpOworICAgICAgICAgICAgcmV0dXJuIHJvdW5k
VG9JbnQoYmFzZWxpbmVQb3NpdGlvbigpKTsKICAgICAgICAgfSgpOwogCiAgICAgICAgIHBhaW50
SW5mby5jb250ZXh0KCkuc2V0RmlsbENvbG9yKHN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9y
V2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5Q29sb3IpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGI5OGVmNGYyMDZjYS4uOTVmZDdj
YWRkYjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRl
Q2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKFJlbmRlckJveCYgZmxleEJveENoaQogICAgIFJl
bmRlckJsb2NrOjpjb21wdXRlQ2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKGZsZXhCb3hDaGls
ZCwgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGlu
ZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxp
bmUoKTsKICAgICBpZiAoIWJhc2VsaW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaAppbmRleCBiYjlkNmIwMjUzODYuLjhjYTc4NzJmYzhhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTU2LDcgKzU2
LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2FuRHJvcEFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogCi0g
ICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxp
bmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5p
dD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1v
ZGUpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CmluZGV4IGJjOGNkMWFjOGRhMS4uNGFjNjY5ODMxM2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwCkBAIC0xOTY4LDkgKzE5NjgsOCBAQCBib29sIFJlbmRlckdyaWQ6
OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVt
LCBHcmlkVAogfQogCiAvLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBzaGFyZWQgYnkgUmVuZGVyRmxl
eGlibGVCb3gsIHNvIGl0IG1pZ2h0IGJlIHJlZmFjdG9yZWQgc29tZWhvdy4KLUxheW91dFVuaXQg
UmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIG1vZGUpIGNvbnN0
CitMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewotICAg
IEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOwog
ICAgIGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpOwogICAgIGlmICghYmFzZWxp
bmUpCiAgICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5
bGUoKSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVy
dGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggYTIwMTRmZWI4NDViLi43ZjI3NGNkYzA1N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjY5LDcgKzI2OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVBdXRvTWFyZ2luc0luUm93QXhpc0lmTmVlZGVkKFJl
bmRlckJveCYpOwogICAgIGJvb2wgaXNDaGlsZEVsaWdpYmxlRm9yTWFyZ2luVHJpbShNYXJnaW5U
cmltVHlwZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3QgZmluYWw7CiAKLSAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29u
c3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGlu
ZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVC
YXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94
PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggMjYyMTgzNDI2YTk0Li4w
ZmJhN2UwYTJhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApA
QCAtMzA2LDcgKzMwNiw3IEBAIExheW91dFVuaXQgUmVuZGVySW1hZ2U6OmNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlCiAgICAgcmV0dXJuIFJl
bmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KGVzdGltYXRlZFVzZWRX
aWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oTGlu
ZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJ
bWFnZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXQ7
CiAjaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMpCkBAIC0zMTUsNyArMzE1LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25N
b2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnMKICAgICAgICAgb2Zmc2V0ID0gTGF5b3V0VW5pdDo6
ZnJvbUZsb2F0Um91bmQobWV0cmljcy5kZXNjZW50KTsKICAgICB9CiAjZW5kaWYKLSAgICByZXR1
cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQb3NpdGlvbk1vZGUpIC0gb2Zmc2V0
OworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSAtIG9mZnNldDsKIH0K
IAogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciBuZXdJbWFn
ZSwgY29uc3QgSW50UmVjdCogcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmgKaW5kZXggNTY0NjFjOWRjYmVjLi45OTBhN2RiMzA0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICBMYXlv
dXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVk
ID0gU2hvdWxkQ29tcHV0ZVByZWZlcnJlZDo6Q29tcHV0ZUFjdHVhbCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkVXNlZFdpZHRoID0gc3RkOjpudWxsb3B0KSBjb25zdCBv
dmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25N
b2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlv
dXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hv
dWxkQ29sbGFwc2VUb0VtcHR5KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAKaW5kZXggYzMzYmNlZWQzZWY3Li5lYzBhNTNhZGQxNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC04MjMsMTAgKzgyMywxMCBA
QCBMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUgLypkaXJlY3RpbwogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxv
YXRDZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiB9CiAKLUxheW91dFVuaXQg
UmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0
aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9u
KCkgY29uc3QKIHsKICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlKCkubWV0cmljc09mUHJp
bWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmFzY2VudCgp
ICsgKGxpbmVIZWlnaHQoZmFsc2UsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jp
em9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmlj
cy5oZWlnaHQoKSkgLyAyIH07CisgICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5h
c2NlbnQoKSArIChsaW5lSGVpZ2h0KGZhbHNlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgp
ID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyIH07CiB9CiAKIExheW91dFNpemUgUmVuZGVy
SW5saW5lOjpvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCog
Y2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXgg
NDNjNjdjYTM5YmRmLi44N2NjMmE5NTlhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmgKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlydHlM
aW5lRnJvbUNoYW5nZWRDaGlsZCgpIGZpbmFsIHsgbV9sZWdhY3lMaW5lQm94ZXMuZGlydHlMaW5l
RnJvbUNoYW5nZWRDaGlsZCgqdGhpcyk7IH0KIAogICAgIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxp
bmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBj
b25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5h
bDsKICAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggNmQ3NTg2ZjU0YjM3Li4wMzkyYjFiYTcwY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCkBAIC03
MiwxMCArNzIsMTAgQEAgTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWMKICAgICByZXR1cm4gKm1fY2Fj
aGVkTGluZUhlaWdodDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5l
UG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGF1
dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJl
dHVybiBMYXlvdXRVbml0IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFs
c2UsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRp
Y2FsTGluZSwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyKSB9
OworICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVI
ZWlnaHQoZmFsc2UsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGlu
ZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSAtIGZvbnRNZXRyaWNz
LmhlaWdodCgpKSAvIDIpIH07CiB9CiAKIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zm
c2V0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApp
bmRleCA1ZWQwMzkxZWZmMzkuLjI0ZTI2Zjg1OTIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWw7CiAKICAgICBMYXlvdXRVbml0IGxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25N
b2RlKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBv
c2l0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KCkgY29uc3QgZmluYWw7CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIDA7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAppbmRleCAzZGEzZjg4OGZkMjcuLmZmYjZiZTUyMGIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMzA4LDkgKzMwOCw5IEBAIFJlbmRlckJveDo6
TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIFJlbmRlckxpc3RCb3g6OmNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KExheW91CiAgICAgcmV0dXJuIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQo
bG9naWNhbEhlaWdodCwgbG9naWNhbFRvcCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGlzdEJv
eDo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAog
ewotICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGluZVBv
c2l0aW9uTW9kZSk7CisgICAgYXV0byBiYXNlbGluZSA9IFJlbmRlckJveDo6YmFzZWxpbmVQb3Np
dGlvbigpOwogICAgIGlmICghc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQogICAgICAg
ICBiYXNlbGluZSAtPSBiYXNlbGluZUFkanVzdG1lbnQ7CiAgICAgcmV0dXJuIGJhc2VsaW5lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggY2E5NGM1ZGM4OTg3
Li5jZTNlZGNkMDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aApAQCAtOTcsNyArOTcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1h
eExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsK
ICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA0NmI2YTg0OGNiZDkuLjc1NWViNDQ1
MzBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNw
cApAQCAtNDI5LDExICs0MjksMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5l
SGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3QKICAgICByZXR1
cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRp
b25Nb2RlKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0
aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQg
UmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKCFp
c0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5iYXNlbGluZVBvc2l0aW9uKFBv
c2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxp
bmVQb3NpdGlvbihsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0t
PmJhc2VsaW5lUG9zaXRpb24oKTsKKyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0
aW9uKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGlzdE1hcmtlcjo6aXNJbnNpZGUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggY2MyZThlMzNk
MmZiLi43MDZlYmIzOTRjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuaApAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0KCkg
ZmluYWw7CiAgICAgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRS
ZWN0KikgZmluYWw7CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5
b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIExheW91
dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkgZmluYWw7CiAg
ICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSYgbmV3U3R5bGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaAppbmRleCA2M2M5MWMzZWNlNjguLjQ5ZDExYmMzZGVhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTEyOSw5ICsxMjksOSBAQCBwcml2YXRl
OgogCiAgICAgLy8gRmxleGJveCBkZWZpbmVzIGJhc2VsaW5lcyBkaWZmZXJlbnRseSB0aGFuIHJl
Z3VsYXIgYmxvY2tzLgogICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgbWVudWxp
c3RzIG5lZWQgdG8gZG8gdGhlIHJlZ3VsYXIgYmxvY2sgYmVoYXZpb3IuCi0gICAgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgcG9zaXRpb24pIGNvbnN0IG92ZXJy
aWRlCisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihwb3NpdGlv
bik7CisgICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAg
IH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0K
ICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9j
azo6aW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDc2MmUxOGZiNzhlNi4uZmVlMTc5Nzk5ZjlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNzIsNyArNzIs
NyBAQCBSZWY8SFRNTElucHV0RWxlbWVudD4gUmVuZGVyU2xpZGVyOjpwcm90ZWN0ZWRFbGVtZW50
KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZUZvck5v
bkFub255bW91cygpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9z
aXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyU2xpZGVyOjpi
YXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogUGF0Y2ggdGhpcyBmdW5j
dGlvbiBmb3Igd3JpdGluZy1tb2RlLgogICAgIHJldHVybiBoZWlnaHQoKSArIG1hcmdpblRvcCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4IDMyNjUxODI3MDAz
NS4uYzA1ZjNhZmMxNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5o
CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJl
bmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU2xpZGVyIl9zOyB9CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1h
eExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcAppbmRleCBlOTJlYjk3YmZhNDAuLmZiZDY0NTEyMGU3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC0xNTgyLDExICsxNTgyLDExIEBAIFJl
bmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGU6OmNlbGxBZnRlcihjb25zdCBSZW5kZXJUYWJsZUNl
bGwqIGNlbGwpIGNvbnN0CiAgICAgcmV0dXJuIGNlbGwtPnNlY3Rpb24oKS0+cHJpbWFyeUNlbGxB
dChjZWxsLT5yb3dJbmRleCgpLCBlZmZDb2wpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRhYmxl
OjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29u
c3QKK0xheW91dFVuaXQgUmVuZGVyVGFibGU6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewog
ICAgIGlmIChhdXRvIGJhc2VsaW5lUG9zID0gZmlyc3RMaW5lQmFzZWxpbmUoKSkKICAgICAgICAg
cmV0dXJuICh3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbWFyZ2luVG9wKCkgOiBtYXJn
aW5SaWdodCgpKSArIGJhc2VsaW5lUG9zLnZhbHVlKCk7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6
YmFzZWxpbmVQb3NpdGlvbihsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICByZXR1cm4gUmVuZGVyQm94
OjpiYXNlbGluZVBvc2l0aW9uKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVu
ZGVyVGFibGU6OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IDg2ZDUxZTA3MGY5OS4uNDAx
YjBlYWQ0NTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMjMx
LDcgKzIzMSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFj
dGlvbikgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBv
c2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShM
aW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5oCmluZGV4IDAzNmMwZDFkODQzZi4uODkwMTBjMDBjZmZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApAQCAtODgs
OSArODgsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2xJ
bm5lckNvbnRhaW5lcigpOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUgcG9zaXRpb24pIGNvbnN0IG92ZXJyaWRlCisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIHJldHVybiBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihwb3NpdGlvbik7CisgICAgICAgIHJldHVybiBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIH0KICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShk
aXJlY3Rpb24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmNwcAppbmRleCBjNWY1NWJhOTkzZDQuLjVlMDk0ZDBjY2Nk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xNdWx0aUxpbmUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIExheW91dFVuaXQgUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmU6OmNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxpCiAgICAgcmV0dXJuIGxpbmVIZWlnaHQgKiB0ZXh0QXJlYUVsZW1lbnQoKS5yb3dzKCkgKyBu
b25Db250ZW50SGVpZ2h0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdAogewotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24o
bGluZVBvc2l0aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlv
bigpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpsYXlvdXRFeGNsdWRl
ZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5k
ZXggZGZkY2M1NTE0NmYwLi5hMDE5ZjAwZGY0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCkBAIC00NCw3ICs0NCw3
IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgZ2V0QXZlcmFnZUNoYXJXaWR0aCgpIG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2ljYWxXaWR0aChmbG9hdCBjaGFyV2lk
dGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2Fs
SGVpZ2h0KExheW91dFVuaXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0
KSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBv
c2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEJsb2NrLmNwcAppbmRleCBmOTJjZjBkZmM0NjYuLjkxYzM4OWFhNDQyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAK
QEAgLTk1LDEyICs5NSw5IEBAIExheW91dFVuaXQgUmVuZGVyTWF0aE1MQmxvY2s6Om1pcnJvcklm
TmVlZGVkKExheW91dFVuaXQgaG9yaXpvbnRhbE9mZnNldCwgTGF5b3V0CiAgICAgcmV0dXJuIGhv
cml6b250YWxPZmZzZXQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTWF0aE1MQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5
b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0g
ICAgaWYgKGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKQot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVl
X29yKFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQb3NpdGlvbk1vZGUpKTsKKyAg
ICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxp
bmVQb3NpdGlvbigpKTsKIH0KIAogTGF5b3V0VW5pdCB0b1VzZXJVbml0cyhjb25zdCBNYXRoTUxF
bGVtZW50OjpMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBM
YXlvdXRVbml0JiByZWZlcmVuY2VWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAppbmRleCBlZGY0YjRiMzk2YmYuLjgwZTVk
MDA0NmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjE3LgogICAgIHZpcnR1YWwgUmVu
ZGVyTWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBM
YXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475718</attachid>
            <date>2025-07-01 06:52:16 -0700</date>
            <delta_ts>2025-07-01 13:40:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295116-20250701065215.patch</filename>
            <type>text/plain</type>
            <size>38290</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmZTliZGYwMTA1NzM1YjViZjQ5Y2M3MjNmMjdmZDBkNWZmNzc1MGFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAwNjo1MTozNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFzZWxpbmVQb3NpdGlvbidzCiBMaW5lUG9zaXRpb25N
b2RlIGlzIHVudXNlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1
MTE2CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcDoKKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21l
dHJ5QWZ0ZXJJbnRlZ3JhdGlvbkxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQ
b3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5jcHA6CihXZWJDb3JlOjpSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9z
aXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaDoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgoo
V2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRl
ckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHA6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVhazo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKFdlYkNvcmU6OlJl
bmRlclNsaWRlcjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRl
ck1hdGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmg6Ci0tLQogLi4uL0xheW91dEludGVn
cmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCAgICAgICAgICB8ICA2ICsrKy0tLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwICAgICAgICB8ICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgICAgICAgIHwgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICAgICAgICAg
fCAxMiArKysrKystLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
ICAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCAgICAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCB8ICA0
ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgICAg
ICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5oICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwICAgICAgICAgICAgICB8ICA3ICsrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmggICAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcCAgICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgICAgICAgICAgICB8ICA3ICsrKy0tLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCAgICAgICAgICAgICAgfCAg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgICAgICAg
ICB8ICA3ICsrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
aCAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwICAgICAgICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmggICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuY3BwICAgICAgICB8ICA2ICsrKy0tLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAgICAgICAgIHwgIDQgKystLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICB8ICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggICAgICAgICAgICAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAgICAgICAg
ICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oICAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmggICAgICAgICB8ICA0ICsrLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5jcHAgfCAgNCArKy0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAgIHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwICAgfCAgNyArKy0tLS0tCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmggIHwgIDIgKy0KIDM1
IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCmluZGV4IGM1YTE1ZDA3
YzM4NS4uMTA4ZTA2MDcyMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21l
dHJ5VXBkYXRlci5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCBzdGF0aWMgaW5saW5lIExheW91dFNp
emUgc2Nyb2xsYmFyTG9naWNhbFNpemUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKICAgICBy
ZXR1cm4geyBob3Jpem9udGFsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciwgdmVydGljYWxTcGFj
ZVJlc2VydmVkRm9yU2Nyb2xsYmFyIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRl
Z3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBXcml0aW5nTW9kZSB3
cml0aW5nTW9kZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNv
bnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogewogICAgIGF1dG8gaGFzTm9uU3ludGhldGljQmFz
ZWxpbmUgPSBbJl0gewogICAgICAgICBpZiAoYXV0byogcmVuZGVyTGlzdE1hcmtlciA9IGR5bmFt
aWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPihyZW5kZXJCb3gpKQpAQCAtMzE4LDcgKzMxOCw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRl
ckJveCYgcmVuZGVyQm94LCBXcml0aW5nTW9kCiAgICAgaWYgKCFoYXNOb25TeW50aGV0aWNCYXNl
bGluZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94
LmJhc2VsaW5lUG9zaXRpb24oZmFsc2UgLyogZmlyc3RMaW5lICovLCB3cml0aW5nTW9kZS5pc0hv
cml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpOworICAgIGF1dG8gYmFzZWxpbmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3Np
dGlvbigpOwogICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRlckJveC5s
YXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihiYXNlbGluZSk7CiB9CiAKQEAg
LTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlQm94R2VvbWV0
cnlBZnRlckludGVncmF0aW9uTGF5b3V0KGNvbnN0IExheW91dDo6RQogCiAgICAgYXV0byBpbnRl
Z3JhdGlvbkFkanVzdG1lbnRzID0gWyZdIHsKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3Vs
ZCBldmVudHVhbGx5IGJlIGFsbCBhYnNvcmJlZCBieSBMRkMgbGF5b3V0LgotICAgICAgICBzZXRJ
bnRlZ3JhdGlvbkJhc2VsaW5lKCpyZW5kZXJCb3gsIHdyaXRpbmdNb2RlKCkpOworICAgICAgICBz
ZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKCpyZW5kZXJCb3gpOwogCiAgICAgICAgIGlmIChhdXRvKiBy
ZW5kZXJMaXN0TWFya2VyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KCpyZW5k
ZXJCb3gpKSB7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5wYXJlbnQoKS5z
dHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFj
aG1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3Bw
CmluZGV4IDdjMDAwMWQ1YmZiZC4uODE2NTM5NDdjYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBS
ZW5kZXJBdHRhY2htZW50OjpsYXlvdXQoKQogICAgICAgICBsYXlvdXRTaGFkb3dDb250ZW50KG5l
d0ludHJpbnNpY1NpemUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckF0dGFjaG1lbnQ6OmJhc2Vs
aW5lUG9zaXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25z
dAogewogICAgIGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnQgPSBhdHRhY2htZW50RWxlbWVudCgp
LndpZGVMYXlvdXRJbWFnZUVsZW1lbnQoKSkgewogICAgICAgICBpZiAoYXV0byogYmFzZWxpbmVF
bGVtZW50UmVuZGVyQm94ID0gYmFzZWxpbmVFbGVtZW50LT5yZW5kZXJCb3goKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKaW5kZXggZTRjNTJlN2I5YTY4
Li5mODRmY2I4YTg1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFj
aG1lbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0
IG1fbWluaW11bUludHJpbnNpY1dpZHRoOwogICAgIGJvb2wgbV9zaG91bGREcmF3Qm9yZGVyIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggY2Nj
MjNiODQ0OGMxLi45Nzc2MjVjZGQ0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtMjQ4NywxMyArMjQ4NywxNCBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
CiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobGluZVN0eWxlLmNvbXB1dGVk
TGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3Np
dGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9z
aXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHdyaXRp
bmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZTsK
ICAgICAvLyBJbmxpbmUgYmxvY2tzIGFyZSByZXBsYWNlZCBlbGVtZW50cy4gT3RoZXJ3aXNlLCBq
dXN0IHBhc3Mgb2ZmIHRvCiAgICAgLy8gdGhlIGJhc2UgY2xhc3MuICBJZiB3ZSdyZSBiZWluZyBx
dWVyaWVkIGFzIHRob3VnaCB3ZSdyZSB0aGUgcm9vdCBsaW5lCiAgICAgLy8gYm94LCB0aGVuIHRo
ZSBmYWN0IHRoYXQgd2UncmUgYW4gaW5saW5lLWJsb2NrIGlzIGlycmVsZXZhbnQsIGFuZCB3ZSBi
ZWhhdmUKICAgICAvLyBqdXN0IGxpa2UgYSBibG9jay4KLSAgICBpZiAoaXNCbG9ja0xldmVsUmVw
bGFjZWRPckF0b21pY0lubGluZSgpICYmIGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSB7CisgICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxp
bmUoKSkgewogICAgICAgICAvLyBGb3IgImxlYWYiIHRoZW1lIG9iamVjdHMsIGxldCB0aGUgdGhl
bWUgZGVjaWRlIHdoYXQgdGhlIGJhc2VsaW5lIHBvc2l0aW9uIGlzLgogICAgICAgICAvLyBGSVhN
RTogTWlnaHQgYmUgYmV0dGVyIHRvIGhhdmUgYSBjdXN0b20gQ1NTIHByb3BlcnR5IGluc3RlYWQs
IHNvIHRoYXQgaWYgdGhlIHRoZW1lCiAgICAgICAgIC8vIGlzIHR1cm5lZCBvZmYsIGNoZWNrYm94
ZXMvcmFkaW9zIHdpbGwgc3RpbGwgaGF2ZSBkZWNlbnQgYmFzZWxpbmVzLgpAQCAtMjUzNywxMiAr
MjUzOCwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlYwogICAgICAgICBpZiAoYmFzZWxpbmVQ
b3MpCiAgICAgICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFy
Z2luVG9wKCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpIDogbWFyZ2luUmlnaHQoKSArIGJhc2VsaW5l
UG9zLnZhbHVlKCk7CiAKLSAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlv
bihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVy
biBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAKLSAgICBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogdGhpcy0+c3R5
bGUoKTsKLSAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNz
T2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50
QXNjZW50KCkgKyAobGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9u
TW9kZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKKyAgICBjb25z
dCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250
KCk7CisgICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQoKSArIChs
aW5lSGVpZ2h0KHRydWUsIGRpcmVjdGlvbiwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSAtIGZv
bnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIgfS50b0ludCgpOwogfQogCiBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDIxZDNmNzZmNGMwNy4uZWQyMzEy
OWNjODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjcsNyAr
NjcsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBh
cmUgb3ZlcnJpZGRlbiBmb3IgaW5saW5lLWJsb2NrLgogICAgIExheW91dFVuaXQgbGluZUhlaWdo
dChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8g
RklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJzIGhh
dmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDk1MGRkOWRlMWY4
NC4uZDU4OTQ3YzU2YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApA
QCAtNDk2NywxMCArNDk2NywxMCBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodChi
b29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbgogICAgIHJldHVy
biAwOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8q
Zmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9k
ZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjpiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0
b21pY0lubGluZSgpKQotICAgICAgICByZXR1cm4gcm91bmRUb0ludChkaXJlY3Rpb24gPT0gSG9y
aXpvbnRhbExpbmUgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3gu
Ym90dG9tKCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94Lmxl
ZnQoKSk7CisgICAgICAgIHJldHVybiByb3VuZFRvSW50KHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9u
dGFsKCkgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9t
KCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKSk7
CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRl
eCBhODRiNzA2ZTczZDguLjFjYzAxNDRmMWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFy
a0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCkgeyB9CiAgICAgCiAgICAgTGF5b3V0VW5p
dCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBM
YXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCAzYmJhNjU2ZTJkMjcuLmUx
N2ZlYTk2ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBPdmVycmlk
ZGVuIGJ5IHN1YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBw
b3NpdGlvbi4KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFp
bmluZ0xpbmUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3Np
dGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0ID0gMDsKIAogICAgIHZvaWQgbWFwQWJzb2x1
dGVUb0xvY2FsUG9pbnQoT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0
YXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1
dHRvbi5jcHAKaW5kZXggMDA2ODNjNTliMzY2Li5lY2YxYTA3NzZhNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0xNjYsMTQgKzE2NiwxNCBAQCBzdGF0
aWMgTGF5b3V0VW5pdCBzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goY29uc3QgUmVu
ZGVyQm94JiBib3gsIExpbmVEaQogICAgIHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExp
bmUgPyBib3guYm9yZGVyVG9wKCkgKyBib3gucGFkZGluZ1RvcCgpICsgYm94LmNvbnRlbnRCb3hI
ZWlnaHQoKSA6IGJveC5ib3JkZXJSaWdodCgpICsgYm94LnBhZGRpbmdSaWdodCgpICsgYm94LmNv
bnRlbnRCb3hXaWR0aCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5l
UG9zaXRpb25Nb2RlIG1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJ1dHRvbjo6YmFzZWxp
bmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9u
KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBtb2RlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckZsZXhp
YmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgLy8gV2UgY2Fubm90IHJlbHkgb24gUmVu
ZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSBiZWNhdXNlIG9mIGZsZXhib3hlcyBo
YXZlIHNvbWUgc3BlY2lhbCBiZWhhdmlvcgogICAgIC8vIHJlZ2FyZGluZyBiYXNlbGluZXMgdGhh
dCBzaG91bGRuJ3QgYXBwbHkgdG8gYnV0dG9ucy4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lID0g
Zmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRl
bnRCb3goKnRoaXMsIGRpcmVjdGlvbikpOwotICAgIExheW91dFVuaXQgbWFyZ2luQXNjZW50ID0g
ZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgp
OworICAgIExheW91dFVuaXQgYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29y
KHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveCgqdGhpcywgd3JpdGluZ01vZGUoKS5p
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CisgICAgTGF5
b3V0VW5pdCBtYXJnaW5Bc2NlbnQgPSB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbWFy
Z2luVG9wKCkgOiBtYXJnaW5SaWdodCgpOwogICAgIHJldHVybiBiYXNlbGluZSArIG1hcmdpbkFz
Y2VudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1
dHRvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDg3
Y2YzYWVmNGQwMy4uNjIyNDczNGEyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJ1dHRvbi5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogaW5u
ZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5uZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNl
dElubmVyUmVuZGVyZXIoUmVuZGVyQmxvY2smKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1v
ZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZjAwODk1YzRiN2Y0
Li4zOWJiNjk3MTZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9z
aXRpb24odHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICAvLyBG
aWxlIHVwbG9hZCBidXR0b24gaXMgZGlzcGxheTogbm9uZSAoc2VlIDo6ZmlsZS1zZWxlY3Rvci1i
dXR0b24pLgorICAgICAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoYmFzZWxpbmVQb3NpdGlvbigp
KTsKICAgICAgICAgfSgpOwogCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0RmlsbENv
bG9yKHN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yV2l0aENvbG9yRmlsdGVyKENTU1Byb3Bl
cnR5Q29sb3IpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwCmluZGV4IDhhNmFlNTNiYzM2OC4uZmEyYTM1ZDRiMmE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTI2NCwxMyArMjY0LDEz
IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxX
aWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hpCiAgICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVDaGls
ZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxleEJveENoaWxkLCBtaW5QcmVmZXJyZWRMb2dpY2Fs
V2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
RmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJs
ZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgYXV0byBiYXNlbGluZSA9IGZp
cnN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNlbGluZSkKLSAgICAgICAgcmV0dXJuIHN5
bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHlsZSgpLCBkaXJlY3Rpb24sIEJvcmRl
ckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHJldHVybiBzeW50aGVzaXpl
ZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUoKSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250
YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2lu
TG9naWNhbEhlaWdodCgpOwogCi0gICAgcmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoZGlyZWN0
aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0lu
dCgpOworICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKHdyaXRpbmdNb2RlKCkuaXNIb3Jp
em9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkpLnRvSW50KCk7CiB9CiAKIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyRmxleGlibGVCb3g6OmZpcnN0TGluZUJhc2Vs
aW5lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmgKaW5kZXggZTY4Y2FkMjA3NmUzLi44Y2E3ODcyZmM4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGNhbkRyb3BBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKIAotICAgIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFz
ZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDcwMDJmODhkYTQ2Ny4uMzI3OTBhMTZjOGEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0yMDEyLDE0ICsyMDEy
LDEzIEBAIGJvb2wgUmVuZGVyR3JpZDo6aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNv
bnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2lj
IGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3Jl
ZCBzb21laG93LgotTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKGJvb2ws
IExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25z
dAorTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsK
ICAgICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2Vs
aW5lKQotICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0
eWxlKCksIGRpcmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKKyAg
ICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHlsZSgpLCB3
cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CiAKLSAgICByZXR1cm4gYmFz
ZWxpbmUudmFsdWUoKSArIChkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBtYXJnaW5Ub3Ao
KSA6IG1hcmdpblJpZ2h0KCkpLnRvSW50KCk7CisgICAgcmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkg
KyAod3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmln
aHQoKSkudG9JbnQoKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJHcmlk
OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaAppbmRleCA4NmIxZWNlMmVhMzguLjdmMjc0Y2RjMDU3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0yNjksNyArMjY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZUF1dG9NYXJnaW5zSW5Sb3dBeGlzSWZOZWVkZWQoUmVuZGVyQm94Jik7CiAgICAgYm9v
bCBpc0NoaWxkRWxpZ2libGVGb3JNYXJnaW5UcmltKE1hcmdpblRyaW1UeXBlLCBjb25zdCBSZW5k
ZXJCb3gmKSBjb25zdCBmaW5hbDsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxp
bmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBmaW5hbDsKICAgICBTaW5nbGVUaHJlYWRX
ZWFrUHRyPFJlbmRlckJveD4gZ2V0QmFzZWxpbmVHcmlkSXRlbShJdGVtUG9zaXRpb24gYWxpZ25t
ZW50KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4
IGNlZWE2YWJjYWIwZi4uMGZiYTdlMGEyYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCBMYXlvdXRVbml0IFJlbmRlckltYWdl
Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
ZQogICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdo
dChlc3RpbWF0ZWRVc2VkV2lkdGgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckltYWdlOjpiYXNl
bGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
IExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIExheW91dFVuaXQgb2Zm
c2V0OwogI2lmIEVOQUJMRShNVUxUSV9SRVBSRVNFTlRBVElPTl9IRUlDKQpAQCAtMzE1LDcgKzMx
NSw3IEBAIExheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjCiAgICAgICAgIG9mZnNldCA9IExheW91dFVu
aXQ6OmZyb21GbG9hdFJvdW5kKG1ldHJpY3MuZGVzY2VudCk7CiAgICAgfQogI2VuZGlmCi0gICAg
cmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwg
bGluZVBvc2l0aW9uTW9kZSkgLSBvZmZzZXQ7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxp
bmVQb3NpdGlvbigpIC0gb2Zmc2V0OwogfQogCiB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5n
ZWQoV3JhcHBlZEltYWdlUHRyIG5ld0ltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCAwNTFkMTU2NGMzMTIuLjk5MGE3ZGIz
MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTEzOCw3ICsx
MzgsNyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgPSBTaG91bGRDb21wdXRlUHJlZmVycmVkOjpDb21w
dXRlQWN0dWFsKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRVc2VkV2lk
dGggPSBzdGQ6Om51bGxvcHQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29s
IHNob3VsZENvbGxhcHNlVG9FbXB0eSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDkwOGY2MmI3OTU0Yi4uZWMwYTUzYWRkMTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtODIzLDExICs4MjMs
MTAgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW8KICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogfQogCi1MYXlvdXRV
bml0IFJlbmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiB7Ci0gICAgYXV0byYgc3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogdGhp
cy0+c3R5bGUoKTsKLSAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5hc2NlbnQoKSAr
IChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAtIGZv
bnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKKyAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxl
KCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKKyAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRN
ZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFsc2UsIHdyaXRpbmdNb2RlKCkuaXNIb3Jp
em9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKIH0KIAogTGF5b3V0U2l6
ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVu
ZGVyQm94KiBjaGlsZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aAppbmRleCA3NWU2ZGIyZDg3ZDEuLjg3Y2MyYTk1OWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTQwLDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCkgZmluYWwgeyBtX2xlZ2FjeUxpbmVCb3hlcy5k
aXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCp0aGlzKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9k
ZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGlu
ZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Cisg
ICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAg
dm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2lu
dCYpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJyZWFrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwCmluZGV4IDRiNGQ3ODMyM2NlZC4uMDM5MmIxYmE3MGNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcApAQCAtNzIsMTEgKzcyLDEwIEBA
IExheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjCiAgICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWlnaHQ7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUg
bGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZp
cnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0g
c3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChm
b250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBs
aW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIpIH07CisgICAgYXV0
byYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CisgICAgcmV0
dXJuIExheW91dFVuaXQgeyAoZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxz
ZSwgd3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkp
IC8gMikgfTsKIH0KIAogaW50IFJlbmRlckxpbmVCcmVhazo6Y2FyZXRNaW5PZmZzZXQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCmluZGV4IGRmMTE5
OGE1ZmNkNS4uMjRlMjZmODU5MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZVNl
bGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOworICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5p
dCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2Y1M2JiOGFiNmFhLi5mZmI2YmU1MjBi
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMw
OCw5ICszMDgsOSBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5k
ZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdQogICAgIHJldHVybiBSZW5kZXJC
b3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxUb3ApOwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGlu
ZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQ
b3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0byBiYXNlbGluZSA9IFJlbmRlckJveDo6YmFzZWxp
bmVQb3NpdGlvbihmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwor
ICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICBp
ZiAoIXNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAgICAgYmFzZWxpbmUgLT0g
YmFzZWxpbmVBZGp1c3RtZW50OwogICAgIHJldHVybiBiYXNlbGluZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDRhNTQ3M2ZlMjMwNC4uY2UzZWRjZDA1M2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTk3LDcgKzk3
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMo
TGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMo
KSBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29t
cHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxv
Z2ljYWxUb3ApIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCAx
MTZmOGE2MjMxNWUuLmE0MmFiNzYzNjNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtNDI5LDExICs0MjksMTEgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlY3QKICAgICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSwg
ZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaXN0
TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAg
ICAgaWYgKCFpc0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5iYXNlbGluZVBv
c2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMp
OwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJl
Y3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFz
ZWxpbmVQb3NpdGlvbigpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24o
KTsKIH0KIAogYm9vbCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCAyNThjNmEwYjJkMzIu
LjcwNmViYjM5NGM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXQoKSBmaW5h
bDsKICAgICB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3Qq
KSBmaW5hbDsKICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wg
Y2xpcFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFsOwogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFm
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggNTUwMmQxNzc4Mzg5
Li40OWQxMWJjM2RlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5oCkBAIC0xMjksOSArMTI5LDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZsZXhib3ggZGVmaW5l
cyBiYXNlbGluZXMgZGlmZmVyZW50bHkgdGhhbiByZWd1bGFyIGJsb2Nrcy4KICAgICAvLyBGb3Ig
YmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG1lbnVsaXN0cyBuZWVkIHRvIGRvIHRoZSByZWd1bGFy
IGJsb2NrIGJlaGF2aW9yLgotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIHBv
c2l0aW9uKSBjb25zdCBvdmVycmlkZQorICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIHBvc2l0aW9uKTsKKyAgICAgICAgcmV0
dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJl
Y3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jh
c2VsaW5lKGRpcmVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAKaW5kZXggNTQzOTI5ODZmMjZhLi5mZWUxNzk3OTlmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBAIFJlZjxIVE1MSW5w
dXRFbGVtZW50PiBSZW5kZXJTbGlkZXI6OnByb3RlY3RlZEVsZW1lbnQoKSBjb25zdAogICAgIHJl
dHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlRm9yTm9uQW5vbnltb3VzKCkpOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8qZmly
c3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5
b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIC8v
IEZJWE1FOiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5nLW1vZGUuCiAgICAgcmV0dXJu
IGhlaWdodCgpICsgbWFyZ2luVG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmgKaW5kZXggNTgzZDgyMzE4YjY3Li5jMDVmM2FmYzE2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBBU0NJSUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJSZW5kZXJTbGlkZXIiX3M7IH0KIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAKaW5kZXggZjFjMTQxZWQ0ZTFkLi5mYmQ2NDUxMjBlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU4MiwxMSArMTU4MiwxMSBAQCBS
ZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpjZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFibGVD
ZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBjZWxsLT5zZWN0aW9uKCktPnByaW1hcnlDZWxs
QXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJs
ZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRV
bml0IFJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0
byBiYXNlbGluZVBvcyA9IGZpcnN0TGluZUJhc2VsaW5lKCkpCi0gICAgICAgIHJldHVybiAoZGly
ZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKSAr
IGJhc2VsaW5lUG9zLnZhbHVlKCk7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3Np
dGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJl
dHVybiAod3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFyZ2lu
UmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJh
c2VsaW5lUG9zaXRpb24oKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJU
YWJsZTo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggMTljOTc0NDFlNWMwLi40MDFiMGVh
ZDQ1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0yMzEsNyAr
MjMxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KSBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRl
eCA4MmUzMmMzOThkZmQuLjg5MDEwYzAwY2ZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg4LDkgKzg4LDkgQEAgcHVibGljOgogICAgIFJl
bmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwog
ICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIoKTsKIAotICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAgICAgewot
ICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBk
aXJlY3Rpb24sIHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGlu
ZVBvc2l0aW9uKCk7CiAgICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RM
aW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RM
aW5lQmFzZWxpbmUoKTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxv
Y2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmUuY3BwCmluZGV4IDg0YjNkNmY0MWIyMC4uNWUwOTRkMGNjY2QwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5j
cHAKQEAgLTk4LDkgKzk4LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZTo6Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGkKICAgICByZXR1cm4g
bGluZUhlaWdodCAqIHRleHRBcmVhRWxlbWVudCgpLnJvd3MoKSArIG5vbkNvbnRlbnRIZWlnaHQ7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9z
aXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBv
c2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBv
c2l0aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwog
fQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpsYXlvdXRFeGNsdWRlZENoaWxk
cmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggZGUx
N2FkYTNmNWJhLi5hMDE5ZjAwZGY0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCkBAIC00NCw3ICs0NCw3IEBAIHBy
aXZhdGU6CiAgICAgZmxvYXQgZ2V0QXZlcmFnZUNoYXJXaWR0aCgpIG92ZXJyaWRlOwogICAgIExh
eW91dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2ljYWxXaWR0aChmbG9hdCBjaGFyV2lkdGgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0
KExheW91dFVuaXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25z
dCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihS
ZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmluZGV4IDVkMTY3YWVkNzY4
Ny4uOTFjMzg5YWE0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtOTUsMTIgKzk1LDkgQEAgTGF5b3V0VW5p
dCBSZW5kZXJNYXRoTUxCbG9jazo6bWlycm9ySWZOZWVkZWQoTGF5b3V0VW5pdCBob3Jpem9udGFs
T2Zmc2V0LCBMYXlvdXQKICAgICByZXR1cm4gaG9yaXpvbnRhbE9mZnNldDsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9mSW50
ZXJpb3JMaW5lQm94ZXMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGZpcnN0TGlu
ZUJhc2VsaW5lKCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RM
aW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpKTsKKyAgICByZXR1cm4gZmlyc3RMaW5l
QmFzZWxpbmUoKS52YWx1ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpKTsKIH0K
IAogTGF5b3V0VW5pdCB0b1VzZXJVbml0cyhjb25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIGxl
bmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBMYXlvdXRVbml0JiByZWZlcmVu
Y2VWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suaAppbmRleCBiMDViNmVkMDY1NGQuLjgwZTVkMDA0NmM3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaApA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc4NjE3LgogICAgIHZpcnR1YWwgUmVuZGVyTWF0aE1MT3BlcmF0b3Iq
IHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7Cg==
</data>
<flag name="commit-queue"
          id="499068"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475725</attachid>
            <date>2025-07-01 14:01:06 -0700</date>
            <delta_ts>2025-07-14 19:00:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295116-20250701140106.patch</filename>
            <type>text/plain</type>
            <size>34341</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3Nzk4NDZjZTVhZjBmOGU0NmM0ZDdkY2RmYTUyZDY1Mzg2OTBlM2FhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxMzo1OTo1OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFzZWxpbmVQb3NpdGlvbidzCiBMaW5lUG9zaXRpb25N
b2RlIGlzIHVudXNlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1
MTE2CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCkxpbmVQb3NpdGlvbk1vZGUgaXMgYSBs
ZWdhY3kgY29uY2VwdCBmcm9tIHdoZW4gaW5saW5lIGxheW91dC9wYWludC9oaXR0ZXN0IGNhbGxl
ZCBpbnRvIHJlbmRlcmVycyB0byBmaWd1cmUgb3V0IHRoZWlyIGJhc2VsaW5lcy4KVGhlcmUncyBv
bmx5IG9uZSBwbGFjZSB3aGVyZSB3ZSBkb24ndCBwYXNzIGluIFBvc2l0aW9uT25Db250YWluaW5n
TGluZSAoc2VlIFJlbmRlckxpc3RNYXJrZXIpIGluIHdoaWNoIGNhc2UgUmVuZGVyTGlzdEl0ZW0g
YW55d2F5IGlnbm9yZXMgdGhlIGluY29taW5nIHZhbHVlIGFuZCBnbyBzdHJhaXQgdG8gZm9udCBt
ZXRyaWNzLgooYWxzbywgYWdhaW4gZXZlciBzaW5jZSBJRkMgYXQgdGhlIHBvaW50IHdoZW4gdGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQsIHdlIGRvbid0IGhhdmUgbGluZXMgeWV0KQoKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnNldEludGVncmF0aW9uQmFz
ZWxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcDoK
KFdlYkNvcmU6OlJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6
OlJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjpwYWludENvbnRyb2wpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24gY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVySW5saW5l
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0Qm94
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24gY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmJhc2VsaW5l
UG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6
UmVuZGVyVGFibGU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxCbG9jay5oOgotLS0KIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJv
eEdlb21ldHJ5VXBkYXRlci5jcHAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJBdHRhY2htZW50LmNwcCAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICAgICAgICAgICAgICB8IDggKysr
Ky0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oICAgICAgICAgICAg
ICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAg
ICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaCAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwICAgICAgICAgICAgICAgICB8IDQgKystLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oICAgICAgICAgICAgICAgICAgIHwg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcCAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmggICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwICAgICAgICAgICAgICAgICAgIHwgMyArLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmggICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgICAgICAgICAgICAgICAgICB8IDQg
KystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICAgICAgICAg
ICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAg
ICAgICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmggICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmNwcCAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaCAgICAgICAgICAgICAgICB8IDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCAgICAgICAgICAgICAgICB8
IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgICAgICAg
ICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwICAgICAgICAgICAgIHwgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmggICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oICAgICAgICAgICAgICAgICB8IDQgKystLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICAgICAgIHwgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oICAgICAgICAgICAgICAg
ICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCAgICAg
ICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaCAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2wuaCAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgICB8IDQgKystLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggICAgIHwg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5j
cHAgICAgIHwgNyArKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTEJsb2NrLmggICAgICAgfCAyICstCiAzNSBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRp
b25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2Vv
bWV0cnlVcGRhdGVyLmNwcAppbmRleCBkZTJjNDc1MmM1MjkuLjEwOGUwNjA3MjExZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0zMTgsNyAr
MzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3Qg
UmVuZGVyQm94JiByZW5kZXJCb3gpCiAgICAgaWYgKCFoYXNOb25TeW50aGV0aWNCYXNlbGluZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmJhc2Vs
aW5lUG9zaXRpb24oUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKKyAgICBhdXRvIGJhc2VsaW5l
ID0gcmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICBjb25zdF9jYXN0PExheW91dDo6
RWxlbWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdy
YXRpb24oYmFzZWxpbmUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QXR0YWNobWVudC5jcHAKaW5kZXggMGNkOTZjY2I5NTE3Li44MTY1Mzk0N2NhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKQEAgLTEwMyw3ICsx
MDMsNyBAQCB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OmxheW91dCgpCiAgICAgICAgIGxheW91dFNo
YWRvd0NvbnRlbnQobmV3SW50cmluc2ljU2l6ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQXR0
YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBp
ZiAoYXV0byogYmFzZWxpbmVFbGVtZW50ID0gYXR0YWNobWVudEVsZW1lbnQoKS53aWRlTGF5b3V0
SW1hZ2VFbGVtZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudFJlbmRl
ckJveCA9IGJhc2VsaW5lRWxlbWVudC0+cmVuZGVyQm94KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCmluZGV4IGNjNzA3YWEyMzgzZC4uZjg0ZmNiOGE4
NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKQEAg
LTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBMYXlvdXRVbml0IG1fbWluaW11bUludHJpbnNpY1dpZHRoOwogICAgIGJvb2wg
bV9zaG91bGREcmF3Qm9yZGVyIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggYTk3ODlkYjAyNWY0Li41ZWNmYjI1OTBkM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjQ4NywxNCArMjQ4NywxNCBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sCiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENl
aWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1v
ZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCkgY29u
c3QKIHsKICAgICBhdXRvIGRpcmVjdGlvbiA9IGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9k
ZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7CiAgICAg
Ly8gSW5saW5lIGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBw
YXNzIG9mZiB0bwogICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmll
ZCBhcyB0aG91Z2ggd2UncmUgdGhlIHJvb3QgbGluZQogICAgIC8vIGJveCwgdGhlbiB0aGUgZmFj
dCB0aGF0IHdlJ3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZl
CiAgICAgLy8ganVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2Vk
T3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSkgeworICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkp
IHsKICAgICAgICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRl
Y2lkZSB3aGF0IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1p
Z2h0IGJlIGJldHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0
aGF0IGlmIHRoZSB0aGVtZQogICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3Jh
ZGlvcyB3aWxsIHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzgsMTEgKzI1Mzgs
MTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQog
ICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRv
cCgpICsgYmFzZWxpbmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52
YWx1ZSgpOwogCi0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGlu
ZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKTsKICAgICB9CiAKICAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHls
ZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250
TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KHRydWUsIGRpcmVjdGlvbiwgbGluZVBv
c2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKKyAg
ICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxpbmVIZWln
aHQodHJ1ZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJp
Y3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggNjQxMTIzNjIyNzI3Li5lZDIzMTI5Y2M4NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02Nyw3ICs2Nyw3IEBA
IHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVy
cmlkZGVuIGZvciBpbmxpbmUtYmxvY2suCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgLy8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVu
IGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUxpbmVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IDNmN2NkNGM2Mjk5YS4uMDEyZDJiNGMxN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcApAQCAtNDk2Nyw3ICs0OTY3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6
OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24KICAgICByZXR1cm4gMDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoaXNC
bG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpKQogICAgICAgICByZXR1cm4gcm91bmRU
b0ludChjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1f
bWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFy
Z2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gubGVmdCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA4YjNiOTYwY2NjOTguLjFjYzAxNDRmMWMwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVk
KCkgeyB9CiAgICAgCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExp
bmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRl
OworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5p
dCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggNmQ2YzA1N2Q5NmQyLi5lMTdmZWE5NmY1
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiAgICAgLy8gT3ZlcnJpZGRlbiBieSBz
dWJjbGFzc2VzIHRvIGRldGVybWluZSBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgcG9zaXRpb24u
CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGlu
ZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgPSAwOwogCiAgICAg
dm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2Rl
PiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCAyOTQ4YjU2YzYzOWYuLjRkYzMzMTBiYWVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAgLTE2NiwxMCAr
MTY2LDEwIEBAIHN0YXRpYyBMYXlvdXRVbml0IHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVu
dEJveChjb25zdCBSZW5kZXJCb3gmIGJveCwgTGluZURpCiAgICAgcmV0dXJuIGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IGJveC5ib3JkZXJUb3AoKSArIGJveC5wYWRkaW5nVG9wKCkgKyBi
b3guY29udGVudEJveEhlaWdodCgpIDogYm94LmJvcmRlclJpZ2h0KCkgKyBib3gucGFkZGluZ1Jp
Z2h0KCkgKyBib3guY29udGVudEJveFdpZHRoKCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQnV0
dG9uOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAo
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyRmxl
eGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24obW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJG
bGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIC8vIFdlIGNhbm5vdCByZWx5IG9u
IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgYmVjYXVzZSBvZiBmbGV4Ym94
ZXMgaGF2ZSBzb21lIHNwZWNpYWwgYmVoYXZpb3IKICAgICAvLyByZWdhcmRpbmcgYmFzZWxpbmVz
IHRoYXQgc2hvdWxkbid0IGFwcGx5IHRvIGJ1dHRvbnMuCiAgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZSA9IGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6ZWRCYXNlbGluZUZyb21D
b250ZW50Qm94KCp0aGlzLCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6
b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKaW5kZXggNGNlZWZkNGEzYTVlLi42MjI0NzM0YTJmNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKQEAgLTY2LDcgKzY2LDcg
QEAgcHVibGljOgogICAgIFJlbmRlckJsb2NrKiBpbm5lclJlbmRlcmVyKCkgY29uc3QgeyByZXR1
cm4gbV9pbm5lci5nZXQoKTsgfQogICAgIHZvaWQgc2V0SW5uZXJSZW5kZXJlcihSZW5kZXJCbG9j
ayYpOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZv
aWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggNGZlNzA2YTNjNjE4Li4z
OWJiNjk3MTZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Ly8gRmlsZSB1cGxvYWQgYnV0dG9uIGlzIGRpc3BsYXk6IG5vbmUgKHNlZSA6OmZpbGUtc2VsZWN0
b3ItYnV0dG9uKS4KLSAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRp
b24oUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICByZXR1cm4gcm91bmRU
b0ludChiYXNlbGluZVBvc2l0aW9uKCkpOwogICAgICAgICB9KCk7CiAKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3JX
aXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggYjNmYjNhNTFmY2Q5Li4xOWU3NWJk
NzhjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVD
aGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hpCiAgICAgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxleEJveENoaWxk
LCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5l
UG9zaXRpb24oKSBjb25zdAogewogICAgIGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGlu
ZSgpOwogICAgIGlmICghYmFzZWxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oCmluZGV4IGJiOWQ2YjAyNTM4Ni4uOGNhNzg3MmZjOGE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Ecm9wQW5vbnltb3VzQmxvY2tDaGlsZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBsYXlvdXRCbG9jayhSZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMF9sdSkgZmluYWw7CiAKLSAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
aW5kZXggNWI0ZTgyMDg5ZDY5Li4wZTg5Yzk3YWU2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKQEAgLTIwMTIsOSArMjAxMiw4IEBAIGJvb2wgUmVuZGVyR3JpZDo6
aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0s
IEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4
aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93LgotTGF5b3V0VW5pdCBS
ZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CiAg
ICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNlbGlu
ZSkKICAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHls
ZSgpLCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhl
aWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggYTIwMTRmZWI4
NDViLi43ZjI3NGNkYzA1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApA
QCAtMjY5LDcgKzI2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVBdXRvTWFyZ2luc0lu
Um93QXhpc0lmTmVlZGVkKFJlbmRlckJveCYpOwogICAgIGJvb2wgaXNDaGlsZEVsaWdpYmxlRm9y
TWFyZ2luVHJpbShNYXJnaW5UcmltVHlwZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3QgZmluYWw7
CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVh
ZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGln
bm1lbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5k
ZXggMjYyMTgzNDI2YTk0Li4wZmJhN2UwYTJhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIExheW91dFVuaXQgUmVuZGVySW1h
Z2U6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBlCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0KGVzdGltYXRlZFVzZWRXaWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJh
c2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAor
TGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAg
TGF5b3V0VW5pdCBvZmZzZXQ7CiAjaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMp
CkBAIC0zMTUsNyArMzE1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnMKICAgICAgICAgb2Zm
c2V0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobWV0cmljcy5kZXNjZW50KTsKICAgICB9
CiAjZW5kaWYKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQb3Np
dGlvbk1vZGUpIC0gb2Zmc2V0OworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKSAtIG9mZnNldDsKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdyYXBw
ZWRJbWFnZVB0ciBuZXdJbWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggNTY0NjFjOWRjYmVjLi45OTBhN2RiMzA0ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91
bGRDb21wdXRlUHJlZmVycmVkID0gU2hvdWxkQ29tcHV0ZVByZWZlcnJlZDo6Q29tcHV0ZUFjdHVh
bCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
SGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkVXNlZFdpZHRoID0gc3Rk
OjpudWxsb3B0KSBjb25zdCBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBv
dmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VUb0VtcHR5KCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggNzY3OGNjYzU5ZGI5Li4wMDVl
MGRlYzMxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBA
IC04MjMsMTAgKzgyMywxMCBAQCBMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3RpbwogICAgIHJldHVybiBM
YXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3Np
dGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5l
OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0
eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZv
bnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFsc2UsIHBhcmVudCgpLT53cml0aW5n
TW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIGxp
bmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OworICAgIHJldHVy
biBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwg
cGFyZW50KCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSAtIGZvbnRNZXRyaWNzLmhl
aWdodCgpKSAvIDIgfTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA0M2M2N2NhMzliZGYuLjg3Y2My
YTk1OWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTQw
LDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxk
KCkgZmluYWwgeyBtX2xlZ2FjeUxpbmVCb3hlcy5kaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCp0
aGlzKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQg
dXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBj
b25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcAppbmRleCA4ZjVhZjFjM2FiNWIuLmY0YjI4YTg0NmUyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAgLTcyLDEwICs3MiwxMCBAQCBMYXlv
dXRVbml0IFJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgLypkaXJlYwogICAgIHJldHVybiAqbV9jYWNoZWRMaW5lSGVpZ2h0OwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpbmVCcmVh
azo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBz
dHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyAo
Zm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwgcGFyZW50KCktPndyaXRp
bmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwg
bGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyKSB9OworICAgIHJl
dHVybiBMYXlvdXRVbml0IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFs
c2UsIHBhcmVudCgpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgLSBmb250TWV0cmlj
cy5oZWlnaHQoKSkgLyAyKSB9OwogfQogCiBpbnQgUmVuZGVyTGluZUJyZWFrOjpjYXJldE1pbk9m
ZnNldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgK
aW5kZXggNWVkMDM5MWVmZjM5Li4yNGUyNmY4NTkyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5h
bCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggM2RhM2Y4ODhmZDI3Li5mZmI2YmU1MjBiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMwOCw5ICszMDgsOSBAQCBSZW5kZXJCb3g6
OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNh
bEhlaWdodChMYXlvdQogICAgIHJldHVybiBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0
KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxUb3ApOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RC
b3g6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QK
IHsKLSAgICBhdXRvIGJhc2VsaW5lID0gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQ
b3NpdGlvbk1vZGUpOworICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKICAgICBpZiAoIXNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgYmFzZWxpbmUgLT0gYmFzZWxpbmVBZGp1c3RtZW50OwogICAgIHJldHVybiBiYXNlbGluZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IGNhOTRjNWRjODk4
Ny4uY2UzZWRjZDA1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggMzk0ZjcyYWJlNjI3Li5hNDJhYjc2
MzYzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5j
cHAKQEAgLTQyOSwxMSArNDI5LDExIEBAIExheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6bGlu
ZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0CiAgICAgcmV0
dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGlmICgh
aXNJbWFnZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFzZWxpbmVQb3NpdGlvbihQ
b3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2Vs
aW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBtX2xpc3RJdGVt
LT5iYXNlbGluZVBvc2l0aW9uKCk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3Np
dGlvbigpOwogfQogCiBib29sIFJlbmRlckxpc3RNYXJrZXI6OmlzSW5zaWRlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCmluZGV4IGNjMmU4ZTMz
ZDJmYi4uNzA2ZWJiMzk0YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dCgp
IGZpbmFsOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCopIGZpbmFsOwogICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsK
KyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBMYXlv
dXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFsOwog
ICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUmIG5ld1N0eWxlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmgKaW5kZXggNjNjOTFjM2VjZTY4Li40OWQxMWJjM2RlYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0xMjksOSArMTI5LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIEZsZXhib3ggZGVmaW5lcyBiYXNlbGluZXMgZGlmZmVyZW50bHkgdGhhbiBy
ZWd1bGFyIGJsb2Nrcy4KICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG1lbnVs
aXN0cyBuZWVkIHRvIGRvIHRoZSByZWd1bGFyIGJsb2NrIGJlaGF2aW9yLgotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVy
cmlkZQorICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24ocG9zaXRp
b24pOworICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAg
ICB9CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9
CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxv
Y2s6OmlubGluZUJsb2NrQmFzZWxpbmUoZGlyZWN0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCA3NjJlMThmYjc4ZTYuLmZlZTE3OTc5OWY5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTcyLDcgKzcy
LDcgQEAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IFJlbmRlclNsaWRlcjo6cHJvdGVjdGVkRWxlbWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGVGb3JO
b25Bbm9ueW1vdXMoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBv
c2l0aW9uKExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFBhdGNoIHRoaXMgZnVu
Y3Rpb24gZm9yIHdyaXRpbmctbW9kZS4KICAgICByZXR1cm4gaGVpZ2h0KCkgKyBtYXJnaW5Ub3Ao
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCAzMjY1MTgyNzAw
MzUuLmMwNWYzYWZjMTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
aApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCBy
ZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNsaWRlciJfczsgfQog
Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAKaW5kZXggZTkyZWI5N2JmYTQwLi5mYmQ2NDUxMjBlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU4MiwxMSArMTU4MiwxMSBAQCBS
ZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpjZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFibGVD
ZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBjZWxsLT5zZWN0aW9uKCktPnByaW1hcnlDZWxs
QXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJs
ZTo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byBiYXNlbGluZVBvcyA9IGZpcnN0TGluZUJhc2VsaW5lKCkpCiAgICAgICAg
IHJldHVybiAod3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFy
Z2luUmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6
OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJv
eDo6YmFzZWxpbmVQb3NpdGlvbigpOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlclRhYmxlOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCA4NmQ1MWUwNzBmOTkuLjQw
MWIwZWFkNDU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAgLTIz
MSw3ICsyMzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpIG92ZXJyaWRlOwogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24pIG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUo
TGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCAwMzZjMGQxZDg0M2YuLjg5MDEwYzAwY2ZmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg4
LDkgKzg4LDkgQEAgcHVibGljOgogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIo
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9s
SW5uZXJDb250YWluZXIoKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5l
UG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQorICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24ocG9zaXRpb24pOworICAgICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAgICAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJl
bmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9CiAgICAgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUo
ZGlyZWN0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggYzVmNTViYTk5M2Q0Li41ZTA5NGQwY2Nj
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcApAQCAtOTgsOSArOTgsOSBAQCBMYXlvdXRVbml0IFJlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lOjpjb21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCBsaQogICAgIHJldHVybiBsaW5lSGVpZ2h0ICogdGV4dEFyZWFFbGVtZW50KCkucm93cygpICsg
bm9uQ29udGVudEhlaWdodDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZTo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9u
KGxpbmVQb3NpdGlvbk1vZGUpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6bGF5b3V0RXhjbHVk
ZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCmlu
ZGV4IGRmZGNjNTUxNDZmMC4uYTAxOWYwMGRmNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtNDQsNyArNDQs
NyBAQCBwcml2YXRlOgogICAgIGZsb2F0IGdldEF2ZXJhZ2VDaGFyV2lkdGgoKSBvdmVycmlkZTsK
ICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENvbnRlbnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hhcldp
ZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNh
bEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdo
dCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCBsYXlvdXRFeGNsdWRlZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4pIG92ZXJyaWRlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHAKaW5kZXggZjkyY2YwZGZjNDY2Li45MWMzODlhYTQ0MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CkBAIC05NSwxMiArOTUsOSBAQCBMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjptaXJyb3JJ
Zk5lZWRlZChMYXlvdXRVbml0IGhvcml6b250YWxPZmZzZXQsIExheW91dAogICAgIHJldHVybiBo
b3Jpem9udGFsT2Zmc2V0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyTWF0aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewot
ICAgIGlmIChsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1
ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihsaW5lUG9zaXRpb25Nb2RlKSk7Cisg
ICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24oKSk7CiB9CiAKIExheW91dFVuaXQgdG9Vc2VyVW5pdHMoY29uc3QgTWF0aE1M
RWxlbWVudDo6TGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
TGF5b3V0VW5pdCYgcmVmZXJlbmNlVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKaW5kZXggZWRmNGI0YjM5NmJmLi44MGU1
ZDAwNDZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEJsb2NrLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODYxNy4KICAgICB2aXJ0dWFsIFJl
bmRlck1hdGhNTE9wZXJhdG9yKiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475726</attachid>
            <date>2025-07-01 14:03:14 -0700</date>
            <delta_ts>2025-07-14 14:14:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295116-20250701140313.patch</filename>
            <type>text/plain</type>
            <size>38875</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyOTYyZDg3Yjk1NTc0MjM4MDIxMTI3MTFlNTZlYjkyYTE1NmY5ZjIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxNDowMjoyMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFzZWxpbmVQb3NpdGlvbidzCiBMaW5lUG9zaXRpb25N
b2RlIGlzIHVudXNlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1
MTE2CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCkxpbmVQb3NpdGlvbk1vZGUgaXMgYSBs
ZWdhY3kgY29uY2VwdCBmcm9tIHdoZW4gaW5saW5lIGxheW91dC9wYWludC9oaXR0ZXN0IGNhbGxl
ZCBpbnRvIHJlbmRlcmVycyB0byBmaWd1cmUgb3V0IHRoZWlyIGJhc2VsaW5lcy4KVGhlcmUncyBv
bmx5IG9uZSBwbGFjZSB3aGVyZSB3ZSBkb24ndCBwYXNzIGluIFBvc2l0aW9uT25Db250YWluaW5n
TGluZSAoc2VlIFJlbmRlckxpc3RNYXJrZXIpIGluIHdoaWNoIGNhc2UgUmVuZGVyTGlzdEl0ZW0g
YW55d2F5IGlnbm9yZXMgdGhlIGluY29taW5nIHZhbHVlIGFuZCBnbyBzdHJhaXQgdG8gZm9udCBt
ZXRyaWNzLgooYWxzbywgYWdhaW4gZXZlciBzaW5jZSBJRkMgYXQgdGhlIHBvaW50IHdoZW4gdGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQsIHdlIGRvbid0IGhhdmUgbGluZXMgeWV0KQoKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnNldEludGVncmF0aW9uQmFz
ZWxpbmUpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveEdlb21ldHJ5VXBkYXRlcjo6
dXBkYXRlQm94R2VvbWV0cnlBZnRlckludGVncmF0aW9uTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHA6CihXZWJDb3JlOjpSZW5kZXJBdHRhY2ht
ZW50OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXR0YWNobWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcDoKKFdlYkNvcmU6OlJlbmRlckJ1dHRv
bjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJ1dHRvbi5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRDb250
cm9sKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgoo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKFdlYkNvcmU6
OlJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25z
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlu
ZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25z
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJM
aXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpiYXNlbGluZVBv
c2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwOgoo
V2ViQ29yZTo6UmVuZGVyTWF0aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKLS0tCiAu
Li4vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwICAgICAgICAgIHwgIDYg
KysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAgICAg
ICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50Lmgg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmggICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAgICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgICAgIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwICAgICAgICAgICAgfCAgOCAr
KysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oICAgICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcCAgICAgICB8ICA2ICsrKy0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmggICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAgICAgICAgICAgICAgIHwgIDcgKysrLS0tLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwICAgICAgICAgICAgIHwgIDQgKystLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICAgICAgICAgICB8ICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAgICAgICAgICAg
IHwgIDcgKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oICAg
ICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJy
ZWFrLmNwcCAgICAgICAgIHwgIDcgKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5oICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAgICAgICAgICAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgICAgICAgIHwgIDYgKysrLS0tCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oICAgICAgICAgIHwgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oICAgICAgICAgICAg
fCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCAgICAg
ICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCAg
ICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcCAgICAgICAgICAgICB8ICA2ICsrKy0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmggICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuaCAgICAgICAgIHwgIDQgKystLQogLi4uL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCB8ICA0ICsrLS0KIC4uLi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICAgfCAgMiArLQogLi4u
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgICB8ICA3ICsr
LS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aCAgfCAgMiArLQogMzUgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAK
aW5kZXggYzVhMTVkMDdjMzg1Li4xMDhlMDYwNzIxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHN0YXRpYyBp
bmxpbmUgTGF5b3V0U2l6ZSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShjb25zdCBSZW5kZXJCb3gmIHJl
bmRlcmVyKQogICAgIHJldHVybiB7IGhvcml6b250YWxTcGFjZVJlc2VydmVkRm9yU2Nyb2xsYmFy
LCB2ZXJ0aWNhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIgfTsKIH0KIAotc3RhdGljIGlubGlu
ZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gs
IFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0
aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiB7CiAgICAgYXV0byBoYXNO
b25TeW50aGV0aWNCYXNlbGluZSA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJMaXN0
TWFya2VyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlbmRlckJveCkpCkBA
IC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxp
bmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIFdyaXRpbmdNb2QKICAgICBpZiAoIWhhc05v
blN5bnRoZXRpY0Jhc2VsaW5lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gYmFzZWxp
bmUgPSByZW5kZXJCb3guYmFzZWxpbmVQb3NpdGlvbihmYWxzZSAvKiBmaXJzdExpbmUgKi8sIHdy
aXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUs
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CisgICAgYXV0byBiYXNlbGluZSA9IHJlbmRlckJv
eC5iYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVsZW1lbnRCb3gm
PigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0aW9uKGJhc2Vs
aW5lKTsKIH0KIApAQCAtNDg3LDcgKzQ4Nyw3IEBAIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1
cGRhdGVCb3hHZW9tZXRyeUFmdGVySW50ZWdyYXRpb25MYXlvdXQoY29uc3QgTGF5b3V0OjpFCiAK
ICAgICBhdXRvIGludGVncmF0aW9uQWRqdXN0bWVudHMgPSBbJl0gewogICAgICAgICAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGV2ZW50dWFsbHkgYmUgYWxsIGFic29yYmVkIGJ5IExGQyBsYXlvdXQu
Ci0gICAgICAgIHNldEludGVncmF0aW9uQmFzZWxpbmUoKnJlbmRlckJveCwgd3JpdGluZ01vZGUo
KSk7CisgICAgICAgIHNldEludGVncmF0aW9uQmFzZWxpbmUoKnJlbmRlckJveCk7CiAKICAgICAg
ICAgaWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlz
dE1hcmtlcj4oKnJlbmRlckJveCkpIHsKICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0
Qm94LnBhcmVudCgpLnN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QXR0YWNobWVudC5jcHAKaW5kZXggN2MwMDAxZDViZmJkLi44MTY1Mzk0N2NhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKQEAgLTEwMyw3ICsx
MDMsNyBAQCB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OmxheW91dCgpCiAgICAgICAgIGxheW91dFNo
YWRvd0NvbnRlbnQobmV3SW50cmluc2ljU2l6ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQXR0
YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQ
b3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudCA9IGF0dGFj
aG1lbnRFbGVtZW50KCkud2lkZUxheW91dEltYWdlRWxlbWVudCgpKSB7CiAgICAgICAgIGlmIChh
dXRvKiBiYXNlbGluZUVsZW1lbnRSZW5kZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJv
eCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNo
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaAppbmRl
eCBlNGM1MmU3YjlhNjguLmY4NGZjYjhhODVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQXR0YWNobWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KGJvb2wsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIExheW91dFVuaXQgbV9taW5pbXVtSW50cmluc2ljV2lkdGg7CiAgICAgYm9vbCBtX3Nob3Vs
ZERyYXdCb3JkZXIgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCBjY2MyM2I4NDQ4YzEuLjVlY2ZiMjU5MGQzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yNDg3LDEzICsyNDg3LDE0IEBAIExheW91dFVu
aXQgUmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIGRpcmVjdGlvbiwKICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsaW5l
U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJl
Y3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogeworICAgIGF1dG8gZGly
ZWN0aW9uID0gY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkg
PyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZTsKICAgICAvLyBJbmxpbmUgYmxvY2tzIGFy
ZSByZXBsYWNlZCBlbGVtZW50cy4gT3RoZXJ3aXNlLCBqdXN0IHBhc3Mgb2ZmIHRvCiAgICAgLy8g
dGhlIGJhc2UgY2xhc3MuICBJZiB3ZSdyZSBiZWluZyBxdWVyaWVkIGFzIHRob3VnaCB3ZSdyZSB0
aGUgcm9vdCBsaW5lCiAgICAgLy8gYm94LCB0aGVuIHRoZSBmYWN0IHRoYXQgd2UncmUgYW4gaW5s
aW5lLWJsb2NrIGlzIGlycmVsZXZhbnQsIGFuZCB3ZSBiZWhhdmUKICAgICAvLyBqdXN0IGxpa2Ug
YSBibG9jay4KLSAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpICYm
IGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSB7CisgICAgaWYg
KGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkgewogICAgICAgICAvLyBGb3Ig
ImxlYWYiIHRoZW1lIG9iamVjdHMsIGxldCB0aGUgdGhlbWUgZGVjaWRlIHdoYXQgdGhlIGJhc2Vs
aW5lIHBvc2l0aW9uIGlzLgogICAgICAgICAvLyBGSVhNRTogTWlnaHQgYmUgYmV0dGVyIHRvIGhh
dmUgYSBjdXN0b20gQ1NTIHByb3BlcnR5IGluc3RlYWQsIHNvIHRoYXQgaWYgdGhlIHRoZW1lCiAg
ICAgICAgIC8vIGlzIHR1cm5lZCBvZmYsIGNoZWNrYm94ZXMvcmFkaW9zIHdpbGwgc3RpbGwgaGF2
ZSBkZWNlbnQgYmFzZWxpbmVzLgpAQCAtMjUzNywxMiArMjUzOCwxMSBAQCBMYXlvdXRVbml0IFJl
bmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlYwogICAgICAgICBpZiAoYmFzZWxpbmVQb3MpCiAgICAgICAgICAgICByZXR1cm4g
ZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgKyBiYXNlbGluZVBvcy52
YWx1ZSgpIDogbWFyZ2luUmlnaHQoKSArIGJhc2VsaW5lUG9zLnZhbHVlKCk7CiAKLSAgICAgICAg
cmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwg
bGluZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKICAgICB9CiAKLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSBmaXJzdExp
bmUgPyBmaXJzdExpbmVTdHlsZSgpIDogdGhpcy0+c3R5bGUoKTsKLSAgICBjb25zdCBGb250TWV0
cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJl
dHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodChm
aXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5pbnRI
ZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKKyAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MgPSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CisgICAgcmV0dXJuIExheW91dFVu
aXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KHRydWUsIGRpcmVjdGlv
biwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAv
IDIgfS50b0ludCgpOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2Nr
OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCmluZGV4IDIxZDNmNzZmNGMwNy4uZWQyMzEyOWNjODRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjcsNyArNjcsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJs
aWM6CiAgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgb3ZlcnJpZGRlbiBmb3IgaW5saW5l
LWJsb2NrLgogICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3Np
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUg
dmlydHVhbGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tG
bG93CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDk1MGRkOWRlMWY4NC4uMDEyZDJiNGMxN2RkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDk2NywxMCArNDk2NywxMCBAQCBM
YXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodChib29sIC8qZmlyc3RMaW5lKi8sIExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbgogICAgIHJldHVybiAwOwogfQogCi1MYXlvdXRVbml0IFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rp
b25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpKQotICAgICAgICBy
ZXR1cm4gcm91bmRUb0ludChkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBtX21hcmdpbkJv
eC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9tKCkgOiBtX21hcmdpbkJveC5y
aWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKSk7CisgICAgICAgIHJldHVybiBy
b3VuZFRvSW50KGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgp
ID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRvbSgpIDog
bV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCkpOwogICAg
IHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYTg0
YjcwNmU3M2Q4Li4xY2MwMTQ0ZjFjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1hcmtGb3JQ
YWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsgfQogICAgIAogICAgIExheW91dFVuaXQgbGlu
ZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1v
ZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJy
aWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0
VW5pdCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggM2JiYTY1NmUyZDI3Li5lMTdmZWE5
NmY1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiAgICAgLy8gT3ZlcnJpZGRlbiBi
eSBzdWJjbGFzc2VzIHRvIGRldGVybWluZSBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgcG9zaXRp
b24uCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCA9IDA7CiAKICAgICB2b2lkIG1hcEFic29sdXRlVG9M
b2NhbFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
Y3BwCmluZGV4IDAwNjgzYzU5YjM2Ni4uNGRjMzMxMGJhZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcApAQCAtMTY2LDE0ICsxNjYsMTQgQEAgc3RhdGljIExh
eW91dFVuaXQgc3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KGNvbnN0IFJlbmRlckJv
eCYgYm94LCBMaW5lRGkKICAgICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
Ym94LmJvcmRlclRvcCgpICsgYm94LnBhZGRpbmdUb3AoKSArIGJveC5jb250ZW50Qm94SGVpZ2h0
KCkgOiBib3guYm9yZGVyUmlnaHQoKSArIGJveC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50
Qm94V2lkdGgoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0
aW9uTW9kZSBtb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdAogewogICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkp
Ci0gICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJz
dExpbmUsIGRpcmVjdGlvbiwgbW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJv
eDo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIC8vIFdlIGNhbm5vdCByZWx5IG9uIFJlbmRlckZs
ZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgYmVjYXVzZSBvZiBmbGV4Ym94ZXMgaGF2ZSBz
b21lIHNwZWNpYWwgYmVoYXZpb3IKICAgICAvLyByZWdhcmRpbmcgYmFzZWxpbmVzIHRoYXQgc2hv
dWxkbid0IGFwcGx5IHRvIGJ1dHRvbnMuCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZSA9IGZpcnN0
TGluZUJhc2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50Qm94
KCp0aGlzLCBkaXJlY3Rpb24pKTsKLSAgICBMYXlvdXRVbml0IG1hcmdpbkFzY2VudCA9IGRpcmVj
dGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKTsKKyAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihzeW50
aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goKnRoaXMsIGNvbnRhaW5pbmdCbG9jaygpLT53
cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUpKTsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkFzY2VudCA9IGNvbnRhaW5pbmdCbG9jaygpLT53
cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgp
OwogICAgIHJldHVybiBiYXNlbGluZSArIG1hcmdpbkFzY2VudDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDg3Y2YzYWVmNGQwMy4uNjIyNDczNGEyZjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogaW5uZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1faW5uZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldElubmVyUmVuZGVyZXIoUmVuZGVyQmxv
Y2smKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0g
ZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVV
cGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5jcHAKaW5kZXggZjAwODk1YzRiN2Y0Li4zOWJiNjk3MTZmZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50
Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pCiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRpb24odHJ1ZSwgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICAvLyBGaWxlIHVwbG9hZCBidXR0b24gaXMgZGlz
cGxheTogbm9uZSAoc2VlIDo6ZmlsZS1zZWxlY3Rvci1idXR0b24pLgorICAgICAgICAgICAgcmV0
dXJuIHJvdW5kVG9JbnQoYmFzZWxpbmVQb3NpdGlvbigpKTsKICAgICAgICAgfSgpOwogCiAgICAg
ICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0RmlsbENvbG9yKHN0eWxlKCkudmlzaXRlZERlcGVu
ZGVudENvbG9yV2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5Q29sb3IpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDhhNmFlNTNiYzM2
OC4uMTllNzViZDc4YzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKQEAgLTI2NCwxMyArMjY0LDEzIEBAIHZvaWQgUmVuZGVyRmxleGlibGVC
b3g6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94
Q2hpCiAgICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMo
ZmxleEJveENoaWxkLCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2lj
YWxXaWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9z
aXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2Rl
KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAg
aWYgKCFiYXNlbGluZSkKLSAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMs
ICpwYXJlbnRTdHlsZSgpLCBkaXJlY3Rpb24sIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVp
Z2h0KCk7CisgICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50
U3R5bGUoKSwgY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkg
PyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2lj
YWxIZWlnaHQoKTsKIAotICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQoKTsK
KyAgICByZXR1cm4gYmFzZWxpbmUudmFsdWUoKSArIChjb250YWluaW5nQmxvY2soKS0+d3JpdGlu
Z01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9J
bnQoKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6
Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaAppbmRleCBlNjhjYWQyMDc2ZTMuLjhjYTc4NzJmYzhhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTU2LDcgKzU2
LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2FuRHJvcEFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogCi0g
ICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVC
YXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNzAwMmY4OGRhNDY3Li4w
ZTg5Yzk3YWU2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAg
LTIwMTIsMTQgKzIwMTIsMTMgQEAgYm9vbCBSZW5kZXJHcmlkOjppc0Jhc2VsaW5lQWxpZ25tZW50
Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFQKIH0KIAogLy8gRklY
TUU6IFRoaXMgbG9naWMgaXMgc2hhcmVkIGJ5IFJlbmRlckZsZXhpYmxlQm94LCBzbyBpdCBtaWdo
dCBiZSByZWZhY3RvcmVkIHNvbWVob3cuCi1MYXlvdXRVbml0IFJlbmRlckdyaWQ6OmJhc2VsaW5l
UG9zaXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25N
b2RlIG1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdAogewotICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBQb3NpdGlvbk9uQ29u
dGFpbmluZ0xpbmUpOwogICAgIGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpOwog
ICAgIGlmICghYmFzZWxpbmUpCi0gICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0
aGlzLCAqcGFyZW50U3R5bGUoKSwgZGlyZWN0aW9uLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNh
bEhlaWdodCgpOworICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBh
cmVudFN0eWxlKCksIGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRh
bCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIEJvcmRlckJveCkgKyBtYXJnaW5M
b2dpY2FsSGVpZ2h0KCk7CiAKLSAgICByZXR1cm4gYmFzZWxpbmUudmFsdWUoKSArIChkaXJlY3Rp
b24gPT0gSG9yaXpvbnRhbExpbmUgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkpLnRvSW50
KCk7CisgICAgcmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoY29udGFpbmluZ0Jsb2NrKCktPndy
aXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCkp
LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyR3JpZDo6Zmly
c3RMaW5lQmFzZWxpbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgK
aW5kZXggODZiMWVjZTJlYTM4Li43ZjI3NGNkYzA1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaApAQCAtMjY5LDcgKzI2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVBdXRvTWFyZ2luc0luUm93QXhpc0lmTmVlZGVkKFJlbmRlckJveCYpOwogICAgIGJvb2wgaXND
aGlsZEVsaWdpYmxlRm9yTWFyZ2luVHJpbShNYXJnaW5UcmltVHlwZSwgY29uc3QgUmVuZGVyQm94
JikgY29uc3QgZmluYWw7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25P
bkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0
TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgU2luZ2xlVGhyZWFkV2Vha1B0
cjxSZW5kZXJCb3g+IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uIGFsaWdubWVudCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBjZWVh
NmFiY2FiMGYuLjBmYmE3ZTBhMmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwCkBAIC0zMDYsNyArMzA2LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGUKICAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoZXN0
aW1hdGVkVXNlZFdpZHRoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5l
UG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklt
YWdlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IG9mZnNldDsK
ICNpZiBFTkFCTEUoTVVMVElfUkVQUkVTRU5UQVRJT05fSEVJQykKQEAgLTMxNSw3ICszMTUsNyBA
QCBMYXlvdXRVbml0IFJlbmRlckltYWdlOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlYwogICAgICAgICBvZmZzZXQgPSBMYXlvdXRVbml0Ojpm
cm9tRmxvYXRSb3VuZChtZXRyaWNzLmRlc2NlbnQpOwogICAgIH0KICNlbmRpZgotICAgIHJldHVy
biBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQ
b3NpdGlvbk1vZGUpIC0gb2Zmc2V0OworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKSAtIG9mZnNldDsKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciBuZXdJbWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggMDUxZDE1NjRjMzEyLi45OTBhN2RiMzA0ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMzgsNyArMTM4LDcg
QEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChT
aG91bGRDb21wdXRlUHJlZmVycmVkID0gU2hvdWxkQ29tcHV0ZVByZWZlcnJlZDo6Q29tcHV0ZUFj
dHVhbCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkVXNlZFdpZHRoID0g
c3RkOjpudWxsb3B0KSBjb25zdCBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1v
ZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91
bGRDb2xsYXBzZVRvRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAppbmRleCA5MDhmNjJiNzk1NGIuLjAwNWUwZGVjMzE1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgyMywxMSArODIzLDEwIEBA
IExheW91dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvCiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9h
dENlaWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rp
b25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25z
dAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewot
ICAgIGF1dG8mIHN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0
eWxlKCk7Ci0gICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9u
dCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGlu
ZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0
cmljcy5oZWlnaHQoKSkgLyAyIH07CisgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZSgpLm1l
dHJpY3NPZlByaW1hcnlGb250KCk7CisgICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmlj
cy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZhbHNlLCBwYXJlbnQoKS0+d3JpdGluZ01vZGUoKS5p
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OwogfQogCiBMYXlv
dXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGluZShjb25z
dCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCmluZGV4IDc1ZTZkYjJkODdkMS4uODdjYzJhOTU5YWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKSBmaW5hbCB7IG1fbGVnYWN5TGluZUJv
eGVzLmRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOyB9CiAKICAgICBMYXlvdXRVbml0
IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRp
b25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKLSAgICBMYXlv
dXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5h
bDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICAK
ICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91
dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5jcHAKaW5kZXggNGI0ZDc4MzIzY2VkLi5mNGIyOGE4NDZlMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCkBAIC03MiwxMSArNzIs
MTAgQEAgTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWMKICAgICByZXR1cm4gKm1fY2FjaGVkTGluZUhl
aWdodDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9u
TW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6
OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewotICAgIGF1dG8mIHN0eWxlID0gZmlyc3RMaW5l
ID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0eWxlKCk7Ci0gICAgYXV0byYgZm9udE1ldHJp
Y3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0
IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rp
b24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMikgfTsKKyAg
ICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKKyAg
ICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0
KGZhbHNlLCBwYXJlbnQoKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250
YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1l
dHJpY3MuaGVpZ2h0KCkpIC8gMikgfTsKIH0KIAogaW50IFJlbmRlckxpbmVCcmVhazo6Y2FyZXRN
aW5PZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5oCmluZGV4IGRmMTE5OGE1ZmNkNS4uMjRlMjZmODU5MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFVu
aXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwog
CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAg
ICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2Y1M2JiOGFi
NmFhLi5mZmI2YmU1MjBiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTMwOCw5ICszMDgsOSBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21w
dXRlZFZhbHVlcyBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdQogICAg
IHJldHVybiBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxv
Z2ljYWxUb3ApOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24sIExpbmVQ
b3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlz
dEJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgYXV0byBiYXNlbGluZSA9IFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24sIGxpbmVQ
b3NpdGlvbk1vZGUpOworICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKICAgICBpZiAoIXNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgYmFzZWxpbmUgLT0gYmFzZWxpbmVBZGp1c3RtZW50OwogICAgIHJldHVybiBiYXNlbGluZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDRhNTQ3M2ZlMjMw
NC4uY2UzZWRjZDA1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBMb2dpY2FsRXh0ZW50Q29t
cHV0ZWRWYWx1ZXMgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlv
dXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAppbmRleCAxMTZmOGE2MjMxNWUuLmE0MmFiNzYzNjNmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtNDI5LDExICs0MjksMTEg
QEAgTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3QKICAgICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVp
Z2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9u
TW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJ
dGVtLT5iYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50
ZXJpb3JMaW5lQm94ZXMpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24o
Zmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4g
bV9saXN0SXRlbS0+YmFzZWxpbmVQb3NpdGlvbigpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJh
c2VsaW5lUG9zaXRpb24oKTsKIH0KIAogYm9vbCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRl
eCAyNThjNmEwYjJkMzIuLjcwNmViYjM5NGM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBsYXlvdXQoKSBmaW5hbDsKICAgICB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIs
IGNvbnN0IEludFJlY3QqKSBmaW5hbDsKICAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5h
bDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRSZWN0IHNlbGVj
dGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFsOwogICAgIGJvb2wgY2Fu
QmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQg
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0
eWxlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5k
ZXggNTUwMmQxNzc4Mzg5Li40OWQxMWJjM2RlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5oCkBAIC0xMjksOSArMTI5LDkgQEAgcHJpdmF0ZToKIAogICAgIC8v
IEZsZXhib3ggZGVmaW5lcyBiYXNlbGluZXMgZGlmZmVyZW50bHkgdGhhbiByZWd1bGFyIGJsb2Nr
cy4KICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG1lbnVsaXN0cyBuZWVkIHRv
IGRvIHRoZSByZWd1bGFyIGJsb2NrIGJlaGF2aW9yLgotICAgIExheW91dFVuaXQgYmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5l
UG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQorICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIHBvc2l0aW9u
KTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAg
fQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsgfQog
ICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2Nr
OjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNTQzOTI5ODZmMjZhLi5mZWUxNzk3OTlmOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC03Miw3ICs3Miw3
IEBAIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBSZW5kZXJTbGlkZXI6OnByb3RlY3RlZEVsZW1lbnQo
KSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlRm9yTm9u
QW5vbnltb3VzKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQb3Np
dGlvbihib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25N
b2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5nLW1v
ZGUuCiAgICAgcmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmgKaW5kZXggNTgzZDgyMzE4YjY3Li5jMDVmM2FmYzE2NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBBU0NJSUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTbGlkZXIiX3M7IH0KIAotICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRo
LCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggZjFjMTQxZWQ0ZTFkLi5mYmQ2NDUxMjBl
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU4Miwx
MSArMTU4MiwxMSBAQCBSZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpjZWxsQWZ0ZXIoY29u
c3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBjZWxsLT5zZWN0aW9u
KCktPnByaW1hcnlDZWxsQXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QK
IHsKICAgICBpZiAoYXV0byBiYXNlbGluZVBvcyA9IGZpcnN0TGluZUJhc2VsaW5lKCkpCi0gICAg
ICAgIHJldHVybiAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBt
YXJnaW5SaWdodCgpKSArIGJhc2VsaW5lUG9zLnZhbHVlKCk7Ci0gICAgcmV0dXJuIFJlbmRlckJv
eDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9k
ZSk7CisgICAgICAgIHJldHVybiAod3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdp
blRvcCgpIDogbWFyZ2luUmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOworICAgIHJldHVy
biBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJUYWJsZTo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggMTljOTc0
NDFlNWMwLi40MDFiMGVhZDQ1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5oCkBAIC0yMzEsNyArMjMxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYg
bG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3Np
dGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlv
bk1vZGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaAppbmRleCA4MmUzMmMzOThkZmQuLjg5MDEwYzAwY2ZmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg4LDkgKzg4LDkgQEAg
cHVibGljOgogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIoRWxlbWVudCYsIFJl
bmRlclN0eWxlJiYpOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWlu
ZXIoKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBj
b25zdCBvdmVycmlkZQorICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92
ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRp
b24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIFJlbmRl
ckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5k
ZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRp
cmVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4IDg0YjNkNmY0MWIyMC4uNWUwOTRkMGNjY2Qw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZS5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZTo6Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQg
bGkKICAgICByZXR1cm4gbGluZUhlaWdodCAqIHRleHRBcmVhRWxlbWVudCgpLnJvd3MoKSArIG5v
bkNvbnRlbnRIZWlnaHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmU6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRp
cmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxp
bmVQb3NpdGlvbigpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpsYXlv
dXRFeGNsdWRlZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lLmgKaW5kZXggZGUxN2FkYTNmNWJhLi5hMDE5ZjAwZGY0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCkBAIC00
NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgZ2V0QXZlcmFnZUNoYXJXaWR0aCgpIG92
ZXJyaWRlOwogICAgIExheW91dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2ljYWxXaWR0aChmbG9h
dCBjaGFyV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRy
b2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250
ZW50SGVpZ2h0KSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0RXhj
bHVkZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmlu
ZGV4IDVkMTY3YWVkNzY4Ny4uOTFjMzg5YWE0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtOTUsMTIgKzk1
LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6bWlycm9ySWZOZWVkZWQoTGF5b3V0
VW5pdCBob3Jpem9udGFsT2Zmc2V0LCBMYXlvdXQKICAgICByZXR1cm4gaG9yaXpvbnRhbE9mZnNl
dDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25N
b2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2Nr
OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobGluZVBvc2l0aW9uTW9kZSA9
PSBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
cmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5l
UG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpKTsKKyAgICBy
ZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxpbmVQ
b3NpdGlvbigpKTsKIH0KIAogTGF5b3V0VW5pdCB0b1VzZXJVbml0cyhjb25zdCBNYXRoTUxFbGVt
ZW50OjpMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBMYXlv
dXRVbml0JiByZWZlcmVuY2VWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAppbmRleCBiMDViNmVkMDY1NGQuLjgwZTVkMDA0
NmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjE3LgogICAgIHZpcnR1YWwgUmVuZGVy
TWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFp
bmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476011</attachid>
            <date>2025-07-14 19:00:17 -0700</date>
            <delta_ts>2025-07-15 04:59:05 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295116-20250714190016.patch</filename>
            <type>text/plain</type>
            <size>34341</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmMGJmMTA1MjQ2NmIxYWM1NmYwNWU1Njk0ZWY0ZDZlYjIzMjk0YWQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxMzo1OTo1OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFzZWxpbmVQb3NpdGlvbidzCiBMaW5lUG9zaXRpb25N
b2RlIGlzIHVudXNlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1
MTE2CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCkxpbmVQb3NpdGlvbk1vZGUgaXMgYSBs
ZWdhY3kgY29uY2VwdCBmcm9tIHdoZW4gaW5saW5lIGxheW91dC9wYWludC9oaXR0ZXN0IGNhbGxl
ZCBpbnRvIHJlbmRlcmVycyB0byBmaWd1cmUgb3V0IHRoZWlyIGJhc2VsaW5lcy4KVGhlcmUncyBv
bmx5IG9uZSBwbGFjZSB3aGVyZSB3ZSBkb24ndCBwYXNzIGluIFBvc2l0aW9uT25Db250YWluaW5n
TGluZSAoc2VlIFJlbmRlckxpc3RNYXJrZXIpIGluIHdoaWNoIGNhc2UgUmVuZGVyTGlzdEl0ZW0g
YW55d2F5IGlnbm9yZXMgdGhlIGluY29taW5nIHZhbHVlIGFuZCBnbyBzdHJhaXQgdG8gZm9udCBt
ZXRyaWNzLgooYWxzbywgYWdhaW4gZXZlciBzaW5jZSBJRkMgYXQgdGhlIHBvaW50IHdoZW4gdGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQsIHdlIGRvbid0IGhhdmUgbGluZXMgeWV0KQoKKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnNldEludGVncmF0aW9uQmFz
ZWxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcDoK
KFdlYkNvcmU6OlJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50Lmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6
OlJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKFdlYkNvcmU6OlJlbmRlckZpbGVV
cGxvYWRDb250cm9sOjpwYWludENvbnRyb2wpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24gY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVySW5saW5l
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0Qm94
OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24gY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmJhc2VsaW5l
UG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6
UmVuZGVyVGFibGU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxCbG9jay5jcHA6CihXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxCbG9jay5oOgotLS0KIC4uLi9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJv
eEdlb21ldHJ5VXBkYXRlci5jcHAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJBdHRhY2htZW50LmNwcCAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICAgICAgICAgICAgICB8IDggKysr
Ky0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oICAgICAgICAgICAg
ICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAg
ICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaCAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwICAgICAgICAgICAgICAgICB8IDQgKystLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oICAgICAgICAgICAgICAgICAgIHwg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcCAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmggICAgICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwICAgICAgICAgICAgICAgICAgIHwgMyArLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmggICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgICAgICAgICAgICAgICAgICB8IDQg
KystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggICAgICAgICAgICAg
ICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAg
ICAgICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmggICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmNwcCAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaCAgICAgICAgICAgICAgICB8IDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCAgICAgICAgICAgICAgICB8
IDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgICAgICAg
ICAgICAgICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwICAgICAgICAgICAgIHwgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmggICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oICAgICAgICAgICAgICAgICB8IDQgKystLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICAgICAgIHwgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oICAgICAgICAgICAgICAg
ICAgIHwgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCAgICAg
ICAgICAgICAgICAgIHwgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaCAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2wuaCAgICAgICAgICAgICAgfCA0ICsrLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgICB8IDQgKystLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggICAgIHwg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5j
cHAgICAgIHwgNyArKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTEJsb2NrLmggICAgICAgfCAyICstCiAzNSBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRp
b25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2Vv
bWV0cnlVcGRhdGVyLmNwcAppbmRleCBkZTJjNDc1MmM1MjkuLjEwOGUwNjA3MjExZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0zMTgsNyAr
MzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3Qg
UmVuZGVyQm94JiByZW5kZXJCb3gpCiAgICAgaWYgKCFoYXNOb25TeW50aGV0aWNCYXNlbGluZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmJhc2Vs
aW5lUG9zaXRpb24oUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKKyAgICBhdXRvIGJhc2VsaW5l
ID0gcmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICBjb25zdF9jYXN0PExheW91dDo6
RWxlbWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdy
YXRpb24oYmFzZWxpbmUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QXR0YWNobWVudC5jcHAKaW5kZXggMGNkOTZjY2I5NTE3Li44MTY1Mzk0N2NhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKQEAgLTEwMyw3ICsx
MDMsNyBAQCB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OmxheW91dCgpCiAgICAgICAgIGxheW91dFNo
YWRvd0NvbnRlbnQobmV3SW50cmluc2ljU2l6ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQXR0
YWNobWVudDo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBp
ZiAoYXV0byogYmFzZWxpbmVFbGVtZW50ID0gYXR0YWNobWVudEVsZW1lbnQoKS53aWRlTGF5b3V0
SW1hZ2VFbGVtZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudFJlbmRl
ckJveCA9IGJhc2VsaW5lRWxlbWVudC0+cmVuZGVyQm94KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCmluZGV4IGNjNzA3YWEyMzgzZC4uZjg0ZmNiOGE4
NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKQEAg
LTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBMYXlvdXRVbml0IG1fbWluaW11bUludHJpbnNpY1dpZHRoOwogICAgIGJvb2wg
bV9zaG91bGREcmF3Qm9yZGVyIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggYzIyNjM3ZTBmYTU5Li5lNjNkM2JmNDZlY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjQ4NywxNCArMjQ4NywxNCBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sCiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENl
aWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1v
ZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCkgY29u
c3QKIHsKICAgICBhdXRvIGRpcmVjdGlvbiA9IGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9k
ZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7CiAgICAg
Ly8gSW5saW5lIGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBw
YXNzIG9mZiB0bwogICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmll
ZCBhcyB0aG91Z2ggd2UncmUgdGhlIHJvb3QgbGluZQogICAgIC8vIGJveCwgdGhlbiB0aGUgZmFj
dCB0aGF0IHdlJ3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZl
CiAgICAgLy8ganVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2Vk
T3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWlu
aW5nTGluZSkgeworICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkp
IHsKICAgICAgICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3RzLCBsZXQgdGhlIHRoZW1lIGRl
Y2lkZSB3aGF0IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KICAgICAgICAgLy8gRklYTUU6IE1p
Z2h0IGJlIGJldHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0eSBpbnN0ZWFkLCBzbyB0
aGF0IGlmIHRoZSB0aGVtZQogICAgICAgICAvLyBpcyB0dXJuZWQgb2ZmLCBjaGVja2JveGVzL3Jh
ZGlvcyB3aWxsIHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4KQEAgLTI1MzgsMTEgKzI1Mzgs
MTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnMKICAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQog
ICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRv
cCgpICsgYmFzZWxpbmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52
YWx1ZSgpOwogCi0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24obGlu
ZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKTsKICAgICB9CiAKICAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHls
ZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250
TWV0cmljcy5pbnRBc2NlbnQoKSArIChsaW5lSGVpZ2h0KHRydWUsIGRpcmVjdGlvbiwgbGluZVBv
c2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKKyAg
ICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxpbmVIZWln
aHQodHJ1ZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIC0gZm9udE1ldHJp
Y3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggNjQxMTIzNjIyNzI3Li5lZDIzMTI5Y2M4NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02Nyw3ICs2Nyw3IEBA
IHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVy
cmlkZGVuIGZvciBpbmxpbmUtYmxvY2suCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgLy8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVu
IGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUxpbmVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IGI0ODk0YjZkODgwYi4uMTU3MzAyYzMyNWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcApAQCAtNDk3Myw3ICs0OTczLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6
OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24KICAgICByZXR1cm4gMDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoaXNC
bG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpKQogICAgICAgICByZXR1cm4gcm91bmRU
b0ludChjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1f
bWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFy
Z2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gubGVmdCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBiNTgxNDJjY2Y4ZmMuLmIyMzJjMGY4NmZjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVk
KCkgeyB9CiAgICAgCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExp
bmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRl
OworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5p
dCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggYmQ5NmNkODQyZmYwLi45NDU2ZDkwN2Ri
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCkBAIC0xOTYsNyArMTk2LDcgQEAgcHVibGljOgogCiAgICAgLy8gT3ZlcnJpZGRlbiBieSBz
dWJjbGFzc2VzIHRvIGRldGVybWluZSBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgcG9zaXRpb24u
CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGlu
ZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgPSAwOwogCiAgICAg
dm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2Rl
PiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCAyOTQ4YjU2YzYzOWYuLjRkYzMzMTBiYWVmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAgLTE2NiwxMCAr
MTY2LDEwIEBAIHN0YXRpYyBMYXlvdXRVbml0IHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVu
dEJveChjb25zdCBSZW5kZXJCb3gmIGJveCwgTGluZURpCiAgICAgcmV0dXJuIGRpcmVjdGlvbiA9
PSBIb3Jpem9udGFsTGluZSA/IGJveC5ib3JkZXJUb3AoKSArIGJveC5wYWRkaW5nVG9wKCkgKyBi
b3guY29udGVudEJveEhlaWdodCgpIDogYm94LmJvcmRlclJpZ2h0KCkgKyBib3gucGFkZGluZ1Jp
Z2h0KCkgKyBib3guY29udGVudEJveFdpZHRoKCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQnV0
dG9uOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAo
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyRmxl
eGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24obW9kZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJG
bGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIC8vIFdlIGNhbm5vdCByZWx5IG9u
IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgYmVjYXVzZSBvZiBmbGV4Ym94
ZXMgaGF2ZSBzb21lIHNwZWNpYWwgYmVoYXZpb3IKICAgICAvLyByZWdhcmRpbmcgYmFzZWxpbmVz
IHRoYXQgc2hvdWxkbid0IGFwcGx5IHRvIGJ1dHRvbnMuCiAgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZSA9IGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6ZWRCYXNlbGluZUZyb21D
b250ZW50Qm94KCp0aGlzLCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6
b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKaW5kZXggNGNlZWZkNGEzYTVlLi42MjI0NzM0YTJmNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKQEAgLTY2LDcgKzY2LDcg
QEAgcHVibGljOgogICAgIFJlbmRlckJsb2NrKiBpbm5lclJlbmRlcmVyKCkgY29uc3QgeyByZXR1
cm4gbV9pbm5lci5nZXQoKTsgfQogICAgIHZvaWQgc2V0SW5uZXJSZW5kZXJlcihSZW5kZXJCbG9j
ayYpOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZv
aWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggNDIwNTg1MDA3NGFkLi4z
MDM5OGMyZjdkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Ly8gRmlsZSB1cGxvYWQgYnV0dG9uIGlzIGRpc3BsYXk6IG5vbmUgKHNlZSA6OmZpbGUtc2VsZWN0
b3ItYnV0dG9uKS4KLSAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRp
b24oUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICByZXR1cm4gcm91bmRU
b0ludChiYXNlbGluZVBvc2l0aW9uKCkpOwogICAgICAgICB9KCk7CiAKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3JX
aXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggN2Y4NGQzNDNmMDY1Li42Y2ViNGZj
OGNjMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVD
aGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hpCiAgICAgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxleEJveENoaWxk
LCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5l
UG9zaXRpb24oKSBjb25zdAogewogICAgIGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGlu
ZSgpOwogICAgIGlmICghYmFzZWxpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oCmluZGV4IGJiOWQ2YjAyNTM4Ni4uOGNhNzg3MmZjOGE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Ecm9wQW5vbnltb3VzQmxvY2tDaGlsZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBsYXlvdXRCbG9jayhSZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMF9sdSkgZmluYWw7CiAKLSAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
aW5kZXggYjRiYzUxMmNjMjE5Li43YWExYzAzOWZjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKQEAgLTIwMTIsOSArMjAxMiw4IEBAIGJvb2wgUmVuZGVyR3JpZDo6
aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0s
IEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4
aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93LgotTGF5b3V0VW5pdCBS
ZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSk7CiAg
ICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNlbGlu
ZSkKICAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHls
ZSgpLCBjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhl
aWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggNzJjYTZjYTIx
NjU2Li5jN2Y1YzczOGY1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApA
QCAtMjcwLDcgKzI3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVBdXRvTWFyZ2luc0lu
Um93QXhpc0lmTmVlZGVkKFJlbmRlckJveCYpOwogICAgIGJvb2wgaXNDaGlsZEVsaWdpYmxlRm9y
TWFyZ2luVHJpbShNYXJnaW5UcmltVHlwZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3QgZmluYWw7
CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVh
ZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGln
bm1lbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5k
ZXggMzU4YWExYWZmY2QxLi5mZDJkMTlkOWM2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIExheW91dFVuaXQgUmVuZGVySW1h
Z2U6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBlCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0KGVzdGltYXRlZFVzZWRXaWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJh
c2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAor
TGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAg
TGF5b3V0VW5pdCBvZmZzZXQ7CiAjaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMp
CkBAIC0zMTUsNyArMzE1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnMKICAgICAgICAgb2Zm
c2V0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobWV0cmljcy5kZXNjZW50KTsKICAgICB9
CiAjZW5kaWYKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQb3Np
dGlvbk1vZGUpIC0gb2Zmc2V0OworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKSAtIG9mZnNldDsKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdyYXBw
ZWRJbWFnZVB0ciBuZXdJbWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggNTY0NjFjOWRjYmVjLi45OTBhN2RiMzA0ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91
bGRDb21wdXRlUHJlZmVycmVkID0gU2hvdWxkQ29tcHV0ZVByZWZlcnJlZDo6Q29tcHV0ZUFjdHVh
bCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
SGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkVXNlZFdpZHRoID0gc3Rk
OjpudWxsb3B0KSBjb25zdCBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBv
dmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VUb0VtcHR5KCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZjlhZDIyNDc3ZmYxLi4yNjhh
OGQ2Mjk0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBA
IC04MjMsMTAgKzgyMywxMCBAQCBMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3RpbwogICAgIHJldHVybiBM
YXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uKExpbmVQb3Np
dGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5l
OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0
eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZv
bnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFsc2UsIHBhcmVudCgpLT53cml0aW5n
TW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIGxp
bmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OworICAgIHJldHVy
biBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwg
cGFyZW50KCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSAtIGZvbnRNZXRyaWNzLmhl
aWdodCgpKSAvIDIgfTsKIH0KIAogTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA0M2M2N2NhMzliZGYuLjg3Y2My
YTk1OWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTQw
LDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxk
KCkgZmluYWwgeyBtX2xlZ2FjeUxpbmVCb3hlcy5kaXJ0eUxpbmVGcm9tQ2hhbmdlZENoaWxkKCp0
aGlzKTsgfQogCiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3Np
dGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQg
dXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBj
b25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcAppbmRleCA4ZjVhZjFjM2FiNWIuLmY0YjI4YTg0NmUyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAgLTcyLDEwICs3MiwxMCBAQCBMYXlv
dXRVbml0IFJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgLypkaXJlYwogICAgIHJldHVybiAqbV9jYWNoZWRMaW5lSGVpZ2h0OwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRp
b25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpbmVCcmVh
azo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBz
dHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyAo
Zm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwgcGFyZW50KCktPndyaXRp
bmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwg
bGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyKSB9OworICAgIHJl
dHVybiBMYXlvdXRVbml0IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmFs
c2UsIHBhcmVudCgpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgLSBmb250TWV0cmlj
cy5oZWlnaHQoKSkgLyAyKSB9OwogfQogCiBpbnQgUmVuZGVyTGluZUJyZWFrOjpjYXJldE1pbk9m
ZnNldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgK
aW5kZXggNWVkMDM5MWVmZjM5Li4yNGUyNmY4NTkyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5h
bCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggM2RhM2Y4ODhmZDI3Li5mZmI2YmU1MjBiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTMwOCw5ICszMDgsOSBAQCBSZW5kZXJCb3g6
OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNh
bEhlaWdodChMYXlvdQogICAgIHJldHVybiBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0
KGxvZ2ljYWxIZWlnaHQsIGxvZ2ljYWxUb3ApOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RC
b3g6OmJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QK
IHsKLSAgICBhdXRvIGJhc2VsaW5lID0gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGxpbmVQ
b3NpdGlvbk1vZGUpOworICAgIGF1dG8gYmFzZWxpbmUgPSBSZW5kZXJCb3g6OmJhc2VsaW5lUG9z
aXRpb24oKTsKICAgICBpZiAoIXNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgYmFzZWxpbmUgLT0gYmFzZWxpbmVBZGp1c3RtZW50OwogICAgIHJldHVybiBiYXNlbGluZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IGNhOTRjNWRjODk4
Ny4uY2UzZWRjZDA1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggMzk0ZjcyYWJlNjI3Li5hNDJhYjc2
MzYzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5j
cHAKQEAgLTQyOSwxMSArNDI5LDExIEBAIExheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6bGlu
ZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0CiAgICAgcmV0
dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3Np
dGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGlmICgh
aXNJbWFnZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFzZWxpbmVQb3NpdGlvbihQ
b3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2Vs
aW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBtX2xpc3RJdGVt
LT5iYXNlbGluZVBvc2l0aW9uKCk7CisgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3Np
dGlvbigpOwogfQogCiBib29sIFJlbmRlckxpc3RNYXJrZXI6OmlzSW5zaWRlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCmluZGV4IGNjMmU4ZTMz
ZDJmYi4uNzA2ZWJiMzk0YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheW91dCgp
IGZpbmFsOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCopIGZpbmFsOwogICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsK
KyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBMYXlv
dXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFsOwog
ICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUmIG5ld1N0eWxlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmgKaW5kZXggNjNjOTFjM2VjZTY4Li40OWQxMWJjM2RlYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0xMjksOSArMTI5LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIEZsZXhib3ggZGVmaW5lcyBiYXNlbGluZXMgZGlmZmVyZW50bHkgdGhhbiBy
ZWd1bGFyIGJsb2Nrcy4KICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG1lbnVs
aXN0cyBuZWVkIHRvIGRvIHRoZSByZWd1bGFyIGJsb2NrIGJlaGF2aW9yLgotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVy
cmlkZQorICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24ocG9zaXRp
b24pOworICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAg
ICB9CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9
CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxv
Y2s6OmlubGluZUJsb2NrQmFzZWxpbmUoZGlyZWN0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCA3NjJlMThmYjc4ZTYuLmZlZTE3OTc5OWY5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTcyLDcgKzcy
LDcgQEAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IFJlbmRlclNsaWRlcjo6cHJvdGVjdGVkRWxlbWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGVGb3JO
b25Bbm9ueW1vdXMoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBv
c2l0aW9uKExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFBhdGNoIHRoaXMgZnVu
Y3Rpb24gZm9yIHdyaXRpbmctbW9kZS4KICAgICByZXR1cm4gaGVpZ2h0KCkgKyBtYXJnaW5Ub3Ao
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCAzMjY1MTgyNzAw
MzUuLmMwNWYzYWZjMTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
aApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFTQ0lJTGl0ZXJhbCBy
ZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNsaWRlciJfczsgfQog
Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAKaW5kZXggZTkyZWI5N2JmYTQwLi5mYmQ2NDUxMjBlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU4MiwxMSArMTU4MiwxMSBAQCBS
ZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpjZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFibGVD
ZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBjZWxsLT5zZWN0aW9uKCktPnByaW1hcnlDZWxs
QXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJs
ZTo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byBiYXNlbGluZVBvcyA9IGZpcnN0TGluZUJhc2VsaW5lKCkpCiAgICAgICAg
IHJldHVybiAod3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFy
Z2luUmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6
OmJhc2VsaW5lUG9zaXRpb24obGluZVBvc2l0aW9uTW9kZSk7CisgICAgcmV0dXJuIFJlbmRlckJv
eDo6YmFzZWxpbmVQb3NpdGlvbigpOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlclRhYmxlOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCA4NmQ1MWUwNzBmOTkuLjQw
MWIwZWFkNDU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAgLTIz
MSw3ICsyMzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpIG92ZXJyaWRlOwogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24pIG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOworICAg
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUo
TGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCA2Njk4YmQ1YzYwNDMuLmQzMzIyNWQ4YjNkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTkw
LDkgKzkwLDkgQEAgcHVibGljOgogICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIo
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9s
SW5uZXJDb250YWluZXIoKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihMaW5l
UG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQorICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24ocG9zaXRpb24pOworICAgICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAgICAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJl
bmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9CiAgICAgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUo
ZGlyZWN0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggYzVmNTViYTk5M2Q0Li41ZTA5NGQwY2Nj
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcApAQCAtOTgsOSArOTgsOSBAQCBMYXlvdXRVbml0IFJlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lOjpjb21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCBsaQogICAgIHJldHVybiBsaW5lSGVpZ2h0ICogdGV4dEFyZWFFbGVtZW50KCkucm93cygpICsg
bm9uQ29udGVudEhlaWdodDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZTo6YmFzZWxpbmVQb3NpdGlvbihMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9u
KGxpbmVQb3NpdGlvbk1vZGUpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6bGF5b3V0RXhjbHVk
ZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCmlu
ZGV4IGRmZGNjNTUxNDZmMC4uYTAxOWYwMGRmNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtNDQsNyArNDQs
NyBAQCBwcml2YXRlOgogICAgIGZsb2F0IGdldEF2ZXJhZ2VDaGFyV2lkdGgoKSBvdmVycmlkZTsK
ICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENvbnRlbnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hhcldp
ZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNh
bEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdo
dCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCBsYXlvdXRFeGNsdWRlZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4pIG92ZXJyaWRlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHAKaW5kZXggZjkyY2YwZGZjNDY2Li45MWMzODlhYTQ0MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CkBAIC05NSwxMiArOTUsOSBAQCBMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjptaXJyb3JJ
Zk5lZWRlZChMYXlvdXRVbml0IGhvcml6b250YWxPZmZzZXQsIExheW91dAogICAgIHJldHVybiBo
b3Jpem9udGFsT2Zmc2V0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uKExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyTWF0aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewot
ICAgIGlmIChsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1
ZV9vcihSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihsaW5lUG9zaXRpb25Nb2RlKSk7Cisg
ICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2Vs
aW5lUG9zaXRpb24oKSk7CiB9CiAKIExheW91dFVuaXQgdG9Vc2VyVW5pdHMoY29uc3QgTWF0aE1M
RWxlbWVudDo6TGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
TGF5b3V0VW5pdCYgcmVmZXJlbmNlVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKaW5kZXggZWRmNGI0YjM5NmJmLi44MGU1
ZDAwNDZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEJsb2NrLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODYxNy4KICAgICB2aXJ0dWFsIFJl
bmRlck1hdGhNTE9wZXJhdG9yKiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>