<?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>283814</bug_id>
          
          <creation_ts>2024-11-28 21:04:31 -0800</creation_ts>
          <short_desc>[Text] Add support for skipping previous non-bmp content when capitalizing</short_desc>
          <delta_ts>2024-11-29 12:25:14 -0800</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>
          
          <blocked>8854</blocked>
          <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>2078127</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-11-28 21:04:31 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078128</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-28 21:04:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/140681383&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078129</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-11-28 21:12:13 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/37245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078130</commentid>
    <comment_count>3</comment_count>
      <attachid>473393</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-28 21:13:56 -0800</bug_when>
    <thetext>Created attachment 473393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078163</commentid>
    <comment_count>4</comment_count>
      <attachid>473395</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-29 06:03:12 -0800</bug_when>
    <thetext>Created attachment 473395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078183</commentid>
    <comment_count>5</comment_count>
      <attachid>473396</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-29 09:37:29 -0800</bug_when>
    <thetext>Created attachment 473396
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078192</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-29 11:12:46 -0800</bug_when>
    <thetext>Committed 287173@main (a52cdae2e3d9): &lt;https://commits.webkit.org/287173@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473396.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473393</attachid>
            <date>2024-11-28 21:13:56 -0800</date>
            <delta_ts>2024-11-29 06:03:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283814-20241128211355.patch</filename>
            <type>text/plain</type>
            <size>16762</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0OWFkYmQyMTY0MzBmY2JjNDBmYmQ2NWRlOTBmOGNiNWMyM2IxY2I2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjggTm92IDIwMjQgMjE6MTA6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbVGV4dF0g
QWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIHByZXZpb3VzIG5vbi1ibXAgY29udGVudCB3aGVuCiBj
YXBpdGFsaXppbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4Mzgx
NAogPHJkYXI6Ly9wcm9ibGVtLzE0MDY4MTM4Mz4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKUHJldmlvdXMgY29udGVudCBtYXkgYmUgYSBncmFwaGVtZSBjbHVzdGVyIHdpdGggc2VyaWVz
IG9mIGNvZGVwb2ludHMuCgoqIExheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRl
bnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgoqIExheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0aC1vdXRz
aWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLmh0bWw6IEFkZGVkLgoqIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpwZXJmb3JtVGV4dE9wZXJhdGlvbik6CiogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgooSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CihXZWJDb3Jl
OjpSZW5kZXJMaXN0Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpSZW5kZXJMaXN0
Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwOgooUmVuZGVyTWVudUxpc3Q6OnVwZGF0ZU9wdGlvbnNXaWR0aCk6CihS
ZW5kZXJNZW51TGlzdDo6aXRlbVRleHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcDoKKFdlYkNvcmU6OmNhcGl0YWxpemUpOgooV2ViQ29yZTo6UmVuZGVy
VGV4dDo6cHJldmlvdXNDaGFyYWN0ZXIgY29uc3QpOgooV2ViQ29yZTo6YXBwbHlUZXh0VHJhbnNm
b3JtKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVy
VGV4dEZyYWdtZW50OjpwcmV2aW91c0NoYXJhY3RlciBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oOgotLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAgICAgICAgfCA3MyArKysrKysrKysrKystLS0tLS0tCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oICAgICAgICAgfCAgOCArLQogLi4uL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAgIHwgMTAgKystCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmggfCAgMiArLQogLi4uc2lkZS1ibXAtcHJldmlv
dXMtY2hhcmFjdGVycy1leHBlY3RlZC5odG1sIHwgIDMgKwogLi4uLXdpdGgtb3V0c2lkZS1ibXAt
cHJldmlvdXMtY2hhcmFjdGVycy5odG1sIHwgIDggKysKIDEwIGZpbGVzIGNoYW5nZWQsIDc4IGlu
c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91
cy1jaGFyYWN0ZXJzLWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMt
Y2hhcmFjdGVycy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggODU0Y2FhZThiZjJmLi41YzU5MjE2Y2RmM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMTExMiw3ICsxMTEyLDcgQEAgVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJp
bGl0eU9iamVjdDo6cGVyZm9ybVRleHRPcGVyYXRpb24oY29uc3QgQWNjZXNzaWJpbGl0eVRleHQK
ICAgICAgICAgYm9vbCByZXBsYWNlU2VsZWN0aW9uID0gZmFsc2U7CiAgICAgICAgIHN3aXRjaCAo
b3BlcmF0aW9uLnR5cGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5VGV4dE9wZXJhdGlv
blR5cGU6OkNhcGl0YWxpemU6Ci0gICAgICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IGNhcGl0
YWxpemUodGV4dCwgJyAnKTsgLy8gRklYTUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNj
b3VudCB0byB3b3JrIGNvcnJlY3RseS4KKyAgICAgICAgICAgIHJlcGxhY2VtZW50U3RyaW5nID0g
Y2FwaXRhbGl6ZSh0ZXh0KTsgLy8gRklYTUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNj
b3VudCB0byB3b3JrIGNvcnJlY3RseS4KICAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb24gPSB0
cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVRleHRP
cGVyYXRpb25UeXBlOjpVcHBlcmNhc2U6CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBWZWN0b3I8U3Ry
aW5nPiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwZXJmb3JtVGV4dE9wZXJhdGlvbihjb25zdCBBY2Nl
c3NpYmlsaXR5VGV4dAogICAgICAgICAgICAgICAgICYmIHJlcGxhY2VtZW50U3RyaW5nLmxlbmd0
aCgpID4gMgogICAgICAgICAgICAgICAgICYmIHJlcGxhY2VtZW50U3RyaW5nICE9IHJlcGxhY2Vt
ZW50U3RyaW5nLmNvbnZlcnRUb1VwcGVyY2FzZVdpdGhvdXRMb2NhbGUoKSkgewogICAgICAgICAg
ICAgICAgIGlmICh0ZXh0WzBdID09IHVfdG91cHBlcih0ZXh0WzBdKSkKLSAgICAgICAgICAgICAg
ICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSBjYXBpdGFsaXplKHJlcGxhY2VtZW50U3RyaW5nLCAn
ICcpOyAvLyBGSVhNRTogTmVlZHMgdG8gdGFrZSBsb2NhbGUgaW50byBhY2NvdW50IHRvIHdvcmsg
Y29ycmVjdGx5LgorICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IGNhcGl0
YWxpemUocmVwbGFjZW1lbnRTdHJpbmcpOyAvLyBGSVhNRTogTmVlZHMgdG8gdGFrZSBsb2NhbGUg
aW50byBhY2NvdW50IHRvIHdvcmsgY29ycmVjdGx5LgogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSByZXBsYWNlbWVudFN0cmluZy5j
b252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCk7IC8vIEZJWE1FOiBOZWVkcyBsb2NhbGUg
dG8gd29yayBjb3JyZWN0bHkuCiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggZTczZGMxM2U4ZTBmLi45YTQwZWUyNTk0
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0K
QEAgLTIxNTIsNyArMjE1Miw3IEBAIHZvaWQgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KFRl
eHQmIHRleHQpCiAgICAgaWYgKG91dHB1dFN0cmluZy5sZW5ndGgoKSkgewogICAgICAgICBTdHJp
bmcgdGV4dFRyYW5zZm9ybSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKHRleHQsIENT
U1Byb3BlcnR5VGV4dFRyYW5zZm9ybSk7CiAgICAgICAgIGlmICh0ZXh0VHJhbnNmb3JtID09ICJj
YXBpdGFsaXplIl9zKQotICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gY2FwaXRhbGl6ZShvdXRw
dXRTdHJpbmcsICcgJyk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFjY291
bnQgdG8gd29yayBjb3JyZWN0bHkuCisgICAgICAgICAgICBvdXRwdXRTdHJpbmcgPSBjYXBpdGFs
aXplKG91dHB1dFN0cmluZyk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFj
Y291bnQgdG8gd29yayBjb3JyZWN0bHkuCiAgICAgICAgIGVsc2UgaWYgKHRleHRUcmFuc2Zvcm0g
PT0gInVwcGVyY2FzZSJfcykKICAgICAgICAgICAgIG91dHB1dFN0cmluZyA9IG91dHB1dFN0cmlu
Zy5jb252ZXJ0VG9VcHBlcmNhc2VXaXRob3V0TG9jYWxlKCk7IC8vIEZJWE1FOiBOZWVkcyBsb2Nh
bGUgdG8gd29yayBjb3JyZWN0bHkuCiAgICAgICAgIGVsc2UgaWYgKHRleHRUcmFuc2Zvcm0gPT0g
Imxvd2VyY2FzZSJfcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAppbmRleCBiZGE1OTM0MjQ3MWEuLjk5ZWQyNTQzZWE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgUmVuZGVy
TGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKHRleHQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgdGV4dCA9IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCB0ZXh0LCAnICcpOworICAgICAg
ICAgICAgdGV4dCA9IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCB0ZXh0KTsKICAgICAgICAg
ICAgIGF1dG8gdGV4dFJ1biA9IGNvbnN0cnVjdFRleHRSdW4odGV4dCwgc3R5bGUoKSwgRXhwYW5z
aW9uQmVoYXZpb3I6OmFsbG93UmlnaHRPbmx5KCkpOwogICAgICAgICAgICAgbG9naWNhbFdpZHRo
ID0gc3RkOjptYXgobG9naWNhbFdpZHRoLCBzZWxlY3RGb250KCkud2lkdGgodGV4dFJ1bikpOwog
ICAgICAgICB9CkBAIC01MDgsNyArNTA4LDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0
ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAg
ICAgICAgaXRlbVRleHQgPSBvcHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91
cExhYmVsKCk7CiAgICAgZWxzZSBpZiAob3B0R3JvdXBFbGVtZW50KQogICAgICAgICBpdGVtVGV4
dCA9IG9wdEdyb3VwRWxlbWVudC0+Z3JvdXBMYWJlbFRleHQoKTsKLSAgICBpdGVtVGV4dCA9IGFw
cGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCBpdGVtVGV4dCwgJyAnKTsKKyAgICBpdGVtVGV4dCA9
IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCBpdGVtVGV4dCk7CiAKICAgICBpZiAoaXRlbVRl
eHQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDg0ZmQ5NWMwNzFlYS4uMWE1MjkzZWE2OWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTIyMyw3ICsy
MjMsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgoKQogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgU3RyaW5nIHRleHQgPSBvcHRpb24tPnRleHRJbmRl
bnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICAgICAgdGV4dCA9IGFwcGx5VGV4dFRyYW5z
Zm9ybShzdHlsZSgpLCB0ZXh0LCAnICcpOworICAgICAgICB0ZXh0ID0gYXBwbHlUZXh0VHJhbnNm
b3JtKHN0eWxlKCksIHRleHQpOwogICAgICAgICBpZiAodGhlbWUoKS5wb3B1cE9wdGlvblN1cHBv
cnRzVGV4dEluZGVudCgpKSB7CiAgICAgICAgICAgICAvLyBBZGQgaW4gdGhlIG9wdGlvbidzIHRl
eHQgaW5kZW50LiAgV2UgY2FuJ3QgY2FsY3VsYXRlIHBlcmNlbnRhZ2UgdmFsdWVzIGZvciBub3cu
CiAgICAgICAgICAgICBmbG9hdCBvcHRpb25XaWR0aCA9IDA7CkBAIC00NzAsNyArNDcwLDcgQEAg
U3RyaW5nIFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0
CiAgICAgZWxzZSBpZiAoYXV0byogb3B0aW9uID0gZHluYW1pY0Rvd25jYXN0PEhUTUxPcHRpb25F
bGVtZW50PihlbGVtZW50KSkKICAgICAgICAgaXRlbVN0cmluZyA9IG9wdGlvbi0+dGV4dEluZGVu
dGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOwogCi0gICAgcmV0dXJuIGFwcGx5VGV4dFRyYW5zZm9y
bShzdHlsZSgpLCBpdGVtU3RyaW5nLCAnICcpOworICAgIHJldHVybiBhcHBseVRleHRUcmFuc2Zv
cm0oc3R5bGUoKSwgaXRlbVN0cmluZyk7CiB9CiAKIFN0cmluZyBSZW5kZXJNZW51TGlzdDo6aXRl
bUxhYmVsKHVuc2lnbmVkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCmluZGV4IGJjNDA0ZjE5MWNhMy4uYWY1ODVlNDg4NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0yMDksMjIgKzIwOSwyOCBAQCBzdGF0aWMgaW5saW5l
IHNpemVfdCBjYXBpdGFsaXplQ2hhcmFjdGVyKFN0cmluZyB0ZXh0Q29udGVudCwgdW5zaWduZWQg
c3RhcnRDaGFyYQogICAgIHJldHVybiBjYXBpdGFsaXplKGNvbnRlbnQuZGF0YSgpLCBjYXBpdGFs
aXplZENvbnRlbnRMZW5ndGgpOwogfQogCi1TdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcm
IHN0cmluZywgVUNoYXIgcHJldmlvdXNDaGFyYWN0ZXIpCitTdHJpbmcgY2FwaXRhbGl6ZShjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gdXNlIHVf
c3RyVG9UaXRsZSBpbnN0ZWFkIG9mIHVfdG90aXRsZSBhbmQgdG8gY29uc2lkZXIgbG9jYWxlLgor
ICAgIFZlY3RvcjxVQ2hhcj4gcHJldmlvdXNDaGFyYWN0ZXIoMSwgJyAnKTsKKyAgICByZXR1cm4g
Y2FwaXRhbGl6ZShzdHJpbmcsIHByZXZpb3VzQ2hhcmFjdGVyKTsKK30KIAotICAgIHVuc2lnbmVk
IGxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKK1N0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBWZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKQoreworICAgIGludDMy
X3QgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGludDMyX3QgcHJldmlvdXNDaGFyYWN0
ZXJMZW5ndGggPSBwcmV2aW91c0NoYXJhY3Rlci5zaXplKCk7CiAgICAgYXV0byYgc3RyaW5nSW1w
bCA9ICpzdHJpbmcuaW1wbCgpOwogCiAgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0
aCA8IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgIk11c3QgYmUgYWJsZSB0
byBhZGQgb25lIHdpdGhvdXQgb3ZlcmZsb3dpbmcgdW5zaWduZWQiKTsKIAogICAgIC8vIFJlcGxh
Y2UgTk8gQlJFQUsgU1BBQ0Ugd2l0aCBhIG5vcm1hbCBzcGFjZXMgc2luY2UgSUNVIGRvZXMgbm90
IHRyZWF0IGl0IGFzIGEgd29yZCBzZXBhcmF0b3IuCi0gICAgVmVjdG9yPFVDaGFyPiBzdHJpbmdX
aXRoUHJldmlvdXMobGVuZ3RoICsgMSk7Ci0gICAgc3RyaW5nV2l0aFByZXZpb3VzWzBdID0gY29u
dmVydE5vQnJlYWtTcGFjZVRvU3BhY2UocHJldmlvdXNDaGFyYWN0ZXIpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDE7IGkgPCBsZW5ndGggKyAxOyBpKyspCi0gICAgICAgIHN0cmluZ1dpdGhQcmV2
aW91c1tpXSA9IGNvbnZlcnROb0JyZWFrU3BhY2VUb1NwYWNlKHN0cmluZ0ltcGxbaSAtIDFdKTsK
KyAgICBWZWN0b3I8VUNoYXI+IHN0cmluZ1dpdGhQcmV2aW91cyhwcmV2aW91c0NoYXJhY3Rlckxl
bmd0aCArIGxlbmd0aCk7CisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgcHJldmlvdXNDaGFy
YWN0ZXJMZW5ndGg7ICsraSkKKyAgICAgICAgc3RyaW5nV2l0aFByZXZpb3VzW2ldID0gY29udmVy
dE5vQnJlYWtTcGFjZVRvU3BhY2UocHJldmlvdXNDaGFyYWN0ZXJbaV0pOworICAgIGZvciAoaW50
MzJfdCBpID0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGg7IGkgPCBsZW5ndGggKyBwcmV2aW91c0No
YXJhY3Rlckxlbmd0aDsgKytpKQorICAgICAgICBzdHJpbmdXaXRoUHJldmlvdXNbaV0gPSBjb252
ZXJ0Tm9CcmVha1NwYWNlVG9TcGFjZShzdHJpbmdJbXBsW2kgLSBwcmV2aW91c0NoYXJhY3Rlckxl
bmd0aF0pOwogCi0gICAgYXV0byogYnJlYWtJdGVyYXRvciA9IFdURjo6d29yZEJyZWFrSXRlcmF0
b3Ioc3RyaW5nV2l0aFByZXZpb3VzLnNwYW4oKS5maXJzdChsZW5ndGggKyAxKSk7CisgICAgYXV0
byogYnJlYWtJdGVyYXRvciA9IFdURjo6d29yZEJyZWFrSXRlcmF0b3Ioc3RyaW5nV2l0aFByZXZp
b3VzLnNwYW4oKSk7CiAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQogICAgICAgICByZXR1cm4gc3Ry
aW5nOwogCkBAIC0yMzIsMjEgKzIzOCwxOCBAQCBTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJp
bmcmIHN0cmluZywgVUNoYXIgcHJldmlvdXNDaGFyYWN0ZXIpCiAgICAgcmVzdWx0LnJlc2VydmVD
YXBhY2l0eShsZW5ndGgpOwogCiAgICAgaW50MzJfdCBzdGFydE9mV29yZCA9IHVicmtfZmlyc3Qo
YnJlYWtJdGVyYXRvcik7Ci0gICAgaW50MzJfdCBlbmRPZldvcmQ7Ci0gICAgZm9yIChlbmRPZldv
cmQgPSB1YnJrX25leHQoYnJlYWtJdGVyYXRvcik7IGVuZE9mV29yZCAhPSBVQlJLX0RPTkU7IHN0
YXJ0T2ZXb3JkID0gZW5kT2ZXb3JkLCBlbmRPZldvcmQgPSB1YnJrX25leHQoYnJlYWtJdGVyYXRv
cikpIHsKLSAgICAgICAgLy8gRG8gbm90IGFwcGVuZCB0aGUgZmlyc3QgY2hhcmFjdGVyLCBzaW5j
ZSBpdCdzIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIsIG5vdCBmcm9tIHRoaXMgc3RyaW5nLgotICAg
ICAgICBzaXplX3QgY2FwaXRhbGl6ZWRDb250ZW50TGVuZ3RoID0gMTsKLSAgICAgICAgaWYgKHN0
YXJ0T2ZXb3JkKSB7Ci0gICAgICAgICAgICBjYXBpdGFsaXplZENvbnRlbnRMZW5ndGggPSBjYXBp
dGFsaXplQ2hhcmFjdGVyKHN0cmluZywgc3RhcnRPZldvcmQgLSAxLCByZXN1bHQpOwotICAgICAg
ICAgICAgaWYgKCFjYXBpdGFsaXplZENvbnRlbnRMZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHN0cmluZ1dpdGhQcmV2aW91c1tzdGFydE9mV29yZF0pOwotICAgICAgICAg
ICAgICAgIGNhcGl0YWxpemVkQ29udGVudExlbmd0aCA9IDE7Ci0gICAgICAgICAgICB9CisgICAg
Zm9yIChpbnQzMl90IGVuZE9mV29yZCA9IHVicmtfbmV4dChicmVha0l0ZXJhdG9yKTsgZW5kT2ZX
b3JkICE9IFVCUktfRE9ORTsgc3RhcnRPZldvcmQgPSBlbmRPZldvcmQsIGVuZE9mV29yZCA9IHVi
cmtfbmV4dChicmVha0l0ZXJhdG9yKSkgeworICAgICAgICAvLyBEbyBub3QgdHJ5IHRvIHRpdGxl
Y2FzZSB0aGUgcHJldmlvdXMgY29udGVudC4KKyAgICAgICAgaWYgKHN0YXJ0T2ZXb3JkID49IHBy
ZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoKSB7CisgICAgICAgICAgICBhdXRvIGNhcGl0YWxpemVkQ29u
dGVudExlbmd0aCA9IGNhcGl0YWxpemVDaGFyYWN0ZXIoc3RyaW5nLCBzdGFydE9mV29yZCAtIHBy
ZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoLCByZXN1bHQpOworICAgICAgICAgICAgZm9yIChpbnQzMl90
IGkgPSBzdGFydE9mV29yZCArIGNhcGl0YWxpemVkQ29udGVudExlbmd0aDsgaSA8IGVuZE9mV29y
ZDsgKytpKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gcHJl
dmlvdXNDaGFyYWN0ZXJMZW5ndGhdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8v
IFRoaXMgaXMgcHJldmlvdXMgYW5kIGNvbnRpbm91cyBub24tdGl0bGVjYXNlZCBjdXJyZW50IGNv
bnRlbnQuIE9ubHkgYXBwZW5kIGN1cnJlbnQgY29udGVudC4KKyAgICAgICAgICAgIGZvciAoaW50
MzJfdCBpID0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGggKyBzdGFydE9mV29yZDsgaSA8IGVuZE9m
V29yZDsgKytpKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0g
cHJldmlvdXNDaGFyYWN0ZXJMZW5ndGhdKTsKICAgICAgICAgfQotICAgICAgICBmb3IgKGludCBp
ID0gc3RhcnRPZldvcmQgKyBjYXBpdGFsaXplZENvbnRlbnRMZW5ndGg7IGkgPCBlbmRPZldvcmQ7
IGkrKykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gMV0pOwogICAg
IH0KLQogICAgIHJldHVybiByZXN1bHQgPT0gc3RyaW5nID8gc3RyaW5nIDogcmVzdWx0LnRvU3Ry
aW5nKCk7CiB9CiAKQEAgLTE1MTksNyArMTUyMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0lu
bGluZUZsb3dPckVtcHR5VGV4dChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJl
dHVybiB0ZXh0UmVuZGVyZXIgJiYgdGV4dFJlbmRlcmVyLT50ZXh0KCkuaXNFbXB0eSgpOwogfQog
Ci1VQ2hhciBSZW5kZXJUZXh0OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CitWZWN0b3I8VUNo
YXI+IFJlbmRlclRleHQ6OnByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKIHsKICAgICBjb25zdCBS
ZW5kZXJPYmplY3QqIHByZXZpb3VzVGV4dCA9IHRoaXM7CiAgICAgd2hpbGUgKChwcmV2aW91c1Rl
eHQgPSBwcmV2aW91c1RleHQtPnByZXZpb3VzSW5QcmVPcmRlcigpKSkgewpAQCAtMTUzMCw5ICsx
NTMzLDIzIEBAIFVDaGFyIFJlbmRlclRleHQ6OnByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKICAg
ICB9CiAgICAgYXV0byogcmVuZGVyVGV4dCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJUZXh0Pihw
cmV2aW91c1RleHQpOwogICAgIGlmICghcmVuZGVyVGV4dCkKLSAgICAgICAgcmV0dXJuICcgJzsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgIGF1dG8mIHByZXZpb3VzU3RyaW5nID0gcmVuZGVy
VGV4dC0+dGV4dCgpOwotICAgIHJldHVybiBwcmV2aW91c1N0cmluZ1twcmV2aW91c1N0cmluZy5s
ZW5ndGgoKSAtIDFdOworICAgIFZlY3RvcjxVQ2hhcj4gcHJldmlvdXM7CisgICAgaWYgKHByZXZp
b3VzU3RyaW5nLmlzOEJpdCgpKQorICAgICAgICBwcmV2aW91cy5hcHBlbmQocHJldmlvdXNTdHJp
bmdbcHJldmlvdXNTdHJpbmcubGVuZ3RoKCkgLSAxXSk7CisgICAgZWxzZSB7CisgICAgICAgIGF1
dG8gY29udGVudEl0ZXJhdG9yID0gU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yIHsgcHJl
dmlvdXNTdHJpbmcuc3BhbjE2KCksIDAsIHByZXZpb3VzU3RyaW5nLmxlbmd0aCgpIH07CisgICAg
ICAgIHVuc2lnbmVkIGNoYXJhY3Rlckxlbmd0aCA9IDA7CisgICAgICAgIGNoYXIzMl90IGN1cnJl
bnRDaGFyYWN0ZXIgPSAwOworICAgICAgICB3aGlsZSAoY29udGVudEl0ZXJhdG9yLmNvbnN1bWUo
Y3VycmVudENoYXJhY3RlciwgY2hhcmFjdGVyTGVuZ3RoKSkKKyAgICAgICAgICAgIGNvbnRlbnRJ
dGVyYXRvci5hZHZhbmNlKGNoYXJhY3Rlckxlbmd0aCk7CisKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IHByZXZpb3VzU3RyaW5nLmxlbmd0aCgpIC0gY2hhcmFjdGVyTGVuZ3RoOyBpIDwgcHJldmlv
dXNTdHJpbmcubGVuZ3RoKCk7ICsraSkKKyAgICAgICAgICAgIHByZXZpb3VzLmFwcGVuZChwcmV2
aW91c1N0cmluZ1tpXSk7CisgICAgfQorICAgIHJldHVybiBwcmV2aW91czsKIH0KIAogc3RhdGlj
IFN0cmluZyBjb252ZXJ0VG9GdWxsU2l6ZUthbmEoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC0x
NjIzLDcgKzE2NDAsMTMgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0VG9GdWxsU2l6ZUthbmEoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1T
dHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcikKK1N0cmluZyBhcHBseVRleHRU
cmFuc2Zvcm0oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7
CisgICAgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3RlcigxLCAnICcpOworICAgIHJldHVy
biBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUsIHRleHQsIHByZXZpb3VzQ2hhcmFjdGVyKTsKK30K
KworU3RyaW5nIGFwcGx5VGV4dFRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3RlcikKIHsKICAg
ICBhdXRvIHRyYW5zZm9ybSA9IHN0eWxlLnRleHRUcmFuc2Zvcm0oKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggOTY5ZGFkNWEzZjQ3Li4yMDdiN2JhMzE0MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMjExLDcgKzIxMSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldFJlbmRlcmVkVGV4dChjb25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIFVD
aGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CisgICAgdmlydHVhbCBWZWN0b3I8VUNoYXI+
IHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2UpOwogCkBAIC0yODcsOCArMjg3LDEwIEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9oYXNTZWN1cmVUZXh0VGltZXIgOiAxIHsgZmFsc2Ug
fTsKIH07CiAKLVN0cmluZyBhcHBseVRleHRUcmFuc2Zvcm0oY29uc3QgUmVuZGVyU3R5bGUmLCBj
b25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rlcik7Ci1TdHJpbmcgY2FwaXRhbGl6
ZShjb25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rlcik7CitTdHJpbmcgYXBwbHlU
ZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFVD
aGFyPiBwcmV2aW91c0NoYXJhY3Rlcik7CitTdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0
IFJlbmRlclN0eWxlJiwgY29uc3QgU3RyaW5nJik7CitTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBT
dHJpbmcmLCBWZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKTsKK1N0cmluZyBjYXBpdGFs
aXplKGNvbnN0IFN0cmluZyYpOwogVGV4dEJyZWFrSXRlcmF0b3I6OkxpbmVNb2RlOjpCZWhhdmlv
ciBtYXBMaW5lQnJlYWtUb0l0ZXJhdG9yTW9kZShMaW5lQnJlYWspOwogVGV4dEJyZWFrSXRlcmF0
b3I6OkNvbnRlbnRBbmFseXNpcyBtYXBXb3JkQnJlYWtUb0NvbnRlbnRBbmFseXNpcyhXb3JkQnJl
YWspOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZy
YWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQu
Y3BwCmluZGV4IDQ4YzViYzE5NWIzMi4uMWZjNmFlMTU1MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcApAQCAtODYsMTQgKzg2LDE2IEBA
IHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50OjpzZXRUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiBu
ZXdUZXh0LCBib29sIGZvcmNlKQogICAgIEFTU0VSVCghdGV4dE5vZGUoKSB8fCB0ZXh0Tm9kZSgp
LT5yZW5kZXJlcigpID09IHRoaXMpOwogfQogCi1VQ2hhciBSZW5kZXJUZXh0RnJhZ21lbnQ6OnBy
ZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKK1ZlY3RvcjxVQ2hhcj4gUmVuZGVyVGV4dEZyYWdtZW50
OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CiB7CiAgICAgaWYgKHN0YXJ0KCkpIHsKICAgICAg
ICAgU3RyaW5nIG9yaWdpbmFsID0gdGV4dE5vZGUoKSA/IHRleHROb2RlKCktPmRhdGEoKSA6IGNv
bnRlbnRTdHJpbmcoKTsKLSAgICAgICAgaWYgKCFvcmlnaW5hbC5pc051bGwoKSAmJiBzdGFydCgp
IDw9IG9yaWdpbmFsLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsW3N0YXJ0
KCkgLSAxXTsKKyAgICAgICAgaWYgKCFvcmlnaW5hbC5pc051bGwoKSAmJiBzdGFydCgpIDw9IG9y
aWdpbmFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBWZWN0b3I8VUNoYXI+IHByZXZpb3VzOwor
ICAgICAgICAgICAgcHJldmlvdXMuYXBwZW5kKG9yaWdpbmFsW3N0YXJ0KCkgLSAxXSk7CisgICAg
ICAgICAgICByZXR1cm4gcHJldmlvdXM7CisgICAgICAgIH0KICAgICB9Ci0KICAgICByZXR1cm4g
UmVuZGVyVGV4dDo6cHJldmlvdXNDaGFyYWN0ZXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCmluZGV4IDkzZDAyMDEwMzA5MS4uODU3ZGNi
Mzc1OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZy
YWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVu
dC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRUZXh0
SW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZSkgb3ZlcnJpZGU7CiAKLSAgICBVQ2hh
ciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFZlY3RvcjxVQ2hhcj4g
cHJldmlvdXNDaGFyYWN0ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVuc2lnbmVkIG1fc3Rh
cnQ7CiAgICAgdW5zaWduZWQgbV9lbmQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVy
cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxpemUtY29udGVu
dC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljYmE4OGEwZWIwYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0
aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwzIEBACis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8ZGl2PkFjdHVhbDog8JCQuPCQkK7wkJCt
8JCRi/CQkLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBGaXLvrIYgxZJ1ZiDDhnN0aGV0
aWNzPC9kaXY+Cis8ZGl2PkV4cGVjdGVkOiDwkJC48JCQrvCQkK3wkJGL8JCQsPCQkYwg8JCQkPCQ
kK7wkJCt8JCRi/CQkLDwkJGMIEZpcu+shiDFknVmIMOGc3RoZXRpY3M8L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0aC1vdXRzaWRl
LWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY2Fw
aXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVycy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWE1OWEyZGI5ZGY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxpemUtY29udGVu
dC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMuaHRtbApAQCAtMCwwICsxLDgg
QEAKKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK3NwYW4geworICB0ZXh0LXRyYW5z
Zm9ybTogY2FwaXRhbGl6ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PkFjdHVhbDog8JCQuDxzcGFuPvCQ
kK7wkJCt8JCRi/CQkLDwkJGMIPCQkLjwkJCu8JCQrfCQkYvwkJCw8JCRjCDvrIFy76yGIMWTdWYg
w6ZzdGhldGljczwvc3Bhbj48ZGl2PgorPGRpdj5FeHBlY3RlZDog8JCQuPCQkK7wkJCt8JCRi/CQ
kLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBGaXLvrIYgxZJ1ZiDDhnN0aGV0aWNzPC9k
aXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473395</attachid>
            <date>2024-11-29 06:03:12 -0800</date>
            <delta_ts>2024-11-29 09:37:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283814-20241129060311.patch</filename>
            <type>text/plain</type>
            <size>17635</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjNmJkZGE2ZjA1MWU5NGEwZTIwZTU1YWJmNjQxNGQwNGJkNDI2ZGUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjggTm92IDIwMjQgMjE6MTA6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbVGV4dF0g
QWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIHByZXZpb3VzIG5vbi1ibXAgY29udGVudCB3aGVuCiBj
YXBpdGFsaXppbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4Mzgx
NAogPHJkYXI6Ly9wcm9ibGVtLzE0MDY4MTM4Mz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IDhiaXQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUHJldmlvdXMgY29udGVudCBtYXkg
YmUgYSBncmFwaGVtZSBjbHVzdGVyIHdpdGggc2VyaWVzIG9mIGNvZGUgcG9pbnRzLgplLmcuIPCQ
kLg8c3BhbiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUiPvCQkK7wkJCt8JCRi/CQ
kLDwkJGMPC9zcGFuPgp3aGVyZSB0aGUgcHJldmlvdXMgY29udGVudCBpcyAn8JCQuCcuCgpJbiBz
dWNoIGNhc2VzIGl0J3Mgbm90IHN1ZmZpY2llbnQgdG8gcmV0dXJuIGEgc2luZ2xlIGNvZGUgcG9p
bnQgKFVDaGFyKSBhcyBwcmV2aW91cyBjb250ZW50LgpJdCBjb25mdXNlcyB0aGUgd29yZCBib3Vu
ZGFyeSBpdGVyYXRvciBhbmQgd2UgZW5kIHVwIHRpdGxlY2FzaW5nICfwkJCuJyh3ZSBzZWUgaXQg
YXMgdGhlIGZpcnN0IGNoYXJhY3RlcikKCihObyBuZWVkIHRvIHJlbmFtZSBSZW5kZXJUZXh0Ojpw
cmV2aW91c0NoYXJhY3RlciBhcyBjaGFyYWN0ZXIgb2Z0ZXIgcmVmZXJzIHRvIHVzZXIgcGVyY2Vp
dmVkIGNoYXJhY3RlciB3aGljaCBtYXkgdmVyeSB3ZWxsIGJlIGEgY29sbGVjdGlvbiBvZiBtdWx0
aXBsZSBjb2RlIHBvaW50cykKKiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250
ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVycy1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0
c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVycy5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6cGVyZm9ybVRleHRPcGVyYXRpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29y
ZTo6UmVuZGVyTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6cGFpbnRJdGVtRm9yZWdyb3VuZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcDoKKFJlbmRlck1lbnVMaXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgpOgoo
UmVuZGVyTWVudUxpc3Q6Oml0ZW1UZXh0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHA6CihXZWJDb3JlOjpjYXBpdGFsaXplKToKKFdlYkNvcmU6OlJlbmRl
clRleHQ6OnByZXZpb3VzQ2hhcmFjdGVyIGNvbnN0KToKKFdlYkNvcmU6OmFwcGx5VGV4dFRyYW5z
Zm9ybSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcDogVGhpcyBuZWVkcyBzb21l
IHdvcmsuIEkgYW0gbm90IGV2ZW4gc3VyZSB0aGlzIGlzIHdoYXQgd2UgYXJlIHN1cHBvc2VkIHRv
IGRvIGZvciBwcmV2aW91c0NoYXJhY3RlcigpLgooV2ViQ29yZTo6UmVuZGVyVGV4dEZyYWdtZW50
OjpwcmV2aW91c0NoYXJhY3RlciBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5oOgotLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0gfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAg
ICAgICAgfCA3NyArKysrKysrKysrKysrLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oICAgICAgICAgfCAgOCArLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRGcmFnbWVudC5jcHAgIHwgMTAgKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dEZyYWdtZW50LmggfCAgMiArLQogLi4uc2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVy
cy1leHBlY3RlZC5odG1sIHwgIDMgKwogLi4uLXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hh
cmFjdGVycy5odG1sIHwgIDggKysKIDEwIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyks
IDQwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvdGV4
dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJz
LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVycy5o
dG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKaW5kZXggODU0Y2FhZThiZjJmLi41YzU5MjE2Y2RmM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApA
QCAtMTExMiw3ICsxMTEyLDcgQEAgVmVjdG9yPFN0cmluZz4gQWNjZXNzaWJpbGl0eU9iamVjdDo6
cGVyZm9ybVRleHRPcGVyYXRpb24oY29uc3QgQWNjZXNzaWJpbGl0eVRleHQKICAgICAgICAgYm9v
bCByZXBsYWNlU2VsZWN0aW9uID0gZmFsc2U7CiAgICAgICAgIHN3aXRjaCAob3BlcmF0aW9uLnR5
cGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5VGV4dE9wZXJhdGlvblR5cGU6OkNhcGl0
YWxpemU6Ci0gICAgICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IGNhcGl0YWxpemUodGV4dCwg
JyAnKTsgLy8gRklYTUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNjb3VudCB0byB3b3Jr
IGNvcnJlY3RseS4KKyAgICAgICAgICAgIHJlcGxhY2VtZW50U3RyaW5nID0gY2FwaXRhbGl6ZSh0
ZXh0KTsgLy8gRklYTUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNjb3VudCB0byB3b3Jr
IGNvcnJlY3RseS4KICAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb24gPSB0cnVlOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVRleHRPcGVyYXRpb25UeXBl
OjpVcHBlcmNhc2U6CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBWZWN0b3I8U3RyaW5nPiBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpwZXJmb3JtVGV4dE9wZXJhdGlvbihjb25zdCBBY2Nlc3NpYmlsaXR5VGV4
dAogICAgICAgICAgICAgICAgICYmIHJlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgpID4gMgogICAg
ICAgICAgICAgICAgICYmIHJlcGxhY2VtZW50U3RyaW5nICE9IHJlcGxhY2VtZW50U3RyaW5nLmNv
bnZlcnRUb1VwcGVyY2FzZVdpdGhvdXRMb2NhbGUoKSkgewogICAgICAgICAgICAgICAgIGlmICh0
ZXh0WzBdID09IHVfdG91cHBlcih0ZXh0WzBdKSkKLSAgICAgICAgICAgICAgICAgICAgcmVwbGFj
ZW1lbnRTdHJpbmcgPSBjYXBpdGFsaXplKHJlcGxhY2VtZW50U3RyaW5nLCAnICcpOyAvLyBGSVhN
RTogTmVlZHMgdG8gdGFrZSBsb2NhbGUgaW50byBhY2NvdW50IHRvIHdvcmsgY29ycmVjdGx5Lgor
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IGNhcGl0YWxpemUocmVwbGFj
ZW1lbnRTdHJpbmcpOyAvLyBGSVhNRTogTmVlZHMgdG8gdGFrZSBsb2NhbGUgaW50byBhY2NvdW50
IHRvIHdvcmsgY29ycmVjdGx5LgogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSByZXBsYWNlbWVudFN0cmluZy5jb252ZXJ0VG9Mb3dl
cmNhc2VXaXRob3V0TG9jYWxlKCk7IC8vIEZJWE1FOiBOZWVkcyBsb2NhbGUgdG8gd29yayBjb3Jy
ZWN0bHkuCiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hU
TUxDb252ZXJ0ZXIubW0KaW5kZXggZTczZGMxM2U4ZTBmLi45YTQwZWUyNTk0YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTIxNTIsNyAr
MjE1Miw3IEBAIHZvaWQgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NUZXh0KFRleHQmIHRleHQpCiAg
ICAgaWYgKG91dHB1dFN0cmluZy5sZW5ndGgoKSkgewogICAgICAgICBTdHJpbmcgdGV4dFRyYW5z
Zm9ybSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKHRleHQsIENTU1Byb3BlcnR5VGV4
dFRyYW5zZm9ybSk7CiAgICAgICAgIGlmICh0ZXh0VHJhbnNmb3JtID09ICJjYXBpdGFsaXplIl9z
KQotICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gY2FwaXRhbGl6ZShvdXRwdXRTdHJpbmcsICcg
Jyk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFjY291bnQgdG8gd29yayBj
b3JyZWN0bHkuCisgICAgICAgICAgICBvdXRwdXRTdHJpbmcgPSBjYXBpdGFsaXplKG91dHB1dFN0
cmluZyk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFjY291bnQgdG8gd29y
ayBjb3JyZWN0bHkuCiAgICAgICAgIGVsc2UgaWYgKHRleHRUcmFuc2Zvcm0gPT0gInVwcGVyY2Fz
ZSJfcykKICAgICAgICAgICAgIG91dHB1dFN0cmluZyA9IG91dHB1dFN0cmluZy5jb252ZXJ0VG9V
cHBlcmNhc2VXaXRob3V0TG9jYWxlKCk7IC8vIEZJWE1FOiBOZWVkcyBsb2NhbGUgdG8gd29yayBj
b3JyZWN0bHkuCiAgICAgICAgIGVsc2UgaWYgKHRleHRUcmFuc2Zvcm0gPT0gImxvd2VyY2FzZSJf
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBiZGE1
OTM0MjQ3MWEuLjk5ZWQyNTQzZWE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6dXBk
YXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHRleHQuaXNF
bXB0eSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdGV4dCA9IGFw
cGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCB0ZXh0LCAnICcpOworICAgICAgICAgICAgdGV4dCA9
IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCB0ZXh0KTsKICAgICAgICAgICAgIGF1dG8gdGV4
dFJ1biA9IGNvbnN0cnVjdFRleHRSdW4odGV4dCwgc3R5bGUoKSwgRXhwYW5zaW9uQmVoYXZpb3I6
OmFsbG93UmlnaHRPbmx5KCkpOwogICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gc3RkOjptYXgo
bG9naWNhbFdpZHRoLCBzZWxlY3RGb250KCkud2lkdGgodGV4dFJ1bikpOwogICAgICAgICB9CkBA
IC01MDgsNyArNTA4LDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5k
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAgICAgaXRlbVRl
eHQgPSBvcHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7CiAg
ICAgZWxzZSBpZiAob3B0R3JvdXBFbGVtZW50KQogICAgICAgICBpdGVtVGV4dCA9IG9wdEdyb3Vw
RWxlbWVudC0+Z3JvdXBMYWJlbFRleHQoKTsKLSAgICBpdGVtVGV4dCA9IGFwcGx5VGV4dFRyYW5z
Zm9ybShzdHlsZSgpLCBpdGVtVGV4dCwgJyAnKTsKKyAgICBpdGVtVGV4dCA9IGFwcGx5VGV4dFRy
YW5zZm9ybShzdHlsZSgpLCBpdGVtVGV4dCk7CiAKICAgICBpZiAoaXRlbVRleHQuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwCmluZGV4IDg0ZmQ5NWMwNzFlYS4uMWE1MjkzZWE2OWZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lk
IFJlbmRlck1lbnVMaXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgoKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgU3RyaW5nIHRleHQgPSBvcHRpb24tPnRleHRJbmRlbnRlZFRvUmVzcGVj
dEdyb3VwTGFiZWwoKTsKLSAgICAgICAgdGV4dCA9IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgp
LCB0ZXh0LCAnICcpOworICAgICAgICB0ZXh0ID0gYXBwbHlUZXh0VHJhbnNmb3JtKHN0eWxlKCks
IHRleHQpOwogICAgICAgICBpZiAodGhlbWUoKS5wb3B1cE9wdGlvblN1cHBvcnRzVGV4dEluZGVu
dCgpKSB7CiAgICAgICAgICAgICAvLyBBZGQgaW4gdGhlIG9wdGlvbidzIHRleHQgaW5kZW50LiAg
V2UgY2FuJ3QgY2FsY3VsYXRlIHBlcmNlbnRhZ2UgdmFsdWVzIGZvciBub3cuCiAgICAgICAgICAg
ICBmbG9hdCBvcHRpb25XaWR0aCA9IDA7CkBAIC00NzAsNyArNDcwLDcgQEAgU3RyaW5nIFJlbmRl
ck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiAgICAgZWxzZSBp
ZiAoYXV0byogb3B0aW9uID0gZHluYW1pY0Rvd25jYXN0PEhUTUxPcHRpb25FbGVtZW50PihlbGVt
ZW50KSkKICAgICAgICAgaXRlbVN0cmluZyA9IG9wdGlvbi0+dGV4dEluZGVudGVkVG9SZXNwZWN0
R3JvdXBMYWJlbCgpOwogCi0gICAgcmV0dXJuIGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCBp
dGVtU3RyaW5nLCAnICcpOworICAgIHJldHVybiBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUoKSwg
aXRlbVN0cmluZyk7CiB9CiAKIFN0cmluZyBSZW5kZXJNZW51TGlzdDo6aXRlbUxhYmVsKHVuc2ln
bmVkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IGJj
NDA0ZjE5MWNhMy4uNDI3ZTQ3NjlmMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCkBAIC0yMDksMjIgKzIwOSwyOCBAQCBzdGF0aWMgaW5saW5lIHNpemVfdCBjYXBp
dGFsaXplQ2hhcmFjdGVyKFN0cmluZyB0ZXh0Q29udGVudCwgdW5zaWduZWQgc3RhcnRDaGFyYQog
ICAgIHJldHVybiBjYXBpdGFsaXplKGNvbnRlbnQuZGF0YSgpLCBjYXBpdGFsaXplZENvbnRlbnRM
ZW5ndGgpOwogfQogCi1TdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmIHN0cmluZywgVUNo
YXIgcHJldmlvdXNDaGFyYWN0ZXIpCitTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKLSAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gdXNlIHVfc3RyVG9UaXRsZSBp
bnN0ZWFkIG9mIHVfdG90aXRsZSBhbmQgdG8gY29uc2lkZXIgbG9jYWxlLgorICAgIFZlY3RvcjxV
Q2hhcj4gcHJldmlvdXNDaGFyYWN0ZXIoMSwgJyAnKTsKKyAgICByZXR1cm4gY2FwaXRhbGl6ZShz
dHJpbmcsIHByZXZpb3VzQ2hhcmFjdGVyKTsKK30KIAotICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0
cmluZy5sZW5ndGgoKTsKK1N0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBW
ZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKQoreworICAgIGludDMyX3QgbGVuZ3RoID0g
c3RyaW5nLmxlbmd0aCgpOworICAgIGludDMyX3QgcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGggPSBw
cmV2aW91c0NoYXJhY3Rlci5zaXplKCk7CiAgICAgYXV0byYgc3RyaW5nSW1wbCA9ICpzdHJpbmcu
aW1wbCgpOwogCiAgICAgc3RhdGljX2Fzc2VydChTdHJpbmc6Ok1heExlbmd0aCA8IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgIk11c3QgYmUgYWJsZSB0byBhZGQgb25lIHdp
dGhvdXQgb3ZlcmZsb3dpbmcgdW5zaWduZWQiKTsKIAogICAgIC8vIFJlcGxhY2UgTk8gQlJFQUsg
U1BBQ0Ugd2l0aCBhIG5vcm1hbCBzcGFjZXMgc2luY2UgSUNVIGRvZXMgbm90IHRyZWF0IGl0IGFz
IGEgd29yZCBzZXBhcmF0b3IuCi0gICAgVmVjdG9yPFVDaGFyPiBzdHJpbmdXaXRoUHJldmlvdXMo
bGVuZ3RoICsgMSk7Ci0gICAgc3RyaW5nV2l0aFByZXZpb3VzWzBdID0gY29udmVydE5vQnJlYWtT
cGFjZVRvU3BhY2UocHJldmlvdXNDaGFyYWN0ZXIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDE7
IGkgPCBsZW5ndGggKyAxOyBpKyspCi0gICAgICAgIHN0cmluZ1dpdGhQcmV2aW91c1tpXSA9IGNv
bnZlcnROb0JyZWFrU3BhY2VUb1NwYWNlKHN0cmluZ0ltcGxbaSAtIDFdKTsKKyAgICBWZWN0b3I8
VUNoYXI+IHN0cmluZ1dpdGhQcmV2aW91cyhwcmV2aW91c0NoYXJhY3Rlckxlbmd0aCArIGxlbmd0
aCk7CisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGg7
ICsraSkKKyAgICAgICAgc3RyaW5nV2l0aFByZXZpb3VzW2ldID0gY29udmVydE5vQnJlYWtTcGFj
ZVRvU3BhY2UocHJldmlvdXNDaGFyYWN0ZXJbaV0pOworICAgIGZvciAoaW50MzJfdCBpID0gcHJl
dmlvdXNDaGFyYWN0ZXJMZW5ndGg7IGkgPCBsZW5ndGggKyBwcmV2aW91c0NoYXJhY3Rlckxlbmd0
aDsgKytpKQorICAgICAgICBzdHJpbmdXaXRoUHJldmlvdXNbaV0gPSBjb252ZXJ0Tm9CcmVha1Nw
YWNlVG9TcGFjZShzdHJpbmdJbXBsW2kgLSBwcmV2aW91c0NoYXJhY3Rlckxlbmd0aF0pOwogCi0g
ICAgYXV0byogYnJlYWtJdGVyYXRvciA9IFdURjo6d29yZEJyZWFrSXRlcmF0b3Ioc3RyaW5nV2l0
aFByZXZpb3VzLnNwYW4oKS5maXJzdChsZW5ndGggKyAxKSk7CisgICAgYXV0byogYnJlYWtJdGVy
YXRvciA9IFdURjo6d29yZEJyZWFrSXRlcmF0b3Ioc3RyaW5nV2l0aFByZXZpb3VzLnNwYW4oKSk7
CiAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQogICAgICAgICByZXR1cm4gc3RyaW5nOwogCkBAIC0y
MzIsMjEgKzIzOCwyMSBAQCBTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmIHN0cmluZywg
VUNoYXIgcHJldmlvdXNDaGFyYWN0ZXIpCiAgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eShsZW5n
dGgpOwogCiAgICAgaW50MzJfdCBzdGFydE9mV29yZCA9IHVicmtfZmlyc3QoYnJlYWtJdGVyYXRv
cik7Ci0gICAgaW50MzJfdCBlbmRPZldvcmQ7Ci0gICAgZm9yIChlbmRPZldvcmQgPSB1YnJrX25l
eHQoYnJlYWtJdGVyYXRvcik7IGVuZE9mV29yZCAhPSBVQlJLX0RPTkU7IHN0YXJ0T2ZXb3JkID0g
ZW5kT2ZXb3JkLCBlbmRPZldvcmQgPSB1YnJrX25leHQoYnJlYWtJdGVyYXRvcikpIHsKLSAgICAg
ICAgLy8gRG8gbm90IGFwcGVuZCB0aGUgZmlyc3QgY2hhcmFjdGVyLCBzaW5jZSBpdCdzIHRoZSBw
cmV2aW91cyBjaGFyYWN0ZXIsIG5vdCBmcm9tIHRoaXMgc3RyaW5nLgotICAgICAgICBzaXplX3Qg
Y2FwaXRhbGl6ZWRDb250ZW50TGVuZ3RoID0gMTsKLSAgICAgICAgaWYgKHN0YXJ0T2ZXb3JkKSB7
Ci0gICAgICAgICAgICBjYXBpdGFsaXplZENvbnRlbnRMZW5ndGggPSBjYXBpdGFsaXplQ2hhcmFj
dGVyKHN0cmluZywgc3RhcnRPZldvcmQgLSAxLCByZXN1bHQpOwotICAgICAgICAgICAgaWYgKCFj
YXBpdGFsaXplZENvbnRlbnRMZW5ndGgpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHN0cmluZ1dpdGhQcmV2aW91c1tzdGFydE9mV29yZF0pOwotICAgICAgICAgICAgICAgIGNhcGl0
YWxpemVkQ29udGVudExlbmd0aCA9IDE7CisgICAgZm9yIChpbnQzMl90IGVuZE9mV29yZCA9IHVi
cmtfbmV4dChicmVha0l0ZXJhdG9yKTsgZW5kT2ZXb3JkICE9IFVCUktfRE9ORTsgc3RhcnRPZldv
cmQgPSBlbmRPZldvcmQsIGVuZE9mV29yZCA9IHVicmtfbmV4dChicmVha0l0ZXJhdG9yKSkgewor
ICAgICAgICAvLyBEbyBub3QgdHJ5IHRvIHRpdGxlY2FzZSB0aGUgcHJldmlvdXMgY29udGVudC4K
KyAgICAgICAgaWYgKHN0YXJ0T2ZXb3JkID49IHByZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoKSB7Cisg
ICAgICAgICAgICBhdXRvIGNhcGl0YWxpemVkQ29udGVudExlbmd0aCA9IGNhcGl0YWxpemVDaGFy
YWN0ZXIoc3RyaW5nLCBzdGFydE9mV29yZCAtIHByZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoLCByZXN1
bHQpOworICAgICAgICAgICAgZm9yIChpbnQzMl90IGkgPSBzdGFydE9mV29yZCArIGNhcGl0YWxp
emVkQ29udGVudExlbmd0aDsgaSA8IGVuZE9mV29yZDsgKytpKQorICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGhdKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgcHJldmlvdXMgYW5kIGNvbnRp
bm91cyBub24tdGl0bGVjYXNlZCBjdXJyZW50IGNvbnRlbnQuIE9ubHkgYXBwZW5kIGN1cnJlbnQg
Y29udGVudC4KKyAgICAgICAgICAgIGZvciAoaW50MzJfdCBpID0gc3RhcnRPZldvcmQ7IGkgPCBl
bmRPZldvcmQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpIDwgcHJldmlvdXNDaGFyYWN0
ZXJMZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGhdKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBmb3IgKGludCBpID0gc3RhcnRPZldv
cmQgKyBjYXBpdGFsaXplZENvbnRlbnRMZW5ndGg7IGkgPCBlbmRPZldvcmQ7IGkrKykKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1wbFtpIC0gMV0pOwogICAgIH0KLQogICAgIHJl
dHVybiByZXN1bHQgPT0gc3RyaW5nID8gc3RyaW5nIDogcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAK
QEAgLTE1MTksNyArMTUyNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0lubGluZUZsb3dPckVt
cHR5VGV4dChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiB0ZXh0UmVu
ZGVyZXIgJiYgdGV4dFJlbmRlcmVyLT50ZXh0KCkuaXNFbXB0eSgpOwogfQogCi1VQ2hhciBSZW5k
ZXJUZXh0OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CitWZWN0b3I8VUNoYXI+IFJlbmRlclRl
eHQ6OnByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKIHsKICAgICBjb25zdCBSZW5kZXJPYmplY3Qq
IHByZXZpb3VzVGV4dCA9IHRoaXM7CiAgICAgd2hpbGUgKChwcmV2aW91c1RleHQgPSBwcmV2aW91
c1RleHQtPnByZXZpb3VzSW5QcmVPcmRlcigpKSkgewpAQCAtMTUyOSwxMCArMTUzNSwyNSBAQCBV
Q2hhciBSZW5kZXJUZXh0OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CiAgICAgICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgYXV0byogcmVuZGVyVGV4dCA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJUZXh0PihwcmV2aW91c1RleHQpOworICAgIFZlY3RvcjxVQ2hhcj4gcHJldmlvdXM7CiAgICAg
aWYgKCFyZW5kZXJUZXh0KQotICAgICAgICByZXR1cm4gJyAnOwotICAgIGF1dG8mIHByZXZpb3Vz
U3RyaW5nID0gcmVuZGVyVGV4dC0+dGV4dCgpOwotICAgIHJldHVybiBwcmV2aW91c1N0cmluZ1tw
cmV2aW91c1N0cmluZy5sZW5ndGgoKSAtIDFdOworICAgICAgICBwcmV2aW91cy5hcHBlbmQoJyAn
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgYXV0byYgcHJldmlvdXNTdHJpbmcgPSByZW5kZXJUZXh0
LT50ZXh0KCk7CisgICAgICAgIGlmIChwcmV2aW91c1N0cmluZy5pczhCaXQoKSkKKyAgICAgICAg
ICAgIHByZXZpb3VzLmFwcGVuZChwcmV2aW91c1N0cmluZ1twcmV2aW91c1N0cmluZy5sZW5ndGgo
KSAtIDFdKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhdXRvIGNvbnRlbnRJdGVyYXRv
ciA9IFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvciB7IHByZXZpb3VzU3RyaW5nLnNwYW4x
NigpLCAwLCBwcmV2aW91c1N0cmluZy5sZW5ndGgoKSB9OworICAgICAgICAgICAgdW5zaWduZWQg
Y2hhcmFjdGVyTGVuZ3RoID0gMDsKKyAgICAgICAgICAgIGNoYXIzMl90IGN1cnJlbnRDaGFyYWN0
ZXIgPSAwOworICAgICAgICAgICAgd2hpbGUgKGNvbnRlbnRJdGVyYXRvci5jb25zdW1lKGN1cnJl
bnRDaGFyYWN0ZXIsIGNoYXJhY3Rlckxlbmd0aCkpCisgICAgICAgICAgICAgICAgY29udGVudEl0
ZXJhdG9yLmFkdmFuY2UoY2hhcmFjdGVyTGVuZ3RoKTsKKworICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IHByZXZpb3VzU3RyaW5nLmxlbmd0aCgpIC0gY2hhcmFjdGVyTGVuZ3RoOyBpIDwgcHJl
dmlvdXNTdHJpbmcubGVuZ3RoKCk7ICsraSkKKyAgICAgICAgICAgICAgICBwcmV2aW91cy5hcHBl
bmQocHJldmlvdXNTdHJpbmdbaV0pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBwcmV2
aW91czsKIH0KIAogc3RhdGljIFN0cmluZyBjb252ZXJ0VG9GdWxsU2l6ZUthbmEoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCkBAIC0xNjIzLDcgKzE2NDQsMTMgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0
VG9GdWxsU2l6ZUthbmEoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOwogfQogCi1TdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcikK
K1N0cmluZyBhcHBseVRleHRUcmFuc2Zvcm0oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3Rlcigx
LCAnICcpOworICAgIHJldHVybiBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUsIHRleHQsIHByZXZp
b3VzQ2hhcmFjdGVyKTsKK30KKworU3RyaW5nIGFwcGx5VGV4dFRyYW5zZm9ybShjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFVDaGFyPiBwcmV2aW91
c0NoYXJhY3RlcikKIHsKICAgICBhdXRvIHRyYW5zZm9ybSA9IHN0eWxlLnRleHRUcmFuc2Zvcm0o
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggOTY5ZGFkNWEzZjQ3
Li4yMDdiN2JhMzE0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAt
MjExLDcgKzIxMSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlcmVkVGV4dChjb25zdCBTdHJpbmcm
KTsKLSAgICB2aXJ0dWFsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CisgICAgdmly
dHVhbCBWZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2UpOwogCkBA
IC0yODcsOCArMjg3LDEwIEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9oYXNTZWN1cmVUZXh0
VGltZXIgOiAxIHsgZmFsc2UgfTsKIH07CiAKLVN0cmluZyBhcHBseVRleHRUcmFuc2Zvcm0oY29u
c3QgUmVuZGVyU3R5bGUmLCBjb25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rlcik7
Ci1TdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rl
cik7CitTdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3Qg
U3RyaW5nJiwgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3Rlcik7CitTdHJpbmcgYXBwbHlU
ZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgU3RyaW5nJik7CitTdHJpbmcg
Y2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVy
KTsKK1N0cmluZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYpOwogVGV4dEJyZWFrSXRlcmF0b3I6
OkxpbmVNb2RlOjpCZWhhdmlvciBtYXBMaW5lQnJlYWtUb0l0ZXJhdG9yTW9kZShMaW5lQnJlYWsp
OwogVGV4dEJyZWFrSXRlcmF0b3I6OkNvbnRlbnRBbmFseXNpcyBtYXBXb3JkQnJlYWtUb0NvbnRl
bnRBbmFseXNpcyhXb3JkQnJlYWspOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0RnJhZ21lbnQuY3BwCmluZGV4IDQ4YzViYzE5NWIzMi4uMWZjNmFlMTU1MGVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcApA
QCAtODYsMTQgKzg2LDE2IEBAIHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50OjpzZXRUZXh0SW50ZXJu
YWwoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQogICAgIEFTU0VSVCghdGV4dE5v
ZGUoKSB8fCB0ZXh0Tm9kZSgpLT5yZW5kZXJlcigpID09IHRoaXMpOwogfQogCi1VQ2hhciBSZW5k
ZXJUZXh0RnJhZ21lbnQ6OnByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKK1ZlY3RvcjxVQ2hhcj4g
UmVuZGVyVGV4dEZyYWdtZW50OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CiB7CiAgICAgaWYg
KHN0YXJ0KCkpIHsKICAgICAgICAgU3RyaW5nIG9yaWdpbmFsID0gdGV4dE5vZGUoKSA/IHRleHRO
b2RlKCktPmRhdGEoKSA6IGNvbnRlbnRTdHJpbmcoKTsKLSAgICAgICAgaWYgKCFvcmlnaW5hbC5p
c051bGwoKSAmJiBzdGFydCgpIDw9IG9yaWdpbmFsLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0
dXJuIG9yaWdpbmFsW3N0YXJ0KCkgLSAxXTsKKyAgICAgICAgaWYgKCFvcmlnaW5hbC5pc051bGwo
KSAmJiBzdGFydCgpIDw9IG9yaWdpbmFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBWZWN0b3I8
VUNoYXI+IHByZXZpb3VzOworICAgICAgICAgICAgcHJldmlvdXMuYXBwZW5kKG9yaWdpbmFsW3N0
YXJ0KCkgLSAxXSk7CisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CisgICAgICAgIH0KICAg
ICB9Ci0KICAgICByZXR1cm4gUmVuZGVyVGV4dDo6cHJldmlvdXNDaGFyYWN0ZXIoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCmluZGV4IDkz
ZDAyMDEwMzA5MS4uODU3ZGNiMzc1OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZSkgb3Zl
cnJpZGU7CiAKLSAgICBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFZlY3RvcjxVQ2hhcj4gcHJldmlvdXNDaGFyYWN0ZXIoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIHVuc2lnbmVkIG1fc3RhcnQ7CiAgICAgdW5zaWduZWQgbV9lbmQ7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAt
cHJldmlvdXMtY2hhcmFjdGVycy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NhcGl0YWxpemUtY29udGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjlj
YmE4OGEwZWIwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBp
dGFsaXplLWNvbnRlbnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8ZGl2PkFj
dHVhbDog8JCQuPCQkK7wkJCt8JCRi/CQkLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBG
aXLvrIYgxZJ1ZiDDhnN0aGV0aWNzPC9kaXY+Cis8ZGl2PkV4cGVjdGVkOiDwkJC48JCQrvCQkK3w
kJGL8JCQsPCQkYwg8JCQkPCQkK7wkJCt8JCRi/CQkLDwkJGMIEZpcu+shiDFknVmIMOGc3RoZXRp
Y3M8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNv
bnRlbnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlv
dXMtY2hhcmFjdGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uMWE1OWEyZGI5ZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NhcGl0YWxpemUtY29udGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMu
aHRtbApAQCAtMCwwICsxLDggQEAKKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK3Nw
YW4geworICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PkFj
dHVhbDog8JCQuDxzcGFuPvCQkK7wkJCt8JCRi/CQkLDwkJGMIPCQkLjwkJCu8JCQrfCQkYvwkJCw
8JCRjCDvrIFy76yGIMWTdWYgw6ZzdGhldGljczwvc3Bhbj48ZGl2PgorPGRpdj5FeHBlY3RlZDog
8JCQuPCQkK7wkJCt8JCRi/CQkLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBGaXLvrIYg
xZJ1ZiDDhnN0aGV0aWNzPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473396</attachid>
            <date>2024-11-29 09:37:29 -0800</date>
            <delta_ts>2024-11-29 12:25:14 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-283814-20241129093729.patch</filename>
            <type>text/plain</type>
            <size>17854</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1NjljNGNlYjA0MzI3ZTY3MGIwYmU5ZTRmNWQ0MjMyNmU3OTkwZmY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjkgTm92IDIwMjQgMDk6MTI6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbVGV4dF0g
QWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIHByZXZpb3VzIG5vbi1ibXAgY29udGVudCB3aGVuCiBj
YXBpdGFsaXppbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4Mzgx
NAogPHJkYXI6Ly9wcm9ibGVtLzE0MDY4MTM4Mz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IDhiaXQKClJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKUHJldmlvdXMgY29udGVudCBtYXkg
YmUgYSBncmFwaGVtZSBjbHVzdGVyIHdpdGggc2VyaWVzIG9mIGNvZGUgcG9pbnRzLgplLmcuIPCQ
kLg8c3BhbiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUiPvCQkK7wkJCt8JCRi/CQ
kLDwkJGMPC9zcGFuPgp3aGVyZSB0aGUgcHJldmlvdXMgY29udGVudCBpcyAn8JCQuCcuCgpJbiBz
dWNoIGNhc2VzIGl0J3Mgbm90IHN1ZmZpY2llbnQgdG8gcmV0dXJuIGEgc2luZ2xlIGNvZGUgcG9p
bnQgKFVDaGFyKSBhcyBwcmV2aW91cyBjb250ZW50LgpJdCBjb25mdXNlcyB0aGUgd29yZCBib3Vu
ZGFyeSBpdGVyYXRvciBhbmQgd2UgZW5kIHVwIHRpdGxlY2FzaW5nICfwkJCuJyh3ZSBzZWUgaXQg
YXMgdGhlIGZpcnN0IGNoYXJhY3RlcikKCihObyBuZWVkIHRvIHJlbmFtZSBSZW5kZXJUZXh0Ojpw
cmV2aW91c0NoYXJhY3RlciBhcyBjaGFyYWN0ZXIgb2Z0ZXIgcmVmZXJzIHRvIHVzZXIgcGVyY2Vp
dmVkIGNoYXJhY3RlciB3aGljaCBtYXkgdmVyeSB3ZWxsIGJlIGEgY29sbGVjdGlvbiBvZiBtdWx0
aXBsZSBjb2RlIHBvaW50cykKCiogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxpemUtY29u
dGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxpemUtY29udGVudC13aXRoLW91
dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnBlcmZvcm1UZXh0T3BlcmF0aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CihIVE1MQ29udmVydGVyOjpfcHJvY2Vzc1Rl
eHQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKFdlYkNv
cmU6OlJlbmRlckxpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRlckxp
c3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihSZW5kZXJNZW51TGlzdDo6dXBkYXRlT3B0aW9uc1dpZHRoKToK
KFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwOgooV2ViQ29yZTo6Y2FwaXRhbGl6ZSk6CihXZWJDb3JlOjpSZW5k
ZXJUZXh0OjpwcmV2aW91c0NoYXJhY3RlciBjb25zdCk6CihXZWJDb3JlOjphcHBseVRleHRUcmFu
c2Zvcm0pOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHA6IFRoaXMgbmVlZHMgc29t
ZSB3b3JrLiBJIGFtIG5vdCBldmVuIHN1cmUgdGhpcyBpcyB3aGF0IHdlIGFyZSBzdXBwb3NlZCB0
byBkbyBmb3IgcHJldmlvdXNDaGFyYWN0ZXIoKS4KKFdlYkNvcmU6OlJlbmRlclRleHRGcmFnbWVu
dDo6cHJldmlvdXNDaGFyYWN0ZXIgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0RnJhZ21lbnQuaDoKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1M
Q29udmVydGVyLm1tIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
ICAgICAgIHwgODIgKysrKysrKysrKysrKy0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuaCAgICAgICAgIHwgIDggKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0RnJhZ21lbnQuY3BwICB8IDEwICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5oIHwgIDIgKy0KIC4uLnNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3Rl
cnMtZXhwZWN0ZWQuaHRtbCB8ICAzICsKIC4uLi13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNo
YXJhY3RlcnMuaHRtbCB8ICA4ICsrCiAxMCBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCsp
LCAzOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFjdGVy
cy1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NhcGl0YWxpemUtY29udGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMu
aHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDg1NGNhYWU4YmYyZi4uNWM1OTIxNmNkZjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTExMTIsNyArMTExMiw3IEBAIFZlY3RvcjxTdHJpbmc+IEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnBlcmZvcm1UZXh0T3BlcmF0aW9uKGNvbnN0IEFjY2Vzc2liaWxpdHlUZXh0CiAgICAgICAgIGJv
b2wgcmVwbGFjZVNlbGVjdGlvbiA9IGZhbHNlOwogICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi50
eXBlKSB7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVRleHRPcGVyYXRpb25UeXBlOjpDYXBp
dGFsaXplOgotICAgICAgICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSBjYXBpdGFsaXplKHRleHQs
ICcgJyk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFjY291bnQgdG8gd29y
ayBjb3JyZWN0bHkuCisgICAgICAgICAgICByZXBsYWNlbWVudFN0cmluZyA9IGNhcGl0YWxpemUo
dGV4dCk7IC8vIEZJWE1FOiBOZWVkcyB0byB0YWtlIGxvY2FsZSBpbnRvIGFjY291bnQgdG8gd29y
ayBjb3JyZWN0bHkuCiAgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uID0gdHJ1ZTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlUZXh0T3BlcmF0aW9uVHlw
ZTo6VXBwZXJjYXNlOgpAQCAtMTEzMSw3ICsxMTMxLDcgQEAgVmVjdG9yPFN0cmluZz4gQWNjZXNz
aWJpbGl0eU9iamVjdDo6cGVyZm9ybVRleHRPcGVyYXRpb24oY29uc3QgQWNjZXNzaWJpbGl0eVRl
eHQKICAgICAgICAgICAgICAgICAmJiByZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSA+IDIKICAg
ICAgICAgICAgICAgICAmJiByZXBsYWNlbWVudFN0cmluZyAhPSByZXBsYWNlbWVudFN0cmluZy5j
b252ZXJ0VG9VcHBlcmNhc2VXaXRob3V0TG9jYWxlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
dGV4dFswXSA9PSB1X3RvdXBwZXIodGV4dFswXSkpCi0gICAgICAgICAgICAgICAgICAgIHJlcGxh
Y2VtZW50U3RyaW5nID0gY2FwaXRhbGl6ZShyZXBsYWNlbWVudFN0cmluZywgJyAnKTsgLy8gRklY
TUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNjb3VudCB0byB3b3JrIGNvcnJlY3RseS4K
KyAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSBjYXBpdGFsaXplKHJlcGxh
Y2VtZW50U3RyaW5nKTsgLy8gRklYTUU6IE5lZWRzIHRvIHRha2UgbG9jYWxlIGludG8gYWNjb3Vu
dCB0byB3b3JrIGNvcnJlY3RseS4KICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgIHJlcGxhY2VtZW50U3RyaW5nID0gcmVwbGFjZW1lbnRTdHJpbmcuY29udmVydFRvTG93
ZXJjYXNlV2l0aG91dExvY2FsZSgpOyAvLyBGSVhNRTogTmVlZHMgbG9jYWxlIHRvIHdvcmsgY29y
cmVjdGx5LgogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9I
VE1MQ29udmVydGVyLm1tCmluZGV4IGU3M2RjMTNlOGUwZi4uOWE0MGVlMjU5NGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC0yMTUyLDcg
KzIxNTIsNyBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzVGV4dChUZXh0JiB0ZXh0KQog
ICAgIGlmIChvdXRwdXRTdHJpbmcubGVuZ3RoKCkpIHsKICAgICAgICAgU3RyaW5nIHRleHRUcmFu
c2Zvcm0gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZSh0ZXh0LCBDU1NQcm9wZXJ0eVRl
eHRUcmFuc2Zvcm0pOwogICAgICAgICBpZiAodGV4dFRyYW5zZm9ybSA9PSAiY2FwaXRhbGl6ZSJf
cykKLSAgICAgICAgICAgIG91dHB1dFN0cmluZyA9IGNhcGl0YWxpemUob3V0cHV0U3RyaW5nLCAn
ICcpOyAvLyBGSVhNRTogTmVlZHMgdG8gdGFrZSBsb2NhbGUgaW50byBhY2NvdW50IHRvIHdvcmsg
Y29ycmVjdGx5LgorICAgICAgICAgICAgb3V0cHV0U3RyaW5nID0gY2FwaXRhbGl6ZShvdXRwdXRT
dHJpbmcpOyAvLyBGSVhNRTogTmVlZHMgdG8gdGFrZSBsb2NhbGUgaW50byBhY2NvdW50IHRvIHdv
cmsgY29ycmVjdGx5LgogICAgICAgICBlbHNlIGlmICh0ZXh0VHJhbnNmb3JtID09ICJ1cHBlcmNh
c2UiX3MpCiAgICAgICAgICAgICBvdXRwdXRTdHJpbmcgPSBvdXRwdXRTdHJpbmcuY29udmVydFRv
VXBwZXJjYXNlV2l0aG91dExvY2FsZSgpOyAvLyBGSVhNRTogTmVlZHMgbG9jYWxlIHRvIHdvcmsg
Y29ycmVjdGx5LgogICAgICAgICBlbHNlIGlmICh0ZXh0VHJhbnNmb3JtID09ICJsb3dlcmNhc2Ui
X3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggYmRh
NTkzNDI0NzFhLi45OWVkMjU0M2VhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh0ZXh0Lmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHRleHQgPSBh
cHBseVRleHRUcmFuc2Zvcm0oc3R5bGUoKSwgdGV4dCwgJyAnKTsKKyAgICAgICAgICAgIHRleHQg
PSBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUoKSwgdGV4dCk7CiAgICAgICAgICAgICBhdXRvIHRl
eHRSdW4gPSBjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIHN0eWxlKCksIEV4cGFuc2lvbkJlaGF2aW9y
OjphbGxvd1JpZ2h0T25seSgpKTsKICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4
KGxvZ2ljYWxXaWR0aCwgc2VsZWN0Rm9udCgpLndpZHRoKHRleHRSdW4pKTsKICAgICAgICAgfQpA
QCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9yZWdyb3Vu
ZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmCiAgICAgICAgIGl0ZW1U
ZXh0ID0gb3B0aW9uRWxlbWVudC0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOwog
ICAgIGVsc2UgaWYgKG9wdEdyb3VwRWxlbWVudCkKICAgICAgICAgaXRlbVRleHQgPSBvcHRHcm91
cEVsZW1lbnQtPmdyb3VwTGFiZWxUZXh0KCk7Ci0gICAgaXRlbVRleHQgPSBhcHBseVRleHRUcmFu
c2Zvcm0oc3R5bGUoKSwgaXRlbVRleHQsICcgJyk7CisgICAgaXRlbVRleHQgPSBhcHBseVRleHRU
cmFuc2Zvcm0oc3R5bGUoKSwgaXRlbVRleHQpOwogCiAgICAgaWYgKGl0ZW1UZXh0LmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcAppbmRleCA4NGZkOTVjMDcxZWEuLjFhNTI5M2VhNjlmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9p
ZCBSZW5kZXJNZW51TGlzdDo6dXBkYXRlT3B0aW9uc1dpZHRoKCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIFN0cmluZyB0ZXh0ID0gb3B0aW9uLT50ZXh0SW5kZW50ZWRUb1Jlc3Bl
Y3RHcm91cExhYmVsKCk7Ci0gICAgICAgIHRleHQgPSBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUo
KSwgdGV4dCwgJyAnKTsKKyAgICAgICAgdGV4dCA9IGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgp
LCB0ZXh0KTsKICAgICAgICAgaWYgKHRoZW1lKCkucG9wdXBPcHRpb25TdXBwb3J0c1RleHRJbmRl
bnQoKSkgewogICAgICAgICAgICAgLy8gQWRkIGluIHRoZSBvcHRpb24ncyB0ZXh0IGluZGVudC4g
IFdlIGNhbid0IGNhbGN1bGF0ZSBwZXJjZW50YWdlIHZhbHVlcyBmb3Igbm93LgogICAgICAgICAg
ICAgZmxvYXQgb3B0aW9uV2lkdGggPSAwOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIFN0cmluZyBSZW5k
ZXJNZW51TGlzdDo6aXRlbVRleHQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogICAgIGVsc2Ug
aWYgKGF1dG8qIG9wdGlvbiA9IGR5bmFtaWNEb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVudD4oZWxl
bWVudCkpCiAgICAgICAgIGl0ZW1TdHJpbmcgPSBvcHRpb24tPnRleHRJbmRlbnRlZFRvUmVzcGVj
dEdyb3VwTGFiZWwoKTsKIAotICAgIHJldHVybiBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUoKSwg
aXRlbVN0cmluZywgJyAnKTsKKyAgICByZXR1cm4gYXBwbHlUZXh0VHJhbnNmb3JtKHN0eWxlKCks
IGl0ZW1TdHJpbmcpOwogfQogCiBTdHJpbmcgUmVuZGVyTWVudUxpc3Q6Oml0ZW1MYWJlbCh1bnNp
Z25lZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCA2
MzcxNDkzMzYzZDIuLmQ5MDkxMDE4MzA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcApAQCAtMjA5LDIyICsyMDksMjggQEAgc3RhdGljIGlubGluZSBzaXplX3QgY2Fw
aXRhbGl6ZUNoYXJhY3RlcihTdHJpbmcgdGV4dENvbnRlbnQsIHVuc2lnbmVkIHN0YXJ0Q2hhcmEK
ICAgICByZXR1cm4gY2FwaXRhbGl6ZShjb250ZW50LmRhdGEoKSwgY2FwaXRhbGl6ZWRDb250ZW50
TGVuZ3RoKTsKIH0KIAotU3RyaW5nIGNhcGl0YWxpemUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFVD
aGFyIHByZXZpb3VzQ2hhcmFjdGVyKQorU3RyaW5nIGNhcGl0YWxpemUoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHVzZSB1X3N0clRvVGl0bGUg
aW5zdGVhZCBvZiB1X3RvdGl0bGUgYW5kIHRvIGNvbnNpZGVyIGxvY2FsZS4KKyAgICBWZWN0b3I8
VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKDEsICcgJyk7CisgICAgcmV0dXJuIGNhcGl0YWxpemUo
c3RyaW5nLCBwcmV2aW91c0NoYXJhY3Rlcik7Cit9CiAKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBz
dHJpbmcubGVuZ3RoKCk7CitTdHJpbmcgY2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmIHN0cmluZywg
VmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3RlcikKK3sKKyAgICBpbnQzMl90IGxlbmd0aCA9
IHN0cmluZy5sZW5ndGgoKTsKKyAgICBpbnQzMl90IHByZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoID0g
cHJldmlvdXNDaGFyYWN0ZXIuc2l6ZSgpOwogICAgIGF1dG8mIHN0cmluZ0ltcGwgPSAqc3RyaW5n
LmltcGwoKTsKIAogICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPCBzdGQ6Om51
bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksICJNdXN0IGJlIGFibGUgdG8gYWRkIG9uZSB3
aXRob3V0IG92ZXJmbG93aW5nIHVuc2lnbmVkIik7CiAKICAgICAvLyBSZXBsYWNlIE5PIEJSRUFL
IFNQQUNFIHdpdGggYSBub3JtYWwgc3BhY2VzIHNpbmNlIElDVSBkb2VzIG5vdCB0cmVhdCBpdCBh
cyBhIHdvcmQgc2VwYXJhdG9yLgotICAgIFZlY3RvcjxVQ2hhcj4gc3RyaW5nV2l0aFByZXZpb3Vz
KGxlbmd0aCArIDEpOwotICAgIHN0cmluZ1dpdGhQcmV2aW91c1swXSA9IGNvbnZlcnROb0JyZWFr
U3BhY2VUb1NwYWNlKHByZXZpb3VzQ2hhcmFjdGVyKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAx
OyBpIDwgbGVuZ3RoICsgMTsgaSsrKQotICAgICAgICBzdHJpbmdXaXRoUHJldmlvdXNbaV0gPSBj
b252ZXJ0Tm9CcmVha1NwYWNlVG9TcGFjZShzdHJpbmdJbXBsW2kgLSAxXSk7CisgICAgVmVjdG9y
PFVDaGFyPiBzdHJpbmdXaXRoUHJldmlvdXMocHJldmlvdXNDaGFyYWN0ZXJMZW5ndGggKyBsZW5n
dGgpOworICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IHByZXZpb3VzQ2hhcmFjdGVyTGVuZ3Ro
OyArK2kpCisgICAgICAgIHN0cmluZ1dpdGhQcmV2aW91c1tpXSA9IGNvbnZlcnROb0JyZWFrU3Bh
Y2VUb1NwYWNlKHByZXZpb3VzQ2hhcmFjdGVyW2ldKTsKKyAgICBmb3IgKGludDMyX3QgaSA9IHBy
ZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoOyBpIDwgbGVuZ3RoICsgcHJldmlvdXNDaGFyYWN0ZXJMZW5n
dGg7ICsraSkKKyAgICAgICAgc3RyaW5nV2l0aFByZXZpb3VzW2ldID0gY29udmVydE5vQnJlYWtT
cGFjZVRvU3BhY2Uoc3RyaW5nSW1wbFtpIC0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGhdKTsKIAot
ICAgIGF1dG8qIGJyZWFrSXRlcmF0b3IgPSBXVEY6OndvcmRCcmVha0l0ZXJhdG9yKHN0cmluZ1dp
dGhQcmV2aW91cy5zcGFuKCkuZmlyc3QobGVuZ3RoICsgMSkpOworICAgIGF1dG8qIGJyZWFrSXRl
cmF0b3IgPSBXVEY6OndvcmRCcmVha0l0ZXJhdG9yKHN0cmluZ1dpdGhQcmV2aW91cy5zcGFuKCkp
OwogICAgIGlmICghYnJlYWtJdGVyYXRvcikKICAgICAgICAgcmV0dXJuIHN0cmluZzsKIApAQCAt
MjMyLDE5ICsyMzgsMjEgQEAgU3RyaW5nIGNhcGl0YWxpemUoY29uc3QgU3RyaW5nJiBzdHJpbmcs
IFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKQogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkobGVu
Z3RoKTsKIAogICAgIGludDMyX3Qgc3RhcnRPZldvcmQgPSB1YnJrX2ZpcnN0KGJyZWFrSXRlcmF0
b3IpOwotICAgIGludDMyX3QgZW5kT2ZXb3JkOwotICAgIGZvciAoZW5kT2ZXb3JkID0gdWJya19u
ZXh0KGJyZWFrSXRlcmF0b3IpOyBlbmRPZldvcmQgIT0gVUJSS19ET05FOyBzdGFydE9mV29yZCA9
IGVuZE9mV29yZCwgZW5kT2ZXb3JkID0gdWJya19uZXh0KGJyZWFrSXRlcmF0b3IpKSB7Ci0gICAg
ICAgIC8vIERvIG5vdCBhcHBlbmQgdGhlIGZpcnN0IGNoYXJhY3Rlciwgc2luY2UgaXQncyB0aGUg
cHJldmlvdXMgY2hhcmFjdGVyLCBub3QgZnJvbSB0aGlzIHN0cmluZy4KLSAgICAgICAgaWYgKHN0
YXJ0T2ZXb3JkKSB7Ci0gICAgICAgICAgICBhdXRvIGNhcGl0YWxpemVkQ29udGVudExlbmd0aCA9
IGNhcGl0YWxpemVDaGFyYWN0ZXIoc3RyaW5nLCBzdGFydE9mV29yZCAtIDEsIHJlc3VsdCk7Ci0g
ICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnRPZldvcmQgKyBjYXBpdGFsaXplZENvbnRlbnRM
ZW5ndGg7IGkgPCBlbmRPZldvcmQ7ICsraSkKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHN0cmluZ0ltcGxbaSAtIDFdKTsKKyAgICBmb3IgKGludDMyX3QgZW5kT2ZXb3JkID0gdWJya19u
ZXh0KGJyZWFrSXRlcmF0b3IpOyBlbmRPZldvcmQgIT0gVUJSS19ET05FOyBzdGFydE9mV29yZCA9
IGVuZE9mV29yZCwgZW5kT2ZXb3JkID0gdWJya19uZXh0KGJyZWFrSXRlcmF0b3IpKSB7CisgICAg
ICAgIC8vIERvIG5vdCB0cnkgdG8gdGl0bGVjYXNlIHRoZSBwcmV2aW91cyBjb250ZW50LgorICAg
ICAgICBpZiAoc3RhcnRPZldvcmQgPj0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGgpIHsKKyAgICAg
ICAgICAgIGF1dG8gY2FwaXRhbGl6ZWRDb250ZW50TGVuZ3RoID0gY2FwaXRhbGl6ZUNoYXJhY3Rl
cihzdHJpbmcsIHN0YXJ0T2ZXb3JkIC0gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGgsIHJlc3VsdCk7
CisgICAgICAgICAgICBmb3IgKGludDMyX3QgaSA9IHN0YXJ0T2ZXb3JkICsgY2FwaXRhbGl6ZWRD
b250ZW50TGVuZ3RoOyBpIDwgZW5kT2ZXb3JkOyArK2kpCisgICAgICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZChzdHJpbmdJbXBsW2kgLSBwcmV2aW91c0NoYXJhY3Rlckxlbmd0aF0pOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0T2ZXb3JkICsgMTsgaSA8
IGVuZE9mV29yZDsgKytpKQotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RyaW5nSW1w
bFtpIC0gMV0pOworICAgICAgICAgICAgLy8gVGhpcyBpcyBwcmV2aW91cyBhbmQgY29udGlub3Vz
IG5vbi10aXRsZWNhc2VkIGN1cnJlbnQgY29udGVudC4gT25seSBhcHBlbmQgY3VycmVudCBjb250
ZW50LgorICAgICAgICAgICAgZm9yIChpbnQzMl90IGkgPSBzdGFydE9mV29yZDsgaSA8IGVuZE9m
V29yZDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBwcmV2aW91c0NoYXJhY3Rlckxl
bmd0aCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChzdHJpbmdJbXBsW2kgLSBwcmV2aW91c0NoYXJhY3Rlckxlbmd0aF0pOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotCiAgICAgcmV0dXJuIHJlc3VsdCA9PSBzdHJp
bmcgPyBzdHJpbmcgOiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIApAQCAtMTUxNyw3ICsxNTI1LDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzSW5saW5lRmxvd09yRW1wdHlUZXh0KGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIpCiAgICAgcmV0dXJuIHRleHRSZW5kZXJlciAmJiB0ZXh0UmVuZGVy
ZXItPnRleHQoKS5pc0VtcHR5KCk7CiB9CiAKLVVDaGFyIFJlbmRlclRleHQ6OnByZXZpb3VzQ2hh
cmFjdGVyKCkgY29uc3QKK1ZlY3RvcjxVQ2hhcj4gUmVuZGVyVGV4dDo6cHJldmlvdXNDaGFyYWN0
ZXIoKSBjb25zdAogewogICAgIGNvbnN0IFJlbmRlck9iamVjdCogcHJldmlvdXNUZXh0ID0gdGhp
czsKICAgICB3aGlsZSAoKHByZXZpb3VzVGV4dCA9IHByZXZpb3VzVGV4dC0+cHJldmlvdXNJblBy
ZU9yZGVyKCkpKSB7CkBAIC0xNTI3LDEwICsxNTM1LDMyIEBAIFVDaGFyIFJlbmRlclRleHQ6OnBy
ZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBh
dXRvKiByZW5kZXJUZXh0ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclRleHQ+KHByZXZpb3VzVGV4
dCk7CisgICAgVmVjdG9yPFVDaGFyPiBwcmV2aW91czsKICAgICBpZiAoIXJlbmRlclRleHQpCi0g
ICAgICAgIHJldHVybiAnICc7Ci0gICAgYXV0byYgcHJldmlvdXNTdHJpbmcgPSByZW5kZXJUZXh0
LT50ZXh0KCk7Ci0gICAgcmV0dXJuIHByZXZpb3VzU3RyaW5nW3ByZXZpb3VzU3RyaW5nLmxlbmd0
aCgpIC0gMV07CisgICAgICAgIHByZXZpb3VzLmFwcGVuZCgnICcpOworICAgIGVsc2UgeworICAg
ICAgICBhdXRvJiBwcmV2aW91c1N0cmluZyA9IHJlbmRlclRleHQtPnRleHQoKTsKKyAgICAgICAg
aWYgKHByZXZpb3VzU3RyaW5nLmlzOEJpdCgpKQorICAgICAgICAgICAgcHJldmlvdXMuYXBwZW5k
KHByZXZpb3VzU3RyaW5nW3ByZXZpb3VzU3RyaW5nLmxlbmd0aCgpIC0gMV0pOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGF1dG8gcHJldmlvdXNDaGFyYWN0ZXJMZW5ndGggPSBbJl0gewor
ICAgICAgICAgICAgICAgIGF1dG8gY29udGVudEl0ZXJhdG9yID0gU3Vycm9nYXRlUGFpckF3YXJl
VGV4dEl0ZXJhdG9yIHsgcHJldmlvdXNTdHJpbmcuc3BhbjE2KCksIDAsIHByZXZpb3VzU3RyaW5n
Lmxlbmd0aCgpIH07CisgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhcmFjdGVyTGVuZ3RoID0g
MDsKKyAgICAgICAgICAgICAgICBjaGFyMzJfdCBjdXJyZW50Q2hhcmFjdGVyID0gMDsKKyAgICAg
ICAgICAgICAgICB3aGlsZSAoY29udGVudEl0ZXJhdG9yLmNvbnN1bWUoY3VycmVudENoYXJhY3Rl
ciwgY2hhcmFjdGVyTGVuZ3RoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudEl0ZXJhdG9y
LmFkdmFuY2UoY2hhcmFjdGVyTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2hhcmFj
dGVyTGVuZ3RoOworICAgICAgICAgICAgfSgpOworCisgICAgICAgICAgICBpZiAocHJldmlvdXND
aGFyYWN0ZXJMZW5ndGggPiBwcmV2aW91c1N0cmluZy5sZW5ndGgoKSkgeworICAgICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91
czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBwcmV2aW91c1N0
cmluZy5sZW5ndGgoKSAtIHByZXZpb3VzQ2hhcmFjdGVyTGVuZ3RoOyBpIDwgcHJldmlvdXNTdHJp
bmcubGVuZ3RoKCk7ICsraSkKKyAgICAgICAgICAgICAgICBwcmV2aW91cy5hcHBlbmQocHJldmlv
dXNTdHJpbmdbaV0pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBwcmV2aW91czsKIH0K
IAogc3RhdGljIFN0cmluZyBjb252ZXJ0VG9GdWxsU2l6ZUthbmEoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCkBAIC0xNjIxLDcgKzE2NTEsMTMgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0VG9GdWxsU2l6
ZUthbmEoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OwogfQogCi1TdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcikKK1N0cmluZyBh
cHBseVRleHRUcmFuc2Zvcm0oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisgICAgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3RlcigxLCAnICcpOwor
ICAgIHJldHVybiBhcHBseVRleHRUcmFuc2Zvcm0oc3R5bGUsIHRleHQsIHByZXZpb3VzQ2hhcmFj
dGVyKTsKK30KKworU3RyaW5nIGFwcGx5VGV4dFRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3Rl
cikKIHsKICAgICBhdXRvIHRyYW5zZm9ybSA9IHN0eWxlLnRleHRUcmFuc2Zvcm0oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKaW5kZXggOTY5ZGFkNWEzZjQ3Li4yMDdiN2Jh
MzE0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMjExLDcgKzIx
MSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlcmVkVGV4dChjb25zdCBTdHJpbmcmKTsKLSAgICB2
aXJ0dWFsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CisgICAgdmlydHVhbCBWZWN0
b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2UpOwogCkBAIC0yODcsOCAr
Mjg3LDEwIEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9oYXNTZWN1cmVUZXh0VGltZXIgOiAx
IHsgZmFsc2UgfTsKIH07CiAKLVN0cmluZyBhcHBseVRleHRUcmFuc2Zvcm0oY29uc3QgUmVuZGVy
U3R5bGUmLCBjb25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rlcik7Ci1TdHJpbmcg
Y2FwaXRhbGl6ZShjb25zdCBTdHJpbmcmLCBVQ2hhciBwcmV2aW91c0NoYXJhY3Rlcik7CitTdHJp
bmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFVDaGFyPiBwcmV2aW91c0NoYXJhY3Rlcik7CitTdHJpbmcgYXBwbHlUZXh0VHJhbnNm
b3JtKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgU3RyaW5nJik7CitTdHJpbmcgY2FwaXRhbGl6
ZShjb25zdCBTdHJpbmcmLCBWZWN0b3I8VUNoYXI+IHByZXZpb3VzQ2hhcmFjdGVyKTsKK1N0cmlu
ZyBjYXBpdGFsaXplKGNvbnN0IFN0cmluZyYpOwogVGV4dEJyZWFrSXRlcmF0b3I6OkxpbmVNb2Rl
OjpCZWhhdmlvciBtYXBMaW5lQnJlYWtUb0l0ZXJhdG9yTW9kZShMaW5lQnJlYWspOwogVGV4dEJy
ZWFrSXRlcmF0b3I6OkNvbnRlbnRBbmFseXNpcyBtYXBXb3JkQnJlYWtUb0NvbnRlbnRBbmFseXNp
cyhXb3JkQnJlYWspOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
RnJhZ21lbnQuY3BwCmluZGV4IDQ4YzViYzE5NWIzMi4uMWZjNmFlMTU1MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcApAQCAtODYsMTQg
Kzg2LDE2IEBAIHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50OjpzZXRUZXh0SW50ZXJuYWwoY29uc3Qg
U3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQogICAgIEFTU0VSVCghdGV4dE5vZGUoKSB8fCB0
ZXh0Tm9kZSgpLT5yZW5kZXJlcigpID09IHRoaXMpOwogfQogCi1VQ2hhciBSZW5kZXJUZXh0RnJh
Z21lbnQ6OnByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3QKK1ZlY3RvcjxVQ2hhcj4gUmVuZGVyVGV4
dEZyYWdtZW50OjpwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0CiB7CiAgICAgaWYgKHN0YXJ0KCkp
IHsKICAgICAgICAgU3RyaW5nIG9yaWdpbmFsID0gdGV4dE5vZGUoKSA/IHRleHROb2RlKCktPmRh
dGEoKSA6IGNvbnRlbnRTdHJpbmcoKTsKLSAgICAgICAgaWYgKCFvcmlnaW5hbC5pc051bGwoKSAm
JiBzdGFydCgpIDw9IG9yaWdpbmFsLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuIG9yaWdp
bmFsW3N0YXJ0KCkgLSAxXTsKKyAgICAgICAgaWYgKCFvcmlnaW5hbC5pc051bGwoKSAmJiBzdGFy
dCgpIDw9IG9yaWdpbmFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBWZWN0b3I8VUNoYXI+IHBy
ZXZpb3VzOworICAgICAgICAgICAgcHJldmlvdXMuYXBwZW5kKG9yaWdpbmFsW3N0YXJ0KCkgLSAx
XSk7CisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CisgICAgICAgIH0KICAgICB9Ci0KICAg
ICByZXR1cm4gUmVuZGVyVGV4dDo6cHJldmlvdXNDaGFyYWN0ZXIoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCmluZGV4IDkzZDAyMDEwMzA5
MS4uODU3ZGNiMzc1OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRGcmFnbWVudC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZSkgb3ZlcnJpZGU7CiAK
LSAgICBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFZlY3Rv
cjxVQ2hhcj4gcHJldmlvdXNDaGFyYWN0ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHVuc2ln
bmVkIG1fc3RhcnQ7CiAgICAgdW5zaWduZWQgbV9lbmQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMt
Y2hhcmFjdGVycy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxp
emUtY29udGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljYmE4OGEwZWIw
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNv
bnRlbnQtd2l0aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwzIEBACis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8ZGl2PkFjdHVhbDog8JCQ
uPCQkK7wkJCt8JCRi/CQkLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBGaXLvrIYgxZJ1
ZiDDhnN0aGV0aWNzPC9kaXY+Cis8ZGl2PkV4cGVjdGVkOiDwkJC48JCQrvCQkK3wkJGL8JCQsPCQ
kYwg8JCQkPCQkK7wkJCt8JCRi/CQkLDwkJGMIEZpcu+shiDFknVmIMOGc3RoZXRpY3M8L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jYXBpdGFsaXplLWNvbnRlbnQtd2l0
aC1vdXRzaWRlLWJtcC1wcmV2aW91cy1jaGFyYWN0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY2FwaXRhbGl6ZS1jb250ZW50LXdpdGgtb3V0c2lkZS1ibXAtcHJldmlvdXMtY2hhcmFj
dGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWE1OWEy
ZGI5ZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NhcGl0YWxp
emUtY29udGVudC13aXRoLW91dHNpZGUtYm1wLXByZXZpb3VzLWNoYXJhY3RlcnMuaHRtbApAQCAt
MCwwICsxLDggQEAKKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KK3NwYW4geworICB0
ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PkFjdHVhbDog8JCQ
uDxzcGFuPvCQkK7wkJCt8JCRi/CQkLDwkJGMIPCQkLjwkJCu8JCQrfCQkYvwkJCw8JCRjCDvrIFy
76yGIMWTdWYgw6ZzdGhldGljczwvc3Bhbj48ZGl2PgorPGRpdj5FeHBlY3RlZDog8JCQuPCQkK7w
kJCt8JCRi/CQkLDwkJGMIPCQkJDwkJCu8JCQrfCQkYvwkJCw8JCRjCBGaXLvrIYgxZJ1ZiDDhnN0
aGV0aWNzPC9kaXY+Cg==
</data>
<flag name="commit-queue"
          id="498132"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>