<?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>73358</bug_id>
          
          <creation_ts>2011-11-29 13:28:00 -0800</creation_ts>
          <short_desc>Download page URL should be set by WebCore</short_desc>
          <delta_ts>2011-11-30 04:13:53 -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>Page Loading</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>kdecker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511060</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 13:28:00 -0800</bug_when>
    <thetext>When a file is downloaded, we need to tell NSURLDownload where it came from to have correct quarantine metadata.

Currently, this is done in WebKit, which has several downsides:
- code duplication;
- need to use an SPI;
- it&apos;s difficult to pass this data over to WebKit2 UI process.

It would be much easier to just set request&apos;s main document URL - CFNetwork uses that for quarantine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511073</commentid>
    <comment_count>1</comment_count>
      <attachid>117036</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 13:35:07 -0800</bug_when>
    <thetext>Created attachment 117036
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511094</commentid>
    <comment_count>2</comment_count>
      <attachid>117036</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-29 13:59:16 -0800</bug_when>
    <thetext>Comment on attachment 117036
proposed patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No change in behavior, just refactoring.

Even on non-Mac platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511103</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 14:19:30 -0800</bug_when>
    <thetext>Yes. Do you think that it changes behavior on other platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511147</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-29 15:17:41 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Yes. Do you think that it changes behavior on other platforms?

I haven&apos;t looked at it closely.  I just noticed that the code only existed previously on Mac.

The code itself looks pretty dodgy.  For example:

hostOnlyURLString = makeString(originalURL.protocol(), &quot;://&quot;, originalURL.host(), &quot;:&quot;, String::number(port));

is making a lot of assumptions about the format of the URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511163</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-29 15:39:55 -0800</bug_when>
    <thetext>&gt; I just noticed that the code only existed previously on Mac.

Chromium will likely want to use it too if it wants to set file quarantine data on Mac. It has no use for other platforms AFAICT, but also negligible cost.

&gt; The code itself looks pretty dodgy.

Agreed - that&apos;s why I added many FIXME comments when moving it from WebKit(s) to WebCore. In this particular case, we shouldn&apos;t be constructing a host only URL string in the first place, but it&apos;s better than nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511172</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-29 16:00:45 -0800</bug_when>
    <thetext>Thanks for explaining!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511619</commentid>
    <comment_count>7</comment_count>
      <attachid>117036</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:13:48 -0800</bug_when>
    <thetext>Comment on attachment 117036
proposed patch

Clearing flags on attachment: 117036

Committed r101486: &lt;http://trac.webkit.org/changeset/101486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511620</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:13:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117036</attachid>
            <date>2011-11-29 13:35:07 -0800</date>
            <delta_ts>2011-11-30 04:13:48 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>QuarantineOriginatingURL.txt</filename>
            <type>text/plain</type>
            <size>19721</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTQxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDExLTExLTI5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIERvd25sb2FkIHBhZ2UgVVJM
IHNob3VsZCBiZSBzZXQgYnkgV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIGp1c3QgcmVmYWN0b3Jpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luYXRpbmdVUkxGcm9tQmFja0Zv
cndhcmRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRPcmlnaW5hbFVS
TEZvckRvd25sb2FkUmVxdWVzdCk6CisgICAgICAgIE1vdmVkIGltcGxlbWVudGF0aW9ucyBmcm9t
IFdlYktpdCwgYWRkZWQgYSBidW5jaCBvZiBGSVhNRXMuCisKKyAgICAgICAgKiBsb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcDogKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGlu
dWVBZnRlckNvbnRlbnRQb2xpY3kpOgorICAgICAgICBTZXQgbWFpbiBkb2N1bWVudCBVUkwgKGlu
Y29ycmVjdGx5IHJlbmFtZWQgdG8gImZpcnN0IHBhcnR5IGZvciBjb29raWVzIiBpbiBXZWJDb3Jl
KSwgc28gdGhhdAorICAgICAgICBDRk5ldHdvcmsgd291bGQgYXV0b21hdGljYWxseSB1c2UgaXQu
CisKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6IChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeSk6IERpdHRvCisgICAgICAgIGZv
ciByZXF1ZXN0cyB0aGF0IHN0YXJ0IGFzIGRvd25sb2FkcyAoYXMgb3Bwb3NlZCB0byBiZWluZyBj
b252ZXJ0ZWQgYWZ0ZXIgcmVhZGluZyBmaXJzdCBiaXRzCisgICAgICAgIG9mIHJlc3BvbnNlKS4K
KwogMjAxMS0xMS0yOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGludmFsaWQgY2FzdCBpbiBXZWJDb3JlOjp0b1JlbmRlckJveCAvIFdlYkNvcmU6OlJlbmRlckJv
eDo6Zmlyc3RDaGlsZEJveApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEyLDYgKzIzMTIsNjAgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y29udGludWVMb2FkQWZ0ZXJXaWxsUwogICAgICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRM
b2FkZXItPnVwZGF0ZUxvYWRpbmcoKTsKIH0KIAorc3RhdGljIEtVUkwgb3JpZ2luYXRpbmdVUkxG
cm9tQmFja0ZvcndhcmRMaXN0KFBhZ2UqIHBhZ2UpCit7CisgICAgLy8gRklYTUU6IENhbiB0aGlz
IGxvZ2ljIGJlIHJlcGxhY2VkIHdpdGggbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKT8KKyAgICAvLyBJdCBoYXMgdGhlIHNhbWUgbWVhbmluZyBvZiAicGFnZSBhIHVz
ZXIgdGhpbmtzIGlzIHRoZSBjdXJyZW50IG9uZSIuCisKKyAgICBLVVJMIG9yaWdpbmFsVVJMOwor
ICAgIGludCBiYWNrQ291bnQgPSBwYWdlLT5iYWNrRm9yd2FyZCgpLT5iYWNrQ291bnQoKTsKKyAg
ICBmb3IgKGludCBiYWNrSW5kZXggPSAwOyBiYWNrSW5kZXggPD0gYmFja0NvdW50OyBiYWNrSW5k
ZXgrKykgeworICAgICAgICAvLyBGSVhNRTogQXQgb25lIHBvaW50IHdlIGhhZCBjb2RlIGhlcmUg
dG8gY2hlY2sgYSAid2FzIHVzZXIgZ2VzdHVyZSIgZmxhZy4KKyAgICAgICAgLy8gRG8gd2UgbmVl
ZCB0byByZXN0b3JlIHRoYXQgbG9naWM/CisgICAgICAgIEhpc3RvcnlJdGVtKiBoaXN0b3J5SXRl
bSA9IHBhZ2UtPmJhY2tGb3J3YXJkKCktPml0ZW1BdEluZGV4KC1iYWNrSW5kZXgpOworICAgICAg
ICBpZiAoIWhpc3RvcnlJdGVtKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgb3Jp
Z2luYWxVUkwgPSBoaXN0b3J5SXRlbS0+b3JpZ2luYWxVUkwoKTsgCisgICAgICAgIGlmICghb3Jp
Z2luYWxVUkwuaXNOdWxsKCkpIAorICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVVJMOworICAg
IH0KKworICAgIHJldHVybiBLVVJMKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXI6OnNldE9yaWdp
bmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICBLVVJMIG9yaWdpbmFsVVJMOworICAgIAorICAgIC8vIElmIHRoZXJlIGlzIG5vIHJlZmVycmVy
LCBhc3N1bWUgdGhhdCB0aGUgZG93bmxvYWQgd2FzIGluaXRpYXRlZCBkaXJlY3RseSwgc28gY3Vy
cmVudCBkb2N1bWVudCBpcworICAgIC8vIGNvbXBsZXRlbHkgdW5yZWxhdGVkIHRvIGl0LiBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzUyOTQ2OTE+LgorICAgIC8vIEZJWE1FOiBSZWZlcnJlciBpcyBub3Qg
c2VudCBpbiBtYW55IG90aGVyIGNhc2VzLCBzbyB3ZSB3aWxsIG9mdGVuIG1pc3MgdGhpcyBpbXBv
cnRhbnQgaW5mb3JtYXRpb24uCisgICAgLy8gRmluZCBhIGJldHRlciB3YXkgdG8gZGVjaWRlIHdo
ZXRoZXIgdGhlIGRvd25sb2FkIHdhcyB1bnJlbGF0ZWQgdG8gY3VycmVudCBkb2N1bWVudC4KKyAg
ICBpZiAoIXJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKKyAgICAgICAgLy8gZmlu
ZCB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgaGlzdG9yeSB0aGF0IHdhcyBvcmlnaW5hdGVkIGJ5IHRo
ZSB1c2VyCisgICAgICAgIG9yaWdpbmFsVVJMID0gb3JpZ2luYXRpbmdVUkxGcm9tQmFja0Zvcndh
cmRMaXN0KG1fZnJhbWUtPnBhZ2UoKSk7CisgICAgfQorCisgICAgaWYgKG9yaWdpbmFsVVJMLmlz
TnVsbCgpKQorICAgICAgICBvcmlnaW5hbFVSTCA9IHJlcXVlc3QudXJsKCk7CisKKyAgICBpZiAo
IW9yaWdpbmFsVVJMLnByb3RvY29sKCkuaXNFbXB0eSgpICYmICFvcmlnaW5hbFVSTC5ob3N0KCku
aXNFbXB0eSgpKSB7CisgICAgICAgIHVuc2lnbmVkIHBvcnQgPSBvcmlnaW5hbFVSTC5wb3J0KCk7
CisKKyAgICAgICAgLy8gT3JpZ2luYWwgVVJMIGlzIG5lZWRlZCB0byBzaG93IHRoZSB1c2VyIHdo
ZXJlIGEgZmlsZSB3YXMgZG93bmxvYWRlZCBmcm9tLiBXZSBzaG91bGQgbWFrZSBhIFVSTCB0aGF0
IHdvbid0IHJlc3VsdCBpbiBkb3dubG9hZGluZyB0aGUgZmlsZSBhZ2Fpbi4KKyAgICAgICAgLy8g
RklYTUU6IFVzaW5nIGhvc3Qtb25seSBVUkwgaXMgYSB2ZXJ5IGhlYXZ5LWhhbmRlZCBhcHByb2Fj
aC4gV2Ugc2hvdWxkIGF0dGVtcHQgdG8gcHJvdmlkZSB0aGUgYWN0dWFsIHBhZ2Ugd2hlcmUgdGhl
IGRvd25sb2FkIHdhcyBpbml0aWF0ZWQgZnJvbSwgYXMgYSByZW1pbmRlciB0byB0aGUgdXNlci4K
KyAgICAgICAgU3RyaW5nIGhvc3RPbmx5VVJMU3RyaW5nOworICAgICAgICBpZiAocG9ydCkKKyAg
ICAgICAgICAgIGhvc3RPbmx5VVJMU3RyaW5nID0gbWFrZVN0cmluZyhvcmlnaW5hbFVSTC5wcm90
b2NvbCgpLCAiOi8vIiwgb3JpZ2luYWxVUkwuaG9zdCgpLCAiOiIsIFN0cmluZzo6bnVtYmVyKHBv
cnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaG9zdE9ubHlVUkxTdHJpbmcgPSBtYWtl
U3RyaW5nKG9yaWdpbmFsVVJMLnByb3RvY29sKCksICI6Ly8iLCBvcmlnaW5hbFVSTC5ob3N0KCkp
OworCisgICAgICAgIC8vIEZJWE1FOiBSZW5hbWUgZmlyc3RQYXJ0eUZvckNvb2tpZXMgYmFjayB0
byBtYWluRG9jdW1lbnRVUkwuIEl0IHdhcyBhIG1pc3Rha2UgdG8gdGhpbmsgdGhhdCBpdCB3YXMg
b25seSB1c2VkIGZvciBjb29raWVzLgorICAgICAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JD
b29raWVzKEtVUkwoS1VSTCgpLCBob3N0T25seVVSTFN0cmluZykpOworICAgIH0KK30KKwogdm9p
ZCBGcmFtZUxvYWRlcjo6ZGlkRmlyc3RMYXlvdXQoKQogewogICAgIGlmIChtX2ZyYW1lLT5wYWdl
KCkgJiYgaXNCYWNrRm9yd2FyZExvYWRUeXBlKG1fbG9hZFR5cGUpKQpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDEwMDE2MikKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsNyArMjYxLDkgQEAg
cHVibGljOgogICAgIC8vIHVzZXMgdGhlIHBvbGljeSBtYWNoaW5lcnkgKGFuZCB0aGVyZWZvcmUg
aXMgY2FsbGVkIHZpYSB0aGUgUG9saWN5Q2hlY2tlcikuICBPbmNlIHdlCiAgICAgLy8gaW50cm9k
dWNlIGEgcHJvcGVyIGNhbGxiYWNrIHR5cGUgZm9yIHRoaXMgZnVuY3Rpb24sIHdlIHNob3VsZCBt
YWtlIGl0IHByaXZhdGUgYWdhaW4uCiAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlcldpbGxTdWJt
aXRGb3JtKCk7Ci0gICAgCisKKyAgICB2b2lkIHNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYpOworCiAgICAgYm9vbCBzdXBwcmVzc09wZW5lckluTmV3RnJh
bWUoKSBjb25zdCB7IHJldHVybiBtX3N1cHByZXNzT3BlbmVySW5OZXdGcmFtZTsgfQogCiAgICAg
c3RhdGljIE9iamVjdENvbnRlbnRUeXBlIGRlZmF1bHRPYmplY3RDb250ZW50VHlwZShjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBzaG91bGRQcmVmZXJQbHVnSW5zRm9y
SW1hZ2VzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb25z
b2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTQxLDYgKzQyLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtMjc1LDE5ICsy
NzcsMjcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIFBvbGljeURvd25sb2FkOgorICAgIGNhc2UgUG9s
aWN5RG93bmxvYWQ6IHsKICAgICAgICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51bGwsIGUuZy4gd2hl
biBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgog
ICAgICAgICBpZiAoIW1faGFuZGxlKSB7CiAgICAgICAgICAgICByZWNlaXZlZEVycm9yKGNhbm5v
dFNob3dVUkxFcnJvcigpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1f
ZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7Ci0gICAgICAg
IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChtX2hhbmRsZS5nZXQoKSwgcmVxdWVz
dCgpLCBtX2hhbmRsZS5nZXQoKS0+Zmlyc3RSZXF1ZXN0KCksIHIpOworCisgICAgICAgIC8vIFdo
ZW4gc3RhcnRpbmcgdGhlIHJlcXVlc3QsIHdlIGRpZG4ndCBrbm93IHRoYXQgaXQgd291bGQgcmVz
dWx0IGluIGRvd25sb2FkIGFuZCBub3QgbmF2aWdhdGlvbi4gTm93IHdlIGtub3cgdGhhdCBmaXJz
dCBwYXJ0eSBkaWRuJ3QgY2hhbmdlLgorICAgICAgICAvLyBEb3dubG9hZCBtYXkgdXNlIHRoaXMg
a25vd2xlZGdlIGZvciBwdXJwb3NlcyB1bnJlbGF0ZWQgdG8gY29va2llcywgbm90YWJseSBmb3Ig
c2V0dGluZyBmaWxlIHF1YXJhbnRpbmUgZGF0YS4KKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgPSB0aGlzLT5yZXF1ZXN0KCk7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPnNldE9yaWdp
bmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0KHJlcXVlc3QpOworCisgICAgICAgIC8vIEZJWE1FOiBE
byBhbnkgcG9ydHMgdXNlIGZpcnN0IHJlcXVlc3QgYXJndW1lbnQ/IE1vc3QgbGlrZWx5LCBpdCBj
YW4gYmUgcmVtb3ZlZC4KKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2Fk
KG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCBtX2hhbmRsZS5nZXQoKS0+Zmlyc3RSZXF1ZXN0KCks
IHIpOworCiAgICAgICAgIC8vIEl0IG1pZ2h0IGhhdmUgZ29uZSBtaXNzaW5nCiAgICAgICAgIGlm
IChmcmFtZUxvYWRlcigpKQogICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihpbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZUVycm9yKCkpOwogICAgICAgICByZXR1cm47Ci0KKyAgICB9CiAgICAgY2Fz
ZSBQb2xpY3lJZ25vcmU6CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGlu
dWVXaXRoUG9saWN5SWdub3JlKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50
aWZpZXIoKSwgcik7CiAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCShyZXZpc2lvbiAxMDAxNjIp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0NSwxMCArMTQ1LDEzIEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y29udGludWVBZnRl
ck5hdmlnYXQKICAgICAgICAgY2FzZSBQb2xpY3lJZ25vcmU6CiAgICAgICAgICAgICBjYWxsYmFj
ay5jbGVhclJlcXVlc3QoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBvbGlj
eURvd25sb2FkOgotICAgICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zdGFy
dERvd25sb2FkKGNhbGxiYWNrLnJlcXVlc3QoKSk7CisgICAgICAgIGNhc2UgUG9saWN5RG93bmxv
YWQ6IHsKKyAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gY2FsbGJhY2sucmVx
dWVzdCgpOworICAgICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPnNldE9yaWdpbmFsVVJMRm9y
RG93bmxvYWRSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5zdGFydERvd25sb2FkKHJlcXVlc3QpOwogICAgICAgICAgICAgY2FsbGJhY2su
Y2xlYXJSZXF1ZXN0KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBj
YXNlIFBvbGljeVVzZTogewogICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2Fs
bGJhY2sucmVxdWVzdCgpKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNDEyKQorKysg
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMTEtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgRG93bmxvYWQgcGFnZSBVUkwgc2hvdWxkIGJlIHNldCBieSBXZWJDb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvbWFjL0Rvd25sb2FkTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQp
OiBUaGVyZSBpcyBubyBuZWVkIHRvIHNldCBvcmlnaW5hbCBVUkwgcG9zdCBmYWN0dW0gYW55IG1v
cmUuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUpOiBEaXR0by4K
KwogMjAxMS0xMS0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSysgV2ViS2l0MiBidWlsZCBhZnRlciByMTAx
MzEyLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25s
b2FkTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxv
YWRzL21hYy9Eb3dubG9hZE1hYy5tbQkocmV2aXNpb24gMTAwMTYyKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMCArMjcsNyBAQAogI2ltcG9ydCAiRG93bmxvYWQuaCIKIAogI2ltcG9ydCA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbk1hYy5oPgotI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENv
bnRyb2xsZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJl
c3BvbnNlLmg+CiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCkBAIC00Miw3ICszOSw2IEBAICso
aWQpX2Rvd25sb2FkV2l0aExvYWRpbmdDb25uZWN0aW9uOihOU1UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVsZWdhdGU6KGlkKWRlbGVnYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm94eTooaWQpcHJveHk7Ci0tICh2b2lkKV9zZXRPcmlnaW5hdGluZ1VSTDooTlNVUkwg
KilvcmlnaW5hdGluZ1VSTDsKIEBlbmQKIAogQGludGVyZmFjZSBXS0Rvd25sb2FkQXNEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxOU1VSTERvd25sb2FkRGVsZWdhdGU+IHsKQEAgLTU2LDY3ICs1Miw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGlj
IEtVUkwgb3JpZ2luYXRpbmdVUkxGcm9tQmFja0ZvcndhcmRMaXN0KFdlYlBhZ2UgKndlYlBhZ2Up
Ci17Ci0gICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm4gS1VSTCgpOwotCi0gICAgUGFn
ZSogcGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICBy
ZXR1cm4gS1VSTCgpOwotCi0gICAgS1VSTCBvcmlnaW5hbFVSTDsKLSAgICBpbnQgYmFja0NvdW50
ID0gcGFnZS0+YmFja0ZvcndhcmQoKS0+YmFja0NvdW50KCk7Ci0gICAgZm9yIChpbnQgYmFja0lu
ZGV4ID0gMDsgYmFja0luZGV4IDw9IGJhY2tDb3VudDsgYmFja0luZGV4KyspIHsKLSAgICAgICAg
Ly8gRklYTUU6IEF0IG9uZSBwb2ludCB3ZSBoYWQgY29kZSBoZXJlIHRvIGNoZWNrIGEgIndhcyB1
c2VyIGdlc3R1cmUiIGZsYWcuCi0gICAgICAgIC8vIERvIHdlIG5lZWQgdG8gcmVzdG9yZSB0aGF0
IGxvZ2ljPwotICAgICAgICBIaXN0b3J5SXRlbSogaGlzdG9yeUl0ZW0gPSBwYWdlLT5iYWNrRm9y
d2FyZCgpLT5pdGVtQXRJbmRleCgtYmFja0luZGV4KTsKLSAgICAgICAgaWYgKCFoaXN0b3J5SXRl
bSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIG9yaWdpbmFsVVJMID0gaGlzdG9y
eUl0ZW0tPm9yaWdpbmFsVVJMKCk7IAotICAgICAgICBpZiAoIW9yaWdpbmFsVVJMLmlzTnVsbCgp
KSAKLSAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFVSTDsKLSAgICB9Ci0KLSAgICByZXR1cm4g
S1VSTCgpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkKFdlYlBh
Z2UgKndlYlBhZ2UsIE5TVVJMRG93bmxvYWQgKmRvd25sb2FkLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIGluaXRpYWxSZXF1ZXN0KQotewotICAgIEtVUkwgb3JpZ2luYWxVUkw7Ci0gICAgCi0gICAg
Ly8gSWYgdGhlcmUgd2FzIG5vIHJlZmVycmVyLCBkb24ndCB0cmF2ZXJzZSB0aGUgYmFjay9mb3J3
YXJkIGhpc3RvcnkKLSAgICAvLyBzaW5jZSB0aGlzIGRvd25sb2FkIHdhcyBpbml0aWF0ZWQgZGly
ZWN0bHkuIDxyZGFyOi8vcHJvYmxlbS81Mjk0NjkxPgotICAgIGlmICghaW5pdGlhbFJlcXVlc3Qu
aHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKLSAgICAgICAgLy8gZmluZCB0aGUgZmlyc3QgaXRl
bSBpbiB0aGUgaGlzdG9yeSB0aGF0IHdhcyBvcmlnaW5hdGVkIGJ5IHRoZSB1c2VyCi0gICAgICAg
IG9yaWdpbmFsVVJMID0gb3JpZ2luYXRpbmdVUkxGcm9tQmFja0ZvcndhcmRMaXN0KHdlYlBhZ2Up
OwotICAgIH0KLQotICAgIGlmIChvcmlnaW5hbFVSTC5pc051bGwoKSkKLSAgICAgICAgb3JpZ2lu
YWxVUkwgPSBpbml0aWFsUmVxdWVzdC51cmwoKTsKLQotICAgIE5TVVJMICpvcmlnaW5hbE5TVVJM
ID0gb3JpZ2luYWxVUkw7Ci0KLSAgICBOU1N0cmluZyAqc2NoZW1lID0gW29yaWdpbmFsTlNVUkwg
c2NoZW1lXTsKLSAgICBOU1N0cmluZyAqaG9zdCA9IFtvcmlnaW5hbE5TVVJMIGhvc3RdOwotICAg
IGlmIChzY2hlbWUgJiYgaG9zdCAmJiBbc2NoZW1lIGxlbmd0aF0gJiYgW2hvc3QgbGVuZ3RoXSkg
ewotICAgICAgICBOU051bWJlciAqcG9ydCA9IFtvcmlnaW5hbE5TVVJMIHBvcnRdOwotICAgICAg
ICBpZiAocG9ydCAmJiBbcG9ydCBpbnRWYWx1ZV0gPCAwKQotICAgICAgICAgICAgcG9ydCA9IG5p
bDsKLSAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBob3N0T25seVVSTFN0cmluZzsKLSAgICAg
ICAgaWYgKHBvcnQpCi0gICAgICAgICAgICBob3N0T25seVVSTFN0cmluZy5hZG9wdE5TKFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUA6Ly8lQDolZCIsIHNjaGVtZSwgaG9zdCwg
W3BvcnQgaW50VmFsdWVdXSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGhvc3RPbmx5VVJM
U3RyaW5nLmFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlQDovLyVA
Iiwgc2NoZW1lLCBob3N0XSk7Ci0KLSAgICAgICAgUmV0YWluUHRyPE5TVVJMPiBob3N0T25seVVS
TChBZG9wdE5TLCBbW05TVVJMIGFsbG9jXSBpbml0V2l0aFN0cmluZzpob3N0T25seVVSTFN0cmlu
Zy5nZXQoKV0pOwotCi0gICAgICAgIEFTU0VSVChbZG93bmxvYWQgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfc2V0T3JpZ2luYXRpbmdVUkw6KV0pOwotICAgICAgICBbZG93bmxvYWQgX3Nl
dE9yaWdpbmF0aW5nVVJMOmhvc3RPbmx5VVJMLmdldCgpXTsKLSAgICB9Ci19Ci0KIHZvaWQgRG93
bmxvYWQ6OnN0YXJ0KFdlYlBhZ2UqIGluaXRpYXRpbmdQYWdlKQogewogICAgIEFTU0VSVCghbV9u
c1VSTERvd25sb2FkKTsKQEAgLTEyNyw4ICs2Miw2IEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0KFdl
YlBhZ2UqIGluaXRpYXRpbmcKIAogICAgIC8vIEZJWE1FOiBBbGxvdyB0aGlzIHRvIGJlIGNoYW5n
ZWQgYnkgdGhlIGNsaWVudC4KICAgICBbbV9uc1VSTERvd25sb2FkLmdldCgpIHNldERlbGV0ZXNG
aWxlVXBvbkZhaWx1cmU6Tk9dOwotCi0gICAgc2V0T3JpZ2luYWxVUkxGb3JEb3dubG9hZChpbml0
aWF0aW5nUGFnZSwgbV9uc1VSTERvd25sb2FkLmdldCgpLCBtX3JlcXVlc3QpOwogfQogCiB2b2lk
IERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFnZSogaW5pdGlhdGluZ1BhZ2UsIFJlc291
cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW5pdGlhbFJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtMTQ4LDggKzgxLDYgQEAgdm9p
ZCBEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKFdlYlBhZ2UqIAogCiAgICAgLy8gRklYTUU6IEFs
bG93IHRoaXMgdG8gYmUgY2hhbmdlZCBieSB0aGUgY2xpZW50LgogICAgIFttX25zVVJMRG93bmxv
YWQuZ2V0KCkgc2V0RGVsZXRlc0ZpbGVVcG9uRmFpbHVyZTpOT107Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICBzZXRPcmln
aW5hbFVSTEZvckRvd25sb2FkKGluaXRpYXRpbmdQYWdlLCBtX25zVVJMRG93bmxvYWQuZ2V0KCks
IGluaXRpYWxSZXF1ZXN0KTsKIH0KIAogdm9pZCBEb3dubG9hZDo6Y2FuY2VsKCkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTQxMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIERvd25sb2FkIHBhZ2UgVVJM
IHNob3VsZCBiZSBzZXQgYnkgV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6
IFJlbW92ZWQgc2V0T3JpZ2luYWxVUkxGb3JEb3dubG9hZCwgd2hpY2ggaXMgbm93CisgICAgICAg
IGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZCk6IFRoZXJl
IGlzIG5vIG5lZWQgdG8gc2V0IG9yaWdpbmFsIFVSTCBwb3N0IGZhY3R1bSBhbnkgbW9yZS4KKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2FkKTogRGl0dG8uCisKIDIw
MTEtMTEtMjkgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgPHN0eWxlIHNjb3BlZD46IGFkZCBFTkFCTEUoU1RZTEVfU0NPUEVEKSBmbGFnIHRv
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzEsOCArMjMxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbW90ZUFY
T2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBPVkVSUklERSB7IHJldHVybiAw
OyB9CiAjZW5kaWYKICAgICAKLSAgICB2b2lkIHNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWQoV2Vi
RG93bmxvYWQgKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Ci0KICAg
ICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gc2V0VXBQb2xpY3lMaXN0ZW5lcihX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKTsKIAogICAgIE5TRGljdGlvbmFyeSAqYWN0aW9u
RGljdGlvbmFyeShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lv
biAxMDAxNjIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEwICsxNDYsNiBAQCAtIChqb2Jq
ZWN0KXBvbGxGb3JBcHBsZXRJbldpbmRvdzooTlNXaW5kCiBAZW5kCiAjZW5kaWYKIAotQGludGVy
ZmFjZSBOU1VSTERvd25sb2FkIChXZWJOU1VSTERvd25sb2FkRGV0YWlscykKLS0gKHZvaWQpX3Nl
dE9yaWdpbmF0aW5nVVJMOihOU1VSTCAqKW9yaWdpbmF0aW5nVVJMOwotQGVuZAotCiAvLyBGb3Ig
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBXZWJLaXQgcGx1Zy1pbnMuCiBOU1N0
cmluZyAqV2ViUGx1Z2luQmFzZVVSTEtleSA9IEAiV2ViUGx1Z2luQmFzZVVSTCI7CiBOU1N0cmlu
ZyAqV2ViUGx1Z2luQXR0cmlidXRlc0tleSA9IEAiV2ViUGx1Z2luQXR0cmlidXRlcyI7CkBAIC0y
ODQsMTIgKzI4MCwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNv
CiAgICAgQVNTRVJUKFtXZWJEb3dubG9hZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9k
b3dubG9hZFdpdGhMb2FkaW5nQ0ZVUkxDb25uZWN0aW9uOnJlcXVlc3Q6cmVzcG9uc2U6ZGVsZWdh
dGU6cHJveHk6KV0pOwogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJh
bWUuZ2V0KCkpOwogICAgIENGVVJMQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uID0gaGFuZGxlLT5j
b25uZWN0aW9uKCk7Ci0gICAgV2ViRG93bmxvYWQgKmRvd25sb2FkID0gW1dlYkRvd25sb2FkIF9k
b3dubG9hZFdpdGhMb2FkaW5nQ0ZVUkxDb25uZWN0aW9uOmNvbm5lY3Rpb24KKyAgICBbV2ViRG93
bmxvYWQgX2Rvd25sb2FkV2l0aExvYWRpbmdDRlVSTENvbm5lY3Rpb246Y29ubmVjdGlvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdDpyZXF1ZXN0LmNmVVJMUmVxdWVzdCgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Bv
bnNlOnJlc3BvbnNlLmNmVVJMUmVzcG9uc2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZTpbd2ViVmll
dyBkb3dubG9hZERlbGVnYXRlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eTpuaWxdOwotICAgIHNldE9y
aWdpbmFsVVJMRm9yRG93bmxvYWQoZG93bmxvYWQsIGluaXRpYWxSZXF1ZXN0KTsKIAogICAgIC8v
IFJlbGVhc2UgdGhlIGNvbm5lY3Rpb24gc2luY2UgdGhlIE5TVVJMRG93bmxvYWQgKGFjdHVhbGx5
IENGVVJMRG93bmxvYWQpIHdpbGwgcmV0YWluIHRoZSBjb25uZWN0aW9uIGFuZCB1c2UgaXQuCiAg
ICAgaGFuZGxlLT5yZWxlYXNlQ29ubmVjdGlvbkZvckRvd25sb2FkKCk7CkBAIC0yOTksNTggKzI5
NCwxNCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZChSZXNvCiAgICAgQVNT
RVJUKHByb3h5KTsKICAgICAKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dl
YkZyYW1lLmdldCgpKTsKLSAgICBXZWJEb3dubG9hZCAqZG93bmxvYWQgPSBbV2ViRG93bmxvYWQg
X2Rvd25sb2FkV2l0aExvYWRpbmdDb25uZWN0aW9uOmhhbmRsZS0+Y29ubmVjdGlvbigpCisgICAg
W1dlYkRvd25sb2FkIF9kb3dubG9hZFdpdGhMb2FkaW5nQ29ubmVjdGlvbjpoYW5kbGUtPmNvbm5l
Y3Rpb24oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
cG9uc2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZTpbd2ViVmlldyBk
b3dubG9hZERlbGVnYXRlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJveHk6cHJveHldOwotICAgIAotICAgIHNldE9y
aWdpbmFsVVJMRm9yRG93bmxvYWQoZG93bmxvYWQsIGluaXRpYWxSZXF1ZXN0KTsgICAgCiAjZW5k
aWYKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0T3JpZ2luYWxVUkxGb3JEb3du
bG9hZChXZWJEb3dubG9hZCAqZG93bmxvYWQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW5pdGlh
bFJlcXVlc3QpIGNvbnN0Ci17Ci0gICAgTlNVUkxSZXF1ZXN0ICppbml0aWFsVVJMUmVxdWVzdCA9
IGluaXRpYWxSZXF1ZXN0Lm5zVVJMUmVxdWVzdCgpOwotICAgIE5TVVJMICpvcmlnaW5hbFVSTCA9
IG5pbDsKLSAgICAKLSAgICAvLyBJZiB0aGVyZSB3YXMgbm8gcmVmZXJyZXIsIGRvbid0IHRyYXZl
cnNlIHRoZSBiYWNrL2ZvcndhcmQgaGlzdG9yeQotICAgIC8vIHNpbmNlIHRoaXMgZG93bmxvYWQg
d2FzIGluaXRpYXRlZCBkaXJlY3RseS4gPHJkYXI6Ly9wcm9ibGVtLzUyOTQ2OTE+Ci0gICAgaWYg
KFtpbml0aWFsVVJMUmVxdWVzdCB2YWx1ZUZvckhUVFBIZWFkZXJGaWVsZDpAIlJlZmVyZXIiXSkg
ewotICAgICAgICAvLyBmaW5kIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBoaXN0b3J5IHRoYXQgd2Fz
IG9yaWdpbmF0ZWQgYnkgdGhlIHVzZXIKLSAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdl
YlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7Ci0gICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdCAqaGlz
dG9yeSA9IFt3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdF07Ci0gICAgICAgIGludCBiYWNrTGlzdENv
dW50ID0gW2hpc3RvcnkgYmFja0xpc3RDb3VudF07Ci0gICAgICAgIGZvciAoaW50IGJhY2tJbmRl
eCA9IDA7IGJhY2tJbmRleCA8PSBiYWNrTGlzdENvdW50ICYmICFvcmlnaW5hbFVSTDsgYmFja0lu
ZGV4KyspIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBdCBvbmUgcG9pbnQgd2UgaGFkIGNvZGUg
aGVyZSB0byBjaGVjayBhICJ3YXMgdXNlciBnZXN0dXJlIiBmbGFnLgotICAgICAgICAgICAgLy8g
RG8gd2UgbmVlZCB0byByZXN0b3JlIHRoYXQgbG9naWM/Ci0gICAgICAgICAgICBvcmlnaW5hbFVS
TCA9IFtbaGlzdG9yeSBpdGVtQXRJbmRleDotYmFja0luZGV4XSBVUkxdOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgaWYgKCFvcmlnaW5hbFVSTCkKLSAgICAgICAgb3JpZ2luYWxVUkwgPSBbaW5p
dGlhbFVSTFJlcXVlc3QgVVJMXTsKLQotICAgIGlmIChbZG93bmxvYWQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfc2V0T3JpZ2luYXRpbmdVUkw6KV0pIHsKLSAgICAgICAgTlNTdHJpbmcg
KnNjaGVtZSA9IFtvcmlnaW5hbFVSTCBzY2hlbWVdOwotICAgICAgICBOU1N0cmluZyAqaG9zdCA9
IFtvcmlnaW5hbFVSTCBob3N0XTsKLSAgICAgICAgaWYgKHNjaGVtZSAmJiBob3N0ICYmIFtzY2hl
bWUgbGVuZ3RoXSAmJiBbaG9zdCBsZW5ndGhdKSB7Ci0gICAgICAgICAgICBOU051bWJlciAqcG9y
dCA9IFtvcmlnaW5hbFVSTCBwb3J0XTsKLSAgICAgICAgICAgIGlmIChwb3J0ICYmIFtwb3J0IGlu
dFZhbHVlXSA8IDApCi0gICAgICAgICAgICAgICAgcG9ydCA9IG5pbDsKLSAgICAgICAgICAgIE5T
U3RyaW5nICpob3N0T25seVVSTFN0cmluZzsKLSAgICAgICAgICAgIGlmIChwb3J0KQotICAgICAg
ICAgICAgICAgIGhvc3RPbmx5VVJMU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhG
b3JtYXQ6QCIlQDovLyVAOiVkIiwgc2NoZW1lLCBob3N0LCBbcG9ydCBpbnRWYWx1ZV1dOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGhvc3RPbmx5VVJMU3RyaW5nID0gW1tOU1N0
cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6QCIlQDovLyVAIiwgc2NoZW1lLCBob3N0XTsKLSAg
ICAgICAgICAgIE5TVVJMICpob3N0T25seVVSTCA9IFtbTlNVUkwgYWxsb2NdIGluaXRXaXRoU3Ry
aW5nOmhvc3RPbmx5VVJMU3RyaW5nXTsKLSAgICAgICAgICAgIFtob3N0T25seVVSTFN0cmluZyBy
ZWxlYXNlXTsKLSAgICAgICAgICAgIFtkb3dubG9hZCBfc2V0T3JpZ2luYXRpbmdVUkw6aG9zdE9u
bHlVUkxdOwotICAgICAgICAgICAgW2hvc3RPbmx5VVJMIHJlbGVhc2VdOwotICAgICAgICB9Ci0g
ICAgfQotfQotCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNv
dXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBpbnQg
bGVuZ3RoKQogewogICAgIGFwcGx5QXBwbGVEaWN0aW9uYXJ5QXBwbGljYXRpb25RdWlyayh0aGlz
LCByZXF1ZXN0KTsKQEAgLTg2Niw5ICs4MTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpzZXRNYWluRnJhbWVECiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2Fk
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiAvKiBzdWdnZXN0
ZWROYW1lICovKQogewogICAgIC8vIEZJWE1FOiBTaG91bGQgZG93bmxvYWQgZnVsbCByZXF1ZXN0
LgotICAgIFdlYkRvd25sb2FkICpkb3dubG9hZCA9IFtnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0
KCkpIF9kb3dubG9hZFVSTDpyZXF1ZXN0LnVybCgpXTsKLSAgICAKLSAgICBzZXRPcmlnaW5hbFVS
TEZvckRvd25sb2FkKGRvd25sb2FkLCByZXF1ZXN0KTsKKyAgICBbZ2V0V2ViVmlldyhtX3dlYkZy
YW1lLmdldCgpKSBfZG93bmxvYWRVUkw6cmVxdWVzdC51cmwoKV07CiB9CiAKIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OndpbGxDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciogbG9hZGVyKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>