<?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>6040</bug_id>
          
          <creation_ts>2005-12-11 02:50:52 -0800</creation_ts>
          <short_desc>XSLT does not report errors to the user</short_desc>
          <delta_ts>2007-10-29 10:37:08 -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>XML</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15751</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25801</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-11 02:50:52 -0800</bug_when>
    <thetext>XSLT does not report errors to the user

See parseErrorFunc in XSLTProcessorImpl.*

I just added two testcases to catch this:

fast/xsl/xslt-mismatched-tags-in-xslt.xml  (currently produces blank output)
fast/xsl/xslt-missing-namespace-in-xslt.xml (currently parses result as html when it shouldn&apos;t)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59787</commentid>
    <comment_count>1</comment_count>
      <attachid>16936</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-10-29 09:33:09 -0700</bug_when>
    <thetext>Created attachment 16936
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59790</commentid>
    <comment_count>2</comment_count>
      <attachid>16936</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-29 09:53:33 -0700</bug_when>
    <thetext>Comment on attachment 16936
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59792</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-10-29 10:14:07 -0700</bug_when>
    <thetext>Committed revision 27227.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59793</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-10-29 10:17:51 -0700</bug_when>
    <thetext>NB: this patch sends errors to Web Inspector console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59795</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-29 10:37:08 -0700</bug_when>
    <thetext>This fix (wonderful as it is!) does not actually solve the issue this bug was originally about... so I&apos;ve filed bug 15751.  The fact that this change doesn&apos;t affect any tests concerns me.  I really think we should add a test case to demonstrate XSLTProcessor writing to the console.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16936</attachid>
            <date>2007-10-29 09:33:09 -0700</date>
            <delta_ts>2007-10-29 09:53:33 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>6040r1_patch.txt</filename>
            <type>text/plain</type>
            <size>21616</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzIyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMDctMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNDAKKyAgICAgICAgWFNM
VCBkb2VzIG5vdCByZXBvcnQgZXJyb3JzIHRvIHRoZSB1c2VyCisKKyAgICAgICAgTWFkZSBwYXJz
ZUVycm9yRnVuYyBhIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gb2YgWFNMVFByb2Nlc3NvciB0byBi
ZSByZXVzYWJsZSBmcm9tIFhTTFN0eWxlc2hlZXQuCisgICAgICAgIFN3aXRjaGVkIHRvIHhtbFNl
dFN0cnVjdHVyZWRFcnJvckZ1bmMgdG8gZ2V0IGFuIGVycm9yIHN0cnVjdHVyZSBpbnN0ZWFkIG9m
IGEgcHJlLWZvcm1hdHRlZCBjb25zb2xlCisgICAgICAgIG91dHB1dC4gR290IHJpZCBvZiBEZXBy
ZWNhdGVkU3RyaW5nIGluIFhTTFRQcm9jZXNzb3IuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGx5WFNMVHJhbnNmb3JtKToKKyAg
ICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xTdHls
ZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRYU0xUTG9h
ZENhbGxCYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlVG9TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6c2F2ZVJlc3VsdFRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZm9y
bVRleHRTdHJpbmdUb1hIVE1MRG9jdW1lbnRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6eHNs
dFBhcmFtQXJyYXlGcm9tUGFyYW1ldGVyTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmZyZWVYc2x0
UGFyYW1BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vzc29yOjpjcmVhdGVEb2N1
bWVudEZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OnhzbHRTdHlsZXNoZWV0UG9pbnRlcik6CisgICAgICAg
IChXZWJDb3JlOjp4bWxEb2NQdHJGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXN1bHRN
SU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub1N0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub0RvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRnJhZ21l
bnQpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpY
U0xUUHJvY2Vzc29yOjpzZXRYU0xTdHlsZXNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQ
cm9jZXNzb3I6OmltcG9ydFN0eWxlc2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6eHNsU3R5bGVzaGVldCk6CisKIDIwMDctMTAtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpJbmRleDog
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAkocmV2aXNpb24gMjcyMjMpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0NjYsMTAgKzI0NjYsMTEgQEAgdm9pZCBEb2N1bWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudAogICAgIGlmIChldnQtPnR5cGUoKSA9PSBrZXlkb3duRXZlbnQp
IHsKICAgICAgICAgS2V5Ym9hcmRFdmVudCoga2V2dCA9IHN0YXRpY19jYXN0PEtleWJvYXJkRXZl
bnQgKj4oZXZ0KTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIGlmIChrZXZ0LT5jdHJsS2V5
KCkpIHsKKyAgICAgICAgaWYgKGtldnQtPmN0cmxLZXkoKSkKICNlbHNlCi0gICAgICAgIGlmIChr
ZXZ0LT5hbHRLZXkoKSkgeworICAgICAgICBpZiAoa2V2dC0+YWx0S2V5KCkpCiAjZW5kaWYKKyAg
ICAgICAgewogICAgICAgICAgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBldiA9IGtl
dnQtPmtleUV2ZW50KCk7CiAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKGV2ID8gZXYtPnVubW9k
aWZpZWRUZXh0KCkgOiBrZXZ0LT5rZXlJZGVudGlmaWVyKCkpLmxvd2VyKCk7CiAgICAgICAgICAg
ICBFbGVtZW50KiBlbGVtID0gZ2V0RWxlbWVudEJ5QWNjZXNzS2V5KGtleSk7CkBAIC0zMzQ1LDkg
KzMzNDYsOSBAQCB2b2lkIERvY3VtZW50OjphcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzCiAgICAg
UmVmUHRyPFhTTFRQcm9jZXNzb3I+IHByb2Nlc3NvciA9IG5ldyBYU0xUUHJvY2Vzc29yOwogICAg
IHByb2Nlc3Nvci0+c2V0WFNMU3R5bGVzaGVldChzdGF0aWNfY2FzdDxYU0xTdHlsZVNoZWV0Kj4o
cGktPnNoZWV0KCkpKTsKICAgICAKLSAgICBEZXByZWNhdGVkU3RyaW5nIHJlc3VsdE1JTUVUeXBl
OwotICAgIERlcHJlY2F0ZWRTdHJpbmcgbmV3U291cmNlOwotICAgIERlcHJlY2F0ZWRTdHJpbmcg
cmVzdWx0RW5jb2Rpbmc7CisgICAgU3RyaW5nIHJlc3VsdE1JTUVUeXBlOworICAgIFN0cmluZyBu
ZXdTb3VyY2U7CisgICAgU3RyaW5nIHJlc3VsdEVuY29kaW5nOwogICAgIGlmICghcHJvY2Vzc29y
LT50cmFuc2Zvcm1Ub1N0cmluZyh0aGlzLCByZXN1bHRNSU1FVHlwZSwgbmV3U291cmNlLCByZXN1
bHRFbmNvZGluZykpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBGSVhNRTogSWYgdGhlIHRyYW5z
Zm9ybSBmYWlsZWQgd2Ugc2hvdWxkIHByb2JhYmx5IHJlcG9ydCBhbiBlcnJvciAobGlrZSBNb3pp
bGxhIGRvZXMpLgpJbmRleDogV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5jcHAJKHJldmlzaW9uIDI3MjIzKQorKysg
V2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEyICsy
NywxNiBAQAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJYU0xJbXBv
cnRSdWxlLmgiCiAjaW5jbHVkZSAibG9hZGVyLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJYTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJYU0xJbXBv
cnRSdWxlLmgiCisjaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgorCiAjaW5jbHVkZSA8bGlieG1s
L3VyaS5oPgogI2luY2x1ZGUgPGxpYnhzbHQveHNsdHV0aWxzLmg+CisKICNpZiBQTEFURk9STShN
QUMpCiAjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKICNlbmRpZgpAQCAtMTM0LDExICsxMzgsMjAg
QEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdAogICAgIGlmICghbV9z
dHlsZXNoZWV0RG9jVGFrZW4pCiAgICAgICAgIHhtbEZyZWVEb2MobV9zdHlsZXNoZWV0RG9jKTsK
ICAgICBtX3N0eWxlc2hlZXREb2NUYWtlbiA9IGZhbHNlOworCisgICAgQ2hyb21lKiBjaHJvbWUg
PSAwOworICAgIGlmIChQYWdlKiBwYWdlID0gb3duZXJEb2N1bWVudCgpLT5wYWdlKCkpCisgICAg
ICAgIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1
bmMoY2hyb21lLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyk7CisKICAgICBtX3N0eWxl
c2hlZXREb2MgPSB4bWxSZWFkTWVtb3J5KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHN0
cmluZy5jaGFyYWN0ZXJzKCkpLCBzdHJpbmcubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpLAogICAg
ICAgICBtX293bmVyRG9jdW1lbnQtPlVSTCgpLmFzY2lpKCksCiAgICAgICAgIEJPTUhpZ2hCeXRl
ID09IDB4RkYgPyAiVVRGLTE2TEUiIDogIlVURi0xNkJFIiwgCi0gICAgICAgIFhNTF9QQVJTRV9O
T0VOVCB8IFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX05PRVJST1IgfCBYTUxfUEFSU0Vf
Tk9XQVJOSU5HIHwgWE1MX1BBUlNFX05PQ0RBVEEpOworICAgICAgICBYTUxfUEFSU0VfTk9FTlQg
fCBYTUxfUEFSU0VfRFREQVRUUiB8IFhNTF9QQVJTRV9OT1dBUk5JTkcgfCBYTUxfUEFSU0VfTk9D
REFUQSk7CiAgICAgbG9hZENoaWxkU2hlZXRzKCk7CisKKyAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJy
b3JGdW5jKDAsIDApOworCiAgICAgc2V0TG9hZGVyRm9yTGliWE1MQ2FsbGJhY2tzKDApOwogICAg
IHJldHVybiBtX3N0eWxlc2hlZXREb2M7CiB9CkluZGV4OiBXZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAkocmV2
aXNpb24gMjcyMjMpCisrKyBXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qKgogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFhT
TCBpbXBsZW1lbnRhdGlvbi4KICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNyBBcHBsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9z
a3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCkBAIC02MCw4ICs2MSw4IEBAIFNPRlRfTElOS19MSUJSQVJZKGxpYnhz
bHQpOwogU09GVF9MSU5LKGxpYnhzbHQsIHhzbHRGcmVlU3R5bGVzaGVldCwgdm9pZCwgKHhzbHRT
dHlsZXNoZWV0UHRyIHNoZWV0KSwgKHNoZWV0KSkKIFNPRlRfTElOSyhsaWJ4c2x0LCB4c2x0RnJl
ZVRyYW5zZm9ybUNvbnRleHQsIHZvaWQsICh4c2x0VHJhbnNmb3JtQ29udGV4dFB0ciBjdHh0KSwg
KGN0eHQpKQogU09GVF9MSU5LKGxpYnhzbHQsIHhzbHROZXdUcmFuc2Zvcm1Db250ZXh0LCB4c2x0
VHJhbnNmb3JtQ29udGV4dFB0ciwgKHhzbHRTdHlsZXNoZWV0UHRyIHN0eWxlLCB4bWxEb2NQdHIg
ZG9jKSwgKHN0eWxlLCBkb2MpKQotU09GVF9MSU5LKGxpYnhzbHQsIHhzbHRBcHBseVN0eWxlc2hl
ZXRVc2VyLCB4bWxEb2NQdHIsICh4c2x0U3R5bGVzaGVldFB0ciBzdHlsZSwgeG1sRG9jUHRyIGRv
YywgY29uc3QgY2hhciAqKnBhcmFtcywgY29uc3QgY2hhciAqb3V0cHV0LCBGSUxFICogcHJvZmls
ZSwgeHNsdFRyYW5zZm9ybUNvbnRleHRQdHIgdXNlckN0eHQpLCAoc3R5bGUsIGRvYywgcGFyYW1z
LCBvdXRwdXQsIHByb2ZpbGUsIHVzZXJDdHh0KSkKLVNPRlRfTElOSyhsaWJ4c2x0LCB4c2x0UXVv
dGVVc2VyUGFyYW1zLCBpbnQsICh4c2x0VHJhbnNmb3JtQ29udGV4dFB0ciBjdHh0LCBjb25zdCBj
aGFyICoqcGFyYW1zKSwgKGN0eHQsIHBhcmFtcykpCitTT0ZUX0xJTksobGlieHNsdCwgeHNsdEFw
cGx5U3R5bGVzaGVldFVzZXIsIHhtbERvY1B0ciwgKHhzbHRTdHlsZXNoZWV0UHRyIHN0eWxlLCB4
bWxEb2NQdHIgZG9jLCBjb25zdCBjaGFyKiogcGFyYW1zLCBjb25zdCBjaGFyKiBvdXRwdXQsIEZJ
TEUqIHByb2ZpbGUsIHhzbHRUcmFuc2Zvcm1Db250ZXh0UHRyIHVzZXJDdHh0KSwgKHN0eWxlLCBk
b2MsIHBhcmFtcywgb3V0cHV0LCBwcm9maWxlLCB1c2VyQ3R4dCkpCitTT0ZUX0xJTksobGlieHNs
dCwgeHNsdFF1b3RlVXNlclBhcmFtcywgaW50LCAoeHNsdFRyYW5zZm9ybUNvbnRleHRQdHIgY3R4
dCwgY29uc3QgY2hhcioqIHBhcmFtcyksIChjdHh0LCBwYXJhbXMpKQogU09GVF9MSU5LKGxpYnhz
bHQsIHhzbHRTZXRMb2FkZXJGdW5jLCB2b2lkLCAoeHNsdERvY0xvYWRlckZ1bmMgZiksIChmKSkK
IFNPRlRfTElOSyhsaWJ4c2x0LCB4c2x0U2F2ZVJlc3VsdFRvLCBpbnQsICh4bWxPdXRwdXRCdWZm
ZXJQdHIgYnVmLCB4bWxEb2NQdHIgcmVzdWx0LCB4c2x0U3R5bGVzaGVldFB0ciBzdHlsZSksIChi
dWYsIHJlc3VsdCwgc3R5bGUpKQogU09GVF9MSU5LKGxpYnhzbHQsIHhzbHROZXh0SW1wb3J0LCB4
c2x0U3R5bGVzaGVldFB0ciwgKHhzbHRTdHlsZXNoZWV0UHRyIHN0eWxlKSwgKHN0eWxlKSkKQEAg
LTY5LDI4ICs3MCwzMyBAQCBTT0ZUX0xJTksobGlieHNsdCwgeHNsdE5leHRJbXBvcnQsIHhzbHRT
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgcGFyc2VFcnJvckZ1bmModm9p
ZCAqY3R4dCwgY29uc3QgY2hhciAqbXNnLCAuLi4pCit2b2lkIFhTTFRQcm9jZXNzb3I6OnBhcnNl
RXJyb3JGdW5jKHZvaWQqIHVzZXJEYXRhLCB4bWxFcnJvciogZXJyb3IpCiB7Ci0gICAgLy8gRklY
TUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gZGlzcGxheSBlcnJvciBtZXNzYWdlcyBzb21ld2hlcmUu
Ci0jaWYgIVBMQVRGT1JNKFdJTl9PUykKLSAgICAvLyBGSVhNRTogTm8gdmFzcHJpbnRmIHN1cHBv
cnQuCi0jaWZuZGVmIEVSUk9SX0RJU0FCTEVECi0gICAgY2hhciAqZXJyb3JNZXNzYWdlID0gMDsK
LSAgICB2YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQoYXJncywgbXNnKTsKLSAgICB2YXNwcmlu
dGYoJmVycm9yTWVzc2FnZSwgbXNnLCBhcmdzKTsKLSAgICBMT0dfRVJST1IoIiVzIiwgZXJyb3JN
ZXNzYWdlKTsKLSAgICBpZiAoZXJyb3JNZXNzYWdlKQotICAgICAgICBmcmVlKGVycm9yTWVzc2Fn
ZSk7Ci0gICAgdmFfZW5kKGFyZ3MpOwotI2VuZGlmCi0jZW5kaWYKKyAgICBDaHJvbWUqIGNocm9t
ZSA9IHN0YXRpY19jYXN0PENocm9tZSo+KHVzZXJEYXRhKTsKKyAgICBpZiAoIWNocm9tZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTWVzc2FnZUxldmVsIGxldmVsOworICAgIHN3aXRjaCAoZXJy
b3ItPmxldmVsKSB7CisgICAgICAgIGNhc2UgWE1MX0VSUl9OT05FOgorICAgICAgICAgICAgbGV2
ZWwgPSBUaXBNZXNzYWdlTGV2ZWw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBY
TUxfRVJSX1dBUk5JTkc6CisgICAgICAgICAgICBsZXZlbCA9IFdhcm5pbmdNZXNzYWdlTGV2ZWw7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxfRVJSX0VSUk9SOgorICAgICAg
ICBjYXNlIFhNTF9FUlJfRkFUQUw6CisgICAgICAgICAgICBsZXZlbCA9IEVycm9yTWVzc2FnZUxl
dmVsOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2hyb21lLT5hZGRNZXNzYWdl
VG9Db25zb2xlKFhNTE1lc3NhZ2VTb3VyY2UsIGxldmVsLCBlcnJvci0+bWVzc2FnZSwgZXJyb3It
PmxpbmUsIGVycm9yLT5maWxlKTsKIH0KIAogLy8gRklYTUU6IFRoZXJlIHNlZW1zIHRvIGJlIG5v
IHdheSB0byBjb250cm9sIHRoZSBjdHh0IHBvaW50ZXIgZm9yIGxvYWRpbmcgaGVyZSwgdGh1cyB3
ZSBoYXZlIGdsb2JhbHMuCi1zdGF0aWMgWFNMVFByb2Nlc3NvciAqZ2xvYmFsUHJvY2Vzc29yID0g
MDsKLXN0YXRpYyBEb2NMb2FkZXIgKmdsb2JhbERvY0xvYWRlciA9IDA7Ci1zdGF0aWMgeG1sRG9j
UHRyIGRvY0xvYWRlckZ1bmMoY29uc3QgeG1sQ2hhciAqdXJpLAorc3RhdGljIFhTTFRQcm9jZXNz
b3IqIGdsb2JhbFByb2Nlc3NvciA9IDA7CitzdGF0aWMgRG9jTG9hZGVyKiBnbG9iYWxEb2NMb2Fk
ZXIgPSAwOworc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIqIHVy
aSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERpY3RQdHIgZGljdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogY3R4dCwKQEAgLTEwMiwyNCArMTA4
LDI4IEBAIHN0YXRpYyB4bWxEb2NQdHIgZG9jTG9hZGVyRnVuYyhjb25zdCB4bWwKICAgICBzd2l0
Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBYU0xUX0xPQURfRE9DVU1FTlQ6IHsKICAgICAgICAg
ICAgIHhzbHRUcmFuc2Zvcm1Db250ZXh0UHRyIGNvbnRleHQgPSAoeHNsdFRyYW5zZm9ybUNvbnRl
eHRQdHIpY3R4dDsKLSAgICAgICAgICAgIHhtbENoYXIgKmJhc2UgPSB4bWxOb2RlR2V0QmFzZShj
b250ZXh0LT5kb2N1bWVudC0+ZG9jLCBjb250ZXh0LT5ub2RlKTsKKyAgICAgICAgICAgIHhtbENo
YXIqIGJhc2UgPSB4bWxOb2RlR2V0QmFzZShjb250ZXh0LT5kb2N1bWVudC0+ZG9jLCBjb250ZXh0
LT5ub2RlKTsKICAgICAgICAgICAgIEtVUkwgdXJsKChjb25zdCBjaGFyKiliYXNlLCAoY29uc3Qg
Y2hhciopdXJpKTsKICAgICAgICAgICAgIHhtbEZyZWUoYmFzZSk7CiAgICAgICAgICAgICBSZXNv
dXJjZUVycm9yIGVycm9yOwogICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsK
LSAgICAgICAgICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgb2xkRXJyb3JGdW5jID0geG1sR2VuZXJp
Y0Vycm9yOwotICAgICAgICAgICAgdm9pZCAqb2xkRXJyb3JDb250ZXh0ID0geG1sR2VuZXJpY0Vy
cm9yQ29udGV4dDsKIAogICAgICAgICAgICAgVmVjdG9yPGNoYXI+IGRhdGE7Ci0gICAgICAgICAg
ICAgICAgCisKICAgICAgICAgICAgIGlmIChnbG9iYWxEb2NMb2FkZXItPmZyYW1lKCkpIAogICAg
ICAgICAgICAgICAgIGdsb2JhbERvY0xvYWRlci0+ZnJhbWUoKS0+bG9hZGVyKCktPmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkodXJsLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogCi0gICAgICAg
ICAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jKDAsIHBhcnNlRXJyb3JGdW5jKTsKKyAgICAgICAg
ICAgIENocm9tZSogY2hyb21lID0gMDsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZ2xv
YmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+cGFnZSgpKQor
ICAgICAgICAgICAgICAgIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgICAgICAgICAgeG1s
U2V0U3RydWN0dXJlZEVycm9yRnVuYyhjaHJvbWUsIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JG
dW5jKTsKKwogICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgc3BlY2lmeSBhbiBlbmNvZGluZyBoZXJl
LiBOZWl0aGVyIEdlY2tvIG5vciBXaW5JRSByZXNwZWN0cwogICAgICAgICAgICAgLy8gdGhlIGVu
Y29kaW5nIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLgogICAgICAgICAgICAgeG1sRG9j
UHRyIGRvYyA9IHhtbFJlYWRNZW1vcnkoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpLCAoY29uc3Qg
Y2hhciopdXJpLCAwLCBvcHRpb25zKTsKLSAgICAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1
bmMob2xkRXJyb3JDb250ZXh0LCBvbGRFcnJvckZ1bmMpOworCisgICAgICAgICAgICB4bWxTZXRT
dHJ1Y3R1cmVkRXJyb3JGdW5jKDAsIDApOworCiAgICAgICAgICAgICByZXR1cm4gZG9jOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgWFNMVF9MT0FEX1NUWUxFU0hFRVQ6CkBAIC0xMzEsMjcgKzE0
MSwyNyBAQCBzdGF0aWMgeG1sRG9jUHRyIGRvY0xvYWRlckZ1bmMoY29uc3QgeG1sCiAgICAgcmV0
dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRYU0xUTG9hZENhbGxCYWNrKHhzbHRE
b2NMb2FkZXJGdW5jIGZ1bmMsIFhTTFRQcm9jZXNzb3IgKnByb2Nlc3NvciwgRG9jTG9hZGVyICps
b2FkZXIpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0WFNMVExvYWRDYWxsQmFjayh4c2x0RG9jTG9h
ZGVyRnVuYyBmdW5jLCBYU0xUUHJvY2Vzc29yKiBwcm9jZXNzb3IsIERvY0xvYWRlciogbG9hZGVy
KQogewogICAgIHhzbHRTZXRMb2FkZXJGdW5jKGZ1bmMpOwogICAgIGdsb2JhbFByb2Nlc3NvciA9
IHByb2Nlc3NvcjsKICAgICBnbG9iYWxEb2NMb2FkZXIgPSBsb2FkZXI7CiB9CiAKLXN0YXRpYyBp
bnQgd3JpdGVUb1FTdHJpbmcodm9pZCAqY29udGV4dCwgY29uc3QgY2hhciAqYnVmZmVyLCBpbnQg
bGVuKQorc3RhdGljIGludCB3cml0ZVRvU3RyaW5nKHZvaWQqIGNvbnRleHQsIGNvbnN0IGNoYXIq
IGJ1ZmZlciwgaW50IGxlbikKIHsKLSAgICBEZXByZWNhdGVkU3RyaW5nICZyZXN1bHRPdXRwdXQg
PSAqc3RhdGljX2Nhc3Q8RGVwcmVjYXRlZFN0cmluZyAqPihjb250ZXh0KTsKLSAgICByZXN1bHRP
dXRwdXQgKz0gRGVwcmVjYXRlZFN0cmluZzo6ZnJvbVV0ZjgoYnVmZmVyLCBsZW4pOworICAgIFN0
cmluZyYgcmVzdWx0T3V0cHV0ID0gKnN0YXRpY19jYXN0PFN0cmluZyo+KGNvbnRleHQpOworICAg
IHJlc3VsdE91dHB1dCArPSBTdHJpbmc6OmZyb21VVEY4KGJ1ZmZlciwgbGVuKTsKICAgICByZXR1
cm4gbGVuOwogfQogCi1zdGF0aWMgYm9vbCBzYXZlUmVzdWx0VG9TdHJpbmcoeG1sRG9jUHRyIHJl
c3VsdERvYywgeHNsdFN0eWxlc2hlZXRQdHIgc2hlZXQsIERlcHJlY2F0ZWRTdHJpbmcgJnJlc3Vs
dFN0cmluZykKK3N0YXRpYyBib29sIHNhdmVSZXN1bHRUb1N0cmluZyh4bWxEb2NQdHIgcmVzdWx0
RG9jLCB4c2x0U3R5bGVzaGVldFB0ciBzaGVldCwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7CiAg
ICAgeG1sT3V0cHV0QnVmZmVyUHRyIG91dHB1dEJ1ZiA9IHhtbEFsbG9jT3V0cHV0QnVmZmVyKDAp
OwogICAgIGlmICghb3V0cHV0QnVmKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgb3V0cHV0
QnVmLT5jb250ZXh0ID0gJnJlc3VsdFN0cmluZzsKLSAgICBvdXRwdXRCdWYtPndyaXRlY2FsbGJh
Y2sgPSB3cml0ZVRvUVN0cmluZzsKKyAgICBvdXRwdXRCdWYtPndyaXRlY2FsbGJhY2sgPSB3cml0
ZVRvU3RyaW5nOwogICAgIAogICAgIGludCByZXR2YWwgPSB4c2x0U2F2ZVJlc3VsdFRvKG91dHB1
dEJ1ZiwgcmVzdWx0RG9jLCBzaGVldCk7CiAgICAgeG1sT3V0cHV0QnVmZmVyQ2xvc2Uob3V0cHV0
QnVmKTsKQEAgLTE1OSw3ICsxNjksNyBAQCBzdGF0aWMgYm9vbCBzYXZlUmVzdWx0VG9TdHJpbmco
eG1sRG9jUHRyCiAgICAgcmV0dXJuIChyZXR2YWwgPj0gMCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCB0cmFuc2Zvcm1UZXh0U3RyaW5nVG9YSFRNTERvY3VtZW50U3RyaW5nKFN0cmluZyAmdGV4
dCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB0cmFuc2Zvcm1UZXh0U3RyaW5nVG9YSFRNTERvY3VtZW50
U3RyaW5nKFN0cmluZyYgdGV4dCkKIHsKICAgICAvLyBNb2RpZnkgdGhlIG91dHB1dCBzbyB0aGF0
IGl0IGlzIGEgd2VsbC1mb3JtZWQgWEhUTUwgZG9jdW1lbnQgd2l0aCBhIDxwcmU+IHRhZyBlbmNs
b3NpbmcgdGhlIHRleHQuCiAgICAgdGV4dC5yZXBsYWNlKCcmJywgIiZhbXA7Iik7CkBAIC0xNzQs
MTIgKzE4NCwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdHJhbnNmb3JtVGV4dFN0cmluZ1RvCiAg
ICAgICAgICI8L2h0bWw+XG4iOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqKnhzbHRQYXJhbUFy
cmF5RnJvbVBhcmFtZXRlck1hcChYU0xUUHJvY2Vzc29yOjpQYXJhbWV0ZXJNYXAmIHBhcmFtZXRl
cnMpCitzdGF0aWMgY29uc3QgY2hhcioqIHhzbHRQYXJhbUFycmF5RnJvbVBhcmFtZXRlck1hcChY
U0xUUHJvY2Vzc29yOjpQYXJhbWV0ZXJNYXAmIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKHBhcmFt
ZXRlcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGNvbnN0IGNoYXIgKipw
YXJhbWV0ZXJBcnJheSA9IChjb25zdCBjaGFyICoqKWZhc3RNYWxsb2MoKChwYXJhbWV0ZXJzLnNp
emUoKSAqIDIpICsgMSkgKiBzaXplb2YoY2hhciAqKSk7CisgICAgY29uc3QgY2hhcioqIHBhcmFt
ZXRlckFycmF5ID0gKGNvbnN0IGNoYXIqKilmYXN0TWFsbG9jKCgocGFyYW1ldGVycy5zaXplKCkg
KiAyKSArIDEpICogc2l6ZW9mKGNoYXIqKSk7CiAKICAgICBYU0xUUHJvY2Vzc29yOjpQYXJhbWV0
ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IHBhcmFtZXRlcnMuZW5kKCk7CiAgICAgdW5zaWduZWQgaW5k
ZXggPSAwOwpAQCAtMTkyLDIyICsyMDIsMjIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKip4c2x0UGFy
YW1BcnJheUZyb21QYQogICAgIHJldHVybiBwYXJhbWV0ZXJBcnJheTsKIH0KIAotc3RhdGljIHZv
aWQgZnJlZVhzbHRQYXJhbUFycmF5KGNvbnN0IGNoYXIgKipwYXJhbXMpCitzdGF0aWMgdm9pZCBm
cmVlWHNsdFBhcmFtQXJyYXkoY29uc3QgY2hhcioqIHBhcmFtcykKIHsKLSAgICBjb25zdCBjaGFy
ICoqdGVtcCA9IHBhcmFtczsKKyAgICBjb25zdCBjaGFyKiogdGVtcCA9IHBhcmFtczsKICAgICBp
ZiAoIXBhcmFtcykKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHdoaWxlICgqdGVtcCkgewot
ICAgICAgICBmcmVlKCh2b2lkICopKih0ZW1wKyspKTsgLy8gc3RyZHVwIHJldHVybnMgbWFsbG9j
J2QgYmxvY2tzLCBzbyB3ZSBoYXZlIHRvIHVzZSBmcmVlKCkgaGVyZQotICAgICAgICBmcmVlKCh2
b2lkICopKih0ZW1wKyspKTsKKyAgICAgICAgZnJlZSgodm9pZCopKih0ZW1wKyspKTsgLy8gc3Ry
ZHVwIHJldHVybnMgbWFsbG9jJ2QgYmxvY2tzLCBzbyB3ZSBoYXZlIHRvIHVzZSBmcmVlKCkgaGVy
ZQorICAgICAgICBmcmVlKCh2b2lkKikqKHRlbXArKykpOwogICAgIH0KICAgICBmYXN0RnJlZShw
YXJhbXMpOwogfQogCiAKLVJlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG9j
dW1lbnRGcm9tU291cmNlKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHNvdXJjZVN0cmluZywKLSAg
ICBjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzb3VyY2VFbmNvZGluZywgY29uc3QgRGVwcmVjYXRl
ZFN0cmluZyYgc291cmNlTUlNRVR5cGUsIE5vZGUqIHNvdXJjZU5vZGUsIEZyYW1lKiBmcmFtZSkK
K1JlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG9jdW1lbnRGcm9tU291cmNl
KGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLAorICAgIGNvbnN0IFN0cmluZyYgc291cmNlRW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIE5vZGUqIHNvdXJjZU5vZGUsIEZy
YW1lKiBmcmFtZSkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG93bmVyRG9jdW1lbnQgPSBzb3Vy
Y2VOb2RlLT5kb2N1bWVudCgpOwogICAgIGJvb2wgc291cmNlSXNEb2N1bWVudCA9IChzb3VyY2VO
b2RlID09IG93bmVyRG9jdW1lbnQuZ2V0KCkpOwpAQCAtMjQ3LDcgKzI1Nyw3IEBAIFJlZlB0cjxE
b2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG8KICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1zdGF0aWMgaW5saW5lIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZy
b21Tb3VyY2UoRGVwcmVjYXRlZFN0cmluZyBzb3VyY2VTdHJpbmcsIERlcHJlY2F0ZWRTdHJpbmcg
c291cmNlTUlNRVR5cGUsIE5vZGUgKnNvdXJjZU5vZGUsIERvY3VtZW50ICpvdXRwdXREb2MpCitz
dGF0aWMgaW5saW5lIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21T
b3VyY2UoU3RyaW5nIHNvdXJjZVN0cmluZywgU3RyaW5nIHNvdXJjZU1JTUVUeXBlLCBOb2RlKiBz
b3VyY2VOb2RlLCBEb2N1bWVudCogb3V0cHV0RG9jKQogewogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IG5ldyBEb2N1bWVudEZyYWdtZW50KG91dHB1dERvYyk7CiAgICAg
CkBAIC0yNjYsNyArMjc2LDcgQEAgc3RhdGljIGlubGluZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gYwogICAgIHJldHVybiBmcmFnbWVudDsKIH0KIAotc3RhdGljIHhzbHRTdHlsZXNoZWV0UHRy
IHhzbHRTdHlsZXNoZWV0UG9pbnRlcihSZWZQdHI8WFNMU3R5bGVTaGVldD4gJmNhY2hlZFN0eWxl
c2hlZXQsIE5vZGUgKnN0eWxlc2hlZXRSb290Tm9kZSkKK3N0YXRpYyB4c2x0U3R5bGVzaGVldFB0
ciB4c2x0U3R5bGVzaGVldFBvaW50ZXIoUmVmUHRyPFhTTFN0eWxlU2hlZXQ+JiBjYWNoZWRTdHls
ZXNoZWV0LCBOb2RlKiBzdHlsZXNoZWV0Um9vdE5vZGUpCiB7CiAgICAgaWYgKCFjYWNoZWRTdHls
ZXNoZWV0ICYmIHN0eWxlc2hlZXRSb290Tm9kZSkgewogICAgICAgICBjYWNoZWRTdHlsZXNoZWV0
ID0gbmV3IFhTTFN0eWxlU2hlZXQoc3R5bGVzaGVldFJvb3ROb2RlLT5wYXJlbnQoKSA/IHN0eWxl
c2hlZXRSb290Tm9kZS0+cGFyZW50KCkgOiBzdHlsZXNoZWV0Um9vdE5vZGUsIHN0eWxlc2hlZXRS
b290Tm9kZS0+ZG9jdW1lbnQoKS0+VVJMKCkpOwpAQCAtMjc5LDcgKzI4OSw3IEBAIHN0YXRpYyB4
c2x0U3R5bGVzaGVldFB0ciB4c2x0U3R5bGVzaGVldFAKICAgICByZXR1cm4gY2FjaGVkU3R5bGVz
aGVldC0+Y29tcGlsZVN0eWxlU2hlZXQoKTsKIH0KIAotc3RhdGljIGlubGluZSB4bWxEb2NQdHIg
eG1sRG9jUHRyRnJvbU5vZGUoTm9kZSAqc291cmNlTm9kZSwgYm9vbCAmc2hvdWxkRGVsZXRlKQor
c3RhdGljIGlubGluZSB4bWxEb2NQdHIgeG1sRG9jUHRyRnJvbU5vZGUoTm9kZSogc291cmNlTm9k
ZSwgYm9vbCYgc2hvdWxkRGVsZXRlKQogewogICAgIFJlZlB0cjxEb2N1bWVudD4gb3duZXJEb2N1
bWVudCA9IHNvdXJjZU5vZGUtPmRvY3VtZW50KCk7CiAgICAgYm9vbCBzb3VyY2VJc0RvY3VtZW50
ID0gKHNvdXJjZU5vZGUgPT0gb3duZXJEb2N1bWVudC5nZXQoKSk7CkBAIC0yOTQsMjYgKzMwNCwy
NiBAQCBzdGF0aWMgaW5saW5lIHhtbERvY1B0ciB4bWxEb2NQdHJGcm9tTm9kCiAgICAgcmV0dXJu
IHNvdXJjZURvYzsKIH0KIAotc3RhdGljIGlubGluZSBEZXByZWNhdGVkU3RyaW5nIHJlc3VsdE1J
TUVUeXBlKHhtbERvY1B0ciByZXN1bHREb2MsIHhzbHRTdHlsZXNoZWV0UHRyIHNoZWV0KQorc3Rh
dGljIGlubGluZSBTdHJpbmcgcmVzdWx0TUlNRVR5cGUoeG1sRG9jUHRyIHJlc3VsdERvYywgeHNs
dFN0eWxlc2hlZXRQdHIgc2hlZXQpCiB7CiAgICAgLy8gVGhlcmUgYXJlIHRocmVlIHR5cGVzIG9m
IG91dHB1dCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gZGVhbCB3aXRoOgogICAgIC8vIEhUTUwgKGNy
ZWF0ZSBhbiBIVE1MIGRvY3VtZW50KSwgWE1MIChjcmVhdGUgYW4gWE1MIGRvY3VtZW50KSwKICAg
ICAvLyBhbmQgdGV4dCAod3JhcCBpbiBhIDxwcmU+IGFuZCBjcmVhdGUgYW4gWE1MIGRvY3VtZW50
KS4KIAotICAgIGNvbnN0IHhtbENoYXIgKnJlc3VsdFR5cGUgPSAwOworICAgIGNvbnN0IHhtbENo
YXIqIHJlc3VsdFR5cGUgPSAwOwogICAgIFhTTFRfR0VUX0lNUE9SVF9QVFIocmVzdWx0VHlwZSwg
c2hlZXQsIG1ldGhvZCk7CiAgICAgaWYgKHJlc3VsdFR5cGUgPT0gMCAmJiByZXN1bHREb2MtPnR5
cGUgPT0gWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSkKLSAgICAgICAgcmVzdWx0VHlwZSA9IChjb25z
dCB4bWxDaGFyICopImh0bWwiOworICAgICAgICByZXN1bHRUeXBlID0gKGNvbnN0IHhtbENoYXIq
KSJodG1sIjsKICAgICAKLSAgICBpZiAoeG1sU3RyRXF1YWwocmVzdWx0VHlwZSwgKGNvbnN0IHht
bENoYXIgKikiaHRtbCIpKQotICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZygidGV4dC9o
dG1sIik7Ci0gICAgZWxzZSBpZiAoeG1sU3RyRXF1YWwocmVzdWx0VHlwZSwgKGNvbnN0IHhtbENo
YXIgKikidGV4dCIpKQotICAgICAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZygidGV4dC9wbGFp
biIpOworICAgIGlmICh4bWxTdHJFcXVhbChyZXN1bHRUeXBlLCAoY29uc3QgeG1sQ2hhciopImh0
bWwiKSkKKyAgICAgICAgcmV0dXJuICJ0ZXh0L2h0bWwiOworICAgIGVsc2UgaWYgKHhtbFN0ckVx
dWFsKHJlc3VsdFR5cGUsIChjb25zdCB4bWxDaGFyKikidGV4dCIpKQorICAgICAgICByZXR1cm4g
InRleHQvcGxhaW4iOwogICAgICAgICAKLSAgICByZXR1cm4gRGVwcmVjYXRlZFN0cmluZygiYXBw
bGljYXRpb24veG1sIik7CisgICAgcmV0dXJuICJhcHBsaWNhdGlvbi94bWwiOwogfQogCi1ib29s
IFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvU3RyaW5nKE5vZGUgKnNvdXJjZU5vZGUsIERlcHJl
Y2F0ZWRTdHJpbmcgJm1pbWVUeXBlLCBEZXByZWNhdGVkU3RyaW5nICZyZXN1bHRTdHJpbmcsIERl
cHJlY2F0ZWRTdHJpbmcgJnJlc3VsdEVuY29kaW5nKQorYm9vbCBYU0xUUHJvY2Vzc29yOjp0cmFu
c2Zvcm1Ub1N0cmluZyhOb2RlKiBzb3VyY2VOb2RlLCBTdHJpbmcmIG1pbWVUeXBlLCBTdHJpbmcm
IHJlc3VsdFN0cmluZywgU3RyaW5nJiByZXN1bHRFbmNvZGluZykKIHsKICAgICBSZWZQdHI8RG9j
dW1lbnQ+IG93bmVyRG9jdW1lbnQgPSBzb3VyY2VOb2RlLT5kb2N1bWVudCgpOwogICAgIApAQCAt
MzQ0LDcgKzM1NCw3IEBAIGJvb2wgWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9TdHJpbmcoTm8K
ICAgICAgICAgaWYgKHRyYW5zZm9ybUNvbnRleHQtPmdsb2JhbFZhcnMgPT0gTlVMTCkKICAgICAg
ICAgICAgdHJhbnNmb3JtQ29udGV4dC0+Z2xvYmFsVmFycyA9IHhtbEhhc2hDcmVhdGUoMjApOwog
Ci0gICAgICAgIGNvbnN0IGNoYXIgKipwYXJhbXMgPSB4c2x0UGFyYW1BcnJheUZyb21QYXJhbWV0
ZXJNYXAobV9wYXJhbWV0ZXJzKTsKKyAgICAgICAgY29uc3QgY2hhcioqIHBhcmFtcyA9IHhzbHRQ
YXJhbUFycmF5RnJvbVBhcmFtZXRlck1hcChtX3BhcmFtZXRlcnMpOwogICAgICAgICB4c2x0UXVv
dGVVc2VyUGFyYW1zKHRyYW5zZm9ybUNvbnRleHQsIHBhcmFtcyk7CiAgICAgICAgIHhtbERvY1B0
ciByZXN1bHREb2MgPSB4c2x0QXBwbHlTdHlsZXNoZWV0VXNlcihzaGVldCwgc291cmNlRG9jLCAw
LCAwLCAwLCB0cmFuc2Zvcm1Db250ZXh0KTsKICAgICAgICAgCkBAIC0zNTYsNyArMzY2LDcgQEAg
Ym9vbCBYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub1N0cmluZyhObwogICAgICAgICAKICAgICAg
ICAgaWYgKHN1Y2Nlc3MgPSBzYXZlUmVzdWx0VG9TdHJpbmcocmVzdWx0RG9jLCBzaGVldCwgcmVz
dWx0U3RyaW5nKSkgewogICAgICAgICAgICAgbWltZVR5cGUgPSByZXN1bHRNSU1FVHlwZShyZXN1
bHREb2MsIHNoZWV0KTsKLSAgICAgICAgICAgIHJlc3VsdEVuY29kaW5nID0gKGNoYXIgKilyZXN1
bHREb2MtPmVuY29kaW5nOworICAgICAgICAgICAgcmVzdWx0RW5jb2RpbmcgPSAoY2hhciopcmVz
dWx0RG9jLT5lbmNvZGluZzsKICAgICAgICAgfQogICAgICAgICB4bWxGcmVlRG9jKHJlc3VsdERv
Yyk7CiAgICAgfQpAQCAtMzY5LDExICszNzksMTEgQEAgYm9vbCBYU0xUUHJvY2Vzc29yOjp0cmFu
c2Zvcm1Ub1N0cmluZyhObwogICAgIHJldHVybiBzdWNjZXNzOwogfQogCi1SZWZQdHI8RG9jdW1l
bnQ+IFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQoTm9kZSAqc291cmNlTm9kZSkK
K1JlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1bWVudChOb2Rl
KiBzb3VyY2VOb2RlKQogewotICAgIERlcHJlY2F0ZWRTdHJpbmcgcmVzdWx0TUlNRVR5cGU7Ci0g
ICAgRGVwcmVjYXRlZFN0cmluZyByZXN1bHRTdHJpbmc7Ci0gICAgRGVwcmVjYXRlZFN0cmluZyBy
ZXN1bHRFbmNvZGluZzsKKyAgICBTdHJpbmcgcmVzdWx0TUlNRVR5cGU7CisgICAgU3RyaW5nIHJl
c3VsdFN0cmluZzsKKyAgICBTdHJpbmcgcmVzdWx0RW5jb2Rpbmc7CiAgICAgaWYgKCF0cmFuc2Zv
cm1Ub1N0cmluZyhzb3VyY2VOb2RlLCByZXN1bHRNSU1FVHlwZSwgcmVzdWx0U3RyaW5nLCByZXN1
bHRFbmNvZGluZykpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjcmVhdGVEb2N1bWVu
dEZyb21Tb3VyY2UocmVzdWx0U3RyaW5nLCByZXN1bHRFbmNvZGluZywgcmVzdWx0TUlNRVR5cGUs
IHNvdXJjZU5vZGUsIDApOwpAQCAtMzgxLDkgKzM5MSw5IEBAIFJlZlB0cjxEb2N1bWVudD4gWFNM
VFByb2Nlc3Nvcjo6dHJhbnNmb3IKIAogUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFhTTFRQcm9j
ZXNzb3I6OnRyYW5zZm9ybVRvRnJhZ21lbnQoTm9kZSogc291cmNlTm9kZSwgRG9jdW1lbnQqIG91
dHB1dERvYykKIHsKLSAgICBEZXByZWNhdGVkU3RyaW5nIHJlc3VsdE1JTUVUeXBlOwotICAgIERl
cHJlY2F0ZWRTdHJpbmcgcmVzdWx0U3RyaW5nOwotICAgIERlcHJlY2F0ZWRTdHJpbmcgcmVzdWx0
RW5jb2Rpbmc7CisgICAgU3RyaW5nIHJlc3VsdE1JTUVUeXBlOworICAgIFN0cmluZyByZXN1bHRT
dHJpbmc7CisgICAgU3RyaW5nIHJlc3VsdEVuY29kaW5nOwogCiAgICAgLy8gSWYgdGhlIG91dHB1
dCBkb2N1bWVudCBpcyBIVE1MLCBkZWZhdWx0IHRvIEhUTUwgbWV0aG9kLgogICAgIGlmIChvdXRw
dXREb2MtPmlzSFRNTERvY3VtZW50KCkpCkluZGV4OiBXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5oCShyZXZpc2lvbiAy
NzIyMykKKysrIFdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIC8qCiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgWFNMIGltcGxlbWVu
dGF0aW9uLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA3IEFwcGxlLCBJbmMuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTQxLDE0ICs0MSwxNCBAQCBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgWFNM
VFByb2Nlc3NvciA6IHB1YmxpYyBTaGFyZWQ8WFNMVFByb2Nlc3Nvcj4KIHsKIHB1YmxpYzoKLSAg
ICB2b2lkIHNldFhTTFN0eWxlc2hlZXQoWFNMU3R5bGVTaGVldCAqc3R5bGVTaGVldCkgeyBtX3N0
eWxlc2hlZXQgPSBzdHlsZVNoZWV0OyB9Ci0gICAgYm9vbCB0cmFuc2Zvcm1Ub1N0cmluZyhOb2Rl
ICpzb3VyY2UsIERlcHJlY2F0ZWRTdHJpbmcgJnJlc3VsdE1JTUVUeXBlLCBEZXByZWNhdGVkU3Ry
aW5nICZyZXN1bHRTdHJpbmcsIERlcHJlY2F0ZWRTdHJpbmcgJnJlc3VsdEVuY29kaW5nKTsKLSAg
ICBSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50RnJvbVNvdXJjZShjb25zdCBEZXByZWNh
dGVkU3RyaW5nJiBzb3VyY2UsIGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHNvdXJjZUVuY29kaW5n
LCBjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzb3VyY2VNSU1FVHlwZSwgTm9kZSogc291cmNlTm9k
ZSwgRnJhbWUqIGZyYW1lKTsKKyAgICB2b2lkIHNldFhTTFN0eWxlc2hlZXQoWFNMU3R5bGVTaGVl
dCogc3R5bGVTaGVldCkgeyBtX3N0eWxlc2hlZXQgPSBzdHlsZVNoZWV0OyB9CisgICAgYm9vbCB0
cmFuc2Zvcm1Ub1N0cmluZyhOb2RlKiBzb3VyY2UsIFN0cmluZyYgcmVzdWx0TUlNRVR5cGUsIFN0
cmluZyYgcmVzdWx0U3RyaW5nLCBTdHJpbmcmIHJlc3VsdEVuY29kaW5nKTsKKyAgICBSZWZQdHI8
RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VFbmNvZGluZywgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlw
ZSwgTm9kZSogc291cmNlTm9kZSwgRnJhbWUqIGZyYW1lKTsKICAgICAKICAgICAvLyBET00gbWV0
aG9kcwotICAgIHZvaWQgaW1wb3J0U3R5bGVzaGVldChOb2RlICpzdHlsZSkgeyBtX3N0eWxlc2hl
ZXRSb290Tm9kZSA9IHN0eWxlOyB9Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHRyYW5z
Zm9ybVRvRnJhZ21lbnQoTm9kZSAqc291cmNlLCBEb2N1bWVudCAqb3VwdXREb2MpOwotICAgIFJl
ZlB0cjxEb2N1bWVudD4gdHJhbnNmb3JtVG9Eb2N1bWVudChOb2RlICpzb3VyY2UpOworICAgIHZv
aWQgaW1wb3J0U3R5bGVzaGVldChOb2RlKiBzdHlsZSkgeyBtX3N0eWxlc2hlZXRSb290Tm9kZSA9
IHN0eWxlOyB9CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHRyYW5zZm9ybVRvRnJhZ21l
bnQoTm9kZSogc291cmNlLCBEb2N1bWVudCogb3VwdXREb2MpOworICAgIFJlZlB0cjxEb2N1bWVu
dD4gdHJhbnNmb3JtVG9Eb2N1bWVudChOb2RlKiBzb3VyY2UpOwogICAgIAogICAgIHZvaWQgc2V0
UGFyYW1ldGVyKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2Fs
TmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgU3RyaW5nIGdldFBhcmFtZXRlcihjb25z
dCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBsb2NhbE5hbWUpIGNvbnN0OwpA
QCAtNTYsMTYgKzU2LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUGFyYW1ldGVycygpIHsg
bV9wYXJhbWV0ZXJzLmNsZWFyKCk7IH0KIAogICAgIHZvaWQgcmVzZXQoKSB7IG1fc3R5bGVzaGVl
dCA9IE5VTEw7IG1fc3R5bGVzaGVldFJvb3ROb2RlID0gTlVMTDsgIG1fcGFyYW1ldGVycy5jbGVh
cigpOyB9Ci0gICAgCisKKyAgICBzdGF0aWMgdm9pZCBwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2Vy
RGF0YSwgeG1sRXJyb3IqKTsKKwogcHVibGljOgogICAgIC8vIE9ubHkgZm9yIGxpYlhTTFQgY2Fs
bGJhY2tzCi0gICAgWFNMU3R5bGVTaGVldCAqeHNsU3R5bGVzaGVldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3R5bGVzaGVldC5nZXQoKTsgfQorICAgIFhTTFN0eWxlU2hlZXQqIHhzbFN0eWxlc2hlZXQo
KSBjb25zdCB7IHJldHVybiBtX3N0eWxlc2hlZXQuZ2V0KCk7IH0KICAgICAKICAgICB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IFBhcmFtZXRlck1hcDsKIAogcHJpdmF0ZToKICAgICAv
LyBDb252ZXJ0IGEgbGlieG1sIGRvYyBwdHIgdG8gYSBLSFRNTCBET00gRG9jdW1lbnQKLSAgICBS
ZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50RnJvbVhNTERvY1B0cih4bWxEb2NQdHIgcmVzdWx0RG9j
LCB4c2x0U3R5bGVzaGVldFB0ciBzaGVldCwgRG9jdW1lbnQgKm93bmVyRG9jdW1lbnQsIGJvb2wg
c291cmNlSXNEb2N1bWVudCk7CisgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudEZyb21YTUxE
b2NQdHIoeG1sRG9jUHRyIHJlc3VsdERvYywgeHNsdFN0eWxlc2hlZXRQdHIgc2hlZXQsIERvY3Vt
ZW50KiBvd25lckRvY3VtZW50LCBib29sIHNvdXJjZUlzRG9jdW1lbnQpOwogCiAgICAgUmVmUHRy
PFhTTFN0eWxlU2hlZXQ+IG1fc3R5bGVzaGVldDsKICAgICBSZWZQdHI8Tm9kZT4gbV9zdHlsZXNo
ZWV0Um9vdE5vZGU7Cg==
</data>
<flag name="review"
          id="7190"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>