<?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>224034</bug_id>
          
          <creation_ts>2021-03-31 18:55:27 -0700</creation_ts>
          <short_desc>[iPadOS] unable to reorder tabs on `*.mybinder.org`</short_desc>
          <delta_ts>2021-04-02 12:32:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1745911</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-31 18:55:27 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745912</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-31 18:55:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/51770057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745914</commentid>
    <comment_count>2</comment_count>
      <attachid>424861</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-31 18:58:57 -0700</bug_when>
    <thetext>Created attachment 424861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746338</commentid>
    <comment_count>3</comment_count>
      <attachid>424967</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-01 17:32:02 -0700</bug_when>
    <thetext>Created attachment 424967
Patch

the previous patch broke other areas of the site (e.g. nested menus in the menubar) so adjust `Quirks::shouldDispatchSimulatedMouseEvents` to take an `EventTarget` so that it can be conditionalized beyond the top document URL host</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746553</commentid>
    <comment_count>4</comment_count>
      <attachid>424967</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-04-02 10:03:55 -0700</bug_when>
    <thetext>Comment on attachment 424967
Patch

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

&gt; Source/WebCore/dom/EventNames.h:409
&gt; +    if (is&lt;Node&gt;(target) &amp;&amp; downcast&lt;Node&gt;(target).document().quirks().shouldDispatchSimulatedMouseEvents(&amp;target)) {

What if the target has been disconnected from the document? Do we need to check &apos;isConnected&apos;?

&gt; Source/WebCore/page/Quirks.cpp:426
&gt; +            return ShouldDispatchSimulatedMouseEvents::DependingOnTargetFor_mybinder_org;

Well, at least we have a way to address others like this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746554</commentid>
    <comment_count>5</comment_count>
      <attachid>424967</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-04-02 10:08:18 -0700</bug_when>
    <thetext>Comment on attachment 424967
Patch

r=me, but maybe check with Wenson whether we need to see if the Node is actually connected to the document for these touch things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746596</commentid>
    <comment_count>6</comment_count>
      <attachid>424967</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-02 12:10:50 -0700</bug_when>
    <thetext>Comment on attachment 424967
Patch

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

&gt;&gt; Source/WebCore/dom/EventNames.h:409
&gt;&gt; +    if (is&lt;Node&gt;(target) &amp;&amp; downcast&lt;Node&gt;(target).document().quirks().shouldDispatchSimulatedMouseEvents(&amp;target)) {
&gt; 
&gt; What if the target has been disconnected from the document? Do we need to check &apos;isConnected&apos;?

I think it&apos;s fine to preserve existing behavior (and not check for whether the node is connected).

I&apos;m also not sure how that would work if the page adds an event listener to a disconnected node and then adds the node to the DOM..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746603</commentid>
    <comment_count>7</comment_count>
      <attachid>424967</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-04-02 12:18:45 -0700</bug_when>
    <thetext>Comment on attachment 424967
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/EventNames.h:409
&gt;&gt;&gt; +    if (is&lt;Node&gt;(target) &amp;&amp; downcast&lt;Node&gt;(target).document().quirks().shouldDispatchSimulatedMouseEvents(&amp;target)) {
&gt;&gt; 
&gt;&gt; What if the target has been disconnected from the document? Do we need to check &apos;isConnected&apos;?
&gt; 
&gt; I think it&apos;s fine to preserve existing behavior (and not check for whether the node is connected).
&gt; 
&gt; I&apos;m also not sure how that would work if the page adds an event listener to a disconnected node and then adds the node to the DOM..

Yeah as @Wenson Hsieh said (he hit submit before I did) this patch doesn&apos;t change this behavior, it just moves where `document()` is called.  Also, all `Node` should always have a `document()` even if they&apos;re not connected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746608</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-02 12:32:11 -0700</bug_when>
    <thetext>Committed r275431: &lt;https://commits.webkit.org/r275431&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424967.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424861</attachid>
            <date>2021-03-31 18:58:57 -0700</date>
            <delta_ts>2021-04-01 17:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224034-20210331195856.patch</filename>
            <type>text/plain</type>
            <size>1223</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZmY0ZjE3NTZhNWNlYTg1MTdiN2E1ZDI1ZmViOWM2NDg1MTYxY2FiLi5j
YmE1ZGQzM2EyNzRjYTY0YjcyZjczNWEyMDY5MzM2ZmU1ODk0NDIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjEtMDMtMzEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtpUGFkT1NdIHVuYWJsZSB0byByZW9yZGVyIHRhYnMgb24gYCoubXliaW5k
ZXIub3JnYAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI0MDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTc3MDA1Nz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50
cyBjb25zdCk6CisKIDIwMjEtMDMtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgT2NjYXNpb25hbCBkZWJ1ZyBhc3NlcnQgaW4gR2VuZXJpY1Rhc2tRdWV1ZTo6
fkdlbmVyaWNUYXNrUXVldWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAwNzEzNjI2OGQ4OWY3
YjlkMDE4NjIwYjAyMTA1ZDc5MWQyZTEwMDk1Li40MjMyMmVjNDNhNzEzYjQzYjJkNzY2YzNlNmRh
MjRkNjVmYzFmZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC00MjIsNiArNDIyLDggQEAg
Ym9vbCBRdWlya3M6OnNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHMoKSBjb25zdAog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisgICAgICAgIGlmIChob3N0ID09ICJteWJpbmRlci5vcmciIHx8IGhvc3QuZW5k
c1dpdGgoIi5teWJpbmRlci5vcmciKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424967</attachid>
            <date>2021-04-01 17:32:02 -0700</date>
            <delta_ts>2021-04-02 12:32:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224034-20210401183201.patch</filename>
            <type>text/plain</type>
            <size>16971</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3OTJhZDBhODY4N2ZmNmRiZmM4NWI1YTYxOWQyMjM1Y2U5NDU4ODAwLi45
ZWQxZmQ1YTZjN2I4OGIyNmRjMjA1MWI5ODAyZTc1ZGQyZGMzNzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMjEtMDQtMDEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtpUGFkT1NdIHVuYWJsZSB0byByZW9yZGVyIHRhYnMgb24gYCoubXliaW5k
ZXIub3JnYAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI0MDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTc3MDA1Nz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvUXVpcmtzLmg6CisgICAg
ICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpzaG91bGRE
aXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1
aXJrczo6c2hvdWxkRGlzcGF0Y2hlZFNpbXVsYXRlZE1vdXNlRXZlbnRzQXNzdW1lRGVmYXVsdFBy
ZXZlbnRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnNpbXVsYXRlZE1vdXNl
RXZlbnRUeXBlRm9yVGFyZ2V0IGNvbnN0KToKKyAgICAgICAgTW9kaWZ5IGBRdWlya3M6OnNob3Vs
ZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHNgIHRvIGFjY2VwdCBhbiBgRXZlbnRUYXJnZXRg
IHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGxpbWl0IGRpc3BhdGNoaW5nIHRvdWNoIGV2ZW50cyBh
cyBtb3VzZSBldmVudHMgb24gYCoubXliaW5kZXIub3JnYCB0byBvbmx5IHRoZSB0YWIgYmFyLgor
CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TmFt
ZXM6OmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlIGNvbnN0KToKKyAgICAgICAgKiBkb20vTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6dHJ5QWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICBQYXNzIGluIHRoZSBgRXZl
bnRUYXJnZXRgIHdoZW4gY2FsbGluZyBgUXVpcmtzOjpzaG91bGREaXNwYXRjaFNpbXVsYXRlZE1v
dXNlRXZlbnRzYC4KKwogMjAyMS0wNC0wMSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+
CiAKICAgICAgICAgTWFrZSBGb250Q2FjaGUgY29uc3RydWN0YWJsZSBhbmQgc2FmZSB0byB1c2Ug
b2ZmIHRoZSBtYWluIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggMmM2ODA3ZGNh
NjU3ZjY1MDJiMjBmNDFjNWFkYTJlZTYxYjNmMmU2MC4uZWNkYzg4NzlhMzk0NTE5Y2RkNTExMzcz
OWJjMTUyZjIwN2U1YzIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0zNjgsNyArMzY4
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCBjaG9vc2Ugb25lIHRlcm0gYW5kIHN0aWNr
IHRvIGl0LgogICAgIGJvb2wgaXNXaGVlbEV2ZW50VHlwZShjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUpIGNvbnN0OwogICAgIGJvb2wgaXNHZXN0dXJlRXZlbnRUeXBlKGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50VHlwZSkgY29uc3Q7Ci0gICAgYm9vbCBpc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSkgY29uc3Q7CisgICAg
Ym9vbCBpc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50VGFyZ2V0JikgY29uc3Q7CiAgICAgYm9vbCBpc1RvdWNoU2Nyb2xsQmxvY2tpbmdFdmVu
dFR5cGUoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlKSBjb25zdDsKICNpZiBFTkFCTEUoR0FN
RVBBRCkKICAgICBib29sIGlzR2FtZXBhZEV2ZW50VHlwZShjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUpIGNvbnN0OwpAQCAtNDAzLDE1ICs0MDMsMTUgQEAgaW5saW5lIGJvb2wgRXZlbnROYW1l
czo6aXNUb3VjaFNjcm9sbEJsb2NraW5nRXZlbnRUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHkKICAgICAgICAgfHwgZXZlbnRUeXBlID09IHRvdWNobW92ZUV2ZW50OwogfQogCi1pbmxpbmUg
Ym9vbCBFdmVudE5hbWVzOjppc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSkgY29uc3QKK2lubGluZSBib29s
IEV2ZW50TmFtZXM6OmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgRXZlbnRUYXJnZXQmIHRhcmdldCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQotICAgIGlmIChkb2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNwYXRjaFNpbXVsYXRl
ZE1vdXNlRXZlbnRzKCkpIHsKKyAgICBpZiAoaXM8Tm9kZT4odGFyZ2V0KSAmJiBkb3duY2FzdDxO
b2RlPih0YXJnZXQpLmRvY3VtZW50KCkucXVpcmtzKCkuc2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRN
b3VzZUV2ZW50cygmdGFyZ2V0KSkgewogICAgICAgICBpZiAoZXZlbnRUeXBlID09IG1vdXNlZG93
bkV2ZW50IHx8IGV2ZW50VHlwZSA9PSBtb3VzZW1vdmVFdmVudCB8fCBldmVudFR5cGUgPT0gbW91
c2V1cEV2ZW50KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCi0gICAg
VU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKICAgICBy
ZXR1cm4gZXZlbnRUeXBlID09IHRvdWNoc3RhcnRFdmVudAogICAgICAgICB8fCBldmVudFR5cGUg
PT0gdG91Y2htb3ZlRXZlbnQKICAgICAgICAgfHwgZXZlbnRUeXBlID09IHRvdWNoZW5kRXZlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCBjZDM4ZmY2MGY0YmZiZTdkZjZmMzg1OWQxYmIwNDg5YTlkNDMz
MTIxLi5kNWU1MGMwMGMxMzBjNTdmOGY3NTM2NmRiMDg0MjVhMmNkZWIxZjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCkBAIC0yMDgyLDcgKzIwODIsNyBAQCB2b2lkIE5vZGU6Om1vdmVOb2RlVG9OZXdEb2N1
bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkKIAogICAg
ICAgICB1bnNpZ25lZCBudW1Ub3VjaEV2ZW50TGlzdGVuZXJzID0gMDsKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQotICAgICAgICBpZiAobmV3RG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkRGlzcGF0
Y2hTaW11bGF0ZWRNb3VzZUV2ZW50cygpKSB7CisgICAgICAgIGlmIChuZXdEb2N1bWVudC5xdWly
a3MoKS5zaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKHRoaXMpKSB7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIG5hbWUgOiBldmVudE5hbWVzKCkuZXh0ZW5kZWRUb3VjaFJlbGF0ZWRF
dmVudE5hbWVzKCkpCiAgICAgICAgICAgICAgICAgbnVtVG91Y2hFdmVudExpc3RlbmVycyArPSBl
dmVudExpc3RlbmVycyhuYW1lKS5zaXplKCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0yMTM2LDcg
KzIxMzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0
YXJnZXROb2RlLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudAogICAgIHRhcmdldE5vZGUtPmRvY3Vt
ZW50KCkuYWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoZXZlbnRUeXBlKTsKICAgICBpZiAoZXZlbnRO
YW1lcygpLmlzV2hlZWxFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+
ZG9jdW1lbnQoKS5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigqdGFyZ2V0Tm9kZSk7Ci0gICAgZWxz
ZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKHRhcmdldE5vZGUtPmRv
Y3VtZW50KCksIGV2ZW50VHlwZSkpCisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hS
ZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSwgKnRhcmdldE5vZGUpKQogICAgICAgICB0YXJnZXRO
b2RlLT5kb2N1bWVudCgpLmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCp0YXJnZXROb2RlKTsKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTQ2LDcgKzIxNDYsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9t
U3RyaW5nJiBldmVudAogICAgIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYg
KGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZSh0YXJnZXROb2RlLT5kb2N1bWVu
dCgpLCBldmVudFR5cGUpKQorICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVu
dFR5cGUoZXZlbnRUeXBlLCAqdGFyZ2V0Tm9kZSkpCiAgICAgICAgIHRhcmdldE5vZGUtPmRvY3Vt
ZW50KCkuYWRkVG91Y2hFdmVudExpc3RlbmVyKCp0YXJnZXROb2RlKTsKICNlbmRpZgogI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTczLDcgKzIxNzMsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBB
dG9tU3RyaW5nJiBldgogICAgIC8vIGxpc3RlbmVycyBmb3IgZWFjaCB0eXBlLCBub3QganVzdCBh
IGJvb2wgLSBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODYx
CiAgICAgaWYgKGV2ZW50TmFtZXMoKS5pc1doZWVsRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKnRh
cmdldE5vZGUpOwotICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50
VHlwZSh0YXJnZXROb2RlLT5kb2N1bWVudCgpLCBldmVudFR5cGUpKQorICAgIGVsc2UgaWYgKGV2
ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVudFR5cGUsICp0YXJnZXROb2Rl
KSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5kaWRSZW1vdmVUb3VjaEV2ZW50SGFu
ZGxlcigqdGFyZ2V0Tm9kZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjE4Myw3
ICsyMTgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIoTm9k
ZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbVN0cmluZyYgZXYKICAgICB9CiAKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVudFR5
cGUodGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSwgZXZlbnRUeXBlKSkKKyAgICBpZiAoZXZlbnROYW1l
cygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSwgKnRhcmdldE5vZGUpKQogICAg
ICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLnJlbW92ZVRvdWNoRXZlbnRMaXN0ZW5lcigqdGFy
Z2V0Tm9kZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjQ3
MSw3ICsyNDcxLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVu
dCkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGVyKHN0YXJ0Tm9kZSwgZG93bmNhc3Q8V2hlZWxFdmVudD4oZXZlbnQpKTsKICAgICAg
ICAgfQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgfSBlbHNlIGlmIChpczxUb3VjaEV2ZW50PihldmVudCkgJiYgZXZlbnROYW1lcygpLmlzVG91
Y2hSZWxhdGVkRXZlbnRUeXBlKGRvY3VtZW50KCksIGV2ZW50VHlwZSkpIHsKKyAgICB9IGVsc2Ug
aWYgKGlzPFRvdWNoRXZlbnQ+KGV2ZW50KSAmJiBldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRF
dmVudFR5cGUoZXZlbnRUeXBlLCAqdGhpcykpIHsKICAgICAgICAgLy8gQ2FwdHVyZSB0aGUgdGFy
Z2V0IG5vZGUncyB2aXNpYmlsaXR5IHN0YXRlIGJlZm9yZSBkaXNwYXRjaGluZyB0b3VjaFN0YXJ0
LgogICAgICAgICBpZiAoaXM8RWxlbWVudD4oKnRoaXMpICYmIGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkudG91Y2hzdGFydEV2ZW50KSB7CiAgICAgICAgICAgICBhdXRvJiBjb250ZW50Q2hhbmdl
T2JzZXJ2ZXIgPSBkb2N1bWVudCgpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpOyAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAwNjI5MzgyYjBkOGNiMWIwN2JhZmRiNDU5Zjc1NmM5MjA4
ODczZjlmLi40YWVlZWUxMGViMGRkZTQyZDhmNmZhZTRkOGQyZmZkNjIxZjA1MjgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xOTUwLDcgKzE5NTAsNyBAQCBib29sIERPTVdpbmRv
dzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVu
dExpc3RlbmVyPgogICAgICAgICBkb2N1bWVudC0+YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoZXZl
bnRUeXBlKTsKICAgICAgICAgaWYgKGV2ZW50TmFtZXMoKS5pc1doZWVsRXZlbnRUeXBlKGV2ZW50
VHlwZSkpCiAgICAgICAgICAgICBkb2N1bWVudC0+ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoKmRv
Y3VtZW50KTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZl
bnRUeXBlKCpkb2N1bWVudCwgZXZlbnRUeXBlKSkKKyAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1l
cygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSwgKmRvY3VtZW50KSkKICAgICAg
ICAgICAgIGRvY3VtZW50LT5kaWRBZGRUb3VjaEV2ZW50SGFuZGxlcigqZG9jdW1lbnQpOwogICAg
ICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCkKICAg
ICAgICAgICAgIGRpZEFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKCp0aGlzKTsKQEAgLTE5NjUsNyAr
MTk2NSw3IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+CiAgICAgICAgIGluY3JlbWVudFNjcm9s
bEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKICNlbmRpZgogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQotICAgIGVsc2UgaWYgKGRvY3VtZW50ICYmIGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRl
ZEV2ZW50VHlwZSgqZG9jdW1lbnQsIGV2ZW50VHlwZSkpCisgICAgZWxzZSBpZiAoZG9jdW1lbnQg
JiYgZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSwgKmRvY3Vt
ZW50KSkKICAgICAgICAgKyttX3RvdWNoQW5kR2VzdHVyZUV2ZW50TGlzdGVuZXJDb3VudDsKICNl
bmRpZgogI2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCkBAIC0yMTkzLDcgKzIxOTMsNyBA
QCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXImCiAgICAgaWYgKGRvY3VtZW50KSB7CiAgICAgICAgIGlm
IChldmVudE5hbWVzKCkuaXNXaGVlbEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICAgICAg
ZG9jdW1lbnQtPmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCpkb2N1bWVudCk7Ci0gICAgICAg
IGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZSgqZG9jdW1lbnQs
IGV2ZW50VHlwZSkpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRl
ZEV2ZW50VHlwZShldmVudFR5cGUsICpkb2N1bWVudCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+
ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKmRvY3VtZW50KTsKICAgICB9CiAKQEAgLTIyMDYs
NyArMjIwNiw3IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYKICAgICAgICAgZGVjcmVtZW50U2Ny
b2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0gICAgZWxzZSBpZiAoZG9jdW1lbnQgJiYgZXZlbnROYW1lcygpLmlzVG91Y2hSZWxh
dGVkRXZlbnRUeXBlKCpkb2N1bWVudCwgZXZlbnRUeXBlKSkgeworICAgIGVsc2UgaWYgKGRvY3Vt
ZW50ICYmIGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVudFR5cGUsICpk
b2N1bWVudCkpIHsKICAgICAgICAgQVNTRVJUKG1fdG91Y2hBbmRHZXN0dXJlRXZlbnRMaXN0ZW5l
ckNvdW50ID4gMCk7CiAgICAgICAgIC0tbV90b3VjaEFuZEdlc3R1cmVFdmVudExpc3RlbmVyQ291
bnQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDA3MTM2MjY4ZDg5ZjdiOWQwMTg2
MjBiMDIxMDVkNzkxZDJlMTAwOTUuLjRkYTEyZGM5ZTk4MGVhYTAxOTJlZDFhY2JlZTdiYmE2Nzky
MjRlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTM2MSw3ICszNjEsNyBAQCBib29sIFF1
aXJrczo6aXNHb29nbGVNYXBzKCkgY29uc3QKICAgICByZXR1cm4gdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbih1cmwuaG9zdCgpLnRvU3RyaW5nKCkpLnN0YXJ0c1dpdGgoImdvb2dsZS4iKSAm
JiB1cmwucGF0aCgpLnN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiL21hcHMvIik7CiB9CiAK
LWJvb2wgUXVpcmtzOjpzaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKCkgY29uc3QK
K2Jvb2wgUXVpcmtzOjpzaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKEV2ZW50VGFy
Z2V0KiB0YXJnZXQpIGNvbnN0CiB7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkubW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTM2OSw3MCArMzY5LDk1IEBAIGJvb2wgUXVpcmtzOjpzaG91bGREaXNw
YXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKCkgY29uc3QKICAgICBpZiAoIW5lZWRzUXVpcmtzKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZG9TaG91bGREaXNwYXRjaENoZWNr
cyA9IFt0aGlzXSAoKSAtPiBib29sIHsKKyAgICBhdXRvIGRvU2hvdWxkRGlzcGF0Y2hDaGVja3Mg
PSBbdGhpc10gKCkgLT4gU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50cyB7CiAgICAg
ICAgIGF1dG8qIGxvYWRlciA9IG1fZG9jdW1lbnQtPmxvYWRlcigpOwogICAgICAgICBpZiAoIWxv
YWRlciB8fCBsb2FkZXItPnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3koKSAhPSBT
aW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5OjpBbGxvdykKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFNpbXVsYXRlZE1v
dXNlRXZlbnRzOjpObzsKIAogICAgICAgICBpZiAoaXNBbWF6b24oKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91
c2VFdmVudHM6OlllczsKICAgICAgICAgaWYgKGlzR29vZ2xlTWFwcygpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRN
b3VzZUV2ZW50czo6WWVzOwogCiAgICAgICAgIGF1dG8mIHVybCA9IG1fZG9jdW1lbnQtPnRvcERv
Y3VtZW50KCkudXJsKCk7CiAgICAgICAgIGF1dG8gaG9zdCA9IHVybC5ob3N0KCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKIAogICAgICAgICBpZiAoaG9zdCA9PSAid2l4LmNvbSIgfHwgaG9z
dC5lbmRzV2l0aCgiLndpeC5jb20iKSkgewogICAgICAgICAgICAgLy8gRGlzYWJsZSBzaW11bGF0
ZWQgbW91c2UgZGlzcGF0Y2hpbmcgZm9yIHRlbXBsYXRlIHNlbGVjdGlvbi4KLSAgICAgICAgICAg
IHJldHVybiAhdXJsLnBhdGgoKS5zdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi93ZWJzaXRl
L3RlbXBsYXRlcy8iKTsKKyAgICAgICAgICAgIHJldHVybiB1cmwucGF0aCgpLnN0YXJ0c1dpdGhJ
Z25vcmluZ0FTQ0lJQ2FzZSgiL3dlYnNpdGUvdGVtcGxhdGVzLyIpID8gU2hvdWxkRGlzcGF0Y2hT
aW11bGF0ZWRNb3VzZUV2ZW50czo6Tm8gOiBTaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZl
bnRzOjpZZXM7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoKGhvc3QgPT0gImRlc21vcy5jb20i
IHx8IGhvc3QuZW5kc1dpdGgoIi5kZXNtb3MuY29tIikpICYmIHVybC5wYXRoKCkuc3RhcnRzV2l0
aElnbm9yaW5nQVNDSUlDYXNlKCIvY2FsY3VsYXRvci8iKSkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVu
dHM6OlllczsKICAgICAgICAgaWYgKGhvc3QgPT0gImZpZ21hLmNvbSIgfHwgaG9zdC5lbmRzV2l0
aCgiLmZpZ21hLmNvbSIpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50czo6WWVzOwogICAgICAgICBp
ZiAoaG9zdCA9PSAidHJlbGxvLmNvbSIgfHwgaG9zdC5lbmRzV2l0aCgiLnRyZWxsby5jb20iKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFNob3VsZERpc3Bh
dGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OlllczsKICAgICAgICAgaWYgKGhvc3QgPT0gImFpcnRh
YmxlLmNvbSIgfHwgaG9zdC5lbmRzV2l0aCgiLmFpcnRhYmxlLmNvbSIpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRN
b3VzZUV2ZW50czo6WWVzOwogICAgICAgICBpZiAoaG9zdCA9PSAibXNuLmNvbSIgfHwgaG9zdC5l
bmRzV2l0aCgiLm1zbi5jb20iKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OlllczsKICAgICAg
ICAgaWYgKGhvc3QgPT0gImZsaXBrYXJ0LmNvbSIgfHwgaG9zdC5lbmRzV2l0aCgiLmZsaXBrYXJ0
LmNvbSIpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gU2hv
dWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50czo6WWVzOwogICAgICAgICBpZiAoaG9zdCA9
PSAiaXFpeWkuY29tIiB8fCBob3N0LmVuZHNXaXRoKCIuaXFpeWkuY29tIikpCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFNpbXVsYXRl
ZE1vdXNlRXZlbnRzOjpZZXM7CiAgICAgICAgIGlmIChob3N0ID09ICJ0cmFpbGVycy5hcHBsZS5j
b20iKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gU2hvdWxk
RGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50czo6WWVzOwogICAgICAgICBpZiAoaG9zdCA9PSAi
c291bmRjbG91ZC5jb20iKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50czo6WWVzOwogICAgICAgICBp
ZiAoaG9zdCA9PSAibmF2ZXIuY29tIikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OlllczsKICAg
ICAgICAgaWYgKGhvc3QgPT0gIm5iYS5jb20iIHx8IGhvc3QuZW5kc1dpdGgoIi5uYmEuY29tIikp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTaG91bGREaXNw
YXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzOjpZZXM7CiAgICAgICAgIGlmIChob3N0LmVuZHNXaXRo
KCIubmF2ZXIuY29tIikpIHsKICAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIHF1aXJrIGZvciB0
di5uYXZlci5jb20gc3ViZG9tYWluIHRvIGJlIGFibGUgdG8gc2ltdWxhdGUgaG92ZXIgb24gdmlk
ZW9zLgogICAgICAgICAgICAgaWYgKGhvc3QgPT0gInR2Lm5hdmVyLmNvbSIpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRj
aFNpbXVsYXRlZE1vdXNlRXZlbnRzOjpObzsKICAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIHF1
aXJrIGZvciBtYWlsLm5hdmVyLmNvbSBzdWJkb21haW4gdG8gYmUgYWJsZSB0byB0YXAgb24gbWFp
bCBzdWJqZWN0cy4KICAgICAgICAgICAgIGlmIChob3N0ID09ICJtYWlsLm5hdmVyLmNvbSIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybiBTaG91
bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzOjpObzsKICAgICAgICAgICAgIC8vIERpc2Fi
bGUgdGhlIHF1aXJrIG9uIHRoZSBtb2JpbGUgc2l0ZS4KICAgICAgICAgICAgIC8vIEZJWE1FOiBN
YXliZSB0aGlzIHF1aXJrIHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgIm0uIiBzdWJkb21haW5zIG9u
IGFsbCBzaXRlcz8gVGhlc2UgYXJlIGdlbmVyYWxseSBtb2JpbGUgc2l0ZXMgdGhhdCBkb24ndCBu
ZWVkIG1vdXNlIGV2ZW50cy4KICAgICAgICAgICAgIGlmIChob3N0ID09ICJtLm5hdmVyLmNvbSIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVu
dHM6Ok5vOworICAgICAgICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VF
dmVudHM6OlllczsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlm
IChob3N0ID09ICJteWJpbmRlci5vcmciIHx8IGhvc3QuZW5kc1dpdGgoIi5teWJpbmRlci5vcmci
KSkKKyAgICAgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRz
OjpEZXBlbmRpbmdPblRhcmdldEZvcl9teWJpbmRlcl9vcmc7CisgICAgICAgIHJldHVybiBTaG91
bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzOjpObzsKICAgICB9OwogCi0gICAgaWYgKCFt
X3Nob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHNRdWlyaykKKyAgICBpZiAobV9zaG91
bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzUXVpcmsgPT0gU2hvdWxkRGlzcGF0Y2hTaW11
bGF0ZWRNb3VzZUV2ZW50czo6VW5rbm93bikKICAgICAgICAgbV9zaG91bGREaXNwYXRjaFNpbXVs
YXRlZE1vdXNlRXZlbnRzUXVpcmsgPSBkb1Nob3VsZERpc3BhdGNoQ2hlY2tzKCk7Ci0gICAgcmV0
dXJuICptX3Nob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHNRdWlyazsKKworICAgIHN3
aXRjaCAobV9zaG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzUXVpcmspIHsKKyAgICBj
YXNlIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OlVua25vd246CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjYXNl
IFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6Ok5vOgorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBjYXNlIFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OkRl
cGVuZGluZ09uVGFyZ2V0Rm9yX215YmluZGVyX29yZzoKKyAgICAgICAgaWYgKGlzPE5vZGU+KHRh
cmdldCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byogbm9kZSA9IGRvd25jYXN0PE5vZGU+KHRh
cmdldCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmNsYXNz
TGlzdCgpLmNvbnRhaW5zKCJsbS1Eb2NrUGFuZWwtdGFiQmFyIikpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGNhc2UgU2hvdWxkRGlzcGF0Y2hTaW11bGF0ZWRNb3VzZUV2ZW50czo6
WWVzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgUXVpcmtzOjpzaG91bGREaXNwYXRj
aGVkU2ltdWxhdGVkTW91c2VFdmVudHNBc3N1bWVEZWZhdWx0UHJldmVudGVkKEV2ZW50VGFyZ2V0
KiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgaWYgKCFuZWVkc1F1aXJrcygpIHx8ICFzaG91bGREaXNw
YXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKCkpCisgICAgaWYgKCFuZWVkc1F1aXJrcygpIHx8ICFz
aG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKHRhcmdldCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChpc0FtYXpvbigpICYmIGlzPEVsZW1lbnQ+KHRhcmdldCkpIHsK
QEAgLTQ1Myw3ICs0NzgsNyBAQCBib29sIFF1aXJrczo6c2hvdWxkRGlzcGF0Y2hlZFNpbXVsYXRl
ZE1vdXNlRXZlbnRzQXNzdW1lRGVmYXVsdFByZXZlbnRlZChFdmVudFRhcgogCiBPcHRpb25hbDxF
dmVudDo6SXNDYW5jZWxhYmxlPiBRdWlya3M6OnNpbXVsYXRlZE1vdXNlRXZlbnRUeXBlRm9yVGFy
Z2V0KEV2ZW50VGFyZ2V0KiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgaWYgKCFzaG91bGREaXNwYXRj
aFNpbXVsYXRlZE1vdXNlRXZlbnRzKCkpCisgICAgaWYgKCFuZWVkc1F1aXJrcygpIHx8ICFzaG91
bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzKHRhcmdldCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKICAgICAvLyBPbiBHb29nbGUgTWFwcywgd2Ugd2FudCB0byBsaW1pdCBzaW11bGF0ZWQg
bW91c2UgZXZlbnRzIHRvIGRyYWdnaW5nIHRoZSBsaXR0bGUgbWFuIHRoYXQgYWxsb3dzIGVudGVy
aW5nIGludG8gU3RyZWV0IFZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1
aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCA3MmJkN2NiM2JlODNj
YjMxNWQxZWMyZjc1NWZkMmRhNDQ1MmYwNjRjLi5iMTNmMjYzYjMxY2NiZTcyYTJlMWEyNDhmODJm
NzY4OTQyYTQ4NGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzQnJva2VuRW5jcnlwdGVkTWVkaWFBUElTdXBwb3J0UXVpcmsoKSBjb25z
dDsKICAgICBib29sIHNob3VsZFN0cmlwUXVvdGF0aW9uTWFya0luRm9udEZhY2VTZXRGYW1pbHko
KSBjb25zdDsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGJvb2wgc2hvdWxkRGlzcGF0
Y2hTaW11bGF0ZWRNb3VzZUV2ZW50cygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hT
aW11bGF0ZWRNb3VzZUV2ZW50cyhFdmVudFRhcmdldCopIGNvbnN0OwogICAgIGJvb2wgc2hvdWxk
RGlzcGF0Y2hlZFNpbXVsYXRlZE1vdXNlRXZlbnRzQXNzdW1lRGVmYXVsdFByZXZlbnRlZChFdmVu
dFRhcmdldCopIGNvbnN0OwogICAgIE9wdGlvbmFsPEV2ZW50OjpJc0NhbmNlbGFibGU+IHNpbXVs
YXRlZE1vdXNlRXZlbnRUeXBlRm9yVGFyZ2V0KEV2ZW50VGFyZ2V0KikgY29uc3Q7CiAgICAgYm9v
bCBzaG91bGRNYWtlVG91Y2hFdmVudE5vbkNhbmNlbGFibGVGb3JUYXJnZXQoRXZlbnRUYXJnZXQq
KSBjb25zdDsKQEAgLTE3Myw3ICsxNzMsMTMgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIG11dGFi
bGUgT3B0aW9uYWw8Ym9vbD4gbV9zaG91bGREaXNhYmxlRWxlbWVudEZ1bGxzY3JlZW5RdWlyazsK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIG11dGFibGUgT3B0aW9uYWw8Ym9vbD4gbV9z
aG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzUXVpcms7CisgICAgZW51bSBjbGFzcyBT
aG91bGREaXNwYXRjaFNpbXVsYXRlZE1vdXNlRXZlbnRzIDogdWludDhfdCB7CisgICAgICAgIFVu
a25vd24sCisgICAgICAgIE5vLAorICAgICAgICBEZXBlbmRpbmdPblRhcmdldEZvcl9teWJpbmRl
cl9vcmcsCisgICAgICAgIFllcywKKyAgICB9OworICAgIG11dGFibGUgU2hvdWxkRGlzcGF0Y2hT
aW11bGF0ZWRNb3VzZUV2ZW50cyBtX3Nob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHNR
dWlyayB7IFNob3VsZERpc3BhdGNoU2ltdWxhdGVkTW91c2VFdmVudHM6OlVua25vd24gfTsKICNl
bmRpZgogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIG11dGFibGUgT3B0aW9uYWw8
Ym9vbD4gbV9zaG91bGRTeW50aGVzaXplVG91Y2hFdmVudHNRdWlyazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>