<?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>295137</bug_id>
          
          <creation_ts>2025-06-27 19:33:08 -0700</creation_ts>
          <short_desc>[Cleanup] Move baselinePosition from RenderBoxModelObject to RenderBox</short_desc>
          <delta_ts>2025-07-15 09:43:54 -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>2126458</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 19:33:08 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2126459</commentid>
    <comment_count>1</comment_count>
      <attachid>475684</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-06-27 19:39:04 -0700</bug_when>
    <thetext>Created attachment 475684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127143</commentid>
    <comment_count>2</comment_count>
      <attachid>475730</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 15:39:02 -0700</bug_when>
    <thetext>Created attachment 475730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127144</commentid>
    <comment_count>3</comment_count>
      <attachid>475731</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-01 15:39:48 -0700</bug_when>
    <thetext>Created attachment 475731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2127943</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-04 19:34:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/155076245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130154</commentid>
    <comment_count>5</comment_count>
      <attachid>476017</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-15 07:03:04 -0700</bug_when>
    <thetext>Created attachment 476017
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2130191</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-15 09:43:52 -0700</bug_when>
    <thetext>Committed 297401@main (38d1eb07ab9b): &lt;https://commits.webkit.org/297401@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476017.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475684</attachid>
            <date>2025-06-27 19:39:04 -0700</date>
            <delta_ts>2025-07-01 15:39:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295137-20250627193903.patch</filename>
            <type>text/plain</type>
            <size>6307</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwOTE4ODk3ZWE1YzRlY2JiZjM2NmI4MGExMjIwNmVjOTJlZDJkZTg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjcgSnVuIDIwMjUgMTk6MzM6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBiYXNlbGluZVBvc2l0aW9uIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3QgdG8KIFJl
bmRlckJveCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MTM3CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCklubGluZSBib3ggYW5kIGxpbmUgYnJlYWsgYmFz
ZWxpbmUgcG9zaXRpb25zIGFyZSBjb21wdXRlZCBieSBJRkMgYXMgcGFydCBvZiBpbmxpbmUgbGF5
b3V0LgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnNl
dEludGVncmF0aW9uQmFzZWxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaW5lQnJlYWsuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpiYXNlbGlu
ZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGluZUJyZWFrLmg6Ci0tLQogLi4uL2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94
R2VvbWV0cnlVcGRhdGVyLmNwcCAgICAgfCAzICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgICAgICAgICAgICB8IDEgLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgICAgICAgICAgICAgICAgICAg
fCA2IC0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oICAgICAg
ICAgICAgICAgICAgICAgfCAxIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwICAgICAgICAgICAgICAgIHwgNiAtLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaW5lQnJlYWsuaCAgICAgICAgICAgICAgICAgIHwgMSAtCiA3IGZpbGVzIGNo
YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0
cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggMTA4ZTA2MDcyMTFmLi5mYTAw
NWM3MjVlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVy
LmNwcApAQCAtMzE4LDggKzMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlv
bkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgIGlmICghaGFzTm9uU3lu
dGhldGljQmFzZWxpbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBiYXNlbGluZSA9
IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKCk7Ci0gICAgY29uc3RfY2FzdDxMYXlvdXQ6OkVs
ZW1lbnRCb3gmPigqcmVuZGVyQm94LmxheW91dEJveCgpKS5zZXRCYXNlbGluZUZvckludGVncmF0
aW9uKGJhc2VsaW5lKTsKKyAgICBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5k
ZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRpb24ocmVuZGVyQm94LmJh
c2VsaW5lUG9zaXRpb24oKSk7CiB9CiAKIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVyOjp1cGRhdGVM
YXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVdpZHRoLCBzdGQ6Om9wdGlvbmFsPExheW91dDo6SW50
cmluc2ljV2lkdGhNb2RlPiBpbnRyaW5zaWNXaWR0aE1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKaW5kZXggMzhkNTNjMDYzODU3Li5jMTBhNGQ5MzRkMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTUzMCw3ICs1MzAsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsgfQogICAg
IAogICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KCkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBMYXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCBjZmZmOTc3YWY2
NWYuLjJkNDY3NDk3NDM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmgKQEAgLTE5NCw3ICsxOTQsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBP
dmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNl
bGluZSBwb3NpdGlvbi4KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0ID0gMDsKIAogICAgIHZvaWQgbWFwQWJzb2x1
dGVUb0xvY2FsUG9pbnQoT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0
YXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAKaW5kZXggNWEzNjFkZDc0M2M0Li5mYTZjMDI3YWZkNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC04MjMsMTIgKzgyMyw2IEBAIExheW91
dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSAvKmRpcmVjdGlvCiAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwo
bGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJ
bmxpbmU6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAotewotICAgIGF1dG8mIGZvbnRNZXRyaWNz
ID0gc3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0
IHsgZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmYWxzZSwgd3JpdGluZ01vZGUo
KS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSAtIGZvbnRN
ZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKLX0KLQogTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9m
ZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpc24ndCByaWdodCB3aXRoIG1peGVk
IHdyaXRpbmcgbW9kZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5k
ZXggMjkxNDY0NmRmMjRmLi44ODZiYmQzMTc0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKQEAgLTE0MCw3ICsxNDAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGly
dHlMaW5lRnJvbUNoYW5nZWRDaGlsZCgpIGZpbmFsIHsgbV9sZWdhY3lMaW5lQm94ZXMuZGlydHlM
aW5lRnJvbUNoYW5nZWRDaGlsZCgqdGhpcyk7IH0KIAogICAgIExheW91dFVuaXQgbGluZUhlaWdo
dChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIHZvaWQg
dXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBj
b25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcAppbmRleCBmZmViMWQyOWFkMDAuLmU0ODA5MzljMWFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAgLTcyLDEyICs3Miw2IEBAIExheW91
dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSAvKmRpcmVjCiAgICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWlnaHQ7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKLXsK
LSAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsK
LSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVp
Z2h0KGZhbHNlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUg
OiBWZXJ0aWNhbExpbmUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMikgfTsKLX0KLQogaW50
IFJlbmRlckxpbmVCcmVhazo6Y2FyZXRNaW5PZmZzZXQoKSBjb25zdAogewogICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCmluZGV4IDE4ODVi
MjhjMzhiNy4uMTczMDFmMzE4YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCcmVhay5oCkBAIC02Miw3ICs2Miw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZVNl
bGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbDsKIAogICAgIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExheW91
dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJn
aW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475730</attachid>
            <date>2025-07-01 15:39:02 -0700</date>
            <delta_ts>2025-07-15 07:03:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295137-20250701153901.patch</filename>
            <type>text/plain</type>
            <size>6326</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMWQ1ZTQ4ZDE3MWY0ZTBlMjRhM2Q1OWQ5NzUwZjI0MWYwMDEyNjVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxNTozODoxOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBNb3ZlIGJhc2VsaW5lUG9zaXRpb24gZnJvbSBSZW5kZXJCb3hNb2RlbE9iamVjdCB0bwogUmVu
ZGVyQm94IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTUxMzcKClJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKSW5saW5lIGJveCBhbmQgbGluZSBicmVhayBiYXNl
bGluZSBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGJ5IElGQyBhcyBwYXJ0IG9mIGlubGluZSBsYXlv
dXQuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6c2V0
SW50ZWdyYXRpb25CYXNlbGluZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpbmVCcmVhay5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5l
UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuaDoKLS0tCiAuLi4vaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hH
ZW9tZXRyeVVwZGF0ZXIuY3BwICAgICB8IDMgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICAgICAgIHwgMSAtCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAgICAgICAgICAgICAgICAgICB8
IDYgLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggICAgICAg
ICAgICAgICAgICAgICB8IDEgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAgICAgICAgICAgICAgICAgfCA2IC0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5oICAgICAgICAgICAgICAgICAgfCAxIC0KIDcgZmlsZXMgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAppbmRleCAxMDhlMDYwNzIxMWYuLmZhMDA1
YzcyNWU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIu
Y3BwCkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9u
QmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiAgICAgaWYgKCFoYXNOb25TeW50
aGV0aWNCYXNlbGluZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJhc2VsaW5lID0g
cmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oKTsKLSAgICBjb25zdF9jYXN0PExheW91dDo6RWxl
bWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRp
b24oYmFzZWxpbmUpOworICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRl
ckJveC5sYXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihyZW5kZXJCb3guYmFz
ZWxpbmVQb3NpdGlvbigpKTsKIH0KIAogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxh
eW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRy
aW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAppbmRleCBlYjJlMmIzYWE1ZWQuLmYxMzg2Y2JlYjU3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCkgeyB9CiAgICAg
CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdDsKIAogICAgIExheW91dFVuaXQgb2Zmc2V0TGVmdCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgb2Zmc2V0VG9wKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IGNmZmY5NzdhZjY1
Zi4uMmQ0Njc0OTc0MzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuaApAQCAtMTk0LDcgKzE5NCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIE92
ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGluZSBoZWlnaHQgYW5kIGJhc2Vs
aW5lIHBvc2l0aW9uLgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgPSAwOwogCiAgICAgdm9pZCBtYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3JtU3Rh
dGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAppbmRleCBmYjMyMDgyNDE3NDMuLmZhNmMwMjdhZmQ3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgyMywxMiArODIzLDYgQEAgTGF5b3V0
VW5pdCBSZW5kZXJJbmxpbmU6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rp
b25Nb2RlIC8qZGlyZWN0aW8KICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChs
aW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklu
bGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0Ci17Ci0gICAgYXV0byYgZm9udE1ldHJpY3Mg
PSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQg
eyBmb250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZhbHNlLCBwYXJlbnQoKS0+d3Jp
dGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5l
KSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKLX0KLQogTGF5b3V0U2l6ZSBSZW5kZXJJ
bmxpbmU6Om9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBj
aGlsZCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpc24ndCByaWdodCB3
aXRoIG1peGVkIHdyaXRpbmcgbW9kZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmgKaW5kZXggMjkxNDY0NmRmMjRmLi44ODZiYmQzMTc0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTE0MCw3ICsxNDAsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlydHlMaW5lRnJvbUNoYW5nZWRDaGlsZCgpIGZpbmFsIHsgbV9sZWdhY3lMaW5lQm94
ZXMuZGlydHlMaW5lRnJvbUNoYW5nZWRDaGlsZCgqdGhpcyk7IH0KIAogICAgIExheW91dFVuaXQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFs
OwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIAog
ICAgIHZvaWQgdXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0
UG9pbnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmNwcAppbmRleCBiOWVlN2I1ZDYyM2QuLmU0ODA5MzljMWFkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAgLTcyLDEyICs3Miw2
IEBAIExheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjCiAgICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWln
aHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3QKLXsKLSAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlKCkubWV0cmljc09mUHJpbWFy
eUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSAr
IChsaW5lSGVpZ2h0KGZhbHNlLCBwYXJlbnQoKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgp
KSAvIDIpIH07Ci19Ci0KIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zmc2V0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuaAppbmRleCAxODg1YjI4YzM4YjcuLjE3MzAxZjMxOGMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtNjIsNyArNjIsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWw7CiAKICAgICBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25z
dCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsK
IAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQog
ICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475731</attachid>
            <date>2025-07-01 15:39:48 -0700</date>
            <delta_ts>2025-07-14 15:58:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295137-20250701153947.patch</filename>
            <type>text/plain</type>
            <size>54624</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyOWUwMGFjMGVlM2M4OTQxMWNmMGU3Y2JmZDM3NzYzMTMzMGMzN2E5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxNTozOToxNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBNb3ZlIGJhc2VsaW5lUG9zaXRpb24gZnJvbSBSZW5kZXJCb3hNb2RlbE9iamVjdCB0bwogUmVu
ZGVyQm94IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTUxMzcKClJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKSW5saW5lIGJveCBhbmQgbGluZSBicmVhayBiYXNl
bGluZSBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGJ5IElGQyBhcyBwYXJ0IG9mIGlubGluZSBsYXlv
dXQuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6c2V0
SW50ZWdyYXRpb25CYXNlbGluZSk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94R2Vv
bWV0cnlVcGRhdGVyOjp1cGRhdGVCb3hHZW9tZXRyeUFmdGVySW50ZWdyYXRpb25MYXlvdXQpOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHA6CihXZWJD
b3JlOjpjb21wdXRlQ2FyZXRSZWN0Rm9yRW1wdHlFbGVtZW50KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHA6CihXZWJDb3JlOjpMZWdhY3lMaW5lTGF5b3V0
OjpsYXlvdXRMaW5lQm94ZXMpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRh
Y2htZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24g
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50Lmg6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpsaW5lSGVpZ2h0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpiYXNlbGlu
ZVBvc2l0aW9uIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2Vs
aW5lIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tXaXRoTm9DaGlsZHJlbik6CihXZWJDb3JlOjpSZW5k
ZXJCbG9ja0Zsb3c6OmxheW91dEluRmxvd0NoaWxkcmVuKToKKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6YWRqdXN0SW5pdGlhbExldHRlclBvc2l0aW9uKToKKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmxheW91dElubGluZUNvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpsaW5lSGVpZ2h0IGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
Y3BwOgooV2ViQ29yZTo6UmVuZGVyQnV0dG9uOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOgooV2ViQ29yZTo6
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKFdlYkNvcmU6
OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludENvbnRyb2wpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJs
ZUJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJv
eDo6cGVyZm9ybUZsZXhMYXlvdXQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEdyaWQpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6
bGF5b3V0TWFzb25yeSk6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmxpbmVIZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
SW5saW5lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmg6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0
IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24gY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmg6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmJhc2Vs
aW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgooV2ViQ29y
ZTo6UmVuZGVyVGFibGU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUxv
Z2ljYWxIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11
bHRpTGluZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdp
ZHRoLmNwcDoKKFdlYkNvcmU6OkxpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwOgooV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKLS0tCiAuLi4v
TGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwICAgfCAgNyArKystLS0KIC4u
Li9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwICAgICAgICB8ICAyICstCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgfCAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwIHwgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwICAgICAgfCAyMyArKysrKysrLS0tLS0tLS0t
LS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAgICAgfCAgNCAr
Ky0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAgfCAxMCAr
KysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwg
IDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICB8
ICA0ICsrLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICB8
ICA0ICstLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwICAgICB8
ICA4ICsrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAg
ICB8ICAyICstCiAuLi4vcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAg
fCAgNCArKy0tCiAuLi4vcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCAgICAg
fCAgNCArKy0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAg
fCAxMCArKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmggIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCAgICAg
ICB8IDExICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCAg
ICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAg
ICAgICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAg
ICAgfCAgOSArLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
ICAgICAgIHwgIDMgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcCAgfCAgOSArLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5oICAgIHwgIDMgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwIHwgMTIgKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuaCAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmggICAgIHwgIDQgKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuaCAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwICAgICAgfCAgNiArKy0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmggICAgICAgIHwgIDIgKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bC5jcHAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaCAgfCAgNCArKy0tCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
LmNwcCAgfCAgNCArKy0tCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
LmggICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNw
cCAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCAg
ICB8ICA3ICsrLS0tLQogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCAg
ICAgIHwgIDIgKy0KIDQxIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDExNSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNw
cAppbmRleCBjNWExNWQwN2MzODUuLmZhMDA1YzcyNWU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRh
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgc3RhdGlj
IGlubGluZSBMYXlvdXRTaXplIHNjcm9sbGJhckxvZ2ljYWxTaXplKGNvbnN0IFJlbmRlckJveCYg
cmVuZGVyZXIpCiAgICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxi
YXIsIHZlcnRpY2FsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciB9OwogfQogCi1zdGF0aWMgaW5s
aW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJv
eCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdy
YXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKIHsKICAgICBhdXRvIGhh
c05vblN5bnRoZXRpY0Jhc2VsaW5lID0gWyZdIHsKICAgICAgICAgaWYgKGF1dG8qIHJlbmRlckxp
c3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdE1hcmtlcj4ocmVuZGVyQm94KSkK
QEAgLTMxOCw4ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNl
bGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgV3JpdGluZ01vZAogICAgIGlmICghaGFz
Tm9uU3ludGhldGljQmFzZWxpbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBiYXNl
bGluZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKGZhbHNlIC8qIGZpcnN0TGluZSAqLywg
d3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGlu
ZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKLSAgICBjb25zdF9jYXN0PExheW91dDo6RWxl
bWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRp
b24oYmFzZWxpbmUpOworICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRl
ckJveC5sYXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihyZW5kZXJCb3guYmFz
ZWxpbmVQb3NpdGlvbigpKTsKIH0KIAogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxh
eW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRy
aW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKQEAgLTQ4Nyw3ICs0ODYsNyBAQCB2
b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlQm94R2VvbWV0cnlBZnRlckludGVncmF0aW9u
TGF5b3V0KGNvbnN0IExheW91dDo6RQogCiAgICAgYXV0byBpbnRlZ3JhdGlvbkFkanVzdG1lbnRz
ID0gWyZdIHsKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVhbGx5IGJlIGFs
bCBhYnNvcmJlZCBieSBMRkMgbGF5b3V0LgotICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5l
KCpyZW5kZXJCb3gsIHdyaXRpbmdNb2RlKCkpOworICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2Vs
aW5lKCpyZW5kZXJCb3gpOwogCiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJMaXN0TWFya2VyID0g
ZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KCpyZW5kZXJCb3gpKSB7CiAgICAgICAg
ICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5wYXJlbnQoKS5zdHlsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKaW5kZXggMTJi
ODU2ZWNlYjE3Li40OTU3ZWIxN2M0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBM
YXlvdXRSZWN0IGNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQoY29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QmIHJlCiAgICAgfQogICAgIHggPSBzdGQ6Om1pbih4LCBzdGQ6Om1heDxMYXlv
dXRVbml0PihtYXhYIC0gY2FyZXRXaWR0aCgpLCAwKSk7CiAKLSAgICBhdXRvIGxpbmVIZWlnaHQg
PSByZW5kZXJlci5saW5lSGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8g
SG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hl
cyk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gcmVuZGVyZXIubGluZUhlaWdodCh0cnVlLCB3cml0
aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKTsK
ICAgICBhdXRvIGhlaWdodCA9IHN0ZDo6bWluKGxpbmVIZWlnaHQsIExheW91dFVuaXQgeyBjdXJy
ZW50U3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5oZWlnaHQoKSB9KTsKICAgICBhdXRvIHkg
PSByZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyAobGluZUhlaWdodCA+IGhlaWdo
dCA/IChsaW5lSGVpZ2h0IC0gaGVpZ2h0KSAvIDIgOiBMYXlvdXRVbml0IHsgfSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCAyYjdhNDE2
ZDgzNmUuLjk5ZGM3MDM1Y2QyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lMaW5lTGF5b3V0LmNwcApAQCAtNTc2LDcgKzU3Niw3IEBAIHZvaWQgTGVnYWN5TGluZUxheW91
dDo6bGF5b3V0TGluZUJveGVzKCkKICAgICB9CiAKICAgICBpZiAoIWxlZ2FjeVJvb3RCb3goKSAm
JiBtX2Zsb3cuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgbV9mbG93LnNldExvZ2ljYWxIZWln
aHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5lSGVpZ2h0KHRydWUsIG1fZmxv
dy5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgICAgICBtX2Zsb3cuc2V0TG9n
aWNhbEhlaWdodChtX2Zsb3cubG9naWNhbEhlaWdodCgpICsgbV9mbG93LmxpbmVIZWlnaHQodHJ1
ZSwgbV9mbG93LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSkpOwogfQogCiB2b2lkIExlZ2FjeUxpbmVMYXlvdXQ6OmFkZE92ZXJmbG93RnJv
bUlubGluZUNoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRh
Y2htZW50LmNwcAppbmRleCA3YzAwMDFkNWJmYmQuLjgxNjUzOTQ3Y2FkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcApAQCAtMTAzLDcgKzEwMyw3
IEBAIHZvaWQgUmVuZGVyQXR0YWNobWVudDo6bGF5b3V0KCkKICAgICAgICAgbGF5b3V0U2hhZG93
Q29udGVudChuZXdJbnRyaW5zaWNTaXplKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJBdHRhY2ht
ZW50OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRp
b25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogYmFzZWxpbmVFbGVtZW50ID0gYXR0YWNobWVu
dEVsZW1lbnQoKS53aWRlTGF5b3V0SW1hZ2VFbGVtZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGJhc2VsaW5lRWxlbWVudFJlbmRlckJveCA9IGJhc2VsaW5lRWxlbWVudC0+cmVuZGVyQm94KCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCmluZGV4IGU0
YzUyZTdiOWE2OC4uZjg0ZmNiOGE4NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJBdHRhY2htZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
bGF5b3V0KCkgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9v
bCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
TGF5b3V0VW5pdCBtX21pbmltdW1JbnRyaW5zaWNXaWR0aDsKICAgICBib29sIG1fc2hvdWxkRHJh
d0JvcmRlciB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IGNjYzIzYjg0NDhjMS4uYTNkNjE3Mjg0ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI0NzQsMjYgKzI0NzQsMjAgQEAgYm9vbCBSZW5kZXJC
bG9jazo6aGFzTGluZUlmRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50ICYmIGVsZW1l
bnQtPmlzUm9vdEVkaXRhYmxlRWxlbWVudCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
IExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBj
b25zdAogewotICAgIC8vIElubGluZSBibG9ja3MgYXJlIHJlcGxhY2VkIGVsZW1lbnRzLiBPdGhl
cndpc2UsIGp1c3QgcGFzcyBvZmYgdG8KLSAgICAvLyB0aGUgYmFzZSBjbGFzcy4gIElmIHdlJ3Jl
IGJlaW5nIHF1ZXJpZWQgYXMgdGhvdWdoIHdlJ3JlIHRoZSByb290IGxpbmUKLSAgICAvLyBib3gs
IHRoZW4gdGhlIGZhY3QgdGhhdCB3ZSdyZSBhbiBpbmxpbmUtYmxvY2sgaXMgaXJyZWxldmFudCwg
YW5kIHdlIGJlaGF2ZQotICAgIC8vIGp1c3QgbGlrZSBhIGJsb2NrLgotICAgIGlmIChpc0Jsb2Nr
TGV2ZWxSZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgJiYgbGluZVBvc2l0aW9uTW9kZSA9PSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpCi0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmxpbmVIZWln
aHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwotCiAgICAgYXV0byYg
bGluZVN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAg
cmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobGluZVN0eWxlLmNvbXB1dGVkTGluZUhl
aWdodCgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25N
b2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QKIHsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IGNvbnRhaW5pbmdC
bG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBW
ZXJ0aWNhbExpbmU7CiAgICAgLy8gSW5saW5lIGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMu
IE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwogICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYg
d2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUgdGhlIHJvb3QgbGluZQogICAgIC8v
IGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2
YW50LCBhbmQgd2UgYmVoYXZlCiAgICAgLy8ganVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlz
QmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgeworICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNl
ZE9yQXRvbWljSW5saW5lKCkpIHsKICAgICAgICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3Rz
LCBsZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KICAg
ICAgICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJldHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9w
ZXJ0eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRoZSB0aGVtZQogICAgICAgICAvLyBpcyB0dXJuZWQg
b2ZmLCBjaGVja2JveGVzL3JhZGlvcyB3aWxsIHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4K
QEAgLTI1MzcsMTIgKzI1MzEsMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWMKICAgICAgICAg
aWYgKGJhc2VsaW5lUG9zKQogICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9u
dGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFzZWxpbmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0
KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwogCi0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJh
c2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwor
ICAgICAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCk7CiAgICAgfQogCi0g
ICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUo
KSA6IHRoaXMtPnN0eWxlKCk7Ci0gICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0g
c3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZv
bnRNZXRyaWNzLmludEFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24s
IGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50
KCk7CisgICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gc3R5bGUoKS5tZXRyaWNz
T2ZQcmltYXJ5Rm9udCgpOworICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50
QXNjZW50KCkgKyAobGluZUhlaWdodCh0cnVlLCBkaXJlY3Rpb24pIC0gZm9udE1ldHJpY3MuaW50
SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
UmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTI2MDIsNyArMjU5NSw3
IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFz
ZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgbGluCiAgICAgaWYgKCFoYXZlTm9ybWFsRmxvd0NoaWxk
ICYmIGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBmaXJz
dExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgIHJldHVybiBMYXlv
dXRVbml0IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQotICAgICAgICAgICAg
KyAobGluZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAgKyAobGlu
ZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAv
IDIKICAgICAgICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3Jk
ZXJUb3AoKSArIHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkp
LnRvSW50KCkgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
aW5kZXggMjFkM2Y3NmY0YzA3Li44YjU5MmQxYzM5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCkBAIC02Niw4ICs2Niw4IEBAIHByb3RlY3RlZDoKIAogcHVibGljOgog
ICAgIC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgYXJlIG92ZXJyaWRkZW4gZm9yIGlubGluZS1ibG9j
ay4KLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rp
b25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25z
dCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FLUJMT0NL
RkxPVzogUmVtb3ZlIHZpcnR1YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRv
IFJlbmRlckJsb2NrRmxvdwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVMaW5lcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCBmMGE2ZGViMTk3
MGUuLjM2MjM1YWU2ZDgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5
b3V0QmxvY2tXaXRoTm9DaGlsZHJlbigpCiAgICAgICAgICAgICBzZXRIYXNNYXJnaW5CZWZvcmVR
dWlyayhzdHlsZS5tYXJnaW5CZWZvcmUoKS5oYXNRdWlyaygpKTsKICAgICAgICAgICAgIHNldEhh
c01hcmdpbkFmdGVyUXVpcmsoc3R5bGUubWFyZ2luQWZ0ZXIoKS5oYXNRdWlyaygpKTsKICAgICAg
ICAgfQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVp
Z2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFzTGluZUlmRW1wdHkoKSA/IGxp
bmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5l
IDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIDogMF9sdSkpOwor
ICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkg
KyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkgKyAoaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWln
aHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVy
dGljYWxMaW5lKSA6IDBfbHUpKTsKICAgICAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAg
IH07CiAgICAgY29tcHV0ZUJsb2NrQXhpc1NpemUoKTsKQEAgLTc4MCw3ICs3ODAsNyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5GbG93Q2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbiBy
ZWxheW91dENoaWxkcmVuLCBMYQogCiAgICAgICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IGJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAg
ICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgbG9naWNhbEhlaWdodCAr
PSBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFs
TGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKKyAgICAg
ICAgICAgIGxvZ2ljYWxIZWlnaHQgKz0gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpOwogICAgICAgICBzZXRM
b2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQpOwogCiAgICAgICAgIHJlcGFpbnRMb2dpY2FsVG9w
ID0geyB9OwpAQCAtMjc0OSw3ICsyNzQ5LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmFkanVz
dEluaXRpYWxMZXR0ZXJQb3NpdGlvbihSZW5kZXJCb3gmIGNoaWxkQm94LCBMYXlvdXRVbmkKICAg
ICBpZiAoIWZvbnRNZXRyaWNzLmNhcEhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBM
YXlvdXRVbml0IGhlaWdodE9mTGluZSA9IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50
ZXJpb3JMaW5lQm94ZXMpOworICAgIExheW91dFVuaXQgaGVpZ2h0T2ZMaW5lID0gbGluZUhlaWdo
dCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUpOwogICAgIExheW91dFVuaXQgYmVmb3JlTWFyZ2luQm9yZGVyUGFkZGluZyA9IGNo
aWxkQm94LmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIGNoaWxkQm94Lm1hcmdpbkJlZm9yZSgp
OwogICAgIAogICAgIC8vIE1ha2UgYW4gYWRqdXN0bWVudCB0byBhbGlnbiB3aXRoIHRoZSBjYXAg
aGVpZ2h0IG9mIGEgdGhlb3JldGljYWwgYmxvY2sgbGluZS4KQEAgLTMzMjYsNyArMzMyNiw3IEBA
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jh
c2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5
bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwogICAgICAgICAgICAgcmV0dXJuIExheW91dFVu
aXQgeyBMYXlvdXRVbml0KGZvbnRNZXRyaWNzLmludEFzY2VudCgpCi0gICAgICAgICAgICAgICAg
KyAobGluZUhlaWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAgICAgICsg
KGxpbmVIZWlnaHQodHJ1ZSwgbGluZURpcmVjdGlvbikgLSBmb250TWV0cmljcy5pbnRIZWlnaHQo
KSkgLyAyCiAgICAgICAgICAgICAgICAgKyAobGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGlu
ZSA/IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIDogYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdS
aWdodCgpKSkudG9JbnQoKSB9OwogICAgICAgICB9CiAKQEAgLTQwNDUsNyArNDA0NSw3IEBAIHZv
aWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KFJlbGF5b3V0Q2hpbGRyZW4g
cmVsYXlvdXRDaGlsZHJlbiwgTGF5CiAgICAgYXV0byBwYXJ0aWFsUmVwYWludFJlY3QgPSBsYXlv
dXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQubGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4gPT0g
UmVsYXlvdXRDaGlsZHJlbjo6WWVzID8gTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZv
cmNlRnVsbExheW91dDo6WWVzIDogTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZvcmNl
RnVsbExheW91dDo6Tm8pOwogCiAgICAgYXV0byBib3JkZXJCb3hCb3R0b20gPSBbJl0gewotICAg
ICAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGluZXMoKSAmJiBoYXNMaW5lSWZFbXB0eSgp
ID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRh
bExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgOiBsYXlv
dXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsKKyAg
ICAgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHko
KSA/IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250
YWxMaW5lIDogVmVydGljYWxMaW5lKSA6IGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91
dC5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICByZXR1cm4gYm9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpICsgY29udGVudEhlaWdodCArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigpICsgc2Ny
b2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgIH07CiAgICAgYXV0byBuZXdCb3JkZXJCb3hCb3R0
b20gPSBib3JkZXJCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggOTUwZGQ5ZGUxZjg0Li4xOGNhODFmMTYxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC00OTYwLDE3ICs0OTYwLDE3IEBAIGJvb2wgUmVuZGVyQm94
Ojppc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSBjb25zdAogICAgICAgICB8fCBzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhl
aWdodChib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGlu
ZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVyQm94OjpsaW5lSGVpZ2h0KGJvb2wgLypmaXJzdExpbmUqLywgTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uKSBjb25zdAogewogICAgIGlmIChpc0Jsb2NrTGV2ZWxSZXBsYWNlZE9yQXRvbWlj
SW5saW5lKCkpCiAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBt
X21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9tKCkgOiBtX21h
cmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKTsKICAgICByZXR1
cm4gMDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAv
KmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1v
ZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6YmFz
ZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JB
dG9taWNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoZGlyZWN0aW9uID09IEhv
cml6b250YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94
LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5s
ZWZ0KCkpOworICAgICAgICByZXR1cm4gcm91bmRUb0ludChjb250YWluaW5nQmxvY2soKS0+d3Jp
dGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IG1fbWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkg
KyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsg
bV9tYXJnaW5Cb3gubGVmdCgpKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCmluZGV4IGE4NGI3MDZlNzNkOC4uZjEzODZjYmViNTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01MjYsOCArNTI2LDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIG1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsg
fQogICAgIAotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgbGluZUhlaWdo
dChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICBMYXlv
dXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IG9mZnNl
dFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCAzYmJhNjU2ZTJkMjcuLjJkNDY3NDk3NDM2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAg
LTMxLDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTW9kZXMgZm9yIHNvbWUg
b2YgdGhlIGxpbmUtcmVsYXRlZCBmdW5jdGlvbnMuCi1lbnVtIExpbmVQb3NpdGlvbk1vZGUgeyBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyB9Owog
ZW51bSBMaW5lRGlyZWN0aW9uTW9kZSB7IEhvcml6b250YWxMaW5lLCBWZXJ0aWNhbExpbmUgfTsK
IAogZW51bSBjbGFzcyBCbGVlZEF2b2lkYW5jZSA6IHVpbnQ4X3QgewpAQCAtMTk0LDggKzE5Myw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrTG9naWNh
bFdpZHRoRm9yQ29udGVudCgpIGNvbnN0OwogCiAgICAgLy8gT3ZlcnJpZGRlbiBieSBzdWJjbGFz
c2VzIHRvIGRldGVybWluZSBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgcG9zaXRpb24uCi0gICAg
dmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rp
b25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWln
aHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCA9IDA7CiAKICAgICB2
b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+
LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IDAwNjgzYzU5YjM2Ni4uNGRjMzMxMGJhZWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcApAQCAtMTY2LDE0ICsx
NjYsMTQgQEAgc3RhdGljIExheW91dFVuaXQgc3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50
Qm94KGNvbnN0IFJlbmRlckJveCYgYm94LCBMaW5lRGkKICAgICByZXR1cm4gZGlyZWN0aW9uID09
IEhvcml6b250YWxMaW5lID8gYm94LmJvcmRlclRvcCgpICsgYm94LnBhZGRpbmdUb3AoKSArIGJv
eC5jb250ZW50Qm94SGVpZ2h0KCkgOiBib3guYm9yZGVyUmlnaHQoKSArIGJveC5wYWRkaW5nUmln
aHQoKSArIGJveC5jb250ZW50Qm94V2lkdGgoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCdXR0
b246OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJC
dXR0b246OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIGlmIChzaG91bGRBcHBseUxh
eW91dENvbnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6YmFz
ZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbW9kZSk7CisgICAgICAgIHJldHVy
biBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIC8vIFdlIGNhbm5v
dCByZWx5IG9uIFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgYmVjYXVzZSBv
ZiBmbGV4Ym94ZXMgaGF2ZSBzb21lIHNwZWNpYWwgYmVoYXZpb3IKICAgICAvLyByZWdhcmRpbmcg
YmFzZWxpbmVzIHRoYXQgc2hvdWxkbid0IGFwcGx5IHRvIGJ1dHRvbnMuCi0gICAgTGF5b3V0VW5p
dCBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCkudmFsdWVfb3Ioc3ludGhlc2l6ZWRCYXNl
bGluZUZyb21Db250ZW50Qm94KCp0aGlzLCBkaXJlY3Rpb24pKTsKLSAgICBMYXlvdXRVbml0IG1h
cmdpbkFzY2VudCA9IGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDog
bWFyZ2luUmlnaHQoKTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxp
bmUoKS52YWx1ZV9vcihzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goKnRoaXMsIGNv
bnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRh
bExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkFzY2VudCA9IGNv
bnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gbWFyZ2luVG9w
KCkgOiBtYXJnaW5SaWdodCgpOwogICAgIHJldHVybiBiYXNlbGluZSArIG1hcmdpbkFzY2VudDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDg3Y2YzYWVm
NGQwMy4uNjIyNDczNGEyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogaW5uZXJSZW5k
ZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5uZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldElubmVy
UmVuZGVyZXIoUmVuZGVyQmxvY2smKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQg
ZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBhZjg4NmY1ZTJl
YjUuLmNlODAyOGQ4MGI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2
b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChSZWxh
eW91dENoaWxkcmVuIHJlbGF5b3V0QwogICAgICAgICBBU1NFUlQoY2hpbGRJbmRleCA9PSBjaGls
ZExheW91dERlbHRhcy5zaXplKCkpOwogCiAgICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAm
JiBoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGlu
ZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgICAg
ICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgp
LmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUpKTsKIAogICAg
ICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyB0b0FkZCk7CiAKQEAgLTg0OCw3ICs4NDgsNyBAQCB2
b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3goUmVsYXlv
dXRDaGlsZHJlbiByZWxheW91dENoaQogICAgICAgICB5UG9zID0gaGVpZ2h0KCk7CiAKICAgICAg
ICAgaWYgKCFpdGVyYXRvci5maXJzdCgpICYmIGhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAg
ICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlKCkuaXNI
b3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZklu
dGVyaW9yTGluZUJveGVzKSk7CisgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5l
SGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGlu
ZSA6IFZlcnRpY2FsTGluZSkpOwogCiAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRk
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKaW5kZXggZjAwODk1YzRiN2Y0Li4zOWJiNjk3MTZmZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApA
QCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29u
dHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pCiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRpb24odHJ1ZSwgaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSk7CisgICAgICAgICAgICAvLyBGaWxlIHVwbG9hZCBidXR0b24gaXMgZGlzcGxh
eTogbm9uZSAoc2VlIDo6ZmlsZS1zZWxlY3Rvci1idXR0b24pLgorICAgICAgICAgICAgcmV0dXJu
IHJvdW5kVG9JbnQoYmFzZWxpbmVQb3NpdGlvbigpKTsKICAgICAgICAgfSgpOwogCiAgICAgICAg
IHBhaW50SW5mby5jb250ZXh0KCkuc2V0RmlsbENvbG9yKHN0eWxlKCkudmlzaXRlZERlcGVuZGVu
dENvbG9yV2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5Q29sb3IpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDhhNmFlNTNiYzM2OC4u
MWExMTVjNjQ0NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAKQEAgLTI2NCwxMyArMjY0LDEzIEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hp
CiAgICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxl
eEJveENoaWxkLCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGNv
bnN0CiB7CiAgICAgYXV0byBiYXNlbGluZSA9IGZpcnN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYg
KCFiYXNlbGluZSkKLSAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpw
YXJlbnRTdHlsZSgpLCBkaXJlY3Rpb24sIEJvcmRlckJveCkgKyBtYXJnaW5Mb2dpY2FsSGVpZ2h0
KCk7CisgICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5
bGUoKSwgY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBI
b3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxI
ZWlnaHQoKTsKIAotICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVjdGlvbiA9PSBI
b3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQoKTsKKyAg
ICByZXR1cm4gYmFzZWxpbmUudmFsdWUoKSArIChjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01v
ZGUoKS5pc0hvcml6b250YWwoKSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQo
KTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmly
c3RMaW5lQmFzZWxpbmUoKSBjb25zdApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENo
aWxkcmVuKQogCiAgICAgaWYgKGFsbEl0ZW1zLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoaGFz
TGluZUlmRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0byBtaW5IZWlnaHQgPSBib3JkZXJBbmRQ
YWRkaW5nTG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRl
cmlvckxpbmVCb3hlcykgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBh
dXRvIG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVp
Z2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZl
cnRpY2FsTGluZSkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBpZiAo
aGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodCht
aW5IZWlnaHQpOwogICAgICAgICB9CkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hp
bGRyZW4pCiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBvdXIgY2hpbGRyZW4gbWlnaHQg
YmUgb3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8gSW5zdGVhZCBvZiBqdXN0IGNo
ZWNraW5nIGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhlIGZsZXhib3gKICAgICAgICAg
Ly8gaGFzIGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdodCB0byBjb3ZlciB0aGlzIGNh
c2UuCi0gICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2lj
YWxIZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94
ZXMpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAgICBMYXlvdXRVbml0IG1pbkhl
aWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUs
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGlu
ZSkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGlmIChzaXplKCkuaGVpZ2h0
KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KG1pbkhlaWdodCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApp
bmRleCBlNjhjYWQyMDc2ZTMuLjhjYTc4NzJmYzhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAg
IGJvb2wgY2FuRHJvcEFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCBwYWdlTG9naWNhbEhlaWdodCA9IDBfbHUpIGZpbmFsOwogCi0gICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGlu
ZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNzAwMmY4OGRhNDY3Li43MjlkYmQ5YTk4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTQ4OSw3ICs0ODksNyBAQCB2
b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxk
cmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBo
ZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRy
YWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQ
b3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCisgICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0
KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRp
Y2FsTGluZSkKICAgICAgICAgICAgICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAg
ICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5I
ZWlnaHRGb3JFbXB0eUxpbmUpKTsKICAgICAgICAgfQpAQCAtNjI2LDcgKzYyNiw3IEBAIHZvaWQg
UmVuZGVyR3JpZDo6bGF5b3V0TWFzb25yeShSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRy
ZW4pCiAgICAgICAgIC8vIEdyaWQgY29udGFpbmVyIHNob3VsZCBoYXZlIHRoZSBtaW5pbXVtIGhl
aWdodCBvZiBhIGxpbmUgaWYgaXQncyBlZGl0YWJsZS4gVGhhdCBkb2VzIG5vdCBhZmZlY3QgdHJh
Y2sgc2l6aW5nIHRob3VnaC4KICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAg
ICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lID0gYm9yZGVyQW5kUGFkZGlu
Z0xvZ2ljYWxIZWlnaHQoKQotICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0cnVlLCBpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBv
c2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykKKyAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQo
dHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lKQogICAgICAgICAgICAgICAgICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAg
ICAgICAgICAgc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhl
aWdodEZvckVtcHR5TGluZSkpOwogICAgICAgICB9CkBAIC0yMDEyLDE0ICsyMDEyLDEzIEBAIGJv
b2wgUmVuZGVyR3JpZDo6aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRl
ckJveCYgZ3JpZEl0ZW0sIEdyaWRUCiB9CiAKIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJl
ZCBieSBSZW5kZXJGbGV4aWJsZUJveCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93
LgotTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVEaXJl
Y3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJHcmlkOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBBU1NFUlRf
VU5VU0VEKG1vZGUsIG1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKICAgICBhdXRv
IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lKQotICAg
ICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGRp
cmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgcmV0
dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUoKnRoaXMsICpwYXJlbnRTdHlsZSgpLCBjb250YWluaW5n
QmxvY2soKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDog
VmVydGljYWxMaW5lLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOwogCi0gICAg
cmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
bWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0ludCgpOworICAgIHJldHVybiBiYXNlbGlu
ZS52YWx1ZSgpICsgKGNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRh
bCgpID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0ludCgpOwogfQogCiBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckdyaWQ6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDg2YjFlY2UyZWEzOC4uN2Yy
NzRjZGMwNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI2OSw3
ICsyNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQXV0b01hcmdpbnNJblJvd0F4aXNJ
Zk5lZWRlZChSZW5kZXJCb3gmKTsKICAgICBib29sIGlzQ2hpbGRFbGlnaWJsZUZvck1hcmdpblRy
aW0oTWFyZ2luVHJpbVR5cGUsIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0IGZpbmFsOwogCi0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
ZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZp
bmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNv
bnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGlu
ZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggY2VlYTZhYmNhYjBmLi4wZmJhN2UwYTJhYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzA2LDcgKzMw
Niw3IEBAIExheW91dFVuaXQgUmVuZGVySW1hZ2U6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWln
aHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlCiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2Vk
Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KGVzdGltYXRlZFVzZWRXaWR0aCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRp
b25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXQ7CiAjaWYgRU5BQkxFKE1VTFRJX1JFUFJF
U0VOVEFUSU9OX0hFSUMpCkBAIC0zMTUsNyArMzE1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFn
ZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWMKICAgICAgICAgb2Zmc2V0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobWV0cmljcy5k
ZXNjZW50KTsKICAgICB9CiAjZW5kaWYKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBv
c2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAtIG9mZnNldDsK
KyAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCkgLSBvZmZzZXQ7CiB9CiAK
IHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIgbmV3SW1hZ2Us
IGNvbnN0IEludFJlY3QqIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CmluZGV4IDA1MWQxNTY0YzMxMi4uOTkwYTdkYjMwNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCA9
IFNob3VsZENvbXB1dGVQcmVmZXJyZWQ6OkNvbXB1dGVBY3R1YWwpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGVzdGltYXRlZFVzZWRXaWR0aCA9IHN0ZDo6bnVsbG9wdCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5p
bmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VUb0VtcHR5KCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggOTA4
ZjYyYjc5NTRiLi5mYTZjMDI3YWZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCkBAIC04MTcsMTkgKzgxNywxMiBAQCBMZWdhY3lJbmxpbmVGbG93Qm94KiBS
ZW5kZXJJbmxpbmU6OmNyZWF0ZUFuZEFwcGVuZElubGluZUZsb3dCb3goKQogICAgIHJldHVybiBm
bG93Qm94OwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklubGluZTo6bGluZUhlaWdodChib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgLypkaXJlY3Rpb24qLywgTGluZVBvc2l0aW9uTW9k
ZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjps
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvbiov
KSBjb25zdAogewogICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0
eWxlKCkgOiBzdHlsZSgpOwogICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxp
bmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5s
aW5lOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAg
ICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHls
ZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQo
KTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVI
ZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJp
Y3MuaGVpZ2h0KCkpIC8gMiB9OwotfQotCiBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb25lZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzbid0IHJpZ2h0IHdpdGggbWl4ZWQgd3Jp
dGluZyBtb2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA3
NWU2ZGIyZDg3ZDEuLjg4NmJiZDMxNzQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuaApAQCAtMTM5LDggKzEzOSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpcnR5
TGluZUZyb21DaGFuZ2VkQ2hpbGQoKSBmaW5hbCB7IG1fbGVnYWN5TGluZUJveGVzLmRpcnR5TGlu
ZUZyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOyB9CiAKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2Vs
aW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRp
b25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25z
dCBmaW5hbDsKICAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKaW5kZXggNGI0ZDc4MzIzY2VkLi5lNDgwOTM5
YzFhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJl
YWsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIFJlbmRlckxpbmVCcmVhazo6flJlbmRlckxpbmVCcmVhaygpCiB7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvbiovLCBMaW5lUG9zaXRpb25Nb2RlIC8q
bGluZVBvc2l0aW9uTW9kZSovKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6Omxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW9uKi8p
IGNvbnN0CiB7CiAgICAgaWYgKGZpcnN0TGluZSkgewogICAgICAgICBhdXRvJiBmaXJzdExpbmVT
dHlsZSA9IHRoaXMtPmZpcnN0TGluZVN0eWxlKCk7CkBAIC03MiwxMyArNzIsNiBAQCBMYXlvdXRV
bml0IFJlbmRlckxpbmVCcmVhazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVj
dGlvbk1vZGUgLypkaXJlYwogICAgIHJldHVybiAqbV9jYWNoZWRMaW5lSGVpZ2h0OwogfQogCi1M
YXlvdXRVbml0IFJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgYXV0byYgc3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExp
bmVTdHlsZSgpIDogdGhpcy0+c3R5bGUoKTsKLSAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxl
Lm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyAoZm9udE1l
dHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBv
c2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyKSB9OwotfQotCiBpbnQgUmVu
ZGVyTGluZUJyZWFrOjpjYXJldE1pbk9mZnNldCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKaW5kZXggZGYxMTk4YTVm
Y2Q1Li4xNzMwMWYzMThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJyZWFrLmgKQEAgLTYxLDggKzYxLDcgQEAgcHJpdmF0ZToKICAgICBpbnQgY2FyZXRNYXhPZmZz
ZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZp
bmFsOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGlu
ZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CiAKICAgICBMYXlv
dXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICBMYXlvdXRV
bml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBjZjUzYmI4YWI2YWEuLmZmYjZi
ZTUyMGIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApA
QCAtMzA4LDkgKzMwOCw5IEBAIFJlbmRlckJveDo6TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVz
IFJlbmRlckxpc3RCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91CiAgICAgcmV0dXJuIFJl
bmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCwgbG9naWNhbFRvcCk7
CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgbGluZURpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9k
ZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJMaXN0Qm94OjpiYXNl
bGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBhdXRvIGJhc2VsaW5lID0gUmVuZGVyQm94Ojpi
YXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgbGluZURpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9k
ZSk7CisgICAgYXV0byBiYXNlbGluZSA9IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbigpOwog
ICAgIGlmICghc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQogICAgICAgICBiYXNlbGlu
ZSAtPSBiYXNlbGluZUFkanVzdG1lbnQ7CiAgICAgcmV0dXJuIGJhc2VsaW5lOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggNGE1NDczZmUyMzA0Li5jZTNlZGNk
MDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtOTcs
NyArOTcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxX
aWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocygpIG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZp
cnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgYmFzZWxpbmVQ
b3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVl
cyBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVu
aXQgbG9naWNhbFRvcCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dCgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmlu
ZGV4IDExNmY4YTYyMzE1ZS4uYzA1NzdiMzRkYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC00MjIsMTggKzQyMiwxOCBAQCB2b2lkIFJl
bmRlckxpc3RNYXJrZXI6OnVwZGF0ZUlubGluZU1hcmdpbnMoKQogICAgIG11dGFibGVTdHlsZSgp
LnNldE1hcmdpbkVuZChTdHlsZTo6TWFyZ2luRWRnZTo6Rml4ZWQgeyBtYXJnaW5FbmQgfSk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikgY29uc3QKIHsKICAg
ICBpZiAoIWlzSW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmxpbmVIZWlnaHQo
Zmlyc3RMaW5lLCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7Ci0gICAg
cmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBv
c2l0aW9uTW9kZSk7CisgICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZpcnN0
TGluZSwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0
TGluZSwgZGlyZWN0aW9uKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpiYXNl
bGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
IExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVyTGlzdE1hcmtlcjo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0lt
YWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5iYXNlbGluZVBvc2l0aW9uKGZpcnN0
TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwotICAgIHJldHVy
biBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQ
b3NpdGlvbk1vZGUpOworICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFzZWxpbmVQb3NpdGlv
bigpOworICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oKTsKIH0KIAogYm9v
bCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCAyNThjNmEwYjJkMzIuLjY5ZWU3OWJjMDcz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCkBAIC04
MSw4ICs4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIGZpbmFsOwogICAgIHZvaWQgbGF5b3V0KCkgZmluYWw7CiAgICAgdm9pZCBp
bWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KikgZmluYWw7Ci0gICAg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBv
c2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9k
ZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CisgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZVBvc2l0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBi
b29sIGNsaXBUb1Zpc2libGVDb250ZW50KSBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9u
TGVhZigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHN0eWxlV2lsbENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IDU1MDJkMTc3
ODM4OS4uNDlkMTFiYzNkZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaApAQCAtMTI5LDkgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBGbGV4Ym94IGRl
ZmluZXMgYmFzZWxpbmVzIGRpZmZlcmVudGx5IHRoYW4gcmVndWxhciBibG9ja3MuCiAgICAgLy8g
Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBtZW51bGlzdHMgbmVlZCB0byBkbyB0aGUgcmVn
dWxhciBibG9jayBiZWhhdmlvci4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9k
ZSBwb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpi
YXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBwb3NpdGlvbik7CisgICAgICAg
IHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbigpOwogICAgIH0KICAgICBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KICAgICBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxv
Y2tCYXNlbGluZShkaXJlY3Rpb24pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwCmluZGV4IDU0MzkyOTg2ZjI2YS4uZmVlMTc5Nzk5ZjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBSZWY8SFRN
TElucHV0RWxlbWVudD4gUmVuZGVyU2xpZGVyOjpwcm90ZWN0ZWRFbGVtZW50KCkgY29uc3QKICAg
ICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9kZUZvck5vbkFub255bW91cygp
KTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJTbGlkZXI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAv
KmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogUGF0Y2ggdGhpcyBmdW5jdGlvbiBmb3Igd3JpdGluZy1tb2RlLgogICAgIHJl
dHVybiBoZWlnaHQoKSArIG1hcmdpblRvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oCmluZGV4IDU4M2Q4MjMxOGI2Ny4uYzA1ZjNhZmMxNjVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiUmVuZGVyU2xpZGVyIl9zOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0
IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRy
aW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5p
dCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwCmluZGV4IGYxYzE0MWVkNGUxZC4uZmJkNjQ1MTIwZTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE1ODIsMTEgKzE1ODIsMTEg
QEAgUmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZTo6Y2VsbEFmdGVyKGNvbnN0IFJlbmRlclRh
YmxlQ2VsbCogY2VsbCkgY29uc3QKICAgICByZXR1cm4gY2VsbC0+c2VjdGlvbigpLT5wcmltYXJ5
Q2VsbEF0KGNlbGwtPnJvd0luZGV4KCksIGVmZkNvbCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
VGFibGU6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
IGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAorTGF5
b3V0VW5pdCBSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgaWYg
KGF1dG8gYmFzZWxpbmVQb3MgPSBmaXJzdExpbmVCYXNlbGluZSgpKQotICAgICAgICByZXR1cm4g
KGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQo
KSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5l
UG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOworICAgICAg
ICByZXR1cm4gKHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBtYXJnaW5Ub3AoKSA6IG1h
cmdpblJpZ2h0KCkpICsgYmFzZWxpbmVQb3MudmFsdWUoKTsKKyAgICByZXR1cm4gUmVuZGVyQm94
OjpiYXNlbGluZVBvc2l0aW9uKCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVu
ZGVyVGFibGU6OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IDE5Yzk3NDQxZTVjMC4uNDAx
YjBlYWQ0NTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMjMx
LDcgKzIzMSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFj
dGlvbikgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25P
bkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9z
aXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0
TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
Y3BwCmluZGV4IDEyMzhiNmFjMWIyYS4uNDZkNTBkNjUwMmI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBS
ZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0Q29udHJvbDo6
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5uZXJUZXh0Qm94
ID0gaW5uZXJUZXh0LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0IG5vbkNvbnRl
bnRIZWlnaHQgPSBpbm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkg
KyBpbm5lclRleHRCb3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgbG9naWNhbEhl
aWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gtPmxpbmVIZWln
aHQodHJ1ZSwgSG9yaXpvbnRhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyksIG5v
bkNvbnRlbnRIZWlnaHQpOworICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xM
b2dpY2FsSGVpZ2h0KGlubmVyVGV4dEJveC0+bGluZUhlaWdodCh0cnVlLCBIb3Jpem9udGFsTGlu
ZSksIG5vbkNvbnRlbnRIZWlnaHQpOwogCiAgICAgICAgIC8vIFdlIGFyZSBhYmxlIHRvIGhhdmUg
YSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiB0aGUgb3ZlcmZsb3cgc3R5bGUgaXMgc2Nyb2xsLCBv
ciBpZiBpdHMgYXV0byBhbmQgdGhlcmUncyBubyB3b3JkIHdyYXAuCiAgICAgICAgIGF1dG8gc2hv
dWxkSW5jbHVkZVNjcm9sbGJhckhlaWdodCA9IFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCmluZGV4IDgyZTMyYzM5OGRmZC4uODkwMTBjMDBjZmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApAQCAt
ODgsOSArODgsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
cihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcigpOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1v
ZGUgcG9zaXRpb24pIGNvbnN0IG92ZXJyaWRlCisgICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6
YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgcG9zaXRpb24pOworICAgICAg
ICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKTsKICAgICB9CiAgICAgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9CiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2Rl
IGRpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmlubGluZUJs
b2NrQmFzZWxpbmUoZGlyZWN0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggODRiM2Q2ZjQxYjIw
Li41ZTA5NGQwY2NjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcApAQCAtOTgsOSArOTgsOSBAQCBMYXlvdXRV
bml0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpjb21wdXRlQ29udHJvbExvZ2ljYWxIZWln
aHQoTGF5b3V0VW5pdCBsaQogICAgIHJldHVybiBsaW5lSGVpZ2h0ICogdGV4dEFyZWFFbGVtZW50
KCkucm93cygpICsgbm9uQ29udGVudEhlaWdodDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9u
KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKKyAgICByZXR1cm4gUmVu
ZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmU6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbiByZWxheW91
dENoaWxkcmVuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaAppbmRleCBkZTE3YWRhM2Y1YmEuLmEwMTlmMDBkZjRlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVs
dGlMaW5lLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBnZXRBdmVyYWdl
Q2hhcldpZHRoKCkgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRDb250ZW50TG9n
aWNhbFdpZHRoKGZsb2F0IGNoYXJXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5p
dCBjb21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlv
dXRVbml0IG5vbkNvbnRlbnRIZWlnaHQpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQg
YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCBsYXlvdXRFeGNsdWRlZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4pIG92ZXJyaWRlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IGJh
MDk3YmJlMzYyMC4uZWNlYTFkN2EyNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9s
aW5lL0xpbmVXaWR0aC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBMaW5lV2lkdGg6OmZpdHNP
bkxpbmVFeGNsdWRpbmdUcmFpbGluZ0NvbGxhcHNlZFdoaXRlc3BhY2UoKSBjb25zdAogdm9pZCBM
aW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKCkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdo
dCA9IG1fYmxvY2subG9naWNhbEhlaWdodCgpOwotICAgIGF1dG8gbGluZUhlaWdodCA9IHN0ZDo6
bWF4KDBfbHUsIG1fYmxvY2subGluZUhlaWdodCh0cnVlLCBtX2Jsb2NrLmlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZklu
dGVyaW9yTGluZUJveGVzKSk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwg
bV9ibG9jay5saW5lSGVpZ2h0KHRydWUsIG1fYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSk7CiAgICAgbV9sZWZ0ID0gbV9ibG9j
ay5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoaGVpZ2h0LCBsaW5lSGVpZ2h0KTsKICAgICBtX3Jp
Z2h0ID0gbV9ibG9jay5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbGluZUhlaWdo
dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxCbG9jay5jcHAKaW5kZXggNWQxNjdhZWQ3Njg3Li45MWMzODlhYTQ0MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
Y3BwCkBAIC05NSwxMiArOTUsOSBAQCBMYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjptaXJy
b3JJZk5lZWRlZChMYXlvdXRVbml0IGhvcml6b250YWxPZmZzZXQsIExheW91dAogICAgIHJldHVy
biBob3Jpem9udGFsT2Zmc2V0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlck1hdGhNTEJsb2NrOjpi
YXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKK0xheW91dFVuaXQg
UmVuZGVyTWF0aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogewotICAgIGlmIChs
aW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSkpOworICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29yKFJlbmRl
ckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKCkpOwogfQogCiBMYXlvdXRVbml0IHRvVXNlclVuaXRz
KGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0aCYgbGVuZ3RoLCBjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUsIGNvbnN0IExheW91dFVuaXQmIHJlZmVyZW5jZVZhbHVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IGIwNWI2
ZWQwNjU0ZC4uODBlNWQwMDQ2YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTcuCiAg
ICAgdmlydHVhbCBSZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9wZXJhdG9yKCkg
Y29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0
aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5p
dCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICB2
b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476017</attachid>
            <date>2025-07-15 07:03:04 -0700</date>
            <delta_ts>2025-07-15 09:43:53 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295137-20250715070303.patch</filename>
            <type>text/plain</type>
            <size>6326</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxNGFhNTA5YmU3MTRiNDA5MDY2MDRmMzVhMmYzNjEyNjQ5YmJiZWIxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMSBKdWwgMjAyNSAxNTozODoxOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBNb3ZlIGJhc2VsaW5lUG9zaXRpb24gZnJvbSBSZW5kZXJCb3hNb2RlbE9iamVjdCB0bwogUmVu
ZGVyQm94IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTUxMzcKClJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKSW5saW5lIGJveCBhbmQgbGluZSBicmVhayBiYXNl
bGluZSBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGJ5IElGQyBhcyBwYXJ0IG9mIGlubGluZSBsYXlv
dXQuCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6c2V0
SW50ZWdyYXRpb25CYXNlbGluZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpbmVCcmVhay5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmJhc2VsaW5l
UG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuaDoKLS0tCiAuLi4vaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hH
ZW9tZXRyeVVwZGF0ZXIuY3BwICAgICB8IDMgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICAgICAgICAgICAgIHwgMSAtCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAgICAgICAgICAgICAgICAgICB8
IDYgLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggICAgICAg
ICAgICAgICAgICAgICB8IDEgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAgICAgICAgICAgICAgICAgfCA2IC0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5oICAgICAgICAgICAgICAgICAgfCAxIC0KIDcgZmlsZXMgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRy
eVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAppbmRleCAxMDhlMDYwNzIxMWYuLmZhMDA1
YzcyNWU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIu
Y3BwCkBAIC0zMTgsOCArMzE4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9u
QmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiAgICAgaWYgKCFoYXNOb25TeW50
aGV0aWNCYXNlbGluZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJhc2VsaW5lID0g
cmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oKTsKLSAgICBjb25zdF9jYXN0PExheW91dDo6RWxl
bWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRp
b24oYmFzZWxpbmUpOworICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRl
ckJveC5sYXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihyZW5kZXJCb3guYmFz
ZWxpbmVQb3NpdGlvbigpKTsKIH0KIAogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxh
eW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRy
aW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAppbmRleCAzN2NhZmE3NTYyYmIuLmM3MGM2OWI2OTNmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTI3LDcgKzUyNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCkgeyB9CiAgICAg
CiAgICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
KSBjb25zdDsKIAogICAgIExheW91dFVuaXQgb2Zmc2V0TGVmdCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgb2Zmc2V0VG9wKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDBlODJhZTQzZmNl
OS4uM2U5OTJkMDg1YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuaApAQCAtMTk1LDcgKzE5NSw2IEBAIHB1YmxpYzoKIAogICAgIC8vIE92
ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGluZSBoZWlnaHQgYW5kIGJhc2Vs
aW5lIHBvc2l0aW9uLgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKCkgY29uc3QgPSAwOwogCiAgICAgdm9pZCBtYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3JtU3Rh
dGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAppbmRleCBhY2Q3N2M1MTY0ZmUuLjE4ZmM5ZTFlNjc0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgyMywxMiArODIzLDYgQEAgTGF5b3V0
VW5pdCBSZW5kZXJJbmxpbmU6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rp
b25Nb2RlIC8qZGlyZWN0aW8KICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChs
aW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklu
bGluZTo6YmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0Ci17Ci0gICAgYXV0byYgZm9udE1ldHJpY3Mg
PSBzdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQg
eyBmb250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZhbHNlLCBwYXJlbnQoKS0+d3Jp
dGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5l
KSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIgfTsKLX0KLQogTGF5b3V0U2l6ZSBSZW5kZXJJ
bmxpbmU6Om9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUoY29uc3QgUmVuZGVyQm94KiBj
aGlsZCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpc24ndCByaWdodCB3
aXRoIG1peGVkIHdyaXRpbmcgbW9kZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmgKaW5kZXggMjkxNDY0NmRmMjRmLi44ODZiYmQzMTc0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTE0MCw3ICsxNDAsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlydHlMaW5lRnJvbUNoYW5nZWRDaGlsZCgpIGZpbmFsIHsgbV9sZWdhY3lMaW5lQm94
ZXMuZGlydHlMaW5lRnJvbUNoYW5nZWRDaGlsZCgqdGhpcyk7IH0KIAogICAgIExheW91dFVuaXQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFs
OwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIAog
ICAgIHZvaWQgdXBkYXRlSGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0
UG9pbnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmNwcAppbmRleCBiOWVlN2I1ZDYyM2QuLmU0ODA5MzljMWFkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAKQEAgLTcyLDEyICs3Miw2
IEBAIExheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjCiAgICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWln
aHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKCkg
Y29uc3QKLXsKLSAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlKCkubWV0cmljc09mUHJpbWFy
eUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSAr
IChsaW5lSGVpZ2h0KGZhbHNlLCBwYXJlbnQoKS0+d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgp
KSAvIDIpIH07Ci19Ci0KIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zmc2V0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuaAppbmRleCAxODg1YjI4YzM4YjcuLjE3MzAxZjMxOGMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtNjIsNyArNjIsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWw7CiAKICAgICBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlKSBjb25z
dCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oKSBjb25zdCBmaW5hbDsK
IAogICAgIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQog
ICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>