<?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>120411</bug_id>
          
          <creation_ts>2013-08-28 06:50:34 -0700</creation_ts>
          <short_desc>Clean up XPathExpressionNode and XPath::Function</short_desc>
          <delta_ts>2013-08-28 08:29:29 -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>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>921975</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-28 06:50:34 -0700</bug_when>
    <thetext>Clean up XPathExpressionNode and XPath::Function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921976</commentid>
    <comment_count>1</comment_count>
      <attachid>209877</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-28 06:53:50 -0700</bug_when>
    <thetext>Created attachment 209877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922000</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-28 07:30:18 -0700</bug_when>
    <thetext>Committed r154745: &lt;http://trac.webkit.org/changeset/154745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922020</commentid>
    <comment_count>3</comment_count>
      <attachid>209877</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-28 08:29:29 -0700</bug_when>
    <thetext>Comment on attachment 209877
Patch

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

Nice!

&gt; Source/WebCore/xml/XPathExpressionNode.cpp:3
&gt; - * Copyright (C) 2006 Apple Computer, Inc.
&gt; + * Copyright (C) 2006, 2013 Apple Computer, Inc.

Computer?..</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209877</attachid>
            <date>2013-08-28 06:53:50 -0700</date>
            <delta_ts>2013-08-28 08:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120411-20130828065353.patch</filename>
            <type>text/plain</type>
            <size>20495</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkxMGQ1MDc2NmFjNDIy
YTZlYjI0OWVmZjI3YTA0ZmVmNTA1MWUxNS4uNTJlZTQ0YTNkYThmMGMzYjYzMGQwNjViOTU2MGQy
ZGFmNDg1ZDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA4LTI4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgWFBh
dGhFeHByZXNzaW9uTm9kZSBhbmQgWFBhdGg6OkZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA0MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgdGhlIHN1YmV4cHJlc3Npb24gYW5k
IGZ1bmN0aW9uIGFyZ3VtZW50IGdldHRlcnMgdG8gYmUgbW9yZSBkZXNjcmlwdGl2ZSwKKyAgICAg
ICAgcmVtb3ZlIHRoZSBub24tY29uc3Qgb3ZlcmxvYWRzICh0aGV5IHdlcmUgbmV2ZXIgdXNlZCkg
YW5kIGNoYW5nZSB0aGUgZ2V0dGVycyB0byByZXR1cm4KKyAgICAgICAgcmVmZXJlbmNlcyBzaW5j
ZSB0aGV5IGNhbiBuZXZlciBiZSBudWxsLgorCisgICAgICAgICogeG1sL1hQYXRoRXhwcmVzc2lv
bk5vZGUuY3BwOgorICAgICAgICAqIHhtbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmg6CisgICAgICAg
IChXZWJDb3JlOjpYUGF0aDo6UGFyc2VOb2RlOjp+UGFyc2VOb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uOjphZGRTdWJFeHByZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlhQYXRoOjpFeHByZXNzaW9uOjppc0NvbnRleHROb2RlU2Vuc2l0aXZlKToKKyAgICAgICAg
KFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uOjpzZXRJc0NvbnRleHROb2RlU2Vuc2l0aXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpFeHByZXNzaW9uOjppc0NvbnRleHRQb3NpdGlvblNl
bnNpdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RXhwcmVzc2lvbjo6c2V0SXNDb250
ZXh0UG9zaXRpb25TZW5zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkV4cHJlc3Np
b246OmlzQ29udGV4dFNpemVTZW5zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkV4
cHJlc3Npb246OnNldElzQ29udGV4dFNpemVTZW5zaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
WFBhdGg6OkV4cHJlc3Npb246OnN1YkV4cHJlc3Npb25Db3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpYUGF0aDo6RXhwcmVzc2lvbjo6c3ViRXhwcmVzc2lvbik6CisgICAgICAgICogeG1sL1hQYXRo
RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5jdGlvbjo6c2V0QXJn
dW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5JZDo6ZXZhbHVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bkxvY2FsTmFtZTo6ZXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6WFBhdGg6OkZ1bk5hbWVzcGFjZVVSSTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6WFBhdGg6OkZ1bk5hbWU6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRo
OjpGdW5Db3VudDo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN0cmlu
Zzo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bkNvbmNhdDo6ZXZhbHVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN0YXJ0c1dpdGg6OmV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5Db250YWluczo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN1YnN0cmluZ0JlZm9yZTo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN1YnN0cmluZ0FmdGVyOjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpYUGF0aDo6RnVuU3Vic3RyaW5nOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpYUGF0aDo6RnVuU3RyaW5nTGVuZ3RoOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpYUGF0aDo6RnVuTm9ybWFsaXplU3BhY2U6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlhQYXRoOjpGdW5UcmFuc2xhdGU6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRo
OjpGdW5Cb29sZWFuOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuTm90
OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVuTGFuZzo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bk51bWJlcjo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6WFBhdGg6OkZ1blN1bTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
WFBhdGg6OkZ1bkZsb29yOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RnVu
Q2VpbGluZzo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1blJvdW5kOjpl
dmFsdWF0ZSk6CisgICAgICAgICogeG1sL1hQYXRoRnVuY3Rpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjpYUGF0aDo6RnVuY3Rpb246OnNldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OkZ1bmN0aW9uOjphcmd1bWVudENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpGdW5j
dGlvbjo6YXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bmN0aW9uOjpuYW1l
KToKKyAgICAgICAgKiB4bWwvWFBhdGhQcmVkaWNhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WFBhdGg6Ok5lZ2F0aXZlOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6TnVt
ZXJpY09wOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6RXFUZXN0T3A6OmV2
YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpMb2dpY2FsT3A6OmV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpVbmlvbjo6ZXZhbHVhdGUpOgorCiAyMDEzLTA4LTI4
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGRlc2Nl
bmRhbnQgaXRlcmF0b3JzIGFsd2F5cyByZXF1aXJlIENvbnRhaW5lck5vZGUgcm9vdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuY3BwCmluZGV4IDlkYjQ4ODg3MGMxMzJm
Nzg2MGExNzNlYzBlZWNiYzNiMWMxNWU5ODIuLmUzN2NjZGFlOGJjNTI5ZGY3MTM1YTc4Mzg3NTZk
ZGY4ZTQ2OWM5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Np
b25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5j
cHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IDIwMDUgRnJlcmljaCBSYWFiZSA8
cmFhYmVAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEzIEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDUgKzUxLDUgQEAgRXhwcmVzc2lvbjo6
fkV4cHJlc3Npb24oKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3N1YkV4cHJlc3Npb25zKTsKIH0K
IAotfQotfQorfSAvLyBuYW1lc3BhY2UgWFBhdGgKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb25Ob2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uTm9kZS5oCmluZGV4IDg5NDVjZjM1ZjJlZjk0
ZDI5YTZiODkxMzcxZmE3NDMzMGRkYjk5MTIuLjFlY2U0YjNiMWIzYjA4NDY3OTI2MTBhZjI3YzU3
ODI0YmUxNmY2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Np
b25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbk5vZGUuaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRnJlcmljaCBSYWFiZSA8
cmFhYmVAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOSBBcHBsZSBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDksIDIwMTMgQXBwbGUgSW5jLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2OCArMzQsNjcgQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBYUGF0aCB7
CisKK3N0cnVjdCBFdmFsdWF0aW9uQ29udGV4dCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgUmVmUHRyPE5vZGU+IG5vZGU7CisgICAgdW5zaWduZWQgbG9uZyBz
aXplOworICAgIHVuc2lnbmVkIGxvbmcgcG9zaXRpb247CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gdmFyaWFibGVCaW5kaW5nczsKKworICAgIGJvb2wgaGFkVHlwZUNvbnZlcnNpb25FcnJv
cjsKK307CisKK2NsYXNzIFBhcnNlTm9kZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGFyc2VO
b2RlKCkgeyB9Cit9OworCitjbGFzcyBFeHByZXNzaW9uIDogcHVibGljIFBhcnNlTm9kZSB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXhwcmVzc2lvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBFdmFsdWF0aW9uQ29udGV4dCYgZXZhbHVhdGlvbkNv
bnRleHQoKTsKKworICAgIHZpcnR1YWwgfkV4cHJlc3Npb24oKTsKKworICAgIHZvaWQgYWRkU3Vi
RXhwcmVzc2lvbihFeHByZXNzaW9uKiBleHByKQorICAgIHsKKyAgICAgICAgbV9zdWJFeHByZXNz
aW9ucy5hcHBlbmQoZXhwcik7CisgICAgICAgIG1faXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSB8PSBl
eHByLT5tX2lzQ29udGV4dE5vZGVTZW5zaXRpdmU7CisgICAgICAgIG1faXNDb250ZXh0UG9zaXRp
b25TZW5zaXRpdmUgfD0gZXhwci0+bV9pc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZTsKKyAgICAg
ICAgbV9pc0NvbnRleHRTaXplU2Vuc2l0aXZlIHw9IGV4cHItPm1faXNDb250ZXh0U2l6ZVNlbnNp
dGl2ZTsKKyAgICB9CiAKLSAgICBuYW1lc3BhY2UgWFBhdGggewotICAgICAgICAKLSAgICAgICAg
c3RydWN0IEV2YWx1YXRpb25Db250ZXh0IHsKLSAgICAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZTsK
LSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxv
bmcgcG9zaXRpb247Ci0gICAgICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YXJpYWJs
ZUJpbmRpbmdzOwotCi0gICAgICAgICAgICBib29sIGhhZFR5cGVDb252ZXJzaW9uRXJyb3I7Ci0g
ICAgICAgIH07Ci0KLSAgICAgICAgY2xhc3MgUGFyc2VOb2RlIHsKLSAgICAgICAgcHVibGljOgot
ICAgICAgICAgICAgdmlydHVhbCB+UGFyc2VOb2RlKCkgeyB9Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgY2xhc3MgRXhwcmVzc2lvbiA6IHB1YmxpYyBQYXJzZU5vZGUgewotICAgICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRXhwcmVzc2lvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
ICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBzdGF0aWMgRXZhbHVhdGlvbkNvbnRleHQmIGV2
YWx1YXRpb25Db250ZXh0KCk7Ci0KLSAgICAgICAgICAgIEV4cHJlc3Npb24oKTsKLSAgICAgICAg
ICAgIHZpcnR1YWwgfkV4cHJlc3Npb24oKTsKLQotICAgICAgICAgICAgdmlydHVhbCBWYWx1ZSBl
dmFsdWF0ZSgpIGNvbnN0ID0gMDsKLQotICAgICAgICAgICAgdm9pZCBhZGRTdWJFeHByZXNzaW9u
KEV4cHJlc3Npb24qIGV4cHIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbV9zdWJF
eHByZXNzaW9ucy5hcHBlbmQoZXhwcik7Ci0gICAgICAgICAgICAgICAgbV9pc0NvbnRleHROb2Rl
U2Vuc2l0aXZlIHw9IGV4cHItPm1faXNDb250ZXh0Tm9kZVNlbnNpdGl2ZTsKLSAgICAgICAgICAg
ICAgICBtX2lzQ29udGV4dFBvc2l0aW9uU2Vuc2l0aXZlIHw9IGV4cHItPm1faXNDb250ZXh0UG9z
aXRpb25TZW5zaXRpdmU7Ci0gICAgICAgICAgICAgICAgbV9pc0NvbnRleHRTaXplU2Vuc2l0aXZl
IHw9IGV4cHItPm1faXNDb250ZXh0U2l6ZVNlbnNpdGl2ZTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgYm9vbCBpc0NvbnRleHROb2RlU2Vuc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0NvbnRleHROb2RlU2Vuc2l0aXZlOyB9Ci0gICAgICAgICAgICBib29sIGlzQ29udGV4dFBvc2l0
aW9uU2Vuc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2
ZTsgfQotICAgICAgICAgICAgYm9vbCBpc0NvbnRleHRTaXplU2Vuc2l0aXZlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0NvbnRleHRTaXplU2Vuc2l0aXZlOyB9Ci0gICAgICAgICAgICB2b2lkIHNldElz
Q29udGV4dE5vZGVTZW5zaXRpdmUoYm9vbCB2YWx1ZSkgeyBtX2lzQ29udGV4dE5vZGVTZW5zaXRp
dmUgPSB2YWx1ZTsgfQotICAgICAgICAgICAgdm9pZCBzZXRJc0NvbnRleHRQb3NpdGlvblNlbnNp
dGl2ZShib29sIHZhbHVlKSB7IG1faXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmUgPSB2YWx1ZTsg
fQotICAgICAgICAgICAgdm9pZCBzZXRJc0NvbnRleHRTaXplU2Vuc2l0aXZlKGJvb2wgdmFsdWUp
IHsgbV9pc0NvbnRleHRTaXplU2Vuc2l0aXZlID0gdmFsdWU7IH0KLQotICAgICAgICAgICAgdmly
dHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgPSAwOwotCi0gICAgICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgICAgIHVuc2lnbmVkIHN1YkV4cHJDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3ViRXhwcmVzc2lvbnMuc2l6ZSgpOyB9Ci0gICAgICAgICAgICBFeHByZXNzaW9uKiBzdWJF
eHByKHVuc2lnbmVkIGkpIHsgcmV0dXJuIG1fc3ViRXhwcmVzc2lvbnNbaV07IH0KLSAgICAgICAg
ICAgIGNvbnN0IEV4cHJlc3Npb24qIHN1YkV4cHIodW5zaWduZWQgaSkgY29uc3QgeyByZXR1cm4g
bV9zdWJFeHByZXNzaW9uc1tpXTsgfQotCi0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBW
ZWN0b3I8RXhwcmVzc2lvbio+IG1fc3ViRXhwcmVzc2lvbnM7Ci0KLSAgICAgICAgICAgIC8vIEV2
YWx1YXRpb24gZGV0YWlscyB0aGF0IGNhbiBiZSB1c2VkIGZvciBvcHRpbWl6YXRpb24uCi0gICAg
ICAgICAgICBib29sIG1faXNDb250ZXh0Tm9kZVNlbnNpdGl2ZTsKLSAgICAgICAgICAgIGJvb2wg
bV9pc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZTsKLSAgICAgICAgICAgIGJvb2wgbV9pc0NvbnRl
eHRTaXplU2Vuc2l0aXZlOwotICAgICAgICB9OworICAgIGJvb2wgaXNDb250ZXh0Tm9kZVNlbnNp
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250ZXh0Tm9kZVNlbnNpdGl2ZTsgfQorICAgIHZv
aWQgc2V0SXNDb250ZXh0Tm9kZVNlbnNpdGl2ZShib29sIHZhbHVlKSB7IG1faXNDb250ZXh0Tm9k
ZVNlbnNpdGl2ZSA9IHZhbHVlOyB9CiAKLSAgICB9CisgICAgYm9vbCBpc0NvbnRleHRQb3NpdGlv
blNlbnNpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250ZXh0UG9zaXRpb25TZW5zaXRpdmU7
IH0KKyAgICB2b2lkIHNldElzQ29udGV4dFBvc2l0aW9uU2Vuc2l0aXZlKGJvb2wgdmFsdWUpIHsg
bV9pc0NvbnRleHRQb3NpdGlvblNlbnNpdGl2ZSA9IHZhbHVlOyB9CisKKyAgICBib29sIGlzQ29u
dGV4dFNpemVTZW5zaXRpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQ29udGV4dFNpemVTZW5zaXRp
dmU7IH0KKyAgICB2b2lkIHNldElzQ29udGV4dFNpemVTZW5zaXRpdmUoYm9vbCB2YWx1ZSkgeyBt
X2lzQ29udGV4dFNpemVTZW5zaXRpdmUgPSB2YWx1ZTsgfQorCisgICAgdmlydHVhbCBWYWx1ZSBl
dmFsdWF0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUo
KSBjb25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBFeHByZXNzaW9uKCk7CisKKyAgICB1bnNp
Z25lZCBzdWJFeHByZXNzaW9uQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3N1YkV4cHJlc3Npb25z
LnNpemUoKTsgfQorICAgIGNvbnN0IEV4cHJlc3Npb24mIHN1YkV4cHJlc3Npb24odW5zaWduZWQg
aSkgY29uc3QgeyByZXR1cm4gKm1fc3ViRXhwcmVzc2lvbnNbaV07IH0KKworcHJpdmF0ZToKKyAg
ICBWZWN0b3I8RXhwcmVzc2lvbio+IG1fc3ViRXhwcmVzc2lvbnM7CisKKyAgICAvLyBFdmFsdWF0
aW9uIGRldGFpbHMgdGhhdCBjYW4gYmUgdXNlZCBmb3Igb3B0aW1pemF0aW9uLgorICAgIGJvb2wg
bV9pc0NvbnRleHROb2RlU2Vuc2l0aXZlOworICAgIGJvb2wgbV9pc0NvbnRleHRQb3NpdGlvblNl
bnNpdGl2ZTsKKyAgICBib29sIG1faXNDb250ZXh0U2l6ZVNlbnNpdGl2ZTsKK307CiAKLX0KK30g
Ly8gbmFtZXNwYWNlIFhQYXRoCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBF
WFBSRVNTSU9OX0gKKyNlbmRpZiAvLyBYUGF0aEV4cHJlc3Npb25Ob2RlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDllNjZmMThmNTA2ODYzZjQwNzJkNzNjYjUyMzcw
ZWM0Mjk3NzM2OTMuLmQzY2M5OTEwMTZmYWUwMmI3MWRjMzQ4YWVjZjQ1MWEzMzY0ZTllN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIGlu
bGluZSBib29sIEludGVydmFsOjpjb250YWlucyhpbnQgdmFsdWUpIGNvbnN0CiAKIHZvaWQgRnVu
Y3Rpb246OnNldEFyZ3VtZW50cyhjb25zdCBWZWN0b3I8RXhwcmVzc2lvbio+JiBhcmdzKQogewot
ICAgIEFTU0VSVCghc3ViRXhwckNvdW50KCkpOworICAgIEFTU0VSVCghc3ViRXhwcmVzc2lvbkNv
dW50KCkpOwogCiAgICAgLy8gU29tZSBmdW5jdGlvbnMgdXNlIGNvbnRleHQgbm9kZSBhcyBpbXBs
aWNpdCBhcmd1bWVudCwgc28gd2hlbiBleHBsaWNpdCBhcmd1bWVudHMgYXJlIGFkZGVkLCB0aGV5
IG1heSBubyBsb25nZXIgYmUgY29udGV4dCBub2RlIHNlbnNpdGl2ZS4KICAgICBpZiAobV9uYW1l
ICE9ICJsYW5nIiAmJiAhYXJncy5pc0VtcHR5KCkpCkBAIC0zMTUsNyArMzE1LDcgQEAgVmFsdWUg
RnVuUG9zaXRpb246OmV2YWx1YXRlKCkgY29uc3QKIAogVmFsdWUgRnVuSWQ6OmV2YWx1YXRlKCkg
Y29uc3QKIHsKLSAgICBWYWx1ZSBhID0gYXJnKDApLT5ldmFsdWF0ZSgpOworICAgIFZhbHVlIGEg
PSBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpOwogICAgIFN0cmluZ0J1aWxkZXIgaWRMaXN0OyAvLyBB
IHdoaXRlc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgSURzCiAKICAgICBpZiAoYS5pc05vZGVTZXQo
KSkgewpAQCAtMzc4LDggKzM3OCw4IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGV4cGFuZGVkTmFt
ZShOb2RlKiBub2RlKQogCiBWYWx1ZSBGdW5Mb2NhbE5hbWU6OmV2YWx1YXRlKCkgY29uc3QKIHsK
LSAgICBpZiAoYXJnQ291bnQoKSA+IDApIHsKLSAgICAgICAgVmFsdWUgYSA9IGFyZygwKS0+ZXZh
bHVhdGUoKTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCgpID4gMCkgeworICAgICAgICBWYWx1ZSBh
ID0gYXJndW1lbnQoMCkuZXZhbHVhdGUoKTsKICAgICAgICAgaWYgKCFhLmlzTm9kZVNldCgpKQog
ICAgICAgICAgICAgcmV0dXJuICIiOwogCkBAIC0zOTIsOCArMzkyLDggQEAgVmFsdWUgRnVuTG9j
YWxOYW1lOjpldmFsdWF0ZSgpIGNvbnN0CiAKIFZhbHVlIEZ1bk5hbWVzcGFjZVVSSTo6ZXZhbHVh
dGUoKSBjb25zdAogewotICAgIGlmIChhcmdDb3VudCgpID4gMCkgewotICAgICAgICBWYWx1ZSBh
ID0gYXJnKDApLT5ldmFsdWF0ZSgpOworICAgIGlmIChhcmd1bWVudENvdW50KCkgPiAwKSB7Cisg
ICAgICAgIFZhbHVlIGEgPSBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpOwogICAgICAgICBpZiAoIWEu
aXNOb2RlU2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gIiI7CiAKQEAgLTQwNiw4ICs0MDYsOCBA
QCBWYWx1ZSBGdW5OYW1lc3BhY2VVUkk6OmV2YWx1YXRlKCkgY29uc3QKIAogVmFsdWUgRnVuTmFt
ZTo6ZXZhbHVhdGUoKSBjb25zdAogewotICAgIGlmIChhcmdDb3VudCgpID4gMCkgewotICAgICAg
ICBWYWx1ZSBhID0gYXJnKDApLT5ldmFsdWF0ZSgpOworICAgIGlmIChhcmd1bWVudENvdW50KCkg
PiAwKSB7CisgICAgICAgIFZhbHVlIGEgPSBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpOwogICAgICAg
ICBpZiAoIWEuaXNOb2RlU2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gIiI7CiAKQEAgLTQyMCwx
NiArNDIwLDE2IEBAIFZhbHVlIEZ1bk5hbWU6OmV2YWx1YXRlKCkgY29uc3QKIAogVmFsdWUgRnVu
Q291bnQ6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBWYWx1ZSBhID0gYXJnKDApLT5ldmFsdWF0
ZSgpOworICAgIFZhbHVlIGEgPSBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpOwogICAgIAogICAgIHJl
dHVybiBkb3VibGUoYS50b05vZGVTZXQoKS5zaXplKCkpOwogfQogCiBWYWx1ZSBGdW5TdHJpbmc6
OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIWFyZ0NvdW50KCkpCisgICAgaWYgKCFhcmd1
bWVudENvdW50KCkpCiAgICAgICAgIHJldHVybiBWYWx1ZShFeHByZXNzaW9uOjpldmFsdWF0aW9u
Q29udGV4dCgpLm5vZGUuZ2V0KCkpLnRvU3RyaW5nKCk7Ci0gICAgcmV0dXJuIGFyZygwKS0+ZXZh
bHVhdGUoKS50b1N0cmluZygpOworICAgIHJldHVybiBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpLnRv
U3RyaW5nKCk7CiB9CiAKIFZhbHVlIEZ1bkNvbmNhdDo6ZXZhbHVhdGUoKSBjb25zdApAQCAtNDM3
LDkgKzQzNyw4IEBAIFZhbHVlIEZ1bkNvbmNhdDo6ZXZhbHVhdGUoKSBjb25zdAogICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMTAyNCk7CiAKLSAg
ICB1bnNpZ25lZCBjb3VudCA9IGFyZ0NvdW50KCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgU3RyaW5nIHN0cihhcmcoaSktPmV2YWx1YXRlKCku
dG9TdHJpbmcoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSBhcmd1bWVudENv
dW50KCk7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIFN0cmluZyBzdHIoYXJndW1lbnQoaSku
ZXZhbHVhdGUoKS50b1N0cmluZygpKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChzdHIpOwogICAg
IH0KIApAQCAtNDQ4LDggKzQ0Nyw4IEBAIFZhbHVlIEZ1bkNvbmNhdDo6ZXZhbHVhdGUoKSBjb25z
dAogCiBWYWx1ZSBGdW5TdGFydHNXaXRoOjpldmFsdWF0ZSgpIGNvbnN0CiB7Ci0gICAgU3RyaW5n
IHMxID0gYXJnKDApLT5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7Ci0gICAgU3RyaW5nIHMyID0gYXJn
KDEpLT5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHMxID0gYXJndW1lbnQoMCku
ZXZhbHVhdGUoKS50b1N0cmluZygpOworICAgIFN0cmluZyBzMiA9IGFyZ3VtZW50KDEpLmV2YWx1
YXRlKCkudG9TdHJpbmcoKTsKIAogICAgIGlmIChzMi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNDU5LDggKzQ1OCw4IEBAIFZhbHVlIEZ1blN0YXJ0c1dpdGg6OmV2YWx1YXRl
KCkgY29uc3QKIAogVmFsdWUgRnVuQ29udGFpbnM6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBT
dHJpbmcgczEgPSBhcmcoMCktPmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKLSAgICBTdHJpbmcgczIg
PSBhcmcoMSktPmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgczEgPSBhcmd1bWVu
dCgwKS5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHMyID0gYXJndW1lbnQoMSku
ZXZhbHVhdGUoKS50b1N0cmluZygpOwogCiAgICAgaWYgKHMyLmlzRW1wdHkoKSkgCiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtNDcwLDggKzQ2OSw4IEBAIFZhbHVlIEZ1bkNvbnRhaW5zOjpldmFs
dWF0ZSgpIGNvbnN0CiAKIFZhbHVlIEZ1blN1YnN0cmluZ0JlZm9yZTo6ZXZhbHVhdGUoKSBjb25z
dAogewotICAgIFN0cmluZyBzMSA9IGFyZygwKS0+ZXZhbHVhdGUoKS50b1N0cmluZygpOwotICAg
IFN0cmluZyBzMiA9IGFyZygxKS0+ZXZhbHVhdGUoKS50b1N0cmluZygpOworICAgIFN0cmluZyBz
MSA9IGFyZ3VtZW50KDApLmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcgczIgPSBh
cmd1bWVudCgxKS5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7CiAKICAgICBpZiAoczIuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gIiI7CkBAIC00ODYsOCArNDg1LDggQEAgVmFsdWUgRnVuU3Vic3Ry
aW5nQmVmb3JlOjpldmFsdWF0ZSgpIGNvbnN0CiAKIFZhbHVlIEZ1blN1YnN0cmluZ0FmdGVyOjpl
dmFsdWF0ZSgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHMxID0gYXJnKDApLT5ldmFsdWF0ZSgpLnRv
U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHMyID0gYXJnKDEpLT5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7
CisgICAgU3RyaW5nIHMxID0gYXJndW1lbnQoMCkuZXZhbHVhdGUoKS50b1N0cmluZygpOworICAg
IFN0cmluZyBzMiA9IGFyZ3VtZW50KDEpLmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKIAogICAgIHNp
emVfdCBpID0gczEuZmluZChzMik7CiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCkBAIC00OTgsMTUg
KzQ5NywxNSBAQCBWYWx1ZSBGdW5TdWJzdHJpbmdBZnRlcjo6ZXZhbHVhdGUoKSBjb25zdAogCiBW
YWx1ZSBGdW5TdWJzdHJpbmc6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBTdHJpbmcgcyA9IGFy
ZygwKS0+ZXZhbHVhdGUoKS50b1N0cmluZygpOwotICAgIGRvdWJsZSBkb3VibGVQb3MgPSBhcmco
MSktPmV2YWx1YXRlKCkudG9OdW1iZXIoKTsKKyAgICBTdHJpbmcgcyA9IGFyZ3VtZW50KDApLmV2
YWx1YXRlKCkudG9TdHJpbmcoKTsKKyAgICBkb3VibGUgZG91YmxlUG9zID0gYXJndW1lbnQoMSku
ZXZhbHVhdGUoKS50b051bWJlcigpOwogICAgIGlmIChzdGQ6OmlzbmFuKGRvdWJsZVBvcykpCiAg
ICAgICAgIHJldHVybiAiIjsKICAgICBsb25nIHBvcyA9IHN0YXRpY19jYXN0PGxvbmc+KEZ1blJv
dW5kOjpyb3VuZChkb3VibGVQb3MpKTsKLSAgICBib29sIGhhdmVMZW5ndGggPSBhcmdDb3VudCgp
ID09IDM7CisgICAgYm9vbCBoYXZlTGVuZ3RoID0gYXJndW1lbnRDb3VudCgpID09IDM7CiAgICAg
bG9uZyBsZW4gPSAtMTsKICAgICBpZiAoaGF2ZUxlbmd0aCkgewotICAgICAgICBkb3VibGUgZG91
YmxlTGVuID0gYXJnKDIpLT5ldmFsdWF0ZSgpLnRvTnVtYmVyKCk7CisgICAgICAgIGRvdWJsZSBk
b3VibGVMZW4gPSBhcmd1bWVudCgyKS5ldmFsdWF0ZSgpLnRvTnVtYmVyKCk7CiAgICAgICAgIGlm
IChzdGQ6OmlzbmFuKGRvdWJsZUxlbikpCiAgICAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAg
IGxlbiA9IHN0YXRpY19jYXN0PGxvbmc+KEZ1blJvdW5kOjpyb3VuZChkb3VibGVMZW4pKTsKQEAg
LTUyOSwyNyArNTI4LDI3IEBAIFZhbHVlIEZ1blN1YnN0cmluZzo6ZXZhbHVhdGUoKSBjb25zdAog
CiBWYWx1ZSBGdW5TdHJpbmdMZW5ndGg6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIWFy
Z0NvdW50KCkpCisgICAgaWYgKCFhcmd1bWVudENvdW50KCkpCiAgICAgICAgIHJldHVybiBWYWx1
ZShFeHByZXNzaW9uOjpldmFsdWF0aW9uQ29udGV4dCgpLm5vZGUuZ2V0KCkpLnRvU3RyaW5nKCku
bGVuZ3RoKCk7Ci0gICAgcmV0dXJuIGFyZygwKS0+ZXZhbHVhdGUoKS50b1N0cmluZygpLmxlbmd0
aCgpOworICAgIHJldHVybiBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpLnRvU3RyaW5nKCkubGVuZ3Ro
KCk7CiB9CiAKIFZhbHVlIEZ1bk5vcm1hbGl6ZVNwYWNlOjpldmFsdWF0ZSgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFhcmdDb3VudCgpKSB7CisgICAgaWYgKCFhcmd1bWVudENvdW50KCkpIHsKICAgICAg
ICAgU3RyaW5nIHMgPSBWYWx1ZShFeHByZXNzaW9uOjpldmFsdWF0aW9uQ29udGV4dCgpLm5vZGUu
Z2V0KCkpLnRvU3RyaW5nKCk7CiAgICAgICAgIHJldHVybiBzLnNpbXBsaWZ5V2hpdGVTcGFjZSgp
OwogICAgIH0KIAotICAgIFN0cmluZyBzID0gYXJnKDApLT5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7
CisgICAgU3RyaW5nIHMgPSBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7CiAgICAg
cmV0dXJuIHMuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7CiB9CiAKIFZhbHVlIEZ1blRyYW5zbGF0ZTo6
ZXZhbHVhdGUoKSBjb25zdAogewotICAgIFN0cmluZyBzMSA9IGFyZygwKS0+ZXZhbHVhdGUoKS50
b1N0cmluZygpOwotICAgIFN0cmluZyBzMiA9IGFyZygxKS0+ZXZhbHVhdGUoKS50b1N0cmluZygp
OwotICAgIFN0cmluZyBzMyA9IGFyZygyKS0+ZXZhbHVhdGUoKS50b1N0cmluZygpOworICAgIFN0
cmluZyBzMSA9IGFyZ3VtZW50KDApLmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKKyAgICBTdHJpbmcg
czIgPSBhcmd1bWVudCgxKS5ldmFsdWF0ZSgpLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHMzID0g
YXJndW1lbnQoMikuZXZhbHVhdGUoKS50b1N0cmluZygpOwogICAgIFN0cmluZ0J1aWxkZXIgcmVz
dWx0OwogCiAgICAgZm9yICh1bnNpZ25lZCBpMSA9IDA7IGkxIDwgczEubGVuZ3RoKCk7ICsraTEp
IHsKQEAgLTU2NywxMiArNTY2LDEyIEBAIFZhbHVlIEZ1blRyYW5zbGF0ZTo6ZXZhbHVhdGUoKSBj
b25zdAogCiBWYWx1ZSBGdW5Cb29sZWFuOjpldmFsdWF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGFyZygwKS0+ZXZhbHVhdGUoKS50b0Jvb2xlYW4oKTsKKyAgICByZXR1cm4gYXJndW1lbnQoMCku
ZXZhbHVhdGUoKS50b0Jvb2xlYW4oKTsKIH0KIAogVmFsdWUgRnVuTm90OjpldmFsdWF0ZSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICFhcmcoMCktPmV2YWx1YXRlKCkudG9Cb29sZWFuKCk7CisgICAg
cmV0dXJuICFhcmd1bWVudCgwKS5ldmFsdWF0ZSgpLnRvQm9vbGVhbigpOwogfQogCiBWYWx1ZSBG
dW5UcnVlOjpldmFsdWF0ZSgpIGNvbnN0CkBAIC01ODIsNyArNTgxLDcgQEAgVmFsdWUgRnVuVHJ1
ZTo6ZXZhbHVhdGUoKSBjb25zdAogCiBWYWx1ZSBGdW5MYW5nOjpldmFsdWF0ZSgpIGNvbnN0CiB7
Ci0gICAgU3RyaW5nIGxhbmcgPSBhcmcoMCktPmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKKyAgICBT
dHJpbmcgbGFuZyA9IGFyZ3VtZW50KDApLmV2YWx1YXRlKCkudG9TdHJpbmcoKTsKIAogICAgIGNv
bnN0IEF0dHJpYnV0ZSogbGFuZ3VhZ2VBdHRyaWJ1dGUgPSAwOwogICAgIE5vZGUqIG5vZGUgPSBl
dmFsdWF0aW9uQ29udGV4dCgpLm5vZGUuZ2V0KCk7CkBAIC02MjIsMTQgKzYyMSwxNCBAQCBWYWx1
ZSBGdW5GYWxzZTo6ZXZhbHVhdGUoKSBjb25zdAogCiBWYWx1ZSBGdW5OdW1iZXI6OmV2YWx1YXRl
KCkgY29uc3QKIHsKLSAgICBpZiAoIWFyZ0NvdW50KCkpCisgICAgaWYgKCFhcmd1bWVudENvdW50
KCkpCiAgICAgICAgIHJldHVybiBWYWx1ZShFeHByZXNzaW9uOjpldmFsdWF0aW9uQ29udGV4dCgp
Lm5vZGUuZ2V0KCkpLnRvTnVtYmVyKCk7Ci0gICAgcmV0dXJuIGFyZygwKS0+ZXZhbHVhdGUoKS50
b051bWJlcigpOworICAgIHJldHVybiBhcmd1bWVudCgwKS5ldmFsdWF0ZSgpLnRvTnVtYmVyKCk7
CiB9CiAKIFZhbHVlIEZ1blN1bTo6ZXZhbHVhdGUoKSBjb25zdAogewotICAgIFZhbHVlIGEgPSBh
cmcoMCktPmV2YWx1YXRlKCk7CisgICAgVmFsdWUgYSA9IGFyZ3VtZW50KDApLmV2YWx1YXRlKCk7
CiAgICAgaWYgKCFhLmlzTm9kZVNldCgpKQogICAgICAgICByZXR1cm4gMC4wOwogCkBAIC02NDYs
MTIgKzY0NSwxMiBAQCBWYWx1ZSBGdW5TdW06OmV2YWx1YXRlKCkgY29uc3QKIAogVmFsdWUgRnVu
Rmxvb3I6OmV2YWx1YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmxvb3IoYXJnKDApLT5ldmFs
dWF0ZSgpLnRvTnVtYmVyKCkpOworICAgIHJldHVybiBmbG9vcihhcmd1bWVudCgwKS5ldmFsdWF0
ZSgpLnRvTnVtYmVyKCkpOwogfQogCiBWYWx1ZSBGdW5DZWlsaW5nOjpldmFsdWF0ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGNlaWwoYXJnKDApLT5ldmFsdWF0ZSgpLnRvTnVtYmVyKCkpOworICAg
IHJldHVybiBjZWlsKGFyZ3VtZW50KDApLmV2YWx1YXRlKCkudG9OdW1iZXIoKSk7CiB9CiAKIGRv
dWJsZSBGdW5Sb3VuZDo6cm91bmQoZG91YmxlIHZhbCkKQEAgLTY2Nyw3ICs2NjYsNyBAQCBkb3Vi
bGUgRnVuUm91bmQ6OnJvdW5kKGRvdWJsZSB2YWwpCiAKIFZhbHVlIEZ1blJvdW5kOjpldmFsdWF0
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJvdW5kKGFyZygwKS0+ZXZhbHVhdGUoKS50b051bWJl
cigpKTsKKyAgICByZXR1cm4gcm91bmQoYXJndW1lbnQoMCkuZXZhbHVhdGUoKS50b051bWJlcigp
KTsKIH0KIAogc3RydWN0IEZ1bmN0aW9uTWFwcGluZyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhGdW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0
aW9ucy5oCmluZGV4IDA4Njk4YTc1YjZmYTNmMGI0M2E0YTc2YzQzNzBmY2ZhZGFlMGE2NWUuLjk2
MjVjODgzYWU4YjIwYzFjNjg0MDY4NDZlOTE5ZTllNjYwMWMyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aEZ1bmN0aW9ucy5oCkBAIC0zMCwyNyArMzAsMjYgQEAKICNpbmNsdWRlICJYUGF0aEV4cHJl
c3Npb25Ob2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBYUGF0aCB7CiAK
LSAgICBuYW1lc3BhY2UgWFBhdGggeworY2xhc3MgRnVuY3Rpb24gOiBwdWJsaWMgRXhwcmVzc2lv
biB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRBcmd1bWVudHMoY29uc3QgVmVjdG9yPEV4cHJlc3Np
b24qPiYpOworICAgIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpIHsgbV9uYW1lID0g
bmFtZTsgfQogCi0gICAgICAgIGNsYXNzIEZ1bmN0aW9uIDogcHVibGljIEV4cHJlc3Npb24gewot
ICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICB2b2lkIHNldEFyZ3VtZW50cyhjb25zdCBWZWN0
b3I8RXhwcmVzc2lvbio+Jik7Ci0gICAgICAgICAgICB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5n
JiBuYW1lKSB7IG1fbmFtZSA9IG5hbWU7IH0KLSAgICAgICAgcHJvdGVjdGVkOgotICAgICAgICAg
ICAgRXhwcmVzc2lvbiogYXJnKGludCBwb3MpIHsgcmV0dXJuIHN1YkV4cHIocG9zKTsgfQotICAg
ICAgICAgICAgY29uc3QgRXhwcmVzc2lvbiogYXJnKGludCBwb3MpIGNvbnN0IHsgcmV0dXJuIHN1
YkV4cHIocG9zKTsgfQotICAgICAgICAgICAgdW5zaWduZWQgaW50IGFyZ0NvdW50KCkgY29uc3Qg
eyByZXR1cm4gc3ViRXhwckNvdW50KCk7IH0KLSAgICAgICAgICAgIFN0cmluZyBuYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9uYW1lOyB9Citwcm90ZWN0ZWQ6CisgICAgdW5zaWduZWQgYXJndW1lbnRD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIHN1YkV4cHJlc3Npb25Db3VudCgpOyB9CisgICAgY29uc3Qg
RXhwcmVzc2lvbiYgYXJndW1lbnQoaW50IHBvcykgY29uc3QgeyByZXR1cm4gc3ViRXhwcmVzc2lv
bihwb3MpOyB9CiAKLSAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIFN0cmluZyBtX25hbWU7
Ci0gICAgICAgIH07CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
IAotICAgICAgICBGdW5jdGlvbiogY3JlYXRlRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBWZWN0b3I8RXhwcmVzc2lvbio+JiBhcmdzID0gVmVjdG9yPEV4cHJlc3Npb24qPigpKTsK
K3ByaXZhdGU6CisgICAgU3RyaW5nIG1fbmFtZTsKK307CiAKLSAgICB9IC8vIG5hbWVzcGFjZSBY
UGF0aAorRnVuY3Rpb24qIGNyZWF0ZUZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPEV4cHJlc3Npb24qPiYgYXJncyA9IFZlY3RvcjxFeHByZXNzaW9uKj4oKSk7CiAKK30g
Ly8gbmFtZXNwYWNlIFhQYXRoCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBY
UGF0aEZ1bmN0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQcmVk
aWNhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRlLmNwcAppbmRleCAz
NjgwMGExMTc0MTZkMDcyNmEyYWIyMjI4OTk3YTBiZmIxYzg5MDVhLi5iYzhhMWMzYTZjMDUzNWJj
NTUxMmIyNDIyZjdjYzc4NTgwNGJkMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFBhdGhQcmVkaWNhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFByZWRpY2F0
ZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgVmFsdWUgU3RyaW5nRXhwcmVzc2lvbjo6ZXZhbHVhdGUo
KSBjb25zdAogCiBWYWx1ZSBOZWdhdGl2ZTo6ZXZhbHVhdGUoKSBjb25zdAogewotICAgIFZhbHVl
IHAoc3ViRXhwcigwKS0+ZXZhbHVhdGUoKSk7CisgICAgVmFsdWUgcChzdWJFeHByZXNzaW9uKDAp
LmV2YWx1YXRlKCkpOwogICAgIHJldHVybiAtcC50b051bWJlcigpOwogfQogCkBAIC03Myw4ICs3
Myw4IEBAIE51bWVyaWNPcDo6TnVtZXJpY09wKE9wY29kZSBvcGNvZGUsIEV4cHJlc3Npb24qIGxo
cywgRXhwcmVzc2lvbiogcmhzKQogCiBWYWx1ZSBOdW1lcmljT3A6OmV2YWx1YXRlKCkgY29uc3QK
IHsKLSAgICBWYWx1ZSBsaHMoc3ViRXhwcigwKS0+ZXZhbHVhdGUoKSk7Ci0gICAgVmFsdWUgcmhz
KHN1YkV4cHIoMSktPmV2YWx1YXRlKCkpOworICAgIFZhbHVlIGxocyhzdWJFeHByZXNzaW9uKDAp
LmV2YWx1YXRlKCkpOworICAgIFZhbHVlIHJocyhzdWJFeHByZXNzaW9uKDEpLmV2YWx1YXRlKCkp
OwogICAgIAogICAgIGRvdWJsZSBsZWZ0VmFsID0gbGhzLnRvTnVtYmVyKCk7CiAgICAgZG91Ymxl
IHJpZ2h0VmFsID0gcmhzLnRvTnVtYmVyKCk7CkBAIC0xOTIsOCArMTkyLDggQEAgYm9vbCBFcVRl
c3RPcDo6Y29tcGFyZShjb25zdCBWYWx1ZSYgbGhzLCBjb25zdCBWYWx1ZSYgcmhzKSBjb25zdAog
CiBWYWx1ZSBFcVRlc3RPcDo6ZXZhbHVhdGUoKSBjb25zdAogewotICAgIFZhbHVlIGxocyhzdWJF
eHByKDApLT5ldmFsdWF0ZSgpKTsKLSAgICBWYWx1ZSByaHMoc3ViRXhwcigxKS0+ZXZhbHVhdGUo
KSk7CisgICAgVmFsdWUgbGhzKHN1YkV4cHJlc3Npb24oMCkuZXZhbHVhdGUoKSk7CisgICAgVmFs
dWUgcmhzKHN1YkV4cHJlc3Npb24oMSkuZXZhbHVhdGUoKSk7CiAKICAgICByZXR1cm4gY29tcGFy
ZShsaHMsIHJocyk7CiB9CkBAIC0yMTUsNyArMjE1LDcgQEAgYm9vbCBMb2dpY2FsT3A6OnNob3J0
Q2lyY3VpdE9uKCkgY29uc3QKIAogVmFsdWUgTG9naWNhbE9wOjpldmFsdWF0ZSgpIGNvbnN0CiB7
Ci0gICAgVmFsdWUgbGhzKHN1YkV4cHIoMCktPmV2YWx1YXRlKCkpOworICAgIFZhbHVlIGxocyhz
dWJFeHByZXNzaW9uKDApLmV2YWx1YXRlKCkpOwogCiAgICAgLy8gVGhpcyBpcyBub3Qgb25seSBh
biBvcHRpbWl6YXRpb24sIGh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoCiAgICAgLy8gZGljdGF0
ZXMgdGhhdCB3ZSBtdXN0IGRvIHNob3J0LWNpcmN1aXQgZXZhbHVhdGlvbgpAQCAtMjIzLDEzICsy
MjMsMTMgQEAgVmFsdWUgTG9naWNhbE9wOjpldmFsdWF0ZSgpIGNvbnN0CiAgICAgaWYgKGxoc0Jv
b2wgPT0gc2hvcnRDaXJjdWl0T24oKSkKICAgICAgICAgcmV0dXJuIGxoc0Jvb2w7CiAKLSAgICBy
ZXR1cm4gc3ViRXhwcigxKS0+ZXZhbHVhdGUoKS50b0Jvb2xlYW4oKTsKKyAgICByZXR1cm4gc3Vi
RXhwcmVzc2lvbigxKS5ldmFsdWF0ZSgpLnRvQm9vbGVhbigpOwogfQogCiBWYWx1ZSBVbmlvbjo6
ZXZhbHVhdGUoKSBjb25zdAogewotICAgIFZhbHVlIGxoc1Jlc3VsdCA9IHN1YkV4cHIoMCktPmV2
YWx1YXRlKCk7Ci0gICAgVmFsdWUgcmhzID0gc3ViRXhwcigxKS0+ZXZhbHVhdGUoKTsKKyAgICBW
YWx1ZSBsaHNSZXN1bHQgPSBzdWJFeHByZXNzaW9uKDApLmV2YWx1YXRlKCk7CisgICAgVmFsdWUg
cmhzID0gc3ViRXhwcmVzc2lvbigxKS5ldmFsdWF0ZSgpOwogICAgIAogICAgIE5vZGVTZXQmIHJl
c3VsdFNldCA9IGxoc1Jlc3VsdC5tb2RpZmlhYmxlTm9kZVNldCgpOwogICAgIGNvbnN0IE5vZGVT
ZXQmIHJoc05vZGVzID0gcmhzLnRvTm9kZVNldCgpOwo=
</data>
<flag name="review"
          id="231937"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>