<?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>234815</bug_id>
          
          <creation_ts>2022-01-03 06:16:41 -0800</creation_ts>
          <short_desc>[:has() pseudo-class] Style invalidation for :valid and :invalid</short_desc>
          <delta_ts>2022-01-03 10:52:20 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/32227</see_also>
          <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>234556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bramus</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827701</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-03 06:16:41 -0800</bug_when>
    <thetext>Use PseudoClassChangeInvalidation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827750</commentid>
    <comment_count>1</comment_count>
      <attachid>448242</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-03 08:34:01 -0800</bug_when>
    <thetext>Created attachment 448242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827751</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-03 08:34:25 -0800</bug_when>
    <thetext>Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/32227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827752</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-03 08:35:04 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827780</commentid>
    <comment_count>4</comment_count>
      <attachid>448242</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-03 10:08:45 -0800</bug_when>
    <thetext>Comment on attachment 448242
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=448242&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        Use PseudoClassChangeInvalidation for accurate and :has() supporting style invalidation.

For some reason I am having trouble parsing this sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827783</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-03 10:39:44 -0800</bug_when>
    <thetext>&gt; For some reason I am having trouble parsing this sentence.

It really isn&apos;t a great sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827790</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-03 10:51:02 -0800</bug_when>
    <thetext>Committed r287551 (245686@main): &lt;https://commits.webkit.org/245686@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827791</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-03 10:52:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/87069681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448242</attachid>
            <date>2022-01-03 08:34:01 -0800</date>
            <delta_ts>2022-01-03 10:51:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234815-20220103183400.patch</filename>
            <type>text/plain</type>
            <size>25844</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzMyZjUxMWNkNDY5ZWE3
N2M3MWJiMGY5M2I1ZTZmNjEyMWQ1NjRmZS4uYjk0YzBmZjVjNDc1MzFlZGVkMjY3MzYzNTE3ZjMx
ZjkwODYzYzc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIyLTAxLTAzICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gU3R5bGUgaW52YWxpZGF0aW9uIGZvciA6dmFsaWQgYW5kIDppbnZhbGlkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4MTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgUHNldWRvQ2xhc3ND
aGFuZ2VJbnZhbGlkYXRpb24gZm9yIGFjY3VyYXRlIGFuZCA6aGFzKCkgc3VwcG9ydGluZyBzdHls
ZSBpbnZhbGlkYXRpb24uCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9oYXMtd2l0aC1wc2V1ZG8tY2xhc3Mu
aHRtbAorCisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpjb21wdXRlVmFsaWRpdHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojppc1ZhbGlkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRmllbGRTZXRFbGVtZW50OjphZGRJbnZhbGlkRGVzY2VuZGFudCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRmllbGRTZXRFbGVtZW50OjpyZW1vdmVJbnZhbGlkRGVzY2VuZGFudCk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzVmFsaWRGb3JtQ29u
dHJvbEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dXBkYXRlVmFsaWRpdHkpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cmVnaXN0ZXJJbnZhbGlkQXNz
b2NpYXRlZEZvcm1Db250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6
cmVtb3ZlSW52YWxpZEFzc29jaWF0ZWRGb3JtQ29udHJvbElmTmVlZGVkKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y29tcHV0ZVZhbGlkaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5pZGw6CisKIDIwMjIt
MDEtMDMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFBzZXVk
b0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBwc2V1ZG8gY2xh
c3NlcyBhcyBhcmd1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuY3BwCmluZGV4IDUyNzU1YWI2Y2FmODRmNDE4MTAzYzJhZmRkYzU0ZGNhM2VjNWI4MjYu
LmMwOTE2NDMyMjRmOGI3YjJiMWRjZGM3NmQ3MWRiODI2NDI1YTg4MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTI1Myw3ICsyNTMsNyBA
QCBib29sIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6dHlwZU1pc21hdGNoKCkgY29uc3QKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojppc1ZhbGlkKCkg
Y29uc3QKK2Jvb2wgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpjb21wdXRlVmFsaWRpdHkoKSBjb25z
dAogewogICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1pc21hdGNoKCkgfHwgc3RlcE1pc21hdGNo
KCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92ZXJmbG93KCkKICAgICAgICAgfHwgdG9v
U2hvcnQoKSB8fCB0b29Mb25nKCkgfHwgcGF0dGVybk1pc21hdGNoKCkgfHwgdmFsdWVNaXNzaW5n
KCkgfHwgaGFzQmFkSW5wdXQoKSB8fCBjdXN0b21FcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKaW5kZXggYjUwOTkwMDNiNzI2NWMwYjc4ZmU5Zjlm
YTgxYmQ3OWU4YzlmNjBhZi4uN2E4OGQ1NmVhZTk3MDUyOTgwZjk2YzI0M2U3MGNmNWNiNTJkYmU5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC04
NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0OwogICAgIHZpcnR1YWwg
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzVmFs
aWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVZhbGlkaXR5KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpOwogCiAgICAg
dm9pZCBmb3JtQXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggZDlmYWNmYWQ1ZmNiMzcyMWJhNzZmMTk2ZmFm
OTRlNTczYjQ1ZjIwMS4uZDRiMTEwYTk2NWNjYzkwMTU5Njk5ZGVkZTE5MzBjMTgzOTk2N2JiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJQc2V1ZG9DbGFz
c0NoYW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNs
dWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgpAQCAtMTgwLDggKzE4MSwxMCBAQCB2b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmFk
ZEludmFsaWREZXNjZW5kYW50KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGludgogICAg
IEFTU0VSVChzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Jj4oaW52YWxpZEZvcm1Db250cm9sRWxl
bWVudCkubWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpKTsKICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFtX2ludmFsaWREZXNjZW5kYW50cy5jb250YWlucyhpbnZhbGlkRm9ybUNvbnRyb2xFbGVt
ZW50KSwgIlVwZGF0aW5nIHRoZSBmaWVsZHNldCBvbiB2YWxpZGl0eSBjaGFuZ2UgaXMgbm90IGFu
IGVmZmljaWVudCBvcGVyYXRpb24sIGl0IHNob3VsZCBvbmx5IGJlIGRvbmUgd2hlbiBuZWNlc3Nh
cnkuIik7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFs
aWRhdGlvbj4gc3R5bGVJbnZhbGlkYXRpb247CiAgICAgaWYgKG1faW52YWxpZERlc2NlbmRhbnRz
LmNvbXB1dGVzRW1wdHkoKSkKLSAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwor
ICAgICAgICBzdHlsZUludmFsaWRhdGlvbi5lbXBsYWNlKCp0aGlzLCBzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4geyBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NWYWxpZCwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSW52YWxpZCB9KTsKKwogICAgIG1f
aW52YWxpZERlc2NlbmRhbnRzLmFkZChpbnZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KTsKIH0KIApA
QCAtMTkwLDkgKzE5MywxMSBAQCB2b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnJlbW92ZUludmFs
aWREZXNjZW5kYW50KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmCiAgICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRSghaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oZm9ybUNvbnRyb2xFbGVtZW50KSwg
IkZpZWxkU2V0IGFyZSBuZXZlciBjYW5kaWRhdGVzIGZvciBjb25zdHJhaW50IHZhbGlkYXRpb24u
Iik7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX2ludmFsaWREZXNjZW5kYW50cy5jb250YWlu
cyhmb3JtQ29udHJvbEVsZW1lbnQpLCAiVXBkYXRpbmcgdGhlIGZpZWxkc2V0IG9uIHZhbGlkaXR5
IGNoYW5nZSBpcyBub3QgYW4gZWZmaWNpZW50IG9wZXJhdGlvbiwgaXQgc2hvdWxkIG9ubHkgYmUg
ZG9uZSB3aGVuIG5lY2Vzc2FyeS4iKTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8U3R5bGU6OlBzZXVk
b0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uPiBzdHlsZUludmFsaWRhdGlvbjsKKyAgICBpZiAobV9p
bnZhbGlkRGVzY2VuZGFudHMuY29tcHV0ZVNpemUoKSA9PSAxKQorICAgICAgICBzdHlsZUludmFs
aWRhdGlvbi5lbXBsYWNlKCp0aGlzLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Q1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzVHlwZT4geyBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWYWxpZCwgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzSW52YWxpZCB9KTsKKwogICAgIG1faW52YWxpZERlc2NlbmRhbnRz
LnJlbW92ZShmb3JtQ29udHJvbEVsZW1lbnQpOwotICAgIGlmIChtX2ludmFsaWREZXNjZW5kYW50
cy5jb21wdXRlc0VtcHR5KCkpCi0gICAgICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCmluZGV4IGRhYWJmNzJlNDVjN2EyODFmMTBlYmFkMzg4YTllMDZjYmNl
NjQ4MzYuLjVmMmFmMjVhN2VlYzA3NzE5NjI5YjUyODBjYWNmMzNlMGQzYTAxY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDA1LDcg
KzQwNSw2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRlV2lsbFZhbGlkYXRl
QW5kVmFsaWRpdHkoKQogICAgIG1fd2lsbFZhbGlkYXRlID0gbmV3V2lsbFZhbGlkYXRlOwogCiAg
ICAgdXBkYXRlVmFsaWRpdHkoKTsKLSAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAK
ICAgICBpZiAoIW1fd2lsbFZhbGlkYXRlICYmICF3YXNWYWxpZCkgewogICAgICAgICByZW1vdmVJ
bnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBhcmVudE5v
ZGUoKSk7CkBAIC01MDMsOSArNTAyLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpm
b2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZSgpCiAKIGlubGluZSBib29sIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdAogewotICAgIC8v
IElmIHRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGZhaWxzLCB1cGRhdGVWYWxpZGl0eSgpIGlzIG5v
dCBjYWxsZWQKLSAgICAvLyBjb3JyZWN0bHkgd2hlbiBzb21ldGhpbmcgd2hpY2ggY2hhbmdlcyB2
YWxpZGl0eSBpcyB1cGRhdGVkLgotICAgIEFTU0VSVChtX2lzVmFsaWQgPT0gaXNWYWxpZCgpKTsK
ICAgICByZXR1cm4gbV9pc1ZhbGlkOwogfQogCkBAIC01MzMsMjggKzUyOSwyOSBAQCB2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZVZhbGlkaXR5KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYm9vbCB3aWxsVmFsaWRhdGUgPSB0aGlzLT53aWxsVmFsaWRhdGUoKTsKLSAgICBib29s
IHdhc1ZhbGlkID0gbV9pc1ZhbGlkOwotCi0gICAgbV9pc1ZhbGlkID0gaXNWYWxpZCgpOwotCi0g
ICAgaWYgKHdpbGxWYWxpZGF0ZSAmJiBtX2lzVmFsaWQgIT0gd2FzVmFsaWQpIHsKLSAgICAgICAg
Ly8gVXBkYXRlIHN0eWxlIGZvciBwc2V1ZG8gY2xhc3NlcyBzdWNoIGFzIDp2YWxpZCA6aW52YWxp
ZC4KLSAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotCi0gICAgICAgIGlmICgh
bV9pc1ZhbGlkKSB7Ci0gICAgICAgICAgICBpZiAoaXNDb25uZWN0ZWQoKSkKLSAgICAgICAgICAg
ICAgICBhZGRJbnZhbGlkRWxlbWVudFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMs
IHBhcmVudE5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBmb3JtID0g
dGhpcy0+Zm9ybSgpKQotICAgICAgICAgICAgICAgIGZvcm0tPnJlZ2lzdGVySW52YWxpZEFzc29j
aWF0ZWRGb3JtQ29udHJvbCgqdGhpcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAoaXNDb25uZWN0ZWQoKSkKLSAgICAgICAgICAgICAgICByZW1vdmVJbnZhbGlkRWxlbWVudFRv
QW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBhcmVudE5vZGUoKSk7Ci0gICAgICAg
ICAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gdGhpcy0+Zm9ybSgpKQotICAgICAgICAg
ICAgICAgIGZvcm0tPnJlbW92ZUludmFsaWRBc3NvY2lhdGVkRm9ybUNvbnRyb2xJZk5lZWRlZCgq
dGhpcyk7CisgICAgYm9vbCBuZXdJc1ZhbGlkID0gdGhpcy0+Y29tcHV0ZVZhbGlkaXR5KCk7CisK
KyAgICBpZiAobmV3SXNWYWxpZCAhPSBtX2lzVmFsaWQpIHsKKyAgICAgICAgU3R5bGU6OlBzZXVk
b0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIHN0eWxlSW52YWxpZGF0aW9uKCp0aGlzLCB7IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1ZhbGlkLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbnZhbGlk
IH0pOworCisgICAgICAgIG1faXNWYWxpZCA9IG5ld0lzVmFsaWQ7CisKKyAgICAgICAgaWYgKHdp
bGxWYWxpZGF0ZSkgeworICAgICAgICAgICAgaWYgKCFtX2lzVmFsaWQpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgYWRkSW52YWxpZEVs
ZW1lbnRUb0FuY2VzdG9yRnJvbUluc2VydGlvblBvaW50KCp0aGlzLCBwYXJlbnROb2RlKCkpOwor
ICAgICAgICAgICAgICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSB0aGlzLT5mb3JtKCkp
CisgICAgICAgICAgICAgICAgICAgIGZvcm0tPnJlZ2lzdGVySW52YWxpZEFzc29jaWF0ZWRGb3Jt
Q29udHJvbCgqdGhpcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlm
IChpc0Nvbm5lY3RlZCgpKQorICAgICAgICAgICAgICAgICAgICByZW1vdmVJbnZhbGlkRWxlbWVu
dFRvQW5jZXN0b3JGcm9tSW5zZXJ0aW9uUG9pbnQoKnRoaXMsIHBhcmVudE5vZGUoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHRoaXMtPmZvcm0oKSkKKyAg
ICAgICAgICAgICAgICAgICAgZm9ybS0+cmVtb3ZlSW52YWxpZEFzc29jaWF0ZWRGb3JtQ29udHJv
bElmTmVlZGVkKCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAg
IC8vIFVwZGF0ZXMgb25seSBpZiB0aGlzIGNvbnRyb2wgYWxyZWFkeSBoYXMgYSB2YWxpZHRpb24g
bWVzc2FnZS4KKyAgICAvLyBVcGRhdGVzIG9ubHkgaWYgdGhpcyBjb250cm9sIGFscmVhZHkgaGFz
IGEgdmFsaWRhdGlvbiBtZXNzYWdlLgogICAgIGlmIChtX3ZhbGlkYXRpb25NZXNzYWdlICYmIG1f
dmFsaWRhdGlvbk1lc3NhZ2UtPmlzVmlzaWJsZSgpKSB7CiAgICAgICAgIC8vIENhbGxzIHVwZGF0
ZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpIGV2ZW4gaWYgbV9pc1ZhbGlkIGlzIG5vdAogICAg
ICAgICAvLyBjaGFuZ2VkIGJlY2F1c2UgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgY2FuIGJlIGNoYWdu
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggMmNkZTI5MTVk
MWYyNDdhOWZjMTZiZmUzZWE2N2NkOTNiMDE4NmViOS4uOTA3ZjEwZTJhYjQ2ODBmYjRmYzkwNjcy
ZTg2YzcxZjYxNzM4NGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cApAQCAtNjY2LDE3ICs2NjYsMjMgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW52
YWxpZEFzc29jaWF0ZWRGb3JtQ29udHJvbChjb25zdCBIVE1MRm9ybUNvbnRyb2wKICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKCFpczxIVE1MRmllbGRTZXRFbGVtZW50Pihmb3JtQ29udHJvbEVsZW1l
bnQpLCAiRmllbGRTZXQgYXJlIG5ldmVyIGNhbmRpZGF0ZXMgZm9yIGNvbnN0cmFpbnQgdmFsaWRh
dGlvbi4iKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCY+KGZvcm1Db250
cm9sRWxlbWVudCkubWF0Y2hlc0ludmFsaWRQc2V1ZG9DbGFzcygpKTsKIAorICAgIHN0ZDo6b3B0
aW9uYWw8U3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uPiBzdHlsZUludmFsaWRh
dGlvbjsKICAgICBpZiAobV9pbnZhbGlkQXNzb2NpYXRlZEZvcm1Db250cm9scy5jb21wdXRlc0Vt
cHR5KCkpCi0gICAgICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICAgICAgc3R5
bGVJbnZhbGlkYXRpb24uZW1wbGFjZSgqdGhpcywgc3RkOjppbml0aWFsaXplcl9saXN0PENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+IHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmFsaWQs
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ludmFsaWQgfSk7CisKICAgICBtX2ludmFsaWRBc3Nv
Y2lhdGVkRm9ybUNvbnRyb2xzLmFkZChjb25zdF9jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQm
Pihmb3JtQ29udHJvbEVsZW1lbnQpKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlbW92
ZUludmFsaWRBc3NvY2lhdGVkRm9ybUNvbnRyb2xJZk5lZWRlZChjb25zdCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50JiBmb3JtQ29udHJvbEVsZW1lbnQpCiB7Ci0gICAgaWYgKG1faW52YWxpZEFzc29j
aWF0ZWRGb3JtQ29udHJvbHMucmVtb3ZlKGZvcm1Db250cm9sRWxlbWVudCkpIHsKLSAgICAgICAg
aWYgKG1faW52YWxpZEFzc29jaWF0ZWRGb3JtQ29udHJvbHMuY29tcHV0ZXNFbXB0eSgpKQotICAg
ICAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotICAgIH0KKyAgICBpZiAoIW1f
aW52YWxpZEFzc29jaWF0ZWRGb3JtQ29udHJvbHMuY29udGFpbnMoZm9ybUNvbnRyb2xFbGVtZW50
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RkOjpvcHRpb25hbDxTdHlsZTo6UHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24+IHN0eWxlSW52YWxpZGF0aW9uOworICAgIGlmIChtX2ludmFs
aWRBc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNvbXB1dGVTaXplKCkgPT0gMSkKKyAgICAgICAgc3R5
bGVJbnZhbGlkYXRpb24uZW1wbGFjZSgqdGhpcywgc3RkOjppbml0aWFsaXplcl9saXN0PENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+IHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmFsaWQs
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ludmFsaWQgfSk7CisKKyAgICBtX2ludmFsaWRBc3Nv
Y2lhdGVkRm9ybUNvbnRyb2xzLnJlbW92ZShmb3JtQ29udHJvbEVsZW1lbnQpOwogfQogCiBib29s
IEhUTUxGb3JtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1
dGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA0
ZTZlODY2NGRmZjk3Y2Y2NTdmMzlhYzIzOGY4ZmMzMTJiOTlmYWJjLi44YTliYmM1MGNlOWY5OWRi
ZWZhMDdhMzQ1NDkxYzAxMmM4YjRmYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTM5MSw3ICszOTEsNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN0
ZXBNaXNtYXRjaCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zdGVwTWlzbWF0Y2go
dmFsdWUoKSk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0Citi
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmNvbXB1dGVWYWxpZGl0eSgpIGNvbnN0CiB7CiAgICAgU3Ry
aW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKICAgICBib29sIHNvbWVFcnJvciA9IG1faW5wdXRU
eXBlLT5pc0ludmFsaWQodmFsdWUpIHx8IHRvb1Nob3J0KHZhbHVlLCBDaGVja0RpcnR5RmxhZykg
fHwgdG9vTG9uZyh2YWx1ZSwgQ2hlY2tEaXJ0eUZsYWcpIHx8IGN1c3RvbUVycm9yKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDc1MDZjMjg2NDU0N2FmODVkZDg5
MmViZTAxMzA3MDFiMWI2Zjg1MDcuLmYzOWMxMjIxMjBmYTYwMDZiYmEzODJiNDAxZWMwZjc2MWVi
MDIwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC03Myw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHRvb0xvbmcoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IHR5cGVNaXNtYXRjaCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29u
c3QgZmluYWw7Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBjb21w
dXRlVmFsaWRpdHkoKSBjb25zdCBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2UoKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFJldHVybnMgdGhlIG1pbmlt
dW0gdmFsdWUgZm9yIHR5cGU9ZGF0ZSwgbnVtYmVyLCBvciByYW5nZS4gIERvbid0IGNhbGwgdGhp
cyBmb3Igb3RoZXIgdHlwZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmlkbAppbmRl
eCAzMDkzZDk1MGY4ZDhlZGRjZmMzNTlmMWNjZmUyZTA2MzliZGRmMmIxLi41MWZkYzExNTVkNjk0
N2EwMWRlMDEyYWZkNWI0YmJiYTU2NWVjYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5pZGwKQEAgLTM0LDUgKzM0LDUgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biAgICAgICAgIHN0ZXBNaXNtYXRjaDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAg
ICAgICAgIGJhZElucHV0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
Y3VzdG9tRXJyb3I7Ci0gICAgW0ltcGxlbWVudGVkQXM9aXNWYWxpZF0gcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICB2YWxpZDsKKyAgICBbSW1wbGVtZW50ZWRBcz1jb21wdXRlVmFs
aWRpdHldIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgdmFsaWQ7CiB9OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYTI0YzI3ZmFhZjU2MzUyYTdkOGQ1YjFkYzE3
Y2QwZGI4MzRjMGU2OC4uNTA1OGMzZjU0ZTEyNTQzZWM1Y2MyZWU2Y2E2MTJmZjQ5YjI0ZTdhOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDEt
MDMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFs6aGFzKCkg
cHNldWRvLWNsYXNzXSBTdHlsZSBpbnZhbGlkYXRpb24gZm9yIDp2YWxpZCBhbmQgOmludmFsaWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDgxNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy13aXRoLXBzZXVkby1j
bGFzcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy1wc2V1ZG8t
Y2xhc3MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2Vs
ZWN0b3JzL2ludmFsaWRhdGlvbi9oYXMtd2l0aC1wc2V1ZG8tY2xhc3MuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVj
dG9ycy9pbnZhbGlkYXRpb24vaGFzLXBzZXVkby1jbGFzcy5odG1sLgorCiAyMDIyLTAxLTAzICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFN1cHBvcnQgdGhl
ICJhbmltYXRpb24iIHNob3J0aGFuZCBwcm9wZXJ0eSBpbiB0aGUgY29tcHV0ZWQgc3R5bGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vaGFzLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
aW52YWxpZGF0aW9uL2hhcy1wc2V1ZG8tY2xhc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1YmExOGVlNTAwN2IyZjk1MjBhZDY4OThhMTU4MWNiYjkwOTE5YmU4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlk
YXRpb24vaGFzLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwz
MiArMCwwIEBACi0KLQotUEFTUyBCZWZvcmUgc2V0IGNoZWNrZWQgb24gY2hlY2tib3gsIHRlc3Rp
bmcgc3ViamVjdAotUEFTUyBTZXQgY2hlY2tlZCBvbiBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0
Ci1QQVNTIFVuc2V0IGNoZWNrZWQgb24gY2hlY2tib3gsIHRlc3Rpbmcgc3ViamVjdAotUEFTUyBT
ZXQgc2VsZWN0IG9uIG9wdGlvbgotUEFTUyBSZXNldCBzZWxlY3QKLVBBU1MgQmVmb3JlIHNldCBk
aXNhYmxlZCBvbiBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0Ci1QQVNTIFNldCBkaXNhYmxlZCBv
biBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0Ci1QQVNTIFVuc2V0IGRpc2FibGVkIG9uIGNoZWNr
Ym94LCB0ZXN0aW5nIHN1YmplY3QKLVBBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBjaGVja2Jv
eCwgdGVzdGluZyBzdWJqZWN0MwotUEFTUyBTZXQgZGlzYWJsZWQgb24gY2hlY2tib3gsIHRlc3Rp
bmcgc3ViamVjdDMKLVBBU1MgVW5zZXQgZGlzYWJsZWQgb24gY2hlY2tib3gsIHRlc3Rpbmcgc3Vi
amVjdDMKLVBBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRpb24sIHRlc3Rpbmcgc3ViamVj
dAotUEFTUyBTZXQgZGlzYWJsZWQgb24gb3B0aW9uLCB0ZXN0aW5nIHN1YmplY3QKLVBBU1MgVW5z
ZXQgZGlzYWJsZWQgb24gb3B0aW9uLCB0ZXN0aW5nIHN1YmplY3QKLVBBU1MgQmVmb3JlIHNldCBk
aXNhYmxlZCBvbiBvcHRpb24sIHRlc3Rpbmcgc3ViamVjdDMKLVBBU1MgU2V0IGRpc2FibGVkIG9u
IG9wdGlvbiwgdGVzdGluZyBzdWJqZWN0MwotUEFTUyBVbnNldCBkaXNhYmxlZCBvbiBvcHRpb24s
IHRlc3Rpbmcgc3ViamVjdDMKLVBBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRncm91cCwg
dGVzdGluZyBzdWJqZWN0Ci1QQVNTIFNldCBkaXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGluZyBz
dWJqZWN0Ci1QQVNTIFVuc2V0IGRpc2FibGVkIG9uIG9wdGdyb3VwLCB0ZXN0aW5nIHN1YmplY3QK
LVBBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGluZyBzdWJqZWN0Mgot
UEFTUyBTZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDIKLVBBU1MgVW5z
ZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDIKLVBBU1MgQmVmb3JlIHNl
dCBkaXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGluZyBzdWJqZWN0MwotUEFTUyBTZXQgZGlzYWJs
ZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDMKLVBBU1MgVW5zZXQgZGlzYWJsZWQgb24g
b3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDMKLVBBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBv
cHRncm91cCwgdGVzdGluZyBzdWJqZWN0NAotUEFTUyBTZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAs
IHRlc3Rpbmcgc3ViamVjdDQKLVBBU1MgVW5zZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rp
bmcgc3ViamVjdDQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9oYXMtcHNldWRvLWNsYXNz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9z
ZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy1wc2V1ZG8tY2xhc3MuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzhlYTM5MmZkMDQ2OWMwZTI2OGEwNTUwMGIxMDIyYWE0OWE4MWQy
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxp
ZGF0aW9uL2hhcy1wc2V1ZG8tY2xhc3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHRpdGxlPkNTUyBT
ZWxlY3RvciBJbnZhbGlkYXRpb246IDpoYXMoKSB3aXRoIHBzZXVkby1jbGFzc2VzPC90aXRsZT4K
LTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQW50dGkgS29pdmlzdG8iIGhyZWY9Im1haWx0bzph
bnR0aUBhcHBsZS5jb20iPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvc2VsZWN0b3JzLyNyZWxhdGlvbmFsIj4KLTxzdHlsZT4KLW1haW46aGFzKGlucHV0KSBkaXYg
eyBjb2xvcjogZ3JleSB9Ci1tYWluOmhhcygjY2hlY2tib3g6Y2hlY2tlZCkgPiAjc3ViamVjdCB7
IGNvbG9yOiByZWQgfQotbWFpbjpoYXMoI29wdGlvbjpjaGVja2VkKSA+ICNzdWJqZWN0IHsgY29s
b3I6IHJlZCB9Ci1tYWluOmhhcygjY2hlY2tib3g6ZGlzYWJsZWQpID4gI3N1YmplY3QgeyBjb2xv
cjogZ3JlZW4gfQotbWFpbjpoYXMoI29wdGlvbjpkaXNhYmxlZCkgPiA6aXMoI3N1YmplY3QsICNz
dWJqZWN0MikgeyBjb2xvcjogZ3JlZW4gfQotbWFpbjpoYXMoI29wdGdyb3VwOmRpc2FibGVkKSA+
ICNzdWJqZWN0IHsgY29sb3I6IGJsdWUgfQotbWFpbjpub3QoOmhhcygjY2hlY2tib3g6ZW5hYmxl
ZCkpID4gI3N1YmplY3QzIHsgY29sb3I6IGdyZWVuIH0KLW1haW46bm90KDpoYXMoI29wdGlvbjpl
bmFibGVkKSkgOmlzKCNzdWJqZWN0MywgI3N1YmplY3Q0KSB7IGNvbG9yOiBncmVlbiB9Ci1tYWlu
Om5vdCg6aGFzKCNvcHRncm91cDplbmFibGVkKSkgPiAjc3ViamVjdDMgeyBjb2xvcjogYmx1ZSB9
Ci08L3N0eWxlPgotCi08bWFpbiBpZD1tYWluPgotICAgIDxpbnB1dCB0eXBlPWNoZWNrYm94IGlk
PWNoZWNrYm94PjwvaW5wdXQ+Ci0gICAgPHNlbGVjdCBpZD1zZWxlY3Q+PG9wdGdyb3VwIGlkPW9w
dGdyb3VwPjxvcHRpb24+YTwvb3B0aW9uPjxvcHRpb24gaWQ9b3B0aW9uPmI8L29wdGlvbj48L29w
dGdyb3VwPjwvc2VsZWN0PgotICAgIDxkaXYgaWQ9c3ViamVjdD48L2Rpdj4KLSAgICA8ZGl2IGlk
PXN1YmplY3QyPjwvZGl2PgotICAgIDxkaXYgaWQ9c3ViamVjdDM+PC9kaXY+Ci0gICAgPGRpdiBp
ZD1zdWJqZWN0ND48L2Rpdj4KLTwvbWFpbj4KLQotPHNjcmlwdD4KLWNvbnN0IGdyZXkgPSAncmdi
KDEyOCwgMTI4LCAxMjgpJzsKLWNvbnN0IHJlZCA9ICdyZ2IoMjU1LCAwLCAwKSc7Ci1jb25zdCBn
cmVlbiA9ICdyZ2IoMCwgMTI4LCAwKSc7Ci1jb25zdCBibHVlID0gJ3JnYigwLCAwLCAyNTUpJzsK
LWNvbnN0IHllbGxvdyA9ICdyZ2IoMjU1LCAyNTUsIDApJzsKLWNvbnN0IHB1cnBsZSA9ICdyZ2Io
MTI4LCAwLCAxMjgpJzsKLWNvbnN0IHBpbmsgPSAncmdiKDI1NSwgMTkyLCAyMDMpJzsKLQotZnVu
Y3Rpb24gdGVzdENvbG9yKHRlc3RfbmFtZSwgc3ViamVjdF9lbGVtZW50LCBjb2xvcikgewotICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHls
ZShzdWJqZWN0X2VsZW1lbnQpLmNvbG9yLCBjb2xvcik7Ci0gICAgfSwgdGVzdF9uYW1lKTsKLX0K
LQotZnVuY3Rpb24gdGVzdFBzZXVkb0NsYXNzQ2hhbmdlKGVsZW1lbnQsIHByb3BlcnR5LCBzdWJq
ZWN0X2VsZW1lbnQsIGV4cGVjdGVkQ29sb3IpCi17Ci0gICAgdGVzdENvbG9yKGBCZWZvcmUgc2V0
ICR7cHJvcGVydHl9IG9uICR7ZWxlbWVudC5pZH0sIHRlc3RpbmcgJHtzdWJqZWN0X2VsZW1lbnQu
aWR9YCwgc3ViamVjdF9lbGVtZW50LCBncmV5KTsKLQotICAgIGVsZW1lbnRbcHJvcGVydHldID0g
dHJ1ZTsKLSAgICB0ZXN0Q29sb3IoYFNldCAke3Byb3BlcnR5fSBvbiAke2VsZW1lbnQuaWR9LCB0
ZXN0aW5nICR7c3ViamVjdF9lbGVtZW50LmlkfWAsIHN1YmplY3RfZWxlbWVudCwgZXhwZWN0ZWRD
b2xvcik7Ci0KLSAgICBlbGVtZW50W3Byb3BlcnR5XSA9IGZhbHNlOwotICAgIHRlc3RDb2xvcihg
VW5zZXQgJHtwcm9wZXJ0eX0gb24gJHtlbGVtZW50LmlkfSwgdGVzdGluZyAke3N1YmplY3RfZWxl
bWVudC5pZH1gLCBzdWJqZWN0X2VsZW1lbnQsIGdyZXkpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2Vs
ZWN0ZWRDaGFuZ2Uob3B0aW9uLCBzdWJqZWN0X2VsZW1lbnQsIGV4cGVjdGVkQ29sb3IpCi17Ci0g
ICAgY29uc3Qgb2xkT3B0aW9uID0gc2VsZWN0LnNlbGVjdGVkT3B0aW9uc1swXTsKLSAgICBvcHRp
b24uc2VsZWN0ZWQgPSB0cnVlOwotICAgIHRlc3RDb2xvcihgU2V0IHNlbGVjdCBvbiAke29wdGlv
bi5pZH1gLCBzdWJqZWN0X2VsZW1lbnQsIGV4cGVjdGVkQ29sb3IpOwotICAgIG9sZE9wdGlvbi5z
ZWxlY3RlZCA9IHRydWU7Ci0gICAgdGVzdENvbG9yKGBSZXNldCBzZWxlY3RgLCBzdWJqZWN0LCBn
cmV5KTsKLX0KLQotdGVzdFBzZXVkb0NsYXNzQ2hhbmdlKGNoZWNrYm94LCAiY2hlY2tlZCIsIHN1
YmplY3QsIHJlZCk7Ci10ZXN0U2VsZWN0ZWRDaGFuZ2Uob3B0aW9uLCBzdWJqZWN0LCByZWQpOwot
Ci10ZXN0UHNldWRvQ2xhc3NDaGFuZ2UoY2hlY2tib3gsICJkaXNhYmxlZCIsIHN1YmplY3QsIGdy
ZWVuKTsKLXRlc3RQc2V1ZG9DbGFzc0NoYW5nZShjaGVja2JveCwgImRpc2FibGVkIiwgc3ViamVj
dDMsIGdyZWVuKTsKLXRlc3RQc2V1ZG9DbGFzc0NoYW5nZShvcHRpb24sICJkaXNhYmxlZCIsIHN1
YmplY3QsIGdyZWVuKTsKLXRlc3RQc2V1ZG9DbGFzc0NoYW5nZShvcHRpb24sICJkaXNhYmxlZCIs
IHN1YmplY3QzLCBncmVlbik7Ci0KLXRlc3RQc2V1ZG9DbGFzc0NoYW5nZShvcHRncm91cCwgImRp
c2FibGVkIiwgc3ViamVjdCwgYmx1ZSk7Ci10ZXN0UHNldWRvQ2xhc3NDaGFuZ2Uob3B0Z3JvdXAs
ICJkaXNhYmxlZCIsIHN1YmplY3QyLCBncmVlbik7Ci10ZXN0UHNldWRvQ2xhc3NDaGFuZ2Uob3B0
Z3JvdXAsICJkaXNhYmxlZCIsIHN1YmplY3QzLCBibHVlKTsKLXRlc3RQc2V1ZG9DbGFzc0NoYW5n
ZShvcHRncm91cCwgImRpc2FibGVkIiwgc3ViamVjdDQsIGdyZWVuKTsKLQotPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy13aXRoLXBzZXVkby1jbGFzcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxl
Y3RvcnMvaW52YWxpZGF0aW9uL2hhcy13aXRoLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGU4YWIxNzg3ZTFiZWZkMTRjMjk2NjFkMDcxZmJiMWEyYTRmNGU3NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vaGFzLXdpdGgtcHNldWRvLWNsYXNzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQ0IEBACisKKworUEFTUyBCZWZvcmUgc2V0IGNoZWNrZWQgb24gY2hl
Y2tib3gsIHRlc3Rpbmcgc3ViamVjdAorUEFTUyBTZXQgY2hlY2tlZCBvbiBjaGVja2JveCwgdGVz
dGluZyBzdWJqZWN0CitQQVNTIFVuc2V0IGNoZWNrZWQgb24gY2hlY2tib3gsIHRlc3Rpbmcgc3Vi
amVjdAorUEFTUyBTZXQgc2VsZWN0IG9uIG9wdGlvbgorUEFTUyBSZXNldCBzZWxlY3QKK1BBU1Mg
QmVmb3JlIHNldCBkaXNhYmxlZCBvbiBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0CitQQVNTIFNl
dCBkaXNhYmxlZCBvbiBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0CitQQVNTIFVuc2V0IGRpc2Fi
bGVkIG9uIGNoZWNrYm94LCB0ZXN0aW5nIHN1YmplY3QKK1BBU1MgQmVmb3JlIHNldCBkaXNhYmxl
ZCBvbiBjaGVja2JveCwgdGVzdGluZyBzdWJqZWN0MworUEFTUyBTZXQgZGlzYWJsZWQgb24gY2hl
Y2tib3gsIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgVW5zZXQgZGlzYWJsZWQgb24gY2hlY2tib3gs
IHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRpb24sIHRl
c3Rpbmcgc3ViamVjdAorUEFTUyBTZXQgZGlzYWJsZWQgb24gb3B0aW9uLCB0ZXN0aW5nIHN1Ympl
Y3QKK1BBU1MgVW5zZXQgZGlzYWJsZWQgb24gb3B0aW9uLCB0ZXN0aW5nIHN1YmplY3QKK1BBU1Mg
QmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRpb24sIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgU2V0
IGRpc2FibGVkIG9uIG9wdGlvbiwgdGVzdGluZyBzdWJqZWN0MworUEFTUyBVbnNldCBkaXNhYmxl
ZCBvbiBvcHRpb24sIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBv
biBvcHRncm91cCwgdGVzdGluZyBzdWJqZWN0CitQQVNTIFNldCBkaXNhYmxlZCBvbiBvcHRncm91
cCwgdGVzdGluZyBzdWJqZWN0CitQQVNTIFVuc2V0IGRpc2FibGVkIG9uIG9wdGdyb3VwLCB0ZXN0
aW5nIHN1YmplY3QKK1BBU1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGlu
ZyBzdWJqZWN0MgorUEFTUyBTZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVj
dDIKK1BBU1MgVW5zZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDIKK1BB
U1MgQmVmb3JlIHNldCBkaXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGluZyBzdWJqZWN0MworUEFT
UyBTZXQgZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgVW5zZXQg
ZGlzYWJsZWQgb24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgQmVmb3JlIHNldCBk
aXNhYmxlZCBvbiBvcHRncm91cCwgdGVzdGluZyBzdWJqZWN0NAorUEFTUyBTZXQgZGlzYWJsZWQg
b24gb3B0Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDQKK1BBU1MgVW5zZXQgZGlzYWJsZWQgb24gb3B0
Z3JvdXAsIHRlc3Rpbmcgc3ViamVjdDQKK1BBU1MgQmVmb3JlIHNldHRpbmcgdmFsdWUgb2YgdGV4
dF9pbnB1dCwgdGVzdGluZyBzdWJqZWN0CitQQVNTIFNldCB2YWx1ZSBvZiB0ZXh0X2lucHV0LCB0
ZXN0aW5nIHN1YmplY3QKK1BBU1MgQ2xlYXIgdmFsdWUgb2YgdGV4dF9pbnB1dCwgdGVzdGluZyBz
dWJqZWN0CitQQVNTIEJlZm9yZSBzZXR0aW5nIHZhbHVlIG9mIHRleHRfaW5wdXQsIHRlc3Rpbmcg
c3ViamVjdDIKK1BBU1MgU2V0IHZhbHVlIG9mIHRleHRfaW5wdXQsIHRlc3Rpbmcgc3ViamVjdDIK
K1BBU1MgQ2xlYXIgdmFsdWUgb2YgdGV4dF9pbnB1dCwgdGVzdGluZyBzdWJqZWN0MgorUEFTUyBC
ZWZvcmUgc2V0dGluZyB2YWx1ZSBvZiB0ZXh0X2lucHV0LCB0ZXN0aW5nIHN1YmplY3QzCitQQVNT
IFNldCB2YWx1ZSBvZiB0ZXh0X2lucHV0LCB0ZXN0aW5nIHN1YmplY3QzCitQQVNTIENsZWFyIHZh
bHVlIG9mIHRleHRfaW5wdXQsIHRlc3Rpbmcgc3ViamVjdDMKK1BBU1MgQmVmb3JlIHNldHRpbmcg
dmFsdWUgb2YgdGV4dF9pbnB1dCwgdGVzdGluZyBzdWJqZWN0NAorUEFTUyBTZXQgdmFsdWUgb2Yg
dGV4dF9pbnB1dCwgdGVzdGluZyBzdWJqZWN0NAorUEFTUyBDbGVhciB2YWx1ZSBvZiB0ZXh0X2lu
cHV0LCB0ZXN0aW5nIHN1YmplY3Q0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24vaGFzLXdp
dGgtcHNldWRvLWNsYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy13aXRoLXBzZXVkby1jbGFz
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRkYzRjMWE2YTI2ZTZiYmJhZjI5OWE1NWIyOGE0NWU1NDJjZTY3
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52YWxpZGF0aW9uL2hhcy13aXRoLXBzZXVkby1jbGFz
cy5odG1sCkBAIC0wLDAgKzEsOTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPkNTUyBTZWxlY3RvciBJbnZhbGlkYXRpb246IDpoYXMoKSB3aXRoIHBz
ZXVkby1jbGFzc2VzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQW50dGkgS29p
dmlzdG8iIGhyZWY9Im1haWx0bzphbnR0aUBhcHBsZS5jb20iPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLyNyZWxhdGlvbmFsIj4KKzxzdHlsZT4K
K21haW46aGFzKGlucHV0KSBkaXYgeyBjb2xvcjogZ3JleSB9CittYWluOmhhcygjY2hlY2tib3g6
Y2hlY2tlZCkgPiAjc3ViamVjdCB7IGNvbG9yOiByZWQgfQorbWFpbjpoYXMoI29wdGlvbjpjaGVj
a2VkKSA+ICNzdWJqZWN0IHsgY29sb3I6IHJlZCB9CittYWluOmhhcygjY2hlY2tib3g6ZGlzYWJs
ZWQpID4gI3N1YmplY3QgeyBjb2xvcjogZ3JlZW4gfQorbWFpbjpoYXMoI29wdGlvbjpkaXNhYmxl
ZCkgPiA6aXMoI3N1YmplY3QsICNzdWJqZWN0MikgeyBjb2xvcjogZ3JlZW4gfQorbWFpbjpoYXMo
I29wdGdyb3VwOmRpc2FibGVkKSA+ICNzdWJqZWN0IHsgY29sb3I6IGJsdWUgfQorbWFpbjpub3Qo
OmhhcygjY2hlY2tib3g6ZW5hYmxlZCkpID4gI3N1YmplY3QzIHsgY29sb3I6IGdyZWVuIH0KK21h
aW46bm90KDpoYXMoI29wdGlvbjplbmFibGVkKSkgOmlzKCNzdWJqZWN0MywgI3N1YmplY3Q0KSB7
IGNvbG9yOiBncmVlbiB9CittYWluOm5vdCg6aGFzKCNvcHRncm91cDplbmFibGVkKSkgPiAjc3Vi
amVjdDMgeyBjb2xvcjogYmx1ZSB9CittYWluOmhhcygjdGV4dF9pbnB1dDp2YWxpZCkgPiAjc3Vi
amVjdCB7IGNvbG9yOiB5ZWxsb3cgfQorbWFpbjpub3QoOmhhcygjdGV4dF9pbnB1dDppbnZhbGlk
KSkgPiAjc3ViamVjdDIgeyBjb2xvcjogeWVsbG93IH0KK21haW46aGFzKCNmb3JtOnZhbGlkKSA+
ICNzdWJqZWN0MyB7IGNvbG9yOiB5ZWxsb3cgfQorbWFpbjpub3QoOmhhcygjZm9ybTppbnZhbGlk
KSkgPiAjc3ViamVjdDQgeyBjb2xvcjogeWVsbG93IH0KKzwvc3R5bGU+CisKKzxtYWluIGlkPW1h
aW4+CisgICAgPGZvcm0gaWQ9Zm9ybT4KKyAgICAgICAgPGlucHV0IHR5cGU9Y2hlY2tib3ggaWQ9
Y2hlY2tib3g+PC9pbnB1dD4KKyAgICAgICAgPHNlbGVjdCBpZD1zZWxlY3Q+PG9wdGdyb3VwIGlk
PW9wdGdyb3VwPjxvcHRpb24+YTwvb3B0aW9uPjxvcHRpb24gaWQ9b3B0aW9uPmI8L29wdGlvbj48
L29wdGdyb3VwPjwvc2VsZWN0PgorICAgICAgICA8aW5wdXQgaWQ9dGV4dF9pbnB1dCB0eXBlPXRl
eHQgcmVxdWlyZWQ+PC9pbnB1dD4KKyAgICA8L2Zvcm0+CisgICAgPGRpdiBpZD1zdWJqZWN0Pjwv
ZGl2PgorICAgIDxkaXYgaWQ9c3ViamVjdDI+PC9kaXY+CisgICAgPGRpdiBpZD1zdWJqZWN0Mz48
L2Rpdj4KKyAgICA8ZGl2IGlkPXN1YmplY3Q0PjwvZGl2PgorPC9tYWluPgorCis8c2NyaXB0Pgor
Y29uc3QgZ3JleSA9ICdyZ2IoMTI4LCAxMjgsIDEyOCknOworY29uc3QgcmVkID0gJ3JnYigyNTUs
IDAsIDApJzsKK2NvbnN0IGdyZWVuID0gJ3JnYigwLCAxMjgsIDApJzsKK2NvbnN0IGJsdWUgPSAn
cmdiKDAsIDAsIDI1NSknOworY29uc3QgeWVsbG93ID0gJ3JnYigyNTUsIDI1NSwgMCknOworY29u
c3QgcHVycGxlID0gJ3JnYigxMjgsIDAsIDEyOCknOworY29uc3QgcGluayA9ICdyZ2IoMjU1LCAx
OTIsIDIwMyknOworCitmdW5jdGlvbiB0ZXN0Q29sb3IodGVzdF9uYW1lLCBzdWJqZWN0X2VsZW1l
bnQsIGNvbG9yKSB7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhnZXRDb21wdXRlZFN0eWxlKHN1YmplY3RfZWxlbWVudCkuY29sb3IsIGNvbG9yKTsKKyAgICB9
LCB0ZXN0X25hbWUpOworfQorCitmdW5jdGlvbiB0ZXN0UHNldWRvQ2xhc3NDaGFuZ2UoZWxlbWVu
dCwgcHJvcGVydHksIHN1YmplY3RfZWxlbWVudCwgZXhwZWN0ZWRDb2xvcikKK3sKKyAgICB0ZXN0
Q29sb3IoYEJlZm9yZSBzZXQgJHtwcm9wZXJ0eX0gb24gJHtlbGVtZW50LmlkfSwgdGVzdGluZyAk
e3N1YmplY3RfZWxlbWVudC5pZH1gLCBzdWJqZWN0X2VsZW1lbnQsIGdyZXkpOworCisgICAgZWxl
bWVudFtwcm9wZXJ0eV0gPSB0cnVlOworICAgIHRlc3RDb2xvcihgU2V0ICR7cHJvcGVydHl9IG9u
ICR7ZWxlbWVudC5pZH0sIHRlc3RpbmcgJHtzdWJqZWN0X2VsZW1lbnQuaWR9YCwgc3ViamVjdF9l
bGVtZW50LCBleHBlY3RlZENvbG9yKTsKKworICAgIGVsZW1lbnRbcHJvcGVydHldID0gZmFsc2U7
CisgICAgdGVzdENvbG9yKGBVbnNldCAke3Byb3BlcnR5fSBvbiAke2VsZW1lbnQuaWR9LCB0ZXN0
aW5nICR7c3ViamVjdF9lbGVtZW50LmlkfWAsIHN1YmplY3RfZWxlbWVudCwgZ3JleSk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RTZWxlY3RlZENoYW5nZShvcHRpb24sIHN1YmplY3RfZWxlbWVudCwgZXhw
ZWN0ZWRDb2xvcikKK3sKKyAgICBjb25zdCBvbGRPcHRpb24gPSBzZWxlY3Quc2VsZWN0ZWRPcHRp
b25zWzBdOworICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7CisgICAgdGVzdENvbG9yKGBTZXQg
c2VsZWN0IG9uICR7b3B0aW9uLmlkfWAsIHN1YmplY3RfZWxlbWVudCwgZXhwZWN0ZWRDb2xvcik7
CisgICAgb2xkT3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKKyAgICB0ZXN0Q29sb3IoYFJlc2V0IHNl
bGVjdGAsIHN1YmplY3QsIGdyZXkpOworfQorCitmdW5jdGlvbiB0ZXN0VmFsdWVDaGFuZ2UoaW5w
dXQsIHN1YmplY3RfZWxlbWVudCwgZXhwZWN0ZWRDb2xvcikKK3sKKyAgICB0ZXN0Q29sb3IoYEJl
Zm9yZSBzZXR0aW5nIHZhbHVlIG9mICR7aW5wdXQuaWR9LCB0ZXN0aW5nICR7c3ViamVjdF9lbGVt
ZW50LmlkfWAsIHN1YmplY3RfZWxlbWVudCwgZ3JleSk7CisKKyAgICBpbnB1dC52YWx1ZSA9ICJ2
YWx1ZSI7CisgICAgdGVzdENvbG9yKGBTZXQgdmFsdWUgb2YgJHtpbnB1dC5pZH0sIHRlc3Rpbmcg
JHtzdWJqZWN0X2VsZW1lbnQuaWR9YCwgc3ViamVjdF9lbGVtZW50LCBleHBlY3RlZENvbG9yKTsK
KworICAgIGlucHV0LnZhbHVlID0gIiI7CisgICAgdGVzdENvbG9yKGBDbGVhciB2YWx1ZSBvZiAk
e2lucHV0LmlkfSwgdGVzdGluZyAke3N1YmplY3RfZWxlbWVudC5pZH1gLCBzdWJqZWN0X2VsZW1l
bnQsIGdyZXkpOworfQorCit0ZXN0UHNldWRvQ2xhc3NDaGFuZ2UoY2hlY2tib3gsICJjaGVja2Vk
Iiwgc3ViamVjdCwgcmVkKTsKK3Rlc3RTZWxlY3RlZENoYW5nZShvcHRpb24sIHN1YmplY3QsIHJl
ZCk7CisKK3Rlc3RQc2V1ZG9DbGFzc0NoYW5nZShjaGVja2JveCwgImRpc2FibGVkIiwgc3ViamVj
dCwgZ3JlZW4pOwordGVzdFBzZXVkb0NsYXNzQ2hhbmdlKGNoZWNrYm94LCAiZGlzYWJsZWQiLCBz
dWJqZWN0MywgZ3JlZW4pOwordGVzdFBzZXVkb0NsYXNzQ2hhbmdlKG9wdGlvbiwgImRpc2FibGVk
Iiwgc3ViamVjdCwgZ3JlZW4pOwordGVzdFBzZXVkb0NsYXNzQ2hhbmdlKG9wdGlvbiwgImRpc2Fi
bGVkIiwgc3ViamVjdDMsIGdyZWVuKTsKKwordGVzdFBzZXVkb0NsYXNzQ2hhbmdlKG9wdGdyb3Vw
LCAiZGlzYWJsZWQiLCBzdWJqZWN0LCBibHVlKTsKK3Rlc3RQc2V1ZG9DbGFzc0NoYW5nZShvcHRn
cm91cCwgImRpc2FibGVkIiwgc3ViamVjdDIsIGdyZWVuKTsKK3Rlc3RQc2V1ZG9DbGFzc0NoYW5n
ZShvcHRncm91cCwgImRpc2FibGVkIiwgc3ViamVjdDMsIGJsdWUpOwordGVzdFBzZXVkb0NsYXNz
Q2hhbmdlKG9wdGdyb3VwLCAiZGlzYWJsZWQiLCBzdWJqZWN0NCwgZ3JlZW4pOworCit0ZXN0VmFs
dWVDaGFuZ2UodGV4dF9pbnB1dCwgc3ViamVjdCwgeWVsbG93KTsKK3Rlc3RWYWx1ZUNoYW5nZSh0
ZXh0X2lucHV0LCBzdWJqZWN0MiwgeWVsbG93KTsKK3Rlc3RWYWx1ZUNoYW5nZSh0ZXh0X2lucHV0
LCBzdWJqZWN0MywgeWVsbG93KTsKK3Rlc3RWYWx1ZUNoYW5nZSh0ZXh0X2lucHV0LCBzdWJqZWN0
NCwgeWVsbG93KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>